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
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 293
- 230000008859 change Effects 0.000 claims description 19
- 230000015654 memory Effects 0.000 claims description 15
- 238000000034 method Methods 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 33
- 238000010586 diagram Methods 0.000 description 15
- 238000003491 array Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012942 design verification Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 206010000210 abortion Diseases 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3457—Performance evaluation by simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/348—Circuit details, i.e. tracer hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/349—Performance 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ギャザラに関する。
のシミュレーションを行うロジック・シミュレーション
・マシンに関し、特に、シミュレーションの間に、シミ
ュレートされたすべてのファシリティに発生したことの
記録である全イベント・トレース(AET)を生成する
ために、ロジック・シミュレーション・マシンに用いら
れるAETギャザラに関する。
【0002】
【従来の技術】超大規模集積回路などのロジック技術に
より、価格性能費と信頼性が大幅に向上している。しか
しこの技術には、障害診断が先行技術よりも難しく、ロ
ジック設計エラーの訂正に必要なエンジニアリングの練
り直しサイクルがかなり長くなるという欠点がある。こ
のような欠点により、設計上のエラーや省略にかかる経
済的なペナルティはかなりのものになり、モデルを実用
化する前に、設計をくまなく検証するという目標が重要
視される。
より、価格性能費と信頼性が大幅に向上している。しか
しこの技術には、障害診断が先行技術よりも難しく、ロ
ジック設計エラーの訂正に必要なエンジニアリングの練
り直しサイクルがかなり長くなるという欠点がある。こ
のような欠点により、設計上のエラーや省略にかかる経
済的なペナルティはかなりのものになり、モデルを実用
化する前に、設計をくまなく検証するという目標が重要
視される。
【0003】設計検証方法の1つに、汎用コンピュータ
によるロジック・シミュレーションがある。また、ロジ
ック・シミュレーションに最適化された特定用途向けコ
ンピュータの採用も設計検証に用いられる。一般に特定
用途向けコンピュータにはマルチ・プロセサ・アーキテ
クチャが用いられる。このアーキテクチャでは、シミュ
レーション・プロセサと呼ばれる複数のプロセサを相互
に接続することで、シミュレーション性能を高めること
ができる。特定用途向けコンピュータは、ロード機能の
提供とシミュレーション結果の解析に用いられるホスト
・コンピュータと併用することもできる。こうした特定
用途向けコンピュータはロジック・シミュレーション・
マシンと呼ばれる。この発明は、ロジック・シミュレー
ション・マシンのためのAETギャザラに関係する。
によるロジック・シミュレーションがある。また、ロジ
ック・シミュレーションに最適化された特定用途向けコ
ンピュータの採用も設計検証に用いられる。一般に特定
用途向けコンピュータにはマルチ・プロセサ・アーキテ
クチャが用いられる。このアーキテクチャでは、シミュ
レーション・プロセサと呼ばれる複数のプロセサを相互
に接続することで、シミュレーション性能を高めること
ができる。特定用途向けコンピュータは、ロード機能の
提供とシミュレーション結果の解析に用いられるホスト
・コンピュータと併用することもできる。こうした特定
用途向けコンピュータはロジック・シミュレーション・
マシンと呼ばれる。この発明は、ロジック・シミュレー
ション・マシンのためのAETギャザラに関係する。
【0004】従来の技術によるロジック・シミュレーシ
ョン・マシンは、Cocke らによる米国特許第43
06286号明細書(1981年12月15日付)にみ
られる。このロジック・シミュレーション・マシンは、
複数のプロセサ間スイッチによって相互に接続された複
数の基本パラレル・プロセサから成る。プロセサ間スイ
ッチは、ロジック・シミュレーション・マシンのコンピ
ューティング・エンジンである基本プロセサ(各々、ロ
ジック・モデルの一部の各ゲートを並列にシミュレート
する)相互間の通信のみならず、基本プロセサと制御プ
ロセサとの間の通信も可能にする。制御プロセサは、こ
れが接続されたホスト・コンピュータを通して、ロジッ
ク・シミュレーション・マシンの総合制御/入出力ファ
シリティを提供する。各制御プロセサには、そのプロセ
サによってシミュレートされた1組のゲートだけの現在
状態情報が格納される。ある基本プロセサがあるゲート
をシミュレートし、そのゲートの入力が、別のプロセサ
によってシミュレートされたゲートの出力への端子を含
む場合、当該ゲートの状態情報は、プロセサ間スイッチ
を通して転送される。
ョン・マシンは、Cocke らによる米国特許第43
06286号明細書(1981年12月15日付)にみ
られる。このロジック・シミュレーション・マシンは、
複数のプロセサ間スイッチによって相互に接続された複
数の基本パラレル・プロセサから成る。プロセサ間スイ
ッチは、ロジック・シミュレーション・マシンのコンピ
ューティング・エンジンである基本プロセサ(各々、ロ
ジック・モデルの一部の各ゲートを並列にシミュレート
する)相互間の通信のみならず、基本プロセサと制御プ
ロセサとの間の通信も可能にする。制御プロセサは、こ
れが接続されたホスト・コンピュータを通して、ロジッ
ク・シミュレーション・マシンの総合制御/入出力ファ
シリティを提供する。各制御プロセサには、そのプロセ
サによってシミュレートされた1組のゲートだけの現在
状態情報が格納される。ある基本プロセサがあるゲート
をシミュレートし、そのゲートの入力が、別のプロセサ
によってシミュレートされたゲートの出力への端子を含
む場合、当該ゲートの状態情報は、プロセサ間スイッチ
を通して転送される。
【0005】AET(全イベント・トレース)は、シミ
ュレーションの間に、すべてのファシリティに発生した
ことの記録である。頭字語AETは、全ファシリティの
サブセットしか含まないものなど、すべてのトレースに
も用いられる。AETデータは、ホスト・コンピュータ
によって、シミュレーションの解析に用いられる。
ュレーションの間に、すべてのファシリティに発生した
ことの記録である。頭字語AETは、全ファシリティの
サブセットしか含まないものなど、すべてのトレースに
も用いられる。AETデータは、ホスト・コンピュータ
によって、シミュレーションの解析に用いられる。
【0006】通常、AETデータは、従来の技術では、
各シミュレーション・サイクルの終わりにトレース対象
のノードをすべてホストによって評価することによって
収集される。これらのノードだけを、ブロードキャスト
・コマンドによってロジック・シミュレーション・マシ
ンからホストへ送るのは効率的ではあるが、2つの制約
がある。第1に、トレースされるノードは、変化のなか
ったものも含めてすべて、ロジック・シミュレーション
・マシンからホストへ送られる。第2に、ホストが、サ
イクルごとにデータを評価するのにかなりの時間がかか
る。
各シミュレーション・サイクルの終わりにトレース対象
のノードをすべてホストによって評価することによって
収集される。これらのノードだけを、ブロードキャスト
・コマンドによってロジック・シミュレーション・マシ
ンからホストへ送るのは効率的ではあるが、2つの制約
がある。第1に、トレースされるノードは、変化のなか
ったものも含めてすべて、ロジック・シミュレーション
・マシンからホストへ送られる。第2に、ホストが、サ
イクルごとにデータを評価するのにかなりの時間がかか
る。
【0007】
【発明が解決しようとする課題】この発明の目的は、A
ET(全イベント・トレース)記録を、シミュレーショ
ンを減速することなく、シミュレーションと平行して生
成するAETギャザラを提供することにある。
ET(全イベント・トレース)記録を、シミュレーショ
ンを減速することなく、シミュレーションと平行して生
成するAETギャザラを提供することにある。
【0008】この発明の目的には、AETを効率よく収
集する手段を提供するために、ロジック・シミュレーシ
ョン・マシンに、シミュレーション・プロセサと並列に
接続される補助プロセサであるAETギャザラを提供す
ることも含まれる。
集する手段を提供するために、ロジック・シミュレーシ
ョン・マシンに、シミュレーション・プロセサと並列に
接続される補助プロセサであるAETギャザラを提供す
ることも含まれる。
【0009】この発明の目的には、ファシリティのどの
サブセットも収集可能なAETギャザラを提供すること
も含まれる。
サブセットも収集可能なAETギャザラを提供すること
も含まれる。
【0010】
【課題を解決するための手段】この発明のAETギャザ
ラは、シミュレートされたモデル全体の現在状態を完全
にコピーしたものを格納する現在状態アレイと、シミュ
レーション・サイクルごとにモデルの現在状態の変化の
みを格納する変化記録アレイと、現在状態アレイに格納
された現在状態の変化を検出し、それをシミュレーショ
ン・サイクルごとに変化記録アレイに格納するために、
シミュレーションされたモデルの現在状態をモニタする
制御手段とから成る。
ラは、シミュレートされたモデル全体の現在状態を完全
にコピーしたものを格納する現在状態アレイと、シミュ
レーション・サイクルごとにモデルの現在状態の変化の
みを格納する変化記録アレイと、現在状態アレイに格納
された現在状態の変化を検出し、それをシミュレーショ
ン・サイクルごとに変化記録アレイに格納するために、
シミュレーションされたモデルの現在状態をモニタする
制御手段とから成る。
【0011】AETギャザラはシミュレーション・バス
に接続される。ロジック・シミュレーション・マシンの
各シミュレーション・プロセサは、シミュレーションを
モニタするために、各シミュレーション・サイクルの終
わりに、シミュレーション結果をこのバスに並列に送出
する。
に接続される。ロジック・シミュレーション・マシンの
各シミュレーション・プロセサは、シミュレーションを
モニタするために、各シミュレーション・サイクルの終
わりに、シミュレーション結果をこのバスに並列に送出
する。
【0012】すべてのファシリティのサブセットをトレ
ースするために、サイズが現在状態アレイと等しいメモ
リ・ユニットをAETギャザラに追加してもよい。メモ
リ・ユニットは、トレース対象のノードを指示するビッ
トを格納するマスクとして使用される。
ースするために、サイズが現在状態アレイと等しいメモ
リ・ユニットをAETギャザラに追加してもよい。メモ
リ・ユニットは、トレース対象のノードを指示するビッ
トを格納するマスクとして使用される。
【0013】
【実施例】図1、図2により、本発明のAET(全イベ
ント・トレース)ギャザラが接続されるロジック・シミ
ュレーション・マシン1について説明する。ロジック・
シミュレーション・マシン1には、シミュレーション・
バス手段3を通して相互に並列に接続された複数のシミ
ュレーション・プロセサ2が含まれる。図1、図2に示
したシミュレーション・プロセサ2は4個であるが、シ
ミュレーション・バス手段3に接続されるシミュレーシ
ョン・プロセサ2の個数は16であり、説明の便宜上、
最大構成は16プロセサである。ただし、マシン1には
、シミュレーション・プロセサを、1、2、4、8、1
6のグループから任意の個数選択して使用できる。
ント・トレース)ギャザラが接続されるロジック・シミ
ュレーション・マシン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にセットする。
・ライン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に接続
される。
)ギャザラ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によって使用できる(後
述)。
ミュレーション・マシン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につなぐ延長ハウ
ジングを使用すればよい。
アリング・ワークステーションでよい。ホスト・コンピ
ュータ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に接続される。
ャザラ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である。
手段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である、そのシミュレ
ーション・プロセサの動作を制御するための制御命令で
ある。
ョン・プロセサ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のブ
ロック記述命令を格納できる。
ワードが、シミュレートされるモデル内の各ロジック・
ブロックまたはゲートに対応する。命令ワードのアドレ
スは、ブロックまたはゲートの識別子をあらわす。命令
には、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に格納する。
ク記述命令を説明するために、シミュレーション・プロ
セサ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によって指示
されたアドレスに格納された命令へ行くことを意味する
。
ルドが、シミュレーション・プロセサによって実行され
る制御関数を指定する。図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
が用いられる。
説明する。現在状態アレイ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で用いられる。
て説明する。論理関数テーブル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つが割り当てられる。
る。出力手段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を制御する。
シミュレーション・バス手段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の内容を読み
取って変更を加え、シミュレーション効果を高めること
もできる。
ョン・プロセサ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と通信する
。
マシン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の同じアドレスに格納する。
ション・プロセサ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にロードする。
、ホスト・コンピュータ5は、マシン1によってシミュ
レートされたモデル全体の同じ初期状態を、各シミュレ
ーション・プロセサ2の現在状態アレイ23にロードす
る。実施例の場合、各シミュレーション・プロセサ2の
現在状態アレイ23は、シミュレーションの間に、シミ
ュレートされたモデル全体の現在状態の完全なコピーを
維持する(後述)。ホスト・コンピュータはまた、同じ
関数データを、論理関数テーブル24にロードする。
【0032】シミュレーションには動作と停止の2つの
モードがある。動作モードでは、各シミュレーション・
プロセサ2がそのブロック記述アレイ22を連続的にた
どり、ブロック記述アレイ22に組み込まれるか、また
はホスト・コンピュータ5から送られ得るコマンドを受
け取るまで、各ゲートの次の状態を評価する。停止モー
ドでは、シミュレーションは行われず、現在状態アレイ
23とブロック記述アレイ22を含むロジック・シミュ
レーション・マシン1全体の状態は、ホスト・コンピュ
ータ5による検査と訂正に使用できる。
モードがある。動作モードでは、各シミュレーション・
プロセサ2がそのブロック記述アレイ22を連続的にた
どり、ブロック記述アレイ22に組み込まれるか、また
はホスト・コンピュータ5から送られ得るコマンドを受
け取るまで、各ゲートの次の状態を評価する。停止モー
ドでは、シミュレーションは行われず、現在状態アレイ
23とブロック記述アレイ22を含むロジック・シミュ
レーション・マシン1全体の状態は、ホスト・コンピュ
ータ5による検査と訂正に使用できる。
【0033】動作モードのとき、このロジック・シミュ
レーション・マシン1では、16のシミュレーション・
プロセサ2が1つのシミュレーション・モデルを処理し
、シミュレーションを高速化できる。並列構成の場合、
各シミュレーション・プロセサ2は1サイクルに1ゲー
トを評価する。サイクルの終わりに、各シミュレーショ
ン・プロセサ2が、その結果を、データ・ライン3Aの
割当ラインに並列に送出し、すべてのシミュレーション
・プロセサ2が、データ・ライン3Aからの結果で各々
の現在状態アレイ23を更新する。
レーション・マシン1では、16のシミュレーション・
プロセサ2が1つのシミュレーション・モデルを処理し
、シミュレーションを高速化できる。並列構成の場合、
各シミュレーション・プロセサ2は1サイクルに1ゲー
トを評価する。サイクルの終わりに、各シミュレーショ
ン・プロセサ2が、その結果を、データ・ライン3Aの
割当ラインに並列に送出し、すべてのシミュレーション
・プロセサ2が、データ・ライン3Aからの結果で各々
の現在状態アレイ23を更新する。
【0034】動作モードのサイクルごとに、シミュレー
ション・バス手段3に装着された各シミュレーション・
プロセサ2において、ブロック記述アレイ22からホー
ルト・コマンドが検出されるか、またはホスト・コンピ
ュータ5がシミュレーションを停止するまで、以下のス
テップが同期して実行される。
ション・バス手段3に装着された各シミュレーション・
プロセサ2において、ブロック記述アレイ22からホー
ルト・コマンドが検出されるか、またはホスト・コンピ
ュータ5がシミュレーションを停止するまで、以下のス
テップが同期して実行される。
【0035】制御ロジック手段27は、プログラム・カ
ウンタ26を開始アドレスから順次にインクリメントし
、ブロック記述アレイ22から命令を順次に出力する。 ブロック記述アレイ22が、プログラム・カウンタ26
によってアドレスされると、アレイ22は、対応するア
ドレスに格納された命令を出力する。命令のOPコード
・フィールドはラッチ61によってラッチされる。 このOPコード・フィールドは、それがブロック記述命
令であるか、または制御命令であるかを示す。ブロック
記述命令であれば、OPコード・フィールドには、評価
されたゲートの関数が記述される。フィールドA1ない
しA4は、評価されたゲートの4つの入力端子を指定し
、入力端子の現在状態が格納された現在状態アレイ23
内のアドレスに対応する。
ウンタ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に
送られる。
サ62を通してアレイ23に引き渡される。評価された
ゲートに対する入力オペランドである4つの2ビットの
現在状態は、フィールドA1ないしA4によって指定さ
れたアドレスから同時にフェッチされる。これらの入力
オペランドは、論理関数テーブル24における演算の前
に、OPコードによって指示されていればオペランドが
反転されるように、オペランド反転ロジック手段63に
送られる。
【0037】評価されたゲートに対する入力オペランド
は論理関数テーブル24に送られる。この情報は、ラッ
チ61からの、ゲートの関数を記述したOPコード・フ
ィールドの関数ポインタとともに、論理関数テーブル2
4へのポインタとしてもcる。論理関数テーブル24は
、基本的にはルックアップ・テーブルであり、その入力
が現在与えられていれば、ゲートに対して正規の2ビッ
ト出力値を生成する。
は論理関数テーブル24に送られる。この情報は、ラッ
チ61からの、ゲートの関数を記述したOPコード・フ
ィールドの関数ポインタとともに、論理関数テーブル2
4へのポインタとしてもcる。論理関数テーブル24は
、基本的にはルックアップ・テーブルであり、その入力
が現在与えられていれば、ゲートに対して正規の2ビッ
ト出力値を生成する。
【0038】論理関数テーブル24の出力は、OPコー
ドによって指示されていれば出力が反転されるように、
出力反転ロジック66に送られる。出力反転ロジック手
段66からの結果は、出力手段25に供給され、マシン
1の現在状態アレイ23をすべてその結果で更新するた
めに、データ・ライン3Aの割当ラインに送出される。
ドによって指示されていれば出力が反転されるように、
出力反転ロジック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が更新される。
に評価される。スロット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か
ら、結果を受け取ることができる。
、...、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にわたって
同一のものとして解釈される。
、ブロードキャスト、ホールトなどの制御命令を実行す
るとき、すべてのシミュレーション・プロセサ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つのエンティテ
ィとなる。
ョン・プロセサ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)。
はなく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の
オペランドが異なるからである。
ルで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バスに
送信するだけでよい。この意味は大きい。それは特に、
この例のアーキテクチャによれば、ユーザが、所要性能
を得るために、ロジック・シミュレーション・マシンを
いつでも再構成できるからである。
数をソフトウェアに対してトランスペアレントにする。 つまり、アーキテクチャとしては16のブロック記述命
令が常に同時に実行される。これには、実際にはシミュ
レーション・プロセサ数に応じて1、2、4、8、また
は16のサイクルがかかるが、違いはソフトウェアから
は見えない。ホスト・コンピュータが、ロードその他の
ために、シミュレーション・プロセサのブロック記述ア
レイをアクセスするとき、ホスト・コンピュータが認識
するのは1組の命令にすぎない。シミュレーション・プ
ロセサのハードウェアは、ホストのアクセスを、複数の
カード上の異なるアレイへ向けることができるが、ホス
トはこれを認識しない。シミュレートされるロジック・
モデルが、最大構成のロジック・シミュレーション・マ
シンを対象に形成される場合、このモデルは、何ら変更
を加えることなく、より小規模な構成で動作する。この
考え方から、同じモデルを多くのハードウェア構成で使
用できる。ホストは、構成を認識する必要はなく、構成
にかかわらず、すべてのホスト・データをI/Oバスに
送信するだけでよい。この意味は大きい。それは特に、
この例のアーキテクチャによれば、ユーザが、所要性能
を得るために、ロジック・シミュレーション・マシンを
いつでも再構成できるからである。
【0046】シミュレーション・プロセサ2は、シミュ
レーションの際に、通常はゲート・ロジックだけをシミ
ュレートするために用いられ、メモリやアレイのモデリ
ング、デバイス動作などの機能は、ホスト・コンピュー
タ5によって実行される。ただし図1、図2のマシン1
では、ホスト・コンピュータ5との間のデータはすべて
シミュレーション・バス手段3に送られ、ホストは、バ
ス3上のもう1つのデバイスでしかなくなる。これは、
シミュレーション・バス手段3に、シミュレーション・
プロセサ2と並列に装着されたハードウェアのアクセラ
レータまたは補助プロセサによって、シミュレーション
・バス3のトラフィックを模倣することによって、どの
ようなホスト機能も実行できることを意味する。トレー
ス収集、メモリやアレイのシミュレーション、及びデバ
イス動作が、ハードウェアのアクセラレータまたは補助
プロセサの対象となることは明らかである。このような
操作の場合は、ホストがシミュレーション・スループッ
トを減速し得る。実際に、こうしたホストの負担を軽減
するために、ユーザ・インタフェースを除くすべての機
能を補助プロセサに移植することもできる。
レーションの際に、通常はゲート・ロジックだけをシミ
ュレートするために用いられ、メモリやアレイのモデリ
ング、デバイス動作などの機能は、ホスト・コンピュー
タ5によって実行される。ただし図1、図2のマシン1
では、ホスト・コンピュータ5との間のデータはすべて
シミュレーション・バス手段3に送られ、ホストは、バ
ス3上のもう1つのデバイスでしかなくなる。これは、
シミュレーション・バス手段3に、シミュレーション・
プロセサ2と並列に装着されたハードウェアのアクセラ
レータまたは補助プロセサによって、シミュレーション
・バス3のトラフィックを模倣することによって、どの
ようなホスト機能も実行できることを意味する。トレー
ス収集、メモリやアレイのシミュレーション、及びデバ
イス動作が、ハードウェアのアクセラレータまたは補助
プロセサの対象となることは明らかである。このような
操作の場合は、ホストがシミュレーション・スループッ
トを減速し得る。実際に、こうしたホストの負担を軽減
するために、ユーザ・インタフェースを除くすべての機
能を補助プロセサに移植することもできる。
【0047】この発明のAET(全イベント・トレース
)ギャザラ4は、このような補助プロセサの一例である
。AETは、シミュレーションの間にすべてのファシリ
ティに生じたことの記録である。通常、従来の技術によ
るAETデータは、各シミュレーション・サイクルの終
わりに、ホスト・コンピュータ5が、トレースされるす
べてのノードを評価することによって収集される。こう
した対象ノードだけをホストに送信するブロードキャス
ト・コマンドは効率的ではあるが、2つの制約が残る。 第1に、トレースされるノードは、変化しなかったもの
も含めてすべてホスト・コンピュータに送られる。 第2に、シミュレーション・サイクルごとにデータを評
価するのでホストにかなりの時間がかかる。AETギャ
ザラ4は、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上の算出結果で更新される。
った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に格納する。
・サイクルの初めに、変化記録アレイ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に格納される。
ャザラ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つで構成してもよい。
スクとして用いられる別個の(シャドー)アレイのサイ
ズを現在状態アレイ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により、どのノードがトレース対象である
かを示すマスクを格納するためにシャドー・アレイを使
用することで、ファシリティのどのサブセットも収集で
きる。
サであり、シミュレーション・バス手段3をモニタする
だけである。ギャザラ4がシミュレーションに影響を与
える唯一の機会は、シミュレーションを中止して、変化
記録アレイ44をホストにダンプするときである。これ
はまずめったに起こらないし、ホストの転送幅がシミュ
レーションとAETダンプの両方を処理できるほどであ
れば回避できる。AETギャザラ4は、最小の情報(変
化のみ)を記録するので、変化記録アレイ44が充分に
大きく、トレース対象のファシリティの数が妥当であれ
ば、AETダンプが必要になる前にほとんどのシミュレ
ーションを完了できる。AETギャザラ4は、シミュレ
ーション・プロセサ及びホスト・コンピュータのタスク
を減速することなく、シミュレーション・バス手段3を
モニタすることによって、AETを生成するほか、AE
Tギャザラ4により、どのノードがトレース対象である
かを示すマスクを格納するためにシャドー・アレイを使
用することで、ファシリティのどのサブセットも収集で
きる。
【0053】図1、図2のロジック・シミュレーション
・マシンの場合、シミュレーション・バス手段に接続さ
れるシミュレーション・プロセサの数は2n であり、
最大数は16である。ただし、この発明のAETギャザ
ラは、これがシミュレーションと平行してAETを収集
するために、シミュレーション・バス手段上のデータを
モニタするように、任意の個数のシミュレーション・プ
ロセサを含むロジック・シミュレーション・マシンに接
続できる。
・マシンの場合、シミュレーション・バス手段に接続さ
れるシミュレーション・プロセサの数は2n であり、
最大数は16である。ただし、この発明のAETギャザ
ラは、これがシミュレーションと平行してAETを収集
するために、シミュレーション・バス手段上のデータを
モニタするように、任意の個数のシミュレーション・プ
ロセサを含むロジック・シミュレーション・マシンに接
続できる。
【0054】
【発明の効果】この発明によれば、シミュレーションを
減速することなく、AET(全イベント・トレース)記
録をシミュレーションと平行して生成するAETギャザ
ラを提供することができる。
減速することなく、AET(全イベント・トレース)記
録をシミュレーションと平行して生成するAETギャザ
ラを提供することができる。
【図1】本発明の実施例に従ったAETギャザラが接続
されるロジック・シミュレーション・マシンのA−A線
より左側を示すブロック図である。
されるロジック・シミュレーション・マシンのA−A線
より左側を示すブロック図である。
【図2】図1のロジック・シミュレーション・マシンの
A−A線より右側を示すブロック図である。
A−A線より右側を示すブロック図である。
【図3】図1、図2のスロット0に装着されたシミュレ
ーション・プロセサのブロック図である。
ーション・プロセサのブロック図である。
【図4】図3のシミュレーション・プロセサのブロック
記述アレイの内容を示す図である。
記述アレイの内容を示す図である。
【図5】図4のブロック記述アレイに格納された命令の
OPコード・フィールドを示す図である。
OPコード・フィールドを示す図である。
【図6】ブロック記述命令と、図3に示したシミュレー
ション・プロセサの動作を説明するために簡略化したロ
ジック回路モデルのブロック図である。
ション・プロセサの動作を説明するために簡略化したロ
ジック回路モデルのブロック図である。
【図7】図3のシミュレーション・プロセサの現在状態
アレイのブロック図である。
アレイのブロック図である。
【図8】図3のシミュレーション・プロセサの一部を示
すブロック図である。
すブロック図である。
【図9】論理関数テーブルからの結果を、シミュレーシ
ョン・バスの割当データ・ラインに送出する、図3のシ
ミュレーション・プロセサの出力手段を示すブロック図
である。
ョン・バスの割当データ・ラインに送出する、図3のシ
ミュレーション・プロセサの出力手段を示すブロック図
である。
【図10】マシン動作を説明するために、図1、図2の
マシンのシミュレーション・プロセサのブロック記述ア
レイを簡略化した図である。
マシンのシミュレーション・プロセサのブロック記述ア
レイを簡略化した図である。
【図11】ロジック・シミュレーション・マシンの別の
構成のブロック記述を簡略化した図である。
構成のブロック記述を簡略化した図である。
【図12】シミュレーションの間にAET(全イベント
・トレース)を生成するために、シミュレーション・バ
ス手段によってロジック・シミュレーション・マシンに
、シミュレーション・プロセサと並列に接続された、こ
の発明の実施例に従ったAETギャザラのブロック図で
ある。
・トレース)を生成するために、シミュレーション・バ
ス手段によってロジック・シミュレーション・マシンに
、シミュレーション・プロセサと並列に接続された、こ
の発明の実施例に従ったAETギャザラのブロック図で
ある。
【図13】図12のAETギャザラの動作を説明する、
図1、図2のマシンによってシミュレートされる2ビッ
ト・カウンタの図である。
図1、図2のマシンによってシミュレートされる2ビッ
ト・カウンタの図である。
【図14】図13のカウンタのノードの、シミュレーシ
ョン・サイクルごとの現在状態を説明するテーブルの図
である。
ョン・サイクルごとの現在状態を説明するテーブルの図
である。
【図15】図12のAETギャザラの動作を説明する、
変化記録アレイの内容を示すテーブルの図である。
変化記録アレイの内容を示すテーブルの図である。
【図16】この発明の第2実施例に従ったAETギャザ
ラのブロック図である。
ラのブロック図である。
Claims (10)
- 【請求項1】シミュレートされたモデルの現在状態を格
納する現在状態格納手段と、上記モデルの現在状態の変
化を格納する変化記録手段と、上記現在状態格納手段に
格納された現在状態の変化を検出し、該変化を上記変化
記録手段に格納するために、シミュレートされた上記モ
デルの現在状態をモニタする制御手段とを含む、全イベ
ント・トレース(AET)ギャザラ。 - 【請求項2】請求項1に記載のAETギャザラであって
、該AETギャザラが複数のシミュレーション・プロセ
サを含むロジック・シミュレーション・マシンのシミュ
レーション・バス手段に接続され、上記各シミュレーシ
ョン・プロセサが、シミュレーションの結果を該シミュ
レーション・バス手段に並列に送出する、AETギャザ
ラ。 - 【請求項3】請求項1に記載のAETギャザラであって
、上記現在状態格納手段とサイズが等しく、シミュレー
ションの間にすべてのファシリティのサブセットをトレ
ースするために、トレースすべきノードを指示するマス
クを格納するためのメモリ手段を含む、AETギャザラ
。 - 【請求項4】現在状態格納手段と変化記録手段とを含む
ロジック・シミュレーション・マシンにおいて、ロジッ
ク・シミュレーションの間に全イベント・トレースを収
集する方法であって、上記ロジック・シミュレーション
・マシンによってシミュレートされたモデルの現在状態
を上記現在状態格納手段に格納するステップと、上記現
在状態格納手段に格納された現在状態の変化を検出する
ために、シミュレートされた上記モデルの現在状態をモ
ニタするステップと、上記変化を上記変化記録手段に格
納するステップとを含む、全イベント・トレース収集方
法。 - 【請求項5】請求項4に記載の方法であって、上記ロジ
ック・シミュレーション・マシンに、複数のシミュレー
ション・プロセサと、該シミュレーション・プロセサが
シミュレートされた現在状態を送出するシミュレーショ
ン・バス手段とが含まれ、上記シミュレートされた状態
を上記シミュレーション・バス手段から受け取るステッ
プを含む、全イベント・トレース収集方法。 - 【請求項6】請求項4に記載の方法であって、上記ロジ
ック・シミュレーション・マシンに、サイズが上記現在
状態格納手段と等しいメモリ手段が含まれ、シミュレー
ションの間にすべてのファシリティのサブセットをトレ
ースするために、トレースすべきノードを指示するマス
ク手段を、上記メモリ手段に格納するステップを含む、
全イベント・トレース収集方法。 - 【請求項7】パラレル・シミュレーションのための複数
のシミュレーション・プロセサと、該シミュレーション
・プロセサを相互に接続するためのシミュレーション・
バス手段とを含むロジック・シミュレーション・マシン
のための全イベント・トレース・ギャザラであって、シ
ミュレートされたモデルの現在状態を上記シミュレーシ
ョン・バス手段から格納する現在状態格納手段と、上記
モデルの現在状態の変化を格納する変化記録手段と、上
記現在状態格納手段に格納された現在状態の変化を検出
し、該変化を上記変化記録手段に格納するために、シミ
ュレートされた上記モデルの現在状態を上記シミュレー
ション・バス手段からモニタする制御手段とを含む、全
イベント・トレース・ギャザラ。 - 【請求項8】請求項7に記載の全イベント・トレース・
ギャザラであって、上記シミュレーション・プロセサに
よってシミュレートされた現在状態を上記シミュレーシ
ョン・バス手段に並列に供給するための出力手段が、上
記各シミュレーション・プロセサに含まれる、全イベン
ト・トレース・ギャザラ。 - 【請求項9】請求項7に記載の全イベント・トレース・
ギャザラであって、シミュレーションの間にすべてのフ
ァシリティのサブセットをトレースするために、トレー
スすべきノードを指示するマスクを格納するための、サ
イズが上記現在状態格納手段と等しいメモリ手段を含む
、全イベント・トレース・ギャザラ。 - 【請求項10】請求項7に記載の全イベント・トレース
・ギャザラであって、シミュレートされた現在状態を、
上記シミュレーション・バス手段を通して上記シミュレ
ーション・プロセサから受け取るために、上記ギャザラ
が該シミュレーション・バス手段に、複数の該シミュレ
ーション・プロセサと並列に接続された、全イベント・
トレース・ギャザラ。
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)
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)
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)
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 |
-
1990
- 1990-03-30 US US07/502,148 patent/US5327361A/en not_active Expired - Fee Related
-
1991
- 1991-02-22 JP JP3048823A patent/JPH0738202B2/ja not_active Expired - Lifetime
- 1991-03-26 EP EP19910302635 patent/EP0450839A3/en not_active Withdrawn
Patent Citations (3)
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 |