JPH0738202B2 - ロジック・シミュレーション・マシンのための全イベント・トレース・ギャザラ - Google Patents

ロジック・シミュレーション・マシンのための全イベント・トレース・ギャザラ

Info

Publication number
JPH0738202B2
JPH0738202B2 JP3048823A JP4882391A JPH0738202B2 JP H0738202 B2 JPH0738202 B2 JP H0738202B2 JP 3048823 A JP3048823 A JP 3048823A JP 4882391 A JP4882391 A JP 4882391A JP H0738202 B2 JPH0738202 B2 JP H0738202B2
Authority
JP
Japan
Prior art keywords
simulation
current state
processor
logic
storing
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 - Lifetime
Application number
JP3048823A
Other languages
English (en)
Other versions
JPH04227574A (ja
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04227574A publication Critical patent/JPH04227574A/ja
Publication of JPH0738202B2 publication Critical patent/JPH0738202B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、デジタル・ロジック
のシミュレーションを行うロジック・シミュレーション
・マシンに関し、特に、シミュレーションの間に、シミ
ュレートされたすべてのファシリティに発生したことの
記録である全イベント・トレース(AET)を生成する
ために、ロジック・シミュレーション・マシンに用いら
れるAETギャザラに関する。
【0002】
【従来の技術】超大規模集積回路などのロジック技術に
より、価格性能費と信頼性が大幅に向上している。しか
しこの技術には、障害診断が先行技術よりも難しく、ロ
ジック設計エラーの訂正に必要なエンジニアリングの練
り直しサイクルがかなり長くなるという欠点がある。こ
のような欠点により、設計上のエラーや省略にかかる経
済的なペナルティはかなりのものになり、モデルを実用
化する前に、設計をくまなく検証するという目標が重要
視される。
【0003】設計検証方法の1つに、汎用コンピュータ
によるロジック・シミュレーションがある。また、ロジ
ック・シミュレーションに最適化された特定用途向けコ
ンピュータの採用も設計検証に用いられる。一般に特定
用途向けコンピュータにはマルチ・プロセサ・アーキテ
クチャが用いられる。このアーキテクチャでは、シミュ
レーション・プロセサと呼ばれる複数のプロセサを相互
に接続することで、シミュレーション性能を高めること
ができる。特定用途向けコンピュータは、ロード機能の
提供とシミュレーション結果の解析に用いられるホスト
・コンピュータと併用することもできる。こうした特定
用途向けコンピュータはロジック・シミュレーション・
マシンと呼ばれる。この発明は、ロジック・シミュレー
ション・マシンのためのAETギャザラに関係する。
【0004】従来の技術によるロジック・シミュレーシ
ョン・マシンは、Cocke らによる米国特許第43062
86号明細書(1981年12月15日付)にみられ
る。このロジック・シミュレーション・マシンは、複数
のプロセサ間スイッチによって相互に接続された複数の
基本パラレル・プロセサから成る。プロセサ間スイッチ
は、ロジック・シミュレーション・マシンのコンピュー
ティング・エンジンである基本プロセサ(各々、ロジッ
ク・モデルの一部の各ゲートを並列にシミュレートす
る)相互間の通信のみならず、基本プロセサと制御プロ
セサとの間の通信も可能にする。制御プロセサは、これ
が接続されたホスト・コンピュータを通して、ロジック
・シミュレーション・マシンの総合制御/入出力ファシ
リティを提供する。各制御プロセサには、そのプロセサ
によってシミュレートされた1組のゲートだけの現在状
態情報が格納される。ある基本プロセサがあるゲートを
シミュレートし、そのゲートの入力が、別のプロセサに
よってシミュレートされたゲートの出力への端子を含む
場合、当該ゲートの状態情報は、プロセサ間スイッチを
通して転送される。
【0005】AET(全イベント・トレース)は、シミ
ュレーションの間に、すべてのファシリティに発生した
ことの記録である。頭字語AETは、全ファシリティの
サブセットしか含まないものなど、すべてのトレースに
も用いられる。AETデータは、ホスト・コンピュータ
によって、シミュレーションの解析に用いられる。
【0006】通常、AETデータは、従来の技術では、
各シミュレーション・サイクルの終わりにトレース対象
のノードをすべてホストによって評価することによって
収集される。これらのノードだけを、ブロードキャスト
・コマンドによってロジック・シミュレーション・マシ
ンからホストへ送るのは効率的ではあるが、2つの制約
がある。第1に、トレースされるノードは、変化のなか
ったものも含めてすべて、ロジック・シミュレーション
・マシンからホストへ送られる。第2に、ホストが、サ
イクルごとにデータを評価するのにかなりの時間がかか
る。
【0007】
【発明が解決しようとする課題】この発明の目的は、A
ET(全イベント・トレース)記録を、シミュレーショ
ンを減速することなく、シミュレーションと平行して生
成するAETギャザラを提供することにある。
【0008】この発明の目的には、AETを効率よく収
集する手段を提供するために、ロジック・シミュレーシ
ョン・マシンに、シミュレーション・プロセサと並列に
接続される補助プロセサであるAETギャザラを提供す
ることも含まれる。
【0009】この発明の目的には、ファシリティのどの
サブセットも収集可能なAETギャザラを提供すること
も含まれる。
【0010】
【課題を解決するための手段】この発明のAETギャザ
ラは、シミュレートされたモデル全体の現在状態を完全
にコピーしたものを格納する現在状態アレイと、シミュ
レーション・サイクルごとにモデルの現在状態の変化の
みを格納する変化記録アレイと、現在状態アレイに格納
された現在状態の変化を検出し、それをシミュレーショ
ン・サイクルごとに変化記録アレイに格納するために、
シミュレーションされたモデルの現在状態をモニタする
制御手段とから成る。
【0011】AETギャザラはシミュレーション・バス
に接続される。ロジック・シミュレーション・マシンの
各シミュレーション・プロセサは、シミュレーションを
モニタするために、各シミュレーション・サイクルの終
わりに、シミュレーション結果をこのバスに並列に送出
する。
【0012】すべてのファシリティのサブセットをトレ
ースするために、サイズが現在状態アレイと等しいメモ
リ・ユニットをAETギャザラに追加してもよい。メモ
リ・ユニットは、トレース対象のノードを指示するビッ
トを格納するマスクとして使用される。
【0013】
【実施例】図1、図2により、本発明のAET(全イベ
ント・トレース)ギャザラが接続されるロジック・シミ
ュレーション・マシン1について説明する。ロジック・
シミュレーション・マシン1には、シミュレーション・
バス手段3を通して相互に並列に接続された複数のシミ
ュレーション・プロセサ2が含まれる。図1、図2に示
したシミュレーション・プロセサ2は4個であるが、シ
ミュレーション・バス手段3に接続されるシミュレーシ
ョン・プロセサ2の個数は16であり、説明の便宜上、
最大構成は16プロセサである。ただし、マシン1に
は、シミュレーション・プロセサを、1、2、4、8、
16のグループから任意の個数選択して使用できる。
【0014】シミュレーション・バス手段3は、データ
・ライン3A、制御ライン3B、及び構成ライン3Cの
3部から成る。各シミュレーション・プロセサ2は、ゲ
ートの評価時に、データ・ライン3Aを通して、シミュ
レーション結果を転送し、すべてのシミュレーション・
プロセサ2からシミュレーション結果を受け取って、各
々の現在状態のコピーを更新する。ホスト・コンピュー
タ5は、データ・ライン3Aを通して、ゲートが評価さ
れないときに、シミュレーション・プロセサ2との間で
パケット・データを転送する。データ・ライン3A上の
現在の内容は、制御ライン3Bを通して指示され、バス
3のアービトレーション(調停)が行われる。各シミュ
レーション・プロセサ2は、構成ライン3Cを通して一
意のコードを転送し、シミュレーション・プロセサの構
成を通知する。シミュレーション・バス手段3にはさら
に、スロット手段0、1、2、...、15、及びnが
含まれる。シミュレーション・プロセサ2は各々、スロ
ット手段0、1、2、...、15に装着され、シミュ
レーション・バス手段3に接続される。シミュレーショ
ン・バス手段3の各スロット手段0、1、2、...、
15は、構成ライン3Cに関連するハード・ワイヤード
手段3Dを備える。構成ライン3Cの数は、ロジック・
シミュレーション・マシン1がシミュレーション・プロ
セサ2をどれだけ収容できるかによる。この実施例で
は、ライン3Cは4本あり、16のシミュレーション・
プロセサの各々に異なる4ビット・バイナリ・データを
転送する。スロット手段0のハード・ワイヤード手段3
Dは、制御ライン3Cによって、スロット手段0に装着
されたシミュレーション・プロセサ2に、4ビット・バ
イナリ・ゼロのデータ、0000が入力されるように、
すべての構成ライン3CをOFFにセットする。スロッ
ト手段1のハード・ワイヤード手段3Dは、そのスロッ
ト手段に装着されたシミュレーション・プロセサ2に、
構成ライン3Cによってバイナリ・データ0001が入
力されるように、最下位ビット・ラインをONに、他の
3つのラインをOFFにセットする。スロット手段2の
ハード・ワイヤード手段3Dは、そのスロット手段に装
着されたシミュレーション・プロセサ2に、構成ライン
3Cによってバイナリ・データ0010が入力されるよ
うに、第2最下位ビット・ラインをONに、他の3つの
ラインをOFFにセットする。以下同様である。スロッ
ト手段15のハード・ワイヤード手段3Dは、そのスロ
ット手段に装着されたシミュレーション・プロセサ2
に、構成ライン3Cによってバイナリ・データ1111
が入力されるように、すべてのラインをONにセットす
る。
【0015】この発明のAET(全イベント・トレー
ス)ギャザラ4(マシン1の補助プロセサ)は、バス手
段3のスロット手段に装着され、シミュレーション・プ
ロセサ2と並列に、シミュレーション・バス手段3に接
続される。
【0016】データ・ライン3Aの数は、ロジック・シ
ミュレーション・マシン1が収容できるシミュレーショ
ン・プロセサ2の数と、各シミュレーション・プロセサ
2が、演算結果を示すのに必要なビット数に依存する。
この例の場合、マシン1は、最大16のシミュレーショ
ン・プロセサ2を収容でき、各シミュレーション・プロ
セサ2は2ビットの結果を算出する。したがって、デー
タ・ライン3Aの数は16x2=32である。シミュレ
ーション・プロセサ2の各々には、そのプロセサによっ
て算出された結果をすべてのシミュレーション・プロセ
サ2に転送するために、2つのデータ・ライン3Aが割
り当てられるが、これは、そのプロセサ2がどのスロッ
ト手段を占有するかによる(後述)。データ・ライン3
Aはまた、シミュレーションの前には、データと命令を
各シミュレーション・プロセサ2とAETギャザラ4に
ロードし、シミュレーションの間は、シミュレーション
・プロセサ2とAETギャザラ4によって算出された結
果を、シミュレーション・プロセサ2のいずれか1つに
備えられたホスト・インタフェースを通して受け取るた
めに、ホスト・コンピュータ5によって使用できる(後
述)。
【0017】ホスト・コンピュータ5は従来のエンジニ
アリング・ワークステーションでよい。ホスト・コンピ
ュータ5には、中央処理ユニット51、メイン・メモリ
52、ディスク・ファイル(直接アクセス・ストレージ
・デバイス)53、キーボード54、ディスプレイ5
5、及びホストI/Oバス手段56が含まれる。各シミ
ュレーション・プロセサ2及びAETギャザラ4は、I
/Oバス手段56を通して、I/Oバス手段56のスロ
ット手段(図示なし)に装着されて、ホスト・コンピュ
ータ5に接続される。シミュレーション・プロセサ2の
数が、ホスト・コンピュータ5内に備えられるI/Oス
ロット手段の数を超える場合は、追加のシミュレーショ
ン・プロセサをホスト・コンピュータ5につなぐ延長ハ
ウジングを使用すればよい。
【0018】シミュレーション・プロセサ2とAETギ
ャザラ4は四角いカード上に装着される。ホストI/O
バス手段56のスロット(図示なし)のコネクタ(図示
なし)は、このカードの一端に備え付けられ、そこにシ
ミュレーション・プロセサ2またはAETギャザラ4が
装着される。シミュレーション・バス手段3のスロット
手段0、1、...、15、またはnのコネクタ(図示
なし)は、カードのもう一端に備え付けられる。シミュ
レーション・プロセサ2とAETギャザラ4は、カード
の一端のコネクタ(図示なし)をホストI/Oバス56
のスロット(図示なし)に直接差し込むことによってホ
スト5に装着される。シミュレーション・バス手段3
は、スロット手段0ないしnを、カードの反対側のコネ
クタ(図示なし)に差し込むことによってシミュレーシ
ョン・プロセサ2とAETギャザラ4に接続される。
【0019】次に図3により、シミュレーション・バス
手段3のスロット手段0に装着されるシミュレーション
・プロセサ2の構成について説明する。他のシミュレー
ション・プロセサ2も同じ構成であるが、ホスト・イン
タフェース21が異なる。各シミュレーション・プロセ
サ2には7つの基本要素がある。ブロック記述アレイ
(BDA)22などの第1メモリ・ユニット、現在状態
アレイ23などの第2メモリ・ユニット、論理関数テー
ブル24、出力手段25、バス駆動手段80、プログラ
ム・カウンタ26、及び制御ロジック手段27である。
【0020】ブロック記述アレイ22は、シミュレーシ
ョン・プロセサ2の命令メモリであり、そのシミュレー
ションの動作を指定するのに必要な情報をすべて格納す
る。図4にブロック記述アレイ22の内容を示す。アレ
イ22の1アドレスに格納された命令は、OPコード
(命令コード)フィールド(16ビット)と、A1、A
2、A3、A4の各フィールド(この例では各々24ビ
ット)を含む。命令の種類は、図5に示すようにOPコ
ード・フィールドによって決まる2種類がある。OPコ
ードの第1ビット位置がバイナリ1である、ゲートを評
価するためのブロック記述命令と、OPコード・フィー
ルドの第1ビット位置がバイナリ0である、そのシミュ
レーション・プロセサの動作を制御するための制御命令
である。
【0021】ブロック記述命令については、1つの命令
ワードが、シミュレートされるモデル内の各ロジック・
ブロックまたはゲートに対応する。命令ワードのアドレ
スは、ブロックまたはゲートの識別子をあらわす。命令
には、AND、ORなどゲートの論理関数を指定するO
Pコード・フィールドと、ゲートの入力端子または入力
オペランドを指定する4つのフィールドA1、A2、A
3、A4が含まれる。したがってブロック記述命令は、
1出力、4入力の1ゲートに対応する。ゲートの論理関
数は、論理関数テーブル24へのインデクスである、O
Pコード内の8ビット関数ポインタ、FFFFFFFF
によって決まる。入力と出力の反転は、OPコードの反
転ビットI1、I2、I3、I4、I0によって、論理
関数テーブル24とは独立して行える。フィールドA
1、A2、A3、A4は、4つの入力オペランドが格納
される現在状態アレイ23のアドレスをあらわす。ブロ
ック記述アレイ22内のブロック記述命令のアドレス
は、算出結果が格納される現在状態アレイ23内のその
出力アドレスを意味する。ブロック記述アレイ22のサ
イズは、シミュレーション・プロセサ2に求められる容
量による。この例の場合、アレイ22は、最大512K
のブロック記述命令を格納できる。
【0022】図6に、図4のアドレスZに示したブロッ
ク記述命令を説明するために、シミュレーション・プロ
セサ2によってシミュレートされるゲートの例を示す。
ANDゲートは符号Zで示した。これは、ゲートのブロ
ック記述命令が格納されるブロック記述アレイ22内の
アドレスに対応する。ゲートのAND関数ポインタと反
転関数は、命令のOPコード・フィールドに格納され
る。このゲートの入力端子V、W、X、Yは、命令のフ
ィールドA1、A2、A3、A4に格納される。現在状
態アレイ23は、ゲートZの入力オペランドを、フィー
ルドA1、A2、A3、A4によって指示されたアドレ
スV、W、X、Yに格納する。
【0023】制御命令については、OPコード・フィー
ルドが、シミュレーション・プロセサによって実行され
る制御関数を指定する。図5に示すとおり、ホールト
は、ホストのインタラクションを待つためにシミュレー
ションを停止させるという意味である。ブロードキャス
トは、シミュレーション・バス3に接続されたホストや
補助プロセサによって使用されるように、シミュレーシ
ョン・バス手段3へデータのパケットを送るという意味
である。ブランチは、フィールドA2、A3によって指
示されたアドレスに格納された命令へ行くことを意味す
る。
【0024】図7により、現在状態アレイ23について
説明する。現在状態アレイ23は、シミュレートされた
モデル全体の現在状態の完全なコピーを格納するメモリ
である。各ブロックまたはゲートの状態は2ビットで指
定される。可能な状態は論理0(00)、論理1(0
1)、未定義(10)、及びハイ・インピーダンス(1
1)である。現在状態アレイ23は、シミュレートされ
たマシンのすべてのブロックまたはゲートのこのような
現在状態を格納する。この例では、シミュレートされた
マシンに可能なブロックまたはゲートの大きさは512
Kであるので、シミュレートされたマシンの状態は1M
ビットで格納される。現在状態アレイ23には、少なく
とも1Mビットの容量がなくてはならない。ただし、こ
の例の場合、現在状態アレイ23は、最大性能を達成す
るためにこれより大きくなっている。所与のブロックま
たはゲートについて計算を行う際、現在状態アレイ23
の内容は、4つのフィールドA1、A2、A3、A4に
よって同時にアドレスされる。4つの異なるブロックま
たはゲートの現在状態は、同時に読み取るのが望まし
い。したがって、アレイ23は4回コピーされる。アレ
イ23の読み取りでは、4つの異なるアドレスを同時に
読み取れる。アレイ23の書き込みでは、常に、4つの
全アレイの同じアドレスが書き込まれる。すなわち、現
在状態アレイ23が読み取られるときは、マルチプレク
サ(MUX)62が、アドレス選択を通して、制御ロジ
ック手段27によって制御され、アドレスA1、A2、
A3、A4が各アレイに出力される。次に、各アレイ
が、2ビット・オペランドをオペランド反転ロジック手
段(INV)63に出力する。出力されたオペランドの
各々は、論理関数テーブル24における演算の前に、手
段63のOPコードの反転ビットによって反転できる。
現在状態アレイ23が書き込まれるときは、マルチプレ
クサ62が、アドレス選択を通して、制御ロジック手段
27によって制御され、1アドレスA0が出力される。
次に同じデータが4つのアレイの同じアドレスA0に書
き込まれる。もちろんこれは、1つのアレイとタイム・
スライスによっても行えるが、約4倍の性能向上が犠牲
になる。さらに、図7に示した例では、別に4つのアレ
イが追加される。ユニット・ディレイ・シミュレーショ
ンの場合、シミュレートされたマシンの状態は、“マス
タ/スレーブ”構成でセーブする必要がある。すなわ
ち、マシンの次の状態は、これがマシンの現在状態にな
る前に、もれなく計算する必要がある。これを実現する
最も簡単な方法は、2つのメモリ(A、B)をピンポン
構成で使用することである。Aに現在状態が格納されて
いるときは、次の状態のセーブにBが用いられる。Bに
現在状態が格納されているときは、次の状態のセーブに
Aが用いられる。
【0025】図8により、論理関数テーブル24につい
て説明する。論理関数テーブル24は、プログラマブル
・ロジック・ブロックであり、このブロックの主要素
は、65Kx2ビットのスタティックRAMメモリ65
である(OPコード・フィールドの8ビット関数ポイン
タと、オペランド反転ロジック63からの4つの2ビッ
ト入力オペランドによって指示される)。論理関数テー
ブル24は2ビット出力を生成する。この出力は、評価
されたゲートの次の状態である。RAM65は、マルチ
プレクサ67を通してホスト・コンピュータ5からもア
クセス可能である。マルチプレクサ67は、シミュレー
ションが始まる前に1組の論理関数をRAM65にロー
ドする必要がある。論理関数テーブル24は、基本的に
は、与えられたゲート関数と4つの入力オペランドに対
して2ビット出力を生成するルックアップ・テーブルで
ある。論理関数テーブル24の出力は、出力反転ロジッ
ク手段(インバータ)66を介して出力手段25へ供給
される。テーブル24からの出力は、出力手段25を通
してデータ・ライン3Aの割当ラインに送出する前に、
OPコードの反転ビットによって、出力反転ロジック手
段66において反転できる。オペランド反転ロジック6
3からの出力はバス駆動手段80へも供給される。ブロ
ードキャスト・コマンドが、制御ロジック27によって
実行されると、バス駆動手段80は、オペランド反転ロ
ジック63を通して、現在状態アレイ23からのコマン
ドのフィールドA1ないしA4によって指示された4つ
の現在状態を受け取り、制御ロジック27の制御下で、
データ・ライン0ないし7、8ないし15、16ないし
23、または24ないし31に8ビットのデータを送出
する。現在状態アレイ27のデータは、シミュレーショ
ン・プロセサ2からのブロードキャスト・コマンドによ
ってホスト5へ送られ、ホスト5で用いられる。
【0026】図9により、出力手段25について説明す
る。出力手段25は、16のANDゲートE0、E
1、...、E15、16のゲートL0、L
1、...、L15(出力はデータ・ライン3Aの偶数
ライン0、2、...、30につながる)、及び16の
ゲートH0、H1、...、H15(出力はデータ・ラ
イン3Aの奇数ライン1、3、...、31につなが
る)から成る。ハード・ワイヤード手段3Dと制御ロジ
ック手段27につながる構成ライン3Cは、ANDゲー
トE0、E1、...、E15の入力に接続される。ラ
イン3CからゲートE0への入力はすべて、ライン3C
の4ビット・バイナリ・データ0000だけによってゲ
ートE0が活動化されるように反転される。ライン3C
の最下位ビット・ラインからの入力は、ゲートE1に直
結し、ライン3CからゲートE1への他の3つの入力
は、4ビット・バイナリ・データ0001だけによって
ゲートE1が活動化されるように反転される。以下同様
である。ライン3Cからの入力はすべて、ライン3Cの
4ビット・バイナリ・データ1111だけによってゲー
トE15が活動化されるように、ゲートE15に直結さ
れる。制御ロジック27からの動作モード・シグナル
は、ANDゲートE0、E1、...、E15の各々の
入力にも接続され、シミュレーション・プロセサ2の動
作モード時にANDゲートが活動化される。ANDゲー
トE0、E1、...、E15の出力は、ゲートL0と
H0、L1とH1、...、L15とH15の各端子を
付勢するように接続される。出力反転ロジック手段66
からの出力のLOWビット・ラインは、ゲートL0、L
1、...、L15の入力に接続される。出力反転ロジ
ック手段66からの出力のHIGHビット・ラインは、
ゲートH0、H1、...、H15の入力に接続され
る。よって、スロット手段0、1、2、...、15に
装着されたシミュレーション・プロセサ2は、その算出
結果を、出力手段25を通してデータ・ライン3Aのラ
イン0と1、2と3、4と5、...、及び30と31
に送出する。したがって、各シミュレーション・プロセ
サ2には、その結果を送出するために、シミュレーショ
ン・バス3のどのスロット手段をプロセサ2が占有して
いるかに応じて、データ・ライン3Aのうち2つが割り
当てられる。
【0027】図3に戻るが、制御ロジック手段27は、
シミュレーション・バス手段3に接続されたすべてのシ
ミュレーション・プロセサ2が同期して動作するするよ
うに、クロック手段68を制御する。制御ロジック手段
27は、プログラム・カウンタ26が、ブロック記述ア
レイ22から命令を出力するアドレス、及び算出結果を
すべてのシミュレーション・プロセサ2から現在状態ア
レイ23に書き戻すアドレスを生成するように、プログ
ラム・カウンタ26を制御する。制御ロジック手段27
は、ブランチ、ブロードキャスト、ホールトなどの制御
命令を制御する。制御ロジック手段27はまた、シミュ
レーションの前に、ホスト・コンピュータ5から、ブロ
ック記述アレイ22に命令を、現在状態アレイ23に初
期状態をロードするために、シミュレーション・プロセ
サ2を制御する。
【0028】また、スロット0を占有するシミュレーシ
ョン・プロセサ2は、ホスト5とシミュレーション・プ
ロセサ2との間でデータと命令を転送するためのホスト
・インタフェース21を含む。ホスト・インタフェース
21は、ファーストイン・ファーストアウト(FIF
O)バッファであり、シミュレーション・バス手段3と
ホストI/Oバス手段56との間でデータを一時格納す
る。パケット・データがホスト・インタフェース21を
通してホストから入ると、各シミュレーション・プロセ
サ2は、そのデータをシミュレーション・バス手段3か
ら取り出す。パケット・データがホストへ送られると、
ホスト・インタフェース21の制御ロジックは、制御ラ
イン3Bの内容によって、データ・ライン3Aのデータ
が、ホストを対象としているかどうかを判定し、データ
をホスト5へ転送する。ホスト・インタフェース手段2
1では、ユーザが、ブロック記述アレイ22と現在状態
アレイ23を、シミュレーションの初めに初期化し、シ
ミュレーションの終わりに結果をテストできる。またシ
ミュレーションの間に、現在状態アレイ23の内容を読
み取って変更を加え、シミュレーション効果を高めるこ
ともできる。
【0029】図1、図2、及び図3に戻り、ロジック・
マシン1の動作について説明する。ホスト・コンピュー
タ5は、電源投入時にシミュレーション・プロセサ2を
占有して、シミュレーションの前に命令とデータをシミ
ュレーション・プロセサ2にロードし、シミュレーショ
ンの間とそれ以降またはそのいずれかの時間に結果を評
価し、ユーザとのインタフェースをとる。ホスト・コン
ピュータ5は、I/Oバス手段56を通して各シミュレ
ーション・プロセサ2を直接占有する。ホストは、占有
後に、I/Oスロットに装着されたシミュレーション・
プロセサの数をカウントし、その数をシミュレーション
・プロセサ2に通知する。ただしホストは、占有後は、
シミュレーション・プロセサ2の構成に関わる必要はな
い(後述)。占有後、ホスト・コンピュータ5は、I/
Oスロットを介した電力供給を除き、シミュレーション
・バス手段3のスロット0に装着されたシミュレーショ
ン・プロセサ2に備えられたホスト・インタフェースだ
けを通して、シミュレーション・プロセサ2と通信す
る。
【0030】ホスト・コンピュータ5は、各シミュレー
ション・プロセサ2のブロック記述アレイ22に命令を
ロードするとき、I/Oバス56とホスト・インタフェ
ース21を通してシミュレーション・バス手段3に命令
を送る。各シミュレーション・プロセサ2は順に命令を
受け取ってブロック記述アレイ22に格納する。したが
って、図10に示すように、スロット手段0、
1、...、15に装着されたシミュレーション・プロ
セサ2は、ゲート0、16、32、...、ゲート1、
17、33、...、及びゲート15、31、4
7、...に対するブロック記述命令を、各々のブロッ
ク記述アレイ22に連続的に格納し、同じ制御命令を、
ブロック記述アレイ22の同じアドレスに格納する。
【0031】ここでまた図1、図2、及び図3に戻る
が、ホスト・コンピュータ5は、マシン1によってシミ
ュレートされたモデル全体の同じ初期状態を、各シミュ
レーション・プロセサ2の現在状態アレイ23にロード
する。実施例の場合、各シミュレーション・プロセサ2
の現在状態アレイ23は、シミュレーションの間に、シ
ミュレートされたモデル全体の現在状態の完全なコピー
を維持する(後述)。ホスト・コンピュータはまた、同
じ関数データを、論理関数テーブル24にロードする。
【0032】シミュレーションには動作と停止の2つの
モードがある。動作モードでは、各シミュレーション・
プロセサ2がそのブロック記述アレイ22を連続的にた
どり、ブロック記述アレイ22に組み込まれるか、また
はホスト・コンピュータ5から送られ得るコマンドを受
け取るまで、各ゲートの次の状態を評価する。停止モー
ドでは、シミュレーションは行われず、現在状態アレイ
23とブロック記述アレイ22を含むロジック・シミュ
レーション・マシン1全体の状態は、ホスト・コンピュ
ータ5による検査と訂正に使用できる。
【0033】動作モードのとき、このロジック・シミュ
レーション・マシン1では、16のシミュレーション・
プロセサ2が1つのシミュレーション・モデルを処理
し、シミュレーションを高速化できる。並列構成の場
合、各シミュレーション・プロセサ2は1サイクルに1
ゲートを評価する。サイクルの終わりに、各シミュレー
ション・プロセサ2が、その結果を、データ・ライン3
Aの割当ラインに並列に送出し、すべてのシミュレーシ
ョン・プロセサ2が、データ・ライン3Aからの結果で
各々の現在状態アレイ23を更新する。
【0034】動作モードのサイクルごとに、シミュレー
ション・バス手段3に装着された各シミュレーション・
プロセサ2において、ブロック記述アレイ22からホー
ルト・コマンドが検出されるか、またはホスト・コンピ
ュータ5がシミュレーションを停止するまで、以下のス
テップが同期して実行される。
【0035】制御ロジック手段27は、プログラム・カ
ウンタ26を開始アドレスから順次にインクリメント
し、ブロック記述アレイ22から命令を順次に出力す
る。ブロック記述アレイ22が、プログラム・カウンタ
26によってアドレスされると、アレイ22は、対応す
るアドレスに格納された命令を出力する。命令のOPコ
ード・フィールドはラッチ61によってラッチされる。
このOPコード・フィールドは、それがブロック記述命
令であるか、または制御命令であるかを示す。ブロック
記述命令であれば、OPコード・フィールドには、評価
されたゲートの関数が記述される。フィールドA1ない
しA4は、評価されたゲートの4つの入力端子を指定
し、入力端子の現在状態が格納された現在状態アレイ2
3内のアドレスに対応する。
【0036】アドレスA1ないしA4は、マルチプレク
サ62を通してアレイ23に引き渡される。評価された
ゲートに対する入力オペランドである4つの2ビットの
現在状態は、フィールドA1ないしA4によって指定さ
れたアドレスから同時にフェッチされる。これらの入力
オペランドは、論理関数テーブル24における演算の前
に、OPコードによって指示されていればオペランドが
反転されるように、オペランド反転ロジック手段63に
送られる。
【0037】評価されたゲートに対する入力オペランド
は論理関数テーブル24に送られる。この情報は、ラッ
チ61からの、ゲートの関数を記述したOPコード・フ
ィールドの関数ポインタとともに、論理関数テーブル2
4へのポインタとしてもcる。論理関数テーブル24
は、基本的にはルックアップ・テーブルであり、その入
力が現在与えられていれば、ゲートに対して正規の2ビ
ット出力値を生成する。
【0038】論理関数テーブル24の出力は、OPコー
ドによって指示されていれば出力が反転されるように、
出力反転ロジック66に送られる。出力反転ロジック手
段66からの結果は、出力手段25に供給され、マシン
1の現在状態アレイ23をすべてその結果で更新するた
めに、データ・ライン3Aの割当ラインに送出される。
【0039】たとえば、図6のANDゲートは次のよう
に評価される。スロット0に装着されたシミュレーショ
ン・プロセサのプログラム・カウンタ26が、アドレス
Zを生成して、ゲートのブロック記述命令をブロック記
述アレイ22からフェッチする。ブロック記述命令のフ
ィールドA1ないしA4によって指示されたとおり、4
つのオペランドH(0、1)、H(0、1)、L(0、
0)、L(0、0)が、現在状態アレイ23のアドレス
V、W、X、Yからフェッチされる。第1及び第2の入
力オペランドH(0、1)、H(0、1)は、OPコー
ドによって、オペランド反転ロジック63でL(0、
0)、L(0、0)に反転される。4つのL(0、0)
入力オペランド全部とAND関数を指定する関数ポイン
タがテーブル24に入力される。テーブル24は結果の
L(0、0)を出力する。この結果は、出力反転ロジッ
ク手段66においてOPコードによってH(0、1)に
反転される。出力H(0、1)は、出力手段25に供給
され、すべてのシミュレーション・プロセサ2に転送さ
れて、各々の現在状態アレイ23が更新される。
【0040】先にも述べたように、スロット0、1、
2、...、15のプロセサ2は、データ・ライン3A
の割当ライン0と1、2と3、4と5、...、及び3
0と31に2ビットの結果を送出する。これにより、こ
のサイクルで算出されたすべての結果がデータ・ライン
3Aに並列に現れる。データ・ライン3A上の結果は、
制御ロジック手段27によって受け取られ、各シミュレ
ーション・サイクルの終わりに、各プロセサ2の現在状
態アレイ23内の隣接した16のアドレスに、シミュレ
ーション・サイクル数と当該構成のシミュレーション・
プロセサ数との積(この例では16)によって指示され
たアドレスを先頭として書き戻される。たとえば、第1
シミュレーション・サイクルの終わりでは、すべてのシ
ミュレーション・プロセサの現在状態アレイ23のアド
レス0ないし15が、データ・ライン3A上の結果で更
新される。第2シミュレーション・サイクルの終わりで
は、現在状態アレイ23のアドレス16ないし31が、
ライン3A上の結果で更新される。第3シミュレーショ
ン・サイクルの終わりではアドレス32ないし47とな
り、以下同様である。こうして、各シミュレーション・
プロセサ2の現在状態アレイ23は、各シミュレーショ
ン・サイクルですべてのプロセサ2によって算出された
結果で更新され、マシン1で評価されたモデルの現在状
態の完全なコピーを維持する。ホスト・コンピュータ5
は、シミュレーションの間には、ブロードキャスト・コ
マンドによって、データ・ライン3Aとホスト・インタ
フェース21を通して、シミュレーションの後には、ス
ロット0に装着されたプロセサ2の現在状態アレイ23
から、結果を受け取ることができる。
【0041】シミュレーション・プロセサ2がブラン
チ、ブロードキャスト、ホールトなどの制御命令を実行
するとき、すべてのシミュレーション・プロセサ2にお
いて、同一の制御命令が同時に実行され、シミュレーシ
ョンの同期が正しくとられる。たとえばブランチは、1
度に、すべてのシミュレーション・プロセサ2にわたっ
て同一のものとして解釈される。
【0042】このマシン1の場合、複数のシミュレーシ
ョン・プロセサ2が、シミュレーション・モデルを並列
に処理してシミュレーションを高速化するため、ほぼ直
線的な高速化が実現する。すなわち、シミュレーション
・プロセサは、その数が約2倍になれば、約2倍高速に
動作する。高速化に非直線性が生じる原因は、更新の必
要なことだけである。データを現在状態アレイに書き戻
すのにかなり時間がかかるからである。この例では16
のシミュレーション・プロセサ2がシミュレーション・
バス手段3に接続されるが、シミュレーション・プロセ
サは、所要性能に応じて、1、2、4、6、8、16か
ら成るグループから任意の個数を選択して、シミュレー
ション・バス手段3に接続することができる。シミュレ
ーション・プロセサ2の構成は、ホスト・コンピュータ
5から見てトランスペアレントに保たれ、最大構成を対
象に形成された同じモデルを、構成の変更とは無関係に
使用できる。これは、制御ロジック27と構成ライン3
Cが、構成をシミュレーション・プロセサに通知して、
それら自体が構成変更に関わるからである。また、ホス
ト・コンピュータ5は、シミュレーション・プロセサ2
を占有した後、シミュレーション・バス手段3のスロッ
ト0に装着されたプロセサ2のホスト・インタフェース
21を介して、ロジック・シミュレーション・マシン1
と通信する。そこで、シミュレーション・プロセサ2の
グループは、ホスト・コンピュータ5から見ると、複数
のタスク(シミュレーション・モデルの形成、このモデ
ルのシミュレータへのロード、シミュレーションの実
行、及び結果の検索と解析)に関係する1つのエンティ
ティとなる。
【0043】もし16のシミュレーション・プロセサで
はなく4つのシミュレーション・プロセサ2がシミュレ
ーション・バス手段3に接続されれば、4つのシミュレ
ーション・プロセサ2は、スロット0、1、2、3に装
着され、各々、構成ライン3Cから一意のデータを受け
取る。各シミュレーション・プロセサ2のブロック記述
アレイ22に命令がロードされる際、各シミュレーショ
ン・プロセサ2は順に命令を受け取ってブロック記述ア
レイ22に格納する(図11)。
【0044】この構成では1シミュレーション・サイク
ルで4つのゲートが評価される。4つのプロセサ2によ
って評価された4つのゲートの結果は、4サイクルの第
1サイクルの終わりでは、データ・ライン3Aのライン
0ないし7に並列に送出され、4サイクルの第2サイク
ルの終わりでは、ライン8ないし15に、4サイクルの
第3サイクルの終わりではライン16ないし23に、そ
して4サイクルの第4サイクルの終わりではライン24
ないし31に送出される。これは、制御ロジック27か
ら、第1サイクルでは(0、0)を、第2サイクルでは
(0、1)を、第3サイクルでは(1、0)を、第4サ
イクルでは(1、1)を、図9の構成ライン3Cの最上
位ビット及び第2最上位ビットのラインに送出すること
によって行われる。第4サイクルの終わりでは、すべて
のデータ・ライン3Aに結果が得られ、その結果は、現
在状態アレイ23の隣接する16のアドレスに、4サイ
クルの第1シミュレーション・サイクル数とシミュレー
ション・プロセサ数の積、すなわち4によって指示され
たアドレスを先頭にして書き戻される。つまり、4サイ
クルの終わりでは、すべてのデータ・ライン3Aがプロ
セサ2からの結果で一杯となり、各シミュレーション・
プロセサ2の現在状態アレイ23は、データ・ライン3
B上の結果で更新される。この構成では、同じ16のゲ
ートを評価するのに4シミュレーション・サイクルが必
要で、図1、図2の構成では1シミュレーション・サイ
クルである。図11のような4プロセサ構成では、各ブ
ロック記述アレイ22の隣接した4つのアドレスに同一
の制御命令が4つ置かれる。プロセサ2の各制御ロジッ
ク手段27は、4つの同一の制御命令のうち第1のブラ
ンチ制御命令またはホールト制御命令を実行し、他の3
つの同一かつ冗長な制御命令は無視する。4つのブラン
チ・コマンドまたはホールト・コマンドの内容が同じだ
からである。しかし、ブロードキャスト命令はすべてプ
ロセサ2によって実行される。これは、16のブロード
キャスト・コマンドは各々、アレイ23からホスト5に
データを転送するための、フィールドA1ないしA4の
オペランドが異なるからである。
【0045】マシン1は、シミュレーション・プロセサ
数をソフトウェアに対してトランスペアレントにする。
つまり、アーキテクチャとしては16のブロック記述命
令が常に同時に実行される。これには、実際にはシミュ
レーション・プロセサ数に応じて1、2、4、8、また
は16のサイクルがかかるが、違いはソフトウェアから
は見えない。ホスト・コンピュータが、ロードその他の
ために、シミュレーション・プロセサのブロック記述ア
レイをアクセスするとき、ホスト・コンピュータが認識
するのは1組の命令にすぎない。シミュレーション・プ
ロセサのハードウェアは、ホストのアクセスを、複数の
カード上の異なるアレイへ向けることができるが、ホス
トはこれを認識しない。シミュレートされるロジック・
モデルが、最大構成のロジック・シミュレーション・マ
シンを対象に形成される場合、このモデルは、何ら変更
を加えることなく、より小規模な構成で動作する。この
考え方から、同じモデルを多くのハードウェア構成で使
用できる。ホストは、構成を認識する必要はなく、構成
にかかわらず、すべてのホスト・データをI/Oバスに
送信するだけでよい。この意味は大きい。それは特に、
この例のアーキテクチャによれば、ユーザが、所要性能
を得るために、ロジック・シミュレーション・マシンを
いつでも再構成できるからである。
【0046】シミュレーション・プロセサ2は、シミュ
レーションの際に、通常はゲート・ロジックだけをシミ
ュレートするために用いられ、メモリやアレイのモデリ
ング、デバイス動作などの機能は、ホスト・コンピュー
タ5によって実行される。ただし図1、図2のマシン1
では、ホスト・コンピュータ5との間のデータはすべて
シミュレーション・バス手段3に送られ、ホストは、バ
ス3上のもう1つのデバイスでしかなくなる。これは、
シミュレーション・バス手段3に、シミュレーション・
プロセサ2と並列に装着されたハードウェアのアクセラ
レータまたは補助プロセサによって、シミュレーション
・バス3のトラフィックを模倣することによって、どの
ようなホスト機能も実行できることを意味する。トレー
ス収集、メモリやアレイのシミュレーション、及びデバ
イス動作が、ハードウェアのアクセラレータまたは補助
プロセサの対象となることは明らかである。このような
操作の場合は、ホストがシミュレーション・スループッ
トを減速し得る。実際に、こうしたホストの負担を軽減
するために、ユーザ・インタフェースを除くすべての機
能を補助プロセサに移植することもできる。
【0047】この発明のAET(全イベント・トレー
ス)ギャザラ4は、このような補助プロセサの一例であ
る。AETは、シミュレーションの間にすべてのファシ
リティに生じたことの記録である。通常、従来の技術に
よるAETデータは、各シミュレーション・サイクルの
終わりに、ホスト・コンピュータ5が、トレースされる
すべてのノードを評価することによって収集される。こ
うした対象ノードだけをホストに送信するブロードキャ
スト・コマンドは効率的ではあるが、2つの制約が残
る。第1に、トレースされるノードは、変化しなかった
ものも含めてすべてホスト・コンピュータに送られる。
第2に、シミュレーション・サイクルごとにデータを評
価するのでホストにかなりの時間がかかる。AETギャ
ザラ4は、AETデータをシミュレーションと平行して
生成し、ホスト・タスクを軽減する。
【0048】図12により、この発明の第1実施例に従
ったAETギャザラ4について説明する。AETギャザ
ラ4のコンポーネントはシミュレーション・プロセサ2
のものと同じで、シミュレーション・バス手段3をモニ
タすることによって、シミュレートされたモデル全体の
現在状態の完全なコピーを維持する現在状態アレイ41
と、シミュレーション・プロセサ2と同期がとられるプ
ログラム・カウンタ42である。AETギャザラ4はこ
のほか、独自の制御ロジック手段43と変化記録アレイ
44を備え、シミュレートされたモデルの変化だけを格
納する。現在状態アレイ41は、1つのアレイによって
構成され、シミュレーション・プロセサ2のように同じ
アレイを4個または8個持つ必要はない。現在状態アレ
イ41は、プロセサ2の現在状態アレイ23と同じよう
に、各シミュレーション・サイクルの終わりに、データ
・ライン3B上の算出結果で更新される。
【0049】制御ロジック43は、各シミュレーション
・サイクルの初めに、変化記録アレイ44にマーカを置
いてサイクル開始点を指示する。シミュレーションが進
むと、制御ロジック43は、シミュレーション・バス手
段3をモニタして、現在状態の完全なコピーを現在状態
アレイ41に維持する。制御ロジック43は、各ノード
・アドレスの新しい値をそれらが生成されたときに、現
在状態アレイ41にある古い値と比較することによっ
て、ノードの変化を検出する。変化が検出されると、制
御ロジック43は、ノード・アドレスと新しいノード値
を変化記録アレイ44に格納する。
【0050】図13、図14、図15により、AETギ
ャザラ4の動作について説明する。図13は、ロジック
・シミュレーション・マシン1のシミュレーション・プ
ロセサ2によってシミュレートされる設計モデル(2ビ
ット・カウンタ)を示す。評価されるノードはZ0、Z
1、Z2、Z3の4つである。図14は、各シミュレー
ション・サイクルの終わりでの現在状態アレイ41内の
全ノードの状態を示す。このモデルのノードはすべて1
回評価されたものである。図15は、3シミュレーショ
ン・サイクルの後の変化記録アレイ44の内容を示す。
変化のあったノードと新しい値だけが変化記録アレイ4
4に格納される。
【0051】どのファシリティのどのサブセットも、マ
スクとして用いられる別個の(シャドー)アレイのサイ
ズを現在状態アレイ41と等しくしておくことによって
トレース可能である。ビットは、トレースされるノード
に対するシャドー・アレイに置かなければならない。図
16は、シミュレーションの間に全ファシリティのどの
サブセットもトレースする、本発明の第2実施例に従っ
たAETギャザラ4を示す。AETギャザラ4は、図1
2に示したものと同じコンポーネントを含むほか、全フ
ァシリティのどのサブセットもトレースできるように、
トレース対象のノードを示すビットを格納するための、
現在状態アレイ41とサイズが同じシャドー・アレイ7
1を備える。シャドー・アレイ71は、制御ロジック4
3が、現在状態アレイ41に格納された現在状態と、シ
ミュレーション・バス3からの算出結果との変化を調べ
て、すべてのファシリティのサブセットについてのAE
T記録を生成するときに、マスクとして用いられる。シ
ャドー・アレイは、プロセサ2の現在状態アレイ23の
同一の4つのアレイの1つで構成してもよい。
【0052】AETギャザラ4は、受動的な補助プロセ
サであり、シミュレーション・バス手段3をモニタする
だけである。ギャザラ4がシミュレーションに影響を与
える唯一の機会は、シミュレーションを中止して、変化
記録アレイ44をホストにダンプするときである。これ
はまずめったに起こらないし、ホストの転送幅がシミュ
レーションとAETダンプの両方を処理できるほどであ
れば回避できる。AETギャザラ4は、最小の情報(変
化のみ)を記録するので、変化記録アレイ44が充分に
大きく、トレース対象のファシリティの数が妥当であれ
ば、AETダンプが必要になる前にほとんどのシミュレ
ーションを完了できる。AETギャザラ4は、シミュレ
ーション・プロセサ及びホスト・コンピュータのタスク
を減速することなく、シミュレーション・バス手段3を
モニタすることによって、AETを生成するほか、AE
Tギャザラ4により、どのノードがトレース対象である
かを示すマスクを格納するためにシャドー・アレイを使
用することで、ファシリティのどのサブセットも収集で
きる。
【0053】図1、図2のロジック・シミュレーション
・マシンの場合、シミュレーション・バス手段に接続さ
れるシミュレーション・プロセサの数は2n であり、最
大数は16である。ただし、この発明のAETギャザラ
は、これがシミュレーションと平行してAETを収集す
るために、シミュレーション・バス手段上のデータをモ
ニタするように、任意の個数のシミュレーション・プロ
セサを含むロジック・シミュレーション・マシンに接続
できる。
【0054】
【発明の効果】この発明によれば、シミュレーションを
減速することなく、AET(全イベント・トレース)記
録をシミュレーションと平行して生成するAETギャザ
ラを提供することができる。
【図面の簡単な説明】
【図1】本発明の実施例に従ったAETギャザラが接続
されるロジック・シミュレーション・マシンのA−A線
より左側を示すブロック図である。
【図2】図1のロジック・シミュレーション・マシンの
A−A線より右側を示すブロック図である。
【図3】図1、図2のスロット0に装着されたシミュレ
ーション・プロセサのブロック図である。
【図4】図3のシミュレーション・プロセサのブロック
記述アレイの内容を示す図である。
【図5】図4のブロック記述アレイに格納された命令の
OPコード・フィールドを示す図である。
【図6】ブロック記述命令と、図3に示したシミュレー
ション・プロセサの動作を説明するために簡略化したロ
ジック回路モデルのブロック図である。
【図7】図3のシミュレーション・プロセサの現在状態
アレイのブロック図である。
【図8】図3のシミュレーション・プロセサの一部を示
すブロック図である。
【図9】論理関数テーブルからの結果を、シミュレーシ
ョン・バスの割当データ・ラインに送出する、図3のシ
ミュレーション・プロセサの出力手段を示すブロック図
である。
【図10】マシン動作を説明するために、図1、図2の
マシンのシミュレーション・プロセサのブロック記述ア
レイを簡略化した図である。
【図11】ロジック・シミュレーション・マシンの別の
構成のブロック記述を簡略化した図である。
【図12】シミュレーションの間にAET(全イベント
・トレース)を生成するために、シミュレーション・バ
ス手段によってロジック・シミュレーション・マシン
に、シミュレーション・プロセサと並列に接続された、
この発明の実施例に従ったAETギャザラのブロック図
である。
【図13】図12のAETギャザラの動作を説明する、
図1、図2のマシンによってシミュレートされる2ビッ
ト・カウンタの図である。
【図14】図13のカウンタのノードの、シミュレーシ
ョン・サイクルごとの現在状態を説明するテーブルの図
である。
【図15】図12のAETギャザラの動作を説明する、
変化記録アレイの内容を示すテーブルの図である。
【図16】この発明の第2実施例に従ったAETギャザ
ラのブロック図である。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭59−117660(JP,A) 特開 平1−207838(JP,A) 特開 昭63−316140(JP,A)

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】パラレル・シミュレーションのための複数
    のシミュレーション・プロセサと、該シミュレーション
    ・プロセサを相互に接続するためのシミュレーション・
    バス手段と、を含み、シミュレーション・サイクル毎に
    シミュレートされた現在状態を上記シミュレーション・
    バス手段に並列に供給するための出力手段を上記複数の
    シミュレーション・プロセサの各々が有する、ロジック
    ・シミュレーション・マシンにおいて、上記シミュレー
    ション・バス手段に上記複数のシミュレーション・プロ
    セサと並列に接続され、各シミュレーション・プロセサ
    のシミュレート・サイクル毎にシミュレートされたモデ
    ルの現在状態を上記シミュレーション・バス手段を通し
    て並列に受け取り、受け取った該現在状態を格納するた
    めの現在状態格納手段と、上記モデルの現在状態の変化
    を格納するための変化記録手段と、上記現在状態格納手
    段に格納された現在状態の変化を検出し、該変化を上記
    変化記録手段に格納するために、シミュレートされた上
    記モデルの現在状態を上記シミュレーション・バス手段
    からモニタする制御手段と、を含む全イベント・トレー
    ス・ギャザラ。
  2. 【請求項2】シミュレーションの間にすべてのファシリ
    ティのサブセットをトレースするためにトレースすべき
    ノードを指示するマスクを格納するための、サイズが上
    記現在状態格納手段と等しいメモリ手段を、更に含む請
    求項1記載の全イベント・トレース・ギャザラ。
  3. 【請求項3】複数のシミュレーション・プロセサと、該
    シミュレーション・プロセサがシミュレートした現在状
    態を送出するシミュレーション・バス手段と、現在状態
    格納手段と、変化記録手段と、を含むロジック・シミュ
    レーション・マシンにおいて、上記ロジック・シミュレ
    ーション・マシンの各々によってシミュレートされたモ
    デルの現在状態を上記シミュレーション・バス手段を通
    して並列に受け取り、受け取った該現在状態を上記現在
    状態格納手段に格納するステップと、上記現在状態格納
    手段に格納された現在状態の変化を検出するために、シ
    ミュレートされた上記モデルの現在状態をモニタするス
    テップと、上記変化を上記変化記録手段に格納するステ
    ップと、を含む、ロジック・シミュレーションの間に全
    イベント・トレースを収集する方法。
  4. 【請求項4】上記ロジック・シミュレーション・マシン
    に、サイズが上記現在状態格納手段と等しいメモリ手段
    が含まれ、シミュレーションの間にすべてのファシリテ
    ィのサブセットをトレースするために、トレースすべき
    ノードを指示するマスク手段を、上記メモリ手段に格納
    するステップ、を更に含む請求項3記載の全イベント・
    トレースを収集する方法。
  5. 【請求項5】パラレル・シミュレーションのための複数
    のシミュレーション・プロセサと、該シミュレーション
    ・プロセサを相互に接続するためのシミュレーション・
    バス手段と、を含み、シミュレーション・サイクル毎に
    シミュレートされた現在状態を上記シミュレーション・
    バス手段に並列に供給するための出力手段を上記複数の
    シミュレーション・プロセサの各々が有する、ロジック
    ・シミュレーション・マシンにおいて、上記シミュレー
    ション・バス手段に上記複数のシミュレーション・プロ
    セサと並列に接続され、各シミュレーション・プロセサ
    のシミュレート・サイクル毎にシミュレートされたモデ
    ルの現在状態を上記シミュレーション・バス手段を通し
    て並列に受け取り、受け取った該現在状態を格納するた
    めの現在状態格納手段と、上記モデルの現在状態の変化
    を格納するための変化記録手段と、上記現在状態格納手
    段に格納された現在状態の変化を検出し、該変化を上記
    変化記録手段に格納するために、シミュレートされた上
    記モデルの現在状態を上記シミュレーション・バス手段
    からモニタする制御手段と、シミュレーションの間にす
    べてのファシリティのサブセットをトレースするために
    トレースすべきノードを指示するマスクを格納するため
    の、サイズが上記現在状態格納手段と等しいメモリ手段
    と、を含む全イベント・トレース・ギャザラ。
JP3048823A 1990-03-30 1991-02-22 ロジック・シミュレーション・マシンのための全イベント・トレース・ギャザラ Expired - Lifetime JPH0738202B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US502148 1990-03-30
US07/502,148 US5327361A (en) 1990-03-30 1990-03-30 Events trace gatherer for a logic simulation machine

Publications (2)

Publication Number Publication Date
JPH04227574A JPH04227574A (ja) 1992-08-17
JPH0738202B2 true JPH0738202B2 (ja) 1995-04-26

Family

ID=23996560

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3048823A Expired - Lifetime JPH0738202B2 (ja) 1990-03-30 1991-02-22 ロジック・シミュレーション・マシンのための全イベント・トレース・ギャザラ

Country Status (3)

Country Link
US (1) US5327361A (ja)
EP (1) EP0450839A3 (ja)
JP (1) JPH0738202B2 (ja)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8050903B1 (en) * 1990-05-29 2011-11-01 Texas Instruments Incorporated Apparatus and method for checkpointing simulation data in a simulator
WO1992000654A1 (en) * 1990-06-25 1992-01-09 Barstow David R A method for encoding and broadcasting information about live events using computer simulation and pattern matching techniques
US7373587B1 (en) * 1990-06-25 2008-05-13 Barstow David R Representing sub-events with physical exertion actions
EP0508619A2 (en) * 1991-04-11 1992-10-14 Hewlett-Packard Company Bi-directional socket stimulus interface for a logic simulator
JPH0546697A (ja) * 1991-08-14 1993-02-26 Nec Corp 論理シミユレータ
JP3119960B2 (ja) * 1993-03-17 2000-12-25 富士通株式会社 論理シミュレーションシステム
US5828867A (en) * 1994-08-04 1998-10-27 Lucent Technologies Inc. Method for discrete digital event simulation
US5678028A (en) * 1994-10-25 1997-10-14 Mitsubishi Electric Information Technology Center America, Inc. Hardware-software debugger using simulation speed enhancing techniques including skipping unnecessary bus cycles, avoiding instruction fetch simulation, eliminating the need for explicit clock pulse generation and caching results of instruction decoding
US5737578A (en) * 1994-11-18 1998-04-07 International Business Machines Corp. Apparatus and method for partitioning multiport rams
US5649164A (en) * 1994-12-30 1997-07-15 International Business Machines Corporation Sets and holds in virtual time logic simulation for parallel processors
US5546562A (en) * 1995-02-28 1996-08-13 Patel; Chandresh Method and apparatus to emulate VLSI circuits within a logic simulator
US5774380A (en) * 1996-03-08 1998-06-30 International Business Machines Corporation State capture/reuse for verilog simulation of high gate count ASIC
US5907695A (en) * 1996-03-22 1999-05-25 Sun Microsystems, Inc. Deadlock avoidance mechanism for virtual bus distributed hardware simulation
US5881267A (en) * 1996-03-22 1999-03-09 Sun Microsystems, Inc. Virtual bus for distributed hardware simulation
US5878208A (en) * 1996-11-25 1999-03-02 International Business Machines Corporation Method and system for instruction trace reconstruction utilizing limited output pins and bus monitoring
US5911059A (en) * 1996-12-18 1999-06-08 Applied Microsystems, Inc. Method and apparatus for testing software
US5956261A (en) * 1997-03-13 1999-09-21 International Business Machines Corporation In-transit message detection for global virtual time calculation in parrallel time warp simulation
US5937182A (en) * 1997-03-27 1999-08-10 Adaptec, Inc. Design verification system using expect buffers
US6087967A (en) * 1998-09-03 2000-07-11 International Business Machines Corporation Method for generating and reading a compressed all event trace file
US6618698B1 (en) * 1999-08-12 2003-09-09 Quickturn Design Systems, Inc. Clustered processors in an emulation engine
US6829572B2 (en) * 2000-12-07 2004-12-07 Internatinal Business Machines Corporation Method and system for efficiently overriding array net values in a logic simulator machine
US6847927B2 (en) 2000-12-07 2005-01-25 International Business Machines Corporation Efficient array tracing in a logic simulator machine
US6898562B2 (en) * 2000-12-07 2005-05-24 International Business Machines Corporation Method and system for efficiently overriding net values in a logic simulator machine
US7401015B1 (en) * 2001-06-17 2008-07-15 Brian Bailey Coherent state among multiple simulation models in an EDA simulation environment
US7260517B2 (en) * 2001-06-17 2007-08-21 Brian Bailey Synchronization of multiple simulation domains in an EDA simulation environment
RU2221272C2 (ru) * 2001-10-22 2004-01-10 Грицаенко Алексей Николаевич Программно-аппаратный стенд для эмуляции цифровых устройств
US7464016B2 (en) * 2001-11-09 2008-12-09 Sun Microsystems, Inc. Hot plug and hot pull system simulation
US7231338B2 (en) * 2001-11-09 2007-06-12 Sun Microsystems, Inc. Distributed simulation system having phases of a timestep
US20030093254A1 (en) * 2001-11-09 2003-05-15 Frankel Carl B. Distributed simulation system which is agnostic to internal node configuration
US20030093256A1 (en) * 2001-11-09 2003-05-15 Carl Cavanagh Verification simulator agnosticity
US7020722B2 (en) 2001-11-09 2006-03-28 Sun Microsystems, Inc. Synchronization of distributed simulation nodes by keeping timestep schedulers in lockstep
US7529653B2 (en) 2001-11-09 2009-05-05 Sun Microsystems, Inc. Message packet logging in a distributed simulation system
US7162403B2 (en) * 2003-02-14 2007-01-09 Sun Microsystems, Inc. System and method for efficiently tracing simulation data in hardware acceleration simulation systems
US7219316B2 (en) * 2003-10-23 2007-05-15 International Business Machines Corporation Multi-valued or single strength signal detection in a hardware description language
US7424416B1 (en) 2004-11-09 2008-09-09 Sun Microsystems, Inc. Interfacing hardware emulation to distributed simulation environments
US7480609B1 (en) 2005-01-31 2009-01-20 Sun Microsystems, Inc. Applying distributed simulation techniques to hardware emulation
WO2007104930A1 (en) * 2006-03-10 2007-09-20 Imperas Ltd Method of developing a multi-processor system
US20080141071A1 (en) * 2006-12-11 2008-06-12 Bergman Stephen C Pre-Mortem Waveform Trace Generation for Hardware Description Language Simulators
JP4468410B2 (ja) * 2007-06-21 2010-05-26 株式会社東芝 ソフトウェア実行装置および協調動作方法
US9081925B1 (en) * 2012-02-16 2015-07-14 Xilinx, Inc. Estimating system performance using an integrated circuit
US9529946B1 (en) 2012-11-13 2016-12-27 Xilinx, Inc. Performance estimation using configurable hardware emulation
US9846587B1 (en) 2014-05-15 2017-12-19 Xilinx, Inc. Performance analysis using configurable hardware emulation within an integrated circuit
US9608871B1 (en) 2014-05-16 2017-03-28 Xilinx, Inc. Intellectual property cores with traffic scenario data
US11475191B2 (en) * 2019-05-15 2022-10-18 International Business Machines Corporation Generating and adding additional control information to logic under test to facilitate debugging and comprehension of a simulation

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3702011A (en) * 1970-05-12 1972-10-31 Bell Telephone Labor Inc Apparatus and method for simulating logic faults
US3715573A (en) * 1971-04-14 1973-02-06 Ibm Failure activity determination technique in fault simulation
US4306286A (en) * 1979-06-29 1981-12-15 International Business Machines Corporation Logic simulation machine
US4656580A (en) * 1982-06-11 1987-04-07 International Business Machines Corporation Logic simulation machine
EP0099114B1 (en) * 1982-07-13 1988-05-11 Nec Corporation Logic simulator operable on level basis and on logic block basis on each level
US4527249A (en) * 1982-10-22 1985-07-02 Control Data Corporation Simulator system for logic design validation
JPS59117660A (ja) * 1982-12-24 1984-07-07 Fujitsu Ltd シミユレ−シヨン状態復元処理方式
GB8309692D0 (en) * 1983-04-09 1983-05-11 Int Computers Ltd Verifying design of digital electronic systems
JPH0760169B2 (ja) * 1984-11-02 1995-06-28 三洋電機株式会社 論理回路のシミュレーション方法及びシミュレータ
US4697241A (en) * 1985-03-01 1987-09-29 Simulog, Inc. Hardware logic simulator
US4937770A (en) * 1986-02-07 1990-06-26 Teradyne, Inc. Simulation system
US4996659A (en) * 1986-08-20 1991-02-26 Hitachi, Ltd. Method of diagnosing integrated logic circuit
US4727545A (en) * 1986-09-02 1988-02-23 Digital Equipment Corporation Method and apparatus for isolating faults in a digital logic circuit
JPS63204441A (ja) * 1987-02-20 1988-08-24 Fujitsu Ltd 論理シミユレ−シヨン専用プロセツサの処理方式
JPS63316140A (ja) * 1987-06-18 1988-12-23 Matsushita Electric Ind Co Ltd 論理シミュレ−ション装置
US4873656A (en) * 1987-06-26 1989-10-10 Daisy Systems Corporation Multiple processor accelerator for logic simulation
US4872125A (en) * 1987-06-26 1989-10-03 Daisy Systems Corporation Multiple processor accelerator for logic simulation
US4961156A (en) * 1987-10-27 1990-10-02 Nec Corporation Simulation capable of simultaneously simulating a logic circuit model in response to a plurality of input logic signals
JPH01134541A (ja) * 1987-11-20 1989-05-26 Toshiba Corp 情報処理装置
JP2590179B2 (ja) * 1988-02-16 1997-03-12 富士通株式会社 並列論理シミュレーション制御方式
US4914612A (en) * 1988-03-31 1990-04-03 International Business Machines Corporation Massively distributed simulation engine

Also Published As

Publication number Publication date
EP0450839A3 (en) 1993-02-24
US5327361A (en) 1994-07-05
JPH04227574A (ja) 1992-08-17
EP0450839A2 (en) 1991-10-09

Similar Documents

Publication Publication Date Title
US5327361A (en) Events trace gatherer for a logic simulation machine
US5548785A (en) Interface for logic simulation using parallel bus for concurrent transfers and having fifo buffers for sending data to receiving units when ready
EP0021404B1 (en) Computing system for the simulation of logic operations
US4656580A (en) Logic simulation machine
EP0217922B1 (en) An array for simulating computer functions for large computer systems
EP0472818A2 (en) Built-in self test for integrated circuits
Jones et al. The Cm* multiprocessor project: A research review
US3603934A (en) Data processing system capable of operation despite a malfunction
JP2004519041A (ja) 効率的なデータロード及びアンロードのために統合されるパケット基準のプロトコル論理を用いるハードウェア支援設計検証システム
JP3176482B2 (ja) 論理シミュレーション装置
Clark The Lincoln TX-2 computer development
JPS6141017B2 (ja)
EP0450837A2 (en) Logic simulation
EP0483965A2 (en) Logic simulation
EP1187043A2 (en) Gate addressing system for logic simulation machine
EP0449579A2 (en) A logic simulation machine
Denneau et al. Design and implementation of a software simulation engine
US5048024A (en) Partitioned parity check and regeneration circuit
JP2821326B2 (ja) キャッシュメモリの故障検出装置
JPS59191656A (ja) メモリicシミュレ−タ
JPS6244843A (ja) シミユレ−タ
Astrahan et al. The lexical design of a digital computer for a large-scale real-time application
JPS61273641A (ja) 論理シミユレ−シヨン装置
NOJOUMI A Hardwired Discrete Simulation Algorithm
JPS6073757A (ja) 演算処理装置におけるヒストリ取得方法