JP2001249824A - 論理エミュレーションプロセッサおよびそのモジュールユニット - Google Patents

論理エミュレーションプロセッサおよびそのモジュールユニット

Info

Publication number
JP2001249824A
JP2001249824A JP2000061838A JP2000061838A JP2001249824A JP 2001249824 A JP2001249824 A JP 2001249824A JP 2000061838 A JP2000061838 A JP 2000061838A JP 2000061838 A JP2000061838 A JP 2000061838A JP 2001249824 A JP2001249824 A JP 2001249824A
Authority
JP
Japan
Prior art keywords
processor
combination circuit
unit
input
control
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.)
Pending
Application number
JP2000061838A
Other languages
English (en)
Inventor
Hiroshi Tomita
広志 冨田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Hitachi Information Technology Co Ltd
Original Assignee
Hitachi Ltd
Hitachi Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd, Hitachi Information Technology Co Ltd filed Critical Hitachi Ltd
Priority to JP2000061838A priority Critical patent/JP2001249824A/ja
Priority to US09/764,284 priority patent/US20010020224A1/en
Publication of JP2001249824A publication Critical patent/JP2001249824A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Abstract

(57)【要約】 【課題】デジタル回路モデルの段数を減らし、LSI間
データ転送のバンド幅を広げることにより、論理エミュ
レーションを高速化する。 【解決手段】ソフトウェアで駆動される論理エミュレー
ションシステムであって、組合わせ回路モデルまたはメ
モリモデルをエミュレートする組合せ回路プロセッサ
と、主として順序回路モデルをエミュレートし、上記組
合せ回路に入力信号を与える複数の制御プロセッサと、
組合わせ回路プロセッサの複数の出力を選択して制御プ
ロセッサに出力する複数のマルチプレクサによって構成
される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデジタル回路の論理
エミュレーション装置およびそれを構成するモジュール
ユニットの構成に関する。
【0002】
【従来の技術】論理エミュレーションは公知の技術であ
り、FPGAを使用する方式と論理エミュレーションプ
ロセッサを使用する方式がある。
【0003】FPGAを使用する方式では、多数のFP
GAと多数のスイッチングデバイスを相互接続した装置
に、プログラミングワードをロードしてエミュレーショ
ンを実行する。プログラミングワードは、デジタル回路
モデルをFPGAの構成情報とスイッチングデバイスの
構成情報に変換したものである。デジタル回路モデルは
複数の部分回路に分割され、部分回路毎に論理合成およ
び自動配置、自動配線が行なわれ、プログラミングワー
ドに変換される。FPGAを使用する方式では、FPG
Aのピン数制約によりFPGA間のデータ転送が性能ネ
ックとなるが、FPGAの動作速度がそのままエミュレ
ーション性能となるため高速である。しかしながら、論
理変更のたびに多大な時間のかかる回路分割および論理
合成、自動配置、自動配線が必要である。
【0004】論理エミュレーションプロセッサを使用す
る方式(例えば、特開平09-101975号、発明の
名称「エミュレーションシステム」、米国特許第5,8
22,564号、発明の名称「Check pointing in an em
ulation system」)では、エミュレーションは多数の論
理エミュレーションプロセッサを相互接続した装置に、
エミュレーションプログラムをロードして実行される。
エミュレーションプログラムは、デジタル回路モデルを
論理エミュレーションプロセッサで実行可能なオブジェ
クト形式にコンパイルしたものである。コンパイルは次
の手順で行われる。まず技術マッピング処理により、デ
ジタル回路モデルは1ステップでエミュレートできる単
位の複数のサブ回路に変換され、各サブ回路はそれぞれ
複数の論理エミュレーションプロセッサに1対1にマッ
ピングされる。次にスケジューリング処理により、サブ
回路のエミュレーションが逐次的になるように、サブ回
路のエミュレーションの順番がスケジュールされる。最
後にルーティング処理により、論理エミュレーションプ
ロセッサ間のデータの受け渡しがルーティングされ、以
上により作成された技術マッピングデータ、スケジュー
リングデータ、ルーティングデータがエミュレーション
プログラムとなる。論理エミュレーションプロセッサを
使用する方式は、コンパイル時間が短いのが特徴であ
る。しかしながら、スケジューリングにより逐次制御さ
れたサブ回路のエミュレーションと、ルーティングによ
るプロセッサ間のデータ受け渡しには、多くの実行ステ
ップ数が必要となる。実回路に近い性能を得るという論
理エミュレーションの目標のためには、さらなる工夫が
必要である。
【0005】
【発明が解決しようとする課題】論理エミュレーション
プロセッサを使用する論理エミュレーション方式におい
て、上記従来の技術では、スケジューリングにより逐次
制御されたサブ回路のエミュレーションと、ルーティン
グによるプロセッサ間のデータ受け渡しに多くの実行ス
テップ数が必要であることについては配慮されておら
ず、実回路に近い性能が得られないという問題があっ
た。
【0006】まず、スケジューリングで発生する実行ス
テップは、デジタル回路モデルの技術マッピング方法に
よって変化する。例えば、回路を2入力1出力ゲートに
マッピングする米国特許第4,697,241号(発明の
名称「Hardware logic simulator」)や回路を3入力1
出力ゲートにマッピングする米国特許第5,551,01
3号(発明の名称「Multiprocessor for hardware emul
ation」)や16入力4出力にマッピングする特開平0
9-101975号(発明の名称「エミュレーションシ
ステム」)を比較すると、入力数が多いゲートでマッピ
ングした方が少ないステップ数で構成できることにな
る。もちろんどの例でもさらに入力数が多いゲートでマ
ッピングすればステップ数は減るが、従来の技術のまま
では物理的な限界がある。
【0007】次に、ルーティングで発生する実行ステッ
プは、LSIのピン数制約によるところが大きい。論理
エミュレーションシステムでは、数十個から数百個もの
論理エミュレーションプロセッサ機能を有するLSIを
接続するため、LSI間データ転送のバンド幅が狭い。
【0008】本発明の目的は、デジタル回路モデルの段
数を減らし、LSI間データ転送のバンド幅を広げるこ
とにより、さらなる高速化を実現した論理エミュレーシ
ョンシステムを提供することにある。
【0009】
【課題を解決するための手段】前記目的を達成するた
め、ソフトウェアで駆動される論理エミュレーション装
置は、積和変換された組合わせ回路モデルまたはメモリ
モデルを次々にエミュレートする1つまたは2つ以上の
組合せ回路プロセッサと、前記組合せ回路プロセッサの
入力信号を生成する制御プロセッサであって少なくとも
順序回路モデルを次々にエミュレートする複数の制御プ
ロセッサと、前記組合わせ回路プロセッサの複数の出力
から入力信号を得て、前記制御プロセッサから要求され
た入力信号を選択して前記制御プロセッサに出力する複
数のマルチプレクサを含む。
【0010】
【発明の実施の形態】論理エミュレーションの対象とな
る回路モデルは、3つに分類できる。それは組合せ回路
モデル、順序回路モデル、メモリモデルである。図16
は回路モデルの例である。ANDゲートやORゲートで構成
される組合わせ回路モデル700は、FF(フリップ・フ
ロップ)で構成される順序回路モデル701と702で
挟まれている。メモリモデル704は順序回路モデル7
02と703で挟まれている。本発明はこれら3つの回
路モデルを高速にエミュレートしようとするものであ
る。
【0011】図1は本発明の実施形態を表わす1つのモ
ジュールユニット(本実施例ではLSI)のブロック図
である。組合わせ回路プロセッサ200は組合わせ回路
モデルとメモリモデルをエミュレートし、制御プロセッ
サ300は主に順序回路モデルをエミュレートするが、
組合わせ回路プロセッサに割り当てられなかった組合わ
せ回路モデルもエミュレートする。組合わせ回路プロセ
ッサは、複数の制御プロセッサから入力信号を受け取
り、マルチプレクサ(MUX)400を使って任意の制御
プロセッサに出力信号を渡す。
【0012】図1のプロセッサ構成は回路モデルの構成
に対応している。図16の回路モデルでは、組合わせ回
路モデル700は複数の順序回路モデル701から入力
信号を受け取り、順序回路モデル702に出力信号を渡
す。また、同期動作のメモリモデル704は順序回路モ
デル702から入力信号を受け取り、順序回路モデル7
03に出力信号を渡す。組合わせ回路モデル700とメ
モリモデル704は組合わせ回路プロセッサ200でエ
ミュレートされ、順序回路モデル701、702、70
3は制御プロセッサ300でエミュレートされる。
【0013】組合わせ回路プロセッサ200と制御プロ
セッサ300は交互に実行される。組合わせ回路プロセ
ッサを実行すると組合わせ回路モデルとメモリモデルの
信号値が確定し、次に制御プロセッサを実行すると順序
回路の信号値が確定する。これを繰り返す事によって、
エミュレーションを進める事ができる。
【0014】図1の1つのモジュールユニット100
は、複数個(例えば256個)の制御プロセッサと1個
または複数個(例えば16個)の単位組合わせ回路プロ
セッサを含み、複数のモジュールユニットを接続するバ
スを構成するために、複数個(例えば256個)のルー
タ500を含む。また、制御プロセッサ300と組合わ
せ回路プロセッサ200の実行を制御するプログラムカ
ウンタ600を含んでいる。
【0015】図17は組合わせ回路モデルをコンパイル
する際に行なう、積和変換による式の変換の例である。
変換前の式G=A(B+C(D+E))+Fはゲート段
数が5段である。本発明における積和変換による変換後
の式は、G=A・B+A・C・D+A・C・E+Fとな
り、ゲート段数が2段である。積和変換によれば、どの
ような組合わせ回路もAND演算とOR演算の2段論理
に変換できる。
【0016】組合わせ回路プロセッサ200は、積和変
換した複数入力、複数出力の論理演算を行なう。図17
の例では、まずG1=A・B、G2=A・C・D、G3
=A・C・EのAND演算を同時に行ない、次にG=G
1+G2+G3+FのOR演算を行なう。このようにA
ND演算とOR演算を交互に実行する事により、組合わ
せ回路モデルの論理演算ができる。また積和変換により
ゲート段数が減った事により、組合わせ回路プロセッサ
200の演算回数が減り、エミュレーション性能が向上
する。
【0017】図2は組合わせ回路プロセッサ200を構
成する単位組合せ回路プロセッサ2000の実施形態を
表わす図である。単位組合わせ回路プロセッサは図1の
実施例に従えば組合せ回路プロセッサ200中に16個
存在する。単位組合せ回路プロセッサ2000は組合わ
せ回路演算器220と機能制御メモリ210を含んでい
る。組合わせ回路演算器220は、複数入力(例えば1
6入力)、複数出力(例えば16出力)のAND演算ま
たはOR演算のいずれかを行なう。詳細は後述する。機
能制御メモリ210には、演算の種類(AND演算また
はOR演算)を示す命令コードと、演算の内容(どの入
力を有効にするかと入力を反転するかの指定)を示す命
令オペランドを格納する。また機能制御メモリ210に
は、複数の命令コードと命令オペランドを格納し、プロ
グラムカウンタ600で逐次実行するように制御する。
【0018】プログラムカウンタの制御でANDとOR
の一組が実行されると1つの組合せ回路のエミュレーシ
ョンが実行されることになる。
【0019】命令オペランドは512ビットを持ち、2
ビットずつがペアで意味を持つ。即ち後述する図6の反
転ビットの値を先の1ビットが表し、図6のイネーブル
ビットを後の1ビットが表す(この関係を逆に定義して
も良い)。このようにして命令オペランドはその値によ
りエミュレートすべき組合せ回路の論理を表している。
【0020】組合わせ回路演算器は図6に示すように、
例えば16個の入力信号を項とする16個のAND演算
またはOR演算を同時に実行することができる。入力の
各々は論理式の変数に対応する。機能制御メモリから渡
されるイネーブル信号により入力信号を有効にするか否
かを制御し、反転信号により入力信号を反転するか否か
を制御し、命令コードの信号によりAND演算またはOR演
算のいずれかを実行する。
【0021】機能制御メモリは図2に示すように、命令
信号を格納する1ビットの命令コードと、反転信号およ
びイネーブル信号を格納する512ビット(16入力×
16関数×2信号)の命令オペランドからなるメモリア
レイである。メモリアレイの個数を例えば64個とする
と、最大64個の命令ステップが実行できる。即ち、3
2のANDとORの組(32の組合せ回路)についてのエ
ミュレーションが出来る。プログラムカウンタを進める
ことにより、これらの命令ステップを逐次実行すること
ができる。
【0022】先ず、命令コードがAND演算を示すステ
ップを実行しているとき、EOR(排他的論理和回路)6
10から625および630から645には「0」が与
えられる。イネーブル入力には命令オペランドから値が
入力され、使っていない変数には「1」が、使っている
変数には「0」が入力される。反転ビットにも命令オペ
ランド図2の値が入力され論理によって「1」または
「0」がEORにそれぞれ入力される。アンドゲート6
50から665はそれぞれの入力の何れかが「0」であ
れば出力は「0」でありANDの演算がなされる。それ
の値が一旦図1のマルチプレクサMUX400を通して
制御プロセッサ介して組合せ回路演算器220に与えら
れる。
【0023】次には命令コードがOR演算を示すステッ
プを実行する。このとき、EOR610から625およ
び630から645には「1」が与えられ、そのほかは
前述と同様である。制御プロセッサからはAND演算の
結果が与えられる。アンドゲート650から665のそ
れぞれの入力に1つでも「0」があればそれらの出力は
「0」であり、これがEOR630から645で反転さ
れ「1」となる。アンドゲートの入力は反転されたもの
であるから、こうしてORの演算がなされる。
【0024】このように、AND演算結果を一旦制御プ
ロセッサに戻し、制御プロセッサからAND演算結果を
組合せ回路演算器に与える方式とした理由は、組合せ回
路演算器220のハードウェア量を少なくし、AND演
算とOR演算とを共用するためである。この実施例では
ハードウェアの実現上制御プロセッサも組合せ回路のエ
ミュレーションに関与しているように見えるが、組合せ
回路演算器220のハードウェア量をふやして、これ自
体がシリアルにANDとORの演算をするようなハード
ウェア構成にしても良い。
【0025】図3は複数の以上説明した単位組合わせ回
路プロセッサ2000を相互結合する場合の実施形態を
表わす図である。また相互結合の3つの形態を図8から
図10に示している。図8は16個の単位組合わせ回路
プロセッサを相互接続せず、それぞれ独立に16入力1
6出力の論理演算関数を実行する場合である。図9は4
個の単位組合わせ回路プロセッサを相互接続し、32入
力32出力の論理演算を実行する場合である。図10は
16個の単位組合わせ回路プロセッサを相互接続し、6
4入力64出力の組合わせ回路プロセッサを構成する場
合である。後述するように相互接続とは図の横方向に相
互接続されているのであり各単位組合せ回路プロセッサ
の図での上からの入力は制御プロセッサ300からの入
力である。
【0026】図8の構成は組合せ回路が比較的小さな規
模であるときに適しており、図10の構成は大規模な組
合せ回路のエミュレーションに適している。図9の構成
はその中間的な規模に適すると言える。なお、図8、図
9、図10、図11でプロセッサとあるのは単位組合せ
回路プロセッサの略である。
【0027】図3の構成制御メモリ240の2ビットが
入力セレクタに与えられ、図8から図10の構成の1つ
の場合、どの制御プロセッサの出力を入力するかを選択
する。この選択については後に詳述する。また他の1ビ
ットは他の単位組合せ回路プロセッサの組合せ回路演算
器230の出力を入力するかどうかに用いられる。
【0028】図3の組合わせ回路プロセッサは構成制御
メモリ240の構成コードにしたがって、相互結合スイ
ッチA250と相互結合スイッチB260により図8から
図10に示した3つの形態に相互接続する。相互結合ス
イッチAは制御プロセッサ出力信号を選択し、組合わせ
回路プロセッサに入力する。相互結合スイッチBは、近
傍に位置する組合わせ回路プロセッサの出力信号を接続
するか否かの制御を行う。
【0029】16個の組合わせ回路プロセッサを3つの
形態に相互接続する具体的な配線を図11に示す。図1
1は制御プロセッサの何番からの入力を受け制御プロセ
ッサの何番に出力するかを示す。図でENは図3での他
の組合せ回路演算器出力を接続するかどうかを決める相
互結合スイッチBのイネーブル制御を示し、SEL25
0は図3での相互結合スイッチAの入力セレクタを示
す。例えば、プロセッサ7は図8の構成を取った場合制
御プロセッサ300からの入力は112番の制御プロセ
ッサから127番の制御プロセッサからの入力が選択さ
れ、図9、図10の構成を取った場合は48番から63
番の制御プロセッサからの入力が選択される。また、プ
ロセッサ15では図8の構成を取る場合は240番から
255番の制御プロセッサからの入力が選択され、図9
の構成をとる場合は112番から127番の制御プロセ
ッサからの入力が選択される。このような選択は図3の
構成制御メモリ240の構成コードにより行なわれる。
図3のマルチプレクサ入力は図11の出力として表さ
れ、図1のマルチプレクサ400に与えられる。
【0030】図6は組合せ回路演算器220の構成と動
作の基本的なものを説明するものであって、複数の単位
組合せ回路プロセッサ2000が組み合わされる場合の
実際の回路構成は図7のようである。図3の組合わせ回
路演算器は図7に示すように、相互結合スイッチBによ
ってイネーブル制御された左近傍に位置する組合わせ回
路プロセッサの出力信号を入力し、組合わせ回路演算の
結果を右近傍に位置する組合わせ回路プロセッサの入力
信号に出力する。このように組合せ回路演算器が相互接
続できるようになっている。
【0031】複数の組合せ回路プロセッサを相互に接続
し、さまざまな構成を可能とすることにより、入力数と
出力数が異なる多様な論理演算関数に対応することがで
きる。
【0032】構成制御メモリは図3に示すように、3ビ
ットの構成コード(2ビットの入力セレクタ信号と1ビ
ットのイネーブル制御信号)からなるメモリアレイであ
る。メモリアレイの個数を例えば64個とすると、最大
64個の命令ステップが実行できる。プログラムカウン
タを進めることにより、各命令ステップ毎に相互接続の
構成を変えながら、論理演算関数を逐次実行することが
できる。
【0033】複数の単位組合せ回路プロセッサ2000
を相互に接続する構成形態を、演算する論理演算関数の
入力数と出力数に従って動的に切替えることにより、組
合せ回路プロセッサのリソースを有効に利用できる。
【0034】図4は単位組合わせ回路プロセッサ200
0がメモリモデルをエミュレートする場合の実施形態を
表わす図である。単位組合わせ回路プロセッサは、組合
わせ回路モデルをエミュレートすることができるだけで
なく、メモリモデルをエミュレートすることができる。
図2の機能制御メモリ210は32Kビットを越える容
量を持つランダムアクセスメモリであるからこれにデー
タの書き込み読み出しを行なうことで32Kビットのメ
モリのエミュレーションが出来る。図4のランダム・ア
クセス・メモリ(RAM)213は制御プロセッサの出力
から入力データと書き込み許可信号(WE)とアドレスを
受け取り、マルチプレクサに(または相互接続された他
の単位組合わせ回路プロセッサへ)出力データを渡す非
同期式SRAMである。WEを使ってRAM213への書込みと
読込みを制御すればRAMモデルをエミュレートでき、WE
を使わずにRAM213からの読込みのみをおこなえばROM
モデルをエミュレートできる。RAMモデルまたはROMモデ
ルの同期動作をエミュレートする場合には、制御プロセ
ッサで入力レジスタと出力レジスタをエミュレートし
て、メモリモデルのクロックに同期して動作すればよ
い。
【0035】図4のアドレスレジスタ214とWE(書き
込み許可信号)レジスタ215は命令コードメモリ21
2の指示にしたがって、制御プロセッサの出力信号をラ
ッチする。制御プロセッサはアドレスと入力データを交
互に出力するので、アドレスを出力したタイミングでア
ドレスレジスタとWEレジスタにラッチする。
【0036】図4のRAM213は図2の機能制御メモリ
210と入力数、出力数、メモリの容量が同一のもので
ある。機能制御メモリは、組合わせ回路プロセッサが組
合わせ回路モデルをエミュレートする場合には、組合わ
せ回路演算器の制御情報を格納し、メモリモデルをエミ
ュレートする場合には、メモリモデルの内容を格納す
る、という2つの役割を担うことによって、リソースを
有効に利用するよう構成することもできる。
【0037】図4のRAM213は命令コードメモリ21
2の指示にしたがって、メモリの幅と深さを動的に切替
えることができる。例えば32KビットのRAMではデ
ータ幅(ビット数)を1,2,4,8,16から選択で
きるようにすると、アドレスビット数はそれぞれ15,
14,13,12,11ビットとなる。この機能によっ
て多様なデータ幅をもつメモリモデルを高速にエミュレ
ートすることができる。
【0038】図4の命令コードメモリ212はWEとア
ドレスをラッチするタイミング信号1ビットとメモリの
幅と深さを示す信号3ビットからなるメモリアレイであ
る。メモリアレイの個数を例えば64個とすると、最大
64個の命令ステップが実行できる。プログラムカウン
タを進めることにより、これらの命令ステップを逐次実
行することができる。データ幅の異なる複数のメモリモ
デルを1つのRAM213でエミュレートすることが可
能となる。
【0039】図5はルータ500とマルチプレクサ40
0と制御プロセッサ300の実施形態を表わす図であ
る。図5の制御演算器310の詳細図である図15と合
わせて構成と動作を説明する。始めに概略構成を説明す
る。
【0040】図5のルータ500は制御プロセッサの演
算結果を格納するラッチと、256本の外部入力信号信
号から任意の1信号を選択するMUX1と、MUX1の出力およ
びラッチ出力から1信号を選択するMUX2から構成され
る。MUX1の出力は制御プロセッサの入力信号となり、MU
X2の出力は外部出力信号となる。このルータを用いれ
ば、複数のモジュールユニット100を相互接続するバ
スが構成できる。
【0041】図5のマルチプレクサ400は256本の
組合わせ回路プロセッサ出力信号から任意の1信号を選
択する。
【0042】図5に示す制御プロセッサ300は、順序
回路モデルと組合わせ回路モデルを表現する複数入力
(例えば4入力)1出力の論理演算関数をプログラムカ
ウンタ600の各ステップ毎に実行する。そのために、
制御プロセッサは制御演算器310と制御プロセッサ制
御メモリ320とレジスタ330を含んでいる。レジス
タ330は4つの入力信号を格納するレジスタFI-0VA
L、FI-1VAL、FI-2VAL、FI-3VALと論理演算関数を実行
した結果を格納するNEXTVAL(次の順序回路のエミュレー
ションに使用される)によって構成される。制御演算器
310の実行に先立って、FI-0VAL、FI-1VAL、FI-2VA
L、FI-3VALには、それぞれ制御プロセッサ制御メモリの
FI-0、FI-1、FI-2、FI-3が指すVALをロードする。制御
演算器はFI-0VAL、FI-1VAL、FI-2VAL、FI-3VAL、NEXTV
AL(1つ前の論理演算結果)の5つのレジスタを論理演
算関数の入力とし、プログラムカウンタが指すFN(論理
演算の種類)にしたがって論理演算を行ない、NEXTVAL
に論理演算結果を格納する。
【0043】図5に示す制御プロセッサ300は、ルー
タ500とマルチプレクサ400の制御も行なう。制御
プロセッサ制御メモリのRからMUX1、MUX2の選択信号を
入力することで、プログラムカウンタ600の各ステッ
プ毎にルータのルーティング経路を切替えることができ
る。同様に、制御プロセッサ制御メモリのMからマルチ
プレクサ400の選択信号を入力することで、プログラ
ムカウンタの各ステップ毎に組合わせ回路プロセッサか
らの入力を切替えることができる。また制御プロセッサ
制御メモリのRは、ルータ500のラッチがデータを取
り込むタイミング信号も格納する。
【0044】図5のNEXTVALは、制御演算器の出力とMUX
1の出力とマルチプレクサ400の出力からなる3ビッ
トで構成され、これら3つの信号を格納した後、プログ
ラムカウンタが指すVALにストアされる。
【0045】図15は制御演算器の実施形態を表わす図
である。図15のMUX0から3は、レジスタFI-0VAL、FI-1
VAL、FI-2VAL、FI-3VAL、NEXTVALの中から4つの信号
を選択する。この4つの信号を入力として、ルックアッ
プテーブルLUTにより論理演算を実行する。LUTには、制
御プロセッサ制御メモリのFNに格納されているF(16
ビット)の値がロードされ、65536種類(2の16
乗)の論理演算が可能である。
【0046】以上の概略の構成の説明の次に、図5、図
15で示された制御プロセッサ300等の詳細または作
用を説明する。
【0047】制御プロセッサ制御メモリ320はFNか
らRまでのフィールドを持つメモリアレイであり、1行
が1つの順序回路を表している。プログラムカウンタ6
00の制御により0番から63番まで順に繰り返し実行
される。FNはファンクションでルックアップテーブル
に格納すべきデータが入っている16進法のコードであ
る。次の信号値VALはその時点でのNEXTVALの
内容が入る。FI−0からFI−3は他のアレイ(行)の
番号である。これはエミュレートする順序回路の構成に
より異なる。Mはマルチプレクサ400を制御する16
進法の表記の信号であり、先に説明した単位組合せ回路
プロセッサ2000の各々の出力のどれを自制御プロセ
ッサに取り込むかが決められる。Rは外部入力信号から
1ビットを選択すると共に、それをMUX2で単に中継
するだけで他の制御プロセッサに送るかどうかの選択も
する。一方制御演算器310から出力されたエミュレー
ション結果をラッチにセットするトリガ信号を作る。
【0048】レジスタ330には4個のラッチがある。
FI−0VALにはFI−0のフィールドで指定された
行の信号値がセットされる。以下同様にFI−1VA
L、FI−2VAL、FI−3VALにそれぞれ対応す
るフィールドで示された行の信号値がセットされる。N
EXT VALには制御演算器310の出力と組合せ回
路出力から選択された1ビットと外部入力信号から選択
された信号がラッチされる。これは制御プロセッサ制御
メモリ320のVALの欄に格納される。
【0049】図15で、FNの最初の16ビットはルッ
クアップテーブルLUTに格納される。他の8ビットは
前記レジスタ330の各ラッチの出力からそれぞれ1ビ
ットを選択するマルチプレクサMUX0からMUX3に
与えられる。マルチプレクサでの選択は対象とする回路
の大きさによって決まる。選択されたビットをアドレス
としてルックアップテーブルLUTを参照し、エミュレ
ート結果を得る。
【0050】図12は5個のモジュールユニットが、完
全結合網により相互接続された実施形態を表わす図であ
る。図12でモジュール3が持つ256個の信号を複数
の経路を使ってモジュール0に転送する例を説明する。
まずモジュール3では256個の信号を64個の信号に
4分割し、4分割したそれぞれの信号群は、隣接する4
つのモジュール0、1、2、4に転送される。つぎにモ
ジュール1、2、4から信号群をそれぞれモジュール0
に転送する。このようにモジュール3からモジュール0
への直接経路とは別に、モジュール1、2、4を中継す
る経路を使うことによって、モジュール間のデータ転送
のバンド幅が拡大する。また複数のデータを同時に転送
する場合、経路の競合がおこらないようにコンパイル時
に調整する。中継するモジュールでは図5のルータ50
0に示されたMUX1からMUX2への短絡のルートに
より信号を中継する。
【0051】図13は64個のモジュールユニットが、
6次元ハイパーキューブによりバスで相互接続された実
施形態を表わす図である。一般にハイパーキューブ網で
はe-cubeルーティングアルゴリズムにより経路長を最小
化するようにルーティングされ、経路が1つ求められる
(例えば、B.ウイルキンソン著の、「計算機設計技
法」、(株)トッパン、1994年4月、325ペー
ジ)。メッセージの送り元のノードアドレスをP=Pn-1P
n-2・・・P1P0とし、送り先をD=Dn-1Dn-2・・・D1D0とする
(ノードアドレスは各モジュールユニットに付けたユニ
ークな2進数の番号)。PとDの排他的論理和Rを各ビ
ット毎に求め、R=Rn-1Rn-2・・・R1R0を得る。Ri =1である
i番目のビットについて、順次Pの同じビット位置を反
転すると経路が求められる。例えば6次元ハイパーキュ
ーブにおけるノードP=000101からノードD=10
0010へのルーティングを考える。R=100111
となるので、ノードPについてi =5、2、1、0のビ
ットを順次反転すると経路が求められる。まずP=00
0101の5番目のビットを反転すると100101、
次に2番目のビットを反転すると100001、次に1
番目のビットを反転すると100011、最後に0番目
のビットを反転するとノードD=100010へとルー
ティングされる。
【0052】今度はデータ転送を多重化するために、図
13でノードP=000101から複数の経路を使って
ノードD=100010にルーティングする例を説明す
る。これはe-cubeルーティングアルゴリズムを拡張した
アルゴリズムである。まず隣接する6つの経路を求め
る。Pを1ビットずつ反転すると、Q5=100101、Q
4=010101、Q3=001101、Q2=000001、
Q1=000111、Q0=000100の5つの隣接する経
路が求まる。つぎにQ5からQ0について、e-cubeルーティ
ングアルゴリズムを摘要する。ただし経路が重複しない
ように、ノードQiの経路はi - 1のビット位置から(i =
0の場合は5番目のビットから)下方に一巡するように
スキャンする。Q5とDの排他的論理和は000111と
なるので、ノードQ5についてi =2、1、0のビットを
順次反転すると経路が求められる。Q4とDの排他的論理
和は110111となるので、ノードQ4についてi =
2、1、0、5、4のビットを順次反転すると経路が求
められる。Q3とDの排他的論理和は101111となる
ので、ノードQ3についてi =2、1、0、5、3のビッ
トを順次反転すると経路が求められる。Q2とDの排他的
論理和は100011となるので、ノードQ2についてi
=1、0、5のビットを順次反転すると経路が求められ
る。Q1とDの排他的論理和は100101となるので、
ノードQ1についてi =0、5、2のビットを順次反転す
ると経路が求められる。Q0とDの排他的論理和は100
110となるので、ノードQ0についてi =5、2、1の
ビットを順次反転すると経路が求められる。複数の経路
を使うことによって、モジュール間のデータ転送のバン
ド幅が拡大する。また複数のデータを同時に転送する場
合、経路の競合がおこらないようにコンパイル時に経路
を選択し、調整することができる。
【0053】図14は論理エミュレーションシステムの
実施形態を表わす図である。ホストコンピュータはデジ
タル回路モデルを読み込んでコンパイルを行ない、エミ
ュレーションプログラムを作成する。さらにホストコン
ピュータはエミュレーションプログラムを論理エミュレ
ーション装置にロードし、論理エミュレーションが可能
な状態にする。論理エミュレーション装置は複数のモジ
ュールユニット100で構成され、それぞれのモジュー
ルユニットはクロック供給装置のクロックに同期して動
作する。停止条件モニタは論理エミュレーションの停止
条件を監視し、停止条件が成立するとクロックの供給を
やめ、エミュレーション結果をホストコンピュータに転
送する。ホストコンピュータの実行制御にしたがって論
理エミュレーション装置に対し信号値の代入や参照を行
ない、波形表示することもできる。論理エミュレーショ
ン装置はCPUやメモリなどの実チップをデジタル回路
モデルと連動し、論理エミュレーションができる。論理
エミュレーション装置とターゲットボードのLSIソケ
ットをケーブルで接続すれば、インサーキットエミュレ
ーションができる。
【0054】
【発明の効果】本発明によれば、論理エミュレーション
プロセッサを使用する論理エミュレーション方式におい
て、デジタル回路モデルの段数を減らし、LSI間デー
タ転送のバンド幅を広げることができ、論理エミュレー
ションの実行を高速化できるという利点が得られる。
【図面の簡単な説明】
【図1】本発明の実施形態を表わす1つのモジュールユ
ニットのブロック図。
【図2】組合わせ回路プロセッサの実施形態を表わす
図。
【図3】複数の組合わせ回路プロセッサを相互接続する
場合の実施形態を表わす図。
【図4】組合わせ回路プロセッサがメモリモデルをエミ
ュレートする場合の実施形態を表わす図。
【図5】ルータとマルチプレクサと制御プロセッサの実
施形態を表わす図。
【図6】組合わせ回路演算器の実施形態を表わす図。
【図7】複数の組合わせ回路プロセッサを相互接続する
場合の組合わせ回路演算器の実施形態を表わす図。
【図8】16個の組合わせ回路プロセッサを相互接続せ
ず、それぞれ独立に16入力16出力の論理演算関数を
実行する図。
【図9】4個の組合わせ回路プロセッサを相互接続し、
32入力32出力の組合わせ回路プロセッサを構成する
図。
【図10】16個の組合わせ回路プロセッサを相互接続
し、64入力64出力の組合わせ回路プロセッサを構成
する図。
【図11】16個の組合わせ回路プロセッサを3つの形
態に相互接続するための配線を表わす図。
【図12】5個のモジュールユニットが完全結合網によ
り相互接続された実施形態を表わす図。
【図13】64個のモジュールユニットが6次元ハイパ
ーキューブにより相互接続された実施形態を表わす図。
【図14】論理エミュレーションシステムの実施形態を
表わす図。
【図15】制御演算器の実施形態を表わす図。
【図16】組合わせ回路モデル、順序回路モデル、メモ
リモデルの例を表わす図。
【図17】組合わせ回路を積和変換する例を表わす図。
【符号の説明】
100:モジュールユニット、200:組合せ回路プロ
セッサ、300:制御プロセッサ、400:マルチプロ
セッサ、500:ルータ、600:プログラムカウン
タ。
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B046 AA08 BA03 CA01 JA05 5B048 BB02

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】複数の入力信号と複数の出力信号を有し積
    和変換された組合わせ回路モデルまたはメモリモデルを
    エミュレートする1または2つ以上の単位組合せ回路プ
    ロセッサと、前記単位組合せ回路プロセッサの入力信号
    を生成し且つ順序回路モデルをエミュレートし複数の入
    力信号と1つまたは2つ以上の出力信号を有する複数の
    制御プロセッサと、前記単位組合わせ回路プロセッサの
    複数の出力から入力信号を得て前記制御プロセッサから
    要求された入力信号を選択して前記制御プロセッサに出
    力する複数のマルチプレクサとを備えたことを特徴とす
    る論理エミュレーションプロセッサのモジュールユニッ
    ト。
  2. 【請求項2】前記単位組合せ回路プロセッサはAND演
    算またはOR演算を示す命令コードと、命令オペランド
    を記憶した機能制御メモリと、前記制御プロセッサの出
    力を入力とし積和変換された組合せ回路のAND演算を
    前記機能制御メモリの命令コードのANDを示す値とオ
    ペランドの値を入力することで擬似し、積和変換された
    組合せ回路のOR演算を前記機能制御メモリの命令コー
    ドのORを示す値とオペランドの値を入力することで擬
    似する組合せ回路演算器を備えたことを特徴とする請求
    項1記載の論理エミュレーションプロセッサのモジュー
    ルユニット。
  3. 【請求項3】前記オペランドは前記組合わせ回路演算器
    において、入力信号を有効にするか、および反転するか
    を制御する情報を含むことを特徴とする請求項2記載の
    論理エミュレーションプロセッサのモジュールユニッ
    ト。
  4. 【請求項4】前記単位組合せ回路プロセッサは複数の前
    記単位組合せ回路プロセッサを相互に結合する相互結合
    スイッチとを備えたことを特徴とする請求項1記載の論
    理エミュレーションプロセッサのモジュールユニット。
  5. 【請求項5】前記組合わせ回路プロセッサはそれぞれ複
    数の制御プロセッサ出力を持つ複数の出力群の1つを選
    択して入力する入力セレクタと、複数の単位組合せ回路
    プロセッサの相互結合の組合せの構成の違いを示し前記
    入力セレクタに前記単位組合せ回路プロセッサの組合せ
    の構成に従い前記出力群の1つを選択せしめる構成コー
    ドとを備えたことを特徴とする請求項4記載の論理エミ
    ュレーションプロセッサのモジュールユニット。
  6. 【請求項6】前記単位組合せ回路プロセッサは制御プロ
    セッサからの出力信号を入力データと、書き込みアドレ
    スまたは読み出しアドレスと、書き込み許可信号として
    受け取り、その出力データを前記単位組合せ回路プロセ
    ッサの出力とするメモリを備えたことを特徴とする請求
    項1記載の論理エミュレーションプロセッサのモジュー
    ルユニット。
  7. 【請求項7】前記機能制御メモリが記憶装置のエミュレ
    ートをするものであって、前記機能制御メモリは制御プ
    ロセッサからの出力信号を入力データと、書き込みまた
    は読み出しアドレス、および書き込み許可信号として受
    け取り、前記機能制御メモリの出力データを前記単位組
    合せ回路プロセッサの出力とすることを特徴とする請求
    項2記載の論理エミュレーションプロセッサのモジュー
    ルユニット。
  8. 【請求項8】前記メモリの幅と深さとを指示する命令コ
    ードを記憶した命令コードメモリを有し、前記命令コー
    ドメモリから読み出されたコードで指定されるデータの
    幅で前記データの書き込み、読み出しを行なうことを特
    徴とする請求項6記載の論理エミュレーションプロセッ
    サのモジュールユニット。
  9. 【請求項9】複数の入力信号と複数の出力信号を有し組
    合わせ回路モデルまたはメモリモデルをエミュレートす
    る1または2つ以上の単位組合せ回路プロセッサと、前
    記単位組合せ回路プロセッサの入力信号を生成し且つ順
    序回路モデルをエミュレートし複数の入力信号と1つま
    たは2つ以上の出力信号を有する複数の制御プロセッサ
    と、前記単位組合わせ回路プロセッサの複数の出力から
    入力信号を得て前記制御プロセッサから要求された入力
    信号を選択して前記制御プロセッサに出力する複数のマ
    ルチプレクサとを備えた論理エミュレーションプロセッ
    サのモジュールユニットが相互接続されたものであっ
    て、M個の前記モジュールユニットが完全結合網で相互
    接続される手段を有し、前記モジュールユニット間で転
    送する複数の信号値を最大M−1個の信号群に分割し、
    分割された信号群をそれぞれ隣接する複数の前記モジュ
    ールユニットを中継することで複数の経路を使って転送
    する手段を有することを特徴とする論理エミュレーショ
    ンプロセッサ。
  10. 【請求項10】複数の入力信号と複数の出力信号を有し
    組合わせ回路モデルまたはメモリモデルをエミュレート
    する1または2つ以上の単位組合せ回路プロセッサと、
    前記単位組合せ回路プロセッサの入力信号を生成し且つ
    順序回路モデルをエミュレートし複数の入力信号と1つ
    または2つ以上の出力信号を有する複数の制御プロセッ
    サと、前記単位組合わせ回路プロセッサの複数の出力か
    ら入力信号を得て前記制御プロセッサから要求された入
    力信号を選択して前記制御プロセッサに出力する複数の
    マルチプレクサとを備えた論理エミュレーションプロセ
    ッサのモジュールユニットが相互接続されたものであっ
    て、ある前記モジュールユニットをバスによって隣接接
    続する前記モジュールユニットの数がN個であることを
    特徴とするN次元ハイパーキューブで相互接続する手段
    と、前記モジュールユニット間で転送する複数の信号値
    を最大N個の信号群に分割し、メッセージの送り元のノ
    ードアドレスをP=Pn-1Pn-2・・・P1P0とし、送り先をD=Dn-
    1Dn-2・・・D1D0としたとき(ノードアドレスは各モジュー
    ルユニットに付けたユニークな2進数の番号)、隣接す
    るN個の経路を得るために、Pの各ビットを1ビットず
    つ反転したQn-1=(not Pn-1)Pn-2・・・P1P0、Qn-2=Pn-1(no
    t Pn-2)・・・P1P0、・・・、Q1=Pn-1Pn-2・・・(not P1)P0、Q0=
    Pn-1Pn-2・・・P1(not P0)を求める手順1を行ない、つぎ
    にQn-1からQ0とDの排他的論理和を各ビット毎におこな
    ったRn-1からR0を求める手順2を行ない、つぎにQ iか
    らDまでの経路を得るために、R iのi -1のビット位置
    から(i =0の場合はn-1番目のビットから)下方に一巡
    するようにスキャンして、値が1であるR iのビット位
    置と同じQ iのビット位置を順次反転する手順3をiがn-
    1から0まで行なうことによって求められたN個の経路を
    使って前記分割した信号群をそれぞれ異なる経路を使っ
    て転送する手段とを有することを特徴とする論理エミュ
    レーションプロセッサ。
