JP4664056B2 - 電子機器の動作をエミュレートする装置 - Google Patents

電子機器の動作をエミュレートする装置 Download PDF

Info

Publication number
JP4664056B2
JP4664056B2 JP2004360049A JP2004360049A JP4664056B2 JP 4664056 B2 JP4664056 B2 JP 4664056B2 JP 2004360049 A JP2004360049 A JP 2004360049A JP 2004360049 A JP2004360049 A JP 2004360049A JP 4664056 B2 JP4664056 B2 JP 4664056B2
Authority
JP
Japan
Prior art keywords
resource
network
emulation
interface circuit
circuit board
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.)
Active
Application number
JP2004360049A
Other languages
English (en)
Other versions
JP2005174349A (ja
Inventor
スウェイヤン・シェイ
ミン・ヤン・ワン
ヴィンセント・チュウ
ネウ・チョー・グイ
Original Assignee
スプリングソフト インコーポレイテッド
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 スプリングソフト インコーポレイテッド filed Critical スプリングソフト インコーポレイテッド
Publication of JP2005174349A publication Critical patent/JP2005174349A/ja
Application granted granted Critical
Publication of JP4664056B2 publication Critical patent/JP4664056B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation

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)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Description

本発明は、電子機器の動作をエミュレートするためのプログラム可能な論理機器と他のリソースを用いるシステムに関連するが、特には、エミュレーションシステムにエミュレーションリソースを提供するための回路ボードに関連する。
標準的なデジタル集積回路(IC)は、出力信号のステート変更とクロック信号のエッジの同期を取るためにIC内の各論理ブロックが出力レジスタを具備するレジスタトランスファ論理RTL(Register Transfer Logic)を用いている。一般的に、IC設計者は、先ず、各論理ブロックを特徴付けるためにブール数式を用いて初めのハイレベルネットリストを生成する。そして、設計者は、合成ツールを用いて、そのハイレベルネットリストを相互連結されたセルの組として各論理ブロックを記述する「ゲートレベル」ネットリストに変換する。ここで、各セルは、トランジスタ又は論理ゲートのような標準的なICの構成部材である。ゲートレベルネットリストは、ICに内蔵すべき各セルインスタンスを参照するが、それは、ICに内蔵することのできる各種のセルの項目を有するデータベースであるセルライブラリ内のセルタイプの項目を参照することによってなされる。各セルタイプのセルライブラリの項目は、セルの内部レイアウトを記述すると共にセル動作のモデルを含んでいる。ゲートレベルネットリストの合成後、設計者は配置・配線(Placement and Routing、以下P&Rと言う)ツールを用いて、そのゲートレベルネットリストを、ICを構成する各セルの半導体ダイ内の配置を示すと共に各ネットが各セル端子間でどのように配線されるべきかを記述するICレイアウトファイルに変換する。このレイアウトファイルはICの製造をガイドする。
IC設計者は、通常、設計過程の各段階においてコンピュータ支援シミュレーション検証ツールを用いて、設計により記述されたICが予想されたように動作することを検証する。たとえば、回路シミュレータを使用するために、設計者は、シミュレートされるべきICを記述すると共にICの入力信号がどのように時間と共にそのステートを変化すべきかを示したネットリストを組み入れた「テストベンチ」を開発する。そのテストベンチは、シミュレーション中にモニタされるべきICの各種信号をリストする。ゲートレベルネットリストに対して、シミュレータは、ICのテストベンチ記述とセルライブラリから得られたICのセルの動作モデルに基づいてICの動作モデルを作成し、更に、そのICモデルをテストして、テストベンチが記述している入力信号パターンにモニタされた信号がどのように応答しているかを判定する。そのテスト中、シミュレータはモニタされた信号の時間と共に変化する動作を示す波形データを含む「ダンプファイル」を発生する。そして、設計者は各種のデバッグツールを用いてそのダンプファイルを検査し、ICが予想されたように動作したか否かを判別することができる。
ハイレベルネットリスト又はゲートレベルネットリストに基づいてシミュレータは正確にIC動作をモデル化することができるけれども、IC動作をシミュレートするためには多くの処理時間を要することがある。シミュレーション時間を短縮するために、設計者はシミュレータをプログラミングして、新規且つ修正されたIC設計の被選択部分だけをシミュレートすることもできるが、このやり方は、設計の新規な部分と旧来の部分が一緒に適切に働くことを保証するものではない。
エミュレーションシステム
ネットリストが記述するIC論理を検証するために必要な時間を短縮する他の方法は、プログラマブルな論理デバイス(PLD)と他のハードウェア機器を用いてIC論理をエミュレートすることである。たとえば、下記の特許文献1には、IC論理をエミュレートするようにプログラムされるフィールドプログラマブルゲートアレイ(FPGA)を用いた論理エミュレーションシステムが記載されている。回路動作をエミュレートするためにFPGAが高速の論理ゲートと他の機器を採用しているので、FPGAを用いたエミュレーションシステムは、通常、シミュレータよりもはるかに高速にIC動作を検証することができる。
図10は、それぞれが配列されたFPGA14の配列を保持する一組の回路ボード12を内蔵する、先行技術である代表的なエミュレーションシステム10を図示している。FPGA14のそれぞれは、多数の相互接続された論理ゲートとフリップフロップとレジスタの論理をエミュレートするようにプログラムされ得る。各FPGA14は多くの入力/出力(I/O)端子を有し、これらのI/O端子の多くは同じ回路ボード12の他のFPGA14のI/O端子に連結され、その結果、各FPGAが互いに連絡しあえるようになっている。ICが埋め込み型のコンピュータプロセッサやメモリのような大規模な標準化部品を内蔵することがあるので、エミュレーションシステム10はこれらの大規模IC部品をエミュレートするために他のリソースボード18に取り付けられたプロセッサ又はメモリIC若しくは他のデバイスを内蔵することができる。ケーブルコネクタ又は背面は、主に、リソースボード12と18に取り付けられた各FPGA14と他のリソースの間の信号通路を提供する。
エミュレータ10がインサーキットエミュレーション(ICE)システムとして機能すべき場合、エミュレータ10は、その目的の動作環境の範囲内で、外部システムの回路ボードに設けられたICをエミュレートして、そのシステム内の他のデバイスとの通信を可能にする。ケーブル20は、いくつかのFPGAのIO端子をエミュレーション中のICが最終的に行き着くようなタイプの外部システム22のソケットに連結する。
エミュレートされたICを試験するために、外部パターン発生器24はプローブインタフェース回路26を介して試験信号入力を各FPGAに供給して、試験信号を適切なFPGA端子に送る。論理アナライザー28は、プローブインタフェース回路26によって提供される信号通路を介して、エミュレートされたICが生成する各種の信号をモニタする。利用者は各FPGA14とパターン発生器24とプローブインタフェース回路26をプログラミングすると共に、たとえば、ワークステーションシリアルポートやJTAGバスインタフェースのような適切なインタフェース回路32を介してこれらのデバイスと連結したワークステーション30を介して論理アナライザー28と通信する。
リソースの相互接続
各FPGA14は、多数のI/O端子を具備すると共に各回路ボード12は、各FPGA間とその各FPGAと外部機器の間に信号通路を提供し、それらが互いに通信することができるものでなくてはならない。図11は、回路ボード12上の各線が各FPGA14のIO端子を他のFPGA14の多く又は全てのIO端子に接続している各FPGAの間に信号を送る一つの先行技術の方法を図示する。回路ボード12に取り付けられたバッファ32は、ケーブル又はマザーボード背面のワイヤ線34を介して回路ボード12と他のリソースボードと試験機器の間を通過する信号を一時的に保持する。FPGAを相互接続するこのハードワイヤードな配線方法は、比較的に安価ではあるが、各対のFPGA14の間とリソースボードと他のリソースボード又は試験機器の間のダイレクトな信号通路の数が決まっているので、非常に柔軟性に欠けるものである。互いに通信を行うべき2つのFPGA14の間に、ダイレクトな通路が存在しない場合、又は、不十分な数のダイレクトな信号通路しかない場合、余分な信号は中間に介在するFPGAを通して送られるが、しかし、このような場合、FPGAリソースのいくつかは信号送信負荷を浪費してしまい、論理エミュレーションには利用できない。
図12は、回路ボード12上に設けられた、クロス接点スイッチのようなスイッチングマトリックス34を介して各FPGA14のIO端子と外部信号バッファ32が全て通信を行う各FPGA14の間で信号送信を行う他の先行技術の方法を図示する。このスイッチングマトリックスを用いる方法は、何れかのFPGA端子が何れかの他のFPGA端子又は何れかの外部リソースに直接通信することが可能であるので、図11の固定された配線方法に比べてより柔軟な配線方法を提供する。しかしながら、スイッチングマトリックス34が提供しなくてはならない信号通路の数が相互接続されるべきFPGA端子の数の自乗とバッファされた信号通路の数に比例するので、必要なスイッチングマトリックスの大きさがそれぞれのFPGAが多数のIO端子を有する、FPGAの大規模な配列を有する回路ボードに対しては非実際的な大きさなってしまう。
米国特許第6377911号
本発明の課題は、リーズナブルなコストでFPGAとリソース間の信号配線を用いる必要のない、各PLDと他のリソースを保持するエミュレーションリソースボードであって、リソースボード上の各PLDの間、そして、それらのPLDと他のリソースボードに搭載されたリソース又はコンピュータ若しくは他の外部機器の間で柔軟に信号を送信するものを提供することである。また、PLDにクロック信号を配信するために必要なバランスのとれた論理信号通路を提供するリソースボードを提供することも課題である。更に、リソースボード自体においてエミュレートされた回路を試験するのに必要な多くのパターン発生及びデータ獲得機能を実行して、外部機器と通信するために必要な信号の数を減らすことも課題である。
上記の課題を解決するため、本発明は、請求項1に記載したような「電子回路のエミュレーションを行うと共に、ネットワークを介して、前記エミュレーションに関連するデータを搬送するパケットの送受信を行う装置であって、回路ボードと、前記回路ボード上に搭載された少なくとも一つのエミュレーションリソースであって、それぞれが入力されたプログラミングデータによって制御される方法で入力信号に応じて外部信号を発生することによって前記電子回路の少なくとも一部の動作をエミュレートするものと、前記回路ボードに搭載された、ネットワーク/リソースのためのインタフェース回路であって、前記ネットワークを介して到達するパケットによって搬送されたデータによって制御されるステートの入力信号を前記少なくとも一つのエミュレーションリソースに送信すると共に、前記ネットワーク上に、前記少なくとも一つのエミュレーションリソースによって生成された出力信号のステートを表すデータを搬送するパケットを送信するものを具備する装置」を提供するものである。
本発明は、このように、例えば、幾枚かのリソースボードと一又はそれ以上のワークステーションを有することが可能なエミュレーションシステム用のリソースボード(エミュレーションリソースを内蔵する回路ボード)に関連する。各リソースボードは、ネットワークに送信されるデータパケットを通じて、他のリソースボードと通信し、一又はそれ以上のワークステーションとも通信する。
各リソースボードは、ネットワークと、リソースボード上に搭載された、フィールドプログラマブルゲートアレイ(FPGA)又は他のタイプのプログラマブル論理デバイス(PLD)のようなエミュレーションリソースの間のインタフェースとして機能する「ネットワーク/リソースのためのインタフェース回路」を具備する。
パケットルーティングネットワークとネットワーク/リソースのためのインタフェース回路は、個々のリソースボードに搭載された各リソースの入出力端子の間に「仮想信号通路」を提供する。例えば、一つのリソースボードのネットワーク/リソースのためのインタフェース回路は、そのリソースボードに搭載されたPLDの出力信号をモニタすると共に、それらの出力信号のステートを示すデータを含むパケットを他のリソースボードのネットワーク/リソースのためのインタフェース回路に送ることができる。そして、このパケットを受信したネットワーク/リソースのためのインタフェース回路は、そのローカルリソースボードに搭載された被選択PLDの入力端子に供給される信号をパケットによって搬送されたデータによって示されるステートにドライブすることができる。
リソースボード上に形成された「ローカルバス」は、ネットワーク/リソースのためのインタフェース回路を各PLDのいくつかの入出力(IO)端子に接続し、そのネットワーク/リソースのためのインタフェース回路が各FPGAへ入力信号を送信すると共にネットワーク/リソースのためのインタフェース回路がFPGAとリソースボードの外部のリソースの間に仮想信号通路を提供しているときに各FPGAによって生成された出力信号をモニタすることを可能にする。このように、個々のリソースボードに搭載されたリソースの入力及び出力端子が信号通路によって直接には相互接続されているわけではないが、仮想信号通路は、それらの端子を直接に相互接続されているかのように、機能させる。
ワークステーションがICの一部をエミュレートすべき場合、パケットルーティングネットワークが、また、そのワークステーションと各リソースボードの間に仮想の信号通路を提供することができる。ワークステーションは、また、各パケットがプログラムされるべき特定のPLDをアドレス指定するようにして、そのパケットを介してPLDプログラミングデータを各リソースボード上のネットワーク/リソースのためのインタフェース回路に送ることができる。ボード上でネットワーク/リソースのためのインタフェース回路と各PLDの間を接続する「選択マップ」バスは、ネットワーク/リソースのためのインタフェース回路がパケットで到着したプログラミングデータをアドレス指定されたPLDへ転送することを可能にする。このように、本発明に関するエミュレーションリソースボードは、ボード上のエミュレーションリソースに対してワークステーションをインタフェースする便利な方法を提供して、ワークステーションがボード上のエミュレーションリソースをプログラムすると共に、エミュレートされているICの一部をもエミュレートし、そして、ボード上のエミュレーションリソースをプログラムすることを可能にする。
本発明の好適な実施の形態に関するリソースボードは、いくつかのFPGA又は他のタイプのPLDと各FPGAに対応する個々のランダムアクセスメモリ(RAM)を有する。入力パケットを経由して受信された制御データに応じて、ネットワーク/リソースのためのインタフェース回路によって制御される一組のスイッチは、各FPGAの端子を対応するRAMに選択的に連結し、それによって、RAMがエミュレートされている回路に埋め込まれたメモリをエミュレートすることができるように、FPGAによってエミュレートされた回路がRAMにアクセスして読み書きすることを可能にする。
ワークステーションは、また、リソースボードのネットワーク/リソースのためのインタフェース回路をプログラミングして、リソースボード上でエミュレートされている回路の各部分に試験信号入力を供給するパターン発生器として機能するようにすることもできる。ネットワーク/リソースのためのインタフェース回路は、エミュレーション中に発生すべき信号パターンを制御するためのデータを記憶するRAMを有する。ワークステーションは、また、エミュレーションの開始前に、パターン制御データをパケットによってネットワーク/リソースのためのインタフェース回路に送ることによってRAMにそれをロードすることができる。
ネットワーク/リソースのためのインタフェース回路は、また、PLD出力信号をモニタしRAM内にエミュレーション中に発生するPLD出力信号のステートシーケンスを表す「プローブデータ」を格納することによって、データ獲得システムとしても機能することができる。ネットワーク/リソースのためのインタフェース回路は、分析のために、パケットでそのプローブデータをワークステーションに転送する。リソースボード上に形成された「プローブバス」は、各PLDのいくつかの他のIO端子をネットワーク/リソースのためのインタフェース回路に接続して、該ネットワーク/リソースのためのインタフェース回路が試験信号をPLDに送ったり、PLDからの出力信号をモニタすることを可能にする。
ワークステーションは、また、ネットワーク/リソースのためのインタフェース回路をプログラミングして、クロック信号ソースの数からPLD内の論理をクロック制御する信号を派生するクロック論理回路としても機能することができる。
リソースボード上に形成されたクロックバスは、ネットワーク/リソースのためのインタフェース回路から各PLDにクロック信号の各エッジを同時に配信すると共に、各PLDからのゲート信号をネットワーク/リソースのためのインタフェース回路に戻すように配信する。
パケットルーティングネットワークがリソースボード間に仮想の信号通路を提供している状態では、何れかのリソースボード上に搭載された何れかのリソースが何れかのリソースボード上に搭載された何れかの他のリソースと通信するのを可能にするためには、従来のネットワークケーブルを用いて各ボードをネットワークに接続することだけが必要である。しかし、各リソースボードは、そのリソースボード上でPLDのIO端子の間、そして、必要な場合には、他のリソースとの間に高帯域のハードワイヤード通路を提供することをケーブルが可能にするコネクタを有する。エミュレーションシステムがインサーキットエミュレータとして機能すべきときには、このケーブルコネクタは、また、目的の回路ボード内で、PLDの各端子をICソケットに接続するために使用されることもできる。
本明細書に添付の特許請求の範囲は、本発明の主題を特に指摘している共に明確に権利請求している。しかし、そこでは同じ引用符号が同一の部材に付けられている添付の図面に関連して本明細書の残りの部分を読むことによって、業界で通常の知識を有する者は、出願人が本発明の最良の実施の形態と考えているものの機構と動作方法の両方を、本発明の更なる利点と目的と共に最もよく理解する。
上記の課題解決手段によれば、本発明は、リーズナブルなコストでFPGAとリソース間の信号配線を用いることなく、ハードワイヤードな仮想信号通路を用いて、リソースボード上の各PLDとRAMの間で、そして、各PLDと他のリソースボードとワークステーションと他の外部機器の間で、柔軟に信号を送信することができるという効果を奏する。
また、上記の課題解決手段によれば、本発明は、クロック信号を各PLDに配信するのに必要なバランスのとれた論理信号通路を提供することができると共に、エミュレートされた回路を試験するのに必要な多くのパターン発生とデータ獲得機能を実行することによって外部の試験機器と通信するのに必要な信号の数も減らすことができるという効果も奏する。
本発明は、ICの動作をエミュレートするための各種のプログラマブルリソースを用いて、ICに入力として加えられた試験信号に応答して、そのICが生成する信号がどのように挙動するのかを判定するネットワークベースのエミュレーションシステムに関連する。特には、本発明は、エミュレーションリソースを保持し、そのリソース間にプログラミング及びデータの信号通路を提供し、更に、回路エミュレーション中に必要ないくつかの試験機能も提供する、エミュレーションシステムに用いられる回路ボードに関連する。以下の明細書の記載と添付図面は、発明の実施をするための最良の形態と考えられるエミュレーションリソースボードの実施の形態を記述したものである。しかし、業界で通常の知識を有する者は、発明が別のやり方でも実施できることを正しく理解する。したがって、この明細書に添付の特許請求の範囲の記載は、下記の実施の形態だけではなく、明細書及び図面に記載された発明の実施の形態において例示された部材又は工程と機能的に均等である部材又は工程を有する、発明を実施するためのあらゆる形態に適用される。
エミュレーションシステムアーキテクチュア
図1は、本発明に関する、例示のエミュレーションシステム40を図示しているが、それは、コンピュータワークステーション42と、一又はそれ以上の「リソースボード」44と、従来のネットワークローターやスイッチやハブによって相互接続される一又はそれ以上のバスを含むパケットルーティングネットワーク46を具備している。各リソースボード44は、ICの部分をエミュレートするときに使用する一又はそれ以上のエミュレーションリソース48を保持している。
エミュレーションリソース48は、例えば、プログラマブルゲートアレイ(FPGA)又は他のタイプのプログラマブル論理デバイス(PLD)、ランダムアクセスメモリ又はリードオンリーメモリ、特定用途向けIC(ASIC)、マイクロプロセッサ又は各種の抽象化レベルにICの部分をエミュレートするのに適切な他のいかなるデバイスをも具備することができる。各リソースボード44は、また、パケットルーティングネットワーク46とエミュレーションリソース48の間にインタフェースを提供する「ネットワーク/リソースのためのインタフェース回路」49を具備する。
ワークステーション42とネットワーク/リソースのためのインタフェース回路49は、パケットルーティングネットワーク46を介して、互いにパケットに送ることができる。
業界で通常の知識を有する者に知られた各種のネットワークが、パケットルーティングネットワーク46を構成し、各パケットがそのネットワークが使用する特定の物理層のプロトコルに関連して取り決められる。
しかし、各パケットは、主に、該ネットワークがパケットを適正な宛先に送るのに必要な情報と共に、パケットが受取人に搬送すべきペイロードデータを含むヘッダを有する。ワークステーション42と各ネットワーク/リソースのためのインタフェース回路49と各エミュレーションリソース48は、固有のネットワークアドレスを有し、パケットルーティングネットワーク46を介して送られてきた各データパケットのヘッダは、パケットのソース及び宛先として指定された各デバイスのネットワークアドレスを適切に示している。ヘッダは、また、受け取りのネットワーク/リソースのためのインタフェース回路49又はワークステーション42に命じていくつかのタイプのアクションを行わせるコマンドを有している。
パケットのペイロードデータは、ヘッダに含まれたコマンドの引数として機能すると共に、そのネットワークの物理層のプロトコルの性質に応じて固定長又は可変長とされる(しかし、可変長のパケットであることが好適である)。例えば、コマンドがそれを受け取ったネットワーク/リソースのためのインタフェース回路49に命じて、アドレス指定されたエミュレーションリソース48の特定の信号を特定のステートにドライブする場合、コマンドの引数を構成するペイロードはそれらの信号を参照し、それらがドライブされるべきステートを示す。パケットヘッダ内のネットワークあて先アドレスがローカルリソースボード44のいずれかのエミュレーションリソース48のアドレスと一致するときのみ、ネットワーク/リソースのためのインタフェース回路49は、入力パケットのコマンドを実行する。
各リソースボード44のネットワーク/リソースのためのインタフェース回路49は、パケットを送受信するだけではなく、そのリソースボード上のローカルなエミュレーションリソース48とも通信する。エミュレーション中に各ネットワーク/リソースのためのインタフェース回路49が実行するトランザクションのタイプは、ある程度、エミュレートされるべき回路の性質に依存するので、各ネットワーク/リソースのためのインタフェース回路49は、回路エミュレーション中に各種の機能を行うようにプログラミングされる一又はそれ以上のプログラマブル論理デバイスを具備する。
ネットワーク/リソースのためのインタフェース回路49には、JTAGまたはその他のタイプのバスを経由し、又は、プログラマブルリードオンリーメモリを介して、外部源から供給されたブートプログラムが最初にロードされ、ネットワーク/リソースのためのインタフェース回路49がパケットルーティングネットワーク46を介して通信できるようにする。ネットワーク/リソースのためのインタフェース回路49にロードされたブートプログラムに関連して、その後、ワークステーション42は、ネットワーク/リソースのためのインタフェース回路49にアドレス指定した入力パケットによって運ばれたプログラミングデータを使って、ネットワーク/リソースのためのインタフェース回路49を再プログラミングすることができる。
ワークステーション42からのパケットは、また、エミュレーションリソースプログラミングデータを搬送する。たとえば、エミュレーションリソース48がFPGAを有する場合、ワークステーション42は、「ダウンロード」コマンドとFPGAプログラミングデータを搬送するパケットをプログラムされるべき特定のFPGAに対しアドレス指定する。アドレス指定されたFPGAを有するリソースボード44上のネットワーク/リソースのためのインタフェース回路49は、その入力パケットの「ダウンロード」コマンドに応答して、パケットのペイロードプログラミングデータをそのFPGAのプログラミング入力に送信する。
パケットは、リソース出力信号の現状のステートを示すデータ若しくはリソース入力信号がドライブされるべきステートを示すデータを搬送することもできる。たとえば、入力パケット内の「リード」コマンドは、ネットワーク/リソースのためのインタフェース回路49に命じて、入力パケットのあて先アドレスによってアドレス指定されたFPGAの各I/O端子における信号のステートを示すペイロードデータを含む信号データパケットをソースアドレスに戻すようにすることもできる。パケットの「強制」コマンドは、ネットワーク/リソースのためのインタフェース回路49に命じて、パケットのあて先アドレスによってアドレス指定されたエミュレーションリソースの指定されたIO端子を特定のステートにドライブすることも可能である。強制コマンドを有する一連のパケットは、パケットを送信するリソースボード44上のエミュレーションリソース48の出力端子とパケットがアドレス指定したリソースボード上のエミュレーションリソース48の入力端子の間の信号経路の挙動をエミュレートすることができる。このようにして、強制コマンドは個々のエミュレーションボードに搭載された各リソースのIO端子間に「仮想信号通路」を実現して、ハードワイヤード信号通路の論理動作をエミュレートする。
「相互確認動作モード」において、ワークステーション42(又はパケットルーティングネットワーク46にアクセスする他のいかなるコンピュータ)は、ICのある部分をエミュレートするが、一方、リソースボード44上のエミュレーションリソース48はそのICの他の部分をエミュレートすることができる。この動作モードにおいて、ワークステーション42とネットワーク/リソースのためのインタフェース回路49は、信号入力をドライブする強制コマンドを各モジュール内の各リソースに搬送するパケットを用いることができる。
リソースボード44は、たとえば、大容量のメモリバンクの機能をエミュレートすることのできる大規模なランダムアクセスメモリを有することもできる。この場合、入力パケットのヘッダにおいて搬送されたライトコマンドは、ネットワーク/リソースのためのインタフェース回路49に命じて、データをパケットのあて先アドレスにおいて選択されたメモリのうちの一つの特定のアドレス又はアドレスブロックに書き込ませる。パケットのデータペイロードは、アクセスされるべきメモリアドレス並びにこのメモリアドレスに書き込むべきデータを参照する。入力パケットのメモリリードコマンドは、ネットワーク/リソースのためのインタフェース回路49に命じて、あて先アドレスにおいてアドレス指定されたメモリの特定のアドレス又はアドレスブロックのデータを読み込ませ、そして、アドレス指定されたパケットのメモリから読み込んだデータを入力パケットのヘッダに含まれたソースアドレスによって識別されたデバイスに戻すようにさせる。このようにして、パケットルーティングシステムは、ワークステーション又はいずれかのエミュレーションリソースがリソースボードに搭載されたメモリにアクセスして読み書きをすることを可能にする「仮想メモリバス」を実現する。
エミュレーションシステム40は、他の構成部材を含む回路ボードのような外部の「ターゲットシステム」47内のソケットに実装されて、その目的の動作環境において、ICをエミュレートするインサーキットエミュレータ(ICE)としても機能することができる。このICE動作モードにおいて、エミュレーションリソース48は、たとえば、通常エミュレートされているICを保持することを意図して、ターゲットシステム47内のソケットに挿入するコネクタを有するケーブルによって提供される信号経路を介して直接外部システム47と通信する。
リソースボード
図2は、図1のリソースボード44の一つとして適切に使用される本発明のリソースボードの一例の平面図である。リソースボード44上に搭載されたエミュレーションリソースは、8個一組のFPGAであるF1−F8と、8個一組のRAMであるM1−M8を具備している。そのボードのネットワーク/リソースのためのインタフェース回路49は、リソースコントローラ50と、バススイッチ52と、一組のRAM53(適切な高速SDRAM又はDDR若しくはQDR)と、一対の発振器54と、入出力クロックバッファIC55と、ネットワークインタフェース回路56を有する。ネットワークインタフェース回路56は、パケットルーティングネットワーク46とリソースコントローラ50の間のパケット通信を取り扱う。各FPGAであるF1−F8は、1104個のIOピンを有し、400Kまでのゲートを提供するXilinx社のモデルVirtex−II6000FF1517であることが適切であるが、他のFPGAメーカーのモデルも使用できる。他のタイプのPLDも、また、FPGAであるF1−F8と共に又はそれに代わって、リソースボード上に搭載することも可能である。ブートPROMとXilinx社のモデルVirtex−IIのFPGAで実装されることが好適であるリソースコントローラ50は、以下に記載するように、いくつかの機能を有する。
リソースコントローラ50は、パケットを介してネットワークインタフェース56にワークステーション42が送信するプログラミングデータによって、FPGAであるF1−F8をプログラミングする。FPGAである各F1−F8は自分自身のネットワークアドレスを有し、エミュレーションの開始前に、リソースコントローラ50は、エミュレーションに参加すべき各FPGAにアドレス指定されたプログラミングデータを転送する。各リソースボード44のネットワークインタフェース回路56は、ローカルのFPGAであるF1−F8のいずれかにアドレス指定したFPGAプログラミングデータをリソースコントローラ50に転送し、更に、リソースコントローラ50は、そのプログラミングデータをアドレス指定されたFPGAにロードする。
エミュレーション中、リソースコントローラ50は、試験信号入力をエミュレーションされているICに提供するプログラマブルパターン発生器として機能する。エミュレーション工程の開始前は、パケットルーティングネットワーク46にアクセスするワークステーション42又は他のデバイスは、リソースコントローラ50がエミュレーション中に発生すべき試験信号パターンを定義するデータを各RAM53にロードする。そして、リソースコントローラ50は、エミュレーション中に各RAM53からそのプログラミングデータを読み出して、FPGAである各F1−F8に供給する試験信号をどのように制御するのかを決定する。リソースコントローラ50は、また、エミュレーション中にFPGAである各F1−F8が生成する信号をサンプリングし、RAM53にそれらの信号のステートを示す「プローブデータ」を格納する、エミュレーション中のデータ獲得システムとしても機能することが可能である。
エミュレーション中の様々の時点で、若しくは、エミュレーション終了時において、リソースコントローラ50はRAM53からそのプローブデータを読み出して、パケットによってワークステーション42にそれを転送する。そして、ワークステーション42は、エミュレートされたICの動作を分析し、波形表示を作り出し、若しくは、他の目的に利用するための根拠としてそのプローブデータを利用する。
エミュレーション中、リソースコントローラ50は、パケットルーティングネットワーク46(図1参照)とネットワークインタフェース回路56において送受信されるパケットを用いて、ワークステーション42と他のリソースボードのリソースコントローラと通信することができる。たとえば、ワークステーション42が異なるリソースボードに搭載されたFPGAをプログラムして、ICの個々の部分を実装した上で、更に、一組の信号により、これらの個々の部分のIO端子が互いに通信を行うことを条件とする。リソースコントローラ50は、他のリソースボードのFPGA又は他のデバイスへの入力信号として機能すべきである、リソースボード44上のFPGAである各F1−F8の出力信号をモニタすることもでき、更に、システムクロックの各サイクルの後で、それぞれのFPGA出力信号のステートを示すデータを含む強制コマンドパケットを他のリソースボードに送ることもできる。強制コマンドは、他のリソースボードのリソースコントローラに命じて、次のシステムクロックサイクルの開始時点で、そのエミュレーションリソースの適切な入力信号を指示されたステートにドライブする。反対に、他のリソースボードのエミュレーションリソースが一又はそれ以上のFPGAであるF1−F8への入力信号として機能すべき出力信号を生成する場合、リソースコントローラ50は、他の回路ボードのリソースコントローラからの強制コマンドパケットに応答して、適切なFPGA入力を入力ライトコマンドパケット内のステートデータによって示されたステートにドライブすることができる。リソースコントローラ50は、また、ローカルエミュレーションリソースによって生成された信号のステートを読み、それらの信号ステートを示すデータを含む返答パケットを返すように受け手のコントローラに要求する「リードコマンド」パケットを送るか又はそれに応答することができる。エミュレーション中、ワークステーション42におけるソフトウェアランニングがICの一部をエミュレーションすることを可能にする。このような場合、ワークステーション42は、リード及びライトパケットによってリソースボード44と通信して、ワークステーションとリソースボードがエミュレートするICの各部分間における信号の通過をエミュレートすることができる。このように、エミュレーション中、パケットルーティングネットワーク46と各リソースボード44のネットワーク/リソースのためのインタフェース回路49(ネットワークインタフェース56とリソースコントローラ50も含めて)は、ワークステーション42と個々のリソースボード44によってエミュレートされているICの各部分の端子を明らかに相互接続する一組の「仮想信号通路」として機能することができる。
リソースボード44は、また、一組のコネクタ1−J8を具備するが、各コネクタはボード上の導通路によって対応するFPGAであるF1−F8のそれぞれの端子と連結されている。たとえば、FPGAであるF1のIO端子が他のリソースボードのリソースと通信されるべきであって、それらの信号の帯域幅が仮想信号通路にとって広すぎる場合、コネクタJ1と他のリソースボードのコネクタの間を接続するケーブルは、FPGAであるF1と他のリソースボードとの間で大きな信号幅のハードワイヤード信号通路を提供できる。このエミュレーションシステムは、たとえば、ソケットとターゲットボードに取り付けられたときのような、その目的の動作環境内で取り付けられたときにICをエミュレートするインサーキットエミュレーション(ICE)システムとして機能することができる。このような場合、ターゲットボードソケットとコネクタJ1−J8の組を接続するケーブルは、リソースボード44とそのターゲットボードの間に必要な信号通路を提供することができる。
リソースボードの信号通路
リソースボード44の各層上又はそれを介して形成された線又は経路は、そのリソースボード上の搭載された各構成部品間に信号通路を提供する。図3乃至図8は、リソースボード44に提供された各種の信号通路を図示している。
図3に図示したように、各線60は、各FPGAであるF1−F8の120個一組のIO端子を他の7つのFPGAのそれぞれに連結する。本発明の好適な実施の形態において、各FPGAであるF1−F8は、好適には、1104個のIO端子を有するXilinx社のモデルVirtex−II6000FF1517であり、線60は、各FPGAであるF1−F8の総計840個のIO端子を他のFPGAのIO端子に連結するハードワイヤードである。
図4に図示したように、各線62は、各FPGAであるF1−F8の144個のIO端子をコネクタJ1−J8のうちの対応するものに連結し、そして、スイッチS1−S8を介して、RAMであるM1−M8のうちの対応するものに連結する。図2のバススイッチ52は、スイッチS1−S8とコネクタJ1とJ8を連結する別のスイッチS9を実現するものである。リソースコントローラ50内のコントロールレジスタ64に格納されたコントロールデータは、スイッチS1−S9のスイッチングステートを制御する。エミュレーションシステムをプログラミングするときは、ワークステーション42(図1参照)がパケットをリソースボード44に送り、それに命じて適切なコントロールデータをレジスタ64にロードするようにする。エミュレーション中にRAMであるM1−M8のいずれもが不必要である場合、スイッチS1−S8は開成されているが、エミュレーション中に各FPGAであるF1−F8のいずれかがRAMであるM1−M8のうちの対応するものにアクセスすべきである場合は、その対応するスイッチS1−S8は閉成されたままであり、FPGAとそれに対応するRAMの間に必要な信号通路を提供する。FPGAであるF1とF5の間に、120を越える直接の信号通路が必要である場合、スイッチS9が閉成されて、別の144個の信号通路をこれら2つのFPGAの間に提供する。コネクタJ1−J8のいずれかに接続するケーブルは、それに対応するFPGAであるF1−F8の144個までのIO端子をFPGAと直接に通信すべき外部デバイスの端子に連結することができる。また、必要であれば、差し込まれて又は挿入されてコネクタJ1−J8の間に信号通路を提供する回路ボード又はケーブルが使用されて、いずれかの組のFPGAであるF1−F8の間に直接の接続数を増やすことを可能にする。
図5に図示したように、リソースコントローラ50の52個のIO端子と各FPGAであるF1−F8は、リソースボード44上の各線によって実現される「ローカルバス」66の個々の52個のラインに並列接続されている。リソースコントローラ50内に実装された「ローカルコントローラ」68は、各FPGAであるF1−F8の各端子とそのリソースボードの外部の他のリソースボードの端子を連結する52個までの仮想信号通路のローカルエンドとして機能することができる。ローカルコントローラ68は、ネットワークインタフェース56を介して受信されたパケットによって搬送された入力強制コマンドに応答して、ローカルバス66の選択されたラインをその強制コマンドによって示されたステートにドライブする。ローカルコントローラ68は、また、入力リードコマンドに応答して、ローカルバス66の各ラインのステートを読み込み、このラインのステートを示すデータを含むパケットをそのリードコマンドを送ったネットワークデバイスに返す。ローカルコントローラ68は、ローカルバス66の各ラインのステートを読み込み、そして、強制コマンドを他のリソースボードのローカルコントローラに送って、選択された信号をそのステートにドライブすることができる。ローカルコントローラ68は、また、自らにローカルバスのラインのステートを返すように要求した他のリソースボードのローカルコントローラにリードコマンドを読み出して、ローカルコントローラ68がそのローカルバス66のラインを同じステートにドライブするようにすることもできる。
リソースコントローラ50は、また、エミュレートされるICの各部分をエミュレートすることもでき、ICのクロック論理回路をエミュレートするのに特に適している。典型的なデジタルICは、各論理ブロックがレジスタと他のクロック制御されたデバイスを介して通信されて、その論理ブロック間に高レベルのタイミング同期を提供するレジスタトランスファ論理を採用している。ICは、入力として、一又はそれ以上の一次クロック信号を受信するが、その一次クロック信号から一又はそれ以上の二次クロック信号を引き出すクロック論理回路を具備することも可能である。たとえば、図9は、たとえば、クロック論理回路80が一次クロック信号CLK1とクロックゲート信号GATEを処理して二次クロック信号CLKを生成するためにIC内に内蔵されている、一例を図示している。この単純な例において、クロック論理回路80は、GATE信号がハイのときにCLK信号と同じ位相と周波数のCLK2信号を生成すると共に、GATE信号がローのときにそのCLK2信号をオフにするANDゲート82から構成される。しかし、クロック論理回路80は、もっと多くの入力を有することも、より複雑なクロック論理を包含することもできる。一対のクロックツリー84と86(導体とバッファのネットワーク)は、IC内の各論理ブロック間を通過するデータ信号のタイミングを制御するために使用される、様々にクロック制御された(レジスタとフリップフロップのような)デバイス88と89のクロック入力にクロック信号CLK1とCLK2を送り出す。IC内では、クロックツリー84と86はバランスがとれており、クロック信号CLK1の各エッジが同時にクロック制御されたデバイス88に到達し、そして、クロック信号CLK2の各エッジが同時にクロック制御されたデバイス89に到達する。
図2のリソースボード44において、リソースコントローラ50内のプログラマブル論理は、クロック論理回路80をエミュレートすることができ、各FPGAであるF1−F8内の論理は、クロック制御されたデバイス88と89をエミュレートすることができ、クロック論理回路80から各FPGAであるF1−F8とFPGA内部の信号通路にまで伸張するリソースボード44上のバランスのとれた信号は、バランスのとれたクロックツリー84と86をエミュレートすることができる。図2のリソースボード44は、一次クロック信号として使用されるクロック信号を発生する一対の発振器54を具備する。コネクタJ9は、外部回路からの他の一次クロック信号のために入力ポイントを提供する。バッファ55は、発振器55によって生成されたクロック信号とコネクタJ9を介して各FPGAであるF1−F8から受信したクロック信号の間のバッファとなる。ワークステーション44又は他のリソースボードは、また、仮想信号通路経由で「仮想クロック信号エッジ」をリソースボード44に送り、リソースコントローラ50は、そのような仮想クロック信号を入力としてそれが実現するクロック論理に供給することができる。
図6は、リソースコントローラ50内に実装されたクロック論理回路72によって生成された16個までのクロック信号をバッファ55経由で各FPGAであるF1−F8に伝送するための16ラインのクロックバス70を図示している。クロック論理回路72は、いくつかの源からクロック信号入力を受信することができる。発振器54は、16個までの異なる周波数の一次クロック信号(OSCCLK)をクロック論理回路72に供給する。外部回路は、また、16個までのクロック信号(ICECLK)を入力としてコネクタJ9とバッファ56経由でクロック論理回路72に供給することができる。図1のワークステーション42と他のリソースボード44は、16個までの異なるクロック信号(COSCLK)を仮想信号通路経由でクロック論理回路72に供給することができる。ワークステーション42は、クロック論理回路72をプログラミングして、その入力一次クロック信号を処理し16個までのクロック信号を発生してクロックバス70経由で各FPGAであるF1−F8に供給する。クロックバス70は、リソースコントローラ50から各FPGAであるF1−F8への均等な信号通路長を有するスターバスであり、それによって、各クロック信号のエッジが同時に全てのFPGAであるF1−F8に到達することを確実にする。他の対の導体は、各FPGAであるF1−F8から2つまでの信号(GATCLK)をクロックゲート信号として使えるようにクロック論理回路72に送り返す。クロックゲート信号は、たとえば、FPGAであるF1−F8への二次クロック信号入力をオン又はオフにすることができ、又は、二次クロック信号の基準ソースをクロック論理回路72の他の一次クロック信号入力に切り替えることができる。
図7は、リソースコントローラ50と各FPGAであるF1−F8のJTAG端子を外部のホスト機器に連結するための4ラインのJTAGバスを実装するリソースボード上の線74を図示している。ホスト機器は、JTAGバスを使用して、最初にリソースコントローラ50へのブートストラッププログラムをロードすることができ、更に、JTAGバスを使用してリソースコントローラ50又は各FPGAであるF1−F8のいずれかの信号のステートを診断目的でモニタすることも可能である。
図8は、各FPGAであるF1−F8の「セレクトマップ」入力をリソースコントローラ50に実装されたセレクトマップコントローラ78に接続するための一組の12ラインのバスを実現するリソースボード44上の各線76を図示する。エミュレーションプログラミング処理中、セレクトマップコントローラ78は、各FPGAであるF1−F8にアドレス指定されたパケットによって搬送されたダウンロードコマンドを介して、ワークステーションからFPGAプログラミングデータを受け取り、適切なセレクトマップバス経由でそのプログラミングデータをアドレス指定されたFPGAにロードする。パケットによって伝送されたプログラミングデータは、また、選択されたFPGAであるF1−F8を再プログラミングして、エミュレータ全体を再プログラミングする必要なく、エミュレート中のICの設計変更に順応させることができる。
上記のように、一組のPLDとRAMを保有し、そのPLDとRAMと他のリソースボードに搭載されたリソースとワークステーションと他の外部機器の間にハードワイヤードで仮想の信号通路を提供する、本発明に関するエミュレーションリソースボードの実施の形態を明示し説明してきた。このリソースボードは、また、クロック信号を各PLDに伝送するのに必要なバランスのとれたロジック信号通路を提供し、そして、エミュレーションされた回路を試験するのに必要な多くのパターン発生とデータ獲得機能を実現することによって、外部の試験機器と通信するのに必要な信号の数を減らすものである。
上記のようにこの明細書と図面で本発明の最良の実施の形態を詳細に説明してきたが、その最良の実施の形態の構成要素と工程は、特許請求の範囲に記載された発明の構成要素と工程を例示するものである。しかしながら、特許請求の範囲の記載は、必ずしも上記の発明の実施の形態に限られるものではない。たとえば、多くの種類のPLDやメモリや他のエミュレーションリソースが知られているので、業界で通常の知識を有する者はそれらに通暁しており、一方、上記の実施の形態のエミュレーションボードは8つのFPGAと8つのRAMを保有しそれらを相互接続したが、本発明のエミュレーションリソースボードはより多くの又はより少数のFPGAとRAMを保有することができ、FPGAとRAM以外のPLDとメモリを保有することができ、更に、PLDとRAMに加えて若しくはそれに代わって他のタイプエミュレーションリソースを具備することもできる。したがって、特許請求の記載は、明細書と図面に記載された発明の実施の形態の例示された構成要素又は工程と機能的に均等である構成要素又は工程を含み、その特許請求の範囲のいずれかの請求項に記載された構成要素又は工程の組み合わせからなるいかなる発明の実施の形態にも適用されることを意図するものである。
上述したように、本発明の装置等は、電子機器の動作をエミュレーションするためのエミュレーションシステムに利用される。
本発明のリソースボードを用いたエミュレーションシステムの一例を示すブロック図である。 本発明のリソースボードの一例を示す略式平面図である。 図2のリソースボードにおいて用いられる相互接続システムの一例を示すブロック図である。 図2のリソースボードにおいて用いられる相互接続システムの他の一例を示すブロック図である。 図2のリソースボードにおいて用いられる相互接続システムの別の一例を示すブロック図である。 図2のリソースボードにおいて用いられる相互接続システムの更に別の一例を示すブロック図である。 図2のリソースボードにおいて用いられる相互接続システムの更に別の一例を示すブロック図である。 図2のリソースボードにおいて用いられる相互接続システムの更に別の一例を示すブロック図である。 クロック論理回路の一例を示すブロック図である。 従来の代表的なエミュレーションシステムのブロック図である。 エミュレーションシステムリソースボード上で各デバイスを相互接続するための従来の代表的なシステムのブロック図である。 エミュレーションシステムリソースボード上で各デバイスを相互接続するための従来の他の代表的なシステムのブロック図である。
符号の説明
42 ワークステーション
44 リソースボード
46 パケットルーティングネットワーク
48 エミュレーションリソース
49 ネットワーク/リソースのためのインタフェース回路
50 リソースコントローラ
52 バススイッチ
53 RAM
54 発振器
55 バッファ
56 ネットワークインタフェース回路
60,62,74 線
64 コントロールレジスタ
66 ローカルバス
68 ローカルコントローラ
70 クロックバス
72 クロック論理回路
78 セレクトマップコントローラ
J1−J8 コネクタ

