(57)【特許請求の範囲】
【請求項１】
ＦＰＧＡにおいて、
複数個のタイルからなるアレイが設けられており、各タイルは、
論理ブロック（ＬＢ，Ｌ）と、
複数個のプログラム可能な相互接続点（ＰＩＰ）と、
複数本の相互接続線（６ＶＮ，６ＶＳ，６ＨＥ，６ＨＷ，Ｎ，Ｓ，Ｅ，Ｗ）を形成するために各線セグメントが隣接するタイル内の別の線セグメントと当接している複数個の線セグメント（３１−３７，４１−４７，Ｎ，Ｓ，Ｅ，Ｗ）と、
を有しており、
該相互接続線の内の幾つかは２個の隣接するタイル内の２個の論理ブロックをプログラミングによって接続する単一長線（Ｎ，Ｓ，Ｅ，Ｗ）であり、
該相互接続線の内の少なくとも１本は、第２タイル内の少なくとも１本の単一長線と１個のＰＩＰとを介して、第１タイル（ＴＩＬＥ１）内の第１論理ブロックを第２タイル（ＴＩＬＥ２）内の第２論理ブロックへプログラミングによって接続する少なくとも３個のタイル分の長さである中間長線（６ＶＮ，６ＶＳ，６ＨＥ，６ＨＷ）である、
ことを特徴とするＦＰＧＡ。
【請求項２】
請求項１において、該中間長線（６ＶＮ，６ＶＳ，６ＨＥ，６ＨＷ）の内の幾つかは該中間長線の内の他のものへプログラミングによって単一の方向へ接続され（４０４−４０９）、且つ該中間長線の内の幾つかは該中間長線の内の他のものへプログラミングによって双方向に接続される（４０４、４０５）ことを特徴とするＦＰＧＡ。
【請求項３】
請求項１において、該中間長線（６ＶＮ，６ＶＳ，６ＨＥ，６ＨＷ）はバッファされたプログラム可能な相互接続点によって駆動され、且つ該単一長線（Ｎ，Ｓ，Ｅ，Ｗ）はバッファされないプログラム可能な相互接続点によって駆動されることを特徴とするＦＰＧＡ。
【請求項４】
請求項１において、各中間長線（６ＶＮ，６ＶＳ，６ＨＥ，６ＨＷ）はいずれか２個の隣接する論理ブロック（ＬＢ，Ｌ）の出力端へ接続不可能であることを特徴とするＦＰＧＡ。
【請求項５】
請求項１において、該相互接続線（６ＶＮ，６ＶＳ，６ＨＥ，６ＨＷ，Ｎ，Ｓ，Ｅ，Ｗ）及び該ＰＩＰは、
第１ＰＩＰが第１論理ブロック（ＬＢ，Ｌ）の第１出力端を該中間長線（６ＶＮ，６ＶＳ，６ＨＥ，６ＨＷ）の内の１本へプログラミングによって単一の方向へ接続させ、
第２ＰＩＰが該中間長線を第１単一長線（Ｎ，Ｓ，Ｅ，Ｗ）へプログラミングによって単一の方向へ接続させ、該第１単一長線は第２論理ブロック（Ｌ，Ｂ，Ｌ）の入力端へ接続されており、
第３ＰＩＰが該中間長線を第２単一長線へプログラミングによって単一の方向へ接続させ、該第２単一長線は第３論理ブロック（ＬＢ，Ｌ）の入力端へ接続されている、
ように配置されていることを特徴とするＦＰＧＡ。
【請求項６】
請求項１において、該複数本の相互接続線（６ＶＮ，６ＶＳ，６ＨＥ，６ＨＥ，Ｎ，Ｓ，Ｅ，Ｗ）は、更に、少なくとも１本の長尺線（ＬＶＮ，ＬＶＳ，ＬＨＷ，ＬＨＥ）を有しており、該長尺線は該中間長線（６ＶＮ，６ＶＳ，６ＨＥ，６ＨＷ）の長さよりも一層長く延在しており、該相互接続線及び該ＰＩＰは、
第１ＰＩＰが第１論理ブロック（ＬＢ，Ｌ）の出力端を該長尺線へプログラミングによって接続し、
第２ＰＩＰが該長尺線を１本の中間長線へプログラミングによって単一の方向へ接続し、
第３ＰＩＰが該中間長線を１本の単一長線へプログラミングによって単一の方向へ接続し、該単一長線は第２論理ブロック（ＬＢ，Ｌ）の入力端へ接続している、
ように配置されていることを特徴とするＦＰＧＡ。
【請求項７】
請求項１において、該複数本の中間長線（６ＶＮ，６ＶＳ，６ＨＥ，６ＨＷ）は端部セグメント（３１，３７，４１，４７）と内部セグメント（３２−３６，４２−４６）とを有しており、各内部セグメントは１個のタイル（ＴＩＬＥ１，ＴＩＬＥ２，ＴＩＬＥ３）の１個の端部から該タイルの反対側の端部へ延在しており且つ隣接するタイル内の異なる内部セグメントへ接続されるようにオフセットをもって配置されており、それにより連続的な中間長線を形成し、各端部セグメントは第１端部と第２端部とを有しており、該第１端部は隣接するタイル内の１個の内部セグメントへ接続されるように該タイルの一つの端部へ延在しており、該第２端部が該タイル内で終端している、ことを特徴とするＦＰＧＡ。
【請求項８】
請求項１において、各論理ブロック（ＬＢ，Ｌ）は、
入力端と出力端とを具備している入力マルチプレクサ（ＩＭＵＸ−２）と、
入力端と出力端とを具備している形態特定可能論理要素（ＣＬＥ−２）と、
入力端と出力端とを具備している出力マルチプレクサ（ＯＭＵＸ−２）と、を有しており、該単一長線（Ｎ，Ｓ，Ｅ，Ｗ）は該入力マルチプレクサの入力端へ接続されており、該入力マルチプレクサの出力端は該形態特定可能論理要素の入力端へ接続されており、該形態特定可能論理要素の出力端は該出力マルチプレクサの入力端へ接続されており、該出力マルチプレクサの出力端は該中間長線（６ＶＮ，６ＶＳ，６ＨＥ，６ＨＷ）へプログラミングによって接続されていることを特徴とするＦＰＧＡ。
【請求項９】
請求項８において、更に、該形態特定可能論理要素（ＣＬＥ−２）の出力端と該入力マルチプレクサ（ＩＭＵＸ−２）の入力端との間に接続されている高速フィードバック線（４３０）が設けられており、該高速フィードバック線は該出力マルチプレクサ（ＯＭＵＸ−２）をバイパスすることを特徴とするＦＰＧＡ。
【発明の詳細な説明】
発明の背景
発明の分野
本発明はプログラム可能な集積回路装置に関するものであって、更に詳細には、フィールドプログラマブル即ち現場においてプログラム可能な論理装置における相互接続構成体に関するものである。
従来技術の説明
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）はプログラム可能な相互接続構成体を介して接続することの可能な論理ブロックを有している。該相互接続構成体は、典型的に、各論理ブロックを各その他の論理ブロックへ接続させるためのものである。初期のＦＰＧＡは、互いに及びプログラム可能な相互接続点（ＰＩＰ）において論理ブロックの入力及び出力端子へ連結させることの可能な短い相互接続セグメントを提供することによってこのことを達成していた。これらのＦＰＧＡが益々大型となり且つ益々複雑となるに従い、相互接続構成体もより大型及びより複雑なものとならねばならない。速度（性能）を改善するために、隣接する論理ブロックに対する直接接続が提供されており、且つ多数の論理ブロックからなる距離にわたり信号を送信するために、より長いラインが提供されている。シリコン面積を節約するために、ＰＩＰは余り頻繁でない程度に設けられていた。ＰＩＰが存在する数が少ないと、ルーチング即ち経路付けは柔軟性が劣るが（同数のルーチング即ち経路付けラインの場合に）、典型的に、負荷が減少するためにより高速である。余り使用されないＰＩＰのみを除去することによって、ルーチングの柔軟性が影響されることを最小とすることが可能である。従って、性能と、シリコン面積と、ルーチングラインの数と、ルーチングの柔軟性との間にはトレードオフ即ち利益衡量が存在している。
幾つかの米国特許では、ＦＰＧＡにおける論理ブロックを相互接続するための構成体を示している。米国再発行特許第３４，３６３号において、Ｆｒｅｅｍａｎは最初のＦＰＧＡ相互接続構成体を記載しており、且つ短いルーチングセグメントと柔軟性のある接続部及び例えばクロック信号等の信号に対するグローバルラインを包含している。米国特許第４，６４２，４８７号において、Ｃａｒｔｅｒは、Ｆｒｅｅｍａｎの相互接続構成体に対して隣接する論理ブロック間に直接接続を付加することを示している。これらの直接接続は隣接する論理ブロック間において高速の経路を与える。米国特許第５，０７３，７２９号において、Ｇｒｅｅｎｅ  ｅｔ  ａｌは可変長のルーチングラインを有するセグメント化した相互接続構成体を示している。米国特許第５，４６９，００３号において、Ｋｅａｎは、境界の間に延在するより長い長さのラインに対して境界において接続可能な短い長さのライン、及びこれらの境界の間に延在する更に長い長さのラインを有するより大きな境界を有する階層的相互接続構成体を示している。Ｋｅａｎは、特に、１個の論理ブロックの長さが各論理ブロックを次のものへ接続させるラインと、４個の論理ブロックの長さがそれらが通過する各論理ブロックへ接続可能なラインと、１６個の論理ブロックの長さが長さ４境界において長さ４ラインへ接続可能であるが論理ブロックに対して直接的に接続可能ではないラインとを示している。Ｋｅａｎのアーキテクチュアにおいては、２つの異なる階層的ブロック内の（即ち、境界の両側上での）隣接する論理ブロックは同一の階層的ブロック内の隣接する論理ブロックとは異なって互いに接続する。
米国特許第５，５８１，１９９号において、Ｐｉｅｒｃｅ  ｅｔ  ａｌは異なる長さのラインを有するタイルをベースとした相互接続構成体を示しており、その場合に、矩形アレイ状の各タイルは各その他のタイルと同一のものとすることが可能である。Ｐｉｅｒｃｅ  ｅｔ  ａｌのアーキテクチュアにおいては、相互接続線は論理ブロックの出力構成体の一部である。１つを超える長さの出力線が他の論理ブロック入力線を超えて延在しており、それに対して論理ブロック出力線を接続することが可能である。前述した特許の全ては、ＦＰＧＡにおける従来の経路付け構成体をより良く理解するために検討することが可能である。
Ｆｒｅｅｍａｎ及びＧｒｅｅｎｅ  ｅｔ  ａｌによって記載されている相互接続構成体においては、各経路は一連のプログラミングすることによって連結された相互接続線をトラバースすることによって形成され、即ち一連の比較的短い相互接続線がプログラミングすることによって端部同志を接続しより長い経路を形成する。与えられた信号経路上での比較的多数のプログラム可能な接続部はその信号経路内に遅延を導入し、従って、ＦＰＧＡの性能を低下させる。このような相互接続構成体は「汎用相互接続体」と呼ばれる。
最初にＣａｒｔｅｒによって記載され且つＫｅａｎのアーキテクチュア内に包含されている直接接続部は隣接する論理ブロック間において高速の経路を与えるものであるが、Ｃａｒｔｅｒの構成においては、隣接していないいずれか２つのブロック間の距離をトラバースするためには汎用相互接続体を使用せねばならない。従って、非隣接ブロック間において信号を相互接続させることを必要とするのに充分に大きいか又は充分に複雑な回路（それは、しばしば発生する）はこれらの接続を行うために汎用相互接続体を使用せねばならない。短い経路の場合には、汎用相互接続体は直接相互接続体よりも一層遅い。何故ならば、汎用相互接続体は幾つかのＰＩＰを介して接続せねばならず、又は、長いラインが使用される場合には、長いか又は高度に負荷がかけられた信号を受付けるためにバッファせねばならず、遅延を導入させるからである。更に、シリコン面積の観点からは、単に数個のブロックをトラバースするに過ぎない短い経路に対して長い経路を使用することは非効率的である。何故ならば、長いラインはそうでない場合にはより長いラインに対して使用することが可能だからである。更に、ＦＰＧＡにおける論理設計を実現するソフトウエアは、典型的に、相互接続した論理を密接して配置させるので、この配置手法を有効に利用する構成体はソフトウエアと良好に動作し、その結果、ルーチングソフトウエアに対するコンパイル時間が一層短くなり且つ回路を実現する場合により効率的なものとなる。
「クワッドライン（ｑｕａｄ  ｌｉｎｅｓ）」と呼ばれる相互接続線はザイリンクス、インコーポレイテッドからのＸＣ４０００ＥＸ  ＦＰＧＡ内に設けられており、且つカリフォルニア州９５１２４、サンノゼ、２１００ロジックドライブのザイリンクス、インコーポレイテッドから入手可能な「プログラム可能な論理データブック（Ｔｈｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄａｔａ  Ｂｏｏｋ）」という題名のザイリンクス１９９６データブックの４−３２乃至４−３７頁に記載されており、以後、「ザイリンクス１９９６データブック（ｔｈｅ  Ｘｉｌｉｎｘ  １９９６  Ｄａｔａ  Ｂｏｏｋ）」と呼称する（著作権の所有者であるザイリンクス、インコポレイテッドは、これら及び本明細書において参照するその他の頁をコピーすることに異議を唱えるものではないが、そうでない場合には、どのような場合であっても全ての著作権を保持する）。然しながら、各クワッドラインはそれがトラバースする全てのタイルと接触するので、これらのラインは多数のＰＩＰを有しており、その各々はＲＣ遅延を付加する。
Ｐｉｅｒｃｅ  ｅｔ  ａｌは隣接する論理ブロック間及び幾つかのタイル離れた論理ブロック間の両方において高速の経路を提供している。Ｐｉｅｒｃｅ  ｅｔ  ａｌアーキテクチュアの出力線は、各々、制限した組の他の論理ブロックの入力端を駆動することが可能である。然しながら、可能なデスティネーション（宛先）は選択した論理ブロックに制限され、且つ相互接続線はデスティネーション論理ブロックのある特定の入力端へアクセスすることが可能であるに過ぎない。
上述した従来の構成体の各々において、各相互接続線は他の論理ブロックの入力端に対するプログラム可能な接続部を有している。然しながら、Ｆｒｅｅｍａｎ、Ｃａｒｔｅｒ、Ｐｉｅｒｃｅ  ｅｔ  ａｌの構成体においては、与えられた論理ブロック入力端は水平相互接続線か又は垂直相互接続線のいずれかから駆動することが可能なものであるが、両方から駆動可能なものではない。別のアプローチは、論理ブロック入力端からの相互接続線をルーチングマトリクスによって分離することであり、そのことは各相互接続線に対して論理ブロック入力端へのより柔軟性のあるアクセスを与える。このようなアーキテクチュアはザイリンクス、インコーポレイテッドからのザイリンクスＸＣ５２００ファミリィのＦＰＧＡにおいて使用されており、且つザイリンクス１９９６データブックの４−１８４、４−１８５及び４−１９２乃至４−１９６頁に記載されている。ＸＣ５２００ファミリィ相互接続構成体においては、タイルに入る殆どの相互接続線は直接的に論理ブロック入力端又は出力端に接続するのではなく、該タイル内のルーチングマトリクスへ接続する。相互接続線の対の聞及び相互接続線と論理ブロック入力端との間の接続は、タイルから外に出ることのない「タイル相互接続線」と呼ばれるラインを介して行われる。１個のタイルの端部から該タイル内の論理ブロックへの経路内においてエキストラな相互接続線を有することの利点は、ルーチングマトリクスは柔軟性のあるものであるが比較的小さな量のシリコン面積を消費するということである。ＰＩＰの結合は、タイルへ入る任意のラインからデスティネーション論理ブロックのいずれかの所望の入力端へのアクセスを行うことを可能とする。それでもＰＩＰの総数は多くのその他の相互接続構成体におけるものよりも少ない。欠点は、タイル相互接続線をオン／オフすることはトラバースされる各タイルに対する経路内にある量の遅延を導入するということである。この遅延はＦＰＧＡを介しての信号の高速伝搬を阻止する。従って、Ｔａｖａｎａ  ｅｔ  ａｌは、それらが通過する全てのタイルへ接続可能な長いライン及び１個のタイルにおけるタイル相互接続線をバイパスする二重長ラインを提供している。これらのラインはトラバースされるタイル内の論理ブロックへアクセスすることなしに１個又はそれ以上のタイルをトラバースする信号に対して使用することが可能である。
Ｋｅａｎは入力マルチプレクサスイッチを使用する論理ブロック入力端から相互接続線を分離しており、そのことは該入力端に対するルーチングの柔軟性を与えている。
論理ブロック間の最も遅い信号経路は、典型的に、回路の性能を決定するものであるから、最も遅い経路を可及的に高速なものとさせることが有益的である。このことを達成する１つの方法は、ＦＰＧＡ全体にわたって全ての信号経路上で比較的一様な遅延が存在するように相互接続構成体を設計することである。上述したルーチング構成体においては、信号経路上の遅延の典型的な分布は平均よりも著しく大きな遅延を有する２，３個の信号経路があることを示す。これらの信号経路は、典型的に、大きな「ＲＣツリー」を有するものであって、即ち、抵抗（例えば、バッファされていないＰＩＰ）をトラバースする信号経路であって、それは抵抗のデスティネーション側において大きな容量を有している。比較的一様な遅延を有する相互接続構成体は、信号経路上の大きな容量（例えば、より長い相互接続線）を該抵抗のソース側に予測可能に配置される場合、又は信号経路のソース端部に可及的に近づけて配置される場合にはより良く実現することが可能である。
高いファンアウトの信号は大きな容量を有しており且つ、しばしば、低いファンアウトの信号よりもより低速である。従来のルーチング構成体は比較的大きなＲＣ遅延を有する高ファンアウト信号ルーチングを有するものであった。相互接続構成体は、理想的には、他の信号の遅延と同等の遅延を有する高ファンアウト信号ルーチングを提供するものである。
従って、（１）ＦＰＧＡ全体にわたり高ファンアウト信号を包含する信号の一様に高速の伝搬、（２）高速の経路を使用して非隣接及び隣接するブロックにおける局所化した回路の実現、（３）ソフトウエアによって使用することの容易性、（４）共通に使用される論理機能の効率的な実現、（５）消費されるシリコン面積当たりの高度のルーチング柔軟性を可能とさせる相互接続構成体を見つけ出すことが望ましい。
局所化した回路の性能を改善する１つの方法は、与えられた論理ブロックの出力端から同一の論理ブロックの入力端へのフィードバック経路を与えることである。このような高速フィードバック経路は同一のＣＬＥ内の相次ぐ機能（関数）発生器にわたる組合わせ論理を高速化させるのに有用である。このような１つのフィードバック経路はルーセントテクノロジーズインコーポレイテッドからのＯＲＣＡ（商標）ＯＲ２Ｃ  ＦＰＧＡにおいて実現されている（「ＯＲＣＡ」はルーセントテクノロジーズインコーポレイテッドによって所有されている商標である）。ＯＲＣＡ論理ブロックはフィラデルフィア州１８１０３、アレンタウン、ルーム３０６−１５Ｐ−ＢＡ、５５５ユニオンブルバード、ルーセントテクノロジーズインコポレイテッド、マイクロエレクトロニクスグループから入手可能な「フィールドプログラマブルゲートアレイ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙｓ）」という題名のルーセントテクノロジーズ１９９６年１０月データブックの２−９乃至２−２８頁に記載されている。図１Ａは出力マルチプレクサ１０１を有するＯＲＣＡ  ＯＲ２Ｃ論理ブロック１００の概略図を示している。図１Ｂは図１Ａの論理ブロック１００に対して設けられたプログラム可能なフィードバック経路を示している。該フィードバック経路は論理ブロック１００の出力端Ｏ４，Ｏ３，Ｏ２，Ｏ１，Ｏ０から同一の論理ブロックの入力端Ａ４，Ａ３，Ａ２，Ａ１，Ａ０，Ｂ４，Ｂ３，Ｂ２，Ｂ１，Ｂ０，Ｃ０，ＷＤ３，ＷＤ２，ＷＤ１，ＷＤ０へ延在している。例えば、１つのこのようなフィードバック経路は出力端Ｏ０から出力線１０２，ＰＩＰ１０３，線１０４，バッファ１０５，線１０６，ＰＩＰ１０７，線１０８を介して論理ブロック入力端Ａ０へ延在している。ＯＲＣＡ  ＯＲ２Ｃ装置においては、論理ブロックにおける出力マルチプレクサの出力端は論理ブロック入力端へフィードバックする。
出力マルチプレクサを介しての、且つ入力マルチプレクサを介してコンフィギャラブルロジックエレメント（ＣＬＥ）即ち形態特定可能論理要素へ戻るＣＬＥからのフィードバック経路はザイリンクス、インコーポレイテッドからのＦＰＧＡのＸＣ５２００ファミリィ内に組込まれている。ＸＣ５２００ファミリィフィードバック経路についてはザイリンクス１９９６データブックの４−１９２及び４−１９３頁に記載されている。
ＯＲＣＡ  ＯＲ２Ｃ及びＸＣ５２００ファミリィは、出力マルチプレクサを介してのルーチングフィードバック経路によって得られる付加的な柔軟性の利点を有している。然しながら、このアプローチは、又、出力マルチプレクサを介して通過することの付加的な遅延によって発生される関連する速度上の犠牲を有している。
別のフィードバック技術はザイリンクス１９９６データブックの４−３１乃至４−３７頁に記載されている。この技術は、ザイリンクス１９９６データブックの４−３４頁の図２７に示されているように、ＦＰＧＡのＸＣ４０００ＥＸファミリィにおいて使用されている。このフィードバック経路は「ＤＩＲＥＣＴ（直接）」として示されている線上のＸＣ４０００ＥＸタイルから出て且つ「ＦＥＥＤＢＡＣＫ（フィードバック）」として示されている線上のタイルへ再度入り高速のフィードバック経路を完成する。然しながら、ＸＣ４０００ＥＸのＣＬＥ（図２７において「ＣＬＢ」として示されている）は出力マルチプレクサを包含するものではない（本明細書において使用される「出力マルチプレクサ」という用語は、各々が単一の論理ブロック出力を発生する２個を超えるマルチプレクサのことを意味し、その場合に各マルチプレクサは入力として２つを超える関数発生器出力を有している）。
更に別のフィードバック技術は、カリフォルニア州９５１３４−２０２０、サンノゼ、２６１０オーチャードパークウエイ、アルテラコーポレイションから入手可能なアルテラデジタルライブラリィ１９９６からの「フレックス１０Ｋ埋込型プログラム可能論理ファミリィデータシート（ＦＬＥＸ  １０Ｋ  Ｅｍｂｅｄｄｅｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  ＦａｍｉＩｙ  Ｄａｔａ  Ｓｈｅｅｔ）」の３１−５３頁に開示されているように、アルテラコーポレイションからのフレックス  １０Ｋ（ＦＬＥＸ  １０Ｋ（商標））ＦＰＧＡにおいて使用されている（「ＦＬＥＸ  １０Ｋ」はアルテラコーポレイションによって所有されている商標である）。ＦＬＥＸ  １０Ｋ論理ブロックにおいては、８個のフィードバック経路が８個の４入力関数発生器を具備する論理ブロック内に設けられている。従って、関数発生器出力の各々が関数発生器の各々の１個の入力を同時的に駆動することは不可能である。従って、関数発生器内への論理のソフトウエアマッピングは、同一の論理ブロック内の別の特定の関数発生器における論理に関連するフィードバック経路を有する特定の関数発生器内に論理を配置させることの必要性によって複雑なものとされる。２個又はそれ以上の関数発生器が同一の論理ブロックにおける単一の関数発生器にデータを供給する場合には、ＦＬＥＸ１０Ｋ論理ブロックの特定の関数発生器内に論理を配置させることが必要とされる場合がある。ＦＬＥＸ  １０Ｋ入力マルチプレクサ内に充分な数のＰＩＰが設けられる場合には、この制限を解消することが可能である。然しながら、アルテラの解決方法は、多数のＰＩＰ（且つその結果発生するより大きなシリコン面積）と配置ソフトウエア複雑性との間の暗示的なトレードオフ即ち利益衡量を腹んでいる。
発明の要約
本発明の１つの側面によれば、与えられた論理ブロックを高速の経路を介して隣接する論理ブロック及び幾つかのタイル分離れた論理ブロックの両方へ接続させることが可能であるように、ＦＰＧＡ相互接続構成体は配線用セグメント長及び論理ブロックに対する接続部の結合を有している。好適モードにおいては、本ＦＰＧＡは同一のタイルからなる二次元アレイを有している。各タイル内には１個の論理ブロックが存在している。又、各タイル内にはプログラム可能な相互接続点（ＰＩＰ）及び相互接続線のセグメントが設けられており、それらは隣接するタイル内の相互接続線のセグメントを連結させる。これらの連結されたセグメントは、幾つかのタイルを介してある距離離れた他のタイル内のＰＩＰへ延在する相互接続線を形成する。隣接するタイルへ接続する線（単一長線と呼ばれる）及び第一タイルを少なくとも２個及び３個のタイル離れている少なくとも第二及び第三タイルへ接続している少なくとも３個のタイル長の線（中間長線と呼ばれる）の結合は、相互接続階層を形成し、それは任意の論理ブロックを任意の他の論理ブロックへ接続させることを可能とし、且つ、更に、隣接するタイル及びある距離離れた両方のタイルに対する高速の経路を可能とさせる。より長い相互接続線（長尺線と呼ばれる）はかなり離れたタイルの効率的な相互接続を可能とさせるための階層の第三レベルとして包含させることが可能である。長尺線はタイルアレイの幅全体にわたることが可能であり、又は２個又はそれ以上のより短い長尺線にプログラミングによってセグメント化させることが可能である。１実施例においては、２個又はそれ以上のタイルにわたるＰＩＰのパターンが長尺線の長さに沿って繰返されているという点において長尺線は中間長線から区別される。タイルアレイの寸法が増加される場合には、パターンの更なるインスタンスが発生する。対照的に、本発明に基づく中間長線はアレイの寸法が増加された場合に変化することのない所定長のものである。タイルアレイの寸法が増加されると、付加的な中間長線が加えられる。
本発明の独特な側面は、その相互接続線に対してどのＰＩＰも接続することのない少なくとも１個のタイルを介して延在しながら、少なくとも３個の別々のタイルにおける論理ブロックへプログラミングによって接続することの可能な１本の相互接続線（特に、中間長線又は長尺線）を有していることである。このような相互接続線は、どのＰＩＰも該相互接続線に対して接続するものではないタイルに対して「接続不可能」であり且つ該タイル内の論理ブロックに対して「接続不可能」であると言われるが、他のタイル内のＰＩＰを介して該相互接続線から該論理ブロックへ接続させることが可能である。相互接続線から与えられたタイル内の論理ブロックへのプログラム可能な接続は、（ａ）直接的に論理ブロック入力端に対して、（ｂ）同一のタイル内の相互接続線へ接続している１個又はそれ以上のＰＩＰを介して、又は（ｃ）同一のタイル内の相互接続線へ接続している１個又はそれ以上のＰＩＰを介して且つ１個又はそれ以上の単一長線を介して、行うことが可能である。相互接続線から与えられたタイル内の論理ブロックへのこのようないずれかのプログラム可能な接続を形成することが可能である場合には、その相互接続線は該論理ブロックに対して及び該タイルに対して「接続可能」であると言われる。
本発明の１つの側面の好適実施例においては、発信元のタイルから３個のタイル分離れた（即ち、発信元タイルから２個のタイルだけ離隔されている）タイルに対して中間長ラインが接続し、次いで継続し且つ６個のタイル分離れた（即ち、発信元タイルから５個のタイルだけ離隔されている）タイルへ接続する。この中間長線（「ヘックス線（ｈｅｘ  ｌｉｎｅ）」と呼ばれる）は１個、２個、４個、５個のタイル分離れている中間のタイルへ接続するものではない。その代わりに、これらのタイルは発信元タイル、３番目のタイル、又は６番目のタイルから単一長線を使用して間接的に到達される。ヘックス線によってトラバースされる７個のタイルのうちの３個のみを接続することは、ＰＩＰの数を減少させ、従って、相互接続線を形成するために必要とされるシリコン面積を減少させ（それにより、ＦＰＧＡのコストを低下させ）且つ、更に、ＰＩＰによって付加される容量を減少させる（それにより、ＦＰＧＡの性能を増加させる）。更に、この中間長ルーチング即ち経路付けと、隣りのタイルへの直接接続と、離れたタイルに対する長尺線との結合は、信号の高度に柔軟性のあるルーチング即ち経路付けを可能とさせる。
本発明のこの側面の相互接続構成体の多くの変形例が可能である。このような１つの変形例は、相互接続線（中間長線又は長尺線）に関し非対称的ＰＩＰパターンを使用することであり、その場合に該相互接続線は３個の論理ブロックを接続し、これら３個の論理ブロックのうちの２個が隣接したタイル内にあり、一方３番目の論理ブロックは他の２つのタイルから離隔されたタイル内に存在している。
ＦＰＧＡがより大型となると、タイル当たりに必要とされるルーチング即ち経路付けの量がより大きくなる。従って、必要なＰＩＰを実現するために必要とされるシリコン面積がより大型化する傾向となり、且つＦＰＧＡにおけるタイル数が増加するに従いタイル当たりのシリコン面積が増加する。タイル当たりに必要とされるＰＩＰの数を減少させることが望ましい。
１実施例においては、単一長線のみが論理ブロック入力端に対する接続部を有している。中間長線は互いに及び単一長線に対する接続部を有しているが、論理ブロック入力端に対する接続部を有するものではない。長尺線は中間長線に対する接続部を有しているが単一長線に対して又は論理ブロック入力端に対する接続部を有するものではない。従って、１個のタイル内のＰＩＰの数が減少されている。中間長線の場合の如く、長尺線上のＰＩＰの数を減少させることはシリコン面積と長尺線上の容量の両方を減少させ、それによりＲＣ遅延を減少させる。幾つかの実施例においては、特別のタイルが種々の相互接続線の間で付加的な接続部を有しており、高ファンアウト信号の分布を容易なものとさせる。幾つかの実施例においては、論理ブロック入力端への直接的なアクセスを有しているグローバル線がクロック又はその他の高ファンアウト制御信号等のグローバル信号に対して使用可能である。幾つかの実施例においては、長尺線は特別のタイルにおける代わりに繰返し可能なタイル内において互いに対する接続部を有している。
幾つかの実施例においては、単一長線はバッファされていないＰＩＰによって駆動され、且つ中間長線及び長尺線はバッファされているＰＩＰによって駆動される。信号は、典型的に、最初により長いバッファされている相互接続線上で経路付けされ、次いでより短いバッファされていない線上でファンアウトされる。このように、大型のバッファされていないＲＣツリーが開示され、ＦＰＧＡを介しての信号経路に関する遅延をより一様なものとさせ且つ性能を改善させる。より一様な遅延は、又、設計サイクルにおける初期の段階で回路の性能を予測することをより容易なものとさせる。
本発明の第二の側面によれば、論理ブロックはコンフィギャラブルロジックェレメント（ＣＬＥ）即ち形態特定可能論理要素と出力マルチプレクサとを有している。直接的に又は入力マルチプレクサを介してのいずれかによって幾つかのＣＬＥ出力端を幾つかのＣＬＥ入力端へ接続させる高速のフィードバック経路が論理ブロック内に設けられている。該高速のフィードバック経路は、出力マルチプレクサをバイパスし、従って、従来のＦＰＧＡ論理ブロックにおいて得られることが可能なものよりも一層高速の接続を提供している。高速のフィードバック経路を駆動するＣＬＥ出力端はバッファ型とするか又は非バッファ型とすることが可能である。該高速のフィードバック経路は、関数発生器入力端又はその他のＣＬＥ入力端を駆動するために使用することが可能である。１実施例においては、高速のフィードバック相互接続線は関数発生器の出力端から直接的にとられる。その他の実施例においては、ＣＬＥからの他の信号が高速のフィードバック経路を使用することを可能とするためにマルチプレクサが挿入されている。いずれの場合においても、同一の出力が高速のフィードバック経路と同一の論理ブロック内の出力マルチプレクサに対する入力端のうちの少なくとも幾つかの両方を駆動する。出力マルチプレクサをバイパスすることによって、該フィードバック経路はある程度の柔軟性を失うが出力マルチプレクサをトラバースすることによって発生される遅延を取り除いている。
論理ブロック当たり４個の４入力関数発生器を具備する１実施例においては、４本の高速のフィードバック経路が設けられており、その各々は各関数発生器の異なる入力端へ延在している（即ち、各関数発生器は４個の入力端を有しており、その各入力端は４個の関数発生器のうちの異なる１つによって駆動することが可能である）。従って、これら４つの関数をどのようにＣＬＥ内にマッピングするかに拘らず、互いにデータを供給する関数発生器の全ての可能な組合わせを高速のフィードバック経路で完全に実現することが可能である。従って、高性能の高速のフィードバック経路を使用して多様な広範な関数即ち機能を実現することが可能である。最大で５個の関数発生器を構成するＣＬＥ実施例は、本発明のこの側面の利点を得ることが可能であり、５個の関数発生器出力端の各々が他の４個の関数発生器の各々の４個の入力端のうちの異なる１つへデータを供給する。
本発明の３番目の側面によれば、高ファンアウト信号をアレイ内の任意のタイルへ配分させることが可能である。水平長尺線上の信号は複数個のタイルからなる１つの行をトラバースし、その場合に、それはヘックス線及び単一長線を介して各タイル内の論理ブロックと接触する。幾つかの水平なヘックス線へ接続している水平な単一長線はプログラミングによって垂直な長尺線を駆動することが可能である。これらのプログラム可能な接続部を使用して、水平な長尺線バス上の信号は垂直な長尺線へ転送される。垂直な長尺線から、高ファンアウト信号が複数個のタイルからなるアレイへ送給される。
【図面の簡単な説明】
図１Ａは従来のＯＲＣＡ  ＯＲ２Ｃ論理ブロック（１００）の概略図を示している。
図１ＢはＯＲＣＡ  ＯＲ２Ｃ論理ブロック１００の出力端から同一の論理ブロックの入力端へのプログラム可能のフィードバック経路を示している。
図２は本発明の１実施例に基づく単一長及び中間長相互接続線のいくつかを示している。図２は図３Ａの簡単化した表示である。
図３Ａは中間長線が３番目及び６番日毎のタイルへ接続されている場合の（即ち、ヘックスバスが使用されている）単一のタイルのバス表示を示している。
図３Ｂは単一長バス及びスイッチング構成体４０３の異なる表示を示した図３Ａの僅かに変更したものである。
図３Ｃは好適実施例における単一のタイルの詳細な表示を示している。図３Ａに示した全ての特徴が示されており、且つ幾つかの付加的な特徴が包含されている。
図４はＩＮＴＥＲＣＯＮＮＥＣＴ（相互接続部）として示した図３Ｃの領域を示している。
図５は図３Ｃの出力マルチプレクサ（ＯＭＵＸ）を示している。
図６は図３Ｃの形態特定可能論理要素（ＣＬＥ）に対する入力信号及び出力信号を示している。
図６Ａ及び６Ｂは図３ＣのＣＬＥに対する内部論理を示している。全体的なＣＬＥを見るためには、図６Ａ及び６Ｂを図６Ａの上部における手引きに示したように並べて観察せねばならない。
図７は図３Ｃの入力マルチプレクサ（ＩＭＵＸ）を示している。
図８はヘックス線及び単一長線を使用した信号経路のルーチング例を示している。
図９は長尺線と、ヘックス線と、単一長線とを使用した信号経路のルーチング例を示している。
図１０は複数個のタイルからなる列へ送給される高ファンアウト制御信号のルーチング例を示している。
図１１は複数個のタイルからなる列へ送給される高ファンアウト関数発生器入力信号のルーチング例を示している。
図１２は複数個のタイルからなるアレイへ高ファンアウト信号を送給するために図１０及び／又は１１の相互接続体をどのようにして結合するかの１例を示している。
図１３は与えられたＣＬＥの出力端から同一のＣＬＥの入力端への高速のフィードバック経路を示した図３Ｃの実施例における論理ブロックの一部の簡単化した表示である。
図面の詳細な説明
図面全体にわたって以下の図面の表記方法が使用されている。２つの線の交差点における小さな中実の黒のドットは交差する線の間の永久的な電気的接続を表わしている。２つの線の間の交差点を取り囲むか又は単一の線を２つの線セグメントへ分割する開いた円はそれらの線又は線セグメントの間のプログラム可能な双方向接続を表わしている（例えば、接続を形成するためにターンオンされるパストランジスタ）。２つの線の交差点における開いた三角形はその三角形の頂点によって指し示されている線へ向かう信号の流れを有するプログラム可能な接続を表わしている（該信号は、勿論、その線の全長にわたって存在している。従って、反対方向を示している三角形は同一の信号の流れを有するものである。何故ならば、その三角形は同一の線を指し示すからである）。２つのバスの間の接続を示す三角形は、そのバスを構成している線の間において少なくとも１個の接続が存在していることを表わしている。本発明の１実施例によれば、プログラム可能な相互接続点（ＰＩＰ）を使用することによってプログラム可能な接続が提供されており、その場合に各ＰＩＰは少なくとも１個のトランジスタを有している。
１個のタイル又はブロック構成体内において終了する（即ち、１個のタイル又はブロックの境界へ延在するものではない）線はそのタイル又はブロック内において物理的に終端されている。そのタイルの境界へ延在する線は次のタイル上の線と接続し、２つのタイルが当接される場合に接触される。注意すべきことであるが、タイルの端部へ延在し、従って、となりのタイル内へ延在する幾つかの線はタイル境界において名前が変わる。
本発明概念の簡単化した表示
図２は本発明の１実施例に基づく単一長相互接続線及び中間長相互接続線の幾つかを簡単化した形態で示している。図２はＦＰＧＡにおける複数個のタイルからなるアレイの一部を示している。各タイル内においては論理ブロックＬ及びルーチング又はスイッチング構成体Ｒが存在している。各タイル内には、又、隣接するタイル内の線セグメントと接続して相互接続線を形成する線セグメントが存在している。ＦＰＧＡ内の相互接続線の殆どは、本発明の接続特性をぼやかすことがないように図２においては示されていない。ＴＩＬＥ１，ＴＩＬＥ２，ＴＩＬＥ３として示した３個のタイルがより詳細に示されており、且つＴＩＬＥ１，ＴＩＬＥ２，ＴＩＬＥ３から延在する単一長及び中間長相互接続線が示されている（然しながら、水平方向に延在する中間長線は示していない）。単一長線Ｎ，Ｓ，Ｅ，ＷはＴＩＬＥ２から隣りの４個のタイルに対して北、南、東、西に延在している。記号が付してないが等価な線がＴＩＬＥ１及びＴＩＬＥ３からも延在している。その他のすべてのタイル内においても同一の構造が存在しているが図２には示していない。これらの単一長線Ｎ，Ｓ，Ｅ，Ｗは隣りのタイル内のスイッチング構成体Ｒの間に延在しており、且つ論理ブロックＬに対するプログラム可能な接続部を有している。
中間長線も各タイルから北、南、東及び西へ延在して、３個及び６個のタイル分離れた他のタイルへ接続する。従って、この実施例においては、中間長線は前に定義したような「ヘックス線」である。垂直に延在する（北及び南）ヘックス線のみが示されており、接続をぼやかすことを回避している（後の図は完全な接続パターンを示している）。
ＴＩＬＥ２から、ヘックス線６ＶＮは６個のタイルの長さにわたり北へ延在し、北へ３個のタイルであるＴＩＬＥ１へ接続すると共に北へ６個のタイルである別のタイル（不図示）へ接続している。又、ＴＩＬＥ２から、ヘックス線６ＶＳは６個のタイル分南へ延在し、ＴＩＬＥ３へ接続すると共に南へ６個のタイルである別のタイル（不図示）へ接続している。ヘックス線６ＶＭはタイルＴＩＬＥ２をタイルＴＩＬＥ１及びＴＩＬＥ３へ接続している。従って、３個のヘックス線が垂直方向に延在しており且つＴＩＬＥ２へ接続している。又、ＴＩＬＥ２において、線６ＶＳはこれら２つの線の端部を連結するＰＩＰによって示されるように、プログラミングによって線６ＶＮへ接続することが可能である。このように、始めのタイルから１２個のタイル分離れたタイルに対して容易な接続を使用することが可能である。６個のタイル分の長さの別の相互接続線への接続部へ延在するためには単に１個の付加的な接続部が必要とされるに過ぎない。
注意すべきことであるが、ＴＩＬＥ２内において、単一長線Ｎ，Ｓ，Ｅ，Ｗは論理ブロックＬへのアクセスを有するに過ぎない。従って、ヘックス線上の信号はデスティネーション（宛先）タイル内の論理ブロックＬへアクセスするためには単一長線へ転送されねばならない。線６ＶＳ上のＴＩＬＥ２へエンターする信号は線Ｗ，Ｎ又はＥへ接続することが可能であり且つそれによりＴＩＬＥ２内の論理ブロックＬへ接続することが可能である。更に、現在単一長線Ｗ，Ｎ又はＥ上に存在する信号は、更に、ＴＩＬＥ２の西、北又は東にあるタイル内の論理ブロックＬへアクセスすることが可能である。この実施例においては、ヘックス線６ＶＳから単一長線Ｓへの接続は設けられていない。何故ならば、この接続を除去することはシリコン面積を節約するからである。ＴＩＬＥ２の南側のタイルへは別の経路を介してアクセスすることが可能である。図２の実施例においては、ＴＩＬＥ３内の信号は、（１）北側へ２つの単一長線をトラバースするか、又は（２）単一長線Ｗ又はＥへ接続するＴＩＬＥ２に対するヘックス線６ＶＭを取り、次いでＴＩＬＥ２内のスイッチング構成体Ｒへエンターし且つ単一長線Ｗ又はＥから該スイッチング構成体内部の単一長線Ｓへ「バウンス（跳ね返り）」（同一のタイル内の相互接続線上へ移動し且つそれから出ること）のいずれかによってＴＩＬＥ２の南側のタイルの論理ブロックへ到達することが可能である。２番目の変形例は１番目の変形例より信号経路内においてもう１個のＰＩＰ、即ちスイッチング構成体Ｒ内のＰＩＰを有するものである。別の実施例においては、南側への接続部を設けることは勿論可能である。
繰返し可能なタイル表示
図３Ａは単一のタイルをより完全に示している。図３Ａはバス幅を表わす数字を持った斜線によって示されるように、種々の幅のバスセグメントを示している。各バスセグメント内のライン数は、勿論、異なる実施例においては異なるものとすることが可能である。図３Ａの実施例においては、タイルは同一である。この表示は単一のタイルのものであるから、完全な相互接続線は、図３Ａのトップ即ち上部へ延在するバスセグメントは北側に隣接して配置されている図３Ａの別のコピーの底部におけるバスセグメントと接触することを想起することにより理解せねばならない。同様に、図３Ａの右側へ延在するバスセグメトは右側に隣接して配置されている図３Ａの別のコピーのバスセグメントへ接触する等である。ＦＰＧＡ内に存在するようなアレイは図３Ａの多数のコピーを一緒に配置させることにより表わされる。
ヘックスバス
図３Ａにおいては、１２セグメントバス６Ｎがプログラム可能な領域ＰＲＯＧ−２を介して水平方向に延在しており、次いで北側へ方向転換してバスセグメント４７となる。バスセグメント４７はそのタイルの上端部へ延在している。図３Ａの北側に隣接して配置されている図３Ａの別のコピーはそのコピーの底部へ延在するバスセグメント４６を有しており、それはバスセグメント４７と接触する。バスセグメント４６はそのタイルにわたって垂直方向に延在するが、それがそのタイルの上部に到達する前に１個のバスだけ右側へオフセットされ、従って与えられたタイル内のバスセグメント４６は北側に隣接するタイル内のバスセグメント４５と接触する。同様に、タイル境界において、バスセグメント４５はバスセグメント４４と接触し、バスセグメント４４はバスセグメント４３と接触し、バスセグメント４３はバスセグメント４２と接触し、且つバスセグメント４２はバスセグメント４１と接触する。このオフセット配置はヘックス長バスが６個の隣接するタイルにわたって延在することとなる。バスセグメント４１は底部からタイル内へ延在し、次いで西側に方向転換し且つ、バスセグメント６Ｓとして、プログラム可能な領域ＰＲＯＧ−２を介して水平方向に延在する。バスセグメント６Ｖもプログラム可能な領域ＰＲＯＧ−２を介して水平方向に延在し、且つバスセグメント４４へ接続する。従って、各タイルはプログラム可能な領域ＰＲＯＧ−２内へ延在する３個のバスセグメント６Ｎ，６Ｖ，６Ｓを有している。これらのバスセグメントは与えられたタイルから３個及び６個のタイル離れたタイルへの接続を可能とし、そのことは、これらの中間長線を上に定義した如くヘックス線とさせる。バスセグメント４１，４２，４３，４４，４５，４６，４７は一体となって図３Ａの北側端部において６ＶＮで示され且つ南側端部において６ＶＳで示される７２線垂直「ルーチングトラック」を形成している。バスセグメント４２，４３，４４，４５，４６は「内部セグメント」と呼ばれ、且つバスセグメント４１及び４７は「端部セグメント」と呼ばれる。
水平方向の１２セグメントヘックスバスは、同様に、設けられており、各タイルはプログラム可能な領域ＰＲＯＧ−２内へ延在する部分６Ｗ，６Ｈ，６Ｅを有している。バスセグメント６Ｅはプログラム可能な領域ＰＲＯＧ−２から延在しており、次いで東へ方向転換し且つそのタイルの東側端部に向かってバスセグメント３７として延在する。与えられたタイルのバスセグメント３７はその東側に隣接する同一のタイル内のバスセグメント３６と接触する。バスセグメント４１−４７と同様に、バスセグメント３１−３７は６個の隣接するタイルを介して延在するヘックス長バスを与えている。バスセグメント３１はバスセグメント６Ｗとしてプログラム可能な領域ＰＲＯＧ−２内へ延在する。バスセグメント３４はバスセグメント６Ｈとしてプログラム可能な領域ＰＲＯＧ−２内に延在している。バスセグメント３１，３２，３３，３４，３５，３６，３７は、一体となって、図３Ａの西側端部において６ＨＷとして示され且つ東側端部において６ＨＥとして示されている７２線水平方向ルーチングトラックを形成している。
注意すべきことであるが、７２線ヘックスバス６ＶＮ，６ＶＳ，６ＨＷ，６ＨＥは、該バスを構成するヘックス線が全てが同一のタイルで開始するものではなく且つ同一のタイルで終了するものではない、即ちそのバスに対する固定した境界が存在しないという点において、典型的なバスではない。各タイル内において、１２本のヘックス線が終了し且つ別の１２本のヘックス線が開始する。この特徴は、就中、本発明構成をＫｅａｎの構成及びその他の階層的相互接続構成体のものと異ならしめている。階層的相互接続構成体においては、ＦＰＧＡは階層的境界における周期的なルーチング構造でもって階層的に分割される。本発明は同一のタイルを使用し、そのタイルの各々は該線のうちの幾つかの端部セグメントを有している。
その他のバス
北、南、東、西の単一長バス（夫々、Ｎ，Ｓ，Ｅ，Ｗ）も設けられており、各々が２４本の線幅である。これらの単一長バスはプログラム可能な領域ＰＲＯＧ−２内に位置されているスイッチング構成体４０３内に互いに接続する。図３Ａにおいて、単一長バスＳ，Ｗ，Ｅは、図４に対応するために、２つの位置においてスイッチング構成体４０３に入る状態が示されている。然しながら、Ｓ，Ｗ，Ｅの記号が付けられているバスセグメントはスイッチング構成体４０３を介して連続的に通過する。これらのバスセグメントがスイッチング構成体４０３を介して通過する態様は図３Ｂにおいて明確にされており、それはスイッチング構成体４０３の異なる表示を示しているがその他は図３Ａと同一である。
この実施例においては、各単一長線は入力マルチプレクサＩＭＵＸ−２へ接続させることが可能である。各単一長線は、又、ヘックス線の幾つかへ接続させることが可能である。
図３Ａは別の特徴、即ち水平方向及び垂直方向の長尺線バスを有している。これら２つの長尺線バスの各々は１２本の線幅である。各長尺線バスから取られた２線バス４３７Ｐ，４３８（夫々、図４及び７における線ＬＶ０及びＬＶ６，ＬＨ０及びＬＨ６に対応している）は、プログラム可能な領域ＰＲＯＧ−２内へ延在しており、そこで、それらはヘックス線を駆動すべくプログラミングによって接続させることが可能である。各長尺線バス内の２つのアクセスされた長尺線は、６本の線によって互いに分離されており、且つ各長尺線は６個のタイル毎にアクセスされる。各長尺線バスから取られた２線バス４３７Ｉ，４３８は該長尺線へ信号を供給することの可能な入力マルチプレクサＩＭＵＸ−２から延在している（２線バス４３７Ｉは２線バス４３７Ｐと同一の２つの信号を有している）。水平方向の長尺線バスは図３Ａの西側端部においてＬＨＷで示されており且つ東側端部においてＬＨＥで示されている。ＬＨＷ及びＬＨＥはオフセット領域４２２（図３Ｃに示してある）を介して延在しており、該領域はバスをタイル当たり１本の線だけオフセットさせる。このように、各同一のタイルが水平方向長尺線バスＬＨＷ／ＬＨＥの２つの異なる線へアクセスし、且つ各長尺線は６個のタイル毎にアクセスされる。同様に、垂直方向の長尺線バスは図３Ａにおいて北側端部においてＬＶＮで示されており且つ南側端部においてＬＶＳで示されている。ＬＶＮ及びＬＶＳはオフセット領域４２２と同様のオフセット領域４２１を介して延在している。これらの長尺線バスはタイルアレイの全長又は全幅を延在している。
プログラム可能な領域ＰＲＯＧ−２を水平方向に貫通して別のバスが延在しており、即ちトライステートバッファバスであり、それは４本のライン幅であり図３Ａの西側端部においてＴＷで示されており且つ東側端部においてＴＥで示されている。ＴＷ及びＴＥはプログラム可能なオフセット領域４２３によって接続されている。プログラム可能なオフセット領域４２３は、それがバスを１本の線だけオフセットさせるという点においてオフセット領域４２１及び４２２と類似しているが、プログラム可能なオフセット領域４２３は４本のライン幅に過ぎず且つバスＴＷ又はＴＥの長さ延在する１個のプログラム可能な双方向ＰＩＰを有している（プログラム可能なオフセット領域４２３の内部構造は図３Ｃに示してある）。このＰＩＰはトライステートバスの各線を４個のタイル毎に「ブレイク」即ち破断させるか、又は最大でタイルアレイの幅全体にわたってトライステート線を連続させるために４個のタイル毎に線を一緒に接続させるためのいずれかのために使用することが可能である。
プログラム可能なバス接続部
プログラム可能なバス接続部は領域ＩＮＴＥＲＣＯＮＮＥＣＴ（相互接続体）−２内に位置されており、それはプログラム可能な領域ＰＲＯＧ−２の一部である。ヘックスバスが単一長バスと交差する場合には、開いた三角形はプログラム可能な接続部を表わしており、その場合に、三角形のベースにおけるヘックス線のうちの１本が三角形の先端部における単一長線のうちの１本を駆動することが可能である。ヘックス線に向かっている三角形はバッファされた接続部であることを表わし、且つ単一長線に向かった三角形は単純なパストランジスタのようなバッファされていない接続部を表わしている。
注意すべきことであるが、全ての交差部が三角形を有するわけではない。例えば、ヘックスバスセグメント６Ｖは東及び西単一長バスＥ及びＷへ接続することが可能であるが、北及び南バスＮ及びＳへ接続することが可能なものではない。同様に、ヘックスバスセグメント６Ｈは北及び南単一長バスＮ及びＳへ接続することが可能であるが、東及び西バスＥ及びＷへ接続することが可能なものではない。南側から来るヘックスバスセグメント６Ｓは東及び西単一長バスＥ及びＷへ接続することが可能であり且つ北バスＮへ接続することも可能である。この部分的な接続性は良好なルーチング可能性及び性能のために有用な接続部を提供しながらシリコン面積を節約するものである。同様に、北側から来るヘックスバスセグメント６Ｎは東及び西単一長バスＥ及びＷへ接続することが可能であり更に南バスＳへ接続することも可能であり、西側から来るヘックスバスセグメント６Ｗは北及び南単一長バスＮ及びＳへ接続することが可能であり且つ東バスＥへ接続することも可能であり、且つ東側から来るヘックスバスセグメント６Ｅは北及び南単一長バスＮ及びＳへ接続することが可能であり更に西バスＷへ接続することも可能である。これらの場合の各々において、接続部はハードウエア又はソフトウエアによって単一方向性のものであるように制限される場合があり、その場合にはヘックスバスは単一長バスを駆動することが可能であるが単一長バスはヘックスバスを駆動することが可能なものではない（この実施例の実際のハードウエアにおいては、接続部は双方向パスゲートであり、その場合に単一長バスはヘックスバスを駆動することが可能である。然しながら、そのようにすることは結果的に得られる信号経路の速度を著しく低速化させ、従って、ＦＰＧＡをプログラミングするためのソフトウエアはこのような経路を選択することはない）。
単一長バスの全ては出力バスＯＵＴを介して出力マルチプレクサＯＭＵＸ−２によって駆動することが可能である。ヘックスバスセグメント６Ｅ，６Ｗ，６Ｎ，６Ｓも出力バスＯＵＴによって駆動することが可能である。
垂直方向のヘックスバスセグメント６Ｎ及び６Ｓはプログラム可能なバス接続部４０４を介して互いに接続させることが可能である（プログラム可能なバス接続部４０４の内部構造は図４に示してある）。このように、垂直方向のヘックスバスにおける１本の線は６個のタイルの後に終端するのではなく１２個、１８個又はそれ以上のタイルにわたって連続させることが可能である。同様に、水平方向のヘックスバスセグメント６Ｗ及び６Ｅはプログラム可能なバス接続部４０５を介して互いに接続させることが可能である。更に、垂直方向のヘックスバスセグメント６Ｎ及び６Ｓはプログラム可能なバス接続部４０６，４０７，４０８，４０９を介して水平方向のヘックスバスセグメト６Ｗ及び６Ｅへ接続させることが可能である。これらのバス接続部の接続性を図４に示してある。注意すべきことであるが、ヘックスバスセグメント６Ｖ（それは垂直方向における３番目のタイルへの接続を実現する）は水平方向のヘックスバスセグメント６Ｗ及び６Ｅを駆動することが可能である。同様に、ヘックスバスセグメント６Ｈ（それは、水平方向における３番目のタイルへの接続を実現する）は垂直方向のヘックスバスセグメント６Ｎ及び６Ｓを駆動することが可能である。この手段によって、単一経路の方向は水平方向と垂直方向との間で容易に変更される。
与えられたタイルにおける水平方向のヘックスバスセグメント６Ｅ及び６Ｗは同一のタイルにおいてアクセスされる２本の水平方向の長尺線によって駆動することが可能である。与えられたタイルにおける垂直方向のヘックスバスセグメント６Ｎ及び６Ｓは同一のタイルにおいてアクセスされる２本の垂直方向の長尺線に沿って駆動することが可能である。この能力は、後に図１０−１２において示されるように、ヘックス線によって直列的に伝搬するのではなく長尺線から各ヘックス線へ（従って、単一線へ）ルーチング即ち経路付けすることによって、長尺線上の信号が高速で複数個のタイルからなる行又は列全体へファンアウトすることを可能とする。
スイッチング構成体４０３は各単一長バス（Ｎ，Ｓ，Ｅ，Ｗ）を他の単一長バスの各々へ接続させることを可能とする。スイッチング構成体４０３における接続性を図４に示してある。
プログラム可能なバス接続部の重要性
図３Ａにおけるバス接続部は本発明に基づくＦＰＧＡ用の相互接続構成体を実現している。この実施例のバスは以下のような態様で相互作用を行う。（１）長尺線はそれと平行なヘックスバスを駆動することが可能であるが、水平方向のヘックスバスを介することなく、垂直なヘックスバスか又は単一長バスのいずれかを駆動することは不可能であり、（２）ヘックスバスはそれに対して平行な及び垂直な単一長バスを駆動することが可能であるが、単一長バスはヘックスバスを駆動することは不可能である（然しながら、１実施例においては、ヘックスバス及び単一長バスは双方向ＰＩＰを介して接続されており、従ってこれらの接続部を単一方向のものとさせるためにソフトウエア上の制限が課される）、（３）ヘックスバスは、更に、それに対して平行及び垂直なその他のヘックスバスを駆動することが可能であり、且つ（４）殆どのヘックスバスは入力マルチプレクサＩＭＵＸ−２の入力端へ接続することは不可能であるが、ヘックスバスからの制限された数の線は後に説明するようにこのような接続を行うことが可能である。従って、図３Ａの相互接続構成体においては、最初に、最も長い適切な線上に信号を配置させ且つそこから該信号をより短い線へ移動させることによってタイル間における接続を形成することが望ましい。例えば、（１）３個又は６個のタイル分離れた論理ブロックに対する接続はヘックス線を介して行われ、単一長線へスイッチングして入力マルチプレクサへ到達し、（２）７個のタイル分離れた論理ブロックへの接続は最初に１本のヘックス線、次いで、１本の単一長線を介して行われ（この接続は第一の例より多くのＰＩＰを必要とするものではない）、（３）ＦＰＧＡの反対側の論理ブロックへの接続は最初に長尺線を介し、次いでヘックス線を介し、次いでデスティネーション入力マルチプレクサへエンターする前に１本又はそれ以上の単一長線へ転送することによって行われる。このように、バッファされていないＰＩＰが高度に負荷されている線を駆動することがないことを確保することによって大きなＲＣツリーが回避される。更に、相互接続構成体を介しての種々のタイプの信号経路は同様の遅延を有しており、回路の全体的な性能を増加させる。
勿論、多くの信号経路は複数個のタイルからなる１つの列又は１つの行内のみを走行するものではない。角を曲がるために、信号経路は与えられた単一長線からスイッチング構成体４０３を介して垂直な単一長線へ、又は与えられたヘックス線から垂直なヘックス線へ移ることが可能である。
タイルのプログラム可能な論理部分
図３Ａの繰返し可能なタイルの相互接続部分ＩＮＴＥＲＣＯＮＮＥＣＴ−２は異なるタイルにおける論理ブロック間において信号を送給する目的のためにのみ存在している。この実施例の論理ブロックＬＢは形態特定可能論理要素ＣＬＥ−２、出力マルチプレクサＯＭＵＸ−２、入力マルチプレクサＩＭＵＸ−２、２個のトライステートバッファ４４５を有している（トライステートバッファの数は、勿論、本発明のその他の実施例においては異なるものとすることが可能である）。図３Ａにおける形態特定可能論理要素ＣＬＥ−２、入力マルチプレクサＩＭＵＸ−２、出力マルチプレクサＯＭＵＸ−２は各入力端及び出力端上において小さな中実の黒色の三角形を有している。三角形の頂点の方向は、信号の流れ方向を表わしている。従って、その頂点が矩形状のボックス内側にある三角形は、入力線又はバスを表わしており且つその頂点が矩形状のボックスの外側にある三角形は出力線又はバスを表わしている。
この実施例の入力マルチプレクサＩＭＵＸ−２は、（１）単一長バスＮ，Ｓ，Ｅ，Ｗの各々、（２）各１２線垂直ヘックスバス４２，４３，４４，４５，４６，４７の４本の線４２８、（３）出力マルチプレクサＯＭＵＸ−２からの８線出力バスＯＵＴからの４本の線４２９、及び（４）形態特定可能論理要素ＣＬＥ−２からの全部で４本の高速フィードバック線４３０からの入力を受付ける。入力マルチプレクサＩＭＵＸ−２は、プログラミングによって、以下の出力信号、（１）形態特定可能論理要素ＣＬＥ−２へ入力信号を供給する２つの１３線バス４３６、（２）トライステートバッファ４４５のデータ入力端を駆動する２本信号線４３１、（３）トライステートバッファ４４５をイネーブル即ち動作可能状態とさせる２本の信号線４３２、（４）垂直方向の長尺線バスＬＶ線の２本の線、及び（５）水平方向の長尺線バスＬＨＥの２本の線、を形成することが可能である。
形態特定可能論理要素ＣＬＥ−２は入力マルチプレクサＩＭＵＸ−２からの入力のみを受付け、且つ２つの６線バス４３３として図３Ａに示した１２本の出力線を駆動する。これらの出力線のうちの４本は入力マルチプレクサＩＭＵＸ−２に対する高速フィードバック経路４３０を形成している。形態特定可能論理要素ＣＬＥ−２からの出力４３３は出力マルチプレクサＯＭＵＸ−２を駆動する。ＯＭＵＸ−２はトライステートバッファバスＴＷから１つの付加的な入力３３４を取り且つ８線出力バスＯＵＴを駆動する。これら２つのトライステートバッファ４４５の各々は２線バス４３５を介してトライステートバッファバスＴＷ内のトライステート線のうちの２つを駆動する。トライステートバッファバスＴＷに対するトライステートバッファ４４５の接続は図３Ｃに更に詳細に示してある。
詳細な繰返し可能なタイル表示
図３Ｃ−１２は本発明に基づく繰返し可能な相互接続構成体の好適な実施例を示しており、その実施例は図３Ａの実施例と類似している。図３Ｃは好適実施例における単一のタイルの詳細な表示を示している。図３Ａに示した全ての特徴が表わされており、且つ幾つかの付加的な特徴が包含されている。図３Ｃにおける符号は図３Ａにおける同一の符号に対応しており、従って対応する構成は容易に識別される。表示において１つの差異が存在しており、即ち、図３Ｃにおいては、図３Ａの７２線垂直方向ルーチングトラック６ＶＮ／６ＶＳが２つの３６線垂直方向ルーチングトラック、即ち右側における６ＲＮ／６ＲＳと左側における６ＬＮ／６ＬＳとして示されている。各１２線ヘックスバスの線のうちの半分はプログラム可能な領域ＰＲＯＧの片側に図示されており、それは図３Ａにおけるプログラム可能な領域ＰＲＯＧ−２に対応している。この表示上の差異はタイルの機能性に関して何ら影響を有するものではない。図３Ｃにおいて、水平方向及び垂直方向のヘックスバスは全てのバスの第一線をグループ化して示してある。第一線のみに符号が付けてある。例えば、符号４１乃至４７は図３Ａのヘックスバスセグメント４１乃至４７の第一線を表わしている。図３Ａのヘックスバスセグメント３１乃至３７は、同様に、示されているが、図３Ｃにおいては符号を付していない。
図３Ｃの相互接続領域ＩＮＴＥＲＣＯＮＮＥＣＴは図３Ａの相互接続領域ＩＮＴＥＲＣＯＮＮＥＣＴ−２と機能的に同一である。図３Ａにおいては示していない図３Ｃの実施例における特徴は、（１）タイルの上部に沿っての水平方向の４線グローバルバスＧが入力マルチプレクサＩＭＵＸに対する４個のグローバル入力を提供しており、そのグローバル入力は高ファンアウト又は高速グローバルクロック信号を配給するために使用することが可能であり、（２）出力バスＯＵＴ（出力マルチプレクサＯＭＵＸによって駆動される）からの２本の直接出力接続線ＤＯＷは西側端部から図３Ｃのタイルを出て、そこで、それらは西側の隣接するタイルの入力線ＤＩＥへ接続されており、（３）左側に隣接するタイルからの２本の直接入力接続線ＤＩＥは東端部上で図３Ｃのタイルへ入り且つ入力マルチプレクサＩＭＵＸへ移行し、（４）出力バスＯＵＴからの２本の直接出力接続線ＤＯＥは東側端部から図３Ｃのタイルを出て、そこで、それらは東側に隣接するタイルの線ＤＩＷへ接続されており、（５）西側に隣接しているタイルからの２本の直接入力接続線ＤＩＷは西側端部から図３Ｃのタイルへ入り且つ入力マルチプレクサＩＭＵＸへ移行し、且つ（６）２つのキャリィチェーンが形態特定可能論理要素ＣＬＥ内に設けられており、各キャリィチェーンはタイルの南側端部上に入力端を有すると共に該タイルの北側端部において出力端を有しており、該入力端はＣＩＮ０及びＣＩＮ１として示されており且つ該出力端はＣＯＵＴ０及びＣＯＵＴ１として示されている、ことを包含している。本発明に基づく相互接続構成体の幾つかの実施例はこれらの特徴を有するものではない。
相互接続領域
図４は図３Ｃの相互接続領域ＩＮＴＥＲＣＯＮＮＥＣＴを詳細に示している。全ての入力線及び出力線は図３Ｃ及び４における同一の相対的な位置に位置されている。図３Ｃにおける相互接続領域ＩＮＴＥＲＣＯＮＮＥＣＴへの入力線及び出力線は、図４における対応する符号を見ることによって識別することが可能である。上述した如く、垂直方向のルーチングトラックの分割を除いて、図４も図３Ａの相互接続領域ＩＮＴＥＲＣＯＮＮＥＣＴ−２に直接的に対応している。数字の符号は前に示し且つ記述した具体例の特徴を識別している。
図４におけるプログラム可能なバス接続４０４及び４０５は本発明の付加的な特徴を示している。プログラム可能なバス接続部４０４及び４０５において、垂直方向及び水平方向のヘックスバス（夫々、）はプログラミングによって一緒に接続され、１つのヘックスバスから次のものへの同一の方向における信号経路の継続性を与えることを可能としている。図４に示したように、これらの接続部の幾つかは双方向性のものとすることが可能であり（例えば、パストランジスタとして実現）、一方その他のものを単一方向性である（例えば、バッファ型の接続）。１実施例においては、双方向ヘックスバス（いずれかの端部からプログラミングによって駆動することが可能なヘックスバス）は単一方向のヘックスバス（一方の端部のみからプログラミングによって駆動することが可能なヘックスバス）よりもより多くのプログラム可能な垂直のバスに対する接続部を有している。このような双方向性の接続部は最も柔軟性があり、一方このような単一方向接続部はより高速である。何故ならば、ＰＩＰはプログラム可能なイネーブルなしで単一バッファとして実現することが可能だからである。
垂直方向の長尺線ＬＶ０及びＬＶ６は前述したように、各繰返し可能なタイル内においてアクセスされる垂直方向の長尺線バスＬＶＳの第一線及び第七線を夫々識別する。同様に、水平方向の長尺線ＬＨ０及びＬＨ６は、夫々、水平方向の長尺線バスＬＨＥの第一線及び第七線を識別する。
前述したように、図３Ａのヘックスバスセグメント６Ｎ，６Ｖ，６Ｓは図３Ｃにおいて、相互接続（ＩＮＴＥＲＣＯＮＮＥＣＴ）領域を左側端部から出て図３Ｃの３６線垂直方向ルーチングトラック６ＲＮ／６ＲＳを形成するヘックスバスセグメント６ＮＲ，６ＶＲ，６ＳＲと、相互接続（ＩＮＴＥＲＣＯＮＮＥＣＴ）領域を西側エッジから出て図３Ｃの３６線垂直方向ルーチングトラック６ＬＮ／６ＬＳを形成するヘックスバスセグメント６ＮＬ，６ＶＬ，６ＳＬとに分割している。
出力マルチプレクサＯＭＵＸ
図５，６，７は図３Ｃに示した実施例の出力マルチプレクサ（ＯＭＵＸ）、形態特定可能論理要素（ＣＬＥ）、入力マルチプレクサ（ＩＭＵＸ）を示している。全ての入力線及び出力線は図３Ｃ，５，６，７における同一の相対的な位置内に物理的に位置されており、従って入力線及び出力線は図と図との間で容易にトレースすることが可能である。図５及び７に示したＰＩＰパターンは、多くの可能なパターンのうちの１つを形成しているに過ぎない。これらの３つのブロックの具体例及びブロック間の接続は、３個のブロックが互いに互換性がある限り、本発明の異なる実施例において著しく異なる場合がある。例えば、ブロック間の接続数を増加させるか又は減少させることが可能である。更に、これらのブロックのうちの２個又はそれ以上を結合させるか、又は入力又は出力マルチプレクサの一方又は両方を除去することが可能である。これらの変形例については本明細書において更に説明するが、このような修正は本発明概念によって包含されている。本明細書を読んだ後に当業者にとって、本発明をこれら及びその他のアーキテクチュア変形例内において実施することが可能であることは明らかである。
図５は出力マルチプレクサＯＭＵＸの内部の詳細を示している。図５に示したように、入力線（論理ブロックＣＬＥの出力）は一連の８個の出力（ＯＵＴＯ乃至ＯＵＴ７）を駆動するために選択的にプログラムされる。全ての入力が全ての出力を駆動可能なものではなく、何個のＰＩＰを設け且つどにそれらを位置させるかの選択は、典型的に、性能、シリコン面積、ルーチング柔軟性のトレードオフ拘束条件に基づいて行われる。
形態特定可能論理要素ＣＬＥ
図６は図３Ｃに示した実施例の形態特定可能論理要素（ＣＬＥ）用の入力信号及び出力信号を示している。多くの形態特定可能論理要素を本発明の相互接続構成体と共に使用することが可能である。例えば、ザイリンクス１９９６データブックの４−１１乃至４−２３頁は、本発明と適合性を有するＸＣ４０００シリーズＦＰＧＡアーキテクチュアにおいて使用されている形態特定可能論理要素を記載している。該文書の４−２９４、４−２９５、１３−１３乃至１３−１５頁は、ＸＣ３０００シリーズＦＰＧＡアーキテクチュアにおいて使用されている別の互換性のある形態特定可能論理要素を記載している。同一の文書の４−１８８乃至４−１９０頁はＸＣ５２００ファミリィＦＰＧＡアーキテクチュアにおいて使用されている更に別の適合性のある形態特定可能論理要素を記載している。
図３Ｃの実施例と共に使用することの可能な１つのＣＬＥを図６Ａ及び６Ｂに示してある。この実施例においては、ＣＬＥは「スライス」と呼ばれる２つの類似した部分で実現されている。ＣＬＥの全体を見るためには、各々が１つのスライスを示している図６Ａ及び６Ｂを図６Ａの上部の手引きに示したように並べて観察せねばならない。ＣＬＥの機能即ち関数を制御するプログラム可能な（形態特定可能な）ビットが「ｘ」を包含する小さなボックスとして示されている。図６Ａ及び６ＢのＣＬＥは４個の関数発生器、即ち図６ＢにおけるＦ及びＧと、図６ＡにおけるＨ及びＪとを有している。関数発生器Ｆは４個のデータ入力端Ｆ１，Ｆ２，Ｆ３，Ｆ４を有しており、関数発生器Ｇは４個のデータ入力端Ｇ１，Ｇ２，Ｇ３，Ｇ４を有しており、関数発生器Ｈは４個のデータ入力端Ｈ１，Ｈ２，Ｈ３，Ｈ４を有しており、関数発生器Ｊは４個のデータ入力端Ｊ１，Ｊ２，Ｊ３，Ｊ４を有している。関数発生器Ｆ，Ｇ，Ｈ，Ｊの各々は、更に、データ入力端Ｄ１及び出力端Ｏを有している。更に、各関数発生器Ｆ，Ｇは、マルチプレクサ６９Ｂによってオプション的に反転されるクロック入力信号ＣＫ０、マルチプレクサ６０Ｂによってオプション的に反転されるセット／リセット入力信号ＳＲ０、マルチプレクサＶＦによってオプション的に反転される入力信号ＢＦから書込ストローブ発生器ＷＢにおいて発生される書込ストローブＷＳ入力端ＷＳＦ，ＷＳＧを夫々有している。各関数発生器Ｈ，Ｊは、マルチプレクサ６９Ａによってオプション的に反転されるクロック入力信号ＣＫ１、マルチプレクサ６０Ｂによってオプション的に反転されるセット／リセット入力信号ＳＲ１、マルチプレクサＶＨによってオプション的に反転される入力信号ＢＨから書込ストローブ発生器ＷＡにおいて発生される書込ストローブＷＳ入力端ＷＳＨ，ＷＳＪを夫々有している。
図６Ａ及び６Ｂの関数発生器Ｆ，Ｇ，Ｈ，Ｊは小型のＲＡＭ及びルックアップテーブルのみならずシフトレジスタとして動作する能力を有している。書込ストローブ信号ＷＳはシフト機能及びＲＡＭ書込サイクルを制御する。データ入力ポートＤＩはアドレスされたメモリセルに対して書込むためのデータ信号（この実施例においては、入力信号ＤＦ，ＢＨ，ＢＧ，ＢＪから派生される）を担持する。関数発生器Ｆ，Ｇ，Ｈ，Ｊがシフトレジスタとして形態が特定される場合には、シフトレジスタデータ入力信号は、夫々、ＢＦ，ＢＧ，ＢＨ，ＢＪから取られる。書込ストローブ発生器ＷＢ，ＷＡは、夫々、書込ストローブ信号ＷＳＦ及びＷＳＧ，ＷＳＨ及びＷＳＪを発生する。信号ＷＳＦ，ＷＳＧ，ＷＳＨ，ＷＳＪは、関数発生器がＲＡＭとして形態特定される場合に、書込サイクル期間中にそれらの夫々の関数発生器内へのデータをストローブし、且つ関数発生器がシフトレジスタとして形態特定される場合にはシフトを発生する。ＲＡＭとしての関数発生器の使用についてはザイリンクス１９９６データブックの４−１１乃至４−２３頁に記載されている。
従って、この実施例の関数発生器は、ルックアップテーブル、シフトレジスタ、１６×１ＲＡＭ、１６×１二重ポート型ＲＡＭの半分（１つのスライス内の２つの関数発生器が対構成とされた場合）、１６×２ＲＡＭの半分、又は３２×１ＲＡＭの半分（１つのスライス内の２つの関数発生器が対構成とされた場合）として形態特定することが可能である。関数発生器形態の全ての組合わせが単一のスライスにおいてサポートされているわけではない。サポートされている組合わせについて以下に詳細に説明する。この実施例においては、書込ストローブ信号ＷＳＦ及びＷＳＧは書込ストローブ発生器ＷＢによって制御される。関数発生器入力端ＷＳ上の高（論理１）パルスは、ルックアップテーブル（シフトレジスタとして形態特定されている場合）の第一メモリセルか、又はアドレスされたセル（ＲＡＭとして形態特定されている場合）のいずれかに対して関数発生器ルックアップテーブルに対する書込を発生させる。
書込ストローブ発生器ＷＢは関数発生器形態のサポートされている組合わせにおいて以下の如くに機能する。（ａ）関数発生器Ｆ及びＧが両方とも、ルックアップテーブルとして形態特定されている場合には、書込ストローブ信号ＷＳＦ及びＷＳＧは低（論理０）に保持され、（ｂ）関数発生器Ｇが１６×１ＲＡＭ又はシフトレジスタとして形態特定されており且つ関数発生器Ｆがルックアップテーブルとして形態特定されている場合には、書込ストローブ信号ＷＳＦは低に止まり、一方ＳＲ０がアクティブ（マルチプレクサ６０Ｂが反転性であるか否かに依存して低又は高）である場合に書込ストローブ信号ＷＳＧは高へパルス動作し且つＣＫ０は適切な遷移を行い（マルチプレクサ６９ＢがＣＫ０を反転させるか否かに依存して下降又は上昇）、（ｃ）関数発生器Ｆ及びＧが二重ポート型１６×１ＲＡＭ、１６×２ＲＡＭ、又は一対のシフトレジスタとして形態特定される場合には、書込ストローブ信号ＷＳＦ及びＷＳＧは、ＳＲ０がアクティブである場合に共に高パルス動作し且つＣＫ０は適切な遷移を行い、（ｄ）関数発生器Ｆ及びＧが単一の３２×１ＲＡＭとして形態特定されている場合には、書込ストローブ信号ＷＳＦ及びＷＳＧのうちの両方ではなく１つが、ＳＲ０がアクティブである場合に高をパルス動作し且つＣＫ０は適切な遷移を行う。発生される高パルスは、マルチプレクサＶＦが非反転性であり且つ入力信号ＢＦが高であるか又はマルチプレクサＶＦが反転性であり且つ入力信号ＢＦが低である場合に書込ストローブ信号ＷＳＦ上で発生し、そうでない場合には高パルスは書込ストローブ信号ＷＳＧ上で発生する。上の説明から理解することが可能であるように、ＳＲ０は書込イネーブルとして作用し且つＣＫ０はシンクロナスＲＡＭ又はシフトレジスタに対するクロックして作用し、一方ＢＦは１つのスライス内の２つの関数発生器が３２ビットＲＡＭとして形態特定されている場合に５番目のアドレスビットとして作用する。
書込ストローブ信号ＷＳＨ及びＷＳＪは書込ストローブ発生器ＷＡによって発生され且つ対応する態様で入力信号ＳＲ１，ＣＫ１，ＢＨによって制御される。
ＡＮＤゲート６１Ｆ，６１Ｇ，６１Ｈ，６１Ｊ及びマルチプレクサ８１Ｆ，８１Ｇ，８１Ｈ，８１Ｊ，ＣＦ，ＣＧ，ＣＨ，ＣＪは乗算器及びキャリィ論理機能を実現する。図６Ａ及び６Ｂにおいて、マルチプレクサ８１Ｆ，８１Ｇ，８１Ｈ，８１Ｊの各々はマルチプレクサ出力を決定する別個のプログラム可能なメモリセルを有している。別の実施例においては、各スライス内の２つのマルチプレクサ（８１Ｆ及び８１Ｇ、８１Ｈ及び８１Ｊ）はメモリセルを共有し、従って、同一のプログラムされた機能性を有している。
図６Ａ及び６Ｂの実施例においては、各スライスは別個のキャリィ遅延を有している。１つのキャリィ遅延は入力信号ＣＩＮ０から出力信号ＣＯＵＴ０へのものであり且つ関数発生器Ｆ及びＧの出力を組込む。他方のキャリィ遅延は入力信号ＣＩＮ１から出力信号ＣＯＵＴ１へのものであり且つ関数発生器Ｈ及びＪの出力を組込む。
各スライスは、更に、５入力関数マルチプレクサＦ５Ａ，Ｆ５Ｂ及び６入力関数マルチプレクサＦ６Ａ，Ｆ６Ｂを包含している。図６Ａにおいて、マルチプレクサＦ６Ａは図６ＢにおけるマルチプレクサＦ５Ｂの出力端から西側へ進む線Ｆ５Ｗ上の入力信号を受取る。図６Ｂにおいて、６入力関数マルチプレクサＦ６Ｂは、図６ＡにおけるマルチプレクサＦ５Ａの出力端から東へ進む線Ｆ５Ｅ上の入力信号を受取る。マルチプレクサＦ６ＡはマルチプレクサＦ５Ａからの第二入力信号を受取り、且つマルチプレクサＦ６ＢはマルチプレクサＦ５Ｂからの第二入力信号を受取る。マルチプレクサＦ５Ａは関数発生器Ｈ及びＪの出力端Ｏからの入力を受取る。マルチプレクサＦ５Ｂは関数発生器Ｆ及びＧの出力端Ｏからの入力を受取る。
この実施例のＣＬＥは線ＢＦ，ＢＨ，ＢＧ，ＢＪ上の４個のエキストラな制御信号を受取る。これらの線は、夫々、マルチプレクサＶＦ，ＶＨ，ＶＧ，ＶＪを使用してプログラミングすることによって反転させることが可能であり、且つ幾つかの有用な機能を制御する。５入力関数マルチプレクサＦ５Ａ，Ｆ５Ｂは、夫々、線ＢＨ，ＢＦによって制御される。６入力関数マルチプレクサＦ６Ａ，Ｆ６Ｂは、夫々、線ＢＪ，ＢＧによって制御される。ユーザはマルチプレクサＦ５Ａ及び関数発生器Ｈ及びＪの出力を使用して４入力マルチプレクサを形成することが可能であり、関数発生器Ｈ及びＪの各々は２入力マルチプレクサとして形態特定される。同様に、４入力マルチプレクサは、マルチプレクサＦ５Ｂと関数発生器Ｆ及びＧの出力とを使用して形成することが可能である。ユーザは、各々がその夫々の関数発生器からの出力を受取るマルチプレクサＦ５Ａ及びＦ５Ｂの両方からの入力を受取るマルチプレクサＦ６Ａ又はマルチプレクサＦ６Ｂのいずれかを使用して８入力マルチプレクサを形成することが可能である。更に、マルチプレクサＦ５Ａの場合には、関数発生器Ｈ及びＪ内のメモリセルは３２ビットＲＡＭとして動作することが可能である。マルチプレクサＦ５Ｂの場合には、関数発生器Ｆ及びＧ内のメモリセルは３２ビットＲＡＭとして動作することが可能である。線ＢＦ，ＢＨ，ＢＧ，ＢＪは後に記載するようなその他の機能に加えて、マルチプレクサ制御線又はＲＡＭアドレス線として作用する。
レジスタＲＸ，ＲＹ，ＲＺ，ＲＶは、夫々、出力ＸＱ，ＹＱ，ＺＱ，ＶＱを発生する。レジスタＲＸ，ＲＹ，ＲＺ，ＲＶへのクロック入力はこれらのレジスタ内へ頂点が向いている開いた三角形によって指定されている。クロックイネーブル入力ＣＥはＡＮＤゲート６２Ａ，６２Ｂを使用してディスエーブル即ち動作不能状態とさせることが可能である（ＡＮＤゲート６２Ａ，６２Ｂは、各ＡＮＤゲートに対する入力のうちの１つを供給するプログラム可能なメモリセルによって制御される）。レジスタＲＸ，ＲＹ，ＲＺ，ＲＶはセットポートＳ又はリセットポートＲを介して同期的に又は非同期的のいずれかでセット又はリセットすることが可能である（同期又は非同期の選択は各スライス内の２つのレジスタの間で共有されるプログラム可能なメモリセルによって行われる）。セット／リセット入力信号ＳＲ０，ＳＲ１はマルチプレクサ６０Ａ，６０Ｂ及びＡＮＤゲート６７Ａ，６７Ｂによって制御される。入力ＳＲ０，ＳＲ１（ＡＮＤゲート６７Ａ，６７Ｂによってイネーブルされる場合）は該レジスタをセット又はリセットすることが可能である。セット／リセット制御ユニットＲ８１Ｂ，Ｒ８２Ｂ，Ｒ８１Ａ，Ｒ８２Ａは、夫々、レジスタＲＸ，ＲＹ，ＲＺ，ＲＶをセット又はリセットするためにプログラミングによって制御される。レジスタＲＸ，ＲＹ，ＲＺ，ＲＶはラッチとして形態特定することも可能であり、その選択は各スライス内の２つのレジスタ間で共有されているプログラム可能なメモリセルによって行われる。
ＸＯＲゲートＳＦ，ＳＧ，ＳＨ，ＳＪは加算又は乗算の和部分を発生する。
マルチプレクサＭＦ，ＭＧ，ＭＨ，ＭＪは、夫々、出力線Ｘ，Ｙ，Ｚ，Ｖ上に配置するための信号の間の選択を行う。マルチプレクサＭＦ及びＭＨは関連する関数発生器出力信号、和出力信号、５入力関数マルチプレクサ出力信号の間で選択を行う。マルチプレクサＭＧ及びＭＪは関連する関数発生器出力信号、和出力信号、６入力関数マルチプレクサ出力信号の間で選択を行う。関数発生器Ｆ，Ｇ，Ｈ，Ｊ出力信号は、最大で４個の入力の論理関数が選択される場合に選択される。５入力関数マルチプレクサＦ５Ａ，Ｆ５Ｂ出力信号は、９入力関数の制限された組のうちの１つが選択される場合に選択され、５個の入力の任意の論理関数、４対１マルチプレクサ、２対１マルチプレクサへデータを供給する２個の４入力関数として実現することの可能な任意のその他の関数を包含している。６入力関数マルチプレクサＦ６Ａ，Ｆ６Ｂ出力信号は、１８入力関数の制限された組のうちの１つが選択される場合に選択され、６個の入力の任意の論理関数、８対１マルチプレクサ、２対１マルチプレクサへデータを供給する２個の５入力関数マルチプレクサＦ５Ａ，Ｆ５Ｂの出力として実現することの可能な任意のその他の関数を包含している。ＸＯＲゲートＳＦ，ＳＧ，ＳＨ，ＳＪの和出力信号は、例えば加算、減算又は乗算等の適宜の演算が実施される場合に選択される。
マルチプレクサＯＦ，ＯＧ，ＯＨ，ＯＪはキャリィ遅延が関連する関数発生器をバイパスすることを可能とする。マルチプレクサＯＦ，ＯＧ，ＯＨ，ＯＪは、夫々のキャリィマルチプレクサＣＦ，ＣＧ，ＣＨ，ＣＪが関数発生器出力信号Ｏによって制御されるか否か、又はキャリィ遅延がキャリィイン信号をキャリィ遅延に沿って次のステージへ伝搬させることによって関数発生器をバイパスするか否かを選択する。マルチプレクサＣＡ，ＣＢはキャリィイン信号ＣＩＮ０，ＣＩＮ１（夫々、インバータ１２１Ｂ及びＩ１２２Ｂ、Ｉ１２１Ａ及びＩ１２２Ａによってこの実施例においてはバッファされている）又は入力信号ＢＦ，ＢＨのいずれかをＣＬＥ内のキャリィ遅延に対する開始点として選択することによってそれらの夫々のキャリィ遅延上への付加的なアクセスを可能とする。
マルチプレクサＤＦ，ＤＨはマルチプレクサＭＦ，ＭＨの出力端からか又は入力信号ＢＦ，ＢＨからのいずれから、夫々、関連するレジスタＲＸ，ＲＺ内へ信号をロードさせることを選択する。マルチプレクサＤＧ，ＤＪはマルチプレクサＭＧ，ＭＪの出力からか又は入力信号線ＢＧ，ＢＪからのいずれかから、夫々、関連するレジスタＲＹ，ＲＶ内へ信号をロードさせることを選択する。
マルチプレクサＢＢ，ＢＡは、キャリィアウト信号ＣＯＵＴ０，ＣＯＵＴ１を出力線ＹＢ，ＶＢへ印加することが可能であるか又は入力信号ＢＧ，ＢＪを出力線ＹＢ，ＶＢへ転送してＣＬＥの片側で発生された信号をＣＬＥの反対側上のデスティネーション即ち宛先へ経路付けさせることの可能なバイパスマルチプレクサである。
ＡＮＤゲートＢＲＢ，ＢＲＡは、入力信号ＢＧ，ＢＪがレジスタＲＸ，ＲＹ，ＲＺ，ＲＶへのセット／リセット信号として作用することを可能とするか、又は、入力信号ＢＧ，ＢＪがレジスタＲＸ，ＲＹ，ＲＺ，ＲＶから切断させることを可能とし、従って入力信号ＢＧ，ＢＪは、例えば該レジスタをセット又はリセットすることなしに、ＤＩ信号を関数発生器Ｇ，Ｊへ供給するか又はマルチプレクサＦ６Ｂ，Ｆ６Ａの制御等のその他の目的のために使用することが可能である。ＡＮＤゲートＢＲＢ，ＢＲＡを制御するメモリセル内の論理０は線ＢＧ，ＢＪをセット／リセット制御ユニットＲ８１Ｂ，Ｒ８２Ｂ，Ｒ８１Ａ，Ｒ８２Ａから切断させ、一方関連するメモリセル内の論理１はＡＮＤゲートＢＲＢ，ＢＲＡをイネーブルさせてＢＧ，ＢＪ上の信号を使用してセット／リセット制御ユニットＲ８１Ｂ，Ｒ８２Ｂ，Ｒ８１Ａ，Ｒ８２Ａによって決定されるようにレジスタＲＸ，ＲＹ，ＲＺ，ＲＶをセット又はリセットさせる。
入力マルチプレクサＩＭＵＸ
図７は図３Ｃに示した実施例の入力マルチプレクサＩＭＵＸの内部の詳細を示している。図７に示したように、この実施例における入力線（Ｇ，４３０，ＤＩＷ，４２８，ＤＩＥ，４２９）は一連の３４個の出力（４３１，４３２，４３６，ＬＶ０，ＬＶ６，ＬＨ０，ＬＨ６）を駆動するように選択的にプログラムされる。これらの出力のうちの２６個がＣＬＥ入力端４３６を駆動し、２つがデータ入力端４３１を駆動し、且つ２つがトライステートバッファ４４５のイネーブル入力端４３２を駆動し、２つがＬＶ０及びＬＶ６（垂直方向の長尺線バスＬＶＳの２つの線）を駆動し、且つ２つがＬＨ０及びＬＨ６（水平方向長尺線バスＬＨＥの２つの線）を駆動する。全ての入力が全ての出力を駆動することが可能なわけではなく、幾つのＰＩＰを供給すべきか且つどこにそれらを物理的に位置させるかの選択は、典型的に、性能、シリコン面積、ルーチング柔軟性のトレードオフ拘束条件に基づいて行われる。１実施例においては、どのＩＭＵＸ入力線へも接続されていないいずれかのＩＭＵＸ出力端がプルアップを介して正電圧供給源へ接続している。
ルーチング例
図８及び９は図３Ｃに示した実施例に従って複数個のタイルからなるアレイ内において実現された信号経路の例を示している。図８及び９において使用されている符号の表記方法は、タイルが図に示したアレイの部分に基づく行及び列番号によって識別されるというものである。１個のタイル内において、線の符号は図３Ａに示したバスの符号に対応している。然しながら、図８及び９においては、符号はバス全体ではなく単一の線を表わしている。例において使用されている線のみが示されており且つ符号が付けられている。この符号の表記方法をもって、幾つかの符号は一度を超えて使用されている。しかし、不明確性は存在していない。何故ならば、全てのタイルは同一であり且つ各タイルは異なるタイル番号を有しているからである。タイル番号は同一の図面において一度を超えて使用されている符号の間を区別している。
図８はヘックス線及び単一長線を使用した信号経路のルーチング例を示している。信号はタイル８−２の発信元論理ブロックＬ０によって発信され、且つ、プログラミングによって、線ＯＵＴを介してタイル内においてヘックスセグメント６Ｎへ接続されている。ヘックスセグメント６Ｎは北へ方向転換し且つ垂直方向のヘックスセグメント４７となる。この信号はタイル５−３，４−３，１−２における３つのデスティネーションにおける論理ブロックへファンアウトせねばならない。該信号はセグメント４６乃至４２上をタイル７−２乃至３−２を介して通過する。タイル５−２において、該信号はセグメント４４上にあり、そこで、それはセグメント６Ｖへファンアウトする。タイル５−２において、セグメント６Ｖはプログラミングによって単一長線Ｅへ接続されており、それは線Ｗとしてタイル５−３内へ東方向へ継続する。タイル５−３において、線Ｗは第一のデスティネーションである論理ブロックＬ１に対し、更に、スイッチング構成体４０３に対する入力となり、そこで、それはプログラミングによって線Ｎへ接続される。タイル５−３の線Ｎは継続して線Ｓとしてタイル４−３内へ北方向に進み、それは第二のデスティネーションである論理ブロックＬ２に対する入力となる。垂直方向のヘックス線の北側端部はタイル２−２において到達され、そこで該信号はセグメント４１上にある。セグメント４１は、プログラミングによって単一長線Ｎへ接続されており、それは線Ｓとしてタイル１−２内へ北方向へ続いている。タイル１−２において、線Ｓは第三のデスティネーションである論理ブロックＬ３に対する入力となる。
従って、図８において、発信元論理ブロックＬ０からデスティネーション（宛先）論理ブロックＬ１，Ｌ２，Ｌ３に対して信号ネットが形成されている。この接続は高速である。何故ならば、ヘックス線上のＰＩＰはバッファされており、ヘックス線上のＰＩＰの数が少ないためにヘックス線上の容量が低く、且つ発信元からデスティネーションへの各経路は信号経路内に遅延を挿入するＰＩＰの総数が少ないからである。図８の例においては、発信元とデスティネーション論理ブロックとの間の各信号経路は高々３個のＰＩＰ、即ちヘックス線上の１個のバッファしたＰＩＰと単一長線上の１個又は２個のバッファしていないＰＩＰを必要とするに過ぎない（論理ブロックは図３ＡにおいてＬＢとした示した構造である）。
図９は長尺線と、ヘックス線と、単一長線とを使用した信号経路のルーチング例を示している。信号はタイル１−１の発信元論理ブロックＬ８によって発信され、且つ論理ブロックＬ４，Ｌ５，Ｌ６，Ｌ７へ経路付けされねばならない。論理ブロックＬ８からの信号は、プログラミングによって、タイル１−１内においてその特定のタイルからアクセス可能な垂直方向の長尺線ＶＬのうちの１つへ接続されている。長尺線ＬＶは１８個のタイルにわたりタイル１９−１へ南側方向へ延在しており、そこで長尺線ＬＶは、プログラミングによって、ヘックスセグメント６Ｓへ接続されており、次いで南方向へ続いて図９に示したアレイの部分の南側のその他のヘックス線（不図示）を駆動する（図９における１８個のタイル分のギャップが包含されており、長尺線ＬＶは、長尺線が連結されたヘックス線よりもより効率的なものであるのに充分遠くに信号を運ばねばならないことを示している）。タイル１９−１内のヘックスセグメント６Ｓから、該信号は南方向へ方向転換し且つ垂直方向のヘックスセグメント４１となる。該信号はセグメント４２乃至４６上をタイル２０−１乃至２４−１を介して通過する。タイル２２−１において、該信号はセグメント４４上に有り、そこで、それはセグメント６Ｖへファンアウトし且つ続いてタイル２５−１に向かって南方向へ進行する。タイル２２−１内のセグメント６Ｖから、該信号はセグメント６Ｅに対してプログラム可能な接続を形成する（２つの垂直なヘックス線の接続部を示している）。次いで、該信号はセグメント３７上を東方向へ移動し、セグメント３６乃至３２上をタイル２２−２乃至２２−６をトラバースする。タイル２２−４において、該信号はセグメント３４上に有り、そこで、それはセグメント６Ｈへファンアウトし且つ続いてタイル２２−５に向かって東方向へ進む。タイル２２−４において、該信号はセグメント６Ｈと線Ｎとしてタイル２３−４内に南方向へ続いている単一長線Ｓとの間のプログラム可能な接続を行う。タイル２３−４において、線Ｎはスイッチング構成体４０３内に入り且つ線Ｅへ接続し、線Ｅは線Ｗ上をタイル２３−５内に東方向へ続いており、第一のデスティネーションである論理ブロックＬ４に対する入力となる。タイル２２−６におけるセグメント３２から、該信号はセグメント３１上をタイル２２−７内へ東方向へ続き、次いでセグメント６Ｗ上へ北方向へ方向転換する。セグメント６Ｗはプログラミングによって線Ｎへ接続されており、それは線Ｓとしてタイル２１−７内へ北方向へ続き、且つ第二のデスティネーションである論理ブロックＬ５に対する入力となる。垂直のヘックス線へ戻り、タイル２４−１内のセグメント４６上の信号はセグメント４７上をタイル２５−１内へ南方向へ続き、それはセグメント６Ｎ上で西方向へ方向転換する。タイル２５−１内のセグメント６Ｎから、該信号はセグメント６Ｅに対してプログラム可能な接続を行う。次いで、該信号はセグメント３７上を東方向へ移動し、セグメント３６乃至３２上をタイル２５−２乃至２５−６をトラバースする。タイル２５−６内のセグメント３２から、該信号はセグメント３１上をタイル２５−７内へ東方向に続き、次いでセグメント６Ｗ上へ北方向に方向転換する。セグメント６Ｗはプログラミングによって線Ｓへ接続されており、それは線Ｎとしてタイル２６−７内へ南方向に続き且つ第三のデスティネーションである論理ブロックＬ６に対する入力となる。更にもう一つの接続が形成されるべく残っている。タイル２５−１内の垂直のヘックス線の南側端部から、セグメント６Ｖ上の信号は線Ｅに対して付加的なプログラム可能な接続を形成する。線Ｅは線Ｗ上をタイル２５−２内へ東方向に続いている。タイル２５−２内において、線Ｗはスイッチング構成体４０３に入り且つ線Ｓへ接続し、それは線Ｎ上をタイル２６−２内へ南方向に続き、第四のデスティネーションである論理ブロックＬ７に対する入力となる。
従って、図９において、発信元論理ブロックＬ８からデスティネーションの論理ブロックＬ４，Ｌ５，Ｌ６，Ｌ７に対する信号ネットが形成されている。図８の例におけるように、長尺線及びヘックス線に対する接続はバッファ型であり且つバッファされていない接続のＲＣ遅延が最小とされている。この例においては、これらのデスティネーションは論理ブロック間の相互接続経路内において高々４個のＰＩＰを必要とするに過ぎず、即ちヘックス線上の１個又は２個のバッファ型ＰＩＰと、単一長線上の１個又は２個のバッファされていないＰＩＰである。それでも、発信元論理ブロックＬ８とデスティネーション論理ブロックＬ６との間において３１個のタイルがトラバースされている。
上のルーチング例の全てにおいて、別の経路が使用可能であり、その多くはこれらの例において使用された信号経路よりもより多くのＰＩＰを必要とする。１つの経路上の相互接続線の幾つかが既に他の信号によって使用されている場合には、別の経路を使用することが可能である。
高ファンアウトルーチング例
図１０は例えばクロック（ＣＫ）、クロックイネーブル（ＣＥ）、セット／リセット（ＳＲ）、又は垂直方向の長尺線から複数個のタイルからなる列へ送給されるトライステートイネーブル信号（４３２）等の高ファンアウト制御信号のルーチング例を示している。信号はタイルアレイの外側からか又は図３Ａの線４３７Ｉのうちの１つを使用することによって、垂直方向の長尺線上に配置させることが可能である。垂直方向の長尺線バスＬＶから、１２番目のタイル（ＴＩＬＥ４）毎に、高ファンアウト制御信号が線６００上に表われる。線６００は２本の垂直方向のヘックス線を駆動し、そのうちの１つ（Ｈ）はＴＩＬＥ４から６個のタイル北方向へ延在しており且つそのうちの１つ（Ｈ２）はＴＩＬＥ４から６個のタイル南方向へ延在している。ヘックス線Ｈ１及びＨ２から、線４２８（図３Ａにおいて示してある）は各垂直方向のヘックスバスの４個のビットが論理ブロックを駆動することを許容する。図７の入力マルチプレクサ（ＩＭＵＸ）は、線４２８を介して、垂直方向のヘックス線が、例えば関数発生器入力端等のその他のＣＬＥ入力端上の信号は、常に、ＣＬＥに到達するためには単一長線を介して通過せねばならないにも拘らず、単一長線を介して通過することなしに制御信号ＣＫ，ＣＥ，ＳＲ，４３２を駆動することを許容する。ヘックス線Ｈ１はＴＩＬＥ４内の論理ブロック及びその北側に隣接する５個のタイルを駆動する。注意すべきことであるが、ヘックス線Ｈ１によって到達される最も北側のタイルにおいては、線４２８はヘックス線Ｈ１と接触するものではない。その代わりに、ヘックス線Ｈ３と接触されており、それはＴＩＬＥ４の北側に１２個のタイルを発生している。ヘックス線Ｈ２はＴＩＬＥ４の南側に隣接している６個の論理ブロックを駆動する。ヘックス線Ｈ１の北側においては、ヘックス線Ｈ３が隣接する６個の論理ブロックを駆動する。ヘックス線Ｈ２の南側においては、ヘックス線Ｈ４が隣接する６個の論理ブロックを駆動する。各ヘックス線は６個の論理ブロックにおける高ファンアウト制御信号を駆動する。ヘックス線Ｈ１及びＨ２によってアクセスされるタイル（図１０において６１０の符号が付けてある）は１２個のタイルからなる列を形成しており、それは繰返しのタイルからなるアレイの列全体へアクセスするために垂直方向に繰返すことが可能である。
図１０は、高ファンアウト制御信号の場合には、垂直方向の長尺線上の信号と同一の列内のいずれかのデスティネーション論理ブロックとの間に１個のＰＩＰが存在するに過ぎないことを示している（然しながら、好適実施例においては、入力マルチプレクサＩＭＵＸにおける経路へ付加された付加的なＰＩＰが存在している）。従って、この経路上では殆ど遅延が存在しない。更に、この配分方向は、各論理ブロック入力端への経路において同数のＰＩＰと同数の相互接続線（１本の長尺線、１本のヘックス線）を有している。従って、この経路上ではスキューは非常に低い。グローバル線（図３ＣにおけるＧ）は、典型的に、最大で４個のクロックに対して使用されるが、図１０の配分方法は、本発明に基づく相互接続技術の階層的性質を利用することによって、性能が高く且つスキューが低い優れた付加的なクロック配分回路網を形成している。
図１１は垂直方向の長尺線から複数個のタイルからなる列へ送給される高ファンアウト関数発生器入力信号（又はその他の非制御信号）のルーチング例を示している。信号は、タイルアレイ外側からか、又は図３Ａの垂直方向の長尺線４３７Iのうちの１つを使用することによって、垂直方向の長尺線上に配置させることが可能である。垂直方向の長尺線バスＬＶから、１２番目のタイル（ＴＩＬＥ５−６）毎に、高ファンアウト関数発生器入力信号が線６０１上に表われる。線６０１は２本の垂直方向のヘックス線を駆動し、そのうちの１つ（Ｈ５）はＴＩＬＥ４から６個のタイル分北方向へ延在しており且つそのうちの１つ（Ｈ６）はＴＩＬＥ４から６個のタイル分南方向へ延在している。ヘックス線Ｈ５及びＨ６から線セグメント６Ｓ，６Ｎ，６Ｖが単一長線Ｎ，Ｓ及びスイッチング構成体４０３に関連して使用されて、図８及び９における相互接続と同様に、論理ブロックを駆動する。１実施例においては、ＣＬＥ内部の関数発生器入力端へ接続する信号は、常に、ＣＬＥに到達するためには単一長線を介して通過せねばならない。ヘックス線Ｈ５は、単一長線を介して、タイルＴＩＬＥ５−７、ＴＩＬＥ５−８、ＴＩＬＥ５−３内の論理ブロックを駆動する。更に、ヘックス線Ｈ５は、単一長線を介して、列５１１の北側の１２タイル列も３個の最も南側のタイル（列６１１のタイルＴＩＬＥ５−１０，ＴＩＬＥ５−１１，ＴＩＬＥ５−１２に対応）における論理ブロックを駆動する。ヘックス線Ｈ６は、単一長線を介して、タイルＴＩＬＥ５−４，ＴＩＬＥ５−５，ＴＩＬＥ５−６，ＴＩＬＥ５−９内の論理ブロックを駆動する。更に、ヘックス線Ｈ６は、単一長線を介して、列６１１の南側の１２タイル列の２個の最も北側のタイル（列６１１のタイルＴＩＬＥ５−１及びＴＩＬＥ５−２に対応）における論理ブロックを駆動する。タイルＴＩＬＥ５−１及びＴＩＬＥ５−２は、単一長線を介して、ヘックスＨ７によって駆動され、それはＴＩＬＥ５−６の北側に１２個のタイルを発生させる。タイルＴＩＬＥ５−１０，ＴＩＬＥ５−１１，ＴＩＬＥ５−１２は、単一長線を介して、ヘックス線Ｈ８によって駆動され、それはＴＩＬＥ５−６の南側に１２個のタイルを発生する。各ヘックス線は６個の論理ブロックにおいて高ファンアウト関数発生器入力信号を駆動する。従って、隣接する１２タイル列６１１の間の共同によって、繰返しパターンが形成され、それは非制御信号を繰返しタイルからなるアレイの列全体に対して配分することを可能とする。
注意すべきことであるが、ヘックス線及び単一長線のその他の接続も可能である。例えば、ＴＩＬＥ５−２における論理ブロックは、ＴＩＬＥ５−３（不図示）におけるスイッチング構成体及び単一長線を介して、従って、ＴＩＬＥ５−２における付加的なスイッチング構成体及び単一長線を介してＴＩＬＥ５−１における論理ブロックを駆動するためにヘックス線６Ｖによって駆動することが可能である。この構成又は同様の構成を、２つの最も北側のタイルをアクセスするために１２タイル列６１１の最も北側の具体例において使用することが可能である。３個の最も南側のタイルへアクセスするために、１２タイル列６１１の最も南側の具体例において同様の接続を行うことが可能である。
図１１は、高ファンアウト関数発生器入力信号に対して、垂直方向の長尺線上の信号と同一の列内のいずれかのデスティネーション論理ブロックとの間には２個又は３個のＰＩＰが存在していることを示しており、即ち長尺線からヘックス線への１つと、ヘックス線から第一単一長線への１つと、且つ、時々、スイッチング構成体を介して第二の単一長線に対して１つである（然しながら、好適実施例においては、入力マルチプレクサＩＭＵＸ内の経路に対して付加された１つの付加的なＰＩＰが存在している）。最後の１つ又は２つのＰＩＰが非バッファ型であるに過ぎない。従って、このネット上においては多数のバッファされていないＲＣツリーは存在しておらず、どの信号経路も直列して２個を超えるバッファされていないＰＩＰを有するものではなく、且つ各信号経路上の遅延は最小とされている。
図１２は複数個のタイルからなるアレイに対して高ファンアウト信号を送給するためにどのようにして図１０及び／又は１１の相互接続を結合させるかの１例を示している。信号はタイルアレイの外側からか又は図３Ａの線４３８のうちの１つを使用することによって、水平方向の長尺線上に配置させることが可能である。該信号は水平方向の長尺線バスＬＨにおける１本の線上において図１２に示したアレイの部分に入る。長尺線バスＬＨは１２個のタイルからなる行６１２をトラバースし、その場合に、それはヘックス線及び単一長線を介して１２個の論理ブロックと接触する。幾つかの水平方向のヘックス線へ接続されている水平方向の単一長線はＩＭＵＸ内のＰＩＰを介して垂直方向の長尺線を駆動することが可能である。図１２の１２個のタイル内の論理ブロックから、線４３７Ｉは論理ブロック内の入力マルチプレクサ（図３Ａ参照）から垂直方向の長尺線ＬＶを駆動するために延在している。１２個のタイル６１２の各々における線４３７Ｉを使用して、水平方向の長尺線バスＬＨ上の信号は１２垂直方向長尺線ＬＶへ転送される。１２個の垂直タイルからなる列（６１３）は図１０（制御信号に対して）の１２個のタイル６１０によるか又は図１１（関数発生器又はその他の非制御信号に対して）の１２個のタイル６１１のいずれかによって実現することが可能である。マルチプル即ち複数個の１２タイル列６１３をアクセス可能なタイルの数を増加させるために配置することが可能である。このように、高ファンアウト信号は発信元タイルからアレイ内の任意のタイルに対して分配させることが可能である。
図１２の配分手法の別法として、例えば、ヘックス線が長尺線を駆動し、従って図１２において使用されている単一長線をバイパスすることを可能とする特別のタイルを形成することが可能である。このような特別のタイルはタイルアレイの上端部又は底端部に沿って、又はアレイ内においてある間隔で配置された行内に効果的に配置させることが可能である。
高速フィードバック経路
ＦＰＧＡ内の論理経路は、典型的に、一連の組合わせ論理ゲートと交互配置されたフリップフロップ又はラッチを有している。これらの組合わせ論理ゲートはカスケード接続した関数発生器において実現される。クリチカルパス即ち臨界的経路は、しばしば、このようなフリップフロップ又はラッチの間において直列してカスケード接続された多数の関数発生器を有する経路である。従って、このようなクリチカルパスは１つのフリップフロップから１つの関数発生器への１つの接続、及び１つの関数発生器から１つのフリップフロップへの１つの接続を有しているが、多数の接続が２つの関数発生器の間に発生している。従って、関数発生器の間の接続を高速化させる高速フィードバック経路からクリチカルパスに対して顕著な性能上の利点が得られる。従って、１つの実施例においては、関数発生器出力によって駆動されるＣＬＥ出力のみが高速フィードバック経路への接続を有している。レジスタされる出力はこのような接続を有するものではない。同様に、高速フィードバック経路へ接続されているＣＬＥ入力端は関数発生器入力端であり且つ制御入力端ではない。このような１つの実施例は、図３Ａの実施例であり、その場合には、非レジスタ型ＣＬＥ出力端は高速フィードバック経路への接続を有している（非レジスタ型ＣＬＥ出力Ｘ及びＹ，Ｚ及びＶは夫々図６Ｂ，６Ａに示してある）。図３Ａの実施例においては、高速フィードバック経路が高速フィードバック線４３０及び入力マルチプレクサＩＭＵＸ−２を介して経路付けされている。レジスタ型ＣＬＥ出力は図３Ａの出力マルチプレクサＯＭＵＸ−２内へ経路付けされており且つ高速フィードバック経路に対する接続を有するものではない（レジスタ型ＣＬＥ出力ＸＱ及びＹＱ，ＺＱ，ＶＱは夫々、図６Ｂ及び６Ａに示してある）。
図１３はＣＬＥの出力端から同一のＣＬＥの入力端への図３Ｃの実施例の高速フィードバック経路を簡単化した形態で示してある。図６Ａ及び６Ｂにおける符号と同一である図１３における符号は同一の構成要素又は信号線を示している。例えば、図１３において、ＣＬＥ出力端Ｖは関数発生器Ｊの出力によって駆動される（領域１３５における中間に介在する論理は図１３には示していないが、図６Ａに示してある）。ＣＬＥ出力Ｖは、更に、領域１３４内にフィードバックし、それは、図３Ｃの実施例においては、入力マルチプレクサＩＭＵＸの一部として実現されている。領域１３４において、ＣＬＥ出力ＶはＰＩＰ１３０，１３１，１３２，１３３を介してＣＬＥ内の各関数発生器（夫々、Ｊ，Ｈ，Ｇ，Ｆ）の１つの入力端（夫々Ｊ３，Ｈ３，Ｇ２，Ｆ２）へ接続する。同様に、その他の非レジスタ型ＣＬＥ出力Ｚ，Ｙ，Ｘの各々はＰＩＰを介してＣＬＥ内の各関数発生器の１つの入力端へ接続する。各関数発生器出力はＣＬＥ内の関数発生器の各々の異なる入力端へ接続する。レジスタ型ＣＬＥ出力ＶＱ，ＺＱ，ＹＱ，ＸＱは高速フィードバック経路へ接続するものではない。
本発明の別の実施例においては、高速フィードバック経路は関数発生器入力端以外のＣＬＥ入力端を駆動することが可能である。例えば、高速フィードバック経路は、図６ＡのＣＬＥ入力端ＢＪ，ＢＨ及び図６ＢのＢＧ，ＢＦを駆動することが可能である。これらの接続は、シフトレジスタモードの形態とされた関数発生器に対するデータ入力を供給するために使用することが可能である。このようなフィードバック経路を使用して広範な高性能のシフトレジスタを実現することが可能である。
要約
本発明の第一の側面の相互接続構成体は各相互接続線上のローディングが減少されており（ＰＩＰの数が制限されている）、信号ネット上の大きなＲＣツリーが存在せず、且つ各経路上の発信元とデスティネーションとの間のＰＩＰの数が比較的少ないので、ＦＰＧＡを介して一様に高速な信号を提供している。種々の相互接続経路上の遅延がほぼ一様であるということは、平均の信号経路よりも著しく遅い２，３の信号経路が回路の全体的な性能を著しく減少させる場合のあるＦＰＧＡにおける共通の状態を著しく緩和している。中間長線は局所化された回路の効率的な実現を可能としており且つルーチングソフトウエァに関する負担を和らげている。ＰＩＰの数が制限されていること、及びその正当なる配置は、消費されるシリコン面積当たりに高度のルーチング柔軟性を与えている。論理ブロック入力端が論理ブロックの任意の端部に位置されている相互接続線と接触する能力によって更なるルーチング柔軟性が与えられている。
本発明の第二の側面の高速のフィードバッグ経路は、ＣＬＥ出力端から同一のＣＬＥの入力端へ著しく高速であるフィードバック経路を提供するために出力マルチプレクサをバイパスする方法を提供している。このような高速のフィードバック経路は多数の関数発生器が直列して接続されるクリチカルパスの速度に関し著しい影響を有している。高速フィードバック経路は１個のＣＬＥ内に納まる小型の回路（又は大型の回路のサブセット）の性能を増加させ且つ与えられた回路を実現するために使用せねばならない論理ブロック外部のルーチング資源の数を減少させる。１実施例においては、１個のＣＬＥ内の関数発生器の全ての結合が、論理がＣＬＥの関数発生器内にどのようにマッピングされるかに拘らずに、高速フィードバック経路を介して互いに駆動することが可能である。別の実施例においては、１個のＣＬＥ内の各関数発生器は高速フィードバック経路を介して他の関数発生器（それ自身以外）の全てを同時的に駆動することが可能である。
従って、本発明はＦＰＧＡに対する新規で且つ有用な相互接続構成体を提供していることが理解される。本発明の関連技術における当業者は、本明細書の開示の結果として行うことの可能な種々の変形及び付加を想起するものである。従って、このような変形例及び付加の全ては本発明の請求の範囲内のものであると思料され、それは添付の請求の範囲及びそれらの均等物によってのみ制限されるべきである。
【図１Ａ】
0003948497.tif 000002
【図１Ｂ】
0003948497.tif 000003
【図２】
0003948497.tif 000004
【図３Ａ】
0003948497.tif 000005
【図３Ｂ】
0003948497.tif 000006
【図３Ｃ】
0003948497.tif 000007
【図４】
0003948497.tif 000008
【図５】
0003948497.tif 000009
【図６】
0003948497.tif 000010
【図６Ａ】
0003948497.tif 000011
【図６Ｂ】
0003948497.tif 000012
【図７】
0003948497.tif 000013
【図８】
0003948497.tif 000014
【図９】
0003948497.tif 000015
【図１０】
0003948497.tif 000016
【図１１】
0003948497.tif 000017
【図１２】
0003948497.tif 000018
【図１３】
0003948497.tif 000019