JP3655114B2 - Simulation method and simulation system - Google Patents
Simulation method and simulation system Download PDFInfo
- 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
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 (
[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 (
[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 (
[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
[0033]
In addition to the simulation accelerators 11-1 to 11-N, the
[0034]
In the following, the simulation accelerators 11-1 to 11-N may be simply abbreviated as the
[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
[0036]
The
[0037]
The slave server WS30-1 that controls the master accelerator 11-1 functions as an input /
Each slave server WS30 is provided with an
[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
[0039]
The
The
[0040]
The input /
Further, the input /
[0041]
When the input /
[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 /
[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
By the way, the
[0044]
That is, the input /
[0045]
Further, the
[0046]
In the address information extraction DB input mode, the
[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
In the normal mode, whenever there is a signal reference request during simulation execution, the
[0048]
Furthermore, the input /
[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
[0050]
The
Further, in the present embodiment, the
[0051]
The
Details of the exclusive control by the
[0052]
Next, the operation of the
[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
[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
[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
[0055]
In the example illustrated in FIGS. 3A to 3C, three
[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 /
[0057]
When the simulation is executed, a trace on / off command is issued from the
[3] Remote extraction of address information
Before executing the simulation, the interprocess communication is performed between the
[0058]
As shown in FIG. 4, as the address information corresponding to the
When the simulation is started, the address
[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
[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
[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
[0063]
[4] Generation of logical expressions
In the
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
[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
[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
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
[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
[0069]
At this time, there are a case where all patterns are held on the memory of each
[6] Exclusive control
In the
[0070]
There are two connection configurations C1 and C2 as follows.
C1: A connection configuration in which all
C2: A connection mode in which the
[0071]
The
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
[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
[0074]
In the status item, “Active” is set when the
When the user requests use of the
[0075]
The operation of the
That is, when a “request” command for exclusive control is received from the
[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
[0077]
When the simulation is completed, as shown in FIG. 9, an “end” command is returned from the slave server WS30 (input /
[0078]
Here, the entry processing operation of the
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
At this time, the simulation execution command is transmitted from the
[0086]
In addition, a trace on / off command (trace information) is transmitted from the
Since each
[0087]
[8] Trace data output
In the
[0088]
Then, as shown in FIG. 13, in the
[9] Post-processing
After the simulation is completed, a
[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
[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
[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
[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
[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
[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
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
[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
[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
[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 (
[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 (
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 (
[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ステップにおいて、各アクセラレータ制御部が該アドレス情報テーブルを参照しながら各シミュレーションアクセラレータを制御することを特徴とする、請求項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記載のシミュレーション方法。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.
ある接続構成で該複数のシミュレーションアクセラレータを動作させている場合には、他の接続構成で該複数のシミュレーションアクセラレータを動作させる命令を受け付けても、当該接続構成での動作を完了するまで当該命令を待機させるように、接続構成の排他制御を行なうことを特徴とする、請求項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〜請求項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.
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)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5333792B2 (en) * | 2008-10-08 | 2013-11-06 | 日本電気株式会社 | Semiconductor verification apparatus, method and program |
-
1999
- 1999-01-28 JP JP01932099A patent/JP3655114B2/en not_active Expired - Fee Related
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 |