JPH04216174A - ハードウェア・アクセラレータを用いた論理シミユレーション方法および装置 - Google Patents

ハードウェア・アクセラレータを用いた論理シミユレーション方法および装置

Info

Publication number
JPH04216174A
JPH04216174A JP3060765A JP6076591A JPH04216174A JP H04216174 A JPH04216174 A JP H04216174A JP 3060765 A JP3060765 A JP 3060765A JP 6076591 A JP6076591 A JP 6076591A JP H04216174 A JPH04216174 A JP H04216174A
Authority
JP
Japan
Prior art keywords
accelerator
state
hardware accelerator
hardware
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP3060765A
Other languages
English (en)
Other versions
JPH0727538B2 (ja
Inventor
Dennis F Ackerman
デニス・フランク・アカマン
David R Bender
デビッド・ランダ・ベンダー
Salina S Chu
サリナ・ソオ・ユウ・チュウ
George R Deibert
ジョージ・ロバート・デイバート
Gary G Hallock
ガリー・グリフェン・ハーロック
David E Lackey
デビット・アーネスト・ラッキー
Robert G Sheldon
ロバート・ジョージ・シェルダン
Thomas A Stranko
トーマス・アンドリュ・ストランコ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04216174A publication Critical patent/JPH04216174A/ja
Publication of JPH0727538B2 publication Critical patent/JPH0727538B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、概略的には、論理回
路のシミュレーション・システム、および、そのシミュ
レーション・プロセスをスピード・アップするための、
ハードウエア・アクセラレータを用いてなる方法に向け
られたものである。これをより詳細にいえば、エラーの
状態またはその他の臨界的なシステムの状態に立ち至っ
たときに、自動的なエラー事象の分離およびトレースの
準備をするために、ハードウエア・アクセラレータをソ
フトウエア・シミュレータと関連してランさせるための
対話型の方法に関するものである。これを更に詳細にい
えば、この発明は、ハードウエア・アクセラレータ上で
エラー時点を分離した後、シュミレーションをソフトウ
エア・シュミレータに移して、問題の解析のために要求
される所要の詳細なトレース情報を生成させるような機
構に向けられたものである。
【0002】
【従来の技術】大規模集積回路または超大規模集積回路
(LSIおよびVLSI)の設計においては、その回路
の複雑さのために、チップまたは回路デバイスの生産を
行う製造作業に実際に入るのに先だって、回路をシミュ
レートすることが必要とされている。更に、チップ上の
回路デバイスの密度とともに回路チップの複雑さが増大
するために、多くの可能性のある条件の下で、これらの
デバイスの動作をシミュレートする必要性が更に重要に
なってきている。一般的にいえば、論理回路デバイスの
性能および動作をシミュレートするためには、2種類の
シミュレーション技術のいずれかを用いることが必要で
あった。
【0003】これらの技術の一つで採用されているソフ
トウエア・シミュレーション・モデルは、ハードウエア
論理の記述を受け入れ、また、所望の出力の状態および
信号を生成させるために、一組の入力信号の記述をも受
け入れるものである。
【0004】他の代替的なものは、ハードウエア・モデ
リングである。しかしながら、ハードウエア・モデリン
グは、百万を超える論理ゲートを用いるような大規模な
回路の設計には、その実用性が極めて乏しいものである
。大規模なシステムの小さな部品以外の、外製論理モデ
ルの物理的なサイズはハードウエア・モデリングを不可
能にしている。初期のハードウエア・デバイスを用いる
ハードウエア・モデリングは、この問題に対する実際的
な解決とはならない。特に、初期の技術的な部分でのコ
ストは極めて高く、また、これらの部品の多くは再三に
わたって改良されることが多いものである。このために
、ハードウエア・モデリングの技術に対して相当なコス
トが付加されることになる。これに加えて、デバッグの
プロセスにおいて、それ自体による問題が生じる。設計
支援をもってしても、VLSIの設計でデバッグをする
ことは困難である。
【0005】また、過去何年かの間にソフトウエア・シ
ミュレータが相当な進歩をしたとしても、ソフトウエア
・シミュレーションにも重大な欠点もある。ソフトウエ
ア・シミュレータの実行能力は、モデルのサイズに依存
する程度が極めて高いものである。数万もの論理ゲート
を有する回路デバイスのシミュレートをしようとすると
、ソフトウエア・シミュレータは極めて遅くなる。特に
、従来のソフトウエア・シミュレータによっても、それ
らで一般的に可能とされることは、フル・サイズのメイ
ンフレーム・マシンに対応する実行について、1秒当り
数個のCPUサイクルと等価の実行をすることだけであ
る。このために、1秒当り何百万ものCPUサイクルを
実行するメインフレーム論理をシミュレートするときに
は、同じ時間内にソフトウエア・シミュレータでできる
ことは、10CPUサイクルそこそこの実行をシミュレ
ートするだけであることが認められる。VLSIの状態
およびチップ生産のコストに基づいて必要になる徹底的
なレベルでの検証のためには、これでは不十分なことは
明らかである。特に、必要とされる検証の程度により、
多くのテスト・ケースの発生を指示されることがある。 かくして、数万ものテスト・ケースが多数であるように
みえたとしても、これは実際にはミリ秒単位のマシン動
作に対応するだけであり、シミュレーションの結果を信
頼する時間としては短かすぎるものである。
【0006】
【発明が解決しようとする課題】かくして、ソフトウエ
ア・シミュレーションおよびハードウエア・モデリング
の双方に、大規模のVLSI回路のためには限界がある
ことが認められる。この問題に対する最も有望な解決策
の一つは、ハードウエア支援されるシミュレーションの
領域内にある。この方法では、プロセスの部分に対して
ハードウエア・アクセラレータが用いられる。ハードウ
エアに対する設計およびチップ生産の進行に先だって、
シミュレーションのメジャー・サイクル(例えば、何1
0億サイクルもの)をランさせるための機構が設けられ
る。また、ハードウエアで支援されるシミュレーション
は、実際のハードウエアにおいて発見される問題を再現
する能力を付与するためにも十分に高速なものである。 その唯一の欠点は、問題を容易に隔離して、問題のデバ
ッグに必要なトレース情報を収集する能力であった。こ
の発明によれば、この後者の問題に対する解決が与えら
れる。
【0007】より詳細には、ハードウエア支援されるシ
ミュレーション(ハードウエア・アクセラレータ)によ
って、マシン・サイクルを迅速に実行するための機構が
与えられる。しかしながら、エラーまたはその他の異常
な事態が生じたときには、近接した時間インタバルでシ
ーケンスにされている、種々のマシンの状態についての
詳細なトレースを与えることは、これらのシステムにと
っては実用的なことではない。これに対して、このよう
な詳細なトレース情報は、ソフトウエア・シミュレータ
から容易に収集される。ただし、上で指摘されたように
、リアルタイムで1秒当り数マシン・サイクル以上で解
析をするためには、ソフトウエア・シミュレータの動作
速度は不十分である。
【0008】これに加えて、この発明で指摘されるよう
な別の問題がある。即ち、ハードウエア・アクセラレー
タ・デバイスの効率的な利用という別の問題がある。こ
れらのデバイスは高価になりがちであり、そのために、
これらを連続的に動作できるようにすることが望ましい
。しかしながら、エラーの指示またはその他のモデルの
特殊性の結果として生じ得るような、詳細なトレース操
作を必要とするいずれの種類のモードにおいてそれらを
動作させるにしても、資源としてのハードウエア・アク
セラレータを十分に使用したことにはならない。そこで
、この発明によれば、ハードウエア・アクセラレータを
効率的かつ効果的な態様で使用するという問題も指摘さ
れる。
【0009】
【課題を解決するための手段】この発明の好適な実施例
によれば、ハードウエア・アクセラレータが周期的に中
断され、また、このアクセラレータに関連しているシス
テムのチェック・ポイント・データが記憶される。この
チェック・ポイント・データは、該当の時点におけるハ
ードウエア・アクセラレータの状態を指示するものであ
る。そして、先に発生されている所望の結果のデータが
、ハードウエア・アクセラレータによって発生された状
態に対して比較される。比較の不適合(または、モデル
で検出されたエラー、もしくは、ユーザで特定されたト
ラップ)が生じたときには、ハードウエア・アクセラレ
ータは中断されて、先に記憶されていたチェック・ポイ
ントの状態にリセットされる。次いで、比較の不一致(
または検出されたエラーもしくはトラップ)の結果とし
て生じる中断の直前に存在した状態に、ハードウエア・
アクセラレータを移行させるのに十分な時間にわたり、
該アクセラレータの動作がなされる。この時点において
ソフトウエア・シミュレータが呼び出されるが、これに
はエラーの条件に先だって存在するハードウエア・アク
セラレータの状態が初期設定されている。ソフトウエア
・シミュレータが動作すると、結果の状態およびソフト
ウエア・シミュレータからの出力の条件が記憶され、ハ
ードウエア・アクセラレータを周期的に中断させること
によって生成されるものに比べて、精細に分解されたシ
ーケンスでの状態を付与するようにされる。ハードウエ
ア・アクセラレータの中断の周期をコントロールするこ
とにより、ハードウエア・アクセラレータとソフトウエ
ア・シミュレータとの間の負荷のバランスをコントロー
ルすることができる。
【0010】このようにして、ハードウエア・アクセラ
レータのベストの特徴とソフトウエア・シミュレータの
ベストの特徴との組み合せがなされる。ハードウエア・
アクセラレータは、エラー条件が生じるまで、可能な限
り高速でランすることが許容される。この点において、
先のチェック・ポイントの状態を記憶させ、利用可能な
刺激用データを記録させた結果として、ハードウエア・
アクセラレータが中断されて、先に記録されたチェック
・ポイントの状態の再ロードができる。そして、チェッ
ク・ポイントの状態がロードされているハードウエア・
アクセラレータは、記録された刺激用データを用いて、
エラーが生じる時点の直前まで動作することが許容され
る。そして、この時点において、シミュレータの状態が
、記録された刺激用データとともに、ソフトウエア・シ
ミュレータに対して伝えられる。このために、該ソフト
ウエア・シミュレータは、エラー条件に関連してより精
細に分解され、詳細にされたトレースのシーケンスを供
給することができるようにされる。次いで、ハードウエ
ア・アクセラレータは、異なるテスト・ケースまたはモ
デルのための異なるランの状態への再初期化が可能にさ
れ、または、それがオフにされた点からの再起動が可能
にされる。これと同時に、より安価な資源であるソフト
ウエア・シミュレータが用いられて、テスト・ケースの
シーケンスに対するエラーその他の識別可能なハードウ
エアの条件に結び付くような、それらの条件に対するよ
り詳細な解析を与えるようにされる。従って、ここで特
に注意されるべきことは、供給されたテスト・ケースに
対してハードウエア・アクセラレータが動作していると
同時に、エラー条件についてのシミュレーションがホス
ト・プロセッサ上でランしている場合が多いということ
である。これらのやり方において、ハードウエア・アク
セラレータおよびソフトウエア・シミュレータは共同で
動作するように一緒に用いられて、それぞれのシミュレ
ーションの様式性(modality)の強さの利点を
フルに享受することができる。
【0011】これに加えて、この発明によれば、テスト
・ケースのキュー(待ち行列)の使用を通して、ハード
ウエア・アクセラレータの効率的な使用を確実にするた
めの機構が与えられる。このキューをフルに維持するこ
とにより、高価なハードウエア・アクセラレータ資源の
極めて高度な使用をすることができる。
【0012】従って、この発明の目的は、合理的な時間
量および最低限のコストをもって、大規模な論理回路の
シミュレートを可能にすることにある。
【0013】この発明の更に別の目的は、いずれの資源
も他方の方がより適当であるタスクを実行して、過大な
時間にわたって動作することがないように、ソフトウエ
ア・シミュレータ資源とハードウエア・アクセラレータ
資源との間で作業負荷のバランスをとるための機構を提
供することにある。
【0014】また、この発明の目的は、ハードウエア・
アクセラレータのような高価な資源に対して最適な利用
をすることにもある。
【0015】この発明のなおも別の目的は、それらの相
対的な強さを最善に利用し、それらの相対的な弱さを最
小にするようなやり方で、ソフトウエア・シミュレータ
とハードウエア・アクセラレータとを結合させることに
ある。
【0016】この発明の更に別の目的は、複雑な論理デ
バイスのシミュレートを行い、また、できるだけ多くの
テスト・ケースを用いて、これらのデバイスのモデル化
をすることにある。
【0017】また、この発明の目的は、エラー・トレー
ス情報の発生を容易にすることにもある。
【0018】この発明のなおも別の目的は、論理回路デ
バイスおよびシステムの設計のための、ターンアラウン
ド・タイムをより迅速なものにすることにある。
【0019】この発明の目的は、より少数のマシン・サ
イクルにわたり、また、エラー或いは異常条件に対応す
る回数だけ、ソフトウエア・シミュレータの動作を可能
にすることにもある。
【0020】この発明のなおも別の目的は、比較的中断
されない態様でのハードウエア・アクセラレータの動作
を可能にし、また、このようなアクセラレータの再起動
が可能であって、識別されたチェック・ポイントから継
続するような態様での動作を可能にすることにある。
【0021】この発明の更に別の目的は、より大規模で
より複雑な電子的システムおよび回路であっても、その
設計およびテスト操作を許容することにある。
【0022】最後に、これに限定されるものではないが
、この発明の目的は、大規模な論理回路システムのシミ
ュレーションを更に実施容易にするための、モデル区画
化のための方法を提供することにある。
【0023】
【実施例】図1、図2、図3および図4(ここでは、集
合的にフローチャートとして参照される)には、この発
明に従って説明されるプロセスの全体的な流れ(フロー
)を例示するフローチャートが構成されている。このフ
ローチャートの左手部分には、ホストのテスト発生およ
び比較プログラムの動作が例示されている。その右手部
分には、ハードウエア・アクセラレータとホスト・コン
トロール・プログラムの動作が例示されている。点線で
示されているものは、ホスト・プロセッサとハードウエ
ア・アクセラレータとの間の相互作用点である。
【0024】特に、ハードウエア・アクセラレータを動
作させるのに先だって、複数個のテスト・ケースを用意
することが必要である。これらのケースは、シミュレー
トされている特定の論理設計の実施のために設計される
。これらのテスト・ケースに対する所望の応答も発生さ
れる。フローチャートで示されているように、テスト・
ケースは記憶され(ステップ10)、所望の応答も記憶
される(ステップ11)。初期的にある所定のモデルの
状態も設定され、シミュレーションの開始に先だって記
憶される。テスト・ケースおよびそれらに対する所望の
応答は、好適には、時間的に先行して発生されて、ホス
ト・マシン内にキュー構成で記憶される(それぞれに、
ステップ10およびステップ11)。これに続けて、テ
スト・ケースがハードウエア・アクセラレータに供給さ
れる(ダウンロードされる)。しかしながら、ホスト・
マシンがビジーではなくて、ソフトウエア・シミュレー
タについて詳細なトレースのランをしているときには、
ホスト・マシンまたはその他のマシンは、更に別のテス
ト・ケースおよび応答を受け取るように動作することが
できる。
【0025】フローチャートにおけるステップ15は、
ハードウエア・アクセラレータを起動するか、または、
その動作継続を許可する。ハードウエア・アクセラレー
タ内でモデル・エラーが検出されなかったときには(ス
テップ16)、正常な処理が継続される(ステップ17
)。モデル・エラーが生じたときには、ハードウエア・
アクセラレータが中断されて、該アクセラレータの状態
が記憶される(ステップ22)。この発明の特徴とする
ことは、ハードウエア・アクセラレータが周期的に中断
されて(ステップ17)、チェックポイント(ステップ
19および20)および結果のデータ(ステップ18)
がホスト・マシン内に記憶され、新たなケースが供給さ
れることである。一般的にいえば、チェックポイント・
データの収集頻度は、結果のテスト・ケース・データに
比べてかなり低い。経験的には、結果のテスト・ケース
・データは、好適には、チェックポイント・データに比
べて、約10倍程頻繁に収集される。チェックポイント
状態データは、好適には、チャネル・インタフェース(
図6における300)を通ってホスト・マシン(図6に
おける100)へと転送される。所望のチェック・ポイ
ント状態データの転送に続いて、ハードウエア・アクセ
ラレータには、更に多くのテスト・ケースが加えられて
(ステップ14)、再起動がなされる(ステップ15)
【0026】ハードウエア・アクセラレータがランして
いると同時に、ホスト・プロセッサにより結果データの
検索がなされ(ステップ12)、この結果データと記憶
されている所望の応答との比較がなされる(ステップ1
3)。ホスト・プロセッサ内で比較の動作が実行されて
いる間、ハードウエア・アクセラレータは時間的に先行
してランすることが許される。比較の不一致があるとき
には(ステップ13)、ステップ23に示されるように
、この発明の機構の一つがトリガーされる。この時点に
おいて、中断信号がハードウエア・アクセラレータに送
られて(ステップ22)、現在のハードウエア・アクセ
ラレータの動作を終了させる。そして、ハードウエア・
アクセラレータの状態は所望に応じて記憶されて、その
中断に先だってオフにされたときの状態において、該ア
クセラレータが再起動できるようにされる。または、ハ
ードウエア・アクセラレータにおいてエラーの分離が一
旦達成されると、異なるタスクまたはモデルに関連する
新たな状態を割り当てることもできる。そして、ハード
ウエア・アクセラレータは、上述されたステップ20に
おいて記憶されているようなチェック・ポイント状態に
リセットされる。(ステップ24)次いで、ハードウエ
ア・アクセラレータは、該アクセラレータの状態および
それがモデリングを行っているシステムの状態をモデル
エラー直前の状態にするのに十分な時間にわたって動作
される(ステップ25)。これによって相当な時間量の
節減がなされるけれども、もしこれがなければソフトウ
エア・シュミレータは前のチェック・ポイントからかな
りの時間にわたってランしなければならない。次に、ハ
ードウエア・アクセラレータの状態が、ソフトウエア・
シミュレータに転送される(ステップ26)。典型的に
は図6のホスト・マシン100上でランしているソフト
ウエア・シミュレータが起動されて(ステップ27)、
エラーの指示をカバーするのに十分な時間にわたって動
作するようにされる。このようにして、詳細なトレース
の解析のために、小さなウインドウを適時に分離させる
ことができる。上述のように、ソフトウエア・シミュレ
ータによって最も容易に取り扱われるのが、この種の詳
細なトレースの解析である。詳細なトレースの能力をも
ったソフトウエア・シミュレーションを開始することは
、ステップ27に示されている。ソフトウエア・シミュ
レーションの開始と同時に、ハードウエア・アクセラレ
ータは、その中断前の状態、または、所望により、異な
るタスクに関連した状態にさえも復元される(ステップ
28はオプションである)。これに次いで、ハードウエ
ア・アクセラレータが再起動される。このことは、ステ
ップ28および29にそれぞれに示されている。次に、
ステップ14および15において指示された動作が生じ
るが、そこでは、典型的には、ハードウエア・アクセラ
レータおよびソフトウエア・シミュレータの双方が同時
に動作しており、チェック・ポイント状態および結果デ
ータの記憶のため、ならびに、テスト・ケースのロード
操作のために、ハードウエア・アクセラレータが周期的
に中断される。
【0027】ステップ13で比較不一致が生じなければ
、コントロールがステップ30に戻されて、もし必要で
あればより多くのテスト・ケースが検索され、その後、
コントロールがステップ27に戻るようにされる。
【0028】図5には、この発明の方法を実施するため
の装置が例示されている。特に、図5で例示されている
テスト・ケースおよび結果状態ゼネレータ50は、ホス
ト・プロセッサ60に対して、テスト・ケースおよび結
果状態を供給するものである。テスト・ケースおよび結
果状態ゼネレータ50は、独立した処理システムにおい
て分離して動作できるものであるが、ホスト・プロセッ
サ60において動作することが好ましい。ホスト・プロ
セッサ60は、ハードウエア・アクセラレータ70との
通信を行い、部分的にはこれをコントロールするもので
ある。特に、ホスト・プロセッサ60に含まれているソ
フトウエア・シミュレーション・プログラミング手段6
6は、アクセラレータの状態情報を受け入れて、シミュ
レートされているモデルに対する詳細なトレースのシー
ケンスを生成するように動作する。詳細なエラー分離お
よび解析が含まれているときには、ソフトウエア・シミ
ュレーション手段66およびハードウエア・アクセラレ
ータ70によって同じモデルのシミュレートをすること
ができる。ただし、ソフトウエア・シミュレーション手
段66によれば、出力信号および状態の関数についての
、遥かに精細な情報が与えられる。これらのより精細に
分析されたシミュレーション・データ・セットは、好適
には、直接アクセス記憶デバイス80上に存在する明細
ファイルに対して供給される。
【0029】テスト・ケースおよび結果状態ゼネレータ
50は、好適には、テスト・ケースおよび結果データの
双方が、ホスト・プロセッサ60の主記憶ユニットにあ
るキューに維持されるようなモードで動作する。通信お
よび記憶手段64は、ホスト・プロセッサ60とハード
ウエア・アクセラレータ70との間での通信インタフェ
ースを提供する。従って、通信および記憶手段64は、
ハードウエア・アクセラレータ70に対してテスト・ケ
ースを供給し、また、アクセラレータ70との間で、結
果データ、チェック・ポイント・データおよびその他の
データを転送する動作をもする。また、通信および記憶
手段64は、プロセッサ60とアクセラレータ70との
間でも、アクセラレータ状態データを転送する動作をす
る。これに加えて、通信および記憶手段64は、チェッ
ク・ポイント・データの記憶のために、アクセラレータ
70を周期的に中断させるような動作をもする。
【0030】結果データは、通信および記憶手段64に
よって、比較手段62にも供給される。そして、この比
較手段は、好適には、ゼネレータ50からの予測された
結果状態データも受け入れるものである。この生成タス
クは、分離して行うことができるけれども、一般的には
、ゼネレータ50によって実行される。結果データと予
測結果データとの間に比較の不一致があったときには、
比較手段62(これは、好適には、ゼネレータ50の一
部である)によって、コントロール手段68に対して比
較不一致信号が与えられる。
【0031】ホスト・プロセッサ60内で動作する比較
手段62によって不一致が検出されたときには、コント
ロール手段68が動作して、ハードウエア・アクセラレ
ータ70の動作を停止し、また、このハードウエア・ア
クセラレータ70に対して、比較の不一致が生じる前の
ハードウエア・アクセラレータの状態に対応するチェッ
ク・ポイント・データを転送する。通常好適とされてい
ることは、アクセラレータ70に供給されるこのチェッ
ク・ポイント状態を最新のものにすることによって、ア
クセラレータ70の再生動作を最少限にすることである
。ただし、その障害の状態を再現するために、より多く
の時間がかかる場合においては、アクセラレータ70を
幾つかのチェック・ポイント状態から再起動させる可能
性がある。先に存在していたチェック・ポイント・デー
タがアクセラレータ70に供給された後で、コントロー
ル手段68はアクセラレータ70を再起動し、そして、
該アクセラレータ70をして次のように動作させる。即
ち、このハードウエア・アクセラレータ70が、比較不
一致に対応する状態の前の状態に移行するのに十分な時
間だけ動作するようにされる。これは、最初に供給され
て記録ファイル、(通信および記憶手段64で維持され
るのが好ましい)に含まれているテスト・ケースのシー
ケンスを用いてなされる。ハードウエア・アクセラレー
タ70がこの所望の時間にわたって一旦動作すると、該
アクセラレータは停止され、これに次いで、現在のアク
セラレータ70の状態が、通信および記憶手段64を通
してホスト・プロセッサ60に転送され、最終的には、
シミュレーション・プログラミング手段66に至るよう
にされる。このようにして、ソフトウエア・シミュレー
タは、エラーが生じる直前の時点に対応する時点で起動
されて、エラーの詳細なトレースの解析を生成するよう
にランされる。このようにして、ハードウエア・アクセ
ラレータに関連した速度を犠牲にすることなく、ソフト
ウエア・シミュレーションの特徴を活かすという最大の
利点が得られる。
【0032】固有にモニタされている事象(ユーザによ
り規定されたトラップ)の場合には、該事象の結果とし
てコントロール手段68によって中断されたときのハー
ドウエア・アクセラレータの状態は、通信および記憶手
段64によって記憶されることができる。そして、その
後では、オフにされたところからアクセラレータ70を
再起動できるように、ハードウエア・アクセラレータ7
0に戻される。しかしながら、エラー条件の場合は、こ
れは通常の動作モードではない。モデル・エラーの結果
として、アクセラレータ70が異なるモデルで再起動さ
れることはあり得る。
【0033】この発明の好適な実施例においては、テス
ト・ケースおよび結果状態ゼネレータ50には、実際に
は、分離したプロセッサ手段を含ませることができる。 ただし、この発明の好適な実施例においては、ソフトウ
エア・シミュレーション手段66、比較手段62(通常
はゼネレータ50の一部)、コントロール手段68、通
信および記憶手段64は、いずれもホスト・プロセッサ
60内に存在するものである。更に、これらのものの機
能は、好適には、ホスト・プロセッサ60によってアク
セス可能な、1個または複数個の記憶ユニット(直接ア
クセス記憶デバイス(DASD)を含む)内に存在する
ソフトウエア・プログラムによって実施される。
【0034】この発明は、多くのソフトウエア・シミュ
レーション・プロダクツによって利用可能なものである
。このようなプロダクツには、以下の例が含まれている
。即ち、HILOー3(ゲンラッド社(Genrad 
 Inc.)からのもの)、VERILOG(ゲートウ
エイ・デザイン・オートメーション社(Gateway
Design  Automation  Inc.)
からのもの)、および、SILOS(シムキャッド社(
Simucad  Inc.)からのもの)というよう
な例が含まれている。これに加えて、この発明は、以下
のような多くのハードウエア・アクセラレータ・デバイ
スによっても利用可能なものである。即ち、IKOS 
 800/900(IKOSシステムス社(IKOS 
 Systems  Inc.)からのもの)、SUP
ERSIM(シムログ社(Simulog  Inc.
)からのもの)、RPM(クイックターン社(Quic
kturn  Inc.)からのもの)、および、SD
E(ザイキャッド社(ZYCAD  Inc.)からの
もの)によっても利用可能なものである。
【0035】図6には、この発明の方法を実施するため
に、代替的なシステムとして説明するものが例示されて
いる。特に、ホスト・プロセッサ100は、好適には、
チャネル・インタフェース300を通して、ハードウエ
ア・アクセラレータ200と通信するようにされている
。ここで、チャネル・インタフェース300は、シミュ
レートされているモデル210に対してテスト・ケース
を転送するために用いられ、また、モデルの状態および
出力情報をホスト100に戻すためにも用いられるもの
である。これに加えて、好適には、ハードウエア・アク
セラレータ200に対する第2の通信リンクが設けられ
て、スタート信号、ストップ信号、および、送信信号を
供給するようにされる。これらの信号により、アクセラ
レータ200の動作が、モデル210のCPUモデル2
12によって駆動される記憶ユニット214内で特定さ
れるような所与の状態から開始される。例えば、結果デ
ータの送信準備のためにアクセラレータの動作の中断が
所望されたときには、アクセラレータ200に対してス
トップ信号が伝送される。これに加えて、記憶部214
内の情報がチャネル・インタフェース300を介してホ
スト・プロセッサ100に通されるように、送信信号を
アクセラレータ200に供給することができる。
【0036】この発明においては、CPUモデルおよび
ハードウエア・アクセラレータを駆動するために、ラン
ダム命令ストリームがモデル記憶部214内にロードさ
れる。これらのストリームは、パラメータ・コントロー
ルの下で動作するホスト・プログラムによって生成され
る。そして、ストリームの中で指示される動作のシーケ
ンスがバイパスしたり、または、モデル化されているマ
シンの特定のセグメント上に集中したりすることが許容
される。モデル内でのテスト・ストリームの実行の後で
、予測されたストリームの結果を用いて、ドライバによ
る結果の検証がなされる。
【0037】図6に示されているシステムとの代表的な
対話においては、ユーザはジョブを開始し、モデル、テ
スト・ケース・ドライバ、ドライバの数、および、ラン
の長さを特定する。そして、各ランダム・テスト・ドラ
イバ110により、異なる長さのテスト・ケースが生成
される。これらのテスト・ケースはホスト・コントロー
ルの下にキュー120内に記憶される。適当な時点にお
いて、アクセラレータでテスト中のモデルでランしてい
るスーパバイザ・プログラムは、作業の必要なことを知
らせる。この状態は、モデル内に現にロードされている
全てのテスト・ケースが終了の状態または休止状態のい
ずれかになったときに、生起される。この事象が生じた
ときには、ハードウエア・アクセラレータの制御論理が
ホストに割り込み、それによりアクセラレータが停止さ
れる。次いで、ホスト・プログラムのマッパ130が、
終了または完了されたテスト・ケースの結果データを取
り出し、ドライバ110のプログラムによるチェックの
ために、それをキュー140に戻す。そして、マッパ・
プログラム130は、新たな入力キュー要素をキュー1
20からアクセラレータ200にロードし、それにより
シュミレーションが再起動されて、ホスト100におい
て設定されたキューに対する動作を行う。ユーザのラン
が基準に達成されるまで、モデル・エラーが検出される
まで、または、シミュレーションでの比較の不一致が発
見されるまで、このシーケンスが続行される。動作の間
、モデル210に対する全ての送信が記録されて、周期
的なモデル・チェックポイントがとられる。図7には、
ハードウエア・アクセラレータ200から見たこの活動
が示されている。
【0038】モデル・エラーが検出されたとき、または
、シミュレーションの比較の不一致が生じたときには、
解析が行われる。これは、問題が分離されるまで、異な
るデータの追跡または解析のためにランを繰返すことに
より行われていた。これは時間のかかるプロセスであり
、また、重要な資源を浪費するものであった。この問題
を正すために、この発明においては、望ましい”自動再
生”機能が付与された。テスト・ケース・ドライバ11
0によって比較の不一致が報告されたときには、ホスト
・ソフトウエアは、まず、進行中のシミュレーション・
セッションを終了させて、該比較の不一致を一意的なテ
スト・ケースと関連付け、更に、”ニードワーク(ne
edwork)”時点と関連付ける。また、そのニード
ワーク点に先行する最も近いモデル・チェックポイント
を見出して、テスト中のモデルをその状態に再初期設定
する。これに次いで、記録ファイルから転送データを再
生することにより、短い時間とCPU資源を用いて、モ
デルが駆動される。不首尾のテスト・ケースを含むニー
ドワーク転送の直前に、コントロール・ソフトウエアは
該特定のテスト・ケースにフラグを立てる。モデル内の
マクロは、シミュレーションの進行につれて、テスト・
ケースのフラグをチェックする。特定のテスト・ケース
の開始点においてフラグが検出されたときには、シミュ
レーションのランが終了して、モデル・チェックポイン
トがとられる。このチェックポイント・データは、同一
のモデルによるソフトウエア・シミュレータに対して、
チェックポイントの後で生じるモデルへの転送の記録と
ともに送られる。当該ソフトウエア・モデルは、ハード
ウエア・アクセラレータの最終チェックポイントからの
状態に初期設定され、シミュレーションの進行につれて
、モデル内の全ての機構についての完全なサイクル単位
のトレースを生成するようにされる。このサイクル単位
のトレースは、ハードウエア・アクセラレータに送られ
た任意の刺激を加えることによって生成される。これは
、本質的には、効果的な問題分析のためのシミュレーシ
ョン・ランの事象のシーケンスであって、このことは図
8に示されている。
【0039】ここで注意されることは、テスト・ケース
の効果的なセットを与えるが、先行技術の機構によって
は、データのロード操作とアンロード操作、および、問
題分析のためのデータ収集の必要性に基づき、ハードウ
エア・アクセラレータをビジーに維持することが十分で
はないということである。この問題を解決するために、
このシステムは、アクセラレータの使用時間を増大する
べく、テスト・データのキューを構築するように動作す
る。また、この発明によれば、テスト・ケースの追跡操
作が維持されるとともに、モデルに対する全てのトラン
ザクションが記録される。そして、この発明によれば、
モデル状態についてのチェックポイントも与えられ、必
要なときにモデル状態が復元される。また、このシステ
ムによれば、モデル状態および再生ファイルソフトウェ
ア・シミュレータに送られる。
【0040】この発明によれば、モデルのサブセットト
レースするための手段を提供するデータ再機能が与えら
れる。ソフトウエア・シミュレータ内に含ませることが
できないような、極めて大規模なモデルへの適合のため
に、その基本的な概念が拡張された。これは、モデルの
区画化と呼ばれるものである。そこでは、モデルは2個
以上の区画によって定義される(図9を参照)。シミュ
レーションに先だってソフトウエアをランすることによ
り、区画に対する入力として作用する全ての機能部が分
離される。例えば、CPUの全容易に定義可能な全ての
部分は、入出力信号線のセットとの関連付けがなされて
おり、このために、区画の種々の部分間での関係が定義
される。
【0041】シミュレーションの進行は、次の事項を除
いて前述のようになされる。即ち、不首尾のテスト・ケ
ースの開始点においてチェックポイントがとられた後で
、テスト・ケースはハードウエア・アクセラレータ内で
進行し、そしてソフトウェア・シミュレータでランされ
る区画への入力をファイル中に捕捉するために各サイク
ルの終りに停止する。これは当該テスト・ケースの終り
まで継続して行われる。ハードウエア・アクセラレータ
内で不首尾のテストの開始点においてとられたチェック
・ポイントは、ソフトウエア・シミュレータでサブセッ
ト・モデルを初期設定するために用いられる。その後で
、ファイルからのデータは、シミュレーションの進行に
つれて、サイクル単位で、サブセット・モデルに対する
入力を駆動するために用いられる。
【0042】
【発明の効果】以上から明らかなように、この発明にお
いては、2つの異なったツールの最良の機能を協働的に
用いることによって、完全なプロセスが生成される 。 シミュレーションをランさせる者に対しては、高速ハー
ドウエア・アクセラレータの全ての利点が与えられ、数
十万から数百万までのサイクルのランが自動的に許容さ
れる。更に、これらのサイクルはソフトウエア・シミュ
レータと自動的に結合されて、問題の分析が極めて容易
になるようにされる。このようにすることで、比較的低
速のソフトウエア・シミュレータは、数千から数万まで
のマシン・サイクルでのランに必要となるだけである。 これにより、モデルのシミュレーションに対するターン
アラウンド・タイムが大幅に改善され、更に、ハードウ
エア・アクセラレータのような比較的高価な資源につい
て最大限の利点が得られる。
【0043】ここで注意されるべきことは、この発明の
動作が部分的に比較の不一致、モデル・エラー、または
、ユーザにより定義されたトラップの条件の面から記述
されていることである。請求項においては、これらの条
件は統称的に”比較ミス”として示されている。
【図面の簡単な説明】
【図1】図2、図3及び図4の組合せ方を示す図である
【図2】この発明の全体的なプロセスを例示するフロー
チャート一部である。
【図3】この発明の全体的なプロセスを例示するフロー
チャート一部である。
【図4】この発明の全体的なプロセスを例示するフロー
チャート一部である。
【図5】この発明を実施するコンピュータ装置を例示す
る機能的ブロック図である。
【図6】ハードウエア・アクセラレータとコントロール
操作マシンとの間のデータ・フローを例示する概略ブロ
ック図である。
【図7】通常動作シーケンスを例示する図である。
【図8】比較の不一致、モデル・エラーまたはトラップ
の条件に応じて生じる事象のシーケンスを例示する図で
ある。
【図9】モデルの区画化とそれに関連するサンプル変数
を例示する概略図である。
【符号の説明】
50  テスト・ケースおよび結果状態ゼネレータ60
  ホスト・プロセッサ 62  比較手段 64  通信および記憶手段 66  シミュレーション・プログラミング手段68 
 コントロール手段 70  ハードウエア・アクセラレータ80  明細フ
ァイル

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】複数のテスト・ケースおよびそれに関連す
    る所望の結果状態を記憶するステップ;前記テスト・ケ
    ースを記録されたシーケンスでハードウエア・アクセラ
    レータに供給し、シュミレートされたシステム状態を生
    成させるステップ; 前記所望の結果状態を、前記ハードウエア・アクセラレ
    ータによって生成された対応するシステム状態と比較す
    るステップ; 前記ハードウエア・アクセラレータを周期的に中断して
    、該中断の時点において前記ハードウエア・アクセラレ
    ータと関連しているシステム・チェックポイント状態を
    記憶するステップ; 比較ミスのときに前記ハードウエア・アクセラレータを
    中断するステップ; 前記比較ミスのときに前記ハードウエア・アクセラレー
    タを前に記憶されたチェックポイント状態にリセットし
    、指定された同じシーケンスのテスト・ケースを用いて
    、前記比較ミスに対応する状態の前の状態に前記ハード
    ウエア・アクセラレータを移行させるのに十分な時間に
    わたり、前記ハードウエア・アクセラレータを動作させ
    るステップ; 前記前の状態に初期設定され、且つ前記ハードウエア・
    アクセラレータに供給された、記録されたテスト・ケー
    スが供給されるソフトウエア・シミュレータを呼び出す
    ステップ;および 前記ソフトウエア・シュミレータによって生成された結
    果状態を記憶し、前記ハードウエア・アクセラレータに
    よって生成されたものよりも精細な状態のシーケンスを
    供給するステップ;を含む、デジタル論理回路のシミュ
    レーション方法。
  2. 【請求項2】前記比較ミスによって生じた中断の時点に
    おいて存在したハードウエア・アクセラレータ状態のと
    ころから前記アクセラレータを再起動するステップを更
    に含む、請求項1に記載の方法。
  3. 【請求項3】前の状態とは関連のないハードウエア・ア
    クセラレータ状態のところから、前記アクセラレータを
    再起動するステップを更に含む、請求項1に記載の方法
  4. 【請求項4】前記周期的な中断の後で、前記回路の1つ
    の区画への入力を記憶するステップを更に含む、請求項
    1に記載の方法。
  5. 【請求項5】前記呼び出されたソフトウエア・シミュレ
    ータは、記憶された区画入力データを独立に操作する、
    請求項4に記載の方法。
  6. 【請求項6】前記ハードウエア・アクセラレータの周期
    的な中断の頻度は、前記ハードウエア・アクセラレータ
    と前記ソフトウエア・シミュレータとの間の相対的な計
    算負荷をバランスさせるように選択される、請求項1に
    記載の方法。
  7. 【請求項7】ハードウエア・アクセラレータの状態を周
    期的に保管し、所望の結果状態と実際のアクセラレータ
    状態との間の不一致の結果として前記アクセラレータが
    中断された後で前記保管された状態を用いて前記アクセ
    ラレータを再起動し、該再起動の後で、前記不一致の前
    の状態にするのに十分な時間にわたって前記アクセラレ
    ータをランさせ、詳細なトレース・データを生成するた
    めにアクセラレータ状態データをソフトウエア・シュミ
    レータへ転送し、前記ハードウエア・アクセラレータ及
    び前記ソフトウエア・シュミレータで同じモデルをシュ
    ミレートさせる、ハードウエア・アクセラレータ及びソ
    フトウエア・シュミレータの動作方法。
  8. 【請求項8】前記ハードウエア・アクセラレータは、前
    記不一致の結果として前記ハードウエア・アクセラレー
    タが停止した時点の状態のところから再起動される、請
    求項7に記載の方法。
  9. 【請求項9】前の状態とは関連のない状態のところから
    、前記アクセラレータを再起動するステップを更に含む
    、請求項7に記載の方法。
  10. 【請求項10】前記周期的な保管の際に、シュミレート
    される回路の1つの区画への入力を記憶するステップを
    更に含む、請求項7に記載の方法。
  11. 【請求項11】前記ソフトウエア・シミュレータは、記
    憶された区画入力データを独立して操作する、請求項9
    に記載の方法。
  12. 【請求項12】デジタル論理回路のシミュレーションを
    実行するための装置であって; テスト・ケース・データおよびそれと関連する所望の結
    果状態データを記憶する手段; 前記デジタル論理回路のモデルのシミュレーションを実
    行するための、プログラムされたシミュレーション手段
    を含むホスト・プロセッサ手段; 前記デジタル論理回路の同じモデルをシミュレートでき
    るハードウエア・アクセラレータ手段;前記ハードウエ
    ア・アクセラレータにテスト・ケース・データを転送し
    、前記ハードウエア・アクセラレータを周期的に中断し
    、前記ハードウエア・アクセラレータから結果データを
    受け取って記憶する通信および記憶手段; 前記結果データを前記所望の結果状態データと比較し、
    不一致があったときに比較ミス信号を発生する比較手段
    ; 前記比較ミス信号に応答して、前記ハードウエア・アク
    セラレータの動作を停止し、新しい起動状態データを与
    えるチェックポイント・データを前記ハードウエア・ア
    クセラレータに転送し、前記新しい状態データを用いる
    ことにより、前記比較ミスの前の状態に前記ハードウエ
    ア・アクセラレータを移行させるために十分な時間にわ
    たって前記ハードウエア・アクセラレータを動作させ、
    前記前の状態のデータを前記ホスト・プロセッサ手段に
    転送して前記シュミレーション手段で処理させるコント
    ロール手段;を含むシュミレート装置。
  13. 【請求項13】前記コントロール手段は、前記ハードウ
    エア・アクセラレータが停止されたときのアクセラレー
    タ状態データを前記通信および記憶手段に転送すること
    ができる、請求項12に記載の装置。
  14. 【請求項14】前記コントロール手段は、前記コントロ
    ール手段によって停止されたときの前記ハードウエア・
    アクセラレータの状態に対応する状態データを前記ハー
    ドウエア・アクセラレータに転送することができる、請
    求項13に記載の装置。
JP3060765A 1990-02-16 1991-02-12 ハードウェア・アクセラレータを用いた論理シミユレーション方法および装置 Expired - Lifetime JPH0727538B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US481145 1990-02-16
US07/481,145 US5146460A (en) 1990-02-16 1990-02-16 Logic simulation using a hardware accelerator together with an automated error event isolation and trace facility

Publications (2)

Publication Number Publication Date
JPH04216174A true JPH04216174A (ja) 1992-08-06
JPH0727538B2 JPH0727538B2 (ja) 1995-03-29

Family

ID=23910811

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3060765A Expired - Lifetime JPH0727538B2 (ja) 1990-02-16 1991-02-12 ハードウェア・アクセラレータを用いた論理シミユレーション方法および装置

Country Status (3)

Country Link
US (1) US5146460A (ja)
EP (1) EP0442277A3 (ja)
JP (1) JPH0727538B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008507018A (ja) * 2004-07-14 2008-03-06 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 制御装置とアクティブチェーン診断をモデリングするプログラムとを結合する結合方法
KR101478567B1 (ko) * 2013-03-26 2015-01-02 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 가속 이익 추정기

Families Citing this family (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452231A (en) * 1988-10-05 1995-09-19 Quickturn Design Systems, Inc. Hierarchically connected reconfigurable logic assembly
US5369593A (en) 1989-05-31 1994-11-29 Synopsys Inc. System for and method of connecting a hardware modeling element to a hardware modeling system
US5353243A (en) 1989-05-31 1994-10-04 Synopsys Inc. Hardware modeling system and method of use
US8050903B1 (en) * 1990-05-29 2011-11-01 Texas Instruments Incorporated Apparatus and method for checkpointing simulation data in a simulator
US5467291A (en) * 1991-09-09 1995-11-14 Hewlett-Packard Company Measurement-based system for modeling and simulation of active semiconductor devices over an extended operating frequency range
US5475624A (en) * 1992-04-30 1995-12-12 Schlumberger Technologies, Inc. Test generation by environment emulation
US5566097A (en) * 1993-03-05 1996-10-15 International Business Machines Corporation System for optimal electronic debugging and verification employing scheduled cutover of alternative logic simulations
JP3119960B2 (ja) * 1993-03-17 2000-12-25 富士通株式会社 論理シミュレーションシステム
US5442740A (en) * 1993-07-13 1995-08-15 International Business Machines Corporation Method and apparatus for visual display of program performance trace data
US5574853A (en) * 1994-01-03 1996-11-12 Texas Instruments Incorporated Testing integrated circuit designs on a computer simulation using modified serialized scan patterns
US5515384A (en) * 1994-03-01 1996-05-07 International Business Machines Corporation Method and system of fault diagnosis of application specific electronic circuits
TW421761B (en) * 1994-04-12 2001-02-11 Yokogawa Electric Corp Verification support system
DE4426740C1 (de) * 1994-07-28 1996-03-21 Sel Alcatel Ag Testverfahren sowie Konvertereinrichtung, Testeinrichtung und Testprogramm-Modul dafür
US5539680A (en) * 1994-08-03 1996-07-23 Sun Microsystem, Inc. Method and apparatus for analyzing finite state machines
IE73651B1 (en) * 1994-09-30 1997-06-18 S3 Research & Dev Limited Design and testing of electronic systems
US5546562A (en) * 1995-02-28 1996-08-13 Patel; Chandresh Method and apparatus to emulate VLSI circuits within a logic simulator
JP3242277B2 (ja) * 1995-03-20 2001-12-25 富士通株式会社 シミュレーション装置
JP2720860B2 (ja) * 1995-11-30 1998-03-04 日本電気株式会社 不揮発性半導体記憶装置の動作条件の設定方法
US5937179A (en) * 1995-12-14 1999-08-10 Texas Instruments Incorporated Integrated circuit design system with shared hardware accelerator and processes of designing integrated circuits
US5774380A (en) * 1996-03-08 1998-06-30 International Business Machines Corporation State capture/reuse for verilog simulation of high gate count ASIC
US5748875A (en) * 1996-06-12 1998-05-05 Simpod, Inc. Digital logic simulation/emulation system
US6202174B1 (en) 1996-09-16 2001-03-13 Advanced Micro Devices Inc Method for identifying and correcting errors in a central processing unit
US5784550A (en) * 1996-10-29 1998-07-21 Hewlett-Packard Company Method for enhanced functional testing of a processor using dynamic trap handlers
US5878208A (en) * 1996-11-25 1999-03-02 International Business Machines Corporation Method and system for instruction trace reconstruction utilizing limited output pins and bus monitoring
GB2321118B (en) * 1997-01-14 2002-03-27 Integral Design Res Ltd Development of integrated circuits
US6009256A (en) * 1997-05-02 1999-12-28 Axis Systems, Inc. Simulation/emulation system and method
US6134516A (en) * 1997-05-02 2000-10-17 Axis Systems, Inc. Simulation server system and method
US6026230A (en) * 1997-05-02 2000-02-15 Axis Systems, Inc. Memory simulation system and method
US6321366B1 (en) 1997-05-02 2001-11-20 Axis Systems, Inc. Timing-insensitive glitch-free logic system and method
US6389379B1 (en) 1997-05-02 2002-05-14 Axis Systems, Inc. Converification system and method
US6421251B1 (en) 1997-05-02 2002-07-16 Axis Systems Inc Array board interconnect system and method
US5991529A (en) * 1997-05-16 1999-11-23 Sony Corporation Testing of hardware by using a hardware system environment that mimics a virtual system environment
US6152612A (en) * 1997-06-09 2000-11-28 Synopsys, Inc. System and method for system level and circuit level modeling and design simulation using C++
US6202044B1 (en) * 1997-06-13 2001-03-13 Simpod, Inc, Concurrent hardware-software co-simulation
US6161219A (en) * 1997-07-03 2000-12-12 The University Of Iowa Research Foundation System and method for providing checkpointing with precompile directives and supporting software to produce checkpoints, independent of environment constraints
US6154877A (en) * 1997-07-03 2000-11-28 The University Of Iowa Research Foundation Method and apparatus for portable checkpointing using data structure metrics and conversion functions
US6370494B1 (en) * 1998-02-05 2002-04-09 Matsushita Electric Industrial Co., Ltd. Simulator and computer-readable recordable medium having program for execution on computer realizing the simulator recorded thereon
US6052524A (en) * 1998-05-14 2000-04-18 Software Development Systems, Inc. System and method for simulation of integrated hardware and software components
US9195784B2 (en) * 1998-08-31 2015-11-24 Cadence Design Systems, Inc. Common shared memory in a verification system
US6370492B1 (en) * 1998-12-08 2002-04-09 Lsi Logic Corporation Modified design representation for fast fault simulation of an integrated circuit
US6370659B1 (en) * 1999-04-22 2002-04-09 Harris Corporation Method for automatically isolating hardware module faults
US6618698B1 (en) 1999-08-12 2003-09-09 Quickturn Design Systems, Inc. Clustered processors in an emulation engine
US7072818B1 (en) 1999-11-30 2006-07-04 Synplicity, Inc. Method and system for debugging an electronic system
US6931572B1 (en) 1999-11-30 2005-08-16 Synplicity, Inc. Design instrumentation circuitry
US6581191B1 (en) * 1999-11-30 2003-06-17 Synplicity, Inc. Hardware debugging in a hardware description language
US6823497B2 (en) 1999-11-30 2004-11-23 Synplicity, Inc. Method and user interface for debugging an electronic system
US7065481B2 (en) 1999-11-30 2006-06-20 Synplicity, Inc. Method and system for debugging an electronic system using instrumentation circuitry and a logic analyzer
US7356786B2 (en) * 1999-11-30 2008-04-08 Synplicity, Inc. Method and user interface for debugging an electronic system
US7222315B2 (en) 2000-11-28 2007-05-22 Synplicity, Inc. Hardware-based HDL code coverage and design analysis
US7158925B2 (en) * 2002-04-18 2007-01-02 International Business Machines Corporation Facilitating simulation of a model within a distributed environment
US7124071B2 (en) * 2002-04-18 2006-10-17 International Business Machines Corporation Partitioning a model into a plurality of independent partitions to be processed within a distributed environment
US7117391B1 (en) * 2002-10-31 2006-10-03 Oracle International Corporation Checkpoint model building for data mining
US7110930B2 (en) * 2002-11-15 2006-09-19 International Business Machines Corporation Integrated circuit and package modeling
US20040115995A1 (en) * 2002-11-25 2004-06-17 Sanders Samuel Sidney Circuit array module
US7340661B2 (en) * 2003-09-25 2008-03-04 Hitachi Global Storage Technologies Netherlands B.V. Computer program product for performing testing of a simulated storage device within a testing simulation environment
US7165201B2 (en) * 2003-09-25 2007-01-16 Hitachi Global Storage Technologies Netherlands B.V. Method for performing testing of a simulated storage device within a testing simulation environment
US7313731B2 (en) * 2003-11-03 2007-12-25 Hewlett-Packard Development Company, L.P. Systems and methods for identifying erroneous transactions
US20050138515A1 (en) * 2003-11-05 2005-06-23 Hyduke Stanley M. Method and apparatus for co-verification of digital designs
US7496901B2 (en) * 2004-06-22 2009-02-24 International Business Machines Corporation Method for boundary trace with reproduction facility
US7849450B1 (en) * 2005-01-28 2010-12-07 Intel Corporation Devices, methods and computer program products for reverse execution of a simulation
JP4620771B2 (ja) * 2005-03-16 2011-01-26 ゲートロケット・インコーポレーテッド Fpgaエミュレーションシステム
US20070220338A1 (en) * 2006-02-09 2007-09-20 International Business Machines Corporation Method and system for generating checkpoints of hardware description language simulations that include a specific model state together with a software testcase state
US20080021692A1 (en) * 2006-07-21 2008-01-24 Rajat Chaudhry Method for performing power simulations on complex designs running complex software applications
US9317636B1 (en) 2006-12-11 2016-04-19 Synopsys, Inc. System and method for stopping integrated circuit simulation
US8423959B1 (en) 2006-12-11 2013-04-16 Synopsys, Inc. Techniques for coordinating and controlling debuggers in a simulation environment
US8397220B1 (en) 2007-02-12 2013-03-12 Synopsys, Inc. Simulation control techniques
US7721176B2 (en) * 2007-12-06 2010-05-18 International Business Machines Corporation Method, system, and computer program product for integrated circuit recovery testing using simulation checkpoints
US7512933B1 (en) 2008-01-27 2009-03-31 International Business Machines Corporation Method and system for associating logs and traces to test cases
US8108662B2 (en) * 2008-10-09 2012-01-31 International Business Machines Corporation Checkpointing a hybrid architecture computing system
US8862937B2 (en) * 2010-05-06 2014-10-14 Verizon Patent And Licensing Inc. Method and system for migrating data from multiple sources
US8762781B2 (en) * 2010-11-16 2014-06-24 International Business Machines Corporation Method and apparatus useful in manufacturing test case operations
US10282281B2 (en) 2011-10-07 2019-05-07 Syntel, Inc. Software testing platform and method
US8601418B1 (en) * 2012-05-15 2013-12-03 International Business Machines Corporation Instruction-by-instruction checking on acceleration platforms
US20140019929A1 (en) * 2012-05-15 2014-01-16 International Business Machines Corporation Partial Instruction-by-instruction checking on acceleration platforms
US20140156233A1 (en) * 2012-12-03 2014-06-05 Can Wang Method and apparatus for electronic circuit simulation
US9424159B2 (en) * 2013-10-10 2016-08-23 International Business Machines Corporation Performance measurement of hardware accelerators
US9727450B2 (en) 2015-03-27 2017-08-08 Syntel, Inc. Model-based software application testing
US10126952B2 (en) 2015-11-05 2018-11-13 International Business Machines Corporation Memory move instruction sequence targeting a memory-mapped device
US10140052B2 (en) 2015-11-05 2018-11-27 International Business Machines Corporation Memory access in a data processing system utilizing copy and paste instructions
US10042580B2 (en) 2015-11-05 2018-08-07 International Business Machines Corporation Speculatively performing memory move requests with respect to a barrier
US9996298B2 (en) 2015-11-05 2018-06-12 International Business Machines Corporation Memory move instruction sequence enabling software control
US10241945B2 (en) 2015-11-05 2019-03-26 International Business Machines Corporation Memory move supporting speculative acquisition of source and destination data granules including copy-type and paste-type instructions
US10346164B2 (en) 2015-11-05 2019-07-09 International Business Machines Corporation Memory move instruction sequence targeting an accelerator switchboard
US10152322B2 (en) 2015-11-05 2018-12-11 International Business Machines Corporation Memory move instruction sequence including a stream of copy-type and paste-type instructions
US10067713B2 (en) 2015-11-05 2018-09-04 International Business Machines Corporation Efficient enforcement of barriers with respect to memory move sequences
US10831627B2 (en) 2018-07-23 2020-11-10 International Business Machines Corporation Accelerator monitoring and testing
US10817339B2 (en) 2018-08-09 2020-10-27 International Business Machines Corporation Accelerator validation and reporting
US10896273B2 (en) 2018-10-12 2021-01-19 International Business Machines Corporation Precise verification of a logic problem on a simulation accelerator
US11080141B2 (en) * 2019-01-22 2021-08-03 International Business Machines Corporation Automatic restarting and reconfiguration of physics-based models in event of model failure
US11537883B2 (en) 2019-11-20 2022-12-27 Wipro Limited Method and system for minimizing impact of faulty nodes associated with an artificial neural network
US20200266995A1 (en) * 2020-05-04 2020-08-20 Vinodh Gopal Managing state in accelerators
US11562116B2 (en) 2020-07-07 2023-01-24 International Business Machines Corporation Detecting deviations from targeted design performance in accelerator/emulator environment

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4242751A (en) * 1978-08-28 1980-12-30 Genrad, Inc. Automatic fault-probing method and apparatus for checking electrical circuits and the like
JPS5755456A (en) * 1980-09-19 1982-04-02 Hitachi Ltd Career recording system
JPS59148971A (ja) * 1983-02-14 1984-08-25 Hitachi Ltd 論理回路シミュレ−ション方法
JPS62251843A (ja) * 1986-04-25 1987-11-02 Hitachi Ltd 論理シミユレ−シヨン方法および装置
US4727545A (en) * 1986-09-02 1988-02-23 Digital Equipment Corporation Method and apparatus for isolating faults in a digital logic circuit
US4736338A (en) * 1986-10-07 1988-04-05 Silicon Solutions Corporation Programmable look up system
JP2585592B2 (ja) * 1987-05-13 1997-02-26 株式会社日立製作所 電子計算機調整方法
JPH0228576A (ja) * 1988-07-18 1990-01-30 Tdk Corp 磁気センサ
US4912707A (en) * 1988-08-23 1990-03-27 International Business Machines Corporation Checkpoint retry mechanism

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008507018A (ja) * 2004-07-14 2008-03-06 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 制御装置とアクティブチェーン診断をモデリングするプログラムとを結合する結合方法
KR101478567B1 (ko) * 2013-03-26 2015-01-02 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 가속 이익 추정기
US9747185B2 (en) 2013-03-26 2017-08-29 Empire Technology Development Llc Acceleration benefit estimator

Also Published As

Publication number Publication date
EP0442277A3 (en) 1993-02-24
EP0442277A2 (en) 1991-08-21
US5146460A (en) 1992-09-08
JPH0727538B2 (ja) 1995-03-29

Similar Documents

Publication Publication Date Title
JPH04216174A (ja) ハードウェア・アクセラレータを用いた論理シミユレーション方法および装置
US8930912B2 (en) Method and system for performing software verification
US6539522B1 (en) Method of developing re-usable software for efficient verification of system-on-chip integrated circuit designs
US8813035B2 (en) Paradigm for concurrency testcase generation
US20090248390A1 (en) Trace debugging in a hardware emulation environment
JPH08227367A (ja) ハードウエア−ソフトウエアデバッガ
US5161116A (en) System for evaluating the performance of a large scale programmable machine capable of having a plurality of terminals attached thereto
US7979822B2 (en) Apparatus and method for performing a sequence of verification tests to verify a design of a data processing system
Alvarez et al. Centralized failure injection for distributed, fault-tolerant protocol testing
CN108959058A (zh) 一种虚拟控制器的组态调试器实现方法
Pingree et al. Validation of mission critical software design and implementation using model checking [spacecraft]
Schmid Monitoring distributed real-time systems
US20110087922A1 (en) Test method and tool for master-slave systems on multicore processors
Edmunds et al. Technical Design Report for the Level 2 global processor
Attia et al. StateLink: FPGA system debugging via flexible simulation/hardware integration
US7346484B2 (en) Monitor manager that creates and executes state machine-based monitor instances in a digital simulation
Lutz et al. Testing tools (software)
US8914274B1 (en) Method and system for instruction set simulation with concurrent attachment of multiple debuggers
Rogers et al. High level hierarchical fault simulation techniques
JP2533489B2 (ja) シミユレ−シヨン方式
JPS6349851A (ja) シミユレ−シヨンシステム
Marra et al. A debugging approach for big data applications in pharo
Tsai et al. A replay mechanism for non-interference real-time software testing and debugging
Grabner et al. Debugging of concurrent processes
Tzou et al. A distributed development environment for embedded software