Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3655114B2 - Simulation method and simulation system - Google Patents
[go: Go Back, main page]

JP3655114B2 - Simulation method and simulation system - Google Patents

Simulation method and simulation system Download PDF

Info

Publication number
JP3655114B2
JP3655114B2 JP01932099A JP1932099A JP3655114B2 JP 3655114 B2 JP3655114 B2 JP 3655114B2 JP 01932099 A JP01932099 A JP 01932099A JP 1932099 A JP1932099 A JP 1932099A JP 3655114 B2 JP3655114 B2 JP 3655114B2
Authority
JP
Japan
Prior art keywords
simulation
address information
signal
trace
accelerator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP01932099A
Other languages
Japanese (ja)
Other versions
JP2000222446A (en
Inventor
克己 井口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP01932099A priority Critical patent/JP3655114B2/en
Publication of JP2000222446A publication Critical patent/JP2000222446A/en
Application granted granted Critical
Publication of JP3655114B2 publication Critical patent/JP3655114B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

(目次)
発明の属する技術分野
従来の技術
発明が解決しようとする課題
課題を解決するための手段
発明の実施の形態(図1〜図21)
発明の効果
【0001】
【発明の属する技術分野】
本発明は、複数のシミュレーションアクセラレータを同時に動作させてLSI等の大規模回路の論理シミュレーションを行なう際に用いて好適のシミュレーション方法およびシミュレーションシステムに関する。
【0002】
【従来の技術】
一般に、LSI等の大規模回路の論理シミュレーションを高速化するために、ソフトウェアによる論理シミュレータと同じ動作を行なうシミュレーションアクセラレータ(以下、単にアクセラレータという場合がある)と呼ばれる専用のハードウェアが用いられている。
【0003】
アクセラレータは、1つの筐体内に複数枚の基板をそなえて構成され、各基板には、多数のプログラマブル素子(GPE:Gate Primitive Element)が組み込まれている。そして、各プログラマブル素子にシミュレーション対象となる回路の論理(アルゴリズム)を書き込む。つまり、回路の論理を、一旦、プリミティブなゲートのレベルに直してから、プログラマブル素子にマッピングする。これにより、実際に回路を作成することなく、アクセラレータを、シミュレーション対象の回路として動作させることができる。このようなアクセラレータをワークステーション(以下、WSと略記)により制御しながら、回路のシミュレーションを実行する。
【0004】
従来、シミュレーション対象の回路が大規模化した場合、アクセラレータを成す筐体内に装着される基板数を増加させることにより、メモリなどのハードウェアリソースを拡張して対応している。
また、基板数の増加だけでは対応できない場合には、複数台のアクセラレータを接続して対応する。このとき、予めシミュレーション対象の回路データを分割して各アクセラレータに割り当ててマッピングしておき、これらのアクセラレータを各回路データに対応させて同時に動作させることにより、回路のシミュレーションを実行する。
【0005】
このように複数台のアクセラレータを用いてシミュレーションを行なう際、アクセラレータ間を専用回線により接続するとともに、複数台のアクセラレータのうちの1台をマスタアクセラレータとし、このマスタアクセラレータに、全アクセラレータのシミュレーション動作を制御するための1台の制御用WSを直接的に接続する。
【0006】
そして、マスタアクセラレータは、制御用WSからシミュレーションのためのトレース情報を受けると、そのトレース情報を解析し、そのトレース情報に応じた情報を前記専用回線により他のアクセラレータへ送る。また、シミュレーション実行時に、アクセラレータ間では、前記専用回線を介してシミュレーションに関するデータが送受信される。このようにして、各アクセラレータは、制御用WSからのトレース情報に従ってアクセラレータ間で通信を行ないながら動作し、シミュレーションを実行する。シミュレーション結果は、前記専用回線を通じてマスタアクセラレータに送られ、このマスタアクセラレータから制御用WSへ送られる。なお、トレース情報には、論理シミュレーションを行なってトレースすべき信号の名(信号名)が含まれている。
【0007】
【発明が解決しようとする課題】
しかし、上述のごとく1台のWSにより複数台のアクセラレータを制御しながらシミュレーションを実行する場合、分割された回路データは各アクセラレータの制御部で処理されるので、ユーザがトレースポイントとして指定した大量の信号名を各アクセラレータでアドレス情報に変換しなければならない。このため、各アクセラレータの制御部におけるアドレス変換処理が実際のシミュレーションの実行時間に比べて大きくなり、シミュレータとしての性能を充分に発揮できない。また、アクセラレータ間の専用回線が、シミュレーションのためのデータ送受信以外に制御命令の送信にも使用されるため、専用回線の負荷が重くなり、シミュレーション性能を低下させる要因の一つになっている。
【0008】
そこで、複数台のアクセラレータそれぞれにスレーブサーバWSをそなえ、1台の制御用WSが、これらのスレーブサーバWSに対してトレース情報を送り、各スレーブサーバWSが、各アクセラレータを直接的に制御するように構成したシステムも提案されている。
このようなシステムでは、各スレーブサーバWSでアドレス情報の変換処理が行なわれるので、各アクセラレータの負荷が軽減される。また、トレース情報が、専用回線を用いることなく、各スレーブサーバWSから各アクセラレータへ直接的に送られるので、専用回線の負荷も軽減される。
【0009】
ところで、上述したシステムにおいて制御用WSが複数台のスレーブサーバWSに対してトレース情報を送る手法としては、以下の2つの手法▲1▼,▲2▼を用いることが考えられる。
手法▲1▼:制御用WSが、各アクセラレータによってシミュレートされる回路部分に係るデータ(各アクセラレータの処理対象となるべきデータ)を判別し、その部分のみを各スレーブサーバWSに送る。つまり、制御用WSは、スレーブサーバWS毎に異なる内容のトレース情報を送る。
【0010】
手法▲2▼:制御用WSが、全てのスレーブサーバWSに全く同じトレース情報を放送(同報/同報通信)し、各スレーブサーバWSが、そのスレーブサーバWSの制御対象アクセラレータによってシミュレートされる回路部分に係るデータ(制御対象アクセラレータの処理対象となるべきデータ)を抽出し、そのデータ(トレース情報)に対する処理をアクセラレータに実行させる。
【0011】
しかしながら、手法▲1▼では、制御用WSが、各アクセラレータの処理対象データ(トレース情報)を判別しなければならない。このため、シミュレーション対象回路の規模が大きくなり、処理データ量(トレースポイントとして指定する信号名の数等)が膨大になると、複数台のスレーブサーバWSを管理しなければならない制御用WSの負荷が重くなりすぎ、処理効率上好ましくない。
【0012】
また、手法▲1▼および手法▲2▼のいずれを用いた場合でも、各アクセラレータによるシミュレーション結果は、各スレーブサーバWSから制御用WSへ送られ、この制御用WSで結合(concatenate)される。このとき、シミュレーション対象の回路データが分割され複数のアクセラレータに割り当てられているので、各スレーブサーバWSは、各アクセラレータで処理されているデータのアドレスを常に把握・記憶し、シミュレーション結果を制御用WSへ送る際には、そのアドレスをタグとしてシミュレーション結果に付加しなければならない。従って、シミュレーション対象回路の規模が大きくなると、各スレーブサーバWSの負荷が重くなってしまう。さらに、制御用WSでシミュレーション結果の結合を行なう際には、シミュレーション結果に付加されたアドレスを参照しながらデータの組込みを行なう必要があるため、シミュレーション対象回路の規模が大きくなると、そのシミュレーション結果の結合処理に極めて手間や時間を要する。
【0013】
本発明は、このような課題に鑑み創案されたもので、複数のシミュレーションアクセラレータを同時に動作させて論理シミュレーションを行なう際に、シミュレーション回路が大規模化しても高速かつ効率的に論理シミュレーションを実行できるようにして、シミュレーション性能の大幅な向上を実現した、シミュレーション方法およびシミュレーションシステムを提供することを目的とする。
【0014】
【課題を解決するための手段】
上記目的を達成するために、本発明のシミュレーション方法(請求項1)は、シミュレーション対象回路を分割して複数のシミュレーションアクセラレータに割り当て、これらのシミュレーションアクセラレータを同時に動作させることにより、該シミュレーション対象回路の論理シミュレーションを実行するためのものであって、前記論理シミュレーションを実行してトレースすべき信号を指定する信号名情報を含むトレース情報を、システム制御部から、該複数のシミュレーションアクセラレータにそれぞれ対応してそなえられた複数のアクセラレータ制御部へ放送出力(同報/同報通信)する第1ステップと、前記トレース情報に応じて各アクセラレータ制御部により各シミュレーションアクセラレータを制御しながら、各シミュレーションアクセラレータにより該シミュレーション対象回路の論理シミュレーションを実行することにより、該シミュレーションアクセラレータ毎に前記信号名情報により指定された信号の状態をトレースする第2ステップと、該複数のシミュレーションアクセラレータによって得られたトレースパターンを結合することにより、前記信号名情報により指定された全ての信号の状態をトレース結果として得る第3ステップとを有し、各シミュレーションアクセラレータに割り当てられた該シミュレーション対象回路の分割部分における信号の信号名情報とそのシミュレーションアクセラレータにマッピングされたアドレス情報との対応関係を、該アクセラレータ制御部毎に、アドレス情報データベースとして予め保持させておき、前記第2ステップにおいて、前記トレース情報に含まれる信号名情報に対応するアドレス情報が該アドレス情報データベースに存在する場合には、そのアドレス情報に対応するフィールドに、各シミュレーションアクセラレータにより得られた前記トレースパターンを出力する一方、前記トレース情報に含まれる信号名情報に対応するアドレス情報が該アドレス情報データベースに存在しない場合には、その信号名情報に対応するアドレス情報としてダミーアドレスを設定し、そのダミーアドレスに対応するフィールドに、前記トレースパターンとしてダミーパターンを出力し、前記第3ステップにおいて、前記ダミーパターン以外の実際のトレースパターンのみを結合して前記トレース結果を得ることを特徴としている。
【0015】
なお、前記第2ステップの実行前に、各アクセラレータ制御部において、前記トレース情報を記述した実行スクリプトに基づいて、前記論理シミュレーションの対象となる信号に対応するアドレス情報を該アドレス情報データベースから読み出してアドレス情報テーブルを作成するとともに、前記論理シミュレーションの対象となる信号に対応するアドレス情報が該アドレス情報データベースに存在しない場合には、その信号に対応する該アドレス情報テーブルのフィールドにダミーアドレスを格納しておいてから、前記第2ステップにおいて、各アクセラレータ制御部が該アドレス情報テーブルを参照しながら各シミュレーションアクセラレータを制御してもよい(請求項2)。
【0016】
この場合、前記第2ステップの実行前に、各アクセラレータ制御部において、前記トレース情報を記述した実行スクリプトに基づいて、前記論理シミュレーションの対象となる信号に対応するアドレス情報を該アドレス情報データベースから読み出してアドレス情報抽出データベースを作成するとともに、前記論理シミュレーションの対象となる信号に対応するアドレス情報が該アドレス情報データベースに存在しない場合には、その信号に対応する該アドレス情報抽出データベースのフィールドにダミーアドレスを格納しておいてから、前記第2ステップにおいて、各アクセラレータ制御部が、前記トレース情報に応じたアドレス情報を該アドレス情報抽出データベースから読み出し該アドレス情報テーブルとして展開してもよい(請求項3)。
【0017】
このとき、前記第2ステップにおいて、該アドレス情報抽出データベースを参照して前記信号名情報に対応するアドレス情報を該アドレス情報抽出データベースから読み出すモードと、該アドレス情報データベースを直接参照して前記信号名情報に対応するアドレス情報を該アドレス情報データベースから読み出すモードとのいずれか一方を選択的に切り替えて使用してもよい(請求項4)。
【0018】
また、前記第2ステップにおいて、前記信号名情報により指定された信号の状態がトレース不可能である場合、バックトレースによってトレース不可能な信号を出力しているゲート素子を検索し、該ゲート素子の入力端子における信号の状態をトレースするとともに該ゲート素子に対応する論理式を生成し、該ゲート素子の入力端子における信号の状態をトレースしてもよい(請求項5)。
【0019】
さらに、該複数のシミュレーションアクセラレータを、異なる複数の接続構成で接続した状態でそれぞれ動作可能に構成し、ある接続構成で該複数のシミュレーションアクセラレータを動作させている場合には、他の接続構成で該複数のシミュレーションアクセラレータを動作させる命令を受け付けても、当該接続構成での動作を完了するまで当該命令を待機させるように、接続構成の排他制御を行なってもよい(請求項6)。
【0020】
一方、本発明のシミュレーションシステム(請求項7)は、シミュレーション対象回路を分割して複数のシミュレーションアクセラレータに割り当て、これらのシミュレーションアクセラレータを同時に動作させることにより、該シミュレーション対象回路の論理シミュレーションを実行するためのものであって、該複数のシミュレーションアクセラレータをそれぞれ直接的に制御する複数のアクセラレータ制御部と、前記論理シミュレーションを実行してトレースすべき信号を指定する信号名情報を含むトレース情報を該複数のアクセラレータ制御部に対して放送出力(同報/同報通信)することにより該複数のシミュレーションアクセラレータによる前記論理シミュレーションを制御するシステム制御部と、該複数のシミュレーションアクセラレータによる前記論理シミュレーションの結果を結合する結合部とをそなえるとともに、各シミュレーションアクセラレータに割り当てられた該シミュレーション対象回路の分割部分における信号の信号名情報とそのシミュレーションアクセラレータにマッピングされたアドレス情報との対応関係を予め保持するアドレス情報データベースを、該アクセラレータ制御部毎にそなえ、各アクセラレータ制御部が、前記トレース情報に応じて各シミュレーションアクセラレータを制御しながら各シミュレーションアクセラレータにより該シミュレーション対象回路の論理シミュレーションを実行させることにより、該シミュレーションアクセラレータ毎に前記信号名情報により指定された信号の状態をトレースさせ、その際、前記トレース情報に含まれる信号名情報に対応するアドレス情報が該アドレス情報データベースに存在する場合には、そのアドレス情報に対応するフィールドに、各シミュレーションアクセラレータにより得られた前記トレースパターンを出力する一方、前記トレース情報に含まれる信号名情報に対応するアドレス情報が該アドレス情報データベースに存在しない場合には、その信号名情報に対応するアドレス情報としてダミーアドレスを設定し、そのダミーアドレスに対応するフィールドに、前記トレースパターンとしてダミーパターンを出力し、該結合部が、該複数のシミュレーションアクセラレータによって得られた、前記ダミーパターン以外の実際のトレースパターンのみを結合することにより、前記信号名情報により指定された全ての信号の状態をトレース結果として得ることを特徴としている。
【0021】
なお、前記シミュレーションシステムにおいて、各アクセラレータ制御部が、前記論理シミュレーションの実行前に、前記トレース情報を記述した実行スクリプトに基づいて、前記論理シミュレーションの対象となる信号に対応するアドレス情報を該アドレス情報データベースから読み出してアドレス情報テーブルを作成するとともに、前記論理シミュレーションの対象となる信号に対応するアドレス情報が該アドレス情報データベースに存在しない場合には、その信号に対応する該アドレス情報テーブルのフィールドにダミーアドレスを格納しておいてから、該アドレス情報テーブルを参照しながら各シミュレーションアクセラレータを制御してもよい(請求項8)。
【0022】
この場合、各アクセラレータ制御部が、前記論理シミュレーションの実行前に、前記トレース情報を記述した実行スクリプトに基づいて、前記論理シミュレーションの対象となる信号に対応するアドレス情報を該アドレス情報データベースから読み出してアドレス情報抽出データベースを作成するとともに、前記論理シミュレーションの対象となる信号に対応するアドレス情報が該アドレス情報データベースに存在しない場合には、その信号に対応する該アドレス情報抽出データベースのフィールドにダミーアドレスを格納しておいてから、前記論理シミュレーションの実行時に、前記トレース情報に応じたアドレス情報を該アドレス情報抽出データベースから読み出し該アドレス情報テーブルとして展開してもよい(請求項9)。
【0023】
このとき、各アクセラレータ制御部が、該アドレス情報抽出データベースを参照して前記信号名情報に対応するアドレス情報を該アドレス情報抽出データベースから読み出すモードと、該アドレス情報データベースを直接参照して前記信号名情報に対応するアドレス情報を該アドレス情報データベースから読み出すモードとのいずれか一方を選択的に切り替えて使用してもよい(請求項10)。
【0024】
また、前記信号名情報により指定された信号の状態がトレース不可能である場合、バックトレースによってトレース不可能な信号を出力しているゲート素子を検索し、該ゲート素子の入力端子における信号の状態をトレースするとともに該ゲート素子に対応する論理式を生成し、該ゲート素子の入力端子における信号の状態をトレース結果してもよい(請求項11)。
【0025】
さらに、該複数のシミュレーションアクセラレータを、異なる複数の接続構成で接続した状態でそれぞれ動作可能に構成し、ある接続構成で該複数のシミュレーションアクセラレータを動作させている場合には、他の接続構成で該複数のシミュレーションアクセラレータを動作させる命令を受け付けても、当該接続構成での動作を完了するまで当該命令を待機させるように、接続構成の排他制御を行なう排他制御部をそなえてもよい(請求項12)。
【0026】
上述の構成により、本発明のシミュレーション方法(請求項1〜6)およびシミュレーションシステム(請求項7〜12)では、システム制御部はトレース情報を全てのアクセラレータ制御部に対して放送出力(同報/同報通信)するので、システム制御部が、各シミュレーションアクセラレータの処理対象データ(トレース情報)を判別する必要がなくなり、システム制御部の負荷を軽減することができる。
【0027】
また、シミュレーションアクセラレータに割り当てられていない信号がトレース情報により指定された場合、各アクセラレータ制御部において、その信号に対応するアドレスとしてダミーアドレスが設定され、そのダミーアドレスに対応するフィールドには、論理シミュレーションにより得られたトレースパターンとしてダミーパターンが出力されるので、各アクセラレータ制御部は、各シミュレーションアクセラレータで処理されているデータのアドレスを常に把握・記憶するが必要なく、通常と同様に動作しながら、割り当てられた回路分割部分のシミュレーションを行なうことができ、各アクセラレータ制御部を負荷を軽減することができる。
【0028】
さらに、各シミュレーションアクセラレータからのトレースパターン(論理シミュレーション結果)の結合を行なう際には、ダミーパターン以外の実際のトレースパターンのみを結合するだけで、トレース結果を容易に得ることが可能になり、論理シミュレーション結果の結合処理を簡易に且つ短時間で行なうことができる。
【0029】
また、論理シミュレーションの実行前に、トレース情報に応じたアドレス情報をアドレス情報データベースから抽出してアドレス情報テーブル/アドレス情報抽出データベースを作成しておくことにより、トレース情報に含まれる信号名情報のアドレス変換処理を行なう必要がなくなる(請求項2〜4,8〜10)。
さらに、信号の状態がトレース不可能であっても、論理式を用いてトレース結果を得ることができる(請求項5,11)。
【0030】
またさらに、複数のシミュレーションアクセラレータの接続構成に合わせた排他制御を行なうことにより、様々な接続形態で複数のシミュレーションアクセラレータを同時に動作させることが可能になる(請求項6,12)。
【0031】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
図1は本発明の一実施形態としてのシミュレーションシステムの構成を説明するための図、図2は本発明の一実施形態としてのシミュレーションシステムの全体構成を概略的に示す図である。
【0032】
これらの図1および図2に示すように、本実施形態のシミュレーションシステム10は、独立して動作する複数のシミュレーションアクセラレータ11−1〜11−Nをそなえ、これらのシミュレーションアクセラレータ11−1〜11−Nを専用回線12により相互にデータ通信可能に接続しており、シミュレーション対象回路を分割して複数のシミュレーションアクセラレータ11−1〜11−Nに割り当て、これらのシミュレーションアクセラレータ11−1〜11−Nを同時に動作させることにより、シミュレーション対象回路の論理シミュレーションを実行するものである。
【0033】
そして、シミュレーションシステム10は、シミュレーションアクセラレータ11−1〜11−Nのほかに、制御用ワークステーション(以下、制御用WSと略記)20と、スレーブサーバワークステーション(以下、スレーブサーバWSもしくは単にサーバと略記)30−1〜30−Nと、排他制御部40とをそなえて構成されている。
【0034】
なお、以下では、シミュレーションアクセラレータ11−1〜11−Nを単にアクセラレータ11と略記する場合がある。また、アクセラレータ11−1は、全アクセラレータ11−1〜11−Nによるシミュレーション動作を制御すべく専用回線12を通じて他のアクセラレータ11−2〜11−Nに対して命令を送出する機能を有しており、このアクセラレータ11−1は、マスタアクセラレータと呼ばれる。
【0035】
ここで、スレーブサーバWS(アクセラレータ制御部)30−1〜30−Nはそれぞれアクセラレータ11−1〜11−Nを直接的に制御するものであり、その詳細な構成については後述する。なお、以下では、スレーブサーバWS30−1〜30−Nを単にスレーブサーバWS30と略記する場合がある。
また、制御用WS20は、前記論理シミュレーションを実行してトレースすべき信号を指定する信号名情報を含むトレース情報を、スレーブサーバWS30−1〜30−Nに対して放送出力(同報/同報通信)することによりアクセラレータ11による論理シミュレーションを制御するシステム制御部21として機能するほか、アクセラレータ11による論理シミュレーションの結果を結合する結合部としての機能も果たす。この結合部としての機能は、制御用WS20において結合用の別プログラムを走らせることにより実現される。
【0036】
なお、システム制御部21は、ユーザが入力したコマンドに従い、後述する排他制御部40,実行制御部32,入出力制御部31にプロセス間通信で制御命令を送り、アクセラレータを遠隔地から操作できるようになっている。また、制御用WS20には、トレース情報を記述した実行スクリプトを格納する実行スクリプトデータベース22が付設されている。また、図1や図2には図示しないが、制御用WS20には、前記結合部により得られたトレース出力パターンを格納するトレース出力パターンデータベース50(図13参照)も付設されている。
【0037】
マスタアクセラレータ11−1を制御するスレーブサーバWS30−1は、後述する入出力制御部31および実行制御部32としての機能を果たすほか、その他のアクセラレータ11−2〜11−Nをそれぞれ制御するスレーブサーバWS30−2〜30−Nは、後述する実行制御部32としての機能を果たす。
また、各スレーブサーバWS30には、後述するアドレス情報データベース33およびアドレス情報抽出データベース34が付設されるとともに、アドレス情報テーブル35(図3参照)を展開されるメモリ(図示省略)がそなえられている。このメモリとしては、各スレーブサーバWS30に通常そなえられているRAM等のワーキングメモリを用いることができる。
【0038】
さらに、各スレーブサーバWS30には、各アクセラレータ11により得られたシミュレーション結果(出力パターン)を一時的に格納するトレースファイル36(図13参照)もそなえられているが、このトレースファイル36としても、各スレーブサーバWS30に通常そなえられているRAM等のワーキングメモリを用いることができる。
【0039】
各スレーブサーバWS30に付設されたアドレス情報データベース33は、各アクセラレータ11に割り当てられたシミュレーション対象回路の分割部分における信号の信号名情報とそのアクセラレータ11にマッピングされたアドレス情報との対応関係を予め保持するものである。
スレーブサーバWS30−1における実行制御部32は、マスタアクセラレータ11−1に命令を送り、このマスタアクセラレータ11−1の動作を制御するものであり、マスタアクセラレータ11−1が、実行制御部32からの命令に従い、専用回線12を介して他のアクセラレータ11−2〜11−Nの動作を制御することになる。
【0040】
各スレーブサーバWS30における入出力制御部31は、各アクセラレータ11へのデータ入力の制御と各アクセラレータ11からのトレース出力の制御とを行なうものである。
また、入出力制御部31は、システム制御部21(制御用WS20)から送られてきたトレースコマンド(トレース情報を記述した実行スクリプト)の指示に従って、アドレス情報データベース33もしくは後述するアドレス情報抽出データベース34から、図3(a)〜図3(c)に示すごとく、メモリ上にアドレス情報テーブル35を展開・生成する機能を有している。
【0041】
そして、全てのスレーブサーバWS30における入出力制御部31は、システム制御部21から放送(同報)されてきた同じトレース情報を受信すると、そのトレース情報に応じて各アクセラレータ11を制御しながら各アクセラレータ11によりシミュレーション対象回路の論理シミュレーションを実行させることにより、アクセラレータ11毎に信号名により指定された信号の状態をトレースさせる。
【0042】
その際、各入出力制御部31は、トレース情報に含まれる信号名に対応するアドレス情報がアドレス情報テーブル35(アドレス情報DB33)に存在する場合には、そのアドレス情報に対応するフィールドに、各アクセラレータ11により得られたトレースパターンを出力する一方、トレース情報に含まれる信号名に対応するアドレス情報がアドレス情報テーブル35(アドレス情報DB33)に存在しない場合には、その信号名に対応するアドレス情報としてダミーアドレスを設定し、そのダミーアドレスに対応するフィールドに、トレースパターンとしてダミーパターンを出力する。
【0043】
そして、シミュレーション終了後、制御用WS20における結合部としての機能が、アクセラレータ11によって得られた、前記ダミーパターン以外の実際のトレースパターンのみを結合することにより、トレース情報の信号名により指定された全ての信号の状態がトレース結果として得られる。
ところで、システム制御部21および入出力制御部31は、アドレス情報抽出機能を有しており、このアドレス情報抽出機能により、シミュレーションを実行させるスクリプトから信号名を参照する部分を調べ、その信号に対応するアドレス情報をアドレス情報DB33から抽出し、アドレス情報抽出DB34をアクセラレータ11毎に生成する。
【0044】
つまり、各スレーブサーバWS30における入出力制御部31は、論理シミュレーションの実行前に、制御用WS20からのトレース情報を記述した実行スクリプトに基づいて、論理シミュレーションの対象となる信号に対応するアドレス情報をアドレス情報DB33から読み出してアドレス情報抽出DB34を作成するが、その際、論理シミュレーションの対象となる信号に対応するアドレス情報がアドレス情報DB33に存在しない場合には、その信号に対応するアドレス情報抽出DB34のフィールドにダミーアドレスを格納しておく。そして、本実施形態では、入出力制御部31は、論理シミュレーションの実行時に、制御用WS20からのトレース情報に応じたアドレス情報をアドレス情報抽出DB34から読み出しアドレス情報テーブル35としてメモリ上に展開している。
【0045】
さらに、システム制御部21および入出力制御部31は、アドレス情報抽出DB入力モード,アドレス情報抽出DB出力モード,ノーマルモードの3つのモードを有しており、ユーザからの指示に応じてこれらのモードの一つを選択的に切り替えて使用するようになっている。モード切替動作や各モードに対応した詳細な動作については、図4を参照しながら後述する。
【0046】
アドレス情報抽出DB入力モードでは、アドレス情報DB33を使わず、シミュレーション実行前にアドレス情報抽出DB34を読み込んでからシミュレーションを実行する。つまり、シミュレーション実行中、アドレス情報抽出DB34を参照して信号名に対応するアドレス情報をアドレス情報抽出DB34から読み出す。
【0047】
アドレス情報抽出DB出力モードは、シミュレーションを実行せず実行スクリプトを解析してトレースポイント指示だけを調べてアドレス情報抽出DB34を出力する。
ノーマルモードでは、シミュレーション実行中に信号の参照要求があれば、その都度、アドレス情報DB33にアクセスし、アドレス情報を取り出す。つまり、シミュレーション実行中、アドレス情報DB33を直接参照して信号名に対応するアドレス情報をアドレス情報DB33から読み出す。
【0048】
さらに、本実施形態の入出力制御部31は、論理式出力機能を有している。この論理式出力機能は、トレース指示された信号がハードウェアの制限によりトレースできない場合、バックトレースにより評価素子の入力側の信号を検索し、その検索結果に基づいて論理式を生成し、その入力側の信号に対応するアドレス情報とその論理式とをアドレス情報抽出データ34に出力する機能である。
【0049】
つまり、信号名により指定された信号の状態がトレース不可能である場合、バックトレースによってトレース不可能な信号を出力しているゲート素子(評価素子)を検索し、そのゲート素子の入力端子における信号の状態をトレースするとともにゲート素子に対応する論理式を生成し、ゲート素子の入力端子における信号の状態をトレースするように、ゲート素子の入力端子における信号に対応するアドレス情報をアドレス情報抽出データ34に書き込むとともに、生成された論理式もアドレス情報抽出データ34に格納しておく。このような論理式出力機能の詳細については、図5および図6を参照しながら後述する。
【0050】
上述した実行制御部32および入出力制御部31は、アクセラレータ11とデバイスドライバにより直結されている。
また、本実施形態では、アクセラレータ11を、異なる複数の接続構成で接続した状態でそれぞれ動作可能に構成しており、排他制御部40は、ある接続構成でアクセラレータ11を動作させている場合には、他の接続構成でアクセラレータ11を動作させる命令(実行要求)を受け付けても当該接続構成での動作を完了するまで当該命令を待機させるように、接続構成の排他制御を行なうものである。この排他制御部40は、複数のユーザからの実行要求を受付順に保持して待機させる待ち行列テーブル41(図8,図18,図19参照)を有している。
【0051】
なお、上述した排他制御部40は、図1においていずれのWSにも属していないが、実際には、制御用WS20もしくはスレーブサーバWS30のうちの1台により実現されるもので、どのWS上にそなえられても構わない。
排他制御部40による排他制御の詳細については、図7〜図12および図14〜図21を参照しながら後述する。
【0052】
次に、上述した本実施形態のシミュレーションシステム10の動作について、図3〜図21を参照しながら説明する。
〔1〕回路データの分割
シミュレーションを行なう回路データをアクセラレータ11の数(図1,図2に示すではN台)に分割する。その際、分割された回路データ毎に、その回路データに含まれる信号名と各アクセラレータ11にマッピングされたアドレス情報との対応関係を、アドレス情報DB33として求める。そして、シミュレーションを実行する前に、分割された回路データとアドレス情報DB33とを、各アクセラレータ11に接続されているスレーブサーバWS30に転送しておく。
【0053】
〔2〕アドレス情報テーブルの生成
シミュレーションを実行する前にトレースする信号を定義する。トレース信号は、トレースポイントとしてグループ化される。
このトレースポイントの情報(トレース情報)は、システム制御部21から各入出力制御部31へ送信される。トレース情報の一部を記述した実行スクリプトは、例えば下記のようなものである。
【0054】
tracepoint -name tp1 sig1 sig2 sig3 sig4
trace -on tp1
この実行スクリプトは、信号名sig1,sig2,sig3,sig4 を“tp1 ”としてグループ化し、これらの名をもつ信号の状態をトレースするように指示している。
各入力制御部31は、このトレースポイントの情報に基づいて、図3(a)〜図3(c)に示すようにアドレス情報テーブル35を生成する。
【0055】
図3(a)〜図3(c)に示す例では、アクセラレータ11を3台、つまりスレーブサーバWS30を3台そなえている。そして、図3(a)に示すサーバ30−1に接続されるアクセラレータ11−1には、信号名sig1,sig2 の信号を含む回路部分のシミュレーションが割り当てられ、図3(b)に示すサーバ30−2に接続されたアクセラレータ11−2には、信号名sig3の信号を含む回路部分のシミュレーションが割り当てられ、図3(c)に示すサーバ30−3に接続されたアクセラレータ11−3には、信号名sig4の信号を含む回路部分のシミュレーションが割り当てられている。
【0056】
前述した通り、シミュレーション対象回路は分割されているので、トレース情報に含まれる信号名に対応するアドレス情報が、各入出力制御部31におけるアドレス情報DB33(もしくはアドレス情報抽出DB34)に存在するとは限らない。そこで、本実施形態では、各入出力制御部31において、図3(a)〜図3(c)に示すごとく、アドレスが存在する場合には正しいアドレスをそのまま書き込む一方で、存在しないアドレスについてはダミーアドレス(図中では“-"として記述)として書き込んだ、アドレス情報テーブル35を生成する。
【0057】
シミュレーション実行時、トレースのオン/オフの命令がシステム制御部21から各入出力制御部31へ発行される。命令を受信した入出力制御部31は、アドレス情報テーブル35の内容をアクセラレータ11に転送し、トレース制御を行なう。
〔3〕アドレス情報のリモート抽出
シミュレーションを実行する前に、制御用WS20とスレーブサーバWS30との間でプロセス間通信を行ない、各アクセラレータ11で実際にトレースする信号のアドレス情報だけを調べ、その情報をアクセラレータ11毎にアドレス情報抽出DB34としてアドレス情報DB33から抽出する。
【0058】
図4に示すごとく対応するアドレス情報として、信号名に対応するアドレスが実際に存在するアクセラレータ11についてはそのアドレスをアドレス情報抽出DB34に格納し、信号名に対応するアドレスが存在しないアクセラレータ11についてはダミーアドレスをアドレス情報抽出DB34に格納する。
そして、シミュレーション起動時に、アドレス情報抽出DB34は、各アクセラレータ11に接続されている各スレーブサーバWS30のメモリ上にアドレス情報テーブル35として展開される。
【0059】
ここで、図4に示すフローチャート(ステップS11〜S32)に従って、各スレーブサーバWS30におけるモード切替動作や各モードに対応した詳細な動作について説明する。
各スレーブサーバWS30(入出力制御部31)では、図4に示すように、ステップS11およびS20において、アドレス情報抽出DB入力モード,アドレス情報抽出DB出力モード,ノーマルモードのうちのいずれが現在指定されているかを判断する。
【0060】
アドレス情報抽出DB入力モードが指定されている場合(ステップS11のYESルート)、アドレス情報抽出データベース34を読み込んでメモリ上に展開し、アドレス情報テーブル35を作成する(ステップS12,S13)。この後、システム制御部21からの命令(コマンド)を受けると、コマンド解析を行なう(ステップS14)。そして、その命令がトレース命令であれば(ステップS15のYESルート)、アクセラレータ11にトレース情報を設定し(ステップS16)、その命令がシミュレーション実行命令であれば(ステップS15のNOルートからステップS17のYESルート)、アクセラレータ11によりシミュレーション動作を実行させ(ステップS18)、その命令が終了命令であれば(ステップS17のNOルートからステップS19のYESルート)、処理を終了する。
【0061】
アドレス情報抽出DB出力モードが指定されている場合(ステップS11のNOルートからステップS20のYESルート)、システム制御部21からの命令(コマンド)を受けるとコマンド解析を行ない(ステップS21)、その命令がトレースポイント指示であれば(ステップS22のYESルート)、そのトレースポイント指示(実行スクリプト)に基づいて、アドレス情報をアドレス情報DB33から抽出しアドレス情報抽出DB34に出力・格納する(ステップS23)。そして、その命令が終了命令であれば(ステップS22のNOルートからステップS24のYESルート)、処理を終了する。
【0062】
ノーマルモードが指定されている場合(ステップS11のNOルートからステップS20のNOルート)、システム制御部21からの命令(コマンド)を受けると、コマンド解析を行なう(ステップS25)。そして、その命令がトレースポイント指示であれば(ステップS26のYESルート)、そのトレースポイント指示(実行スクリプト)に基づいて、アドレス情報をアドレス情報DB33から直接的に抽出して、メモリ上のアドレス情報テーブル35に書き込む(ステップS27)。その命令がトレース命令であれば(ステップS26のNOルートからステップS28のYESルート)、アクセラレータ11にトレース情報を設定し(ステップS29)、その命令がシミュレーション実行命令であれば(ステップS28のNOルートからステップS30のYESルート)、アクセラレータ11によりシミュレーション動作を実行させ(ステップS31)、その命令が終了命令であれば(ステップS30のNOルートからステップS32のYESルート)、処理を終了する。
【0063】
〔4〕論理式の生成
アクセラレータ11では、ハードウェアリソースに制限があるため、直接トレースできるポイントとできないポイントとが存在することになる。
そこで、本実施形態では、前述した通り、トレース指定された信号が直接トレースできない信号であった場合、その信号の入力側のプリミティブを調べる。もし、そのプリミティブが評価ゲート(ゲート素子)であった場合は、その評価ゲートの入力信号を調べ、評価ゲートと入力信号とから論理式を生成し、その入力信号に対応するアドレスと論理式とをアドレス情報抽出DB34に登録する。入力信号が直接トレース可能であった場合は、そのアドレスをアドレス情報抽出DB34に登録する。
【0064】
例えば、図5(a)に示す信号(ANDゲートの出力信号)Xを直接トレースできない場合に、その信号Xのトレース命令〔図5(b)の“trace -on X”〕をシステム制御部21から受けると、その信号Xの入力側のプリミティブがANDゲートであるので、図5(b)に示すように、ANDゲートの論理式X=A&Bを生成し、ANDゲートの入力信号A,Bがトレース可能であれば、その信号A,Bに対応するアドレス情報を論理式X=A&Bとともにアドレス情報抽出DB34に登録する。信号A,Bが直接トレースできない信号であった場合には、図6に示すように、全ての信号が直接トレースできる信号にたどり着けるまで、同様の処理を繰り返す。
【0065】
ここで、図6に示すフローチャート(ステップS41〜S51)に従って、論理式生成動作について説明する。
各スレーブサーバWS30(入出力制御部31)では、図6に示すように、トレース命令(トレース情報)を受けると、トレース指定された信号Xを調べ(ステップS41)、その信号Xがトレース可能な信号であるか否かを判断する(ステップS42)。
【0066】
トレース可能な信号であれば(ステップS42のYESルート)、そのトレース信号Xに識別子(id)を付与し(ステップS50)、そのトレース信号Xに対応するアドレス情報を、アドレス情報抽出DB34に格納する(ステップS51)。
一方、信号がトレース可能な信号でない場合(ステップS42のNOルート)には、バックトレースにより、その信号Xを出力しているプリミティブを検索し(ステップS43)、そのプリミティブがゲート素子であるか否かを判断する(ステップS44)。ゲート素子でない場合(ステップS44のNOルート)、信号Xの状態はトレースできないことをメッセージ出力するとともに、トレース処理を終了する(ステップS45)。
【0067】
また、ゲート素子である場合(ステップS44のYESルート)、そのプリミティブの入力信号に識別子(id1,id2,…)を付与し(ステップS46)、その入力信号がトレース可能な信号であるか否かを判断する(ステップS47)。
トレース可能な信号であれば(ステップS47のYESルート)、ゲート素子と入力信号とから信号Xの値を求める論理式を生成し、その論理式と入力信号に対応するアドレスとをアドレス情報抽出DB34に格納してから(ステップS49)、トレース信号Xに識別子(id)を付与し(ステップS50)、その識別子を、アドレス情報抽出DB34に格納した論理式と入力信号に対応するアドレスとのセットに付与することにより、そのセットがトレース信号Xに対応するものであることが明示される(ステップS51)。
【0068】
従って、本実施形態では、トレース情報により指定された信号がトレース不可能な信号である場合には、その信号よりも上流側のゲート素子への入力信号をトレースし、そのトレース結果をゲート素子に応じた論理式に代入することによって、トレース不可能な信号についてのトレース結果を得ることができる。
〔5〕入力パターンの送信
入力パターンは同一のパターンを各アクセラレータ11に接続されたWS30へ送信しておく。
【0069】
このとき、各WS30のメモリ上に全パターンを保持する場合と、パターンが長大であれば各WS30がパターンの一部をファイルとして持つ場合とがある。各WS30は、アドレス情報抽出DB34を調べ、該当するアドレスが存在すればその値をアクセラレータ11の入力パターンメモリに送信する。
〔6〕排他制御
本実施形態のシミュレーションシステム10では、アクセラレータ11の接続構成により様々な接続形態を採ることができ、それぞれの接続形態に対して排他制御部40により排他制御を行なう。
【0070】
採り得る形態として、以下のような2つの接続構成C1およびC2がある。
C1:全てのアクセラレータ11を接続して動作させる接続構成〔図7(a)参照;図中、“○”はアクセラレータを示す〕。
C2:アクセラレータ11をグループ化し、グループ毎に独立して動作させる接続形態〔図7(b)参照;図中、“○”はアクセラレータを示す〕。
【0071】
排他制御部40は、図8に示すような待ち行列テーブル41を有している。
この待ち行列テーブル41の項目としては、リクエスト識別子(request id),メインセット(main set),グループ識別子(group id),状態(status)がある。
リクエスト識別子(request id)は、システム制御部21から発行された使用要求に対してユニークに付与される。
【0072】
メインセット(main set)の項目には、図7(a)に示す接続構成C1を要求された時に“1”が設定され、図7(b)に示す接続構成C2を要求されたときに“0”が設定される。
グループ識別子(group id)は、接続構成C2で使用するグループ毎に付与された識別子である。
【0073】
例えば、接続構成C2において、アクセラレータ{1,2,3}のグループ識別子を“1”、アクセラレータ{4,5}のグループ識別子を“2”、アクセラレータ{6,7,8}のグループ識別子を“3”とする。接続構成C1の場合には、グループ構成がなく、グループ識別子として“0”を設定する。
このグループ識別子とアクセラレータ11との組合せは、予めコンフィギュレーションファイルに定義されており、排他制御部40が最初に起動されるときにこのコンフィギュレーションファイルを読み込む。
【0074】
状態(status)の項目には、メインセットとグループ識別子とによって表される接続構成でアクセラレータ11が使用中の場合、“Active”が設定される一方、実行待ちの場合、“Wait”が設定される。
ユーザからアクセラレータ11の使用要求があると、図9に示すように、システム制御部21から排他制御部40へ“ request”命令が発行される。システム制御部21は排他制御部40から“active”命令が返ってくるまで待機状態(“wait”)になる。
【0075】
排他制御部40の動作は、エントリ処理とチェック処理とに分けられ、これらのエントリ処理(Entry)およびチェック処理(Check)への遷移状態は図10に示すようになる。
つまり、システム制御部21から排他制御の“ request”命令が来ると、最初にエントリ処理が行なわれる。このエントリ処理では、図11を参照しながら後述するような処理を行ない、要求内容を待ち行列テーブル41に登録する。
【0076】
エントリ処理で“Active”状態でない場合(即ち“Wait”状態の場合)は、チェック処理に移行する。
チェック処理では、図12を参照しながら後述するような処理を行ない、要求が“Active”になるまで一定の時間間隔でチェック処理を繰り返す。“Active”状態になると、排他制御部40はシステム制御部21へ“active”命令を返す。
【0077】
シミュレーションが終了した場合には、図9に示すように、“end ”命令がスレーブサーバWS30(入出力制御部31,実行制御部32)からシステム制御部21へ返され、システム制御部21から排他制御部40へ排他制御の“end ”命令が発行される。排他制御部40は、“end ”命令を受けるとリクエスト識別子に基づいて、待ち行列テーブル41における対応部分を探し出して、その対応部分を待ち行列テーブル41から削除する。
【0078】
ここで、図11に示すフローチャート(ステップS61〜S70)に従って排他制御部40のエントリ処理動作について説明するとともに、図12に示すフローチャート(ステップS71〜S86)に従って排他制御部40のチェック処理動作について説明する。
エントリ処理に際しては、図11に示すように、ユーザから要求された接続構成の情報に基づいて、待ち行列テーブル41に登録すべき接続構成のメインセットを“ms”とし(ステップS61)、その接続構成のグループ識別子を“g”とし(ステップS62)、待ち行列テーブル41の先頭の登録データを“T”とする(ステップS63)。
【0079】
この後、登録データTのメインセットが“ms”と異なるか否かを判断し(ステップS64)、異なっている場合(ステップS64のYESルート)、状態(status)として“Wait”が設定される(ステップS65)。登録データTのメインセットが“ms”である場合(ステップS64のNOルート)、登録データTが待ち行列テーブル41の最終登録データであるか否かを判断する(ステップS66)。最終登録データでなければ(ステップS66のNOルート)、待ち行列テーブル41の次の登録データを“T”とし(ステップS67)、ステップS64の処理へ戻る。
【0080】
一方、最終登録データであった場合(ステップS66のYESルート)、待ち行列テーブル41に“g”と同じグループ識別子が存在するか否かを判断する(ステップS68)。同じグループ識別子が存在する場合(ステップS68のYESルート)、状態(status)として“Wait”が設定され(ステップS69)、同じグループ識別子が存在しない場合(ステップS68のNOルート)、状態(status)として“Active”が設定される(ステップS70)。
【0081】
また、チェック処理に際しては、図12に示すように、状態(status)が“Active”であるかを調べるべき接続構成のメインセットを“ms”とし(ステップS71)、その接続構成のグループ識別子を“g”とし(ステップS72)、その接続構成のリクエスト識別子を“reqid”とし(ステップS73)、待ち行列テーブル41の先頭の登録データを“T”とする(ステップS74)。
【0082】
この後、登録データTのメインセットが“ms”と異なるか否かを判断し(ステップS75)、異なっている場合(ステップS75のYESルート)、状態(status)として“Wait”が設定される(ステップS76)。登録データTのメインセットが“ms”である場合(ステップS75のNOルート)、登録データTのグループ識別子が“g”と同じであるか否かを判断する(ステップS77)。
【0083】
同じである場合(ステップS77のYESルート)、登録データTの状態(status)が“Active”か否かを判断し(ステップS78)、“Active”である場合(ステップS78のYESルート)、状態(status)として“Wait”が設定される(ステップS69)。“Active”でない場合(ステップS78のNOルート)、登録データTのリクエスト識別子と“reqid”とが同じか否かを判断し(ステップS80)、同じでなければ(ステップS80のNOルート)、状態(status)として“Wait”が設定され(ステップS81)、同じであれば(ステップS80のYESルート)、登録データTの状態(status)を“Active”にする(ステップS82,S83)。
【0084】
一方、登録データTのグループ識別子が“g”と同じでない場合(ステップS77のNOルート)、登録データTが待ち行列テーブル41の最終登録データであるか否かを判断し(ステップS84)、最終登録データでなければ(ステップS84のNOルート)、待ち行列テーブル41の次の登録データを“T”とし(ステップS85)、ステップS75の処理へ戻る。また、最終登録データであった場合(ステップS84のYESルート)、状態(status)として“Wait”が設定される(ステップS86)。
【0085】
〔7〕制御コマンドの送信
本実施形態では、制御コマンドは、制御用WS20からアクセラレータ11を管理するスレーブサーバWS30へプロセス間通信で送信される。
このとき、シミュレーション実行命令は、制御用WS20から、そのシミュレーションを実行すべきアクセラレータ11に接続されているスレーブサーバWS30だけへ送信される。
【0086】
また、トレースのオン/オフ命令(トレース情報)は、制御用WS20から、同じ命令を全てのスレーブサーバWS30へ送信(放送/同報/同報通信)される。
各アクセラレータ11は、同じトレースポイントを持つので、同じトレース命令によりトレース処理に関して同一動作を行なう。
【0087】
〔8〕トレースデータ出力
本実施形態のシミュレーションシステム10では、図13に示すように、シミュレーション停止時に、各スレーブサーバWS30(入出力制御部31)は、各アクセラレータ11のトレースメモリ(図示省略)から出力パターンを取り出し、各スレーブサーバWS30(入出力制御部31)では、取り出された出力パターンからトレース指定された信号だけを、トレースファイル36に出力する。
【0088】
そして、図13に示すように、トレースファイル36において、ダミーアドレスに対応するフィールドにはダミーパターン“x”を出力する。実際には、このダミーパターン“x”としては“0”が出力される。
〔9〕後処理
シミュレーション終了後、アクセラレータ11毎にトレースファイル36が得られる。そして、制御用WS20で実行される別プログラムにより、シミュレーション時刻毎にトレースデータを結合する。図13に示すように、ダミーパターン“x”の部分は、処理を行なわず、実際のトレースパターンだけを最終のトレース出力パターンとしてトレース出力パターンDB50へ出力する。なお、前述のようにダミーパターン“x”として“0”を設定した場合、各サーバ30からの出力パターンベクトルの論理和(OR)を算出するだけで、トレースデータを結合することができる。
【0089】
〔10〕接続構成の排他制御の具体例
3台のアクセラレータに制御用としてそれぞれws1,ws2,ws3というホスト名をもつWSが図14(a)または図14(b)に示すように接続されている場合の具体例について以下に説明する。
例えば、図14(a)に示す接続構成C1のグループ識別子を“0”とし、図14(b)に示す接続構成C2において、{ws1,ws2}のグループ識別子を“1”とし、{ws3}のグループ識別子を“0”とする。
【0090】
グループ識別子“0”においては、ws1のローカルディレクトリ/home/proj1,ws2のローカルディレクトリ/home/proj2,ws3のローカルディレクトリ/home/proj3に、回路モジュール“test mod0 ”の3分割された回路データがそれぞれ置かれている。
グループ識別子“1”においては、ws1のローカルディレクトリ/home/proj1,ws2のローカルディレクトリ/home/proj2に、回路モジュール“test mod1 ”の2分割された回路データがそれぞれ置かれている。
【0091】
グループ識別子“2”においては、ws3のローカルディレクトリ/home/proj3に回路モジュール“test mod2 ”の回路データが分割されずに置かれている。図15はグループ識別子“0”の実行スクリプトの具体例を示し、図16はグループ識別子“1”の実行スクリプトの具体例を示し、図17はグループ識別子“2”の実行スクリプトを示している。
【0092】
これらの図15〜図17に示される実行スクリプト中に記述されているコマンドには、以下のような意味がある。なお、以下の説明文中において、図中では記載されているアンダスコア(underscore;下線)の記載は省略されている。
“sa host ”は、アクセラレータにつながっているWSとWS上の作業ディレクトリとを指定するコマンドである。
【0093】
“sa loadmodule ”は、“sa host ”コマンドで指定したディレクトリにある回路データをアクセラレータに転送するコマンドである。
“sa open -i”は、シミュレーションの外部入力パターンを指定するコマンドである。
“sa open -o”は、シミュレーション結果を格納するファイル(トレースファイル)を指定するコマンドである。
【0094】
“sa tracepoint ”は、トレースを行なう信号名を指定するコマンドである。“sa trace”は、“sa tracepoint ”コマンドで指定したトレースポイントに対してトレースのオン/オフを行なうコマンドである。
“sa run”は、オプションで指定した時間までアクセラレータにシミュレーションを実行させるコマンドである。
【0095】
“sa quit ”は、アクセラレータに処理の終了を通知するコマンドである。
本実施形態のシミュレーションシステム10によれば、図15のスクリプトを実行した場合、トレースデータは、ws1のローカルディレクトリ/home/proj1,ws2のローカルディレクトリ/home/proj2,ws3のローカルディレクトリ/home/proj3 にそれぞれ“trace file0 ”という名前のファイルで生成される。
【0096】
各トレースファイルは、サイズが同じであるが、ダミーアドレスやダミーのトレース結果を含んでおり、その内容は異なっている。
トレースファイルである ws1:/home/proj1/trace file0, ws2:/home/proj2/trace file0, ws3:/home/proj3/trace file0を結合して、その結合結果が、回路モジュール“test mod0 ”の最終的なシミュレーション結果となる。
【0097】
また、本実施形態の排他制御方法によれば、グループ識別子“0”の接続構成で実行されているか、もしくは、連続して“Wait”状態になっている間は、グループ識別子“1”および“2”に対する実行要求はどちらも“Wait”状態になる。
図18に示すように、リクエスト識別子“11”の処理が終わるまで、リクエスト識別子“12”,“13”,“14”の状態(status)は“Active”になることはない。
【0098】
逆に、グループ識別子“0”の接続構成で実行されていないときは、グループ識別子“1”および“2”の接続構成は独立に動作する。グループ識別子“1”または“2”の接続構成で実行されているか、もしくは、連続してWait状態になっている間は、グループ識別子“0”の接続構成での実行要求は“Wait”状態になる。
【0099】
図19に示すように、リクエスト識別子“12”,“13”,“14”の処理が終わるまで、リクエスト識別子“15”の状態(status)は“Active”になることはない。リクエスト識別子“15”と“16”とはメインセットが異なるので、リクエスト識別子“15”の処理が終わるまで、リクエスト識別子“16”の状態(status)は“Active”になることはない。
【0100】
アドレス情報抽出DB34を出力する場合は、図20に示すように、“sa host ”コマンドの前に“sa write ext”コマンドを実行する。“sa write ext”コマンドが実行されると、“sa host ”から“sa quit ”までに記述されているトレースポイント情報を抽出する。他の“sa run”などのコマンドは実行されない。
【0101】
“sa quit ”を実行した時に、ws1に“/home/proj1/ext file0 ”、ws2に“/home/proj2/ext file0 ”、ws3に“/home/proj3/ext file0 ”というファイル名でアドレス情報抽出DBファイルを出力する。
アドレス情報抽出DB34を入力する場合は、図21に示すように、“sa host ”コマンドの前に“sa read ext ”コマンドを実行する。
【0102】
“sa host ”コマンドを実行した時に、ws1の“/home/proj1/ext file0 ”、ws2の“/home/proj2/ext file0 ”、ws3の“/home/proj3/ext file0 ”というファイルからアドレス情報抽出DBファイルが読み込まれる。
“sa read ext ”コマンドが実行されると、“sa host ”から“sa quit ”までに記述されているトレースポイントの処理を行なう際、アドレス情報DB33のアクセスは行なわない。
【0103】
本実施形態において、以前の処理により、ws1の“/home/proj1/ext file0 ”、ws2の“/home/proj2/ext file0 ”、ws3の“/home/proj3/ext file0 ”というファイルからアドレス情報抽出DBファイルが既に作成されている場合には、アドレス情報DB33を検索する必要はなく、図21に示す“sa host ”〜“sa tracepoint ”のコマンドは実行されず、実質的には、コマンド“sa read ext"からコマンド“sa trace -on”へ飛ぶことになり、シミュレーション実行時間を大幅に短縮することができる。
【0104】
このように、本発明の一実施形態によれば、制御用WS20(システム制御部21)が各アクセラレータ11の処理対象データを判別する必要がなくなり、制御用WS20の負荷を軽減することができる。
また、各スレーブサーバWS30(入出力制御部31)は、各アクセラレータ11で処理されているデータのアドレスを常に把握・記憶するが必要なく、通常と同様に動作しながら、割り当てられた回路分割部分のシミュレーションを行なうことができ、各アクセラレータ制御部の負荷を軽減することができる。
【0105】
さらに、ダミーパターン以外の実際のトレースパターンのみを結合するだけでトレース結果を容易に得ることが可能になり、論理シミュレーション結果の結合処理を簡易に且つ短時間で行なうことができる。
従って、シミュレーション回路が大規模化しても高速かつ効率的に論理シミュレーションを実行することができ、シミュレーション性能が大幅に向上する。
【0106】
なお、論理シミュレーションの実行前に、トレース情報に応じたアドレス情報をアドレス情報DB33から抽出してアドレス情報テーブル35/アドレス情報抽出DB34を作成しておくことにより、トレース情報に含まれる信号名情報のアドレス変換処理を行なう必要がなくなり、シミュレーションに要する時間を大幅に短縮することができ、特に、同じシミュレーション対象の回路データについて様々な入力パターンでシミュレーションを実行する場合に極めて有効である。
【0107】
また、トレース情報により指定された信号の状態がトレース不可能であっても、論理式を用いてトレース結果を得ることができるので、ハードウェアリソースの制限を緩和することができ、トレースできる信号の数の制限をクリアすることができる。
さらに、排他制御部40により複数のアクセラレータ11の接続形態に合わせた排他制御を行なうことで、様々な接続形態で複数のアクセラレータ11を同時に動作させることが可能になり、これらのアクセラレータ11の運用効率が大幅に向上する。
【0108】
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
【0109】
【発明の効果】
以上詳述したように、本発明のシミュレーション方法(請求項1〜6)およびシミュレーションシステム(請求項7〜12)によれば、システム制御部が各シミュレーションアクセラレータの処理対象データを判別する必要がなくなり、システム制御部の負荷を軽減することができるほか、各アクセラレータ制御部は、各シミュレーションアクセラレータで処理されているデータのアドレスを常に把握・記憶するが必要なく、通常と同様に動作しながら、割り当てられた回路分割部分のシミュレーションを行なうことができ、各アクセラレータ制御部の負荷を軽減することができ、さらに、ダミーパターン以外の実際のトレースパターンのみを結合するだけでトレース結果を容易に得ることが可能になり、論理シミュレーション結果の結合処理を簡易に且つ短時間で行なうことができる。従って、シミュレーション回路が大規模化しても高速かつ効率的に論理シミュレーションを実行することができ、シミュレーション性能が大幅に向上するという効果がある。
【0110】
なお、論理シミュレーションの実行前に、トレース情報に応じたアドレス情報をアドレス情報データベースから抽出してアドレス情報テーブル/アドレス情報抽出データベースを作成しておくことにより、トレース情報に含まれる信号名情報のアドレス変換処理を行なう必要がなくなり、シミュレーションに要する時間を大幅に短縮することができ、特に、同じシミュレーション対象の回路データについて様々な入力パターンでシミュレーションを実行する場合に極めて有効である(請求項2〜4,8〜10)。
【0111】
また、論理シミュレーションの実行時に信号の状態がトレース不可能であっても、論理式を用いてトレース結果を得ることができるので、ハードウェアリソースの制限を緩和することができ、トレースできる信号の数の制限をクリアすることができる(請求項5,11)。
さらに、複数のシミュレーションアクセラレータの接続形態に合わせた排他制御を行なうことにより、様々な接続形態で複数のシミュレーションアクセラレータを同時に動作させることが可能になり、これらのシミュレーションアクセラレータの運用効率が大幅に向上するという効果もある(請求項6,12)。
【図面の簡単な説明】
【図1】本発明の一実施形態としてのシミュレーションシステムの構成を説明するための図である。
【図2】本発明の一実施形態としてのシミュレーションシステムの全体構成を概略的に示す図である。
【図3】(a)〜(c)は本実施形態の各スレーブサーバWSにおけるアドレス情報テーブルの具体例を示す図である。
【図4】本実施形態における各スレーブサーバWSの動作を説明するためのフローチャートである。
【図5】(a)および(b)はいずれも本実施形態の論理式生成動作を説明するための図である。
【図6】本実施形態の論理式生成動作を説明するためのフローチャートである。
【図7】(a)および(b)はいずれも本実施形態におけるシミュレーションアクセラレータの接続構成の具体例を示す図である。
【図8】本実施形態の排他制御部における待ち行列テーブルを示す図である。
【図9】本実施形態における排他制御部の動作を説明するためのシーケンス図である。
【図10】本実施形態における排他制御部の動作(エントリ処理およびチェック処理への遷移状態)を説明するための図である。
【図11】本実施形態における排他制御部のエントリ処理動作を説明するためのフローチャートである。
【図12】本実施形態における排他制御部のチェック処理動作を説明するためのフローチャートである。
【図13】本実施形態の各アクセラレータにより得られたトレースパターンの出力状態および結合手順を説明するための図である。
【図14】(a)および(b)はいずれも本実施形態におけるシミュレーションアクセラレータの接続構成の具体例を示す図である。
【図15】本実施形態で処理される実行スクリプトの具体例を示す図である。
【図16】本実施形態で処理される実行スクリプトの具体例を示す図である。
【図17】本実施形態で処理される実行スクリプトの具体例を示す図である。
【図18】本実施形態の排他制御部における待ち行列テーブルの具体例を示す図である。
【図19】本実施形態の排他制御部における待ち行列テーブルの具体例を示す図である。
【図20】本実施形態で処理される実行スクリプトの具体例を示す図である。
【図21】本実施形態で処理される実行スクリプトの具体例を示す図である。
【符号の説明】
10 シミュレーションシステム
11−1 マスタアクセラレータ(シミュレーションアクセラレータ)
11−2〜11−N アクセラレータ(シミュレーションアクセラレータ)
12 専用回線
20 制御用ワークステーション(システム制御部,結合部)
21 システム制御部
22 実行スクリプトデータベース
30−1〜30−N スレーブサーバワークステーション(アクセラレータ制御部)
31 入出力制御部
32 実行制御部
33 アドレス情報データベース
34 アドレス情報抽出データベース
35 アドレス情報テーブル
36 トレースファイル
40 排他制御部
41 待ち行列テーブル
50 トレース出力パターンデータベース
(table of contents)
TECHNICAL FIELD OF THE INVENTION
Conventional technology
Problems to be solved by the invention
Means for solving the problem
Embodiment of the Invention (FIGS. 1 to 21)
The invention's effect
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a simulation method and a simulation system suitable for use in performing a logic simulation of a large-scale circuit such as an LSI by simultaneously operating a plurality of simulation accelerators.
[0002]
[Prior art]
In general, in order to speed up logic simulation of large-scale circuits such as LSIs, dedicated hardware called simulation accelerators (hereinafter sometimes simply referred to as accelerators) that perform the same operations as software logic simulators are used. .
[0003]
The accelerator includes a plurality of substrates in one housing, and a large number of programmable elements (GPE: Gate Primitive Elements) are incorporated in each substrate. Then, the logic (algorithm) of the circuit to be simulated is written in each programmable element. That is, the logic of the circuit is once corrected to the primitive gate level and then mapped to the programmable element. As a result, the accelerator can be operated as a circuit to be simulated without actually creating a circuit. A circuit simulation is performed while controlling such an accelerator by a workstation (hereinafter abbreviated as WS).
[0004]
Conventionally, when a circuit to be simulated is enlarged, hardware resources such as a memory are expanded by increasing the number of boards mounted in a casing constituting an accelerator.
If it is not possible to cope with the increase in the number of substrates alone, a plurality of accelerators can be connected. At this time, the circuit data to be simulated is divided in advance, assigned to each accelerator, mapped, and the accelerator is operated corresponding to each circuit data at the same time, thereby executing circuit simulation.
[0005]
In this way, when simulating using multiple accelerators, the accelerators are connected by a dedicated line, and one of the multiple accelerators is used as a master accelerator, and the simulation operation of all accelerators is performed on this master accelerator. One control WS for control is directly connected.
[0006]
When the master accelerator receives trace information for simulation from the control WS, the master accelerator analyzes the trace information and sends information corresponding to the trace information to the other accelerator via the dedicated line. Also, during simulation, data related to simulation is transmitted and received between accelerators via the dedicated line. In this way, each accelerator operates while performing communication between accelerators according to the trace information from the control WS, and executes a simulation. The simulation result is sent to the master accelerator through the dedicated line, and is sent from the master accelerator to the control WS. Note that the trace information includes the name of the signal (signal name) to be traced by performing a logic simulation.
[0007]
[Problems to be solved by the invention]
However, when the simulation is executed while controlling a plurality of accelerators by one WS as described above, the divided circuit data is processed by the control unit of each accelerator, so that a large amount of user specified as a trace point is obtained. The signal name must be converted into address information by each accelerator. For this reason, the address conversion process in the control unit of each accelerator becomes longer than the actual simulation execution time, and the performance as a simulator cannot be sufficiently exhibited. In addition, since the dedicated line between accelerators is used not only for data transmission and reception for simulation, but also for transmission of control commands, the load on the dedicated line becomes heavy and is one of the factors that degrade the simulation performance.
[0008]
Therefore, each of a plurality of accelerators is provided with a slave server WS, and one control WS sends trace information to these slave servers WS so that each slave server WS directly controls each accelerator. A system configured as described above has also been proposed.
In such a system, the address information conversion process is performed in each slave server WS, so the load on each accelerator is reduced. Further, since the trace information is directly sent from each slave server WS to each accelerator without using the dedicated line, the load on the dedicated line is also reduced.
[0009]
By the way, in the system described above, the following two methods {circle around (1)} and {circle around (2)} can be considered as methods for sending the trace information to the plurality of slave servers WS by the control WS.
Method {circle around (1)}: The control WS discriminates data related to the circuit portion simulated by each accelerator (data to be processed by each accelerator) and sends only that portion to each slave server WS. That is, the control WS sends different trace information for each slave server WS.
[0010]
Method (2): The control WS broadcasts the same trace information to all the slave servers WS (broadcast / broadcast communication), and each slave server WS is simulated by the controlled accelerator of the slave server WS. Data (data to be processed by the controlled accelerator) is extracted, and the accelerator is caused to execute processing on the data (trace information).
[0011]
However, in the method {circle around (1)}, the control WS must discriminate processing target data (trace information) of each accelerator. For this reason, when the scale of the circuit to be simulated becomes large and the amount of processing data (number of signal names specified as trace points, etc.) becomes enormous, the load on the control WS that must manage a plurality of slave servers WS is increased. It becomes too heavy and is not preferable in terms of processing efficiency.
[0012]
In addition, regardless of which method (1) or method (2) is used, the simulation result by each accelerator is sent from each slave server WS to the control WS and is concatenated by this control WS. At this time, since the circuit data to be simulated is divided and assigned to a plurality of accelerators, each slave server WS always grasps and stores the address of data processed by each accelerator, and the simulation result is stored in the control WS. When sending to, the address must be added to the simulation result as a tag. Therefore, when the scale of the circuit to be simulated increases, the load on each slave server WS increases. Furthermore, when combining simulation results with the control WS, it is necessary to incorporate data while referring to the addresses added to the simulation results. The joining process requires much effort and time.
[0013]
The present invention was devised in view of such problems, and when a logic simulation is performed by simultaneously operating a plurality of simulation accelerators, a logic simulation can be executed quickly and efficiently even if the simulation circuit becomes large in scale. Thus, an object of the present invention is to provide a simulation method and a simulation system that realize a significant improvement in simulation performance.
[0014]
[Means for Solving the Problems]
In order to achieve the above object, a simulation method according to the present invention (claim 1) divides a simulation target circuit and assigns the simulation target circuit to a plurality of simulation accelerators, and simultaneously operates these simulation accelerators. Trace information including signal name information for specifying a signal to be traced by executing the logic simulation is received from the system control unit corresponding to the plurality of simulation accelerators. A first step of broadcasting output (broadcast / broadcast communication) to a plurality of accelerator control units provided, and each simulation accelerator is controlled by each accelerator control unit according to the trace information, and each simulation is performed. A second step of tracing the state of the signal specified by the signal name information for each simulation accelerator by executing a logic simulation of the circuit to be simulated by the simulation accelerator, and obtained by the plurality of simulation accelerators. A third step of obtaining, as a trace result, the states of all signals specified by the signal name information by combining trace patterns, and signals in divided portions of the simulation target circuit assigned to each simulation accelerator Is associated with the address information mapped to the simulation accelerator for each accelerator control unit in advance as an address information database. When the address information corresponding to the signal name information included in the trace information exists in the address information database, the trace pattern obtained by each simulation accelerator is output to the field corresponding to the address information. On the other hand, if the address information corresponding to the signal name information included in the trace information does not exist in the address information database, a dummy address is set as the address information corresponding to the signal name information, and the address corresponding to the dummy address is set. A dummy pattern is output as the trace pattern in the field to be processed, and in the third step, only the actual trace pattern other than the dummy pattern is combined to obtain the trace result.
[0015]
Before executing the second step, each accelerator control unit reads address information corresponding to a signal to be subjected to the logic simulation from the address information database based on an execution script describing the trace information. An address information table is created, and if the address information corresponding to the signal to be subjected to the logic simulation does not exist in the address information database, a dummy address is stored in the field of the address information table corresponding to the signal. Then, in the second step, each accelerator control unit may control each simulation accelerator while referring to the address information table (claim 2).
[0016]
In this case, before execution of the second step, each accelerator control unit reads out address information corresponding to the signal to be subjected to the logic simulation from the address information database based on the execution script describing the trace information. When the address information extraction database is created and the address information corresponding to the signal to be subjected to the logic simulation does not exist in the address information database, a dummy address is stored in the field of the address information extraction database corresponding to the signal. In the second step, each accelerator control unit may read out address information corresponding to the trace information from the address information extraction database and expand it as the address information table. ).
[0017]
At this time, in the second step, a mode in which the address information corresponding to the signal name information is read from the address information extraction database with reference to the address information extraction database, and the signal name is directly referred to the address information database. Any one of the modes in which the address information corresponding to the information is read from the address information database may be selectively switched and used.
[0018]
In the second step, when the state of the signal specified by the signal name information is not traceable, a gate element that outputs a signal that cannot be traced by back tracing is searched, and the gate element The state of the signal at the input terminal may be traced, and a logical expression corresponding to the gate element may be generated to trace the state of the signal at the input terminal of the gate element.
[0019]
Further, when the plurality of simulation accelerators are configured to be operable in a state where they are connected with different connection configurations, and the plurality of simulation accelerators are operated with a certain connection configuration, Even if an instruction to operate a plurality of simulation accelerators is received, exclusive control of the connection configuration may be performed so that the command is waited until the operation in the connection configuration is completed.
[0020]
On the other hand, the simulation system of the present invention (Claim 7) divides a simulation target circuit, assigns it to a plurality of simulation accelerators, and operates these simulation accelerators simultaneously to execute a logic simulation of the simulation target circuit. A plurality of accelerator control units that directly control the plurality of simulation accelerators, and trace information including signal name information that specifies a signal to be traced by executing the logic simulation. A system control unit that controls the logic simulation by the plurality of simulation accelerators by broadcasting output (broadcast / broadcast communication) to the accelerator control unit; A combination unit that combines the results of the logic simulation by the Sererator and a correspondence between the signal name information of the signal in the divided part of the simulation target circuit assigned to each simulation accelerator and the address information mapped to the simulation accelerator An address information database holding the relationship in advance is prepared for each accelerator control unit, and each accelerator control unit executes a logic simulation of the simulation target circuit by each simulation accelerator while controlling each simulation accelerator according to the trace information. To cause the state of the signal specified by the signal name information to be traced for each simulation accelerator. When the address information corresponding to the signal name information included in the information exists in the address information database, the trace pattern obtained by each simulation accelerator is output to the field corresponding to the address information, while the trace information When the address information corresponding to the signal name information included in the information does not exist in the address information database, a dummy address is set as the address information corresponding to the signal name information, and the field corresponding to the dummy address A dummy pattern is output as a trace pattern, and the combining unit combines only the actual trace patterns other than the dummy pattern obtained by the plurality of simulation accelerators, thereby specifying all the signal names specified by the signal name information. Signal status Is obtained as a trace result.
[0021]
In the simulation system, each accelerator control unit sets address information corresponding to a signal to be subjected to the logic simulation based on an execution script describing the trace information before executing the logic simulation. An address information table is created by reading from the database, and if the address information corresponding to the signal to be subjected to the logic simulation does not exist in the address information database, the address information table corresponding to the signal has a dummy field. After storing the address, each simulation accelerator may be controlled while referring to the address information table.
[0022]
In this case, before executing the logic simulation, each accelerator control unit reads address information corresponding to the signal to be subjected to the logic simulation from the address information database based on the execution script describing the trace information. An address information extraction database is created, and if address information corresponding to the signal to be subjected to the logic simulation does not exist in the address information database, a dummy address is set in the field of the address information extraction database corresponding to the signal. Then, the address information corresponding to the trace information may be read from the address information extraction database and developed as the address information table when the logic simulation is executed.
[0023]
At this time, each accelerator control unit refers to the address information extraction database to read out address information corresponding to the signal name information from the address information extraction database, and directly refers to the address information database to identify the signal name. Any one of the modes in which the address information corresponding to the information is read from the address information database may be selectively switched and used.
[0024]
In addition, when the signal state specified by the signal name information is not traceable, a gate element outputting a signal that cannot be traced by back tracing is searched, and the signal state at the input terminal of the gate element And a logical expression corresponding to the gate element may be generated, and the signal state at the input terminal of the gate element may be traced.
[0025]
Further, when the plurality of simulation accelerators are configured to be operable in a state where they are connected with different connection configurations, and the plurality of simulation accelerators are operated with a certain connection configuration, Even if an instruction to operate a plurality of simulation accelerators is received, an exclusive control unit that performs exclusive control of the connection configuration may be provided so that the command is waited until the operation in the connection configuration is completed. ).
[0026]
With the above-described configuration, in the simulation method (Claims 1 to 6) and the simulation system (Claims 7 to 12) of the present invention, the system control unit broadcasts the trace information to all accelerator control units (broadcast / (Broadcast communication), the system control unit does not need to determine processing target data (trace information) of each simulation accelerator, and the load on the system control unit can be reduced.
[0027]
In addition, when a signal that is not assigned to the simulation accelerator is specified by the trace information, a dummy address is set as an address corresponding to the signal in each accelerator control unit, and a logic simulation is performed in the field corresponding to the dummy address. Because the dummy pattern is output as the trace pattern obtained by the above, each accelerator control unit does not always need to know and store the address of the data processed by each simulation accelerator, while operating as usual, A simulation of the assigned circuit division part can be performed, and the load on each accelerator control unit can be reduced.
[0028]
Furthermore, when combining trace patterns (logic simulation results) from each simulation accelerator, it is possible to easily obtain trace results by combining only actual trace patterns other than dummy patterns. The simulation result combining process can be performed easily and in a short time.
[0029]
In addition, the address information corresponding to the trace information is extracted from the address information database and the address information table / address information extraction database is created before the logic simulation is performed, so that the address of the signal name information included in the trace information. There is no need to perform conversion processing (claims 2-4, 8-10).
Further, even if the signal state cannot be traced, the trace result can be obtained by using the logical expression (claims 5 and 11).
[0030]
Furthermore, by performing exclusive control in accordance with the connection configuration of the plurality of simulation accelerators, it is possible to simultaneously operate the plurality of simulation accelerators in various connection forms (claims 6 and 12).
[0031]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a diagram for explaining the configuration of a simulation system as one embodiment of the present invention, and FIG. 2 is a diagram schematically showing the entire configuration of the simulation system as one embodiment of the present invention.
[0032]
As shown in FIG. 1 and FIG. 2, the simulation system 10 of this embodiment includes a plurality of simulation accelerators 11-1 to 11 -N that operate independently, and these simulation accelerators 11-1 to 11-. N are connected to each other via a dedicated line 12 so as to be able to communicate with each other, and the simulation target circuit is divided and assigned to a plurality of simulation accelerators 11-1 to 11-N, and these simulation accelerators 11-1 to 11-N are assigned. By operating simultaneously, a logic simulation of the circuit to be simulated is executed.
[0033]
In addition to the simulation accelerators 11-1 to 11-N, the simulation system 10 includes a control workstation (hereinafter abbreviated as control WS) 20, a slave server workstation (hereinafter referred to as slave server WS or simply a server). (Abbreviation) 30-1 to 30-N and an exclusive control unit 40 are provided.
[0034]
In the following, the simulation accelerators 11-1 to 11-N may be simply abbreviated as the accelerator 11. The accelerator 11-1 has a function of sending commands to the other accelerators 11-2 to 11-N through the dedicated line 12 in order to control the simulation operation by all the accelerators 11-1 to 11-N. The accelerator 11-1 is called a master accelerator.
[0035]
Here, the slave servers WS (accelerator control units) 30-1 to 30-N directly control the accelerators 11-1 to 11-N, respectively, and a detailed configuration thereof will be described later. In the following description, the slave servers WS30-1 to 30-N may be simply abbreviated as the slave server WS30.
Also, the control WS 20 broadcasts the trace information including the signal name information specifying the signal to be traced by executing the logic simulation to the slave servers WS 30-1 to 30 -N (broadcast / broadcast). In addition to functioning as a system control unit 21 that controls logic simulation by the accelerator 11 by communicating, it also functions as a coupling unit that combines the results of logic simulation by the accelerator 11. The function as the coupling unit is realized by running another program for coupling in the control WS 20.
[0036]
The system control unit 21 sends control commands to the exclusive control unit 40, the execution control unit 32, and the input / output control unit 31 to be described later by inter-process communication according to a command input by the user so that the accelerator can be operated from a remote location. It has become. Also, the control WS 20 is provided with an execution script database 22 for storing an execution script describing the trace information. Although not shown in FIGS. 1 and 2, the control WS 20 is also provided with a trace output pattern database 50 (see FIG. 13) for storing the trace output patterns obtained by the coupling unit.
[0037]
The slave server WS30-1 that controls the master accelerator 11-1 functions as an input / output control unit 31 and an execution control unit 32 described later, and also controls other accelerators 11-2 to 11-N. The WSs 30-2 to 30-N serve as an execution control unit 32 described later.
Each slave server WS30 is provided with an address information database 33 and an address information extraction database 34, which will be described later, and a memory (not shown) in which an address information table 35 (see FIG. 3) is expanded. . As this memory, a working memory such as a RAM normally provided in each slave server WS30 can be used.
[0038]
Furthermore, each slave server WS30 is also provided with a trace file 36 (see FIG. 13) for temporarily storing the simulation result (output pattern) obtained by each accelerator 11, but also as this trace file 36, A working memory such as a RAM normally provided in each slave server WS30 can be used.
[0039]
The address information database 33 attached to each slave server WS30 holds in advance the correspondence between the signal name information of signals in the divided part of the simulation target circuit assigned to each accelerator 11 and the address information mapped to the accelerator 11. To do.
The execution control unit 32 in the slave server WS30-1 sends an instruction to the master accelerator 11-1, and controls the operation of the master accelerator 11-1, and the master accelerator 11-1 receives from the execution control unit 32. According to the command, the operations of the other accelerators 11-2 to 11-N are controlled via the dedicated line 12.
[0040]
The input / output control unit 31 in each slave server WS 30 performs control of data input to each accelerator 11 and control of trace output from each accelerator 11.
Further, the input / output control unit 31 follows an instruction of a trace command (execution script describing the trace information) sent from the system control unit 21 (control WS 20), or an address information extraction database 34 described later. As shown in FIGS. 3A to 3C, the address information table 35 is developed and generated on the memory.
[0041]
When the input / output control unit 31 in all the slave servers WS30 receives the same trace information broadcast (broadcast) from the system control unit 21, each input / output control unit 31 controls each accelerator 11 according to the trace information. 11, the logic simulation of the circuit to be simulated is executed, and the state of the signal designated by the signal name is traced for each accelerator 11.
[0042]
At this time, if the address information corresponding to the signal name included in the trace information exists in the address information table 35 (address information DB 33), each input / output control unit 31 sets each field in the field corresponding to the address information. When the trace pattern obtained by the accelerator 11 is output and the address information corresponding to the signal name included in the trace information does not exist in the address information table 35 (address information DB 33), the address information corresponding to the signal name is output. A dummy address is set, and a dummy pattern is output as a trace pattern in the field corresponding to the dummy address.
[0043]
Then, after the simulation is completed, all functions specified by the signal name of the trace information are obtained by combining only the actual trace patterns other than the dummy patterns obtained by the accelerator 11 as a combining unit in the control WS 20. The state of the signal is obtained as a trace result.
By the way, the system control unit 21 and the input / output control unit 31 have an address information extraction function. By using this address information extraction function, a part that refers to a signal name is checked from a script that executes a simulation, and the signal is handled. Address information to be extracted is extracted from the address information DB 33, and an address information extraction DB 34 is generated for each accelerator 11.
[0044]
That is, the input / output control unit 31 in each slave server WS30 obtains address information corresponding to a signal to be subjected to the logic simulation based on the execution script describing the trace information from the control WS 20 before the execution of the logic simulation. The address information extraction DB 34 is created by reading from the address information DB 33. At this time, if the address information corresponding to the signal to be subjected to the logic simulation does not exist in the address information DB 33, the address information extraction DB 34 corresponding to the signal. A dummy address is stored in this field. In this embodiment, the input / output control unit 31 reads the address information corresponding to the trace information from the control WS 20 from the address information extraction DB 34 and expands it on the memory as the address information table 35 when executing the logic simulation. Yes.
[0045]
Further, the system control unit 21 and the input / output control unit 31 have three modes of an address information extraction DB input mode, an address information extraction DB output mode, and a normal mode, and these modes are selected according to instructions from the user. One of these is selectively switched for use. The mode switching operation and detailed operation corresponding to each mode will be described later with reference to FIG.
[0046]
In the address information extraction DB input mode, the address information DB 33 is not used, and the simulation is executed after reading the address information extraction DB 34 before executing the simulation. That is, during the simulation, the address information corresponding to the signal name is read from the address information extraction DB 34 with reference to the address information extraction DB 34.
[0047]
In the address information extraction DB output mode, the execution script is analyzed without executing the simulation, only the trace point instruction is examined, and the address information extraction DB 34 is output.
In the normal mode, whenever there is a signal reference request during simulation execution, the address information DB 33 is accessed and the address information is extracted. That is, during simulation execution, address information corresponding to the signal name is read from the address information DB 33 by directly referring to the address information DB 33.
[0048]
Furthermore, the input / output control unit 31 of this embodiment has a logical expression output function. This logical expression output function searches for the signal on the input side of the evaluation element by back tracing when the traced signal cannot be traced due to hardware limitations, generates a logical expression based on the search result, and inputs the logical expression. This is a function for outputting the address information corresponding to the side signal and its logical expression to the address information extraction data 34.
[0049]
In other words, if the signal state specified by the signal name cannot be traced, the gate element (evaluation element) that outputs the non-traceable signal is searched by back tracing, and the signal at the input terminal of the gate element is searched. The address information corresponding to the signal at the input terminal of the gate element is converted into the address information extraction data 34 so that the logical expression corresponding to the gate element is generated and the state of the signal at the input terminal of the gate element is traced. And the generated logical expression is also stored in the address information extraction data 34. Details of the logical expression output function will be described later with reference to FIGS. 5 and 6.
[0050]
The execution control unit 32 and the input / output control unit 31 described above are directly connected to the accelerator 11 by a device driver.
Further, in the present embodiment, the accelerator 11 is configured to be operable in a state where the accelerators 11 are connected with a plurality of different connection configurations, and the exclusive control unit 40 operates the accelerator 11 with a certain connection configuration. Even if an instruction (execution request) for operating the accelerator 11 in another connection configuration is received, exclusive control of the connection configuration is performed so that the command waits until the operation in the connection configuration is completed. The exclusive control unit 40 has a queue table 41 (see FIGS. 8, 18, and 19) that holds execution requests from a plurality of users in the order of reception and waits.
[0051]
The exclusive control unit 40 described above does not belong to any WS in FIG. 1, but is actually realized by one of the control WS 20 or the slave server WS 30 and on which WS. It does not matter if it is provided.
Details of the exclusive control by the exclusive control unit 40 will be described later with reference to FIGS. 7 to 12 and FIGS. 14 to 21.
[0052]
Next, the operation of the simulation system 10 of the present embodiment described above will be described with reference to FIGS.
[1] Division of circuit data
The circuit data to be simulated is divided into the number of accelerators 11 (N in FIG. 1 and FIG. 2). At this time, for each divided circuit data, the correspondence between the signal name included in the circuit data and the address information mapped to each accelerator 11 is obtained as the address information DB 33. Then, before executing the simulation, the divided circuit data and the address information DB 33 are transferred to the slave server WS30 connected to each accelerator 11.
[0053]
[2] Generation of address information table
Define signals to trace before running simulation. Trace signals are grouped as trace points.
The trace point information (trace information) is transmitted from the system control unit 21 to each input / output control unit 31. An execution script describing a part of the trace information is, for example, as follows.
[0054]
tracepoint -name tp1 sig1 sig2 sig3 sig4
trace -on tp1
This execution script instructs the signal names sig1, sig2, sig3, and sig4 to be grouped as “tp1” and trace the state of signals having these names.
Each input control unit 31 generates an address information table 35 based on the trace point information as shown in FIGS.
[0055]
In the example illustrated in FIGS. 3A to 3C, three accelerators 11, that is, three slave servers WS30 are provided. The accelerator 11-1 connected to the server 30-1 shown in FIG. 3A is assigned with a simulation of a circuit portion including signals with signal names sig1, sig2, and the server 30 shown in FIG. -2 is assigned to the accelerator 11-2 connected to the server 11-3, and the accelerator 11-3 connected to the server 30-3 shown in FIG. The simulation of the circuit portion including the signal with the signal name sig4 is assigned.
[0056]
As described above, since the simulation target circuit is divided, the address information corresponding to the signal name included in the trace information is not always present in the address information DB 33 (or the address information extraction DB 34) in each input / output control unit 31. Absent. Therefore, in the present embodiment, as shown in FIGS. 3A to 3C, in each input / output control unit 31, when an address exists, a correct address is written as it is, while an address that does not exist is written. An address information table 35 written as a dummy address (described as “-” in the drawing) is generated.
[0057]
When the simulation is executed, a trace on / off command is issued from the system control unit 21 to each input / output control unit 31. The input / output control unit 31 that has received the instruction transfers the contents of the address information table 35 to the accelerator 11 and performs trace control.
[3] Remote extraction of address information
Before executing the simulation, the interprocess communication is performed between the control WS 20 and the slave server WS 30, and only the address information of the signal actually traced by each accelerator 11 is checked, and the information is extracted for each accelerator 11. Extracted from the address information DB 33 as DB 34.
[0058]
As shown in FIG. 4, as the address information corresponding to the accelerator 11 in which the address corresponding to the signal name actually exists, the address is stored in the address information extraction DB 34, and for the accelerator 11 in which the address corresponding to the signal name does not exist. The dummy address is stored in the address information extraction DB 34.
When the simulation is started, the address information extraction DB 34 is expanded as an address information table 35 on the memory of each slave server WS 30 connected to each accelerator 11.
[0059]
Here, according to the flowchart (steps S11 to S32) shown in FIG. 4, the mode switching operation in each slave server WS30 and the detailed operation corresponding to each mode will be described.
In each slave server WS30 (input / output control unit 31), as shown in FIG. 4, any one of the address information extraction DB input mode, the address information extraction DB output mode, and the normal mode is currently designated in steps S11 and S20. Judgment is made.
[0060]
When the address information extraction DB input mode is designated (YES route in step S11), the address information extraction database 34 is read and expanded on the memory, and the address information table 35 is created (steps S12 and S13). Thereafter, when an instruction (command) is received from the system control unit 21, command analysis is performed (step S14). If the instruction is a trace instruction (YES route in step S15), trace information is set in the accelerator 11 (step S16), and if the instruction is a simulation execution instruction (from the NO route in step S15 to step S17). (YES route), the simulation operation is executed by the accelerator 11 (step S18). If the instruction is an end instruction (from the NO route in step S17 to the YES route in step S19), the process is ended.
[0061]
When the address information extraction DB output mode is specified (NO route in step S11 to YES route in step S20), when an instruction (command) is received from the system control unit 21, command analysis is performed (step S21). Is a trace point instruction (YES route in step S22), the address information is extracted from the address information DB 33 based on the trace point instruction (execution script), and is output and stored in the address information extraction DB 34 (step S23). If the instruction is an end instruction (from the NO route in step S22 to the YES route in step S24), the process ends.
[0062]
When the normal mode is designated (NO route of step S11 to NO route of step S20), when an instruction (command) is received from the system control unit 21, command analysis is performed (step S25). If the instruction is a trace point instruction (YES route in step S26), address information is directly extracted from the address information DB 33 based on the trace point instruction (execution script), and the address information on the memory. Write to the table 35 (step S27). If the instruction is a trace instruction (NO route in step S26 to YES route in step S28), trace information is set in the accelerator 11 (step S29), and if the instruction is a simulation execution instruction (NO route in step S28). To YES in step S30), the accelerator 11 executes a simulation operation (step S31). If the instruction is an end instruction (NO route in step S30 to YES route in step S32), the process ends.
[0063]
[4] Generation of logical expressions
In the accelerator 11, since there are restrictions on hardware resources, there are points that can be traced directly and points that cannot be traced.
Therefore, in the present embodiment, as described above, when the signal designated to be traced is a signal that cannot be directly traced, the primitive on the input side of the signal is examined. If the primitive is an evaluation gate (gate element), the input signal of the evaluation gate is examined, a logical expression is generated from the evaluation gate and the input signal, and the address and logical expression corresponding to the input signal are Is registered in the address information extraction DB 34. If the input signal can be traced directly, the address is registered in the address information extraction DB 34.
[0064]
For example, when the signal X (output signal of the AND gate) X shown in FIG. 5A cannot be traced directly, a trace instruction [“trace-on X” in FIG. Since the primitive on the input side of the signal X is an AND gate, the logical expression X = A & B of the AND gate is generated as shown in FIG. 5B, and the input signals A and B of the AND gate are If tracing is possible, the address information corresponding to the signals A and B is registered in the address information extraction DB 34 together with the logical expression X = A & B. If the signals A and B are signals that cannot be traced directly, as shown in FIG. 6, the same processing is repeated until all signals arrive at signals that can be traced directly.
[0065]
Here, the logical expression generation operation will be described according to the flowchart (steps S41 to S51) shown in FIG.
When each slave server WS30 (input / output control unit 31) receives a trace command (trace information) as shown in FIG. 6, the trace-designated signal X is examined (step S41), and the signal X can be traced. It is determined whether the signal is a signal (step S42).
[0066]
If the signal is traceable (YES route in step S42), an identifier (id) is assigned to the trace signal X (step S50), and the address information corresponding to the trace signal X is stored in the address information extraction DB 34. (Step S51).
On the other hand, if the signal is not a traceable signal (NO route of step S42), the primitive outputting the signal X is searched by back tracing (step S43), and whether or not the primitive is a gate element. Is determined (step S44). If it is not a gate element (NO route in step S44), a message is output indicating that the state of the signal X cannot be traced, and the tracing process is terminated (step S45).
[0067]
If it is a gate element (YES route in step S44), an identifier (id1, id2,...) Is assigned to the input signal of the primitive (step S46), and whether or not the input signal is a traceable signal. Is determined (step S47).
If the signal can be traced (YES route of step S47), a logical expression for obtaining the value of the signal X is generated from the gate element and the input signal, and the address corresponding to the input of the logical expression and the input signal is generated in the address information extraction DB (Step S49), an identifier (id) is assigned to the trace signal X (step S50), and the identifier is set to the set of the logical expression stored in the address information extraction DB 34 and the address corresponding to the input signal. By giving, it is clearly indicated that the set corresponds to the trace signal X (step S51).
[0068]
Therefore, in this embodiment, when the signal specified by the trace information is a signal that cannot be traced, the input signal to the gate element on the upstream side of the signal is traced, and the result of the trace is stored in the gate element. By substituting into the corresponding logical expression, it is possible to obtain a trace result for a signal that cannot be traced.
[5] Transmission of input pattern
The same input pattern is transmitted to the WS 30 connected to each accelerator 11 in advance.
[0069]
At this time, there are a case where all patterns are held on the memory of each WS 30 and a case where each WS 30 has a part of the pattern as a file if the pattern is long. Each WS 30 checks the address information extraction DB 34, and transmits the value to the input pattern memory of the accelerator 11 if the corresponding address exists.
[6] Exclusive control
In the simulation system 10 of the present embodiment, various connection forms can be adopted depending on the connection configuration of the accelerator 11, and exclusive control is performed by the exclusive control unit 40 for each connection form.
[0070]
There are two connection configurations C1 and C2 as follows.
C1: A connection configuration in which all accelerators 11 are connected and operated (see FIG. 7A; in the figure, “◯” indicates an accelerator).
C2: A connection mode in which the accelerators 11 are grouped and operated independently for each group (see FIG. 7B; in the figure, “◯” indicates an accelerator).
[0071]
The exclusive control unit 40 has a queue table 41 as shown in FIG.
The items in the queue table 41 include a request identifier (request id), a main set (main set), a group identifier (group id), and a status (status).
The request identifier (request id) is uniquely given to the use request issued from the system control unit 21.
[0072]
The item “main set” is set to “1” when the connection configuration C1 shown in FIG. 7A is requested, and “1” is set when the connection configuration C2 shown in FIG. 7B is requested. 0 "is set.
The group identifier (group id) is an identifier assigned to each group used in the connection configuration C2.
[0073]
For example, in the connection configuration C2, the group identifier of the accelerator {1, 2, 3} is “1”, the group identifier of the accelerator {4, 5} is “2”, and the group identifier of the accelerator {6, 7, 8} is “ 3 ”. In the case of the connection configuration C1, there is no group configuration, and “0” is set as the group identifier.
The combination of the group identifier and the accelerator 11 is defined in advance in the configuration file, and this configuration file is read when the exclusive control unit 40 is first activated.
[0074]
In the status item, “Active” is set when the accelerator 11 is in use in the connection configuration represented by the main set and the group identifier, while “Wait” is set when waiting for execution. The
When the user requests use of the accelerator 11, a “request” command is issued from the system control unit 21 to the exclusive control unit 40 as shown in FIG. 9. The system control unit 21 is in a standby state (“wait”) until an “active” command is returned from the exclusive control unit 40.
[0075]
The operation of the exclusive control unit 40 is divided into entry processing and check processing, and the transition state to these entry processing (Entry) and check processing (Check) is as shown in FIG.
That is, when a “request” command for exclusive control is received from the system control unit 21, entry processing is first performed. In this entry process, a process as described later with reference to FIG. 11 is performed, and the request content is registered in the queue table 41.
[0076]
When the entry process is not in the “Active” state (that is, in the “Wait” state), the process proceeds to a check process.
In the check process, a process as described later is performed with reference to FIG. 12, and the check process is repeated at regular time intervals until the request becomes “Active”. In the “Active” state, the exclusive control unit 40 returns an “active” command to the system control unit 21.
[0077]
When the simulation is completed, as shown in FIG. 9, an “end” command is returned from the slave server WS30 (input / output control unit 31, execution control unit 32) to the system control unit 21, and exclusive from the system control unit 21. An exclusive control “end” instruction is issued to the control unit 40. When receiving the “end” instruction, the exclusive control unit 40 searches for a corresponding part in the queue table 41 based on the request identifier, and deletes the corresponding part from the queue table 41.
[0078]
Here, the entry processing operation of the exclusive control unit 40 will be described according to the flowchart (steps S61 to S70) shown in FIG. 11, and the check processing operation of the exclusive control unit 40 will be described according to the flowchart (steps S71 to S86) shown in FIG. To do.
In the entry process, as shown in FIG. 11, based on the connection configuration information requested by the user, the main set of connection configurations to be registered in the queue table 41 is set to “ms” (step S61). The group identifier of the configuration is set to “g” (step S62), and the first registered data in the queue table 41 is set to “T” (step S63).
[0079]
Thereafter, it is determined whether or not the main set of the registration data T is different from “ms” (step S64). If they are different (YES route in step S64), “Wait” is set as the status (status). (Step S65). When the main set of the registration data T is “ms” (NO route of step S64), it is determined whether or not the registration data T is the final registration data of the queue table 41 (step S66). If it is not the final registration data (NO route in step S66), the next registration data in the queue table 41 is set to “T” (step S67), and the process returns to step S64.
[0080]
On the other hand, if it is the final registration data (YES route in step S66), it is determined whether or not the same group identifier as “g” exists in the queue table 41 (step S68). If the same group identifier exists (YES route in step S68), "Wait" is set as the status (status) (step S69). If the same group identifier does not exist (NO route in step S68), the status (status) “Active” is set (step S70).
[0081]
In the checking process, as shown in FIG. 12, the main set of the connection configuration to be checked whether the status is “Active” is set to “ms” (step S71), and the group identifier of the connection configuration is set. “G” is set (step S72), the request identifier of the connection configuration is set to “reqid” (step S73), and the first registered data in the queue table 41 is set to “T” (step S74).
[0082]
Thereafter, it is determined whether or not the main set of the registration data T is different from “ms” (step S75). If they are different (YES route of step S75), “Wait” is set as the status (status). (Step S76). When the main set of the registration data T is “ms” (NO route of step S75), it is determined whether or not the group identifier of the registration data T is the same as “g” (step S77).
[0083]
If they are the same (YES route in step S77), it is determined whether the status (status) of the registration data T is "Active" (step S78). If it is "Active" (YES route in step S78), the state “Wait” is set as (status) (step S69). If it is not “Active” (NO route of step S78), it is determined whether or not the request identifier of registration data T is the same as “reqid” (step S80). If not (NO route of step S80), the state “Wait” is set as (status) (step S81), and if they are the same (YES route in step S80), the status (status) of the registration data T is set to “Active” (steps S82 and S83).
[0084]
On the other hand, when the group identifier of the registration data T is not the same as “g” (NO route of step S77), it is determined whether or not the registration data T is the final registration data of the queue table 41 (step S84). If it is not registered data (NO route in step S84), the next registered data in the queue table 41 is set to "T" (step S85), and the process returns to step S75. If it is final registration data (YES route in step S84), "Wait" is set as the status (status) (step S86).
[0085]
[7] Transmission of control command
In the present embodiment, the control command is transmitted from the control WS 20 to the slave server WS 30 that manages the accelerator 11 by inter-process communication.
At this time, the simulation execution command is transmitted from the control WS 20 only to the slave server WS 30 connected to the accelerator 11 that should execute the simulation.
[0086]
In addition, a trace on / off command (trace information) is transmitted from the control WS 20 to all the slave servers WS 30 (broadcast / broadcast / broadcast communication).
Since each accelerator 11 has the same trace point, the same operation is performed with respect to the trace processing by the same trace instruction.
[0087]
[8] Trace data output
In the simulation system 10 of the present embodiment, as shown in FIG. 13, when the simulation is stopped, each slave server WS 30 (input / output control unit 31) takes out an output pattern from the trace memory (not shown) of each accelerator 11, In the slave server WS30 (input / output control unit 31), only the signal designated by the trace from the extracted output pattern is output to the trace file.
[0088]
Then, as shown in FIG. 13, in the trace file 36, the dummy pattern “x” is output to the field corresponding to the dummy address. Actually, “0” is output as the dummy pattern “x”.
[9] Post-processing
After the simulation is completed, a trace file 36 is obtained for each accelerator 11. Then, the trace data is combined at each simulation time by another program executed by the control WS 20. As shown in FIG. 13, the dummy pattern “x” portion is not processed, and only the actual trace pattern is output to the trace output pattern DB 50 as the final trace output pattern. Note that when “0” is set as the dummy pattern “x” as described above, the trace data can be combined only by calculating the logical sum (OR) of the output pattern vectors from the servers 30.
[0089]
[10] Specific example of exclusive control of connection configuration
A specific example in which WSs having host names ws1, ws2, and ws3 are connected to three accelerators for control as shown in FIG. 14A or FIG. 14B will be described below.
For example, the group identifier of the connection configuration C1 shown in FIG. 14A is set to “0”, and in the connection configuration C2 shown in FIG. 14B, the group identifier of {ws1, ws2} is set to “1”, and {ws3} The group identifier of “0” is set to “0”.
[0090]
In the group identifier “0”, the circuit data obtained by dividing the circuit module “test mod0” into three parts is stored in the local directory / home / proj1 of ws1, the local directory / home / proj2 of ws2, and the local directory / home / proj3 of ws3. Each is placed.
In the group identifier “1”, the circuit data divided into two parts of the circuit module “test mod1” is placed in the local directory / home / proj1 of ws1 and the local directory / home / proj2 of ws2, respectively.
[0091]
In the group identifier “2”, the circuit data of the circuit module “test mod2” is placed in the local directory / home / proj3 of ws3 without being divided. FIG. 15 shows a specific example of the execution script with the group identifier “0”, FIG. 16 shows a specific example of the execution script with the group identifier “1”, and FIG. 17 shows the execution script with the group identifier “2”.
[0092]
The commands described in the execution scripts shown in FIGS. 15 to 17 have the following meanings. In the following description, the underscore (underscore) described in the figure is omitted.
“Sa host” is a command for specifying the WS connected to the accelerator and the working directory on the WS.
[0093]
“Sa loadmodule” is a command for transferring circuit data in the directory specified by the “sa host” command to the accelerator.
“Sa open -i” is a command for specifying an external input pattern for simulation.
“Sa open -o” is a command for specifying a file (trace file) for storing a simulation result.
[0094]
“Sa tracepoint” is a command for designating a signal name to be traced. “Sa trace” is a command for turning on / off the trace for the trace point specified by the “sa tracepoint” command.
“Sa run” is a command that causes the accelerator to execute simulation until the time specified by the option.
[0095]
“Sa quit” is a command for notifying the accelerator of the end of processing.
According to the simulation system 10 of the present embodiment, when the script of FIG. 15 is executed, the trace data is the local directory of ws1 / home / proj1, the local directory of ws2 / home / proj2, the local directory of ws3 / home / proj3. Each file is generated as a file named “trace file0”.
[0096]
Each trace file has the same size, but includes dummy addresses and dummy trace results, and their contents are different.
The trace files ws1: / home / proj1 / trace file0, ws2: / home / proj2 / trace file0, ws3: / home / proj3 / trace file0 are combined, and the combined result is the circuit module “test mod0”. This is the final simulation result.
[0097]
Further, according to the exclusive control method of the present embodiment, the group identifiers “1” and “1” are executed while the connection configuration is executed with the group identifier “0” or continuously in the “Wait” state. Both execution requests for “2” are in the “Wait” state.
As shown in FIG. 18, the status (status) of the request identifiers “12”, “13”, and “14” does not become “Active” until the processing of the request identifier “11” is completed.
[0098]
Conversely, when the connection configuration with the group identifier “0” is not executed, the connection configurations with the group identifiers “1” and “2” operate independently. While the connection configuration with the group identifier “1” or “2” is executed, or while continuously in the Wait state, the execution request with the connection configuration with the group identifier “0” is in the “Wait” state. Become.
[0099]
As shown in FIG. 19, the status (status) of the request identifier “15” does not become “Active” until the processing of the request identifiers “12”, “13”, and “14” is completed. Since the request identifiers “15” and “16” are different in main set, the status (status) of the request identifier “16” does not become “Active” until the processing of the request identifier “15” is completed.
[0100]
When the address information extraction DB 34 is output, as shown in FIG. 20, the “sa write ext” command is executed before the “sa host” command. When the “sa write ext” command is executed, the trace point information described from “sa host” to “sa quit” is extracted. Other commands such as “sa run” are not executed.
[0101]
When “sa quit” is executed, the address information is “/ home / proj1 / ext file0” in ws1, “/ home / proj2 / ext file0” in ws2, and “/ home / proj3 / ext file0” in ws3. Output the extracted DB file.
When inputting the address information extraction DB 34, as shown in FIG. 21, the “sa read ext” command is executed before the “sa host” command.
[0102]
When the “sa host” command is executed, address information from the file “/ home / proj1 / ext file0” of ws1, “/ home / proj2 / ext file0” of ws2, and “/ home / proj3 / ext file0” of ws3 The extracted DB file is read.
When the “sa read ext” command is executed, the address information DB 33 is not accessed when processing the trace points described from “sa host” to “sa quit”.
[0103]
In the present embodiment, the address information from the file “/ home / proj1 / ext file0” of ws1, “/ home / proj2 / ext file0” of ws2, and “/ home / proj3 / ext file0” of ws3 is obtained by the previous processing. If the extracted DB file has already been created, it is not necessary to search the address information DB 33, and the commands “sa host” to “sa tracepoint” shown in FIG. 21 are not executed. From "sa read ext" to the command "sa trace -on", simulation execution time can be greatly reduced.
[0104]
As described above, according to the embodiment of the present invention, it is not necessary for the control WS 20 (system control unit 21) to determine the processing target data of each accelerator 11, and the load on the control WS 20 can be reduced.
In addition, each slave server WS30 (input / output control unit 31) does not always need to grasp and store the address of the data processed by each accelerator 11, and operates in the same way as usual, but the assigned circuit division part. And the load on each accelerator control unit can be reduced.
[0105]
Furthermore, it is possible to easily obtain a trace result only by combining actual trace patterns other than the dummy pattern, and the logic simulation result combining process can be performed easily and in a short time.
Therefore, even if the simulation circuit becomes large, logic simulation can be executed at high speed and efficiently, and the simulation performance is greatly improved.
[0106]
Before executing the logic simulation, the address information corresponding to the trace information is extracted from the address information DB 33 and the address information table 35 / address information extraction DB 34 is created, so that the signal name information included in the trace information is obtained. It is not necessary to perform the address conversion process, and the time required for the simulation can be greatly shortened. This is particularly effective when the simulation is executed with various input patterns for the same circuit data to be simulated.
[0107]
Also, even if the signal state specified by the trace information is not traceable, the trace result can be obtained using a logical expression, so the hardware resource limitation can be relaxed, and the signal that can be traced You can clear the number limit.
Furthermore, by performing exclusive control according to the connection form of the plurality of accelerators 11 by the exclusive control unit 40, it becomes possible to simultaneously operate the plurality of accelerators 11 in various connection forms, and the operational efficiency of these accelerators 11 Is greatly improved.
[0108]
The present invention is not limited to the above-described embodiment, and various modifications can be made without departing from the spirit of the present invention.
[0109]
【The invention's effect】
As described above in detail, according to the simulation method (claims 1 to 6) and the simulation system (claims 7 to 12) of the present invention, it is not necessary for the system control unit to determine processing target data of each simulation accelerator. In addition to reducing the load on the system controller, each accelerator controller does not always need to know and store the address of the data being processed by each simulation accelerator, and assigns it while operating as usual. Can be simulated, the load on each accelerator controller can be reduced, and trace results can be easily obtained by combining only actual trace patterns other than dummy patterns. Can be used to combine logical simulation results. Can be performed in a short time easily. Therefore, even if the simulation circuit is scaled up, the logic simulation can be executed at high speed and efficiently, and the simulation performance is greatly improved.
[0110]
Before executing the logic simulation, the address information corresponding to the trace information is extracted from the address information database to create an address information table / address information extraction database, so that the address of the signal name information included in the trace information is created. It is not necessary to perform the conversion process, and the time required for the simulation can be greatly shortened. This is particularly effective when the simulation is executed with various input patterns for the circuit data to be simulated. 4,8-10).
[0111]
Also, even if the signal state cannot be traced during the logic simulation, the trace result can be obtained using a logical expression, so the hardware resource limitation can be relaxed and the number of signals that can be traced Can be cleared (claims 5 and 11).
Furthermore, by performing exclusive control according to the connection form of multiple simulation accelerators, it becomes possible to operate multiple simulation accelerators simultaneously in various connection forms, and the operational efficiency of these simulation accelerators is greatly improved. There is also an effect (claims 6 and 12).
[Brief description of the drawings]
FIG. 1 is a diagram for explaining a configuration of a simulation system according to an embodiment of the present invention.
FIG. 2 is a diagram schematically showing an overall configuration of a simulation system as one embodiment of the present invention.
FIGS. 3A to 3C are diagrams illustrating specific examples of an address information table in each slave server WS according to the present embodiment.
FIG. 4 is a flowchart for explaining the operation of each slave server WS in the present embodiment.
FIGS. 5A and 5B are diagrams for explaining a logical expression generation operation of the present embodiment.
FIG. 6 is a flowchart for explaining a logical expression generation operation of the embodiment;
FIGS. 7A and 7B are diagrams illustrating a specific example of a connection configuration of a simulation accelerator according to the present embodiment.
FIG. 8 is a diagram showing a queue table in the exclusive control unit of the present embodiment.
FIG. 9 is a sequence diagram for explaining the operation of the exclusive control unit in the present embodiment;
FIG. 10 is a diagram for explaining the operation (transition state to entry processing and check processing) of the exclusive control unit in the present embodiment.
FIG. 11 is a flowchart for explaining an entry processing operation of the exclusive control unit in the present embodiment;
FIG. 12 is a flowchart for explaining the check processing operation of the exclusive control unit in the present embodiment;
FIG. 13 is a diagram for explaining an output state and a coupling procedure of trace patterns obtained by each accelerator according to the embodiment.
FIGS. 14A and 14B are diagrams illustrating a specific example of a connection configuration of a simulation accelerator according to the present embodiment.
FIG. 15 is a diagram showing a specific example of an execution script processed in the present embodiment.
FIG. 16 is a diagram showing a specific example of an execution script processed in the present embodiment.
FIG. 17 is a diagram illustrating a specific example of an execution script processed in the present embodiment.
FIG. 18 is a diagram illustrating a specific example of a queue table in the exclusive control unit of the present embodiment.
FIG. 19 is a diagram illustrating a specific example of a queue table in the exclusive control unit of the present embodiment.
FIG. 20 is a diagram illustrating a specific example of an execution script processed in the present embodiment.
FIG. 21 is a diagram showing a specific example of an execution script processed in the present embodiment.
[Explanation of symbols]
10 Simulation system
11-1 Master accelerator (simulation accelerator)
11-2 to 11-N accelerator (simulation accelerator)
12 Private line
20 Control workstation (system control unit, coupling unit)
21 System controller
22 execution script database
30-1 to 30-N slave server workstation (accelerator control unit)
31 Input / output control unit
32 Execution control unit
33 Address information database
34 Address information extraction database
35 Address information table
36 Trace file
40 Exclusive control unit
41 Queue table
50 Trace output pattern database

Claims (12)

シミュレーション対象回路を分割して複数のシミュレーションアクセラレータに割り当て、これらのシミュレーションアクセラレータを同時に動作させることにより、該シミュレーション対象回路の論理シミュレーションを実行するためのシミュレーション方法であって、
前記論理シミュレーションを実行してトレースすべき信号を指定する信号名情報を含むトレース情報を、システム制御部から、該複数のシミュレーションアクセラレータにそれぞれ対応してそなえられた複数のアクセラレータ制御部へ放送出力する第1ステップと、
前記トレース情報に応じて各アクセラレータ制御部により各シミュレーションアクセラレータを制御しながら、各シミュレーションアクセラレータにより該シミュレーション対象回路の論理シミュレーションを実行することにより、該シミュレーションアクセラレータ毎に前記信号名情報により指定された信号の状態をトレースする第2ステップと、
該複数のシミュレーションアクセラレータによって得られたトレースパターンを結合することにより、前記信号名情報により指定された全ての信号の状態をトレース結果として得る第3ステップとを有し、
各シミュレーションアクセラレータに割り当てられた該シミュレーション対象回路の分割部分における信号の信号名情報とそのシミュレーションアクセラレータにマッピングされたアドレス情報との対応関係を、該アクセラレータ制御部毎に、アドレス情報データベースとして予め保持させておき、
前記第2ステップにおいて、前記トレース情報に含まれる信号名情報に対応するアドレス情報が該アドレス情報データベースに存在する場合には、そのアドレス情報に対応するフィールドに、各シミュレーションアクセラレータにより得られた前記トレースパターンを出力する一方、前記トレース情報に含まれる信号名情報に対応するアドレス情報が該アドレス情報データベースに存在しない場合には、その信号名情報に対応するアドレス情報としてダミーアドレスを設定し、そのダミーアドレスに対応するフィールドに、前記トレースパターンとしてダミーパターンを出力し、
前記第3ステップにおいて、前記ダミーパターン以外の実際のトレースパターンのみを結合して前記トレース結果を得ることを特徴とする、シミュレーション方法。
A simulation method for performing a logic simulation of a simulation target circuit by dividing a simulation target circuit and assigning the simulation target circuit to a plurality of simulation accelerators and simultaneously operating these simulation accelerators,
The system control unit broadcasts and outputs the trace information including the signal name information specifying the signal to be traced by executing the logic simulation to the plurality of accelerator control units provided corresponding to the plurality of simulation accelerators. The first step;
A signal specified by the signal name information for each simulation accelerator by executing a logic simulation of the simulation target circuit by each simulation accelerator while controlling each simulation accelerator by each accelerator control unit according to the trace information. A second step of tracing the state of
A third step of obtaining, as a trace result, all signal states specified by the signal name information by combining trace patterns obtained by the plurality of simulation accelerators;
The correspondence relationship between the signal name information of the signal in the divided part of the simulation target circuit assigned to each simulation accelerator and the address information mapped to the simulation accelerator is stored in advance as an address information database for each accelerator control unit. And
In the second step, when the address information corresponding to the signal name information included in the trace information exists in the address information database, the trace obtained by each simulation accelerator is displayed in the field corresponding to the address information. If the address information corresponding to the signal name information included in the trace information does not exist in the address information database while the pattern is output, a dummy address is set as the address information corresponding to the signal name information, and the dummy information A dummy pattern is output as the trace pattern in the field corresponding to the address,
The simulation method according to claim 3, wherein in the third step, only the actual trace pattern other than the dummy pattern is combined to obtain the trace result.
前記第2ステップの実行前に、各アクセラレータ制御部において、前記トレース情報を記述した実行スクリプトに基づいて、前記論理シミュレーションの対象となる信号に対応するアドレス情報を該アドレス情報データベースから読み出してアドレス情報テーブルを作成するとともに、前記論理シミュレーションの対象となる信号に対応するアドレス情報が該アドレス情報データベースに存在しない場合には、その信号に対応する該アドレス情報テーブルのフィールドにダミーアドレスを格納しておいてから、
前記第2ステップにおいて、各アクセラレータ制御部が該アドレス情報テーブルを参照しながら各シミュレーションアクセラレータを制御することを特徴とする、請求項1記載のシミュレーション方法。
Before executing the second step, each accelerator control unit reads address information corresponding to the signal to be subjected to the logic simulation from the address information database based on the execution script describing the trace information, and reads the address information. A table is created, and if the address information corresponding to the signal subject to the logic simulation does not exist in the address information database, a dummy address is stored in the field of the address information table corresponding to the signal. Since then
The simulation method according to claim 1, wherein in the second step, each accelerator control unit controls each simulation accelerator while referring to the address information table.
前記第2ステップの実行前に、各アクセラレータ制御部において、前記トレース情報を記述した実行スクリプトに基づいて、前記論理シミュレーションの対象となる信号に対応するアドレス情報を該アドレス情報データベースから読み出してアドレス情報抽出データベースを作成するとともに、前記論理シミュレーションの対象となる信号に対応するアドレス情報が該アドレス情報データベースに存在しない場合には、その信号に対応する該アドレス情報抽出データベースのフィールドにダミーアドレスを格納しておいてから、
前記第2ステップにおいて、各アクセラレータ制御部が、前記トレース情報に応じたアドレス情報を該アドレス情報抽出データベースから読み出し該アドレス情報テーブルとして展開することを特徴とする、請求項2記載のシミュレーション方法。
Before executing the second step, each accelerator control unit reads address information corresponding to the signal to be subjected to the logic simulation from the address information database based on the execution script describing the trace information, and reads the address information. In addition to creating an extraction database, if the address information corresponding to the signal to be subjected to the logic simulation does not exist in the address information database, a dummy address is stored in the field of the address information extraction database corresponding to the signal. After that,
3. The simulation method according to claim 2, wherein, in the second step, each accelerator control unit reads out address information corresponding to the trace information from the address information extraction database and develops it as the address information table.
前記第2ステップにおいて、該アドレス情報抽出データベースを参照して前記信号名情報に対応するアドレス情報を該アドレス情報抽出データベースから読み出すモードと、該アドレス情報データベースを直接参照して前記信号名情報に対応するアドレス情報を該アドレス情報データベースから読み出すモードとのいずれか一方を選択的に切り替えて使用することを特徴とする、請求項3記載のシミュレーション方法。In the second step, the address information extraction database is referenced to read address information corresponding to the signal name information from the address information extraction database, and the address information database is directly referenced to correspond to the signal name information. 4. The simulation method according to claim 3, wherein any one of a mode for reading out address information to be read from the address information database is selectively switched. 前記第2ステップにおいて、前記信号名情報により指定された信号の状態がトレース不可能である場合、バックトレースによってトレース不可能な信号を出力しているゲート素子を検索し、該ゲート素子の入力端子における信号の状態をトレースするとともに該ゲート素子に対応する論理式を生成し、該ゲート素子の入力端子における信号の状態をトレースすることを特徴とする、請求項1〜請求項4のいずれか1項に記載のシミュレーション方法。In the second step, when the state of the signal specified by the signal name information is not traceable, a gate element that outputs a signal that cannot be traced by back tracing is searched for, and an input terminal of the gate element 5. The state of a signal at the gate element is traced, a logical expression corresponding to the gate element is generated, and the state of the signal at the input terminal of the gate element is traced. The simulation method according to the item. 該複数のシミュレーションアクセラレータを、異なる複数の接続構成で接続した状態でそれぞれ動作可能に構成し、
ある接続構成で該複数のシミュレーションアクセラレータを動作させている場合には、他の接続構成で該複数のシミュレーションアクセラレータを動作させる命令を受け付けても、当該接続構成での動作を完了するまで当該命令を待機させるように、接続構成の排他制御を行なうことを特徴とする、請求項1〜請求項5のいずれか1項に記載のシミュレーション方法。
The plurality of simulation accelerators are configured to be operable in a state where they are connected in different connection configurations,
When the plurality of simulation accelerators are operated in a certain connection configuration, even if an instruction to operate the plurality of simulation accelerators in another connection configuration is received, the instructions are not processed until the operation in the connection configuration is completed. 6. The simulation method according to claim 1, wherein exclusive control of the connection configuration is performed so as to wait.
シミュレーション対象回路を分割して複数のシミュレーションアクセラレータに割り当て、これらのシミュレーションアクセラレータを同時に動作させることにより、該シミュレーション対象回路の論理シミュレーションを実行するためのシミュレーションシステムであって、
該複数のシミュレーションアクセラレータをそれぞれ直接的に制御する複数のアクセラレータ制御部と、
前記論理シミュレーションを実行してトレースすべき信号を指定する信号名情報を含むトレース情報を、該複数のアクセラレータ制御部に対して放送出力することにより、該複数のシミュレーションアクセラレータによる前記論理シミュレーションを制御するシステム制御部と、
該複数のシミュレーションアクセラレータによる前記論理シミュレーションの結果を結合する結合部とをそなえるとともに、
各シミュレーションアクセラレータに割り当てられた該シミュレーション対象回路の分割部分における信号の信号名情報とそのシミュレーションアクセラレータにマッピングされたアドレス情報との対応関係を予め保持するアドレス情報データベースを、該アクセラレータ制御部毎にそなえ、
各アクセラレータ制御部が、前記トレース情報に応じて各シミュレーションアクセラレータを制御しながら各シミュレーションアクセラレータにより該シミュレーション対象回路の論理シミュレーションを実行させることにより、該シミュレーションアクセラレータ毎に前記信号名情報により指定された信号の状態をトレースさせ、その際、前記トレース情報に含まれる信号名情報に対応するアドレス情報が該アドレス情報データベースに存在する場合には、そのアドレス情報に対応するフィールドに、各シミュレーションアクセラレータにより得られた前記トレースパターンを出力する一方、前記トレース情報に含まれる信号名情報に対応するアドレス情報が該アドレス情報データベースに存在しない場合には、その信号名情報に対応するアドレス情報としてダミーアドレスを設定し、そのダミーアドレスに対応するフィールドに、前記トレースパターンとしてダミーパターンを出力し、
該結合部が、該複数のシミュレーションアクセラレータによって得られた、前記ダミーパターン以外の実際のトレースパターンのみを結合することにより、前記信号名情報により指定された全ての信号の状態をトレース結果として得ることを特徴とする、シミュレーションシステム。
A simulation system for performing a logic simulation of a simulation target circuit by dividing a simulation target circuit and assigning the simulation target circuit to a plurality of simulation accelerators, and simultaneously operating these simulation accelerators.
A plurality of accelerator control units that directly control the plurality of simulation accelerators;
The logic simulation by the plurality of simulation accelerators is controlled by broadcasting the trace information including the signal name information specifying the signal to be traced by executing the logic simulation to the plurality of accelerator control units. A system controller;
A combining unit for combining the results of the logic simulation by the plurality of simulation accelerators;
Each accelerator control unit has an address information database that holds in advance a correspondence relationship between signal name information of signals in the divided portion of the simulation target circuit assigned to each simulation accelerator and address information mapped to the simulation accelerator. ,
Each accelerator control unit causes each simulation accelerator to execute a logic simulation of the simulation target circuit while controlling each simulation accelerator according to the trace information, so that the signal specified by the signal name information for each simulation accelerator When the address information corresponding to the signal name information included in the trace information exists in the address information database, the field corresponding to the address information is obtained by each simulation accelerator. If the address information corresponding to the signal name information included in the trace information does not exist in the address information database while the trace pattern is output, the signal corresponds to the signal name information. Set the dummy address as address information, the field corresponding to the dummy address, and outputs the dummy pattern as said trace pattern,
The combining unit combines only the actual trace patterns other than the dummy patterns obtained by the plurality of simulation accelerators, thereby obtaining the states of all signals specified by the signal name information as trace results. A simulation system characterized by
各アクセラレータ制御部が、前記論理シミュレーションの実行前に、前記トレース情報を記述した実行スクリプトに基づいて、前記論理シミュレーションの対象となる信号に対応するアドレス情報を該アドレス情報データベースから読み出してアドレス情報テーブルを作成するとともに、前記論理シミュレーションの対象となる信号に対応するアドレス情報が該アドレス情報データベースに存在しない場合には、その信号に対応する該アドレス情報テーブルのフィールドにダミーアドレスを格納しておいてから、該アドレス情報テーブルを参照しながら各シミュレーションアクセラレータを制御することを特徴とする、請求項7記載のシミュレーションシステム。Each accelerator control unit reads out address information corresponding to a signal to be subjected to the logic simulation from the address information database based on an execution script describing the trace information before executing the logic simulation, and reads the address information table. If the address information corresponding to the signal to be subjected to the logic simulation does not exist in the address information database, a dummy address is stored in the field of the address information table corresponding to the signal. The simulation system according to claim 7, wherein each simulation accelerator is controlled while referring to the address information table. 各アクセラレータ制御部が、前記論理シミュレーションの実行前に、前記トレース情報を記述した実行スクリプトに基づいて、前記論理シミュレーションの対象となる信号に対応するアドレス情報を該アドレス情報データベースから読み出してアドレス情報抽出データベースを作成するとともに、前記論理シミュレーションの対象となる信号に対応するアドレス情報が該アドレス情報データベースに存在しない場合には、その信号に対応する該アドレス情報抽出データベースのフィールドにダミーアドレスを格納しておいてから、前記論理シミュレーションの実行時に、前記トレース情報に応じたアドレス情報を該アドレス情報抽出データベースから読み出し該アドレス情報テーブルとして展開することを特徴とする、請求項8記載のシミュレーションシステム。Each accelerator control unit reads out address information corresponding to the signal to be subjected to the logic simulation from the address information database based on the execution script describing the trace information before executing the logic simulation, and extracts the address information. In addition to creating a database, if the address information corresponding to the signal to be subjected to the logic simulation does not exist in the address information database, a dummy address is stored in the field of the address information extraction database corresponding to the signal. The address information according to the trace information is read out from the address information extraction database and expanded as the address information table when the logic simulation is executed. Activation system. 各アクセラレータ制御部が、該アドレス情報抽出データベースを参照して前記信号名情報に対応するアドレス情報を該アドレス情報抽出データベースから読み出すモードと、該アドレス情報データベースを直接参照して前記信号名情報に対応するアドレス情報を該アドレス情報データベースから読み出すモードとのいずれか一方を選択的に切り替えて使用することを特徴とする、請求項9記載のシミュレーションシステム。Each accelerator control unit refers to the address information extraction database and reads out address information corresponding to the signal name information from the address information extraction database, and directly corresponds to the signal name information by referring to the address information database. 10. The simulation system according to claim 9, wherein one of a mode for reading out address information to be read from the address information database is selectively switched and used. 前記信号名情報により指定された信号の状態がトレース不可能である場合、バックトレースによってトレース不可能な信号を出力しているゲート素子を検索し、該ゲート素子の入力端子における信号の状態をトレースするとともに該ゲート素子に対応する論理式を生成し、該ゲート素子の入力端子における信号の状態をトレース結果することを特徴とする、請求項7〜請求項10のいずれか1項に記載のシミュレーションシステム。When the signal state specified by the signal name information is not traceable, a gate element that outputs a non-traceable signal is searched by back tracing, and the signal state at the input terminal of the gate element is traced. 11. The simulation according to claim 7, wherein a logical expression corresponding to the gate element is generated, and a signal state at an input terminal of the gate element is traced. system. 該複数のシミュレーションアクセラレータを、異なる複数の接続構成で接続した状態でそれぞれ動作可能に構成し、
ある接続構成で該複数のシミュレーションアクセラレータを動作させている場合には、他の接続構成で該複数のシミュレーションアクセラレータを動作させる命令を受け付けても、当該接続構成での動作を完了するまで当該命令を待機させるように、接続構成の排他制御を行なう排他制御部をそなえたことを特徴とする、請求項7〜請求項11のいずれか1項に記載のシミュレーションシステム。
The plurality of simulation accelerators are configured to be operable in a state where they are connected in different connection configurations,
When the plurality of simulation accelerators are operated in a certain connection configuration, even if an instruction to operate the plurality of simulation accelerators in another connection configuration is received, the instructions are not processed until the operation in the connection configuration is completed. The simulation system according to claim 7, further comprising an exclusive control unit that performs exclusive control of the connection configuration so as to be on standby.
JP01932099A 1999-01-28 1999-01-28 Simulation method and simulation system Expired - Fee Related JP3655114B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP01932099A JP3655114B2 (en) 1999-01-28 1999-01-28 Simulation method and simulation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01932099A JP3655114B2 (en) 1999-01-28 1999-01-28 Simulation method and simulation system