Claims (25)

  1. 電子回路のエミュレーションを行う装置であって、
    コンピュータと、
    少なくとも一つの第1の回路ボードと、
    前記エミュレーションに関連するデータを搬送するパケットの送受信をするために、前記コンピュータと前記第1の回路ボードに接続されたネットワークと、
    前記第1の回路ボード上に搭載された少なくとも一つのエミュレーションリソースであって、それぞれが入力されたプログラミングデータによって制御される方法で入力信号に応じて出力信号を発生することによって前記電子回路の少なくとも一部の動作をエミュレートすると共に各エミュレーションリソースがネットワークアドレスを有するものと、
    前記第1の回路ボードに搭載された、ネットワーク/リソースのためのインタフェース回路であって、前記ネットワークを介して到達するパケットによって前記ネットワーク/リソースのためのインタフェース回路に搬送されたデータによって制御されるステートの入力信号を前記エミュレーション中に少なくとも一つのエミュレーションリソースに送信すると共に、前記エミュレーション中に、前記ネットワーク上に、前記少なくとも一つのエミュレーションリソースによって生成された出力信号のステートを表すデータを搬送するパケットを送信するものを具備し、
    前記第1の回路ボード上に搭載された少なくとも一つのエミュレーションリソースが、前記エミュレーション中に、前記コンピュータと通信し、
    前記パケットが更に強制コマンドと宛先アドレスを有し、
    前記ネットワーク/リソースのためのインタフェース回路が、
    前記第1の回路ボードに搭載された第1のリソースコントローラであって、入力として受信した強制コマンドに応じて前記データによって前記一つのエミュレーションリソースの入力信号のステートを制御するものと、
    前記第1の回路ボードに搭載された、第1のネットワークインタフェース回路であって、前記ネットワークを介して前記宛先アドレスと前記強制コマンドを搬送するパケットを受信すると共に、前記宛先アドレスが前記一つのエミュレーションリソースのネットワークアドレスと一致したときには受信したパケットで搬送された強制コマンドを入力として前記第1のリソースコントローラに提供するものを具備することを特徴とする装置。
  2. 更に、前記第1の回路ボード上に搭載されたランダムアクセスメモリ(RAM)を具備し、
    前記ネットワーク/リソースのためのインタフェース回路が、エミュレーション中に前記RAMに、前記少なくとも一つのエミュレーションリソースによって生成された出力信号のステートを表すデータを記憶すると共に、その後前記RAM内に記憶されていたデータを搬送するパケットをネットワーク上に送信することを特徴とする請求項1に記載の装置。
  3. 更に、前記第1の回路ボード上に搭載されたランダムアクセスメモリ(RAM)を具備し、
    前記ネットワーク/リソースのためのインタフェース回路が、前記エミュレーションを実行する前に、ネットワーク経由で到着するパケットによって搬送されたデータを前記RAMに記憶すると共に、ついで前記少なくとも一つのエミュレーションリソースに送られる入力信号のステートを前記RAM内に記憶されたデータに応じて制御することを特徴とする請求項1に記載の装置。
  4. 前記ネットワーク/リソースのためのインタフェース回路が、また、入力プログラミングデータとして、ネットワーク経由で受信したパケットによって搬送されたデータを前記少なくとも一つのエミュレーションリソースに供給することを特徴とする請求項1に記載の装置。
  5. 前記少なくとも一つのエミュレーションリソースが、それぞれがその入力信号を受信すると共にその出力信号を送信するための複数の端子を有する複数のプログラマブル論理デバイス(PLD)を具備し、
    前記装置が、更に、互いにその出力信号を搬送するために、各PLDの各端子のうちの第1の組の端子を他のPLDの端子に連結する、前記第1の回路ボード上に形成された複数の第1の信号通路を有することを特徴とする請求項1に記載の装置。
  6. 各PLDがフィールドプログラマブルゲートアレイ(FPGA)からなることを特徴とする請求項5に記載の装置。
  7. 更に、各PLDと前記ネットワーク/リソースのためのインタフェース回路と間に入出力信号を搬送するために、前記第1の回路ボード上に形成されて、各PLDの各端子のうちの第2の組の端子に並列接続されるバスを具備することを特徴とする請求項5に記載の装置。
  8. 前記ネットワーク/リソースのためのインタフェース回路が、少なくとも一つのクロック信号を発生し、
    前記装置が、更に、エミュレーション中に各PLD内の論路回路をクロック制御するために前記少なくとも一つのクロック信号の各エッジを各PLDに同時に配信するために、前記ネットワーク/リソースのためのインタフェース回路と各PLDの間を接続するクロックバスを具備することを特徴とする請求項5に記載の装置。
  9. 前記ネットワーク/リソースのためのインタフェース回路が、前記ネットワークを介して受信したパケットに応じて、前記少なくとも一つのクロック信号のエッジを発生することを特徴とする請求項8に記載の装置。
  10. 前記ネットワーク/リソースのためのインタフェース回路が、前記装置の外部で発生された一次クロック信号を受信すると共に、前記一次クロック信号の各エッジに応じて前記少なくとも一つのクロック信号のエッジを発生することを特徴とする請求項8に記載の装置。
  11. 更に、前記第1の回路ボードに搭載された、一次クロック信号を発生するための発振器を具備し、前記ネットワーク/リソースのためのインタフェース回路が前記一次クロック信号の各エッジに応じて前記少なくとも一つのクロック信号のエッジを発生することを特徴とする請求項8に記載の装置。
  12. 前記ネットワーク/リソースのためのインタフェース回路へ入力するクロックゲート信号として少なくとも各PLDの出力信号を搬送するために、前記第1の回路ボード上に搭載された導体を更に具備し、
    前記ネットワーク/リソースのためのインタフェース回路が前記各PLDのうちの少なくとも一つから受信したクロックゲート信号の機能として、前記少なくとも一つのクロック信号を発生することを特徴とする請求項8に記載の装置。
  13. 更に、それぞれが個々のPLDに対応する複数のケーブルコネクタと、
    各ケーブルコネクタをそれに対応するPLDの第2の組の端子に連結する信号通路を具備することを特徴とする請求項5に記載の装置。
  14. 更に、それぞれが個々のPLDに対応する複数のランダムアクセスメモリ(RAM)と、
    各PLDが、それにアクセスして読み書きできるようにプログラムされたときには、そのようにすることができるように、各RAMをそれに対応するPLDの第2の組の端子に連結する信号通路を具備することを特徴とする請求項5に記載の装置。
  15. 更に、それぞれが個々のPLDに対応する複数のケーブルコネクタと、
    各ケーブルコネクタをそれに対応するPLDの第2の組の端子に連結する信号通路と、
    それぞれが個々のPLDに対応する複数のランダムアクセスメモリ(RAM)と、
    それぞれが個々のRAMに対応する複数のスイッチ(S1−S8)であって、それに対応するRAMに連結されたときに、各PLDがそれにアクセスして読み書きできるようにプログラムされている場合には、各PLDがそのようにできるように、それぞれがそのRAMに対応するPLDの第2の組の端子に対応するRAMを選択的に連結するものを具備することを特徴とする請求項5に記載の装置。
  16. 前記ネットワーク/リソースのためのインタフェース回路が、前記ネットワーク経由で受信したパケットで搬送されたデータに応じて、前記複数のスイッチを制御することを特徴とする請求項15に記載の装置。
  17. 前記ネットワーク/リソースのためのインタフェース回路が、少なくとも一つのクロック信号を発生し、
    前記装置が、更に、
    各FPGAと前記ネットワーク/リソースのためのインタフェース回路と間に入出力信号を搬送するために、前記第1の回路ボード上に形成されて、各FPGAの各端子のうちの第2の組の端子に並列接続されるローカルバスと、
    エミュレーション中に各PLD内の論路回路をクロック制御するために前記少なくとも一つのクロック信号の各エッジを各FPGAに同時に配信するために、前記第1の回路ボード上に搭載されたクロックバスと、
    前記ネットワーク/リソースのためのインタフェース回路へ入力するクロックゲート信号として少なくとも各FPGAの出力信号を搬送するために、前記第1の回路ボード上に搭載された導体を具備し、
    前記ネットワーク/リソースのためのインタフェース回路が前記FPGAのうちの少なくとも一つから受信したクロックゲート信号の機能として前記少なくとも一つのクロック信号を発生することを特徴とする請求項6に記載の装置。
  18. 更に、それぞれが個々のFPGAに対応する複数のケーブルコネクタと、
    各ケーブルコネクタをそれに対応するFPGAの第2の組の端子に連結する信号通路
    と、
    それぞれが個々のFPGAに対応する複数のランダムアクセスメモリ(RAM)と、
    それぞれが個々のRAMに対応する複数のスイッチであって、それに対応するRAMに連結されたときに、各FPGAがそれにアクセスして読み書きできるようにプログラムされている場合には、各FPGAがそのようにできるように、それぞれがそれに対応するRAMを、そのRAMに対応するFPGAの第2の組の端子に選択的に連結するものを具備し、
    前記ネットワーク/リソースのためのインタフェース回路が、ネットワーク経由で受信したパケットで搬送されたデータに応じて、前記複数のスイッチを制御することを特徴とする請求項17に記載の装置。
  19. 前記ネットワーク/リソースのためのインタフェース回路が、前記ネットワークを介して受信したパケットに応じて、前記少なくとも一つのクロック信号のエッジを発生することを特徴とする請求項17に記載の装置。
  20. 前記ネットワーク/リソースのためのインタフェース回路が、前記装置の外部で発生された一次クロック信号を受信すると共に、前記一次クロック信号の各エッジに応じて少なくとも一つのクロック信号のエッジを発生することを特徴とする請求項17に記載の装置。
  21. 更に、前記第1の回路ボードに搭載された、一次クロック信号を発生するための発振器を具備し、
    前記ネットワーク/リソースのためのインタフェース回路が前記一次クロック信号の各エッジに応じて少なくとも一つのクロック信号のエッジを発生することを特徴とする請求項17に記載の装置。
  22. 更に、前記第1の回路ボード上に搭載されたランダムアクセスメモリ(RAM)を具備し、
    前記ネットワーク/リソースのためのインタフェース回路が、前記エミュレーションを実行する前に、ネットワーク経由で到着するパケットによって搬送されたデータを前記RAMに記憶し、ついで前記少なくとも一つのエミュレーションリソースに送られる入力信号のステートを前記RAM内に記憶されたデータに応じて制御することを特徴とする請求項17に記載の装置。
  23. 更に、前記第1の回路ボード上に搭載されたランダムアクセスメモリ(RAM)を具備し、
    前記ネットワーク/リソースのためのインタフェース回路がエミュレーション中に前記RAMに、少なくとも一つのエミュレーションリソースによって生成された出力信号のステートを表すデータを記憶し、その後前記RAM内に記憶されていたデータを搬送するパケットをネットワーク上に送信することを特徴とする請求項17に記載の装置。
  24. 更に、少なくとも2つの前記PLDの第2の組の端子の間の信号通路を選択的に相互接続する他のスイッチ(S9)を具備することを特徴とする請求項15に記載の装置。
  25. 少なくとも一つの第2の回路ボードと、
    前記第2の回路ボード上に搭載された少なくとも一つのエミュレーションリソースであって、それぞれが入力されたプログラミングデータによって制御される方法で入力信号に応じて出力信号を発生することによって前記電子回路の少なくとも一部の動作をエミュレートすると共に前記第2の回路ボード上に搭載された各エミュレーションリソースがネットワークアドレスを有するものを具備し、
    前記ネットワークが前記エミュレーションに関連するデータを含むパケットの送受信をするために前記第2の回路ボードに接続され、
    前記第2の回路ボードに搭載された、ネットワーク/リソースのための第2のインタフェース回路であって、前記ネットワークを介して到達するパケットによって前記ネットワーク/リソースのための第2のインタフェース回路に搬送されたデータによって制御されるステートの入力信号を前記エミュレーション中に前記第2の回路ボード上の前記少なくとも一つのエミュレーションリソースに送信すると共に、前記エミュレーション中に、前記ネットワーク上に、前記第2の回路ボード上の前記少なくとも一つのエミュレーションリソースによって生成された出力信号のステートを表すデータを搬送するパケットを送信するものを更に具備し、
    前記第1の回路ボード上に搭載された前記少なくとも一つのエミュレーションリソースが、前記エミュレーション中に、前記第2の回路ボード上に搭載された前記少なくとも一つのエミュレーションリソースと通信し、更に、
    前記第2のネットワーク/リソースのためのインタフェース回路が、
    前記第2の回路ボードに搭載された第2のリソースコントローラであって、該第2のリソースコントローラにより入力として受信した強制コマンドに応じて前記データによって前記第2の回路ボードに搭載された前記一つのエミュレーションリソースの入力信号のステートを制御するものと、
    前記第2の回路ボードに搭載された、第2のネットワークインタフェース回路であって、前記ネットワークを介して前記宛先アドレスと前記強制コマンドを搬送するパケットを受信すると共に、前記宛先アドレスが前記第2の回路ボードに搭載された前記一つのエミュレーションリソースのネットワークアドレスと一致したときには受信したパケットで搬送された強制コマンドを入力として前記第2のリソースコントローラに提供するものを具備することを特徴とする請求項1に記載の装置。
