JP3547446B2 - Tile type structure of field programmable gate array - Google Patents
Tile type structure of field programmable gate array Download PDFInfo
- Publication number
- JP3547446B2 JP3547446B2 JP52129595A JP52129595A JP3547446B2 JP 3547446 B2 JP3547446 B2 JP 3547446B2 JP 52129595 A JP52129595 A JP 52129595A JP 52129595 A JP52129595 A JP 52129595A JP 3547446 B2 JP3547446 B2 JP 3547446B2
- Authority
- JP
- Japan
- Prior art keywords
- lines
- line
- tile
- signal
- input
- 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 - Lifetime
Links
- 239000011159 matrix material Substances 0.000 claims description 97
- 230000006870 function Effects 0.000 description 90
- 230000015654 memory Effects 0.000 description 35
- 239000000872 buffer Substances 0.000 description 27
- 238000013461 design Methods 0.000 description 11
- 238000012905 input function Methods 0.000 description 6
- 239000004020 conductor Substances 0.000 description 5
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 101100339482 Colletotrichum orbiculare (strain 104-T / ATCC 96160 / CBS 514.97 / LARS 414 / MAFF 240422) HOG1 gene Proteins 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000000758 substrate Substances 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/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
-
- 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
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Logic Circuits (AREA)
Description
発明の技術分野
この発明は集積回路内に形成されたプログラマブルロジックデバイスに関し、とくに論理ブロックを繰返しパターンの形に備えるプログラマブルロジックデバイスの構造に関する。
発明の背景
フィールドプログラマブルゲートアレー(FPGA)はこの技術分野で周知である。FPGAはユーザ所望の論理機能をもたらすようにプログラム可能な形で相互結合配線した回路配置融通性ある論理ブロック(CLB)のアレーを含む。米国再発行特許第Re.32,363号として再発行された米国特許第4,870,302号は周知のFPGA構造を記載しており、ここに参照してこの明細書に組み入れる。米国特許第4,758,745号、同第5,243,238号、および公開国際出願WO93/05577もそれ以外のFPGA構造を記載しており、ここに参照してこの明細書に組み入れる。さらにここに参照してこの明細書に組み入れるカリフォルニア州95124サンホゼ、ロジックドライブ2100所在のジリンクス,イ・コーポレーテッド発行のジリンクス社1993年データブック「プログラマブル ロジック データ ブック」は多数のFPGA構造を実動化するいくつかの製品を記載している。
FPGAは汎用デバイス、すなわち複数の機能の任意の一つを発揮できるデバイスと考えられ、所望の機能を発揮するようエンドユーザがプログラムする。この設計融通性のために、汎用FPGAは、多くの用途で使われないままになる多数の接続用線およびトランジスタを含んでいる。また、FPGAは特定の機能を発揮するためのプログラム実施を容易にする付加デバイスを含む。これらの付加デバイスのためにFPGAチップ上の所要表面積が増大して不都合である。この付加を償うためにFPGAの原価を下げることが営業的に重要である。原価切下げの一つの方法はFPGAの汎用性を下げること、すなわち使われる頻度の少ない回路配置上のオプションのいくつかを除外することである。しかし、回路配置上のオプションの削減は、どのオプションが必要になるのか予測できない可能性のある顧客にとっては、FPGAの価値の下落となる。したがって、回路配置オプションを最大に保ったまま表面積を削減する必要が生じている。
発明の概要
この発明によるフィールドプログラマブルゲートアレー(FPGA)構造は繰返し配置可能なタイルを備える。各タイルはプログラム可能な経路指示マトリクスと回路配置融通性ある論理ブロックマトリックスとを含む。回路配置融通性ある論理ブロックマトリックスはプログラム可能な経路指示マトリックスと隣接タイル中の回路配置融通性ある論理ブロックマトリックスとにプログラム可能な形で接続できる。プログラム可能な経路指示マトリックスはタイル隣接のプログラム可能な経路指示マトリックスとタイル横断の長尺線とにプログラム可能な形で接続できる。このようにして、各タイルはロジック、隣接タイルへの接続および全体の経路指示構造への接続の組合せを備える。複数のこれらタイルをつなぎ合わせてタイルのアレーを形成し、それによってFPGAチップの機能部を構成する。この構造により、互いに異なる数のタイルをつなぎ合わせるだけで互いに異なる大きさのデバイスを製造し、高額の費用と多大の時間のかかる設計努力を不要にする。また、この発明によると、上記プログラム可能な経路指示マトリックスおよび回路配置融通性ある論理ブロックマトリックスがプログラム可能な相互接続点(PIP)の数を最小にし、チップ表面積を削減しチップ全体の密度を最大にする。さらにこの発明によると、PIPの適切な位置づけが所要の経路指示の融通性を確保し、FPGAの機能性を最大にする。
タイル構造は境界部分でタイルから外部に向こうひと組の信号線を備える。したがって、例えば、一つのタイトルの右側で外に向かう信号線はもう一つのタイルの左側で外に向かう信号線とつながる。一つの実施例においては、互いに隣接するタイルは同一であって、繰返しパターンを形成している。もう一つの実施例においては、隣接するタイルは互いに同一ではないがそれらタイルの少なくとも大部分がタイル境界部でぴったり合致する信号線を備えている。すなわち、境界部で合致するモジュール状ユニットのアレーとしてチップを形成でき、複数のチップ設計で使えるタイル設計の融通性を容易に高めることができる。
【図面の簡単な説明】
図1はこの発明による構成部分を含むFPGAチップを示す。
図2Aは図1のFPGAチップの大部分に含まれる単一のコアタイルを示す。
図2Bは図2Aに示した型の四つの隣接コアタイルを示す。
図3Aは図2Aのタイルの一部である回路配置融通性ある論理ブロックマトリックスを示す。
図3Bは回路配置融通性ある論理ブロックの出力線を一つの出力線に接続するすべてのPIPを実動化するマルチプレクサ構造を示す。
図3Cは回路配置融通性ある入力線を駆動するマルチプレクサ構成の一つの実施例を示す。
図4Aは図3Aのマトリックス4の回路配置可能な論理ブロックを示す。
図4Bは図3Aの三状態バッファブロック302を示す。
図4Cは図3Aの出力イネーブルブロック309を示す。
図4Dは図4AのF,G,HおよびJ関数発生器の参照用テーブルの実施例を示す。
図4Eは図4AのF,G,HおよびJ関数発生器のもう一つの参照用テーブルの実施例を示す。
図4Fは図4Dまたは4Eの参照用テーブル関数発生器用の一つのカルノーマップを示す。
図4Gは図4Dまたは4Eの参照用テーブル関数発生器で実動化できる216の論理機能の一つを示す。
図5A−5Cは図4Aの回路配置融通性ある論理ブロックを、桁上げ連鎖、縦続接続可能な復号回路および五入力組合せ機能にそれぞれ適用した例をそれぞれ示す。
図6は図2Aのプログラム可能な経路指示マトリックスを示す。
図7Aは図6に示したようなこの発明のプログラム可能な経路指示マトリックスにより得られる接続形成可能性の例を示す。
図7Bは図6のプログラム可能な経路指示マトリックスと図2Aまたは2Bのタイル構造との組合せで得られる接続形成可能性の例を示す。
図8はチップの角度の近傍の大域信号パッドから大域信号線すなわちチップの四つの辺縁に延びコアタイル駆動用の大域線に接続される大域信号線に至る接続を示す。
図9はこの発明の一つの実施例において長尺線上に設けられた長尺線分割器を示す。
図10A−10Dはこの発明の一実施例による左側、上側、右側および下側の辺縁タイルをそれぞれ示す。
図11A−11Dは同実施例の左上側、右上側、右下側および左下側の角部タイルとをそれぞれ示す。
図12は図11Bで用いられる発振器の一つの実施例の論理図を示す。
図面の詳細な説明
図面全体を通して次の表記を用いてある。すなわち、二つの線の交点にある小さい黒色の点はそれら二つの互いに交わる線の間の固定の電気的接続を表わす。二つの線の交点を囲む白ヌキの円はそれら二つの線の間のプログラム可能な接続(例えばオンになって接続を形成するパストランジスタ)を表わす。白ヌキの円は二つの線の間の双方向の信号の流れを表わす。二つの線の間の白ヌキの三角形はその三角形の頂点の指す線に向かう信号の流れとのプログラム可能な接続を表わす(この場合、信号はもちろん線の長さ全体にわたって存在する。すなわち、反対向きの三角形も同じ線を指している場合は同一の信号の流れを生ずる)。この発明の一つの実施例によると、プログラム可能な接続はプログラム可能な各々が少なくとも一つのトランジスタから成る相互接続点(PIP)を用いて形成する。
他の線と交叉しない一つの線に重なっている三角形はその三角形の頂点の指す方向の信号の流れを生ずるバッファを表わす。大域線ENOUTおよびENLL(図3Aに示す)を除き、タイルまたはマトリックス構造の内部で終端する(すなわち、タイルまたはマトリックスの境界部までは延びていない)線はそのタイル内部で物理的に終端する。タイルまたはマトリックスの境界部まで延びる線は隣接タイル上の線、すなわち二つのタイルの接合に伴って接触状態になる線に接続される。一つのタイルの辺縁まで延び、従って隣接タイルに達する線のいくつかはそのタイル境界部で名称が変わる。回路配置融通性ある論理ブロックマトリックスおよびプログラム可能な経路指示マトリックスの中の線には同じ参照数字を付してそれら線の相互間の物理的接続を表わしている。
図1はこの発明によるFPGAチップ100を示す。チップ100の中心部には導体線で互いに接続した(詳細は後述)複数の同一コアタイル101がある。チップ100の四辺に沿つて、西、北、東および南辺縁タイル103,104,105および106がそれぞれ配置してある。また、このチップの四隅には四つの角部タイル113,114,115および116がそれぞれ配置してある。さらに、チップ100はパッド、すなわち辺縁タイル103,104,105,106および角部タイル113−116をパッケージ(チップ100を収容する)の外部ピンに接続するパッドP1−P56を備える。各角部タイルは一つのコアタイル101にも接続されている。図1に示すとおり、辺縁タイルは互いに異なる数のパッドP、すなわち通常は0個から4個のパッド(図10a−10dを参照して詳述)に接続される。図1には高電圧源パッドVCCおよび低電圧源パッドGNDも示してある。チップ全体を通じて電源用および接地用配線(図示してない)が慣用の手法により設けてある。
図2Aはコアタイル101を示す。コアタイル101はプログラム可能な経路指示マトリックス201および回路配置融通性ある論理ブロックマトリックス202を含む。プログラム可能な経路指示マトリックス201は図6を参照して詳述し、回路配置融通性ある論理ブロック201は図3Aを参照して詳述する。
プログラム可能な経路指示マトリックス201から西向きに延びるサフィックス0乃至11付きの12本の線を設けてある。これらの線には1倍長西向き線W1−W5、W7−W11、および2倍長西向き線DW0およびDW6(詳細は後述)が含まれる。プログラム可能な経路指示マトリックス201から北向きに延びる1倍長北線N1−N5、N5−N11および2倍長北線DN0およびDN6も設けてある。また、東向きに延びる1倍長東線E1−E5およびE7−E11、および2倍長東線DE0−DE6も設けてある。さらに、南向きに延びる1倍長南線S1−S5およびS7−S11、および2倍長南線DS0およびDS6が設けてある。また、東から西向きにタイル101を横切って2倍長水平線DH0およびDH6を備える。さらに、北から南向きタイル101を横切って二重長垂直線DV0およびDV6を備える。
図2Bは図2Aに示したタイル101と同一の回路配置の四つの隣接コアタイル101a,101b,101cおよび101dを示す。図2Bにおいては、明瞭化のために大部分の線には符号を付けてない。上述のとおり、タイル101の辺縁に延びる線は隣接タイル内の線に接続してある。例えば、プログラム可能な経路指示マトリックス201bから西向きに延びるタイル101b内の1倍長西線W1bは隣接タイル101a内の1倍長東線E1aに接続してある。タイル101aの2倍長水平線DH6aはタイル101bの2倍長西線DW6bに接続され、さらに図2Bに図示してないがタイル101aのすぐ西側に配置してあるタイルの2倍長東線DE6に接続されている(したがって、用語「2倍長」を用いる)。タイル101c内のCLBマトリックスから東向きに延びる線Q0cはタイル101d内のCLBマトリックス202dから西に延びる線QW0dに接続されている。また、図2には、タイル101から隣接タイルに連続して延びる水平大域線GH0およびGH1ならびに垂直大域線GV0およびGV1も示してある。これら大域線はタイル辺縁の共通線に接続し、GH0などの大域線上の信号が全タイルに供給されるようにすることもできる。図2Bに示すとおり、垂直大域線GV0およびGV1、ならびに水平大域線GH0およびGH1はプログラム可能な経路指示マトリックス201および回路配置融通性ある論理ブロックマトリックス202の両方に接続してある。
図2Aに戻ると、回路配置融通性ある論理ブロック(CLB)マトリックス202は出力線Q0−Q3および入力線QW0−QW3により西側タイル(図示してない)内のCLBマトリックスに接続され、出力線Q0−Q3および入力線QN0−QN3により北側タイル(図示してない)内のCLBマトリックスに接続され、出力線Q0−Q3および入力線QE0−QE3により東側タイル内のCLBマトリックスに接続され、出力線Q0−Q3および入力線QS0−QS3により南側タイル(図示してない)のCLBマトリックスに接続されている。出力線Q0−Q3は同一の信号をGLBマトリックス202から四方向の隣接タイルに伝達するものであり、したがって同じ名称を与えてある。桁上げ入力線CINおよび桁上げ出力線COUT、すなわちタイル101内で垂直に延びる線は隣接タイル内の桁上げ出力線および桁上げ入力線にそれぞれ接続され、米国特許第5,349,250号「高速桁上げのためのロジック構造および回路」に詳述したとおり、算術機能部の高速桁上げ経路を形成する。なお、この米国特許はここに参照してこの明細書に組み入れる。
回路配置融通性ある論理ブロックマトリックス202
図3Aは図2Aの回路配置融通性ある論理ブロック(CLB)マトリックス202を示す。CLBマトリックス202はCLB301、三状態バッファブロック302、入力相互接続配線構造303、CLB出力相互接続配線構造304、帰還相互接続配線構造305、普通の入力相互接続配線構造306、レジスタ制御用相互接続配線構造307、出力相互接続配線構造308、および出力イネーブルブロック309を含む。
まばらなPIP分布
プログラム可能な接続は各々が少なくとも一つのトランジスタを有するプログラム可能な相互接続点(PIP)を用いて設ける。この分野で周知のとおり、各トランジスタはチップ基板上の貴重な面積を占める。この発明に従い図3Aを参照すると、入力相互接続配線構造303、帰還相互接続配線構造305、普通の入力の相互接続配線構造306およびレジスタ制御用相互接続配線構造307の内部の水平および垂直の線の大部分はプログラム可能な形の接続はできない。すなわち、これらの構造におけるPIPはまばらであり、まばらな「PIP付き」である。まばらなPIP分布はPIPの費やすチップ表面積を最小にし、チップ全体の密度を最大にする。さらにこの発明によると、PIPの適切な配置のしかたによって経路付与の融通性が著しく高まり、相互接続配線構造におけるPIPの数の減少を実効的に償う。
例えば、入力相互接続配線構造303について述べると、PIPの位置はCLB出力相互接続配線構造304からの各出力線から四つの方位の各方向の隣接タイルの関数発生器F,G,HまたはJの一つへの接続を可能にするように定めてある。この実施例において、普通の入力相互接続配線構造306はCLB301への各CLB入力線(J0−J3、JB、H0−H3、HB、G0−G3、CB,F0−F3およびFB)について四つ乃至六つのPIPを提供する。帰還相互接続配線構造305は出力線Q0−Q3の一つからCLB301内の関数発生器入力端子の一つへの直接接続を提供する。図3Aに示したとおり、出力相互接続配線構造308内の24個のPIPが出力線Q0−Q7をタイル相互接続配線用線M0−M23に接続している。このようにして、相互接続配線用線M0−M23に印加された信号はCLB301とプログラム可能な経路指示マトリックス201との間で選択的に転送される(CLB出力相互接続配線構造304、普通の入力相互接続配線構造306、および出力相互接続配線構造308経由で)。この実施例では八つの相互接続配線につき一つ以下の相互接続配線にPIPを設け、それによってシリコン表面積を最小にしている。にも拘らず、任意の出力線から任意の入力線への接続形成可能性はここに設けられたPIPによって確保できる。
回路配置融通性ある論理ブロック301
回路配置融通性ある論理ブロック(CLB)301を図4Aに示す。この実施例において、CLB301は四つの関数発生器F,G,HおよびJを含み、これら関数発生器の各々はその関数発生器への四つの入力信号と格納値とで決まる出力信号を生ずる16ビット参照用テーブルを含む。このようにして、関数発生器Fは線F0−F3に供給される入力信号で決まる出力信号を生じ、関数発生器GはGLB入力線G0−G3に供給される信号で決まる出力信号を生じ、関数発生器HはCLB入力線H0−H3に供給される信号で決まる出力信号を生じ、関数発生器JはCLB入力J0−J3に供給される信号で決まる出力信号を生ずる。
参照用テーブル
図4D−4Gを参照して参照用テーブル関数発生器の動作を説明する。これらの図は米国再発行特許第Re.34,363号として再発行された米国特許第4,870,302号において発明者フリーマンが論じたものであり、この特許をここに参照してこの明細書に組み入れる。
図4Dは参照用テーブル、すなわちこの実施例では16ビットRAMで構成する参照用テーブルを示し、このテーブルは四つの入力信号の16種の可能性ある組合せの任意の一つに応答して出力信号を生じる。より詳細に述べると、入力信号AおよびBは16ビットRAMの四つの列の任意の一つを選択するようにXデコーダを制御する。同様に、入力信号CおよびDは16ビットRAMの四つの行の任意の一つを選択する。この16ビットRAMは選択された行および選択された列の交点のビットを代表する出力信号を生ずる。そのような交点が16個あり、したがって、そのようなビットが16ビットある。したがって、16ビットが216個の可能性ある組合せを生じることになる。すなわち、四入力NORゲートを16ビットRAMでシミュレートする場合は、この参照用テーブルについてのカルノーマップは図4Fに示すようになる。図4Fにおいて、第1行(A=0、B=0を表わす)と第1列(C=0、D=0を表わす)との交点におけるビット以外のビットはすべて「0」である。A=1、B=0、C=0、D=0について論理「1」出力信号を必要とする場合は、論理「1」を第2行と第1列との間の交点に格納する。A=0、B=0、C=0およびD=0、ならびにA=1、B=0、C=0およびD=0について論理「1」を要する場合は、第1列と第1行および第2行との交点の各々に論理「1」を格納する。参照用テーブルをこのようにロードすることによって表わされる論理回路を図4Gに示す。すなわち、図4Dの参照用テーブルは216個の論理機能の任意の一つの精密で単純な実動化を表わす。
図4Eは16個の選択ビットの任意の一つを生ずるレジスタの構成を示す。左側縦方向の列の「16個の選択ビット」と表示したレジスタ0−15の各々は論理「1」または「0」の被選択信号を含んでいる。信号A,B,CおよびDならびにこれらの補数の適当な組合せを選択することによって、16選択ビットレジスタ内の16の位置の特定の一つに格納された特定のビットが出力導線OUTに送出される。すなわち、例えば「1」レジスタ中のビットを出力導線に送出するには信号A,B,C,Dをその表示のある導線に加える。また、16選択ビットレジスタ内の16番目の位置「15」の信号を出力導線に送出するには信号A,
能の任意の一つを提供する。
図4Aに戻ると、参照用テーブルF,G,HおよびJの中のメモリビットは通常はチップの回路配置の期間中に例えばシフトレジスタ経由で、代替的にはアドレス手段でロードされる。いくつかの実施例では、メモリビットはチップの動作中にロードし、それによって、動作中のチップを回路再配置する。回路再配置融通性あるメモリ構成はこの発明と同一譲受人に譲渡されたフリーマンほか(Freeman et al)発明の米国特許第5,343,406号「回路配置融通性ある論理アレー用の分散メモリ構造および分散メモリを使用する方法」に記載されており、同時許をここに参照してこの明細書に組み入れる。
関数発生器F,G,HおよびJはCLB出力線X,Y,ZおよびVにそれぞれ出力を生ずる。関数発生器F,G,HおよびJからのこれら出力信号はマルチプレクサC1,C2,C3およびC4をそれぞれ制御し、累積桁上げ出力COUTを生ずる。マルチプレクサC1は桁上げ入力信号を線C1Nに、入力信号を線FBにそれぞれ受け、出力信号を線CFに生ずる。マルチプレクサC2はその信号を線CFに、入力信号を線GBにそれぞれ受け、出力信号を線CGに生ずる。マルチプレクサC3およびC4はマルチプレクサC1およびC2と同様に接続する。マルチプレクサC4はCLB301からの線COUTに出力信号を生ずる。算術機能の詳細な説明については、この出願と同一の譲受人に譲渡されたバーナード イー.ニュウ発明の米国特許第5,349,250号「高速桁上げのためのロジック構造および回路」参照。なお、この特許をここに参照してこの明細書に組み入れる。
各CLB301は関数発生器F,G,HおよびJのほかに四つの蓄積装置RX,RY,RZおよびRVを含む。これら蓄積装置RX,RY,RZおよびRVの各々は主段および従段つきのフリップフロップと、これら主段および従段からの出力を入力として受ける出力マルチプレクサとを含む。すなわち、デバイスRX,RY,RZおよびRVはフリップフロップまたはラッチを構成するようにマルチプレクサで回路配置できる。
通常は桁上げ信号への周期的な電圧再供給が必要である。この実施例では、この電圧再供給のために、インバータI121およびI122を含む電圧再供給用バッファ桁上げ経路のマルチプレクサ四つごとまたはCLB301一つごとに配置する。もう一つの実施例では、電圧再供給用バッファを桁上げ経路のマルチプレクサ二つごとに設け、CLB一つごとに二つの電圧再供給バッファを設けるようにする。
この実施例においては、CLB301は関数発生器あたり五つの入力線を含む。例えば、関数発生器Fを参照すると、CLB入力線F0−F3は関数発生器Fに入力信号を供給し、第5のCLB入力線FBはマルチプレクサ制御入力信号を供給する。関数発生器G,HおよびJも同様に回路配置する。三つの入力線CLK,CEおよびRSTは、クロック信号、クロックイネーブル信号およびリセット信号をレジスタRX,RY,RZおよびRVにそれぞれ供給する。
図4Aに示すとおり、一つの出力信号の四つのグループ、すなわち各々が各関数発生器に関連づけられている四つのグループがCLB301から生ずる。これら三つの出力信号には次のものが含まれる。すなわち;
・関数発生器(CLB出力線X,Y,ZまたはVに設けた)からの直接のレジスタ格納されてない出力信号。
・CLB入力信号の、すなわち桁上げ連鎖からの信号、または二つの場合は五入力関数(CLB出力線XB,YB,ZBまたはVBに生ずる)を供給するマルチプレクサからの信号をもとにした代替のレジスタ格納されてない出力信号。
・関数発生器または代替的出力信号の信号源の一つ(CLB出力線XQ,YQ,ZQまたはVQに設けた)によりロードできるレジスタ格納ずみの出力信号。
例えばCLB出力線Xは関数発生器Fからの直接のレジスタ格納なしの出力信号を受ける。CLB出力線XBはCLB入力線FBの信号またはマルチプレクサS1の出力信号(マルチプレクサB1の決めるところにより)、すなわち桁上げ出力信号CFまたはマルチプレクサFGからの五入力関数発生器出力信号(図5Cについて後述の説明参照)から得られる出力信号を受ける。CLB出力線XQはレジスタRXからのレジスタ格納ずみの出力信号、すなわちD入力信号をマルチプレクサD1の決めるところにより関数発生器Fから直接に(出力線Xの信号)または線XBの代替的出力信号から得るレジスタRXからの出力信号を受ける。最後に、出力線KはマルチプレクサPGの選択によりハイまたはロウとなる一定値信号を供給する。
図4Aの実施例において、マルチプレクサD1−D4は、関数発生器F,G,HおよびJ(CLB出力線X−V)からの出力信号またはマルチプレクサB1−B4からの出力信号をレジスタRX−RVにそれぞれ供給する。マルチプレクサS1およびS3をマルチプレクサC1およびC3からの桁上げ信号をそれぞれ転送するようにセットすると、マルチプレクサB1−B4はCLB入力線FB−FJの入力信号またはマルチプレクサC1−C4の出力信号のどちらかを選択する。
マルチプレクサC1−C4は算術演算における桁上げ機能に用いられるほかに広範囲のANDおよびOR機能を発揮する。AND機能を発揮するには、線FBに論理「0」を加えて、CLB出力線X上のF関数発生器出力信号と線C1N上の桁上げ入力信号とのAND出力を生ずるようにマルチプレクサC1をプログラムする。一方、OR機能を発揮するには、CLB入力線FBに論理「1」を加えて、CLB出力線XLの出力信号の補数と線C1N上の桁上げ入力信号とのOR出力を生ずるようにマルチプレクサC1をプログラムする。真数表構造によると、OR出力は反転値を真数表にロードすることによって得られる。マルチプレクサC1−C4の機能および論理ブロックとの相互作用については、ここに参照してこの明細書に組み入れる米国出願第08/116,659号〔M−2565〕により詳細に述べてある。
CLB301の応用例
図5A−5Cは、CLB301(図4Aを参照して上に詳述)を用いて、桁上げ連鎖、縦続接続可能なデコーダ回路2、および二つの五入力関数発生器をそれぞれ形成する応用例を示す。これらの図において、太線はCLB301の線のうち特定の選ばれた機能のために用いられたものを表わし、細い点線はその特定機能のために用いられていないものを表わす。
図5Aにおいて、CLB301は一つの数A3A2A1A0およびB3B2B1B0の半値和H3H2H1H0(ここでH3,H2,H1およびH0は4ビット半値和の4つのビットである)および桁上げビットC3C2C1C0である。もう一つのCLB(図示してない)、すなわち図に示したタイルの右または左に配置するのが好ましいCLBは加算の完結のために用いる。オペランドA3およびB3をCLB入力線J0−J3の任意の二つに加える。オペランドA2およびB2はCLB入力線H0−H3の任意の二つに加える。A1およびA2はCLB入力線G0−G3の任意の二つに加える。A0およびB0はCLB入力線F0−F3の任意の二つに加える。使われていない線はハイまたはロウに維持する。関数発生器F,G,HおよびJの各々をXOR機能(入力信号の半値和)の真値テーブルでロードする。真数表に使ってない入力線に加えられた値を計算に入れる。関数発生器Fに加えられたものよりも低次のビットがある場合は、それらビットの桁上げ出力は桁上げ入力線C1Nを生ずる。マルチプレクサC1,C2,C3およびC4は関数発生器F,G,HおよびJの出力信号でそれぞれ制御される。より詳細に述べると、関数発生器出力信号が論理1である(信号AおよびBは等しくない)場合は、桁上げ入力値はそのビットの桁上げ出力に送られ、関数発生器出力が論理0である(信号AおよびBが互いに等しい)場合は、信号Aまたは信号Bの値はそのビットの桁上げ出力に送られる。マルチプレクサB1−B4、S1およびS3は各ビットの桁上げ出力をそのビットの「B」CLB出力線(すなわち、C1B出力線XB,YB,ZBおよびVB)に送出する。各ビットについての関数発生器出力信号(CLB出力線X,Y,ZおよびVに生じている)はそのビットについての半値和として供給される。
図5Bに示したもう一つの用途においては、CLB301は縦続接続可能なデコーダとして動作するように回路配置してある。信号A0−A15の表わす16ビットアドレスをCLB入力線F0−F3、G0−G3、およびJ0−J3に加える。CLB入力線FB,GB,HBおよびJBは接地してある。各関数発生器F,G,HおよびJの各々の16ビットは所定アドレスの一部を反映するのに一つの論理「1」を含む。論理1信号を桁上げ入力線C1Nに加える。四つの関数発生器F,G,HおよびJ全部が論理1をそれぞれ出力する(すなわちアドレス「一致」を表わす)場合は、マルチプレクサC1−C4全部が論理1を送出して桁上げ出力線COUTに論理1信号を生ずる。
図5Cに示したもう一つの用途では、CLB301は五つの入力信号の各々の二つの関数を生ずる。関数発生器FおよびGは五つの入力信号の第1の関数をCLB出力線XBに生じ、関数発生器HおよびJは五つの入力信号の第2の関数をCLB出力線2Bに生ずる。この第1の関数については、四つの入力信号A0−A3が両方の関数発生器FおよびGへのCLB入力線に供給され、第5の入力信号A4がFBに供給される。入力信号A4によってマルチプレクサFGは関数発生器Fまたは関数発生器Gの出力信号を選択する。この実施例において、マルチプレクサS1はマルチプレクサFGの出力信号を選択するようにメモリセルでプログラムされ、マルチプレクサB1はマルチプレクサS1の出力信号を選択するようにメモリセルでプログラムされる。このようにして、関数発生器FおよびGから五入力関数発生器出力信号がCLB出力線XBに生ずる。同様にして、関数発生器HおよびJへの五つの入力信号B0−B5の関数がCLC出力線に生ずる。
二つの関連関数発生器FおよびGへの適切な真数表のローディングが五つの入力信号の所望の関数を生ずる。より詳細に述べると、一つの実施例においては、関数発生器FおよびGに32ビット参照用テーブル(すなわち二つの16ビット参照用テーブル)を格納する。このようにして、多数の関数が互いに異なる値を関数発生器真数表形成用のメモリセルと制御マルチプレクサFGおよびHJとにロードすることによって代替的に生ずる。
三状態バッファ302
図4Bは三状態バッファB4−B7を含む三状態バッファブロック302(図3A)の概略図を示す。線の名称は図3Aに用いたものと同一である。ANDゲートA4−A7からの出力信号が三状態バッファB4−B7をそれぞれ制御する。例えばANDゲートA5が論理0出力信号を生ずると、バッファB5がイネーブルされ、線TQ5にバッファ経由の出力信号、すなわち線Q5への対応入力信号と合致する信号を生ずる。一方、ANDゲートA5に論理1出力信号を生ずると、バッファ5がディスエーブルされ、出力端子に高インピーダンスを生ずる。ANDゲートA4−A7からの出力信号はORゲートOR1からの出力信号で大域的に決まるか、メモリセルMM4−MM7によって個別的にそれぞれ決まる。メモリセルMM4,MM7が論理0を蓄積している場合は、ANDゲートA4−A7の出力信号もORゲートOR1からの信号と関係なく論理0になる。ORゲートOR1は、ENLL信号がロウの場合、または線TSの信号がハイの場合は、ハイの出力を生ずる。図3Aに戻ると、三状態線TSの信号はタイル相互接続配線用線M16−M23の任意のものからプログラム可能な形で選ばれる。
ENLL信号はすべてのタイル101のすべてのバッファ302に供給される大域信号である。このENLL信号は、コンテンション、すなわち入力信号を同一の長尺線に接続するための種々のTS線が回路配置中に予測不可能な形で切り換わる際に生ずるコンテンションの防止のために、回路配置中および回路配置のあと他の信号がイネーブルされる際にはロウに保たれる。
バッファB4−B7を動作中に長尺線への信号の供給用に電圧再供給バッファ(常にイネーブルされている)として用いる場合は、メモリセルMM4−MM7には回路配置の期間中ロウの値をロードしておく。すなわち、回路配置の期間中はANDゲートA4−A7でバッファB4−B7をイネーブルすることになる。しかし、信号TQ4−TQ7を長尺線に送り込む入力信号Q4−Q7は回路配置期間中は図4Cを参照して次に述べるとおり共通の信号を担っているので、コンテンションは生じない。
出力イネーブルブロック309
出力イネーブルブロック309内のバッファは、これらバッファにより駆動される線コンテンションを生じないように、デバイスの回路配置中にディスエーブルされる。図4Cはブロック309の構造を示す。出力イネーブルブロック309の各バッファは2入力ANDゲートを含む。各ANDの一つの入力は大域イネーブル信号ENOUTで駆動される。もう一つの入力には線Q0′−Q7′が備えてあり、この線にCLB301(図3A)からの出力信号が供給される。回路配置中はこれらの線Q0−Q7に予想外の線が接続され得る。したがって、コンテンション防止のために、ENOUT信号を回路配置中ロウに保って、線Q0−Q7への出力信号全部がロウになりそれ以外の線の予想外の接続がコンテンションを生じないようにする。
隣接入力マトリックス303
図3Aを参照すると、この発生の実施例における隣接CLB301への接続は直接接続によるものはなくすべてPIP経由である。例えば、入力信号は入力相互接続配線構造303からCLB301に選択的に供給される。各入力線QS0−QS3は一つの関数発生器のCLB入力線の一つに接続可能である。この実施例において、線QS0は関数発生器FのCLB入力線F1に接続可能であり、線QS1は関数発生器GのCLB入力線G1に接続可能であり、線QS2は関数発生器HのCLB入力線H1に接続可能であり、線QS3は関数発生器JのCLB入力線J1に接続可能である。各関数発生器F,G,HおよびJは入力信号に基づき任意の関数を生ずるように回路配置可能であるので、一つの関数発生器の任意の入力端子とその関数発生器の適宜ロードした参照用テーブルとに特定の信号を供給できる。したがって、どの入力信号がどの関数発生器入力端子に供給可能であるかは重要でない。
入力線QW0への信号はCLB入力線F0およびFBの両方を駆動する。同様に、入力線QW1への信号はCLB入力線G0およびGBを駆動し、入力線QW2への信号はCLB入力線H0およびHBを駆動し、入力線QW3への信号はCLB入力線J0およびJBを駆動する。入力線QE0,QE1,QE2およびQE3への各信号も二つのCLB入力線を駆動する。より詳細に述べると、入力線QE0への信号はCLB入力線F1およびFBを駆動し、入力線QE1への信号は線G1およびGBを駆動し、入力線QE1への信号は線H1およびHBを駆動し、入力線QE3への信号は線J1およびJBを駆動する。
入力線QN0−QN3およびQS0−QS3の各1への信号はCLB入力線一つだけを駆動する。詳細に述べると、入力線QN0への信号はCLB入力線F0を駆動し、入力線QN1への信号はCLB入力線G0を駆動し、線QN2への信号はCLB入力線H0を駆動し、入力線QN3への信号はCLB入力線J0を駆動する。入力線QS0への信号はCLB入力線F1を駆動し、入力線QS1への信号はCLB入力線G1を駆動し、線QS3への信号はCLB入力線J1を駆動する。この実施例は、各入力線QE0−QE3およびQW0−QW3の各々がプログラム可能な形で二つのCLB入力線に接続されているので、多数の信号の水平方向の流れにとくに望ましい。この発明の他の実施例は異なる数および位置のプログラム可能な接続を備え、異なる信号の流れに最適化されている。
出力マトリックス304
CLB301はCLB出力線X,XQ,XB,Y,YQ,YB,Z,ZQ,ZB,V,VQおよびVBに出力信号を生ずる。また、CLB301は、桁上げ出力線COUTに信号を生ずるか、桁上げ入力線CINへの信号を上側タイル内の次のCLBに転送するかを決める。CLB出力線X,XQ,XB,Y,YQ,YB,Z,ZQ,ZB,V,VQ,VBおよびK上のPIPはCLB相互接続配線構造304を通じて出力線Q0−Q7の任意の数を駆動するように選択的にプログラムされている。CLB相互接続配線構造304は全面的なPIP分布を備えている(すなわち、CLB301の13の出力信号のうち桁上げ出力線COUTへの信号を除く任意のものが出力線Q0−Q7の任意のものを駆動できる)。相互接続配線構造304が上記以外の線の駆動用の出力信号にもバッファをかけていることに注目されたい。相互接続配線構造304の全体のPIP形成には108個(13×8)のPIPを要する。これと対照的に、構造303,305,306および307は、まばらにPIPを設けても全部で200個のPIPを用いる。タイル相互接続配線用線M0−M23からの特定の入力信号へのアクセスへのCLB301の融通性は次の点によって確保される。すなわち:
・任意のCLB出力信号がタイル相互接続配線用線M0−M23の任意のものに供給されるようにCLB出力相互接続配線構造304に全面的にPIPを分布させる。
・各線M0−M23が各近接経路指示マトリックス201内の少なくとも一つの線M0−M23に接続されるように、プログラム可能な経路指示マトリックス201にPIPを分布させてある。
・一つのCLBの各出力線を各近接CLBの少なくとも一つの入力線に接続できるようにCLBマトリックス202にPIPを分布させてある。
・関数発生器F,G,HおよびJを参照用テーブルとして形成し、各参照用テーブルへの全入力信号を相互交換可能にしている。
・さらに、五入力関数を除き、関数発生器F,G,HおよびJを相互交換可能にしている。
このように、この発明によると、上述のPIPまばら分布構造303,305,306および307がチップ表面積を著しく削減し融通性を最大にする。
出力線Q0−Q3への信号は隣接タイル内のCLBの入力線を駆動する。例えば、図2Aの二つのコアタイル101を図2Bに示すように横に並べて配置することにより、コアタイル101bの左側辺縁での出力線Q0はタイル101aの右側辺縁の入力線QE0に接続される。他の線もこれに対応して接続される。したがって、図2A,2Bおよび3と組み合わせて参照すると、CLBマトリックス202c(図2B参照)内のCLB301のCLB出力線X(図3A)は、出力線、すなわちコアタイル101c内のCLBマトリックスすなわちコアタイル101d内のCLBマトリックス202dの入力線QW0dに接続されたマトリックス202cから東に(他の方向にも)延びる出力線Q0cにプログラム可能な形で接続されている。PIPが(上述のとおり)入力線QW0をCLB301のCLB入力線F0およびFBに接続するように備えられている。このようにして、CLBマトリックス202c内のCLB301の出力線からCLBマトリックス202d内のCLB301の入力線に至る経路を、一つの実施例では二つのトランジスタから成る二つのPIPを用いるだけで形成している。
図3Bに示したもう一つの実施例におけるCLB出力相互接続配線構造304内のPIPでは、CLB出力線への信号は二つのトランジスタを通過する必要がある(信号K、すなわち一定電圧または接地信号は四つのトランジスタを通過することに注目されたい)。図3BはCLB301の12個のCLB出力線(X,XQ,XB,Y,YQ,YB,Z,ZQ,ZB,V,VQ,VB)と一つの電源/接地出力信号線Kとを出力線Q0に接続するPIPすべてを実動化するマルチプレクサ構造400を示す。マルチプレクサ構造400はメモリセル、すなわち12個のトランジスタから成る第1のトランジスタバンク351を制御して、そのバンクからどのトランジスタも選択されなかった場合に信号Kを選択するメモリセル31,32および33を含む。メモリセル31,32および33の一つに格納された論理1はバンク351内の三つの信号グループの各々から一つの信号を選択する。メモリセル31,32および33のすべてが論理0を格納している場合は、信号Kがノード30に生ずる。第2段では、メモリセル34および35がANDゲート、AND1−AND4を制御して、出力線VQ,ZQ,YQおよびXQの一つから出力信号を選択しその選択した信号を出力線Q0に供給するようにする。メモリセル31,32および33が論理0を格納していて信号Kを選択する場合は、メモリセル34および35は信号をノード30に供給するようにプログラムしなければならない。すなわち、よい長い経路を辿る一定値K以外の全信号に対して各経路にトランジスタ二つだけが必要となるので、13個のPIPを5個のメモリおよび16個のトランジスタだけで実動化する。線Kへの信号は切換信号ではないので信号経路を長くしても悪影響を受けない。マルチプレクサ構造、すなわちCLB301の13個の出力信号の一つを選択して所定の出力線を駆動するマルチプレクサ構造400が出力線Q0−Q7の各々に設けてある。これら13個の出力信号のいずれにも出力線Q0−Q7の駆動は不可能であるが、マルチプレクサ構造400は13個の出力信号のうち二つ以上を選択できない。このようにして、出力線Q0−Q7でのコンテンションを回避している。マルチプレクサ構造400のもう一つの実施例では、各々が一つのトランジスタを制御する13個のメモリセルが備えてある。このようにして各経路の所要トランジスタは1個だけとし、信号速度を高めている。しかし、この実施例はシリコン表面積を増加させることに注目されたい。
帰還相互接続配線構造305
図3Aに戻ると、帰還相互接続構造305は出力線Q0−Q3を回路配置融通性ある論理ブロックマトリックス202内のCLB入力線F2,G2,H2およびJ2に選択的に接続する。この実施例においてはCLB301からの出力信号はCLB301内の関数発生器F,G,HおよびJの選択されたCLB入力線に帰還できる。帰還相互接続配線構造305はカウンタ(それ自身の信号を帰還する)またはシフトレジスタ(隣接回路の信号を要する)を支援するPIPパターンを備える。上記PIPパターンは、CLB入力信号線F2,G2,H2およびJ2への信号と、CLB入力信号線F0,G0,H0,J0,F1,G1,H1およびJ1への信号、すなわち入力線QW0およびQN3などCLBマトリックス202への他の入力線にも供給される信号との間のコンテンションを防止する。この発明の他の実施例は帰還相互接続配線構造305にPIPの異なる組合せを備える。
通常の入力マトリックス306
通常の入力マトリックス306はタイル相互接続配線用線M0−M23に入力信号を受け、またこれら入力信号をCLB入力線F0−F3,FB,G0−G3,GB、H0−H3,HB,JO−J3およびJBに供給するPIPを備える。PIPパターンにより、この通常の入力相互接続配線構造306内の任意のタイル相互接続配線用線M0−M23への信号が各関数発生器F,G,HおよびJの一つの入力線を駆動できるようにする。関数発生器入力信号は相互に交換可能であるので(参照用テーブル入力は相互に交換可能)、タイル相互接続配線用線M0−M23は関数発生器の二つ以上の入力線に結合する必要はない。この通常の入力相互接続配線構造306の実施例においては、各CLB入力線FB,GB,HBおよびJBが六つのタイル相互接続配線用線M0−M23の一つにある信号で駆動されるようにPIPが備えられている。
この実施例におけるもう一つの基準として、CLB入力線のいずれも9個以上のPIPを備えていない。すなわち、図3Cを参照すると、マルチプレクサ構造401は3個のメモリセル36,37および38のみを用いていて、第1のトランジスタバンク361制御用に可能性ある八つの信号の一つを選択する。より詳細に述べると、メモリセル38は入力線QW0とQN0,M15とM14,M9とM8,M7とM6への対信号の各々の一つを選択する。メモリセル36および37はANDゲートAND5−AND8の入力端子への信号を生じ、これら信号によりCLB入力線F0への単一の信号の選択のための第二のトランジスタバンク362を制御する。
この発明のこの実施例において、PIPのパターンは五つの入力の関数をもたらす(図5Cに関連して上述)。例えば、タイル相互接続配線用線M18またはM19への信号は入力線FBを駆動し、タイル相互接続配線用線M14またはM15への信号は線F0およびG0を駆動し、タイル相互接続配線用線M12またはM13への信号は線F1およびG1を駆動し、タイル相互接続配線用線M16またはM17への信号は入力線F2およびG2を駆動し、タイル相互接続配線用線M20またはM21は入力線F3およびG3を駆動する。この回路配置において、五入力関数は備えずみのPIPパターンにより容易に実動化できる。
図3Aおよび図6を参照してこの発明をさらに述べると、PIPにより、長尺水平線LH0−LH7および長尺垂直線LV0−LV7、ならびに大域(水平および垂直)線GH0,GH1,GV0,GV1からレジスタRV,RZ,RYおよびRXへの接続が関数発生器J,H,GおよびFを経由することなく可能になる。より詳細に述べると、長尺水平線LH0−LH7および長尺垂直線LV0−LV7ならびに大域水平線GH0,GH1および大域垂直線GV0,GV1をタイル相互接続配線用線M0−M23(図6)に選択的に結合する。これらタイル相互接続配線用線は、CLB入力線FB,GB,HBおよびJBに結合した場合は、関数発生器F,G,HおよびJをそれそれバイパスし、信号(中間マルチプレクサ経由で)レジスタRX,RY,RZ,RVにそれぞれ供給する。大域線GH0,GH1,GV0およびGV1もレジスタ制御用相互接続配線構造307経由でレジスタRX,RY,RZおよびRVに選択的に結合されている。タイル相互接続配線用線M0−M23すべてを一つのCLB入力線FB,GB,HBまたはJBに接続するとともに各長尺線から一つのタイル相互接続配線用線M0−M23(図6に関連して後述)への接続を設けることによって、これら長尺線および大域線への信号が所要のレジスタを駆動することを確実にする。この発明においては、このPIPパターンにより、長尺線および大域線すべてへの信号が通常の入力相互接続配線構造306経由で関数発生器F,G,HおよびJへの入力線を駆動することが可能になる。
出力相互接続配線マトリックス308
この実施例において、出力線Q4−Q7はプログラム可能な相互接続配線マトリックス201(図2A)への出力信号をタイル相互接続配線用線M0−M11または線TQ4−TQ7経由で供給する。出力線Q0−Q3はタイル相互接続配線用線M12−M13の選ばれた一つに出力信号を供給する。図3Aに示した実施例においては、出力相互接続配線接続308は各出力線Q0−Q7への信号がタイル相互接続配線用線M0−M23三つ以下を駆動することを可能にする。CLB相互接続配線構造304の全面的PHP分布がCLB301の任意の出力線をタイル相互接続配線用線M0−M23の任意のものに接続することを可能にする。通常の入力相互接続配線構造306は出力線Q0−Q3への選ばれた帰還信号をCLB301に供給する。
レジスタ制御用相互接続配線構造307
クロック線CLK、クロックイネーブル線、リセット線および三状態線TSを、選ばれたタイル相互接続配線用線M0−M23への供給信号(プログラム可能な経路指示マトリックス201からの)により駆動できる。また、低スキュー制御のためにクロック線CLKを大域水平線GH0およびGH1への信号または大域垂直線GV0およびGV1からの信号により直接に制御する。
コンテンションなし
この発明によると、所定のCLB入力線上の一つのPIPがオンにプログラムされた場合、そのCLB入力線上の他のPIPはオンになってはならない。例えば、入力線QW0とCLB入力線F0との交点のPIPをオンにプログラムすると(すなわち、入力線QW0への信号がCLB入力線F0を駆動する)、タイル相互接続配線用線M6,M7,M8,M9,M14,M16および入力線QN0上のPIPはオフの状態に留まり、CLB入力線F0上のコンテンションなしを確実にする。通常は、コンテンションの防止は、一つの入力線上のどのPIPをオンにするかを選ぶ簡便なデコード方法の利用、または一つの入力線上で二つ以上のPIPがオンになるのを避けるためのメモリセルプログラム用ソフトウエア内のルールの利用によって達成される。他の実施例では、代替的な入力選択手段が可能である。例えば、一つの実施例では、各PIPをオンにするか否かを特定するように一つのメモリセルをロードする。
プログラム可能な経路指示マトリックス
図6は図2Aのプログラム可能な経路指示マトリックス201を示す。図6ではCLBマトリックス202内のすべてをPIPを一つの線への信号の流れを表わす三角形で示してあるが、プログラム可能な経路指示マトリックス201内の大部分のPIPは両方の線への信号の流れを表わす白ヌキの円で示してある。例外は、線TQ4乃至TQ7(図3Aの三状態バッファブロック302からの出力線)を長尺水平線LH0−LH7および長尺垂直線LV0−LV7に接続するPIP、および大域信号線GH0,GH1,GV0,GV1からの信号をタイル相互接続配線用線M0乃至M3に送るPIPである。
プログラム可能な経路指示マトリックス201には、大域線、長尺線、2倍長線および1倍長線が延びている。これら線の各々が、選ばれたタイル相互接続配線用線M0−M23に接続される。プログラム可能な経路指示マトリックス201は、近接タイル内のプログラム可能な経路指示マトリックスへの接続を、四つの方位方向に延びる1倍長線、すなわち1倍長北線N1−N11、1倍長東線E1−E11、1倍長南線S1−S11および1倍長西線W1−W11経由で形成する。タイル1枚隔ったプログラム可能な経路指示マトリックスへの接続は、2倍長北線DN0およびDN6、2倍長東線DE0およびDE6、2倍長南線および2倍長西線DW0およびDW6(図2A参照)で形成する。タイルを横切って延びる長尺垂直線LV0−LV7および長尺水平線LH0−LH7の各々はタイル相互接続配線用線M0−M23の一つに接続可能である。
図6に示したPIPの特定のパターンはまばらであるが信号転送性には優れている。より詳細に述べると、プログラム可能な経路指示マトリックス201はこの実施例では124個のPIPを含むに留まり、図6中の線全部の各々をもう一つの線に接続した場合に生ずる約4200個のPIPに比べてまばらである。しかし、このPIPパターンは、十分な中間PIPを用いれば任意の線を他の任意の線に接続できることを確実にする。例えば、図6に示すとおり、西線W1は東線E1に二つのPIP、すなわちタイル相互接続配線用線M1をこれら二つの線に接続する二つのPIPをオンにすることによって接続可能である。これと対照的に、西線W1と東線E2との間の接続には8個のPIPと9個の線とを要する。すなわち、西線W1をタイル相互接続配線用線M1、東線E1、タイル相互接続配線用線M20、西線W9、タイル相互接続配線用線M9、北線N9、タイル相互接続配線用線M21、および東線E2を通じて接続することを要する。この長さの経路は通常は望ましくないが、遅延が問題でない用途もある。それらの用途では、そのような経路を利用できることが設計の完成を可能にする。PIP二つだけの単純な経路が、線N1,S1,E1およびW1をタイル相互接続配線用線M1へ、線N2,S2,E2およびW2をタイル相互接続配線用線M2ほかへ相互接続配線用線M5経由でそれぞれ接続するのに利用できる。タイル相互接続配線用線M6は2倍長線DN6,DS6,DE6およびDW6に接続される。タイル相互接続配線用線M7乃至M11は北、南、東および西に延びる対応番号の1倍長線に接続される。
タイル相互接続配線用線M12−M13は動作速度の低下を最小に留めて信号転送融通性を高める交叉接続パターンを実動化し、まばらなPIP分布が貴重なチップ表面積節約を達成する。例えば、タイル相互接続配線用線M12は2倍長北線DN0、南線S3、東線E5、西線W1に接続され、タイル相互接続配線用線M15は北線N3、東線E8、2倍長南線DS6、および西線W4に接続される。このようにして、この発明はPIPの数を最小にする所定パターンを提供し、任意の線を他の任意の線に接続することを可能にする。すなわち、この発明はシリコン表面積を最小化したまま経路を常に提供することを確実にする。
経路指示マトリックスモデル
タイル相互接続配線用線M0−M23の各々は五つまたは六つの他の線に接続可能である。すなわち、図7Aに示すとおり、タイル相互接続配線用線M0−M23の各々は五つまたは六つの尖端のある星印で表わしてある。このモデルにおいて、8個のタイル相互接続配線用線M0乃至M7は、北線N0−N3、東線E0−E3、南線S0−S3および西線W0−W3の選ばれた一つにプログラム可能な形で接続される。タイル相互接続配線用線M0乃至M3は同じ数字サフィックスの北、南、東および西線に接続可能である。タイル相互接続配線用線M4乃至M7は北、南、東、西線のスタガーした一つに接続可能である。このようにして、タイル相互接続配線用線M0−M3は同サフィックスの北、東、南および西線の相互接続手段を提供し、相互接続配線用線M4−M7は四方位方向からの線の交叉接続の機会を提供する。また、タイル相互接続配線用線M0−M7は、プログラム可能な経路指示マトリックス201を回路配置融通性ある論理ブロックマトリックス202(図3A)に接続する手段を提供する。
経路指示マトリックスおよび論理ブロックの接続可能性モデル
図7Bはこの発明の「星状構成」を示す。星状構成では、各CLBは特定の星状部(すなわち、プログラム可能な経路指示マトリックス)、すなわち他の星状部201およびそれを経由してさらに他のCLB301に延びる線が放射状に出ている星状部201と関連づけてある。図7Bでは2倍長線および1倍長線が示してある。他の実施例では、これ以外の長さが線の星状構成に用いてある。このように、この発明の星状構成は関連のCLBと本装置の他の部分との良好な接続可能性を確実にする。
大域相互接続配線構造
図8はチップ100(図1)の角部近傍に配置された大域信号パッドP113,P114,P115およびP116からチップ100の四つの辺の近傍に通常配置される大域信号線GTL,GTR,GBRおよびCBLにそれぞれ至る固定接続を示す。各大域信号線はコアタイル101の各行または列経由で垂直または水平に延びる複数の線にプログラム可能な形で接続される。例えば、左上の大域信号線GTLは大域垂直線GV1−a乃至GV1−nにPIP PV1−a乃至PV1−nをそれぞれ経由して、すなわちコアタイル101の各列あたり一つのPIPを割り当てて接続できる。右上の大域信号線GTRはPIP PH0−a乃至PH0−nをそれぞれ経由して、すなわちコアタイル101の各列あたり一つのPIPを割り当てて、大域水平線GH0−aに接続できる。右下の大域信号線GBRはGV0−n経由で大域垂直線GV0−a乃至GV0−nに接続できる。最後に、左下の大域信号線GBLは大域水平線GH1−a乃至GH1−nに接続可能である。GVまたはGHで始まる参照符号を付けた大域垂直線および大域水平線は、図2A,3および7に関連して述べたとおり、大域接続線の通り抜けるコアタイル101内のプログラム可能な経路指示マトリックス201およびCLBマトリックス202に接続可能である。
図8にも示すとおり、チップ100(図1)の辺縁タイル経由で延びる長尺線LV0L,LV7L,LH0T,LH7T,LV0R,LV7R,LH0BおよびLH7B(図8には簡略化のために示してないが図10A乃至10Dには示してある)も上記大域線に接続可能である。より詳しく述べると、右下の大域信号線GBRはPIP PGBR0およびPGBR7経由で下側水平長尺線LH0BおよびLHTBへの信号で駆動できる。左下の大域信号線GBLはPIP PGBL0およびPGBL7経由で左下バッファBBL経由の左垂直長尺線LV0LおよびLV7Lへの信号で駆動できる。チップの上辺および右辺には等価の接続が設けてある。左、上、右および下側長尺線はPIP PBR7などのPIP経由で互いに接続可能である。長尺線LV0L,LV7Lなどはチップ周辺の任意のパッドからの信号で駆動されるので(図10A−10Dに関連して後に述べる辺縁タイル103−106経由で)、どのパッドも大域信号を供給できる。さらにコアタイルのいずれも、辺縁タイル103−106経由で大域信号を供給できる。
選択自由の長尺線分割器
図1乃至9は部分的に線経由で配置可能な長尺線分割器を含むこの発明の一実施例を示す。各々が上側辺縁タイル104、六つのコアタイル101、および下側辺縁タイル106から成るタイル列二つを図9に示す。長尺垂直線LV0−LV7がコアタイル101全部を横断し、二つの列の各々において辺縁タイル104および106で終端する。長尺垂直線LV0−LV7は辺縁タイル104および106内のタイル相互接続配線用線M0−M15および線TQ0−TQ3の選ばれた一つに図10A−10Dに関連して従来のとおり接続可能である。さらに、図2Aおよび図6について上に述べたとおり、長尺線LV0−LV7はプログラム可能な経路指示マトリックス201内の選択された線に接続可能である。簡略化のために、水平長尺線LV0−LV7は図9には示してないが図2Aおよび図6には示してある。
図9に示した実施例において、三つの上側コアタイル101内の垂直長尺線LV0−LV7は長尺線分割器LLSにより三つの下側コアタイル101内の部分から分離されている。部分拡大図は、一つの実施例における長尺線分割器LLSが制御ゲートCGへのロウ電圧によりオフになるn型トランジスタを含み、これによって垂直長尺線を上側および下側セグメントに分割していることを示している。長尺線分割器LLSは大型チップの実施例において、上側および下側長尺線をチップ上の位置によって互いに別々に駆動できるようにするために通常用いる。図1に示すとおり、水平長尺線LV0−LV7もチップ100の中心で長尺線分割器LLSにより分割されている。他の実施例においては、長尺線の分割器LLSおよびLLSAなどのいくつかの長尺線分割器と同じ長尺線沿いに設けるか、長尺線分割器LLSBを一つの辺縁タイル内の長尺線の一端と隣接辺縁タイル内の長尺線の一端との間に設け、これら長尺線をプログラム可能な形で互いに接続する。
図2Aの実施例用の辺縁タイル
図10A−10Dは図2Aに示した辺縁タイルをより詳細に示す。より詳細に述べると、図10A−10Dは左側辺縁タイル103、上側辺縁タイル104、右側辺縁タイル105、および下側辺縁タイル106をそれぞれ示す。これらの実施例における各辺縁タイルはパッドPV、PZ、PY、およびPXの少なくとも一つに通常接続されるが、必ず接続される訳ではない。図1を参照して下により詳細に述べる他の実施例では、どのパッドにも接続されていない辺縁タイルが少なくとも一つある。
図10Aにおいて、四つのパッドPV、PZ、PY、およびPXが入力/出力(I/O)デバイスIOBV、IOBZ、IOBY、およびIOBXをそれぞれ経て辺縁タイル103に接続されている。I/OデバイスIOBV、IOBZ、IOBY、およびIOBXの各々は三つの線により辺縁タイル103に接続される。例えば、I/OデバイスIOBVはI/O入力線IV、I/O出力線OV、および三状態線TSVにより辺縁タイル106に接続される。出力線OVによりパッドP42に供給される出力信号はI/O三状態線TSVにより制御されることに注目されたい。同様の線がI/OデバイスIOBZ、IOBY、およびIOBXにも備えられている。
PIP全分布のI/O入力相互接続配線構造1001によって、I/O入力線IV、IZ、IY、およびIXへのI/O入力線への信号で辺縁タイル入力線QIN0−QIN3を駆動できる。隣接の出力相互接続配線構造1004によって、コアタイル101から出力線QE0−QE3への信号のパッドPV、PZ、PY、およびPXへの供給が可能になる。I/O出力相互接続配線構造1002によって、隣接コアタイルからの信号(辺縁タイル103では北線N0−N7、南線S0−S7、ならびに東線E1−E5およびE7−E11から供給)、並びに長尺線LH0−LH7およびLV0−LV7および2倍長線DH0、DH6への信号のパッドへの供給が可能になる。I/O出力相互接続配線構造1002はほぼ完全なPIP分布を備えており、チップ内部の他の点から左側辺縁タイル103に入来する信号を、チップの他の部分から左側辺縁タイル103に至る線と辺縁タイル相互接続配線用線M0−M15の一組との間のまばらな通常の相互接続配線構造1006にも拘わらず、パッドPV、PX、PY、およびPZの任意のものに導く。
中間相互接続配線構造1003はタイル相互接続配線用線M0−M15M0−M15の一つからくる信号を辺縁タイル入力線QIN0−QIN3の一つに導き、対応の出力線Q0乃至Q3にバッファ経由で導き、三状態バッファブロック302経由で対応線TQ0−TQ3に供給する。次に、信号を水平長尺線LH0−LH7および垂直長尺線LV0−LV7に供給することができる。このように辺縁タイル入力線QIN0−QIN3への信号は出力線Q0−Q3を直後に、線TQ0−TQ3を三状態バッファブロック302経由で駆動する。
帰還相互接続配線構造1005は出力線Q0−Q3への信号がタイル相互接続配線用線、すなわち北線N0−N7、南線S0−S7、東線E1−E11、2倍長線DE0、DE6、DH0およびDH6に選択的に接続されるとともに長尺線LV0−LV7に接続された相互接続配線用線M0−M15を駆動するようにする。このようにして、辺縁タイル103は、チップ100および隣接コアタイル101チップへの外部接続を有するパッドへの接続、および隣接辺縁タイル(または下に詳述する隣接角部タイル)への接続を可能にする。パッドPV、PZ、PY、およびPXは図1に示すパッドP42、41、40および39をそれぞれ示す。
図10B、10C、および10Dは辺縁タイル104、105、および106をそれぞれ示す。これらタイルは向きを除いて同一構造であり図10Aに示したものと同一の参照数字を付けてあるので、図10B、10C、および10Dに示したインタフェース構造の詳細はここには記載しない。
オプションのパッド用のI/Oインタフェース
図10Cは接続ずみおよび未接続のパッドの組合せを示し、それによってマスクレベルで実現可能な融通性を図解する。
この実施例において、一つの未接続のパッドPZおよび接続ずみのパッドPV、PY、PXは、図1においてP6、P7およびP8(辺縁タイル105に接続されているの)で表した回路配置を実働化する。図1に示すとおり、各辺縁タイルんは所定数のパッドが接続されている。例えば、パッドP17は辺縁タイル106に接続された唯一のパッドである。したがって、図10Dに示すとおり、パッドPV、PZ、PY、およびPXのうちの一つだけ(この実施例ではパッドPV)が辺縁タイル106に接続されている。
図10Cに戻ると、パッドPZおよびそれの入力/出力バッファ構造IOBZは除去され、チップ上のパッドの合計数の削減によってチップ全体を小さくしている。入力線IZおよび出力線OZは、実施例によっては外部タイル105の外側になる領域で短絡させてある。このようにして、全タイル105を、パッドPV、PZ、PY、およびPXの数に関わりなく、同様にレイアウトする。図1に戻ると、パッドP6、P7およびP8は一つの辺縁タイル105に接続してある。図10Dにおいては、パッドPYおよび関連の構造IOBYおよびESDYは備えられていない。すなわち、図10Dの実施例は図1のパッドP26乃至P28を表している。この発明の他の実施例では、他のパッドは四つのパッド全部に除去がおよぶまで除去される。例えば、図1はパッドの接続を全く受けないいくつかの辺縁タイルを含んでいる(辺縁タイル103のうちの二つ、辺縁タイル104のうちの一つ、および辺縁タイル105の一つにはパッドは一つも接続されていない)。
角部タイル
図11A乃至11Dはチップ100(図1)の四つの角部タイル113、114、115および116をそれぞれ示す。図11AはIEEE 1149.1に適合した慣用の境界走査ブロックBSCANを含む。同ブロックについては、カリフォルニア州 95124、サンホゼ、ロジック ドライブ 2100所在の ジリンクス インコーポレーテッド(Xilinx Inc.)発行 ルイス モラレス(Luis Morales)著のジリンクス社応用ノート「XC4000 デバイスにおける境界走査」に詳細に記載されており、ここにそのノート全体を参照してこの明細書に組み入れる。図11Aにおいては、左上角部タイル113は、1倍長東線E0−E7から1倍長南線S0−S7にそれぞれ至る固定接続、および長尺水平線LH0−LH7から長尺垂直線LV0−LV7にそれぞれ至るプログラム可能な接続を含む。さらに、図11Aは境界走査ブロックBSCANのプログラム可能な接続を上記1倍長線および長尺線に供給する相互接続配線構造1101の一つの実施例を示す。角部タイル113は大域クロック信号SGCK1を供給する外部ピンP43へのプログラム可能な接続を含む。
図11Bに示した角部タイル11はその回路配置が角部タイル113(図11A)と同一である。より詳細に述べると、タイル114(図11B)は1倍長西線W0−W7を1倍長南線S0−S7にそれぞれ接続する固定接続と、長尺水平線LH0−LH7を長尺垂直線LV0−LV7にそれぞれ接続するプログラム可能な接続とを含む。図11Aおよび図11Bの両方において長尺垂直線LV0は長尺水平線LH0に接続されるが、タイル113および114のレイアウトのためにこれらの線は図の別の位置に描かれており、したがって角部タイル113および114は図11Aおよび図11Bで外観が異なっている。角部タイル114はクロック信号SGCK4供給用のクロック入力ピンP1を含む。角部タイル114は、チップ100の回路配置中にビット計数に用いれられる慣用の発振/計数回路DIVと上述の1倍長線および長尺線との間のプログラム可能な接続を提供する相互接続配線構造1102を含む。一つの実施例においては、回路DIVは、チップ内蔵発振器またはカウンタ分周器を提供するためにチップ動作中に用いられる。回路DIVは内部発振器信号またはユーザの供給する信号を分周するように回路配置される。角部タイル114は境界走査更新信号、すなわち標準の境界走査回路の一部の出力(この回路の大部分はタイル113内に位置する)信号BSUPDをさらに含む。この実施例において、信号BSUPDは、西線W2およびW3(したがって西線S2およびS3)および長尺水平線LH2およびLH3(したがって長尺垂直線LV2およびLV3)にプログラム可能な形で供給される。
図12は図11Bの発振器/カウンタ回路DIVを実働化する回路の一つの実施例を示す。二つの出力タップOSCIおよびOSC2が備えてあり、これら発振器は原入力周波数の分周出力である12の周波数を生ずるように回路配置できる。内部発振器OSCはNANDゲート1231に発振器信号を供給する。NANDゲート1231はメモリセルOSCRUNによりイネーブルされる。イネーブルされると、発振器OSCからの出力信号はマルチプレクサ1201に供給される。
メモリセル1202は、マルチプレクサ1201が内部発振器OSCからの出力信号を供給するか、1倍長西線W0−W3の一つへの信号(1倍長南線S0−SWへの信号とそれぞれ等しい。図11B参照)、または長尺水平線LH0−LH3の一つへの信号(長尺垂直線LV0−LV3への信号と等しい)を供給するかを決める。マルチプレクサ1201はフリップフロップ1214乃至1220による分周にかけられる出力信号を供給する。
マルチプレクサ1225および1226はフリップフロップ1227および1228のデータ入力端子への分周比選択入力をそれぞれ供給する。これらフリップフロップの出力はタップOSC1およびOSC2への信号として供給される。フリップフロップ1227および1228は原入力信号からクロックを受け、マルチプレクサ1225および1226からの出力信号のスキューを低下させる。マルチプレクサ1225はメモリセルOSC1AおよびOSC1Bによる制御を受けて、切換信号、すなわち4、16、64または256で分周したマルチプレクサ1201からの入力信号となり得る信号を供給する。メモリセル1203内の設定に応じて、マルチプレクサ1204はマルチプレクサ1201からの原クロック信号出力を送出でき、またはフリップフロップ1213からの出力である分周信号(原周波数を512で分周したもの)を供給できる。マルチプレクサ1204をマルチプレクサ1201の出力信号を出力するように設定した場合は、原クロック信号が2、8、32または128で分周された形でマルチプレクサ1226から供給される。マルチプレクサ1204がフリップフロップ1213からの分周信号を供給するように設定されている場合は、マルチプレクサ1226はマルチプレクサ1201への原入力信号の周波数を1024、4,096、16,384または65,536で分周した出力を供給する。このように、出力タップOSC1およびOSC2への信号は多数の異なる選択周波数で発振するようプログラムされる。
図11Cは右下角部タイル115を示す。角部タイル115は長尺水平線LH0−LH7および長尺垂直線LV0−LV7をプログラム可能な形でそれぞれ接続し、北線N0−N7を西線W0−W7に接続する。角部タイル115は、プログラム可能な相互接続配置構造、すなわち立上げブロックSTARTUPを北線N0−N7(したがって西線W0−W7)および長尺垂直線LV0−LV7(したがって長尺水平線LH0−LH7)にプログラム可能な形で接続する相互接続配線構造1103をさらに含む。立上げブロックSTARTUPは信号を逐次配列しチップ100(図1)の作動開始に伴う立上げ機能のタイミングを制御する。
立上げ機能の期間には、回路配置モードから動作モードに動くのに三つに事態が必要である。すなわち、大域三状態信号端子GSRへの信号の放出、大域リセット信号端子GSRへの信号の放出、および負荷完結端子DONEへの信号(全ての回路配置ビットがFPGA内の適切な位置にロードされたことを表示する)の放出である。立上げブロックSTARTUPは、これらの信号の放出の順序およびこれら信号のタイミング(例えば、各信号間をクロックサイクル一つ、二つまたは三つ分だけ互いに分離するなど)をユーザがプログラムすることを可能にする。
図11Dは1倍長線および長尺線を他の三つの各部タイルと同様に接続して構成した左下タイル116を示す。左下角部タイル116は読戻しユニットRDBKも備える。読戻しブロックRDBKはユーザが回路配置メモリの内容を任意のデータ線に読み出し、また読戻しユニットRDBKのデータ線端子経由で任意の外部接続ピンに読み出すことを可能にする。読戻しユニットRDBK内のトリガー端子TRIGは、回路配置データ1行分を回路配置メモリからその回路配置メモリをロードした同じシフトレジスタにコピーすることをトリガーする信号のためのものである。クロック端子CLKへの信号は前記データの線DATAへのシフトアウトを制御する。読み出し中端子RIPへの信号は、データのシフトアウト中にトリガー端子TRIGからのもう一つの信号をチップが送出することを防ぐ。この回路においては、各部タイル116への当初の回路配置経路に応じて、チップ全体用の回路配置データがチップの動作中に外部ピンの任意の一つにチップからシフトアウトされる。
これまでの説明から、この発明のこれ以上の多数の実施例が当業者には明らかになろう。例えば、上の説明はコアタイルを方形または正方形にする実施例に関しているが、もう一つの実施例では六つの辺を有するタイルを含む。
上述のとおり、コアタイルは同一である必要はない。論理内容の互いに異なる一組のタイル設計も提供できる。タイル設計が共通境界制約に従う場合は、タイル設計を種々のパターンで組み合わせることによりチップを形成できる。好結果を得るには、各タイル設計がタイル内で良い信号分布を備えなければならない。タイルの経路指示マトリックスは入来信号を論理ブロック入力端子に効率的に分散させ、論理ブロック出力信号をタイル周縁に導かなければならない。RAMメモリだけでロジックを含まないタイルもあり、ロジックもメモリもなしで経路指示手段を含むタイルもある。さらに、入力/出力パッドを物理的に内部に含むタイルも設計でき、そのパッド付きタイルの設計はロジックへの分散アクセスを達成する他のタイル設計と組み合わせることができる。それら他の実施例もこの発明の範囲内に含めることを意図するものである。この発明を特許請求の範囲に記載する。TECHNICAL FIELD OF THE INVENTION
The present invention relates to a programmable logic device formed in an integrated circuit, and more particularly to a structure of a programmable logic device having a logic block in a repetitive pattern.
Background of the Invention
Field programmable gate arrays (FPGAs) are well known in the art. An FPGA includes an array of flexible logic blocks (CLBs) interconnected in a programmable manner to provide a user-desired logic function. U.S. Pat. No. 4,870,302, reissued as U.S. Pat. No. Re. 32,363, describes a well-known FPGA structure and is incorporated herein by reference. U.S. Pat. Nos. 4,758,745 and 5,243,238 and published international application WO 93/05577 also describe other FPGA structures, which are hereby incorporated by reference. Further incorporated herein by reference, Gillins, Inc., Logic Drive 2100, San Jose, CA, 95124, San Jose, CA. The 1993 Data Book "Programmable Logic Data Book," published by Lee Corporation, has implemented numerous FPGA structures. Some products have been described.
An FPGA is considered a general-purpose device, that is, a device that can perform any one of a plurality of functions, and is programmed by an end user to perform a desired function. Because of this design flexibility, general purpose FPGAs include a large number of connecting lines and transistors that remain unused in many applications. FPGAs also include additional devices that facilitate the implementation of programs to perform specific functions. These additional devices disadvantageously increase the required surface area on the FPGA chip. It is commercially important to reduce the cost of FPGAs to compensate for this addition. One way to reduce costs is to reduce the versatility of the FPGA, that is, to eliminate some of the less frequently used layout options. However, reducing the number of layout options reduces the value of FPGAs to customers who may not be able to predict which options will be required. Therefore, there is a need to reduce the surface area while keeping the circuit layout options at a maximum.
Summary of the Invention
A field programmable gate array (FPGA) structure according to the present invention comprises tiles that can be arranged repeatedly. Each tile includes a programmable routing matrix and a topology flexible logic block matrix. The topology flexible logic block matrix can be programmably connected to the programmable routing matrix and the topology flexible logic block matrix in adjacent tiles. The programmable routing matrix can be programmably connected to the programmable routing matrix adjacent to the tile and the long line across the tile. In this way, each tile comprises a combination of logic, connections to adjacent tiles, and connections to the entire routing structure. A plurality of these tiles are connected to form an array of tiles, thereby forming functional units of the FPGA chip. This structure produces devices of different sizes simply by joining together different numbers of tiles, eliminating the need for expensive and time-consuming design efforts. Also, in accordance with the present invention, the programmable routing matrix and circuit layout flexible logic block matrix minimize the number of programmable interconnect points (PIPs), reduce chip surface area and maximize overall chip density. To Further in accordance with the present invention, proper positioning of the PIP ensures the flexibility of required routing and maximizes the functionality of the FPGA.
The tile structure comprises a set of signal lines going outward from the tile at the boundary. Thus, for example, an outgoing signal line on the right side of one title is connected to an outgoing signal line on the left side of another tile. In one embodiment, adjacent tiles are identical and form a repeating pattern. In another embodiment, adjacent tiles are not identical to one another, but at least a majority of the tiles have signal lines that meet exactly at tile boundaries. That is, a chip can be formed as an array of modular units that match at the boundary, and the flexibility of tile design that can be used in a plurality of chip designs can be easily increased.
[Brief description of the drawings]
FIG. 1 shows an FPGA chip including components according to the present invention.
FIG. 2A shows a single core tile included in most of the FPGA chips of FIG.
FIG. 2B shows four adjacent core tiles of the type shown in FIG. 2A.
FIG. 3A illustrates a circuit layout flexible logic block matrix that is part of the tile of FIG. 2A.
FIG. 3B shows a multiplexer structure that implements all PIPs that connect the output lines of a flexible logic block to one output line.
FIG. 3C illustrates one embodiment of a multiplexer configuration for driving a flexible circuit layout input line.
FIG. 4A shows a logic block in which the circuit of the matrix 4 of FIG. 3A can be arranged.
FIG. 4B shows the tri-state
FIG. 4C shows the output enable
FIG. 4D shows an embodiment of the lookup table of the F, G, H and J function generators of FIG. 4A.
FIG. 4E shows another lookup table embodiment of the F, G, H and J function generators of FIG. 4A.
FIG. 4F shows one Carnot map for the look-up table function generator of FIG. 4D or 4E.
Figure 4G can be implemented with the look-up table function generator of Figure 4D or 4E2 16 One of the logical functions of is shown.
5A to 5C show examples in which the flexible circuit block of FIG. 4A is applied to a carry chain, a cascade-connectable decoding circuit, and a five-input combination function, respectively.
FIG. 6 shows the programmable routing matrix of FIG. 2A.
FIG. 7A shows an example of the connection possibilities provided by the programmable routing matrix of the present invention as shown in FIG.
FIG. 7B shows an example of the connection possibilities obtained with the combination of the programmable routing matrix of FIG. 6 and the tile structure of FIG. 2A or 2B.
FIG. 8 shows connections from global signal pads near the angle of the chip to global signal lines, that is, global signal lines extending to the four edges of the chip and connected to global lines for driving the core tile.
FIG. 9 shows a long line divider provided on a long line in one embodiment of the present invention.
10A-10D illustrate left, upper, right, and lower edge tiles, respectively, according to one embodiment of the present invention.
11A-11D show the upper left, upper right, lower right, and lower left corner tiles of the same embodiment, respectively.
FIG. 12 shows a logic diagram of one embodiment of the oscillator used in FIG. 11B.
Detailed description of the drawings
The following notation is used throughout the drawings. That is, the small black dot at the intersection of the two lines represents a fixed electrical connection between the two intersecting lines. An open circle surrounding the intersection of the two lines represents a programmable connection between the two lines (eg, a pass transistor that turns on to form a connection). The open circle represents the bidirectional signal flow between the two lines. The open triangle between the two lines represents a programmable connection with the signal flow towards the line pointed to by the vertex of the triangle (in which case the signal is, of course, over the entire length of the line; If the orientation triangle also points to the same line, the same signal flow results). According to one embodiment of the present invention, the programmable connections are formed using interconnect points (PIPs), each programmable comprising at least one transistor.
A triangle that overlaps one line that does not intersect another line represents a buffer that produces a signal flow in the direction indicated by the vertex of that triangle. Except for global lines ENOUT and ENLL (shown in FIG. 3A), lines that terminate inside the tile or matrix structure (ie, do not extend to the boundaries of the tile or matrix) physically terminate inside that tile. The line extending to the boundary of the tile or matrix is connected to a line on an adjacent tile, that is, a line that comes into contact with the joining of the two tiles. Some of the lines that extend to the edge of one tile and thus reach an adjacent tile are renamed at that tile boundary. The lines in the circuit arrangement flexible logic block matrix and the programmable routing matrix are given the same reference numerals to indicate the physical connection between the lines.
FIG. 1 shows an
FIG. 2A shows a
There are twelve lines with suffixes 0-11 extending westward from the
FIG. 2B shows four
Returning to FIG. 2A, a circuit layout flexible logic block (CLB)
Circuit arrangement flexible
FIG. 3A shows the circuit layout flexible logic block (CLB)
Sparse PIP distribution
Programmable connections are provided using programmable interconnect points (PIPs), each having at least one transistor. As is well known in the art, each transistor occupies valuable area on a chip substrate. Referring to FIG. 3A, in accordance with the present invention, the horizontal and vertical lines within the input
For example, with respect to the input
A circuit layout flexible logic block (CLB) 301 is shown in FIG. 4A. In this embodiment,
Reference table
The operation of the look-up table function generator will be described with reference to FIGS. 4D-4G. These figures are discussed by Freeman inventor U.S. Pat. No. 4,870,302, reissued as U.S. Pat. No. Re. 34,363, which is hereby incorporated by reference.
FIG. 4D shows a look-up table, i.e., a look-up table, which in this embodiment comprises a 16-bit RAM, which outputs signals in response to any one of 16 possible combinations of four input signals. Will occur. More specifically, input signals A and B control the X decoder to select any one of four columns of a 16-bit RAM. Similarly, input signals C and D select any one of four rows of a 16-bit RAM. The 16-bit RAM produces an output signal representative of the bit at the intersection of the selected row and column. There are 16 such intersections, and therefore 16 such bits. So 16 bits is 2 16 Will result in a possible combination of That is, when a four-input NOR gate is simulated by a 16-bit RAM, the Carnot map for this look-up table is as shown in FIG. 4F. In FIG. 4F, all bits other than the bit at the intersection of the first row (representing A = 0, B = 0) and the first column (representing C = 0, D = 0) are “0”. If a logic "1" output signal is required for A = 1, B = 0, C = 0, D = 0, then store a logic "1" at the intersection between the second row and the first column. If a logic "1" is required for A = 0, B = 0, C = 0 and D = 0, and A = 1, B = 0, C = 0 and D = 0, the first column and first row and Logic "1" is stored at each intersection with the second row. The logic represented by loading the look-up table in this manner is shown in FIG. 4G. That is, the reference table in FIG. 16 Represents the precise and simple implementation of any one of the logical functions.
FIG. 4E shows the configuration of a register that produces any one of the 16 select bits. Each of the registers 0-15, labeled "16 select bits" in the left vertical column, contains a selected signal of logic "1" or "0". By selecting the appropriate combination of signals A, B, C and D and their complements, a particular bit stored in a particular one of the sixteen locations in the sixteen select bit register is provided on output conductor OUT. You. That is, for example, to send the bit in the "1" register to the output conductor, the signals A, B, C, and D are applied to the indicated conductor. To send the signal at the 16th position "15" in the 16 selection bit register to the output conductor, the signal A,
Provide any one of the Noh.
Returning to FIG. 4A, the memory bits in look-up tables F, G, H and J are normally loaded during the circuit layout of the chip, for example via shift registers, or alternatively by address means. In some embodiments, memory bits are loaded during operation of the chip, thereby relocating the active chip. Circuit rearrangement flexible memory arrangements are disclosed in U.S. Pat. No. 5,343,406 to Freeman et al., Assigned to the same assignee as the present invention, which discloses a distributed memory structure and a distributed memory for a circuit arrangement flexible logic array. Methods of Use ", the disclosures of which are incorporated herein by reference.
Function generators F, G, H and J produce outputs on CLB output lines X, Y, Z and V, respectively. These output signals from function generators F, G, H and J control multiplexers C1, C2, C3 and C4, respectively, to produce an accumulated carry output COUT. Multiplexer C1 receives the carry input signal on line C1N, the input signal on line FB, and produces an output signal on line CF. Multiplexer C2 receives its signal on line CF and its input signal on line GB, and produces an output signal on line CG. The multiplexers C3 and C4 are connected in the same manner as the multiplexers C1 and C2. Multiplexer C4 produces an output signal on line COUT from CLB301. For a detailed description of the arithmetic functions, see Bernard E., assigned to the same assignee as this application. See U.S. Pat. No. 5,349,250 to New Invention, "Logic Structures and Circuits for Fast Carry." This patent is incorporated herein by reference.
Each
Usually, periodic voltage resupply to the carry signal is required. In this embodiment, for this voltage re-supply, a voltage re-supply buffer carry path including inverters I121 and I122 is arranged for every four multiplexers or for each
In this embodiment,
As shown in FIG. 4A, four groups of one output signal result from
An unregistered output signal directly from the function generator (provided on CLB output lines X, Y, Z or V).
An alternative based on the CLB input signal, ie the signal from the carry chain, or, in two cases, from the multiplexer supplying the five input function (occurring on the CLB output lines XB, YB, ZB or VB) Unregistered output signal.
Registered output signal that can be loaded by the function generator or one of the signal sources of the alternative output signal (provided on CLB output lines XQ, YQ, ZQ or VQ).
For example, the CLB output line X receives an output signal from the function generator F without direct register storage. The CLB output line XB is the signal on the CLB input line FB or the output signal of the multiplexer S1 (as determined by the multiplexer B1), ie, the carry output signal CF or the five-input function generator output signal from the multiplexer FG (described later with reference to FIG. 5C). (See description). The CLB output line XQ is the register stored output signal from register RX, ie, the D input signal, as determined by multiplexer D1, either directly from function generator F (the signal on output line X) or from the alternative output signal on line XB. Receive the output signal from the register RX. Finally, the output line K supplies a constant value signal that goes high or low depending on the selection of the multiplexer PG.
In the embodiment of FIG. 4A, multiplexers D1-D4 provide output signals from function generators F, G, H and J (CLB output lines XV) or output signals from multiplexers B1-B4 to register RX-RV. Supply each. When multiplexers S1 and S3 are set to transfer the carry signals from multiplexers C1 and C3, respectively, multiplexers B1-B4 select either the input signal on CLB input line FB-FJ or the output signal on multiplexer C1-C4. I do.
Multiplexers C1-C4 perform a wide range of AND and OR functions in addition to being used for carry functions in arithmetic operations. To perform the AND function, a logic "0" is added to the line FB and the multiplexer C1 is connected to generate an AND output of the F function generator output signal on the CLB output line X and the carry input signal on the line C1N. Program. On the other hand, in order to perform the OR function, a logic "1" is added to the CLB input line FB, and a multiplexer is formed so as to generate an OR output of the complement of the output signal of the CLB output line XL and the carry input signal on the line C1N. Program C1. According to the antilog table structure, the OR output is obtained by loading the inverted value into the antilog table. The functions of multiplexers C1-C4 and their interaction with the logic blocks are described in more detail in U.S. application Ser. No. 08 / 116,659 [M-2565], which is hereby incorporated herein by reference.
Application example of CLB301
FIGS. 5A-5C illustrate application examples using the CLB301 (detailed above with reference to FIG. 4A) to form a carry chain, a
In FIG. 5A, CLB301 is a half value sum H3H2H1H0 (where H3, H2, H1 and H0 are four bits of a 4-bit half value sum) of one number A3A2A1A0 and B3B2B1B0, and a carry bit C3C2C1C0. Another CLB (not shown), preferably located to the right or left of the tile shown, is used for the completion of the addition. Operands A3 and B3 are applied to any two of CLB input lines J0-J3. Operands A2 and B2 are applied to any two of CLB input lines H0-H3. A1 and A2 are applied to any two of the CLB input lines G0-G3. A0 and B0 are applied to any two of the CLB input lines F0-F3. Keep unused lines high or low. Each of the function generators F, G, H, and J is loaded with a true value table of the XOR function (half-value sum of input signals). Take into account any values added to input lines not used in the antilog table. If there are lower order bits than those applied to function generator F, the carry output of those bits will result in carry input line C1N. Multiplexers C1, C2, C3 and C4 are controlled by the output signals of function generators F, G, H and J, respectively. More specifically, if the function generator output signal is a logic one (signals A and B are not equal), the carry input value is sent to the carry output of that bit and the function generator output is a logic zero. (Signals A and B are equal to each other), the value of signal A or signal B is sent to the carry output of that bit. Multiplexers B1-B4, S1 and S3 send the carry output of each bit to that bit's "B" CLB output line (i.e., C1B output lines XB, YB, ZB and VB). The function generator output signal for each bit (occurring on CLB output lines X, Y, Z and V) is provided as the half value sum for that bit.
In another application shown in FIG. 5B, the
In another application shown in FIG. 5C,
Loading the appropriate antilog table into the two related function generators F and G results in the desired function of the five input signals. More specifically, in one embodiment, the function generators F and G store a 32-bit look-up table (ie, two 16-bit look-up tables). In this way, a number of functions are alternatively generated by loading different values into the memory cells for forming the function generator truth table and the control multiplexers FG and HJ.
FIG. 4B shows a schematic diagram of a tri-state buffer block 302 (FIG. 3A) that includes tri-state buffers B4-B7. The names of the lines are the same as those used in FIG. 3A. Output signals from AND gates A4-A7 control tri-state buffers B4-B7, respectively. For example, when AND gate A5 produces a logic zero output signal, buffer B5 is enabled, producing an output signal through the buffer on line TQ5, ie, a signal that matches the corresponding input signal on line Q5. On the other hand, when a
The ENLL signal is a global signal supplied to all
When the buffers B4-B7 are used as a voltage resupply buffer (always enabled) for supplying a signal to a long line during operation, a low value is set in the memory cells MM4-MM7 during the circuit arrangement. Load it. That is, during the circuit arrangement, the buffers B4-B7 are enabled by the AND gates A4-A7. However, since the input signals Q4-Q7 for sending the signals TQ4-TQ7 to the long lines carry common signals during the circuit arrangement period as described below with reference to FIG. 4C, no contention occurs.
Output enable
The buffers in output enable
Referring to FIG. 3A, the connection to the
The signal on input line QW0 drives both CLB input lines F0 and FB. Similarly, a signal to input line QW1 drives CLB input lines G0 and GB, a signal to input line QW2 drives CLB input lines H0 and HB, and a signal to input line QW3 is CLB input lines J0 and JB. Drive. Each signal on input lines QE0, QE1, QE2 and QE3 also drives two CLB input lines. More specifically, the signal on input line QE0 drives CLB input lines F1 and FB, the signal on input line QE1 drives lines G1 and GB, and the signal on input line QE1 drives lines H1 and HB. Driving, the signal on input line QE3 drives lines J1 and JB.
The signal to each one of the input lines QN0-QN3 and QS0-QS3 drives only one CLB input line. Specifically, the signal on input line QN0 drives the CLB input line F0, the signal on input line QN1 drives the CLB input line G0, and the signal on line QN2 drives the CLB input line H0. The signal on line QN3 drives CLB input line J0. A signal to input line QS0 drives CLB input line F1, a signal to input line QS1 drives CLB input line G1, and a signal to line QS3 drives CLB input line J1. This embodiment is particularly desirable for the horizontal flow of a large number of signals, since each of the input lines QE0-QE3 and QW0-QW3 are each connected in a programmable manner to the two CLB input lines. Other embodiments of the present invention have different numbers and locations of programmable connections and are optimized for different signal flows.
Output matrix 304
Distribute the PIP over the CLB output interconnect wiring structure 304 so that any CLB output signal is supplied to any of the tile interconnect wiring lines M0-M23.
PIP is distributed in the
PIPs are distributed in the
The function generators F, G, H, and J are formed as lookup tables, and all input signals to each lookup table are interchangeable.
In addition, the function generators F, G, H and J are interchangeable, except for the five-input function.
Thus, according to the present invention, the PIP
The signals on output lines Q0-Q3 drive the CLB input lines in adjacent tiles. For example, by arranging the two
In the PIP in the CLB output interconnect wiring structure 304 in another embodiment shown in FIG. 3B, the signal to the CLB output line must pass through two transistors (signal K, ie, a constant voltage or ground signal Note that it passes through four transistors). FIG. 3B shows the output lines of the 12 CLB output lines (X, XQ, XB, Y, YQ, YB, Z, ZQ, ZB, V, VQ, VB) of the CLB301 and one power / ground output signal line K. Shown is a
Feedback
Returning to FIG. 3A,
A
As another criterion in this embodiment, none of the CLB input lines has more than nine PIPs. That is, referring to FIG. 3C,
In this embodiment of the invention, the PIP pattern results in a function of five inputs (described above in connection with FIG. 5C). For example, a signal to tile interconnect wiring M18 or M19 drives input line FB, a signal to tile interconnect wiring M14 or M15 drives lines F0 and G0, and tile interconnect wiring M12. Or a signal to M13 drives lines F1 and G1, a signal to tile interconnect wiring M16 or M17 drives input lines F2 and G2, and a tile interconnect wiring M20 or M21 connects input lines F3 and Drive G3. In this circuit arrangement, the five-input function can be easily implemented by using the provided PIP pattern.
Still referring to FIG. 3A and FIG. 6, the PIP allows the long horizontal lines LH0-LH7 and long vertical lines LV0-LV7, as well as the global (horizontal and vertical) lines GH0, GH1, GV0, GV1. Connection to the registers RV, RZ, RY and RX is made possible without passing through the function generators J, H, G and F. More specifically, the long horizontal lines LH0-LH7 and long vertical lines LV0-LV7 and the global horizontal lines GH0, GH1 and the global vertical lines GV0, GV1 are selectively used as the tile interconnection wiring lines M0-M23 (FIG. 6). To join. These tile interconnect lines, when coupled to CLB input lines FB, GB, HB and JB, bypass function generators F, G, H and J, respectively, and register signal RX (via an intermediate multiplexer). , RY, RZ, RV. Global lines GH0, GH1, GV0, and GV1 are also selectively coupled to registers RX, RY, RZ, and RV via register
Output
In this embodiment, output lines Q4-Q7 provide output signals to programmable interconnect wiring matrix 201 (FIG. 2A) via tile interconnect wiring lines M0-M11 or lines TQ4-TQ7. Output lines Q0-Q3 provide output signals to selected ones of tile interconnect wiring lines M12-M13. In the embodiment shown in FIG. 3A, output
The clock line CLK, clock enable line, reset line, and tri-state line TS can be driven by a supply signal (from the programmable routing matrix 201) to the selected tile interconnect wiring line M0-M23. Further, for low skew control, the clock line CLK is directly controlled by a signal to the global horizontal lines GH0 and GH1 or a signal from the global vertical lines GV0 and GV1.
No contention
According to the present invention, if one PIP on a given CLB input line is programmed on, the other PIP on that CLB input line must not be on. For example, if the PIP at the intersection of input line QW0 and CLB input line F0 is programmed to be on (ie, the signal to input line QW0 drives CLB input line F0), tile interconnect lines M6, M7, M8 , M9, M14, M16 and the PIP on input line QN0 remain off, ensuring no contention on CLB input line F0. Normally, contention prevention is done by using a simple decoding method to choose which PIP on one input line to turn on, or to avoid turning on more than one PIP on one input line. This is achieved by using rules in the memory cell programming software. In other embodiments, alternative input selection means are possible. For example, in one embodiment, one memory cell is loaded to specify whether to turn on each PIP.
Programmable routing matrix
FIG. 6 shows the
The
Although the specific pattern of the PIP shown in FIG. 6 is sparse, it has excellent signal transferability. More specifically, the
The tile interconnect lines M12-M13 implement a cross-connect pattern that enhances signal transfer flexibility while minimizing operational speed degradation, and sparse PIP distribution achieves valuable chip surface area savings. For example, the tile interconnection wiring line M12 is connected to the double length north line DN0, south line S3, east line E5, west line W1, and the tile interconnection wiring line M15 is the north line N3, east line E8, twice as long. It is connected to Chonan DS6 and West W4. In this way, the present invention provides a predetermined pattern that minimizes the number of PIPs, allowing any line to be connected to any other line. That is, the present invention ensures that a path is always provided while minimizing the silicon surface area.
Route instruction matrix model
Each of the tile interconnect wiring lines M0-M23 is connectable to five or six other lines. That is, as shown in FIG. 7A, each of the tile interconnection lines M0-M23 is represented by an asterisk with five or six points. In this model, the eight tile interconnect lines M0-M7 are programmable to a selected one of North Line N0-N3, East Line E0-E3, South Line S0-S3 and West Line W0-W3 Connected in a simple manner. Tile interconnect wiring lines M0-M3 can be connected to the north, south, east and west lines of the same numeric suffix. Tile interconnect wiring lines M4 through M7 can be connected to the staggered north, south, east, and west lines. In this manner, tile interconnect lines M0-M3 provide the north, east, south, and west interconnects of the suffix, and interconnect lines M4-M7 represent lines from four directions. Provides cross-connection opportunities. Also, the tile interconnect wiring lines M0-M7 provide a means of connecting the
Routing Matrix and Connectability Model of Logical Block
FIG. 7B shows the “star configuration” of the present invention. In a star configuration, each CLB radiates a specific star (ie, a programmable routing matrix), ie, a line that extends to another
Global interconnect wiring structure
FIG. 8 shows global signal pads P113, P114, P115 and P116 arranged near the corner of chip 100 (FIG. 1) and global signal lines GTL, GTR, GBR and the like generally arranged near the four sides of
As also shown in FIG. 8, long lines LV0L, LV7L, LH0T, LH7T, LV0R, LV7R, LH0B and LH7B extending through the peripheral tiles of chip 100 (FIG. 1) (shown in FIG. 8 for simplicity). (Not shown in FIGS. 10A to 10D) can also be connected to the global line. More specifically, the lower right global signal line GBR can be driven by signals to the lower horizontal long lines LH0B and LHTB via PIP PGBR0 and PGBR7. The lower left global signal line GBL can be driven by signals to the left vertical long lines LV0L and LV7L via the lower left buffer BBL via PIP PGBL0 and PGBL7. Equivalent connections are provided on the top and right sides of the chip. The left, top, right and bottom long lines can be connected to each other via PIP such as PIP PBR7. Since long lines LV0L, LV7L, etc. are driven by signals from any pads around the chip (via margin tiles 103-106 described later in connection with FIGS. 10A-10D), all pads supply global signals it can. In addition, any of the core tiles can provide a global signal via the edge tiles 103-106.
Optional long line divider
1 to 9 show one embodiment of the present invention that includes a long line splitter that can be partially located via a line. Two tile rows, each consisting of an
In the embodiment shown in FIG. 9, the vertical long lines LV0-LV7 in the three
The marginal tile for the embodiment of FIG. 2A
10A-10D show the edge tile shown in FIG. 2A in more detail. More specifically, FIGS. 10A-10D show a
In FIG. 10A, four pads PV, PZ, PY, and PX are connected to
The PIP full distribution I / O
The intermediate
The feedback
10B, 10C, and 10D show
I / O interface for optional pads
FIG. 10C illustrates a combination of connected and unconnected pads, thereby illustrating the achievable flexibility at the mask level.
In this embodiment, one unconnected pad PZ and connected pads PV, PY, PX have the circuit arrangement represented by P6, P7 and P8 (connected to the marginal tile 105) in FIG. Go live. As shown in FIG. 1, a predetermined number of pads are connected to each edge tile. For example, pad P17 is the only pad connected to edge
Returning to FIG. 10C, pad PZ and its input / output buffer structure IOBZ have been removed, reducing the overall chip size by reducing the total number of pads on the chip. The input line IZ and the output line OZ are short-circuited in a region outside the
Corner tile
FIGS. 11A-11D show four
The
FIG. 12 shows one embodiment of a circuit for implementing the oscillator / counter circuit DIV of FIG. 11B. Two output taps, OSCI and OSC2, are provided and these oscillators can be arranged to produce twelve frequencies which are the divided output of the original input frequency. The internal oscillator OSC supplies an oscillator signal to the NAND gate 1231. NAND gate 1231 is enabled by memory cell OSCRUN. When enabled, the output signal from oscillator OSC is provided to
The
Multiplexers 1225 and 1226 provide division ratio select inputs to the data input terminals of flip-
FIG. 11C shows the lower
During the start-up function, three things are required to move from the circuit placement mode to the operation mode. That is, the emission of the signal to the global tri-state signal terminal GSR, the emission of the signal to the global reset signal terminal GSR, and the signal to the load completion terminal DONE (all the circuit arrangement bits are loaded to the appropriate locations in the FPGA). To show that it is a release. The start-up block STARTUP allows the user to program the sequence of emission of these signals and the timing of these signals (eg, separating each signal by one, two or three clock cycles, etc.). To
FIG. 11D shows a lower
From the foregoing description, many more embodiments of the invention will be apparent to those skilled in the art. For example, while the above description relates to embodiments where the core tile is square or square, another embodiment includes a tile having six sides.
As mentioned above, the core tiles need not be identical. A set of tile designs with different logical contents can also be provided. If the tile design obeys common boundary constraints, chips can be formed by combining the tile designs in various patterns. To be successful, each tile design must have a good signal distribution within the tile. The tile routing matrix must efficiently distribute the incoming signal to the logic block input terminals and direct the logic block output signal to the tile perimeter. Some tiles have no logic and only RAM memory, and some tiles have routing means without logic and memory. In addition, tiles that physically contain input / output pads can be designed, and the padded tile design can be combined with other tile designs to achieve distributed access to logic. These other embodiments are intended to be included within the scope of the present invention. This invention is described in the claims.
Claims (9)
回路配置融通性ある論理ブロックマトリックスと、
プログラム可能な経路指示マトリックスと、
前記回路配置融通性ある論理ブロックを隣接コアタイル内の他の回路配置融通性ある論理ブロックマトリックスに接続する接続手段と、
前記回路配置融通性ある論理ブロックを前記プログラム可能な経路指示マトリックスに接続するマトリックス間接続線と、
前記プログラム可能な経路指示マトリックスを隣接コアタイル内のプログラム可能な経路指示マトリックスに接続する経路指示線と
を含むFPGAタイル構造。An FPGA structure having a plurality of core tiles, wherein each core tile has a circuit arrangement flexible logic block matrix,
A programmable routing matrix;
Connecting means for connecting the circuit layout flexible logic block to another circuit layout flexible logic block matrix in an adjacent core tile;
An inter-matrix connection line connecting the circuit arrangement flexible logic block to the programmable routing matrix;
A routing line connecting the programmable routing matrix to a programmable routing matrix in an adjacent core tile.
前記回路配置融通性ある論理ブロックマトリックスを前記プログラム可能な経路指示マトリックスに接続する複数の接続線と、
前記プログラム可能な経路指示マトリックスを他の対構成構造内の他のプログラム可能な経路指示マトリックスと
を含むFPGAタイル構造。A plurality of paired structures each including a circuit layout flexible logic block matrix and a programmable routing matrix;
A plurality of connection lines connecting the circuit arrangement flexible logic block matrix to the programmable routing matrix;
An FPGA tile structure comprising the programmable routing matrix and another programmable routing matrix in another paired structure.
第1のプログラム可能な経路指示マトリックスを隣接のプログラム可能な経路指示マトリックスに接続する複数の1倍長線と、
前記第1のプログラム可能な経路指示マトリックスを非隣接のプログラム可能な経路指示マトリックスに接続する複数の2倍長線と
を含む請求項6記載のFPGAタイル構造。The means for connecting
A plurality of single-length lines connecting the first programmable routing matrix to an adjacent programmable routing matrix;
7. The FPGA tile structure of claim 6, further comprising a plurality of double-length lines connecting said first programmable routing matrix to a non-adjacent programmable routing matrix.
をさらに含む請求項6記載のFPGAタイル構造。7. The FPGA tile structure of claim 6, further comprising a plurality of elongate lines each of which can be programmably connected to a plurality of adjacent programmable routing matrices.
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US19691494A | 1994-02-15 | 1994-02-15 | |
| US22213894A | 1994-04-01 | 1994-04-01 | |
| US08/196,914 | 1994-04-01 | ||
| US08/222,138 | 1994-04-01 | ||
| PCT/US1995/001554 WO1995022205A1 (en) | 1994-02-15 | 1995-02-07 | Tile based architecture for fpga |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH08509344A JPH08509344A (en) | 1996-10-01 |
| JP3547446B2 true JP3547446B2 (en) | 2004-07-28 |
Family
ID=26892384
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP52129595A Expired - Lifetime JP3547446B2 (en) | 1994-02-15 | 1995-02-07 | Tile type structure of field programmable gate array |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP0698312A1 (en) |
| JP (1) | JP3547446B2 (en) |
| WO (1) | WO1995022205A1 (en) |
Families Citing this family (38)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5689195A (en) * | 1995-05-17 | 1997-11-18 | Altera Corporation | Programmable logic array integrated circuit devices |
| US5900743A (en) | 1995-05-17 | 1999-05-04 | Altera Corporation | Programmable logic array devices with interconnect lines of various lengths |
| US5909126A (en) | 1995-05-17 | 1999-06-01 | Altera Corporation | Programmable logic array integrated circuit devices with interleaved logic array blocks |
| US5543732A (en) * | 1995-05-17 | 1996-08-06 | Altera Corporation | Programmable logic array devices with interconnect lines of various lengths |
| US5963049A (en) | 1995-05-17 | 1999-10-05 | Altera Corporation | Programmable logic array integrated circuit architectures |
| US5646545A (en) * | 1995-08-18 | 1997-07-08 | Xilinx, Inc. | Time multiplexed programmable logic device |
| US5784313A (en) * | 1995-08-18 | 1998-07-21 | Xilinx, Inc. | Programmable logic device including configuration data or user data memory slices |
| US5835998A (en) * | 1996-04-04 | 1998-11-10 | Altera Corporation | Logic cell for programmable logic devices |
| US5742181A (en) * | 1996-06-04 | 1998-04-21 | Hewlett-Packard Co. | FPGA with hierarchical interconnect structure and hyperlinks |
| US5880597A (en) * | 1996-09-18 | 1999-03-09 | Altera Corporation | Interleaved interconnect for programmable logic array devices |
| US5977793A (en) * | 1996-10-10 | 1999-11-02 | Altera Corporation | Programmable logic device with hierarchical interconnection resources |
| US5999016A (en) * | 1996-10-10 | 1999-12-07 | Altera Corporation | Architectures for programmable logic devices |
| US6300794B1 (en) | 1996-10-10 | 2001-10-09 | Altera Corporation | Programmable logic device with hierarchical interconnection resources |
| EP0858167A1 (en) | 1997-01-29 | 1998-08-12 | Hewlett-Packard Company | Field programmable processor device |
| EP0858168A1 (en) * | 1997-01-29 | 1998-08-12 | Hewlett-Packard Company | Field programmable processor array |
| US5999015A (en) * | 1997-02-20 | 1999-12-07 | Altera Corporation | Logic region resources for programmable logic devices |
| US5982195A (en) * | 1997-02-20 | 1999-11-09 | Altera Corporation | Programmable logic device architectures |
| US7148722B1 (en) | 1997-02-20 | 2006-12-12 | Altera Corporation | PCI-compatible programmable logic devices |
| US6127844A (en) | 1997-02-20 | 2000-10-03 | Altera Corporation | PCI-compatible programmable logic devices |
| US6184710B1 (en) | 1997-03-20 | 2001-02-06 | Altera Corporation | Programmable logic array devices with enhanced interconnectivity between adjacent logic regions |
| US6084427A (en) | 1998-05-19 | 2000-07-04 | Altera Corporation | Programmable logic devices with enhanced multiplexing capabilities |
| US6107825A (en) | 1997-10-16 | 2000-08-22 | Altera Corporation | Input/output circuitry for programmable logic devices |
| US6107824A (en) * | 1997-10-16 | 2000-08-22 | Altera Corporation | Circuitry and methods for internal interconnection of programmable logic devices |
| US6121790A (en) * | 1997-10-16 | 2000-09-19 | Altera Corporation | Programmable logic device with enhanced multiplexing capabilities in interconnect resources |
| DE69834942T2 (en) | 1997-12-17 | 2007-06-06 | Panasonic Europe Ltd., Uxbridge | Device for multiplying |
| DE69841256D1 (en) | 1997-12-17 | 2009-12-10 | Panasonic Corp | Command masking for routing command streams to a processor |
| DE69827589T2 (en) | 1997-12-17 | 2005-11-03 | Elixent Ltd. | Configurable processing assembly and method of using this assembly to build a central processing unit |
| JP3576837B2 (en) * | 1998-10-30 | 2004-10-13 | 日本電気株式会社 | Basic cell of programmable logic LSI and basic cell two-dimensional array |
| US6507216B1 (en) | 1998-11-18 | 2003-01-14 | Altera Corporation | Efficient arrangement of interconnection resources on programmable logic devices |
| US6215326B1 (en) | 1998-11-18 | 2001-04-10 | Altera Corporation | Programmable logic device architecture with super-regions having logic regions and a memory region |
| US6407576B1 (en) | 1999-03-04 | 2002-06-18 | Altera Corporation | Interconnection and input/output resources for programmable logic integrated circuit devices |
| US6874136B2 (en) * | 2002-01-10 | 2005-03-29 | M2000 | Crossbar device with reduced parasitic capacitive loading and usage of crossbar devices in reconfigurable circuits |
| US7768314B2 (en) | 2004-05-12 | 2010-08-03 | National University Corporation Okayama University | Integrated circuit with multidimensional switch topology |
| US7394287B1 (en) * | 2007-05-21 | 2008-07-01 | Altera Corporation | Programmable logic device having complex logic blocks with improved logic cell functionality |
| FR2933826B1 (en) * | 2008-07-09 | 2011-11-18 | Univ Paris Curie | PROGRAMMABLE LOGIC NETWORK, INTERCONNECT SWITCH AND LOGIC UNIT FOR SUCH A NETWORK |
| EP2954618A4 (en) * | 2013-02-08 | 2016-10-05 | Univ Princeton | DYNAMICALLY RECONFIGURABLE FPGA ARCHITECTURE WITH END GRAIN |
| US9239360B2 (en) * | 2014-01-28 | 2016-01-19 | Texas Instruments Incorporated | DFT approach to enable faster scan chain diagnosis |
| US11451230B2 (en) * | 2020-04-23 | 2022-09-20 | Xilinx, Inc. | Compute dataflow architecture |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5255203A (en) * | 1989-08-15 | 1993-10-19 | Advanced Micro Devices, Inc. | Interconnect structure for programmable logic device |
| US5220213A (en) * | 1991-03-06 | 1993-06-15 | Quicklogic Corporation | Programmable application specific integrated circuit and logic cell therefor |
| US5241224A (en) * | 1991-04-25 | 1993-08-31 | Altera Corporation | High-density erasable programmable logic device architecture using multiplexer interconnections |
| US5260610A (en) * | 1991-09-03 | 1993-11-09 | Altera Corporation | Programmable logic element interconnections for programmable logic array integrated circuits |
| US5260611A (en) * | 1991-09-03 | 1993-11-09 | Altera Corporation | Programmable logic array having local and long distance conductors |
-
1995
- 1995-02-07 EP EP95909504A patent/EP0698312A1/en not_active Withdrawn
- 1995-02-07 WO PCT/US1995/001554 patent/WO1995022205A1/en not_active Ceased
- 1995-02-07 JP JP52129595A patent/JP3547446B2/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| WO1995022205A1 (en) | 1995-08-17 |
| JPH08509344A (en) | 1996-10-01 |
| EP0698312A1 (en) | 1996-02-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3547446B2 (en) | Tile type structure of field programmable gate array | |
| US5682107A (en) | FPGA architecture with repeatable tiles including routing matrices and logic matrices | |
| JP3480784B2 (en) | Programmable gate array with improved memory allocation | |
| US6621298B2 (en) | Variable grain architecture for FPGA integrated circuits | |
| US6163168A (en) | Efficient interconnect network for use in FPGA device having variable grain architecture | |
| US6181163B1 (en) | FPGA integrated circuit having embedded SRAM memory blocks and interconnect channel for broadcasting address and control signals | |
| 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 | |
| JP3509047B2 (en) | Programmable array interconnect network | |
| EP0824792B1 (en) | Floor plan for scalable multiple level interconnect architecture | |
| US5521529A (en) | Very high-density complex programmable logic devices with a multi-tiered hierarchical switch matrix and optimized flexible logic allocation | |
| US5652529A (en) | Programmable array clock/reset resource | |
| US7064579B2 (en) | Alterable application specific integrated circuit (ASIC) | |
| US6888375B2 (en) | Tileable field-programmable gate array architecture | |
| EP0824791B1 (en) | Scalable multiple level interconnect architecture | |
| US7342416B2 (en) | Tileable field-programmable gate array architecture | |
| US6154048A (en) | Structure and method for loading narrow frames of data from a wide input bus | |
| US5309046A (en) | Apparatus and method for product term allocation in programmable logic | |
| USRE39510E1 (en) | FPGA integrated circuit having embedded sram memory blocks with registered address and data input sections | |
| EP0746107A2 (en) | Programmable logic cell | |
| KR20040004631A (en) | Integrated circuit device | |
| JPH05183425A (en) | Plurality of integrated-circuit programmable logical device, method for interconnecting plurality of programmable logical block in programmable logical device and programmable logical block for integrated -circuit programmable logical device | |
| JPH0379125A (en) | Constitutable logical array | |
| JPH10247849A (en) | Integrated circuit device | |
| US6150841A (en) | Enhanced macrocell module for high density CPLD architectures | |
| JP3313849B2 (en) | Programmable logic device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 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: 20040406 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040414 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080423 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090423 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090423 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100423 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100423 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110423 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120423 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120423 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130423 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130423 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140423 Year of fee payment: 10 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| EXPY | Cancellation because of completion of term |