JP2000061838A 2000-03-02 2000-03-02 論理エミュレーションプロセッサおよびそのモジュールユニット Pending JP2001249824A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000061838A JP2001249824A (ja) 2000-03-02 2000-03-02 論理エミュレーションプロセッサおよびそのモジュールユニット
US09/764,284 US20010020224A1 (en) 2000-03-02 2001-01-19 Logic emulation processor and module unit thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000061838A JP2001249824A (ja) 2000-03-02 2000-03-02 論理エミュレーションプロセッサおよびそのモジュールユニット

Publications (1)

Publication Number Publication Date
JP2001249824A true JP2001249824A (ja) 2001-09-14

Family

ID=18581928

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000061838A Pending JP2001249824A (ja) 2000-03-02 2000-03-02 論理エミュレーションプロセッサおよびそのモジュールユニット

Country Status (2)

Country Link
US (1) US20010020224A1 (ja)
JP (1) JP2001249824A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444276B2 (en) 2005-09-28 2008-10-28 Liga Systems, Inc. Hardware acceleration system for logic simulation using shift register as local cache
JP2009527858A (ja) * 2006-02-21 2009-07-30 ケイデンス デザイン システムズ インコーポレイテッド 可変入力プリミティブを有するハードウェアエミュレータ
JP2009539186A (ja) * 2006-05-31 2009-11-12 ケイデンス デザイン システムズ インコーポレイテッド ハードウエアエミュレーションシステムのプロセッサを同期化する方法及び装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002230065A (ja) * 2001-02-02 2002-08-16 Toshiba Corp システムlsi開発装置およびシステムlsi開発方法
DE10131145B4 (de) * 2001-06-28 2005-07-14 Innovent E.V. Zusammensetzung zum zellspezifischen Transfer von Wirkstoffen
US7953588B2 (en) * 2002-09-17 2011-05-31 International Business Machines Corporation Method and system for efficient emulation of multiprocessor address translation on a multiprocessor host
US7496494B2 (en) * 2002-09-17 2009-02-24 International Business Machines Corporation Method and system for multiprocessor emulation on a multiprocessor host system
US9043194B2 (en) * 2002-09-17 2015-05-26 International Business Machines Corporation Method and system for efficient emulation of multiprocessor memory consistency
US8108843B2 (en) * 2002-09-17 2012-01-31 International Business Machines Corporation Hybrid mechanism for more efficient emulation and method therefor
US7337103B2 (en) * 2004-01-15 2008-02-26 International Business Machines Corporation Method and apparatus for the automatic correction of faulty wires in a logic simulation hardware emulator / accelerator
US20070073999A1 (en) * 2005-09-28 2007-03-29 Verheyen Henry T Hardware acceleration system for logic simulation using shift register as local cache with path for bypassing shift register
US20070074000A1 (en) * 2005-09-28 2007-03-29 Liga Systems, Inc. VLIW Acceleration System Using Multi-state Logic
US8468009B1 (en) * 2006-09-28 2013-06-18 Cadence Design Systems, Inc. Hardware emulation unit having a shadow processor
US7904288B1 (en) * 2006-11-06 2011-03-08 Cadence Design Systems, Inc. Hardware emulator having a variable input emulation group
US10860763B1 (en) 2015-09-24 2020-12-08 Cadence Design Systems, Inc. Data routing and multiplexing architecture to support serial links and advanced relocation of emulation models
US9910810B1 (en) * 2015-10-23 2018-03-06 Cadence Design Systems, Inc. Multiphase I/O for processor-based emulation system
CN115562969B (zh) * 2022-12-05 2023-04-07 深圳市唯特视科技有限公司 神经网络处理器仿真评估方法、系统、电子设备及介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5551013A (en) * 1994-06-03 1996-08-27 International Business Machines Corporation Multiprocessor for hardware emulation
US5822564A (en) * 1996-06-03 1998-10-13 Quickturn Design Systems, Inc. Checkpointing in an emulation system
US6141636A (en) * 1997-03-31 2000-10-31 Quickturn Design Systems, Inc. Logic analysis subsystem in a time-sliced emulator
FR2795840B1 (fr) * 1999-07-02 2001-08-31 Commissariat Energie Atomique Reseau de processeurs paralleles avec tolerance aux fautes de ces processeurs, et procede de reconfiguration applicable a un tel reseau

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444276B2 (en) 2005-09-28 2008-10-28 Liga Systems, Inc. Hardware acceleration system for logic simulation using shift register as local cache
JP2009527858A (ja) * 2006-02-21 2009-07-30 ケイデンス デザイン システムズ インコーポレイテッド 可変入力プリミティブを有するハードウェアエミュレータ
JP2009539186A (ja) * 2006-05-31 2009-11-12 ケイデンス デザイン システムズ インコーポレイテッド ハードウエアエミュレーションシステムのプロセッサを同期化する方法及び装置

