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

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

Info

Publication number
JPH04227574A
JPH04227574A JP3048823A JP4882391A JPH04227574A JP H04227574 A JPH04227574 A JP H04227574A JP 3048823 A JP3048823 A JP 3048823A JP 4882391 A JP4882391 A JP 4882391A JP H04227574 A JPH04227574 A JP H04227574A
Authority
JP
Japan
Prior art keywords
simulation
current state
gatherer
logic
processor
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.)
Granted
Application number
JP3048823A
Other languages
English (en)
Other versions
JPH0738202B2 (ja
Inventor
Gerald B Long
ジエラルド・バーナード・ロング
Mark D Sweet
マーク・デビツド・スイート
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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、デジタル・ロジック
のシミュレーションを行うロジック・シミュレーション
・マシンに関し、特に、シミュレーションの間に、シミ
ュレートされたすべてのファシリティに発生したことの
記録である全イベント・トレース(AET)を生成する
ために、ロジック・シミュレーション・マシンに用いら
れるAETギャザラに関する。
【0002】
【従来の技術】超大規模集積回路などのロジック技術に
より、価格性能費と信頼性が大幅に向上している。しか
しこの技術には、障害診断が先行技術よりも難しく、ロ
ジック設計エラーの訂正に必要なエンジニアリングの練
り直しサイクルがかなり長くなるという欠点がある。こ
のような欠点により、設計上のエラーや省略にかかる経
済的なペナルティはかなりのものになり、モデルを実用
化する前に、設計をくまなく検証するという目標が重要
視される。
【0003】設計検証方法の1つに、汎用コンピュータ
によるロジック・シミュレーションがある。また、ロジ
ック・シミュレーションに最適化された特定用途向けコ
ンピュータの採用も設計検証に用いられる。一般に特定
用途向けコンピュータにはマルチ・プロセサ・アーキテ
クチャが用いられる。このアーキテクチャでは、シミュ
レーション・プロセサと呼ばれる複数のプロセサを相互
に接続することで、シミュレーション性能を高めること
ができる。特定用途向けコンピュータは、ロード機能の
提供とシミュレーション結果の解析に用いられるホスト
・コンピュータと併用することもできる。こうした特定
用途向けコンピュータはロジック・シミュレーション・
マシンと呼ばれる。この発明は、ロジック・シミュレー
ション・マシンのためのAETギャザラに関係する。
【0004】従来の技術によるロジック・シミュレーシ
ョン・マシンは、Cocke らによる米国特許第43
06286号明細書(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、1
6のグループから任意の個数選択して使用できる。
【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のハード・ワイヤード手段3D
は、制御ライン3Cによって、スロット手段0に装着さ
れたシミュレーション・プロセサ2に、4ビット・バイ
ナリ・ゼロのデータ、0000が入力されるように、す
べての構成ライン3CをOFFにセットする。スロット
手段1のハード・ワイヤード手段3Dは、そのスロット
手段に装着されたシミュレーション・プロセサ2に、構
成ライン3Cによってバイナリ・データ0001が入力
されるように、最下位ビット・ラインをONに、他の3
つのラインをOFFにセットする。スロット手段2のハ
ード・ワイヤード手段3Dは、そのスロット手段に装着
されたシミュレーション・プロセサ2に、構成ライン3
Cによってバイナリ・データ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、ディスプレイ55
、及びホスト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、A2
、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とは独立して行える。フィールドA1
、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(01
)、未定義(10)、及びハイ・インピーダンス(11
)である。現在状態アレイ23は、シミュレートされた
マシンのすべてのブロックまたはゲートのこのような現
在状態を格納する。この例では、シミュレートされたマ
シンに可能なブロックまたはゲートの大きさは512K
であるので、シミュレートされたマシンの状態は1Mビ
ットで格納される。現在状態アレイ23には、少なくと
も1Mビットの容量がなくてはならない。ただし、この
例の場合、現在状態アレイ23は、最大性能を達成する
ためにこれより大きくなっている。所与のブロックまた
はゲートについて計算を行う際、現在状態アレイ23の
内容は、4つのフィールドA1、A2、A3、A4によ
って同時にアドレスされる。4つの異なるブロックまた
はゲートの現在状態は、同時に読み取るのが望ましい。 したがって、アレイ23は4回コピーされる。アレイ2
3の読み取りでは、4つの異なるアドレスを同時に読み
取れる。アレイ23の書き込みでは、常に、4つの全ア
レイの同じアドレスが書き込まれる。すなわち、現在状
態アレイ23が読み取られるときは、マルチプレクサ(
MUX)62が、アドレス選択を通して、制御ロジック
手段27によって制御され、アドレスA1、A2、A3
、A4が各アレイに出力される。次に、各アレイが、2
ビット・オペランドをオペランド反転ロジック手段(I
NV)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の割当ラインに送出する前に、O
Pコードの反転ビットによって、出力反転ロジック手段
66において反転できる。オペランド反転ロジック63
からの出力はバス駆動手段80へも供給される。ブロー
ドキャスト・コマンドが、制御ロジック27によって実
行されると、バス駆動手段80は、オペランド反転ロジ
ック63を通して、現在状態アレイ23からのコマンド
のフィールドA1ないしA4によって指示された4つの
現在状態を受け取り、制御ロジック27の制御下で、デ
ータ・ライン0ないし7、8ないし15、16ないし2
3、または24ないし31に8ビットのデータを送出す
る。現在状態アレイ27のデータは、シミュレーション
・プロセサ2からのブロードキャスト・コマンドによっ
てホスト5へ送られ、ホスト5で用いられる。
【0026】図9により、出力手段25について説明す
る。出力手段25は、16のANDゲートE0、E1、
...、E15、16のゲートL0、L1、...、L
15(出力はデータ・ライン3Aの偶数ライン0、2、
...、30につながる)、及び16のゲートH0、H
1、...、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、L1、...、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は、ファーストイン・ファーストアウト(FIFO
)バッファであり、シミュレーション・バス手段3とホ
ストI/Oバス手段56との間でデータを一時格納する
。パケット・データがホスト・インタフェース21を通
してホストから入ると、各シミュレーション・プロセサ
2は、そのデータをシミュレーション・バス手段3から
取り出す。パケット・データがホストへ送られると、ホ
スト・インタフェース21の制御ロジックは、制御ライ
ン3Bの内容によって、データ・ライン3Aのデータが
、ホストを対象としているかどうかを判定し、データを
ホスト5へ転送する。ホスト・インタフェース手段21
では、ユーザが、ブロック記述アレイ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、3
3、...、及びゲート15、31、47、...に対
するブロック記述命令を、各々のブロック記述アレイ2
2に連続的に格納し、同じ制御命令を、ブロック記述ア
レイ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が、その結果を、データ・ライン3Aの
割当ラインに並列に送出し、すべてのシミュレーション
・プロセサ2が、データ・ライン3Aからの結果で各々
の現在状態アレイ23を更新する。
【0034】動作モードのサイクルごとに、シミュレー
ション・バス手段3に装着された各シミュレーション・
プロセサ2において、ブロック記述アレイ22からホー
ルト・コマンドが検出されるか、またはホスト・コンピ
ュータ5がシミュレーションを停止するまで、以下のス
テップが同期して実行される。
【0035】制御ロジック手段27は、プログラム・カ
ウンタ26を開始アドレスから順次にインクリメントし
、ブロック記述アレイ22から命令を順次に出力する。 ブロック記述アレイ22が、プログラム・カウンタ26
によってアドレスされると、アレイ22は、対応するア
ドレスに格納された命令を出力する。命令のOPコード
・フィールドはラッチ61によってラッチされる。 このOPコード・フィールドは、それがブロック記述命
令であるか、または制御命令であるかを示す。ブロック
記述命令であれば、OPコード・フィールドには、評価
されたゲートの関数が記述される。フィールドA1ない
しA4は、評価されたゲートの4つの入力端子を指定し
、入力端子の現在状態が格納された現在状態アレイ23
内のアドレスに対応する。
【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、...、及び30
と31に2ビットの結果を送出する。これにより、この
サイクルで算出されたすべての結果がデータ・ライン3
Aに並列に現れる。データ・ライン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ギャザ
ラのブロック図である。

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】シミュレートされたモデルの現在状態を格
    納する現在状態格納手段と、上記モデルの現在状態の変
    化を格納する変化記録手段と、上記現在状態格納手段に
    格納された現在状態の変化を検出し、該変化を上記変化
    記録手段に格納するために、シミュレートされた上記モ
    デルの現在状態をモニタする制御手段とを含む、全イベ
    ント・トレース(AET)ギャザラ。
  2. 【請求項2】請求項1に記載のAETギャザラであって
    、該AETギャザラが複数のシミュレーション・プロセ
    サを含むロジック・シミュレーション・マシンのシミュ
    レーション・バス手段に接続され、上記各シミュレーシ
    ョン・プロセサが、シミュレーションの結果を該シミュ
    レーション・バス手段に並列に送出する、AETギャザ
    ラ。
  3. 【請求項3】請求項1に記載のAETギャザラであって
    、上記現在状態格納手段とサイズが等しく、シミュレー
    ションの間にすべてのファシリティのサブセットをトレ
    ースするために、トレースすべきノードを指示するマス
    クを格納するためのメモリ手段を含む、AETギャザラ
  4. 【請求項4】現在状態格納手段と変化記録手段とを含む
    ロジック・シミュレーション・マシンにおいて、ロジッ
    ク・シミュレーションの間に全イベント・トレースを収
    集する方法であって、上記ロジック・シミュレーション
    ・マシンによってシミュレートされたモデルの現在状態
    を上記現在状態格納手段に格納するステップと、上記現
    在状態格納手段に格納された現在状態の変化を検出する
    ために、シミュレートされた上記モデルの現在状態をモ
    ニタするステップと、上記変化を上記変化記録手段に格
    納するステップとを含む、全イベント・トレース収集方
    法。
  5. 【請求項5】請求項4に記載の方法であって、上記ロジ
    ック・シミュレーション・マシンに、複数のシミュレー
    ション・プロセサと、該シミュレーション・プロセサが
    シミュレートされた現在状態を送出するシミュレーショ
    ン・バス手段とが含まれ、上記シミュレートされた状態
    を上記シミュレーション・バス手段から受け取るステッ
    プを含む、全イベント・トレース収集方法。
  6. 【請求項6】請求項4に記載の方法であって、上記ロジ
    ック・シミュレーション・マシンに、サイズが上記現在
    状態格納手段と等しいメモリ手段が含まれ、シミュレー
    ションの間にすべてのファシリティのサブセットをトレ
    ースするために、トレースすべきノードを指示するマス
    ク手段を、上記メモリ手段に格納するステップを含む、
    全イベント・トレース収集方法。
  7. 【請求項7】パラレル・シミュレーションのための複数
    のシミュレーション・プロセサと、該シミュレーション
    ・プロセサを相互に接続するためのシミュレーション・
    バス手段とを含むロジック・シミュレーション・マシン
    のための全イベント・トレース・ギャザラであって、シ
    ミュレートされたモデルの現在状態を上記シミュレーシ
    ョン・バス手段から格納する現在状態格納手段と、上記
    モデルの現在状態の変化を格納する変化記録手段と、上
    記現在状態格納手段に格納された現在状態の変化を検出
    し、該変化を上記変化記録手段に格納するために、シミ
    ュレートされた上記モデルの現在状態を上記シミュレー
    ション・バス手段からモニタする制御手段とを含む、全
    イベント・トレース・ギャザラ。
  8. 【請求項8】請求項7に記載の全イベント・トレース・
    ギャザラであって、上記シミュレーション・プロセサに
    よってシミュレートされた現在状態を上記シミュレーシ
    ョン・バス手段に並列に供給するための出力手段が、上
    記各シミュレーション・プロセサに含まれる、全イベン
    ト・トレース・ギャザラ。
  9. 【請求項9】請求項7に記載の全イベント・トレース・
    ギャザラであって、シミュレーションの間にすべてのフ
    ァシリティのサブセットをトレースするために、トレー
    スすべきノードを指示するマスクを格納するための、サ
    イズが上記現在状態格納手段と等しいメモリ手段を含む
    、全イベント・トレース・ギャザラ。
  10. 【請求項10】請求項7に記載の全イベント・トレース
    ・ギャザラであって、シミュレートされた現在状態を、
    上記シミュレーション・バス手段を通して上記シミュレ
    ーション・プロセサから受け取るために、上記ギャザラ
    が該シミュレーション・バス手段に、複数の該シミュレ
    ーション・プロセサと並列に接続された、全イベント・
    トレース・ギャザラ。
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 true JPH04227574A (ja) 1992-08-17
JPH0738202B2 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 (43)

* 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
US7373587B1 (en) 1990-06-25 2008-05-13 Barstow David R Representing sub-events with physical exertion actions
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
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
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
US6847927B2 (en) 2000-12-07 2005-01-25 International Business Machines Corporation Efficient array tracing in a logic simulator machine
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
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
US20030093254A1 (en) * 2001-11-09 2003-05-15 Frankel Carl B. Distributed simulation system which is agnostic to internal node configuration
US7464016B2 (en) * 2001-11-09 2008-12-09 Sun Microsystems, Inc. Hot plug and hot pull system simulation
US7020722B2 (en) 2001-11-09 2006-03-28 Sun Microsystems, Inc. Synchronization of distributed simulation nodes by keeping timestep schedulers in lockstep
US7231338B2 (en) * 2001-11-09 2007-06-12 Sun Microsystems, Inc. Distributed simulation system having phases of a timestep
US7529653B2 (en) 2001-11-09 2009-05-05 Sun Microsystems, Inc. Message packet logging in a distributed simulation system
US20030093256A1 (en) * 2001-11-09 2003-05-15 Carl Cavanagh Verification simulator agnosticity
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

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59117660A (ja) * 1982-12-24 1984-07-07 Fujitsu Ltd シミユレ−シヨン状態復元処理方式
JPS63316140A (ja) * 1987-06-18 1988-12-23 Matsushita Electric Ind Co Ltd 論理シミュレ−ション装置
JPH01207838A (ja) * 1988-02-16 1989-08-21 Fujitsu Ltd 並列論理シミュレーション制御方式

Family Cites Families (18)

* 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
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 論理シミユレ−シヨン専用プロセツサの処理方式
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 情報処理装置
US4914612A (en) * 1988-03-31 1990-04-03 International Business Machines Corporation Massively distributed simulation engine

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59117660A (ja) * 1982-12-24 1984-07-07 Fujitsu Ltd シミユレ−シヨン状態復元処理方式
JPS63316140A (ja) * 1987-06-18 1988-12-23 Matsushita Electric Ind Co Ltd 論理シミュレ−ション装置
JPH01207838A (ja) * 1988-02-16 1989-08-21 Fujitsu Ltd 並列論理シミュレーション制御方式

Also Published As

Publication number Publication date
US5327361A (en) 1994-07-05
EP0450839A2 (en) 1991-10-09
EP0450839A3 (en) 1993-02-24
JPH0738202B2 (ja) 1995-04-26

Similar Documents

Publication Publication Date Title
JPH04227574A (ja) ロジック・シミュレーション・マシンのための全イベント・トレース・ギャザラ
US4787061A (en) Dual delay mode pipelined logic simulator
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
EP0096176B1 (en) Method of logic simulation and logic simulation machine
CA1246743A (en) Array for simulating computer functions for large computer systems
JPS5995657A (ja) 論理シミユレ−タ
JPS58501560A (ja) マイクロプロセツサ
JP3176482B2 (ja) 論理シミュレーション装置
US3603934A (en) Data processing system capable of operation despite a malfunction
US8108198B2 (en) Memory tracing in an emulation environment
CA1182579A (en) Bus sourcing and shifter control of a central processing unit
JPS6141017B2 (ja)
EP0450837A2 (en) Logic simulation
Kean et al. The use of FPGAs in a novel computing subsystem
Denneau et al. Design and implementation of a software simulation engine
EP0483965A2 (en) Logic simulation
US5048024A (en) Partitioned parity check and regeneration circuit
EP0449579A2 (en) A logic simulation machine
JPS6244843A (ja) シミユレ−タ
JPS59191656A (ja) メモリicシミュレ−タ
CN114691412A (zh) 一种数据校验方法及其相关设备
JPS6073757A (ja) 演算処理装置におけるヒストリ取得方法
Astrahan et al. The lexical design of a digital computer for a large-scale real-time application
US NIM Committee. Advanced Systems Study Group Future data bus requirements for laboratory high speed data acquisition systems