JP2004360049A 2003-12-11 2004-12-13 電子機器の動作をエミュレートする装置 Active JP4664056B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/735,342 US7120571B2 (en) 2003-06-16 2003-12-11 Resource board for emulation system

Publications (2)

Publication Number Publication Date
JP2005174349A JP2005174349A (ja) 2005-06-30
JP4664056B2 true JP4664056B2 (ja) 2011-04-06

Family

ID=34653594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004360049A Active JP4664056B2 (ja) 2003-12-11 2004-12-13 電子機器の動作をエミュレートする装置

Country Status (3)

Country Link
US (1) US7120571B2 (ja)
EP (1) EP1560134A3 (ja)
JP (1) JP4664056B2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006048525A (ja) * 2004-08-06 2006-02-16 Toshiba Corp シミュレーション方法
KR100731106B1 (ko) * 2005-12-29 2007-06-22 동부일렉트로닉스 주식회사 라이브러리 테스트 회로 및 그 방법
WO2008110198A1 (en) * 2007-03-09 2008-09-18 Mentor Graphics Corporation Hardware interface board for connecting an emulator to a network
JP2009140999A (ja) * 2007-12-04 2009-06-25 Toshiba Corp 半導体集積回路
US7970597B2 (en) * 2008-05-15 2011-06-28 Springsoft, Inc. Event-driven emulation system
US8683404B2 (en) * 2008-08-05 2014-03-25 Nec Corporation Semiconductor verification apparatus, method, and program
US8510691B2 (en) 2008-10-08 2013-08-13 Nec Corporation Semiconductor verification apparatus, method and program
WO2010085674A2 (en) * 2009-01-22 2010-07-29 Qualcomm Incorporated Capture of interconnectivity data for multi-pin devices in the design of emulator circuit boards
JP5471406B2 (ja) * 2009-12-18 2014-04-16 日本電気株式会社 半導体検証装置および方法
US8255853B2 (en) 2010-04-08 2012-08-28 Springsoft Usa, Inc. Circuit emulation systems and methods
US20110264435A1 (en) * 2010-04-21 2011-10-27 Vixs Systems, Inc. Modular circuit emulation system
US8577666B2 (en) * 2010-04-21 2013-11-05 Vixs Systems, Inc. Clock synchronization in a modular circuit emulation system
US20110289469A1 (en) * 2010-05-21 2011-11-24 Huang Thomas B Virtual interconnection method and apparatus
WO2012057783A1 (en) * 2010-10-29 2012-05-03 Hewlett-Packard Development Company, L.P. Signal manager
US8868894B2 (en) * 2011-05-06 2014-10-21 Xcelemor, Inc. Computing system with hardware scheduled reconfiguration mechanism and method of operation thereof
US9230046B2 (en) * 2012-03-30 2016-01-05 International Business Machines Corporation Generating clock signals for a cycle accurate, cycle reproducible FPGA based hardware accelerator
US9286423B2 (en) 2012-03-30 2016-03-15 International Business Machines Corporation Cycle accurate and cycle reproducible memory for an FPGA based hardware accelerator
US20150012903A1 (en) * 2013-07-04 2015-01-08 Tabula, Inc. Non-intrusive monitoring and control of integrated circuits
US9516054B2 (en) * 2014-04-14 2016-12-06 Trap Data Security Ltd. System and method for cyber threats detection
EP2988420B1 (en) * 2014-08-20 2021-03-10 Framatome Circuit arrangement for a safety i&c system
US9959375B2 (en) * 2014-10-06 2018-05-01 Synopsys, Inc. Efficient emulation and logic analysis
US10198538B1 (en) * 2015-12-28 2019-02-05 Cadence Design Systems, Inc. Relocate targets to different domains in an emulator
US9652573B1 (en) * 2016-10-17 2017-05-16 Synopsys, Inc. Creating and using a wide-gate data structure to represent a wide-gate in an integrated circuit (IC) design
CN109428588B (zh) * 2017-08-28 2023-12-12 中科亿海微电子科技(苏州)有限公司 具有低时钟偏斜特征的三维fpga
US10796040B2 (en) * 2019-02-05 2020-10-06 Arm Limited Integrated circuit design and fabrication
US11681804B2 (en) 2020-03-09 2023-06-20 Commvault Systems, Inc. System and method for automatic generation of malware detection traps

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163456A (ja) * 1998-11-25 2000-06-16 Hitachi Ltd 論理検証方法
JP2002041321A (ja) * 2000-07-24 2002-02-08 Mitsubishi Electric Corp 検証方式及びエミュレーション基板

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0820967B2 (ja) * 1987-09-25 1996-03-04 三菱電機株式会社 集積回路
US5671432A (en) * 1995-06-02 1997-09-23 International Business Machines Corporation Programmable array I/O-routing resource
US5907697A (en) * 1995-10-13 1999-05-25 Mentor Graphics Corporation Emulation system having a scalable multi-level multi-stage hybrid programmable interconnect network
US5802348A (en) * 1995-12-18 1998-09-01 Virtual Machine Works, Inc. Logic analysis system for logic emulation systems
US5841967A (en) * 1996-10-17 1998-11-24 Quickturn Design Systems, Inc. Method and apparatus for design verification using emulation and simulation
US6651225B1 (en) * 1997-05-02 2003-11-18 Axis Systems, Inc. Dynamic evaluation logic system and method
US6026230A (en) 1997-05-02 2000-02-15 Axis Systems, Inc. Memory simulation system and method
US5960191A (en) * 1997-05-30 1999-09-28 Quickturn Design Systems, Inc. Emulation system with time-multiplexed interconnect
US6034538A (en) * 1998-01-21 2000-03-07 Lucent Technologies Inc. Virtual logic system for reconfigurable hardware
US6275499B1 (en) * 1998-03-31 2001-08-14 Alcatel Usa Sourcing, L.P. OC3 delivery unit; unit controller
US6539438B1 (en) * 1999-01-15 2003-03-25 Quickflex Inc. Reconfigurable computing system and method and apparatus employing same
US6604230B1 (en) * 1999-02-09 2003-08-05 The Governing Counsel Of The University Of Toronto Multi-logic device systems having partial crossbar and direct interconnection architectures
US6832185B1 (en) * 2000-03-09 2004-12-14 Quickturn Design Systems, Inc. Non-synchronous hardware emulator
US7054802B2 (en) * 2000-10-20 2006-05-30 Quickturn Design Systems, Inc. Hardware-assisted design verification system using a packet-based protocol logic synthesized for efficient data loading and unloading
US6754763B2 (en) * 2001-07-30 2004-06-22 Axis Systems, Inc. Multi-board connection system for use in electronic design automation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163456A (ja) * 1998-11-25 2000-06-16 Hitachi Ltd 論理検証方法
JP2002041321A (ja) * 2000-07-24 2002-02-08 Mitsubishi Electric Corp 検証方式及びエミュレーション基板

