(57)【特許請求の範囲】
【請求項１】
電子回路のエミュレーションを行う装置であって、
コンピュータと、
少なくとも一つの第１の回路ボードと、
前記エミュレーションに関連するデータを搬送するパケットの送受信をするために、前記コンピュータと前記第１の回路ボードに接続されたネットワークと、
前記第１の回路ボード上に搭載された少なくとも一つのエミュレーションリソースであって、それぞれが入力されたプログラミングデータによって制御される方法で入力信号に応じて出力信号を発生することによって前記電子回路の少なくとも一部の動作をエミュレートすると共に各エミュレーションリソースがネットワークアドレスを有するものと、
前記第１の回路ボードに搭載された、ネットワーク／リソースのためのインタフェース回路であって、前記ネットワークを介して到達するパケットによって前記ネットワーク／リソースのためのインタフェース回路に搬送されたデータによって制御されるステートの入力信号を前記エミュレーション中に少なくとも一つのエミュレーションリソースに送信すると共に、前記エミュレーション中に、前記ネットワーク上に、前記少なくとも一つのエミュレーションリソースによって生成された出力信号のステートを表すデータを搬送するパケットを送信するものを具備し、
前記第１の回路ボード上に搭載された少なくとも一つのエミュレーションリソースが、前記エミュレーション中に、前記コンピュータと通信し、
前記パケットが更に強制コマンドと宛先アドレスを有し、
前記ネットワーク／リソースのためのインタフェース回路が、
前記第１の回路ボードに搭載された第１のリソースコントローラであって、入力として受信した強制コマンドに応じて前記データによって前記一つのエミュレーションリソースの入力信号のステートを制御するものと、
前記第１の回路ボードに搭載された、第１のネットワークインタフェース回路であって、前記ネットワークを介して前記宛先アドレスと前記強制コマンドを搬送するパケットを受信すると共に、前記宛先アドレスが前記一つのエミュレーションリソースのネットワークアドレスと一致したときには受信したパケットで搬送された強制コマンドを入力として前記第１のリソースコントローラに提供するものを具備することを特徴とする装置。
【請求項２】
更に、前記第１の回路ボード上に搭載されたランダムアクセスメモリ（ＲＡＭ）を具備し、
前記ネットワーク／リソースのためのインタフェース回路が、エミュレーション中に前記ＲＡＭに、前記少なくとも一つのエミュレーションリソースによって生成された出力信号のステートを表すデータを記憶すると共に、その後前記ＲＡＭ内に記憶されていたデータを搬送するパケットをネットワーク上に送信することを特徴とする請求項１に記載の装置。
【請求項３】
更に、前記第１の回路ボード上に搭載されたランダムアクセスメモリ（ＲＡＭ）を具備し、
前記ネットワーク／リソースのためのインタフェース回路が、前記エミュレーションを実行する前に、ネットワーク経由で到着するパケットによって搬送されたデータを前記ＲＡＭに記憶すると共に、ついで前記少なくとも一つのエミュレーションリソースに送られる入力信号のステートを前記ＲＡＭ内に記憶されたデータに応じて制御することを特徴とする請求項１に記載の装置。
【請求項４】
前記ネットワーク／リソースのためのインタフェース回路が、また、入力プログラミングデータとして、ネットワーク経由で受信したパケットによって搬送されたデータを前記少なくとも一つのエミュレーションリソースに供給することを特徴とする請求項１に記載の装置。
【請求項５】
前記少なくとも一つのエミュレーションリソースが、それぞれがその入力信号を受信すると共にその出力信号を送信するための複数の端子を有する複数のプログラマブル論理デバイス（ＰＬＤ）を具備し、
前記装置が、更に、互いにその出力信号を搬送するために、各ＰＬＤの各端子のうちの第１の組の端子を他のＰＬＤの端子に連結する、前記第１の回路ボード上に形成された複数の第１の信号通路を有することを特徴とする請求項１に記載の装置。
【請求項６】
各ＰＬＤがフィールドプログラマブルゲートアレイ（ＦＰＧＡ）からなることを特徴とする請求項５に記載の装置。
【請求項７】
更に、各ＰＬＤと前記ネットワーク／リソースのためのインタフェース回路と間に入出力信号を搬送するために、前記第１の回路ボード上に形成されて、各ＰＬＤの各端子のうちの第２の組の端子に並列接続されるバスを具備することを特徴とする請求項５に記載の装置。
【請求項８】
前記ネットワーク／リソースのためのインタフェース回路が、少なくとも一つのクロック信号を発生し、
前記装置が、更に、エミュレーション中に各ＰＬＤ内の論路回路をクロック制御するために前記少なくとも一つのクロック信号の各エッジを各ＰＬＤに同時に配信するために、前記ネットワーク／リソースのためのインタフェース回路と各ＰＬＤの間を接続するクロックバスを具備することを特徴とする請求項５に記載の装置。
【請求項９】
前記ネットワーク／リソースのためのインタフェース回路が、前記ネットワークを介して受信したパケットに応じて、前記少なくとも一つのクロック信号のエッジを発生することを特徴とする請求項８に記載の装置。
【請求項１０】
前記ネットワーク／リソースのためのインタフェース回路が、前記装置の外部で発生された一次クロック信号を受信すると共に、前記一次クロック信号の各エッジに応じて前記少なくとも一つのクロック信号のエッジを発生することを特徴とする請求項８に記載の装置。
【請求項１１】
更に、前記第１の回路ボードに搭載された、一次クロック信号を発生するための発振器を具備し、前記ネットワーク／リソースのためのインタフェース回路が前記一次クロック信号の各エッジに応じて前記少なくとも一つのクロック信号のエッジを発生することを特徴とする請求項８に記載の装置。
【請求項１２】
前記ネットワーク／リソースのためのインタフェース回路へ入力するクロックゲート信号として少なくとも各ＰＬＤの出力信号を搬送するために、前記第１の回路ボード上に搭載された導体を更に具備し、
前記ネットワーク／リソースのためのインタフェース回路が前記各ＰＬＤのうちの少なくとも一つから受信したクロックゲート信号の機能として、前記少なくとも一つのクロック信号を発生することを特徴とする請求項８に記載の装置。
【請求項１３】
更に、それぞれが個々のＰＬＤに対応する複数のケーブルコネクタと、
各ケーブルコネクタをそれに対応するＰＬＤの第２の組の端子に連結する信号通路を具備することを特徴とする請求項５に記載の装置。
【請求項１４】
更に、それぞれが個々のＰＬＤに対応する複数のランダムアクセスメモリ（ＲＡＭ）と、
各ＰＬＤが、それにアクセスして読み書きできるようにプログラムされたときには、そのようにすることができるように、各ＲＡＭをそれに対応するＰＬＤの第２の組の端子に連結する信号通路を具備することを特徴とする請求項５に記載の装置。
【請求項１５】
更に、それぞれが個々のＰＬＤに対応する複数のケーブルコネクタと、
各ケーブルコネクタをそれに対応するＰＬＤの第２の組の端子に連結する信号通路と、
それぞれが個々のＰＬＤに対応する複数のランダムアクセスメモリ（ＲＡＭ）と、
それぞれが個々のＲＡＭに対応する複数のスイッチ（Ｓ１−Ｓ８）であって、それに対応するＲＡＭに連結されたときに、各ＰＬＤがそれにアクセスして読み書きできるようにプログラムされている場合には、各ＰＬＤがそのようにできるように、それぞれがそのＲＡＭに対応するＰＬＤの第２の組の端子に対応するＲＡＭを選択的に連結するものを具備することを特徴とする請求項５に記載の装置。
【請求項１６】
前記ネットワーク／リソースのためのインタフェース回路が、前記ネットワーク経由で受信したパケットで搬送されたデータに応じて、前記複数のスイッチを制御することを特徴とする請求項１５に記載の装置。
【請求項１７】
前記ネットワーク／リソースのためのインタフェース回路が、少なくとも一つのクロック信号を発生し、
前記装置が、更に、
各ＦＰＧＡと前記ネットワーク／リソースのためのインタフェース回路と間に入出力信号を搬送するために、前記第１の回路ボード上に形成されて、各ＦＰＧＡの各端子のうちの第２の組の端子に並列接続されるローカルバスと、
エミュレーション中に各ＰＬＤ内の論路回路をクロック制御するために前記少なくとも一つのクロック信号の各エッジを各ＦＰＧＡに同時に配信するために、前記第１の回路ボード上に搭載されたクロックバスと、
前記ネットワーク／リソースのためのインタフェース回路へ入力するクロックゲート信号として少なくとも各ＦＰＧＡの出力信号を搬送するために、前記第１の回路ボード上に搭載された導体を具備し、
前記ネットワーク／リソースのためのインタフェース回路が前記ＦＰＧＡのうちの少なくとも一つから受信したクロックゲート信号の機能として前記少なくとも一つのクロック信号を発生することを特徴とする請求項６に記載の装置。
【請求項１８】
更に、それぞれが個々のＦＰＧＡに対応する複数のケーブルコネクタと、
各ケーブルコネクタをそれに対応するＦＰＧＡの第２の組の端子に連結する信号通路
と、
それぞれが個々のＦＰＧＡに対応する複数のランダムアクセスメモリ（ＲＡＭ）と、
それぞれが個々のＲＡＭに対応する複数のスイッチであって、それに対応するＲＡＭに連結されたときに、各ＦＰＧＡがそれにアクセスして読み書きできるようにプログラムされている場合には、各ＦＰＧＡがそのようにできるように、それぞれがそれに対応するＲＡＭを、そのＲＡＭに対応するＦＰＧＡの第２の組の端子に選択的に連結するものを具備し、
前記ネットワーク／リソースのためのインタフェース回路が、ネットワーク経由で受信したパケットで搬送されたデータに応じて、前記複数のスイッチを制御することを特徴とする請求項１７に記載の装置。
【請求項１９】
前記ネットワーク／リソースのためのインタフェース回路が、前記ネットワークを介して受信したパケットに応じて、前記少なくとも一つのクロック信号のエッジを発生することを特徴とする請求項１７に記載の装置。
【請求項２０】
前記ネットワーク／リソースのためのインタフェース回路が、前記装置の外部で発生された一次クロック信号を受信すると共に、前記一次クロック信号の各エッジに応じて少なくとも一つのクロック信号のエッジを発生することを特徴とする請求項１７に記載の装置。
【請求項２１】
更に、前記第１の回路ボードに搭載された、一次クロック信号を発生するための発振器を具備し、
前記ネットワーク／リソースのためのインタフェース回路が前記一次クロック信号の各エッジに応じて少なくとも一つのクロック信号のエッジを発生することを特徴とする請求項１７に記載の装置。
【請求項２２】
更に、前記第１の回路ボード上に搭載されたランダムアクセスメモリ（ＲＡＭ）を具備し、
前記ネットワーク／リソースのためのインタフェース回路が、前記エミュレーションを実行する前に、ネットワーク経由で到着するパケットによって搬送されたデータを前記ＲＡＭに記憶し、ついで前記少なくとも一つのエミュレーションリソースに送られる入力信号のステートを前記ＲＡＭ内に記憶されたデータに応じて制御することを特徴とする請求項１７に記載の装置。
【請求項２３】
更に、前記第１の回路ボード上に搭載されたランダムアクセスメモリ（ＲＡＭ）を具備し、
前記ネットワーク／リソースのためのインタフェース回路がエミュレーション中に前記ＲＡＭに、少なくとも一つのエミュレーションリソースによって生成された出力信号のステートを表すデータを記憶し、その後前記ＲＡＭ内に記憶されていたデータを搬送するパケットをネットワーク上に送信することを特徴とする請求項１７に記載の装置。
【請求項２４】
更に、少なくとも２つの前記ＰＬＤの第２の組の端子の間の信号通路を選択的に相互接続する他のスイッチ（Ｓ９）を具備することを特徴とする請求項１５に記載の装置。
【請求項２５】
少なくとも一つの第２の回路ボードと、
前記第２の回路ボード上に搭載された少なくとも一つのエミュレーションリソースであって、それぞれが入力されたプログラミングデータによって制御される方法で入力信号に応じて出力信号を発生することによって前記電子回路の少なくとも一部の動作をエミュレートすると共に前記第２の回路ボード上に搭載された各エミュレーションリソースがネットワークアドレスを有するものを具備し、
前記ネットワークが前記エミュレーションに関連するデータを含むパケットの送受信をするために前記第２の回路ボードに接続され、
前記第２の回路ボードに搭載された、ネットワーク／リソースのための第２のインタフェース回路であって、前記ネットワークを介して到達するパケットによって前記ネットワーク／リソースのための第２のインタフェース回路に搬送されたデータによって制御されるステートの入力信号を前記エミュレーション中に前記第２の回路ボード上の前記少なくとも一つのエミュレーションリソースに送信すると共に、前記エミュレーション中に、前記ネットワーク上に、前記第２の回路ボード上の前記少なくとも一つのエミュレーションリソースによって生成された出力信号のステートを表すデータを搬送するパケットを送信するものを更に具備し、
前記第１の回路ボード上に搭載された前記少なくとも一つのエミュレーションリソースが、前記エミュレーション中に、前記第２の回路ボード上に搭載された前記少なくとも一つのエミュレーションリソースと通信し、更に、
前記第２のネットワーク／リソースのためのインタフェース回路が、
前記第２の回路ボードに搭載された第２のリソースコントローラであって、該第２のリソースコントローラにより入力として受信した強制コマンドに応じて前記データによって前記第２の回路ボードに搭載された前記一つのエミュレーションリソースの入力信号のステートを制御するものと、
前記第２の回路ボードに搭載された、第２のネットワークインタフェース回路であって、前記ネットワークを介して前記宛先アドレスと前記強制コマンドを搬送するパケットを受信すると共に、前記宛先アドレスが前記第２の回路ボードに搭載された前記一つのエミュレーションリソースのネットワークアドレスと一致したときには受信したパケットで搬送された強制コマンドを入力として前記第２のリソースコントローラに提供するものを具備することを特徴とする請求項１に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器の動作をエミュレートするためのプログラム可能な論理機器と他のリソースを用いるシステムに関連するが、特には、エミュレーションシステムにエミュレーションリソースを提供するための回路ボードに関連する。
【背景技術】
【０００２】
標準的なデジタル集積回路（ＩＣ）は、出力信号のステート変更とクロック信号のエッジの同期を取るためにＩＣ内の各論理ブロックが出力レジスタを具備するレジスタトランスファ論理ＲＴＬ（Register Transfer Logic）を用いている。一般的に、ＩＣ設計者は、先ず、各論理ブロックを特徴付けるためにブール数式を用いて初めのハイレベルネットリストを生成する。そして、設計者は、合成ツールを用いて、そのハイレベルネットリストを相互連結されたセルの組として各論理ブロックを記述する「ゲートレベル」ネットリストに変換する。ここで、各セルは、トランジスタ又は論理ゲートのような標準的なＩＣの構成部材である。ゲートレベルネットリストは、ＩＣに内蔵すべき各セルインスタンスを参照するが、それは、ＩＣに内蔵することのできる各種のセルの項目を有するデータベースであるセルライブラリ内のセルタイプの項目を参照することによってなされる。各セルタイプのセルライブラリの項目は、セルの内部レイアウトを記述すると共にセル動作のモデルを含んでいる。ゲートレベルネットリストの合成後、設計者は配置・配線（Placement and Routing、以下Ｐ＆Ｒと言う）ツールを用いて、そのゲートレベルネットリストを、ＩＣを構成する各セルの半導体ダイ内の配置を示すと共に各ネットが各セル端子間でどのように配線されるべきかを記述するＩＣレイアウトファイルに変換する。このレイアウトファイルはＩＣの製造をガイドする。
【０００３】
ＩＣ設計者は、通常、設計過程の各段階においてコンピュータ支援シミュレーション検証ツールを用いて、設計により記述されたＩＣが予想されたように動作することを検証する。たとえば、回路シミュレータを使用するために、設計者は、シミュレートされるべきＩＣを記述すると共にＩＣの入力信号がどのように時間と共にそのステートを変化すべきかを示したネットリストを組み入れた「テストベンチ」を開発する。そのテストベンチは、シミュレーション中にモニタされるべきＩＣの各種信号をリストする。ゲートレベルネットリストに対して、シミュレータは、ＩＣのテストベンチ記述とセルライブラリから得られたＩＣのセルの動作モデルに基づいてＩＣの動作モデルを作成し、更に、そのＩＣモデルをテストして、テストベンチが記述している入力信号パターンにモニタされた信号がどのように応答しているかを判定する。そのテスト中、シミュレータはモニタされた信号の時間と共に変化する動作を示す波形データを含む「ダンプファイル」を発生する。そして、設計者は各種のデバッグツールを用いてそのダンプファイルを検査し、ＩＣが予想されたように動作したか否かを判別することができる。
【０００４】
ハイレベルネットリスト又はゲートレベルネットリストに基づいてシミュレータは正確にＩＣ動作をモデル化することができるけれども、ＩＣ動作をシミュレートするためには多くの処理時間を要することがある。シミュレーション時間を短縮するために、設計者はシミュレータをプログラミングして、新規且つ修正されたＩＣ設計の被選択部分だけをシミュレートすることもできるが、このやり方は、設計の新規な部分と旧来の部分が一緒に適切に働くことを保証するものではない。
【０００５】
エミュレーションシステム
ネットリストが記述するＩＣ論理を検証するために必要な時間を短縮する他の方法は、プログラマブルな論理デバイス（ＰＬＤ）と他のハードウェア機器を用いてＩＣ論理をエミュレートすることである。たとえば、下記の特許文献１には、ＩＣ論理をエミュレートするようにプログラムされるフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を用いた論理エミュレーションシステムが記載されている。回路動作をエミュレートするためにＦＰＧＡが高速の論理ゲートと他の機器を採用しているので、ＦＰＧＡを用いたエミュレーションシステムは、通常、シミュレータよりもはるかに高速にＩＣ動作を検証することができる。
【０００６】
図１０は、それぞれが配列されたＦＰＧＡ１４の配列を保持する一組の回路ボード１２を内蔵する、先行技術である代表的なエミュレーションシステム１０を図示している。ＦＰＧＡ１４のそれぞれは、多数の相互接続された論理ゲートとフリップフロップとレジスタの論理をエミュレートするようにプログラムされ得る。各ＦＰＧＡ１４は多くの入力／出力（Ｉ／Ｏ）端子を有し、これらのＩ／Ｏ端子の多くは同じ回路ボード１２の他のＦＰＧＡ１４のＩ／Ｏ端子に連結され、その結果、各ＦＰＧＡが互いに連絡しあえるようになっている。ＩＣが埋め込み型のコンピュータプロセッサやメモリのような大規模な標準化部品を内蔵することがあるので、エミュレーションシステム１０はこれらの大規模ＩＣ部品をエミュレートするために他のリソースボード１８に取り付けられたプロセッサ又はメモリＩＣ若しくは他のデバイスを内蔵することができる。ケーブルコネクタ又は背面は、主に、リソースボード１２と１８に取り付けられた各ＦＰＧＡ１４と他のリソースの間の信号通路を提供する。
【０００７】
エミュレータ１０がインサーキットエミュレーション（ＩＣＥ）システムとして機能すべき場合、エミュレータ１０は、その目的の動作環境の範囲内で、外部システムの回路ボードに設けられたＩＣをエミュレートして、そのシステム内の他のデバイスとの通信を可能にする。ケーブル２０は、いくつかのＦＰＧＡのＩＯ端子をエミュレーション中のＩＣが最終的に行き着くようなタイプの外部システム２２のソケットに連結する。
【０００８】
エミュレートされたＩＣを試験するために、外部パターン発生器２４はプローブインタフェース回路２６を介して試験信号入力を各ＦＰＧＡに供給して、試験信号を適切なＦＰＧＡ端子に送る。論理アナライザー２８は、プローブインタフェース回路２６によって提供される信号通路を介して、エミュレートされたＩＣが生成する各種の信号をモニタする。利用者は各ＦＰＧＡ１４とパターン発生器２４とプローブインタフェース回路２６をプログラミングすると共に、たとえば、ワークステーションシリアルポートやＪＴＡＧバスインタフェースのような適切なインタフェース回路３２を介してこれらのデバイスと連結したワークステーション３０を介して論理アナライザー２８と通信する。
【０００９】
リソースの相互接続
各ＦＰＧＡ１４は、多数のＩ／Ｏ端子を具備すると共に各回路ボード１２は、各ＦＰＧＡ間とその各ＦＰＧＡと外部機器の間に信号通路を提供し、それらが互いに通信することができるものでなくてはならない。図１１は、回路ボード１２上の各線が各ＦＰＧＡ１４のＩＯ端子を他のＦＰＧＡ１４の多く又は全てのＩＯ端子に接続している各ＦＰＧＡの間に信号を送る一つの先行技術の方法を図示する。回路ボード１２に取り付けられたバッファ３２は、ケーブル又はマザーボード背面のワイヤ線３４を介して回路ボード１２と他のリソースボードと試験機器の間を通過する信号を一時的に保持する。ＦＰＧＡを相互接続するこのハードワイヤードな配線方法は、比較的に安価ではあるが、各対のＦＰＧＡ１４の間とリソースボードと他のリソースボード又は試験機器の間のダイレクトな信号通路の数が決まっているので、非常に柔軟性に欠けるものである。互いに通信を行うべき２つのＦＰＧＡ１４の間に、ダイレクトな通路が存在しない場合、又は、不十分な数のダイレクトな信号通路しかない場合、余分な信号は中間に介在するＦＰＧＡを通して送られるが、しかし、このような場合、ＦＰＧＡリソースのいくつかは信号送信負荷を浪費してしまい、論理エミュレーションには利用できない。
【００１０】
図１２は、回路ボード１２上に設けられた、クロス接点スイッチのようなスイッチングマトリックス３４を介して各ＦＰＧＡ１４のＩＯ端子と外部信号バッファ３２が全て通信を行う各ＦＰＧＡ１４の間で信号送信を行う他の先行技術の方法を図示する。このスイッチングマトリックスを用いる方法は、何れかのＦＰＧＡ端子が何れかの他のＦＰＧＡ端子又は何れかの外部リソースに直接通信することが可能であるので、図１１の固定された配線方法に比べてより柔軟な配線方法を提供する。しかしながら、スイッチングマトリックス３４が提供しなくてはならない信号通路の数が相互接続されるべきＦＰＧＡ端子の数の自乗とバッファされた信号通路の数に比例するので、必要なスイッチングマトリックスの大きさがそれぞれのＦＰＧＡが多数のＩＯ端子を有する、ＦＰＧＡの大規模な配列を有する回路ボードに対しては非実際的な大きさなってしまう。
【００１１】
【特許文献１】米国特許第６３７７９１１号
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明の課題は、リーズナブルなコストでＦＰＧＡとリソース間の信号配線を用いる必要のない、各ＰＬＤと他のリソースを保持するエミュレーションリソースボードであって、リソースボード上の各ＰＬＤの間、そして、それらのＰＬＤと他のリソースボードに搭載されたリソース又はコンピュータ若しくは他の外部機器の間で柔軟に信号を送信するものを提供することである。また、ＰＬＤにクロック信号を配信するために必要なバランスのとれた論理信号通路を提供するリソースボードを提供することも課題である。更に、リソースボード自体においてエミュレートされた回路を試験するのに必要な多くのパターン発生及びデータ獲得機能を実行して、外部機器と通信するために必要な信号の数を減らすことも課題である。
【課題を解決するための手段】
【００１３】
上記の課題を解決するため、本発明は、請求項１に記載したような「電子回路のエミュレーションを行うと共に、ネットワークを介して、前記エミュレーションに関連するデータを搬送するパケットの送受信を行う装置であって、回路ボードと、前記回路ボード上に搭載された少なくとも一つのエミュレーションリソースであって、それぞれが入力されたプログラミングデータによって制御される方法で入力信号に応じて外部信号を発生することによって前記電子回路の少なくとも一部の動作をエミュレートするものと、前記回路ボードに搭載された、ネットワーク／リソースのためのインタフェース回路であって、前記ネットワークを介して到達するパケットによって搬送されたデータによって制御されるステートの入力信号を前記少なくとも一つのエミュレーションリソースに送信すると共に、前記ネットワーク上に、前記少なくとも一つのエミュレーションリソースによって生成された出力信号のステートを表すデータを搬送するパケットを送信するものを具備する装置」を提供するものである。
【００１４】
本発明は、このように、例えば、幾枚かのリソースボードと一又はそれ以上のワークステーションを有することが可能なエミュレーションシステム用のリソースボード（エミュレーションリソースを内蔵する回路ボード）に関連する。各リソースボードは、ネットワークに送信されるデータパケットを通じて、他のリソースボードと通信し、一又はそれ以上のワークステーションとも通信する。
【００１５】
各リソースボードは、ネットワークと、リソースボード上に搭載された、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）又は他のタイプのプログラマブル論理デバイス（ＰＬＤ）のようなエミュレーションリソースの間のインタフェースとして機能する「ネットワーク／リソースのためのインタフェース回路」を具備する。
【００１６】
パケットルーティングネットワークとネットワーク／リソースのためのインタフェース回路は、個々のリソースボードに搭載された各リソースの入出力端子の間に「仮想信号通路」を提供する。例えば、一つのリソースボードのネットワーク／リソースのためのインタフェース回路は、そのリソースボードに搭載されたＰＬＤの出力信号をモニタすると共に、それらの出力信号のステートを示すデータを含むパケットを他のリソースボードのネットワーク／リソースのためのインタフェース回路に送ることができる。そして、このパケットを受信したネットワーク／リソースのためのインタフェース回路は、そのローカルリソースボードに搭載された被選択ＰＬＤの入力端子に供給される信号をパケットによって搬送されたデータによって示されるステートにドライブすることができる。
【００１７】
リソースボード上に形成された「ローカルバス」は、ネットワーク／リソースのためのインタフェース回路を各ＰＬＤのいくつかの入出力（ＩＯ）端子に接続し、そのネットワーク／リソースのためのインタフェース回路が各ＦＰＧＡへ入力信号を送信すると共にネットワーク／リソースのためのインタフェース回路がＦＰＧＡとリソースボードの外部のリソースの間に仮想信号通路を提供しているときに各ＦＰＧＡによって生成された出力信号をモニタすることを可能にする。このように、個々のリソースボードに搭載されたリソースの入力及び出力端子が信号通路によって直接には相互接続されているわけではないが、仮想信号通路は、それらの端子を直接に相互接続されているかのように、機能させる。
【００１８】
ワークステーションがＩＣの一部をエミュレートすべき場合、パケットルーティングネットワークが、また、そのワークステーションと各リソースボードの間に仮想の信号通路を提供することができる。ワークステーションは、また、各パケットがプログラムされるべき特定のＰＬＤをアドレス指定するようにして、そのパケットを介してＰＬＤプログラミングデータを各リソースボード上のネットワーク／リソースのためのインタフェース回路に送ることができる。ボード上でネットワーク／リソースのためのインタフェース回路と各ＰＬＤの間を接続する「選択マップ」バスは、ネットワーク／リソースのためのインタフェース回路がパケットで到着したプログラミングデータをアドレス指定されたＰＬＤへ転送することを可能にする。このように、本発明に関するエミュレーションリソースボードは、ボード上のエミュレーションリソースに対してワークステーションをインタフェースする便利な方法を提供して、ワークステーションがボード上のエミュレーションリソースをプログラムすると共に、エミュレートされているＩＣの一部をもエミュレートし、そして、ボード上のエミュレーションリソースをプログラムすることを可能にする。
【００１９】
本発明の好適な実施の形態に関するリソースボードは、いくつかのＦＰＧＡ又は他のタイプのＰＬＤと各ＦＰＧＡに対応する個々のランダムアクセスメモリ（ＲＡＭ）を有する。入力パケットを経由して受信された制御データに応じて、ネットワーク／リソースのためのインタフェース回路によって制御される一組のスイッチは、各ＦＰＧＡの端子を対応するＲＡＭに選択的に連結し、それによって、ＲＡＭがエミュレートされている回路に埋め込まれたメモリをエミュレートすることができるように、ＦＰＧＡによってエミュレートされた回路がＲＡＭにアクセスして読み書きすることを可能にする。
【００２０】
ワークステーションは、また、リソースボードのネットワーク／リソースのためのインタフェース回路をプログラミングして、リソースボード上でエミュレートされている回路の各部分に試験信号入力を供給するパターン発生器として機能するようにすることもできる。ネットワーク／リソースのためのインタフェース回路は、エミュレーション中に発生すべき信号パターンを制御するためのデータを記憶するＲＡＭを有する。ワークステーションは、また、エミュレーションの開始前に、パターン制御データをパケットによってネットワーク／リソースのためのインタフェース回路に送ることによってＲＡＭにそれをロードすることができる。
【００２１】
ネットワーク／リソースのためのインタフェース回路は、また、ＰＬＤ出力信号をモニタしＲＡＭ内にエミュレーション中に発生するＰＬＤ出力信号のステートシーケンスを表す「プローブデータ」を格納することによって、データ獲得システムとしても機能することができる。ネットワーク／リソースのためのインタフェース回路は、分析のために、パケットでそのプローブデータをワークステーションに転送する。リソースボード上に形成された「プローブバス」は、各ＰＬＤのいくつかの他のＩＯ端子をネットワーク／リソースのためのインタフェース回路に接続して、該ネットワーク／リソースのためのインタフェース回路が試験信号をＰＬＤに送ったり、ＰＬＤからの出力信号をモニタすることを可能にする。
【００２２】
ワークステーションは、また、ネットワーク／リソースのためのインタフェース回路をプログラミングして、クロック信号ソースの数からＰＬＤ内の論理をクロック制御する信号を派生するクロック論理回路としても機能することができる。
【００２３】
リソースボード上に形成されたクロックバスは、ネットワーク／リソースのためのインタフェース回路から各ＰＬＤにクロック信号の各エッジを同時に配信すると共に、各ＰＬＤからのゲート信号をネットワーク／リソースのためのインタフェース回路に戻すように配信する。
【００２４】
パケットルーティングネットワークがリソースボード間に仮想の信号通路を提供している状態では、何れかのリソースボード上に搭載された何れかのリソースが何れかのリソースボード上に搭載された何れかの他のリソースと通信するのを可能にするためには、従来のネットワークケーブルを用いて各ボードをネットワークに接続することだけが必要である。しかし、各リソースボードは、そのリソースボード上でＰＬＤのＩＯ端子の間、そして、必要な場合には、他のリソースとの間に高帯域のハードワイヤード通路を提供することをケーブルが可能にするコネクタを有する。エミュレーションシステムがインサーキットエミュレータとして機能すべきときには、このケーブルコネクタは、また、目的の回路ボード内で、ＰＬＤの各端子をＩＣソケットに接続するために使用されることもできる。
【００２５】
本明細書に添付の特許請求の範囲は、本発明の主題を特に指摘している共に明確に権利請求している。しかし、そこでは同じ引用符号が同一の部材に付けられている添付の図面に関連して本明細書の残りの部分を読むことによって、業界で通常の知識を有する者は、出願人が本発明の最良の実施の形態と考えているものの機構と動作方法の両方を、本発明の更なる利点と目的と共に最もよく理解する。
【発明の効果】
【００２６】
上記の課題解決手段によれば、本発明は、リーズナブルなコストでＦＰＧＡとリソース間の信号配線を用いることなく、ハードワイヤードな仮想信号通路を用いて、リソースボード上の各ＰＬＤとＲＡＭの間で、そして、各ＰＬＤと他のリソースボードとワークステーションと他の外部機器の間で、柔軟に信号を送信することができるという効果を奏する。
【００２７】
また、上記の課題解決手段によれば、本発明は、クロック信号を各ＰＬＤに配信するのに必要なバランスのとれた論理信号通路を提供することができると共に、エミュレートされた回路を試験するのに必要な多くのパターン発生とデータ獲得機能を実行することによって外部の試験機器と通信するのに必要な信号の数も減らすことができるという効果も奏する。
【発明を実施するための最良の形態】
【００２８】
本発明は、ＩＣの動作をエミュレートするための各種のプログラマブルリソースを用いて、ＩＣに入力として加えられた試験信号に応答して、そのＩＣが生成する信号がどのように挙動するのかを判定するネットワークベースのエミュレーションシステムに関連する。特には、本発明は、エミュレーションリソースを保持し、そのリソース間にプログラミング及びデータの信号通路を提供し、更に、回路エミュレーション中に必要ないくつかの試験機能も提供する、エミュレーションシステムに用いられる回路ボードに関連する。以下の明細書の記載と添付図面は、発明の実施をするための最良の形態と考えられるエミュレーションリソースボードの実施の形態を記述したものである。しかし、業界で通常の知識を有する者は、発明が別のやり方でも実施できることを正しく理解する。したがって、この明細書に添付の特許請求の範囲の記載は、下記の実施の形態だけではなく、明細書及び図面に記載された発明の実施の形態において例示された部材又は工程と機能的に均等である部材又は工程を有する、発明を実施するためのあらゆる形態に適用される。
【００２９】
エミュレーションシステムアーキテクチュア
図１は、本発明に関する、例示のエミュレーションシステム４０を図示しているが、それは、コンピュータワークステーション４２と、一又はそれ以上の「リソースボード」４４と、従来のネットワークローターやスイッチやハブによって相互接続される一又はそれ以上のバスを含むパケットルーティングネットワーク４６を具備している。各リソースボード４４は、ＩＣの部分をエミュレートするときに使用する一又はそれ以上のエミュレーションリソース４８を保持している。
【００３０】
エミュレーションリソース４８は、例えば、プログラマブルゲートアレイ（ＦＰＧＡ）又は他のタイプのプログラマブル論理デバイス（ＰＬＤ）、ランダムアクセスメモリ又はリードオンリーメモリ、特定用途向けＩＣ（ＡＳＩＣ）、マイクロプロセッサ又は各種の抽象化レベルにＩＣの部分をエミュレートするのに適切な他のいかなるデバイスをも具備することができる。各リソースボード４４は、また、パケットルーティングネットワーク４６とエミュレーションリソース４８の間にインタフェースを提供する「ネットワーク／リソースのためのインタフェース回路」４９を具備する。
【００３１】
ワークステーション４２とネットワーク／リソースのためのインタフェース回路４９は、パケットルーティングネットワーク４６を介して、互いにパケットに送ることができる。
【００３２】
業界で通常の知識を有する者に知られた各種のネットワークが、パケットルーティングネットワーク４６を構成し、各パケットがそのネットワークが使用する特定の物理層のプロトコルに関連して取り決められる。
【００３３】
しかし、各パケットは、主に、該ネットワークがパケットを適正な宛先に送るのに必要な情報と共に、パケットが受取人に搬送すべきペイロードデータを含むヘッダを有する。ワークステーション４２と各ネットワーク／リソースのためのインタフェース回路４９と各エミュレーションリソース４８は、固有のネットワークアドレスを有し、パケットルーティングネットワーク４６を介して送られてきた各データパケットのヘッダは、パケットのソース及び宛先として指定された各デバイスのネットワークアドレスを適切に示している。ヘッダは、また、受け取りのネットワーク／リソースのためのインタフェース回路４９又はワークステーション４２に命じていくつかのタイプのアクションを行わせるコマンドを有している。
【００３４】
パケットのペイロードデータは、ヘッダに含まれたコマンドの引数として機能すると共に、そのネットワークの物理層のプロトコルの性質に応じて固定長又は可変長とされる（しかし、可変長のパケットであることが好適である）。例えば、コマンドがそれを受け取ったネットワーク／リソースのためのインタフェース回路４９に命じて、アドレス指定されたエミュレーションリソース４８の特定の信号を特定のステートにドライブする場合、コマンドの引数を構成するペイロードはそれらの信号を参照し、それらがドライブされるべきステートを示す。パケットヘッダ内のネットワークあて先アドレスがローカルリソースボード４４のいずれかのエミュレーションリソース４８のアドレスと一致するときのみ、ネットワーク／リソースのためのインタフェース回路４９は、入力パケットのコマンドを実行する。
【００３５】
各リソースボード４４のネットワーク／リソースのためのインタフェース回路４９は、パケットを送受信するだけではなく、そのリソースボード上のローカルなエミュレーションリソース４８とも通信する。エミュレーション中に各ネットワーク／リソースのためのインタフェース回路４９が実行するトランザクションのタイプは、ある程度、エミュレートされるべき回路の性質に依存するので、各ネットワーク／リソースのためのインタフェース回路４９は、回路エミュレーション中に各種の機能を行うようにプログラミングされる一又はそれ以上のプログラマブル論理デバイスを具備する。
【００３６】
ネットワーク／リソースのためのインタフェース回路４９には、ＪＴＡＧまたはその他のタイプのバスを経由し、又は、プログラマブルリードオンリーメモリを介して、外部源から供給されたブートプログラムが最初にロードされ、ネットワーク／リソースのためのインタフェース回路４９がパケットルーティングネットワーク４６を介して通信できるようにする。ネットワーク／リソースのためのインタフェース回路４９にロードされたブートプログラムに関連して、その後、ワークステーション４２は、ネットワーク／リソースのためのインタフェース回路４９にアドレス指定した入力パケットによって運ばれたプログラミングデータを使って、ネットワーク／リソースのためのインタフェース回路４９を再プログラミングすることができる。
【００３７】
ワークステーション４２からのパケットは、また、エミュレーションリソースプログラミングデータを搬送する。たとえば、エミュレーションリソース４８がＦＰＧＡを有する場合、ワークステーション４２は、「ダウンロード」コマンドとＦＰＧＡプログラミングデータを搬送するパケットをプログラムされるべき特定のＦＰＧＡに対しアドレス指定する。アドレス指定されたＦＰＧＡを有するリソースボード４４上のネットワーク／リソースのためのインタフェース回路４９は、その入力パケットの「ダウンロード」コマンドに応答して、パケットのペイロードプログラミングデータをそのＦＰＧＡのプログラミング入力に送信する。
【００３８】
パケットは、リソース出力信号の現状のステートを示すデータ若しくはリソース入力信号がドライブされるべきステートを示すデータを搬送することもできる。たとえば、入力パケット内の「リード」コマンドは、ネットワーク／リソースのためのインタフェース回路４９に命じて、入力パケットのあて先アドレスによってアドレス指定されたＦＰＧＡの各Ｉ／Ｏ端子における信号のステートを示すペイロードデータを含む信号データパケットをソースアドレスに戻すようにすることもできる。パケットの「強制」コマンドは、ネットワーク／リソースのためのインタフェース回路４９に命じて、パケットのあて先アドレスによってアドレス指定されたエミュレーションリソースの指定されたＩＯ端子を特定のステートにドライブすることも可能である。強制コマンドを有する一連のパケットは、パケットを送信するリソースボード４４上のエミュレーションリソース４８の出力端子とパケットがアドレス指定したリソースボード上のエミュレーションリソース４８の入力端子の間の信号経路の挙動をエミュレートすることができる。このようにして、強制コマンドは個々のエミュレーションボードに搭載された各リソースのＩＯ端子間に「仮想信号通路」を実現して、ハードワイヤード信号通路の論理動作をエミュレートする。
【００３９】
「相互確認動作モード」において、ワークステーション４２（又はパケットルーティングネットワーク４６にアクセスする他のいかなるコンピュータ）は、ＩＣのある部分をエミュレートするが、一方、リソースボード４４上のエミュレーションリソース４８はそのＩＣの他の部分をエミュレートすることができる。この動作モードにおいて、ワークステーション４２とネットワーク／リソースのためのインタフェース回路４９は、信号入力をドライブする強制コマンドを各モジュール内の各リソースに搬送するパケットを用いることができる。
【００４０】
リソースボード４４は、たとえば、大容量のメモリバンクの機能をエミュレートすることのできる大規模なランダムアクセスメモリを有することもできる。この場合、入力パケットのヘッダにおいて搬送されたライトコマンドは、ネットワーク／リソースのためのインタフェース回路４９に命じて、データをパケットのあて先アドレスにおいて選択されたメモリのうちの一つの特定のアドレス又はアドレスブロックに書き込ませる。パケットのデータペイロードは、アクセスされるべきメモリアドレス並びにこのメモリアドレスに書き込むべきデータを参照する。入力パケットのメモリリードコマンドは、ネットワーク／リソースのためのインタフェース回路４９に命じて、あて先アドレスにおいてアドレス指定されたメモリの特定のアドレス又はアドレスブロックのデータを読み込ませ、そして、アドレス指定されたパケットのメモリから読み込んだデータを入力パケットのヘッダに含まれたソースアドレスによって識別されたデバイスに戻すようにさせる。このようにして、パケットルーティングシステムは、ワークステーション又はいずれかのエミュレーションリソースがリソースボードに搭載されたメモリにアクセスして読み書きをすることを可能にする「仮想メモリバス」を実現する。
【００４１】
エミュレーションシステム４０は、他の構成部材を含む回路ボードのような外部の「ターゲットシステム」４７内のソケットに実装されて、その目的の動作環境において、ＩＣをエミュレートするインサーキットエミュレータ（ＩＣＥ）としても機能することができる。このＩＣＥ動作モードにおいて、エミュレーションリソース４８は、たとえば、通常エミュレートされているＩＣを保持することを意図して、ターゲットシステム４７内のソケットに挿入するコネクタを有するケーブルによって提供される信号経路を介して直接外部システム４７と通信する。
【００４２】
リソースボード
図２は、図１のリソースボード４４の一つとして適切に使用される本発明のリソースボードの一例の平面図である。リソースボード４４上に搭載されたエミュレーションリソースは、８個一組のＦＰＧＡであるＦ１−Ｆ８と、８個一組のＲＡＭであるＭ１−Ｍ８を具備している。そのボードのネットワーク／リソースのためのインタフェース回路４９は、リソースコントローラ５０と、バススイッチ５２と、一組のＲＡＭ５３（適切な高速ＳＤＲＡＭ又はＤＤＲ若しくはＱＤＲ）と、一対の発振器５４と、入出力クロックバッファＩＣ５５と、ネットワークインタフェース回路５６を有する。ネットワークインタフェース回路５６は、パケットルーティングネットワーク４６とリソースコントローラ５０の間のパケット通信を取り扱う。各ＦＰＧＡであるＦ１−Ｆ８は、１１０４個のＩＯピンを有し、４００Ｋまでのゲートを提供するＸｉｌｉｎｘ社のモデルＶｉｒｔｅｘ−ＩＩ６０００ＦＦ１５１７であることが適切であるが、他のＦＰＧＡメーカーのモデルも使用できる。他のタイプのＰＬＤも、また、ＦＰＧＡであるＦ１−Ｆ８と共に又はそれに代わって、リソースボード上に搭載することも可能である。ブートＰＲＯＭとＸｉｌｉｎｘ社のモデルＶｉｒｔｅｘ−ＩＩのＦＰＧＡで実装されることが好適であるリソースコントローラ５０は、以下に記載するように、いくつかの機能を有する。
【００４３】
リソースコントローラ５０は、パケットを介してネットワークインタフェース５６にワークステーション４２が送信するプログラミングデータによって、ＦＰＧＡであるＦ１−Ｆ８をプログラミングする。ＦＰＧＡである各Ｆ１−Ｆ８は自分自身のネットワークアドレスを有し、エミュレーションの開始前に、リソースコントローラ５０は、エミュレーションに参加すべき各ＦＰＧＡにアドレス指定されたプログラミングデータを転送する。各リソースボード４４のネットワークインタフェース回路５６は、ローカルのＦＰＧＡであるＦ１−Ｆ８のいずれかにアドレス指定したＦＰＧＡプログラミングデータをリソースコントローラ５０に転送し、更に、リソースコントローラ５０は、そのプログラミングデータをアドレス指定されたＦＰＧＡにロードする。
【００４４】
エミュレーション中、リソースコントローラ５０は、試験信号入力をエミュレーションされているＩＣに提供するプログラマブルパターン発生器として機能する。エミュレーション工程の開始前は、パケットルーティングネットワーク４６にアクセスするワークステーション４２又は他のデバイスは、リソースコントローラ５０がエミュレーション中に発生すべき試験信号パターンを定義するデータを各ＲＡＭ５３にロードする。そして、リソースコントローラ５０は、エミュレーション中に各ＲＡＭ５３からそのプログラミングデータを読み出して、ＦＰＧＡである各Ｆ１−Ｆ８に供給する試験信号をどのように制御するのかを決定する。リソースコントローラ５０は、また、エミュレーション中にＦＰＧＡである各Ｆ１−Ｆ８が生成する信号をサンプリングし、ＲＡＭ５３にそれらの信号のステートを示す「プローブデータ」を格納する、エミュレーション中のデータ獲得システムとしても機能することが可能である。
【００４５】
エミュレーション中の様々の時点で、若しくは、エミュレーション終了時において、リソースコントローラ５０はＲＡＭ５３からそのプローブデータを読み出して、パケットによってワークステーション４２にそれを転送する。そして、ワークステーション４２は、エミュレートされたＩＣの動作を分析し、波形表示を作り出し、若しくは、他の目的に利用するための根拠としてそのプローブデータを利用する。
【００４６】
エミュレーション中、リソースコントローラ５０は、パケットルーティングネットワーク４６（図１参照）とネットワークインタフェース回路５６において送受信されるパケットを用いて、ワークステーション４２と他のリソースボードのリソースコントローラと通信することができる。たとえば、ワークステーション４２が異なるリソースボードに搭載されたＦＰＧＡをプログラムして、ＩＣの個々の部分を実装した上で、更に、一組の信号により、これらの個々の部分のＩＯ端子が互いに通信を行うことを条件とする。リソースコントローラ５０は、他のリソースボードのＦＰＧＡ又は他のデバイスへの入力信号として機能すべきである、リソースボード４４上のＦＰＧＡである各Ｆ１−Ｆ８の出力信号をモニタすることもでき、更に、システムクロックの各サイクルの後で、それぞれのＦＰＧＡ出力信号のステートを示すデータを含む強制コマンドパケットを他のリソースボードに送ることもできる。強制コマンドは、他のリソースボードのリソースコントローラに命じて、次のシステムクロックサイクルの開始時点で、そのエミュレーションリソースの適切な入力信号を指示されたステートにドライブする。反対に、他のリソースボードのエミュレーションリソースが一又はそれ以上のＦＰＧＡであるＦ１−Ｆ８への入力信号として機能すべき出力信号を生成する場合、リソースコントローラ５０は、他の回路ボードのリソースコントローラからの強制コマンドパケットに応答して、適切なＦＰＧＡ入力を入力ライトコマンドパケット内のステートデータによって示されたステートにドライブすることができる。リソースコントローラ５０は、また、ローカルエミュレーションリソースによって生成された信号のステートを読み、それらの信号ステートを示すデータを含む返答パケットを返すように受け手のコントローラに要求する「リードコマンド」パケットを送るか又はそれに応答することができる。エミュレーション中、ワークステーション４２におけるソフトウェアランニングがＩＣの一部をエミュレーションすることを可能にする。このような場合、ワークステーション４２は、リード及びライトパケットによってリソースボード４４と通信して、ワークステーションとリソースボードがエミュレートするＩＣの各部分間における信号の通過をエミュレートすることができる。このように、エミュレーション中、パケットルーティングネットワーク４６と各リソースボード４４のネットワーク／リソースのためのインタフェース回路４９（ネットワークインタフェース５６とリソースコントローラ５０も含めて）は、ワークステーション４２と個々のリソースボード４４によってエミュレートされているＩＣの各部分の端子を明らかに相互接続する一組の「仮想信号通路」として機能することができる。
【００４７】
リソースボード４４は、また、一組のコネクタ１−Ｊ８を具備するが、各コネクタはボード上の導通路によって対応するＦＰＧＡであるＦ１−Ｆ８のそれぞれの端子と連結されている。たとえば、ＦＰＧＡであるＦ１のＩＯ端子が他のリソースボードのリソースと通信されるべきであって、それらの信号の帯域幅が仮想信号通路にとって広すぎる場合、コネクタＪ１と他のリソースボードのコネクタの間を接続するケーブルは、ＦＰＧＡであるＦ１と他のリソースボードとの間で大きな信号幅のハードワイヤード信号通路を提供できる。このエミュレーションシステムは、たとえば、ソケットとターゲットボードに取り付けられたときのような、その目的の動作環境内で取り付けられたときにＩＣをエミュレートするインサーキットエミュレーション（ＩＣＥ）システムとして機能することができる。このような場合、ターゲットボードソケットとコネクタＪ１−Ｊ８の組を接続するケーブルは、リソースボード４４とそのターゲットボードの間に必要な信号通路を提供することができる。
【００４８】
リソースボードの信号通路
リソースボード４４の各層上又はそれを介して形成された線又は経路は、そのリソースボード上の搭載された各構成部品間に信号通路を提供する。図３乃至図８は、リソースボード４４に提供された各種の信号通路を図示している。
【００４９】
図３に図示したように、各線６０は、各ＦＰＧＡであるＦ１−Ｆ８の１２０個一組のＩＯ端子を他の７つのＦＰＧＡのそれぞれに連結する。本発明の好適な実施の形態において、各ＦＰＧＡであるＦ１−Ｆ８は、好適には、１１０４個のＩＯ端子を有するＸｉｌｉｎｘ社のモデルＶｉｒｔｅｘ−ＩＩ６０００ＦＦ１５１７であり、線６０は、各ＦＰＧＡであるＦ１−Ｆ８の総計８４０個のＩＯ端子を他のＦＰＧＡのＩＯ端子に連結するハードワイヤードである。
【００５０】
図４に図示したように、各線６２は、各ＦＰＧＡであるＦ１−Ｆ８の１４４個のＩＯ端子をコネクタＪ１−Ｊ８のうちの対応するものに連結し、そして、スイッチＳ１−Ｓ８を介して、ＲＡＭであるＭ１−Ｍ８のうちの対応するものに連結する。図２のバススイッチ５２は、スイッチＳ１−Ｓ８とコネクタＪ１とＪ８を連結する別のスイッチＳ９を実現するものである。リソースコントローラ５０内のコントロールレジスタ６４に格納されたコントロールデータは、スイッチＳ１−Ｓ９のスイッチングステートを制御する。エミュレーションシステムをプログラミングするときは、ワークステーション４２（図１参照）がパケットをリソースボード４４に送り、それに命じて適切なコントロールデータをレジスタ６４にロードするようにする。エミュレーション中にＲＡＭであるＭ１−Ｍ８のいずれもが不必要である場合、スイッチＳ１−Ｓ８は開成されているが、エミュレーション中に各ＦＰＧＡであるＦ１−Ｆ８のいずれかがＲＡＭであるＭ１−Ｍ８のうちの対応するものにアクセスすべきである場合は、その対応するスイッチＳ１−Ｓ８は閉成されたままであり、ＦＰＧＡとそれに対応するＲＡＭの間に必要な信号通路を提供する。ＦＰＧＡであるＦ１とＦ５の間に、１２０を越える直接の信号通路が必要である場合、スイッチＳ９が閉成されて、別の１４４個の信号通路をこれら２つのＦＰＧＡの間に提供する。コネクタＪ１−Ｊ８のいずれかに接続するケーブルは、それに対応するＦＰＧＡであるＦ１−Ｆ８の１４４個までのＩＯ端子をＦＰＧＡと直接に通信すべき外部デバイスの端子に連結することができる。また、必要であれば、差し込まれて又は挿入されてコネクタＪ１−Ｊ８の間に信号通路を提供する回路ボード又はケーブルが使用されて、いずれかの組のＦＰＧＡであるＦ１−Ｆ８の間に直接の接続数を増やすことを可能にする。
【００５１】
図５に図示したように、リソースコントローラ５０の５２個のＩＯ端子と各ＦＰＧＡであるＦ１−Ｆ８は、リソースボード４４上の各線によって実現される「ローカルバス」６６の個々の５２個のラインに並列接続されている。リソースコントローラ５０内に実装された「ローカルコントローラ」６８は、各ＦＰＧＡであるＦ１−Ｆ８の各端子とそのリソースボードの外部の他のリソースボードの端子を連結する５２個までの仮想信号通路のローカルエンドとして機能することができる。ローカルコントローラ６８は、ネットワークインタフェース５６を介して受信されたパケットによって搬送された入力強制コマンドに応答して、ローカルバス６６の選択されたラインをその強制コマンドによって示されたステートにドライブする。ローカルコントローラ６８は、また、入力リードコマンドに応答して、ローカルバス６６の各ラインのステートを読み込み、このラインのステートを示すデータを含むパケットをそのリードコマンドを送ったネットワークデバイスに返す。ローカルコントローラ６８は、ローカルバス６６の各ラインのステートを読み込み、そして、強制コマンドを他のリソースボードのローカルコントローラに送って、選択された信号をそのステートにドライブすることができる。ローカルコントローラ６８は、また、自らにローカルバスのラインのステートを返すように要求した他のリソースボードのローカルコントローラにリードコマンドを読み出して、ローカルコントローラ６８がそのローカルバス６６のラインを同じステートにドライブするようにすることもできる。
【００５２】
リソースコントローラ５０は、また、エミュレートされるＩＣの各部分をエミュレートすることもでき、ＩＣのクロック論理回路をエミュレートするのに特に適している。典型的なデジタルＩＣは、各論理ブロックがレジスタと他のクロック制御されたデバイスを介して通信されて、その論理ブロック間に高レベルのタイミング同期を提供するレジスタトランスファ論理を採用している。ＩＣは、入力として、一又はそれ以上の一次クロック信号を受信するが、その一次クロック信号から一又はそれ以上の二次クロック信号を引き出すクロック論理回路を具備することも可能である。たとえば、図９は、たとえば、クロック論理回路８０が一次クロック信号ＣＬＫ１とクロックゲート信号ＧＡＴＥを処理して二次クロック信号ＣＬＫを生成するためにＩＣ内に内蔵されている、一例を図示している。この単純な例において、クロック論理回路８０は、ＧＡＴＥ信号がハイのときにＣＬＫ信号と同じ位相と周波数のＣＬＫ２信号を生成すると共に、ＧＡＴＥ信号がローのときにそのＣＬＫ２信号をオフにするＡＮＤゲート８２から構成される。しかし、クロック論理回路８０は、もっと多くの入力を有することも、より複雑なクロック論理を包含することもできる。一対のクロックツリー８４と８６（導体とバッファのネットワーク）は、ＩＣ内の各論理ブロック間を通過するデータ信号のタイミングを制御するために使用される、様々にクロック制御された（レジスタとフリップフロップのような）デバイス８８と８９のクロック入力にクロック信号ＣＬＫ１とＣＬＫ２を送り出す。ＩＣ内では、クロックツリー８４と８６はバランスがとれており、クロック信号ＣＬＫ１の各エッジが同時にクロック制御されたデバイス８８に到達し、そして、クロック信号ＣＬＫ２の各エッジが同時にクロック制御されたデバイス８９に到達する。
【００５３】
図２のリソースボード４４において、リソースコントローラ５０内のプログラマブル論理は、クロック論理回路８０をエミュレートすることができ、各ＦＰＧＡであるＦ１−Ｆ８内の論理は、クロック制御されたデバイス８８と８９をエミュレートすることができ、クロック論理回路８０から各ＦＰＧＡであるＦ１−Ｆ８とＦＰＧＡ内部の信号通路にまで伸張するリソースボード４４上のバランスのとれた信号は、バランスのとれたクロックツリー８４と８６をエミュレートすることができる。図２のリソースボード４４は、一次クロック信号として使用されるクロック信号を発生する一対の発振器５４を具備する。コネクタＪ９は、外部回路からの他の一次クロック信号のために入力ポイントを提供する。バッファ５５は、発振器５５によって生成されたクロック信号とコネクタＪ９を介して各ＦＰＧＡであるＦ１−Ｆ８から受信したクロック信号の間のバッファとなる。ワークステーション４４又は他のリソースボードは、また、仮想信号通路経由で「仮想クロック信号エッジ」をリソースボード４４に送り、リソースコントローラ５０は、そのような仮想クロック信号を入力としてそれが実現するクロック論理に供給することができる。
【００５４】
図６は、リソースコントローラ５０内に実装されたクロック論理回路７２によって生成された１６個までのクロック信号をバッファ５５経由で各ＦＰＧＡであるＦ１−Ｆ８に伝送するための１６ラインのクロックバス７０を図示している。クロック論理回路７２は、いくつかの源からクロック信号入力を受信することができる。発振器５４は、１６個までの異なる周波数の一次クロック信号（ＯＳＣＣＬＫ）をクロック論理回路７２に供給する。外部回路は、また、１６個までのクロック信号（ＩＣＥＣＬＫ）を入力としてコネクタＪ９とバッファ５６経由でクロック論理回路７２に供給することができる。図１のワークステーション４２と他のリソースボード４４は、１６個までの異なるクロック信号（ＣＯＳＣＬＫ）を仮想信号通路経由でクロック論理回路７２に供給することができる。ワークステーション４２は、クロック論理回路７２をプログラミングして、その入力一次クロック信号を処理し１６個までのクロック信号を発生してクロックバス７０経由で各ＦＰＧＡであるＦ１−Ｆ８に供給する。クロックバス７０は、リソースコントローラ５０から各ＦＰＧＡであるＦ１−Ｆ８への均等な信号通路長を有するスターバスであり、それによって、各クロック信号のエッジが同時に全てのＦＰＧＡであるＦ１−Ｆ８に到達することを確実にする。他の対の導体は、各ＦＰＧＡであるＦ１−Ｆ８から２つまでの信号（ＧＡＴＣＬＫ）をクロックゲート信号として使えるようにクロック論理回路７２に送り返す。クロックゲート信号は、たとえば、ＦＰＧＡであるＦ１−Ｆ８への二次クロック信号入力をオン又はオフにすることができ、又は、二次クロック信号の基準ソースをクロック論理回路７２の他の一次クロック信号入力に切り替えることができる。
【００５５】
図７は、リソースコントローラ５０と各ＦＰＧＡであるＦ１−Ｆ８のＪＴＡＧ端子を外部のホスト機器に連結するための４ラインのＪＴＡＧバスを実装するリソースボード上の線７４を図示している。ホスト機器は、ＪＴＡＧバスを使用して、最初にリソースコントローラ５０へのブートストラッププログラムをロードすることができ、更に、ＪＴＡＧバスを使用してリソースコントローラ５０又は各ＦＰＧＡであるＦ１−Ｆ８のいずれかの信号のステートを診断目的でモニタすることも可能である。
【００５６】
図８は、各ＦＰＧＡであるＦ１−Ｆ８の「セレクトマップ」入力をリソースコントローラ５０に実装されたセレクトマップコントローラ７８に接続するための一組の１２ラインのバスを実現するリソースボード４４上の各線７６を図示する。エミュレーションプログラミング処理中、セレクトマップコントローラ７８は、各ＦＰＧＡであるＦ１−Ｆ８にアドレス指定されたパケットによって搬送されたダウンロードコマンドを介して、ワークステーションからＦＰＧＡプログラミングデータを受け取り、適切なセレクトマップバス経由でそのプログラミングデータをアドレス指定されたＦＰＧＡにロードする。パケットによって伝送されたプログラミングデータは、また、選択されたＦＰＧＡであるＦ１−Ｆ８を再プログラミングして、エミュレータ全体を再プログラミングする必要なく、エミュレート中のＩＣの設計変更に順応させることができる。
【００５７】
上記のように、一組のＰＬＤとＲＡＭを保有し、そのＰＬＤとＲＡＭと他のリソースボードに搭載されたリソースとワークステーションと他の外部機器の間にハードワイヤードで仮想の信号通路を提供する、本発明に関するエミュレーションリソースボードの実施の形態を明示し説明してきた。このリソースボードは、また、クロック信号を各ＰＬＤに伝送するのに必要なバランスのとれたロジック信号通路を提供し、そして、エミュレーションされた回路を試験するのに必要な多くのパターン発生とデータ獲得機能を実現することによって、外部の試験機器と通信するのに必要な信号の数を減らすものである。
【００５８】
上記のようにこの明細書と図面で本発明の最良の実施の形態を詳細に説明してきたが、その最良の実施の形態の構成要素と工程は、特許請求の範囲に記載された発明の構成要素と工程を例示するものである。しかしながら、特許請求の範囲の記載は、必ずしも上記の発明の実施の形態に限られるものではない。たとえば、多くの種類のＰＬＤやメモリや他のエミュレーションリソースが知られているので、業界で通常の知識を有する者はそれらに通暁しており、一方、上記の実施の形態のエミュレーションボードは８つのＦＰＧＡと８つのＲＡＭを保有しそれらを相互接続したが、本発明のエミュレーションリソースボードはより多くの又はより少数のＦＰＧＡとＲＡＭを保有することができ、ＦＰＧＡとＲＡＭ以外のＰＬＤとメモリを保有することができ、更に、ＰＬＤとＲＡＭに加えて若しくはそれに代わって他のタイプエミュレーションリソースを具備することもできる。したがって、特許請求の記載は、明細書と図面に記載された発明の実施の形態の例示された構成要素又は工程と機能的に均等である構成要素又は工程を含み、その特許請求の範囲のいずれかの請求項に記載された構成要素又は工程の組み合わせからなるいかなる発明の実施の形態にも適用されることを意図するものである。
【産業上の利用可能性】
【００５９】
上述したように、本発明の装置等は、電子機器の動作をエミュレーションするためのエミュレーションシステムに利用される。
【図面の簡単な説明】
【００６０】
【図１】本発明のリソースボードを用いたエミュレーションシステムの一例を示すブロック図である。
【図２】本発明のリソースボードの一例を示す略式平面図である。
【図３】図２のリソースボードにおいて用いられる相互接続システムの一例を示すブロック図である。
【図４】図２のリソースボードにおいて用いられる相互接続システムの他の一例を示すブロック図である。
【図５】図２のリソースボードにおいて用いられる相互接続システムの別の一例を示すブロック図である。
【図６】図２のリソースボードにおいて用いられる相互接続システムの更に別の一例を示すブロック図である。
【図７】図２のリソースボードにおいて用いられる相互接続システムの更に別の一例を示すブロック図である。
【図８】図２のリソースボードにおいて用いられる相互接続システムの更に別の一例を示すブロック図である。
【図９】クロック論理回路の一例を示すブロック図である。
【図１０】従来の代表的なエミュレーションシステムのブロック図である。
【図１１】エミュレーションシステムリソースボード上で各デバイスを相互接続するための従来の代表的なシステムのブロック図である。
【図１２】エミュレーションシステムリソースボード上で各デバイスを相互接続するための従来の他の代表的なシステムのブロック図である。
【符号の説明】
【００６１】
４２  ワークステーション
４４  リソースボード
４６  パケットルーティングネットワーク
４８  エミュレーションリソース
４９  ネットワーク／リソースのためのインタフェース回路
５０  リソースコントローラ
５２  バススイッチ
５３  ＲＡＭ
５４  発振器
５５  バッファ
５６  ネットワークインタフェース回路
６０，６２，７４  線  
６４  コントロールレジスタ
６６  ローカルバス
６８  ローカルコントローラ
７０  クロックバス
７２  クロック論理回路
７８  セレクトマップコントローラ
Ｊ１−Ｊ８  コネクタ
【図１】
0004664056.tif 000002
【図２】
0004664056.tif 000003
【図３】
0004664056.tif 000004
【図４】
0004664056.tif 000005
【図５】
0004664056.tif 000006
【図６】
0004664056.tif 000007
【図７】
0004664056.tif 000008
【図８】
0004664056.tif 000009
【図９】
0004664056.tif 000010
【図１０】
0004664056.tif 000011
【図１１】
0004664056.tif 000012
【図１２】
0004664056.tif 000013