(57)【特許請求の範囲】
【請求項１】
複数のコアタイルを有するFPGA構造であって、各コアタイルが
回路配置融通性ある論理ブロックマトリックスと、
プログラム可能な経路指示マトリックスと、
前記回路配置融通性ある論理ブロックを隣接コアタイル内の他の回路配置融通性ある論理ブロックマトリックスに接続する接続手段と、
前記回路配置融通性ある論理ブロックを前記プログラム可能な経路指示マトリックスに接続するマトリックス間接続線と、
前記プログラム可能な経路指示マトリックスを隣接コアタイル内のプログラム可能な経路指示マトリックスに接続する経路指示線と
を含むFPGAタイル構造。
【請求項２】
前記コアタイルを通じて水平方向に延びる複数の長尺線をさらに含み、それら複数の長尺線の少なくとも一つが前記マトリックス間接続線の少なくとも一つに結合されている請求項１記載のFPGAタイル構造。
【請求項３】
前記コアタイルを通じて垂直方向に延びる複数の長尺線をさらに含み、それら複数の長尺線の少なくとも一つが前記マトリックス間接続線の少なくとも一つに結合されている請求項２記載のFPGAタイル構造。
【請求項４】
前記回路配置融通性ある論理ブロックマトリックスおよび前記プログラム可能な経路指示マトリックスに結合された大域水平線をさらに含む請求項３記載のFPGAタイル構造。
【請求項５】
前記接続手段が桁上げ出力線および桁上げ入力線を含み、前記桁上げ出力線が隣接コアタイル内の桁上げ入力線に結合されている請求項１記載のFPGAタイル構造。
【請求項６】
各々が回路配置融通性ある論理ブロックマトリックスおよびプログラム可能な経路指示マトリックスを含む複数の対構成構造と、
前記回路配置融通性ある論理ブロックマトリックスを前記プログラム可能な経路指示マトリックスに接続する複数の接続線と、
前記プログラム可能な経路指示マトリックスを他の対構成構造内の他のプログラム可能な経路指示マトリックスと
を含むFPGAタイル構造。
【請求項７】
一つの対構成構造内の前記回路配置融通性ある論理ブロックマトリックスを他の対構成構造内の複数の回路配置可能な論理ブロックマトリックスに前記プログラム可能な経路指示マトリックスを用いることなく接続する手段をさらに含む請求項６記載のFPGAタイル構造。
【請求項８】
前記接続する手段が、
第１のプログラム可能な経路指示マトリックスを隣接のプログラム可能な経路指示マトリックスに接続する複数の１倍長線と、
前記第１のプログラム可能な経路指示マトリックスを非隣接のプログラム可能な経路指示マトリックスに接続する複数の２倍長線と
を含む請求項６記載のFPGAタイル構造。
【請求項９】
各々が複数の隣接のプログラム可能な経路指示マトリックスにプログラム可能な形で接続できる複数の長尺線
をさらに含む請求項６記載のFPGAタイル構造。
【発明の詳細な説明】
発明の技術分野
この発明は集積回路内に形成されたプログラマブルロジックデバイスに関し、とくに論理ブロックを繰返しパターンの形に備えるプログラマブルロジックデバイスの構造に関する。
発明の背景
フィールドプログラマブルゲートアレー（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の機能性を最大にする。
タイル構造は境界部分でタイルから外部に向こうひと組の信号線を備える。したがって、例えば、一つのタイトルの右側で外に向かう信号線はもう一つのタイルの左側で外に向かう信号線とつながる。一つの実施例においては、互いに隣接するタイルは同一であって、繰返しパターンを形成している。もう一つの実施例においては、隣接するタイルは互いに同一ではないがそれらタイルの少なくとも大部分がタイル境界部でぴったり合致する信号線を備えている。すなわち、境界部で合致するモジュール状ユニットのアレーとしてチップを形成でき、複数のチップ設計で使えるタイル設計の融通性を容易に高めることができる。
【図面の簡単な説明】
図１はこの発明による構成部分を含むFPGAチップを示す。
図2Aは図１のFPGAチップの大部分に含まれる単一のコアタイルを示す。
図2Bは図2Aに示した型の四つの隣接コアタイルを示す。
図3Aは図2Aのタイルの一部である回路配置融通性ある論理ブロックマトリックスを示す。
図3Bは回路配置融通性ある論理ブロックの出力線を一つの出力線に接続するすべてのPIPを実動化するマルチプレクサ構造を示す。
図3Cは回路配置融通性ある入力線を駆動するマルチプレクサ構成の一つの実施例を示す。
図4Aは図3Aのマトリックス４の回路配置可能な論理ブロックを示す。
図4Bは図3Aの三状態バッファブロック302を示す。
図4Cは図3Aの出力イネーブルブロック309を示す。
図4Dは図4AのF,G,HおよびＪ関数発生器の参照用テーブルの実施例を示す。
図4Eは図4AのF,G,HおよびＪ関数発生器のもう一つの参照用テーブルの実施例を示す。
図4Fは図4Dまたは4Eの参照用テーブル関数発生器用の一つのカルノーマップを示す。
図4Gは図4Dまたは4Eの参照用テーブル関数発生器で実動化できる216の論理機能の一つを示す。
図5A−5Cは図4Aの回路配置融通性ある論理ブロックを、桁上げ連鎖、縦続接続可能な復号回路および五入力組合せ機能にそれぞれ適用した例をそれぞれ示す。
図６は図2Aのプログラム可能な経路指示マトリックスを示す。
図7Aは図６に示したようなこの発明のプログラム可能な経路指示マトリックスにより得られる接続形成可能性の例を示す。
図7Bは図６のプログラム可能な経路指示マトリックスと図2Aまたは2Bのタイル構造との組合せで得られる接続形成可能性の例を示す。
図８はチップの角度の近傍の大域信号パッドから大域信号線すなわちチップの四つの辺縁に延びコアタイル駆動用の大域線に接続される大域信号線に至る接続を示す。
図９はこの発明の一つの実施例において長尺線上に設けられた長尺線分割器を示す。
図10A−10Dはこの発明の一実施例による左側、上側、右側および下側の辺縁タイルをそれぞれ示す。
図11A−11Dは同実施例の左上側、右上側、右下側および左下側の角部タイルとをそれぞれ示す。
図12は図11Bで用いられる発振器の一つの実施例の論理図を示す。
図面の詳細な説明
図面全体を通して次の表記を用いてある。すなわち、二つの線の交点にある小さい黒色の点はそれら二つの互いに交わる線の間の固定の電気的接続を表わす。二つの線の交点を囲む白ヌキの円はそれら二つの線の間のプログラム可能な接続（例えばオンになって接続を形成するパストランジスタ）を表わす。白ヌキの円は二つの線の間の双方向の信号の流れを表わす。二つの線の間の白ヌキの三角形はその三角形の頂点の指す線に向かう信号の流れとのプログラム可能な接続を表わす（この場合、信号はもちろん線の長さ全体にわたって存在する。すなわち、反対向きの三角形も同じ線を指している場合は同一の信号の流れを生ずる）。この発明の一つの実施例によると、プログラム可能な接続はプログラム可能な各々が少なくとも一つのトランジスタから成る相互接続点（PIP）を用いて形成する。
他の線と交叉しない一つの線に重なっている三角形はその三角形の頂点の指す方向の信号の流れを生ずるバッファを表わす。大域線ENOUTおよびENLL（図3Aに示す）を除き、タイルまたはマトリックス構造の内部で終端する（すなわち、タイルまたはマトリックスの境界部までは延びていない）線はそのタイル内部で物理的に終端する。タイルまたはマトリックスの境界部まで延びる線は隣接タイル上の線、すなわち二つのタイルの接合に伴って接触状態になる線に接続される。一つのタイルの辺縁まで延び、従って隣接タイルに達する線のいくつかはそのタイル境界部で名称が変わる。回路配置融通性ある論理ブロックマトリックスおよびプログラム可能な経路指示マトリックスの中の線には同じ参照数字を付してそれら線の相互間の物理的接続を表わしている。
図１はこの発明によるFPGAチップ100を示す。チップ100の中心部には導体線で互いに接続した（詳細は後述）複数の同一コアタイル101がある。チップ100の四辺に沿つて、西、北、東および南辺縁タイル103,104,105および106がそれぞれ配置してある。また、このチップの四隅には四つの角部タイル113,114,115および116がそれぞれ配置してある。さらに、チップ100はパッド、すなわち辺縁タイル103,104,105,106および角部タイル113−116をパッケージ（チップ100を収容する）の外部ピンに接続するパッドP1−P56を備える。各角部タイルは一つのコアタイル101にも接続されている。図１に示すとおり、辺縁タイルは互いに異なる数のパッドＰ、すなわち通常は０個から４個のパッド（図10a−10dを参照して詳述）に接続される。図１には高電圧源パッドVCCおよび低電圧源パッドGNDも示してある。チップ全体を通じて電源用および接地用配線（図示してない）が慣用の手法により設けてある。
図2Aはコアタイル101を示す。コアタイル101はプログラム可能な経路指示マトリックス201および回路配置融通性ある論理ブロックマトリックス202を含む。プログラム可能な経路指示マトリックス201は図６を参照して詳述し、回路配置融通性ある論理ブロック201は図3Aを参照して詳述する。
プログラム可能な経路指示マトリックス201から西向きに延びるサフィックス０乃至11付きの12本の線を設けてある。これらの線には１倍長西向き線W1−W5、W7−W11、および２倍長西向き線DW0およびDW6（詳細は後述）が含まれる。プログラム可能な経路指示マトリックス201から北向きに延びる１倍長北線N1−N5、N5−N11および２倍長北線DN0およびDN6も設けてある。また、東向きに延びる１倍長東線E1−E5およびE7−E11、および２倍長東線DE0−DE6も設けてある。さらに、南向きに延びる１倍長南線S1−S5およびS7−S11、および２倍長南線DS0およびDS6が設けてある。また、東から西向きにタイル101を横切って２倍長水平線DH0およびDH6を備える。さらに、北から南向きタイル101を横切って二重長垂直線DV0およびDV6を備える。
図2Bは図2Aに示したタイル101と同一の回路配置の四つの隣接コアタイル101a,101b,101cおよび101dを示す。図2Bにおいては、明瞭化のために大部分の線には符号を付けてない。上述のとおり、タイル101の辺縁に延びる線は隣接タイル内の線に接続してある。例えば、プログラム可能な経路指示マトリックス201bから西向きに延びるタイル101b内の１倍長西線W1bは隣接タイル101a内の１倍長東線E1aに接続してある。タイル101aの２倍長水平線DH6aはタイル101bの２倍長西線DW6bに接続され、さらに図2Bに図示してないがタイル101aのすぐ西側に配置してあるタイルの２倍長東線DE6に接続されている（したがって、用語「２倍長」を用いる）。タイル101c内のCLBマトリックスから東向きに延びる線Q0cはタイル101d内のCLBマトリックス202dから西に延びる線QW0dに接続されている。また、図２には、タイル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またはＪの一つへの接続を可能にするように定めてある。この実施例において、普通の入力相互接続配線構造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およびＪを含み、これら関数発生器の各々はその関数発生器への四つの入力信号と格納値とで決まる出力信号を生ずる16ビット参照用テーブルを含む。このようにして、関数発生器Ｆは線F0−F3に供給される入力信号で決まる出力信号を生じ、関数発生器ＧはGLB入力線G0−G3に供給される信号で決まる出力信号を生じ、関数発生器ＨはCLB入力線H0−H3に供給される信号で決まる出力信号を生じ、関数発生器ＪはCLB入力J0−J3に供給される信号で決まる出力信号を生ずる。
参照用テーブル
図4D−4Gを参照して参照用テーブル関数発生器の動作を説明する。これらの図は米国再発行特許第Re.34,363号として再発行された米国特許第4,870,302号において発明者フリーマンが論じたものであり、この特許をここに参照してこの明細書に組み入れる。
図4Dは参照用テーブル、すなわちこの実施例では16ビットRAMで構成する参照用テーブルを示し、このテーブルは四つの入力信号の16種の可能性ある組合せの任意の一つに応答して出力信号を生じる。より詳細に述べると、入力信号ＡおよびＢは16ビットRAMの四つの列の任意の一つを選択するようにＸデコーダを制御する。同様に、入力信号ＣおよびＤは16ビットRAMの四つの行の任意の一つを選択する。この16ビットRAMは選択された行および選択された列の交点のビットを代表する出力信号を生ずる。そのような交点が16個あり、したがって、そのようなビットが16ビットある。したがって、16ビットが216個の可能性ある組合せを生じることになる。すなわち、四入力NORゲートを16ビットRAMでシミュレートする場合は、この参照用テーブルについてのカルノーマップは図4Fに示すようになる。図4Fにおいて、第１行（Ａ＝０、Ｂ＝０を表わす）と第１列（Ｃ＝０、Ｄ＝０を表わす）との交点におけるビット以外のビットはすべて「０」である。Ａ＝１、Ｂ＝０、Ｃ＝０、Ｄ＝０について論理「１」出力信号を必要とする場合は、論理「１」を第２行と第１列との間の交点に格納する。Ａ＝０、Ｂ＝０、Ｃ＝０およびＤ＝０、ならびにＡ＝１、Ｂ＝０、Ｃ＝０およびＤ＝０について論理「１」を要する場合は、第１列と第１行および第２行との交点の各々に論理「１」を格納する。参照用テーブルをこのようにロードすることによって表わされる論理回路を図4Gに示す。すなわち、図4Dの参照用テーブルは216個の論理機能の任意の一つの精密で単純な実動化を表わす。
図4Eは16個の選択ビットの任意の一つを生ずるレジスタの構成を示す。左側縦方向の列の「16個の選択ビット」と表示したレジスタ０−15の各々は論理「１」または「０」の被選択信号を含んでいる。信号A,B,CおよびＤならびにこれらの補数の適当な組合せを選択することによって、16選択ビットレジスタ内の16の位置の特定の一つに格納された特定のビットが出力導線OUTに送出される。すなわち、例えば「１」レジスタ中のビットを出力導線に送出するには信号A,B,C,Dをその表示のある導線に加える。また、16選択ビットレジスタ内の16番目の位置「15」の信号を出力導線に送出するには信号A,
0003547446.tif 000002
能の任意の一つを提供する。
図4Aに戻ると、参照用テーブルF,G,HおよびＪの中のメモリビットは通常はチップの回路配置の期間中に例えばシフトレジスタ経由で、代替的にはアドレス手段でロードされる。いくつかの実施例では、メモリビットはチップの動作中にロードし、それによって、動作中のチップを回路再配置する。回路再配置融通性あるメモリ構成はこの発明と同一譲受人に譲渡されたフリーマンほか（Freeman  et  al）発明の米国特許第5,343,406号「回路配置融通性ある論理アレー用の分散メモリ構造および分散メモリを使用する方法」に記載されており、同時許をここに参照してこの明細書に組み入れる。
関数発生器F,G,HおよびＪはCLB出力線X,Y,ZおよびＶにそれぞれ出力を生ずる。関数発生器F,G,HおよびＪからのこれら出力信号はマルチプレクサ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およびＪのほかに四つの蓄積装置RX,RY,RZおよびRVを含む。これら蓄積装置RX,RY,RZおよびRVの各々は主段および従段つきのフリップフロップと、これら主段および従段からの出力を入力として受ける出力マルチプレクサとを含む。すなわち、デバイスRX,RY,RZおよびRVはフリップフロップまたはラッチを構成するようにマルチプレクサで回路配置できる。
通常は桁上げ信号への周期的な電圧再供給が必要である。この実施例では、この電圧再供給のために、インバータI121およびI122を含む電圧再供給用バッファ桁上げ経路のマルチプレクサ四つごとまたはCLB301一つごとに配置する。もう一つの実施例では、電圧再供給用バッファを桁上げ経路のマルチプレクサ二つごとに設け、CLB一つごとに二つの電圧再供給バッファを設けるようにする。
この実施例においては、CLB301は関数発生器あたり五つの入力線を含む。例えば、関数発生器Ｆを参照すると、CLB入力線F0−F3は関数発生器Ｆに入力信号を供給し、第５のCLB入力線FBはマルチプレクサ制御入力信号を供給する。関数発生器G,HおよびＪも同様に回路配置する。三つの入力線CLK,CEおよびRSTは、クロック信号、クロックイネーブル信号およびリセット信号をレジスタRX,RY,RZおよびRVにそれぞれ供給する。
図4Aに示すとおり、一つの出力信号の四つのグループ、すなわち各々が各関数発生器に関連づけられている四つのグループがCLB301から生ずる。これら三つの出力信号には次のものが含まれる。すなわち；
・関数発生器（CLB出力線X,Y,ZまたはＶに設けた）からの直接のレジスタ格納されてない出力信号。
・CLB入力信号の、すなわち桁上げ連鎖からの信号、または二つの場合は五入力関数（CLB出力線XB,YB,ZBまたはVBに生ずる）を供給するマルチプレクサからの信号をもとにした代替のレジスタ格納されてない出力信号。
・関数発生器または代替的出力信号の信号源の一つ（CLB出力線XQ,YQ,ZQまたはVQに設けた）によりロードできるレジスタ格納ずみの出力信号。
例えばCLB出力線Ｘは関数発生器Ｆからの直接のレジスタ格納なしの出力信号を受ける。CLB出力線XBはCLB入力線FBの信号またはマルチプレクサS1の出力信号（マルチプレクサB1の決めるところにより）、すなわち桁上げ出力信号CFまたはマルチプレクサFGからの五入力関数発生器出力信号（図5Cについて後述の説明参照）から得られる出力信号を受ける。CLB出力線XQはレジスタRXからのレジスタ格納ずみの出力信号、すなわちＤ入力信号をマルチプレクサD1の決めるところにより関数発生器Ｆから直接に（出力線Ｘの信号）または線XBの代替的出力信号から得るレジスタRXからの出力信号を受ける。最後に、出力線ＫはマルチプレクサPGの選択によりハイまたはロウとなる一定値信号を供給する。
図4Aの実施例において、マルチプレクサD1−D4は、関数発生器F,G,HおよびＪ（CLB出力線Ｘ−Ｖ）からの出力信号またはマルチプレクサB1−B4からの出力信号をレジスタRX−RVにそれぞれ供給する。マルチプレクサS1およびS3をマルチプレクサC1およびC3からの桁上げ信号をそれぞれ転送するようにセットすると、マルチプレクサB1−B4はCLB入力線FB−FJの入力信号またはマルチプレクサC1−C4の出力信号のどちらかを選択する。
マルチプレクサC1−C4は算術演算における桁上げ機能に用いられるほかに広範囲のANDおよびOR機能を発揮する。AND機能を発揮するには、線FBに論理「０」を加えて、CLB出力線Ｘ上のＦ関数発生器出力信号と線C1N上の桁上げ入力信号とのAND出力を生ずるようにマルチプレクサC1をプログラムする。一方、OR機能を発揮するには、CLB入力線FBに論理「１」を加えて、CLB出力線XLの出力信号の補数と線C1N上の桁上げ入力信号とのOR出力を生ずるようにマルチプレクサC1をプログラムする。真数表構造によると、OR出力は反転値を真数表にロードすることによって得られる。マルチプレクサC1−C4の機能および論理ブロックとの相互作用については、ここに参照してこの明細書に組み入れる米国出願第08/116,659号〔Ｍ−2565〕により詳細に述べてある。
CLB301の応用例
図5A−5Cは、CLB301（図4Aを参照して上に詳述）を用いて、桁上げ連鎖、縦続接続可能なデコーダ回路２、および二つの五入力関数発生器をそれぞれ形成する応用例を示す。これらの図において、太線はCLB301の線のうち特定の選ばれた機能のために用いられたものを表わし、細い点線はその特定機能のために用いられていないものを表わす。
図5Aにおいて、CLB301は一つの数A3A2A1A0およびB3B2B1B0の半値和H3H2H1H0（ここでH3,H2,H1およびH0は４ビット半値和の４つのビットである）および桁上げビット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およびＪの各々をXOR機能（入力信号の半値和）の真値テーブルでロードする。真数表に使ってない入力線に加えられた値を計算に入れる。関数発生器Ｆに加えられたものよりも低次のビットがある場合は、それらビットの桁上げ出力は桁上げ入力線C1Nを生ずる。マルチプレクサC1,C2,C3およびC4は関数発生器F,G,HおよびＪの出力信号でそれぞれ制御される。より詳細に述べると、関数発生器出力信号が論理１である（信号ＡおよびＢは等しくない）場合は、桁上げ入力値はそのビットの桁上げ出力に送られ、関数発生器出力が論理０である（信号ＡおよびＢが互いに等しい）場合は、信号Ａまたは信号Ｂの値はそのビットの桁上げ出力に送られる。マルチプレクサB1−B4、S1およびS3は各ビットの桁上げ出力をそのビットの「Ｂ」CLB出力線（すなわち、C1B出力線XB,YB,ZBおよびVB）に送出する。各ビットについての関数発生器出力信号（CLB出力線X,Y,ZおよびＶに生じている）はそのビットについての半値和として供給される。
図5Bに示したもう一つの用途においては、CLB301は縦続接続可能なデコーダとして動作するように回路配置してある。信号A0−A15の表わす16ビットアドレスをCLB入力線F0−F3、G0−G3、およびJ0−J3に加える。CLB入力線FB,GB,HBおよびJBは接地してある。各関数発生器F,G,HおよびＪの各々の16ビットは所定アドレスの一部を反映するのに一つの論理「１」を含む。論理１信号を桁上げ入力線C1Nに加える。四つの関数発生器F,G,HおよびＪ全部が論理１をそれぞれ出力する（すなわちアドレス「一致」を表わす）場合は、マルチプレクサC1−C4全部が論理１を送出して桁上げ出力線COUTに論理１信号を生ずる。
図5Cに示したもう一つの用途では、CLB301は五つの入力信号の各々の二つの関数を生ずる。関数発生器ＦおよびＧは五つの入力信号の第１の関数をCLB出力線XBに生じ、関数発生器ＨおよびＪは五つの入力信号の第２の関数をCLB出力線2Bに生ずる。この第１の関数については、四つの入力信号A0−A3が両方の関数発生器ＦおよびＧへのCLB入力線に供給され、第５の入力信号A4がFBに供給される。入力信号A4によってマルチプレクサFGは関数発生器Ｆまたは関数発生器Ｇの出力信号を選択する。この実施例において、マルチプレクサS1はマルチプレクサFGの出力信号を選択するようにメモリセルでプログラムされ、マルチプレクサB1はマルチプレクサS1の出力信号を選択するようにメモリセルでプログラムされる。このようにして、関数発生器ＦおよびＧから五入力関数発生器出力信号がCLB出力線XBに生ずる。同様にして、関数発生器ＨおよびＪへの五つの入力信号B0−B5の関数がCLC出力線に生ずる。
二つの関連関数発生器ＦおよびＧへの適切な真数表のローディングが五つの入力信号の所望の関数を生ずる。より詳細に述べると、一つの実施例においては、関数発生器ＦおよびＧに32ビット参照用テーブル（すなわち二つの16ビット参照用テーブル）を格納する。このようにして、多数の関数が互いに異なる値を関数発生器真数表形成用のメモリセルと制御マルチプレクサFGおよびHJとにロードすることによって代替的に生ずる。
三状態バッファ302
図4Bは三状態バッファB4−B7を含む三状態バッファブロック302（図3A）の概略図を示す。線の名称は図3Aに用いたものと同一である。ANDゲートA4−A7からの出力信号が三状態バッファB4−B7をそれぞれ制御する。例えばANDゲートA5が論理０出力信号を生ずると、バッファB5がイネーブルされ、線TQ5にバッファ経由の出力信号、すなわち線Q5への対応入力信号と合致する信号を生ずる。一方、ANDゲートA5に論理１出力信号を生ずると、バッファ５がディスエーブルされ、出力端子に高インピーダンスを生ずる。ANDゲートA4−A7からの出力信号はORゲートOR1からの出力信号で大域的に決まるか、メモリセルMM4−MM7によって個別的にそれぞれ決まる。メモリセルMM4,MM7が論理０を蓄積している場合は、ANDゲートA4−A7の出力信号もORゲートOR1からの信号と関係なく論理０になる。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の各バッファは２入力ANDゲートを含む。各ANDの一つの入力は大域イネーブル信号ENOUTで駆動される。もう一つの入力には線Q0′−Q7′が備えてあり、この線にCLB301（図3A）からの出力信号が供給される。回路配置中はこれらの線Q0−Q7に予想外の線が接続され得る。したがって、コンテンション防止のために、ENOUT信号を回路配置中ロウに保って、線Q0−Q7への出力信号全部がロウになりそれ以外の線の予想外の接続がコンテンションを生じないようにする。
隣接入力マトリックス303
図3Aを参照すると、この発生の実施例における隣接CLB301への接続は直接接続によるものはなくすべてPIP経由である。例えば、入力信号は入力相互接続配線構造303からCLB301に選択的に供給される。各入力線QS0−QS3は一つの関数発生器のCLB入力線の一つに接続可能である。この実施例において、線QS0は関数発生器ＦのCLB入力線F1に接続可能であり、線QS1は関数発生器ＧのCLB入力線G1に接続可能であり、線QS2は関数発生器ＨのCLB入力線H1に接続可能であり、線QS3は関数発生器ＪのCLB入力線J1に接続可能である。各関数発生器F,G,HおよびＪは入力信号に基づき任意の関数を生ずるように回路配置可能であるので、一つの関数発生器の任意の入力端子とその関数発生器の適宜ロードした参照用テーブルとに特定の信号を供給できる。したがって、どの入力信号がどの関数発生器入力端子に供給可能であるかは重要でない。
入力線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の各１への信号は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およびＫ上のPIPはCLB相互接続配線構造304を通じて出力線Q0−Q7の任意の数を駆動するように選択的にプログラムされている。CLB相互接続配線構造304は全面的なPIP分布を備えている（すなわち、CLB301の13の出力信号のうち桁上げ出力線COUTへの信号を除く任意のものが出力線Q0−Q7の任意のものを駆動できる）。相互接続配線構造304が上記以外の線の駆動用の出力信号にもバッファをかけていることに注目されたい。相互接続配線構造304の全体のPIP形成には108個（13×８）の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およびＪを参照用テーブルとして形成し、各参照用テーブルへの全入力信号を相互交換可能にしている。
・さらに、五入力関数を除き、関数発生器F,G,HおよびＪを相互交換可能にしている。
このように、この発明によると、上述のPIPまばら分布構造303,305,306および307がチップ表面積を著しく削減し融通性を最大にする。
出力線Q0−Q3への信号は隣接タイル内のCLBの入力線を駆動する。例えば、図2Aの二つのコアタイル101を図2Bに示すように横に並べて配置することにより、コアタイル101bの左側辺縁での出力線Q0はタイル101aの右側辺縁の入力線QE0に接続される。他の線もこれに対応して接続される。したがって、図2A,2Bおよび３と組み合わせて参照すると、CLBマトリックス202c（図2B参照）内のCLB301のCLB出力線Ｘ（図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出力線への信号は二つのトランジスタを通過する必要がある（信号Ｋ、すなわち一定電圧または接地信号は四つのトランジスタを通過することに注目されたい）。図3BはCLB301の12個のCLB出力線（X,XQ,XB,Y,YQ,YB,Z,ZQ,ZB,V,VQ,VB）と一つの電源／接地出力信号線Ｋとを出力線Q0に接続するPIPすべてを実動化するマルチプレクサ構造400を示す。マルチプレクサ構造400はメモリセル、すなわち12個のトランジスタから成る第１のトランジスタバンク351を制御して、そのバンクからどのトランジスタも選択されなかった場合に信号Ｋを選択するメモリセル31,32および33を含む。メモリセル31,32および33の一つに格納された論理１はバンク351内の三つの信号グループの各々から一つの信号を選択する。メモリセル31,32および33のすべてが論理０を格納している場合は、信号Ｋがノード30に生ずる。第２段では、メモリセル34および35がANDゲート、AND1−AND4を制御して、出力線VQ,ZQ,YQおよびXQの一つから出力信号を選択しその選択した信号を出力線Q0に供給するようにする。メモリセル31,32および33が論理０を格納していて信号Ｋを選択する場合は、メモリセル34および35は信号をノード30に供給するようにプログラムしなければならない。すなわち、よい長い経路を辿る一定値Ｋ以外の全信号に対して各経路にトランジスタ二つだけが必要となるので、13個のPIPを５個のメモリおよび16個のトランジスタだけで実動化する。線Ｋへの信号は切換信号ではないので信号経路を長くしても悪影響を受けない。マルチプレクサ構造、すなわちCLB301の13個の出力信号の一つを選択して所定の出力線を駆動するマルチプレクサ構造400が出力線Q0−Q7の各々に設けてある。これら13個の出力信号のいずれにも出力線Q0−Q7の駆動は不可能であるが、マルチプレクサ構造400は13個の出力信号のうち二つ以上を選択できない。このようにして、出力線Q0−Q7でのコンテンションを回避している。マルチプレクサ構造400のもう一つの実施例では、各々が一つのトランジスタを制御する13個のメモリセルが備えてある。このようにして各経路の所要トランジスタは１個だけとし、信号速度を高めている。しかし、この実施例はシリコン表面積を増加させることに注目されたい。
帰還相互接続配線構造305
図3Aに戻ると、帰還相互接続構造305は出力線Q0−Q3を回路配置融通性ある論理ブロックマトリックス202内のCLB入力線F2,G2,H2およびJ2に選択的に接続する。この実施例においてはCLB301からの出力信号はCLB301内の関数発生器F,G,HおよびＪの選択された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およびＪの一つの入力線を駆動できるようにする。関数発生器入力信号は相互に交換可能であるので（参照用テーブル入力は相互に交換可能）、タイル相互接続配線用線M0−M23は関数発生器の二つ以上の入力線に結合する必要はない。この通常の入力相互接続配線構造306の実施例においては、各CLB入力線FB,GB,HBおよびJBが六つのタイル相互接続配線用線M0−M23の一つにある信号で駆動されるようにPIPが備えられている。
この実施例におけるもう一つの基準として、CLB入力線のいずれも９個以上のPIPを備えていない。すなわち、図3Cを参照すると、マルチプレクサ構造401は３個のメモリセル36,37および38のみを用いていて、第１のトランジスタバンク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および図６を参照してこの発明をさらに述べると、PIPにより、長尺水平線LH0−LH7および長尺垂直線LV0−LV7、ならびに大域（水平および垂直）線GH0,GH1,GV0,GV1からレジスタRV,RZ,RYおよびRXへの接続が関数発生器J,H,GおよびＦを経由することなく可能になる。より詳細に述べると、長尺水平線LH0−LH7および長尺垂直線LV0−LV7ならびに大域水平線GH0,GH1および大域垂直線GV0,GV1をタイル相互接続配線用線M0−M23（図６）に選択的に結合する。これらタイル相互接続配線用線は、CLB入力線FB,GB,HBおよびJBに結合した場合は、関数発生器F,G,HおよびＪをそれそれバイパスし、信号（中間マルチプレクサ経由で）レジスタRX,RY,RZ,RVにそれぞれ供給する。大域線GH0,GH1,GV0およびGV1もレジスタ制御用相互接続配線構造307経由でレジスタRX,RY,RZおよびRVに選択的に結合されている。タイル相互接続配線用線M0−M23すべてを一つのCLB入力線FB,GB,HBまたはJBに接続するとともに各長尺線から一つのタイル相互接続配線用線M0−M23（図６に関連して後述）への接続を設けることによって、これら長尺線および大域線への信号が所要のレジスタを駆動することを確実にする。この発明においては、このPIPパターンにより、長尺線および大域線すべてへの信号が通常の入力相互接続配線構造306経由で関数発生器F,G,HおよびＪへの入力線を駆動することが可能になる。
出力相互接続配線マトリックス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をオンにするか否かを特定するように一つのメモリセルをロードする。
プログラム可能な経路指示マトリックス
図６は図2Aのプログラム可能な経路指示マトリックス201を示す。図６ではCLBマトリックス202内のすべてをPIPを一つの線への信号の流れを表わす三角形で示してあるが、プログラム可能な経路指示マトリックス201内の大部分のPIPは両方の線への信号の流れを表わす白ヌキの円で示してある。例外は、線TQ4乃至TQ7（図3Aの三状態バッファブロック302からの出力線）を長尺水平線LH0−LH7および長尺垂直線LV0−LV7に接続するPIP、および大域信号線GH0,GH1,GV0,GV1からの信号をタイル相互接続配線用線M0乃至M3に送るPIPである。
プログラム可能な経路指示マトリックス201には、大域線、長尺線、２倍長線および１倍長線が延びている。これら線の各々が、選ばれたタイル相互接続配線用線M0−M23に接続される。プログラム可能な経路指示マトリックス201は、近接タイル内のプログラム可能な経路指示マトリックスへの接続を、四つの方位方向に延びる１倍長線、すなわち１倍長北線N1−N11、１倍長東線E1−E11、１倍長南線S1−S11および１倍長西線W1−W11経由で形成する。タイル１枚隔ったプログラム可能な経路指示マトリックスへの接続は、２倍長北線DN0およびDN6、２倍長東線DE0およびDE6、２倍長南線および２倍長西線DW0およびDW6（図2A参照）で形成する。タイルを横切って延びる長尺垂直線LV0−LV7および長尺水平線LH0−LH7の各々はタイル相互接続配線用線M0−M23の一つに接続可能である。
図６に示したPIPの特定のパターンはまばらであるが信号転送性には優れている。より詳細に述べると、プログラム可能な経路指示マトリックス201はこの実施例では124個のPIPを含むに留まり、図６中の線全部の各々をもう一つの線に接続した場合に生ずる約4200個のPIPに比べてまばらである。しかし、このPIPパターンは、十分な中間PIPを用いれば任意の線を他の任意の線に接続できることを確実にする。例えば、図６に示すとおり、西線W1は東線E1に二つのPIP、すなわちタイル相互接続配線用線M1をこれら二つの線に接続する二つのPIPをオンにすることによって接続可能である。これと対照的に、西線W1と東線E2との間の接続には８個のPIPと９個の線とを要する。すなわち、西線W1をタイル相互接続配線用線M1、東線E1、タイル相互接続配線用線M20、西線W9、タイル相互接続配線用線M9、北線N9、タイル相互接続配線用線M21、および東線E2を通じて接続することを要する。この長さの経路は通常は望ましくないが、遅延が問題でない用途もある。それらの用途では、そのような経路を利用できることが設計の完成を可能にする。PIP二つだけの単純な経路が、線N1,S1,E1およびW1をタイル相互接続配線用線M1へ、線N2,S2,E2およびW2をタイル相互接続配線用線M2ほかへ相互接続配線用線M5経由でそれぞれ接続するのに利用できる。タイル相互接続配線用線M6は２倍長線DN6,DS6,DE6およびDW6に接続される。タイル相互接続配線用線M7乃至M11は北、南、東および西に延びる対応番号の１倍長線に接続される。
タイル相互接続配線用線M12−M13は動作速度の低下を最小に留めて信号転送融通性を高める交叉接続パターンを実動化し、まばらなPIP分布が貴重なチップ表面積節約を達成する。例えば、タイル相互接続配線用線M12は２倍長北線DN0、南線S3、東線E5、西線W1に接続され、タイル相互接続配線用線M15は北線N3、東線E8、２倍長南線DS6、および西線W4に接続される。このようにして、この発明はPIPの数を最小にする所定パターンを提供し、任意の線を他の任意の線に接続することを可能にする。すなわち、この発明はシリコン表面積を最小化したまま経路を常に提供することを確実にする。
経路指示マトリックスモデル
タイル相互接続配線用線M0−M23の各々は五つまたは六つの他の線に接続可能である。すなわち、図7Aに示すとおり、タイル相互接続配線用線M0−M23の各々は五つまたは六つの尖端のある星印で表わしてある。このモデルにおいて、８個のタイル相互接続配線用線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では２倍長線および１倍長線が示してある。他の実施例では、これ以外の長さが線の星状構成に用いてある。このように、この発明の星状構成は関連のCLBと本装置の他の部分との良好な接続可能性を確実にする。
大域相互接続配線構造
図８はチップ100（図１）の角部近傍に配置された大域信号パッドP113,P114,P115およびP116からチップ100の四つの辺の近傍に通常配置される大域信号線GTL,GTR,GBRおよびCBLにそれぞれ至る固定接続を示す。各大域信号線はコアタイル101の各行または列経由で垂直または水平に延びる複数の線にプログラム可能な形で接続される。例えば、左上の大域信号線GTLは大域垂直線GV1−ａ乃至GV1−ｎにPIP  PV1−ａ乃至PV1−ｎをそれぞれ経由して、すなわちコアタイル101の各列あたり一つのPIPを割り当てて接続できる。右上の大域信号線GTRはPIP  PH0−ａ乃至PH0−ｎをそれぞれ経由して、すなわちコアタイル101の各列あたり一つのPIPを割り当てて、大域水平線GH0−ａに接続できる。右下の大域信号線GBRはGV0−ｎ経由で大域垂直線GV0−ａ乃至GV0−ｎに接続できる。最後に、左下の大域信号線GBLは大域水平線GH1−ａ乃至GH1−ｎに接続可能である。GVまたはGHで始まる参照符号を付けた大域垂直線および大域水平線は、図2A,3および７に関連して述べたとおり、大域接続線の通り抜けるコアタイル101内のプログラム可能な経路指示マトリックス201およびCLBマトリックス202に接続可能である。
図８にも示すとおり、チップ100（図１）の辺縁タイル経由で延びる長尺線LV0L,LV7L,LH0T,LH7T,LV0R,LV7R,LH0BおよびLH7B（図８には簡略化のために示してないが図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経由で大域信号を供給できる。
選択自由の長尺線分割器
図１乃至９は部分的に線経由で配置可能な長尺線分割器を含むこの発明の一実施例を示す。各々が上側辺縁タイル104、六つのコアタイル101、および下側辺縁タイル106から成るタイル列二つを図９に示す。長尺垂直線LV0−LV7がコアタイル101全部を横断し、二つの列の各々において辺縁タイル104および106で終端する。長尺垂直線LV0−LV7は辺縁タイル104および106内のタイル相互接続配線用線M0−M15および線TQ0−TQ3の選ばれた一つに図10A−10Dに関連して従来のとおり接続可能である。さらに、図2Aおよび図６について上に述べたとおり、長尺線LV0−LV7はプログラム可能な経路指示マトリックス201内の選択された線に接続可能である。簡略化のために、水平長尺線LV0−LV7は図９には示してないが図2Aおよび図６には示してある。
図９に示した実施例において、三つの上側コアタイル101内の垂直長尺線LV0−LV7は長尺線分割器LLSにより三つの下側コアタイル101内の部分から分離されている。部分拡大図は、一つの実施例における長尺線分割器LLSが制御ゲートCGへのロウ電圧によりオフになるｎ型トランジスタを含み、これによって垂直長尺線を上側および下側セグメントに分割していることを示している。長尺線分割器LLSは大型チップの実施例において、上側および下側長尺線をチップ上の位置によって互いに別々に駆動できるようにするために通常用いる。図１に示すとおり、水平長尺線LV0−LV7もチップ100の中心で長尺線分割器LLSにより分割されている。他の実施例においては、長尺線の分割器LLSおよびLLSAなどのいくつかの長尺線分割器と同じ長尺線沿いに設けるか、長尺線分割器LLSBを一つの辺縁タイル内の長尺線の一端と隣接辺縁タイル内の長尺線の一端との間に設け、これら長尺線をプログラム可能な形で互いに接続する。
図2Aの実施例用の辺縁タイル
図10A−10Dは図2Aに示した辺縁タイルをより詳細に示す。より詳細に述べると、図10A−10Dは左側辺縁タイル103、上側辺縁タイル104、右側辺縁タイル105、および下側辺縁タイル106をそれぞれ示す。これらの実施例における各辺縁タイルはパッドPV、PZ、PY、およびPXの少なくとも一つに通常接続されるが、必ず接続される訳ではない。図１を参照して下により詳細に述べる他の実施例では、どのパッドにも接続されていない辺縁タイルが少なくとも一つある。
図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および２倍長線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、２倍長線DE0、DE6、DH0およびDH6に選択的に接続されるとともに長尺線LV0−LV7に接続された相互接続配線用線M0−M15を駆動するようにする。このようにして、辺縁タイル103は、チップ100および隣接コアタイル101チップへの外部接続を有するパッドへの接続、および隣接辺縁タイル（または下に詳述する隣接角部タイル）への接続を可能にする。パッドPV、PZ、PY、およびPXは図１に示すパッドP42、41、40および39をそれぞれ示す。
図10B、10C、および10Dは辺縁タイル104、105、および106をそれぞれ示す。これらタイルは向きを除いて同一構造であり図10Aに示したものと同一の参照数字を付けてあるので、図10B、10C、および10Dに示したインタフェース構造の詳細はここには記載しない。
オプションのパッド用のI/Oインタフェース
図10Cは接続ずみおよび未接続のパッドの組合せを示し、それによってマスクレベルで実現可能な融通性を図解する。
この実施例において、一つの未接続のパッドPZおよび接続ずみのパッドPV、PY、PXは、図１においてP6、P7およびP8（辺縁タイル105に接続されているの）で表した回路配置を実働化する。図１に示すとおり、各辺縁タイルんは所定数のパッドが接続されている。例えば、パッドP17は辺縁タイル106に接続された唯一のパッドである。したがって、図10Dに示すとおり、パッドPV、PZ、PY、およびPXのうちの一つだけ（この実施例ではパッドPV）が辺縁タイル106に接続されている。
図10Cに戻ると、パッドPZおよびそれの入力／出力バッファ構造IOBZは除去され、チップ上のパッドの合計数の削減によってチップ全体を小さくしている。入力線IZおよび出力線OZは、実施例によっては外部タイル105の外側になる領域で短絡させてある。このようにして、全タイル105を、パッドPV、PZ、PY、およびPXの数に関わりなく、同様にレイアウトする。図１に戻ると、パッドP6、P7およびP8は一つの辺縁タイル105に接続してある。図10Dにおいては、パッドPYおよび関連の構造IOBYおよびESDYは備えられていない。すなわち、図10Dの実施例は図１のパッドP26乃至P28を表している。この発明の他の実施例では、他のパッドは四つのパッド全部に除去がおよぶまで除去される。例えば、図１はパッドの接続を全く受けないいくつかの辺縁タイルを含んでいる（辺縁タイル103のうちの二つ、辺縁タイル104のうちの一つ、および辺縁タイル105の一つにはパッドは一つも接続されていない）。
角部タイル
図11A乃至11Dはチップ100（図１）の四つの角部タイル113、114、115および116をそれぞれ示す。図11AはIEEE 1149.1に適合した慣用の境界走査ブロックBSCANを含む。同ブロックについては、カリフォルニア州  95124、サンホゼ、ロジック  ドライブ  2100所在の  ジリンクス  インコーポレーテッド（Xilinx Inc.）発行  ルイス  モラレス（Luis Morales）著のジリンクス社応用ノート「XC4000  デバイスにおける境界走査」に詳細に記載されており、ここにそのノート全体を参照してこの明細書に組み入れる。図11Aにおいては、左上角部タイル113は、１倍長東線E0−E7から１倍長南線S0−S7にそれぞれ至る固定接続、および長尺水平線LH0−LH7から長尺垂直線LV0−LV7にそれぞれ至るプログラム可能な接続を含む。さらに、図11Aは境界走査ブロックBSCANのプログラム可能な接続を上記１倍長線および長尺線に供給する相互接続配線構造1101の一つの実施例を示す。角部タイル113は大域クロック信号SGCK1を供給する外部ピンP43へのプログラム可能な接続を含む。
図11Bに示した角部タイル11はその回路配置が角部タイル113（図11A）と同一である。より詳細に述べると、タイル114（図11B）は１倍長西線W0−W7を１倍長南線S0−S7にそれぞれ接続する固定接続と、長尺水平線LH0−LH7を長尺垂直線LV0−LV7にそれぞれ接続するプログラム可能な接続とを含む。図11Aおよび図11Bの両方において長尺垂直線LV0は長尺水平線LH0に接続されるが、タイル113および114のレイアウトのためにこれらの線は図の別の位置に描かれており、したがって角部タイル113および114は図11Aおよび図11Bで外観が異なっている。角部タイル114はクロック信号SGCK4供給用のクロック入力ピンP1を含む。角部タイル114は、チップ100の回路配置中にビット計数に用いれられる慣用の発振／計数回路DIVと上述の１倍長線および長尺線との間のプログラム可能な接続を提供する相互接続配線構造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からの出力信号を供給するか、１倍長西線W0−W3の一つへの信号（１倍長南線S0−SWへの信号とそれぞれ等しい。図11B参照）、または長尺水平線LH0−LH3の一つへの信号（長尺垂直線LV0−LV3への信号と等しい）を供給するかを決める。マルチプレクサ1201はフリップフロップ1214乃至1220による分周にかけられる出力信号を供給する。
マルチプレクサ1225および1226はフリップフロップ1227および1228のデータ入力端子への分周比選択入力をそれぞれ供給する。これらフリップフロップの出力はタップOSC1およびOSC2への信号として供給される。フリップフロップ1227および1228は原入力信号からクロックを受け、マルチプレクサ1225および1226からの出力信号のスキューを低下させる。マルチプレクサ1225はメモリセルOSC1AおよびOSC1Bによる制御を受けて、切換信号、すなわち４、16、64または256で分周したマルチプレクサ1201からの入力信号となり得る信号を供給する。メモリセル1203内の設定に応じて、マルチプレクサ1204はマルチプレクサ1201からの原クロック信号出力を送出でき、またはフリップフロップ1213からの出力である分周信号（原周波数を512で分周したもの）を供給できる。マルチプレクサ1204をマルチプレクサ1201の出力信号を出力するように設定した場合は、原クロック信号が２、８、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（図１）の作動開始に伴う立上げ機能のタイミングを制御する。
立上げ機能の期間には、回路配置モードから動作モードに動くのに三つに事態が必要である。すなわち、大域三状態信号端子GSRへの信号の放出、大域リセット信号端子GSRへの信号の放出、および負荷完結端子DONEへの信号（全ての回路配置ビットがFPGA内の適切な位置にロードされたことを表示する）の放出である。立上げブロックSTARTUPは、これらの信号の放出の順序およびこれら信号のタイミング（例えば、各信号間をクロックサイクル一つ、二つまたは三つ分だけ互いに分離するなど）をユーザがプログラムすることを可能にする。
図11Dは１倍長線および長尺線を他の三つの各部タイルと同様に接続して構成した左下タイル116を示す。左下角部タイル116は読戻しユニットRDBKも備える。読戻しブロックRDBKはユーザが回路配置メモリの内容を任意のデータ線に読み出し、また読戻しユニットRDBKのデータ線端子経由で任意の外部接続ピンに読み出すことを可能にする。読戻しユニットRDBK内のトリガー端子TRIGは、回路配置データ１行分を回路配置メモリからその回路配置メモリをロードした同じシフトレジスタにコピーすることをトリガーする信号のためのものである。クロック端子CLKへの信号は前記データの線DATAへのシフトアウトを制御する。読み出し中端子RIPへの信号は、データのシフトアウト中にトリガー端子TRIGからのもう一つの信号をチップが送出することを防ぐ。この回路においては、各部タイル116への当初の回路配置経路に応じて、チップ全体用の回路配置データがチップの動作中に外部ピンの任意の一つにチップからシフトアウトされる。
これまでの説明から、この発明のこれ以上の多数の実施例が当業者には明らかになろう。例えば、上の説明はコアタイルを方形または正方形にする実施例に関しているが、もう一つの実施例では六つの辺を有するタイルを含む。
上述のとおり、コアタイルは同一である必要はない。論理内容の互いに異なる一組のタイル設計も提供できる。タイル設計が共通境界制約に従う場合は、タイル設計を種々のパターンで組み合わせることによりチップを形成できる。好結果を得るには、各タイル設計がタイル内で良い信号分布を備えなければならない。タイルの経路指示マトリックスは入来信号を論理ブロック入力端子に効率的に分散させ、論理ブロック出力信号をタイル周縁に導かなければならない。RAMメモリだけでロジックを含まないタイルもあり、ロジックもメモリもなしで経路指示手段を含むタイルもある。さらに、入力／出力パッドを物理的に内部に含むタイルも設計でき、そのパッド付きタイルの設計はロジックへの分散アクセスを達成する他のタイル設計と組み合わせることができる。それら他の実施例もこの発明の範囲内に含めることを意図するものである。この発明を特許請求の範囲に記載する。
【図４Ｂ】
0003547446.tif 000003
【図１】
0003547446.tif 000004
【図２Ａ】
0003547446.tif 000005
【図２Ｂ】
0003547446.tif 000006
【図３Ａ】
0003547446.tif 000007
【図３Ｂ】
0003547446.tif 000008
【図３Ｃ】
0003547446.tif 000009
【図４Ａ】
0003547446.tif 000010
【図４Ｆ】
0003547446.tif 000011
【図４Ｃ】
0003547446.tif 000012
【図４Ｄ】
0003547446.tif 000013
【図４Ｅ】
0003547446.tif 000014
【図４Ｇ】
0003547446.tif 000015
【図７Ａ】
0003547446.tif 000016
【図５Ａ】
0003547446.tif 000017
【図５Ｂ】
0003547446.tif 000018
【図５Ｃ】
0003547446.tif 000019
【図６】
0003547446.tif 000020
【図７Ｂ】
0003547446.tif 000021
【図１１Ｄ】
0003547446.tif 000022
【図８】
0003547446.tif 000023
【図９】
0003547446.tif 000024
【図１０Ａ】
0003547446.tif 000025
【図１０Ｂ】
0003547446.tif 000026
【図１０Ｃ】
0003547446.tif 000027
【図１０Ｄ】
0003547446.tif 000028
【図１１Ａ】
0003547446.tif 000029
【図１１Ｂ】
0003547446.tif 000030
【図１１Ｃ】
0003547446.tif 000031
【図１２】
0003547446.tif 000032