Also Published As

Publication number Publication date
EP1560134A3 (en) 2005-10-12
US20040254906A1 (en) 2004-12-16
EP1560134A2 (en) 2005-08-03
JP2005174349A (ja) 2005-06-30
US7120571B2 (en) 2006-10-10

Similar Documents

Publication Publication Date Title
JP4664056B2 (ja) 電子機器の動作をエミュレートする装置
US7072825B2 (en) Hierarchical, network-based emulation system
US7366652B2 (en) Method of programming a co-verification system
US5940603A (en) Method and apparatus for emulating multi-ported memory circuits
US5946472A (en) Apparatus and method for performing behavioral modeling in hardware emulation and simulation environments
US7353162B2 (en) Scalable reconfigurable prototyping system and method
US6701491B1 (en) Input/output probing apparatus and input/output probing method using the same, and mixed emulation/simulation method based on it
US8868974B2 (en) Memory-based trigger generation scheme in an emulation environment
US8997034B2 (en) Emulation-based functional qualification
US6112020A (en) Apparatus and method for generating configuration and test files for programmable logic devices
JPH02245831A (ja) 電子ハードウェアシステムのエミュレーション装置
US7043596B2 (en) Method and apparatus for simulation processor
JP2941135B2 (ja) 疑似lsi装置及びそれを用いたデバッグ装置
WO2024130861A1 (zh) 一种云原生的硬件逻辑仿真fpga加速方法及***
EP0410502B1 (en) Method and apparatus for emulating interaction between application specific integrated circuit (asic) under development and target system
US7539900B1 (en) Embedded microprocessor for integrated circuit testing and debugging
US6850880B1 (en) High speed software driven emulator comprised of a plurality of emulation processors with an improved maintenance bus that streams data at high speed
Goossens et al. A high-level debug environment for communication-centric debug
US7305633B2 (en) Distributed configuration of integrated circuits in an emulation system
JP3999290B2 (ja) 半導体試験装置
US20100079149A1 (en) Circuit testing apparatus and system
JP3173506B2 (ja) 機能論理回路検証装置
US20040225489A1 (en) Integrated self-testing of a reconfigurable interconnect
WO2024049472A2 (en) Communication link latency tolerance for hardware assisted verification systems

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060614

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20081218

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20081218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091027

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100122

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100127

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100225

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100302

A521 Request for written amendment filed

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: 20100713

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101012

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101015

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101115

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101201

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: 20101221

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: 20110106

R150 Certificate of patent or registration of utility model

Ref document number: 4664056

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140114

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250