JP2723017B2 - シミュレーションエンジン - Google Patents
シミュレーションエンジンInfo
- Publication number
- JP2723017B2 JP2723017B2 JP5317584A JP31758493A JP2723017B2 JP 2723017 B2 JP2723017 B2 JP 2723017B2 JP 5317584 A JP5317584 A JP 5317584A JP 31758493 A JP31758493 A JP 31758493A JP 2723017 B2 JP2723017 B2 JP 2723017B2
- Authority
- JP
- Japan
- Prior art keywords
- simulation
- input
- instruction
- comparison
- logical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Description
【0001】
【産業上の利用分野】本発明は、論理回路のシミュレー
ションエンジンに関し、特にハードウェア論理シミュレ
ーション装置に適用されるシミュレーションエンジンに
関する。
ションエンジンに関し、特にハードウェア論理シミュレ
ーション装置に適用されるシミュレーションエンジンに
関する。
【0002】
【従来の技術】従来の特化したハードウェアシミュレー
ションマシーンであるシミュレーションエンジンの例は
特開平2−12343号公報を参照できる。従来のシミ
ュレーションエンジンは、ゲートレベルの論理回路を高
速にシミュレーションすることを目的として設計されて
いる。この種のシミュレータでは、シミュレーションを
高速化するため、シミュレーション単位を単純なプリミ
ティブゲートに限定しており、AND−OR−INV等
の複合ゲートや加算器等の機能ブロックをシミュレーシ
ョンする場合は、プリミティブゲートの組み合わせによ
って等価回路を構成しなければシミュレーションを行う
ことができない。
ションマシーンであるシミュレーションエンジンの例は
特開平2−12343号公報を参照できる。従来のシミ
ュレーションエンジンは、ゲートレベルの論理回路を高
速にシミュレーションすることを目的として設計されて
いる。この種のシミュレータでは、シミュレーションを
高速化するため、シミュレーション単位を単純なプリミ
ティブゲートに限定しており、AND−OR−INV等
の複合ゲートや加算器等の機能ブロックをシミュレーシ
ョンする場合は、プリミティブゲートの組み合わせによ
って等価回路を構成しなければシミュレーションを行う
ことができない。
【0003】これを解決する手段として、汎用のマイク
ロプロセッサを用いて機能レベルのシミュレーションを
実現した論理シミュレータが考えられる。だが、汎用プ
ロセッサは論理シミュレーション専用に開発されたもの
ではないため、1つのシミュレーション単位に対して数
十〜数百ステップの命令を費やしてシミュレーションを
行うことになる。また、機能レベルの論理シミュレーシ
ョンでは、0/1の確定論理値以外に不定値Xやハイイ
ンピーダンス値Zを想定した4値論理のシミュレーショ
ンが必須となるが、汎用プロセッサは4値論理を直接扱
うことは不可能である。そのため、4値論理のシミュレ
ーションを行うためには相当のステップ数の命令が必要
となる。以上の点から、汎用プロセッサを用いた論理シ
ミュレータでは、命令ステップ数の増加によるシミュレ
ーション速度の低下が無視できないものになる。
ロプロセッサを用いて機能レベルのシミュレーションを
実現した論理シミュレータが考えられる。だが、汎用プ
ロセッサは論理シミュレーション専用に開発されたもの
ではないため、1つのシミュレーション単位に対して数
十〜数百ステップの命令を費やしてシミュレーションを
行うことになる。また、機能レベルの論理シミュレーシ
ョンでは、0/1の確定論理値以外に不定値Xやハイイ
ンピーダンス値Zを想定した4値論理のシミュレーショ
ンが必須となるが、汎用プロセッサは4値論理を直接扱
うことは不可能である。そのため、4値論理のシミュレ
ーションを行うためには相当のステップ数の命令が必要
となる。以上の点から、汎用プロセッサを用いた論理シ
ミュレータでは、命令ステップ数の増加によるシミュレ
ーション速度の低下が無視できないものになる。
【0004】また、シミュレーションエンジンは特定の
シミュレーションアルゴリズムに基づいて開発されるた
め、小規模な論理回路を対象とするシミュレータと大規
模な論理回路を対象とするシミュレータとではそのアー
キテクチャは異なることが多い。
シミュレーションアルゴリズムに基づいて開発されるた
め、小規模な論理回路を対象とするシミュレータと大規
模な論理回路を対象とするシミュレータとではそのアー
キテクチャは異なることが多い。
【0005】
【発明が解決しようとする課題】本発明は、従来の論理
シミュレータが苦手としていた4値論理の機能レベル論
理シミュレーションを高速に行うことを目的とする。ま
た、小規模の論理回路をシミュレーションするシミュレ
ーションアクセラレータから大規模の論理回路をシミュ
レーションするハードウェア論理シミュレータまで同一
のアーキテクチャを持つ論理シミュレータを構成するこ
とを目的とする。
シミュレータが苦手としていた4値論理の機能レベル論
理シミュレーションを高速に行うことを目的とする。ま
た、小規模の論理回路をシミュレーションするシミュレ
ーションアクセラレータから大規模の論理回路をシミュ
レーションするハードウェア論理シミュレータまで同一
のアーキテクチャを持つ論理シミュレータを構成するこ
とを目的とする。
【0006】
【課題を解決するための手段】本発明のエンジンは、外
部からの起動指令によりエンジンを起動制御しシミュレ
ーション終了命令によりシミュレーション制御を停止さ
せ外部へシミュレーション修了を通知する制御手段(以
下制御部)と、シミュレーションすべき論理回路が機能
ブロックであるノードを特定する番号および入力値を記
憶する入力記憶手段(入力メモリ)と、命令を記憶する
命令記憶手段(命令メモリ)と、前記制御部の制御の下
で前記入力メモリから該ノードを特定する番号を読出し
て前記命令メモリの開始アドレスを決定し命令のフェッ
チアドレスを計算するアドレス計算手段(以下シーケン
サ)と、前記命令メモリからの命令に基いて前記入力メ
モリからのノードの入力値のシミュレーション演算を行
う演算実行手段(以下演算実行部)と、この演算実行部
からのシミュレーション演算結果を前記ノードを特定す
る番号とともに記憶する出力記憶手段(以下出力メモ
リ)とを含む。
部からの起動指令によりエンジンを起動制御しシミュレ
ーション終了命令によりシミュレーション制御を停止さ
せ外部へシミュレーション修了を通知する制御手段(以
下制御部)と、シミュレーションすべき論理回路が機能
ブロックであるノードを特定する番号および入力値を記
憶する入力記憶手段(入力メモリ)と、命令を記憶する
命令記憶手段(命令メモリ)と、前記制御部の制御の下
で前記入力メモリから該ノードを特定する番号を読出し
て前記命令メモリの開始アドレスを決定し命令のフェッ
チアドレスを計算するアドレス計算手段(以下シーケン
サ)と、前記命令メモリからの命令に基いて前記入力メ
モリからのノードの入力値のシミュレーション演算を行
う演算実行手段(以下演算実行部)と、この演算実行部
からのシミュレーション演算結果を前記ノードを特定す
る番号とともに記憶する出力記憶手段(以下出力メモ
リ)とを含む。
【0007】前記演算実行部の1つは、比較の非対象論
理ビットの位置を指示し、任意の論理ビット位置を比較
対象からマスクする情報を格納するレジスタと、比較演
算結果を保持する比較フラグレジスタと、この比較フラ
グレジスタに保持されている前回の比較演算結果を現在
の比較演算に反映させ任意の論理ビット長のデータの比
較演算を行い比較演算結果から特定の比較条件の成立を
判断し前記レジスタからの情報により比較演算対象から
はずして比較演算をする比較器とを含む。
理ビットの位置を指示し、任意の論理ビット位置を比較
対象からマスクする情報を格納するレジスタと、比較演
算結果を保持する比較フラグレジスタと、この比較フラ
グレジスタに保持されている前回の比較演算結果を現在
の比較演算に反映させ任意の論理ビット長のデータの比
較演算を行い比較演算結果から特定の比較条件の成立を
判断し前記レジスタからの情報により比較演算対象から
はずして比較演算をする比較器とを含む。
【0008】前記演算実行部の1つは、演算結果の一部
てあるキャリーを保持し次の演算へフィードバックする
ためのキャリーレジスタと、入力された論理値およびキ
ャリーレジスタからのフィードバックキャリー入力値の
うち演算に不要な論理ビットを演算対象からマスクする
入力マスク部と、この入力マスク部の出力の全ビットを
入力とする論理演算を行って1ビットの出力を得る縮退
論理演算器とを含む。
てあるキャリーを保持し次の演算へフィードバックする
ためのキャリーレジスタと、入力された論理値およびキ
ャリーレジスタからのフィードバックキャリー入力値の
うち演算に不要な論理ビットを演算対象からマスクする
入力マスク部と、この入力マスク部の出力の全ビットを
入力とする論理演算を行って1ビットの出力を得る縮退
論理演算器とを含む。
【0009】
【実施例】次に、本発明の一実施例について図面を用い
て詳細に説明する。
て詳細に説明する。
【0010】なお、以下の説明においては、便宜上次の
用語を用いる。ノードとは、論理回路シミュレーション
におけるシミュレーションの単位を指す。ネットとは、
ノード間の接続を指す。IDとは、ノードを同定するた
めに一意にふられたノード番号を指す。ワードとは、あ
る特定の論理ビット長を指す。ワード中の論理ビット位
置は、最下位のビットをビット
用語を用いる。ノードとは、論理回路シミュレーション
におけるシミュレーションの単位を指す。ネットとは、
ノード間の接続を指す。IDとは、ノードを同定するた
めに一意にふられたノード番号を指す。ワードとは、あ
る特定の論理ビット長を指す。ワード中の論理ビット位
置は、最下位のビットをビット
〔0〕とした降順で示
す。
す。
【0011】図1を参照して本発明の一実施例を説明す
る。
る。
【0012】図1(a)には、シミュレーションエンジ
ン10の構成の一例が示されている。制御部1は、シミ
ュレーションエンジン10全体を制御するブロックであ
る。制御部1は端子201を通して外部と接続され、シ
ミュレーション起動指令の受信、エンジン10の起動・
停止、および外部へのシミュレーション終了通知を行
う。シーケンサ2は、制御部1の指令を受けて、シミュ
レーション命令を命令メモリから読出すブロックであ
る。シミュレーションの起動を制御部1から指令された
シーケンサ2は、入力メモリ7からシミュレーションす
べきノードのIDを取込み、命令メモリ4のアドレスを
決定して、以後、シミュレーションの停止命令を実行す
るまで命令を順時読出す。また、条件ライン104より
条件分岐を行うための条件を取込み、分岐の有無を判断
する。デコーダ3は、シーケンサ2が命令メモリ4から
読み出した命令を解読して、命令が要求する動作をエン
ジン10の各部に指示するブロックである。命令メモリ
4は、シミュレーション命令を格納するメモリである。
レジスタファイル5は、シミュレーション中の演算デー
タを保持するレジスタ群である。デコーダ3の指示を受
けて、入力ライン101と入力ライン102へ入力とな
る論理値を送り出し、出力ライン103から演算の結果
を受け取って指示されたレジスタへ書込む動作を行う。
また、入力メモリ7および出力メモリ8との間でデータ
の送受を行う。演算実行部6は、シミュレーションを行
うための専用演算器群である。入力メモリ7は、端子2
02からシミュレーションに必要なデータを受取り、格
納するメモリである。ノードのIDと入力値が外部より
書込まれ、シミュレーション中に順次読み出される。出
力メモリ8は、シミュレーションの結果を格納し、端子
203から外部へ送り出すメモリである。ノードのID
と出力値が書込まれ、シミュレーションの終了後、その
内容が外部から読出される。データメモリ9は、シミュ
レーションの情報を格納するメモリである。シミュレー
ションモデル上のレジスタやメモリの状態値、その他の
情報が格納される。
ン10の構成の一例が示されている。制御部1は、シミ
ュレーションエンジン10全体を制御するブロックであ
る。制御部1は端子201を通して外部と接続され、シ
ミュレーション起動指令の受信、エンジン10の起動・
停止、および外部へのシミュレーション終了通知を行
う。シーケンサ2は、制御部1の指令を受けて、シミュ
レーション命令を命令メモリから読出すブロックであ
る。シミュレーションの起動を制御部1から指令された
シーケンサ2は、入力メモリ7からシミュレーションす
べきノードのIDを取込み、命令メモリ4のアドレスを
決定して、以後、シミュレーションの停止命令を実行す
るまで命令を順時読出す。また、条件ライン104より
条件分岐を行うための条件を取込み、分岐の有無を判断
する。デコーダ3は、シーケンサ2が命令メモリ4から
読み出した命令を解読して、命令が要求する動作をエン
ジン10の各部に指示するブロックである。命令メモリ
4は、シミュレーション命令を格納するメモリである。
レジスタファイル5は、シミュレーション中の演算デー
タを保持するレジスタ群である。デコーダ3の指示を受
けて、入力ライン101と入力ライン102へ入力とな
る論理値を送り出し、出力ライン103から演算の結果
を受け取って指示されたレジスタへ書込む動作を行う。
また、入力メモリ7および出力メモリ8との間でデータ
の送受を行う。演算実行部6は、シミュレーションを行
うための専用演算器群である。入力メモリ7は、端子2
02からシミュレーションに必要なデータを受取り、格
納するメモリである。ノードのIDと入力値が外部より
書込まれ、シミュレーション中に順次読み出される。出
力メモリ8は、シミュレーションの結果を格納し、端子
203から外部へ送り出すメモリである。ノードのID
と出力値が書込まれ、シミュレーションの終了後、その
内容が外部から読出される。データメモリ9は、シミュ
レーションの情報を格納するメモリである。シミュレー
ションモデル上のレジスタやメモリの状態値、その他の
情報が格納される。
【0013】図1(b)には、演算実行部6の一部であ
る比較演算実行部の構成の一例が示されている。比較演
算器11は、2つの4値論理値を比較し、その大小関係
を判定する演算器である。ドントケアビット(以下DC
B)レジスタ12は、比較演算器11に対して比較の非
対象論理ビット、即ちドントケア論理ビットの位置を指
示するレジスタである。命令によってDCBレジスタ1
2のビット[n]に1を書込むと、そのビットは比較の
対象から外されて比較演算が行われる。比較フラグレジ
スタ13は、比較演算器11の最新の比較結果を保持す
るレジスタである。比較フラグレジスタ13の更新は、
比較演算が終了したときに行われる。また、比較フラグ
レジスタ13の内容を命令によって実行中の比較演算に
反映することにより、任意のビット長のデータの比較演
算を行うことが可能である。図4には、比較演算実行部
が行う演算の一例が示されている。図4(1)には、基
本的な演算が示されている。入力ライン101から論理
値aが、入力ライン102から論理値bが入力され、比
較演算器11は論理値aと論理値bの比較を行い、比較
結果を3つのフラグとして出力する。以下、この3つの
フラグをGTフラグ・LTフラグ・EQフラグと呼ぶ。
各フラグの成立条件は、GTフラグが[a>b]の条
件、LTフラグが[a<b]の条件、EQフラグが[a
=b]の条件である。比較演算の終了時に、各フラグは
比較フラグレジスタ13へ格納される。同時に、命令で
指示された比較演算の出力、例えば[a=b]の場合は
EQフラグの値が出力として選択され、出力ライン10
3を通してレジスタファイル5に転送される。同時に、
条件ライン104を通してシーケンサ2へ転送され、分
岐の条件として用いることが可能となっている。
る比較演算実行部の構成の一例が示されている。比較演
算器11は、2つの4値論理値を比較し、その大小関係
を判定する演算器である。ドントケアビット(以下DC
B)レジスタ12は、比較演算器11に対して比較の非
対象論理ビット、即ちドントケア論理ビットの位置を指
示するレジスタである。命令によってDCBレジスタ1
2のビット[n]に1を書込むと、そのビットは比較の
対象から外されて比較演算が行われる。比較フラグレジ
スタ13は、比較演算器11の最新の比較結果を保持す
るレジスタである。比較フラグレジスタ13の更新は、
比較演算が終了したときに行われる。また、比較フラグ
レジスタ13の内容を命令によって実行中の比較演算に
反映することにより、任意のビット長のデータの比較演
算を行うことが可能である。図4には、比較演算実行部
が行う演算の一例が示されている。図4(1)には、基
本的な演算が示されている。入力ライン101から論理
値aが、入力ライン102から論理値bが入力され、比
較演算器11は論理値aと論理値bの比較を行い、比較
結果を3つのフラグとして出力する。以下、この3つの
フラグをGTフラグ・LTフラグ・EQフラグと呼ぶ。
各フラグの成立条件は、GTフラグが[a>b]の条
件、LTフラグが[a<b]の条件、EQフラグが[a
=b]の条件である。比較演算の終了時に、各フラグは
比較フラグレジスタ13へ格納される。同時に、命令で
指示された比較演算の出力、例えば[a=b]の場合は
EQフラグの値が出力として選択され、出力ライン10
3を通してレジスタファイル5に転送される。同時に、
条件ライン104を通してシーケンサ2へ転送され、分
岐の条件として用いることが可能となっている。
【0014】図4(2)には、論理値に不定値Xがある
場合の演算が示される。この場合は、Xの値が0か1か
不明であるため、GTフラグとLTフラグはXとなる。
EQフラグは、この場合はXの値によらずに決定できる
ので0となる。
場合の演算が示される。この場合は、Xの値が0か1か
不明であるため、GTフラグとLTフラグはXとなる。
EQフラグは、この場合はXの値によらずに決定できる
ので0となる。
【0015】図4(3)には、DCBレジスタ12のビ
ット[3]とビット[7]に1が設定された場合の演算
が示される。この場合は、ビット[3]とビット[7]
が比較演算の対象から外されるため、ビット[3]に不
定値Xがあっても各フラグは一意に決定される。
ット[3]とビット[7]に1が設定された場合の演算
が示される。この場合は、ビット[3]とビット[7]
が比較演算の対象から外されるため、ビット[3]に不
定値Xがあっても各フラグは一意に決定される。
【0016】図4(4)には、2ワード長のデータ比較
を同う場合の演算が示される。この場合は1ワード単位
の比較演算が2回行われ、2回目の演算に1回目の演算
結果を反映させる方法が用いられる。
を同う場合の演算が示される。この場合は1ワード単位
の比較演算が2回行われ、2回目の演算に1回目の演算
結果を反映させる方法が用いられる。
【0017】図4(4−1)には、1回目の演算が示さ
れる。まず、上位側のワードが比較され、演算結果が比
較フラグレジスタ13に格納される。
れる。まず、上位側のワードが比較され、演算結果が比
較フラグレジスタ13に格納される。
【0018】図4(4−2)では、2回目の演算が示さ
れる下位側のワードが比較されその結果が求められる。
れる下位側のワードが比較されその結果が求められる。
【0019】図4(4−3)Tはフラグの合成処理が示
される。GTフラグとLTフラグは上位ワードのフラグ
が優先され、EQフラグは上位ワードのフラグと下位ワ
ードのフラグの論理積が行われて2ワード長の比較演算
の結果が求められる。演算結果が比較フラグレジスタ1
3に格納され、2ワード長の比較演算が終了する。以上
の演算を組み合わせることで、比較演算実行部は任意ビ
ット長のデータの比較演算を実行する。
される。GTフラグとLTフラグは上位ワードのフラグ
が優先され、EQフラグは上位ワードのフラグと下位ワ
ードのフラグの論理積が行われて2ワード長の比較演算
の結果が求められる。演算結果が比較フラグレジスタ1
3に格納され、2ワード長の比較演算が終了する。以上
の演算を組み合わせることで、比較演算実行部は任意ビ
ット長のデータの比較演算を実行する。
【0020】図1(c)には、演算実行部6の一部であ
る縮退論理演算実行部の構成の一例が示される。縮退論
理演算器14は、n入力1出力の4値論理値の論理ゲー
ト演算を行う演算器である。縮退論理演算器14が扱え
る入力ビット長は、最大で2ワード+1ビット分の長さ
であり、入力マスク部15を通して入力される。入力マ
スク部15は、入力の無効論理ビットをマスクする回路
である。入力ライン101と入力ライン102、および
縮退キャリーレジスタ16からのフィードバック入力が
入力マスク部15の入力である。命令によって縮退論理
演算器14への入力ビット長が制限された場合は、入力
マスク部15によって無効な上位ビットがマスクされ、
また、縮退キャリーレジスタ16からのフィードバック
入力についても、演算に必要のない場合はマスクされて
縮退論理演算器14へ出力される。縮退キャリーレジス
タ16は、縮退演算器14の最新の演算結果を保持する
レジスタである。縮退キャリーレジスタ16の更新は、
論理演算が終了したときに行われる。また、縮退キャリ
ーレジスタ16の内容は入力マスク部15へのフィード
バック入力となる。
る縮退論理演算実行部の構成の一例が示される。縮退論
理演算器14は、n入力1出力の4値論理値の論理ゲー
ト演算を行う演算器である。縮退論理演算器14が扱え
る入力ビット長は、最大で2ワード+1ビット分の長さ
であり、入力マスク部15を通して入力される。入力マ
スク部15は、入力の無効論理ビットをマスクする回路
である。入力ライン101と入力ライン102、および
縮退キャリーレジスタ16からのフィードバック入力が
入力マスク部15の入力である。命令によって縮退論理
演算器14への入力ビット長が制限された場合は、入力
マスク部15によって無効な上位ビットがマスクされ、
また、縮退キャリーレジスタ16からのフィードバック
入力についても、演算に必要のない場合はマスクされて
縮退論理演算器14へ出力される。縮退キャリーレジス
タ16は、縮退演算器14の最新の演算結果を保持する
レジスタである。縮退キャリーレジスタ16の更新は、
論理演算が終了したときに行われる。また、縮退キャリ
ーレジスタ16の内容は入力マスク部15へのフィード
バック入力となる。
【0021】図5には縮退論理演算実行部が行う演算を
一例が示される。
一例が示される。
【0022】図5(1)には、基本的な演算が示され
る。入力ライン102から論理値aが入力され、その他
の入力は入力マスク部15によりマスクされる。縮退論
理演算器14は論理値aの全ビットの論理積を行い、出
力値0を求める。出力値0は、出力ライン103を通し
てレジスタファイル5に転送される。また、出力値0は
条件ライン104を通してシーケンサ2へ転送され、分
岐の条件として用いることが可能となっている。
る。入力ライン102から論理値aが入力され、その他
の入力は入力マスク部15によりマスクされる。縮退論
理演算器14は論理値aの全ビットの論理積を行い、出
力値0を求める。出力値0は、出力ライン103を通し
てレジスタファイル5に転送される。また、出力値0は
条件ライン104を通してシーケンサ2へ転送され、分
岐の条件として用いることが可能となっている。
【0023】図5(2)には、論理値に不定値Xがある
場合の演算が示される。この場合は確定している入力が
全て1のため、不定値Xの値によって論理積の結果が異
なるので出力値がXになる。
場合の演算が示される。この場合は確定している入力が
全て1のため、不定値Xの値によって論理積の結果が異
なるので出力値がXになる。
【0024】図5(3)には、入力値のビット長を3ビ
ットに制限した場合の演算が示される。論理値aが入力
マスク部15により下位3ビットを除いてマスクされ、
下位3ビットのみが縮退論理演算器14に入力されて論
理積が行われる。図5(4)には、3ワード長の演算が
示される。縮退論理演算器14は一度に2ワード長まで
の論理演算を行うことが可能であるが、それ以上の長さ
をもつビット列の論理演算を行う場合は2ワード単位毎
の入力と縮退キャリーレジスタ16からのフィードバッ
ク入力を用いて論理演算が行われる。
ットに制限した場合の演算が示される。論理値aが入力
マスク部15により下位3ビットを除いてマスクされ、
下位3ビットのみが縮退論理演算器14に入力されて論
理積が行われる。図5(4)には、3ワード長の演算が
示される。縮退論理演算器14は一度に2ワード長まで
の論理演算を行うことが可能であるが、それ以上の長さ
をもつビット列の論理演算を行う場合は2ワード単位毎
の入力と縮退キャリーレジスタ16からのフィードバッ
ク入力を用いて論理演算が行われる。
【0025】図5(4−1)には、1回目の演算が示さ
れる。まず、上位側の2ワードが入力マスク部15に入
力され、不要な上位4ビットと縮退キャリーレジスタ1
6からのフィードバック入力がマスクされて縮退論理演
算器14に送られ、論理積が行われて、出力値0が求め
られる。この出力値0は、縮退キャリーレジスタ16に
格納され、2回目の論理演算のフィードバック入力とな
る。
れる。まず、上位側の2ワードが入力マスク部15に入
力され、不要な上位4ビットと縮退キャリーレジスタ1
6からのフィードバック入力がマスクされて縮退論理演
算器14に送られ、論理積が行われて、出力値0が求め
られる。この出力値0は、縮退キャリーレジスタ16に
格納され、2回目の論理演算のフィードバック入力とな
る。
【0026】図5(4−2)には、2回目の演算が示さ
れる。残りの1ワードが縮退キャリーレジスタ16から
のフィードバック入力と共に入力マスク部15に入力さ
れ、そのまま縮退論理演算器14に送られる。縮退論理
演算器14では2回目の論理演算が行われ、1ワードの
入力値およびフィードバック入力値の論理積が行われて
最終的な出力値0が求められる。このように、縮退キャ
リーレジスタ16からのフィードバック入力を用いるこ
とで任意長のビット列の縮退論理演算を行うことが可能
となっている。
れる。残りの1ワードが縮退キャリーレジスタ16から
のフィードバック入力と共に入力マスク部15に入力さ
れ、そのまま縮退論理演算器14に送られる。縮退論理
演算器14では2回目の論理演算が行われ、1ワードの
入力値およびフィードバック入力値の論理積が行われて
最終的な出力値0が求められる。このように、縮退キャ
リーレジスタ16からのフィードバック入力を用いるこ
とで任意長のビット列の縮退論理演算を行うことが可能
となっている。
【0027】図1(d)には、演算実行部6の一部であ
るシフト演算実行部の構成の一例が示されている。シフ
ト演算器17は、4値論理値のシフト演算、すなわち、
任意のシフト数の右シフト・左シフト演算、および2ワ
ード長のビット列から1ワード以内の任意のビット列を
切り出すファネルシフト演算を行う演算器である。シフ
ト数レジスタ18は、シフト演算器17に対して動的に
シフト数を与えるレジスタである。ビット長レジスタ1
9は、シフト演算器17に対して動的に論理ビット長を
与えるレジスタである。静的なシフト演算の場合は命令
にシフト数とビット長を指定することができるが、機能
的にシフト数や論理ビット長が変数となる要素をもつノ
ードがある場合は、シフト数レジスタ18とビット長レ
ジスタ19を用いることによりシミュレーションを可能
としている。
るシフト演算実行部の構成の一例が示されている。シフ
ト演算器17は、4値論理値のシフト演算、すなわち、
任意のシフト数の右シフト・左シフト演算、および2ワ
ード長のビット列から1ワード以内の任意のビット列を
切り出すファネルシフト演算を行う演算器である。シフ
ト数レジスタ18は、シフト演算器17に対して動的に
シフト数を与えるレジスタである。ビット長レジスタ1
9は、シフト演算器17に対して動的に論理ビット長を
与えるレジスタである。静的なシフト演算の場合は命令
にシフト数とビット長を指定することができるが、機能
的にシフト数や論理ビット長が変数となる要素をもつノ
ードがある場合は、シフト数レジスタ18とビット長レ
ジスタ19を用いることによりシミュレーションを可能
としている。
【0028】図1(e)には、演算実行部6の一部であ
る論理・算術演算実行部の構成の一例が示されている。
論理・算術演算器20は、4値論理値の論理ビット毎の
論理演算、そよび4値論理値の算術演算を行う演算器で
ある。算術キャリーレジスタ21は、算術演算における
キャリー値を保持するレジスタであり、複数ワード長の
論理値の算術演算を行う際には、上位ワードに対するキ
ャリー値として論理・算術演算器20へ入力される。
る論理・算術演算実行部の構成の一例が示されている。
論理・算術演算器20は、4値論理値の論理ビット毎の
論理演算、そよび4値論理値の算術演算を行う演算器で
ある。算術キャリーレジスタ21は、算術演算における
キャリー値を保持するレジスタであり、複数ワード長の
論理値の算術演算を行う際には、上位ワードに対するキ
ャリー値として論理・算術演算器20へ入力される。
【0029】このように、演算実行部6は比較演算実行
部、縮退論理演算実行部、シフト演算実行部、および論
理・算術演算実行部で構成され、任意長の4値論理値に
対するあらゆる機能演算を高速に実行することが可能と
なっている。
部、縮退論理演算実行部、シフト演算実行部、および論
理・算術演算実行部で構成され、任意長の4値論理値に
対するあらゆる機能演算を高速に実行することが可能と
なっている。
【0030】小規模の論理回路をシミュレーションする
シミュレーションアクセラレータの構成の一例である図
2を参照すると、1台、または少数のシミュレーション
エンジン10が、各エンジンをコントロールするシミュ
レーションコントローラ50へ接続され、シミュレーシ
ョンコントローラ50は、ホストマシン60と接続され
ている。
シミュレーションアクセラレータの構成の一例である図
2を参照すると、1台、または少数のシミュレーション
エンジン10が、各エンジンをコントロールするシミュ
レーションコントローラ50へ接続され、シミュレーシ
ョンコントローラ50は、ホストマシン60と接続され
ている。
【0031】シミューレーションアクセラレータはホス
トマシン60からシミュレーションモデルを受け取り、
以下の順序でシミュレーションを行う。まず、シミュレ
ーションコントローラ50がシミュレーションするノー
ドを決定し、シミュレーションエンジン10へノードの
IDと入力値を転送してシミュレーションの起動を要求
する。要求を受けたシミュレーションエンジン10がノ
ードのシミュレーションを行っている間に、シミュレー
ションコントローラ50は次にシミュレーションするノ
ードを決定し、他のシミュレーションエンジン10から
終了信号を受け取ると、シミュレーションコントローラ
50はシミュレーションエンジン10からノードのID
と出力値を取出し、ノードの出力値の更新と接続先ノー
ドへの出力値伝播処理を行い、伝播先のノードの入力値
を更新し、そのノードを次回のシミュレーションの対象
とする。全シミュレーションの終了時点で、シミュレー
ションコントローラ50はホストマシン60へシミュレ
ーションの終了を通知する。ホストマシン60が必要な
データをシミュレーションアクセラレータより読取り、
シミュレーションが終了する。
トマシン60からシミュレーションモデルを受け取り、
以下の順序でシミュレーションを行う。まず、シミュレ
ーションコントローラ50がシミュレーションするノー
ドを決定し、シミュレーションエンジン10へノードの
IDと入力値を転送してシミュレーションの起動を要求
する。要求を受けたシミュレーションエンジン10がノ
ードのシミュレーションを行っている間に、シミュレー
ションコントローラ50は次にシミュレーションするノ
ードを決定し、他のシミュレーションエンジン10から
終了信号を受け取ると、シミュレーションコントローラ
50はシミュレーションエンジン10からノードのID
と出力値を取出し、ノードの出力値の更新と接続先ノー
ドへの出力値伝播処理を行い、伝播先のノードの入力値
を更新し、そのノードを次回のシミュレーションの対象
とする。全シミュレーションの終了時点で、シミュレー
ションコントローラ50はホストマシン60へシミュレ
ーションの終了を通知する。ホストマシン60が必要な
データをシミュレーションアクセラレータより読取り、
シミュレーションが終了する。
【0032】図3には、大規模な論理回路モデルを扱う
ハードウェア論理シミュレータの構成の一例が示されて
いる。複数のシミュレーションエンジン10と各エンジ
ンをコントロールするシミュレーションコントローラ5
0で1つのシミュレーションプロセッサ53が構成さ
れ、複数のシミュレーションプロセッサ53、および、
ハードウェア論理シミュレータ全体の制御を行うメイン
コントローラ52をネットワーク51で接続する。ま
た、メインコントローラ52はホストマシン60と接続
される。
ハードウェア論理シミュレータの構成の一例が示されて
いる。複数のシミュレーションエンジン10と各エンジ
ンをコントロールするシミュレーションコントローラ5
0で1つのシミュレーションプロセッサ53が構成さ
れ、複数のシミュレーションプロセッサ53、および、
ハードウェア論理シミュレータ全体の制御を行うメイン
コントローラ52をネットワーク51で接続する。ま
た、メインコントローラ52はホストマシン60と接続
される。
【0033】ハードウェア論理シミュレータはホストマ
シン60からシミュレーションモデルを受取り、以下の
順序でシミュレーションを行う。
シン60からシミュレーションモデルを受取り、以下の
順序でシミュレーションを行う。
【0034】まず、メインコントローラ52は、ホスト
マシンから受取られたシミュレーションモデルをネット
ワーク51を通して各シミュレーションプロセッサ53
へ分配する。
マシンから受取られたシミュレーションモデルをネット
ワーク51を通して各シミュレーションプロセッサ53
へ分配する。
【0035】次に、ホストマシン60はシミュレーショ
ンの起動指示を行う。メインコントローラ52は、この
指令を各シミュレーションプロセッサ53へ同報し、一
斉にシミュレーションの起動を行う。シミュレーション
の起動後、各シミュレーションプロセッサ53の実行状
況が監視され、プロセッサ間の同期処理やシミュレーシ
ョンの終了条件のチェック等が行われる。各シミュレー
ションプロセッサ53内部のシミュレーションコントロ
ーラ50は、メインコントローラ52からの起動指令を
受けて、図2のシミュレーションアクセラレータと同様
の処理を行う。この時、シミュレーションの終了したノ
ードの接続先が次プロセッサ以外の場合は、相手先のプ
ロセッサへノードの出力値と接続先のノードのIDの情
報を一つにまとめてネットワーク51を通して通知す
る。また、ネットワーク51から受け取った情報を解読
して、接続先のノードの入力値を更新し、そのノードを
次回のシミュレーションの対象とする処理を行う。
ンの起動指示を行う。メインコントローラ52は、この
指令を各シミュレーションプロセッサ53へ同報し、一
斉にシミュレーションの起動を行う。シミュレーション
の起動後、各シミュレーションプロセッサ53の実行状
況が監視され、プロセッサ間の同期処理やシミュレーシ
ョンの終了条件のチェック等が行われる。各シミュレー
ションプロセッサ53内部のシミュレーションコントロ
ーラ50は、メインコントローラ52からの起動指令を
受けて、図2のシミュレーションアクセラレータと同様
の処理を行う。この時、シミュレーションの終了したノ
ードの接続先が次プロセッサ以外の場合は、相手先のプ
ロセッサへノードの出力値と接続先のノードのIDの情
報を一つにまとめてネットワーク51を通して通知す
る。また、ネットワーク51から受け取った情報を解読
して、接続先のノードの入力値を更新し、そのノードを
次回のシミュレーションの対象とする処理を行う。
【0036】メインプロセッサ52がシミュレーション
の終了条件を検出した時点でシミュレーションは終了
し、メインプロセッサ52はホストマシン60へシミュ
レーションの終了を通知する。ホストマシン60が必要
なデータをハードウェア論理シミュレータより読取り、
シミュレーションが終了する。
の終了条件を検出した時点でシミュレーションは終了
し、メインプロセッサ52はホストマシン60へシミュ
レーションの終了を通知する。ホストマシン60が必要
なデータをハードウェア論理シミュレータより読取り、
シミュレーションが終了する。
【0037】
【発明の効果】本発明のシミュレーションエンジンは、
演算実行部を4値論理対応の演算器群とそれに付随する
専用レジスタ群で構成することにより、演算対象の論理
値が1ワード以内である場合は1命令で、複数のワード
にまたがる場合はワード数に応じた命令数で4値論理の
演算を極めて高速に実行することが可能である。また、
本シミュレーションエンジンはあくまでもノードの内部
機能をシミュレーションするためのユニットであり、ノ
ードの外部、すなわち、ノード間の論理値伝播処理やノ
ードの入出力値の更新を行う部分はシミュレーションコ
ントローラとして独立させている。このため、本シミュ
レーションエンジンを使用する論理シミュレータは、シ
ミュレーションコントローラの構成やシミュレーション
の規模にかかわらず、シミュレーションするノード内部
の機能を表したプログラムやライブラリを共有化するこ
とが可能である。
演算実行部を4値論理対応の演算器群とそれに付随する
専用レジスタ群で構成することにより、演算対象の論理
値が1ワード以内である場合は1命令で、複数のワード
にまたがる場合はワード数に応じた命令数で4値論理の
演算を極めて高速に実行することが可能である。また、
本シミュレーションエンジンはあくまでもノードの内部
機能をシミュレーションするためのユニットであり、ノ
ードの外部、すなわち、ノード間の論理値伝播処理やノ
ードの入出力値の更新を行う部分はシミュレーションコ
ントローラとして独立させている。このため、本シミュ
レーションエンジンを使用する論理シミュレータは、シ
ミュレーションコントローラの構成やシミュレーション
の規模にかかわらず、シミュレーションするノード内部
の機能を表したプログラムやライブラリを共有化するこ
とが可能である。
【図1】本発明の一実施例を示す図である。(a)は、
シミュレーションエンジン10の構成の一例である。
(b)は、演算実行部6の一部である比較演算実行部の
構成の一例である。(c)は、演算実行部6の一部であ
る縮退論理演算実行部の構成の一例である。(d)は、
演算実行部6の一部であるシフト演算実行部の構成の一
例である。(e)は、演算実行部6の一部である論理・
算術演算実行部の構成の一例である。
シミュレーションエンジン10の構成の一例である。
(b)は、演算実行部6の一部である比較演算実行部の
構成の一例である。(c)は、演算実行部6の一部であ
る縮退論理演算実行部の構成の一例である。(d)は、
演算実行部6の一部であるシフト演算実行部の構成の一
例である。(e)は、演算実行部6の一部である論理・
算術演算実行部の構成の一例である。
【図2】シミュレーションアクセラレータの構成の一例
を示す図である。
を示す図である。
【図3】ハードウェア論理シミュレータの構成の一例を
示す図である。
示す図である。
【図4】比較演算実行部が行う演算の一例を示す図であ
る。
る。
【図5】縮退論理演算実行部が行う演算の一例を示す図
である。
である。
1 制御部 2 シーケンサ 3 デコーダ 4 命令メモリ 5 レジスタファイル 6 演算実行部 7 入力メモリ 8 出力メモリ 9 データメモリ 10 シミュレーションエンジン 11 比較演算器 12 DCビットレジスタ 13 比較フラグレジスタ 14 縮退演算器 15 入力マスク部 16 縮退キャリーレジスタ 17 シフト演算器 18 シフト数レジスタ 19 ビット長レジスタ 20 論理・算術演算器 21 算術キャリーレジスタ 50 シミュレーションコントローラ 51 ネットワーク 52 メインコントローラ 53 シミュレーションプロセッサ 60 ホストマシン 101 入力ライン 102 入力ライン 103 出力ライン 201 端子 202 端子 203 端子
Claims (3)
- 【請求項1】 外部からの起動指令によりエンジンを起
動制御しシミュレーション終了命令によりシミュレーシ
ョン制御を停止させ外部へシミュレーション修了を通知
する制御手段と、 シミュレーションすべき論理対象が機能ブロックである
ノードを特定する番号および入力値を記憶する入力記憶
手段と、 命令を記憶する命令記憶手段と、 前記制御手段の制御の下で前記入力記憶手段から前記ノ
ードを指定する番号を読出して前記命令記憶手段の開始
アドレスを決定し命令のフェッチアドレスを計算するア
ドレス計算手段と、 前記命令記憶手段からの命令に基いて前記入力記憶手段
からのノードの入力値のシミュレーション演算を行う演
算実行手段と、 この演算実行手段からのシミュレーション演算結果を前
記ノードを特定する番号とともに記憶する出力記憶手段
とを含み、 前記演算実行手段は、 比較演算の非対象論理ビットの位置を指示し任意の論理
ビット位置を比較演算対象からマスクする情報格納手段
と、 比較演算結果を保持する比較フラグ格納手段と、 この比較フラグ格納手段に保持されている前回の比較演
算結果を現在の比較演算に反映させ任意の論理ビット等
のデータの比較演算を行い比較演算結果から特定の比較
条件の成立を判断し前記情報格納手段からの情報により
比較演算対象からはずして比較演算をする比較手段とを
含むことを特徴とするシミュレーションエンジン。 - 【請求項2】 前記比較手段は4値論理の比較演算を行
うことを特徴とする請求項1記載のシミュレーションエ
ンジン。 - 【請求項3】 外部からの起動指令によりエンジンを起
動制御しシミュレーション終了命令によりシミュレーシ
ョン制御を停止させ外部へシミュレーション修了を通知
する制御手段と、 シミュレーションすべき論理対象が機能ブロックである
ノードを特定する番号および入力値を記憶する入力記憶
手段と、 命令を記憶する命令記憶手段と、 前記制御手段の制御の下で前記入力記憶手段から前記ノ
ードを指定する番号を読出して前記命令記憶手段の開始
アドレスを決定し命令のフェッチアドレスを計算するア
ドレス計算手段と、 前記命令記憶手段からの命令に基いて前記入力記憶手段
からのノードの入力値のシミュレーション演算を行う演
算実行手段と、 この演算実行手段からのシミュレーション演算結果を前
記ノードを特定する番号とともに記憶する出力記憶手段
とを含み、 前記演算実行手段は、 演算結果の一部であるキャリーを保持し次の演算へフィ
ードバックするためのキャリー格納手段と、 入力された論理値およびキャリー格納手段からのフィー
ドバックキャリー入力値のうち演算に不要な論理ビット
を演算対象からマスクする入力マスク手段と、 この入力マスク手段の出力の全ビットを入力とする論理
演算を行って1ビットの出力を得る縮退論理演算手段と
を含むことを特徴とするシミュレーションエンジン。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5317584A JP2723017B2 (ja) | 1993-12-17 | 1993-12-17 | シミュレーションエンジン |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5317584A JP2723017B2 (ja) | 1993-12-17 | 1993-12-17 | シミュレーションエンジン |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07175830A JPH07175830A (ja) | 1995-07-14 |
JP2723017B2 true JP2723017B2 (ja) | 1998-03-09 |
Family
ID=18089870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5317584A Expired - Lifetime JP2723017B2 (ja) | 1993-12-17 | 1993-12-17 | シミュレーションエンジン |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2723017B2 (ja) |
-
1993
- 1993-12-17 JP JP5317584A patent/JP2723017B2/ja not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
小池誠彦著、オーム社、「コンピュータアーキテクチャシリーズ・電子情報通信学会編 CADマシン」、50−73頁、「4.2 論理シミュレーションエンジンの例」 |
Also Published As
Publication number | Publication date |
---|---|
JPH07175830A (ja) | 1995-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5524175A (en) | Neuro-computer system for executing a plurality of controlling algorithms | |
US5490266A (en) | Process oriented logic simulation having stability checking | |
US7577874B2 (en) | Interactive debug system for multiprocessor array | |
JP2001014298A (ja) | 合成及びレイアウトのオーバーヘッドが少ないsatソルバー・アーキテクチャーを得るための方法及び装置 | |
JPS5975347A (ja) | 論理回路のシミユレ−シヨン装置 | |
US7054802B2 (en) | Hardware-assisted design verification system using a packet-based protocol logic synthesized for efficient data loading and unloading | |
CN113656227A (zh) | 一种芯片验证方法、装置、电子设备及存储介质 | |
US4821173A (en) | Wired "OR" bus evaluator for logic simulation | |
JP2723017B2 (ja) | シミュレーションエンジン | |
JP2001256048A (ja) | データ処理装置のシミュレーション | |
JP2638613B2 (ja) | プログラマブル アクセラレータ及びその方法 | |
JP3684579B2 (ja) | 分散型並列計算機のプロセッサエレメント | |
JP3696625B2 (ja) | データ駆動型情報処理装置 | |
JP3085730B2 (ja) | 複合cpuシステムの並列シミュレーション方式 | |
US20220253583A1 (en) | Message passing multi processor network for simulation vector processing | |
JP2755646B2 (ja) | データ駆動型データ処理装置 | |
JP3442175B2 (ja) | 中央演算処理装置 | |
CN118035150A (zh) | 外围器件互联扩展设备热插拔系统、方法、设备以及集群 | |
JP2765058B2 (ja) | ストリーム演算終了検知方法及びその装置 | |
JP6697457B2 (ja) | プロセッサ・コアをスレッド・モードからレーン・モードに遷移させ、2つのモードの間のデータ転送を可能にすること | |
JP5379376B2 (ja) | プロセッサの例におけるトランザクションレベルモデルとrtlとの間の等価性検証 | |
JPH0239376A (ja) | 論理回路合成装置 | |
JPH0620071A (ja) | データ駆動型情報処理装置 | |
JPH0512373A (ja) | ハードウエアシミユレータ | |
JPH0227491A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19971028 |