(57)【要約】  埋込まれた固定の論理回路と、プログラマブルゲートアレイのプログラム可能ロジック構造との接続を、相互接続ロジックによって行なうことで、この固定論理回路はプログラム可能ロジック構造を延長したものとして機能する。相互接続ロジックは相互接続タイルを含み、さらにインターフェイスロジックを含み得る。相互接続タイルは、固定論理回路の入力および／または出力と、プログラム可能ロジック構造の相互接続との間で選択的な接続を行なう。インターフェイスロジックを含めた場合、これは固定論理回路とプログラム可能ロジック構造との間のデータ転送を条件付ける論理回路となる。
2005512359.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルゲートアレイであって、
プログラム可能ロジック構造と、
少なくとも１つの入力および少なくとも１つの出力を有する第１の固定論理回路とを備え、前記第１の固定論理回路は物理的にプログラム可能ロジック構造内に位置し、前記プログラマブルゲートアレイはさらに、
前記第１の固定論理回路の前記少なくとも１つの入力および前記少なくとも１つの出力をプログラム可能ロジック構造に結合するように動作可能な第１の相互接続ロジックを備え、第１のインターフェイスロジックは、前記第１の固定論理回路の前記少なくとも１つの入力に接続された第１のスイッチマトリクスと、前記第１の固定論理回路の前記少なくとも１つの出力に接続された第２のスイッチマトリクスと、第１のスイッチマトリクスに接続された第１の終端タイルと、第２のスイッチマトリクスに接続された第２の終端タイルとを含む、プログラマブルゲートアレイ。
【請求項２】
前記プログラム可能ロジック構造はさらに、
前記第１のスイッチマトリクスおよび第１の構成可能ロジックブロックに結合された第３のスイッチマトリクスと、
前記第２のスイッチマトリクスおよび第２の構成可能ロジックブロックに結合された第４のスイッチマトリクスとを含む、請求項１に記載のプログラマブルゲートアレイ。
【請求項３】
前記プログラム可能ロジック構造はさらにランダムアクセスメモリを含む、請求項１に記載のプログラマブルゲートアレイ。
【請求項４】
前記プログラム可能ロジック構造はさらに少なくとも１つの乗算器を含む、請求項１に記載のプログラマブルゲートアレイ。
【請求項５】
前記第１の固定論理回路はさらに、デジタル信号プロセッサ、マイクロプロセッサ、物理層インターフェイス、リンク層インターフェイス、ネットワーク層インターフェイス、音声プロセッサ、映像グラフィックプロセッサ、および特定用途向け集積回路のうち少なくとも１つを含む、請求項１に記載のプログラマブルゲートアレイ。
【請求項６】
前記第１の終端タイルは第１の単一ラインを含み、前記第１の単一ラインは第２の単一ラインへＵターンする、請求項１に記載のプログラマブルゲートアレイ。
【請求項７】
前記第１の終端タイルは、再バッファリングされて前記第１の固定論理回路の向こう側へまたがる１６進ラインを含む、請求項１に記載のプログラマブルゲートアレイ。
【請求項８】
前記第１の終端タイルは、前記第１の固定論理回路をまたがる長ラインを含む、請求項１に記載のプログラマブルゲートアレイ。
【請求項９】
さらに、
少なくとも１つの入力および少なくとも１つの出力を有する第２の固定論理回路を備え、前記第２の固定論理回路は物理的にプログラム可能ロジック構造内に位置し、さらに、
前記第２の固定論理回路の前記少なくとも１つの入力および前記少なくとも１つの出力をプログラム可能ロジック構造に結合するように動作可能な第２の相互接続ロジックを備え、第２のインターフェイスロジックは、前記第２の固定論理回路の前記少なくとも１つの入力に接続された第３のスイッチマトリクスと、前記第２の固定論理回路の前記少なくとも１つの出力に接続された第４のスイッチマトリクスと、第３のスイッチマトリクスに接続された第３の終端タイルと、第３のスイッチマトリクスに接続された第４の終端タイ
ルとを含む、請求項１に記載のプログラマブルゲートアレイ。
【請求項１０】
前記第２の固定論理回路はさらに、デジタル信号プロセッサ、マイクロプロセッサ、物理層インターフェイス、リンク層インターフェイス、ネットワーク層インターフェイス、音声プロセッサ、映像グラフィックプロセッサ、および特定用途向け集積回路のうち少なくとも１つを含む、請求項９に記載のプログラマブルゲートアレイ。
【請求項１１】
さらに、プログラム可能ロジック構造の周辺に配置された複数の入力／出力ブロックを備える、請求項１に記載のプログラマブルゲートアレイ。
【請求項１２】
前記第１の相互接続ロジックはさらに、（ａ）第１の相互接続ロジックおよび第１の固定論理回路のうち少なくとも１つをテストするためのテストモジュール、（ｂ）タイミングモジュール、（ｃ）第１の固定論理回路の前記少なくとも１つの入力および前記少なくとも１つの出力のうち少なくとも１つに対して論理機能を実行するためのロジックゲート、および（ｄ）制御モジュール、のうち少なくとも１つを含む、請求項１に記載のプログラマブルゲートアレイ。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の技術分野
この発明は一般的にプログラマブルゲートアレイに関し、特定的には、上記プログラマブルゲートアレイ内における固定の論理回路の埋込みに関する。
【背景技術】
【０００２】
発明の背景
プログラマブルデバイスとは、多種多様の用途に合わせて構成され得る多目的の集積回路の一種である。このようなプログラマブルデバイスには２つの基本的な種類があり、すなわち製造業者によってのみプログラムされるマスクプログラマブルデバイスと、エンドユーザによってプログラム可能なフィールドプログラマブルデバイスとである。加えて、プログラマブルデバイスはさらに、プログラマブルメモリデバイスまたはプログラマブルロジックデバイスに分類され得る。プログラマブルメモリデバイスには、プログラマブル読出専用メモリ（ＰＲＯＭ）、消去プログラム可能読出専用メモリ（ＥＰＲＯＭ）および電気的消去プログラム可能読出専用メモリ（ＥＥＰＲＯＭ）が含まれる。プログラマブルロジックデバイスには、プログラマブルロジックアレイ（ＰＬＡ）デバイス、プログラマブルアレイロジック（ＰＡＬ）デバイス、消去プログラム可能ロジックデバイス（ＥＰＬＤ）、およびプログラマブルゲートアレイ（ＰＧＡ）が含まれる。
【０００３】
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）は、電気通信用途、インターネット用途、スイッチング用途、ルーティング用途、およびその他さまざまなエンドユーザ用途において極めて広く普及している。図１は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）１０の一般化した概略的ブロック図を示す。ＦＰＧＡ１０はプログラム可能ロジック構造１２（プログラム可能ロジックゲートおよびプログラム可能相互接続を含む）およびプログラム可能入力／出力ブロック１４を含む。プログラム可能入力／出力ブロック１４はＦＰＧＡ１０を支持する基板上に作製され、集積回路のピンに結合されて、ユーザがプログラム可能ロジック構造１２にアクセスできるようにする。プログラム可能ロジック構造１２は、特定のエンドユーザ用途に対応する多種多様な機能を実行するようにプログラムされ得る。プログラム可能ロジック構造１２はさまざまな態様で実現され得る。たとえばプログラム可能ロジック構造１２は対称型アレイ構成、行ベース構成、列ベース構成、シーオブゲート（sea-of-gates）構成、または階層型プログラム可能ロジックデバイス構成で実現され得る。
【０００４】
図２は、対称型アレイ構成に従って実現されたプログラム可能ロジック構造１２を例示する。ここに示すように、複数のロジックブロック１６が行および列のアレイとして構成されている。この複数のロジックブロック１６の各々は、特定の論理機能を実行するようにエンドユーザによってプログラム可能である。より複雑な論理機能を得るために、複数のプログラム可能相互接続１８を用いて、個々にプログラムされたロジックブロックを相互接続できる。こうして、各行および各列のロジックブロックの各々の間にプログラム可能相互接続１８が存在する。
【０００５】
プログラム可能相互接続１８は、ロジックブロック１６のアレイのロジックブロック間で、さらにはロジックブロックとプログラム可能入力／出力ブロック１４との間で選択的な接続を可能にする。プログラム可能相互接続１８はあらゆるプログラム可能な要素を用いて実現され得るが、これには静的ＲＡＭセル技術、ヒューズおよび／またはアンチヒューズセル技術、ＥＰＲＯＭトランジスタ技術、および／またはＥＥＰＲＯＭトランジスタ
技術が含まれる。ＦＰＧＡが静的ＲＡＭプログラム可能接続を利用する場合、静的ＲＡＭセルによって制御されるパストランジスタ、伝送ゲートおよび／またはマルチプレクサを含むさまざまな構成要素を用いて接続を行なうことができる。ＦＰＧＡがアンチヒューズ相互接続を利用する場合、典型的に相互接続は高インピーダンス状態に存在し、これを再プログラムして低インピーダンス状態またはヒューズ状態にすることで選択的な接続を行なうことができる。ＦＰＧＡがＥＰＲＯＭまたはＥＥＰＲＯＭベースの相互接続を利用する場合、相互接続セルは再プログラム可能であるため、ＦＰＧＡを再構成することが可能である。
【０００６】
図３は、行ベースの構成として実現されたプログラム可能ロジック構造１２の概略的ブロック図を例示する。この構成では、プログラム可能ロジック構造１２は行として配置された複数のロジックブロック１６を含む。ロジックブロックの各行間にはプログラム可能相互接続１８がある。この相互接続はどのようなプログラム可能記憶要素を用いても実現可能であり、これにはＲＡＭ（静的ＲＡＭ、動的ＲＡＭおよびＮＶＲＡＭ）、ヒューズおよび／またはアンチヒューズ技術、ＥＰＲＯＭ技術、および／またはＥＥＰＲＯＭ技術が含まれる。
【０００７】
図４は、列ベースの構成として実現されたプログラム可能ロジック構造１２の概略的ブロック図を示す。図３と図４とに示すロジックブロック１６およびプログラム可能相互接続１８は実質的に同様のものである。
【０００８】
図５は、階層型プログラム可能ロジックデバイスとして実現されたプログラム可能ロジック構造１２を例示する。この実現例では、プログラム可能ロジック構造１２はプログラム可能ロジックデバイスブロック２２およびプログラム可能相互接続１８を含む。ここに示すように、４つのプログラム可能ロジックブロックデバイス２２が四隅にあり、相互接続ブロック１８がこれらロジックデバイスブロックの真中にある。さらに、この相互接続は、プログラム可能ロジックデバイスブロック２２を相互接続ブロック１８と結合するラインを含む。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
公知のように、フィールドプログラマブルゲートアレイでは、エンドユーザは特定用途向け集積回路（ＡＳＩＣ）の最初にかかる費用、時間的遅延、および内在的リスクを回避しながらカスタム集積回路を柔軟に実現することができる。ＦＰＧＡにはこれらの利点があるが、いくつかの欠点もある。たとえば、ＡＳＩＣにおいて実現されたのと同様の機能を実行するようにプログラムされたＦＰＧＡでは、ＡＳＩＣよりも大きなダイ面積が必要になることがある。さらに場合によっては、ＦＰＧＡを用いた設計の性能は、ＡＳＩＣを用いて実現した設計の性能よりも低くなることがある。
【００１０】
これらの不都合を緩和する１つのやり方は、或る共通に使用される複合的な機能を固定的な論理回路としてＦＰＧＡ内に埋込むことである。したがって、埋込まれた固定論理回路を含みながらプログラム可能構成要素を維持したプログラマブルゲートアレイが必要とされている。
【課題を解決するための手段】
【００１１】
好ましい実施例の詳細な説明
この発明は一般的に、プログラマブルゲートアレイのプログラム可能ロジック構造と埋込み固定論理回路をインターフェイスする相互接続ロジックを提供する。この相互接続ロジックによって、任意の固定論理回路（たとえばデジタル信号プロセッサ、マイクロプロセッサ、物理層インターフェイス、リンク層インターフェイス、ネットワーク層インター
フェイス、音声プロセッサ、映像グラフィックプロセッサ、および／または特定用途向け集積回路）を、プログラマブルゲートアレイのプログラム可能ロジック構造内に埋込むことが可能となる。加えて、固定論理回路とプログラム可能ロジック構造との接続を相互接続ロジックで行なうことにより、固定論理回路をプログラム可能ロジック構造内の任意の他のブロックと接続することができる。
【００１２】
相互接続ロジックは相互接続タイルを含み、さらにインターフェイスロジックを含み得る。この相互接続タイルによって、固定論理回路の入力および／または出力と、プログラム可能ロジック構造の相互接続との間でプログラム可能に接続を行なうことができる。インターフェイスロジックを含める場合は、これは固定論理回路とプログラム可能ロジック構造との間の信号を条件付ける。信号の条件付けには、データフォーマットの変更、並直列変換、直並列変換、多重化、デマルチプレクス、論理機能の実行、および／または信号生成の制御などが含まれ得る。このような相互接続ロジックによって、任意の固定論理回路をプログラマブルゲートアレイ内に容易に埋込み、追加的な機能をＦＰＧＡのエンドユーザに提供することが可能となる。
【発明を実施するための最良の形態】
【００１３】
この発明は図６〜１８を参照することでより詳細に記載され得る。図６はプログラマブルゲートアレイ３０のブロック図を例示する。プログラマブルゲートアレイはフィールドプログラマブルゲートアレイであっても、マスクプログラマブルゲートアレイであってもよい。加えて、プログラマブルゲートアレイは、プログラム可能ロジックデバイス機能、プログラマブルアレイ論理機能、プログラマブルロジックアレイなどを含み得る。プログラマブルゲートアレイ３０は、プログラム可能ロジック構造１２、プログラム可能入力／出力ブロック１４、相互接続ロジック３４、および固定論理回路３２を含む。
【００１４】
固定論理回路３２は、デジタル信号プロセッサ、マイクロプロセッサ、物理層インターフェイス、リンク層インターフェイス、ネットワーク層インターフェイス、ネットワークプロセッサ、音声プロセッサ、映像グラフィックプロセッサ、論理回路、および／または特定用途向け集積回路などあらゆる論理機能を含むことができ、少なくとも１つの入力と少なくとも１つの出力とを含む。典型的に、固定論理回路３２は、入力／出力ポート３６，３８，４０，４２で表わされる複数の入力および複数の出力を含む。入力／出力ポート３６〜４２は相互接続ロジック３４と動作可能に結合され、これにより、固定論理回路３２の入力／出力ポートと、プログラマブルゲートアレイ３０のプログラム可能ロジック構造１２との間で、さらには相互接続ロジック内のさまざまな論理機能間で接続を行なう。なお、プログラマブルゲートアレイ３０内には２つ以上の固定論理回路を含めることもできる。
【００１５】
プログラム可能ロジック構造１２は複数の構成可能ロジックブロック（ＣＬＢ）およびプログラム可能相互接続を含む。プログラム可能ロジック構造のアーキテクチャは、行または列ベース、階層型ＰＬＤ、対称型アレイ、および／またはシーオブゲートであり得る。構成可能ロジックブロックは、ザイリンクス・インコーポレイテッド（Xilinx, Inc.）が製造および流通を行なうＸＣ４０００ＥファミリーのＦＰＧＡ、バーテックス（Virtex）および／またはバーテックスＩＩ  ＦＰＧＡで見られる種類のものであり得る。相互接続は、静的ＲＡＭセル技術、ヒューズおよび／またはアンチヒューズセル技術、ＥＰＲＯＭトランジスタ技術、ＥＥＰＲＯＭトランジスタ技術および／またはその他任意のプログラマブル技術を利用した複数のプログラム可能スイッチマトリクスを含み得る。スイッチマトリクスは、ザイリンクス・インコーポレイテッドが製造および流通を行なうＸＣ４０００ＥファミリーのＦＰＧＡ、バーテックスおよび／またはバーテックスＩＩ  ＦＰＧＡに見られる種類のものであり得る。プログラム可能Ｉ／Ｏブロック１４もやはり、ザイリンクス・インコーポレイテッドが設計および製造を行なうＸＣ４０００ＥファミリーのＦ
ＰＧＡ、バーテックスおよび／またはバーテックスＩＩ  ＦＰＧＡに見られる種類のものであり得る。
【００１６】
プログラマブルゲートアレイ３０は集積回路として実現され得る。一実施例では、これら要素１２，１４，３２，３４の各々についての回路は、ＣＭＯＳ技術を用いてシリコン基板上で実現される。しかしながら、当業者であれば理解するであろうように、その他の集積回路技術および基板組成を用いてもよい。
【００１７】
動作については、相互接続ロジック３４はプログラム可能ロジック構造１２と固定論理回路３２との結合を行なう。したがって、プログラマブルゲートアレイ３０のエンドユーザは、固定論理回路３２をプログラム可能ロジック構造１２の構成要素として扱いながらＰＧＡ３０をプログラムできる。たとえば、固定論理回路３２がマイクロプロセッサである場合、相互接続ロジック３４は、マイクロプロセッサのためのプログラミング命令および／またはデータを記憶するためのメモリを含むことがあり、さらにＰＧＡ３０における他のブロックとインターフェイスするための論理機能（たとえばメモリコントローラ）を含み得る。こうして、プログラム可能ロジック構造１２をプログラムして、マイクロプロセッサの固定ロジック機能との組合せで所望の機能を実行する。このようにマイクロプロセッサを埋込むことにより、プログラマブルゲートアレイ３０は特化されたマイクロプロセッサの処理効率を伴ってＦＰＧＡの柔軟性を提供する。加えて、２つの別個の集積回路（マイクロプロセッサに１つ、ＦＰＧＡに１つ）を設ける代わりに、マイクロプロセッサをプログラム可能ロジック構造内に埋込むことによって、消費電力が低減され性能が向上するが、これは２つの別個の集積回路間の相互接続ピンおよびトレースがなくなったことによる。他の利点としては、マルチプロセッサ設計をより容易に実現できること、および、より広範囲にわたるシステムレベル設計（たとえば外部メモリのないプロセッサシステム）に対応できることがある。さらに、プログラマブルゲートアレイ３０において、ＦＰＧＡおよびマイクロプロセッサが印刷回路基板で占める必要面積は、集積回路が別々にある場合よりも小さくなる。
【００１８】
図７は、代替的なプログラマブルゲートアレイ５０の説明図を示す。プログラマブルゲートアレイ５０は、プログラム可能ロジック構造１２、プログラム可能入力／出力ブロック１４、第１の固定論理回路３２、第１の相互接続ロジック３４、第２の固定論理回路５２および第２の相互接続ロジック５４を含む。ここに例示する図では、相互接続ロジック３４および固定論理回路３２は、図６を参照して説明したのとほぼ同様である。
【００１９】
第２の固定論理回路５２は、デジタル信号プロセッサ、マイクロプロセッサ、物理層インターフェイス、リンク層インターフェイス、ネットワーク層インターフェイス、音声プロセッサ、映像グラフィックプロセッサ、論理回路および／または特定用途向け集積回路など任意の論理機能を含み得る。第２の固定論理回路５２は複数の入力／出力ポート５６，５８，６０，６２を含み、こうしてこれを第２の相互接続ロジック５４とインターフェイスできる。第２の相互接続ロジック５４は、第２の固定論理回路５２とプログラム可能ロジック構造１２との間で接続を行なう。
【００２０】
図８は、別のプログラマブルゲートアレイ７０の説明図を示す。プログラマブルゲートアレイ７０は、プログラム可能ロジック構造１２、プログラム可能入力／出力ブロック１４、および４つの固定論理回路３２，５２，７２，７６を含む。各々の固定論理回路の構造は図７に示す固定論理回路と同様である（なお、図面サイズの制約のため、各々の固定論理回路のＩ／Ｏは示さない）。各々の固定論理回路３２，５２，７２，７６はそれぞれ、対応する自身の相互接続ロジック３４，５４，７４，７８を有する。相互接続ロジック３４，５４，７４，７８は、プログラム可能ロジック構造１２へのそれぞれの固定論理回路の接続を行なう。
【００２１】
相互接続ロジック３４，５４，７４，７８の構造は、これが支援する固定論理回路の種類に依存することになる。たとえば、固定論理回路が単純な固定論理機能、たとえば状態機械、または特定の論理機能を行なうための組合せ論理回路であれば、相互接続ロジック３４，５４，７４および／または７８は相互接続タイルを含むことになる。相互接続タイルについては図９〜１１を参照してより詳細に説明する。しかし固定論理回路がもっと複雑なもの、たとえばデジタル信号プロセッサ、マイクロプロセッサ、物理層インターフェイス、リンク層インターフェイス、ネットワーク層インターフェイス、音声プロセッサ、映像グラフィックプロセッサ、ネットワークプロセッサ、および／または特定用途向け集積回路などであれば、相互接続ロジック３４，５４，７４および／または７８は、複数の相互接続タイルおよび（任意には）インターフェイスロジックを含み得る。インターフェイスロジックについては図９および図１０を参照してより詳細に説明する。
【００２２】
図９は、図６のプログラマブルゲートアレイ３０の一部のより詳細な説明図を示す。図９は図６のＰＧＡ３０を参照して示されるが、相互接続ロジック３４に関する概念は、図７の相互接続ロジック５４および図８の相互接続ロジック５４，７４，７８にも等しく適用可能である。当業者であれば理解するであろうように、プログラム可能ロジック構造内には、相互接続ロジックを用いて任意の数の固定論理回路を埋込むことが可能である。
【００２３】
図９に示すように、プログラム可能ロジック構造１２は、複数の構成可能ロジックブロック（ＣＬＢ）８０、複数のメモリブロック（ブロックＲＡＭ）９０、および複数の乗算器９２を含む。プログラム可能Ｉ／Ｏブロック部１４は複数の個々のＩ／Ｏブロック（ＩＯＢ）８６および複数のデジタルクロックマネージャ（ＤＣＭ）８４を含む。構成可能ロジックブロック８０、デジタルクロックマネージャ８４、入力／出力ブロック８６、ブロックＲＡＭ９０、および乗算器９２の動作は、ザイリンクス・インコーポレイテッドが設計および製造を行なうＸＣ４０００Ｅファミリーのフィールドプログラマブルゲートアレイ、バーテックスおよび／またはバーテックスＩＩフィールドプログラマブルゲートアレイで見られる対応の構成要素と同様に機能する。
【００２４】
ここに示すように、構成可能ロジックブロック８０、ブロックＲＡＭ９０および乗算器９２は、一連の行および列に配置される。プログラム可能ロジック構造１２の構成要素のいくつかは固定論理回路３２で置換えられており、同時にこれはプログラム可能ロジック構造のその他の構成要素と統合することができる。プログラム可能ロジック構造のいくらかが置換えられているため、ＦＰＧＡの標準的な動作は中断されることになる。この中断は、複数の構成可能ロジックブロック８０、ブロックＲＡＭ９０および乗算器９２間の接続が不連続であることの結果として生じる。この発明の一局面は、固定論理回路３２をプログラム可能ロジック構造１２内へ、接続を不連続にせずに完全に統合することを可能にするアーキテクチャである。
【００２５】
ＦＰＧＡ３０では、各々のＣＬＢ８０、ＩＯＢ８６、ブロックＲＡＭ９０、および乗算器９２は、複数のプログラム可能スイッチマトリクスのうち少なくとも１つと関連付けられる。この複数のプログラム可能スイッチマトリクスによって、プログラム可能ロジック構造全体にわたって選択的な接続を行なう。
【００２６】
固定論理回路３２および相互接続ロジック３４を挿入することで、プログラム可能ロジック構造の接続パターンが中断される。この発明では、複数の相互接続タイル９６を用いて、（ａ）インターフェイスロジック９４を含める場合にはこれおよび固定論理回路３２と、（ｂ）プログラム可能ロジック構造１２の複数のＣＬＢ８０、ブロックＲＡＭ９０および／または乗算器９２との間で、プログラム可能な接続を行なう。相互接続タイル９６については図１１を参照してより詳細に説明する。
【００２７】
インターフェイスロジック９４は、固定ロジック３２と、プログラム可能ロジック構造１２のＣＬＢ８０、ブロックＲＡＭ９０および／または乗算器９２との間の信号転送を条件付ける。このような条件付けは、固定論理回路３２の機能に依存する。たとえば、固定論理回路３２がアナログ領域において映像信号および／または音声信号を処理する場合、インターフェイスロジック９４はアナログ・デジタル変換器およびデジタル・アナログ変換器を含むことがあり得る。固定論理回路３２がマイクロプロセッサの場合、インターフェイスロジックはＦＰＧＡとマイクロプロセッサとをインターフェイスするための信号（たとえばアドレスバス、データバスおよび／またはマイクロプロセッサの制御信号、ならびにさまざまな動作モードについてのＦＰＧＡ制御信号、たとえば電源投入および構成）を生成および条件付ける。インターフェイスロジック９４は、埋込み固定論理回路およびこれを取囲むプログラム可能ロジック構造をテストするためのテスト回路を含むこともある。加えて、マイクロプロセッサのハードの周辺部もまたインターフェイスロジックに含めることができる。
【００２８】
図１０Ａは、固定論理回路の一例としてマイクロプロセッサ１００をＦＰＧＡ３０内に埋込んだ場合の概略的なブロック図を示す。なお、この発明はあらゆる設計のプロセッサに対して適用可能であり、特定の種類のプロセッサに限定されない。当業者であれば理解するであろうように、マイクロプロセッサ１００の物理的設計はさまざまな幾何学的構成を有し得る。マイクロプロセッサ１００は、インターフェイスロジック９４および複数の相互接続タイル９６を含む相互接続ロジック３４（図９に示す）によって取囲まれる。マイクロプロセッサ１００はメモリコントローラ（図示せず）を通じてブロックＲＡＭ９０と接続され得る。マイクロプロセッサ１００がブロックＲＡＭ９０と直接接続されることもある。マイクロプロセッサ１００とブロックＲＡＭ９０との結合を設けることで、ブロックＲＡＭ９０はマイクロプロセッサ１００とプログラム可能ロジック構造１２とによって共有され得る。このような直接の共有によって、マイクロプロセッサにＲＡＭ９０へのアクセスを与えるようにプログラム可能ロジック構造をプログラムする必要がなくなる。
【００２９】
インターフェイスロジック９４は、１つ以上のブロックになったロジックゲートを含み得る。これらブロックはあらゆる論理機能を実行するように設計可能であり、マイクロプロセッサ１００、ブロックＲＡＭ９０および相互接続タイル９６と任意の態様で通信できる。図１０Ａでは、そのような論理機能のブロック（１１４）を１つだけ示す。インターフェイスロジック９４はまた、１つ以上のブロックになった構成可能ロジックゲートを含み得る。このブロックはあらゆる論理機能を実行するように構成可能であり、マイクロプロセッサ１００、ブロックＲＡＭ９０および相互接続タイル９６と任意の態様で通信できる。図１０Ａでは、そのような構成可能論理機能のブロック（１１６）を１つだけ示す。インターフェイスロジック９４はさらにテストモジュール１０３を含むことができ、これはマイクロプロセッサ１００、相互接続タイル９６、および／またはインターフェイスロジック９４のさまざまな部分についての製造時テストを制御する。図１０Ａでは、図を簡単にするためにテストモジュール１０３を孤立したブロックとして示すが、実際にはこれは上述の構成要素のいくつかまたはすべてと接続されることになる。制御モジュール１０５は、マイクロプロセッサ１００、および、インターフェイスロジック９４のさまざまな構成要素の動作を制御するのに使用され得る。インターフェイスロジック９４はまた、マイクロプロセッサ１００およびインターフェイスロジック９４内の他の構成要素のためのさまざまなタイミング信号を生成するタイミングモジュール１０７を含み得る。タイミングモジュール１０７はクロック生成回路（たとえば発振器）を含み得るが、またはプログラム可能ロジック構造のクロック信号のいくつかを使用することもある。図１０Ａでは、制御モジュール１０５およびタイミングモジュール１０７を孤立したブロックとして示すが、これらは実際には上述の構成要素のいくつかまたはすべてと接続される。加えて、他の機能を行なうモジュールを含めることもできる。
【００３０】
マイクロプロセッサ１００はインターフェイスタイル９６（図９に示すＣＬＢ９８とプログラム可能に接続される）と直接通信することがある。マイクロプロセッサ１００はまた、ロジックゲート１１４のブロックおよびプログラム可能ロジックゲート１１６のブロックを通じてインターフェイスタイル９６と通信することもある。図１０Ａに示す接続は単方向および／または双方向であり得る。
【００３１】
ブロックＲＡＭ９０は、マイクロプロセッサ１００のための実行可能命令コードの少なくとも一部を記憶できる。加えて、このようなメモリはマイクロプロセッサ１００が処理することになるデータと、マイクロプロセッサ１００が既に処理したデータとを記憶できる。メモリはマイクロプロセッサ１００とプログラム可能ロジック構造１２とで共有されるため、プログラム可能ロジック構造１２のうち構成が行なわれる部分は、処理されることになるデータおよび／または既に処理されたデータを検索し、このデータに基づいて或る機能を実行することができる。
【００３２】
なお、ブロックＲＡＭ９０はマイクロプロセッサ１００に対してどの位置（上、下、左または右）にあってもよい。
【００３３】
インターフェイスロジックの特定の実現例を図１０Ｂに示す。９００を上回る入力／出力接続を含み得るマイクロプロセッサ１００に信号を効率的に入力および出力するために、インターフェイスロジック９４は複数のマルチプレクサ１１８，１２８，１３２，１３６，１４２，１４６，１５０および／または複数のデマルチプレクサ１２０，１３０，１３４，１３８，１４０，１４４，１４８を含む。マルチプレクサ１１８，１２８，１３２，１３６，１４２，１４６，１５０は、単一の経路を介して２つ以上の信号を伝送する、並列データを直列化する、および／または多数の入力信号のうち１つを選択するように機能する。デマルチプレクサ１２０，１３０，１３４，１３８，１４０，１４４，１４８は、１つの経路上の多数の信号を多数の経路上の別々の信号に分離する、または直列データを並列データに変換するように機能する。なお、マルチプレクサ／デマルチプレクサの入力および出力は多数の信号幅を有し得る（すなわちマルチプレクサの出力は２つ以上の信号を有することがあり、デマルチプレクサの入力は２つ以上の信号を有することがある）。
【００３４】
ここに示すように、デマルチプレクサ１３４はメモリ１０８からのデータおよび／または命令の読出を容易にする。メモリ１０８は単一または複数ポートのメモリであり得る。たとえばデマルチプレクサ１３４は、メモリ１０８から直列データストリームを受取り、これを並列にしてマイクロプロセッサ１００のアドレスバスインターフェイス、データバスインターフェイスおよび／または命令バスインターフェイスに与える。マルチプレクサ１３２はメモリ１０８へのデータの書込を容易にする。この例では、マルチプレクサ１３２はマイクロプロセッサ１００から並列データを受取り、この並列データを直列データに変換してメモリ１０８で記憶されるようにする。当業者であれば理解するであろうように、マイクロプロセッサ１００はまた、マルチプレクサ１３２およびデマルチプレクサ１３４なしに、またはこれらと組合わせて、メモリ１０８への１つ以上の直接の接続を有することもある。さらに当業者であれば理解するであろうように、マイクロプロセッサ１００においては、これをメモリ１０８に結合するマルチプレクサおよびデマルチプレクサがより多数または少数であることもある。
【００３５】
マルチプレクサ１２８によって、マイクロプロセッサ１００の左側のＢＲＡＭ９０からの多数の信号を多重化して、メモリ１０８への単一のデータストリームにすることが可能となる。こうしてＢＲＡＭ９０からのデータおよび／または命令をマイクロプロセッサ１００に届けることができる。デマルチプレクサ１３０によって、メモリ１０８からの単一
のデータストリームをデマルチプレクスして、複数の別々の信号にすることが可能となり、これら信号はＢＲＡＭ９０に結び付けられる。こうしてマイクロプロセッサ１００はメモリ１０８を介してデータをＢＲＡＭ９０に書込むことができる。当業者であれば理解するであろうように、マルチプレクサ１２８はマイクロプロセッサ１００への直接の結合を含むこともあり、その場合はＢＲＡＭ９０から検索されるデータをメモリ１０８に中間的に記憶させる必要はない。さらに当業者であれば理解するであろうように、デマルチプレクサ１３０はマイクロプロセッサ１００と直接結合されることもあり、その場合にはデータを直接ＢＲＡＭ９０に書込むことができる。当業者であればやはり理解するであろうように、マイクロプロセッサ１００はＢＲＡＭ９０への直接の接続を有することも、またはメモリコントローラを介した接続を有することもある。
【００３６】
なお、マルチプレクサ１３２およびデマルチプレクサ１３４を用いずにメモリ１０８をマイクロプロセッサ１００に結合することもある。また、メモリ１０８はあらゆる幅（一般的にはマイクロプロセッサ１００の幅まで）を有し得る。さらに、メモリ１０８は命令、データまたは両方を組合わせたものを記憶するのに使用できる。
【００３７】
マルチプレクサ１２８，１３２およびデマルチプレクサ１３０，１３４がマイクロプロセッサ１００の左側のＢＲＡＭ９０およびメモリ１０８へのアクセスをマイクロプロセッサ１００に与えていたのと同様に、マルチプレクサ１３６，１４２およびデマルチプレクサ１３８，１４０は、右側のＢＲＡＭ９０およびメモリ１２２へのアクセスをマイクロプロセッサ１００に与える。当業者であれば理解するであろうように、相互接続ロジック９４が含むメモリは図示するメモリ（すなわちメモリ１０８およびメモリ１２２）よりも多数または少数であることもあり、このようなメモリはマイクロプロセッサを支援するよう任意のサイズであり得る。加えて、メモリ１０８，１２２は静的ＲＡＭ、動的ＲＡＭおよび／または消去プログラム可能読出専用メモリであり得る。
【００３８】
さらに図１０Ｂに示すように、マルチプレクサ１４６によって、マイクロプロセッサ１００と、マイクロプロセッサ１００の左側にある複数の相互接続タイル９６のうち１つとの直接の接続を行なう。マルチプレクサ１４６がこのように結合される場合、このマルチプレクサはマイクロプロセッサ１００の複数のピンから並列データおよび／または複数の信号を受取る。マルチプレクサ１４６の機能に依存して、これら複数の信号のうち１つを選択して相互接続タイル９６へ渡す、および／またはこれら複数の信号を単一の信号に多重化することが可能である。マルチプレクサ１５０は、マイクロプロセッサ１００とマイクロプロセッサの右側の相互接続タイル９６との間で同様の接続を行なう。当業者であれば理解するであろうように、相互接続ロジック９４は、マイクロプロセッサ１００のどちら側でも、マルチプレクサ１４６およびマルチプレクサ１５０のようなマルチプレクサをより多数または少数含み得るが、これはマイクロプロセッサ１００への所望の接続、マイクロプロセッサ１００の種類、および／またはマイクロプロセッサ１００のサイズに依存する。
【００３９】
デマルチプレクサ１４４によって、マイクロプロセッサ１００とマイクロプロセッサ１００の左側にある複数の相互接続タイル９６のうち１つとの直接の接続を行なう。デマルチプレクサ１４４がこのように結合される場合、このデマルチプレクサは、これら複数の相互接続タイル９６のうち少なくとも１つから直列データおよび／または複数の多重化信号を受取る。マルチプレクサ１４４の機能に依存して、複数の多重化信号を別々の経路の担う複数の信号に変換するか、または直列信号ストリームを並列信号に変換する。デマルチプレクサ１４８はマイクロプロセッサ１００とマイクロプロセッサの右側の相互接続タイル９６との間で同様の接続を行なう。当業者であれば理解するであろうように、相互接続ロジック９４は、デマルチプレクサ１４４およびデマルチプレクサ１４８のようなデマルチプレクサをより多数または少数含み得るが、これはマイクロプロセッサ１００への所
望の接続、マイクロプロセッサ１００の種類、および／またはマイクロプロセッサ１００のサイズに依存する。
【００４０】
インターフェイスロジック９４はさらに、マイクロプロセッサ１００と１つ以上の相互接続タイル９６との間の直接の接続を含み得る。このような直接の接続は、信号をマイクロプロセッサ１００に入力または信号をマイクロプロセッサ１００から出力するための単方向通信経路であり得る。また、このような直接の接続は、信号をマイクロプロセッサ１００に入出力するための双方向通信経路であることもある。このような直接の接続をマイクロプロセッサ１００の左下部分および右下部分に結合したものを示す。当業者であれば理解するであろうように、相互接続タイル９６とマイクロプロセッサ１００との間には、（マイクロプロセッサ１００の任意の側で）図１０Ｂに示すよりも多数または少数の直接の接続を設けることもできる。
【００４１】
インターフェイスロジック９４はさらにテストモジュール１０２を含み得る。テストモジュール１０２は、複数の相互接続タイル９６、およびインターフェイスロジック９４内の複数の回路と選択的に結合される（明瞭にするためにこのような接続は図示しない）。一般的に、テストモジュール１０２はマイクロプロセッサ、インターフェイスロジックおよび／またはこれを取囲むプログラム可能ロジック構造の製造時テストを制御する。
【００４２】
インターフェイスロジック９４はさらに制御モジュール１０４を含み得るが、これは複数のマルチプレクサ１１８，１２６およびデマルチプレクサ１２４，１２０と動作可能に結合される。マルチプレクサ１１８，１２６は、２つ以上の制御信号を単一の経路で伝送する、並列の制御データを直列化する、および／または多数の制御信号のうち１つを選択するように機能する。デマルチプレクサ１２０，１２４は、１つの経路上の多数の制御信号を複数の経路上の別々の制御信号に分離する、または直列制御信号を並列制御信号に変換するように機能する。マルチプレクサ１１８，１２６およびデマルチプレクサ１２０，１２４は、複数の相互接続タイル９６と動作可能に結合される。制御信号がこのように結び付けられる場合、制御モジュール１０４へのこれら信号の入力、または制御モジュール１０４からの出力を、相互接続タイル９６経由でプログラム可能ロジック構造および／またはＩＯＢ８６まで、および制御モジュール１０４とマイクロプロセッサ１００との間で行なうことができる。なお、制御モジュール１０４はマルチプレクサ／デマルチプレクサなしでマイクロプロセッサ１００と直接の接続を有することもある。
【００４３】
ここに例示する図では、制御モジュール１０４はマイクロプロセッサ１００と動作可能に結合され、これは本質的にマイクロプロセッサコアである。一般的には、制御モジュール１０４は、マイクロプロセッサ１００の動作を制御する制御信号を供給し、かつ関係する制御情報をマイクロプロセッサ１００から受取る。たとえば、制御モジュール１０４によって、中断、クロック、リセット、電力管理のための制御機能、命令キャッシュ制御、データキャッシュ制御、直接メモリアクセス（ＤＭＡ）制御、ＲＡＭメモリ制御、外部周辺バス制御、ＵＡＲＴ制御、および／または汎用Ｉ／Ｏ制御が可能となり得る。マイクロプロセッサについてのこのような制御機能は公知であるため、この発明の理解を促進する場合を除きこれ以上の議論は行なわない。
【００４４】
インターフェイスロジック９４はさらに、タイミング回路を含むタイミングモジュール１０６を含み得る。タイミング回路は、６４ビット時間ベースのタイマ、プログラム可能間隔タイマ、固定間隔タイマ、およびウォッチドッグタイマを生成するといった機能を実行できる。加えて、タイミングモジュールは構成可能ロジックゲート１１６および／またはロジックゲート１１４（図１０Ａに示す）にクロック信号を与えて、データをこれら回路の中へ、およびここからラッチすることができる。さらに、タイミングモジュール１０６はマルチプレクサ、デマルチプレクサおよび相互接続タイル９６の各々の中へ、および
ここからデータをラッチするタイミングを与えることができる。タイミングモジュール１０６はまた、相互接続タイル９６から入力（たとえばチック（tick）カウンタ）を得て、かつここに出力を送ることができる。マイクロプロセッサ１００とともに用いられるタイミング回路およびデバッグモジュールの機能は公知であるため、この発明の概念をさらに説明する場合を除きこれ以上の議論は行なわない。図１０Ａで述べたように、タイミングモジュールはインターフェイスロジック９４およびマイクロプロセッサ１００内のすべての構成要素と接続され得る。
【００４５】
さらに当業者であれば理解するであろうように、インターフェイスロジック９４は、この例ではマイクロプロセッサ１００である固定ロジックデバイス３２と、これを取囲み、ＣＬＢ８０、ブロックＲＡＭ９０および乗算器９２を含むプログラム可能ロジック構造１２との間の信号転送を条件付ける。こうしてインターフェイスロジック９４は、マイクロプロセッサの中へのおよび／またはここからの信号を多重化すること、入力信号および／または出力信号に対して論理機能を実行すること、信号を記憶すること、およびプログラム可能ロジック構造とマイクロプロセッサ１００との直接の結合を行なうことを含む、さまざまな論理機能を実行できる。加えて、インターフェイスロジック９４はテスト機能を含む。
【００４６】
さらに当業者であれば理解するであろうように、図１０Ｂのインターフェイスロジック９４を具体化している回路は、インターフェイスロジック９４を形成し得る回路のほとんど無数の組合せのうち１つを表わすものである。したがってインターフェイスロジック９４が含む回路は、図１０Ｂに示すよりも大きいことも小さいこともある。たとえばインターフェイスロジック９４はさらに、アナログ・デジタル変換器、デジタル・アナログ変換器、アナログフィルタ、デジタルフィルタ、算術論理演算装置、浮動小数点ユニット、中断コントローラ、メモリコントローラ、および／またはメモリ管理ブロックを含み得る。
【００４７】
さらに当業者であれば理解するであろうように、図１０Ｂは埋込み固定論理回路としてマイクロプロセッサ１００を例示しているが、インターフェイスロジック９４および複数の相互接続タイル９６についての同じ概念は任意の固定論理回路に適用される。たとえばマイクロプロセッサ１００の代わりに、デジタル信号プロセッサ、映像グラフィックプロセッサ、音声プロセッサ、ネットワークプロセッサ、物理層インターフェイス、リンク層インターフェイス、および／またはネットワーク層インターフェイスを用いてもよい。どの種類の固定論理回路を用いるかに依存して、インターフェイスロジック９４が含む回路は図１０Ｂに示すよりも大きいことも小さいこともあるが、その機能は同じである。すなわち、固定論理回路とプログラム可能ロジック構造との間の信号転送を条件付けることである。
【００４８】
図１１は、周りを取囲むプログラム可能ロジック構造と動作可能に結合するいくつかの相互接続タイル９６−１〜９６−６の概略的なブロック図を示す。周りを取囲むプログラム可能ロジック構造は、複数の構成可能ロジック要素（ＣＬＥ）８０−１〜８０−１３、および、対応するプログラム可能スイッチマトリクス１５４〜１８８を含む。プログラム可能スイッチマトリクス間の実線は、プログラム可能ロジック構造内の接続を行なうさまざまな相互接続ラインを表わす。図１１の破線は幾何学的形状を視覚化する助けとして与えたものである。この発明で使用され得るＦＰＧＡアーキテクチャの一例は、「階層型相互接続ラインによるＦＰＧＡ繰返し可能相互接続構造（FPGA Repeatable Interconnect Structure with Hierarchical Interconnect Lines）」と題された米国特許第５，９１４，６１６号に記載されている。
【００４９】
各々の相互接続タイルはプログラム可能スイッチマトリクスを含み、これは（ａ）プログラム可能ロジック構造内のプログラム可能スイッチマトリクス、（ｂ）終端タイル、お
よび（ｃ）隣接する相互接続タイル、とプログラム可能に接続される。図１１は、それぞれ相互接続タイル９６−１〜９６−６にある９６−１−ｓ〜９６−６−ｓと標示した６個のマトリクスを示す。たとえば、スイッチマトリクス９６−２−ｓは、プログラム可能ロジック構造内のスイッチマトリクス１５６、終端タイルＴ２、および隣接する相互接続タイル９６−１−ｓ，９６−３−ｓと接続される。同様に、スイッチマトリクス９６−５−ｓは、プログラム可能ロジック構造内のスイッチマトリクス１６８、終端タイルＴ４、および隣接する相互接続タイル９６−４−ｓ，９６−６−ｓと接続される。６個のプログラム可能スイッチマトリクス９６−１−ｓ〜９６−６−ｓの各々は、マイクロプロセッサ１００および／またはインターフェイスロジック９４内の構成要素に接続される複数の接続（それぞれライン１５１−１〜１５１−６として示す）を含む。
【００５０】
スイッチマトリクス９６−１−ｓ〜９６−６−ｓの構造は、プログラム可能ロジック構造内のスイッチマトリクスと実質的に同じである。
【００５１】
終端タイルの機能は、相互接続ラインを終結させ、かつ／または、マイクロプロセッサ１００および／もしくはインターフェイスロジック９４の構成要素により中断されたラインへの接続を行なうことである。一実施例（上述の米国特許第５，９１４，６１６号に記載のＦＰＧＡ）では、プログラム可能ロジック構造は単一ライン、１６進ラインおよび長ラインを含んでいる。終端タイルでは、単一ラインは他の単一ラインへとＵターンし、１６進ラインは再びバッファリングされてマイクロプロセッサ１００の向こう側へとまたがり、長ラインはマイクロプロセッサ１００をまたがる。
【００５２】
図１２は、代替的なプログラマブルゲートアレイ２３０の概略的なブロック図を示す。プログラマブルゲートアレイ２３０は、プログラム可能ロジック構造１２、プログラム可能入力／出力ブロック１４、固定処理モジュール２３４、第２の相互接続ロジック２３８、別の固定ロジックモジュール（たとえば高速データインターフェイス２３２）および第１の相互接続ロジック２３６を含む。第１の相互接続ロジック２３６および第２の相互接続ロジック２３８は、上述のようにインターフェイスロジックおよび相互接続タイルを含み得る。高速データインターフェイス２３２はネットワーク層インターフェイスたとえばＴＣＰ／ＩＰインターフェイス、物理層インターフェイスたとえばイーサネット（Ｒ）もしくは非同期転送モード（ＡＴＭ）インターフェイス、またはリンク層インターフェイスであり得る。固定処理モジュール２３４はデジタル信号プロセッサ、ネットワークプロセッサ、マイクロプロセッサ、および／またはマイクロコンピュータであり得るため、このプログラマブルゲートアレイによって、多種多様な電気通信、ネットワークおよび／または計算用途のための高速データインターフェイス、固定プロセッサおよびプログラマブルロジックが得られる。
【００５３】
図１３は、図１２のゲートアレイ２３０の変形例を示す。図１３では、ゲートアレイ２４０の高速データインターフェイス２３２は、プログラム可能入力／出力ブロック１４に隣接して位置付けされる。したがって、高速データインターフェイス２３２はプログラム可能入力／出力ブロック１４のうち少なくともいくつかと直接結合する。この構成では、第１の相互接続ロジック２３２は高速データインターフェイス２３２を部分的に取囲む。
【００５４】
図１４は、高速データインターフェイス２３２および固定処理モジュール２３４を含むプログラマブルゲートアレイ２５０のさらなる変形例を示す。この実施例では、高速データインターフェイスはプログラマブルゲートアレイの隅に位置付けられる。したがって高速データインターフェイス２３２は、プログラム可能入力／出力ブロック１４に対し２辺で直接のアクセスを有する。これに伴い第１の相互接続ロジック２３６は、高速データインターフェイスの２辺とインターフェイスする。
【００５５】
図１２〜１４から当業者には明らかであろうように、プログラマブルゲートアレイは、どのような数およびどのような種類の固定論理モジュールを有してもよく、これらモジュールは、さまざまな場所に位置付け可能であり、２辺、３辺または４辺の構成で互いに相互作用させることができる。以上の議論は、プログラム可能ロジック構造内に任意の固定論理回路を埋込むことを可能にするための相互接続ロジックを含むプログラマブルゲートアレイを提示している。こうして、このようなプログラマブルゲートアレイの用途および汎用性は、この発明を使用することで劇的に向上する。当業者であれば理解するであろうように、前掲の特許請求の範囲から逸脱することなくこの発明の教示から他の実施例を導き出すことが可能である。
【図面の簡単な説明】
【００５６】
【図１】先行技術のフィールドプログラマブルゲートアレイを概略的に示すブロック図である。
【図２】図１のプログラマブルゲートアレイのプログラム可能ロジック構造であって、対称型アレイ構成で実現したものを概略的に示すブロック図である。
【図３】図１のプログラマブルゲートアレイのプログラム可能ロジック構造であって、行ベースの構成で実現したものを概略的に示すブロック図である。
【図４】図１のプログラマブルゲートアレイのプログラム可能ロジック構造であって、列ベースの構成で実現したものを概略的に示すブロック図である。
【図５】図１のプログラマブルゲートアレイのプログラム可能ロジック構造であって、階層型プログラマブルロジックデバイス構成で実現したものを概略的に示すブロック図である。
【図６】この発明に従うプログラマブルゲートアレイの説明図である。
【図７】この発明に従う代替的なプログラマブルゲートアレイの説明図である。
【図８】この発明に従う別のプログラマブルゲートアレイの説明図である。
【図９】図３のプログラマブルゲートアレイのより詳細な説明図である。
【図１０Ａ】この発明に従うインターフェイスロジックおよび相互接続タイルを概略的に示すブロック図である。
【図１０Ｂ】この発明に従うインターフェイスロジックの一実施例および相互接続タイルを概略的に示すブロック図である。
【図１１】この発明に従うプログラム可能ロジック構造とインターフェイスする相互接続タイルを概略的に示すブロック図である。
【図１２】この発明に従うさらに別のプログラマブルゲートアレイの説明図である。
【図１３】図１２のプログラマブルゲートアレイの一変形例の説明図である。
【図１４】図１２のプログラマブルゲートアレイのさらなる変形例の説明図である。
【図１】
2005512359.tif 000003
【図２】
2005512359.tif 000004
【図３】
2005512359.tif 000005
【図４】
2005512359.tif 000006
【図５】
2005512359.tif 000007
【図６】
2005512359.tif 000008
【図７】
2005512359.tif 000009
【図８】
2005512359.tif 000010
【図９】
2005512359.tif 000011
【図１０Ａ】
2005512359.tif 000012
【図１０Ｂ】
2005512359.tif 000013
【図１１】
2005512359.tif 000014
【図１２】
2005512359.tif 000015
【図１３】
2005512359.tif 000016
【図１４】
2005512359.tif 000017
【国際調査報告】
2005512359.tif 000018
2005512359.tif 000019
2005512359.tif 000020