Publications (2)

Publication Number Publication Date
JP2000222446A JP2000222446A (en) 2000-08-11
JP3655114B2 true JP3655114B2 (en) 2005-06-02

Family

ID=11996126

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01932099A Expired - Fee Related JP3655114B2 (en) 1999-01-28 1999-01-28 Simulation method and simulation system

Country Status (1)

Country Link
JP (1) JP3655114B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5333792B2 (en) * 2008-10-08 2013-11-06 日本電気株式会社 Semiconductor verification apparatus, method and program

Also Published As

Publication number Publication date
JP2000222446A (en) 2000-08-11

Similar Documents

Publication Publication Date Title
US20030093255A1 (en) Hot plug and hot pull system simulation
JP3875999B2 (en) System and method for providing dynamic data references in a generic data exchange environment
CN101938164B (en) Power equipment control method, device and related system thereof
JP2710896B2 (en) How to support the development of a communication automaton set
CN115378822B (en) A method and system for DDS distributed application simulation
CN115657553B (en) PCIE topology and PCIE device simulation method, device, equipment and medium
US12131149B1 (en) Updating method for programmable data plane at runtime, and apparatus
CN110838954A (en) A lightweight and large-scale autonomous network protocol functional testing method
CN116627888A (en) Hardware computing module, device, method, electronic device and storage medium
CN117170822B (en) System model and code joint simulation system using distributed network middleware
CN118555252B (en) Routing method, system, electronic device and storage medium
US7916974B2 (en) Processing device, processing method and computer readable medium
CN116643854A (en) A service orchestration method, device, process controller and task processor
CN113342456A (en) Connection method, device, equipment and storage medium
JP3655114B2 (en) Simulation method and simulation system
CN101815089B (en) Command executing method and system of Web high-end disk array controller
CN115827285A (en) Cross-platform communication method, system, device, equipment and medium
CN113703339A (en) Automatic driving simulation method, device, equipment and storage medium
JP2005108082A (en) Device driver interface method
CN118535481A (en) Software interface testing method, device, electronic equipment and storage medium
CN116346765A (en) A virtual machine IP allocation method, system, device and storage medium
CN111708568B (en) Modularized development decoupling method and terminal
CN116302496A (en) Cloud resource orchestration method, device, equipment and storage medium
CN114116341A (en) I2C master-slave device joint verification platform and I2C master-slave device joint verification method
JP3162102B2 (en) Data transfer processing device between virtual machines

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050302

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080311

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090311

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090311

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100311

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100311

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110311

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110311

Year of fee payment: 6

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110311

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110311

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120311

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130311

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140311

Year of fee payment: 9

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees