JPH04227556A - ロジック・シミュレーション・マシンからホスト・コンピュータへデータを送信する方法及び装置 - Google Patents
ロジック・シミュレーション・マシンからホスト・コンピュータへデータを送信する方法及び装置Info
- Publication number
- JPH04227556A JPH04227556A JP3048822A JP4882291A JPH04227556A JP H04227556 A JPH04227556 A JP H04227556A JP 3048822 A JP3048822 A JP 3048822A JP 4882291 A JP4882291 A JP 4882291A JP H04227556 A JPH04227556 A JP H04227556A
- Authority
- JP
- Japan
- Prior art keywords
- data
- simulation
- transmitting
- memory
- command
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】この発明は、デジタル・ロジック
のシミュレーションを行うロジック・シミュレーション
・マシンに関し、特に、ロジック・シミュレーション・
マシンから、ロジック・シミュレーション・マシンが接
続されたホスト・コンピュータへデータを送信する方法
及び装置に関する。
のシミュレーションを行うロジック・シミュレーション
・マシンに関し、特に、ロジック・シミュレーション・
マシンから、ロジック・シミュレーション・マシンが接
続されたホスト・コンピュータへデータを送信する方法
及び装置に関する。
【0002】
【従来の技術】超大規模集積回路などのロジック技術に
より、価格性能費と信頼性が大幅に向上している。しか
しこの技術には、障害診断が先行技術よりも難しく、ロ
ジック設計エラーの訂正に必要なエンジニアリングの練
り直しサイクルがかなり長くなるという欠点がある。こ
のような欠点により、設計上のエラーや省略にかかる経
済的なペナルティはかなりのものになり、モデルを実用
化する前に、設計をくまなく検証するという目標が重要
視される。
より、価格性能費と信頼性が大幅に向上している。しか
しこの技術には、障害診断が先行技術よりも難しく、ロ
ジック設計エラーの訂正に必要なエンジニアリングの練
り直しサイクルがかなり長くなるという欠点がある。こ
のような欠点により、設計上のエラーや省略にかかる経
済的なペナルティはかなりのものになり、モデルを実用
化する前に、設計をくまなく検証するという目標が重要
視される。
【0003】設計検証方法の1つに、汎用コンピュータ
によるロジック・シミュレーションがある。また、ロジ
ック・シミュレーションに最適化された特定用途向けコ
ンピュータの採用も設計検証に用いられる。一般に特定
用途向けコンピュータにはマルチ・プロセサ・アーキテ
クチャが用いられる。このアーキテクチャでは、シミュ
レーション・プロセサと呼ばれる複数のプロセサを相互
に接続することで、シミュレーション性能を高めること
ができる。特定用途向けコンピュータは、ロード機能、
シミュレーション結果の解析、ユーザ・インタフェース
などのサービスを提供するために用いられるホスト・コ
ンピュータと併用することもできる。こうした特定用途
向けコンピュータはロジック・シミュレーション・マシ
ンと呼ばれる。この発明は、ロジック・シミュレーショ
ン・マシンからホスト・コンピュータへデータを効率よ
く送信する方法に関係する。
によるロジック・シミュレーションがある。また、ロジ
ック・シミュレーションに最適化された特定用途向けコ
ンピュータの採用も設計検証に用いられる。一般に特定
用途向けコンピュータにはマルチ・プロセサ・アーキテ
クチャが用いられる。このアーキテクチャでは、シミュ
レーション・プロセサと呼ばれる複数のプロセサを相互
に接続することで、シミュレーション性能を高めること
ができる。特定用途向けコンピュータは、ロード機能、
シミュレーション結果の解析、ユーザ・インタフェース
などのサービスを提供するために用いられるホスト・コ
ンピュータと併用することもできる。こうした特定用途
向けコンピュータはロジック・シミュレーション・マシ
ンと呼ばれる。この発明は、ロジック・シミュレーショ
ン・マシンからホスト・コンピュータへデータを効率よ
く送信する方法に関係する。
【0004】従来の技術によるロジック・シミュレーシ
ョン・マシンは、Cocke らによる米国特許第43
06286号明細書(1981年12月15日付)にみ
られる。このロジック・シミュレーション・マシンは、
複数のプロセサ間スイッチによって相互に接続された複
数の基本パラレル・プロセサから成る。プロセサ間スイ
ッチは、ロジック・シミュレーション・マシンのコンピ
ューティング・エンジンである基本プロセサ(各々、ロ
ジック・モデルの一部の各ゲートを並列にシミュレート
する)相互間の通信のみならず、基本プロセサと制御プ
ロセサとの間の通信も可能にする。制御プロセサは、こ
れが接続されたホスト・コンピュータを通して、ロジッ
ク・シミュレーション・マシンの総合制御/入出力ファ
シリティを提供する。各制御プロセサには、そのプロセ
サによってシミュレートされた1組のゲートだけの現在
状態情報が格納される。ある基本プロセサがあるゲート
をシミュレートし、そのゲートの入力が、別のプロセサ
によってシミュレートされたゲートの出力への端子を含
む場合、当該ゲートの状態情報は、プロセサ間スイッチ
を通して転送される。
ョン・マシンは、Cocke らによる米国特許第43
06286号明細書(1981年12月15日付)にみ
られる。このロジック・シミュレーション・マシンは、
複数のプロセサ間スイッチによって相互に接続された複
数の基本パラレル・プロセサから成る。プロセサ間スイ
ッチは、ロジック・シミュレーション・マシンのコンピ
ューティング・エンジンである基本プロセサ(各々、ロ
ジック・モデルの一部の各ゲートを並列にシミュレート
する)相互間の通信のみならず、基本プロセサと制御プ
ロセサとの間の通信も可能にする。制御プロセサは、こ
れが接続されたホスト・コンピュータを通して、ロジッ
ク・シミュレーション・マシンの総合制御/入出力ファ
シリティを提供する。各制御プロセサには、そのプロセ
サによってシミュレートされた1組のゲートだけの現在
状態情報が格納される。ある基本プロセサがあるゲート
をシミュレートし、そのゲートの入力が、別のプロセサ
によってシミュレートされたゲートの出力への端子を含
む場合、当該ゲートの状態情報は、プロセサ間スイッチ
を通して転送される。
【0005】ホスト・コンピュータは、メモリ・モデリ
ング、デバイス動作など、ロジック・シミュレーション
・マシンのシミュレーション・プロセサが実行できない
タスクの実行に関して、シミュレーションに参加する際
、シミュレーションの間に、ロジック・シミュレーショ
ン・マシンのデータをアクセスする必要がある。
ング、デバイス動作など、ロジック・シミュレーション
・マシンのシミュレーション・プロセサが実行できない
タスクの実行に関して、シミュレーションに参加する際
、シミュレーションの間に、ロジック・シミュレーショ
ン・マシンのデータをアクセスする必要がある。
【0006】従来の技術では、ホスト・コンピュータと
の通信はすべて、ホスト・コンピュータによって開始さ
れ制御される。ホストは、ロジック・シミュレーション
・マシンに格納されたデータをアクセスするときは、マ
シンとのインタラクションによってホストとマシンとの
間の通信を確立し、マシンからデータをフェッチする必
要がある。従来技術の通信方法では、ホストの負担が増
えるだけでなく、ホストが、ロジック・シミュレーショ
ン・マシンのシミュレーションに割り込みをかけてこれ
を減速する結果となる。さらに、ホストは、1度に、マ
シン内の隣接して格納されたデータをアクセスできるだ
けである。また、あるホスト・タスクがホストから補助
プロセサに転送されて、ホストの負担が軽減され、シミ
ュレーションが高速化される場合は、補助プロセサ自体
がロジック・シミュレーション・マシンとの通信を確立
し、必要なデータをマシンからフェッチしなくてはなら
ない。これが補助プロセサの作成を困難にしている。マ
シンとのこのような通信を実現するために補助プロセサ
が複雑になるからである。
の通信はすべて、ホスト・コンピュータによって開始さ
れ制御される。ホストは、ロジック・シミュレーション
・マシンに格納されたデータをアクセスするときは、マ
シンとのインタラクションによってホストとマシンとの
間の通信を確立し、マシンからデータをフェッチする必
要がある。従来技術の通信方法では、ホストの負担が増
えるだけでなく、ホストが、ロジック・シミュレーショ
ン・マシンのシミュレーションに割り込みをかけてこれ
を減速する結果となる。さらに、ホストは、1度に、マ
シン内の隣接して格納されたデータをアクセスできるだ
けである。また、あるホスト・タスクがホストから補助
プロセサに転送されて、ホストの負担が軽減され、シミ
ュレーションが高速化される場合は、補助プロセサ自体
がロジック・シミュレーション・マシンとの通信を確立
し、必要なデータをマシンからフェッチしなくてはなら
ない。これが補助プロセサの作成を困難にしている。マ
シンとのこのような通信を実現するために補助プロセサ
が複雑になるからである。
【0007】
【発明が解決しようとする課題】この発明の目的は、ロ
ジック・シミュレーション・マシンからのデータを、ホ
ストのインタラクションなく送信する方法を提供するこ
とにある。
ジック・シミュレーション・マシンからのデータを、ホ
ストのインタラクションなく送信する方法を提供するこ
とにある。
【0008】この発明の目的には、ロジック・シミュレ
ーション・マシンからデータを効率よく収集する方法を
提供することも含まれる。
ーション・マシンからデータを効率よく収集する方法を
提供することも含まれる。
【0009】この発明の目的には、ロジック・シミュレ
ーション・マシンからホスト・コンピュータへデータの
パケットを効率よく送信する方法を提供することも含ま
れる。
ーション・マシンからホスト・コンピュータへデータの
パケットを効率よく送信する方法を提供することも含ま
れる。
【0010】この発明の目的には、補助プロセサがホス
トに代わってタスクを実行できるように、ロジック・シ
ミュレーション・マシンから補助プロセサへデータを送
信する方法を提供することも含まれる。
トに代わってタスクを実行できるように、ロジック・シ
ミュレーション・マシンから補助プロセサへデータを送
信する方法を提供することも含まれる。
【0011】
【課題を解決するための手段】この発明の目的のために
、ロジック・シミュレーション・マシンからホスト・コ
ンピュータへデータを送信する方法が提供される。この
方法は、マシンによって実行される命令を格納するため
の第1メモリ・ユニット、及びマシンによってシミュレ
ートされたモデルについてのデータを格納するための第
2メモリ・ユニットを提供するステップ、シミュレーシ
ョン・バス手段を通してマシンをホスト・コンピュータ
に接続するステップ、第2メモリ・ユニットからデータ
をフェッチするコマンドを第1メモリ・ユニットに格納
するステップ、コマンドによって指示されたデータを第
2メモリ・ユニットからフェッチするステップ、及びデ
ータをシミュレーション・バス手段に送出するステップ
から成る。
、ロジック・シミュレーション・マシンからホスト・コ
ンピュータへデータを送信する方法が提供される。この
方法は、マシンによって実行される命令を格納するため
の第1メモリ・ユニット、及びマシンによってシミュレ
ートされたモデルについてのデータを格納するための第
2メモリ・ユニットを提供するステップ、シミュレーシ
ョン・バス手段を通してマシンをホスト・コンピュータ
に接続するステップ、第2メモリ・ユニットからデータ
をフェッチするコマンドを第1メモリ・ユニットに格納
するステップ、コマンドによって指示されたデータを第
2メモリ・ユニットからフェッチするステップ、及びデ
ータをシミュレーション・バス手段に送出するステップ
から成る。
【0012】ブロードキャスト・コマンドと呼ばれるコ
マンドには、マシンによって実行される通信を指定する
フィールドと、第2メモリ・ユニットのアドレスを指定
する複数のフィールドが含まれる。ブロードキャスト・
コマンドは、マシン動作を指定する命令とともに、第1
メモリ・ユニットに格納され、格納位置は、シミュレー
ションの間に、メモリ・モデリング、トレーシングなど
のホスト・タスクを実行するために、マシンがデータを
ホストへ送信する上で必要な位置である。ブロードキャ
スト・コマンドのアドレス・フィールドは、データをマ
シンから収集するために、第2メモリ・ユニットのどの
アドレスも指定できる。
マンドには、マシンによって実行される通信を指定する
フィールドと、第2メモリ・ユニットのアドレスを指定
する複数のフィールドが含まれる。ブロードキャスト・
コマンドは、マシン動作を指定する命令とともに、第1
メモリ・ユニットに格納され、格納位置は、シミュレー
ションの間に、メモリ・モデリング、トレーシングなど
のホスト・タスクを実行するために、マシンがデータを
ホストへ送信する上で必要な位置である。ブロードキャ
スト・コマンドのアドレス・フィールドは、データをマ
シンから収集するために、第2メモリ・ユニットのどの
アドレスも指定できる。
【0013】ブロードキャスト・コマンドは、アドレス
・フィールドによって指定された複数のデータを第2メ
モリ・ユニットから1度にフェッチし、データをシミュ
レーション・バス手段に並列に送出する。シミュレーシ
ョン・バス手段のサイズが、2つ以上のブロードキャス
ト・コマンドによって1度にフェッチされたデータを送
信する上で充分大きい場合、ブロードキャスト・コマン
ドは、いくつかマシンによって同時にまたは順次に実行
され、データがバス手段に送出されて、ホストへ送られ
るデータのパケットが構成される。
・フィールドによって指定された複数のデータを第2メ
モリ・ユニットから1度にフェッチし、データをシミュ
レーション・バス手段に並列に送出する。シミュレーシ
ョン・バス手段のサイズが、2つ以上のブロードキャス
ト・コマンドによって1度にフェッチされたデータを送
信する上で充分大きい場合、ブロードキャスト・コマン
ドは、いくつかマシンによって同時にまたは順次に実行
され、データがバス手段に送出されて、ホストへ送られ
るデータのパケットが構成される。
【0014】
【実施例】図1、図2により、この発明の実施例に従っ
た方法を用いたロジック・シミュレーション・マシン1
について説明する。マシン1は、シミュレーション・バ
ス手段3を通して相互に並列に接続された複数のシミュ
レーション・プロセサ2を含む。図1、図2に示したシ
ミュレーション・プロセサ2は4個であるが、シミュレ
ーション・バス手段3に接続されるシミュレーション・
プロセサ2の個数は16であり、この例では、説明の便
宜上、最大構成は16プロセサである。ただし、マシン
1には、シミュレーション・プロセサを、1、2、4、
8、16のグループから任意の個数選択して使用できる
。
た方法を用いたロジック・シミュレーション・マシン1
について説明する。マシン1は、シミュレーション・バ
ス手段3を通して相互に並列に接続された複数のシミュ
レーション・プロセサ2を含む。図1、図2に示したシ
ミュレーション・プロセサ2は4個であるが、シミュレ
ーション・バス手段3に接続されるシミュレーション・
プロセサ2の個数は16であり、この例では、説明の便
宜上、最大構成は16プロセサである。ただし、マシン
1には、シミュレーション・プロセサを、1、2、4、
8、16のグループから任意の個数選択して使用できる
。
【0015】シミュレーション・バス手段3は、データ
・ライン3A、制御ライン3B、及び構成ライン3Cの
3部から成る。各シミュレーション・プロセサ2は、ゲ
ートの評価時に、データ・ライン3Aを通して、シミュ
レーション結果を転送し、すべてのシミュレーション・
プロセサ2からシミュレーション結果を受け取って、各
々の現在状態のコピーを更新する。ホスト・コンピュー
タ5は、データ・ライン3Aを通して、ゲートが評価さ
れないときに、シミュレーション・プロセサ2へパケッ
ト・データを転送する。またシミュレーション・プロセ
サ2は、データ・ライン3Aを通して、パケット・デー
タをブロードキャスト・コマンドによってホスト5に転
送する。データ・ライン3A上の現在の内容は、制御ラ
イン3Bを通して指示され、バス3のアービトレーショ
ン(調停)が行われる。構成ライン3Cを通して、一意
のコードが各シミュレーション・プロセサ2に転送され
、シミュレーション・プロセサの構成が通知される。 シミュレーション・バス手段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つのラインをO
FFにセットする。スロット手段2のハード・ワイヤー
ド手段3Dは、そのスロット手段に装着されたシミュレ
ーション・プロセサ2に、構成ライン3Cによってバイ
ナリ・データ0010が入力されるように、第2最下位
ビット・ラインをONに、他の3つのラインをOFFに
セットする。以下同様である。スロット手段15のハー
ド・ワイヤード手段3Dは、そのスロット手段に装着さ
れたシミュレーション・プロセサ2に、構成ライン3C
によってバイナリ・データ1111が入力されるように
、すべてのラインをONにセットする。
・ライン3A、制御ライン3B、及び構成ライン3Cの
3部から成る。各シミュレーション・プロセサ2は、ゲ
ートの評価時に、データ・ライン3Aを通して、シミュ
レーション結果を転送し、すべてのシミュレーション・
プロセサ2からシミュレーション結果を受け取って、各
々の現在状態のコピーを更新する。ホスト・コンピュー
タ5は、データ・ライン3Aを通して、ゲートが評価さ
れないときに、シミュレーション・プロセサ2へパケッ
ト・データを転送する。またシミュレーション・プロセ
サ2は、データ・ライン3Aを通して、パケット・デー
タをブロードキャスト・コマンドによってホスト5に転
送する。データ・ライン3A上の現在の内容は、制御ラ
イン3Bを通して指示され、バス3のアービトレーショ
ン(調停)が行われる。構成ライン3Cを通して、一意
のコードが各シミュレーション・プロセサ2に転送され
、シミュレーション・プロセサの構成が通知される。 シミュレーション・バス手段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つのラインをO
FFにセットする。スロット手段2のハード・ワイヤー
ド手段3Dは、そのスロット手段に装着されたシミュレ
ーション・プロセサ2に、構成ライン3Cによってバイ
ナリ・データ0010が入力されるように、第2最下位
ビット・ラインをONに、他の3つのラインをOFFに
セットする。以下同様である。スロット手段15のハー
ド・ワイヤード手段3Dは、そのスロット手段に装着さ
れたシミュレーション・プロセサ2に、構成ライン3C
によってバイナリ・データ1111が入力されるように
、すべてのラインをONにセットする。
【0016】メモリ・モデリング、トレース収集などの
タスクを、ホスト・コンピュータ5に代わって実行する
補助プロセサ4は、バス手段3のスロット手段nに装着
すれば、シミュレーション・バス手段3に、シミュレー
ション・プロセサ2と並列に接続される。
タスクを、ホスト・コンピュータ5に代わって実行する
補助プロセサ4は、バス手段3のスロット手段nに装着
すれば、シミュレーション・バス手段3に、シミュレー
ション・プロセサ2と並列に接続される。
【0017】データ・ライン3Aの数は、ロジック・シ
ミュレーション・マシン1が収容できるシミュレーショ
ン・プロセサ2の数と、各シミュレーション・プロセサ
2が、演算結果を示すのに必要なビット数に依存する。 この例の場合、マシン1は、最大16のシミュレーショ
ン・プロセサ2を収容でき、各シミュレーション・プロ
セサ2は2ビットの結果を算出する。したがって、デー
タ・ライン3Aの数は16x2=32である。シミュレ
ーション・プロセサ2の各々には、そのプロセサによっ
て算出された結果をすべてのシミュレーション・プロセ
サ2に転送するために、2つのデータ・ライン3Aが割
り当てられるが、これは、そのプロセサ2がどのスロッ
ト手段を占有するかによる(後述)。データ・ライン3
Aはまた、シミュレーションの前には、ホスト・コンピ
ュータ5によって、データと命令を各シミュレーション
・プロセサ2と補助プロセサ4にロードするために使用
でき、シミュレーションの間は、マシン1によって、シ
ミュレーション・プロセサ2に格納されたデータをホス
ト5と補助プロセサ4に送信するためにも使用できる(
後述)。
ミュレーション・マシン1が収容できるシミュレーショ
ン・プロセサ2の数と、各シミュレーション・プロセサ
2が、演算結果を示すのに必要なビット数に依存する。 この例の場合、マシン1は、最大16のシミュレーショ
ン・プロセサ2を収容でき、各シミュレーション・プロ
セサ2は2ビットの結果を算出する。したがって、デー
タ・ライン3Aの数は16x2=32である。シミュレ
ーション・プロセサ2の各々には、そのプロセサによっ
て算出された結果をすべてのシミュレーション・プロセ
サ2に転送するために、2つのデータ・ライン3Aが割
り当てられるが、これは、そのプロセサ2がどのスロッ
ト手段を占有するかによる(後述)。データ・ライン3
Aはまた、シミュレーションの前には、ホスト・コンピ
ュータ5によって、データと命令を各シミュレーション
・プロセサ2と補助プロセサ4にロードするために使用
でき、シミュレーションの間は、マシン1によって、シ
ミュレーション・プロセサ2に格納されたデータをホス
ト5と補助プロセサ4に送信するためにも使用できる(
後述)。
【0018】ホスト・コンピュータ5は従来のエンジニ
アリング・ワークステーションでよい。ホスト・コンピ
ュータ5には、中央処理ユニット51、メイン・メモリ
52、ディスク・ファイル(直接アクセス・ストレージ
・デバイス)53、キーボード54、ディスプレイ55
、及びホストI/Oバス手段56が含まれる。各シミュ
レーション・プロセサ2及び補助プロセサ4は、I/O
バス手段56を通して、I/Oバス手段56のスロット
手段(図示なし)に装着されて、ホスト・コンピュータ
5に接続される。シミュレーション・プロセサ2の数が
、ホスト・コンピュータ5内に備えられるI/Oスロッ
ト手段の数を超える場合は、追加のシミュレーション・
プロセサをホスト・コンピュータ5につなぐ延長ハウジ
ングを使用すればよい。
アリング・ワークステーションでよい。ホスト・コンピ
ュータ5には、中央処理ユニット51、メイン・メモリ
52、ディスク・ファイル(直接アクセス・ストレージ
・デバイス)53、キーボード54、ディスプレイ55
、及びホストI/Oバス手段56が含まれる。各シミュ
レーション・プロセサ2及び補助プロセサ4は、I/O
バス手段56を通して、I/Oバス手段56のスロット
手段(図示なし)に装着されて、ホスト・コンピュータ
5に接続される。シミュレーション・プロセサ2の数が
、ホスト・コンピュータ5内に備えられるI/Oスロッ
ト手段の数を超える場合は、追加のシミュレーション・
プロセサをホスト・コンピュータ5につなぐ延長ハウジ
ングを使用すればよい。
【0019】シミュレーション・プロセサ2と補助プロ
セサ4は四角いカード上に装着される。ホストI/Oバ
ス手段56のスロット(図示なし)のコネクタ(図示な
し)は、このカードの一端に備え付けられ、そこにシミ
ュレーション・プロセサ2または補助プロセサ4が装着
される。シミュレーション・バス手段3のスロット手段
0、1、...、15、またはnのコネクタ(図示なし
)は、カードのもう一端に備え付けられる。シミュレー
ション・プロセサ2と補助プロセサ4は、カードの一端
のコネクタ(図示なし)をホストI/Oバス56のスロ
ット(図示なし)に直接差し込むことによってホスト5
に装着される。シミュレーション・バス手段3は、スロ
ット手段0ないしnを、カードの反対側のコネクタ(図
示なし)に差し込むことによってシミュレーション・プ
ロセサ2と補助プロセサ4に接続される。
セサ4は四角いカード上に装着される。ホストI/Oバ
ス手段56のスロット(図示なし)のコネクタ(図示な
し)は、このカードの一端に備え付けられ、そこにシミ
ュレーション・プロセサ2または補助プロセサ4が装着
される。シミュレーション・バス手段3のスロット手段
0、1、...、15、またはnのコネクタ(図示なし
)は、カードのもう一端に備え付けられる。シミュレー
ション・プロセサ2と補助プロセサ4は、カードの一端
のコネクタ(図示なし)をホストI/Oバス56のスロ
ット(図示なし)に直接差し込むことによってホスト5
に装着される。シミュレーション・バス手段3は、スロ
ット手段0ないしnを、カードの反対側のコネクタ(図
示なし)に差し込むことによってシミュレーション・プ
ロセサ2と補助プロセサ4に接続される。
【0020】次に図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である。
【0021】ブロック記述アレイ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である、当該シミュレーション
・プロセサの動作を制御するための制御命令である。
【0022】ブロック記述命令については、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のサイズ
は、マシン1に求められる容量による。この例の場合、
アレイ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のサイズ
は、マシン1に求められる容量による。この例の場合、
アレイ22は、最大512Kのブロック記述命令を格納
できる。
【0023】図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に格納する。
【0024】制御命令については、図5に示すとおり、
OPコード・フィールドが、シミュレーション・プロセ
サによって実行される制御関数を指定する。ホールトは
、ホストのインタラクションを待つためにシミュレーシ
ョンを停止させるという意味である。ブランチは、フィ
ールドA2、A3によって指示されたアドレスに格納さ
れた命令へ行くことを意味する。ブロードキャストは、
シミュレーション・バス3に接続されたホスト5や補助
プロセサ4によって使用されるように、シミュレーショ
ン・バス手段3へデータのパケットを送るという意味で
ある。ブロードキャスト・コマンドには2種類あり、1
つはブロードキャストを、1つはブロードキャスト終了
を示す。ブロードキャスト・コマンドの詳細は図14に
示した。ブロードキャスト・コマンドは、OPコード・
フィールドに、ホスト5に送られる前に現在状態アレイ
23からフェッチされたオペランドを反転する反転ビッ
トI1、I1、I3、I4を含む。フィールドA1ない
しA4は、現在状態アレイ23からフェッチされるオペ
ランドのアドレスを格納する。
OPコード・フィールドが、シミュレーション・プロセ
サによって実行される制御関数を指定する。ホールトは
、ホストのインタラクションを待つためにシミュレーシ
ョンを停止させるという意味である。ブランチは、フィ
ールドA2、A3によって指示されたアドレスに格納さ
れた命令へ行くことを意味する。ブロードキャストは、
シミュレーション・バス3に接続されたホスト5や補助
プロセサ4によって使用されるように、シミュレーショ
ン・バス手段3へデータのパケットを送るという意味で
ある。ブロードキャスト・コマンドには2種類あり、1
つはブロードキャストを、1つはブロードキャスト終了
を示す。ブロードキャスト・コマンドの詳細は図14に
示した。ブロードキャスト・コマンドは、OPコード・
フィールドに、ホスト5に送られる前に現在状態アレイ
23からフェッチされたオペランドを反転する反転ビッ
トI1、I1、I3、I4を含む。フィールドA1ない
しA4は、現在状態アレイ23からフェッチされるオペ
ランドのアドレスを格納する。
【0025】図7により、現在状態アレイ23について
説明する。現在状態アレイ23は、シミュレートされた
モデル全体の現在状態の完全なコピーを格納するメモリ
である。各ブロックまたはゲートの状態は2ビットで指
定される。可能な状態は論理0(00)、論理1(01
)、未定義(10)、及びハイ・インピーダンス(11
)である。現在状態アレイ23は、シミュレートされた
マシンのすべてのブロックまたはゲートのこのような現
在状態を格納する。この例では、シミュレートされたマ
シンに可能なブロックまたはゲートの大きさは512K
であるので、シミュレートされたマシンの状態は1Mビ
ットで格納される。現在状態アレイ23には、少なくと
も1Mビットの容量がなくてはならない。ただし、この
例の場合、現在状態アレイ23は、最大性能を達成する
ためにこれより大きくなっている。所与のブロックまた
はゲートについて計算を行う際またはブロードキャスト
・コマンドによるブロードキャスト動作の際、現在状態
アレイ23の内容は、4つのフィールドA1、A2、A
3、A4によって同時にアドレスされる。4つの異なる
ブロックまたはゲートの現在状態は、同時に読み取るの
が望ましい。したがって、アレイ23は4回コピーされ
る。アレイ23の読み取りでは、4つの異なるアドレス
を同時に読み取れる。アレイ23の書き込みでは、常に
、4つの全アレイの同じアドレスが書き込まれる。すな
わち、現在状態アレイ23が読み取られるときは、マル
チプレクサ(MUX)62が、アドレス選択を通して、
制御ロジック手段27によって制御され、アドレスA1
、A2、A3、A4が各アレイに出力される。次に、各
アレイが、2ビット・オペランドをオペランド反転ロジ
ック手段(INV)63に出力する。出力されたオペラ
ンドの各々は、論理関数テーブル24における演算の前
に、またはホスト5に送られる前に、手段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、A
3、A4によって同時にアドレスされる。4つの異なる
ブロックまたはゲートの現在状態は、同時に読み取るの
が望ましい。したがって、アレイ23は4回コピーされ
る。アレイ23の読み取りでは、4つの異なるアドレス
を同時に読み取れる。アレイ23の書き込みでは、常に
、4つの全アレイの同じアドレスが書き込まれる。すな
わち、現在状態アレイ23が読み取られるときは、マル
チプレクサ(MUX)62が、アドレス選択を通して、
制御ロジック手段27によって制御され、アドレスA1
、A2、A3、A4が各アレイに出力される。次に、各
アレイが、2ビット・オペランドをオペランド反転ロジ
ック手段(INV)63に出力する。出力されたオペラ
ンドの各々は、論理関数テーブル24における演算の前
に、またはホスト5に送られる前に、手段63のOPコ
ードの反転ビットによって反転できる。現在状態アレイ
23が書き込まれるときは、マルチプレクサ62が、ア
ドレス選択を通して、制御ロジック手段27によって制
御され、1アドレスA0が出力される。次に同じデータ
が4つのアレイの同じアドレスA0に書き込まれる。も
ちろんこれは、1つのアレイとタイム・スライスによっ
ても行えるが、約4倍の性能向上が犠牲になる。 さらに、図7に示した例では、別に4つのアレイが追加
される。ユニット・ディレイ・シミュレーションの場合
、シミュレートされたマシンの状態は、“マスタ/スレ
ーブ”構成でセーブする必要がある。すなわち、マシン
の次の状態は、これがマシンの現在状態になる前に、も
れなく計算する必要がある。これを実現する最も簡単な
方法は、2つのメモリ(A、B)をピンポン構成で使用
することである。Aに現在状態が格納されているときは
、次の状態のセーブにBが用いられる。Bに現在状態が
格納されているときは、次の状態のセーブにAが用いら
れる。
【0026】図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において反転できる。
て説明する。論理関数テーブル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において反転できる。
【0027】オペランド反転ロジック63からの出力は
バス駆動手段80へも供給される。ブロードキャスト・
コマンドが、制御ロジック27によって実行されると、
バス駆動手段80は、オペランド反転ロジック63を通
して、現在状態アレイ23からのコマンドのフィールド
A1ないしA4によって指示された4つの現在状態を受
け取り、現在状態アレイ23からホスト5へデータを送
信するために、制御ロジック27の制御下で、データ・
ライン0ないし7、8ないし15、16ないし23、ま
たは24ないし31にデータを送出する(後述)。
バス駆動手段80へも供給される。ブロードキャスト・
コマンドが、制御ロジック27によって実行されると、
バス駆動手段80は、オペランド反転ロジック63を通
して、現在状態アレイ23からのコマンドのフィールド
A1ないしA4によって指示された4つの現在状態を受
け取り、現在状態アレイ23からホスト5へデータを送
信するために、制御ロジック27の制御下で、データ・
ライン0ないし7、8ないし15、16ないし23、ま
たは24ないし31にデータを送出する(後述)。
【0028】図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からの出力の下位ビッ
ト・ラインは、ゲートL0、L1、...、L15の入
力に接続される。出力反転ロジック手段66からの出力
の上位ビット・ラインは、ゲート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からの出力の下位ビッ
ト・ラインは、ゲートL0、L1、...、L15の入
力に接続される。出力反転ロジック手段66からの出力
の上位ビット・ラインは、ゲートH0、H1、...、
H15の入力に接続される。よって、スロット手段0、
1、2、...、15に装着されたシミュレーション・
プロセサ2は、その演算結果を、出力手段25を通して
データ・ライン3Aのライン0と1、2と3、4と5、
...、及び30と31に送出する。したがって、各シ
ミュレーション・プロセサ2には、その結果を送出する
ために、シミュレーション・バス3のどのスロット手段
をプロセサ2が占有しているかに応じて、データ・ライ
ン3Aのうち2つが割り当てられる。
【0029】図15により、バス駆動手段80について
説明する。バス駆動手段80は、データを現在状態アレ
イ23からデータ・ライン3Aへ送出してホスト5へ送
信するために、ブロードキャスト・コマンドによって用
いられる。手段80は4つのスイッチA、B、C(図示
なし)、Dを含む。スイッチは、4つのオペランド反転
ロジック63からの8ビット・データを、データ・ライ
ン0ないし7、8ないし15、16ないし23、及び2
4ないし31につなぐ。ANDゲートF1、F2、F3
(図示なし)、F4が論理1シグナルを出力してスイッ
チA、B、C、Dの端子を活動化すると、スイッチは、
4つのロジック63からの8ビット・データを、割り当
てられたデータ・ライン0ないし7、8ないし15、1
6ないし23、及び24ないし31に並列に送り出す。 ゲートF1、F2、F3、F4は、ハード・ワイヤード
手段3Dと制御ロジック手段27に接続された構成ライ
ン3Cの最下位及び第2最下位のビット・ラインからの
入力を受け取る。ライン3CからゲートF1への入力は
すべて反転される。ライン3Cの最下位ビット・ライン
はゲートF2に直結され、ライン3Cの第2最下位ビッ
ト・ラインは、ゲートF2に入力される前に反転される
。ライン3Cの最下位ビット・ラインの入力は、ゲート
F3(図示なし)に入力される前に反転され、ライン3
Cの第2最下位ビット・ラインはゲートF3(図示なし
)の入力に直結される。ライン3Cの入力はゲートF4
に直結される。ゲートF1、F2、F3、F4はまた、
コンパレータ(比較器)C1、C2からの入力を受け取
る。コンパレータC1は、構成ライン3Cの第2最上位
ビット・ラインと、クロック・ライン81のHIGHク
ロック・ラインHが同じバイナリ・シグナルを持つ場合
は、論理1シグナルを出力する。制御ロジック手段27
は、16のシミュレーション・プロセサ2がシミュレー
ション・バス手段3に接続されているときは、ブロード
キャスト動作の間に、クロック・シグナル(0、0)、
(0、1)、(1、0)、(1、1)をクロック・ライ
ン81を通してこの順序で送信する。制御ロジック手段
27は、8つのプロセサ2がバス3に接続されていると
きは、ブロードキャスト動作の間に、クロック・シグナ
ル(0、0、(0、1)を交互にクロック・ライン81
を通して送信する。制御ロジック手段27は、1、2、
または4つのプロセサ2がバス3に接続されているとき
は、ブロードキャスト動作の間にクロック・ライン81
にクロック・シグナル(0、0)を維持する。 ゲートF1、F2、F3、F4は、ブロードキャスト動
作の間にブロードキャスト・モードを示す入力を制御ロ
ジック手段27から受け取る。
説明する。バス駆動手段80は、データを現在状態アレ
イ23からデータ・ライン3Aへ送出してホスト5へ送
信するために、ブロードキャスト・コマンドによって用
いられる。手段80は4つのスイッチA、B、C(図示
なし)、Dを含む。スイッチは、4つのオペランド反転
ロジック63からの8ビット・データを、データ・ライ
ン0ないし7、8ないし15、16ないし23、及び2
4ないし31につなぐ。ANDゲートF1、F2、F3
(図示なし)、F4が論理1シグナルを出力してスイッ
チA、B、C、Dの端子を活動化すると、スイッチは、
4つのロジック63からの8ビット・データを、割り当
てられたデータ・ライン0ないし7、8ないし15、1
6ないし23、及び24ないし31に並列に送り出す。 ゲートF1、F2、F3、F4は、ハード・ワイヤード
手段3Dと制御ロジック手段27に接続された構成ライ
ン3Cの最下位及び第2最下位のビット・ラインからの
入力を受け取る。ライン3CからゲートF1への入力は
すべて反転される。ライン3Cの最下位ビット・ライン
はゲートF2に直結され、ライン3Cの第2最下位ビッ
ト・ラインは、ゲートF2に入力される前に反転される
。ライン3Cの最下位ビット・ラインの入力は、ゲート
F3(図示なし)に入力される前に反転され、ライン3
Cの第2最下位ビット・ラインはゲートF3(図示なし
)の入力に直結される。ライン3Cの入力はゲートF4
に直結される。ゲートF1、F2、F3、F4はまた、
コンパレータ(比較器)C1、C2からの入力を受け取
る。コンパレータC1は、構成ライン3Cの第2最上位
ビット・ラインと、クロック・ライン81のHIGHク
ロック・ラインHが同じバイナリ・シグナルを持つ場合
は、論理1シグナルを出力する。制御ロジック手段27
は、16のシミュレーション・プロセサ2がシミュレー
ション・バス手段3に接続されているときは、ブロード
キャスト動作の間に、クロック・シグナル(0、0)、
(0、1)、(1、0)、(1、1)をクロック・ライ
ン81を通してこの順序で送信する。制御ロジック手段
27は、8つのプロセサ2がバス3に接続されていると
きは、ブロードキャスト動作の間に、クロック・シグナ
ル(0、0、(0、1)を交互にクロック・ライン81
を通して送信する。制御ロジック手段27は、1、2、
または4つのプロセサ2がバス3に接続されているとき
は、ブロードキャスト動作の間にクロック・ライン81
にクロック・シグナル(0、0)を維持する。 ゲートF1、F2、F3、F4は、ブロードキャスト動
作の間にブロードキャスト・モードを示す入力を制御ロ
ジック手段27から受け取る。
【0030】図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を制御する。
【0031】また、スロット0を占有するシミュレーシ
ョン・プロセサ2は、ホスト5とシミュレーション・プ
ロセサ2との間でデータと命令を転送するためのホスト
・インタフェース21を含む。ホスト・インタフェース
21は、シミュレーション・バス手段3とホストI/O
バス手段56との間でデータを一時格納するFIFO(
ファーストイン・ファーストアウト)バッファを含む。 パケット・データがホスト・インタフェース21を通し
てホストから入ると、各シミュレーション・プロセサ2
は、そのデータをシミュレーション・バス手段3から取
り出す。パケット・データがホストへ送られると、ホス
ト・インタフェース21の制御ロジックは、制御ライン
3Bの内容によって、データ・ライン3Aのデータが、
ホストを対象としているかどうかを判定し、データをホ
スト5へ転送する。ホスト・インタフェース手段21で
は、ユーザが、ブロック記述アレイ22と現在状態アレ
イ23を、シミュレーションの初めに初期化し、シミュ
レーションの終わりに結果をテストできる。またシミュ
レーションの間に、シミュレーション・プロセサからの
ブロードキャスト・コマンドによって、現在状態アレイ
23の内容を受け取って変更を加え、シミュレーション
能力を高めることもできる。
ョン・プロセサ2は、ホスト5とシミュレーション・プ
ロセサ2との間でデータと命令を転送するためのホスト
・インタフェース21を含む。ホスト・インタフェース
21は、シミュレーション・バス手段3とホストI/O
バス手段56との間でデータを一時格納するFIFO(
ファーストイン・ファーストアウト)バッファを含む。 パケット・データがホスト・インタフェース21を通し
てホストから入ると、各シミュレーション・プロセサ2
は、そのデータをシミュレーション・バス手段3から取
り出す。パケット・データがホストへ送られると、ホス
ト・インタフェース21の制御ロジックは、制御ライン
3Bの内容によって、データ・ライン3Aのデータが、
ホストを対象としているかどうかを判定し、データをホ
スト5へ転送する。ホスト・インタフェース手段21で
は、ユーザが、ブロック記述アレイ22と現在状態アレ
イ23を、シミュレーションの初めに初期化し、シミュ
レーションの終わりに結果をテストできる。またシミュ
レーションの間に、シミュレーション・プロセサからの
ブロードキャスト・コマンドによって、現在状態アレイ
23の内容を受け取って変更を加え、シミュレーション
能力を高めることもできる。
【0032】図16により、ホスト・インタフェース2
1について説明する。ホスト・インタフェース21は、
制御ロジック手段91、シミュレーション/ホストFI
FOバッファ92、ホスト/シミュレーションFIFO
バッファ93、及びアドレス・デコーダ94を含む。シ
ミュレーション/ホストFIFOバッファ92は、シミ
ュレーション・バス手段3のデータ・ライン3Aからデ
ータを受け取って格納し、I/Oデータ・ライン57へ
送信する。ホスト/シミュレーションFIFOバッファ
93は、I/Oデータ・ライン57からデータを受け取
って格納し、シミュレーション・バス3のデータ・ライ
ン3Aへ転送する。アドレス・デコーダ94はI/Oア
ドレス・ライン58からアドレスを受け取る。制御ロジ
ック手段91は、シミュレーション・バス手段3の制御
ライン3BとI/Oバス56のI/O制御ライン59か
ら制御シグナルを受け取り、シミュレーション・プロセ
サ2からホスト5へ送信されるパケットのヘッダも受け
取る。制御手段91はまた、データ・ライン57を通し
て状態情報をホスト5へ送信する。
1について説明する。ホスト・インタフェース21は、
制御ロジック手段91、シミュレーション/ホストFI
FOバッファ92、ホスト/シミュレーションFIFO
バッファ93、及びアドレス・デコーダ94を含む。シ
ミュレーション/ホストFIFOバッファ92は、シミ
ュレーション・バス手段3のデータ・ライン3Aからデ
ータを受け取って格納し、I/Oデータ・ライン57へ
送信する。ホスト/シミュレーションFIFOバッファ
93は、I/Oデータ・ライン57からデータを受け取
って格納し、シミュレーション・バス3のデータ・ライ
ン3Aへ転送する。アドレス・デコーダ94はI/Oア
ドレス・ライン58からアドレスを受け取る。制御ロジ
ック手段91は、シミュレーション・バス手段3の制御
ライン3BとI/Oバス56のI/O制御ライン59か
ら制御シグナルを受け取り、シミュレーション・プロセ
サ2からホスト5へ送信されるパケットのヘッダも受け
取る。制御手段91はまた、データ・ライン57を通し
て状態情報をホスト5へ送信する。
【0033】図17に、ホスト5からシミュレーション
・バス手段3へデータを送信するホスト・インタフェー
ス21の動作を説明するフローチャートを示す。この動
作は、ホスト5がシミュレーションの前に命令とデータ
をシミュレーション・プロセサ2にロードするか、また
はシミュレーションの間にシミュレーション・プロセサ
2のデータに変更を加えるときに、ホスト・インタフェ
ース21によって実行される。図18に、シミュレーシ
ョン・プロセサ2からホスト5へデータを送信するホス
ト・インタフェース21の動作を説明するフローチャー
トを示す。この動作は、ブロードキャスト動作の間に、
データがシミュレーション・プロセサ2からホスト5へ
ブロードキャスト・コマンドによって送信されるときに
、ホスト・インタフェース21によって実行される。
・バス手段3へデータを送信するホスト・インタフェー
ス21の動作を説明するフローチャートを示す。この動
作は、ホスト5がシミュレーションの前に命令とデータ
をシミュレーション・プロセサ2にロードするか、また
はシミュレーションの間にシミュレーション・プロセサ
2のデータに変更を加えるときに、ホスト・インタフェ
ース21によって実行される。図18に、シミュレーシ
ョン・プロセサ2からホスト5へデータを送信するホス
ト・インタフェース21の動作を説明するフローチャー
トを示す。この動作は、ブロードキャスト動作の間に、
データがシミュレーション・プロセサ2からホスト5へ
ブロードキャスト・コマンドによって送信されるときに
、ホスト・インタフェース21によって実行される。
【0034】ここで図10、図11により、ロジック・
シミュレーション・マシン1によってシミュレートされ
るモデルのコンパイル方法について説明する。この方法
は、シミュレート対象のモデルの命令を、その前にホス
ト・コンピュータ5からシミュレーション・プロセサ2
にロードされる命令リストにおいて、“ラウンド・ロビ
ン”方式で各シミュレーション・プロセサに割り当てる
ステップから成る。命令リストでは、ブロック命令が第
1シミュレーション・プロセサからスタートして16番
目のプロセサに進み、第1プロセサに戻ってこのシーケ
ンスが繰り返される。この方法ではまた、プロセサに対
する同一の16の制御命令の組が、ブロック記述命令と
同じシーケンスで、命令リストのkx16(kは整数)
で始まるロケーションに挿入される。ただし16のブロ
ードキャスト・コマンドは、フィールドA1ないしA4
のアドレスが各々異なり、現在状態アレイ23から異な
るデータをフェッチする。最後の4つのブロードキャス
ト・コマンドはブロードキャスト終了コマンドである。 16はグループ(1、2、4、8、16)の最大数であ
り、ユーザはこのグループから、所要性能に応じて、ロ
ジック・シミュレーション・マシン1に装着するシミュ
レーション・プロセサ2の個数を選択できる。図10、
図11では、各シミュレーション・プロセサに対するブ
ロック記述命令が、第1プロセサを先頭に、16番目の
プロセサまで進み、それから第1プロセサに戻ってこの
シーケンスを繰り返すように配置される。同じ16の制
御命令の組は、0FF0(ブロードキャスト)及びFF
F0(ホールト)を先頭にして各ロケーションに置かれ
る。1サイクルにおける16の命令はすべて、最大構成
のシミュレーション・プロセサ2によって同時に実行さ
れるものである。したがって、同じサイクルのブロック
記述命令はすべて、同じランクでなければならない。新
しいロジック・ランクから始まるブロック記述命令は、
px16(pは整数)からスタートしなければならず、
パイプライン動作が採用される場合は、命令がフェッチ
されるときと、その出力が可能になるときの間の、パイ
プライン動作による遅延時間を吸収するために、新しい
ランクの最初のブロックの前にデッド・サイクルが挿入
される。もし演算結果の書き戻しを遅らせる場合、すな
わち演算結果がj番目のサイクルごとに現在状態アレイ
に書き戻される場合、新しいロジック・ランクは、jx
qx16(j及びqは整数)のロケーションから始めな
くてはならない。
シミュレーション・マシン1によってシミュレートされ
るモデルのコンパイル方法について説明する。この方法
は、シミュレート対象のモデルの命令を、その前にホス
ト・コンピュータ5からシミュレーション・プロセサ2
にロードされる命令リストにおいて、“ラウンド・ロビ
ン”方式で各シミュレーション・プロセサに割り当てる
ステップから成る。命令リストでは、ブロック命令が第
1シミュレーション・プロセサからスタートして16番
目のプロセサに進み、第1プロセサに戻ってこのシーケ
ンスが繰り返される。この方法ではまた、プロセサに対
する同一の16の制御命令の組が、ブロック記述命令と
同じシーケンスで、命令リストのkx16(kは整数)
で始まるロケーションに挿入される。ただし16のブロ
ードキャスト・コマンドは、フィールドA1ないしA4
のアドレスが各々異なり、現在状態アレイ23から異な
るデータをフェッチする。最後の4つのブロードキャス
ト・コマンドはブロードキャスト終了コマンドである。 16はグループ(1、2、4、8、16)の最大数であ
り、ユーザはこのグループから、所要性能に応じて、ロ
ジック・シミュレーション・マシン1に装着するシミュ
レーション・プロセサ2の個数を選択できる。図10、
図11では、各シミュレーション・プロセサに対するブ
ロック記述命令が、第1プロセサを先頭に、16番目の
プロセサまで進み、それから第1プロセサに戻ってこの
シーケンスを繰り返すように配置される。同じ16の制
御命令の組は、0FF0(ブロードキャスト)及びFF
F0(ホールト)を先頭にして各ロケーションに置かれ
る。1サイクルにおける16の命令はすべて、最大構成
のシミュレーション・プロセサ2によって同時に実行さ
れるものである。したがって、同じサイクルのブロック
記述命令はすべて、同じランクでなければならない。新
しいロジック・ランクから始まるブロック記述命令は、
px16(pは整数)からスタートしなければならず、
パイプライン動作が採用される場合は、命令がフェッチ
されるときと、その出力が可能になるときの間の、パイ
プライン動作による遅延時間を吸収するために、新しい
ランクの最初のブロックの前にデッド・サイクルが挿入
される。もし演算結果の書き戻しを遅らせる場合、すな
わち演算結果がj番目のサイクルごとに現在状態アレイ
に書き戻される場合、新しいロジック・ランクは、jx
qx16(j及びqは整数)のロケーションから始めな
くてはならない。
【0035】図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と通信する。
【0036】ホスト・コンピュータ5は、各シミュレー
ション・プロセサ2のブロック記述アレイ22に命令を
ロードするとき、I/Oバス56とホスト・インタフェ
ース21を通して、図10、図11の命令リストの命令
を上から下へシミュレーション・バス手段3に送る。各
シミュレーション・プロセサ2は順に命令を受け取って
ブロック記述アレイ22に格納する。したがって、図1
2に示すように、スロット手段0、1、...、15に
装着されたシミュレーション・プロセサ2は、ゲート0
、16、32、...、ゲート1、17、33、...
、及びゲート15、31、47、...に対するブロッ
ク記述命令を、各々のブロック記述アレイ22に連続的
に格納し、同じ制御命令を、ブロック記述アレイ22の
同じアドレスに格納する。
ション・プロセサ2のブロック記述アレイ22に命令を
ロードするとき、I/Oバス56とホスト・インタフェ
ース21を通して、図10、図11の命令リストの命令
を上から下へシミュレーション・バス手段3に送る。各
シミュレーション・プロセサ2は順に命令を受け取って
ブロック記述アレイ22に格納する。したがって、図1
2に示すように、スロット手段0、1、...、15に
装着されたシミュレーション・プロセサ2は、ゲート0
、16、32、...、ゲート1、17、33、...
、及びゲート15、31、47、...に対するブロッ
ク記述命令を、各々のブロック記述アレイ22に連続的
に格納し、同じ制御命令を、ブロック記述アレイ22の
同じアドレスに格納する。
【0037】ここでまた図1、図2、及び図3に戻るが
、ホスト・コンピュータ5は、マシン1によってシミュ
レートされたモデル全体の同じ初期状態を、各シミュレ
ーション・プロセサ2の現在状態アレイ23にロードす
る。このマシン1の場合、各シミュレーション・プロセ
サ2の現在状態アレイ23は、シミュレーションの間に
、シミュレートされたモデル全体の現在状態の完全なコ
ピーを維持する(後述)。ホスト・コンピュータはまた
、同じ関数データを、論理関数テーブル24にロードす
る。
、ホスト・コンピュータ5は、マシン1によってシミュ
レートされたモデル全体の同じ初期状態を、各シミュレ
ーション・プロセサ2の現在状態アレイ23にロードす
る。このマシン1の場合、各シミュレーション・プロセ
サ2の現在状態アレイ23は、シミュレーションの間に
、シミュレートされたモデル全体の現在状態の完全なコ
ピーを維持する(後述)。ホスト・コンピュータはまた
、同じ関数データを、論理関数テーブル24にロードす
る。
【0038】このロード動作では、ホスト・インタフェ
ース21が、ホストから、I/Oバス56を通して、デ
ータまたは命令を受け取り、ホスト/シミュレーション
FIFOバッファ93に格納し、これらのデータまたは
命令をミュレーション・バス手段3に送出する(図17
のフローチャート参照)。すなわち、制御ロジック91
は、ホスト5がデータをマシン1に書き込んでいるかど
うかを調べる。書き込んでいる場合、ロジック91はデ
ータをFIFOバッファ93に格納し、ポインタを更新
する。ロジック91はまた、データがFIFOバッファ
93にあるかどうかを調べる。ある場合、ロジック91
はシミュレーション・バスの占有を要求する。占有され
ると、FIFOバッファ93が、シミュレーション・バ
ス手段3にデータを送出し、FIFO93の最後のデー
タがバス3に送出されるまでポインタを更新する。
ース21が、ホストから、I/Oバス56を通して、デ
ータまたは命令を受け取り、ホスト/シミュレーション
FIFOバッファ93に格納し、これらのデータまたは
命令をミュレーション・バス手段3に送出する(図17
のフローチャート参照)。すなわち、制御ロジック91
は、ホスト5がデータをマシン1に書き込んでいるかど
うかを調べる。書き込んでいる場合、ロジック91はデ
ータをFIFOバッファ93に格納し、ポインタを更新
する。ロジック91はまた、データがFIFOバッファ
93にあるかどうかを調べる。ある場合、ロジック91
はシミュレーション・バスの占有を要求する。占有され
ると、FIFOバッファ93が、シミュレーション・バ
ス手段3にデータを送出し、FIFO93の最後のデー
タがバス3に送出されるまでポインタを更新する。
【0039】シミュレーションには動作と停止の2つの
モードがある。動作モードでは、各シミュレーション・
プロセサ2がそのブロック記述アレイ22を連続的にた
どり、ブロック記述アレイ22に組み込まれるか、また
はホスト・コンピュータ5から送られ得るコマンドを受
け取るまで、各ゲートの次の状態を評価する。停止モー
ドでは、シミュレーションは行われず、現在状態アレイ
23とブロック記述アレイ22を含むロジック・シミュ
レーション・マシン1全体の状態は、ホスト・コンピュ
ータ5による検査と訂正に使用できる。
モードがある。動作モードでは、各シミュレーション・
プロセサ2がそのブロック記述アレイ22を連続的にた
どり、ブロック記述アレイ22に組み込まれるか、また
はホスト・コンピュータ5から送られ得るコマンドを受
け取るまで、各ゲートの次の状態を評価する。停止モー
ドでは、シミュレーションは行われず、現在状態アレイ
23とブロック記述アレイ22を含むロジック・シミュ
レーション・マシン1全体の状態は、ホスト・コンピュ
ータ5による検査と訂正に使用できる。
【0040】動作モードのとき、このロジック・シミュ
レーション・マシン1では、16のシミュレーション・
プロセサ2が1つのシミュレーション・モデルを処理し
、シミュレーションを高速化できる。並列構成の場合、
各シミュレーション・プロセサ2は1サイクルに1ゲー
トを評価する。サイクルの終わりに、各シミュレーショ
ン・プロセサ2が、その結果を、データ・ライン3Aの
割当ラインに並列に送出し、すべてのシミュレーション
・プロセサ2が、データ・ライン3Aからの結果で各々
の現在状態アレイ23を更新する。
レーション・マシン1では、16のシミュレーション・
プロセサ2が1つのシミュレーション・モデルを処理し
、シミュレーションを高速化できる。並列構成の場合、
各シミュレーション・プロセサ2は1サイクルに1ゲー
トを評価する。サイクルの終わりに、各シミュレーショ
ン・プロセサ2が、その結果を、データ・ライン3Aの
割当ラインに並列に送出し、すべてのシミュレーション
・プロセサ2が、データ・ライン3Aからの結果で各々
の現在状態アレイ23を更新する。
【0041】動作モードのサイクルごとに、シミュレー
ション・バス手段3に装着された各シミュレーション・
プロセサ2において、ブロック記述アレイ22からホー
ルト・コマンドが検出されるか、またはホスト・コンピ
ュータ5がシミュレーションを停止するまで、以下のス
テップが同期して実行される。
ション・バス手段3に装着された各シミュレーション・
プロセサ2において、ブロック記述アレイ22からホー
ルト・コマンドが検出されるか、またはホスト・コンピ
ュータ5がシミュレーションを停止するまで、以下のス
テップが同期して実行される。
【0042】制御ロジック手段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
内のアドレスに対応する。
【0043】アドレスA1ないしA4は、マルチプレク
サ62を通してアレイ23に引き渡される。評価された
ゲートに対する入力オペランドである4つの2ビットの
現在状態は、フィールドA1ないしA4によって指定さ
れたアドレスから同時にフェッチされる。これらの入力
オペランドは、論理関数テーブル24における演算の前
に、OPコードによって指示されていればオペランドが
反転されるように、オペランド反転ロジック手段63に
送られる。
サ62を通してアレイ23に引き渡される。評価された
ゲートに対する入力オペランドである4つの2ビットの
現在状態は、フィールドA1ないしA4によって指定さ
れたアドレスから同時にフェッチされる。これらの入力
オペランドは、論理関数テーブル24における演算の前
に、OPコードによって指示されていればオペランドが
反転されるように、オペランド反転ロジック手段63に
送られる。
【0044】評価されたゲートに対する入力オペランド
は論理関数テーブル24に送られる。この情報は、ラッ
チ61からの、ゲートの関数を記述したOPコード・フ
ィールドの関数ポインタとともに、論理関数テーブル2
4へのポインタとして用いられる。論理関数テーブル2
4は、基本的にはルックアップ・テーブルであり、その
入力が現在与えられていれば、ゲートに対して正規の2
ビット出力値を生成する。
は論理関数テーブル24に送られる。この情報は、ラッ
チ61からの、ゲートの関数を記述したOPコード・フ
ィールドの関数ポインタとともに、論理関数テーブル2
4へのポインタとして用いられる。論理関数テーブル2
4は、基本的にはルックアップ・テーブルであり、その
入力が現在与えられていれば、ゲートに対して正規の2
ビット出力値を生成する。
【0045】論理関数テーブル24の出力は、OPコー
ドによって指示されていれば出力が反転されるように、
出力反転ロジック66に送られる。出力反転ロジック手
段66からの結果は、出力手段25に供給され、マシン
1の現在状態アレイ23をすべてその結果で更新するた
めに、データ・ライン3Aの割当ラインに送出される。
ドによって指示されていれば出力が反転されるように、
出力反転ロジック66に送られる。出力反転ロジック手
段66からの結果は、出力手段25に供給され、マシン
1の現在状態アレイ23をすべてその結果で更新するた
めに、データ・ライン3Aの割当ラインに送出される。
【0046】たとえば、図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が更新される。
【0047】先にも述べたように、スロット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を通して結果を受け取ることができる(後述
)。
、...、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を通して結果を受け取ることができる(後述
)。
【0048】シミュレーション・プロセサ2がブランチ
、ブロードキャスト、ホールトなどの制御命令を実行す
るとき、すべてのシミュレーション・プロセサ2におい
て、同一の制御命令が同時に実行され、シミュレーショ
ンの同期が正しくとられる。たとえばブランチは、1度
に、すべてのシミュレーション・プロセサ2にわたって
同一のものとして解釈される。
、ブロードキャスト、ホールトなどの制御命令を実行す
るとき、すべてのシミュレーション・プロセサ2におい
て、同一の制御命令が同時に実行され、シミュレーショ
ンの同期が正しくとられる。たとえばブランチは、1度
に、すべてのシミュレーション・プロセサ2にわたって
同一のものとして解釈される。
【0049】図19に示すとおり、マシン1のプロセサ
2によって実行される16のブロードキャスト・コマン
ドでは、データをデータ・ライン3Aに送出するのに4
シミュレーション・サイクルかかる。これは4つのブロ
ードキャスト・コマンドしか、データをデータ・ライン
に並列に、1度に送出できないからである。ブロードキ
ャスト・コマンドは、ブロック記述アレイ22からフェ
ッチされ、各シミュレーション・プロセサ2で実行され
る。各ブロードキャスト・コマンドは、4つの2ビット
・データを、ブロック記述命令と同じように、フィール
ドA1ないしA4のアドレスによって指示された現在状
態アレイ23からフェッチする。アレイ23からの4つ
のオペランドは、ホスト5へ送る前に、オペランド反転
ロジック手段32で反転ビットによって反転できる。4
ブロードキャスト・サイクルの第1サイクルでは、スロ
ット手段0、1、2、3に装着されたシミュレーション
・プロセサ2によって実行されたブロードキャスト・コ
マンドが、現在状態アレイ23からの8ビット・データ
をデータ・ライン0ないし7、8ないし15、16ない
し23、及び24ないし31に送出するように、すべて
のシミュレーション・プロセサ2の制御ロジック27が
、クロック・ライン81を通してクロック・シグナル(
0、0)をそのバス駆動手段80(図15)へ送る。 4ブロードキャスト・サイクルの第2サイクルでは、ス
ロット手段4、5、6、7のプロセサ2によって実行さ
れたブロードキャスト・コマンドが、8ビット・データ
をデータ・ライン0ないし7、8ないし15、16ない
し23、及び24ないし31に送出するように、制御ロ
ジック27がクロック・シグナル(0、1)をバス駆動
手段80に送る。4ブロードキャスト・サイクルの第3
サイクルでは、スロット手段8、9、10、11に装着
されたプロセサ2で実行されたブロードキャスト・コマ
ンドが、8ビット・データをデータ・ライン0ないし7
、8ないし15、16ないし23、及び24ないし31
に送出するように、クロック・シグナル(1、0)をバ
ス駆動手段80に送る。4ブロードキャスト・サイクル
の第4サイクルでは、ブロードキャスト終了コマンドで
り、スロット手段12、13、14、15に装着された
プロセサによって実行されたブロードキャスト・コマン
ドが、データ・ライン0ないし7、8ないし15、16
ないし23、及び24ないし31に8ビット・データを
送出するように、クロック・シグナル(1、1)をバス
駆動手段80に送信する。
2によって実行される16のブロードキャスト・コマン
ドでは、データをデータ・ライン3Aに送出するのに4
シミュレーション・サイクルかかる。これは4つのブロ
ードキャスト・コマンドしか、データをデータ・ライン
に並列に、1度に送出できないからである。ブロードキ
ャスト・コマンドは、ブロック記述アレイ22からフェ
ッチされ、各シミュレーション・プロセサ2で実行され
る。各ブロードキャスト・コマンドは、4つの2ビット
・データを、ブロック記述命令と同じように、フィール
ドA1ないしA4のアドレスによって指示された現在状
態アレイ23からフェッチする。アレイ23からの4つ
のオペランドは、ホスト5へ送る前に、オペランド反転
ロジック手段32で反転ビットによって反転できる。4
ブロードキャスト・サイクルの第1サイクルでは、スロ
ット手段0、1、2、3に装着されたシミュレーション
・プロセサ2によって実行されたブロードキャスト・コ
マンドが、現在状態アレイ23からの8ビット・データ
をデータ・ライン0ないし7、8ないし15、16ない
し23、及び24ないし31に送出するように、すべて
のシミュレーション・プロセサ2の制御ロジック27が
、クロック・ライン81を通してクロック・シグナル(
0、0)をそのバス駆動手段80(図15)へ送る。 4ブロードキャスト・サイクルの第2サイクルでは、ス
ロット手段4、5、6、7のプロセサ2によって実行さ
れたブロードキャスト・コマンドが、8ビット・データ
をデータ・ライン0ないし7、8ないし15、16ない
し23、及び24ないし31に送出するように、制御ロ
ジック27がクロック・シグナル(0、1)をバス駆動
手段80に送る。4ブロードキャスト・サイクルの第3
サイクルでは、スロット手段8、9、10、11に装着
されたプロセサ2で実行されたブロードキャスト・コマ
ンドが、8ビット・データをデータ・ライン0ないし7
、8ないし15、16ないし23、及び24ないし31
に送出するように、クロック・シグナル(1、0)をバ
ス駆動手段80に送る。4ブロードキャスト・サイクル
の第4サイクルでは、ブロードキャスト終了コマンドで
り、スロット手段12、13、14、15に装着された
プロセサによって実行されたブロードキャスト・コマン
ドが、データ・ライン0ないし7、8ないし15、16
ないし23、及び24ないし31に8ビット・データを
送出するように、クロック・シグナル(1、1)をバス
駆動手段80に送信する。
【0050】このように、ブロードキャスト・コマンド
はデータを現在状態アレイ23からホスト5へ送信する
。現在状態アレイ23内のノードからの2ビットは、各
シミュレーション・プロセサ2において8ビット・バイ
トに連接される。ブロードキャスト・コマンドは常に4
個1組として存在し、ホスト5へ送られる32ビット・
ワードが生成される。ブロック記述アレイ22に存在す
る4つのブロードキャスト・コマンドの複数の組は、任
意の個数のデータ・パケットを生成できる。現在状態ア
レイ23のノードはどれも、それをアドレスで指し示す
ことによってパケットに導入できる。これにより、現在
状態アレイのデータの任意の組み合わせをパケットにお
いて連結し、ホストへ送信できる。ブロードキャスト・
コマンドの反転ビットは有効なので、ノード・データは
、パケットに組み込まれる前に反転できる。
はデータを現在状態アレイ23からホスト5へ送信する
。現在状態アレイ23内のノードからの2ビットは、各
シミュレーション・プロセサ2において8ビット・バイ
トに連接される。ブロードキャスト・コマンドは常に4
個1組として存在し、ホスト5へ送られる32ビット・
ワードが生成される。ブロック記述アレイ22に存在す
る4つのブロードキャスト・コマンドの複数の組は、任
意の個数のデータ・パケットを生成できる。現在状態ア
レイ23のノードはどれも、それをアドレスで指し示す
ことによってパケットに導入できる。これにより、現在
状態アレイのデータの任意の組み合わせをパケットにお
いて連結し、ホストへ送信できる。ブロードキャスト・
コマンドの反転ビットは有効なので、ノード・データは
、パケットに組み込まれる前に反転できる。
【0051】図18に示すとおり、ホスト・インタフェ
ース21は、データ・ライン3Aのパケットを受け取り
、シミュレーション/ホストFIFOバッファ92にパ
ケットを格納して、パケットのヘッダがホストのデステ
ィネーションを示していればポインタを更新してパケッ
トをホストを送信する。ホスト・インタフェース21は
、制御ラインにおいてパケットの終わりが示されるまで
後続のデータをすべて格納する。データはホスト・イン
タフェース21によって、FIFOバッファ92からホ
スト5へ、I/Oバス56を通して送信され、マシン1
から読み出される。ホスト・インタフェース21はまた
、シミュレーション・マシン1が動作しているかどうか
を示す状態データを、ホストがその状態を要求したとき
に、I/Oバスを通して送信する。
ース21は、データ・ライン3Aのパケットを受け取り
、シミュレーション/ホストFIFOバッファ92にパ
ケットを格納して、パケットのヘッダがホストのデステ
ィネーションを示していればポインタを更新してパケッ
トをホストを送信する。ホスト・インタフェース21は
、制御ラインにおいてパケットの終わりが示されるまで
後続のデータをすべて格納する。データはホスト・イン
タフェース21によって、FIFOバッファ92からホ
スト5へ、I/Oバス56を通して送信され、マシン1
から読み出される。ホスト・インタフェース21はまた
、シミュレーション・マシン1が動作しているかどうか
を示す状態データを、ホストがその状態を要求したとき
に、I/Oバスを通して送信する。
【0052】ブロードキャスト・コマンドを対象にした
用途例を2つ挙げる。1つはRAMアレイ・パケットで
ある。ホスト5は、シミュレーションの際にRAMアレ
イの処理を実行する。もう1つはトレース・データであ
る。シミュレーションの間のホストのインタラクション
を少なくするために、ユーザがトレースしたいデータが
、各サイクルの終わりにパケットとしてホストへ送信さ
れる。
用途例を2つ挙げる。1つはRAMアレイ・パケットで
ある。ホスト5は、シミュレーションの際にRAMアレ
イの処理を実行する。もう1つはトレース・データであ
る。シミュレーションの間のホストのインタラクション
を少なくするために、ユーザがトレースしたいデータが
、各サイクルの終わりにパケットとしてホストへ送信さ
れる。
【0053】ブロードキャスト・コマンドは、ホストが
データを直接取得する場合に比べて2つのメリットがあ
る。現在状態アレイ23内の異なるアドレスからのノー
ドは効率よく収集できる。直接アクセス・モードの場合
、ホストは隣接するノードを効率よく取得できるにすぎ
ない。ファシリティのノードが分散している場合(ノー
ドが異なるランクで生成される場合に必要)、ホストが
必要なデータを累算するのに数サイクルかかる。ブロー
ドキャスト・コマンドを使用した場合、ノードを任意の
パターンで収集するのに何の不都合も生じない。さらに
、ホストを待つ時間が短縮される。マシンは、FIFO
バッファが一杯であればホストを待つことになるが、最
後のデータがFIFOに格納されればすぐにシミュレー
ションを再開できる。
データを直接取得する場合に比べて2つのメリットがあ
る。現在状態アレイ23内の異なるアドレスからのノー
ドは効率よく収集できる。直接アクセス・モードの場合
、ホストは隣接するノードを効率よく取得できるにすぎ
ない。ファシリティのノードが分散している場合(ノー
ドが異なるランクで生成される場合に必要)、ホストが
必要なデータを累算するのに数サイクルかかる。ブロー
ドキャスト・コマンドを使用した場合、ノードを任意の
パターンで収集するのに何の不都合も生じない。さらに
、ホストを待つ時間が短縮される。マシンは、FIFO
バッファが一杯であればホストを待つことになるが、最
後のデータがFIFOに格納されればすぐにシミュレー
ションを再開できる。
【0054】ブロードキャスト・コマンドは、ホストが
あたかも唯一のデータ送信先であるかのように提供され
ている。ブロードキャスト・コマンドは、実際には、デ
ータをシミュレーション・バス手段3に送出するだけで
ある。最終のデスティネーションはハードウェア構成に
よって決まる。たとえばアレイ管理機能を実行している
補助プロセサがあった場合、RAMアレイ・パケットは
、ホストではなく補助プロセサへ送られる。シミュレー
ション・プロセサ2は関知しない。プロセサ2はバス上
でパケットを構成するだけである。最終デスティネーシ
ョンは、パケットのデスティネーション(ホスト5また
は補助プロセサ4)を示すパケット・ヘッダを構成する
バス手段3のハードウェアによって処理される。パケッ
ト・ヘッダがデスティネーションとして補助プロセサを
示しているなら、ホスト・インタフェース21はパケッ
トを受け取らない。代わりに補助プロセサがパケットを
受け取る。
あたかも唯一のデータ送信先であるかのように提供され
ている。ブロードキャスト・コマンドは、実際には、デ
ータをシミュレーション・バス手段3に送出するだけで
ある。最終のデスティネーションはハードウェア構成に
よって決まる。たとえばアレイ管理機能を実行している
補助プロセサがあった場合、RAMアレイ・パケットは
、ホストではなく補助プロセサへ送られる。シミュレー
ション・プロセサ2は関知しない。プロセサ2はバス上
でパケットを構成するだけである。最終デスティネーシ
ョンは、パケットのデスティネーション(ホスト5また
は補助プロセサ4)を示すパケット・ヘッダを構成する
バス手段3のハードウェアによって処理される。パケッ
ト・ヘッダがデスティネーションとして補助プロセサを
示しているなら、ホスト・インタフェース21はパケッ
トを受け取らない。代わりに補助プロセサがパケットを
受け取る。
【0055】このマシン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つのエンテ
ィティとなる。
【0056】もし16のシミュレーション・プロセサで
はなく4つのシミュレーション・プロセサ2がシミュレ
ーション・バス手段3に接続されれば、4つのシミュレ
ーション・プロセサ2は、スロット0、1、2、3に装
着され、各々、構成ライン3Cから一意のデータを受け
取る。各シミュレーション・プロセサ2のブロック記述
アレイ22に命令がロードされる際、各シミュレーショ
ン・プロセサ2は順に命令を受け取ってブロック記述ア
レイ22に格納する(図13)。
はなく4つのシミュレーション・プロセサ2がシミュレ
ーション・バス手段3に接続されれば、4つのシミュレ
ーション・プロセサ2は、スロット0、1、2、3に装
着され、各々、構成ライン3Cから一意のデータを受け
取る。各シミュレーション・プロセサ2のブロック記述
アレイ22に命令がロードされる際、各シミュレーショ
ン・プロセサ2は順に命令を受け取ってブロック記述ア
レイ22に格納する(図13)。
【0057】この構成では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シミュレーション・サイ
クルである。
ルで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シミュレーション・サイ
クルである。
【0058】図13のような4プロセサ構成では、各ブ
ロック記述アレイ22の隣接した4つのアドレスに同一
の制御命令が4つ置かれる。プロセサ2の各制御ロジッ
ク手段27は、4つの同一の制御命令のうち第1のブラ
ンチ制御命令またはホールト制御命令を実行し、他の3
つの同一かつ冗長な制御命令は無視する。4つのブラン
チ・コマンドまたはホールト・コマンドの内容が同じだ
からである。
ロック記述アレイ22の隣接した4つのアドレスに同一
の制御命令が4つ置かれる。プロセサ2の各制御ロジッ
ク手段27は、4つの同一の制御命令のうち第1のブラ
ンチ制御命令またはホールト制御命令を実行し、他の3
つの同一かつ冗長な制御命令は無視する。4つのブラン
チ・コマンドまたはホールト・コマンドの内容が同じだ
からである。
【0059】ただし、図20に示すように、16のブロ
ードキャスト命令はすべてプロセサ2によって実行され
る。これは、16のブロードキャスト・コマンドは各々
、アレイ23からホスト5にデータを転送するための、
フィールドA1ないしA4のアドレスが異なるからであ
る。データを送信するのに4サイクルかかる。制御ロジ
ック27は、スロット手段0ないし3に装着されたプロ
セサ2が、4サイクルの終わりごとにライン0ないし3
1にデータを送出するように、4サイクルの間に、クロ
ック・ライン81を通してクロック・シグナル(0、0
)をバス駆動手段80へ送信する(図15)。 バス3に8つのプロセサ2が接続されていれば、16の
ブロードキャスト・コマンドを実行するのにも4サイク
ルかかり、制御ロジック27は、スロット0ないし3及
び4ないし7に装着されたプロセサがライン3Aにデー
タを交互に送出するように、4サイクルの間にクロック
・シグナル(0、0と(0、1)をバス駆動手段80に
交互に送信する。
ードキャスト命令はすべてプロセサ2によって実行され
る。これは、16のブロードキャスト・コマンドは各々
、アレイ23からホスト5にデータを転送するための、
フィールドA1ないしA4のアドレスが異なるからであ
る。データを送信するのに4サイクルかかる。制御ロジ
ック27は、スロット手段0ないし3に装着されたプロ
セサ2が、4サイクルの終わりごとにライン0ないし3
1にデータを送出するように、4サイクルの間に、クロ
ック・ライン81を通してクロック・シグナル(0、0
)をバス駆動手段80へ送信する(図15)。 バス3に8つのプロセサ2が接続されていれば、16の
ブロードキャスト・コマンドを実行するのにも4サイク
ルかかり、制御ロジック27は、スロット0ないし3及
び4ないし7に装着されたプロセサがライン3Aにデー
タを交互に送出するように、4サイクルの間にクロック
・シグナル(0、0と(0、1)をバス駆動手段80に
交互に送信する。
【0060】マシン1は、シミュレーション・プロセサ
数をソフトウェアに対してトランスペアレントにする。 つまり、アーキテクチャとしては16のブロック記述命
令が常に同時に実行される。これには、実際にはシミュ
レーション・プロセサ数に応じて1、2、4、8、また
は16のサイクルがかかるが、違いはソフトウェアから
は見えない。ホスト・コンピュータが、ロードその他の
ために、シミュレーション・プロセサのブロック記述ア
レイをアクセスするとき、ホスト・コンピュータが認識
するのは1組の命令にすぎない。シミュレーション・プ
ロセサのハードウェアは、ホストのアクセスを、複数の
カード上の異なるアレイへ向けることができるが、ホス
トはこれを認識しない。シミュレートされるロジック・
モデルが、最大構成のロジック・シミュレーション・マ
シンを対象に形成される場合、このモデルは、何ら変更
を加えることなく、より小規模な構成で動作する。この
考え方から、同じモデルを多くのハードウェア構成で使
用できる。ホストは、構成を認識する必要はなく、構成
にかかわらず、すべてのホスト・データをI/Oバスに
送信するだけでよい。この意味は大きい。それは特に、
この例のアーキテクチャによれば、ユーザが、所要性能
を得るために、ロジック・シミュレーション・マシンを
いつでも再構成できるからである。
数をソフトウェアに対してトランスペアレントにする。 つまり、アーキテクチャとしては16のブロック記述命
令が常に同時に実行される。これには、実際にはシミュ
レーション・プロセサ数に応じて1、2、4、8、また
は16のサイクルがかかるが、違いはソフトウェアから
は見えない。ホスト・コンピュータが、ロードその他の
ために、シミュレーション・プロセサのブロック記述ア
レイをアクセスするとき、ホスト・コンピュータが認識
するのは1組の命令にすぎない。シミュレーション・プ
ロセサのハードウェアは、ホストのアクセスを、複数の
カード上の異なるアレイへ向けることができるが、ホス
トはこれを認識しない。シミュレートされるロジック・
モデルが、最大構成のロジック・シミュレーション・マ
シンを対象に形成される場合、このモデルは、何ら変更
を加えることなく、より小規模な構成で動作する。この
考え方から、同じモデルを多くのハードウェア構成で使
用できる。ホストは、構成を認識する必要はなく、構成
にかかわらず、すべてのホスト・データをI/Oバスに
送信するだけでよい。この意味は大きい。それは特に、
この例のアーキテクチャによれば、ユーザが、所要性能
を得るために、ロジック・シミュレーション・マシンを
いつでも再構成できるからである。
【0061】シミュレーション・プロセサ2は、シミュ
レーションの際に、通常はゲート・ロジックだけをシミ
ュレートするために用いられ、メモリやアレイのモデリ
ング、デバイス動作などの機能は、ホスト・コンピュー
タ5によって実行される。ただし図1、図2のマシン1
では、ホスト・コンピュータ5との間のデータはすべて
シミュレーション・バス手段3に送られ、ホストは、バ
ス3上のもう1つのデバイスでしかなくなる。これは、
シミュレーション・バス手段3に、シミュレーション・
プロセサ2と並列に装着されたハードウェアのアクセラ
レータまたは補助プロセサによって、シミュレーション
・バス3のトラフィックを模倣することによって、どの
ようなホスト機能も実行できることを意味する。トレー
ス収集、メモリやアレイのシミュレーション、及びデバ
イス動作が、ハードウェアのアクセラレータまたは補助
プロセサの対象となることは明らかである。このような
操作の場合は、ホストのシミュレーション・スループッ
トが低下する。実際に、こうしたホストの負担を軽減す
るために、ユーザ・インタフェースを除くすべての機能
を補助プロセサに移植することもできる。補助プロセサ
4は、このような補助プロセサであり、ブロードキャス
ト・コマンドによってシミュレーション・バス3に送出
されたデータを受け取って、かかるホスト機能を実行で
きる。
レーションの際に、通常はゲート・ロジックだけをシミ
ュレートするために用いられ、メモリやアレイのモデリ
ング、デバイス動作などの機能は、ホスト・コンピュー
タ5によって実行される。ただし図1、図2のマシン1
では、ホスト・コンピュータ5との間のデータはすべて
シミュレーション・バス手段3に送られ、ホストは、バ
ス3上のもう1つのデバイスでしかなくなる。これは、
シミュレーション・バス手段3に、シミュレーション・
プロセサ2と並列に装着されたハードウェアのアクセラ
レータまたは補助プロセサによって、シミュレーション
・バス3のトラフィックを模倣することによって、どの
ようなホスト機能も実行できることを意味する。トレー
ス収集、メモリやアレイのシミュレーション、及びデバ
イス動作が、ハードウェアのアクセラレータまたは補助
プロセサの対象となることは明らかである。このような
操作の場合は、ホストのシミュレーション・スループッ
トが低下する。実際に、こうしたホストの負担を軽減す
るために、ユーザ・インタフェースを除くすべての機能
を補助プロセサに移植することもできる。補助プロセサ
4は、このような補助プロセサであり、ブロードキャス
ト・コマンドによってシミュレーション・バス3に送出
されたデータを受け取って、かかるホスト機能を実行で
きる。
【0062】図1、図2のロジック・シミュレーション
・マシンの場合、シミュレーション・バス手段に接続さ
れるシミュレーション・プロセサの数は2n であるが
、この発明の方法は、任意の個数のシミュレーション・
プロセサを含むロジック・シミュレーション・マシンに
使用できる。
・マシンの場合、シミュレーション・バス手段に接続さ
れるシミュレーション・プロセサの数は2n であるが
、この発明の方法は、任意の個数のシミュレーション・
プロセサを含むロジック・シミュレーション・マシンに
使用できる。
【0063】
【発明の効果】この発明によれば、シミュレーション・
バス手段上のデータを、ホスト・コンピュータとのイン
タラクションなしに、ホスト・コンピュータまたは、ホ
ストに代わってホストのタスクを実行する補助プロセサ
がシミュレーション・バス手段を通して受け取ることが
できる。従って、ホストの負担を軽減し、シミュレーシ
ョンの高速化を図ることができる。
バス手段上のデータを、ホスト・コンピュータとのイン
タラクションなしに、ホスト・コンピュータまたは、ホ
ストに代わってホストのタスクを実行する補助プロセサ
がシミュレーション・バス手段を通して受け取ることが
できる。従って、ホストの負担を軽減し、シミュレーシ
ョンの高速化を図ることができる。
【図1】この発明の実施例に従った方法を採用したロジ
ック・シミュレーション・マシンの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】図1、図2のマシンによってシミュレートさ
れたモデルのコンパイル方法を説明する命令リストの図
である。
れたモデルのコンパイル方法を説明する命令リストの図
である。
【図12】マシン動作を説明するために、図1、図2の
マシンのシミュレーション・プロセサのブロック記述ア
レイを簡略化した図である。
マシンのシミュレーション・プロセサのブロック記述ア
レイを簡略化した図である。
【図13】別構成のロジック・シミュレーション・マシ
ンのブロック記述アレイを簡略化した図である。
ンのブロック記述アレイを簡略化した図である。
【図14】この発明の実施例に従った方法によって用い
られるブロードキャスト・コマンドを説明する図である
。
られるブロードキャスト・コマンドを説明する図である
。
【図15】シミュレーション・プロセサからのデータを
シミュレーション・バス手段に送出してホスト・コンピ
ュータに送信するために、ブロードキャスト・コマンド
によって用いられるバス駆動手段のブロック図である。
シミュレーション・バス手段に送出してホスト・コンピ
ュータに送信するために、ブロードキャスト・コマンド
によって用いられるバス駆動手段のブロック図である。
【図16】図3のシミュレーション・プロセサのホスト
・インタフェースのブロック図である。
・インタフェースのブロック図である。
【図17】図16のホスト・インタフェースの動作を説
明するフローチャートの図である。
明するフローチャートの図である。
【図18】図16のホスト・インタフェースの動作を説
明するフローチャートの図である。
明するフローチャートの図である。
【図19】ゲートの評価とブロードキャストの動作の間
に、図1、図2のロジック・シミュレーション・マシン
がシミュレーション・バス手段にデータを送出する方法
を説明する図である。
に、図1、図2のロジック・シミュレーション・マシン
がシミュレーション・バス手段にデータを送出する方法
を説明する図である。
【図20】ゲートの評価とブロードキャストの動作の間
に、別構成のロジック・シミュレーション・マシンがシ
ミュレーション・バス手段にデータを送出する方法を説
明する図である。
に、別構成のロジック・シミュレーション・マシンがシ
ミュレーション・バス手段にデータを送出する方法を説
明する図である。
Claims (28)
- 【請求項1】第1メモリ手段、第2メモリ手段、及びシ
ミュレーション・バス手段を含むロジック・シミュレー
ション・マシンからホスト・コンピュータへデータを送
信する方法であって、上記第2メモリ手段からデータを
フェッチするために、上記第1メモリ手段のコマンドを
格納するステップと、上記コマンドによって指示された
上記データを上記第2メモリ手段からフェッチするステ
ップと、フェッチされた上記データを上記ホスト・コン
ピュータに送るために上記シミュレーション・バス手段
に送出するステップとを含む、データ送信方法。 - 【請求項2】請求項1に記載の方法であって、上記第2
メモリ手段からフェッチされる複数のデータを示す複数
のアドレスをコマンドに格納するステップと、フェッチ
された上記複数のデータをシミュレーションバス手段に
並列に送出するステップとを含む、データ送信方法。 - 【請求項3】請求項2に記載の方法であって、各ユニッ
トが同一のデータを格納する複数の第2メモリ・ユニッ
トが上記第2メモリ手段に含まれ、上記コマンド内の複
数のアドレスの各々によって指示されたデータを上記第
2メモリ・ユニットの各々から1度にフェッチするステ
ップを含む、データ送信方法。 - 【請求項4】請求項3に記載の方法であって、上記シミ
ュレーション・バス手段に複数のデータ・ラインが含ま
れ、上記第2メモリ・ユニットの各々からフェッチされ
た上記データを送出するために、該第2メモリ・ユニッ
トの各々に上記データ・ラインを割り当てるステップを
含む、データ送信方法。 - 【請求項5】請求項1に記載の方法であって、上記ホス
ト・コンピュータに代わってタスクを実行するために、
上記シミュレーション・バス手段に接続された補助プロ
セサが上記ロジック・シミュレーション・マシンに含ま
れ、上記シミュレーション・バス手段を通して上記補助
プロセサへデータを送信するステップを含む、データ送
信方法。 - 【請求項6】請求項1に記載の方法であって、送信され
る上記データの終わりを示す命令が上記コマンドに含ま
れる、データ送信方法。 - 【請求項7】請求項1に記載の方法であって、フェッチ
された上記データを上記シミュレーション・バス手段に
送出する前に反転する命令が上記コマンドに含まれる、
データ送信方法。 - 【請求項8】各シミュレーション・プロセサが第1メモ
リ手段と第2メモリ手段とを備えた複数のシミュレーシ
ョン・プロセサと、ホスト・コンピュータに接続された
シミュレーション・バス手段とを含むロジック・シミュ
レーション・マシンから、該ホスト・コンピュータへデ
ータを送信する方法であって、上記プロセサの各々の上
記第2メモリ手段からデータをフェッチするコマンドを
上記第1メモリ手段に格納するステップと、上記プロセ
サの各々の上記コマンドによって指示されたデータを上
記第2メモリ手段からフェッチするステップと、フェッ
チされた上記データを上記プロセサの各々によって上記
シミュレーション・バス手段に送出するステップとを含
む、データ送信方法。 - 【請求項9】請求項8に記載の方法であって、上記シミ
ュレーション・バス手段に複数のデータ・ラインが含ま
れ、フェッチされた上記データを送出するために、上記
各シミュレーション・プロセサに上記データ・ラインを
割り当てるステップを含む、データ送信方法。 - 【請求項10】請求項8に記載の方法であって、上記シ
ミュレーション・バス手段が、FIFO(ファーストイ
ン・ファーストアウト)バッファ手段を通して上記ホス
ト・コンピュータに接続された、データ送信方法。 - 【請求項11】請求項8に記載の方法であって、上記ホ
スト・コンピュータに代わってタスクを実行する補助プ
ロセサが上記ロジック・シミュレーション・マシンに含
まれ、上記データを上記シミュレーション・バス手段を
通して上記補助プロセサへ送信するステップを含む、デ
ータ送信方法。 - 【請求項12】請求項8に記載の方法であって、各ユニ
ットが同一のデータを格納する複数の第2メモリ・ユニ
ットが上記第2メモリ手段に含まれ、上記第2メモリ手
段からフェッチされる複数のデータを示す複数のアドレ
スを上記コマンドに格納するステップと、上記第2メモ
リ・ユニットの各々から上記データを1度にフェッチす
るステップとを含む、データ送信方法。 - 【請求項13】請求項8に記載の方法であって、送信さ
れる上記データの終わりの指示が上記コマンドに含まれ
る、データ送信方法。 - 【請求項14】請求項8に記載の方法であって、フェッ
チされた上記データを上記シミュレーション・バス手段
に送出する前に反転する指示が上記コマンドに含まれる
、データ送信方法。 - 【請求項15】ロジック・シミュレーション・マシンか
らホスト・コンピュータへデータを送信する装置であっ
て、上記マシンの動作を指定する命令を格納するための
第1メモリ手段と、上記マシンによってシミュレートさ
れたロジック・モデルについてのデータを格納するため
の第2メモリ手段と、上記マシンを上記ホスト・コンピ
ュータに接続するシミュレーション・バス手段と、第2
メモリ手段からデータをフェッチする命令を持つコマン
ドを、上記第1メモリ手段に格納する手段と、上記コマ
ンドによって指示されたデータを上記第2メモリ手段か
らフェッチするデータ・フェッチ手段と、フェッチされ
たデータを上記シミュレーション・バス手段に送出する
データ送出手段とを含む、データ送信装置。 - 【請求項16】請求項15に記載の装置であって、上記
第2メモリ手段からフェッチされる複数のデータを示す
複数のアドレスを上記コマンドに格納する手段を含む、
データ送信装置。 - 【請求項17】請求項16に記載の装置であって、各ユ
ニットが同一のデータを格納する複数の第2メモリ・ユ
ニットが上記第2メモリ手段に含まれ、上記コマンド内
の各アドレスによって指示されたデータを該第2メモリ
・ユニットの各々から1度にフェッチする手段が上記デ
ータ・フェッチ手段に含まれた、データ送信装置。 - 【請求項18】請求項17に記載の装置であって、上記
シミュレーション・バス手段に複数のデータ・ラインが
含まれ、フェッチされた上記データを送出するために、
上記第2メモリ・ユニットの各々に該データ・ラインを
割り当てる手段が上記データ送出手段に含まれた、デー
タ送信装置。 - 【請求項19】請求項15に記載の装置であって、フェ
ッチされた上記データを受信し、上記ホスト・コンピュ
ータに代わってタスクを実行するために、上記シミュレ
ーション・バス手段に接続された補助プロセサ手段を含
む、データ送信装置。 - 【請求項20】請求項15に記載の装置であって、送信
される上記データの終わりを示す命令が上記コマンドに
含まれた、データ送信装置。 - 【請求項21】請求項15に記載の装置であって、フェ
ッチされた上記データを上記シミュレーション・バス手
段に送出する前に反転する命令が上記コマンドに含まれ
た、データ送信装置。 - 【請求項22】ロジック・シミュレーション・マシンか
らホスト・コンピュータへデータを送信する装置であっ
て、上記ホスト・コンピュータに接続されたシミュレー
ション・バス手段を通して相互に接続された複数のシミ
ュレーション・プロセサと、上記シミュレーション・プ
ロセサの動作を指定する命令を格納するために、該シミ
ュレーション・プロセサの各々に具備された第1メモリ
手段と、上記マシンにおいてシミュレートされたモデル
全体についてのデータを格納するために、上記シミュレ
ーション・プロセサの各々に具備された第2メモリ手段
と、上記プロセサの各々の上記第2メモリ手段からデー
タをフェッチする命令を持つコマンドを、上記第1メモ
リ手段に格納する手段と、上記プロセサの各々のコマン
ドによって指示されたデータを、上記第2メモリ手段か
らフェッチするデータ・フェッチ手段と、上記プロセサ
の各々において、フェッチされた上記データを上記シミ
ュレーション・バス手段に並列に送出するデータ送出手
段とを含む、データ送信装置。 - 【請求項23】請求項22に記載の装置であって、上記
シミュレーション・バス手段に複数のデータ・ラインが
含まれ、上記シミュレーション・プロセサからフェッチ
された上記データを送出するために、該プロセサの各々
に該データ・ラインを割り当てる手段が上記データ送出
手段に含まれた、データ送信装置。 - 【請求項24】請求項22に記載の装置であって、上記
シミュレーション・バス手段を上記ホスト・コンピュー
タに接続するためのFIFO(ファーストイン・ファー
ストアウト)バッファ手段を含む、データ送信装置。 - 【請求項25】請求項22に記載の装置であって、フェ
ッチされた上記データを上記シミュレーション・バス手
段を通して受信し、上記ホスト・コンピュータに代わっ
てタスクを実行するために、該シミュレーション・バス
手段に接続された補助プロセサを含む、データ送信装置
。 - 【請求項26】請求項22に記載の装置であって、各ユ
ニットが上記データの同一のコピーを格納する複数の第
2メモリ・ユニットが上記第2メモリ手段に含まれ、上
記データがフェッチされる複数のアドレスの指示が上記
コマンドに含まれ、該第2メモリ・ユニットの各々から
上記データを1度にフェッチする手段が上記データ・フ
ェッチ手段に含まれた、データ送信装置。 - 【請求項27】請求項22に記載の装置であって、送信
される上記データの終わりを示す命令が上記コマンドに
含まれた、データ送信装置。 - 【請求項28】請求項22に記載の装置であって、フェ
ッチされた上記データを上記シミュレーション・バス手
段に送出する前に反転する命令が上記コマンドに含まれ
た、データ送信装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US50208890A | 1990-03-30 | 1990-03-30 | |
| US502088 | 1990-03-30 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04227556A true JPH04227556A (ja) | 1992-08-17 |
| JPH0731645B2 JPH0731645B2 (ja) | 1995-04-10 |
Family
ID=23996287
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3048822A Expired - Lifetime JPH0731645B2 (ja) | 1990-03-30 | 1991-02-22 | ロジック・シミュレーション・マシンからホスト・コンピュータへデータを送信する方法及び装置 |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP0449579A3 (ja) |
| JP (1) | JPH0731645B2 (ja) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS60173483A (ja) * | 1984-02-20 | 1985-09-06 | Hitachi Ltd | 論理回路シミュレーション装置 |
| JPS61161553A (ja) * | 1985-01-11 | 1986-07-22 | Nec Corp | ハ−ドウエア シミユレ−タ |
| JPS63292337A (ja) * | 1987-05-26 | 1988-11-29 | Nec Corp | 論理シミュレ−ションシステム |
| JPH01305444A (ja) * | 1988-06-02 | 1989-12-08 | Nec Corp | 論理シミュレーションシステム |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0258650B1 (en) * | 1986-08-01 | 1995-04-12 | Hitachi, Ltd. | Parallel computer system capable of asynchronous data transmission |
| US4914612A (en) * | 1988-03-31 | 1990-04-03 | International Business Machines Corporation | Massively distributed simulation engine |
-
1991
- 1991-02-22 JP JP3048822A patent/JPH0731645B2/ja not_active Expired - Lifetime
- 1991-03-26 EP EP19910302632 patent/EP0449579A3/en not_active Withdrawn
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS60173483A (ja) * | 1984-02-20 | 1985-09-06 | Hitachi Ltd | 論理回路シミュレーション装置 |
| JPS61161553A (ja) * | 1985-01-11 | 1986-07-22 | Nec Corp | ハ−ドウエア シミユレ−タ |
| JPS63292337A (ja) * | 1987-05-26 | 1988-11-29 | Nec Corp | 論理シミュレ−ションシステム |
| JPH01305444A (ja) * | 1988-06-02 | 1989-12-08 | Nec Corp | 論理シミュレーションシステム |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0731645B2 (ja) | 1995-04-10 |
| EP0449579A3 (en) | 1993-02-24 |
| EP0449579A2 (en) | 1991-10-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5721953A (en) | Interface for logic simulation using parallel bus for concurrent transfers and having FIFO buffers for sending data to receiving units when ready | |
| US5327361A (en) | Events trace gatherer for a logic simulation machine | |
| EP0021404B1 (en) | Computing system for the simulation of logic operations | |
| CA1184311A (en) | Peripheral interface adapter circuit for use in i/o controller card having multiple modes of operation | |
| US5280595A (en) | State machine for executing commands within a minimum number of cycles by accomodating unforseen time dependency according to status signals received from different functional sections | |
| US3815095A (en) | General-purpose array processor | |
| CA1246743A (en) | Array for simulating computer functions for large computer systems | |
| WO1995004402A1 (en) | Microprocessor-based fpga | |
| JPH02501599A (ja) | 多重プロセッサ・アレイにおける仮想処理手法および仮想プロセッサ | |
| JPS60218138A (ja) | 事象駆動形アルゴリズムを実行するコンピユータ装置 | |
| Jones et al. | The Cm* multiprocessor project: A research review | |
| JPS58501560A (ja) | マイクロプロセツサ | |
| CN100401270C (zh) | 并行计算机体系结构,使用这种体系结构的信息处理单元 | |
| GB2073923A (en) | Branching in computer control store | |
| KR20030066641A (ko) | 효율적인 데이터 로딩 및 언로딩을 위하여 합성된 패킷기반 프로토콜 논리를 이용한 하드웨어 보조 설계 검증시스템 | |
| CA1182579A (en) | Bus sourcing and shifter control of a central processing unit | |
| JP2018120323A (ja) | 情報処理システム、情報処理装置、周辺装置、データ転送方法、及びデータ転送プログラム | |
| US3631401A (en) | Direct function data processor | |
| JPH04225475A (ja) | ロジック・シミュレーション・マシン及び処理方法 | |
| JPH0731645B2 (ja) | ロジック・シミュレーション・マシンからホスト・コンピュータへデータを送信する方法及び装置 | |
| Haralick et al. | Proteus: a reconfigurable computational network for computer vision | |
| US7636817B1 (en) | Methods and apparatus for allowing simultaneous memory accesses in a programmable chip system | |
| Cooper | Micromodules: Microprogrammable building blocks for hardware development | |
| EP0483965A2 (en) | Logic simulation | |
| JP3085103B2 (ja) | 並列プロセッサ論理シミュレーション装置 |