JP3948497B2 - Fpga繰返し可能相互接続構成体 - Google Patents
Fpga繰返し可能相互接続構成体 Download PDFInfo
- Publication number
- JP3948497B2 JP3948497B2 JP54566298A JP54566298A JP3948497B2 JP 3948497 B2 JP3948497 B2 JP 3948497B2 JP 54566298 A JP54566298 A JP 54566298A JP 54566298 A JP54566298 A JP 54566298A JP 3948497 B2 JP3948497 B2 JP 3948497B2
- Authority
- JP
- Japan
- Prior art keywords
- line
- tile
- lines
- input
- bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000006870 function Effects 0.000 description 106
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 15
- 238000012905 input function Methods 0.000 description 15
- 229910052710 silicon Inorganic materials 0.000 description 15
- 239000010703 silicon Substances 0.000 description 15
- 239000000872 buffer Substances 0.000 description 14
- 241000283283 Orcinus orca Species 0.000 description 8
- 238000000034 method Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000001934 delay Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 238000007792 addition Methods 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 101150061050 CIN1 gene Proteins 0.000 description 3
- 102220492941 Nuclear RNA export factor 1_R81A_mutation Human genes 0.000 description 3
- 102220492952 Nuclear RNA export factor 1_R82A_mutation Human genes 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004377 microelectronic Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000002420 orchard Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/1733—Controllable logic circuits
- H03K19/1737—Controllable logic circuits using multiplexers
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17704—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17736—Structural details of routing resources
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/1778—Structural details for adapting physical parameters
- H03K19/17796—Structural details for adapting physical parameters for physical disposition of blocks
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
発明の分野
本発明はプログラム可能な集積回路装置に関するものであって、更に詳細には、フィールドプログラマブル即ち現場においてプログラム可能な論理装置における相互接続構成体に関するものである。
従来技術の説明
フィールドプログラマブルゲートアレイ(FPGA)はプログラム可能な相互接続構成体を介して接続することの可能な論理ブロックを有している。該相互接続構成体は、典型的に、各論理ブロックを各その他の論理ブロックへ接続させるためのものである。初期のFPGAは、互いに及びプログラム可能な相互接続点(PIP)において論理ブロックの入力及び出力端子へ連結させることの可能な短い相互接続セグメントを提供することによってこのことを達成していた。これらのFPGAが益々大型となり且つ益々複雑となるに従い、相互接続構成体もより大型及びより複雑なものとならねばならない。速度(性能)を改善するために、隣接する論理ブロックに対する直接接続が提供されており、且つ多数の論理ブロックからなる距離にわたり信号を送信するために、より長いラインが提供されている。シリコン面積を節約するために、PIPは余り頻繁でない程度に設けられていた。PIPが存在する数が少ないと、ルーチング即ち経路付けは柔軟性が劣るが(同数のルーチング即ち経路付けラインの場合に)、典型的に、負荷が減少するためにより高速である。余り使用されないPIPのみを除去することによって、ルーチングの柔軟性が影響されることを最小とすることが可能である。従って、性能と、シリコン面積と、ルーチングラインの数と、ルーチングの柔軟性との間にはトレードオフ即ち利益衡量が存在している。
幾つかの米国特許では、FPGAにおける論理ブロックを相互接続するための構成体を示している。米国再発行特許第34,363号において、Freemanは最初のFPGA相互接続構成体を記載しており、且つ短いルーチングセグメントと柔軟性のある接続部及び例えばクロック信号等の信号に対するグローバルラインを包含している。米国特許第4,642,487号において、Carterは、Freemanの相互接続構成体に対して隣接する論理ブロック間に直接接続を付加することを示している。これらの直接接続は隣接する論理ブロック間において高速の経路を与える。米国特許第5,073,729号において、Greene et alは可変長のルーチングラインを有するセグメント化した相互接続構成体を示している。米国特許第5,469,003号において、Keanは、境界の間に延在するより長い長さのラインに対して境界において接続可能な短い長さのライン、及びこれらの境界の間に延在する更に長い長さのラインを有するより大きな境界を有する階層的相互接続構成体を示している。Keanは、特に、1個の論理ブロックの長さが各論理ブロックを次のものへ接続させるラインと、4個の論理ブロックの長さがそれらが通過する各論理ブロックへ接続可能なラインと、16個の論理ブロックの長さが長さ4境界において長さ4ラインへ接続可能であるが論理ブロックに対して直接的に接続可能ではないラインとを示している。Keanのアーキテクチュアにおいては、2つの異なる階層的ブロック内の(即ち、境界の両側上での)隣接する論理ブロックは同一の階層的ブロック内の隣接する論理ブロックとは異なって互いに接続する。
米国特許第5,581,199号において、Pierce et alは異なる長さのラインを有するタイルをベースとした相互接続構成体を示しており、その場合に、矩形アレイ状の各タイルは各その他のタイルと同一のものとすることが可能である。Pierce et alのアーキテクチュアにおいては、相互接続線は論理ブロックの出力構成体の一部である。1つを超える長さの出力線が他の論理ブロック入力線を超えて延在しており、それに対して論理ブロック出力線を接続することが可能である。前述した特許の全ては、FPGAにおける従来の経路付け構成体をより良く理解するために検討することが可能である。
Freeman及びGreene et alによって記載されている相互接続構成体においては、各経路は一連のプログラミングすることによって連結された相互接続線をトラバースすることによって形成され、即ち一連の比較的短い相互接続線がプログラミングすることによって端部同志を接続しより長い経路を形成する。与えられた信号経路上での比較的多数のプログラム可能な接続部はその信号経路内に遅延を導入し、従って、FPGAの性能を低下させる。このような相互接続構成体は「汎用相互接続体」と呼ばれる。
最初にCarterによって記載され且つKeanのアーキテクチュア内に包含されている直接接続部は隣接する論理ブロック間において高速の経路を与えるものであるが、Carterの構成においては、隣接していないいずれか2つのブロック間の距離をトラバースするためには汎用相互接続体を使用せねばならない。従って、非隣接ブロック間において信号を相互接続させることを必要とするのに充分に大きいか又は充分に複雑な回路(それは、しばしば発生する)はこれらの接続を行うために汎用相互接続体を使用せねばならない。短い経路の場合には、汎用相互接続体は直接相互接続体よりも一層遅い。何故ならば、汎用相互接続体は幾つかのPIPを介して接続せねばならず、又は、長いラインが使用される場合には、長いか又は高度に負荷がかけられた信号を受付けるためにバッファせねばならず、遅延を導入させるからである。更に、シリコン面積の観点からは、単に数個のブロックをトラバースするに過ぎない短い経路に対して長い経路を使用することは非効率的である。何故ならば、長いラインはそうでない場合にはより長いラインに対して使用することが可能だからである。更に、FPGAにおける論理設計を実現するソフトウエアは、典型的に、相互接続した論理を密接して配置させるので、この配置手法を有効に利用する構成体はソフトウエアと良好に動作し、その結果、ルーチングソフトウエアに対するコンパイル時間が一層短くなり且つ回路を実現する場合により効率的なものとなる。
「クワッドライン(quad lines)」と呼ばれる相互接続線はザイリンクス、インコーポレイテッドからのXC4000EX FPGA内に設けられており、且つカリフォルニア州95124、サンノゼ、2100ロジックドライブのザイリンクス、インコーポレイテッドから入手可能な「プログラム可能な論理データブック(The Programmable Logic Data Book)」という題名のザイリンクス1996データブックの4−32乃至4−37頁に記載されており、以後、「ザイリンクス1996データブック(the Xilinx 1996 Data Book)」と呼称する(著作権の所有者であるザイリンクス、インコポレイテッドは、これら及び本明細書において参照するその他の頁をコピーすることに異議を唱えるものではないが、そうでない場合には、どのような場合であっても全ての著作権を保持する)。然しながら、各クワッドラインはそれがトラバースする全てのタイルと接触するので、これらのラインは多数のPIPを有しており、その各々はRC遅延を付加する。
Pierce et alは隣接する論理ブロック間及び幾つかのタイル離れた論理ブロック間の両方において高速の経路を提供している。Pierce et alアーキテクチュアの出力線は、各々、制限した組の他の論理ブロックの入力端を駆動することが可能である。然しながら、可能なデスティネーション(宛先)は選択した論理ブロックに制限され、且つ相互接続線はデスティネーション論理ブロックのある特定の入力端へアクセスすることが可能であるに過ぎない。
上述した従来の構成体の各々において、各相互接続線は他の論理ブロックの入力端に対するプログラム可能な接続部を有している。然しながら、Freeman、Carter、Pierce et alの構成体においては、与えられた論理ブロック入力端は水平相互接続線か又は垂直相互接続線のいずれかから駆動することが可能なものであるが、両方から駆動可能なものではない。別のアプローチは、論理ブロック入力端からの相互接続線をルーチングマトリクスによって分離することであり、そのことは各相互接続線に対して論理ブロック入力端へのより柔軟性のあるアクセスを与える。このようなアーキテクチュアはザイリンクス、インコーポレイテッドからのザイリンクスXC5200ファミリィのFPGAにおいて使用されており、且つザイリンクス1996データブックの4−184、4−185及び4−192乃至4−196頁に記載されている。XC5200ファミリィ相互接続構成体においては、タイルに入る殆どの相互接続線は直接的に論理ブロック入力端又は出力端に接続するのではなく、該タイル内のルーチングマトリクスへ接続する。相互接続線の対の聞及び相互接続線と論理ブロック入力端との間の接続は、タイルから外に出ることのない「タイル相互接続線」と呼ばれるラインを介して行われる。1個のタイルの端部から該タイル内の論理ブロックへの経路内においてエキストラな相互接続線を有することの利点は、ルーチングマトリクスは柔軟性のあるものであるが比較的小さな量のシリコン面積を消費するということである。PIPの結合は、タイルへ入る任意のラインからデスティネーション論理ブロックのいずれかの所望の入力端へのアクセスを行うことを可能とする。それでもPIPの総数は多くのその他の相互接続構成体におけるものよりも少ない。欠点は、タイル相互接続線をオン/オフすることはトラバースされる各タイルに対する経路内にある量の遅延を導入するということである。この遅延はFPGAを介しての信号の高速伝搬を阻止する。従って、Tavana et alは、それらが通過する全てのタイルへ接続可能な長いライン及び1個のタイルにおけるタイル相互接続線をバイパスする二重長ラインを提供している。これらのラインはトラバースされるタイル内の論理ブロックへアクセスすることなしに1個又はそれ以上のタイルをトラバースする信号に対して使用することが可能である。
Keanは入力マルチプレクサスイッチを使用する論理ブロック入力端から相互接続線を分離しており、そのことは該入力端に対するルーチングの柔軟性を与えている。
論理ブロック間の最も遅い信号経路は、典型的に、回路の性能を決定するものであるから、最も遅い経路を可及的に高速なものとさせることが有益的である。このことを達成する1つの方法は、FPGA全体にわたって全ての信号経路上で比較的一様な遅延が存在するように相互接続構成体を設計することである。上述したルーチング構成体においては、信号経路上の遅延の典型的な分布は平均よりも著しく大きな遅延を有する2,3個の信号経路があることを示す。これらの信号経路は、典型的に、大きな「RCツリー」を有するものであって、即ち、抵抗(例えば、バッファされていないPIP)をトラバースする信号経路であって、それは抵抗のデスティネーション側において大きな容量を有している。比較的一様な遅延を有する相互接続構成体は、信号経路上の大きな容量(例えば、より長い相互接続線)を該抵抗のソース側に予測可能に配置される場合、又は信号経路のソース端部に可及的に近づけて配置される場合にはより良く実現することが可能である。
高いファンアウトの信号は大きな容量を有しており且つ、しばしば、低いファンアウトの信号よりもより低速である。従来のルーチング構成体は比較的大きなRC遅延を有する高ファンアウト信号ルーチングを有するものであった。相互接続構成体は、理想的には、他の信号の遅延と同等の遅延を有する高ファンアウト信号ルーチングを提供するものである。
従って、(1)FPGA全体にわたり高ファンアウト信号を包含する信号の一様に高速の伝搬、(2)高速の経路を使用して非隣接及び隣接するブロックにおける局所化した回路の実現、(3)ソフトウエアによって使用することの容易性、(4)共通に使用される論理機能の効率的な実現、(5)消費されるシリコン面積当たりの高度のルーチング柔軟性を可能とさせる相互接続構成体を見つけ出すことが望ましい。
局所化した回路の性能を改善する1つの方法は、与えられた論理ブロックの出力端から同一の論理ブロックの入力端へのフィードバック経路を与えることである。このような高速フィードバック経路は同一のCLE内の相次ぐ機能(関数)発生器にわたる組合わせ論理を高速化させるのに有用である。このような1つのフィードバック経路はルーセントテクノロジーズインコーポレイテッドからのORCA(商標)OR2C FPGAにおいて実現されている(「ORCA」はルーセントテクノロジーズインコーポレイテッドによって所有されている商標である)。ORCA論理ブロックはフィラデルフィア州18103、アレンタウン、ルーム306−15P−BA、555ユニオンブルバード、ルーセントテクノロジーズインコポレイテッド、マイクロエレクトロニクスグループから入手可能な「フィールドプログラマブルゲートアレイ(Field−Programmable Gate Arrays)」という題名のルーセントテクノロジーズ1996年10月データブックの2−9乃至2−28頁に記載されている。図1Aは出力マルチプレクサ101を有するORCA OR2C論理ブロック100の概略図を示している。図1Bは図1Aの論理ブロック100に対して設けられたプログラム可能なフィードバック経路を示している。該フィードバック経路は論理ブロック100の出力端O4,O3,O2,O1,O0から同一の論理ブロックの入力端A4,A3,A2,A1,A0,B4,B3,B2,B1,B0,C0,WD3,WD2,WD1,WD0へ延在している。例えば、1つのこのようなフィードバック経路は出力端O0から出力線102,PIP103,線104,バッファ105,線106,PIP107,線108を介して論理ブロック入力端A0へ延在している。ORCA OR2C装置においては、論理ブロックにおける出力マルチプレクサの出力端は論理ブロック入力端へフィードバックする。
出力マルチプレクサを介しての、且つ入力マルチプレクサを介してコンフィギャラブルロジックエレメント(CLE)即ち形態特定可能論理要素へ戻るCLEからのフィードバック経路はザイリンクス、インコーポレイテッドからのFPGAのXC5200ファミリィ内に組込まれている。XC5200ファミリィフィードバック経路についてはザイリンクス1996データブックの4−192及び4−193頁に記載されている。
ORCA OR2C及びXC5200ファミリィは、出力マルチプレクサを介してのルーチングフィードバック経路によって得られる付加的な柔軟性の利点を有している。然しながら、このアプローチは、又、出力マルチプレクサを介して通過することの付加的な遅延によって発生される関連する速度上の犠牲を有している。
別のフィードバック技術はザイリンクス1996データブックの4−31乃至4−37頁に記載されている。この技術は、ザイリンクス1996データブックの4−34頁の図27に示されているように、FPGAのXC4000EXファミリィにおいて使用されている。このフィードバック経路は「DIRECT(直接)」として示されている線上のXC4000EXタイルから出て且つ「FEEDBACK(フィードバック)」として示されている線上のタイルへ再度入り高速のフィードバック経路を完成する。然しながら、XC4000EXのCLE(図27において「CLB」として示されている)は出力マルチプレクサを包含するものではない(本明細書において使用される「出力マルチプレクサ」という用語は、各々が単一の論理ブロック出力を発生する2個を超えるマルチプレクサのことを意味し、その場合に各マルチプレクサは入力として2つを超える関数発生器出力を有している)。
更に別のフィードバック技術は、カリフォルニア州95134−2020、サンノゼ、2610オーチャードパークウエイ、アルテラコーポレイションから入手可能なアルテラデジタルライブラリィ1996からの「フレックス10K埋込型プログラム可能論理ファミリィデータシート(FLEX 10K Embedded Programmable Logic FamiIy Data Sheet)」の31−53頁に開示されているように、アルテラコーポレイションからのフレックス 10K(FLEX 10K(商標))FPGAにおいて使用されている(「FLEX 10K」はアルテラコーポレイションによって所有されている商標である)。FLEX 10K論理ブロックにおいては、8個のフィードバック経路が8個の4入力関数発生器を具備する論理ブロック内に設けられている。従って、関数発生器出力の各々が関数発生器の各々の1個の入力を同時的に駆動することは不可能である。従って、関数発生器内への論理のソフトウエアマッピングは、同一の論理ブロック内の別の特定の関数発生器における論理に関連するフィードバック経路を有する特定の関数発生器内に論理を配置させることの必要性によって複雑なものとされる。2個又はそれ以上の関数発生器が同一の論理ブロックにおける単一の関数発生器にデータを供給する場合には、FLEX10K論理ブロックの特定の関数発生器内に論理を配置させることが必要とされる場合がある。FLEX 10K入力マルチプレクサ内に充分な数のPIPが設けられる場合には、この制限を解消することが可能である。然しながら、アルテラの解決方法は、多数のPIP(且つその結果発生するより大きなシリコン面積)と配置ソフトウエア複雑性との間の暗示的なトレードオフ即ち利益衡量を腹んでいる。
発明の要約
本発明の1つの側面によれば、与えられた論理ブロックを高速の経路を介して隣接する論理ブロック及び幾つかのタイル分離れた論理ブロックの両方へ接続させることが可能であるように、FPGA相互接続構成体は配線用セグメント長及び論理ブロックに対する接続部の結合を有している。好適モードにおいては、本FPGAは同一のタイルからなる二次元アレイを有している。各タイル内には1個の論理ブロックが存在している。又、各タイル内にはプログラム可能な相互接続点(PIP)及び相互接続線のセグメントが設けられており、それらは隣接するタイル内の相互接続線のセグメントを連結させる。これらの連結されたセグメントは、幾つかのタイルを介してある距離離れた他のタイル内のPIPへ延在する相互接続線を形成する。隣接するタイルへ接続する線(単一長線と呼ばれる)及び第一タイルを少なくとも2個及び3個のタイル離れている少なくとも第二及び第三タイルへ接続している少なくとも3個のタイル長の線(中間長線と呼ばれる)の結合は、相互接続階層を形成し、それは任意の論理ブロックを任意の他の論理ブロックへ接続させることを可能とし、且つ、更に、隣接するタイル及びある距離離れた両方のタイルに対する高速の経路を可能とさせる。より長い相互接続線(長尺線と呼ばれる)はかなり離れたタイルの効率的な相互接続を可能とさせるための階層の第三レベルとして包含させることが可能である。長尺線はタイルアレイの幅全体にわたることが可能であり、又は2個又はそれ以上のより短い長尺線にプログラミングによってセグメント化させることが可能である。1実施例においては、2個又はそれ以上のタイルにわたるPIPのパターンが長尺線の長さに沿って繰返されているという点において長尺線は中間長線から区別される。タイルアレイの寸法が増加される場合には、パターンの更なるインスタンスが発生する。対照的に、本発明に基づく中間長線はアレイの寸法が増加された場合に変化することのない所定長のものである。タイルアレイの寸法が増加されると、付加的な中間長線が加えられる。
本発明の独特な側面は、その相互接続線に対してどのPIPも接続することのない少なくとも1個のタイルを介して延在しながら、少なくとも3個の別々のタイルにおける論理ブロックへプログラミングによって接続することの可能な1本の相互接続線(特に、中間長線又は長尺線)を有していることである。このような相互接続線は、どのPIPも該相互接続線に対して接続するものではないタイルに対して「接続不可能」であり且つ該タイル内の論理ブロックに対して「接続不可能」であると言われるが、他のタイル内のPIPを介して該相互接続線から該論理ブロックへ接続させることが可能である。相互接続線から与えられたタイル内の論理ブロックへのプログラム可能な接続は、(a)直接的に論理ブロック入力端に対して、(b)同一のタイル内の相互接続線へ接続している1個又はそれ以上のPIPを介して、又は(c)同一のタイル内の相互接続線へ接続している1個又はそれ以上のPIPを介して且つ1個又はそれ以上の単一長線を介して、行うことが可能である。相互接続線から与えられたタイル内の論理ブロックへのこのようないずれかのプログラム可能な接続を形成することが可能である場合には、その相互接続線は該論理ブロックに対して及び該タイルに対して「接続可能」であると言われる。
本発明の1つの側面の好適実施例においては、発信元のタイルから3個のタイル分離れた(即ち、発信元タイルから2個のタイルだけ離隔されている)タイルに対して中間長ラインが接続し、次いで継続し且つ6個のタイル分離れた(即ち、発信元タイルから5個のタイルだけ離隔されている)タイルへ接続する。この中間長線(「ヘックス線(hex line)」と呼ばれる)は1個、2個、4個、5個のタイル分離れている中間のタイルへ接続するものではない。その代わりに、これらのタイルは発信元タイル、3番目のタイル、又は6番目のタイルから単一長線を使用して間接的に到達される。ヘックス線によってトラバースされる7個のタイルのうちの3個のみを接続することは、PIPの数を減少させ、従って、相互接続線を形成するために必要とされるシリコン面積を減少させ(それにより、FPGAのコストを低下させ)且つ、更に、PIPによって付加される容量を減少させる(それにより、FPGAの性能を増加させる)。更に、この中間長ルーチング即ち経路付けと、隣りのタイルへの直接接続と、離れたタイルに対する長尺線との結合は、信号の高度に柔軟性のあるルーチング即ち経路付けを可能とさせる。
本発明のこの側面の相互接続構成体の多くの変形例が可能である。このような1つの変形例は、相互接続線(中間長線又は長尺線)に関し非対称的PIPパターンを使用することであり、その場合に該相互接続線は3個の論理ブロックを接続し、これら3個の論理ブロックのうちの2個が隣接したタイル内にあり、一方3番目の論理ブロックは他の2つのタイルから離隔されたタイル内に存在している。
FPGAがより大型となると、タイル当たりに必要とされるルーチング即ち経路付けの量がより大きくなる。従って、必要なPIPを実現するために必要とされるシリコン面積がより大型化する傾向となり、且つFPGAにおけるタイル数が増加するに従いタイル当たりのシリコン面積が増加する。タイル当たりに必要とされるPIPの数を減少させることが望ましい。
1実施例においては、単一長線のみが論理ブロック入力端に対する接続部を有している。中間長線は互いに及び単一長線に対する接続部を有しているが、論理ブロック入力端に対する接続部を有するものではない。長尺線は中間長線に対する接続部を有しているが単一長線に対して又は論理ブロック入力端に対する接続部を有するものではない。従って、1個のタイル内のPIPの数が減少されている。中間長線の場合の如く、長尺線上のPIPの数を減少させることはシリコン面積と長尺線上の容量の両方を減少させ、それによりRC遅延を減少させる。幾つかの実施例においては、特別のタイルが種々の相互接続線の間で付加的な接続部を有しており、高ファンアウト信号の分布を容易なものとさせる。幾つかの実施例においては、論理ブロック入力端への直接的なアクセスを有しているグローバル線がクロック又はその他の高ファンアウト制御信号等のグローバル信号に対して使用可能である。幾つかの実施例においては、長尺線は特別のタイルにおける代わりに繰返し可能なタイル内において互いに対する接続部を有している。
幾つかの実施例においては、単一長線はバッファされていないPIPによって駆動され、且つ中間長線及び長尺線はバッファされているPIPによって駆動される。信号は、典型的に、最初により長いバッファされている相互接続線上で経路付けされ、次いでより短いバッファされていない線上でファンアウトされる。このように、大型のバッファされていないRCツリーが開示され、FPGAを介しての信号経路に関する遅延をより一様なものとさせ且つ性能を改善させる。より一様な遅延は、又、設計サイクルにおける初期の段階で回路の性能を予測することをより容易なものとさせる。
本発明の第二の側面によれば、論理ブロックはコンフィギャラブルロジックェレメント(CLE)即ち形態特定可能論理要素と出力マルチプレクサとを有している。直接的に又は入力マルチプレクサを介してのいずれかによって幾つかのCLE出力端を幾つかのCLE入力端へ接続させる高速のフィードバック経路が論理ブロック内に設けられている。該高速のフィードバック経路は、出力マルチプレクサをバイパスし、従って、従来のFPGA論理ブロックにおいて得られることが可能なものよりも一層高速の接続を提供している。高速のフィードバック経路を駆動するCLE出力端はバッファ型とするか又は非バッファ型とすることが可能である。該高速のフィードバック経路は、関数発生器入力端又はその他のCLE入力端を駆動するために使用することが可能である。1実施例においては、高速のフィードバック相互接続線は関数発生器の出力端から直接的にとられる。その他の実施例においては、CLEからの他の信号が高速のフィードバック経路を使用することを可能とするためにマルチプレクサが挿入されている。いずれの場合においても、同一の出力が高速のフィードバック経路と同一の論理ブロック内の出力マルチプレクサに対する入力端のうちの少なくとも幾つかの両方を駆動する。出力マルチプレクサをバイパスすることによって、該フィードバック経路はある程度の柔軟性を失うが出力マルチプレクサをトラバースすることによって発生される遅延を取り除いている。
論理ブロック当たり4個の4入力関数発生器を具備する1実施例においては、4本の高速のフィードバック経路が設けられており、その各々は各関数発生器の異なる入力端へ延在している(即ち、各関数発生器は4個の入力端を有しており、その各入力端は4個の関数発生器のうちの異なる1つによって駆動することが可能である)。従って、これら4つの関数をどのようにCLE内にマッピングするかに拘らず、互いにデータを供給する関数発生器の全ての可能な組合わせを高速のフィードバック経路で完全に実現することが可能である。従って、高性能の高速のフィードバック経路を使用して多様な広範な関数即ち機能を実現することが可能である。最大で5個の関数発生器を構成するCLE実施例は、本発明のこの側面の利点を得ることが可能であり、5個の関数発生器出力端の各々が他の4個の関数発生器の各々の4個の入力端のうちの異なる1つへデータを供給する。
本発明の3番目の側面によれば、高ファンアウト信号をアレイ内の任意のタイルへ配分させることが可能である。水平長尺線上の信号は複数個のタイルからなる1つの行をトラバースし、その場合に、それはヘックス線及び単一長線を介して各タイル内の論理ブロックと接触する。幾つかの水平なヘックス線へ接続している水平な単一長線はプログラミングによって垂直な長尺線を駆動することが可能である。これらのプログラム可能な接続部を使用して、水平な長尺線バス上の信号は垂直な長尺線へ転送される。垂直な長尺線から、高ファンアウト信号が複数個のタイルからなるアレイへ送給される。
【図面の簡単な説明】
図1Aは従来のORCA OR2C論理ブロック(100)の概略図を示している。
図1BはORCA OR2C論理ブロック100の出力端から同一の論理ブロックの入力端へのプログラム可能のフィードバック経路を示している。
図2は本発明の1実施例に基づく単一長及び中間長相互接続線のいくつかを示している。図2は図3Aの簡単化した表示である。
図3Aは中間長線が3番目及び6番日毎のタイルへ接続されている場合の(即ち、ヘックスバスが使用されている)単一のタイルのバス表示を示している。
図3Bは単一長バス及びスイッチング構成体403の異なる表示を示した図3Aの僅かに変更したものである。
図3Cは好適実施例における単一のタイルの詳細な表示を示している。図3Aに示した全ての特徴が示されており、且つ幾つかの付加的な特徴が包含されている。
図4はINTERCONNECT(相互接続部)として示した図3Cの領域を示している。
図5は図3Cの出力マルチプレクサ(OMUX)を示している。
図6は図3Cの形態特定可能論理要素(CLE)に対する入力信号及び出力信号を示している。
図6A及び6Bは図3CのCLEに対する内部論理を示している。全体的なCLEを見るためには、図6A及び6Bを図6Aの上部における手引きに示したように並べて観察せねばならない。
図7は図3Cの入力マルチプレクサ(IMUX)を示している。
図8はヘックス線及び単一長線を使用した信号経路のルーチング例を示している。
図9は長尺線と、ヘックス線と、単一長線とを使用した信号経路のルーチング例を示している。
図10は複数個のタイルからなる列へ送給される高ファンアウト制御信号のルーチング例を示している。
図11は複数個のタイルからなる列へ送給される高ファンアウト関数発生器入力信号のルーチング例を示している。
図12は複数個のタイルからなるアレイへ高ファンアウト信号を送給するために図10及び/又は11の相互接続体をどのようにして結合するかの1例を示している。
図13は与えられたCLEの出力端から同一のCLEの入力端への高速のフィードバック経路を示した図3Cの実施例における論理ブロックの一部の簡単化した表示である。
図面の詳細な説明
図面全体にわたって以下の図面の表記方法が使用されている。2つの線の交差点における小さな中実の黒のドットは交差する線の間の永久的な電気的接続を表わしている。2つの線の間の交差点を取り囲むか又は単一の線を2つの線セグメントへ分割する開いた円はそれらの線又は線セグメントの間のプログラム可能な双方向接続を表わしている(例えば、接続を形成するためにターンオンされるパストランジスタ)。2つの線の交差点における開いた三角形はその三角形の頂点によって指し示されている線へ向かう信号の流れを有するプログラム可能な接続を表わしている(該信号は、勿論、その線の全長にわたって存在している。従って、反対方向を示している三角形は同一の信号の流れを有するものである。何故ならば、その三角形は同一の線を指し示すからである)。2つのバスの間の接続を示す三角形は、そのバスを構成している線の間において少なくとも1個の接続が存在していることを表わしている。本発明の1実施例によれば、プログラム可能な相互接続点(PIP)を使用することによってプログラム可能な接続が提供されており、その場合に各PIPは少なくとも1個のトランジスタを有している。
1個のタイル又はブロック構成体内において終了する(即ち、1個のタイル又はブロックの境界へ延在するものではない)線はそのタイル又はブロック内において物理的に終端されている。そのタイルの境界へ延在する線は次のタイル上の線と接続し、2つのタイルが当接される場合に接触される。注意すべきことであるが、タイルの端部へ延在し、従って、となりのタイル内へ延在する幾つかの線はタイル境界において名前が変わる。
本発明概念の簡単化した表示
図2は本発明の1実施例に基づく単一長相互接続線及び中間長相互接続線の幾つかを簡単化した形態で示している。図2はFPGAにおける複数個のタイルからなるアレイの一部を示している。各タイル内においては論理ブロックL及びルーチング又はスイッチング構成体Rが存在している。各タイル内には、又、隣接するタイル内の線セグメントと接続して相互接続線を形成する線セグメントが存在している。FPGA内の相互接続線の殆どは、本発明の接続特性をぼやかすことがないように図2においては示されていない。TILE1,TILE2,TILE3として示した3個のタイルがより詳細に示されており、且つTILE1,TILE2,TILE3から延在する単一長及び中間長相互接続線が示されている(然しながら、水平方向に延在する中間長線は示していない)。単一長線N,S,E,WはTILE2から隣りの4個のタイルに対して北、南、東、西に延在している。記号が付してないが等価な線がTILE1及びTILE3からも延在している。その他のすべてのタイル内においても同一の構造が存在しているが図2には示していない。これらの単一長線N,S,E,Wは隣りのタイル内のスイッチング構成体Rの間に延在しており、且つ論理ブロックLに対するプログラム可能な接続部を有している。
中間長線も各タイルから北、南、東及び西へ延在して、3個及び6個のタイル分離れた他のタイルへ接続する。従って、この実施例においては、中間長線は前に定義したような「ヘックス線」である。垂直に延在する(北及び南)ヘックス線のみが示されており、接続をぼやかすことを回避している(後の図は完全な接続パターンを示している)。
TILE2から、ヘックス線6VNは6個のタイルの長さにわたり北へ延在し、北へ3個のタイルであるTILE1へ接続すると共に北へ6個のタイルである別のタイル(不図示)へ接続している。又、TILE2から、ヘックス線6VSは6個のタイル分南へ延在し、TILE3へ接続すると共に南へ6個のタイルである別のタイル(不図示)へ接続している。ヘックス線6VMはタイルTILE2をタイルTILE1及びTILE3へ接続している。従って、3個のヘックス線が垂直方向に延在しており且つTILE2へ接続している。又、TILE2において、線6VSはこれら2つの線の端部を連結するPIPによって示されるように、プログラミングによって線6VNへ接続することが可能である。このように、始めのタイルから12個のタイル分離れたタイルに対して容易な接続を使用することが可能である。6個のタイル分の長さの別の相互接続線への接続部へ延在するためには単に1個の付加的な接続部が必要とされるに過ぎない。
注意すべきことであるが、TILE2内において、単一長線N,S,E,Wは論理ブロックLへのアクセスを有するに過ぎない。従って、ヘックス線上の信号はデスティネーション(宛先)タイル内の論理ブロックLへアクセスするためには単一長線へ転送されねばならない。線6VS上のTILE2へエンターする信号は線W,N又はEへ接続することが可能であり且つそれによりTILE2内の論理ブロックLへ接続することが可能である。更に、現在単一長線W,N又はE上に存在する信号は、更に、TILE2の西、北又は東にあるタイル内の論理ブロックLへアクセスすることが可能である。この実施例においては、ヘックス線6VSから単一長線Sへの接続は設けられていない。何故ならば、この接続を除去することはシリコン面積を節約するからである。TILE2の南側のタイルへは別の経路を介してアクセスすることが可能である。図2の実施例においては、TILE3内の信号は、(1)北側へ2つの単一長線をトラバースするか、又は(2)単一長線W又はEへ接続するTILE2に対するヘックス線6VMを取り、次いでTILE2内のスイッチング構成体Rへエンターし且つ単一長線W又はEから該スイッチング構成体内部の単一長線Sへ「バウンス(跳ね返り)」(同一のタイル内の相互接続線上へ移動し且つそれから出ること)のいずれかによってTILE2の南側のタイルの論理ブロックへ到達することが可能である。2番目の変形例は1番目の変形例より信号経路内においてもう1個のPIP、即ちスイッチング構成体R内のPIPを有するものである。別の実施例においては、南側への接続部を設けることは勿論可能である。
繰返し可能なタイル表示
図3Aは単一のタイルをより完全に示している。図3Aはバス幅を表わす数字を持った斜線によって示されるように、種々の幅のバスセグメントを示している。各バスセグメント内のライン数は、勿論、異なる実施例においては異なるものとすることが可能である。図3Aの実施例においては、タイルは同一である。この表示は単一のタイルのものであるから、完全な相互接続線は、図3Aのトップ即ち上部へ延在するバスセグメントは北側に隣接して配置されている図3Aの別のコピーの底部におけるバスセグメントと接触することを想起することにより理解せねばならない。同様に、図3Aの右側へ延在するバスセグメトは右側に隣接して配置されている図3Aの別のコピーのバスセグメントへ接触する等である。FPGA内に存在するようなアレイは図3Aの多数のコピーを一緒に配置させることにより表わされる。
ヘックスバス
図3Aにおいては、12セグメントバス6Nがプログラム可能な領域PROG−2を介して水平方向に延在しており、次いで北側へ方向転換してバスセグメント47となる。バスセグメント47はそのタイルの上端部へ延在している。図3Aの北側に隣接して配置されている図3Aの別のコピーはそのコピーの底部へ延在するバスセグメント46を有しており、それはバスセグメント47と接触する。バスセグメント46はそのタイルにわたって垂直方向に延在するが、それがそのタイルの上部に到達する前に1個のバスだけ右側へオフセットされ、従って与えられたタイル内のバスセグメント46は北側に隣接するタイル内のバスセグメント45と接触する。同様に、タイル境界において、バスセグメント45はバスセグメント44と接触し、バスセグメント44はバスセグメント43と接触し、バスセグメント43はバスセグメント42と接触し、且つバスセグメント42はバスセグメント41と接触する。このオフセット配置はヘックス長バスが6個の隣接するタイルにわたって延在することとなる。バスセグメント41は底部からタイル内へ延在し、次いで西側に方向転換し且つ、バスセグメント6Sとして、プログラム可能な領域PROG−2を介して水平方向に延在する。バスセグメント6Vもプログラム可能な領域PROG−2を介して水平方向に延在し、且つバスセグメント44へ接続する。従って、各タイルはプログラム可能な領域PROG−2内へ延在する3個のバスセグメント6N,6V,6Sを有している。これらのバスセグメントは与えられたタイルから3個及び6個のタイル離れたタイルへの接続を可能とし、そのことは、これらの中間長線を上に定義した如くヘックス線とさせる。バスセグメント41,42,43,44,45,46,47は一体となって図3Aの北側端部において6VNで示され且つ南側端部において6VSで示される72線垂直「ルーチングトラック」を形成している。バスセグメント42,43,44,45,46は「内部セグメント」と呼ばれ、且つバスセグメント41及び47は「端部セグメント」と呼ばれる。
水平方向の12セグメントヘックスバスは、同様に、設けられており、各タイルはプログラム可能な領域PROG−2内へ延在する部分6W,6H,6Eを有している。バスセグメント6Eはプログラム可能な領域PROG−2から延在しており、次いで東へ方向転換し且つそのタイルの東側端部に向かってバスセグメント37として延在する。与えられたタイルのバスセグメント37はその東側に隣接する同一のタイル内のバスセグメント36と接触する。バスセグメント41−47と同様に、バスセグメント31−37は6個の隣接するタイルを介して延在するヘックス長バスを与えている。バスセグメント31はバスセグメント6Wとしてプログラム可能な領域PROG−2内へ延在する。バスセグメント34はバスセグメント6Hとしてプログラム可能な領域PROG−2内に延在している。バスセグメント31,32,33,34,35,36,37は、一体となって、図3Aの西側端部において6HWとして示され且つ東側端部において6HEとして示されている72線水平方向ルーチングトラックを形成している。
注意すべきことであるが、72線ヘックスバス6VN,6VS,6HW,6HEは、該バスを構成するヘックス線が全てが同一のタイルで開始するものではなく且つ同一のタイルで終了するものではない、即ちそのバスに対する固定した境界が存在しないという点において、典型的なバスではない。各タイル内において、12本のヘックス線が終了し且つ別の12本のヘックス線が開始する。この特徴は、就中、本発明構成をKeanの構成及びその他の階層的相互接続構成体のものと異ならしめている。階層的相互接続構成体においては、FPGAは階層的境界における周期的なルーチング構造でもって階層的に分割される。本発明は同一のタイルを使用し、そのタイルの各々は該線のうちの幾つかの端部セグメントを有している。
その他のバス
北、南、東、西の単一長バス(夫々、N,S,E,W)も設けられており、各々が24本の線幅である。これらの単一長バスはプログラム可能な領域PROG−2内に位置されているスイッチング構成体403内に互いに接続する。図3Aにおいて、単一長バスS,W,Eは、図4に対応するために、2つの位置においてスイッチング構成体403に入る状態が示されている。然しながら、S,W,Eの記号が付けられているバスセグメントはスイッチング構成体403を介して連続的に通過する。これらのバスセグメントがスイッチング構成体403を介して通過する態様は図3Bにおいて明確にされており、それはスイッチング構成体403の異なる表示を示しているがその他は図3Aと同一である。
この実施例においては、各単一長線は入力マルチプレクサIMUX−2へ接続させることが可能である。各単一長線は、又、ヘックス線の幾つかへ接続させることが可能である。
図3Aは別の特徴、即ち水平方向及び垂直方向の長尺線バスを有している。これら2つの長尺線バスの各々は12本の線幅である。各長尺線バスから取られた2線バス437P,438(夫々、図4及び7における線LV0及びLV6,LH0及びLH6に対応している)は、プログラム可能な領域PROG−2内へ延在しており、そこで、それらはヘックス線を駆動すべくプログラミングによって接続させることが可能である。各長尺線バス内の2つのアクセスされた長尺線は、6本の線によって互いに分離されており、且つ各長尺線は6個のタイル毎にアクセスされる。各長尺線バスから取られた2線バス437I,438は該長尺線へ信号を供給することの可能な入力マルチプレクサIMUX−2から延在している(2線バス437Iは2線バス437Pと同一の2つの信号を有している)。水平方向の長尺線バスは図3Aの西側端部においてLHWで示されており且つ東側端部においてLHEで示されている。LHW及びLHEはオフセット領域422(図3Cに示してある)を介して延在しており、該領域はバスをタイル当たり1本の線だけオフセットさせる。このように、各同一のタイルが水平方向長尺線バスLHW/LHEの2つの異なる線へアクセスし、且つ各長尺線は6個のタイル毎にアクセスされる。同様に、垂直方向の長尺線バスは図3Aにおいて北側端部においてLVNで示されており且つ南側端部においてLVSで示されている。LVN及びLVSはオフセット領域422と同様のオフセット領域421を介して延在している。これらの長尺線バスはタイルアレイの全長又は全幅を延在している。
プログラム可能な領域PROG−2を水平方向に貫通して別のバスが延在しており、即ちトライステートバッファバスであり、それは4本のライン幅であり図3Aの西側端部においてTWで示されており且つ東側端部においてTEで示されている。TW及びTEはプログラム可能なオフセット領域423によって接続されている。プログラム可能なオフセット領域423は、それがバスを1本の線だけオフセットさせるという点においてオフセット領域421及び422と類似しているが、プログラム可能なオフセット領域423は4本のライン幅に過ぎず且つバスTW又はTEの長さ延在する1個のプログラム可能な双方向PIPを有している(プログラム可能なオフセット領域423の内部構造は図3Cに示してある)。このPIPはトライステートバスの各線を4個のタイル毎に「ブレイク」即ち破断させるか、又は最大でタイルアレイの幅全体にわたってトライステート線を連続させるために4個のタイル毎に線を一緒に接続させるためのいずれかのために使用することが可能である。
プログラム可能なバス接続部
プログラム可能なバス接続部は領域INTERCONNECT(相互接続体)−2内に位置されており、それはプログラム可能な領域PROG−2の一部である。ヘックスバスが単一長バスと交差する場合には、開いた三角形はプログラム可能な接続部を表わしており、その場合に、三角形のベースにおけるヘックス線のうちの1本が三角形の先端部における単一長線のうちの1本を駆動することが可能である。ヘックス線に向かっている三角形はバッファされた接続部であることを表わし、且つ単一長線に向かった三角形は単純なパストランジスタのようなバッファされていない接続部を表わしている。
注意すべきことであるが、全ての交差部が三角形を有するわけではない。例えば、ヘックスバスセグメント6Vは東及び西単一長バスE及びWへ接続することが可能であるが、北及び南バスN及びSへ接続することが可能なものではない。同様に、ヘックスバスセグメント6Hは北及び南単一長バスN及びSへ接続することが可能であるが、東及び西バスE及びWへ接続することが可能なものではない。南側から来るヘックスバスセグメント6Sは東及び西単一長バスE及びWへ接続することが可能であり且つ北バスNへ接続することも可能である。この部分的な接続性は良好なルーチング可能性及び性能のために有用な接続部を提供しながらシリコン面積を節約するものである。同様に、北側から来るヘックスバスセグメント6Nは東及び西単一長バスE及びWへ接続することが可能であり更に南バスSへ接続することも可能であり、西側から来るヘックスバスセグメント6Wは北及び南単一長バスN及びSへ接続することが可能であり且つ東バスEへ接続することも可能であり、且つ東側から来るヘックスバスセグメント6Eは北及び南単一長バスN及びSへ接続することが可能であり更に西バスWへ接続することも可能である。これらの場合の各々において、接続部はハードウエア又はソフトウエアによって単一方向性のものであるように制限される場合があり、その場合にはヘックスバスは単一長バスを駆動することが可能であるが単一長バスはヘックスバスを駆動することが可能なものではない(この実施例の実際のハードウエアにおいては、接続部は双方向パスゲートであり、その場合に単一長バスはヘックスバスを駆動することが可能である。然しながら、そのようにすることは結果的に得られる信号経路の速度を著しく低速化させ、従って、FPGAをプログラミングするためのソフトウエアはこのような経路を選択することはない)。
単一長バスの全ては出力バスOUTを介して出力マルチプレクサOMUX−2によって駆動することが可能である。ヘックスバスセグメント6E,6W,6N,6Sも出力バスOUTによって駆動することが可能である。
垂直方向のヘックスバスセグメント6N及び6Sはプログラム可能なバス接続部404を介して互いに接続させることが可能である(プログラム可能なバス接続部404の内部構造は図4に示してある)。このように、垂直方向のヘックスバスにおける1本の線は6個のタイルの後に終端するのではなく12個、18個又はそれ以上のタイルにわたって連続させることが可能である。同様に、水平方向のヘックスバスセグメント6W及び6Eはプログラム可能なバス接続部405を介して互いに接続させることが可能である。更に、垂直方向のヘックスバスセグメント6N及び6Sはプログラム可能なバス接続部406,407,408,409を介して水平方向のヘックスバスセグメト6W及び6Eへ接続させることが可能である。これらのバス接続部の接続性を図4に示してある。注意すべきことであるが、ヘックスバスセグメント6V(それは垂直方向における3番目のタイルへの接続を実現する)は水平方向のヘックスバスセグメント6W及び6Eを駆動することが可能である。同様に、ヘックスバスセグメント6H(それは、水平方向における3番目のタイルへの接続を実現する)は垂直方向のヘックスバスセグメント6N及び6Sを駆動することが可能である。この手段によって、単一経路の方向は水平方向と垂直方向との間で容易に変更される。
与えられたタイルにおける水平方向のヘックスバスセグメント6E及び6Wは同一のタイルにおいてアクセスされる2本の水平方向の長尺線によって駆動することが可能である。与えられたタイルにおける垂直方向のヘックスバスセグメント6N及び6Sは同一のタイルにおいてアクセスされる2本の垂直方向の長尺線に沿って駆動することが可能である。この能力は、後に図10−12において示されるように、ヘックス線によって直列的に伝搬するのではなく長尺線から各ヘックス線へ(従って、単一線へ)ルーチング即ち経路付けすることによって、長尺線上の信号が高速で複数個のタイルからなる行又は列全体へファンアウトすることを可能とする。
スイッチング構成体403は各単一長バス(N,S,E,W)を他の単一長バスの各々へ接続させることを可能とする。スイッチング構成体403における接続性を図4に示してある。
プログラム可能なバス接続部の重要性
図3Aにおけるバス接続部は本発明に基づくFPGA用の相互接続構成体を実現している。この実施例のバスは以下のような態様で相互作用を行う。(1)長尺線はそれと平行なヘックスバスを駆動することが可能であるが、水平方向のヘックスバスを介することなく、垂直なヘックスバスか又は単一長バスのいずれかを駆動することは不可能であり、(2)ヘックスバスはそれに対して平行な及び垂直な単一長バスを駆動することが可能であるが、単一長バスはヘックスバスを駆動することは不可能である(然しながら、1実施例においては、ヘックスバス及び単一長バスは双方向PIPを介して接続されており、従ってこれらの接続部を単一方向のものとさせるためにソフトウエア上の制限が課される)、(3)ヘックスバスは、更に、それに対して平行及び垂直なその他のヘックスバスを駆動することが可能であり、且つ(4)殆どのヘックスバスは入力マルチプレクサIMUX−2の入力端へ接続することは不可能であるが、ヘックスバスからの制限された数の線は後に説明するようにこのような接続を行うことが可能である。従って、図3Aの相互接続構成体においては、最初に、最も長い適切な線上に信号を配置させ且つそこから該信号をより短い線へ移動させることによってタイル間における接続を形成することが望ましい。例えば、(1)3個又は6個のタイル分離れた論理ブロックに対する接続はヘックス線を介して行われ、単一長線へスイッチングして入力マルチプレクサへ到達し、(2)7個のタイル分離れた論理ブロックへの接続は最初に1本のヘックス線、次いで、1本の単一長線を介して行われ(この接続は第一の例より多くのPIPを必要とするものではない)、(3)FPGAの反対側の論理ブロックへの接続は最初に長尺線を介し、次いでヘックス線を介し、次いでデスティネーション入力マルチプレクサへエンターする前に1本又はそれ以上の単一長線へ転送することによって行われる。このように、バッファされていないPIPが高度に負荷されている線を駆動することがないことを確保することによって大きなRCツリーが回避される。更に、相互接続構成体を介しての種々のタイプの信号経路は同様の遅延を有しており、回路の全体的な性能を増加させる。
勿論、多くの信号経路は複数個のタイルからなる1つの列又は1つの行内のみを走行するものではない。角を曲がるために、信号経路は与えられた単一長線からスイッチング構成体403を介して垂直な単一長線へ、又は与えられたヘックス線から垂直なヘックス線へ移ることが可能である。
タイルのプログラム可能な論理部分
図3Aの繰返し可能なタイルの相互接続部分INTERCONNECT−2は異なるタイルにおける論理ブロック間において信号を送給する目的のためにのみ存在している。この実施例の論理ブロックLBは形態特定可能論理要素CLE−2、出力マルチプレクサOMUX−2、入力マルチプレクサIMUX−2、2個のトライステートバッファ445を有している(トライステートバッファの数は、勿論、本発明のその他の実施例においては異なるものとすることが可能である)。図3Aにおける形態特定可能論理要素CLE−2、入力マルチプレクサIMUX−2、出力マルチプレクサOMUX−2は各入力端及び出力端上において小さな中実の黒色の三角形を有している。三角形の頂点の方向は、信号の流れ方向を表わしている。従って、その頂点が矩形状のボックス内側にある三角形は、入力線又はバスを表わしており且つその頂点が矩形状のボックスの外側にある三角形は出力線又はバスを表わしている。
この実施例の入力マルチプレクサIMUX−2は、(1)単一長バスN,S,E,Wの各々、(2)各12線垂直ヘックスバス42,43,44,45,46,47の4本の線428、(3)出力マルチプレクサOMUX−2からの8線出力バスOUTからの4本の線429、及び(4)形態特定可能論理要素CLE−2からの全部で4本の高速フィードバック線430からの入力を受付ける。入力マルチプレクサIMUX−2は、プログラミングによって、以下の出力信号、(1)形態特定可能論理要素CLE−2へ入力信号を供給する2つの13線バス436、(2)トライステートバッファ445のデータ入力端を駆動する2本信号線431、(3)トライステートバッファ445をイネーブル即ち動作可能状態とさせる2本の信号線432、(4)垂直方向の長尺線バスLV線の2本の線、及び(5)水平方向の長尺線バスLHEの2本の線、を形成することが可能である。
形態特定可能論理要素CLE−2は入力マルチプレクサIMUX−2からの入力のみを受付け、且つ2つの6線バス433として図3Aに示した12本の出力線を駆動する。これらの出力線のうちの4本は入力マルチプレクサIMUX−2に対する高速フィードバック経路430を形成している。形態特定可能論理要素CLE−2からの出力433は出力マルチプレクサOMUX−2を駆動する。OMUX−2はトライステートバッファバスTWから1つの付加的な入力334を取り且つ8線出力バスOUTを駆動する。これら2つのトライステートバッファ445の各々は2線バス435を介してトライステートバッファバスTW内のトライステート線のうちの2つを駆動する。トライステートバッファバスTWに対するトライステートバッファ445の接続は図3Cに更に詳細に示してある。
詳細な繰返し可能なタイル表示
図3C−12は本発明に基づく繰返し可能な相互接続構成体の好適な実施例を示しており、その実施例は図3Aの実施例と類似している。図3Cは好適実施例における単一のタイルの詳細な表示を示している。図3Aに示した全ての特徴が表わされており、且つ幾つかの付加的な特徴が包含されている。図3Cにおける符号は図3Aにおける同一の符号に対応しており、従って対応する構成は容易に識別される。表示において1つの差異が存在しており、即ち、図3Cにおいては、図3Aの72線垂直方向ルーチングトラック6VN/6VSが2つの36線垂直方向ルーチングトラック、即ち右側における6RN/6RSと左側における6LN/6LSとして示されている。各12線ヘックスバスの線のうちの半分はプログラム可能な領域PROGの片側に図示されており、それは図3Aにおけるプログラム可能な領域PROG−2に対応している。この表示上の差異はタイルの機能性に関して何ら影響を有するものではない。図3Cにおいて、水平方向及び垂直方向のヘックスバスは全てのバスの第一線をグループ化して示してある。第一線のみに符号が付けてある。例えば、符号41乃至47は図3Aのヘックスバスセグメント41乃至47の第一線を表わしている。図3Aのヘックスバスセグメント31乃至37は、同様に、示されているが、図3Cにおいては符号を付していない。
図3Cの相互接続領域INTERCONNECTは図3Aの相互接続領域INTERCONNECT−2と機能的に同一である。図3Aにおいては示していない図3Cの実施例における特徴は、(1)タイルの上部に沿っての水平方向の4線グローバルバスGが入力マルチプレクサIMUXに対する4個のグローバル入力を提供しており、そのグローバル入力は高ファンアウト又は高速グローバルクロック信号を配給するために使用することが可能であり、(2)出力バスOUT(出力マルチプレクサOMUXによって駆動される)からの2本の直接出力接続線DOWは西側端部から図3Cのタイルを出て、そこで、それらは西側の隣接するタイルの入力線DIEへ接続されており、(3)左側に隣接するタイルからの2本の直接入力接続線DIEは東端部上で図3Cのタイルへ入り且つ入力マルチプレクサIMUXへ移行し、(4)出力バスOUTからの2本の直接出力接続線DOEは東側端部から図3Cのタイルを出て、そこで、それらは東側に隣接するタイルの線DIWへ接続されており、(5)西側に隣接しているタイルからの2本の直接入力接続線DIWは西側端部から図3Cのタイルへ入り且つ入力マルチプレクサIMUXへ移行し、且つ(6)2つのキャリィチェーンが形態特定可能論理要素CLE内に設けられており、各キャリィチェーンはタイルの南側端部上に入力端を有すると共に該タイルの北側端部において出力端を有しており、該入力端はCIN0及びCIN1として示されており且つ該出力端はCOUT0及びCOUT1として示されている、ことを包含している。本発明に基づく相互接続構成体の幾つかの実施例はこれらの特徴を有するものではない。
相互接続領域
図4は図3Cの相互接続領域INTERCONNECTを詳細に示している。全ての入力線及び出力線は図3C及び4における同一の相対的な位置に位置されている。図3Cにおける相互接続領域INTERCONNECTへの入力線及び出力線は、図4における対応する符号を見ることによって識別することが可能である。上述した如く、垂直方向のルーチングトラックの分割を除いて、図4も図3Aの相互接続領域INTERCONNECT−2に直接的に対応している。数字の符号は前に示し且つ記述した具体例の特徴を識別している。
図4におけるプログラム可能なバス接続404及び405は本発明の付加的な特徴を示している。プログラム可能なバス接続部404及び405において、垂直方向及び水平方向のヘックスバス(夫々、)はプログラミングによって一緒に接続され、1つのヘックスバスから次のものへの同一の方向における信号経路の継続性を与えることを可能としている。図4に示したように、これらの接続部の幾つかは双方向性のものとすることが可能であり(例えば、パストランジスタとして実現)、一方その他のものを単一方向性である(例えば、バッファ型の接続)。1実施例においては、双方向ヘックスバス(いずれかの端部からプログラミングによって駆動することが可能なヘックスバス)は単一方向のヘックスバス(一方の端部のみからプログラミングによって駆動することが可能なヘックスバス)よりもより多くのプログラム可能な垂直のバスに対する接続部を有している。このような双方向性の接続部は最も柔軟性があり、一方このような単一方向接続部はより高速である。何故ならば、PIPはプログラム可能なイネーブルなしで単一バッファとして実現することが可能だからである。
垂直方向の長尺線LV0及びLV6は前述したように、各繰返し可能なタイル内においてアクセスされる垂直方向の長尺線バスLVSの第一線及び第七線を夫々識別する。同様に、水平方向の長尺線LH0及びLH6は、夫々、水平方向の長尺線バスLHEの第一線及び第七線を識別する。
前述したように、図3Aのヘックスバスセグメント6N,6V,6Sは図3Cにおいて、相互接続(INTERCONNECT)領域を左側端部から出て図3Cの36線垂直方向ルーチングトラック6RN/6RSを形成するヘックスバスセグメント6NR,6VR,6SRと、相互接続(INTERCONNECT)領域を西側エッジから出て図3Cの36線垂直方向ルーチングトラック6LN/6LSを形成するヘックスバスセグメント6NL,6VL,6SLとに分割している。
出力マルチプレクサOMUX
図5,6,7は図3Cに示した実施例の出力マルチプレクサ(OMUX)、形態特定可能論理要素(CLE)、入力マルチプレクサ(IMUX)を示している。全ての入力線及び出力線は図3C,5,6,7における同一の相対的な位置内に物理的に位置されており、従って入力線及び出力線は図と図との間で容易にトレースすることが可能である。図5及び7に示したPIPパターンは、多くの可能なパターンのうちの1つを形成しているに過ぎない。これらの3つのブロックの具体例及びブロック間の接続は、3個のブロックが互いに互換性がある限り、本発明の異なる実施例において著しく異なる場合がある。例えば、ブロック間の接続数を増加させるか又は減少させることが可能である。更に、これらのブロックのうちの2個又はそれ以上を結合させるか、又は入力又は出力マルチプレクサの一方又は両方を除去することが可能である。これらの変形例については本明細書において更に説明するが、このような修正は本発明概念によって包含されている。本明細書を読んだ後に当業者にとって、本発明をこれら及びその他のアーキテクチュア変形例内において実施することが可能であることは明らかである。
図5は出力マルチプレクサOMUXの内部の詳細を示している。図5に示したように、入力線(論理ブロックCLEの出力)は一連の8個の出力(OUTO乃至OUT7)を駆動するために選択的にプログラムされる。全ての入力が全ての出力を駆動可能なものではなく、何個のPIPを設け且つどにそれらを位置させるかの選択は、典型的に、性能、シリコン面積、ルーチング柔軟性のトレードオフ拘束条件に基づいて行われる。
形態特定可能論理要素CLE
図6は図3Cに示した実施例の形態特定可能論理要素(CLE)用の入力信号及び出力信号を示している。多くの形態特定可能論理要素を本発明の相互接続構成体と共に使用することが可能である。例えば、ザイリンクス1996データブックの4−11乃至4−23頁は、本発明と適合性を有するXC4000シリーズFPGAアーキテクチュアにおいて使用されている形態特定可能論理要素を記載している。該文書の4−294、4−295、13−13乃至13−15頁は、XC3000シリーズFPGAアーキテクチュアにおいて使用されている別の互換性のある形態特定可能論理要素を記載している。同一の文書の4−188乃至4−190頁はXC5200ファミリィFPGAアーキテクチュアにおいて使用されている更に別の適合性のある形態特定可能論理要素を記載している。
図3Cの実施例と共に使用することの可能な1つのCLEを図6A及び6Bに示してある。この実施例においては、CLEは「スライス」と呼ばれる2つの類似した部分で実現されている。CLEの全体を見るためには、各々が1つのスライスを示している図6A及び6Bを図6Aの上部の手引きに示したように並べて観察せねばならない。CLEの機能即ち関数を制御するプログラム可能な(形態特定可能な)ビットが「x」を包含する小さなボックスとして示されている。図6A及び6BのCLEは4個の関数発生器、即ち図6BにおけるF及びGと、図6AにおけるH及びJとを有している。関数発生器Fは4個のデータ入力端F1,F2,F3,F4を有しており、関数発生器Gは4個のデータ入力端G1,G2,G3,G4を有しており、関数発生器Hは4個のデータ入力端H1,H2,H3,H4を有しており、関数発生器Jは4個のデータ入力端J1,J2,J3,J4を有している。関数発生器F,G,H,Jの各々は、更に、データ入力端D1及び出力端Oを有している。更に、各関数発生器F,Gは、マルチプレクサ69Bによってオプション的に反転されるクロック入力信号CK0、マルチプレクサ60Bによってオプション的に反転されるセット/リセット入力信号SR0、マルチプレクサVFによってオプション的に反転される入力信号BFから書込ストローブ発生器WBにおいて発生される書込ストローブWS入力端WSF,WSGを夫々有している。各関数発生器H,Jは、マルチプレクサ69Aによってオプション的に反転されるクロック入力信号CK1、マルチプレクサ60Bによってオプション的に反転されるセット/リセット入力信号SR1、マルチプレクサVHによってオプション的に反転される入力信号BHから書込ストローブ発生器WAにおいて発生される書込ストローブWS入力端WSH,WSJを夫々有している。
図6A及び6Bの関数発生器F,G,H,Jは小型のRAM及びルックアップテーブルのみならずシフトレジスタとして動作する能力を有している。書込ストローブ信号WSはシフト機能及びRAM書込サイクルを制御する。データ入力ポートDIはアドレスされたメモリセルに対して書込むためのデータ信号(この実施例においては、入力信号DF,BH,BG,BJから派生される)を担持する。関数発生器F,G,H,Jがシフトレジスタとして形態が特定される場合には、シフトレジスタデータ入力信号は、夫々、BF,BG,BH,BJから取られる。書込ストローブ発生器WB,WAは、夫々、書込ストローブ信号WSF及びWSG,WSH及びWSJを発生する。信号WSF,WSG,WSH,WSJは、関数発生器がRAMとして形態特定される場合に、書込サイクル期間中にそれらの夫々の関数発生器内へのデータをストローブし、且つ関数発生器がシフトレジスタとして形態特定される場合にはシフトを発生する。RAMとしての関数発生器の使用についてはザイリンクス1996データブックの4−11乃至4−23頁に記載されている。
従って、この実施例の関数発生器は、ルックアップテーブル、シフトレジスタ、16×1RAM、16×1二重ポート型RAMの半分(1つのスライス内の2つの関数発生器が対構成とされた場合)、16×2RAMの半分、又は32×1RAMの半分(1つのスライス内の2つの関数発生器が対構成とされた場合)として形態特定することが可能である。関数発生器形態の全ての組合わせが単一のスライスにおいてサポートされているわけではない。サポートされている組合わせについて以下に詳細に説明する。この実施例においては、書込ストローブ信号WSF及びWSGは書込ストローブ発生器WBによって制御される。関数発生器入力端WS上の高(論理1)パルスは、ルックアップテーブル(シフトレジスタとして形態特定されている場合)の第一メモリセルか、又はアドレスされたセル(RAMとして形態特定されている場合)のいずれかに対して関数発生器ルックアップテーブルに対する書込を発生させる。
書込ストローブ発生器WBは関数発生器形態のサポートされている組合わせにおいて以下の如くに機能する。(a)関数発生器F及びGが両方とも、ルックアップテーブルとして形態特定されている場合には、書込ストローブ信号WSF及びWSGは低(論理0)に保持され、(b)関数発生器Gが16×1RAM又はシフトレジスタとして形態特定されており且つ関数発生器Fがルックアップテーブルとして形態特定されている場合には、書込ストローブ信号WSFは低に止まり、一方SR0がアクティブ(マルチプレクサ60Bが反転性であるか否かに依存して低又は高)である場合に書込ストローブ信号WSGは高へパルス動作し且つCK0は適切な遷移を行い(マルチプレクサ69BがCK0を反転させるか否かに依存して下降又は上昇)、(c)関数発生器F及びGが二重ポート型16×1RAM、16×2RAM、又は一対のシフトレジスタとして形態特定される場合には、書込ストローブ信号WSF及びWSGは、SR0がアクティブである場合に共に高パルス動作し且つCK0は適切な遷移を行い、(d)関数発生器F及びGが単一の32×1RAMとして形態特定されている場合には、書込ストローブ信号WSF及びWSGのうちの両方ではなく1つが、SR0がアクティブである場合に高をパルス動作し且つCK0は適切な遷移を行う。発生される高パルスは、マルチプレクサVFが非反転性であり且つ入力信号BFが高であるか又はマルチプレクサVFが反転性であり且つ入力信号BFが低である場合に書込ストローブ信号WSF上で発生し、そうでない場合には高パルスは書込ストローブ信号WSG上で発生する。上の説明から理解することが可能であるように、SR0は書込イネーブルとして作用し且つCK0はシンクロナスRAM又はシフトレジスタに対するクロックして作用し、一方BFは1つのスライス内の2つの関数発生器が32ビットRAMとして形態特定されている場合に5番目のアドレスビットとして作用する。
書込ストローブ信号WSH及びWSJは書込ストローブ発生器WAによって発生され且つ対応する態様で入力信号SR1,CK1,BHによって制御される。
ANDゲート61F,61G,61H,61J及びマルチプレクサ81F,81G,81H,81J,CF,CG,CH,CJは乗算器及びキャリィ論理機能を実現する。図6A及び6Bにおいて、マルチプレクサ81F,81G,81H,81Jの各々はマルチプレクサ出力を決定する別個のプログラム可能なメモリセルを有している。別の実施例においては、各スライス内の2つのマルチプレクサ(81F及び81G、81H及び81J)はメモリセルを共有し、従って、同一のプログラムされた機能性を有している。
図6A及び6Bの実施例においては、各スライスは別個のキャリィ遅延を有している。1つのキャリィ遅延は入力信号CIN0から出力信号COUT0へのものであり且つ関数発生器F及びGの出力を組込む。他方のキャリィ遅延は入力信号CIN1から出力信号COUT1へのものであり且つ関数発生器H及びJの出力を組込む。
各スライスは、更に、5入力関数マルチプレクサF5A,F5B及び6入力関数マルチプレクサF6A,F6Bを包含している。図6Aにおいて、マルチプレクサF6Aは図6BにおけるマルチプレクサF5Bの出力端から西側へ進む線F5W上の入力信号を受取る。図6Bにおいて、6入力関数マルチプレクサF6Bは、図6AにおけるマルチプレクサF5Aの出力端から東へ進む線F5E上の入力信号を受取る。マルチプレクサF6AはマルチプレクサF5Aからの第二入力信号を受取り、且つマルチプレクサF6BはマルチプレクサF5Bからの第二入力信号を受取る。マルチプレクサF5Aは関数発生器H及びJの出力端Oからの入力を受取る。マルチプレクサF5Bは関数発生器F及びGの出力端Oからの入力を受取る。
この実施例のCLEは線BF,BH,BG,BJ上の4個のエキストラな制御信号を受取る。これらの線は、夫々、マルチプレクサVF,VH,VG,VJを使用してプログラミングすることによって反転させることが可能であり、且つ幾つかの有用な機能を制御する。5入力関数マルチプレクサF5A,F5Bは、夫々、線BH,BFによって制御される。6入力関数マルチプレクサF6A,F6Bは、夫々、線BJ,BGによって制御される。ユーザはマルチプレクサF5A及び関数発生器H及びJの出力を使用して4入力マルチプレクサを形成することが可能であり、関数発生器H及びJの各々は2入力マルチプレクサとして形態特定される。同様に、4入力マルチプレクサは、マルチプレクサF5Bと関数発生器F及びGの出力とを使用して形成することが可能である。ユーザは、各々がその夫々の関数発生器からの出力を受取るマルチプレクサF5A及びF5Bの両方からの入力を受取るマルチプレクサF6A又はマルチプレクサF6Bのいずれかを使用して8入力マルチプレクサを形成することが可能である。更に、マルチプレクサF5Aの場合には、関数発生器H及びJ内のメモリセルは32ビットRAMとして動作することが可能である。マルチプレクサF5Bの場合には、関数発生器F及びG内のメモリセルは32ビットRAMとして動作することが可能である。線BF,BH,BG,BJは後に記載するようなその他の機能に加えて、マルチプレクサ制御線又はRAMアドレス線として作用する。
レジスタRX,RY,RZ,RVは、夫々、出力XQ,YQ,ZQ,VQを発生する。レジスタRX,RY,RZ,RVへのクロック入力はこれらのレジスタ内へ頂点が向いている開いた三角形によって指定されている。クロックイネーブル入力CEはANDゲート62A,62Bを使用してディスエーブル即ち動作不能状態とさせることが可能である(ANDゲート62A,62Bは、各ANDゲートに対する入力のうちの1つを供給するプログラム可能なメモリセルによって制御される)。レジスタRX,RY,RZ,RVはセットポートS又はリセットポートRを介して同期的に又は非同期的のいずれかでセット又はリセットすることが可能である(同期又は非同期の選択は各スライス内の2つのレジスタの間で共有されるプログラム可能なメモリセルによって行われる)。セット/リセット入力信号SR0,SR1はマルチプレクサ60A,60B及びANDゲート67A,67Bによって制御される。入力SR0,SR1(ANDゲート67A,67Bによってイネーブルされる場合)は該レジスタをセット又はリセットすることが可能である。セット/リセット制御ユニットR81B,R82B,R81A,R82Aは、夫々、レジスタRX,RY,RZ,RVをセット又はリセットするためにプログラミングによって制御される。レジスタRX,RY,RZ,RVはラッチとして形態特定することも可能であり、その選択は各スライス内の2つのレジスタ間で共有されているプログラム可能なメモリセルによって行われる。
XORゲートSF,SG,SH,SJは加算又は乗算の和部分を発生する。
マルチプレクサMF,MG,MH,MJは、夫々、出力線X,Y,Z,V上に配置するための信号の間の選択を行う。マルチプレクサMF及びMHは関連する関数発生器出力信号、和出力信号、5入力関数マルチプレクサ出力信号の間で選択を行う。マルチプレクサMG及びMJは関連する関数発生器出力信号、和出力信号、6入力関数マルチプレクサ出力信号の間で選択を行う。関数発生器F,G,H,J出力信号は、最大で4個の入力の論理関数が選択される場合に選択される。5入力関数マルチプレクサF5A,F5B出力信号は、9入力関数の制限された組のうちの1つが選択される場合に選択され、5個の入力の任意の論理関数、4対1マルチプレクサ、2対1マルチプレクサへデータを供給する2個の4入力関数として実現することの可能な任意のその他の関数を包含している。6入力関数マルチプレクサF6A,F6B出力信号は、18入力関数の制限された組のうちの1つが選択される場合に選択され、6個の入力の任意の論理関数、8対1マルチプレクサ、2対1マルチプレクサへデータを供給する2個の5入力関数マルチプレクサF5A,F5Bの出力として実現することの可能な任意のその他の関数を包含している。XORゲートSF,SG,SH,SJの和出力信号は、例えば加算、減算又は乗算等の適宜の演算が実施される場合に選択される。
マルチプレクサOF,OG,OH,OJはキャリィ遅延が関連する関数発生器をバイパスすることを可能とする。マルチプレクサOF,OG,OH,OJは、夫々のキャリィマルチプレクサCF,CG,CH,CJが関数発生器出力信号Oによって制御されるか否か、又はキャリィ遅延がキャリィイン信号をキャリィ遅延に沿って次のステージへ伝搬させることによって関数発生器をバイパスするか否かを選択する。マルチプレクサCA,CBはキャリィイン信号CIN0,CIN1(夫々、インバータ121B及びI122B、I121A及びI122Aによってこの実施例においてはバッファされている)又は入力信号BF,BHのいずれかをCLE内のキャリィ遅延に対する開始点として選択することによってそれらの夫々のキャリィ遅延上への付加的なアクセスを可能とする。
マルチプレクサDF,DHはマルチプレクサMF,MHの出力端からか又は入力信号BF,BHからのいずれから、夫々、関連するレジスタRX,RZ内へ信号をロードさせることを選択する。マルチプレクサDG,DJはマルチプレクサMG,MJの出力からか又は入力信号線BG,BJからのいずれかから、夫々、関連するレジスタRY,RV内へ信号をロードさせることを選択する。
マルチプレクサBB,BAは、キャリィアウト信号COUT0,COUT1を出力線YB,VBへ印加することが可能であるか又は入力信号BG,BJを出力線YB,VBへ転送してCLEの片側で発生された信号をCLEの反対側上のデスティネーション即ち宛先へ経路付けさせることの可能なバイパスマルチプレクサである。
ANDゲートBRB,BRAは、入力信号BG,BJがレジスタRX,RY,RZ,RVへのセット/リセット信号として作用することを可能とするか、又は、入力信号BG,BJがレジスタRX,RY,RZ,RVから切断させることを可能とし、従って入力信号BG,BJは、例えば該レジスタをセット又はリセットすることなしに、DI信号を関数発生器G,Jへ供給するか又はマルチプレクサF6B,F6Aの制御等のその他の目的のために使用することが可能である。ANDゲートBRB,BRAを制御するメモリセル内の論理0は線BG,BJをセット/リセット制御ユニットR81B,R82B,R81A,R82Aから切断させ、一方関連するメモリセル内の論理1はANDゲートBRB,BRAをイネーブルさせてBG,BJ上の信号を使用してセット/リセット制御ユニットR81B,R82B,R81A,R82Aによって決定されるようにレジスタRX,RY,RZ,RVをセット又はリセットさせる。
入力マルチプレクサIMUX
図7は図3Cに示した実施例の入力マルチプレクサIMUXの内部の詳細を示している。図7に示したように、この実施例における入力線(G,430,DIW,428,DIE,429)は一連の34個の出力(431,432,436,LV0,LV6,LH0,LH6)を駆動するように選択的にプログラムされる。これらの出力のうちの26個がCLE入力端436を駆動し、2つがデータ入力端431を駆動し、且つ2つがトライステートバッファ445のイネーブル入力端432を駆動し、2つがLV0及びLV6(垂直方向の長尺線バスLVSの2つの線)を駆動し、且つ2つがLH0及びLH6(水平方向長尺線バスLHEの2つの線)を駆動する。全ての入力が全ての出力を駆動することが可能なわけではなく、幾つのPIPを供給すべきか且つどこにそれらを物理的に位置させるかの選択は、典型的に、性能、シリコン面積、ルーチング柔軟性のトレードオフ拘束条件に基づいて行われる。1実施例においては、どのIMUX入力線へも接続されていないいずれかのIMUX出力端がプルアップを介して正電圧供給源へ接続している。
ルーチング例
図8及び9は図3Cに示した実施例に従って複数個のタイルからなるアレイ内において実現された信号経路の例を示している。図8及び9において使用されている符号の表記方法は、タイルが図に示したアレイの部分に基づく行及び列番号によって識別されるというものである。1個のタイル内において、線の符号は図3Aに示したバスの符号に対応している。然しながら、図8及び9においては、符号はバス全体ではなく単一の線を表わしている。例において使用されている線のみが示されており且つ符号が付けられている。この符号の表記方法をもって、幾つかの符号は一度を超えて使用されている。しかし、不明確性は存在していない。何故ならば、全てのタイルは同一であり且つ各タイルは異なるタイル番号を有しているからである。タイル番号は同一の図面において一度を超えて使用されている符号の間を区別している。
図8はヘックス線及び単一長線を使用した信号経路のルーチング例を示している。信号はタイル8−2の発信元論理ブロックL0によって発信され、且つ、プログラミングによって、線OUTを介してタイル内においてヘックスセグメント6Nへ接続されている。ヘックスセグメント6Nは北へ方向転換し且つ垂直方向のヘックスセグメント47となる。この信号はタイル5−3,4−3,1−2における3つのデスティネーションにおける論理ブロックへファンアウトせねばならない。該信号はセグメント46乃至42上をタイル7−2乃至3−2を介して通過する。タイル5−2において、該信号はセグメント44上にあり、そこで、それはセグメント6Vへファンアウトする。タイル5−2において、セグメント6Vはプログラミングによって単一長線Eへ接続されており、それは線Wとしてタイル5−3内へ東方向へ継続する。タイル5−3において、線Wは第一のデスティネーションである論理ブロックL1に対し、更に、スイッチング構成体403に対する入力となり、そこで、それはプログラミングによって線Nへ接続される。タイル5−3の線Nは継続して線Sとしてタイル4−3内へ北方向に進み、それは第二のデスティネーションである論理ブロックL2に対する入力となる。垂直方向のヘックス線の北側端部はタイル2−2において到達され、そこで該信号はセグメント41上にある。セグメント41は、プログラミングによって単一長線Nへ接続されており、それは線Sとしてタイル1−2内へ北方向へ続いている。タイル1−2において、線Sは第三のデスティネーションである論理ブロックL3に対する入力となる。
従って、図8において、発信元論理ブロックL0からデスティネーション(宛先)論理ブロックL1,L2,L3に対して信号ネットが形成されている。この接続は高速である。何故ならば、ヘックス線上のPIPはバッファされており、ヘックス線上のPIPの数が少ないためにヘックス線上の容量が低く、且つ発信元からデスティネーションへの各経路は信号経路内に遅延を挿入するPIPの総数が少ないからである。図8の例においては、発信元とデスティネーション論理ブロックとの間の各信号経路は高々3個のPIP、即ちヘックス線上の1個のバッファしたPIPと単一長線上の1個又は2個のバッファしていないPIPを必要とするに過ぎない(論理ブロックは図3AにおいてLBとした示した構造である)。
図9は長尺線と、ヘックス線と、単一長線とを使用した信号経路のルーチング例を示している。信号はタイル1−1の発信元論理ブロックL8によって発信され、且つ論理ブロックL4,L5,L6,L7へ経路付けされねばならない。論理ブロックL8からの信号は、プログラミングによって、タイル1−1内においてその特定のタイルからアクセス可能な垂直方向の長尺線VLのうちの1つへ接続されている。長尺線LVは18個のタイルにわたりタイル19−1へ南側方向へ延在しており、そこで長尺線LVは、プログラミングによって、ヘックスセグメント6Sへ接続されており、次いで南方向へ続いて図9に示したアレイの部分の南側のその他のヘックス線(不図示)を駆動する(図9における18個のタイル分のギャップが包含されており、長尺線LVは、長尺線が連結されたヘックス線よりもより効率的なものであるのに充分遠くに信号を運ばねばならないことを示している)。タイル19−1内のヘックスセグメント6Sから、該信号は南方向へ方向転換し且つ垂直方向のヘックスセグメント41となる。該信号はセグメント42乃至46上をタイル20−1乃至24−1を介して通過する。タイル22−1において、該信号はセグメント44上に有り、そこで、それはセグメント6Vへファンアウトし且つ続いてタイル25−1に向かって南方向へ進行する。タイル22−1内のセグメント6Vから、該信号はセグメント6Eに対してプログラム可能な接続を形成する(2つの垂直なヘックス線の接続部を示している)。次いで、該信号はセグメント37上を東方向へ移動し、セグメント36乃至32上をタイル22−2乃至22−6をトラバースする。タイル22−4において、該信号はセグメント34上に有り、そこで、それはセグメント6Hへファンアウトし且つ続いてタイル22−5に向かって東方向へ進む。タイル22−4において、該信号はセグメント6Hと線Nとしてタイル23−4内に南方向へ続いている単一長線Sとの間のプログラム可能な接続を行う。タイル23−4において、線Nはスイッチング構成体403内に入り且つ線Eへ接続し、線Eは線W上をタイル23−5内に東方向へ続いており、第一のデスティネーションである論理ブロックL4に対する入力となる。タイル22−6におけるセグメント32から、該信号はセグメント31上をタイル22−7内へ東方向へ続き、次いでセグメント6W上へ北方向へ方向転換する。セグメント6Wはプログラミングによって線Nへ接続されており、それは線Sとしてタイル21−7内へ北方向へ続き、且つ第二のデスティネーションである論理ブロックL5に対する入力となる。垂直のヘックス線へ戻り、タイル24−1内のセグメント46上の信号はセグメント47上をタイル25−1内へ南方向へ続き、それはセグメント6N上で西方向へ方向転換する。タイル25−1内のセグメント6Nから、該信号はセグメント6Eに対してプログラム可能な接続を行う。次いで、該信号はセグメント37上を東方向へ移動し、セグメント36乃至32上をタイル25−2乃至25−6をトラバースする。タイル25−6内のセグメント32から、該信号はセグメント31上をタイル25−7内へ東方向に続き、次いでセグメント6W上へ北方向に方向転換する。セグメント6Wはプログラミングによって線Sへ接続されており、それは線Nとしてタイル26−7内へ南方向に続き且つ第三のデスティネーションである論理ブロックL6に対する入力となる。更にもう一つの接続が形成されるべく残っている。タイル25−1内の垂直のヘックス線の南側端部から、セグメント6V上の信号は線Eに対して付加的なプログラム可能な接続を形成する。線Eは線W上をタイル25−2内へ東方向に続いている。タイル25−2内において、線Wはスイッチング構成体403に入り且つ線Sへ接続し、それは線N上をタイル26−2内へ南方向に続き、第四のデスティネーションである論理ブロックL7に対する入力となる。
従って、図9において、発信元論理ブロックL8からデスティネーションの論理ブロックL4,L5,L6,L7に対する信号ネットが形成されている。図8の例におけるように、長尺線及びヘックス線に対する接続はバッファ型であり且つバッファされていない接続のRC遅延が最小とされている。この例においては、これらのデスティネーションは論理ブロック間の相互接続経路内において高々4個のPIPを必要とするに過ぎず、即ちヘックス線上の1個又は2個のバッファ型PIPと、単一長線上の1個又は2個のバッファされていないPIPである。それでも、発信元論理ブロックL8とデスティネーション論理ブロックL6との間において31個のタイルがトラバースされている。
上のルーチング例の全てにおいて、別の経路が使用可能であり、その多くはこれらの例において使用された信号経路よりもより多くのPIPを必要とする。1つの経路上の相互接続線の幾つかが既に他の信号によって使用されている場合には、別の経路を使用することが可能である。
高ファンアウトルーチング例
図10は例えばクロック(CK)、クロックイネーブル(CE)、セット/リセット(SR)、又は垂直方向の長尺線から複数個のタイルからなる列へ送給されるトライステートイネーブル信号(432)等の高ファンアウト制御信号のルーチング例を示している。信号はタイルアレイの外側からか又は図3Aの線437Iのうちの1つを使用することによって、垂直方向の長尺線上に配置させることが可能である。垂直方向の長尺線バスLVから、12番目のタイル(TILE4)毎に、高ファンアウト制御信号が線600上に表われる。線600は2本の垂直方向のヘックス線を駆動し、そのうちの1つ(H)はTILE4から6個のタイル北方向へ延在しており且つそのうちの1つ(H2)はTILE4から6個のタイル南方向へ延在している。ヘックス線H1及びH2から、線428(図3Aにおいて示してある)は各垂直方向のヘックスバスの4個のビットが論理ブロックを駆動することを許容する。図7の入力マルチプレクサ(IMUX)は、線428を介して、垂直方向のヘックス線が、例えば関数発生器入力端等のその他のCLE入力端上の信号は、常に、CLEに到達するためには単一長線を介して通過せねばならないにも拘らず、単一長線を介して通過することなしに制御信号CK,CE,SR,432を駆動することを許容する。ヘックス線H1はTILE4内の論理ブロック及びその北側に隣接する5個のタイルを駆動する。注意すべきことであるが、ヘックス線H1によって到達される最も北側のタイルにおいては、線428はヘックス線H1と接触するものではない。その代わりに、ヘックス線H3と接触されており、それはTILE4の北側に12個のタイルを発生している。ヘックス線H2はTILE4の南側に隣接している6個の論理ブロックを駆動する。ヘックス線H1の北側においては、ヘックス線H3が隣接する6個の論理ブロックを駆動する。ヘックス線H2の南側においては、ヘックス線H4が隣接する6個の論理ブロックを駆動する。各ヘックス線は6個の論理ブロックにおける高ファンアウト制御信号を駆動する。ヘックス線H1及びH2によってアクセスされるタイル(図10において610の符号が付けてある)は12個のタイルからなる列を形成しており、それは繰返しのタイルからなるアレイの列全体へアクセスするために垂直方向に繰返すことが可能である。
図10は、高ファンアウト制御信号の場合には、垂直方向の長尺線上の信号と同一の列内のいずれかのデスティネーション論理ブロックとの間に1個のPIPが存在するに過ぎないことを示している(然しながら、好適実施例においては、入力マルチプレクサIMUXにおける経路へ付加された付加的なPIPが存在している)。従って、この経路上では殆ど遅延が存在しない。更に、この配分方向は、各論理ブロック入力端への経路において同数のPIPと同数の相互接続線(1本の長尺線、1本のヘックス線)を有している。従って、この経路上ではスキューは非常に低い。グローバル線(図3CにおけるG)は、典型的に、最大で4個のクロックに対して使用されるが、図10の配分方法は、本発明に基づく相互接続技術の階層的性質を利用することによって、性能が高く且つスキューが低い優れた付加的なクロック配分回路網を形成している。
図11は垂直方向の長尺線から複数個のタイルからなる列へ送給される高ファンアウト関数発生器入力信号(又はその他の非制御信号)のルーチング例を示している。信号は、タイルアレイ外側からか、又は図3Aの垂直方向の長尺線437Iのうちの1つを使用することによって、垂直方向の長尺線上に配置させることが可能である。垂直方向の長尺線バスLVから、12番目のタイル(TILE5−6)毎に、高ファンアウト関数発生器入力信号が線601上に表われる。線601は2本の垂直方向のヘックス線を駆動し、そのうちの1つ(H5)はTILE4から6個のタイル分北方向へ延在しており且つそのうちの1つ(H6)はTILE4から6個のタイル分南方向へ延在している。ヘックス線H5及びH6から線セグメント6S,6N,6Vが単一長線N,S及びスイッチング構成体403に関連して使用されて、図8及び9における相互接続と同様に、論理ブロックを駆動する。1実施例においては、CLE内部の関数発生器入力端へ接続する信号は、常に、CLEに到達するためには単一長線を介して通過せねばならない。ヘックス線H5は、単一長線を介して、タイルTILE5−7、TILE5−8、TILE5−3内の論理ブロックを駆動する。更に、ヘックス線H5は、単一長線を介して、列511の北側の12タイル列も3個の最も南側のタイル(列611のタイルTILE5−10,TILE5−11,TILE5−12に対応)における論理ブロックを駆動する。ヘックス線H6は、単一長線を介して、タイルTILE5−4,TILE5−5,TILE5−6,TILE5−9内の論理ブロックを駆動する。更に、ヘックス線H6は、単一長線を介して、列611の南側の12タイル列の2個の最も北側のタイル(列611のタイルTILE5−1及びTILE5−2に対応)における論理ブロックを駆動する。タイルTILE5−1及びTILE5−2は、単一長線を介して、ヘックスH7によって駆動され、それはTILE5−6の北側に12個のタイルを発生させる。タイルTILE5−10,TILE5−11,TILE5−12は、単一長線を介して、ヘックス線H8によって駆動され、それはTILE5−6の南側に12個のタイルを発生する。各ヘックス線は6個の論理ブロックにおいて高ファンアウト関数発生器入力信号を駆動する。従って、隣接する12タイル列611の間の共同によって、繰返しパターンが形成され、それは非制御信号を繰返しタイルからなるアレイの列全体に対して配分することを可能とする。
注意すべきことであるが、ヘックス線及び単一長線のその他の接続も可能である。例えば、TILE5−2における論理ブロックは、TILE5−3(不図示)におけるスイッチング構成体及び単一長線を介して、従って、TILE5−2における付加的なスイッチング構成体及び単一長線を介してTILE5−1における論理ブロックを駆動するためにヘックス線6Vによって駆動することが可能である。この構成又は同様の構成を、2つの最も北側のタイルをアクセスするために12タイル列611の最も北側の具体例において使用することが可能である。3個の最も南側のタイルへアクセスするために、12タイル列611の最も南側の具体例において同様の接続を行うことが可能である。
図11は、高ファンアウト関数発生器入力信号に対して、垂直方向の長尺線上の信号と同一の列内のいずれかのデスティネーション論理ブロックとの間には2個又は3個のPIPが存在していることを示しており、即ち長尺線からヘックス線への1つと、ヘックス線から第一単一長線への1つと、且つ、時々、スイッチング構成体を介して第二の単一長線に対して1つである(然しながら、好適実施例においては、入力マルチプレクサIMUX内の経路に対して付加された1つの付加的なPIPが存在している)。最後の1つ又は2つのPIPが非バッファ型であるに過ぎない。従って、このネット上においては多数のバッファされていないRCツリーは存在しておらず、どの信号経路も直列して2個を超えるバッファされていないPIPを有するものではなく、且つ各信号経路上の遅延は最小とされている。
図12は複数個のタイルからなるアレイに対して高ファンアウト信号を送給するためにどのようにして図10及び/又は11の相互接続を結合させるかの1例を示している。信号はタイルアレイの外側からか又は図3Aの線438のうちの1つを使用することによって、水平方向の長尺線上に配置させることが可能である。該信号は水平方向の長尺線バスLHにおける1本の線上において図12に示したアレイの部分に入る。長尺線バスLHは12個のタイルからなる行612をトラバースし、その場合に、それはヘックス線及び単一長線を介して12個の論理ブロックと接触する。幾つかの水平方向のヘックス線へ接続されている水平方向の単一長線はIMUX内のPIPを介して垂直方向の長尺線を駆動することが可能である。図12の12個のタイル内の論理ブロックから、線437Iは論理ブロック内の入力マルチプレクサ(図3A参照)から垂直方向の長尺線LVを駆動するために延在している。12個のタイル612の各々における線437Iを使用して、水平方向の長尺線バスLH上の信号は12垂直方向長尺線LVへ転送される。12個の垂直タイルからなる列(613)は図10(制御信号に対して)の12個のタイル610によるか又は図11(関数発生器又はその他の非制御信号に対して)の12個のタイル611のいずれかによって実現することが可能である。マルチプル即ち複数個の12タイル列613をアクセス可能なタイルの数を増加させるために配置することが可能である。このように、高ファンアウト信号は発信元タイルからアレイ内の任意のタイルに対して分配させることが可能である。
図12の配分手法の別法として、例えば、ヘックス線が長尺線を駆動し、従って図12において使用されている単一長線をバイパスすることを可能とする特別のタイルを形成することが可能である。このような特別のタイルはタイルアレイの上端部又は底端部に沿って、又はアレイ内においてある間隔で配置された行内に効果的に配置させることが可能である。
高速フィードバック経路
FPGA内の論理経路は、典型的に、一連の組合わせ論理ゲートと交互配置されたフリップフロップ又はラッチを有している。これらの組合わせ論理ゲートはカスケード接続した関数発生器において実現される。クリチカルパス即ち臨界的経路は、しばしば、このようなフリップフロップ又はラッチの間において直列してカスケード接続された多数の関数発生器を有する経路である。従って、このようなクリチカルパスは1つのフリップフロップから1つの関数発生器への1つの接続、及び1つの関数発生器から1つのフリップフロップへの1つの接続を有しているが、多数の接続が2つの関数発生器の間に発生している。従って、関数発生器の間の接続を高速化させる高速フィードバック経路からクリチカルパスに対して顕著な性能上の利点が得られる。従って、1つの実施例においては、関数発生器出力によって駆動されるCLE出力のみが高速フィードバック経路への接続を有している。レジスタされる出力はこのような接続を有するものではない。同様に、高速フィードバック経路へ接続されているCLE入力端は関数発生器入力端であり且つ制御入力端ではない。このような1つの実施例は、図3Aの実施例であり、その場合には、非レジスタ型CLE出力端は高速フィードバック経路への接続を有している(非レジスタ型CLE出力X及びY,Z及びVは夫々図6B,6Aに示してある)。図3Aの実施例においては、高速フィードバック経路が高速フィードバック線430及び入力マルチプレクサIMUX−2を介して経路付けされている。レジスタ型CLE出力は図3Aの出力マルチプレクサOMUX−2内へ経路付けされており且つ高速フィードバック経路に対する接続を有するものではない(レジスタ型CLE出力XQ及びYQ,ZQ,VQは夫々、図6B及び6Aに示してある)。
図13はCLEの出力端から同一のCLEの入力端への図3Cの実施例の高速フィードバック経路を簡単化した形態で示してある。図6A及び6Bにおける符号と同一である図13における符号は同一の構成要素又は信号線を示している。例えば、図13において、CLE出力端Vは関数発生器Jの出力によって駆動される(領域135における中間に介在する論理は図13には示していないが、図6Aに示してある)。CLE出力Vは、更に、領域134内にフィードバックし、それは、図3Cの実施例においては、入力マルチプレクサIMUXの一部として実現されている。領域134において、CLE出力VはPIP130,131,132,133を介してCLE内の各関数発生器(夫々、J,H,G,F)の1つの入力端(夫々J3,H3,G2,F2)へ接続する。同様に、その他の非レジスタ型CLE出力Z,Y,Xの各々はPIPを介してCLE内の各関数発生器の1つの入力端へ接続する。各関数発生器出力はCLE内の関数発生器の各々の異なる入力端へ接続する。レジスタ型CLE出力VQ,ZQ,YQ,XQは高速フィードバック経路へ接続するものではない。
本発明の別の実施例においては、高速フィードバック経路は関数発生器入力端以外のCLE入力端を駆動することが可能である。例えば、高速フィードバック経路は、図6AのCLE入力端BJ,BH及び図6BのBG,BFを駆動することが可能である。これらの接続は、シフトレジスタモードの形態とされた関数発生器に対するデータ入力を供給するために使用することが可能である。このようなフィードバック経路を使用して広範な高性能のシフトレジスタを実現することが可能である。
要約
本発明の第一の側面の相互接続構成体は各相互接続線上のローディングが減少されており(PIPの数が制限されている)、信号ネット上の大きなRCツリーが存在せず、且つ各経路上の発信元とデスティネーションとの間のPIPの数が比較的少ないので、FPGAを介して一様に高速な信号を提供している。種々の相互接続経路上の遅延がほぼ一様であるということは、平均の信号経路よりも著しく遅い2,3の信号経路が回路の全体的な性能を著しく減少させる場合のあるFPGAにおける共通の状態を著しく緩和している。中間長線は局所化された回路の効率的な実現を可能としており且つルーチングソフトウエァに関する負担を和らげている。PIPの数が制限されていること、及びその正当なる配置は、消費されるシリコン面積当たりに高度のルーチング柔軟性を与えている。論理ブロック入力端が論理ブロックの任意の端部に位置されている相互接続線と接触する能力によって更なるルーチング柔軟性が与えられている。
本発明の第二の側面の高速のフィードバッグ経路は、CLE出力端から同一のCLEの入力端へ著しく高速であるフィードバック経路を提供するために出力マルチプレクサをバイパスする方法を提供している。このような高速のフィードバック経路は多数の関数発生器が直列して接続されるクリチカルパスの速度に関し著しい影響を有している。高速フィードバック経路は1個のCLE内に納まる小型の回路(又は大型の回路のサブセット)の性能を増加させ且つ与えられた回路を実現するために使用せねばならない論理ブロック外部のルーチング資源の数を減少させる。1実施例においては、1個のCLE内の関数発生器の全ての結合が、論理がCLEの関数発生器内にどのようにマッピングされるかに拘らずに、高速フィードバック経路を介して互いに駆動することが可能である。別の実施例においては、1個のCLE内の各関数発生器は高速フィードバック経路を介して他の関数発生器(それ自身以外)の全てを同時的に駆動することが可能である。
従って、本発明はFPGAに対する新規で且つ有用な相互接続構成体を提供していることが理解される。本発明の関連技術における当業者は、本明細書の開示の結果として行うことの可能な種々の変形及び付加を想起するものである。従って、このような変形例及び付加の全ては本発明の請求の範囲内のものであると思料され、それは添付の請求の範囲及びそれらの均等物によってのみ制限されるべきである。
Claims (9)
- FPGAにおいて、
複数個のタイルからなるアレイが設けられており、各タイルは、
論理ブロック(LB,L)と、
複数個のプログラム可能な相互接続点(PIP)と、
複数本の相互接続線(6VN,6VS,6HE,6HW,N,S,E,W)を形成するために各線セグメントが隣接するタイル内の別の線セグメントと当接している複数個の線セグメント(31−37,41−47,N,S,E,W)と、
を有しており、
該相互接続線の内の幾つかは2個の隣接するタイル内の2個の論理ブロックをプログラミングによって接続する単一長線(N,S,E,W)であり、
該相互接続線の内の少なくとも1本は、第2タイル内の少なくとも1本の単一長線と1個のPIPとを介して、第1タイル(TILE1)内の第1論理ブロックを第2タイル(TILE2)内の第2論理ブロックへプログラミングによって接続する少なくとも3個のタイル分の長さである中間長線(6VN,6VS,6HE,6HW)である、
ことを特徴とするFPGA。 - 請求項1において、該中間長線(6VN,6VS,6HE,6HW)の内の幾つかは該中間長線の内の他のものへプログラミングによって単一の方向へ接続され(404−409)、且つ該中間長線の内の幾つかは該中間長線の内の他のものへプログラミングによって双方向に接続される(404、405)ことを特徴とするFPGA。
- 請求項1において、該中間長線(6VN,6VS,6HE,6HW)はバッファされたプログラム可能な相互接続点によって駆動され、且つ該単一長線(N,S,E,W)はバッファされないプログラム可能な相互接続点によって駆動されることを特徴とするFPGA。
- 請求項1において、各中間長線(6VN,6VS,6HE,6HW)はいずれか2個の隣接する論理ブロック(LB,L)の出力端へ接続不可能であることを特徴とするFPGA。
- 請求項1において、該相互接続線(6VN,6VS,6HE,6HW,N,S,E,W)及び該PIPは、
第1PIPが第1論理ブロック(LB,L)の第1出力端を該中間長線(6VN,6VS,6HE,6HW)の内の1本へプログラミングによって単一の方向へ接続させ、
第2PIPが該中間長線を第1単一長線(N,S,E,W)へプログラミングによって単一の方向へ接続させ、該第1単一長線は第2論理ブロック(L,B,L)の入力端へ接続されており、
第3PIPが該中間長線を第2単一長線へプログラミングによって単一の方向へ接続させ、該第2単一長線は第3論理ブロック(LB,L)の入力端へ接続されている、
ように配置されていることを特徴とするFPGA。 - 請求項1において、該複数本の相互接続線(6VN,6VS,6HE,6HE,N,S,E,W)は、更に、少なくとも1本の長尺線(LVN,LVS,LHW,LHE)を有しており、該長尺線は該中間長線(6VN,6VS,6HE,6HW)の長さよりも一層長く延在しており、該相互接続線及び該PIPは、
第1PIPが第1論理ブロック(LB,L)の出力端を該長尺線へプログラミングによって接続し、
第2PIPが該長尺線を1本の中間長線へプログラミングによって単一の方向へ接続し、
第3PIPが該中間長線を1本の単一長線へプログラミングによって単一の方向へ接続し、該単一長線は第2論理ブロック(LB,L)の入力端へ接続している、
ように配置されていることを特徴とするFPGA。 - 請求項1において、該複数本の中間長線(6VN,6VS,6HE,6HW)は端部セグメント(31,37,41,47)と内部セグメント(32−36,42−46)とを有しており、各内部セグメントは1個のタイル(TILE1,TILE2,TILE3)の1個の端部から該タイルの反対側の端部へ延在しており且つ隣接するタイル内の異なる内部セグメントへ接続されるようにオフセットをもって配置されており、それにより連続的な中間長線を形成し、各端部セグメントは第1端部と第2端部とを有しており、該第1端部は隣接するタイル内の1個の内部セグメントへ接続されるように該タイルの一つの端部へ延在しており、該第2端部が該タイル内で終端している、ことを特徴とするFPGA。
- 請求項1において、各論理ブロック(LB,L)は、
入力端と出力端とを具備している入力マルチプレクサ(IMUX−2)と、
入力端と出力端とを具備している形態特定可能論理要素(CLE−2)と、
入力端と出力端とを具備している出力マルチプレクサ(OMUX−2)と、を有しており、該単一長線(N,S,E,W)は該入力マルチプレクサの入力端へ接続されており、該入力マルチプレクサの出力端は該形態特定可能論理要素の入力端へ接続されており、該形態特定可能論理要素の出力端は該出力マルチプレクサの入力端へ接続されており、該出力マルチプレクサの出力端は該中間長線(6VN,6VS,6HE,6HW)へプログラミングによって接続されていることを特徴とするFPGA。 - 請求項8において、更に、該形態特定可能論理要素(CLE−2)の出力端と該入力マルチプレクサ(IMUX−2)の入力端との間に接続されている高速フィードバック線(430)が設けられており、該高速フィードバック線は該出力マルチプレクサ(OMUX−2)をバイパスすることを特徴とするFPGA。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/823,265 | 1997-03-24 | ||
US08/823,265 US5963050A (en) | 1997-02-26 | 1997-03-24 | Configurable logic element with fast feedback paths |
PCT/US1997/015382 WO1998043354A1 (en) | 1997-03-24 | 1997-08-28 | Fpga repeatable interconnect structure |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001519133A JP2001519133A (ja) | 2001-10-16 |
JP3948497B2 true JP3948497B2 (ja) | 2007-07-25 |
Family
ID=25238264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP54566298A Expired - Fee Related JP3948497B2 (ja) | 1997-03-24 | 1997-08-28 | Fpga繰返し可能相互接続構成体 |
Country Status (5)
Country | Link |
---|---|
US (5) | US5963050A (ja) |
EP (1) | EP0972344B1 (ja) |
JP (1) | JP3948497B2 (ja) |
DE (1) | DE69716771T2 (ja) |
WO (1) | WO1998043354A1 (ja) |
Families Citing this family (291)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6107822A (en) * | 1996-04-09 | 2000-08-22 | Altera Corporation | Logic element for a programmable logic integrated circuit |
US6396303B1 (en) * | 1997-02-26 | 2002-05-28 | Xilinx, Inc. | Expandable interconnect structure for FPGAS |
US5963050A (en) | 1997-02-26 | 1999-10-05 | Xilinx, Inc. | Configurable logic element with fast feedback paths |
US6204689B1 (en) * | 1997-02-26 | 2001-03-20 | Xilinx, Inc. | Input/output interconnect circuit for FPGAs |
US6124730A (en) * | 1998-12-15 | 2000-09-26 | Vantis Corporation | Methods for configuring FPGA's having variable grain components for providing time-shared access to interconnect resources |
US6467009B1 (en) | 1998-10-14 | 2002-10-15 | Triscend Corporation | Configurable processor system unit |
EP1465345A3 (en) * | 1999-03-04 | 2006-04-12 | Altera Corporation | Interconnection resources for programmable logic integrated circuit devices |
US6366120B1 (en) | 1999-03-04 | 2002-04-02 | Altera Corporation | Interconnection resources for programmable logic integrated circuit devices |
DE60038659T2 (de) * | 1999-03-04 | 2009-06-18 | Altera Corp., San Jose | Verbindungs- und eingangs/ausgangsmittel für programmierbare logische integrierte schaltungen |
US6407576B1 (en) | 1999-03-04 | 2002-06-18 | Altera Corporation | Interconnection and input/output resources for programmable logic integrated circuit devices |
US6633181B1 (en) | 1999-12-30 | 2003-10-14 | Stretch, Inc. | Multi-scale programmable array |
US6721840B1 (en) | 2000-08-18 | 2004-04-13 | Triscend Corporation | Method and system for interfacing an integrated circuit to synchronous dynamic memory and static memory |
US6754760B1 (en) | 2000-08-21 | 2004-06-22 | Xilinx, Inc. | Programmable interface for a configurable system bus |
US7346644B1 (en) | 2000-09-18 | 2008-03-18 | Altera Corporation | Devices and methods with programmable logic and digital signal processing regions |
US7119576B1 (en) | 2000-09-18 | 2006-10-10 | Altera Corporation | Devices and methods with programmable logic and digital signal processing regions |
US7139848B1 (en) | 2000-12-08 | 2006-11-21 | Xilinx, Inc. | DMA protocol extension for packet-based transfer |
US6725364B1 (en) | 2001-03-08 | 2004-04-20 | Xilinx, Inc. | Configurable processor system |
US6630842B1 (en) | 2001-05-06 | 2003-10-07 | Altera Corporation | Routing architecture for a programmable logic device |
US6653862B2 (en) | 2001-05-06 | 2003-11-25 | Altera Corporation | Use of dangling partial lines for interfacing in a PLD |
US6895570B2 (en) | 2001-05-06 | 2005-05-17 | Altera Corporation | System and method for optimizing routing lines in a programmable logic device |
US6970014B1 (en) | 2001-05-06 | 2005-11-29 | Altera Corporation | Routing architecture for a programmable logic device |
US6605962B2 (en) | 2001-05-06 | 2003-08-12 | Altera Corporation | PLD architecture for flexible placement of IP function blocks |
US6466052B1 (en) * | 2001-05-15 | 2002-10-15 | Xilinx, Inc. | Implementing wide multiplexers in an FPGA using a horizontal chain structure |
US6476634B1 (en) * | 2002-02-01 | 2002-11-05 | Xilinx, Inc. | ALU implementation in single PLD logic cell |
US6838751B2 (en) * | 2002-03-06 | 2005-01-04 | Freescale Semiconductor Inc. | Multi-row leadframe |
US6577159B1 (en) | 2002-04-22 | 2003-06-10 | Nicholas Jesse Macias | Method and apparatus for automatic high-speed bypass routing in a cell matrix self-configurable hardware system |
US6670826B1 (en) * | 2002-04-26 | 2003-12-30 | Xilinx, Inc. | Configurable logic block with a storage element clocked by a write strobe pulse |
US7129744B2 (en) * | 2003-10-23 | 2006-10-31 | Viciciv Technology | Programmable interconnect structures |
US7112994B2 (en) | 2002-07-08 | 2006-09-26 | Viciciv Technology | Three dimensional integrated circuits |
US7673273B2 (en) * | 2002-07-08 | 2010-03-02 | Tier Logic, Inc. | MPGA products based on a prototype FPGA |
US7064579B2 (en) * | 2002-07-08 | 2006-06-20 | Viciciv Technology | Alterable application specific integrated circuit (ASIC) |
US20040018711A1 (en) * | 2002-07-08 | 2004-01-29 | Madurawe Raminda U. | Methods for fabricating three dimensional integrated circuits |
US20040004251A1 (en) * | 2002-07-08 | 2004-01-08 | Madurawe Raminda U. | Insulated-gate field-effect thin film transistors |
US7312109B2 (en) * | 2002-07-08 | 2007-12-25 | Viciciv, Inc. | Methods for fabricating fuse programmable three dimensional integrated circuits |
US6992503B2 (en) * | 2002-07-08 | 2006-01-31 | Viciciv Technology | Programmable devices with convertibility to customizable devices |
US20040004239A1 (en) * | 2002-07-08 | 2004-01-08 | Madurawe Raminda U. | Three dimensional integrated circuits |
US7064018B2 (en) * | 2002-07-08 | 2006-06-20 | Viciciv Technology | Methods for fabricating three dimensional integrated circuits |
WO2004010320A2 (en) * | 2002-07-23 | 2004-01-29 | Gatechance Technologies, Inc. | Pipelined reconfigurable dynamic instruciton set processor |
AU2003252157A1 (en) * | 2002-07-23 | 2004-02-09 | Gatechange Technologies, Inc. | Interconnect structure for electrical devices |
US20040111590A1 (en) * | 2002-07-23 | 2004-06-10 | Klein Robert C. | Self-configuring processing element |
US6829756B1 (en) * | 2002-09-23 | 2004-12-07 | Xilinx, Inc. | Programmable logic device with time-multiplexed interconnect |
US7812458B2 (en) * | 2007-11-19 | 2010-10-12 | Tier Logic, Inc. | Pad invariant FPGA and ASIC devices |
US8643162B2 (en) | 2007-11-19 | 2014-02-04 | Raminda Udaya Madurawe | Pads and pin-outs in three dimensional integrated circuits |
US7042756B2 (en) * | 2002-10-18 | 2006-05-09 | Viciciv Technology | Configurable storage device |
US7084666B2 (en) * | 2002-10-21 | 2006-08-01 | Viciciv Technology | Programmable interconnect structures |
US6946871B1 (en) * | 2002-12-18 | 2005-09-20 | Actel Corporation | Multi-level routing architecture in a field programmable gate array having transmitters and receivers |
US6800884B1 (en) * | 2002-12-30 | 2004-10-05 | Actel Corporation | Inter-tile buffer system for a field programmable gate array |
US6798240B1 (en) * | 2003-01-24 | 2004-09-28 | Altera Corporation | Logic circuitry with shared lookup table |
US6943580B2 (en) | 2003-02-10 | 2005-09-13 | Altera Corporation | Fracturable lookup table and logic element |
US7800401B1 (en) | 2003-02-10 | 2010-09-21 | Altera Corporation | Fracturable lookup table and logic element |
US6888373B2 (en) * | 2003-02-11 | 2005-05-03 | Altera Corporation | Fracturable incomplete look up table for area efficient logic elements |
US7271617B2 (en) * | 2003-02-19 | 2007-09-18 | Koninklijke Philips Electronics, N.V. | Electronic circuit with array of programmable logic cells |
US6930510B2 (en) * | 2003-03-03 | 2005-08-16 | Xilinx, Inc. | FPGA architecture with mixed interconnect resources optimized for fast and low-power routing and methods of utilizing the same |
US6943581B1 (en) | 2003-03-27 | 2005-09-13 | Xilinx, Inc. | Test methodology for direct interconnect with multiple fan-outs |
US7000211B2 (en) * | 2003-03-31 | 2006-02-14 | Stretch, Inc. | System and method for efficiently mapping heterogeneous objects onto an array of heterogeneous programmable logic resources |
US7613900B2 (en) * | 2003-03-31 | 2009-11-03 | Stretch, Inc. | Systems and methods for selecting input/output configuration in an integrated circuit |
US7590829B2 (en) * | 2003-03-31 | 2009-09-15 | Stretch, Inc. | Extension adapter |
US8001266B1 (en) | 2003-03-31 | 2011-08-16 | Stretch, Inc. | Configuring a multi-processor system |
US7581081B2 (en) | 2003-03-31 | 2009-08-25 | Stretch, Inc. | Systems and methods for software extensible multi-processing |
US20040242261A1 (en) * | 2003-05-29 | 2004-12-02 | General Dynamics Decision Systems, Inc. | Software-defined radio |
US7225422B2 (en) * | 2003-06-19 | 2007-05-29 | International Business Machines Corporation | Wire trimmed programmable logic array |
US7373642B2 (en) * | 2003-07-29 | 2008-05-13 | Stretch, Inc. | Defining instruction extensions in a standard programming language |
US7418575B2 (en) * | 2003-07-29 | 2008-08-26 | Stretch, Inc. | Long instruction word processing with instruction extensions |
US6952813B1 (en) * | 2003-07-30 | 2005-10-04 | Xilinx, Inc. | Method and apparatus for selecting programmable interconnects to reduce clock skew |
US7185035B1 (en) | 2003-10-23 | 2007-02-27 | Altera Corporation | Arithmetic structures for programmable logic devices |
US7243312B1 (en) | 2003-10-24 | 2007-07-10 | Xilinx, Inc. | Method and apparatus for power optimization during an integrated circuit design process |
US7013449B2 (en) * | 2003-10-30 | 2006-03-14 | Hewlett-Packard Development Company, L.P. | Method of designing custom circuit device using scheduling clock cycles |
US6982570B1 (en) | 2003-10-30 | 2006-01-03 | Hewlett-Packard Development Company, L.P. | Reconfigurable device |
US7565388B1 (en) | 2003-11-21 | 2009-07-21 | Altera Corporation | Logic cell supporting addition of three binary words |
US7167021B1 (en) * | 2003-11-24 | 2007-01-23 | Altera Corporation | Logic device logic modules having improved arithmetic circuitry |
US7317264B2 (en) * | 2003-11-25 | 2008-01-08 | Eaton Corporation | Method and apparatus to independently control contactors in a multiple contactor configuration |
US7019557B2 (en) * | 2003-12-24 | 2006-03-28 | Viciciv Technology | Look-up table based logic macro-cells |
US7176716B2 (en) * | 2003-12-24 | 2007-02-13 | Viciciv Technology | Look-up table structure with embedded carry logic |
US7558812B1 (en) * | 2003-11-26 | 2009-07-07 | Altera Corporation | Structures for LUT-based arithmetic in PLDs |
US7030651B2 (en) * | 2003-12-04 | 2006-04-18 | Viciciv Technology | Programmable structured arrays |
US7336097B2 (en) * | 2003-12-24 | 2008-02-26 | Viciciv, Inc. | Look-up table structure with embedded carry logic |
US7472155B2 (en) * | 2003-12-29 | 2008-12-30 | Xilinx, Inc. | Programmable logic device with cascading DSP slices |
US8495122B2 (en) * | 2003-12-29 | 2013-07-23 | Xilinx, Inc. | Programmable device with dynamic DSP architecture |
US7840630B2 (en) | 2003-12-29 | 2010-11-23 | Xilinx, Inc. | Arithmetic logic unit circuit |
US7853636B2 (en) * | 2003-12-29 | 2010-12-14 | Xilinx, Inc. | Digital signal processing circuit having a pattern detector circuit for convergent rounding |
US7840627B2 (en) * | 2003-12-29 | 2010-11-23 | Xilinx, Inc. | Digital signal processing circuit having input register blocks |
WO2005066832A2 (en) | 2003-12-29 | 2005-07-21 | Xilinx, Inc. | Integrated circuit with cascading dsp slices |
US7853632B2 (en) | 2003-12-29 | 2010-12-14 | Xilinx, Inc. | Architectural floorplan for a digital signal processing circuit |
US7865542B2 (en) * | 2003-12-29 | 2011-01-04 | Xilinx, Inc. | Digital signal processing block having a wide multiplexer |
US7882165B2 (en) * | 2003-12-29 | 2011-02-01 | Xilinx, Inc. | Digital signal processing element having an arithmetic logic unit |
US7567997B2 (en) * | 2003-12-29 | 2009-07-28 | Xilinx, Inc. | Applications of cascading DSP slices |
US7853634B2 (en) | 2003-12-29 | 2010-12-14 | Xilinx, Inc. | Digital signal processing circuit having a SIMD circuit |
US7844653B2 (en) | 2003-12-29 | 2010-11-30 | Xilinx, Inc. | Digital signal processing circuit having a pre-adder circuit |
US7467175B2 (en) * | 2003-12-29 | 2008-12-16 | Xilinx, Inc. | Programmable logic device with pipelined DSP slices |
US7870182B2 (en) | 2003-12-29 | 2011-01-11 | Xilinx Inc. | Digital signal processing circuit having an adder circuit with carry-outs |
US7467177B2 (en) * | 2003-12-29 | 2008-12-16 | Xilinx, Inc. | Mathematical circuit with dynamic rounding |
US7849119B2 (en) | 2003-12-29 | 2010-12-07 | Xilinx, Inc. | Digital signal processing circuit having a pattern detector circuit |
US7480690B2 (en) * | 2003-12-29 | 2009-01-20 | Xilinx, Inc. | Arithmetic circuit with multiplexed addend inputs |
US7860915B2 (en) | 2003-12-29 | 2010-12-28 | Xilinx, Inc. | Digital signal processing circuit having a pattern circuit for determining termination conditions |
US7176713B2 (en) * | 2004-01-05 | 2007-02-13 | Viciciv Technology | Integrated circuits with RAM and ROM fabrication options |
US7109752B1 (en) | 2004-02-14 | 2006-09-19 | Herman Schmit | Configurable circuits, IC's, and systems |
US7167025B1 (en) | 2004-02-14 | 2007-01-23 | Herman Schmit | Non-sequentially configurable IC |
US7126381B1 (en) | 2004-02-14 | 2006-10-24 | Herman Schmit | VPA interconnect circuit |
US7126373B1 (en) | 2004-02-14 | 2006-10-24 | Herman Schmit | Configurable logic circuits with commutative properties |
US7157933B1 (en) | 2004-02-14 | 2007-01-02 | Herman Schmit | Configurable circuits, IC's, and systems |
US7284222B1 (en) * | 2004-06-30 | 2007-10-16 | Tabula, Inc. | Method and apparatus for identifying connections between configurable nodes in a configurable integrated circuit |
US7193432B1 (en) | 2004-02-14 | 2007-03-20 | Herman Schmit | VPA logic circuits |
US7425841B2 (en) | 2004-02-14 | 2008-09-16 | Tabula Inc. | Configurable circuits, IC's, and systems |
US7193440B1 (en) * | 2004-02-14 | 2007-03-20 | Herman Schmit | Configurable circuits, IC's, and systems |
KR100564611B1 (ko) * | 2004-02-14 | 2006-03-29 | 삼성전자주식회사 | 하드 디스크 드라이브의 완충 구조체 |
US7622951B2 (en) | 2004-02-14 | 2009-11-24 | Tabula, Inc. | Via programmable gate array with offset direct connections |
US7205791B1 (en) | 2004-03-12 | 2007-04-17 | Altera Corporation | Bypass-able carry chain in a programmable logic device |
US7061268B1 (en) | 2004-03-15 | 2006-06-13 | Altera Corporation | Initializing a carry chain in a programmable logic device |
US7167022B1 (en) | 2004-03-25 | 2007-01-23 | Altera Corporation | Omnibus logic element including look up table based logic elements |
US6975139B2 (en) * | 2004-03-30 | 2005-12-13 | Advantage Logic, Inc. | Scalable non-blocking switching network for programmable logic |
US7698118B2 (en) * | 2004-04-15 | 2010-04-13 | Mentor Graphics Corporation | Logic design modeling and interconnection |
US7768314B2 (en) | 2004-05-12 | 2010-08-03 | National University Corporation Okayama University | Integrated circuit with multidimensional switch topology |
US7489164B2 (en) * | 2004-05-17 | 2009-02-10 | Raminda Udaya Madurawe | Multi-port memory devices |
US7193438B1 (en) * | 2004-06-30 | 2007-03-20 | Andre Rohe | Configurable integrated circuit with offset connection |
US7282950B1 (en) * | 2004-11-08 | 2007-10-16 | Tabula, Inc. | Configurable IC's with logic resources with offset connections |
US7145361B1 (en) * | 2004-06-30 | 2006-12-05 | Andre Rohe | Configurable integrated circuit with different connection schemes |
US7449915B2 (en) * | 2004-06-30 | 2008-11-11 | Tabula Inc. | VPA logic circuits |
US7312630B2 (en) * | 2004-06-30 | 2007-12-25 | Tabula, Inc. | Configurable integrated circuit with built-in turns |
US7408382B2 (en) * | 2004-06-30 | 2008-08-05 | Tabula, Inc. | Configurable circuits, IC's, and systems |
US7243329B2 (en) | 2004-07-02 | 2007-07-10 | Altera Corporation | Application-specific integrated circuit equivalents of programmable logic and associated methods |
US7460529B2 (en) * | 2004-07-29 | 2008-12-02 | Advantage Logic, Inc. | Interconnection fabric using switching networks in hierarchy |
US7254797B2 (en) * | 2004-09-30 | 2007-08-07 | Rambus Inc. | Input/output cells with localized clock routing |
US7743085B2 (en) * | 2004-11-08 | 2010-06-22 | Tabula, Inc. | Configurable IC with large carry chains |
US7295037B2 (en) | 2004-11-08 | 2007-11-13 | Tabula, Inc. | Configurable IC with routing circuits with offset connections |
US7224181B1 (en) * | 2004-11-08 | 2007-05-29 | Herman Schmit | Clock distribution in a configurable IC |
US7276933B1 (en) * | 2004-11-08 | 2007-10-02 | Tabula, Inc. | Reconfigurable IC that has sections running at different looperness |
US7268586B1 (en) * | 2004-11-08 | 2007-09-11 | Tabula, Inc. | Method and apparatus for accessing stored data in a reconfigurable IC |
US7259587B1 (en) | 2004-11-08 | 2007-08-21 | Tabula, Inc. | Configurable IC's with configurable logic resources that have asymetric inputs and/or outputs |
US7917559B2 (en) * | 2004-11-08 | 2011-03-29 | Tabula, Inc. | Configurable IC's with configurable logic circuits that perform adder and/or subtractor operations |
US7342415B2 (en) * | 2004-11-08 | 2008-03-11 | Tabula, Inc. | Configurable IC with interconnect circuits that also perform storage operations |
US7301368B2 (en) * | 2005-03-15 | 2007-11-27 | Tabula, Inc. | Embedding memory within tile arrangement of a configurable IC |
US7242216B1 (en) | 2004-11-08 | 2007-07-10 | Herman Schmit | Embedding memory between tile arrangement of a configurable IC |
US7317331B2 (en) | 2004-11-08 | 2008-01-08 | Tabula, Inc. | Reconfigurable IC that has sections running at different reconfiguration rates |
US7573296B2 (en) * | 2004-11-08 | 2009-08-11 | Tabula Inc. | Configurable IC with configurable routing resources that have asymmetric input and/or outputs |
US7330050B2 (en) | 2004-11-08 | 2008-02-12 | Tabula, Inc. | Storage elements for a configurable IC and method and apparatus for accessing data stored in the storage elements |
US20070244958A1 (en) * | 2004-11-08 | 2007-10-18 | Jason Redgrave | Configurable IC's with carry bypass circuitry |
US7236009B1 (en) | 2004-12-01 | 2007-06-26 | Andre Rohe | Operational time extension |
US7496879B2 (en) * | 2004-12-01 | 2009-02-24 | Tabula, Inc. | Concurrent optimization of physical design and operational cycle assignment |
US7428721B2 (en) * | 2004-12-01 | 2008-09-23 | Tabula, Inc. | Operational cycle assignment in a configurable IC |
US7212030B1 (en) * | 2004-12-31 | 2007-05-01 | Actel Corporation | Field programmable gate array long line routing network |
US7358765B2 (en) * | 2005-02-23 | 2008-04-15 | Cswitch Corporation | Dedicated logic cells employing configurable logic and dedicated logic functions |
US7230869B1 (en) | 2005-03-15 | 2007-06-12 | Jason Redgrave | Method and apparatus for accessing contents of memory cells |
US7298169B2 (en) * | 2005-03-15 | 2007-11-20 | Tabula, Inc | Hybrid logic/interconnect circuit in a configurable IC |
US7224182B1 (en) | 2005-03-15 | 2007-05-29 | Brad Hutchings | Hybrid configurable circuit for a configurable IC |
US7825684B2 (en) * | 2005-03-15 | 2010-11-02 | Tabula, Inc. | Variable width management for a memory of a configurable IC |
US7530033B2 (en) | 2005-03-15 | 2009-05-05 | Tabula, Inc. | Method and apparatus for decomposing functions in a configurable IC |
US7310003B2 (en) * | 2005-03-15 | 2007-12-18 | Tabula, Inc. | Configurable IC with interconnect circuits that have select lines driven by user signals |
US20070244959A1 (en) * | 2005-03-15 | 2007-10-18 | Steven Teig | Configurable IC's with dual carry chains |
US7221186B1 (en) | 2005-06-14 | 2007-05-22 | Xilinx, Inc. | Efficient tile layout for a programmable logic device |
US7233168B1 (en) | 2005-06-14 | 2007-06-19 | Xilinx, Inc. | Methods of setting and resetting lookup table memory cells |
US7218143B1 (en) | 2005-06-14 | 2007-05-15 | Xilinx, Inc. | Integrated circuit having fast interconnect paths between memory elements and carry logic |
US7218140B1 (en) | 2005-06-14 | 2007-05-15 | Xilinx, Inc. | Integrated circuit having fast interconnect paths between carry chain multiplexers and lookup tables |
US7276934B1 (en) | 2005-06-14 | 2007-10-02 | Xilinx, Inc. | Integrated circuit with programmable routing structure including diagonal interconnect lines |
US7274214B1 (en) | 2005-06-14 | 2007-09-25 | Xilinx, Inc. | Efficient tile layout for a programmable logic device |
US7205790B1 (en) | 2005-06-14 | 2007-04-17 | Xilinx, Inc. | Programmable integrated circuit providing efficient implementations of wide logic functions |
US7256612B1 (en) * | 2005-06-14 | 2007-08-14 | Xilinx, Inc. | Programmable logic block providing carry chain with programmable initialization values |
US7193433B1 (en) | 2005-06-14 | 2007-03-20 | Xilinx, Inc. | Programmable logic block having lookup table with partial output signal driving carry multiplexer |
US7265576B1 (en) | 2005-06-14 | 2007-09-04 | Xilinx, Inc. | Programmable lookup table with dual input and output terminals in RAM mode |
US7199610B1 (en) | 2005-06-14 | 2007-04-03 | Xilinx, Inc. | Integrated circuit interconnect structure having reduced coupling between interconnect lines |
US7375552B1 (en) | 2005-06-14 | 2008-05-20 | Xilinx, Inc. | Programmable logic block with dedicated and selectable lookup table outputs coupled to general interconnect structure |
US7268587B1 (en) | 2005-06-14 | 2007-09-11 | Xilinx, Inc. | Programmable logic block with carry chains providing lookahead functions of different lengths |
US7202697B1 (en) | 2005-06-14 | 2007-04-10 | Xilinx, Inc. | Programmable logic block having improved performance when functioning in shift register mode |
US7202698B1 (en) | 2005-06-14 | 2007-04-10 | Xilinx, Inc. | Integrated circuit having a programmable input structure with bounce capability |
US7279929B1 (en) | 2005-06-14 | 2007-10-09 | Xilinx, Inc. | Integrated circuit with programmable routing structure including straight and diagonal interconnect lines |
US7196543B1 (en) | 2005-06-14 | 2007-03-27 | Xilinx, Inc. | Integrated circuit having a programmable input structure with optional fanout capability |
US7215138B1 (en) | 2005-06-14 | 2007-05-08 | Xilinx, Inc. | Programmable lookup table with dual input and output terminals in shift register mode |
US7804719B1 (en) | 2005-06-14 | 2010-09-28 | Xilinx, Inc. | Programmable logic block having reduced output delay during RAM write processes when programmed to function in RAM mode |
US7218139B1 (en) | 2005-06-14 | 2007-05-15 | Xilinx, Inc. | Programmable integrated circuit providing efficient implementations of arithmetic functions |
US7253658B1 (en) | 2005-06-14 | 2007-08-07 | Xilinx, Inc. | Integrated circuit providing direct access to multi-directional interconnect lines in a general interconnect structure |
US7284228B1 (en) | 2005-07-19 | 2007-10-16 | Xilinx, Inc. | Methods of using ant colony optimization to pack designs into programmable logic devices |
US8620980B1 (en) | 2005-09-27 | 2013-12-31 | Altera Corporation | Programmable device with specialized multiplier blocks |
US7451421B1 (en) * | 2005-11-01 | 2008-11-11 | Xilinx, Inc. | Methods of implementing and modeling interconnect lines at optional boundaries in multi-product programmable IC dies |
US7498192B1 (en) | 2005-11-01 | 2009-03-03 | Xilinx, Inc. | Methods of providing a family of related integrated circuits of different sizes |
US7402443B1 (en) | 2005-11-01 | 2008-07-22 | Xilinx, Inc. | Methods of providing families of integrated circuits with similar dies partially disabled using product selection codes |
US7491576B1 (en) | 2005-11-01 | 2009-02-17 | Xilinx, Inc. | Yield-enhancing methods of providing a family of scaled integrated circuits |
US7312631B1 (en) | 2005-11-01 | 2007-12-25 | Xilinx, Inc. | Structures and methods for avoiding hold time violations in a programmable logic device |
US7765249B1 (en) | 2005-11-07 | 2010-07-27 | Tabula, Inc. | Use of hybrid interconnect/logic circuits for multiplication |
US7372297B1 (en) | 2005-11-07 | 2008-05-13 | Tabula Inc. | Hybrid interconnect/logic circuits enabling efficient replication of a function in several sub-cycles to save logic and routing resources |
US7818361B1 (en) | 2005-11-07 | 2010-10-19 | Tabula, Inc. | Method and apparatus for performing two's complement multiplication |
US8463836B1 (en) | 2005-11-07 | 2013-06-11 | Tabula, Inc. | Performing mathematical and logical operations in multiple sub-cycles |
US7262633B1 (en) | 2005-11-11 | 2007-08-28 | Tabula, Inc. | Via programmable gate array with offset bit lines |
US7679401B1 (en) | 2005-12-01 | 2010-03-16 | Tabula, Inc. | User registers implemented with routing circuits in a configurable IC |
US7423453B1 (en) | 2006-01-20 | 2008-09-09 | Advantage Logic, Inc. | Efficient integrated circuit layout scheme to implement a scalable switching network used in interconnection fabric |
US8266198B2 (en) | 2006-02-09 | 2012-09-11 | Altera Corporation | Specialized processing block for programmable logic device |
US8266199B2 (en) | 2006-02-09 | 2012-09-11 | Altera Corporation | Specialized processing block for programmable logic device |
US8301681B1 (en) | 2006-02-09 | 2012-10-30 | Altera Corporation | Specialized processing block for programmable logic device |
US8041759B1 (en) | 2006-02-09 | 2011-10-18 | Altera Corporation | Specialized processing block for programmable logic device |
US7797497B1 (en) * | 2006-03-08 | 2010-09-14 | Tabula, Inc. | System and method for providing more logical memory ports than physical memory ports |
US7486111B2 (en) * | 2006-03-08 | 2009-02-03 | Tier Logic, Inc. | Programmable logic devices comprising time multiplexed programmable interconnect |
US7694083B1 (en) | 2006-03-08 | 2010-04-06 | Tabula, Inc. | System and method for providing a virtual memory architecture narrower and deeper than a physical memory architecture |
US7669097B1 (en) | 2006-03-27 | 2010-02-23 | Tabula, Inc. | Configurable IC with error detection and correction circuitry |
US7389485B1 (en) | 2006-03-28 | 2008-06-17 | Xilinx, Inc. | Methods of routing low-power designs in programmable logic devices having heterogeneous routing architectures |
US7836117B1 (en) | 2006-04-07 | 2010-11-16 | Altera Corporation | Specialized processing block for programmable logic device |
US7822799B1 (en) | 2006-06-26 | 2010-10-26 | Altera Corporation | Adder-rounder circuitry for specialized processing block in programmable logic device |
US20080024165A1 (en) * | 2006-07-28 | 2008-01-31 | Raminda Udaya Madurawe | Configurable embedded multi-port memory |
US8386550B1 (en) | 2006-09-20 | 2013-02-26 | Altera Corporation | Method for configuring a finite impulse response filter in a programmable logic device |
US8386553B1 (en) | 2006-12-05 | 2013-02-26 | Altera Corporation | Large multiplier for programmable logic device |
US7930336B2 (en) | 2006-12-05 | 2011-04-19 | Altera Corporation | Large multiplier for programmable logic device |
US7930666B1 (en) | 2006-12-12 | 2011-04-19 | Tabula, Inc. | System and method of providing a memory hierarchy |
US7814137B1 (en) | 2007-01-09 | 2010-10-12 | Altera Corporation | Combined interpolation and decimation filter for programmable logic device |
US8650231B1 (en) | 2007-01-22 | 2014-02-11 | Altera Corporation | Configuring floating point operations in a programmable device |
US7865541B1 (en) | 2007-01-22 | 2011-01-04 | Altera Corporation | Configuring floating point operations in a programmable logic device |
US8645450B1 (en) | 2007-03-02 | 2014-02-04 | Altera Corporation | Multiplier-accumulator circuitry and methods |
US7514957B2 (en) * | 2007-03-20 | 2009-04-07 | Tabula, Inc | Configurable IC having a routing fabric with storage elements |
US8112468B1 (en) | 2007-03-22 | 2012-02-07 | Tabula, Inc. | Method and apparatus for performing an operation with a plurality of sub-operations in a configurable IC |
US7394287B1 (en) | 2007-05-21 | 2008-07-01 | Altera Corporation | Programmable logic device having complex logic blocks with improved logic cell functionality |
US7459932B1 (en) * | 2007-05-24 | 2008-12-02 | Altera Corporation | Programmable logic device having logic modules with improved register capabilities |
US7949699B1 (en) | 2007-08-30 | 2011-05-24 | Altera Corporation | Implementation of decimation filter in integrated circuit device using ram-based data storage |
EP2201569A4 (en) | 2007-09-06 | 2011-07-13 | Tabula Inc | CONFIGURATION CONTEXT SWITCH |
EP2188894B1 (en) * | 2007-09-13 | 2017-10-18 | Friedrich-Alexander-Universität Erlangen-Nürnberg | Logic chip, logic system and method for designing a logic chip |
US7902862B2 (en) | 2007-09-14 | 2011-03-08 | Agate Logic, Inc. | High-bandwidth interconnect network for an integrated circuit |
US7635988B2 (en) * | 2007-11-19 | 2009-12-22 | Tier Logic, Inc. | Multi-port thin-film memory devices |
US20090128189A1 (en) * | 2007-11-19 | 2009-05-21 | Raminda Udaya Madurawe | Three dimensional programmable devices |
US7573294B2 (en) * | 2007-12-26 | 2009-08-11 | Tier Logic, Inc. | Programmable logic based latches and shift registers |
US7573293B2 (en) * | 2007-12-26 | 2009-08-11 | Tier Logic, Inc. | Programmable logic based latches and shift registers |
US7602213B2 (en) * | 2007-12-26 | 2009-10-13 | Tier Logic, Inc. | Using programmable latch to implement logic |
US7795913B2 (en) * | 2007-12-26 | 2010-09-14 | Tier Logic | Programmable latch based multiplier |
US8863067B1 (en) | 2008-02-06 | 2014-10-14 | Tabula, Inc. | Sequential delay analysis by placement engines |
US8959137B1 (en) | 2008-02-20 | 2015-02-17 | Altera Corporation | Implementing large multipliers in a programmable integrated circuit device |
US8244789B1 (en) | 2008-03-14 | 2012-08-14 | Altera Corporation | Normalization of floating point operations in a programmable integrated circuit device |
US7701248B2 (en) * | 2008-04-10 | 2010-04-20 | Silicon Storage Technology, Inc. | Storage element for controlling a logic circuit, and a logic device having an array of such storage elements |
US8166435B2 (en) * | 2008-06-26 | 2012-04-24 | Tabula, Inc. | Timing operations in an IC with configurable circuits |
US8626815B1 (en) | 2008-07-14 | 2014-01-07 | Altera Corporation | Configuring a programmable integrated circuit device to perform matrix multiplication |
US8230375B2 (en) | 2008-09-14 | 2012-07-24 | Raminda Udaya Madurawe | Automated metal pattern generation for integrated circuits |
WO2010033263A1 (en) | 2008-09-17 | 2010-03-25 | Tabula, Inc. | Controllable storage elements for an ic |
US8255448B1 (en) | 2008-10-02 | 2012-08-28 | Altera Corporation | Implementing division in a programmable integrated circuit device |
US8307023B1 (en) | 2008-10-10 | 2012-11-06 | Altera Corporation | DSP block for implementing large multiplier on a programmable integrated circuit device |
US7705629B1 (en) | 2008-12-03 | 2010-04-27 | Advantage Logic, Inc. | Permutable switching network with enhanced interconnectivity for multicasting signals |
US7714611B1 (en) * | 2008-12-03 | 2010-05-11 | Advantage Logic, Inc. | Permutable switching network with enhanced multicasting signals routing for interconnection fabric |
US8543635B2 (en) | 2009-01-27 | 2013-09-24 | Xilinx, Inc. | Digital signal processing block with preadder stage |
US8479133B2 (en) | 2009-01-27 | 2013-07-02 | Xilinx, Inc. | Method of and circuit for implementing a filter in an integrated circuit |
US8987868B1 (en) | 2009-02-24 | 2015-03-24 | Xilinx, Inc. | Method and apparatus for programmable heterogeneous integration of stacked semiconductor die |
US8549055B2 (en) | 2009-03-03 | 2013-10-01 | Altera Corporation | Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry |
US8706790B1 (en) | 2009-03-03 | 2014-04-22 | Altera Corporation | Implementing mixed-precision floating-point operations in a programmable integrated circuit device |
US8805916B2 (en) | 2009-03-03 | 2014-08-12 | Altera Corporation | Digital signal processing circuitry with redundancy and bidirectional data paths |
US8645449B1 (en) | 2009-03-03 | 2014-02-04 | Altera Corporation | Combined floating point adder and subtractor |
US8886696B1 (en) | 2009-03-03 | 2014-11-11 | Altera Corporation | Digital signal processing circuitry with redundancy and ability to support larger multipliers |
US8468192B1 (en) | 2009-03-03 | 2013-06-18 | Altera Corporation | Implementing multipliers in a programmable integrated circuit device |
US7999570B2 (en) * | 2009-06-24 | 2011-08-16 | Advantage Logic, Inc. | Enhanced permutable switching network with multicasting signals for interconnection fabric |
JP2012532369A (ja) | 2009-06-30 | 2012-12-13 | ラムバス・インコーポレーテッド | ノイズを補償するためにクロック信号を調節する技法 |
US8650236B1 (en) | 2009-08-04 | 2014-02-11 | Altera Corporation | High-rate interpolation or decimation filter in integrated circuit device |
US7893712B1 (en) | 2009-09-10 | 2011-02-22 | Xilinx, Inc. | Integrated circuit with a selectable interconnect circuit for low power or high performance operation |
US8412756B1 (en) | 2009-09-11 | 2013-04-02 | Altera Corporation | Multi-operand floating point operations in a programmable integrated circuit device |
US8396914B1 (en) | 2009-09-11 | 2013-03-12 | Altera Corporation | Matrix decomposition in an integrated circuit device |
US8341580B2 (en) * | 2009-09-28 | 2012-12-25 | Advantage Logic, Inc. | Modular routing fabric using switching networks |
US8539016B1 (en) | 2010-02-09 | 2013-09-17 | Altera Corporation | QR decomposition in an integrated circuit device |
US7948267B1 (en) | 2010-02-09 | 2011-05-24 | Altera Corporation | Efficient rounding circuits and methods in configurable integrated circuit devices |
US8601044B2 (en) | 2010-03-02 | 2013-12-03 | Altera Corporation | Discrete Fourier Transform in an integrated circuit device |
US8458243B1 (en) | 2010-03-03 | 2013-06-04 | Altera Corporation | Digital signal processing circuit blocks with support for systolic finite-impulse-response digital filtering |
US8484265B1 (en) | 2010-03-04 | 2013-07-09 | Altera Corporation | Angular range reduction in an integrated circuit device |
US8510354B1 (en) | 2010-03-12 | 2013-08-13 | Altera Corporation | Calculation of trigonometric functions in an integrated circuit device |
US8539014B2 (en) | 2010-03-25 | 2013-09-17 | Altera Corporation | Solving linear matrices in an integrated circuit device |
US9015023B2 (en) | 2010-05-05 | 2015-04-21 | Xilinx, Inc. | Device specific configuration of operating voltage |
US8589463B2 (en) | 2010-06-25 | 2013-11-19 | Altera Corporation | Calculation of trigonometric functions in an integrated circuit device |
US8862650B2 (en) | 2010-06-25 | 2014-10-14 | Altera Corporation | Calculation of trigonometric functions in an integrated circuit device |
US8577951B1 (en) | 2010-08-19 | 2013-11-05 | Altera Corporation | Matrix operations in an integrated circuit device |
US8890567B1 (en) | 2010-09-30 | 2014-11-18 | Altera Corporation | High speed testing of integrated circuits including resistive elements |
US8159266B1 (en) | 2010-11-16 | 2012-04-17 | Raminda Udaya Madurawe | Metal configurable integrated circuits |
US8159268B1 (en) | 2010-11-16 | 2012-04-17 | Raminda Udaya Madurawe | Interconnect structures for metal configurable integrated circuits |
US8159265B1 (en) | 2010-11-16 | 2012-04-17 | Raminda Udaya Madurawe | Memory for metal configurable integrated circuits |
JP5701054B2 (ja) * | 2010-12-28 | 2015-04-15 | 国立大学法人 熊本大学 | リコンフィギュラブルロジックブロック、並びに、これを用いたプログラマブル論理回路装置、及び、テクノロジマッピング方法 |
US8645451B2 (en) | 2011-03-10 | 2014-02-04 | Altera Corporation | Double-clocked specialized processing block in an integrated circuit device |
US9600278B1 (en) | 2011-05-09 | 2017-03-21 | Altera Corporation | Programmable device using fixed and configurable logic to implement recursive trees |
US8941409B2 (en) | 2011-07-01 | 2015-01-27 | Tabula, Inc. | Configurable storage elements |
US9148151B2 (en) | 2011-07-13 | 2015-09-29 | Altera Corporation | Configurable storage elements |
US8812576B1 (en) | 2011-09-12 | 2014-08-19 | Altera Corporation | QR decomposition in an integrated circuit device |
US8949298B1 (en) | 2011-09-16 | 2015-02-03 | Altera Corporation | Computing floating-point polynomials in an integrated circuit device |
US9053045B1 (en) | 2011-09-16 | 2015-06-09 | Altera Corporation | Computing floating-point polynomials in an integrated circuit device |
US8762443B1 (en) | 2011-11-15 | 2014-06-24 | Altera Corporation | Matrix operations in an integrated circuit device |
US8522185B1 (en) * | 2012-02-06 | 2013-08-27 | Xilinx, Inc. | Method for placement and routing of a circuit design |
US8543634B1 (en) | 2012-03-30 | 2013-09-24 | Altera Corporation | Specialized processing block for programmable integrated circuit device |
US9166598B1 (en) | 2012-05-08 | 2015-10-20 | Altera Corporation | Routing and programming for resistive switch arrays |
US9098332B1 (en) | 2012-06-01 | 2015-08-04 | Altera Corporation | Specialized processing block with fixed- and floating-point structures |
US8957512B2 (en) | 2012-06-19 | 2015-02-17 | Xilinx, Inc. | Oversized interposer |
US8869088B1 (en) | 2012-06-27 | 2014-10-21 | Xilinx, Inc. | Oversized interposer formed from a multi-pattern region mask |
US8996600B1 (en) | 2012-08-03 | 2015-03-31 | Altera Corporation | Specialized processing block for implementing floating-point multiplier with subnormal operation support |
US9026872B2 (en) | 2012-08-16 | 2015-05-05 | Xilinx, Inc. | Flexible sized die for use in multi-die integrated circuit |
US9490811B2 (en) * | 2012-10-04 | 2016-11-08 | Efinix, Inc. | Fine grain programmable gate architecture with hybrid logic/routing element and direct-drive routing |
US9525419B2 (en) * | 2012-10-08 | 2016-12-20 | Efinix, Inc. | Heterogeneous segmented and direct routing architecture for field programmable gate array |
US9207909B1 (en) | 2012-11-26 | 2015-12-08 | Altera Corporation | Polynomial calculations optimized for programmable integrated circuit device structures |
WO2014132669A1 (ja) * | 2013-03-01 | 2014-09-04 | アトナープ株式会社 | データ処理装置およびその制御方法 |
US9189200B1 (en) | 2013-03-14 | 2015-11-17 | Altera Corporation | Multiple-precision processing block in a programmable integrated circuit device |
US9000490B2 (en) | 2013-04-19 | 2015-04-07 | Xilinx, Inc. | Semiconductor package having IC dice and voltage tuners |
US9348795B1 (en) | 2013-07-03 | 2016-05-24 | Altera Corporation | Programmable device using fixed and configurable logic to implement floating-point rounding |
US9547034B2 (en) | 2013-07-03 | 2017-01-17 | Xilinx, Inc. | Monolithic integrated circuit die having modular die regions stitched together |
US9379687B1 (en) | 2014-01-14 | 2016-06-28 | Altera Corporation | Pipelined systolic finite impulse response filter |
US9915869B1 (en) | 2014-07-01 | 2018-03-13 | Xilinx, Inc. | Single mask set used for interposer fabrication of multiple products |
US9372956B1 (en) | 2014-11-10 | 2016-06-21 | Xilinx, Inc. | Increased usable programmable device dice |
US9684488B2 (en) | 2015-03-26 | 2017-06-20 | Altera Corporation | Combined adder and pre-adder for high-radix multiplier circuit |
US10942706B2 (en) | 2017-05-05 | 2021-03-09 | Intel Corporation | Implementation of floating-point trigonometric functions in an integrated circuit device |
US10523209B1 (en) * | 2017-11-14 | 2019-12-31 | Flex Logix Technologies, Inc. | Test circuitry and techniques for logic tiles of FPGA |
Family Cites Families (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US34363A (en) * | 1862-02-11 | Improvement in machinery for cleaning cotton | ||
US4124899A (en) * | 1977-05-23 | 1978-11-07 | Monolithic Memories, Inc. | Programmable array logic circuit |
USRE34363E (en) | 1984-03-12 | 1993-08-31 | Xilinx, Inc. | Configurable electrical circuit having configurable logic elements and configurable interconnects |
US4870302A (en) * | 1984-03-12 | 1989-09-26 | Xilinx, Inc. | Configurable electrical circuit having configurable logic elements and configurable interconnects |
US4642487A (en) * | 1984-09-26 | 1987-02-10 | Xilinx, Inc. | Special interconnect for configurable logic array |
US4706216A (en) * | 1985-02-27 | 1987-11-10 | Xilinx, Inc. | Configurable logic element |
US4750155A (en) * | 1985-09-19 | 1988-06-07 | Xilinx, Incorporated | 5-Transistor memory cell which can be reliably read and written |
US4821233A (en) * | 1985-09-19 | 1989-04-11 | Xilinx, Incorporated | 5-transistor memory cell with known state on power-up |
US4758745B1 (en) * | 1986-09-19 | 1994-11-15 | Actel Corp | User programmable integrated circuit interconnect architecture and test method |
US5157618A (en) * | 1988-03-10 | 1992-10-20 | Cirrus Logic, Inc. | Programmable tiles |
GB8828828D0 (en) * | 1988-12-09 | 1989-01-18 | Pilkington Micro Electronics | Semiconductor integrated circuit |
GB8906145D0 (en) * | 1989-03-17 | 1989-05-04 | Algotronix Ltd | Configurable cellular array |
US5343406A (en) * | 1989-07-28 | 1994-08-30 | Xilinx, Inc. | Distributed memory architecture for a configurable logic array and method for using distributed memory |
US5212652A (en) * | 1989-08-15 | 1993-05-18 | Advanced Micro Devices, Inc. | Programmable gate array with improved interconnect structure |
US5255203A (en) * | 1989-08-15 | 1993-10-19 | Advanced Micro Devices, Inc. | Interconnect structure for programmable logic device |
US5231588A (en) * | 1989-08-15 | 1993-07-27 | Advanced Micro Devices, Inc. | Programmable gate array with logic cells having symmetrical input/output structures |
US5185706A (en) * | 1989-08-15 | 1993-02-09 | Advanced Micro Devices, Inc. | Programmable gate array with logic cells having configurable output enable |
US5260881A (en) * | 1989-10-30 | 1993-11-09 | Advanced Micro Devices, Inc. | Programmable gate array with improved configurable logic block |
JPH0391932A (ja) | 1989-09-04 | 1991-04-17 | Canon Inc | 半導体装置の製造方法 |
DE4011486A1 (de) * | 1990-04-09 | 1991-10-10 | Inst Stahlbeton Bewehrung Ev | Betonrippenstahl mit kaltgewalzten schraegrippen und dessen verwendung |
US5267187A (en) * | 1990-05-10 | 1993-11-30 | Xilinx Inc | Logic structure and circuit for fast carry |
US5198705A (en) * | 1990-05-11 | 1993-03-30 | Actel Corporation | Logic module with configurable combinational and sequential blocks |
JPH0447591A (ja) | 1990-06-14 | 1992-02-17 | Mitsubishi Electric Corp | 半導体集積回路装置 |
US5073729A (en) * | 1990-06-22 | 1991-12-17 | Actel Corporation | Segmented routing architecture |
US5245227A (en) * | 1990-11-02 | 1993-09-14 | Atmel Corporation | Versatile programmable logic cell for use in configurable logic arrays |
US5144166A (en) * | 1990-11-02 | 1992-09-01 | Concurrent Logic, Inc. | Programmable logic cell and array |
US5079451A (en) * | 1990-12-13 | 1992-01-07 | Atmel Corporation | Programmable logic device with global and local product terms |
US5122685A (en) * | 1991-03-06 | 1992-06-16 | Quicklogic Corporation | Programmable application specific integrated circuit and logic cell therefor |
US5220213A (en) * | 1991-03-06 | 1993-06-15 | Quicklogic Corporation | Programmable application specific integrated circuit and logic cell therefor |
US5313119A (en) * | 1991-03-18 | 1994-05-17 | Crosspoint Solutions, Inc. | Field programmable gate array |
US5241224A (en) * | 1991-04-25 | 1993-08-31 | Altera Corporation | High-density erasable programmable logic device architecture using multiplexer interconnections |
US5338984A (en) * | 1991-08-29 | 1994-08-16 | National Semiconductor Corp. | Local and express diagonal busses in a configurable logic array |
US5260611A (en) * | 1991-09-03 | 1993-11-09 | Altera Corporation | Programmable logic array having local and long distance conductors |
US5260610A (en) * | 1991-09-03 | 1993-11-09 | Altera Corporation | Programmable logic element interconnections for programmable logic array integrated circuits |
US5347519A (en) * | 1991-12-03 | 1994-09-13 | Crosspoint Solutions Inc. | Preprogramming testing in a field programmable gate array |
US5208491A (en) * | 1992-01-07 | 1993-05-04 | Washington Research Foundation | Field programmable gate array |
US5359242A (en) * | 1993-01-21 | 1994-10-25 | Altera Corporation | Programmable logic with carry-in/carry-out between logic blocks |
US5258668A (en) * | 1992-05-08 | 1993-11-02 | Altera Corporation | Programmable logic array integrated circuits with cascade connections between logic modules |
US5384500A (en) * | 1992-05-15 | 1995-01-24 | Micron Semiconductor, Inc. | Programmable logic device macrocell with an exclusive feedback and an exclusive external input line for a combinatorial mode and accommodating two separate programmable or planes |
US5333279A (en) * | 1992-06-01 | 1994-07-26 | Intel Corporation | Self-timed mesh routing chip with data broadcasting |
US5365125A (en) * | 1992-07-23 | 1994-11-15 | Xilinx, Inc. | Logic cell for field programmable gate array having optional internal feedback and optional cascade |
US5645546A (en) | 1992-09-14 | 1997-07-08 | Microaire Surgical Instruments | Bone screw and screw driver blade system for oral and maxillofacial surgical procedures |
GB9223226D0 (en) * | 1992-11-05 | 1992-12-16 | Algotronix Ltd | Improved configurable cellular array (cal ii) |
US5414377A (en) | 1992-12-21 | 1995-05-09 | Xilinx, Inc. | Logic block with look-up table for configuration and memory |
US5357153A (en) * | 1993-01-28 | 1994-10-18 | Xilinx, Inc. | Macrocell with product-term cascade and improved flip flop utilization |
GB9312674D0 (en) * | 1993-06-18 | 1993-08-04 | Pilkington Micro Electronics | Configurabel logic array |
JP2944368B2 (ja) * | 1993-07-07 | 1999-09-06 | 株式会社東芝 | 半導体集積回路及びプログラマブルロジックデバイス |
US5457410A (en) * | 1993-08-03 | 1995-10-10 | Btr, Inc. | Architecture and interconnect scheme for programmable logic circuits |
US5546596A (en) * | 1993-08-24 | 1996-08-13 | Intel Corporation | Method and apparatus for integrated local and express routing in a multiprocessor |
US5546018A (en) * | 1993-09-02 | 1996-08-13 | Xilinx, Inc. | Fast carry structure with synchronous input |
US5481206A (en) * | 1993-09-02 | 1996-01-02 | Xilinx, Inc. | Circuit for fast carry and logic |
US5898319A (en) | 1993-09-02 | 1999-04-27 | Xilinx, Inc. | Method and structure for providing fast conditional sum in a field programmable gate array |
US5629886A (en) * | 1993-09-02 | 1997-05-13 | Xilinx, Inc. | Method and structure for providing fast propagation of a carry signal in a field programmable gate array |
US5349250A (en) * | 1993-09-02 | 1994-09-20 | Xilinx, Inc. | Logic structure and circuit for fast carry |
US5455525A (en) * | 1993-12-06 | 1995-10-03 | Intelligent Logic Systems, Inc. | Hierarchically-structured programmable logic array and system for interconnecting logic elements in the logic array |
KR960002333B1 (ko) | 1993-12-23 | 1996-02-16 | 재단법인한국전자통신연구소 | 논리 집적회로 모듈 |
US5504440A (en) * | 1994-01-27 | 1996-04-02 | Dyna Logic Corporation | High speed programmable logic architecture |
US5682107A (en) * | 1994-04-01 | 1997-10-28 | Xilinx, Inc. | FPGA architecture with repeatable tiles including routing matrices and logic matrices |
US5761099A (en) * | 1994-11-04 | 1998-06-02 | Altera Corporation | Programmable logic array integrated circuits with enhanced carry routing |
US5815726A (en) * | 1994-11-04 | 1998-09-29 | Altera Corporation | Coarse-grained look-up table architecture |
US5581199A (en) * | 1995-01-04 | 1996-12-03 | Xilinx, Inc. | Interconnect architecture for field programmable gate array using variable length conductors |
US5537057A (en) * | 1995-02-14 | 1996-07-16 | Altera Corporation | Programmable logic array device with grouped logic regions and three types of conductors |
US5592106A (en) * | 1995-05-17 | 1997-01-07 | Altera Corporation | Programmable logic array integrated circuits with interconnection conductors of overlapping extent |
US5543732A (en) * | 1995-05-17 | 1996-08-06 | Altera Corporation | Programmable logic array devices with interconnect lines of various lengths |
US5900743A (en) | 1995-05-17 | 1999-05-04 | Altera Corporation | Programmable logic array devices with interconnect lines of various lengths |
US5646546A (en) * | 1995-06-02 | 1997-07-08 | International Business Machines Corporation | Programmable logic cell having configurable gates and multiplexers |
US5583450A (en) * | 1995-08-18 | 1996-12-10 | Xilinx, Inc. | Sequencer for a time multiplexed programmable logic device |
US5848285A (en) * | 1995-12-26 | 1998-12-08 | Cypress Semiconductor Corporation | Macrocell having a dual purpose input register for use in a logic device |
US5847580A (en) * | 1996-10-10 | 1998-12-08 | Xilinx, Inc. | High speed bidirectional bus with multiplexers |
US5635851A (en) * | 1996-02-02 | 1997-06-03 | Xilinx, Inc. | Read and writable data bus particularly for programmable logic devices |
US5677638A (en) * | 1996-02-02 | 1997-10-14 | Xilinx, Inc. | High speed tristate bus with multiplexers for selecting bus driver |
US5724276A (en) * | 1996-06-17 | 1998-03-03 | Xilinx, Inc. | Logic block structure optimized for sum generation |
US5933023A (en) | 1996-09-03 | 1999-08-03 | Xilinx, Inc. | FPGA architecture having RAM blocks with programmable word length and width and dedicated address and data lines |
US5889413A (en) * | 1996-11-22 | 1999-03-30 | Xilinx, Inc. | Lookup tables which double as shift registers |
US5828230A (en) * | 1997-01-09 | 1998-10-27 | Xilinx, Inc. | FPGA two turn routing structure with lane changing and minimum diffusion area |
US5920202A (en) | 1997-02-26 | 1999-07-06 | Xilinx, Inc. | Configurable logic element with ability to evaluate five and six input functions |
US5963050A (en) * | 1997-02-26 | 1999-10-05 | Xilinx, Inc. | Configurable logic element with fast feedback paths |
US5942913A (en) | 1997-03-20 | 1999-08-24 | Xilinx, Inc. | FPGA repeatable interconnect structure with bidirectional and unidirectional interconnect lines |
US5914616A (en) | 1997-02-26 | 1999-06-22 | Xilinx, Inc. | FPGA repeatable interconnect structure with hierarchical interconnect lines |
US5905385A (en) * | 1997-04-01 | 1999-05-18 | Advanced Micro Devices, Inc. | Memory bits used to couple look up table inputs to facilitate increased availability to routing resources particularly for variable sized look up tables for a field programmable gate array (FPGA) |
US5894426A (en) | 1997-10-28 | 1999-04-13 | Winbond Electronics Corporation | Maximum/minimum value determination apparatus |
US6154052A (en) | 1999-02-04 | 2000-11-28 | Xilinx, Inc. | Combined tristate/carry logic mechanism |
-
1997
- 1997-03-24 US US08/823,265 patent/US5963050A/en not_active Expired - Lifetime
- 1997-08-28 DE DE69716771T patent/DE69716771T2/de not_active Expired - Lifetime
- 1997-08-28 WO PCT/US1997/015382 patent/WO1998043354A1/en active IP Right Grant
- 1997-08-28 EP EP97940738A patent/EP0972344B1/en not_active Expired - Lifetime
- 1997-08-28 JP JP54566298A patent/JP3948497B2/ja not_active Expired - Fee Related
-
1999
- 1999-05-13 US US09/311,782 patent/US6107827A/en not_active Expired - Lifetime
-
2000
- 2000-05-18 US US09/574,741 patent/US6204690B1/en not_active Expired - Lifetime
-
2001
- 2001-01-11 US US09/759,051 patent/US6292022B2/en not_active Expired - Lifetime
- 2001-08-15 US US09/929,977 patent/US6448808B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5963050A (en) | 1999-10-05 |
US6107827A (en) | 2000-08-22 |
EP0972344B1 (en) | 2002-10-30 |
JP2001519133A (ja) | 2001-10-16 |
US6204690B1 (en) | 2001-03-20 |
US6292022B2 (en) | 2001-09-18 |
WO1998043354A1 (en) | 1998-10-01 |
EP0972344A1 (en) | 2000-01-19 |
DE69716771T2 (de) | 2003-06-12 |
DE69716771D1 (de) | 2002-12-05 |
US20010007428A1 (en) | 2001-07-12 |
US6448808B2 (en) | 2002-09-10 |
US20020008541A1 (en) | 2002-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3948497B2 (ja) | Fpga繰返し可能相互接続構成体 | |
US5907248A (en) | FPGA interconnect structure with high-speed high fanout capability | |
US5942913A (en) | FPGA repeatable interconnect structure with bidirectional and unidirectional interconnect lines | |
US6204689B1 (en) | Input/output interconnect circuit for FPGAs | |
US6396303B1 (en) | Expandable interconnect structure for FPGAS | |
US6069490A (en) | Routing architecture using a direct connect routing mesh | |
US6181163B1 (en) | FPGA integrated circuit having embedded SRAM memory blocks and interconnect channel for broadcasting address and control signals | |
US6081473A (en) | FPGA integrated circuit having embedded sram memory blocks each with statically and dynamically controllable read mode | |
US6216257B1 (en) | FPGA device and method that includes a variable grain function architecture for implementing configuration logic blocks and a complimentary variable length interconnect architecture for providing configurable routing between configuration logic blocks | |
USRE39510E1 (en) | FPGA integrated circuit having embedded sram memory blocks with registered address and data input sections | |
US5986465A (en) | Programmable logic integrated circuit architecture incorporating a global shareable expander | |
US5701091A (en) | Routing resources for hierarchical FPGA | |
JP5268195B2 (ja) | プログラム可能高速入出力インターフェース | |
US6084429A (en) | PLD having a window pane architecture with segmented and staggered interconnect wiring between logic block arrays | |
US6124731A (en) | Configurable logic element with ability to evaluate wide logic functions | |
US5581199A (en) | Interconnect architecture for field programmable gate array using variable length conductors | |
US5883526A (en) | Hierarchical interconnect for programmable logic devices | |
US6127843A (en) | Dual port SRAM memory for run time use in FPGA integrated circuits | |
US6466049B1 (en) | Clock enable control circuit for flip flops | |
US8082526B2 (en) | Dedicated crossbar and barrel shifter block on programmable logic resources | |
WO1996038917A1 (en) | Very high-density complex programmable logic devices with a multi-tiered hierarchical switch matrix and optimized flexible logic allocation | |
EP1188241A1 (en) | SCALABLE ARCHITECTURE FOR HIGH DENSITY CPLD's HAVING TWO-LEVEL HIERARCHY OF ROUTING RESOURCES | |
WO1999033177A1 (en) | Symmetrical, extended and fast direct connections between variable grain blocks in fpga integrated circuits | |
WO1998038740A1 (en) | Fpga having logic element carry chains capable of generating wide xor functions | |
US6150841A (en) | Enhanced macrocell module for high density CPLD architectures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040830 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061031 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070131 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070320 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070410 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |