JP4656929B2 - エミュレーションシステムとシミュレータとの間でのシミュレーション及び可視化データ転送のための最適化インターフェース - Google Patents

エミュレーションシステムとシミュレータとの間でのシミュレーション及び可視化データ転送のための最適化インターフェース Download PDF

Info

Publication number
JP4656929B2
JP4656929B2 JP2004362032A JP2004362032A JP4656929B2 JP 4656929 B2 JP4656929 B2 JP 4656929B2 JP 2004362032 A JP2004362032 A JP 2004362032A JP 2004362032 A JP2004362032 A JP 2004362032A JP 4656929 B2 JP4656929 B2 JP 4656929B2
Authority
JP
Japan
Prior art keywords
simulator
interface
data
controller
buffer
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 - Fee Related
Application number
JP2004362032A
Other languages
English (en)
Other versions
JP2005301981A (ja
Inventor
バートン クエイル
ミッチェル ジー ポプラック
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.)
Quickturn Design Systems Inc
Original Assignee
Quickturn Design Systems Inc
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 Quickturn Design Systems Inc filed Critical Quickturn Design Systems Inc
Publication of JP2005301981A publication Critical patent/JP2005301981A/ja
Application granted granted Critical
Publication of JP4656929B2 publication Critical patent/JP4656929B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

関連する出願
本出願は、2003年11月18日に出願された米国仮出願第60/520945号の利益を請求する。米国仮出願第60/520945号の内容は、その全てが参照によって本明細書に組み込まれる。
本発明の技術分野は、一般的には、論理回路のハードウェア及びソフトウェアの検証に関し、より詳しくは、ワークステーション上で実行されるプログラムとハードウェア検証システムの間でのデータ転送の帯域幅及び遅れ時間(レイテンシー;latency)を最適化する通信プロトコル及び通信制御ハードウェアに関する。
集積回路の製造に先立って、設計者は、集積回路の設計(以下、検証下の設計“DUV”という)の機能を検証する。DUVは、通常、設計のネットリスト記述の形式で提供される。ネットリストは、ハードウェア記述言語を含め、多くのソースから得ることができる。ネットリスト記述(あるいは、当業者によって呼ばれている“ネットリスト”)は、回路の構成要素及び構成要素間の電気的相互接続の記述である。構成要素は、結合論理(例えば、ゲート)やシーケンシャル論理(例えば、フリップフロップやラッチ)のような論理回路を実装するために必要な全ての回路要素を含んでいる。
集積回路の製作が高価であり時間を要するため、設計の検証が実行される。回路設計が機能エラーを含んでいる場合には、設計が修正され、再度製作される必要がある。集積回路の機能を検証するための多くの異なる解決法が開発されている。論理エミュレーションシステムのようなハードウェアベース(hardware-based)の設計検証は、複数のプログラム可能な集積回路内にユーザの設計を実装する、公知の装置である。このような論理エミュレーションシステムは、米国、カリフォルニア州、サンノゼのケイデンス・デザイン・システムズ・インコーポレイテッドを含む多くの販売会社から入手可能である。典型的なエミュレーションシステムは、プログラム可能に相互接続されている、プログラム可能な論理チップあるいはプロセッサチップを用いる。プロセッサベース(processor-based)のエミュレーションシステムでは、DUVは、その機能が、設計の出力を計算することによってプロセッサ内に生成されるように処理される。論理自身は、プロセッサベースのエミュレーションシステム内に実装されない。プロセッサチップを用いるハードウェア論理エミュレーションシステムの1例は、米国特許第5551013号、第6035117号、第6051030号に開示されている。米国特許第5551013号、第6035117号、第6051030号は、参照によって本明細書に組み込まれている。
設計検証システムの他の形式は、ソフトウェアシミュレータとして知られている。ソフトウェアシミュレータは、シミュレーションソフトウェアが、エミュレーションシステムのような特別のハードウェア内ではなく、むしろ一般目的のコンピュータ内で実行される点が、ハードウェア検証解決法と異なっている。シミュレーションは、DUV(あるいは、その部分)及びテストベンチ(testbench)が、マシン実行可能モデル内にコンパイルされ、また、ワークステーションあるいはパソコン内で実行される、ソフトウェアベースの解決法である。テストベンチは、設計を刺激するために用いられる一連のテストベクター(test vector)(すなわち、スティミュラス(stimulus))であり、また、ベクターがDUV内を進行した後、DUVから出力を受信するモジュールを含んでいてもよい。現時点では、大部分の電子設計がベリログ(Verilog)のようなハードウェア記述言語(“HDL”)を用いて設計されるため、テストベンチは、典型的には、いくつかのHDLコードにより構成される。
ハードウェアベースの検証システム及びソフトウェアベースの検証システムは、それぞれ、他方には不足している利益を有している。例えば、ソフトウェアベースの検証システムは、現実の電子システム内に実装される時に現実のDUVが直面する正確なタイミング(すなわち、クロッキング)の使用を可能とし、非常に精密な検証を可能とする。ソフトウェアシミュレータは、ユーザが全ての論理動作の結果を見ることを可能とし、また、コンピュータのモニタ上に、ハイからローあるいはローからハイへの信号変化をグラフで表すことができる。ハードウェアベースの検証システムは、通常、この能力を有していないが、ハードウェアベースのシステムは、ソフトウェアベースのシステムよりも速く、したがって、非常に速い検証を提供する。
DUVをデバッグするために、設計者は、期間を通じて、設計信号の活動を注視する必要がある。この理由は、デジタル回路は、1あるいは多くのクロックによって駆動され、また、エラーは、DUVを駆動するクロックのさまざまの変化時に発生するからである。設計者は、期間を通じて設計信号を評価する時、少なくとも2つの問題点に直面する。1つの問題点は、どの信号を観察すべきか(すなわち、DUV内のどのノードを観察すべきか)である。第2の問題点は、いつ信号を観察すべきか(すなわち、どのクロック変化において及び/またはイベントのどの合流点で−時には、トリガと呼ばれる)である。これらの2つの問題点は、シミュレーション及びエミュレーションのツールに対する重大な難問を課する。第1に、回路設計は典型的に非常に大きい(例えば、百万ゲートのオーダー)。第2に、設計者が観察したい信号の数は、比例して多い。第3に、信号が観察される必要がある、設計のタイムウィンドウ(以下では、“トレースウィンドウ”という)は、シミュレーションあるいはエミュレーションに先立って予測するのが困難であるため、設計をデバッグする設計者は、できるだけ大きいトレースウィンドウを用いる。
これらの問題点を扱うために、回路設計者は、種々の解決法を用いてきた。そのような解決法の1つは、シミュレータ内にDUVロックステップ(lockstep)を進行させることである。この解決法を用いれば、シミュレーションの進行は、相互に作用する動作において、設計者によって制御される。設計者は、シミュレーションを実行、信号を停止及び観察、続行、そして、処理を繰り返すことができる。シミュレーションが停止する時、設計者は、設計内の任意の信号の状態をチェックすることができる。第2の解決法は、信号ダンプを備える自由進行シミュレーションを実行することである。“自由進行”解決法を用いることにより、シミュレーションは、ユーザの介在なしに自由に実行され、また、シミュレーションの期間中に観察される信号は、シミュレーションの期間中にダンプされる。シミュレーションが開始する前に、ダンプされる信号が特定されなければならないことに注意することが重要である。これらのシミュレーション解決法は、有効であるが、非常に遅い。第3の解決法は、トレースウィンドウの固定の大きさに対して十分な可視性を許容するエミュレータを用いることである。この解決法では、エミュレータは自由に進行し、また、十分な視野を許容するエミュレータ内でDUVによって発生される信号は、任意の期間に対して蓄積される。最後の解決法は、DUVを、制限された可視性及び再生を備えるエミュレータを用いてエミュレートすることである。この解決法を用いれば、制限された情報が、エミュレーションの期間の間蓄積される。設計者は、分析に十分な情報を得るためにエミュレーションを数回実行する。
前述したように、ハードウェアベースの検証システムを用いる1つの方法は、ソフトウェアシミュレータと接続している。これは、時には、シミュレーションアクセラレーション(simulation acceleration)と呼ばれる。エミュレータは、シミュレータより速い速度で動作するため、エミュレーションシステム、特に、プロセッサベースのエミュレーションシステムは、エミュレートされる回路内の状態や行動に関する大量の情報を含んでいる。この理由は以下のとおりである。シミュレータは、シミュレーションの単一サイクルの直後の特定の時点(すなわち、クロックサイクル)に、DUV内の特定のノードに信号が存在する時に、設計者が信号の状態を見ることを可能とする。シミュレーションサイクルは、DUVを駆動する最も速いクロックの1ステップの間の総時間(したがって、発生する状態変化)である。言い換えれば、シミュレーションサイクルは、シミュレーションサイクルの間に発生する任意の信号変化が典型的には関係しないため、検証動作の期間中の重要な時点である。通常、DUV内において重要である信号変化のみが、1つのシミュレーションサイクルの終わりに存在する信号変化である。
シミュレーション環境では、シミュレーションサイクルの期間DUVを駆動するスティミュラは、ワークステーション上でモデル化される。対照的に、シミュレーションアクセラレーション環境では、DUVを駆動するスティミュラは、DUVをエミュレートするエミュレータに送られ、そして、応答がシミュレータに送り返される。エミュレータは、シミュレータより劇的に速いクロック速度でDUVを進行させるため、シミュレーションアクセラレーションは、DUVを検証するために費やす総時間を劇的に低減することができる。
ユーザインターフェース及びソフトウェアシミュレータは、シミュレーションアクセラレーションを時間をかける価値があるものとするために、この状態情報に絶えずアクセスする必要がある。また、シミュレーションエンジンは、シミュレーションを継続するために、エミュレートされる回路内における状態変化に対する迅速な応答が必要であり、低い遅れ時間が要求される(すなわち、シミュレータ及びエミュレータは、通常、ロックステップモードで進行する必要がある)。さらに、大きなエミュレーション内で要求され、また、利用可能とされるデータの全くの量は、高い帯域幅接続を必要とする。
シミュレーションアクセラレーションのためのサイクル時間は、通常、シミュレータからエミュレータに信号を送るために要する時間、エミュレータが、DUVを介して進行する信号内に発生した変化を計算するために要する時間、それらの変化をワークステーション内で作動しているシミュレータに送り返すために必要な時間の総和として定義される。シミュレーションアクセラレーション内の鍵となる問題点である遅れ時間は、エミュレータからの応答を得るために要する時間の総和である。有用な検証方法であるシミュレーションアクセラレーションのために、遅れ時間は、できるだけ低減されなければならない。
少なくとも1つの従来の解決法は、ハードウェアベースの検証システム(例えば、エミュレータ)とソフトウェアベースの検証システム(例えば、シミュレータ)との間の低い遅れ時間及び高い帯域幅を提供する。1つの従来の解決法では、ソフトウェアシミュレータは、エミュレータ内のローカルプロセッサへの高い遅れ時間イーサーネット通路を介し、そして、エミュレーションシステム内の個々の構成要素をアクセスするためのアドレス/データ・ハンドシェイクパス(handshake path)を介してエミュレータを質問することによって、エミュレータの状態をアクセスする。第2の従来の解決法では、ダイレクトアタッチスティミュラス(“DAS”)(direct attach stimulus)インターフェースが、DUTのエミュレートされる論理内にプログラムされる1連のレジスタ回路に接続される。ソフトウェアシミュレーションアクセスは、これらのレジスタ内への及び/またはレジスタからのデータのバースト内にグループ化される。このデータのバーストは、エミュレートされるレジスタとワークステーション内のPCIカード上のメモリバッファとの間の31ビットデータパスを渡って転送される。シミュレータは、データをフォーマットし、データをPCIメモリに転送し、また、転送を開始させる“DASドライバ”へのデータを取り扱う。完了すると、ドライバは、リターンデータをシミュレータのバッファに戻す。DASカードは、カリフォルニア州、サンノゼのケイデンス・デザイン・システムズ・インコーポレイテッドから入手可能な製品であり、ワークステーションあるいはパーソナルコンピュータ内で動作するシミュレータとエミュレータとの間の通信を提供する。
第1の従来の解決法の問題点は、エミュレーションシステム内の埋め込まれたプロセッサへのネットワークパスが、要求を受信し、エミュレーションエンジン内の適切な要素にアクセスし、応答を策定し、そして、それをネットワークを渡ってワークステーションアプリケーションに送るローカルプロセッサの応答時間のため、非常に高い遅れ時間を有している。
前述した従来技術のDAS構造では、多くのワークステーシインターフェース内のように、遅れ時間や帯域幅は、ワークステーションの入力/出力(“I/O”)サブシステム、PCIバス、ローカルハードディスクアクセス、そして、DMAエンジンのようなI/Oソースへのアクセスに依存する。これは、転送のセットアップ及び転送自身に対して真実である。さらに、先のDAS構造では、ハードウェア制限のため、ワークステーションメモリ内の各32ビットのうちの31ビットのみがエミュレーションデータとして使用可能である。これにより、シミュレータ内の長いビットベクタがDASパケットバッファ内の隣接するビットに直接にマップされず、ギャップを避けるような方法でビットを詰め込むためのソフトウェアを必要とする、望ましくない状態が発生する。
エミュレーションシステム内で実行されるDUVによって発生する多くの信号が増加する一方で、シミュレーションアクセラレーションの人気がより高くなっているため、ワークステーション内を進行するシミュレータと、これらのシミュレータと通信するエミュレータの間で信号及び指示を転送する改良された方法に対する要求がある。
概要
エミュレーションシステムとシミュレータとの間でのシミュレーション及び可視化データ転送のための最適化インターフェースが開示されている。1つの実施の形態では、インターフェースを介するシミュレータとエミュレータとの間でのデータ転送方法は、シミュレータのシミュレータバッファを、エミュレーションサイクルに対して所望の入力状態を含むようにアップデートする。インターフェースへのターゲット書込は、エミュレーションサイクルが進行可能であることを指示するために実行される。エミュレーションサイクルは、シミュレータと独立しているインターフェース内で指示シーケンサを用いて完了する。
要素の実装及び結合に関する種々の新規な詳細を含む、前述の及び他の好ましい特徴は、添付の図面を参照してより詳細に記述され、また、クレーム内で指摘されている。ここに記述されている特別の方法及び回路は、説明のためにのみ示されており、制限として示されているものでないことが理解される。当業者に理解されるように、ここに記述されている原理及び特徴は、本発明の概念から逸脱することなく種々のそして多くの態様において実施される。
エミュレーションシステムとシミュレータとの間のシミュレーション及び可視化データ転送のための最適化インターフェースが開示されている。1つの実施の形態では、インターフェースを介する、ワークステーション内で進行するシミュレータとエミュレータとの間でのデータ転送方法は、シミュレータのシミュレータバッファを、エミュレーションサイクルに対する所望の入力状態を含むようにアップデートする。インターフェースへのターゲット書込は、エミュレーションサイクルが進行することを指示するために実行される。エミュレーションサイクルは、シミュレータと独立しているインターフェース内で指示シーケンサを用いて完了する。
以下の記述は、説明のためのものであり、特別の専門語は、ここに開示されている種々の創作性を有する概念の完全な理解を提供するために示されている。しかしながら、当業者には、これらの特別な詳細が、ここに開示されている種々の創作性を有する概念を実施するために要求されないことが明らかである。
以下の詳細な説明のいくつかの部分は、コンピュータメモリ内でのデータビット上の動作のアルゴリズム及びシンボル表現の用語で表されている。これらのアルゴリズム記述及び表現は、データ処理技術分野の当業者によって、作業の要旨を最も効果的に他の当業者に伝達するために使用される手段である。ここで、アルゴリズムは、一般的に、所望の結果に導く、ステップの首尾一貫したシーケンスであるように表される。ステップは、物理量の物理操作を必要とする。通常、必要としないが、これらの量は、蓄積され、転送され、結合され、比較され及び他の方法で扱われることが可能な電気あるいは磁気信号の形式をとる。主に通常使用の理由により、これらの信号をビット、値、要素、シンボル、文字、単語、数等として参照することが、時には便利であることが判明している。
しかしながら、これらの全て及び類似の単語は、適切な物理量と関連し、また、これらの量に適用される単なる便利なラベルであることを心に留める必要がある。以下の議論から明らかであるものとして特別に他の方法で説明されていない場合には、記述を通して、“処理”あるいは“計算”あるいは“算出”あるいは“決定”あるいは“表示”のような用語を使用する議論は、コンピュータシステムのレジスタ及びメモリ内で物理(電子)量として表わされているデータを、コンピュータシステムのメモリあるいはレジスタあるいは他の情報の蓄積、転送あるいは表示装置内の物理量として同じように表わされている他のデータに扱い及び変換する、コンピュータシステムあるいは類似の電子計算装置の行動及び処理として参照されることが認識される。
また、本発明は、ここで動作を実行するための装置に関する。この装置は、要求される目的のために特別に構成可能であり、あるいは、コンピュータ内に蓄積されているコンピュータプログラムによって選択的に作動あるいは再構築可能である、一般目的のコンピュータにより構成される。このコンピュータプログラムは、限定はされないが、フロッピーディスク(登録商標)、光学ディスク、CD−ROM及び磁気−光ディスクを含む任意の形式のディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気あるいは光カード、あるいは、電子指示を格納するのに適している任意の形式の媒体等の、コンピュータ読み取り可能な蓄積媒体であって、それぞれコンピュータシステムバスに結合されている蓄積媒体内に蓄積される。
ここに示されているアルゴリズム及び表示は、任意の特別なコンピュータあるいは他の装置に固有に関係しない。種々の一般目的のシステムが、ここに示されている技術に対応するプログラムとともに使用可能であり、あるいは、要求される方法ステップを実行するためのより特殊化された装置を構成するために便利であることを証明する。これらのシステムの多様性に対して要求される構成は、以下の記述から明らかとなる。さらに、本発明は、特別のプログラム言語を参照して記述されていない。種々のプログラム言語が、ここに記述されている発明の教示を実装するために使用可能であることが認識される。
図面に戻ると、本教示の、現時点において好ましい装置及び方法が、以下に記述されている。ここに記述されている種々の実施の形態は、DMA制御を提供し、PCI転送を最適化することによって、ワークステーションとエミュレータとの間でデータを転送する際の遅れ影響を最小化する。また、これらの実施の形態は、データ転送を開始及び終了させるために必要な組み立て(セットアップ)を最小化する。また、広いデータパスは帯域幅を増大させる。種々の実施の形態は、重要なデータをパケット内に編成し、そして、それをエミュレーション回路に同期化させるための転送を制御する、エミュレートされる回路内に埋め込まれる制御論理とのインターフェースによって、スティムラスを挿入し、また、エミュレーション論理から直接にデータを取り出す(以下では、ダイレクトアタッチスティミュラスという)、パケット転送プロトコルを含む構造を使用する。
図1は、1つの実施の形態に対応する、例示的な高速インターフェースのブロック図を示している。より詳しくは、インターフェース20は、シミュレーションプログラムを進行させるワークステーション10とエミュレーションシステム30の間の低レイテンシ(遅れ時間)インターフェースである。ワークステーション10は、ソフトウェアシミュレーションプログラムを形成する指示を含む、コンピュータ指示を実行することができる中央処理ユニット(“CPU”)15を有している。ワークステーションは、パーソナルコンピュータ等を含む任意の形式の計算装置である。また、ワークステーション10は、CPU15と通信するランダムアクセスメモリ(RAM)18の形式のメモリを有している。また、CPU15は、インターフェース20に接続される。インターフェース20は、ケーブル35を介して、エミュレーションシステムのようなハードウェアベースの機能検証装置30と通信する。インターフェース20は、ダイレクトメモリアクセス(“DMA”)モジュール24と通信するI/Oプロセッサ22を有する。以下で分かるように、DMA24により、ハードウェアアクセラレーションの期間中にエミュレーションシステム30から要求された信号は、CPU15を使用する必要なしにRAM18内に直接に蓄積される。
インターフェース20は、ワークステーション10内に挿入可能な1つのカード上に配置可能である。現時点において好ましい実施の形態では、インターフェース20は、通常“PCIバス”と呼ばれている、周辺構成要素相互接続バス40を介してワークステーションと通信する。PCIバス40は、周辺装置が、ワークステーションのようなコンピュータシステムと通信するのを可能とする標準バスである。ワークステーション10は、サン・マイクロシステムズのUltra60、Ultra80、Ultra450、Blade1000、HPJ6000、IBMのRS/6000 F80、Dellのワークステーション530、IBMのIntelistation ZPro6866、あるいは、同様の計算装置である。インターフェース20によって、信号は、エミュレータ30と、ワークステーション10内のPCIバス40を介してワークステーション10上を進行するシミュレータとの間を前方及び後方に転送可能である。エミュレータが、PCIバス40が扱うことができるよりはるかに多くの信号を生成及び受信することができるため、インターフェース20が必要である。インターフェース20は、RAM18からデータを直接集め、それをエミュレータ30にインターフェース35を介して転送し、また、同時に、エミュレータ30からのデータをDMA24を用いてRAM18に転送する。言い換えれば、PCIバス40は、両帯域幅が不足し、また、エミュレータ内で発生した設計信号を、有用な方法でシミュレータ内で評価可能な十分に大きい遅れ時間を有している。
図2は、本発明の1つの実施の形態に対応する、インターフェース20の例示的なデータパスを示すブロック図を示している。インターフェース20の多くの機能は、フィールドプログラマブルゲートアレイ(“FPGA”)内にプログラム可能である。インターフェース20は、PCIバス40とインターフェース20の残りの構成要素との間のインターフェースとして行動するPCIコア65を含んでいる。PCIコア65は、インターフェース20が、PCIバス40上にデータを配置し、また、PCIバス40からデータを受信可能となるように、標準PCIプロトコルを実装している。PCIコア65は、いくつかの異なる販売者から要求される標準の構成要素として実装可能である。1つの実施の形態によれば、PCIコア65は、XilinxのVirtex−II 64ビット、66MHz、Master/target IPコアを用いている。PCIコントローラ70は、PCIコア65と通信する。PCIコントローラは、PCIコア65とインターフェース20の残りとの間のインターフェースとして動作する。現時点において好ましい実施の形態では、PCIコア65とインターフェース20の他の部分との間では通信しない。PCIコントローラ70は、PCIバス40からインターフェース20内のメモリ及びレジスタへのアクセスを可能とする。現時点において好ましい実施の形態では、PCIバス40へのあるいはPCIバス40からの全てのアクセスは、32ビット幅あるいは64ビット幅のいずれかである。PCIコントローラ70は、ホストメモリへの読み出し及び書き込みバースト転送のPCIイニシエータ(initiator)として動作することができる。
また、インターフェース20は、インターフェース20が動作シーケンスを実行可能とする指示シーケンサ(“IS”)を備えている。例示的な指示シーケンスは、以下の通りである。
Figure 0004656929
指示シーケンサ50によって実行される正確な指示シーケンスは、プログラマの考え次第である。この柔軟性は、ソフトウェアに、システムの動作を最適化するためのより大きな能力を与える。また、この構造は、ハードウェアが、指示セットの展開を通して、また、論理設計の適切な部分に差し込むことによって、新しい機能強化能力を統合することをより容易にする。
最も簡単なモードでは、指示シーケンサ50が、指示完了に対してPCIW(PCI書込語)が追随する単一の動作を備える非常に短いシーケンスを実行することを可能にする。これは、個々の動作が単一のAPI呼び出しを通して実行される現在のAPIモードを支えるのに有用である。
また、指示シーケンサ50は、インターフェース20とエミュレータ(図2には図示されていない)との間で通信するケーブル35からのあるいはケーブル35へのデータ転送を開始する。1つの実施の形態によれば、ケーブル35の帯域幅は、12MHzにおいて64ビットのデータパスを有することにより、各方向に96MB/秒である。1つの実施の形態によれば、MolexのLFH 200ピンコネクタが、ケーブルをインターフェース20に接続するために使用可能である。最終的に、指示シーケンサ50は、PCIバスを介する、ワークステーションRAM(例えば、図1のRAM18)とインターフェースRAM75間のメモリデータを複写するためのDMA転送を実行する、メモリ複写指示を開始する。
指示シーケンサ50は、指示シーケンサ50を介して連結される指示を蓄積する内部RAM55からの指示を受信する。1つの実施の形態によれば、RAM55は、2MBの蓄積空間を有する内部FPGA RAMである。RAM55内に蓄積される例示的な指示は、以下の通りである。
Figure 0004656929
Figure 0004656929
現時点において好ましい実施の形態では、指示シーケンサコードに使用可能な深さが512指示であることに注意することは重要である。この空間により、いくつかの異なる指示シーケンスは、内部RAM55内にロード可能である。異なるシーケンスにスイッチするために、一般レジスタ60内の指示ポインタは、所望の指示シーケンスの開始に対してアップデートされる。
指示シーケンサ50は、適切な場所で動作の平行化が可能である。例えば、CUP(“エミュレータからアップロード、比較”)指示が完了する前に、PUP(“ブロックをワークステーションメモリにアップロード”)指示を開始することができる。通常、シーケンス指示は、調和しない動作が同時に行われないように適切にコード化されるのが好ましい。これにより、同時に実行することができない動作の平行化に対する保護が設けられる。例えば、PCI動作は、他のPCI動作が進行中である場合には、実行されない。(一般に、大部分の動作は、大分部の種類の先行する動作の完了を要求する。
また、PCIコントローラ70は、ゼロバス回転(“ZBT”)形式のRAMコントローラ75と通信する。RAM85は、“ゼロバス回転”インターフェースを使用するスタティックRAMである。ZBTインターフェースは、データバスが、読み出しデータから書き込みデータに(あるいは、その逆に)スイッチする時に発生する遅れ時間を除去する。ZBT形式のRAM85を使用することにより、読み出し及び書込動作が単一のクロックサイクル内で実行可能となる。RAMコントローラ75は、ケーブルインターフェースコントローラ80とデータを交換する。ケーブルインターフェースコントローラ80は、順にエミュレータ(図示省略)と通信するケーブル35を通信する。RAMコントローラ75は、RAM85ができるだけ速くデータを読み出し及び書き込むように最適化され、これにより、遅れ時間を最小化する、パイプライン接続されたコントローラである。ケーブルインターフェースコントローラ80は、インターフェース20の、ケーブル35とのハンドシェイクを制御する。言い換えれば、ケーブルインターフェースコントローラ80は、RAM85に蓄積されたデータがケーブル35上に配置される方法を制御する。
RAM85は、エミュレータとシミュレータとの間で前後に転送されるデータを蓄積することによって、インターフェース20に対するローカルメモリとして動作する。ZBT形式のRAM85の使用は、それらのメモリが、エミュレータ及びシミュレータの両方が、同時にそれぞれの間での前後方向への転送を可能とするため、他のRAM技術に対して好ましい。
指示シーケンサ50は、一般レジスタ60内に蓄積されるデータによって制御される。一般レジスタ60は、指示シーケンサ50が、内部RAM55からの情報を得るために使用する構成情報を蓄積する。一般レジスタ60内の例示的なレジスタは、コントローラ情報、コントローラモード、インタラプト制御、コントローラステイタス、ケーブル入力、クロック制御、指示シーケンサ(“IS”)指示ポインタ、ISダイレクトコマンド、ISダイレクト/ステップ実行、PCIコントローラ制御、コントローラ失敗、EEPROMコマンド、構成JTAGコマンド、構成JTAG出力、構成JTAG入力、ケーブル比較値、ケーブル比較マスク、PCIアップロードカウント、PCIダウンロードカウント、ケーブルカウント、ストリーミング制御及びスクラッチを含んでいる。
現時点での好ましいハードウェアは、1つのフィールドプログラム可能なゲートアレイ(FPGA)及び2つのメガバイトのSRAM55を有し、各方向への66個の信号導体を含むケーブル35に接続する64ビット/66MHzのPCIである。現時点での好ましい実施の形態では、一般レジスタ60、PCIコア65、PCIコントローラ65、指示シーケンサ50、内部RAM55、RAMコントローラ75及びケーブルインターフェースコントローラは、これらの機能をFPGA100内にプログラムすることによって実装される。
図3は、本発明の1つの実施の形態に対応する、インターフェース20のための例示的な論理制御パスを示している。制御は、制御される機能ブロックを指している矢印によって示されている。図3に示されているように、指示シーケンサ50は、一般レジスタ60によって制御される。これに比べて、指示シーケンサ50は、ケーブルインターフェース80に、エミュレータ(例えば、図1のエミュレータ30)とともにケーブル転送を開始するために信号を送る。また、指示シーケンサ50は、指示のシーケンスを読み出し及び処理するために内部RAM55を制御する。PCIコントローラ70は、2つの構成要素を有している。PCIコントローラ70の第1の構成要素は、指示シーケンサ50によって制御されるイニシエータ70bである。指示シーケンサ50は、その後にイニシエータ70bによって運ばれるメモリ複写DMA動作を開始させるために、イニシエータ70bを制御する。また、イニシエータ70bは、一般レジスタ60を制御する。PCIコントローラ70の第2の構成要素は、ターゲット70aである。PCIコントローラ70のイニシエータ70bと同様に、ターゲット70aも、一般レジスタ60を制御する。また、ターゲット70a及びイニシエータ70bは、RAMコントローラ75を制御する。この理由は、データがPCIバス40に書き込まれあるいはPCIバス40から読み出される時に、PCIコントローラ70が制御するからである。このように、ターゲット70aとイニシエータ70bは、データがRAM85から読み出されあるいはRAM85に書き込まれる時に制御する。また、RAMコントローラ75は、ケーブルインターフェースコントローラ80によって制御される。ケーブルインターフェースコントローラ80は、RAMコントローラ75を渡る制御を有している。ケーブルインターフェースコントローラ80がケーブル転送を実行する時、ケーブルインターフェースコントローラ80は、ケーブル35とRAM85の間でデータを転送するためにRAMコントローラ75を直接制御する。指示シーケンサ50は、ケーブルインターフェースコントローラ80を制御する。
図4は、1つの実施の形態に対応する、例示的なRAMパイプラインデータパスを示している。ストリーミングは、RAM85をアクセスするためのケーブルコントローラ80に対する優先性を与える(ケーブルプロトコルが停止不能であるため)、一方、RAM85への全ての残りの帯域幅がPCIコントローラ70によって消費されることを許容する、パイプライン接続され、優先するRAMコントローラ75によって可能とされる。RAM85へのインターフェースは、1つの実施の形態では32ビット幅である。RAMコントローラ75とケーブルコントローラ80は、同じ速度で動作する。“読み出し”動作では、RAMコントローラ75は、単一サイクルに対して有効なデータと有効なフラグを実行する。このRAMインターフェースは、パイプラインの遅れを示す有効なフラグを有する、ケーブルインターフェースに対してパイプライン接続されたSRAMのように見える。RAMコントローラは、一般的に、ケーブルコントローラに対する優先性を備えているため、この遅れは固定であるが、有効なフラグは、ケーブルコントローラの設計を、実際のパイプラインの遅れに依存しないものとする。
ケーブルコントローラ80に対するさらなる機能強化は、ワークステーション10によって選択された32ビットあるいは64ビットの塊から、エミュレータに転送される56ビットの塊へのデータの再パックを可能にする。56ビット幅のケーブルモードは、データをエミュレータ30に転送するのに利用可能な帯域幅を増大する。1つの実施の形態によれば、56ビットデータは、2つの内部の高速ケーブル間のスプリットである。使用されるデータビットは、32ビットモードで使用される28の低ビットであり、第2の高速ケーブル上では28ビットが加算される。再パックは、ワークステーションの観点から、データ内に“ホール”が存在しないことを保証する。これにより、ビットのベクタは、ソフトウェアによる不必要な(そして、低速の)ビット操作を避けながら、ソフトウェアにより連続して処理可能である。図5は、本発明の1つの実施の形態に対応する、例示的な広いケーブルモードビットマッピングを示している。この再パックは、全てケーブルコントローラ80内で行われ、PCIコントローラ70、RAMコントローラ75及びエミュレータ30に対して全く透明である。図5に示されているように、RAM55内の用語内のビット位置は、ケーブル35上の用語内のビット位置に直接にマップされない。しかしながら、バッファ35を介するビットのインデックスは、全てのケーブル転送を介するビットのインデックスと同じである。ケーブルコントローラ80は、ケーブル35からデータを受信する時、バッファ55の終わりに、不要データの付加語を書き込んでもよい。
ローカル使用では、専用のDMAコントローラ24は、転送を開始するための遅れ時間を減少させ、また、コントローラ24のローカルバッファRAM18との統合を改善する。従来装置では、アプリケーションは、ハードディスク転送に対しても使用されるワークステーションシステムDMAコントローラの使用に対して、動作システムと好ましくない競合をした。実際、システムDMAコントローラは、PCI装置へのバーストPCI転送に対し十分に最適化されていない。
エミュレートされた設計がコンパイルされ、APIがロードされると、エミュレータに対する多くの転送パラメータが固定される:転送サイズ、バッファ位置等。指示シーケンサを備えることにより、インターフェース20は、所望の転送を実行するために予めプログラムされ、そして、ワークステーションメモリバッファ18は、簡単に言うと、PCIアクセス、したがって、遅れ時間の最適化を“進め”、転送をセットアップ及び開始する準備をする。このデータパスは図2に示されており、コントロールパスは図3に示されている。
RAMデータパスは、図4に示されているように、RAM帯域幅を最大化し、ローカルRAM18へのあるいはローカルRAM18からの同時のPCI及びケーブルアクセスを支えるために、十分にパイプライン接続されている。この同時のアクセスは、全てのケーブル転送が完了するのを待機すること無しに、ケーブルによって受信されたデータをPCIに迅速に転送することにより、転送遅れ時間を減少するために使用される“データストリーミング”を支える。
増大するPCI帯域幅のために、インターフェース20は、利用可能である64ビットのバス幅と66MHzの信号送信を使用する、PCI2.2に十分適合している。従来装置では、データは、データが送られた方法(:1ワード当たり31ビットのデータ、バッファ内では各用語内に1ハンドシェイクのビット)と同じ方法でワークステーションのメモリ内に編成される。インターフェース20を備えることにより、ケーブル35は、いくつかのシステム上では64ビットのデータまで、他では56ビットのデータまで扱うことができる。全てのデータは分断されないで蓄積され、シミュレーションデータを31ビットの用語に再配列する時間消費動作を除去する、ワークステーションデータの全ての32あるいは64ビットは、有用なデータである。56ビット転送の場合、64ビットバッファからのバイトは、図5に示されているように、それらを56ビットの用語にパックする、バイトを順に送信するためのインターフェース回路(例えば、図1のインターフェース20)によって再配列される。
図6は、1つの実施の形態に対応する、シミュレータからエミュレータへの例示的なデータ転送の例示的なフロー図600を示している。データの転送は、状態情報及びスティムラスを含んでいる。スティムラスは、次のエミュレーションサイクル(605)に対する所望の入力状態を含むように、ワークステーション上でドライバAPIを介して内部バッファ18をアップデートする。そして、シミュレータ10は、指示シーケンサ(610)を開始させるために、一般レジスタ60に対するインターフェース20への単一のターゲット書き込みを実行する。この地点で、指示シーケンサ50は、引き継ぎ、そして、ワークステーションのプロセッサ15に全く依存しない残りのサイクルを駆動する。指示シーケンサ50は、一般レジスタ60からの制御信号を常に監視している。指示シーケンスは、指示シーケンサ50によってRAM55から読み出され、PCIイニシエータ70bに対して、ワークステーションのバッファ18の内容をボード上のバッファ55(615)内にバースト読み出しすることを指示する。次に、指示シーケンスは、ケーブルコントローラ80に、必要なデータをRAM85から引き出し、そして、それをエミュレータ30(620)に送ることを指示する。そして、エミュレータは、データを処理し、結果をインターフェース20(625)に送り返す。データがエミュレータ30から受信されると、それは、同時に、PCIコントローラ70からDMA24を介してワークステーションメモリ18にアップロードされる(ストリーミングと呼ばれる)。全てのデータがエミュレータ30から転送されると、指示シーケンサ50は、エミュレーションサイクルの結果が分析(630)される準備ができていることをワークステーションプロセッサ15に警報するために、PCIコントローラ70に、ワークステーションメモリ18内の予め定められているメモリ位置を書き込むことを命じる。ワークステーション10は、データを新しい入力に転送し、処理を繰り返す(635)。
指示シーケンサ50の典型的な転送及び再プログラム可能なシーケンス特徴のみが、多くの他の可能性を可能とすることを知ることは重要である。例えば、非常に少ないビットのみが入力において変化する場合、指示シーケンサ50は、ワークステーションメモリ18からのバースト読み出しを飛ばし、そして、ワークステーション10は、ターゲット書き込みを介して直接にインターフェースバッファ55を修正することができる。指示シーケンサ50の他の特徴は、戻りデータ内の特定の状態が真となるまで、ケーブル転送を繰り返すことができることである。この能力は、エミュレータ30から戻されたデータが、実際には、古いデータよりも新しいエミュレータサイクルの事実上の結果であることを確認するために用いられる。
また、ここに開示されている種々の実施の形態は、メッセージバッファの連続する再送とメッセージ内容に依存する可変なメッセージサイズを含む、転送プロトコル上のいくつかの変更を含むことができる。転送の開始は、ワークステーションの制御を受けるよりも、ハードウェアイベントによってトリガされてもよい。メッセージの長さは、PCI空間内で直接にワークステーションソフトウェアによってセットされるよりも、メッセージ内のデータによって決定されてもよい。種々のローカルバッファは、受信したバッファ内の特別のデータに応答して送信されてもよい。
エミュレーションシステムとシミュレータとの間でのシミュレーション及び可視化データ転送のための最適化インターフェースが開示されている。最適化インターフェースは、特別の例やサブシステムに関して記述されているが、当業者であれば、これらの特別な例やサブシステムに限定されず、他の実施の形態にも広がることは明らかである。
本発明の1つの実施の形態に対応する、例示的な高速インターフェースのブロック図を示している。 本発明の1つの実施の形態に対応する、インターフェース20の例示的なデータパスを示すブロック図を示している。 本発明の1つの実施の形態に対応する、インターフェース20のための例示的な論理制御パスを示している。 本発明の1つの実施の形態に対応する、例示的なRAMパイプラインデータパスの図を示している。 本発明の1つの実施の形態に対応する、例示的なワイドケーブルモードビットマッピングの図を示している。 本発明の1つの実施の形態に対応する、シミュレータからエミュレータへのデータの例示的な転送の例示的なフロー図を示している。

Claims (39)

  1. インターフェースを介してシミュレータとエミュレータとの間でデータを転送する方法であって、
    エミュレーションサイクルに対する所望の入力状態を含むように、前記シミュレータにより前記シミュレータのシミュレータバッファをアップデートし、
    前記エミュレーションサイクルが前記シミュレータに依存しないで進行可能であることを指示するために、前記シミュレータにより前記インターフェースにターゲット書き込みを実施し、
    前記シミュレータに依存しないで、前記アップデートされたシミュレータバッファに含まれている前記所望の入力状態に対応して、前記インターフェース内で指示シーケンサを使用して指示のシーケンスを実行することにより、前記エミュレーションサイクルを完了する
  2. 請求項1の方法であって、
    前記指示シーケンサは、前記シミュレータバッファを前記インターフェースのインターフェースバッファ内にバースト読み出しすることをPCIコントローラに指示する。
  3. 請求項2の方法であって、
    前記指示シーケンサは、前記シミュレータバッファからデータを引き出し、また、前記データを前記エミュレータに送信することをケーブルコントローラに指示する。
  4. 請求項1〜3のいずれかの方法であって、さらに、
    前記インターフェースにおいて前記エミュレータからデータを受信し、
    同時に、パイプライン接続され、優先するインターフェースバッファコントローラを使用して前記シミュレータバッファに前記データをアップロードする。
  5. 請求項1〜4のいずれかの方法であって、
    前記指示シーケンサは、データが分析のために準備されていることを前記シミュレータに警告するために、前記シミュレータバッファ内の予め定められている位置を書き込むことをPCIコントローラに指示する。
  6. 請求項1〜5のいずれかの方法であって、
    前記指示シーケンサは、複数の一般レジスタから制御信号を受信する。
  7. 請求項1〜6のいずれかの方法であって、
    前記指示シーケンサは、戻りデータ内の特定の状態が真となるまでケーブル転送を繰り返す。
  8. 請求項1〜7のいずれかの方法であって、
    ケーブルコントローラが、前記シミュレータと関連する第1のビットサイズから前記エミュレータと関連する第2のビットサイズにデータを再パックする。
  9. 請求項1〜8のいずれかの方法であって、
    前記指示シーケンサは、PCIバス、インターフェースバッファ及びケーブル間のデータフローを制御し、また、前記指示シーケンサは、ハードウェア内に実装されている。
  10. 請求項1〜9のいずれかの方法であって、
    前記指示のシーケンスは、予めプログラムされている。
  11. シミュレータをエミュレータに接続する装置であって、
    ハードウェアインターフェースを備え、
    前記ハードウェアインターフェースは、
    PCIコントローラと、
    前記PCIコントローラに接続される一般レジスタと、
    前記一般レジスタに接続される指示シーケンサと、
    RAMに接続されるRAMコントローラと、
    ケーブルインターフェースコントローラを有し、
    前記ハードウェアインターフェースは、フィールドプログラマブルゲートアレイ内に実装され、
    前記RAMは、エミュレーションサイクルに対する所望の入力状態を蓄積し、
    前記シミュレータは、前記エミュレーションサイクルが前記シミュレータに依存しないで進行可能であることを前記指示シーケンサに指示するために、前記インターフェースにターゲット書き込みを実施し、
    前記指示シーケンサは、前記シミュレータに依存しないで、前記RAMに含まれている前記所望の入力状態に対応して指示のシーケンスを実行することにより、前記エミュレーションサイクルを完了する
  12. 請求項11の装置であって、
    前記ハードウェアインターフェースは、さらに、
    PROMコントローラと、
    EEPROMコントローラを有している。
  13. 請求項11または12の装置であって、
    前記一般レジスタは、コントローラ情報、コントローラモード、インタラプト制御、コントローラステイタス、ケーブル入力、クロック制御、指示シーケンサ(“IS”)指示ポインタ、ISダイレクトコマンド、ISダイレクト/ステップ実行、PCIコントローラ制御、コントローラアボート、EEPROMコマンド、構成JTAGコマンド、構成JTAG出力、構成JTAG入力、ケーブル比較値、ケーブル比較マスク、PCIアップロードカウント、PCIダウンロードカウント、ケーブルカウント、ストリーミング制御及びスクラッチを蓄積する。
  14. 請求項11〜13のいずれかの装置であって、
    前記RAMは、PCIDMAダウンロード、PCIDMAアップロード、ケーブルダウンロード、ケーブル転送及びケーブルアップロードを含む指示を蓄積する。
  15. 請求項11〜14のいずれかの装置であって、
    前記指示のシーケンスは、予めプログラムされている。
  16. 請求項11〜15のいずれかの装置であって、
    前記ケーブルインターフェースコントローラは、PCIカード上に存在し、96MB/秒及び12MHzにおける64ビットデータパスの帯域幅を有するケーブルに接続する。
  17. 請求項11〜16のいずれかの装置であって、
    前記RAMは、ZBT形式のRAMである。
  18. 請求項11〜17のいずれかの装置であって、
    前記ケーブルインターフェースコントローラは、前記シミュレータに関連する第1のビットサイズから前記エミュレータに関連する第2のビットサイズにデータを再パックする。
  19. 請求項11〜18のいずれかの装置であって、
    前記指示シーケンサは、戻りデータ内の特定の状態が真となるまでケーブル転送を繰り返す。
  20. インターフェースを介してシミュレータとエミュレータとの間でデータを転送するシステムであって、
    エミュレーションサイクルに対する所望の入力状態を含むように、前記シミュレータのシミュレータバッファをアップデートする手段と、
    前記エミュレーションサイクルが前記シミュレータに依存しないで進行可能であることを指示するために、前記インターフェースにターゲット書き込みを実行する手段と、
    前記シミュレータに依存しないで、前記アップデートされたシミュレータバッファに含まれている前記所望の入力状態に対応して、前記インターフェース内で指示シーケンサを使用して指示のシーケンスを実行することにより、前記エミュレーションサイクルを完了する手段を備えている。
  21. 請求項20のシステムであって、
    前記エミュレーションサイクルを完了する手段は、さらに、前記シミュレータバッファを前記インターフェースのインターフェースバッファ内にバースト読み出しすることをPCIコントローラに指示する手段を備えている。
  22. 請求項21のシステムであって、さらに、
    ケーブルコントローラに前記シミュレータバッファからデータを取り出すことを指示する手段と、
    前記データを前記エミュレータに送信する手段を備えている。
  23. 請求項20〜22のいずれかのシステムであって、さらに、
    前記インターフェースにおいて前記エミュレータからデータを受信する手段と、
    同時に、パイプライン接続され、優先するインターフェースバッファコントローラを使用して前記データを前記シミュレータバッファにアップロードする手段を備えている。
  24. 請求項20〜23のいずれかのシステムであって、さらに、
    データが分析のために準備されていることを前記シミュレータに警告するために、前記シミュレータバッファ内の予め定められている位置を書き込むことをPCIコントローラに指示する手段を備えている。
  25. 請求項20〜24のいずれかのシステムであって、
    前記エミュレーションサイクルを完了する手段は、複数の一般レジスタから制御信号を受信する。
  26. 請求項20〜25のいずれかのシステムであって、
    前記エミュレーションサイクルを完了する手段は、戻りデータ内の特定の状態が真となるまでケーブル転送を繰り返す。
  27. 請求項20〜26のいずれかのシステムであって、さらに、
    前記シミュレータと関連する第1のビットサイズから前記エミュレータと関連する第2のビットサイズにデータを再パックする手段を備えている。
  28. 請求項20〜27のいずれかのシステムであって、
    前記エミュレーションサイクルを完了する手段は、PCIバス、インターフェースバッファ及びケーブル間のデータフローを制御し、また、前記エミュレーションサイクルを完了する手段は、ハードウェア内に実装されている。
  29. 請求項20〜28のいずれかのシステムであって、
    前記指示のシーケンスは、予めプログラムされている。
  30. 複数の指示を蓄積する、コンピュータが読み取り可能な媒体であって、前記複数の指示は、コンピュータによって実行される時に、前記コンピュータを、
    エミュレーションサイクルに対する所望の入力状態を含むようにシミュレータのシミュレータバッファをアップデートし、
    前記エミュレーションサイクルが前記シミュレータに依存しないで進行可能であることを指示するためにインターフェースにターゲット書き込みを実行し、
    前記シミュレータに依存しないで、前記アップデートされたシミュレータバッファに含まれている前記所望の入力状態に対応して、前記インターフェース内で指示シーケンサを使用して指示のシーケンスを実行することにより、前記エミュレーションサイクルを完了する
    ように実行させる。
  31. 請求項30のコンピュータが読み取り可能な媒体であって、
    追加の指示を蓄積しており、
    前記追加の指示は、前記エミュレーションサイクルを完了させるためにコンピュータによって実行される時に、前記コンピュータを、さらに、
    前記シミュレータバッファを前記インターフェースのインターフェースバッファ内にバースト読み出しすることをPCIコントローラに指示するように実行させる。
  32. 請求項31のコンピュータが読み取り可能な媒体であって、
    追加の指示が蓄積されており、
    前記追加の指示は、コンピュータによって実行される時に、前記コンピュータを、さらに、
    前記シミュレータバッファからデータを取り出し、前記データを前記エミュレータに送信することをケーブルコントローラに指示するように実行させる。
  33. 請求項30〜32のいずれかのコンピュータが読み取り可能な媒体であって、
    追加の指示が蓄積されており、
    前記追加の指示は、コンピュータによって実行される時に、前記コンピュータを、さらに、
    前記インターフェースにおいて前記エミュレータからデータを受信し、
    同時に、パイプライン接続され、優先するインターフェースバッファコントローラを使用して前記シミュレータバッファに前記データをアップロードするように実行させる。
  34. 請求項30〜33のいずれかのコンピュータが読み取り可能な媒体であって、
    追加の指示が蓄積されており、
    前記追加の指示は、コンピュータによって実行される時に、前記コンピュータを、さらに、
    データが分析のために準備されていることを前記シミュレータに警告するために、前記シミュレータバッファ内の予め定められている位置を書き込むことをPCIコントローラに指示するように実行させる。
  35. 請求項30〜34のいずれかのコンピュータが読み取り可能な媒体であって、
    追加の指示が蓄積されており、
    前記追加の指示は、コンピュータによって実行される時に、前記コンピュータを、さらに、
    複数の一般レジスタから制御信号を受信するように実行させる。
  36. 請求項30〜35のいずれかのコンピュータが読み取り可能な媒体であって、
    追加の指示が蓄積されており、
    前記追加の指示は、コンピュータによって実行される時に、前記コンピュータを、さらに、
    前記指示シーケンサが、戻りデータ内の特定の状態が真となるまでケーブル転送を繰り返すように実行させる。
  37. 請求項30〜36のいずれかのコンピュータが読み取り可能な媒体であって、
    追加の指示が蓄積されており、
    前記追加の指示は、コンピュータによって実行される時に、前記コンピュータを、さらに、
    前記シミュレータと関連する第1のビットサイズから前記エミュレータと関連する第2のビットサイズにデータを再パックするように実行させる。
  38. 請求項30〜37のいずれかのコンピュータが読み取り可能な媒体であって、
    追加の指示が蓄積されており、
    前記追加の指示は、コンピュータによって実行される時に、前記コンピュータを、さらに、
    前記指示シーケンサが、PCIバス、インターフェースバッファ及びケーブルの間のデータフローを制御するように実行させる。
  39. 請求項30〜38のいずれかのコンピュータが読み取り可能な媒体であって、
    前記指示のシーケンスは、予めプログラムされている。
JP2004362032A 2003-11-18 2004-11-16 エミュレーションシステムとシミュレータとの間でのシミュレーション及び可視化データ転送のための最適化インターフェース Expired - Fee Related JP4656929B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US52094503P 2003-11-18 2003-11-18

Publications (2)

Publication Number Publication Date
JP2005301981A JP2005301981A (ja) 2005-10-27
JP4656929B2 true JP4656929B2 (ja) 2011-03-23

Family

ID=35333370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004362032A Expired - Fee Related JP4656929B2 (ja) 2003-11-18 2004-11-16 エミュレーションシステムとシミュレータとの間でのシミュレーション及び可視化データ転送のための最適化インターフェース

Country Status (1)

Country Link
JP (1) JP4656929B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4589255B2 (ja) * 2006-03-13 2010-12-01 富士通株式会社 ハードウェア/ソフトウェア協調検証装置
JP5471406B2 (ja) * 2009-12-18 2014-04-16 日本電気株式会社 半導体検証装置および方法
AT521713B1 (de) * 2018-10-11 2023-07-15 Avl List Gmbh Verfahren zur Detektion sicherheitsrelevanter Datenflüsse
CN113221376B (zh) * 2021-05-31 2023-08-08 山东英信计算机技术有限公司 一种服务器线缆选型的方法、装置、设备及可读介质
CN115348181B (zh) * 2022-10-18 2023-03-17 苏州浪潮智能科技有限公司 一种数据传输建模方法、系统、设备及存储介质
CN116384305B (zh) * 2023-06-05 2023-08-01 英诺达(成都)电子科技有限公司 数据通信方法、装置、系统、设备及计算机存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04502985A (ja) * 1988-10-05 1992-05-28 クイックターン デザイン システムズ インコーポレイテッド 複数の電気的に再構成可能なゲートアレイを用いて論理構成を構築する方法
WO2003017148A1 (en) * 1997-05-02 2003-02-27 Axis Systems, Inc. Timing-insensitive glitch-free logic system and method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5841967A (en) * 1996-10-17 1998-11-24 Quickturn Design Systems, Inc. Method and apparatus for design verification using emulation and simulation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04502985A (ja) * 1988-10-05 1992-05-28 クイックターン デザイン システムズ インコーポレイテッド 複数の電気的に再構成可能なゲートアレイを用いて論理構成を構築する方法
WO2003017148A1 (en) * 1997-05-02 2003-02-27 Axis Systems, Inc. Timing-insensitive glitch-free logic system and method

Also Published As

Publication number Publication date
JP2005301981A (ja) 2005-10-27

Similar Documents

Publication Publication Date Title
US8180620B2 (en) Apparatus and method for performing hardware and software co-verification testing
US8644305B2 (en) Method and system for modeling a bus for a system design incorporating one or more programmable processors
JP4456420B2 (ja) ネットワークベースの階層エミュレーションシステム
US7356455B2 (en) Optimized interface for simulation and visualization data transfer between an emulation system and a simulator
US10180850B1 (en) Emulating applications that use hardware acceleration
US6535841B1 (en) Method for testing a controller with random constraints
US7979822B2 (en) Apparatus and method for performing a sequence of verification tests to verify a design of a data processing system
US10664563B2 (en) Concurrent testbench and software driven verification
JP5236908B2 (ja) エミュレーションシステム
US8027828B2 (en) Method and apparatus for synchronizing processors in a hardware emulation system
US10409935B2 (en) Modeling a bus for a system design incorporating one or more programmable processors
US10664637B2 (en) Testbench restoration based on capture and replay
JP4656929B2 (ja) エミュレーションシステムとシミュレータとの間でのシミュレーション及び可視化データ転送のための最適化インターフェース
US20050144436A1 (en) Multitasking system level platform for HW/SW co-verification
US10546081B2 (en) Full memory logical erase for circuit verification
US8103496B1 (en) Breakpoint control in an in-circuit emulation system
US9898563B2 (en) Modeling memory in emulation based on cache
US10073795B1 (en) Data compression engine for I/O processing subsystem
US8160864B1 (en) In-circuit emulator and pod synchronized boot
Wicaksana et al. A scalable and configurable Multiprocessor System-on-Chip (MPSoC) virtual platform for hardware and software co-design and co-verification
US11151294B1 (en) Emulated register access in hybrid emulation
WO2024049472A2 (en) Communication link latency tolerance for hardware assisted verification systems
Turner et al. Hardware Acceleration and Emulation
Coggiola Functional test of peripheral devices
US20180011956A1 (en) Data Injection In Emulation Without Rebooting

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090929

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091224

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100104

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100329

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100811

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101111

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101130

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101221

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees