(57)【特許請求の範囲】
【請求項１】
集積回路設計の回路素子をエミュレートするように再構成可能であり、各々が複数の出力を有する複数の論理素子であって、上記論理素子に対応して与えられる複数の入力信号に応答して複数の出力信号を生成するように作動する複数の論理素子と、
選択された論理素子の部分集合によってエミュレートされた回路素子の複数の信号状態値の記録をエミュレーション・クロックの１クロック・サイクルにおいて捉え、そして走査バスに出力する部分走査レジスタと、
上記エミュレーション・クロックの１クロック・サイクルにおいて、上記部分走査レジスタを上記選択された論理素子の部分集合のみに再構成可能に接続する、上記複数の論理素子と上記部分走査レジスタに結合した再構成可能なネットワークとを含むことを特徴とするエミュレーションシステムに使用される集積回路。
【請求項２】
上記論理素子に結合され、上記論理素子の全信号状態値の記録を上記エミュレーション・クロックの１クロック・サイクルにおいて捉え、そして上記走査バスに出力するように作動する全走査レジスタであって、走査クロックの印加によって使用可能な状態となる全走査レジスタを更に含むことを特徴とする請求項１に記載の集積回路。
【請求項３】
上記論理素子に結合され、上記論理素子の上記複数の信号状態値の少なくとも一部に基づき、少なくとも１つのトリガ値を条件付きで生成するように作動するトリガ回路を更に含むことを特徴とする請求項１に記載の集積回路。
【請求項４】
上記複数の論理素子及び複数の集積回路出力に結合された相互接続ネットワークを更に含み、上記相互接続ネットワークは、上記相互接続ネットワークを構成する再コンパイル可能命令セットに基づき、上記複数の論理素子及び上記複数の集積回路出力に信号を経路指定するように作動することを特徴とする請求項１に記載の集積回路。
【請求項５】
ホストとエミュレーション基板とを含み、
上記エミュレーション基板は、少なくとも一部が上記ホストに通信可能に接続した複数の基板入力／出力ピンと、少なくとも一部が基板入力／出力ピンに接続した複数のＩＣ入力／出力ピンを具備した集積回路とを含み、
上記集積回路は、集積回路設計の回路素子をエミュレートするように再構成可能であり、各々が複数の出力を有する複数の論理素子であって、上記論理素子に対応して与えられる複数の入力信号に応答して複数の出力信号を生成するように作動する複数の論理素子と、
選択された論理素子の部分集合によってエミュレートされた回路素子の複数の信号状態値の記録をエミュレーション・クロックの１クロック・サイクルにおいて捉え、そして走査バスに出力する部分走査レジスタと、
上記エミュレーション・クロックの１クロック・サイクルにおいて、上記部分走査レジスタを上記選択された論理素子の部分集合のみに再構成可能に接続する、上記複数の論理素子と上記部分走査レジスタに結合した再構成可能なネットワークとを含むことを特徴とするエミュレーションシステム。
【請求項６】
上記論理素子に結合され、上記論理素子の上記複数の信号状態値の少なくとも一部に基づき、少なくとも１つのトリガ値を条件付きで生成するように作動するトリガ回路を更に含むことを特徴とする請求項５に記載のエミュレーションシステム。
【請求項７】
複数の入力／出力ピンと、上記複数の入力／出力ピンに結合した集積回路を含み、
上記集積回路は、集積回路設計の回路素子をエミュレートするように再構成可能であり、各々が複数の出力を有する複数の論理素子であって、上記論理素子に対応して与えられる複数の入力信号に応答して複数の出力信号を生成するように作動する複数の論理素子と、
選択された論理素子の部分集合によってエミュレートされた回路素子の複数の信号状態値の記録をエミュレーション・クロックの１クロック・サイクルにおいて捉え、そして走査バスに出力する部分走査レジスタであって、上記エミュレーションクロックに対して適切な一定の割合である走査クロックの印加によって使用可能な状態になる部分走査レジスタと、
上記エミュレーション・クロックの１クロック・サイクルにおいて、上記部分走査レジスタを上記選択された論理素子の部分集合のみに再構成可能に接続する、上記複数の論理素子と上記部分走査レジスタに結合した再構成可能なネットワークとを含むことを特徴とするエミュレータ基板。
【請求項８】
集積回路設計の回路素子をエミュレートするように再構成可能であり、各々が複数の出力を有する複数の論理素子であって、上記論理素子に対応して与えられる複数の入力信号に応答して複数の出力信号を生成するように作動する複数の論理素子と、
上記複数の論理素子の選択されたものと再構成可能に結合され、走査クロックの印加によって使用可能な場合、上記選択された論理素子によってエミュレートされた回路素子の複数の信号状態値の記録をエミュレーション・クロックの１クロック・サイクルにおいて捉え、そして走査バスに出力するように作動する部分走査レジスタと、
上記論理素子に結合され、走査クロックの印加によって使用可能な場合、上記論理素子の全信号状態値の記録を上記エミュレーション・クロックの１クロック・サイクルにおいて捉え、そして上記走査バスに出力するように作動する全走査レジスタとを含むことを特徴とするエミュレーションシステムに使用される集積回路。
【発明の詳細な説明】
【０００１】
関連出願
本出願は、「統合デバッグ機能を備えたフィールド・プログラマブル・ゲートアレイ」という名称で１９９５年１０月１３日にバルビア（Ｂａｒｂｉｅｒ）等によって出願され、本発明の譲渡人に通常の形で譲渡されている米国特許出願第０８／５４２，８３８号の継続出願の米国特許出願第０８／９８５，３７２号の一部継続出願である。
【０００２】
発明の背景
１．発明の分野
本発明は、全体的にはエミュレーションシステムの分野に関し、特に、エミュレーションシステムにおいて使用される統合デバッグ機能を備えた再構成可能な集積回路に関する。
【０００３】
２．背景情報
回路設計をエミュレートするエミュレーションシステムは、当分野では周知である。通常、従来のエミュレーションシステムは、汎用の統合デバッグ機能のないフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）を用いて形成されている。エミュレートされる回路設計は、回路設計の「公式的」記述をコンパイルするとともに、回路設計をＦＰＧＡの論理素子（ＬＥ）（組合せ論理ブロック（ＣＬＢ）としても知られる）上へにマッピングすることによって、エミュレーションシステム上に「実現」される。これら汎用フィールド・プログラマブルゲートアレイは、そのエミュレーションシステムへの適用に関する限り、多くの不利な点を抱えている。第一に、ＦＰＧＡの内部にマップ化されている個々のノードにおける信号の状態が、直接的に観察できないということであり、これは、「隠された」ノードと呼ばれる。この「隠された」ノードにおける信号の状態を観察可能にするためには、信号をＦＰＧＡの外に出し、ロジック・アナライザに入れるＦＰＧＡの再構成が必要である。それには、膨大な時間を費やす再コンパイルを必要とする。加えて、検査システム、例えば  ロジック・アナライザによって観察可能（追跡可能）なポート／ノードに信号を持込むために、通常、多数のＦＰＧＡのＩ／Ｏが占有される。更に、経路選定すべき付加的信号により、信号経路選定の輻輳が増加される。最後に、時間に鋭敏なアプリケーションに関しては、読取りをトリガするイベントが検出される前に、信号をＦＰＧＡの外へ取出さなければならないので、あるイベントの発生に応答して信号が読取られるものとすると、「隠された」ノード上の信号が、正しい時刻に読取られたか否かを知ることは困難である。エミュレータが複雑化するにつれ、ＦＰＧＡのネットワーク及び相互接続した追跡も増加し、上記の問題は一層悪化する。監視追跡に要する時間が複雑化を伴いどこまでも増えるにつれ、エミュレーションが実行できる頻度は、容認できないレベルにまで減少する。
【０００４】
従って、必要とされるものは、一旦隠されたノードに容易にアクセスできるとともに、再構成の必要を減少させながら追跡することによって、許容できるエミュレーション頻度でエミュレーションすることを容易にする統合デバッグ機能を備えた再構成集積回路である。以下に更に詳細に説明するように、まさにそのような統合デバッグ機能を備えた再構成集積回路を提供する本発明は、前記及び他の望ましい結果を得るものであり、このことは以下の説明により当業者には明白となろう。
【０００５】
発明の要旨
本発明の教示に基づき、エミュレーションシステムに使用される統合デバッグ機能を備えた再構成集積回路（ＩＣ）が説明される。特に、本発明の第１実施形態によれば、集積回路は、複数の出力及び部分走査レジスタを各々有する複数の論理素子（ＬＥ）を含むものとして説明される。複数のＬＥは、ＬＥに対応して与えられる複数の入力信号に応答し複数の出力信号を生成するように作動する。部分走査レジスタは、ＬＥの選択された１つに再構成可能に結合され、使用可能とされた場合には、オペレーティング・クロックの特定クロック・サイクルにおいて、選択されたＬＥによりエミュレートされた信号状態値回路素子の記録を捉えて走査バスに出力するよう作動し、そこにおいて、部分走査レジスタは、オペレーティング・クロックに適切に比例した走査クロックの印加により使用可能とされる。
本発明は、添付図面に示された例示的な実施形態によって説明されるが、これに限定されるものではない。尚、添付図面の同じ参照番号は、同じの構成要素を表す。
【０００６】
発明の詳細な説明
以下の記述では、本発明の完全な理解を与えるために特定の数、器具、及び  コンフィギュレーションを説明する。しかし、本発明は具体的詳細が無くとも実施し得ることは当業者には明らかであろう。その他、周知の特徴は、本発明が不明瞭にならないように省略もしくは簡略化した。
明細書中の「一実施形態」という言及は、実施形態と関連して説明される特定の特性、構造、及び特徴が、本発明の少なくとも一実施形態に含まれることを意味する。従って、「一実施形態」という、明細書の様々な場所にでてくる句は必ずしも同一の実施形態を指すものではない。
【０００７】
図１を参照すると、本発明の教示を組み込んだ再構成集積回路１００の例に関するブロック図が示されている。以下の説明から明らかになるように、再構成回路１００は、本発明の教示を除き、本技術分野において周知である多数の再構成回路のいずれをも意味するように意図されている。例えば一実施形態では、再構成回路１００は、本発明の教示を組み込んで強化された再構成回路である。本発明の一実施形態によれば、再構成回路１００は、単一の集積回路に配置され、機能強化されたＬＥ１０２のアレイを含む。機能強化されたＬＥ１０２は、種々の回路設計素子を「実現」するために使用され、革新的なデバッグ特性を含む。
【０００８】
加えて、更に有利なことに再構成回路１００は、機能強化されたＬＥ１０２に結合された、オンチップのコンテキスト・バス１０６、走査レジスタ１０８、及びトリガ回路素子１１０を含んでいる。以下に更に詳細に開示するように、コンテキスト・バス１０６は、ＬＥに値を入力し、更に、そこから値を出力するために用いられ、これに対し、走査レジスタ１０８及びトリガ回路素子１１０は、各々、追跡データ履歴、及びトリガ入力を、再構成回路１００に対し出力するのに用いられる。本発明の教示に従い、以下により完全に説明するように、再構成回路１００は、動的再構成ネットワーク１３７及び部分走査レジスタ１３５を含むことが示されているが、これらは再構成回路１００の選択論理素子１０２の部分的追跡履歴を選択的に出力するのに用いられる。すなわち、回路中に静的に規定された「見える」ノードからの走査出力のみのために備えられた（又は、「隠された」ノードを見るために再コンパイルとＩ／Ｏリソースの割振りを必要とされる）従来技術のエミュレータ回路とは異なり、再構成回路１００は、動的再構成ネットワーク１３７及び機能強化された論理素子アレイ１０２内のどの追跡／ノードにも、再コンパイルを必要とせずに動的可視性を与える部分走査レジスタ１３５を含んでいる。
【０００９】
本発明の一実施形態では、再構成回路１００は、メモリーを備えた回路設計をエミュレートするために再構成回路１００の使用を容易とするメモリー１１２を含んでいる。一実施形態では、メモリー１１２は、１６ビット記憶素子である。代替的実施形態では、メモリー１１２は、３２ビット幅でも良いし、代わりに６４ビット幅であっても良い。一実施形態では、再構成回路１００のピン１１３は、入力又は出力に用いることができる。一実施形態では、再構成回路１００内に６４のＩ／Ｏピン１１３が設けられる。また、図示され一実施形態例によれば、再構成回路１００は、図示されるように、ＬＥ、メモリー１１２、及びＩ／Ｏピン１１３を相互接続するためのＬＥ相互クロスバー（つまり、ｘ−バー）ネットワーク１０４を含んでいる。一実施形態では、再構成回路１００は、再構成回路１００を、他の再構成集積回路や「ホストシステム」（図示せず）のようなものと相互接続するための、第１ステージ・クロスバー・ネットワーク１１４ａ―１１４ｂに「２つのコピー」を含んでいる。
【００１０】
メモリー１１２は本技術分野において周知であり、これ以上は説明されない。ＬＥクロスバー・ネットワーク１０４及び相互回路クロスバー・ネットワーク１１４ａ―１１４ｂの第一ステージは、少なくとも一人の発明者と本発明と共通の譲渡人の「再構成論理デバイス相互接続のためのマルチレベル及びマルチ・ステージのネットワーク・トポロジーを採用したエミュレーションシステム」という名称の米国特許第５，５７４，３８８号に詳細に説明されており、その開示事項は、参照文献としてここに明白に援用される。しかし、ネットワーク１０４及びネットワーク・ステージ０  １１４ａ―１１４ｂを以下簡単に説明する。ＬＥ１０２、コンテキスト・バス１０６、走査レジスタ１０８、部分走査レジスタ１３５、動的再構成ネットワーク１３７、及びトリガ回路１１０を、残る図面を付加的に参照し、以下により詳細に説明する。これらの素子を更に詳細に説明するに前に、本発明は、説明を容易にするために、エミュレーションのコンテキストで説明されているが、以下に行う説明に基づき、通常の当業者であれば、本発明がエミュレーションシステムに加え他のアプリケーションにも適用できることが理解できることに注意を促す。
【００１１】
更に動的再構成ネットワーク１３７のコンテキストで、動的再構成可能と言う用語は、回路素子のエミュレーションは、動的再構成ネットワーク１３７を動的再構成するために休止したり（しなかったり）する必要があるかもしれないが、エミュレーションは、その最初から再スタートさせる必要が無いという意味を意図している。更に具体的には、動的再構成ネットワーク１３７の再構成には、再コンパイルが不必要であるが、相互接続ネットワーク１０４は、再コンパイルを必要とし、これは先に述べたように時間のかかるプロセスである。従って、動的再構成ネットワーク１３７が、ＬＥ１０２領域における、他の方法では隠されているノードが、エミュレータ及び／又はエミュレートされる回路の高速デバッグを容易にするために（部分走査レジスタ１３５を介して）アクセスすることにより、効率的な手段を提供することは、当業者であれば予測できるであろう。
【００１２】
図１は、分離走査レジスタを、すなわち部分走査レジスタ１３５が、ＬＥ１０２のアレイ内の追跡／ノードにアクセスするように、動的再構成ネットワーク１３７と連携して作動している状態を示しているが、当業者は、これが単なる例であり、他の適切な実施形態が存在することを理解できよう。例えば、その様な実施形態が図１１に示されている。
【００１３】
示されるように、図１１は、再構成回路１１００のブロック図を示す。当業者は、再構成回路１１００が、再構成回路１００のブロック図に非常に似ていることが認識できよう。すなわち、再構成回路１１００は、ＬＥ１０２のアレイ、メモリー１１２、動的再構成ネットワーク１３７、及びトリガ回路素子１１０を備え、図示されたように、各々が通信可能なように結合されている。しかし、再構成回路１１００が、全ての追跡／ノード活動、又は  単に選択したそのサブセットのみを徹底的に監視するために、マルチプレクサ１１０６と関連した１つの走査レジスタ１１０８しか必要としない点で再構成回路１００と識別可能である。すなわち、分離した部分走査レジスタ１３５と（徹底的）走査レジスタ１０８とを採用する代わりに、再構成回路１１００は、徹底的走査モードで全追跡／ノードの出力を、又は  部分走査モードで、追跡／ノードの選択されたサブセットの出力を、走査レジスタ１１０８に選択的に供給するマルチプレクサ１１０６を使用する。換言すれば、走査レジスタ１１０８は、図１の走査レジスタ１０８として全体を使用することも、図１の部分走査レジスタ１３５として部分的に使用することもできる。
【００１４】
前述の本発明の代替的実施形態を考えると、当業者は、本発明の精神と範囲を逸脱することなく、更に広い範囲の実施形態で本発明を実施し得ることが理解できよう。実際に、その様な本発明の代替的実施形態が本発明の開示によって予想される。革新的な再構成回路２００及び再構成回路１１００の実施形態を説明したので図２に注意が向くが、ここでは機能強化されたＬＥ１０２のアレイを更に説明する。
【００１５】
ここで、図２に目を向けると、図１の再構成回路に用いるのに適した機能強化されたＬＥのアレイの例のブロック図が、本発明の実施形態により示されている。図に示すように、ＬＥアレイ１０２は、本発明の機能強化された複数のＬＥ２００を含む。例えば、一実施形態では、ＬＥアレイ１０２は、１２８のＬＥ２００を含む。当業者であれば、以下により詳細に説明する関連読み出し／書き込み及び制御回路の増減に応じて、より大きな又はより小さいＬＥ２００のアレイを使用できることが理解できよう。例えば、本発明の代替的一実施形態では、ＬＥアレイ１０２は、７６８のＬＥ２００より成る。しかし、限定するためでなく説明を容易にするために、応用例の残る部分を通じて提示する例では、１２８のＬＥ２００より成るＬＥアレイ１０２を参照する。図２に示すように各ＬＥ２００は、多入力単出力真理表２０２、一対のマスター−スレーブ・ラッチ２０４−２０６、出力マルチプレクサ２０８、入力マルチプレクサ２１２、及び制御ロジック２１４を含み、図のように各々が互いに結合されている。
【００１６】
真理表２０２は、１組の入力に応答して１つの所定の出力を生成するために用いられる。図に示す実施形態では、真理表２０２は、４つの入力と１つの出力とを持つ。換言すれば、真理表２０２は、入力に応じ２４ の所定出力の内の１つを出力する。マスター−スレーブ・ラッチ２０４−２０６の各々が、入力値をそのクロック入力と同期して記憶する。更に、マスター−スレーブ・ラッチ２０４−２０６の各々にセット及びリセット値に応じて、非同期的に０又は１を強制設定することができる。図示した実施形態では、セット及びリセット入力は、真理表２０２の入力Ｉ３及びＩ４を使って与えられる。換言すれば、セット／リセットが使用されれば、真理表２０２に供給される入力値の変化の数は減少する。代替的に、マスター−スレーブ・ラッチ２０４−２０６に、セット／リセット信号を供給するために追加の専用ピンが与えられることがあるが、再構成集積回路の占有場所の要件は増加するであろう。
【００１７】
引き続き図２を参照すると、真理表２０２及びマスター−スレーブ・ラッチ２０４−２０６を使用する方式を制御するために出力マルチプレクサ２０８、入力マルチプレクサ２１０、及び制御ロジック２１２が使用される。出力マルチプレクサ２０８で（マスター−スレーブ・ラッチ２０４−２０６を迂回して）真理表２０２の出力も、（レベルセンシティブな設計用の）スレーブ・ラッチ２０６の出力も、（エッジセンシティブな設計用の）マスター・ラッチ２０４の出力も選択出力できる。真理表２０２が、スタンドアローンで使われるのであれば、迂回出力が選択される。マスター又はスレーブ・ラッチ２０４又は２０６の出力が選択されると、入力マルチプレクサ２１０によって真理表２０２，出力マルチプレクサ２０８からのフィードバック、又はマスター−スレーブ・ラッチ２０４−２０６に供給されるコンテキスト・バス１０６への入力値、の出力ができる。フィードバック値が選択されると、論理素子２００が「フリーズ」し、バス値が選択されるとＬＥ２００が初期化される。制御ロジック２１２は、入力マルチプレクサ２１０を制御し、かつセット値、リセット値、第１及び第２使用可能値（ＥＮＡＢ及びＥＮ）、ロード値（ＬＤＥ）及びホールド値（ＨＬＤ）に従って、マスター−スレーブ・ラッチ２０４−２０６に供給されるセット値及びリセット値を制御するが、これらは以下に更に詳しく説明する。
【００１８】
また、各ＬＥ２００も、多数のエミュレ−ション・クロック又はデバッグ・クロック（ＬＤ）を、選択的にマスター−スレーブ・ラッチ２０４−２０６に提供するクロック選択マルチプレクサ２１６ａ−２１６ｃを含んでいる。好もしくは、このエミュレ−ション・クロックは、他の論理素子２００を使用した構造化エミュレ−ション・クロックを含むものである。図示した実施形態では、この「構造化」エミュレ−ション・クロックは、真理表２０２のＩ０を通じて利用可能になる。エミュレ−ション・クロックの１つは、正常作動時にマスター−スレーブ・ラッチ２０４−２０６に提供され、一方、デバッグ・クロック（ＬＤ）は、デバッグ時に供給される。クロック選択は、ＣＴＸ信号によって制御される。最後に、ＬＥ２００は、選択出力をＬＥ相互  Ｘ−バー・ネットワーク１０４及びオンチップ・デバッグ機能体に出力するバッファー２１４ａ、及び選択出力を再構成回路１００の外で直接観察するために、コンテキスト・バス１０６に出力するバッファー２１４ｂを含んでいる。
【００１９】
要するに、真理表２０２は、スタンドアローン方式でも使用でき、対応するマスター−スレーブ・ラッチ２０４−２０６と結合しても使用できる。ＬＥ２００は、「レベルセンシティブ」な回路設計エミュレーションにも、「エッジセンシティブ」な回路設計エミュレーションにも適している。加えて、真理表２０２の「正常な」作動中の出力のほかに、各ＬＥ２００は、別に初期化できる。また、各ＬＥ２００は、フリーズしたかのように何度も同じ出力を出力させることもできる。更に、ＬＥ２００は、再構成回路１００外で独立にかつ直接に観察可能である。換言すれば、「隠された」ノードが無い。各「ノード」の状態は、従来技術で通常行われる再構成と時間のかかる回路設計マッピングの再コンパイルを必要とせず、再構成回路の外で直接に観察可能である。
【００２０】
図３は、各入力マルチプレクサ２１０及び制御ロジック２１２を更に詳細に示す実施形態を示す。図に示すように、入力マルチプレクサ２１０は、活動状態にされると、フィードバック出力、真理表２０２の出力、及びコンテキスト・バス１０６への入力値をそれぞれ出力するドライバ２１１ａ−２１１ｃを含む。ドライバ２１１ａ−２１１ｃの１つが、制御ロジック２１２からの制御信号によって選択的に活動状態になる。制御ロジック２１２は、ＡＮＤゲート２１３ａ−２１３ｃ、ＯＲゲート２１５、ＮＯＲゲート２１７、及びメモリビット２１９ａ−２１９ｃを含む。これらは、ドライバ２１１ａ−２１１ｃへの制御信号ならびにマスター−スレーブ・ラッチ２０４−２０６へのセット及びリセット値を生成する。メモリビット２１９ａ−２１９ｃはセット及びリセット値の供給及びフィードバック出力の選択を活動状態にする構成情報を記憶するために使用される。活動状態になるとＡＮＤゲート２１３ａ−２１３ｂはセットとＨＬＤ入力でセット値を、及びリセットとＨＬＤ入力でリセット値を供給する。活動状態になるとＯＲゲート２１５はＡＮＤゲート２１３ｃと結合してＥＮＡＢ，ＨＬＤ，及びＥＮ入力に従ってドライバ２１１ａへの制御信号を供給する。ＮＯＲゲート２１７は、ドライバ２１１ａ−２１１ｃへ供給される制御信号及びＬＤＥ入力に従ってドライバ２１１ｂへの制御信号を供給する。最後に、ＬＤＥ入力はドライバ２１１ｃへの制御信号として供給される。
【００２１】
簡単に図４ａ−４ｂを参照するが、ここではＬＥを相互接続するためのＬＥ相互クロスバー・ネットワーク１０４、メモリー及び入出力（Ｉ／Ｏ）ピンの一実施形態を示する。特に、図４ａ及び４ｂは、１２８のＬＥ２００を相互接続するＬＥ相互クロスバー・ネットワーク１０４の一実施形態を図示する。当業者は本発明の精神と範囲を逸脱することなく、より大きいあるいはより小さいＬＥ相互クロスバー・ネットワークを採用し得ることが理解できよう。図示された実施形態図に関して、４ａに示すように、ＬＥ相互クロスバー・ネットワーク１０４は、４つのサブネットワーク２２０を含む。最初の２つのサブネットワークであるサブネット０とサブネット１とは、７２の信号経路として使用され、一方、残る２つのサブネットワークであるサブネット２とサブネット３とは、６４の信号経路として使用される。更に詳細に説明すると、図４ｂに示すように、サブネット０は、ＬＥ０−ＬＥ３９，ＬＥ１１９−ＬＥ１２７，Ｉ／Ｏ０−Ｉ／Ｏ１５，及びＭ０−Ｍ７の信号経路として使用される。サブネット１は、ＬＥ２４−ＬＥ７１，Ｉ／Ｏ１６−Ｉ／Ｏ３１，及びＭ８−Ｍ１５の信号経路として使用される。サブネット２は、ＬＥ５６−ＬＥ１０３，Ｉ／Ｏ３２−Ｉ／Ｏ４７の信号経路として使用される。サブネット３は、ＬＥ０−ＬＥ７，ＬＥ８８−ＬＥ１２７，及びＩ／Ｏ４８−Ｉ／Ｏ６３の信号経路として使用される。ＬＥの重複したカバレッジにより、回路設計マッピングの信号経路の自由度は増大する。
【００２２】
各サブネットワーク２２０は、第一ステージにおける、９又は８の８―８クロスバー２２０、第二ステージにおける、９−２０又は８−２０のクロスバー２２４又は２２６、第三ステージにおける、２０の８−８クロスバー２２８のいずれかを含む３ステージのクラウス（Ｃｌａｕｓ）ネットワークである。各ステージは、周知の「バタフライ」方式で相互に結合される。
【００２３】
更に詳細にＬＥ相互クロスバー・ネットワーク１０４を説明するために、前に挙げた参照文献として援用した米国特許第５，５７４，３８８号を参照する。
また、簡単に図５を参照するが、ここでは再構成集積回路を、他の再構成集積回路及び「ホスト」コンピュータ（図示せず）に相互接続するための再構成回路相互クロスバー・ネットワーク１１４ａ−１１４ｂの一実施形態を示す。図に示すように、図の実施形態では、再構成回路相互クロスバー・ネットワーク・ステージ０  １１４ａ−１１４ｂは、再構成集積回路の６４のＩ／Ｏ信号を、再構成集積回路を他の再構成集積回路及び「ホスト」コンピュータに相互接続するクラウス・ネットワークの次のステージに結合するための４組の１６−１６クロスバー２３０を含む。クロスバー・ネットワーク・１１４ａ−１１４ｂを更に説明するために、また前に挙げた参照文献として援用した米国特許第５，５７４，３８８号を参照する。
【００２４】
図６は、再構成回路１００の論理素子２００に読取り及び書き込みをするための、コンテキスト・バス１０６と結合した読取り／書き込み機能体の一実施形態を示する。示されるように、図の実施形態では、１２８のＬＥ２００が１６コラムに整理され、各コラムが８つのＬＥ２００を有する。従って、全１２８のＬＥ２００、すなわち現在のコンテキストが１６の８ビットワードで読み出し及び書き込みできる。アドレスレジスタ２３２は、読み出し又は書き込みアドレスを記憶するために設けられる。デコーダ２３４は、アドレスを読み出し及び書き込みするために設けられる、読み出し／書き込み制御回路２３６と結合して適切な読み出し制御信号（ＲＤ０−ＲＤ１５）及び書き込み制御信号（ＬＤＥ０−ＬＤＥ１５）を１２８のＬＥ２００に提供する。加えて、各ＬＥ２００は、前に説明したＬＥ２００を「フリーズ」するためのＨＬＤ信号、デバッグ（ＬＤ）クロックを選択するＣＴＸ信号、及びデバッグ・クロックそのものを受け取る。
【００２５】
図７ａ−７ｂは、読取り書き込みの典型的な信号タイミングを示する。図７ａに見られるように、コンテキスト読取りは、最初に、４ビットアドレスをアドレスレジスタ２３２にロードすることから行われる。結果として、デコーダ２３４は、読み出し／書き込み制御回路２３６が適切な読み出し制御信号をハイに変え、アドレスされたＬＥ２００の内容を読み出す。（ＨＬＤ，ＣＴＸ，ＬＤＥｉ、及びＬＤは読み出し動作が進行中は全てローに保たれる。）図７ｂに示されるように、コンテキスト書き込みは、最初に、４ビットアドレスをアドレスレジスタ２３２にロードすることから行われる。加えて、デコーダ２３４が応答して読み出し／書き込み制御回路２３６が適切な書き込み制御信号をハイにする前に、ＨＬＤが最初に駆動されて、全てのＬＥ２００をフリーズする。更にＣＴＸが駆動されてハイになり、各ＬＥ２００に適切なデバッグ・クロックＬＤを選択する。それから、読み出し／書き込み制御回路２３６が適切な書き込み制御信号を駆動して、コンテキスト・バス１０６の値がアドレスされたＬＥ２００にロードされる。コンテキスト書き込みの間、全てのＬＥ２００をフリーズすることが重要である。なぜなら、部分的コンテキストは、一時的な状態を誘起し、それが次に、エミュレーションシステムを未知の状態に陥れることがあるからである。例えば、最終コンテキストは、所定のリセット信号をローの状態にするかもしれないのに、部分的コンテキスト（書き込み動作中）は、リセット信号の一時的なハイの状態を誘起して、その信号に接続された全てのラッチを予想外の時にリセットすることがある。
【００２６】
図８ａは、全ＬＥ２００の追跡データの全走査を出力するための走査レジスタ１０８の一実施形態を示す。図８で示される一実施形態例によれば、走査レジスタ１０８には、８つのフリップフロップの１６セットと、８つのマルチプレクサ２４４（すなわち、１２８のＬＥ２００が設けられている）の１５セットがあり、マルチプレクサ２４４は、フリップフロップ２４２のセットの間に配置されている。フリップフロップ２４２第０セットは、８つのＬＥ２００の第１群に結合している。マルチプレクサ２４４第０セット２４４第０セットは、フリップフロップ２４２第０セットと論理素子２００との第２群に結合している。フリップフロップ２４２第１セットは、マルチプレクサ第０セットと結合しており、以下同様である。フリップフロップ２４２第０セットは、ＬＥ２００の出力を順次受けては伝播する。マルチプレクサ２４２第０セットも、フリップフロップ２４２第０セットの出力又は８つのＬＥ２００の第２群の出力を連続的に提供する。フリップフロップ２４２第１セットは、マルチプレクサ２４４第０セットからの入力を、順次シーケンシャル的に伝搬する。フリップフロップ２４２のセットは、走査クロックに制御されるが、マルチプレクサ２４４のセットは、走査制御信号によって制御される。従って、（作動エミュレーション・クロックに比例して）適切に分割された周波数を持つ走査クロックを適用し、マルチプレクサ２４４のセットに適切な走査制御信号を選択的に適用することにより、クロック・サイクルにおける１２８全てのＬＥ２００のスナップショットを再構成可能回路１００から順次、走査して得ることができる。
【００２７】
図８ｂに目を向け、本発明の教示に基づき、部分走査レジスタ１３５及び動的再構成ネットワーク１３７の統合デバッグ機能体を更に詳細に説明する。図８ｂに示すように、動的再構成ネットワーク１３７は、複数のＬＥ２００と結合した複数の４：１マルチプレクサ５０２を含む。図示した一実施形態例によれば、動的再構成ネットワーク１３７は、１２８のＬＥ２００出力に結合した３２の４：１マルチプレクサを含む。従って、動的再構成ネットワーク１３７によって、ユーザーは、最大３２までのＬＥ２００状態値の選択サブセットを部分走査レジスタ１３５に再構成可能に経路指定することができる。
【００２８】
本発明の一実施形態によれば、部分走査レジスタ１３５は、８つのフリップフロップ５６２の４セットと、フリップフロップ５６２のセットの間に８つのマルチプレクサ５６４の３セットを含む。図１の一実施形態例に示すように、部分走査レジスタ１３５は、動的再構成ネットワーク１３７からの入力を受けて操作バス１３９に出す。特に、全走査レジスタ１０８とは異なり、部分走査レジスタ１３５は、選択したＬＥ２００のサブセット（例えば４分の１）の状態値を走査バス１３９に出力する。全走査レジスタ１０８と部分走査レジスタ１３５とが出力として走査バス１３９を分かち合う範囲で、走査コントロール１４２及び走査クロック１４０が、どちらの操作レジスタを活動状態にするかを選択的に制御する。特に、図示した一実施形態例によれば、ＬＥアレイ１０２内のユーザー選択のＬＥ２００を部分走査できるようにするためには、ユーザーは、走査コントロール１４２及び走査クロック１４０で部分走査レジスタ１３５を活動状態にするが、ＬＥアレイ１０２内のＬＥ２００全てを全走査できるようにするには、走査コントロール１４２及び走査クロック１４０信号で全走査レジスタ１０８を活動状態にする。しかし、当業者であれば、どちらの活動された操作レジスタを採用するかを決定する代替的な方法を認識できるであろう。例えば、本発明の代替的一実施形態において、走査レジスタ１０８と部分走査レジスタ１３５のどちらかは、単に走査クロック１４０の各々を希望のレジスタ、すなわち全走査レジスタ１０８又は部分走査レジスタ１３５に適用することで選択される。かくして本発明はその精神と範囲とを逸脱することなく、このような変形例を推測できる。
【００２９】
このように、当業者は動的再構成ネットワーク１３７及び部分走査レジスタ１３５が再構成回路１００に新しいレベルの自由度を与え、ユーザーが負荷の多い再構成及び従来技術に固有の回路設計マッピングソフトの再コンパイルを必要とせずに、所与のクロック・サイクルに選択したＬＥのサブセットを動的に再構成して観察することを可能にするのである。更に全てのＬＥの状態値における完全なセットを観察する必要があるときには、再構成回路１００は革新的な全走査レジスタを与えられるのである。本発明によれば、統合デバッグ機能を備えた再構成集積回路が得られるので、エミュレーションシステムのユーザーは、あるクロック・サイクルには、ＬＥアレイ１０２のＬＥのサブセットを観察することを選択することもでき、他のクロック・サイクルには、ＬＥアレイ１０２を構成する全てのＬＥの状態値をも全走査して観察することも選択できる。
【００３０】
図９を参照すれば、トリガ入力を出力するためのトリガ回路素子１１０の一実施形態例のブロック図が示されている。示されるように図の実施形態では、トリガ回路素子１１０は、各コンパレーター・レジスタ回路２６０から各々１つ、４つのトリガ出力を生成する４つのコンパレーター・レジスタ回路２６０を含んでいる。各コンパレーター・レジスタ回路２６０は、信号パターンを記憶するパターン・レジスタ２６２と、ＬＥからの出力とパターン・レジスタ２６２の記憶されている内容とを比較する相等性コンパレーター２６４とを含んでいる。一実施形態では、信号パターンは、ＬＥあたり２ビットから成り、ハイ、ロー、及びコード化不要の値を採ることができる。記憶パターンが検出されると、常に、再構成回路１００外のトリガへの入力が生成される。換言すれば、図示した一実施形態では、４つのＬＥ内部状態事象が同時にモニターできる。
【００３１】
図１０は、本発明の一実施形態による、本発明の教示を組み込んだエミュレーションシステム１０００の例のブロック図である。図１１のエミュレーションシステムの図示した例によれば、エミュレータ１０６０と結合して通信できるホストシステム１０２０を含むエミュレーションシステム１０００が示される。図示されるように、エミュレータ１０６０は、エミュレーションアレイ・相互接続ネットワーク１０８０，構成回路１２２０、及びホストインターフェイス１２４０を含んでおり、図のように通信できるように結合している。本発明の教示に従えば、エミュレーションアレイ・相互接続ネットワーク１０８０は、本発明の動的再構成集積回路１２２０ａ―１２００ｎを含んでおり、回路設計を組み立てる前に特定の回路設計をエミュレートして「実現する」ようプログラムできるように構成された複数のＬＥ含んでいる。更に詳細に説明すれば、革新的な動的再構成集積回路１２２０ａ―１２００ｎによって、選択ＬＥの状態値のサブセット、前述の時間のかかる再コンパイル法、もしくは従来技術に典型的な従来技術の走査レジスタからの全走査出力を選択的に出力する経路選定ネットワークを、エミュレーションシステムのユーザーが、部分走査レジスタ経由で制御することが可能になる。従って、エミュレーションシステム１００のように、本発明の革新的な特徴を組み込んだエミュレーションシステムを使えば、設計マッピングプログラムのように、複雑な回路設計ではしばしば何日もかかる方法で回路を変えたり、再コンパイルする方法を使ったりせず、このエミュレーションシステムのユーザーは、エミュレータ内の可視点を動的に変えることが可能になる。
【００３２】
エミュレーションアレイ・相互接続ネットワーク１０８０に加えて、エミュレータ１０６０が、構成回路１２２０及びホストインターフェイス１２４０を備えていることも示されており、これらは全て図１０の実施形態例に示すように結合されている。構成回路１２２０及びホストインターフェイス１２４０は、各々当業者に周知の従来からの機能を果たすものであるため、ここでこれ以上説明する必要はない。
【００３３】
当業者は、動的再構成集積回路１２２０ａ―１２００ｎを様々な態様で実施できることは理解できよう。例えば、一実施形態では、動的再構成集積回路１２２０ａ―１２００ｎは、対応する複数の再構成回路である。この実施形態例によれば、エミュレーションアレイ・相互接続ネットワーク１０８０は、多数の再構成可能ＬＥを含み、該ＬＥは、多数の再構成回路に分散して装備されており、該再構成回路は、次いで、多数のＬＥ基板に分散して装備されている。多数のＬＥ基板は、互いに結合されてクレートに形成されよう。多クレートの態様では、多数のクレートが組み合わされる。拡張可能な多レベル多ステージのネットワーク・トポロジーを用いて再構成回路内にＬＥ再構成回路、ＬＥ基板、そしてクレートが順次相互接続される。
【００３４】
本発明の教示を組み込んだエミュレータ１０６０に加えて、例示のエミュレーションシステム１０００は、更に、回路設計マッピング・プログラム１０４０を持つホストシステム１０２０を含む。当業者であれば、回路設計マッピング・プログラム１０４０は、当技術分野で周知の様々な代替的設計マッピング・ソフトウェア・プログラムのどれであっても良いことを理解できよう。図１０に図示する実施形態例によれば、回路設計マッピング・プログラム１０４０は、ホストシステム１０２０の適切な記憶媒体（図示せず）に記憶され、ホストシステム１０２０のプロセサーによって実行するため、ホストシステム１０２０のメモリーにロードされる。一般的なホストシステム１０２０及び特別な回路設計マッピング・プログラム１０４０は、回路エミュレーション技術で通常使用される様々なホストシステムや回路設計マッピング・プログラムのどれかを表すことを意図しており、ここでこれ以上説明する必要はない。
【００３５】
このように、特に、エミュレーションシステムに適した統合デバッグ機能を備えた再構成集積回路を説明してきた。本発明の方法と集積回路とを前記の図示した実施形態によって説明してきたが、当業者であれば、本発明が説明した実施形態に限定されるものでないことを認識できるであろう。本発明は、添付特許請求の精神と範囲内で修正及び変更を加えて実施し得る。更に前記のように、本発明は、複雑性の異なる動的再構成集積回路をも予定している。特に、本発明は、ＬＥアレイ１０２のＬＥアレイサイズの増減を、その様なＬＥアレイをサポートするのに必要な読取り／書き込み／クロスバー／制御回路の対応する増減と併せて予見している。このように、説明は本発明を限定するものでなく、例示するものと見なされるべきものである。
【図面の簡単な説明】
【図１】本発明の再構成集積回路の主要機能ブロックを示す。
【図２】図１のＬＥアレイの一実施形態を図示し、かつ機能強化されたＬＥの一実施形態を示す。
【図３】図１のマスター−スレーブ・ラッチ用の制御ロジック及び入力セレクタ各々の一実施形態を示す。
【図４ａ】図１のＬＥ相互クロスバー・ネットワークの一実施形態を示す。
【図４ｂ】図１のＬＥ相互クロスバー・ネットワークの一実施形態を示す。
【図５】再構成回路相互クロスバー・ネットワーク・ステージ０の一実施形態を示す。
【図６】図１のコンテキスト・バスの関連読み出し／書き込み機能の一実施形態を示す。
【図７】ＬＥからの読み出しとＬＥへの書き込みを示す２つの例示的タイミング図である。
【図８ａ】図１の集積回路で用いるのに適した全走査レジスタの一実施形態を示す。
【図８ｂ】本発明の一実施形態による、図１の集積回路で用いるのに適した、本発明の教示による、例示的な動的再構成集積回路及び部分走査レジスタのブロック図である。
【図９】図１の集積回路で用いるのに適したトリガ回路の一実施形態を示す。
【図１０】本発明の教示を組み込み、本発明の一実施形態によるエミュレーションシステム例のブロック図である。
【図１１】本発明の代替的一実施形態による、本発明の教示を組み込んだ再構成集積回路例のブロック図である。
【図１】
0003588324.tif 000002
【図２】
0003588324.tif 000003
【図３】
0003588324.tif 000004
【図４ａ】
0003588324.tif 000005
【図４ｂ】
0003588324.tif 000006
【図５】
0003588324.tif 000007
【図６】
0003588324.tif 000008
【図７】
0003588324.tif 000009
【図８ａ】
0003588324.tif 000010
【図８ｂ】
0003588324.tif 000011
【図９】
0003588324.tif 000012
【図１０】
0003588324.tif 000013
【図１１】
0003588324.tif 000014