Also Published As

Publication number Publication date
US20010020224A1 (en) 2001-09-06

Similar Documents

Publication Publication Date Title
US7260794B2 (en) Logic multiprocessor for FPGA implementation
JP2989518B2 (ja) 多重プロセッサ・エミュレーション・システム
US5920712A (en) Emulation system having multiple emulator clock cycles per emulated clock cycle
US5603043A (en) System for compiling algorithmic language source code for implementation in programmable hardware
JP2001249824A (ja) 論理エミュレーションプロセッサおよびそのモジュールユニット
US6618698B1 (en) Clustered processors in an emulation engine
US8346530B2 (en) Logic design modeling and interconnection
US6301553B1 (en) Method and apparatus for removing timing hazards in a circuit design
JPH0680511B2 (ja) シミユレーシヨン・エンジン
US5822564A (en) Checkpointing in an emulation system
US6915410B2 (en) Compiler synchronized multi-processor programmable logic device with direct transfer of computation results among processors
US6141636A (en) Logic analysis subsystem in a time-sliced emulator
US10768899B2 (en) Matrix normal/transpose read and a reconfigurable data processor including same
US5721953A (en) Interface for logic simulation using parallel bus for concurrent transfers and having FIFO buffers for sending data to receiving units when ready
JP3896177B2 (ja) エミュレーションシステム
US7904288B1 (en) Hardware emulator having a variable input emulation group
Agrawal et al. MARS: A multiprocessor-based programmable accelerator
US6832185B1 (en) Non-synchronous hardware emulator
US20010025238A1 (en) Emulation system and method
JP3212709B2 (ja) ロジックシミュレーション装置
US11194942B1 (en) Emulation system supporting four-state for sequential logic circuits
Anderson Simulation and analysis of barrier synchronization methods
Hadley The performance enhancement of a run-time reconfigurable FPGA system through partial reconfiguration
US11461522B1 (en) Emulation system supporting computation of four-state combinational functions
KR100965856B1 (ko) 순차 실행 고급 프로그래밍 언어를 이용한 디지털 집적 회로 설계, 시뮬레이션 및 검증 방법 및 시스템