(57)【要約】フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）を含んだ装置において、ＦＰＧＡは、第１ＦＰＧＡタイルを備え、該第１ＦＰＧＡタイルは、それぞれが通常の入力信号を受け取るように構成され、論理演算を実行し、通常の出力信号を生成する、行と列とに配列された複数の機能グループ（ＦＧ）と、ＦＧに結合されて、通常の出力信号を受け取り、また第１ＦＰＧＡタイルないで信号の経路選択をし、また通常の入力信号をＦＧに与えるように構成された、通常の経路選択用構造部と、一つのＩＧが、各行と列の各端部に置かれ、またＩＧの各々が、通常の経路選択用構造部に結合され、また通常の経路選択用構造部から第１ＦＰＧＡタイルの外部へ信号を転送するように構成されるように、複数のＦＧの周囲に置かれた複数のインターフェイスグループとを含むことを特徴とする装置。
2004524715.tif 000002
【特許請求の範囲】
【請求項１】
フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）を含んだ装置において、前記ＦＰＧＡは、第１ＦＰＧＡタイルを備え、該第１ＦＰＧＡタイルは、
それぞれが通常の入力信号を受け取るように構成され、論理演算を実行し、通常の出力信号を生成する、行と列とに配列された複数の機能グループ（ＦＧ）と、
ＦＧに結合されて、通常の出力信号を受け取り、また第１ＦＰＧＡタイル内で信号の経路選択をし、また通常の入力信号をＦＧに与えるように構成された、通常の経路選択用構造部と、
一つのＩＧが、各行と列の各端部に置かれ、またＩＧの各々が、通常の経路選択用構造部に結合され、また通常の経路選択用構造部から第１ＦＰＧＡタイルの外部へ信号を転送するように構成されるように、複数のＦＧの周囲に置かれた複数のインターフェイスグループ（ＩＧ）と
を含むことを特徴とする装置。
【請求項２】
前記ＩＧの各々が、さらに、
通常の経路選択用構造部から受け取った信号を選択し、選択した信号をＦＰＧＡタイルの外部へ与えるように構成された複数の出力マルチプレクサを備えることを特徴とする請求項１記載の装置。
【請求項３】
前記ＩＧの各々が、さらに、
ＦＰＧＡタイルの外部から受け取った信号を選択し、選択した信号をＦＰＧＡタイルの内部にある通常の経路選択用構造部へ与えるように構成された複数の入力マルチプレクサを備えることを特徴とする請求項１記載の装置。
【請求項４】
さらに、複数の入出力パッド（Ｉ／Ｏ）を備え、入力マルチプレクサの各々は、Ｉ／Ｏの少なくとも一つに直接に結合されることを特徴とする請求項３記載の装置。
【請求項５】
前記ＦＰＧＡは、さらに、
複数のＦＧを含む第２ＦＰＧＡタイルと、通常の経路選択用構造部と、第１ＦＰＧＡタイルと実質的に同様の方法で配置された複数のＩＧとを備え、第１ＦＰＧＡタイルの少なくとも一つのＩＧが、第２ＦＰＧＡタイルの少なくとも一つのＩＧに結合されることを特徴とする請求項１記載の装置。
【請求項６】
前記ＦＰＧＡは、さらに、
複数のＦＧを含む第３ＦＰＧＡタイルと、通常の経路選択用構造部と、第１ＦＰＧＡタイルと実質的に同様の方法で配置された複数のＩＧとを備え、第１ＦＰＧＡタイルの少なくとも一つのＩＧは、第３ＦＰＧＡタイルの少なくとも一つのＩＧに結合されることを特徴とする請求項５記載の装置。
【請求項７】
前記装置は、さらに、システムオンチップ（ＳＯＣ）を備えることを特徴とする請求項１記載の装置。
【請求項８】
前記ＦＧの各々は、さらに、
通常の出力信号の一つを、ＦＧ第２経路選択信号として選択するように構成されたマルチプレクサを備えることを特徴とする請求項１記載の装置。
【請求項９】
前記第１ＦＰＧＡタイルは、さらに、
通常の経路選択用構造部から独立して、ＦＧ第２経路選択信号を第１ＦＰＧＡタイルの周囲で選択し、かつ経路選択するように構成される、第２経路選択用構造部を備えることを特徴とする請求項８記載の装置。
【請求項１０】
前記ＩＧの各々は、さらに、
ＦＰＧＡタイルの外部から受け取った信号をＩＧ第２経路選択信号として選択するように構成されたマルチプレクサを備え、第２経路選択用構造部は、ＩＧ第２経路選択信号を第１ＦＰＧＡタイルの周囲で選択し、かつ経路選択することを特徴とする請求項９記載の装置。
【請求項１１】
前記第２経路選択用構造部は、さらに、
各ＦＧの第２経路選択入力に結合される第２経路選択バスを備えることを特徴とする請求項９記載の装置。
【請求項１２】
前記第２経路選択用構造部は、さらに、
ＦＧの各行に対応した異なる第１バスを持ち、各ＦＧからのＦＧ第２経路選択信号を受け取るように結合された複数の第１バスと、
各第１バスに結合されて、そこからの信号を選択する少なくとも一つの第２マルチプレクサを持った複数の第２マルチプレクサと、
各第２マルチプレクサに結合されて、第２経路選択バスに結合される出力を持つ、異なるバッファを持った複数のバッファと
を備えることを特徴とする請求項１１記載の装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フィールド・プログラマブル・ゲート・アレイ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ ｇａｔｅ ａｒｒａｙ）に関し、特に、タイル敷き詰め可能なフィールド・プログラマブル・ゲート・アレイのアーキテクチャに関する。
【０００２】
【従来の技術および発明が解決しようとする課題】
フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）は、セル或いは論理ブロックと呼ばれる２次元配列の汎用の論理回路を含んだ集積回路であり、その機能はプログラム可能なものである。それらのセルは、プログラム可能なバスによって互いに接続される。セルの種類は、いくつかの変数のブール関数を全て実現できる小さな多機能回路（或いは構成可能な機能的ブロック或いは機能的ブロック）で良い。セルの種類は、ゲートに限定されるものでは無い。例えば、構成可能な機能的グループには、通常、メモリセルと接続トランジスタとが含まれ、それらは、加算、減算等の論理関数をＦＰＧＡの内部で構成するのに使用することができる。一つのセルは、また、一つ或いは２つのフリップフロップを含むことができる。ＦＰＧＡの中に見出される論理セルの種類は、マルチプレクサを基にしたものと、プログラム可能な読み出し専用メモリ（ＰＲＯＭ）のテーブル参照メモリに基づくものとがある。消去可能なＦＰＧＡは、何回も再プログラム可能である。この技術は、新製品や少数の製造に対して試作品の設計を開発したりデバッグしたりするときに、特に便利である。
【０００３】
ＦＰＧＡは、通常、ひな形を含んでおり、その中には、回路の配列や、未使用の経路選択用内部接続のセットや、回路と経路選択用内部接続の両方に関連するユーザーがプログラム可能なスイッチのセットが含まれる。これらのスイッチが、正しくプログラムされるとき（オン状態あるいはオフ状態に設定されるとき）、ＦＰＧＡのひな型あるいは下部の回路と内部接続が、特定の固有の機能を実行するべく固有化されるか構成される。これらのスイッチのオン−オフ状態を再プログラムすることによって、ＦＰＧＡは、多くの異なる機能を実行することができる。一旦、ＦＰＧＡの特定の構成が決定されると、その一つの特定の機能を実行するように構成することができる。
【０００４】
ＦＰＧＡの中のユーザーがプログラム可能なスイッチは、様々な技術によって実現することができ、その中には、ＯＮＯアンチヒューズ（ａｎｔｉｆｕｓｅ）と、Ｍ−Ｍアンチヒューズと、ＳＲＡＭメモリセルと、フラッシュＥＰＲＯＭメモリセルと、ＥＥＰＲＯＭメモリセルとがある。ヒューズやアンチヒューズをスイッチとして使用するＦＰＧＡは、一度だけプログラム可能である。ＦＰＧＡをメモリセルが制御するスイッチで実現するものは、繰り返して再プログラム可能である。このやり方では、ＮＭＯＳトランジスタは、通常、回路の２つの選択された点（Ａ，Ｂ）を接続するか切るスイッチに使用される。ＮＭＯＳのソースとドレインのノードは、それぞれ点ＡとＢに接続され、ゲートは、メモリセルに直接或いは間接に接続される。メモリセルの状態を論理“１”あるいは“０”のいずれかに設定することによって、スイッチは、オンあるいはオフすることができ、点ＡとＢは、接続するか切ることができる。こうして、これらのスイッチをプログラムする能力が、非常に柔軟な素子に対して備わる。
【０００５】
ＦＰＧＡは、ＦＰＧＡチップ上のＲＡＭあるいはＰＲＯＭ内で実現する回路を決定するプログラムを蓄えることができる。この構成メモリＣＭ内のデータのパターンは、セルの機能と、内部接続の配線を決定する。ＣＭの各ビットは、いくつかのセル機能を選択するかいくつかの接続をしたり（切ったり）することのできる対象の回路内のトランジスタスイッチを制御する。ＣＭの内容を置き換えることによって、設計者は、設計変更をしたり設計誤りを直したりすることができる。ＣＭは、外部ソースからダウンロードするか、チップ上に記憶されている。ＦＰＧＡの種類は、繰り返して再プログラムすることができ、これによって開発と製造の費用を著しく減らすことができる。
【０００６】
概して、ＦＰＧＡは、プログラム可能な論理素子（ＰＬＤ）の一種である、すなわち、いかなる希望の組合せ機能或いは順序機能をも実現するように、内部接続を構成或いは“プログラムする”ことが可能な、多くのゲート或いは汎用セルを備えた素子である。その名前から分かるように、ＦＰＧＡは、“フィールド・プログラマブル”であり、この素子が一般に設計者またはエンドユーザによって、小さな低価格のプログラムユニットを使って“フィールドで（現場で）”プログラムされることを意味している。これは、ＩＣチップの製造プロセスに特別な段階を必要とする、マスクプログラム可能な素子と対称的である。
【０００７】
フィールド・プログラミングのユニットは、通常、ＦＰＧＡをプログラムするのに設計ソフトウェアを使用する。この設計ソフトウェアは、特定のユーザー設計、すなわち、エンドユーザによってプログラム可能なスイッチの特定の構成をＦＰＧＡ構成データへとコンパイルする。設計ソフトウェアは、構成データをビットストリームすなわち１と０とのストリームへとアセンブルし、これがＦＰＧＡの中に与えられてプログラム可能なスイッチ用の構成メモリをプログラムするのに使用される。このビットストリームは、各メモリセルが“１”あるいは“０”を記憶しているかどうかを決定する、構成メモリＣＭの中にデータのパターンを作る。各ＣＭの中に記憶されたビットは、その関連するトランジスタスイッチがオンあるいはオフするのを制御する。通常、エンドユーザは、設計ソフトウェアを使用して、異なる設計を試験し、ＦＰＧＡのシミュレーションを実行する。
【０００８】
ある特定の機能を実行するようにプログラムされたＦＰＧＡが、同じ特定の機能を実行するように設計されまた製造された特定用途向け集積回路（ＡＳＩＣ）と比較される時、ＦＰＧＡは、必然的にＡＳＩＣよりも大きさ素子となるだろう。これは、ＦＰＧＡが、多くの異なる機能を実現することのできる柔軟な素子であり、また、アルゴリズム特定の機能を実行する時に使用されなかったり、配線された接続で置き換えられたりされるかも知れない位の大量の余分の回路を含んでいるためである。そのような余分の回路には、通常、多くのプログラム可能なトランジスタスイッチと、それに対応して或る特定の機能を実現するのに使用されるメモリセルと、機能グループ内部のメモリセルと、ＦＰＧＡプログラム回路とが含まれる。この余分の回路は、ＡＳＩＣを小さな素子にする、ＡＳＩＣの設計では、通常、排除される。他方で、ＡＳＩＣは、柔軟性のある素子ではない。言い換えると、一度ＡＳＩＣが設計されて製造されると、ＦＰＧＡでは可能な、別の機能を実現するために再構成することはできない。
【０００９】
ＦＰＧＡの設計者は（他のＰＬＤと同様に）、自分の回路設計を、通常ＦＰＧＡを二つの異なる方法で製造するＩＣ製造者にしばしば与える。最初に、ＦＰＧＡ設計は、ＩＣパッケージに含まれる他の素子とは別に、自身のチップとして製造されるだろう。第２に、ＦＰＧＡ設計は、より大きなＩＣに埋め込まれるだろう。そのような大きなＩＣの一例は、いくつかの他の部品と同様に埋め込まれたＦＰＧＡを含んだチップ上システム（ＳＯＣ）である。いくつかの他の部品には、例えば、マイクロプロセッサやメモリや論理演算ユニット（ＡＬＵ）やステートマシーン等が含まれる。この２番目のやり方では、埋め込まれたＦＰＧＡは、全体のＳＯＣの小部分に過ぎないであろう。
【００１０】
ＦＰＧＡが自身のＩＣとして製造されるか、より大きなＩＣの中に埋め込まれるかのどちらにせよ、目標とするＩＣの応用分野／使用法によって、必要なＦＰＧＡの大きさと複雑さとが決定される。いくつかの場合には、大きなＦＰＧＡが必要となり、他の場合には、小さなＦＰＧＡが必要となる。従来のＦＰＧＡが通常目標とする応用分野／使用法によって設計されるために、小さなＦＰＧＡに対する要求を満たすのに設計されるＦＰＧＡは、より大きなＦＰＧＡが必要となる使用に対しては、実質的に、再設計されなくてはならない。従って、大きなＦＰＧＡを必要とするＩＣと小さなＦＰＧＡを必要とするＩＣの両方に使うように容易に適合させられるＦＰＧＡの装置と方法とがあれば、非常に有利であろう。さらに、そのようなＦＰＧＡ装置と方法を、ＦＰＧＡが自身のＩＣとして製造される場合と、ＦＰＧＡが大きなＩＣに埋め込まれる場合の両方で使用できるならば、非常に有利であろう。
【００１１】
【課題を解決するための手段】
本発明は、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）を含む装置を提供する。ＦＰＧＡには、第１ＦＰＧＡタイルが含まれ、この第１ＦＰＧＡタイルには、複数の機能グループ（ＦＧ）と、通常の経路選択構造部（ｒｏｕｔｉｎｇ ｓｔｒｕｃｔｕｒｅ）と、複数のインターフェイスグループ（ＩＧ）とが含まれる。複数のＦＧは、行と列とから配列され、ＦＧの各々は、通常の入力信号を受け取り、論理処理を実行し、通常の出力信号を出力するように構成される。通常の経路選択構造部は、ＦＧと結合され、通常の出力信号を受け取り、第１ＦＰＧＡタイル内に信号の経路選択を行い、通常の入力信号をＦＧに与えるように構成される。複数のＩＧは、複数のＦＧを囲んで、一つのＩＧが各行と列の端部に位置するようになる。各ＩＧは、通常の経路選択構造部に結合されて、通常の経路選択構造部からの信号を第１ＦＰＧＡタイルへと転送するように構成される。
【００１２】
以下の本発明の詳細な説明と添付する図面とで、本発明が利用される原理における実施例を説明しているが、これを参考にすることによって、より良く本願の特徴と利点とを理解することができるだろう。
【００１３】
【発明の実施の形態】
図１を参照すると、本発明によるフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）タイル２０が図示されている。ＦＰＧＡタイル２０によって、従来のＦＰＧＡの欠点の多くが解決され、そこでは、大きなＦＰＧＡを必要とする集積回路（ＩＣ）と小さなＦＰＧＡを必要とするＩＣの両方での使用に対して容易に適合できる。さらに、ＦＰＧＡタイル２０は、ＦＰＧＡが自身のＩＣとして製造される場合と、ＦＰＧＡが大きなＩＣの中に埋め込まれるような場合（例えば、チップ上のシステム（ＳＯＣ））に使用することができる。
【００１４】
ＦＰＧＡタイル２０が柔軟かつ適合性のあるものとなっている一つの特徴は、“タイル敷き詰め可能（ｔｉｌｅａｂｌｅ）”であることである。ここで、使用されている用語“タイル敷き詰め可能”とは、ＦＰＧＡタイル２０が、大きなＦＰＧＡを作るために他のＦＰＧＡタイルと結合することができるという意味である。例えば、図２は、２つのＦＰＧＡタイル２０を結合して作られるＦＰＧＡ２２を図示している。２つのＦＰＧＡタイル２０は、一緒に動作して、互いに連絡して、大きなＦＰＧＡ２２を形成する。いかなる数のＦＰＧＡ２０も、本発明に従って結合して、大きなＦＰＧＡを形成することができることを理解されたい。例えば、図３Ａは、４つのＦＰＧＡタイル２０を結合して作られるＦＰＧＡ２４を図示している。
【００１５】
本発明によって、ＦＰＧＡタイル２０は結合されて、自身のＩＣとして製造されるか、大きなＩＣの中に埋め込まれるべき大きなＦＰＧＡを形成するために結合することができる。例えば、後者の場合に関して、ＦＰＧＡ２２，２４は、ＳＯＣに埋め込むことができる。図３Ｂは、中に埋め込まれたＦＰＧＡ２４を持ったＳＯＣ２５を示している。ＳＯＣ２５には、いくつかの他の部品が含まれる。他の部品には、例えば、読み出し専用メモリ（ＲＯＭ）２７とランダムアクセスメモリ（ＲＡＭ）２９とマイクロプロセッサ３１と他の部品３３が含まれる。特定の種類の他の部品と、ＳＯＣ２５上に含まれる他の部品の数は、特定の応用分野によって大きく変わるであろうことを理解されたい。前の場合、図４は、自身のＩＣとして製造されたＦＰＧＡ２６を図示している。特に、ＦＰＧＡ２６には、４つのＦＰＧＡタイル２０と４つのパッドリング２８，３０，３２，３４が含まれる。パッドリング２８，３０，３２，３４は、ＦＰＧＡタイル２０をＦＰＧＡ２６のＩＣパッケージピンへ結合するのに使われる。
【００１６】
また、図４には、全域信号経路選択構造部（ｇｌｏｂａｌ ｓｉｇｎａｌ ｒｏｕｔｉｎｇ ｓｔｒｕｃｔｕｒｅ）３６が図示される。全域信号経路選択構造部３６は、以下により詳細に説明するが、一般的に、ＦＰＧＡタイル２０間のタイル間全域信号を経路選択するのに使用される。全域信号経路選択構造部３６は、例えばＦＰＧＡ２２，２４を含む、本発明によるＦＰＧＡタイル２０のいかなる組合せにも含まれることを理解されたい。さらに、全域信号経路選択構造部３６は、結合されたＦＰＧＡタイル２０が自身のＩＣとして製造されても、大きなＩＣの中に埋め込まれても使用することができる。
【００１７】
結合されるＦＰＧＡタイルは、本発明に従って、同じであって（ＦＰＧＡ２２，２４，２６の中のタイルのように）も、異なる大きさと設計であっても良い。同じＦＰＧＡタイルを用いる利点は、目標とする使用法／応用分野に適切な大きさを持ったＦＰＧＡを提供するための経済的な解決法を提供するということである。そのような解決法は、ただ一つのＦＰＧＡタイルを設計するだけで良く、また、必要とするタイル数が結合された一つのＦＰＧＡを形成するために経済的である。加えて、“ＦＰＧＡタイル”は、ここでは、一つのＦＰＧＡと考えられることを理解されたい。言い換えると、一つのＦＰＧＡタイル２０は、それ自身で使用して一つのＦＰＧＡを形成することができる。
【００１８】
図５を参照すると、ＦＰＧＡタイル２０の内部部品のいくつかが図示されている。特にＦＰＧＡタイル２０には、いくつかのインターフェイスグループ（ＩＧ）４２に囲まれた、いくつかの機能グループ（ＦＧ）４０が含まれる。ＦＧ４０は、多くの或いは全てのブール関数を実現することのできる小さな多機能回路である。ＦＧ４０には、加算や減算等の論理関数を構成するのに使用するメモリセルに加えて、参照テーブル（ＬＵＴ）と、ブール関数を実現することのできる他の回路とが含まれる。ＩＧ４２は、ＦＰＧＡタイル２０と他のＦＰＧＡタイル或いは他の素子とのインターフェイス、もしくは、ＦＰＧＡタイル２０をＩＣパッケージピンへ接続するためのパッドリングとのインターフェイスに使用される。一般的に、ＦＰＧＡタイル２０の論理構造が、ＦＧ４０とＩＧ４２によって提供される。また、ＦＰＧＡタイル２０に含まれるが、図５に示されないものに、いくつかの水平及び垂直の通常の経路選択バスと、経路選択内部接続領域と、スイッチングトランジスタと、全域信号配付部とがあり、これらは全て以下に説明される。
【００１９】
図６を参照すると、ＦＧ４０の一例には、通常の経路選択信号４４と、タイル内全域信号４６と、タイル間全域信号４８とが含まれる。通常の経路選択信号４４には、通常の入力信号ＥＵＩ［０：４］（上位入力）とＥＢＩ［０：４］（下位入力）とが含まれる。これらの信号は、基本的な入力であり、それに対して、ブール関数とＦＧ４０の論理動作が実行される。通常の経路選択信号４４には、また、通常の出力信号Ｙ［０：４］が含まれる。これらの信号は、基本的な出力であり、ブール関数とＦＧ４０の論理動作の結果を運ぶ。通常の経路選択信号４４は、ＦＰＧＡタイル２０の内部で、水平及び垂直の通常の経路選択バスと経路選択用内部接続領域上を運ばれる。もし、通常の経路選択信号４４のいずれかが異なるＦＰＧＡタイルへと送られるならば、それらはＩＧ４２を通過する。
【００２０】
タイル内全域信号４６には、入力信号ＬＧＧ［０：５］と出力信号ＬＩＮＴとが含まれる。ＬＩＮＴ信号は、第２経路選択資源である。特に、ある状況では、通常の経路選択出力信号Ｙ［０：４］は、目標のＦＧ４０には送ることができない、というのは、通常の経路選択バスと経路選択用内部接続領域は、必要な接続を提供しないからである。あるいは、他の状況では、システムの中央処理ユニット（ＣＰＵ）の時間を使って、信号を通常の経路選択バスと経路選択用内部接続領域を通して送るのは望ましくない。これらの状況では、通常の経路選択出力信号Ｙ［０：４］の内の必要なものは、ＬＩＮＴ信号として選択することができる。ＬＩＮＴ信号は、通常の経路選択出力信号Ｙ［０：４］を経路選択するのに使用される通常の経路選択用バスと経路選択用内部接続領域とから分離した経路選択構造部によって、ＦＰＧＡタイル２０の周囲に経路が決められる。従って、ＬＩＮＴ信号は通常の経路選択用バスと経路選択用内部接続領域が必要な接続をするかどうかに係わらず、ＦＧ４０もしくはＩＧ４２へ送ることができる。ＬＩＮＴ信号は、ＬＩＮＴ信号の経路選択構造部の一部である入力信号ＬＧＧ［０：５］上のＦＧ４０によって受け取られる。その名前から分かるように、タイル内全域信号４６は、ＦＰＧＡタイル２０の境界内で経路選択され、また、ＦＰＧＡタイル間で経路選択されないのが好ましい。タイル内全域信号４６とＬＩＮＴ信号の生成及び使用とは、以下に詳細に説明される。
【００２１】
タイル内全域信号４８には、入力信号［０：７］が含まれる。これらの信号は、全てのＦＰＧＡタイル内のあらゆるＦＧ４０に送られる。以下に説明するが、入力信号ＧＧ［０：７］の内の選択された一つは、各ＦＧ４０に含まれるフリップフロップのクロック／イネーブル／プリセット／クリア（Ｃ／Ｅ／Ｐ／Ｃ）入力を制御するのに使用される。
各ＦＧ４０は、またＣＬ入力とＣＯ出力とを含む。これらの信号の目的は、論理資源をより速く利用するためにキャリー・チェーンを実行することにある。
【００２２】
図７を参照すると、各ＦＧ４０は、４つの論理ユニット（ＬＵ）５０，５２，５４，５６を含むのが望ましい。ＬＵ５０，５２，５４，５６は、ＦＧ４０のブール関数と論理演算を提供する。ＬＵ５０，５２，５４，５６の各々には、それによってブール関数と論理演算とが実行されるいくつかの入力が含まれる。示されているように、ＬＵ５０，５２，５４，５６の各々には、２０個ほどの入力が含まれるが、入力の数は、本発明に従って変動することを理解されたい。特に、ＬＵ５０，５２，５４，５６の各々は、上述した通常の入力信号ＥＵＩ［０：４］とＥＢＩ［０：４］に対応する入力信号ＵＩ［０：４］とＢＩ［０：４］を受け取る。さらに、ＬＵ５０，５２，５４，５６の各々は、入力信号ＧＩ［０：１］を受け取る。入力信号［０：１］は、入力信号ＬＧＧ［０：５］の内の二つを選択するＬＧＧ選択回路５８によって生成される。上記したように、入力信号ＬＧＧ［０：５］は、ＬＩＮＴ信号の内の選択された一つを運ぶ。最後に、ＬＵ５０，５２，５４，５６の各々は、入力信号ＪＩ［０：７］を受け取る。入力信号ＪＩ［０：７］には、ＬＵ５０，５２，５４，５６の各々からの２つの出力信号が含まれる。こうして、ＬＵ５０，５２，５４，５６の各々の２つの出力信号は、ＪＩ［０：７］を経由して、入力にフィードバックされる。
【００２３】
ＬＵ５０，５２，５４，５６の各々は、また、クロック／イネーブル／プリセット／クリア（Ｃ／Ｅ／Ｐ／Ｃ）入力を持っている。この入力は、ＬＵ５０，５２，５４，５６の各々の内部に含まれるフリップフロップを制御するのに使用される。Ｃ／Ｅ／Ｐ／Ｃ入力は、Ｃ／Ｅ／Ｐ／Ｃ選択回路６０によって生成される。Ｃ／Ｅ／Ｐ／Ｃ選択回路６０は、入力ＥＵＩ［０：４］，ＥＢＩ［０：４］，ＪＩ［０：７］，ＧＩ［０：１］，ＧＧ［０：７］を受け取る。これらの信号から、Ｃ／Ｅ／Ｐ／Ｃ選択回路６０は、Ｃ／Ｅ／Ｐ／Ｃ信号として使用する４つの信号を選択する。
【００２４】
ＬＵ５０，５２，５４，５６の各々には、３つの出力Ｙ，ＪＰＯ，ＪＯが含まれる。これらの出力は、ＬＵによって実行されるブール関数と論理演算の結果を運ぶ。既述したように、ＬＵ５０，５２，５４，５６の各々からのＪＰＯとＪＯの出力は、互いにまとめられて、ＬＵ５０，５２，５４，５６の入力へとフィードバックされるＪＩ［０：７］バスを作る。ＬＵ５０，５２，５４，５６の各々からのＹ出力は、まとめられてＹ［０：４］バスのＹ［０：３］を作る。Ｙ［４］信号は、ＪＩ［０：７］バスから選択するマルチプレクサ（或いは選択回路）６２を用いて選択される。ＪＩ［０：７］バスからＹ［４］信号を選択する利点は、それによって素子に柔軟性ができることである。言い換えると、いずれかのＬＵ５０，５２，５４，５６のＪＯ或いはＪＰＯ出力は、Ｙ［４］信号として選択することができる。
【００２５】
ＬＩＮＴ信号は、マルチプレクサ６４を用いて、Ｙ［０：４］のいずれか一つとして選択することができる。ＬＩＮＫ信号を使用することで、ＦＰＧＡタイル２０に夥しい柔軟性が加わるが、これは、ＬＩＮＴ信号を、ＦＧ４０或いはＩＧ４２のいずれかに送ることができるからである。これは、Ｙ［０：４］バスから分離し独立した経路選択構造部を用いてＦＰＧＡタイル２０の周囲で、ＬＩＮＴ信号を経路選択することができるからである。Ｙ［０：４］バス上の信号の一つを希望する場所に遅れない場合、或いは、ＣＰＵ時間を節約しなくてはならない場合のような状況で、マルチプレクサ６４は、信号を希望する場所に送るために、Ｙ［０：４］信号の上記の一つをＬＩＮＴ信号として選択するのに使用することができる。
【００２６】
図８を参照すると、ＬＧＧ選択回路５８の一つの例には、２つの６−１マルチプレクサ６６，６８が含まれる。各マルチプレクサ６６，６８は、入力信号ＬＧＧ［０：５］の一つを選択する。マルチプレクサ６６によって選択される信号は、ＧＩ［０］になり、マルチプレクサ６８によって選択される信号は、ＧＩ［１］になる。ＬＧＧ［０：５］バスは、マルチプレクサ６６と６８の両方に与えられるので、信号ＧＩ［０］とＧＩ［１］が同じ信号になる可能性がある。上述したように、ＬＧＧ［０：５］バスは、ＬＩＮＴ信号がＦＧ４０あるいはＩＧ４２のいずれかからＦＧ４０あるいはＩＧ４２のいずれかに送られるための通り道である。図示されるＬＧＧ選択回路５８の一例は、ＧＩ［０：１］バスを経由してＬＵ５０，５２，５３，５６に送るためのこれらＬＩＮＴ信号のいずれか二つを選択することができる。しかし、様々な異なる設計のＬＧＧ選択回路５８は、本発明に従ってＬＵ５０，５２，５４，５６へのＬＧＧ［０：５］バスからの様々な異なる数の信号を選択するのに使用することができる。
【００２７】
図９を参照すると、Ｃ／Ｅ／Ｐ／Ｃ選択回路６０の一例が示されている。回路６０には、二つの２−１マルチプレクサ７０，７２が含まれる。各マルチプレクサ７０，７２は、バスＥＵＩ［０：４］，ＥＢＩ［０：４］，ＪＩ［０：７］，ＧＩ［０：１］から、一つの信号を選択する。マルチプレクサ７０によって選択される信号は、信号ＧＸ［０］になり、マルチプレクサ７２によって選択される信号は、信号ＧＸ［１］になる。バスＧＸ［０：１］は、４つの７−１マルチプレクサ７４，７６，７８，８０の入力に与えられる。また、マルチプレクサ７４，７６，７８，８０の４つの入力に与えられるのは、バスＧＧ［０：７］と接地信号である。マルチプレクサ７４によって選択される信号は、クロック信号ＣＬＫになり、マルチプレクサ７６によって選択される信号は、信号Ｅになり、マルチプレクサ７８によって選択される信号は、プリセット信号ＰＲＳＴＮになり、マルチプレクサ８０によって選択される信号は、クリア信号ＣＬＲＮになる。４つのマルチプレクサ７４，７６，７８，８０を使用することによって、信号ＧＸ［０：１］，ＧＧ［０：７］，接地が、Ｃ／Ｅ／Ｐ／Ｃ信号の一つとして選択可能となる。
【００２８】
先述したように、ＧＧ［０：７］バスは、全てのＦＰＧＡタイル内のあらゆるＦＧ４０に送られる、タイル間全域バスである。ＧＧ［０：７］内の信号は、しばしば、Ｃ／Ｅ／Ｐ／Ｃ信号として選択される。加えて、Ｃ／Ｅ／Ｐ／Ｃ選択回路６０は、有利なことに、２つの信号ＧＸ［０：１］をＣ／Ｅ／Ｐ／Ｃ信号として選択することができる。２つの信号ＧＸ［０：１］は、バスバスＥＵＩ［０：４］，ＥＢＩ［０：４］，ＪＩ［０：７］，ＧＩ［０：１］のいずれかから選択することができる。従って、Ｃ／Ｅ／Ｐ／Ｃ選択回路６０によって、様々な異なる信号を、非常に柔軟な素子のためのＣ／Ｅ／Ｐ／Ｃ信号として選択することができる。しかし、図示したＣ／Ｅ／Ｐ／Ｃ選択回路６０は、そのような選択回路の単なる一例に過ぎず、様々な設計のＣ／Ｅ／Ｐ／Ｃ選択回路６０を、本発明に従って、様々な異なる信号を選択するのに使用することができることを良く理解されたい。
【００２９】
図１０を参照すると、ＬＵ５０の一例が図示されている。ＬＵ５０，５２，５４，５６は、全て同じ設計であるのが好ましいが、それは本発明に従って必要なのではないことを理解されたい。ＬＵ５０には、２つの参照テーブル（ＬＵＴ）８２，８４が含まれる。各参照テーブル８２，８４には、３つの入力Ａ，Ｂ，Ｃと、一つの出力Ｙと、いくつかの内部メモリセル（図示されず）とが含まれる。ＬＵ８２，８４は、内部のメモリセルをプログラムすることによって構成され、内部のメモリセルの特定の設定は、互いに、各ＬＵＴ８２，８４に特定の構成を与えている。内部のメモリセルをプログラムするのに使用される構成データは、設計ソフトウェアによって生成される。一旦、内部のメモリセルの特定の構成が決定されると、入力Ａ，Ｂ，Ｃは、希望する論理機能に従って、出力Ｙを生成するのに使用することができる。
【００３０】
ＬＵＴ８２の入力Ａ，Ｂ，Ｃは、２０−１マルチプレクサ８６，８８，９０によってそれぞれ与えられ、ＬＵＴ８４の入力Ａ，Ｂ，Ｃは、それぞれ２０−１マルチプレクサ９２，９４，９６によって与えられる。マルチプレクサ８６，８８，９０，９２，９４，９６の各々は、入力として４つのバスＥＵＩ［０：４］，ＥＢＩ［０：４］，ＪＩ［０：７］，ＧＩ［０：１］を受け取る。従って、３つの信号は、これら２０の信号から、ＬＵＴ８２，８４の各々の入力Ａ，Ｂ，Ｃとして選択される。
【００３１】
３つの入力ＬＵＴのみが必要な時、ＬＵＴ８２は、それ自身使用することが可能であり、ＬＵＴ８４は必要でない。ＬＵＴ８２のＹ出力を、ＬＵ５０のＪＯ出力へ直接に送るか、あるいは、ＬＵＴ８２のＹ出力が、ＬＵＴ８２のＹ出力を選択するために２−１マルチプレクサ１０４を使用してＬＵ５０のＹ出力へと送ることができる。加えて、ＬＵＴ８２のＹ出力を、ＬＵＴ８２のＹ出力を選択する２−１マルチプレクサ９８と、マルチプレクサ９８の出力を選択する２−１マルチプレクサ１０２とを使って、ＬＵ５０のＪＰＯ出力へと送ることができる。こうして、マルチプレクサ９８，１０２，１０４を、ＬＵＴ８２のＹ出力を、ＬＵ５０の出力Ｙ，ＪＯ，ＪＰＯのいずれかに送るのに使用することができる。
【００３２】
ＬＵ５０内に２つのＬＵＴ８２，８４を含むことの目的の一つは、４入力ＬＵＴを提供するのに一緒に使用することができることである。特に、ＬＵＴ８２のＹ出力とＬＵＴ８４のＹ出力は、２−１マルチプレクサ９８の入力へと接続される。マルチプレクサ９８は、入力として４つのバスＥＵＩ［０：４］，ＥＢＩ［０：４］，ＪＩ［０：７］，ＧＩ［０：１］を受け取る、２−１マルチプレクサ１００によって制御される。ＬＵＴ８２，８４の両方は、Ａ，Ｂ，Ｃ入力において、第１、第２、第３入力を受け取り、マルチプレクサ１００は、第４入力を選択して、それをマルチプレクサ９８の制御入力に与えるようにプログラムされている。良く知られるブール論理技術とシャノン展開（Ｓｈａｎｎｏｎ Ｅｘｐａｎｓｉｏｎ）に従って、このやり方で３入力ＬＵＴ８２，８４を接続することで、一つの４入力ＬＵＴをシミュレートしてマルチプレクサ９８の出力において生成される結果を得るだろう。マルチプレクサ９８の出力は、マルチプレクサ１０２を通してＬＵ５０のＪＰＯ出力へと与えるか、マルチプレクサ１０２，１０４を通してＬＵ５０のＹ出力へ与えることができる。
【００３３】
フリップフロップ１０６もまた、ＬＵ５０に含まれるのが望ましい。特にフリップフロップ１０６のＤ入力は、マルチプレクサ９８の出力に接続され、フリップフロップ１０６のＱ出力は、マルチプレクサ１０２の入力の一つに接続される。フリップフロップ１０６のクロック、イネーブル、セット、リセットの入力は、Ｃ／Ｅ／Ｐ／Ｃバスの対応する信号に接続される。フリップフロップ１０６の一つの目的は、マルチプレクサ９８の出力データを記憶することである。このデータは記憶されて、後に、マルチプレクサ１０２に関してＱ出力を選択することによってＬＵ５０のＪＰＯ出力へと送ることができる。この記憶されたデータは、また、マルチプレクサ１０４に関してＪＰＯ信号を選択することによって、ＬＵ５０のＹ出力へと送ることができる。ＬＵ５０内のフリップフロップ１０６を含むことによって、ＬＵ５０の出力データを記憶して後に使用することができるという、素子の柔軟性を増す。
【００３４】
図１１を参照すると、ＩＧ４２の一つの一例である内部部品が図示されている。上述したように、ＩＧ４２は、ＦＰＧＡタイル２０が他のＦＰＧＡタイル或いは素子へ、もしくは、ＦＰＧＡタイル２０をＩＣパッケージピンへと接続するためにパッドリングへとインターフェイスするのに使用することができる。ＰＩ［０：９］バスは、ＦＰＧＡタイル２０の外部からデータを受け取り、そのデータをＦＰＧＡタイル２０の内部にある通常の経路選択用構造部へＣＩ［０：９］バスを経由して渡すのに使用することができる。ＣＯ［０：９］バスは、ＦＰＧＡタイル２０の内部にある通常の経路選択用構造部からデータを受け取り、そのデータをＦＰＧＡタイル２０の外部へＰＯ［０：９］バスを経由して渡すのに使用することができる。
【００３５】
ＦＧ４０と同様に、ＩＧ４２もまた、ＬＩＮＴ信号とＬＧＧバスとを含む。特に、ＦＰＧＡタイル２０の中に入る信号に関して、ＰＩ［０：９］バスは、ＣＩ［０：９］バスを形成する信号を選択する１０個の１２−１マルチプレクサ１１０に結合される。しかし、もし、ＣＩ［０：９］バスに結合される通常の経路選択用構造部が、ＦＰＧＡタイル２０内の希望する場所へ信号を経路決定することができないならば、信号は、１２−１マルチプレクサ１１２によって“ｂＬＩＮＴ”信号として選択することができる。ｂＬＩＮＴ信号は、ＦＧ４０によって生成されるＬＩＮＴ信号を経路選択するのに使用される、同じ第２経路選択用構造部によって経路選択される。そのように、ｂＬＩＮＴ信号は、この第２経路選択用構造部に沿って、ＦＰＧＡタイル２０内のＦＧ４０及び／またはＩＧ４２のいずれかへ経路選択することができる。これによって、たとえＣＩ［０：９］バスを運ぶ通常の経路選択用構造部によって行き先へパスが提供されなくても、入力される信号ＰＩ［０：９］のいずれかを、ＦＰＧＡタイル２０内部のいずれの行き先へ経路選択する方法が与えられる。
【００３６】
同様に、ＦＰＧＡタイル２０を出ていく信号のために、ＣＧ［０：９］バスは、ＰＯ［０：９］バスを形成する信号を選択する１０個の１２−１マルチプレクサ１１４に結合される。しかし、もし、ＰＯ［０：９］バスに結合される経路選択用構造部が、信号をＦＰＧＡタイル２０外部の希望する場所（例えば、となりのＦＰＧＡタイル内）に経路選択することができなければ、信号は、１２−１マルチプレクサ１１６によって“ｔＬＩＮＴ”信号として選択することができる。ｔＬＩＮＴ信号は、となりのＦＰＧＡタイル内のＬＩＮＴ信号を経路選択するのに使用される第２経路選択用構造部によって経路選択され、またｔＬＩＮＴ信号は、隣のＦＰＧＡタイル内のＦＧおよび／またはＩＧのいずれかに経路選択することができる。これによって、たとえＰＯ［０：９］バスを運ぶ通常の経路選択用構造部によって行き先へパスが提供されなくても、出力する信号ＣＯ［０：９］のいずれかを、隣のＦＰＧＡタイル内部のいずれの行き先へ経路選択する方法が与えられる。
【００３７】
上述したように、ＦＰＧＡタイル２０内部のＬＩＮＴ信号を運ぶ第２経路選択用構造部には、ＬＧＧ［０：５］バスが含まれる。特に、ＦＰＧＡタイル２０の周囲に経路選択する必要があるいくつかのＬＩＮＴ信号は、一緒にまとめられて、ＬＧＧ［０：５］バスを形成する。ＬＧＧ［０：５］バスは、ＬＩＮＴ信号が全ての素子へ送られるように、あらゆるＦＧ４０とＩＧ４２とへ与えられる。ＩＧ４２は、入力ｂＬＧＧ［０：５］において、ＦＰＧＡタイル２０の内部からのＬＧＧ［０：５］を受け取る。ｂＬＧＧ［０：５］入力は、６−１マルチプレクサ１１８，１２０へと結合されるが、これは、マルチプレクサ１１４，１１６へ結合される出力を備えている。このようにして、ＦＰＧＡタイル２０内部で生成されるＬＩＮＴ信号は、いずれもＰＯ［０：９］バス上あるいはｔＬＩＮＴ信号として、適当なマルチプレクサ１１８，１２０の出力を選択するために適当なマルチプレクサ１１４，１１６をプログラムすることによって、ＦＰＧＡタイル２０の外部へ送ることができる。
【００３８】
同様に、隣のＦＰＧＡタイル内のＬＧＧバスは、ＩＧ４２のｔＬＧＧ［０：５］入力に接続することができる。ｔＬＧＧ［０：５］入力は、６−１マルチプレクサ１２２，１２４に結合されるが、これらは、マルチプレクサ１１０，１１２に結合される出力を備えている。この様にして、ＦＰＧＡタイル２０の外部で生成されるいずれのＬＩＮＴ信号も、ＣＩ［０：９］バス上あるいはｂＬＩＮＴ信号として、適当なマルチプレクサ１２２，１２４の出力を選択するために適当なマルチプレクサ１１０，１１２をプログラムすることによって、ＦＰＧＡタイル２０の内部へ送ることができる。
【００３９】
ある状況においては、ｔＬＩＮＴ信号とｔＬＧＧ［０：５］バスは、必要では無く、本発明によって、ＩＧ４２から外すことができる。これが図１２に図示されており、ｔＬＩＮＴ或いはｔＬＧＧ［０：５］入力の無い別のＩＧ４２’を示している。ｔＬＩＮＴ信号とｔＬＧＧ［０：５］バスが必要ではない状況の例は、ＩＧ４２’がＦＰＧＡタイル２０をパッドリング２８，３０，３２，３４の一つのようなパッドリングへ結合するのに使用される場合である。この場合、ＰＯ［０：９］出力とＰＩ［０：９］入力とは、パッドリングを通してＩＣパッケージのＩ／Ｏ（すなわちＩＣパッケージの入出力ピン）へと結合されるだろう。これは、ＰＩ［０：９］バスの図に示されており、そこでは、ＰＩ［０：９］バスは、いくつかのＩ／Ｏ・１０１，１０３，１０５，１０７，１０９へ結合されている。これは、典型的には、ｔＬＩＮＴ信号とｔＬＧＧ［０：５］バスを利用するパッドリング内に第２経路選択構造部が無い。マルチプレクサ１１６，１２２，１２４は省かれ、マルチプレクサ１１０，１１２は、１０−１マルチプレクサ１２６，１２８と置き換えられる。
【００４０】
図１２は、また本発明の他の重要な特徴を示している。特に、ＦＰＧＡタイル２０の側部がＩ／Ｏの目的でパッドリングに結合される第２の場合、Ｉ／Ｏ・１０１，１０３，１０５，１０７，１０９は、ＩＧ４２’に直接結合することができる。さらに、Ｉ／Ｏ・１０１，１０３，１０５，１０７，１０９は、マルチプレクサ１２６，１２８に直接結合することができる。言い換えると、Ｉ／Ｏ・１０１，１０３，１０５，１０７，１０９は、経路選択用チャネルへの第１接続無しに、マルチプレクサ１２６，１２８へ直接に結合することができる。経路選択用チャネルへの接続は、ＩＧ４２’とマルチプレクサ１２６，１２８の後に行う。こうして、この場合には、Ｉ／Ｏは、マルチプレクサ１２６，１２８へ直接に結合されて、経路選択用チャネルあるいは他の経路選択用資源へと進む。
【００４１】
また、隣のＦＰＧＡタイルのＩＧを、本発明に従って一つのＩＧに結合することができることを理解されたい。例えば、図１１に示されるＩＧ４２に対して、ＰＯ［０：９］バスとＰＩ［０：９］バスとｔＬＧＧ［０：５］バスとｔＬＩＮＴ信号は、典型的には、隣のタイルの分離したＩＧに結合されないが、むしろ、これらの信号は、隣のＦＰＧＡタイルの経路選択用構造部の中に結合され、ＩＧ４２は、また隣のタイルのＩＧとして使われる。
【００４２】
例として、例えば、マルチプレクサ８６，８８，９０，９２，９４，９６，９８，１００，１０２，１０４のような、ここで登場するマルチプレクサ（選択回路）のいずれも、１９９９年２月１２日出願、発明者Ｃｈｕｎｇ−ｙｕａｎ Ｓｕｎ、同時係属出願の米国特許第０９／２５０，７８１号“ＭＵＬＴＩ−ＤＩＭＥＮＳＩＯＮＡＬ ＰＲＯＧＲＡＭＭＡＢＬＥ ＩＮＰＵＴ ＳＥＬＥＣＴＩＯＮ ＡＰＰＡＲＡＴＵＳ ＡＮＤ ＭＥＴＨＯＤ”に記載されている選択回路のいずれかを備えており、上記出願は、ここに共通に割り当てられ、その開示された全ては、ここに参照のために本明細書に組み入れられる。
【００４３】
図１３を参照すると、ＦＰＧＡタイル２０の一例である約１／４を示す、より詳細な図が示されている。図示されるＦＰＧＡタイル２０の一部は、図５において１２９と示されている。当業者ならば、ＦＰＧＡタイル２０の残りの部分は、図示された１２９の鏡像であることを理解されよう。
【００４４】
図１３は、ＦＧ４０の通常の経路選択信号４４を経路選択するのに使用される、ＦＰＧＡタイル２０の通常の経路選択構造部を図示したものである。上述したように、通常の経路選択信号４４には、入力信号ＥＵＩ［０：４］とＥＢＩ［０：４］と出力信号Ｙ［０：４］が含まれる。ＦＰＧＡタイル２０の通常の経路選択用構造部は、またＩＧ４２へ／からのＣＯ［０：９］バスとＣＩ［０：９］バスの経路選択を扱う。
【００４５】
ＦＰＧＡタイル２０の通常の経路選択構造部には、いくつかの水平の通常の経路選択バス１５０，１５２，１５４，１５６およびいくつかの垂直の通常の経路選択バス１５８，１６０，１６２が含まれる。例として、水平の経路選択バス１５０，１５２，１５４，１５６は、各々、ラインのＸの数を含み、水平の経路選択バス１６４は、ラインのＡの数を含み、垂直の経路選択バス１６０，１６２は、各々、ラインのＹの数を含み、垂直の経路選択バス１５８は、ラインのＢの数を含む。さらに別の例として、水平の経路選択バス１５０，１５２，１５４，１５６は、各々、５０ラインを含み、水平の経路選択バス１６４は、７０ラインを含み、垂直の経路選択バス１６０，１６２は、各々、６０ラインを含み、垂直の経路選択バス１５８は、７０ラインを含む。
【００４６】
ある経路選択バスから、他の経路選択バスあるいはＦＧ４０かＩＧ４２へ、データを転送するために、いくつかの経路選択用内部接続領域１３０，１３２，１３４，１３６，１３８，１４０，１４２，１４４，１４６，１４８が、ＦＰＧＡタイル２０の中に含まれる。経路選択用内部接続領域１３０，１３８，１４４，１４６は、垂直経路選択バスの一つから水平経路選択バスの一つへデータを転送するのに使用される。他の経路選択用内部接続領域１３２，１３４，１３６，１４０，１４２，１４８は、ＩＧ４２の一つ或いはＦＧ４０の一つから／へと、垂直経路選択バスの一つもしくは水平経路選択バスの一つから／へとデータを転送するのに使用される。一般的に、経路選択バスと経路選択用内部接続領域は、ＦＰＧＡタイル２０の通常の経路選択構造部を形成する。
【００４７】
図１４は、経路選択用内部接続領域１３０，１３２，１３４のための構造部の一例を示している。この例では、水平経路選択バス１５２には、５０ラインが含まれ、垂直経路選択バス１６０には、６０ラインが含まれる。しかし、経路選択バスのいずれかにおけるラインの特定の本数は、本発明に従って変化することを良く理解されたい。さらに、信号バス、例えば、ＥＵＩ［０：４］，ＥＢＩ［０：４］，Ｙ［０：４］，ＬＧＧ［０：５］，ＧＧ［０：７］，ＪＩ［０：７］，ＧＩ［０：１］，ＣＯ［０：９］，ＣＩ［０：９］，ＰＯ［０：９］，ＰＩ［０：９］のいずれかにおけるラインの特定の本数は、本発明に従って変化することを良く理解されたい。
【００４８】
経路選択用内部接続領域１３０，１３２，１３４の各々には、様々なバスの間で接続を行うのに使用されるいくつかののトランジスタスイッチと、メモリセルが含まれる。それぞれのトランジスタスイッチとメモリセルは、図の中で、互いに結合される信号線の交点で、円（或いは泡）で描かれている。これを示すために、図１５では、１７０で示される円の詳細が示されている。円１７２，１７４，１７６，１７８，１８０には、トランジスタスイッチＭ２，Ｍ４，Ｍ６，Ｍ８，Ｍ１０がそれぞれ含まれる。トランジスタスイッチＭ２，Ｍ４，Ｍ６，Ｍ８，Ｍ１０の各々には、交差する信号線に結合されるソースとドレイン、および、対応するメモリセル１８２，１８４，１８６，１８８，１９０に結合されるゲートが備わる。メモリセルの各々は、構成データの１ビットを記憶して、対応するトランジスタスイッチがオンするかしないかオフするかしないかを制御する。トランジスタスイッチがオンすると、それが接続されるラインは、互いに結合される。
【００４９】
図１４を再び参照すると、経路選択バスと経路選択用内部接続領域が、以下に、より詳細に説明される。ＦＧ４０の一つと、その近くの経路選択用内部接続領域１３０，１３２，１３４が図示されている。ＦＧ４０のＹ［０：４］は、経路選択用内部接続領域１３４と結合され、ＦＧ４０のＥＢＩ［０：４］は、経路選択用内部接続領域１３２に結合される。典型的な例では、ＦＧ４０は、データをＹ［０：４］バスに出力し、経路選択用内部接続領域１３４は、そのデータをバス１６０に転送するのに使用される。これは、信号線の適当な交点にある円（或いは、泡）で図示された内部のトランジスタスイッチをオンすることによって行われる。各トランジスタスイッチは、対応するメモリセルをプログラムすることでオンされる。同様に、経路選択用内部接続領域１３２は、データをバス１５２からＦＧ４０のＥＢＩ［０：４］に転送するのに使用される。繰り返すと、これは、メモリセルをプログラムして、適当な交点にあるトランジスタスイッチをオンすることで達成される。経路選択用内部接続領域１３０は、繰り返すと、メモリセルをプログラムして、適当な交点にあるトランジスタスイッチをオンすることにより、データをバス１６０からバス１５２へ転送するのに使用される。
【００５０】
図示されているように、経路選択用内部接続領域１３０，１３２，１３４には、信号線の多くの交点にトランジスタスイッチとメモリセルとが含まれるが、全ての交点にでは無い。（繰り返すと、トランジスタスイッチとメモリセルとは、図示されたタ円或いは泡の中にある。）トランジスタスイッチとメモリセルとが、信号線の各交点にあると、これは、“全面（ｆｕｌｌｙ ｐｏｐｕｌａｔｅｄ）”経路選択用内部接続部として知られるものである。全面経路選択用内部接続部は、１９２における、経路選択用内部接続領域１３２に示される。トランジスタスイッチとメモリセルとを持つように選択され、その領域が全面であるような特定の交点は、本発明に従って広く変化し得るということを良く理解されたい。言い換えると、トランジスタスイッチとメモリセルの異なる多くのパターンは、本発明に従って、経路選択用内部接続領域１３０，１３２，１３４において使用することができる。
【００５１】
ＦＰＧＡタイル２０内の他の経路選択用内部接続領域１３６，１３８，１４０，１４２，１４４，１４６，１４８は、経路選択用内部接続領域１３０．１３２．１３４と同様である。しかし、いくつかのものは、信号線と交点の数が異なるだろう。例えば、経路選択用内部接続領域１３６，１４４は、部分的に、ＩＧ４２のＣＯ［０：９］バスに転送される（５つの代わりに）１０個の信号のせいで、水平バス１６４の中の信号線の数が多くなる。同様に、経路選択用内部接続領域１４６，１４８は、行の最後にあるために、入力および／または出力の数が少ない。
【００５２】
使用されるトランジスタの数と、ＦＰＧＡタイル２０内の位置は、本発明によって変化し得る。ＩＧと、ＦＧと、経路選択バスと、経路選択用内部接続領域と、経路選択用内部接続領域内のスイッチングトランジスタとの、特定の配列と位置付けは、特定用途によって大きく変わる。ここで図中に示される構成は、一例であることを理解されたい。
【００５３】
図１６Ａと図１６Ｂでは、ＦＰＧＡタイル２０の第２経路選択構造部が示されている。上述したように、第２経路選択構造部は、通常の経路選択バスから分離されており、経路選択用内部接続領域は、通常の経路選択出力信号Ｙ［０：４］を経路選択するのに使用される。第２経路選択構造部は、入力信号ＬＧＧ［０：５］と出力信号ＬＩＮＴを含んだ、タイル内全域信号４６を経路選択するのに使用される。ＬＩＮＴ信号は、通常の経路選択出力信号Ｙ［０：４］が希望する行き先へ信号を送るのに使用できないような状況のときに、信号を送るのに使用することができる第２経路選択資源である。これは、トランジスタスイッチとメモリセルが、一つ或いは二つ以上の通常の経路選択用内部接続領域１３０，１３２，１３４，１３６，１３８，１４０，１４２，１４４，１４６，１４８内の信号線の必要な交点に置かれなかったゆえに、起こる。もし、必要な交点が通常の経路選択用内部接続領域で作れないと、信号は、上述したように通常の経路選択出力信号Ｙ［０：４］の必要な一つをＬＩＮＴ信号として選択し、それを第２経路選択用構造部に送ることによって、ＦＧ４０および／またはＩＧ４２のいずれかに送ることができる。
【００５４】
６個の素子のＬＩＮＴ信号は、ＦＧ４０および／またはＩＧ４２のいずれかの組み合わせであって良く、ＬＧＧ［０：５］バスを形成するために集められる。ＬＧＧ［０：５］バスが６本のバスとして図示されているが、ＬＧＧバスの信号の数は、本発明に従って変化し得るということを良く理解されたい。さらに、ＬＧＧバスは、ＦＧ４０からのＬＩＮＴ信号と、ＩＧ４２からのｂＬＩＮＴ信号とからできている。上述したように、ＩＧ４２のｂＬＩＮＴ信号の“ｂ”の記号の意味するところは、これらの信号が、外部のｔＬＩＮＴ信号の反対に、ＦＰＧＡタイル２０に対して内部であるということである。従って、ＬＧＧ［０：５］バスの構成を議論するときは、通常、“ＬＩＮＴ”という用語は、ＦＧ４０が生成するＬＩＮＴ信号と、ＩＧ４２が生成するｂＬＩＮＴ信号の両方を包含することを意図している。
【００５５】
ＬＧＧ［０：５］バスは、以下の様にまとめられる。ＩＧ４２の第一列は、８本の信号バス２００に結合される、それらのｂＬＩＮＴ出力を持っている。６個の８−１マルチプレクサは、対応する３ステートのバッファ２００に結合される。マルチプレクサ２０２の各々の出力は、対応する３ステートのバッファ２０４に結合される。３ステートのバッファの２０４の出力は、ＬＧＧ［０：５］バスに結合される。ＦＧ４０と２つのＩＧ４２の第２列において、各ＦＧ４０のＬＩＮＴ出力と各ＩＧ４２のｂＬＩＮＴ出力とは、１０本の信号バス２０６に結合される。６個の１０−１マルチプレクサ２０８は、バス２０６に結合される。マルチプレクサ２０８の各々の出力は、対応する３ステートのバッファ２０４に結合され，これは、次にＬＧＧ［０：５］バスに結合される。
【００５６】
同様にして、ＩＧ４２の最後の列は、８本の信号バス２１０に結合されるｂＬＩＮＴ出力を持っている。６個の８−１マルチプレクサ２０２と３ステートのバッファ２０４は、バス２１０をＬＧＧ［０：５］バスへ結合する。ＦＧ４０と２つのＩＧ４２の最後から２番目の列では、各ＦＧ４０のＬＩＮＴ出力と各ＩＧ４２のｂＬＩＮＴ出力が、１０本の信号バス２１２に結合され、これは、次にＬＧＧ［０：５］バスに、６個の１０−１マルチプレクサ２０８と３ステートのバッファ２０４を介して結合される。図１６Ａと図１６Ｂとに示されるＦＰＧＡタイル２０内のＦＧ４０とＩＧ４２の残りは、同様にして、ＬＧＧ［０：５］バスに接続されることを理解されたい。
【００５７】
動作中、マルチプレクサ２０２，２０８の各々は，その入力バス、すなわち、バス２００，２０６，２１０，２１２の内のそれぞれ一つからＬＩＮＴ信号を選択する。これらの選択されたＬＩＮＴ信号の６個までが、ＬＧＧ［０：５］バス上に乗せられる。これは、６個の３ステートのバッファ２０４を伝導状態にし、残りの３ステートのバッファを非伝導状態にすることによって、行われる。伝導状態にある６個の３ステートのバッファ２０４は、希望するＬＩＮＴ信号を選択したマルチプレクサ２０２，２０８に対応するはずである。
【００５８】
ＬＧＧ［０：５］バスは、ＦＰＧＡタイル２０内の全てのＦＧ４０とＩＧ４２とに経路選択される。このようにして、ＦＧ４０とＩＧ４２のいずれかからのＬＩＮＴ信号は、Ｙ［０：４］バスに使用される通常の経路選択用構造部とは独立して、ＦＧ４０とＩＧ４２のいずれかへと送ることができる。
【００５９】
図１６Ａと図１６Ｂは、また、ＧＧ［０：７］バスの経路選択を示している。上述したように、ＧＧ［０：７］バスによって、タイル間全域信号が４８が作られる。これらの信号は、全てのＦＰＧＡタイル内のあらゆるＦＧ４０に送られる。こうして、ＧＧ［０：７］バスは、他のＦＰＧＡタイルに行くことができるように，２１４で示されるＦＰＧＡタイル２０の境界を通って延びる。ＧＧ［０：７］バスは、ＩＧ４２を通らずに、ＦＰＧＡタイル２０の境界を通って延びる。上述したように、入力信号ＧＧ［０：７］の選択された一つは、各ＦＧ４０に含まれるフリップフロップのクロック／イネーブル／プリセット／クリア（Ｃ／Ｅ／Ｐ／Ｃ）入力を制御するのに使用される。ＧＧ［０：７］バスには、本発明に従って、多くの或いは少しの信号が含まれるであろうことは、理解されたい。
【００６０】
図１７を参照すると、全域信号経路選択用構造部３６が、より詳細に示される。上述したように、全域信号経路選択用構造部３６は、ＦＰＧＡタイル２０間のタイル間全域信号の経路選択をするのに使用される。例えば、ＧＧ［０：７］バス（これは、タイル間の全域信号４８を形成する）は、全域信号経路選択用構造部３６に含まれ、これは全ての４つのＦＰＧＡタイル２０に接続されることが示される。ＧＧ［０：７］バス上を送られるべき信号は、入力２２０，２２２に結合することができる。入力２２０，２２２のうちの選択された一つは、トランジスタスイッチとメモリセルを用いて、ＧＧ［０：７］バスの選択された信号に結合することができ、この例として、マルチプレクサ２２４，２２６で示されるものがある。
【００６１】
示されるように、全域信号経路選択用構造部３６は、また、パッドリングに接続するために、バス２３０を含む。
２つのＦＰＧＡタイル２０が互いに結合されるとき、一つのタイルのＩＧ出力は、典型的には、他のタイルのＩＧ入力に直接に結合される。あるいは、上述したように、二つのタイルのＩＧは、一つのＩＧとして結合することもできる。図１８には、二つのＦＰＧＡタイル２０を互いに結合するための、他の選択肢が示されている。特に、中間の経路選択用トラック２４０を使用することができる。一つのタイル２０のＩＧ４２の出力ＰＯ［０：９］バスは、トラック２４０に結合され、他のタイル２０のＩＧ４２の入力ＰＩ［０：９］バスは、異なる場所のトラック２４０に結合される。例えば点２４２，２４４，２４６におけるような、トラック２４０への接続は、上述したように，トランジスタスイッチとメモリセルによる、配線接続によって行うことができる。もちろん、後者は、プログラム可能である。中間の経路選択用トラック２４０を使用することは選択肢であることは、理解されたい。
【００６２】
以下の同時係属出願の米国特許出願をの全面的開示は、ここに、本出願に参考のために組み入れられる。米国特許出願第０９／２３１，９９８号、１９９９年１月１５日出願、”ＳＴＯＲＡＧＥ ＣＥＬＬＳ ＵＴＩＬＩＺＩＮＧ ＲＥＤＵＣＥＤ ＰＡＳＳ ＧＡＴＥ ＶＯＬＴＡＧＥＳ ＦＯＲ ＲＥＡＤ ＷＲＩＴＥ ＯＰＥＲＡＴＩＯＮＳ”、これは、ここに共に割り当てられる；米国特許出願第０９／２８１，００８号，１９９９年３月３０日出願、”ＭＥＴＨＯＤ ＡＮＤ ＡＰＰＡＲＡＴＵＳ ＦＯＲ ＩＮＣＲＥＡＳＩＮＧ ＴＨＥ ＳＰＥＥＤ ＯＦ ＦＩＥＬＤ−ＰＲＯＧＲＡＭＭＡＢＬＥ ＧＡＴＥ ＡＲＲＡＹＳ”、 これは、ここに共に割り当てられる；米国特許出願第０９／２８５，５６３号、１９９９年４月２日出願、” ＭＥＴＨＯＤ ＡＮＤ ＡＰＰＡＲＡＴＵＳ ＦＯＲ ＳＴＯＲＩＮＧ Ａ ＶＡＬＩＤＡＴＩＯＮ ＮＵＭＢＥＲ ＩＮ Ａ ＦＩＥＬＤ−ＰＲＯＧＲＡＭＭＢＬＥ ＧＡＴＥ ＡＲＲＡＹ”、 これは、ここに共に割り当てられる；米国特許出願第０９／３１８，１９８号，１９９９年５月２５日出願、”ＩＮＴＥＧＲＡＴＥＤ ＣＩＲＣＵＩＴ ＴＨＡＴ ＩＮＣＬＵＤＥＳ Ａ ＦＩＥＬＤ−ＰＲＯＧＲＡＭＭＢＬＥ ＧＡＴＥ ＡＲＲＡＹ ＡＮＤ Ａ ＨＡＲＤ ＧＡＴＥ ＡＲＲＡＹ ＨＡＶＩＮＧ ＴＨＥ ＳＡＭＥ ＵＮＤＥＲＬＹＩＮＧ ＳＴＲＵＣＴＵＲＥ” これは、ここに共に割り当てられる。
【００６３】
ここに記載した本発明の実施形態の様々な代案は、本発明を実施する際に使用することができることを理解されたい。以下の特許請求の範囲は、本発明の範囲を定義するということと、これらの特許請求の範囲の範囲内にある構成と方法及びその等価物は、それによって保護されるということを意図している。
【図面の簡単な説明】
【図１】本発明によるＦＰＧＡタイルを図示したブロック図である。
【図２】本発明によるＦＰＧＡタイルの様々な構成を図示したブロック図である。
【図３Ａ】本発明によるＦＰＧＡタイルの様々な構成を図示したブロック図である。
【図３Ｂ】本発明によるＦＰＧＡタイルの様々な構成を図示したブロック図である。
【図４】本発明によるＦＰＧＡタイルの様々な構成を図示したブロック図である。
【図５】図１で示されるＦＰＧＡタイルのさらに詳細なブロック図である。
【図６】図５で示される機能グループ（ＦＧ）の一つのさらに詳細なブロック図である。
【図７】図６で示されるＦＧの一つのさらに詳細なブロック図である。
【図８】図７で示されるＬＧＧ選択回路のさらに詳細なブロック図である。
【図９】図７で示されるＣ／Ｅ／Ｐ／Ｃ選択回路のさらに詳細なブロック図である。
【図１０】図７で示される論理ユニット（ＬＵ）の一つのさらに詳細なブロック図である。
【図１１】図５で示されるインターフェイスグループ（ＩＧ）の一つのさらに詳細なブロック図である。
【図１２】図５で示されるインターフェイスグループ（ＩＧ）の一つの別のバージョンのさらに詳細なブロック図である。
【図１３Ａ】図５で示されるＦＰＧＡ回路の一部のさらに詳細な図である。
【図１３Ｂ】図５で示されるＦＰＧＡ回路の一部のさらに詳細な図である。
【図１４】図１３で示される通常の経路選択構造部の一部のさらに詳細な図である。
【図１５】図１４で示される通常の経路選択構造部の一部のさらに詳細な図である。
【図１６Ａ】図１３で示されるＦＰＧＡタイルに含まれる第２の経路選択構造部のさらに詳細な図である。
【図１６Ｂ】図１３で示されるＦＰＧＡタイルに含まれる第２の経路選択構造部のさらに詳細な図である。
【図１７】図４で示される全域信号経路選択構造部のさらに詳細な図である。
【図１８】２つのＦＰＧＡタイルを互いに結合する選択的な方法を示す図である。
【符号の説明】
２０…ＦＰＧＡタイル
２４，２６…ＦＰＧＡ
２５…ＳＯＣ
２７…ＲＯＭ
２９…ＲＡＭ
３１…マイクロプロセッサ
３３…他の部品
３６…全域信号経路選択構造部
２８，３０，３２，３４…パッドリング
３６…全域信号経路選択用構造部
４０…ＦＧ（機能グループ）
４２…ＩＧ（インターフェイスグループ）
５０，５２，５４，５６…ＬＵ（論理ユニット）
５８…ＬＧＧ選択回路
６０…Ｃ／Ｅ／Ｐ／Ｃ選択回路
６２，６４，２０２，２２４，２２６…マルチプレクサ
６６，６８，１１８，１２０，１２２，１２４…６−１マルチプレクサ
７４，７６，７８，８０…１１−１マルチプレクサ
８２，８４…参照テーブル（ＬＵＴ）
８６，８８，９０，９２，９４，９６，１００…２０−１マルチプレクサ
７０，７２，９８，１０２，１０４…２−１マルチプレクサ
１０１，１０３，１０５，１０７，１０９…Ｉ／Ｏ
１０６…フリップフロップ
１１０，１１２，１１４，１１６…１２−１マルチプレクサ
１２６，１２８，２０８…１０−１マルチプレクサ
１３０，１３２，１３４，１３６，１３８，１４０，１４２，１４４，１４６，１４８…経路選択用内部接続領域
１５０，１５２，１５４，１５６…水平の通常の経路選択バス
１５８，１６０，１６２…垂直の通常の経路選択バス
１８２，１８４，１８６，１８８，１９０…メモリセル
２００…信号バス
２０４…３ステートのバッファ
２２０，２２２…入力
２３０…バス
２４０…経路選択用トラック
Ｍ２，Ｍ４，Ｍ６，Ｍ８，Ｍ１０…トランジスタスイッチ
【図１】
2004524715.tif 000003
【図２】
2004524715.tif 000004
【図３Ａ】
2004524715.tif 000005
【図３Ｂ】
2004524715.tif 000006
【図４】
2004524715.tif 000007
【図７】
2004524715.tif 000008
【図１３Ａ】
2004524715.tif 000009
【図１３Ｂ】
2004524715.tif 000010
【図１７】
2004524715.tif 000011
【図１８】
2004524715.tif 000012
【国際公開パンフレット】
2004524715.tif 000013
2004524715.tif 000014
2004524715.tif 000015
2004524715.tif 000016
2004524715.tif 000017
2004524715.tif 000018
2004524715.tif 000019
2004524715.tif 000020
2004524715.tif 000021
2004524715.tif 000022
2004524715.tif 000023
2004524715.tif 000024
2004524715.tif 000025
2004524715.tif 000026
2004524715.tif 000027
2004524715.tif 000028
2004524715.tif 000029
2004524715.tif 000030
2004524715.tif 000031
2004524715.tif 000032
2004524715.tif 000033
2004524715.tif 000034
2004524715.tif 000035
2004524715.tif 000036
2004524715.tif 000037
2004524715.tif 000038
2004524715.tif 000039
2004524715.tif 000040
2004524715.tif 000041
2004524715.tif 000042
2004524715.tif 000043
2004524715.tif 000044
2004524715.tif 000045
2004524715.tif 000046
2004524715.tif 000047
2004524715.tif 000048
2004524715.tif 000049
2004524715.tif 000050
2004524715.tif 000051
2004524715.tif 000052
【国際公開パンフレット（コレクトバージョン）】
2004524715.tif 000053
【国際調査報告】
2004524715.tif 000054
2004524715.tif 000055