JP3948497B2 - Fpga繰返し可能相互接続構成体 - Google Patents

Fpga繰返し可能相互接続構成体 Download PDF

Info

Publication number
JP3948497B2
JP3948497B2 JP54566298A JP54566298A JP3948497B2 JP 3948497 B2 JP3948497 B2 JP 3948497B2 JP 54566298 A JP54566298 A JP 54566298A JP 54566298 A JP54566298 A JP 54566298A JP 3948497 B2 JP3948497 B2 JP 3948497B2
Authority
JP
Japan
Prior art keywords
line
tile
lines
input
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP54566298A
Other languages
English (en)
Other versions
JP2001519133A (ja
Inventor
ピイ. ヤング,スティーブン
ジェイ. ニュー,ベルナード
ジェイ. カミレッリ,ニコラス
ジェイ. バウアー,トレボール
ベイパット,シェカー
ショハリー,カマル
クリシュナマーシー,スリダー
Original Assignee
ザイリンクス,インコーポレイテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ザイリンクス,インコーポレイテッド filed Critical ザイリンクス,インコーポレイテッド
Publication of JP2001519133A publication Critical patent/JP2001519133A/ja
Application granted granted Critical
Publication of JP3948497B2 publication Critical patent/JP3948497B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/17704Logic 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/17736Structural details of routing resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/1778Structural details for adapting physical parameters
    • H03K19/17796Structural details for adapting physical parameters for physical disposition of blocks

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

発明の背景
発明の分野
本発明はプログラム可能な集積回路装置に関するものであって、更に詳細には、フィールドプログラマブル即ち現場においてプログラム可能な論理装置における相互接続構成体に関するものである。
従来技術の説明
フィールドプログラマブルゲートアレイ(FPGA)はプログラム可能な相互接続構成体を介して接続することの可能な論理ブロックを有している。該相互接続構成体は、典型的に、各論理ブロックを各その他の論理ブロックへ接続させるためのものである。初期のFPGAは、互いに及びプログラム可能な相互接続点(PIP)において論理ブロックの入力及び出力端子へ連結させることの可能な短い相互接続セグメントを提供することによってこのことを達成していた。これらのFPGAが益々大型となり且つ益々複雑となるに従い、相互接続構成体もより大型及びより複雑なものとならねばならない。速度(性能)を改善するために、隣接する論理ブロックに対する直接接続が提供されており、且つ多数の論理ブロックからなる距離にわたり信号を送信するために、より長いラインが提供されている。シリコン面積を節約するために、PIPは余り頻繁でない程度に設けられていた。PIPが存在する数が少ないと、ルーチング即ち経路付けは柔軟性が劣るが(同数のルーチング即ち経路付けラインの場合に)、典型的に、負荷が減少するためにより高速である。余り使用されないPIPのみを除去することによって、ルーチングの柔軟性が影響されることを最小とすることが可能である。従って、性能と、シリコン面積と、ルーチングラインの数と、ルーチングの柔軟性との間にはトレードオフ即ち利益衡量が存在している。
幾つかの米国特許では、FPGAにおける論理ブロックを相互接続するための構成体を示している。米国再発行特許第34,363号において、Freemanは最初のFPGA相互接続構成体を記載しており、且つ短いルーチングセグメントと柔軟性のある接続部及び例えばクロック信号等の信号に対するグローバルラインを包含している。米国特許第4,642,487号において、Carterは、Freemanの相互接続構成体に対して隣接する論理ブロック間に直接接続を付加することを示している。これらの直接接続は隣接する論理ブロック間において高速の経路を与える。米国特許第5,073,729号において、Greene et alは可変長のルーチングラインを有するセグメント化した相互接続構成体を示している。米国特許第5,469,003号において、Keanは、境界の間に延在するより長い長さのラインに対して境界において接続可能な短い長さのライン、及びこれらの境界の間に延在する更に長い長さのラインを有するより大きな境界を有する階層的相互接続構成体を示している。Keanは、特に、1個の論理ブロックの長さが各論理ブロックを次のものへ接続させるラインと、4個の論理ブロックの長さがそれらが通過する各論理ブロックへ接続可能なラインと、16個の論理ブロックの長さが長さ4境界において長さ4ラインへ接続可能であるが論理ブロックに対して直接的に接続可能ではないラインとを示している。Keanのアーキテクチュアにおいては、2つの異なる階層的ブロック内の(即ち、境界の両側上での)隣接する論理ブロックは同一の階層的ブロック内の隣接する論理ブロックとは異なって互いに接続する。
米国特許第5,581,199号において、Pierce et alは異なる長さのラインを有するタイルをベースとした相互接続構成体を示しており、その場合に、矩形アレイ状の各タイルは各その他のタイルと同一のものとすることが可能である。Pierce et alのアーキテクチュアにおいては、相互接続線は論理ブロックの出力構成体の一部である。1つを超える長さの出力線が他の論理ブロック入力線を超えて延在しており、それに対して論理ブロック出力線を接続することが可能である。前述した特許の全ては、FPGAにおける従来の経路付け構成体をより良く理解するために検討することが可能である。
Freeman及びGreene et alによって記載されている相互接続構成体においては、各経路は一連のプログラミングすることによって連結された相互接続線をトラバースすることによって形成され、即ち一連の比較的短い相互接続線がプログラミングすることによって端部同志を接続しより長い経路を形成する。与えられた信号経路上での比較的多数のプログラム可能な接続部はその信号経路内に遅延を導入し、従って、FPGAの性能を低下させる。このような相互接続構成体は「汎用相互接続体」と呼ばれる。
最初にCarterによって記載され且つKeanのアーキテクチュア内に包含されている直接接続部は隣接する論理ブロック間において高速の経路を与えるものであるが、Carterの構成においては、隣接していないいずれか2つのブロック間の距離をトラバースするためには汎用相互接続体を使用せねばならない。従って、非隣接ブロック間において信号を相互接続させることを必要とするのに充分に大きいか又は充分に複雑な回路(それは、しばしば発生する)はこれらの接続を行うために汎用相互接続体を使用せねばならない。短い経路の場合には、汎用相互接続体は直接相互接続体よりも一層遅い。何故ならば、汎用相互接続体は幾つかのPIPを介して接続せねばならず、又は、長いラインが使用される場合には、長いか又は高度に負荷がかけられた信号を受付けるためにバッファせねばならず、遅延を導入させるからである。更に、シリコン面積の観点からは、単に数個のブロックをトラバースするに過ぎない短い経路に対して長い経路を使用することは非効率的である。何故ならば、長いラインはそうでない場合にはより長いラインに対して使用することが可能だからである。更に、FPGAにおける論理設計を実現するソフトウエアは、典型的に、相互接続した論理を密接して配置させるので、この配置手法を有効に利用する構成体はソフトウエアと良好に動作し、その結果、ルーチングソフトウエアに対するコンパイル時間が一層短くなり且つ回路を実現する場合により効率的なものとなる。
「クワッドライン(quad lines)」と呼ばれる相互接続線はザイリンクス、インコーポレイテッドからのXC4000EX FPGA内に設けられており、且つカリフォルニア州95124、サンノゼ、2100ロジックドライブのザイリンクス、インコーポレイテッドから入手可能な「プログラム可能な論理データブック(The Programmable Logic Data Book)」という題名のザイリンクス1996データブックの4−32乃至4−37頁に記載されており、以後、「ザイリンクス1996データブック(the Xilinx 1996 Data Book)」と呼称する(著作権の所有者であるザイリンクス、インコポレイテッドは、これら及び本明細書において参照するその他の頁をコピーすることに異議を唱えるものではないが、そうでない場合には、どのような場合であっても全ての著作権を保持する)。然しながら、各クワッドラインはそれがトラバースする全てのタイルと接触するので、これらのラインは多数のPIPを有しており、その各々はRC遅延を付加する。
Pierce et alは隣接する論理ブロック間及び幾つかのタイル離れた論理ブロック間の両方において高速の経路を提供している。Pierce et alアーキテクチュアの出力線は、各々、制限した組の他の論理ブロックの入力端を駆動することが可能である。然しながら、可能なデスティネーション(宛先)は選択した論理ブロックに制限され、且つ相互接続線はデスティネーション論理ブロックのある特定の入力端へアクセスすることが可能であるに過ぎない。
上述した従来の構成体の各々において、各相互接続線は他の論理ブロックの入力端に対するプログラム可能な接続部を有している。然しながら、Freeman、Carter、Pierce et alの構成体においては、与えられた論理ブロック入力端は水平相互接続線か又は垂直相互接続線のいずれかから駆動することが可能なものであるが、両方から駆動可能なものではない。別のアプローチは、論理ブロック入力端からの相互接続線をルーチングマトリクスによって分離することであり、そのことは各相互接続線に対して論理ブロック入力端へのより柔軟性のあるアクセスを与える。このようなアーキテクチュアはザイリンクス、インコーポレイテッドからのザイリンクスXC5200ファミリィのFPGAにおいて使用されており、且つザイリンクス1996データブックの4−184、4−185及び4−192乃至4−196頁に記載されている。XC5200ファミリィ相互接続構成体においては、タイルに入る殆どの相互接続線は直接的に論理ブロック入力端又は出力端に接続するのではなく、該タイル内のルーチングマトリクスへ接続する。相互接続線の対の聞及び相互接続線と論理ブロック入力端との間の接続は、タイルから外に出ることのない「タイル相互接続線」と呼ばれるラインを介して行われる。1個のタイルの端部から該タイル内の論理ブロックへの経路内においてエキストラな相互接続線を有することの利点は、ルーチングマトリクスは柔軟性のあるものであるが比較的小さな量のシリコン面積を消費するということである。PIPの結合は、タイルへ入る任意のラインからデスティネーション論理ブロックのいずれかの所望の入力端へのアクセスを行うことを可能とする。それでもPIPの総数は多くのその他の相互接続構成体におけるものよりも少ない。欠点は、タイル相互接続線をオン/オフすることはトラバースされる各タイルに対する経路内にある量の遅延を導入するということである。この遅延はFPGAを介しての信号の高速伝搬を阻止する。従って、Tavana et alは、それらが通過する全てのタイルへ接続可能な長いライン及び1個のタイルにおけるタイル相互接続線をバイパスする二重長ラインを提供している。これらのラインはトラバースされるタイル内の論理ブロックへアクセスすることなしに1個又はそれ以上のタイルをトラバースする信号に対して使用することが可能である。
Keanは入力マルチプレクサスイッチを使用する論理ブロック入力端から相互接続線を分離しており、そのことは該入力端に対するルーチングの柔軟性を与えている。
論理ブロック間の最も遅い信号経路は、典型的に、回路の性能を決定するものであるから、最も遅い経路を可及的に高速なものとさせることが有益的である。このことを達成する1つの方法は、FPGA全体にわたって全ての信号経路上で比較的一様な遅延が存在するように相互接続構成体を設計することである。上述したルーチング構成体においては、信号経路上の遅延の典型的な分布は平均よりも著しく大きな遅延を有する2,3個の信号経路があることを示す。これらの信号経路は、典型的に、大きな「RCツリー」を有するものであって、即ち、抵抗(例えば、バッファされていないPIP)をトラバースする信号経路であって、それは抵抗のデスティネーション側において大きな容量を有している。比較的一様な遅延を有する相互接続構成体は、信号経路上の大きな容量(例えば、より長い相互接続線)を該抵抗のソース側に予測可能に配置される場合、又は信号経路のソース端部に可及的に近づけて配置される場合にはより良く実現することが可能である。
高いファンアウトの信号は大きな容量を有しており且つ、しばしば、低いファンアウトの信号よりもより低速である。従来のルーチング構成体は比較的大きなRC遅延を有する高ファンアウト信号ルーチングを有するものであった。相互接続構成体は、理想的には、他の信号の遅延と同等の遅延を有する高ファンアウト信号ルーチングを提供するものである。
従って、(1)FPGA全体にわたり高ファンアウト信号を包含する信号の一様に高速の伝搬、(2)高速の経路を使用して非隣接及び隣接するブロックにおける局所化した回路の実現、(3)ソフトウエアによって使用することの容易性、(4)共通に使用される論理機能の効率的な実現、(5)消費されるシリコン面積当たりの高度のルーチング柔軟性を可能とさせる相互接続構成体を見つけ出すことが望ましい。
局所化した回路の性能を改善する1つの方法は、与えられた論理ブロックの出力端から同一の論理ブロックの入力端へのフィードバック経路を与えることである。このような高速フィードバック経路は同一のCLE内の相次ぐ機能(関数)発生器にわたる組合わせ論理を高速化させるのに有用である。このような1つのフィードバック経路はルーセントテクノロジーズインコーポレイテッドからのORCA(商標)OR2C FPGAにおいて実現されている(「ORCA」はルーセントテクノロジーズインコーポレイテッドによって所有されている商標である)。ORCA論理ブロックはフィラデルフィア州18103、アレンタウン、ルーム306−15P−BA、555ユニオンブルバード、ルーセントテクノロジーズインコポレイテッド、マイクロエレクトロニクスグループから入手可能な「フィールドプログラマブルゲートアレイ(Field−Programmable Gate Arrays)」という題名のルーセントテクノロジーズ1996年10月データブックの2−9乃至2−28頁に記載されている。図1Aは出力マルチプレクサ101を有するORCA OR2C論理ブロック100の概略図を示している。図1Bは図1Aの論理ブロック100に対して設けられたプログラム可能なフィードバック経路を示している。該フィードバック経路は論理ブロック100の出力端O4,O3,O2,O1,O0から同一の論理ブロックの入力端A4,A3,A2,A1,A0,B4,B3,B2,B1,B0,C0,WD3,WD2,WD1,WD0へ延在している。例えば、1つのこのようなフィードバック経路は出力端O0から出力線102,PIP103,線104,バッファ105,線106,PIP107,線108を介して論理ブロック入力端A0へ延在している。ORCA OR2C装置においては、論理ブロックにおける出力マルチプレクサの出力端は論理ブロック入力端へフィードバックする。
出力マルチプレクサを介しての、且つ入力マルチプレクサを介してコンフィギャラブルロジックエレメント(CLE)即ち形態特定可能論理要素へ戻るCLEからのフィードバック経路はザイリンクス、インコーポレイテッドからのFPGAのXC5200ファミリィ内に組込まれている。XC5200ファミリィフィードバック経路についてはザイリンクス1996データブックの4−192及び4−193頁に記載されている。
ORCA OR2C及びXC5200ファミリィは、出力マルチプレクサを介してのルーチングフィードバック経路によって得られる付加的な柔軟性の利点を有している。然しながら、このアプローチは、又、出力マルチプレクサを介して通過することの付加的な遅延によって発生される関連する速度上の犠牲を有している。
別のフィードバック技術はザイリンクス1996データブックの4−31乃至4−37頁に記載されている。この技術は、ザイリンクス1996データブックの4−34頁の図27に示されているように、FPGAのXC4000EXファミリィにおいて使用されている。このフィードバック経路は「DIRECT(直接)」として示されている線上のXC4000EXタイルから出て且つ「FEEDBACK(フィードバック)」として示されている線上のタイルへ再度入り高速のフィードバック経路を完成する。然しながら、XC4000EXのCLE(図27において「CLB」として示されている)は出力マルチプレクサを包含するものではない(本明細書において使用される「出力マルチプレクサ」という用語は、各々が単一の論理ブロック出力を発生する2個を超えるマルチプレクサのことを意味し、その場合に各マルチプレクサは入力として2つを超える関数発生器出力を有している)。
更に別のフィードバック技術は、カリフォルニア州95134−2020、サンノゼ、2610オーチャードパークウエイ、アルテラコーポレイションから入手可能なアルテラデジタルライブラリィ1996からの「フレックス10K埋込型プログラム可能論理ファミリィデータシート(FLEX 10K Embedded Programmable Logic FamiIy Data Sheet)」の31−53頁に開示されているように、アルテラコーポレイションからのフレックス 10K(FLEX 10K(商標))FPGAにおいて使用されている(「FLEX 10K」はアルテラコーポレイションによって所有されている商標である)。FLEX 10K論理ブロックにおいては、8個のフィードバック経路が8個の4入力関数発生器を具備する論理ブロック内に設けられている。従って、関数発生器出力の各々が関数発生器の各々の1個の入力を同時的に駆動することは不可能である。従って、関数発生器内への論理のソフトウエアマッピングは、同一の論理ブロック内の別の特定の関数発生器における論理に関連するフィードバック経路を有する特定の関数発生器内に論理を配置させることの必要性によって複雑なものとされる。2個又はそれ以上の関数発生器が同一の論理ブロックにおける単一の関数発生器にデータを供給する場合には、FLEX10K論理ブロックの特定の関数発生器内に論理を配置させることが必要とされる場合がある。FLEX 10K入力マルチプレクサ内に充分な数のPIPが設けられる場合には、この制限を解消することが可能である。然しながら、アルテラの解決方法は、多数のPIP(且つその結果発生するより大きなシリコン面積)と配置ソフトウエア複雑性との間の暗示的なトレードオフ即ち利益衡量を腹んでいる。
発明の要約
本発明の1つの側面によれば、与えられた論理ブロックを高速の経路を介して隣接する論理ブロック及び幾つかのタイル分離れた論理ブロックの両方へ接続させることが可能であるように、FPGA相互接続構成体は配線用セグメント長及び論理ブロックに対する接続部の結合を有している。好適モードにおいては、本FPGAは同一のタイルからなる二次元アレイを有している。各タイル内には1個の論理ブロックが存在している。又、各タイル内にはプログラム可能な相互接続点(PIP)及び相互接続線のセグメントが設けられており、それらは隣接するタイル内の相互接続線のセグメントを連結させる。これらの連結されたセグメントは、幾つかのタイルを介してある距離離れた他のタイル内のPIPへ延在する相互接続線を形成する。隣接するタイルへ接続する線(単一長線と呼ばれる)及び第一タイルを少なくとも2個及び3個のタイル離れている少なくとも第二及び第三タイルへ接続している少なくとも3個のタイル長の線(中間長線と呼ばれる)の結合は、相互接続階層を形成し、それは任意の論理ブロックを任意の他の論理ブロックへ接続させることを可能とし、且つ、更に、隣接するタイル及びある距離離れた両方のタイルに対する高速の経路を可能とさせる。より長い相互接続線(長尺線と呼ばれる)はかなり離れたタイルの効率的な相互接続を可能とさせるための階層の第三レベルとして包含させることが可能である。長尺線はタイルアレイの幅全体にわたることが可能であり、又は2個又はそれ以上のより短い長尺線にプログラミングによってセグメント化させることが可能である。1実施例においては、2個又はそれ以上のタイルにわたるPIPのパターンが長尺線の長さに沿って繰返されているという点において長尺線は中間長線から区別される。タイルアレイの寸法が増加される場合には、パターンの更なるインスタンスが発生する。対照的に、本発明に基づく中間長線はアレイの寸法が増加された場合に変化することのない所定長のものである。タイルアレイの寸法が増加されると、付加的な中間長線が加えられる。
本発明の独特な側面は、その相互接続線に対してどのPIPも接続することのない少なくとも1個のタイルを介して延在しながら、少なくとも3個の別々のタイルにおける論理ブロックへプログラミングによって接続することの可能な1本の相互接続線(特に、中間長線又は長尺線)を有していることである。このような相互接続線は、どのPIPも該相互接続線に対して接続するものではないタイルに対して「接続不可能」であり且つ該タイル内の論理ブロックに対して「接続不可能」であると言われるが、他のタイル内のPIPを介して該相互接続線から該論理ブロックへ接続させることが可能である。相互接続線から与えられたタイル内の論理ブロックへのプログラム可能な接続は、(a)直接的に論理ブロック入力端に対して、(b)同一のタイル内の相互接続線へ接続している1個又はそれ以上のPIPを介して、又は(c)同一のタイル内の相互接続線へ接続している1個又はそれ以上のPIPを介して且つ1個又はそれ以上の単一長線を介して、行うことが可能である。相互接続線から与えられたタイル内の論理ブロックへのこのようないずれかのプログラム可能な接続を形成することが可能である場合には、その相互接続線は該論理ブロックに対して及び該タイルに対して「接続可能」であると言われる。
本発明の1つの側面の好適実施例においては、発信元のタイルから3個のタイル分離れた(即ち、発信元タイルから2個のタイルだけ離隔されている)タイルに対して中間長ラインが接続し、次いで継続し且つ6個のタイル分離れた(即ち、発信元タイルから5個のタイルだけ離隔されている)タイルへ接続する。この中間長線(「ヘックス線(hex line)」と呼ばれる)は1個、2個、4個、5個のタイル分離れている中間のタイルへ接続するものではない。その代わりに、これらのタイルは発信元タイル、3番目のタイル、又は6番目のタイルから単一長線を使用して間接的に到達される。ヘックス線によってトラバースされる7個のタイルのうちの3個のみを接続することは、PIPの数を減少させ、従って、相互接続線を形成するために必要とされるシリコン面積を減少させ(それにより、FPGAのコストを低下させ)且つ、更に、PIPによって付加される容量を減少させる(それにより、FPGAの性能を増加させる)。更に、この中間長ルーチング即ち経路付けと、隣りのタイルへの直接接続と、離れたタイルに対する長尺線との結合は、信号の高度に柔軟性のあるルーチング即ち経路付けを可能とさせる。
本発明のこの側面の相互接続構成体の多くの変形例が可能である。このような1つの変形例は、相互接続線(中間長線又は長尺線)に関し非対称的PIPパターンを使用することであり、その場合に該相互接続線は3個の論理ブロックを接続し、これら3個の論理ブロックのうちの2個が隣接したタイル内にあり、一方3番目の論理ブロックは他の2つのタイルから離隔されたタイル内に存在している。
FPGAがより大型となると、タイル当たりに必要とされるルーチング即ち経路付けの量がより大きくなる。従って、必要なPIPを実現するために必要とされるシリコン面積がより大型化する傾向となり、且つFPGAにおけるタイル数が増加するに従いタイル当たりのシリコン面積が増加する。タイル当たりに必要とされるPIPの数を減少させることが望ましい。
1実施例においては、単一長線のみが論理ブロック入力端に対する接続部を有している。中間長線は互いに及び単一長線に対する接続部を有しているが、論理ブロック入力端に対する接続部を有するものではない。長尺線は中間長線に対する接続部を有しているが単一長線に対して又は論理ブロック入力端に対する接続部を有するものではない。従って、1個のタイル内のPIPの数が減少されている。中間長線の場合の如く、長尺線上のPIPの数を減少させることはシリコン面積と長尺線上の容量の両方を減少させ、それによりRC遅延を減少させる。幾つかの実施例においては、特別のタイルが種々の相互接続線の間で付加的な接続部を有しており、高ファンアウト信号の分布を容易なものとさせる。幾つかの実施例においては、論理ブロック入力端への直接的なアクセスを有しているグローバル線がクロック又はその他の高ファンアウト制御信号等のグローバル信号に対して使用可能である。幾つかの実施例においては、長尺線は特別のタイルにおける代わりに繰返し可能なタイル内において互いに対する接続部を有している。
幾つかの実施例においては、単一長線はバッファされていないPIPによって駆動され、且つ中間長線及び長尺線はバッファされているPIPによって駆動される。信号は、典型的に、最初により長いバッファされている相互接続線上で経路付けされ、次いでより短いバッファされていない線上でファンアウトされる。このように、大型のバッファされていないRCツリーが開示され、FPGAを介しての信号経路に関する遅延をより一様なものとさせ且つ性能を改善させる。より一様な遅延は、又、設計サイクルにおける初期の段階で回路の性能を予測することをより容易なものとさせる。
本発明の第二の側面によれば、論理ブロックはコンフィギャラブルロジックェレメント(CLE)即ち形態特定可能論理要素と出力マルチプレクサとを有している。直接的に又は入力マルチプレクサを介してのいずれかによって幾つかのCLE出力端を幾つかのCLE入力端へ接続させる高速のフィードバック経路が論理ブロック内に設けられている。該高速のフィードバック経路は、出力マルチプレクサをバイパスし、従って、従来のFPGA論理ブロックにおいて得られることが可能なものよりも一層高速の接続を提供している。高速のフィードバック経路を駆動するCLE出力端はバッファ型とするか又は非バッファ型とすることが可能である。該高速のフィードバック経路は、関数発生器入力端又はその他のCLE入力端を駆動するために使用することが可能である。1実施例においては、高速のフィードバック相互接続線は関数発生器の出力端から直接的にとられる。その他の実施例においては、CLEからの他の信号が高速のフィードバック経路を使用することを可能とするためにマルチプレクサが挿入されている。いずれの場合においても、同一の出力が高速のフィードバック経路と同一の論理ブロック内の出力マルチプレクサに対する入力端のうちの少なくとも幾つかの両方を駆動する。出力マルチプレクサをバイパスすることによって、該フィードバック経路はある程度の柔軟性を失うが出力マルチプレクサをトラバースすることによって発生される遅延を取り除いている。
論理ブロック当たり4個の4入力関数発生器を具備する1実施例においては、4本の高速のフィードバック経路が設けられており、その各々は各関数発生器の異なる入力端へ延在している(即ち、各関数発生器は4個の入力端を有しており、その各入力端は4個の関数発生器のうちの異なる1つによって駆動することが可能である)。従って、これら4つの関数をどのようにCLE内にマッピングするかに拘らず、互いにデータを供給する関数発生器の全ての可能な組合わせを高速のフィードバック経路で完全に実現することが可能である。従って、高性能の高速のフィードバック経路を使用して多様な広範な関数即ち機能を実現することが可能である。最大で5個の関数発生器を構成するCLE実施例は、本発明のこの側面の利点を得ることが可能であり、5個の関数発生器出力端の各々が他の4個の関数発生器の各々の4個の入力端のうちの異なる1つへデータを供給する。
本発明の3番目の側面によれば、高ファンアウト信号をアレイ内の任意のタイルへ配分させることが可能である。水平長尺線上の信号は複数個のタイルからなる1つの行をトラバースし、その場合に、それはヘックス線及び単一長線を介して各タイル内の論理ブロックと接触する。幾つかの水平なヘックス線へ接続している水平な単一長線はプログラミングによって垂直な長尺線を駆動することが可能である。これらのプログラム可能な接続部を使用して、水平な長尺線バス上の信号は垂直な長尺線へ転送される。垂直な長尺線から、高ファンアウト信号が複数個のタイルからなるアレイへ送給される。
【図面の簡単な説明】
図1Aは従来のORCA OR2C論理ブロック(100)の概略図を示している。
図1BはORCA OR2C論理ブロック100の出力端から同一の論理ブロックの入力端へのプログラム可能のフィードバック経路を示している。
図2は本発明の1実施例に基づく単一長及び中間長相互接続線のいくつかを示している。図2は図3Aの簡単化した表示である。
図3Aは中間長線が3番目及び6番日毎のタイルへ接続されている場合の(即ち、ヘックスバスが使用されている)単一のタイルのバス表示を示している。
図3Bは単一長バス及びスイッチング構成体403の異なる表示を示した図3Aの僅かに変更したものである。
図3Cは好適実施例における単一のタイルの詳細な表示を示している。図3Aに示した全ての特徴が示されており、且つ幾つかの付加的な特徴が包含されている。
図4はINTERCONNECT(相互接続部)として示した図3Cの領域を示している。
図5は図3Cの出力マルチプレクサ(OMUX)を示している。
図6は図3Cの形態特定可能論理要素(CLE)に対する入力信号及び出力信号を示している。
図6A及び6Bは図3CのCLEに対する内部論理を示している。全体的なCLEを見るためには、図6A及び6Bを図6Aの上部における手引きに示したように並べて観察せねばならない。
図7は図3Cの入力マルチプレクサ(IMUX)を示している。
図8はヘックス線及び単一長線を使用した信号経路のルーチング例を示している。
図9は長尺線と、ヘックス線と、単一長線とを使用した信号経路のルーチング例を示している。
図10は複数個のタイルからなる列へ送給される高ファンアウト制御信号のルーチング例を示している。
図11は複数個のタイルからなる列へ送給される高ファンアウト関数発生器入力信号のルーチング例を示している。
図12は複数個のタイルからなるアレイへ高ファンアウト信号を送給するために図10及び/又は11の相互接続体をどのようにして結合するかの1例を示している。
図13は与えられたCLEの出力端から同一のCLEの入力端への高速のフィードバック経路を示した図3Cの実施例における論理ブロックの一部の簡単化した表示である。
図面の詳細な説明
図面全体にわたって以下の図面の表記方法が使用されている。2つの線の交差点における小さな中実の黒のドットは交差する線の間の永久的な電気的接続を表わしている。2つの線の間の交差点を取り囲むか又は単一の線を2つの線セグメントへ分割する開いた円はそれらの線又は線セグメントの間のプログラム可能な双方向接続を表わしている(例えば、接続を形成するためにターンオンされるパストランジスタ)。2つの線の交差点における開いた三角形はその三角形の頂点によって指し示されている線へ向かう信号の流れを有するプログラム可能な接続を表わしている(該信号は、勿論、その線の全長にわたって存在している。従って、反対方向を示している三角形は同一の信号の流れを有するものである。何故ならば、その三角形は同一の線を指し示すからである)。2つのバスの間の接続を示す三角形は、そのバスを構成している線の間において少なくとも1個の接続が存在していることを表わしている。本発明の1実施例によれば、プログラム可能な相互接続点(PIP)を使用することによってプログラム可能な接続が提供されており、その場合に各PIPは少なくとも1個のトランジスタを有している。
1個のタイル又はブロック構成体内において終了する(即ち、1個のタイル又はブロックの境界へ延在するものではない)線はそのタイル又はブロック内において物理的に終端されている。そのタイルの境界へ延在する線は次のタイル上の線と接続し、2つのタイルが当接される場合に接触される。注意すべきことであるが、タイルの端部へ延在し、従って、となりのタイル内へ延在する幾つかの線はタイル境界において名前が変わる。
本発明概念の簡単化した表示
図2は本発明の1実施例に基づく単一長相互接続線及び中間長相互接続線の幾つかを簡単化した形態で示している。図2はFPGAにおける複数個のタイルからなるアレイの一部を示している。各タイル内においては論理ブロックL及びルーチング又はスイッチング構成体Rが存在している。各タイル内には、又、隣接するタイル内の線セグメントと接続して相互接続線を形成する線セグメントが存在している。FPGA内の相互接続線の殆どは、本発明の接続特性をぼやかすことがないように図2においては示されていない。TILE1,TILE2,TILE3として示した3個のタイルがより詳細に示されており、且つTILE1,TILE2,TILE3から延在する単一長及び中間長相互接続線が示されている(然しながら、水平方向に延在する中間長線は示していない)。単一長線N,S,E,WはTILE2から隣りの4個のタイルに対して北、南、東、西に延在している。記号が付してないが等価な線がTILE1及びTILE3からも延在している。その他のすべてのタイル内においても同一の構造が存在しているが図2には示していない。これらの単一長線N,S,E,Wは隣りのタイル内のスイッチング構成体Rの間に延在しており、且つ論理ブロックLに対するプログラム可能な接続部を有している。
中間長線も各タイルから北、南、東及び西へ延在して、3個及び6個のタイル分離れた他のタイルへ接続する。従って、この実施例においては、中間長線は前に定義したような「ヘックス線」である。垂直に延在する(北及び南)ヘックス線のみが示されており、接続をぼやかすことを回避している(後の図は完全な接続パターンを示している)。
TILE2から、ヘックス線6VNは6個のタイルの長さにわたり北へ延在し、北へ3個のタイルであるTILE1へ接続すると共に北へ6個のタイルである別のタイル(不図示)へ接続している。又、TILE2から、ヘックス線6VSは6個のタイル分南へ延在し、TILE3へ接続すると共に南へ6個のタイルである別のタイル(不図示)へ接続している。ヘックス線6VMはタイルTILE2をタイルTILE1及びTILE3へ接続している。従って、3個のヘックス線が垂直方向に延在しており且つTILE2へ接続している。又、TILE2において、線6VSはこれら2つの線の端部を連結するPIPによって示されるように、プログラミングによって線6VNへ接続することが可能である。このように、始めのタイルから12個のタイル分離れたタイルに対して容易な接続を使用することが可能である。6個のタイル分の長さの別の相互接続線への接続部へ延在するためには単に1個の付加的な接続部が必要とされるに過ぎない。
注意すべきことであるが、TILE2内において、単一長線N,S,E,Wは論理ブロックLへのアクセスを有するに過ぎない。従って、ヘックス線上の信号はデスティネーション(宛先)タイル内の論理ブロックLへアクセスするためには単一長線へ転送されねばならない。線6VS上のTILE2へエンターする信号は線W,N又はEへ接続することが可能であり且つそれによりTILE2内の論理ブロックLへ接続することが可能である。更に、現在単一長線W,N又はE上に存在する信号は、更に、TILE2の西、北又は東にあるタイル内の論理ブロックLへアクセスすることが可能である。この実施例においては、ヘックス線6VSから単一長線Sへの接続は設けられていない。何故ならば、この接続を除去することはシリコン面積を節約するからである。TILE2の南側のタイルへは別の経路を介してアクセスすることが可能である。図2の実施例においては、TILE3内の信号は、(1)北側へ2つの単一長線をトラバースするか、又は(2)単一長線W又はEへ接続するTILE2に対するヘックス線6VMを取り、次いでTILE2内のスイッチング構成体Rへエンターし且つ単一長線W又はEから該スイッチング構成体内部の単一長線Sへ「バウンス(跳ね返り)」(同一のタイル内の相互接続線上へ移動し且つそれから出ること)のいずれかによってTILE2の南側のタイルの論理ブロックへ到達することが可能である。2番目の変形例は1番目の変形例より信号経路内においてもう1個のPIP、即ちスイッチング構成体R内のPIPを有するものである。別の実施例においては、南側への接続部を設けることは勿論可能である。
繰返し可能なタイル表示
図3Aは単一のタイルをより完全に示している。図3Aはバス幅を表わす数字を持った斜線によって示されるように、種々の幅のバスセグメントを示している。各バスセグメント内のライン数は、勿論、異なる実施例においては異なるものとすることが可能である。図3Aの実施例においては、タイルは同一である。この表示は単一のタイルのものであるから、完全な相互接続線は、図3Aのトップ即ち上部へ延在するバスセグメントは北側に隣接して配置されている図3Aの別のコピーの底部におけるバスセグメントと接触することを想起することにより理解せねばならない。同様に、図3Aの右側へ延在するバスセグメトは右側に隣接して配置されている図3Aの別のコピーのバスセグメントへ接触する等である。FPGA内に存在するようなアレイは図3Aの多数のコピーを一緒に配置させることにより表わされる。
ヘックスバス
図3Aにおいては、12セグメントバス6Nがプログラム可能な領域PROG−2を介して水平方向に延在しており、次いで北側へ方向転換してバスセグメント47となる。バスセグメント47はそのタイルの上端部へ延在している。図3Aの北側に隣接して配置されている図3Aの別のコピーはそのコピーの底部へ延在するバスセグメント46を有しており、それはバスセグメント47と接触する。バスセグメント46はそのタイルにわたって垂直方向に延在するが、それがそのタイルの上部に到達する前に1個のバスだけ右側へオフセットされ、従って与えられたタイル内のバスセグメント46は北側に隣接するタイル内のバスセグメント45と接触する。同様に、タイル境界において、バスセグメント45はバスセグメント44と接触し、バスセグメント44はバスセグメント43と接触し、バスセグメント43はバスセグメント42と接触し、且つバスセグメント42はバスセグメント41と接触する。このオフセット配置はヘックス長バスが6個の隣接するタイルにわたって延在することとなる。バスセグメント41は底部からタイル内へ延在し、次いで西側に方向転換し且つ、バスセグメント6Sとして、プログラム可能な領域PROG−2を介して水平方向に延在する。バスセグメント6Vもプログラム可能な領域PROG−2を介して水平方向に延在し、且つバスセグメント44へ接続する。従って、各タイルはプログラム可能な領域PROG−2内へ延在する3個のバスセグメント6N,6V,6Sを有している。これらのバスセグメントは与えられたタイルから3個及び6個のタイル離れたタイルへの接続を可能とし、そのことは、これらの中間長線を上に定義した如くヘックス線とさせる。バスセグメント41,42,43,44,45,46,47は一体となって図3Aの北側端部において6VNで示され且つ南側端部において6VSで示される72線垂直「ルーチングトラック」を形成している。バスセグメント42,43,44,45,46は「内部セグメント」と呼ばれ、且つバスセグメント41及び47は「端部セグメント」と呼ばれる。
水平方向の12セグメントヘックスバスは、同様に、設けられており、各タイルはプログラム可能な領域PROG−2内へ延在する部分6W,6H,6Eを有している。バスセグメント6Eはプログラム可能な領域PROG−2から延在しており、次いで東へ方向転換し且つそのタイルの東側端部に向かってバスセグメント37として延在する。与えられたタイルのバスセグメント37はその東側に隣接する同一のタイル内のバスセグメント36と接触する。バスセグメント41−47と同様に、バスセグメント31−37は6個の隣接するタイルを介して延在するヘックス長バスを与えている。バスセグメント31はバスセグメント6Wとしてプログラム可能な領域PROG−2内へ延在する。バスセグメント34はバスセグメント6Hとしてプログラム可能な領域PROG−2内に延在している。バスセグメント31,32,33,34,35,36,37は、一体となって、図3Aの西側端部において6HWとして示され且つ東側端部において6HEとして示されている72線水平方向ルーチングトラックを形成している。
注意すべきことであるが、72線ヘックスバス6VN,6VS,6HW,6HEは、該バスを構成するヘックス線が全てが同一のタイルで開始するものではなく且つ同一のタイルで終了するものではない、即ちそのバスに対する固定した境界が存在しないという点において、典型的なバスではない。各タイル内において、12本のヘックス線が終了し且つ別の12本のヘックス線が開始する。この特徴は、就中、本発明構成をKeanの構成及びその他の階層的相互接続構成体のものと異ならしめている。階層的相互接続構成体においては、FPGAは階層的境界における周期的なルーチング構造でもって階層的に分割される。本発明は同一のタイルを使用し、そのタイルの各々は該線のうちの幾つかの端部セグメントを有している。
その他のバス
北、南、東、西の単一長バス(夫々、N,S,E,W)も設けられており、各々が24本の線幅である。これらの単一長バスはプログラム可能な領域PROG−2内に位置されているスイッチング構成体403内に互いに接続する。図3Aにおいて、単一長バスS,W,Eは、図4に対応するために、2つの位置においてスイッチング構成体403に入る状態が示されている。然しながら、S,W,Eの記号が付けられているバスセグメントはスイッチング構成体403を介して連続的に通過する。これらのバスセグメントがスイッチング構成体403を介して通過する態様は図3Bにおいて明確にされており、それはスイッチング構成体403の異なる表示を示しているがその他は図3Aと同一である。
この実施例においては、各単一長線は入力マルチプレクサIMUX−2へ接続させることが可能である。各単一長線は、又、ヘックス線の幾つかへ接続させることが可能である。
図3Aは別の特徴、即ち水平方向及び垂直方向の長尺線バスを有している。これら2つの長尺線バスの各々は12本の線幅である。各長尺線バスから取られた2線バス437P,438(夫々、図4及び7における線LV0及びLV6,LH0及びLH6に対応している)は、プログラム可能な領域PROG−2内へ延在しており、そこで、それらはヘックス線を駆動すべくプログラミングによって接続させることが可能である。各長尺線バス内の2つのアクセスされた長尺線は、6本の線によって互いに分離されており、且つ各長尺線は6個のタイル毎にアクセスされる。各長尺線バスから取られた2線バス437I,438は該長尺線へ信号を供給することの可能な入力マルチプレクサIMUX−2から延在している(2線バス437Iは2線バス437Pと同一の2つの信号を有している)。水平方向の長尺線バスは図3Aの西側端部においてLHWで示されており且つ東側端部においてLHEで示されている。LHW及びLHEはオフセット領域422(図3Cに示してある)を介して延在しており、該領域はバスをタイル当たり1本の線だけオフセットさせる。このように、各同一のタイルが水平方向長尺線バスLHW/LHEの2つの異なる線へアクセスし、且つ各長尺線は6個のタイル毎にアクセスされる。同様に、垂直方向の長尺線バスは図3Aにおいて北側端部においてLVNで示されており且つ南側端部においてLVSで示されている。LVN及びLVSはオフセット領域422と同様のオフセット領域421を介して延在している。これらの長尺線バスはタイルアレイの全長又は全幅を延在している。
プログラム可能な領域PROG−2を水平方向に貫通して別のバスが延在しており、即ちトライステートバッファバスであり、それは4本のライン幅であり図3Aの西側端部においてTWで示されており且つ東側端部においてTEで示されている。TW及びTEはプログラム可能なオフセット領域423によって接続されている。プログラム可能なオフセット領域423は、それがバスを1本の線だけオフセットさせるという点においてオフセット領域421及び422と類似しているが、プログラム可能なオフセット領域423は4本のライン幅に過ぎず且つバスTW又はTEの長さ延在する1個のプログラム可能な双方向PIPを有している(プログラム可能なオフセット領域423の内部構造は図3Cに示してある)。このPIPはトライステートバスの各線を4個のタイル毎に「ブレイク」即ち破断させるか、又は最大でタイルアレイの幅全体にわたってトライステート線を連続させるために4個のタイル毎に線を一緒に接続させるためのいずれかのために使用することが可能である。
プログラム可能なバス接続部
プログラム可能なバス接続部は領域INTERCONNECT(相互接続体)−2内に位置されており、それはプログラム可能な領域PROG−2の一部である。ヘックスバスが単一長バスと交差する場合には、開いた三角形はプログラム可能な接続部を表わしており、その場合に、三角形のベースにおけるヘックス線のうちの1本が三角形の先端部における単一長線のうちの1本を駆動することが可能である。ヘックス線に向かっている三角形はバッファされた接続部であることを表わし、且つ単一長線に向かった三角形は単純なパストランジスタのようなバッファされていない接続部を表わしている。
注意すべきことであるが、全ての交差部が三角形を有するわけではない。例えば、ヘックスバスセグメント6Vは東及び西単一長バスE及びWへ接続することが可能であるが、北及び南バスN及びSへ接続することが可能なものではない。同様に、ヘックスバスセグメント6Hは北及び南単一長バスN及びSへ接続することが可能であるが、東及び西バスE及びWへ接続することが可能なものではない。南側から来るヘックスバスセグメント6Sは東及び西単一長バスE及びWへ接続することが可能であり且つ北バスNへ接続することも可能である。この部分的な接続性は良好なルーチング可能性及び性能のために有用な接続部を提供しながらシリコン面積を節約するものである。同様に、北側から来るヘックスバスセグメント6Nは東及び西単一長バスE及びWへ接続することが可能であり更に南バスSへ接続することも可能であり、西側から来るヘックスバスセグメント6Wは北及び南単一長バスN及びSへ接続することが可能であり且つ東バスEへ接続することも可能であり、且つ東側から来るヘックスバスセグメント6Eは北及び南単一長バスN及びSへ接続することが可能であり更に西バスWへ接続することも可能である。これらの場合の各々において、接続部はハードウエア又はソフトウエアによって単一方向性のものであるように制限される場合があり、その場合にはヘックスバスは単一長バスを駆動することが可能であるが単一長バスはヘックスバスを駆動することが可能なものではない(この実施例の実際のハードウエアにおいては、接続部は双方向パスゲートであり、その場合に単一長バスはヘックスバスを駆動することが可能である。然しながら、そのようにすることは結果的に得られる信号経路の速度を著しく低速化させ、従って、FPGAをプログラミングするためのソフトウエアはこのような経路を選択することはない)。
単一長バスの全ては出力バスOUTを介して出力マルチプレクサOMUX−2によって駆動することが可能である。ヘックスバスセグメント6E,6W,6N,6Sも出力バスOUTによって駆動することが可能である。
垂直方向のヘックスバスセグメント6N及び6Sはプログラム可能なバス接続部404を介して互いに接続させることが可能である(プログラム可能なバス接続部404の内部構造は図4に示してある)。このように、垂直方向のヘックスバスにおける1本の線は6個のタイルの後に終端するのではなく12個、18個又はそれ以上のタイルにわたって連続させることが可能である。同様に、水平方向のヘックスバスセグメント6W及び6Eはプログラム可能なバス接続部405を介して互いに接続させることが可能である。更に、垂直方向のヘックスバスセグメント6N及び6Sはプログラム可能なバス接続部406,407,408,409を介して水平方向のヘックスバスセグメト6W及び6Eへ接続させることが可能である。これらのバス接続部の接続性を図4に示してある。注意すべきことであるが、ヘックスバスセグメント6V(それは垂直方向における3番目のタイルへの接続を実現する)は水平方向のヘックスバスセグメント6W及び6Eを駆動することが可能である。同様に、ヘックスバスセグメント6H(それは、水平方向における3番目のタイルへの接続を実現する)は垂直方向のヘックスバスセグメント6N及び6Sを駆動することが可能である。この手段によって、単一経路の方向は水平方向と垂直方向との間で容易に変更される。
与えられたタイルにおける水平方向のヘックスバスセグメント6E及び6Wは同一のタイルにおいてアクセスされる2本の水平方向の長尺線によって駆動することが可能である。与えられたタイルにおける垂直方向のヘックスバスセグメント6N及び6Sは同一のタイルにおいてアクセスされる2本の垂直方向の長尺線に沿って駆動することが可能である。この能力は、後に図10−12において示されるように、ヘックス線によって直列的に伝搬するのではなく長尺線から各ヘックス線へ(従って、単一線へ)ルーチング即ち経路付けすることによって、長尺線上の信号が高速で複数個のタイルからなる行又は列全体へファンアウトすることを可能とする。
スイッチング構成体403は各単一長バス(N,S,E,W)を他の単一長バスの各々へ接続させることを可能とする。スイッチング構成体403における接続性を図4に示してある。
プログラム可能なバス接続部の重要性
図3Aにおけるバス接続部は本発明に基づくFPGA用の相互接続構成体を実現している。この実施例のバスは以下のような態様で相互作用を行う。(1)長尺線はそれと平行なヘックスバスを駆動することが可能であるが、水平方向のヘックスバスを介することなく、垂直なヘックスバスか又は単一長バスのいずれかを駆動することは不可能であり、(2)ヘックスバスはそれに対して平行な及び垂直な単一長バスを駆動することが可能であるが、単一長バスはヘックスバスを駆動することは不可能である(然しながら、1実施例においては、ヘックスバス及び単一長バスは双方向PIPを介して接続されており、従ってこれらの接続部を単一方向のものとさせるためにソフトウエア上の制限が課される)、(3)ヘックスバスは、更に、それに対して平行及び垂直なその他のヘックスバスを駆動することが可能であり、且つ(4)殆どのヘックスバスは入力マルチプレクサIMUX−2の入力端へ接続することは不可能であるが、ヘックスバスからの制限された数の線は後に説明するようにこのような接続を行うことが可能である。従って、図3Aの相互接続構成体においては、最初に、最も長い適切な線上に信号を配置させ且つそこから該信号をより短い線へ移動させることによってタイル間における接続を形成することが望ましい。例えば、(1)3個又は6個のタイル分離れた論理ブロックに対する接続はヘックス線を介して行われ、単一長線へスイッチングして入力マルチプレクサへ到達し、(2)7個のタイル分離れた論理ブロックへの接続は最初に1本のヘックス線、次いで、1本の単一長線を介して行われ(この接続は第一の例より多くのPIPを必要とするものではない)、(3)FPGAの反対側の論理ブロックへの接続は最初に長尺線を介し、次いでヘックス線を介し、次いでデスティネーション入力マルチプレクサへエンターする前に1本又はそれ以上の単一長線へ転送することによって行われる。このように、バッファされていないPIPが高度に負荷されている線を駆動することがないことを確保することによって大きなRCツリーが回避される。更に、相互接続構成体を介しての種々のタイプの信号経路は同様の遅延を有しており、回路の全体的な性能を増加させる。
勿論、多くの信号経路は複数個のタイルからなる1つの列又は1つの行内のみを走行するものではない。角を曲がるために、信号経路は与えられた単一長線からスイッチング構成体403を介して垂直な単一長線へ、又は与えられたヘックス線から垂直なヘックス線へ移ることが可能である。
タイルのプログラム可能な論理部分
図3Aの繰返し可能なタイルの相互接続部分INTERCONNECT−2は異なるタイルにおける論理ブロック間において信号を送給する目的のためにのみ存在している。この実施例の論理ブロックLBは形態特定可能論理要素CLE−2、出力マルチプレクサOMUX−2、入力マルチプレクサIMUX−2、2個のトライステートバッファ445を有している(トライステートバッファの数は、勿論、本発明のその他の実施例においては異なるものとすることが可能である)。図3Aにおける形態特定可能論理要素CLE−2、入力マルチプレクサIMUX−2、出力マルチプレクサOMUX−2は各入力端及び出力端上において小さな中実の黒色の三角形を有している。三角形の頂点の方向は、信号の流れ方向を表わしている。従って、その頂点が矩形状のボックス内側にある三角形は、入力線又はバスを表わしており且つその頂点が矩形状のボックスの外側にある三角形は出力線又はバスを表わしている。
この実施例の入力マルチプレクサIMUX−2は、(1)単一長バスN,S,E,Wの各々、(2)各12線垂直ヘックスバス42,43,44,45,46,47の4本の線428、(3)出力マルチプレクサOMUX−2からの8線出力バスOUTからの4本の線429、及び(4)形態特定可能論理要素CLE−2からの全部で4本の高速フィードバック線430からの入力を受付ける。入力マルチプレクサIMUX−2は、プログラミングによって、以下の出力信号、(1)形態特定可能論理要素CLE−2へ入力信号を供給する2つの13線バス436、(2)トライステートバッファ445のデータ入力端を駆動する2本信号線431、(3)トライステートバッファ445をイネーブル即ち動作可能状態とさせる2本の信号線432、(4)垂直方向の長尺線バスLV線の2本の線、及び(5)水平方向の長尺線バスLHEの2本の線、を形成することが可能である。
形態特定可能論理要素CLE−2は入力マルチプレクサIMUX−2からの入力のみを受付け、且つ2つの6線バス433として図3Aに示した12本の出力線を駆動する。これらの出力線のうちの4本は入力マルチプレクサIMUX−2に対する高速フィードバック経路430を形成している。形態特定可能論理要素CLE−2からの出力433は出力マルチプレクサOMUX−2を駆動する。OMUX−2はトライステートバッファバスTWから1つの付加的な入力334を取り且つ8線出力バスOUTを駆動する。これら2つのトライステートバッファ445の各々は2線バス435を介してトライステートバッファバスTW内のトライステート線のうちの2つを駆動する。トライステートバッファバスTWに対するトライステートバッファ445の接続は図3Cに更に詳細に示してある。
詳細な繰返し可能なタイル表示
図3C−12は本発明に基づく繰返し可能な相互接続構成体の好適な実施例を示しており、その実施例は図3Aの実施例と類似している。図3Cは好適実施例における単一のタイルの詳細な表示を示している。図3Aに示した全ての特徴が表わされており、且つ幾つかの付加的な特徴が包含されている。図3Cにおける符号は図3Aにおける同一の符号に対応しており、従って対応する構成は容易に識別される。表示において1つの差異が存在しており、即ち、図3Cにおいては、図3Aの72線垂直方向ルーチングトラック6VN/6VSが2つの36線垂直方向ルーチングトラック、即ち右側における6RN/6RSと左側における6LN/6LSとして示されている。各12線ヘックスバスの線のうちの半分はプログラム可能な領域PROGの片側に図示されており、それは図3Aにおけるプログラム可能な領域PROG−2に対応している。この表示上の差異はタイルの機能性に関して何ら影響を有するものではない。図3Cにおいて、水平方向及び垂直方向のヘックスバスは全てのバスの第一線をグループ化して示してある。第一線のみに符号が付けてある。例えば、符号41乃至47は図3Aのヘックスバスセグメント41乃至47の第一線を表わしている。図3Aのヘックスバスセグメント31乃至37は、同様に、示されているが、図3Cにおいては符号を付していない。
図3Cの相互接続領域INTERCONNECTは図3Aの相互接続領域INTERCONNECT−2と機能的に同一である。図3Aにおいては示していない図3Cの実施例における特徴は、(1)タイルの上部に沿っての水平方向の4線グローバルバスGが入力マルチプレクサIMUXに対する4個のグローバル入力を提供しており、そのグローバル入力は高ファンアウト又は高速グローバルクロック信号を配給するために使用することが可能であり、(2)出力バスOUT(出力マルチプレクサOMUXによって駆動される)からの2本の直接出力接続線DOWは西側端部から図3Cのタイルを出て、そこで、それらは西側の隣接するタイルの入力線DIEへ接続されており、(3)左側に隣接するタイルからの2本の直接入力接続線DIEは東端部上で図3Cのタイルへ入り且つ入力マルチプレクサIMUXへ移行し、(4)出力バスOUTからの2本の直接出力接続線DOEは東側端部から図3Cのタイルを出て、そこで、それらは東側に隣接するタイルの線DIWへ接続されており、(5)西側に隣接しているタイルからの2本の直接入力接続線DIWは西側端部から図3Cのタイルへ入り且つ入力マルチプレクサIMUXへ移行し、且つ(6)2つのキャリィチェーンが形態特定可能論理要素CLE内に設けられており、各キャリィチェーンはタイルの南側端部上に入力端を有すると共に該タイルの北側端部において出力端を有しており、該入力端はCIN0及びCIN1として示されており且つ該出力端はCOUT0及びCOUT1として示されている、ことを包含している。本発明に基づく相互接続構成体の幾つかの実施例はこれらの特徴を有するものではない。
相互接続領域
図4は図3Cの相互接続領域INTERCONNECTを詳細に示している。全ての入力線及び出力線は図3C及び4における同一の相対的な位置に位置されている。図3Cにおける相互接続領域INTERCONNECTへの入力線及び出力線は、図4における対応する符号を見ることによって識別することが可能である。上述した如く、垂直方向のルーチングトラックの分割を除いて、図4も図3Aの相互接続領域INTERCONNECT−2に直接的に対応している。数字の符号は前に示し且つ記述した具体例の特徴を識別している。
図4におけるプログラム可能なバス接続404及び405は本発明の付加的な特徴を示している。プログラム可能なバス接続部404及び405において、垂直方向及び水平方向のヘックスバス(夫々、)はプログラミングによって一緒に接続され、1つのヘックスバスから次のものへの同一の方向における信号経路の継続性を与えることを可能としている。図4に示したように、これらの接続部の幾つかは双方向性のものとすることが可能であり(例えば、パストランジスタとして実現)、一方その他のものを単一方向性である(例えば、バッファ型の接続)。1実施例においては、双方向ヘックスバス(いずれかの端部からプログラミングによって駆動することが可能なヘックスバス)は単一方向のヘックスバス(一方の端部のみからプログラミングによって駆動することが可能なヘックスバス)よりもより多くのプログラム可能な垂直のバスに対する接続部を有している。このような双方向性の接続部は最も柔軟性があり、一方このような単一方向接続部はより高速である。何故ならば、PIPはプログラム可能なイネーブルなしで単一バッファとして実現することが可能だからである。
垂直方向の長尺線LV0及びLV6は前述したように、各繰返し可能なタイル内においてアクセスされる垂直方向の長尺線バスLVSの第一線及び第七線を夫々識別する。同様に、水平方向の長尺線LH0及びLH6は、夫々、水平方向の長尺線バスLHEの第一線及び第七線を識別する。
前述したように、図3Aのヘックスバスセグメント6N,6V,6Sは図3Cにおいて、相互接続(INTERCONNECT)領域を左側端部から出て図3Cの36線垂直方向ルーチングトラック6RN/6RSを形成するヘックスバスセグメント6NR,6VR,6SRと、相互接続(INTERCONNECT)領域を西側エッジから出て図3Cの36線垂直方向ルーチングトラック6LN/6LSを形成するヘックスバスセグメント6NL,6VL,6SLとに分割している。
出力マルチプレクサOMUX
図5,6,7は図3Cに示した実施例の出力マルチプレクサ(OMUX)、形態特定可能論理要素(CLE)、入力マルチプレクサ(IMUX)を示している。全ての入力線及び出力線は図3C,5,6,7における同一の相対的な位置内に物理的に位置されており、従って入力線及び出力線は図と図との間で容易にトレースすることが可能である。図5及び7に示したPIPパターンは、多くの可能なパターンのうちの1つを形成しているに過ぎない。これらの3つのブロックの具体例及びブロック間の接続は、3個のブロックが互いに互換性がある限り、本発明の異なる実施例において著しく異なる場合がある。例えば、ブロック間の接続数を増加させるか又は減少させることが可能である。更に、これらのブロックのうちの2個又はそれ以上を結合させるか、又は入力又は出力マルチプレクサの一方又は両方を除去することが可能である。これらの変形例については本明細書において更に説明するが、このような修正は本発明概念によって包含されている。本明細書を読んだ後に当業者にとって、本発明をこれら及びその他のアーキテクチュア変形例内において実施することが可能であることは明らかである。
図5は出力マルチプレクサOMUXの内部の詳細を示している。図5に示したように、入力線(論理ブロックCLEの出力)は一連の8個の出力(OUTO乃至OUT7)を駆動するために選択的にプログラムされる。全ての入力が全ての出力を駆動可能なものではなく、何個のPIPを設け且つどにそれらを位置させるかの選択は、典型的に、性能、シリコン面積、ルーチング柔軟性のトレードオフ拘束条件に基づいて行われる。
形態特定可能論理要素CLE
図6は図3Cに示した実施例の形態特定可能論理要素(CLE)用の入力信号及び出力信号を示している。多くの形態特定可能論理要素を本発明の相互接続構成体と共に使用することが可能である。例えば、ザイリンクス1996データブックの4−11乃至4−23頁は、本発明と適合性を有するXC4000シリーズFPGAアーキテクチュアにおいて使用されている形態特定可能論理要素を記載している。該文書の4−294、4−295、13−13乃至13−15頁は、XC3000シリーズFPGAアーキテクチュアにおいて使用されている別の互換性のある形態特定可能論理要素を記載している。同一の文書の4−188乃至4−190頁はXC5200ファミリィFPGAアーキテクチュアにおいて使用されている更に別の適合性のある形態特定可能論理要素を記載している。
図3Cの実施例と共に使用することの可能な1つのCLEを図6A及び6Bに示してある。この実施例においては、CLEは「スライス」と呼ばれる2つの類似した部分で実現されている。CLEの全体を見るためには、各々が1つのスライスを示している図6A及び6Bを図6Aの上部の手引きに示したように並べて観察せねばならない。CLEの機能即ち関数を制御するプログラム可能な(形態特定可能な)ビットが「x」を包含する小さなボックスとして示されている。図6A及び6BのCLEは4個の関数発生器、即ち図6BにおけるF及びGと、図6AにおけるH及びJとを有している。関数発生器Fは4個のデータ入力端F1,F2,F3,F4を有しており、関数発生器Gは4個のデータ入力端G1,G2,G3,G4を有しており、関数発生器Hは4個のデータ入力端H1,H2,H3,H4を有しており、関数発生器Jは4個のデータ入力端J1,J2,J3,J4を有している。関数発生器F,G,H,Jの各々は、更に、データ入力端D1及び出力端Oを有している。更に、各関数発生器F,Gは、マルチプレクサ69Bによってオプション的に反転されるクロック入力信号CK0、マルチプレクサ60Bによってオプション的に反転されるセット/リセット入力信号SR0、マルチプレクサVFによってオプション的に反転される入力信号BFから書込ストローブ発生器WBにおいて発生される書込ストローブWS入力端WSF,WSGを夫々有している。各関数発生器H,Jは、マルチプレクサ69Aによってオプション的に反転されるクロック入力信号CK1、マルチプレクサ60Bによってオプション的に反転されるセット/リセット入力信号SR1、マルチプレクサVHによってオプション的に反転される入力信号BHから書込ストローブ発生器WAにおいて発生される書込ストローブWS入力端WSH,WSJを夫々有している。
図6A及び6Bの関数発生器F,G,H,Jは小型のRAM及びルックアップテーブルのみならずシフトレジスタとして動作する能力を有している。書込ストローブ信号WSはシフト機能及びRAM書込サイクルを制御する。データ入力ポートDIはアドレスされたメモリセルに対して書込むためのデータ信号(この実施例においては、入力信号DF,BH,BG,BJから派生される)を担持する。関数発生器F,G,H,Jがシフトレジスタとして形態が特定される場合には、シフトレジスタデータ入力信号は、夫々、BF,BG,BH,BJから取られる。書込ストローブ発生器WB,WAは、夫々、書込ストローブ信号WSF及びWSG,WSH及びWSJを発生する。信号WSF,WSG,WSH,WSJは、関数発生器がRAMとして形態特定される場合に、書込サイクル期間中にそれらの夫々の関数発生器内へのデータをストローブし、且つ関数発生器がシフトレジスタとして形態特定される場合にはシフトを発生する。RAMとしての関数発生器の使用についてはザイリンクス1996データブックの4−11乃至4−23頁に記載されている。
従って、この実施例の関数発生器は、ルックアップテーブル、シフトレジスタ、16×1RAM、16×1二重ポート型RAMの半分(1つのスライス内の2つの関数発生器が対構成とされた場合)、16×2RAMの半分、又は32×1RAMの半分(1つのスライス内の2つの関数発生器が対構成とされた場合)として形態特定することが可能である。関数発生器形態の全ての組合わせが単一のスライスにおいてサポートされているわけではない。サポートされている組合わせについて以下に詳細に説明する。この実施例においては、書込ストローブ信号WSF及びWSGは書込ストローブ発生器WBによって制御される。関数発生器入力端WS上の高(論理1)パルスは、ルックアップテーブル(シフトレジスタとして形態特定されている場合)の第一メモリセルか、又はアドレスされたセル(RAMとして形態特定されている場合)のいずれかに対して関数発生器ルックアップテーブルに対する書込を発生させる。
書込ストローブ発生器WBは関数発生器形態のサポートされている組合わせにおいて以下の如くに機能する。(a)関数発生器F及びGが両方とも、ルックアップテーブルとして形態特定されている場合には、書込ストローブ信号WSF及びWSGは低(論理0)に保持され、(b)関数発生器Gが16×1RAM又はシフトレジスタとして形態特定されており且つ関数発生器Fがルックアップテーブルとして形態特定されている場合には、書込ストローブ信号WSFは低に止まり、一方SR0がアクティブ(マルチプレクサ60Bが反転性であるか否かに依存して低又は高)である場合に書込ストローブ信号WSGは高へパルス動作し且つCK0は適切な遷移を行い(マルチプレクサ69BがCK0を反転させるか否かに依存して下降又は上昇)、(c)関数発生器F及びGが二重ポート型16×1RAM、16×2RAM、又は一対のシフトレジスタとして形態特定される場合には、書込ストローブ信号WSF及びWSGは、SR0がアクティブである場合に共に高パルス動作し且つCK0は適切な遷移を行い、(d)関数発生器F及びGが単一の32×1RAMとして形態特定されている場合には、書込ストローブ信号WSF及びWSGのうちの両方ではなく1つが、SR0がアクティブである場合に高をパルス動作し且つCK0は適切な遷移を行う。発生される高パルスは、マルチプレクサVFが非反転性であり且つ入力信号BFが高であるか又はマルチプレクサVFが反転性であり且つ入力信号BFが低である場合に書込ストローブ信号WSF上で発生し、そうでない場合には高パルスは書込ストローブ信号WSG上で発生する。上の説明から理解することが可能であるように、SR0は書込イネーブルとして作用し且つCK0はシンクロナスRAM又はシフトレジスタに対するクロックして作用し、一方BFは1つのスライス内の2つの関数発生器が32ビットRAMとして形態特定されている場合に5番目のアドレスビットとして作用する。
書込ストローブ信号WSH及びWSJは書込ストローブ発生器WAによって発生され且つ対応する態様で入力信号SR1,CK1,BHによって制御される。
ANDゲート61F,61G,61H,61J及びマルチプレクサ81F,81G,81H,81J,CF,CG,CH,CJは乗算器及びキャリィ論理機能を実現する。図6A及び6Bにおいて、マルチプレクサ81F,81G,81H,81Jの各々はマルチプレクサ出力を決定する別個のプログラム可能なメモリセルを有している。別の実施例においては、各スライス内の2つのマルチプレクサ(81F及び81G、81H及び81J)はメモリセルを共有し、従って、同一のプログラムされた機能性を有している。
図6A及び6Bの実施例においては、各スライスは別個のキャリィ遅延を有している。1つのキャリィ遅延は入力信号CIN0から出力信号COUT0へのものであり且つ関数発生器F及びGの出力を組込む。他方のキャリィ遅延は入力信号CIN1から出力信号COUT1へのものであり且つ関数発生器H及びJの出力を組込む。
各スライスは、更に、5入力関数マルチプレクサF5A,F5B及び6入力関数マルチプレクサF6A,F6Bを包含している。図6Aにおいて、マルチプレクサF6Aは図6BにおけるマルチプレクサF5Bの出力端から西側へ進む線F5W上の入力信号を受取る。図6Bにおいて、6入力関数マルチプレクサF6Bは、図6AにおけるマルチプレクサF5Aの出力端から東へ進む線F5E上の入力信号を受取る。マルチプレクサF6AはマルチプレクサF5Aからの第二入力信号を受取り、且つマルチプレクサF6BはマルチプレクサF5Bからの第二入力信号を受取る。マルチプレクサF5Aは関数発生器H及びJの出力端Oからの入力を受取る。マルチプレクサF5Bは関数発生器F及びGの出力端Oからの入力を受取る。
この実施例のCLEは線BF,BH,BG,BJ上の4個のエキストラな制御信号を受取る。これらの線は、夫々、マルチプレクサVF,VH,VG,VJを使用してプログラミングすることによって反転させることが可能であり、且つ幾つかの有用な機能を制御する。5入力関数マルチプレクサF5A,F5Bは、夫々、線BH,BFによって制御される。6入力関数マルチプレクサF6A,F6Bは、夫々、線BJ,BGによって制御される。ユーザはマルチプレクサF5A及び関数発生器H及びJの出力を使用して4入力マルチプレクサを形成することが可能であり、関数発生器H及びJの各々は2入力マルチプレクサとして形態特定される。同様に、4入力マルチプレクサは、マルチプレクサF5Bと関数発生器F及びGの出力とを使用して形成することが可能である。ユーザは、各々がその夫々の関数発生器からの出力を受取るマルチプレクサF5A及びF5Bの両方からの入力を受取るマルチプレクサF6A又はマルチプレクサF6Bのいずれかを使用して8入力マルチプレクサを形成することが可能である。更に、マルチプレクサF5Aの場合には、関数発生器H及びJ内のメモリセルは32ビットRAMとして動作することが可能である。マルチプレクサF5Bの場合には、関数発生器F及びG内のメモリセルは32ビットRAMとして動作することが可能である。線BF,BH,BG,BJは後に記載するようなその他の機能に加えて、マルチプレクサ制御線又はRAMアドレス線として作用する。
レジスタRX,RY,RZ,RVは、夫々、出力XQ,YQ,ZQ,VQを発生する。レジスタRX,RY,RZ,RVへのクロック入力はこれらのレジスタ内へ頂点が向いている開いた三角形によって指定されている。クロックイネーブル入力CEはANDゲート62A,62Bを使用してディスエーブル即ち動作不能状態とさせることが可能である(ANDゲート62A,62Bは、各ANDゲートに対する入力のうちの1つを供給するプログラム可能なメモリセルによって制御される)。レジスタRX,RY,RZ,RVはセットポートS又はリセットポートRを介して同期的に又は非同期的のいずれかでセット又はリセットすることが可能である(同期又は非同期の選択は各スライス内の2つのレジスタの間で共有されるプログラム可能なメモリセルによって行われる)。セット/リセット入力信号SR0,SR1はマルチプレクサ60A,60B及びANDゲート67A,67Bによって制御される。入力SR0,SR1(ANDゲート67A,67Bによってイネーブルされる場合)は該レジスタをセット又はリセットすることが可能である。セット/リセット制御ユニットR81B,R82B,R81A,R82Aは、夫々、レジスタRX,RY,RZ,RVをセット又はリセットするためにプログラミングによって制御される。レジスタRX,RY,RZ,RVはラッチとして形態特定することも可能であり、その選択は各スライス内の2つのレジスタ間で共有されているプログラム可能なメモリセルによって行われる。
XORゲートSF,SG,SH,SJは加算又は乗算の和部分を発生する。
マルチプレクサMF,MG,MH,MJは、夫々、出力線X,Y,Z,V上に配置するための信号の間の選択を行う。マルチプレクサMF及びMHは関連する関数発生器出力信号、和出力信号、5入力関数マルチプレクサ出力信号の間で選択を行う。マルチプレクサMG及びMJは関連する関数発生器出力信号、和出力信号、6入力関数マルチプレクサ出力信号の間で選択を行う。関数発生器F,G,H,J出力信号は、最大で4個の入力の論理関数が選択される場合に選択される。5入力関数マルチプレクサF5A,F5B出力信号は、9入力関数の制限された組のうちの1つが選択される場合に選択され、5個の入力の任意の論理関数、4対1マルチプレクサ、2対1マルチプレクサへデータを供給する2個の4入力関数として実現することの可能な任意のその他の関数を包含している。6入力関数マルチプレクサF6A,F6B出力信号は、18入力関数の制限された組のうちの1つが選択される場合に選択され、6個の入力の任意の論理関数、8対1マルチプレクサ、2対1マルチプレクサへデータを供給する2個の5入力関数マルチプレクサF5A,F5Bの出力として実現することの可能な任意のその他の関数を包含している。XORゲートSF,SG,SH,SJの和出力信号は、例えば加算、減算又は乗算等の適宜の演算が実施される場合に選択される。
マルチプレクサOF,OG,OH,OJはキャリィ遅延が関連する関数発生器をバイパスすることを可能とする。マルチプレクサOF,OG,OH,OJは、夫々のキャリィマルチプレクサCF,CG,CH,CJが関数発生器出力信号Oによって制御されるか否か、又はキャリィ遅延がキャリィイン信号をキャリィ遅延に沿って次のステージへ伝搬させることによって関数発生器をバイパスするか否かを選択する。マルチプレクサCA,CBはキャリィイン信号CIN0,CIN1(夫々、インバータ121B及びI122B、I121A及びI122Aによってこの実施例においてはバッファされている)又は入力信号BF,BHのいずれかをCLE内のキャリィ遅延に対する開始点として選択することによってそれらの夫々のキャリィ遅延上への付加的なアクセスを可能とする。
マルチプレクサDF,DHはマルチプレクサMF,MHの出力端からか又は入力信号BF,BHからのいずれから、夫々、関連するレジスタRX,RZ内へ信号をロードさせることを選択する。マルチプレクサDG,DJはマルチプレクサMG,MJの出力からか又は入力信号線BG,BJからのいずれかから、夫々、関連するレジスタRY,RV内へ信号をロードさせることを選択する。
マルチプレクサBB,BAは、キャリィアウト信号COUT0,COUT1を出力線YB,VBへ印加することが可能であるか又は入力信号BG,BJを出力線YB,VBへ転送してCLEの片側で発生された信号をCLEの反対側上のデスティネーション即ち宛先へ経路付けさせることの可能なバイパスマルチプレクサである。
ANDゲートBRB,BRAは、入力信号BG,BJがレジスタRX,RY,RZ,RVへのセット/リセット信号として作用することを可能とするか、又は、入力信号BG,BJがレジスタRX,RY,RZ,RVから切断させることを可能とし、従って入力信号BG,BJは、例えば該レジスタをセット又はリセットすることなしに、DI信号を関数発生器G,Jへ供給するか又はマルチプレクサF6B,F6Aの制御等のその他の目的のために使用することが可能である。ANDゲートBRB,BRAを制御するメモリセル内の論理0は線BG,BJをセット/リセット制御ユニットR81B,R82B,R81A,R82Aから切断させ、一方関連するメモリセル内の論理1はANDゲートBRB,BRAをイネーブルさせてBG,BJ上の信号を使用してセット/リセット制御ユニットR81B,R82B,R81A,R82Aによって決定されるようにレジスタRX,RY,RZ,RVをセット又はリセットさせる。
入力マルチプレクサIMUX
図7は図3Cに示した実施例の入力マルチプレクサIMUXの内部の詳細を示している。図7に示したように、この実施例における入力線(G,430,DIW,428,DIE,429)は一連の34個の出力(431,432,436,LV0,LV6,LH0,LH6)を駆動するように選択的にプログラムされる。これらの出力のうちの26個がCLE入力端436を駆動し、2つがデータ入力端431を駆動し、且つ2つがトライステートバッファ445のイネーブル入力端432を駆動し、2つがLV0及びLV6(垂直方向の長尺線バスLVSの2つの線)を駆動し、且つ2つがLH0及びLH6(水平方向長尺線バスLHEの2つの線)を駆動する。全ての入力が全ての出力を駆動することが可能なわけではなく、幾つのPIPを供給すべきか且つどこにそれらを物理的に位置させるかの選択は、典型的に、性能、シリコン面積、ルーチング柔軟性のトレードオフ拘束条件に基づいて行われる。1実施例においては、どのIMUX入力線へも接続されていないいずれかのIMUX出力端がプルアップを介して正電圧供給源へ接続している。
ルーチング例
図8及び9は図3Cに示した実施例に従って複数個のタイルからなるアレイ内において実現された信号経路の例を示している。図8及び9において使用されている符号の表記方法は、タイルが図に示したアレイの部分に基づく行及び列番号によって識別されるというものである。1個のタイル内において、線の符号は図3Aに示したバスの符号に対応している。然しながら、図8及び9においては、符号はバス全体ではなく単一の線を表わしている。例において使用されている線のみが示されており且つ符号が付けられている。この符号の表記方法をもって、幾つかの符号は一度を超えて使用されている。しかし、不明確性は存在していない。何故ならば、全てのタイルは同一であり且つ各タイルは異なるタイル番号を有しているからである。タイル番号は同一の図面において一度を超えて使用されている符号の間を区別している。
図8はヘックス線及び単一長線を使用した信号経路のルーチング例を示している。信号はタイル8−2の発信元論理ブロックL0によって発信され、且つ、プログラミングによって、線OUTを介してタイル内においてヘックスセグメント6Nへ接続されている。ヘックスセグメント6Nは北へ方向転換し且つ垂直方向のヘックスセグメント47となる。この信号はタイル5−3,4−3,1−2における3つのデスティネーションにおける論理ブロックへファンアウトせねばならない。該信号はセグメント46乃至42上をタイル7−2乃至3−2を介して通過する。タイル5−2において、該信号はセグメント44上にあり、そこで、それはセグメント6Vへファンアウトする。タイル5−2において、セグメント6Vはプログラミングによって単一長線Eへ接続されており、それは線Wとしてタイル5−3内へ東方向へ継続する。タイル5−3において、線Wは第一のデスティネーションである論理ブロックL1に対し、更に、スイッチング構成体403に対する入力となり、そこで、それはプログラミングによって線Nへ接続される。タイル5−3の線Nは継続して線Sとしてタイル4−3内へ北方向に進み、それは第二のデスティネーションである論理ブロックL2に対する入力となる。垂直方向のヘックス線の北側端部はタイル2−2において到達され、そこで該信号はセグメント41上にある。セグメント41は、プログラミングによって単一長線Nへ接続されており、それは線Sとしてタイル1−2内へ北方向へ続いている。タイル1−2において、線Sは第三のデスティネーションである論理ブロックL3に対する入力となる。
従って、図8において、発信元論理ブロックL0からデスティネーション(宛先)論理ブロックL1,L2,L3に対して信号ネットが形成されている。この接続は高速である。何故ならば、ヘックス線上のPIPはバッファされており、ヘックス線上のPIPの数が少ないためにヘックス線上の容量が低く、且つ発信元からデスティネーションへの各経路は信号経路内に遅延を挿入するPIPの総数が少ないからである。図8の例においては、発信元とデスティネーション論理ブロックとの間の各信号経路は高々3個のPIP、即ちヘックス線上の1個のバッファしたPIPと単一長線上の1個又は2個のバッファしていないPIPを必要とするに過ぎない(論理ブロックは図3AにおいてLBとした示した構造である)。
図9は長尺線と、ヘックス線と、単一長線とを使用した信号経路のルーチング例を示している。信号はタイル1−1の発信元論理ブロックL8によって発信され、且つ論理ブロックL4,L5,L6,L7へ経路付けされねばならない。論理ブロックL8からの信号は、プログラミングによって、タイル1−1内においてその特定のタイルからアクセス可能な垂直方向の長尺線VLのうちの1つへ接続されている。長尺線LVは18個のタイルにわたりタイル19−1へ南側方向へ延在しており、そこで長尺線LVは、プログラミングによって、ヘックスセグメント6Sへ接続されており、次いで南方向へ続いて図9に示したアレイの部分の南側のその他のヘックス線(不図示)を駆動する(図9における18個のタイル分のギャップが包含されており、長尺線LVは、長尺線が連結されたヘックス線よりもより効率的なものであるのに充分遠くに信号を運ばねばならないことを示している)。タイル19−1内のヘックスセグメント6Sから、該信号は南方向へ方向転換し且つ垂直方向のヘックスセグメント41となる。該信号はセグメント42乃至46上をタイル20−1乃至24−1を介して通過する。タイル22−1において、該信号はセグメント44上に有り、そこで、それはセグメント6Vへファンアウトし且つ続いてタイル25−1に向かって南方向へ進行する。タイル22−1内のセグメント6Vから、該信号はセグメント6Eに対してプログラム可能な接続を形成する(2つの垂直なヘックス線の接続部を示している)。次いで、該信号はセグメント37上を東方向へ移動し、セグメント36乃至32上をタイル22−2乃至22−6をトラバースする。タイル22−4において、該信号はセグメント34上に有り、そこで、それはセグメント6Hへファンアウトし且つ続いてタイル22−5に向かって東方向へ進む。タイル22−4において、該信号はセグメント6Hと線Nとしてタイル23−4内に南方向へ続いている単一長線Sとの間のプログラム可能な接続を行う。タイル23−4において、線Nはスイッチング構成体403内に入り且つ線Eへ接続し、線Eは線W上をタイル23−5内に東方向へ続いており、第一のデスティネーションである論理ブロックL4に対する入力となる。タイル22−6におけるセグメント32から、該信号はセグメント31上をタイル22−7内へ東方向へ続き、次いでセグメント6W上へ北方向へ方向転換する。セグメント6Wはプログラミングによって線Nへ接続されており、それは線Sとしてタイル21−7内へ北方向へ続き、且つ第二のデスティネーションである論理ブロックL5に対する入力となる。垂直のヘックス線へ戻り、タイル24−1内のセグメント46上の信号はセグメント47上をタイル25−1内へ南方向へ続き、それはセグメント6N上で西方向へ方向転換する。タイル25−1内のセグメント6Nから、該信号はセグメント6Eに対してプログラム可能な接続を行う。次いで、該信号はセグメント37上を東方向へ移動し、セグメント36乃至32上をタイル25−2乃至25−6をトラバースする。タイル25−6内のセグメント32から、該信号はセグメント31上をタイル25−7内へ東方向に続き、次いでセグメント6W上へ北方向に方向転換する。セグメント6Wはプログラミングによって線Sへ接続されており、それは線Nとしてタイル26−7内へ南方向に続き且つ第三のデスティネーションである論理ブロックL6に対する入力となる。更にもう一つの接続が形成されるべく残っている。タイル25−1内の垂直のヘックス線の南側端部から、セグメント6V上の信号は線Eに対して付加的なプログラム可能な接続を形成する。線Eは線W上をタイル25−2内へ東方向に続いている。タイル25−2内において、線Wはスイッチング構成体403に入り且つ線Sへ接続し、それは線N上をタイル26−2内へ南方向に続き、第四のデスティネーションである論理ブロックL7に対する入力となる。
従って、図9において、発信元論理ブロックL8からデスティネーションの論理ブロックL4,L5,L6,L7に対する信号ネットが形成されている。図8の例におけるように、長尺線及びヘックス線に対する接続はバッファ型であり且つバッファされていない接続のRC遅延が最小とされている。この例においては、これらのデスティネーションは論理ブロック間の相互接続経路内において高々4個のPIPを必要とするに過ぎず、即ちヘックス線上の1個又は2個のバッファ型PIPと、単一長線上の1個又は2個のバッファされていないPIPである。それでも、発信元論理ブロックL8とデスティネーション論理ブロックL6との間において31個のタイルがトラバースされている。
上のルーチング例の全てにおいて、別の経路が使用可能であり、その多くはこれらの例において使用された信号経路よりもより多くのPIPを必要とする。1つの経路上の相互接続線の幾つかが既に他の信号によって使用されている場合には、別の経路を使用することが可能である。
高ファンアウトルーチング例
図10は例えばクロック(CK)、クロックイネーブル(CE)、セット/リセット(SR)、又は垂直方向の長尺線から複数個のタイルからなる列へ送給されるトライステートイネーブル信号(432)等の高ファンアウト制御信号のルーチング例を示している。信号はタイルアレイの外側からか又は図3Aの線437Iのうちの1つを使用することによって、垂直方向の長尺線上に配置させることが可能である。垂直方向の長尺線バスLVから、12番目のタイル(TILE4)毎に、高ファンアウト制御信号が線600上に表われる。線600は2本の垂直方向のヘックス線を駆動し、そのうちの1つ(H)はTILE4から6個のタイル北方向へ延在しており且つそのうちの1つ(H2)はTILE4から6個のタイル南方向へ延在している。ヘックス線H1及びH2から、線428(図3Aにおいて示してある)は各垂直方向のヘックスバスの4個のビットが論理ブロックを駆動することを許容する。図7の入力マルチプレクサ(IMUX)は、線428を介して、垂直方向のヘックス線が、例えば関数発生器入力端等のその他のCLE入力端上の信号は、常に、CLEに到達するためには単一長線を介して通過せねばならないにも拘らず、単一長線を介して通過することなしに制御信号CK,CE,SR,432を駆動することを許容する。ヘックス線H1はTILE4内の論理ブロック及びその北側に隣接する5個のタイルを駆動する。注意すべきことであるが、ヘックス線H1によって到達される最も北側のタイルにおいては、線428はヘックス線H1と接触するものではない。その代わりに、ヘックス線H3と接触されており、それはTILE4の北側に12個のタイルを発生している。ヘックス線H2はTILE4の南側に隣接している6個の論理ブロックを駆動する。ヘックス線H1の北側においては、ヘックス線H3が隣接する6個の論理ブロックを駆動する。ヘックス線H2の南側においては、ヘックス線H4が隣接する6個の論理ブロックを駆動する。各ヘックス線は6個の論理ブロックにおける高ファンアウト制御信号を駆動する。ヘックス線H1及びH2によってアクセスされるタイル(図10において610の符号が付けてある)は12個のタイルからなる列を形成しており、それは繰返しのタイルからなるアレイの列全体へアクセスするために垂直方向に繰返すことが可能である。
図10は、高ファンアウト制御信号の場合には、垂直方向の長尺線上の信号と同一の列内のいずれかのデスティネーション論理ブロックとの間に1個のPIPが存在するに過ぎないことを示している(然しながら、好適実施例においては、入力マルチプレクサIMUXにおける経路へ付加された付加的なPIPが存在している)。従って、この経路上では殆ど遅延が存在しない。更に、この配分方向は、各論理ブロック入力端への経路において同数のPIPと同数の相互接続線(1本の長尺線、1本のヘックス線)を有している。従って、この経路上ではスキューは非常に低い。グローバル線(図3CにおけるG)は、典型的に、最大で4個のクロックに対して使用されるが、図10の配分方法は、本発明に基づく相互接続技術の階層的性質を利用することによって、性能が高く且つスキューが低い優れた付加的なクロック配分回路網を形成している。
図11は垂直方向の長尺線から複数個のタイルからなる列へ送給される高ファンアウト関数発生器入力信号(又はその他の非制御信号)のルーチング例を示している。信号は、タイルアレイ外側からか、又は図3Aの垂直方向の長尺線437Iのうちの1つを使用することによって、垂直方向の長尺線上に配置させることが可能である。垂直方向の長尺線バスLVから、12番目のタイル(TILE5−6)毎に、高ファンアウト関数発生器入力信号が線601上に表われる。線601は2本の垂直方向のヘックス線を駆動し、そのうちの1つ(H5)はTILE4から6個のタイル分北方向へ延在しており且つそのうちの1つ(H6)はTILE4から6個のタイル分南方向へ延在している。ヘックス線H5及びH6から線セグメント6S,6N,6Vが単一長線N,S及びスイッチング構成体403に関連して使用されて、図8及び9における相互接続と同様に、論理ブロックを駆動する。1実施例においては、CLE内部の関数発生器入力端へ接続する信号は、常に、CLEに到達するためには単一長線を介して通過せねばならない。ヘックス線H5は、単一長線を介して、タイルTILE5−7、TILE5−8、TILE5−3内の論理ブロックを駆動する。更に、ヘックス線H5は、単一長線を介して、列511の北側の12タイル列も3個の最も南側のタイル(列611のタイルTILE5−10,TILE5−11,TILE5−12に対応)における論理ブロックを駆動する。ヘックス線H6は、単一長線を介して、タイルTILE5−4,TILE5−5,TILE5−6,TILE5−9内の論理ブロックを駆動する。更に、ヘックス線H6は、単一長線を介して、列611の南側の12タイル列の2個の最も北側のタイル(列611のタイルTILE5−1及びTILE5−2に対応)における論理ブロックを駆動する。タイルTILE5−1及びTILE5−2は、単一長線を介して、ヘックスH7によって駆動され、それはTILE5−6の北側に12個のタイルを発生させる。タイルTILE5−10,TILE5−11,TILE5−12は、単一長線を介して、ヘックス線H8によって駆動され、それはTILE5−6の南側に12個のタイルを発生する。各ヘックス線は6個の論理ブロックにおいて高ファンアウト関数発生器入力信号を駆動する。従って、隣接する12タイル列611の間の共同によって、繰返しパターンが形成され、それは非制御信号を繰返しタイルからなるアレイの列全体に対して配分することを可能とする。
注意すべきことであるが、ヘックス線及び単一長線のその他の接続も可能である。例えば、TILE5−2における論理ブロックは、TILE5−3(不図示)におけるスイッチング構成体及び単一長線を介して、従って、TILE5−2における付加的なスイッチング構成体及び単一長線を介してTILE5−1における論理ブロックを駆動するためにヘックス線6Vによって駆動することが可能である。この構成又は同様の構成を、2つの最も北側のタイルをアクセスするために12タイル列611の最も北側の具体例において使用することが可能である。3個の最も南側のタイルへアクセスするために、12タイル列611の最も南側の具体例において同様の接続を行うことが可能である。
図11は、高ファンアウト関数発生器入力信号に対して、垂直方向の長尺線上の信号と同一の列内のいずれかのデスティネーション論理ブロックとの間には2個又は3個のPIPが存在していることを示しており、即ち長尺線からヘックス線への1つと、ヘックス線から第一単一長線への1つと、且つ、時々、スイッチング構成体を介して第二の単一長線に対して1つである(然しながら、好適実施例においては、入力マルチプレクサIMUX内の経路に対して付加された1つの付加的なPIPが存在している)。最後の1つ又は2つのPIPが非バッファ型であるに過ぎない。従って、このネット上においては多数のバッファされていないRCツリーは存在しておらず、どの信号経路も直列して2個を超えるバッファされていないPIPを有するものではなく、且つ各信号経路上の遅延は最小とされている。
図12は複数個のタイルからなるアレイに対して高ファンアウト信号を送給するためにどのようにして図10及び/又は11の相互接続を結合させるかの1例を示している。信号はタイルアレイの外側からか又は図3Aの線438のうちの1つを使用することによって、水平方向の長尺線上に配置させることが可能である。該信号は水平方向の長尺線バスLHにおける1本の線上において図12に示したアレイの部分に入る。長尺線バスLHは12個のタイルからなる行612をトラバースし、その場合に、それはヘックス線及び単一長線を介して12個の論理ブロックと接触する。幾つかの水平方向のヘックス線へ接続されている水平方向の単一長線はIMUX内のPIPを介して垂直方向の長尺線を駆動することが可能である。図12の12個のタイル内の論理ブロックから、線437Iは論理ブロック内の入力マルチプレクサ(図3A参照)から垂直方向の長尺線LVを駆動するために延在している。12個のタイル612の各々における線437Iを使用して、水平方向の長尺線バスLH上の信号は12垂直方向長尺線LVへ転送される。12個の垂直タイルからなる列(613)は図10(制御信号に対して)の12個のタイル610によるか又は図11(関数発生器又はその他の非制御信号に対して)の12個のタイル611のいずれかによって実現することが可能である。マルチプル即ち複数個の12タイル列613をアクセス可能なタイルの数を増加させるために配置することが可能である。このように、高ファンアウト信号は発信元タイルからアレイ内の任意のタイルに対して分配させることが可能である。
図12の配分手法の別法として、例えば、ヘックス線が長尺線を駆動し、従って図12において使用されている単一長線をバイパスすることを可能とする特別のタイルを形成することが可能である。このような特別のタイルはタイルアレイの上端部又は底端部に沿って、又はアレイ内においてある間隔で配置された行内に効果的に配置させることが可能である。
高速フィードバック経路
FPGA内の論理経路は、典型的に、一連の組合わせ論理ゲートと交互配置されたフリップフロップ又はラッチを有している。これらの組合わせ論理ゲートはカスケード接続した関数発生器において実現される。クリチカルパス即ち臨界的経路は、しばしば、このようなフリップフロップ又はラッチの間において直列してカスケード接続された多数の関数発生器を有する経路である。従って、このようなクリチカルパスは1つのフリップフロップから1つの関数発生器への1つの接続、及び1つの関数発生器から1つのフリップフロップへの1つの接続を有しているが、多数の接続が2つの関数発生器の間に発生している。従って、関数発生器の間の接続を高速化させる高速フィードバック経路からクリチカルパスに対して顕著な性能上の利点が得られる。従って、1つの実施例においては、関数発生器出力によって駆動されるCLE出力のみが高速フィードバック経路への接続を有している。レジスタされる出力はこのような接続を有するものではない。同様に、高速フィードバック経路へ接続されているCLE入力端は関数発生器入力端であり且つ制御入力端ではない。このような1つの実施例は、図3Aの実施例であり、その場合には、非レジスタ型CLE出力端は高速フィードバック経路への接続を有している(非レジスタ型CLE出力X及びY,Z及びVは夫々図6B,6Aに示してある)。図3Aの実施例においては、高速フィードバック経路が高速フィードバック線430及び入力マルチプレクサIMUX−2を介して経路付けされている。レジスタ型CLE出力は図3Aの出力マルチプレクサOMUX−2内へ経路付けされており且つ高速フィードバック経路に対する接続を有するものではない(レジスタ型CLE出力XQ及びYQ,ZQ,VQは夫々、図6B及び6Aに示してある)。
図13はCLEの出力端から同一のCLEの入力端への図3Cの実施例の高速フィードバック経路を簡単化した形態で示してある。図6A及び6Bにおける符号と同一である図13における符号は同一の構成要素又は信号線を示している。例えば、図13において、CLE出力端Vは関数発生器Jの出力によって駆動される(領域135における中間に介在する論理は図13には示していないが、図6Aに示してある)。CLE出力Vは、更に、領域134内にフィードバックし、それは、図3Cの実施例においては、入力マルチプレクサIMUXの一部として実現されている。領域134において、CLE出力VはPIP130,131,132,133を介してCLE内の各関数発生器(夫々、J,H,G,F)の1つの入力端(夫々J3,H3,G2,F2)へ接続する。同様に、その他の非レジスタ型CLE出力Z,Y,Xの各々はPIPを介してCLE内の各関数発生器の1つの入力端へ接続する。各関数発生器出力はCLE内の関数発生器の各々の異なる入力端へ接続する。レジスタ型CLE出力VQ,ZQ,YQ,XQは高速フィードバック経路へ接続するものではない。
本発明の別の実施例においては、高速フィードバック経路は関数発生器入力端以外のCLE入力端を駆動することが可能である。例えば、高速フィードバック経路は、図6AのCLE入力端BJ,BH及び図6BのBG,BFを駆動することが可能である。これらの接続は、シフトレジスタモードの形態とされた関数発生器に対するデータ入力を供給するために使用することが可能である。このようなフィードバック経路を使用して広範な高性能のシフトレジスタを実現することが可能である。
要約
本発明の第一の側面の相互接続構成体は各相互接続線上のローディングが減少されており(PIPの数が制限されている)、信号ネット上の大きなRCツリーが存在せず、且つ各経路上の発信元とデスティネーションとの間のPIPの数が比較的少ないので、FPGAを介して一様に高速な信号を提供している。種々の相互接続経路上の遅延がほぼ一様であるということは、平均の信号経路よりも著しく遅い2,3の信号経路が回路の全体的な性能を著しく減少させる場合のあるFPGAにおける共通の状態を著しく緩和している。中間長線は局所化された回路の効率的な実現を可能としており且つルーチングソフトウエァに関する負担を和らげている。PIPの数が制限されていること、及びその正当なる配置は、消費されるシリコン面積当たりに高度のルーチング柔軟性を与えている。論理ブロック入力端が論理ブロックの任意の端部に位置されている相互接続線と接触する能力によって更なるルーチング柔軟性が与えられている。
本発明の第二の側面の高速のフィードバッグ経路は、CLE出力端から同一のCLEの入力端へ著しく高速であるフィードバック経路を提供するために出力マルチプレクサをバイパスする方法を提供している。このような高速のフィードバック経路は多数の関数発生器が直列して接続されるクリチカルパスの速度に関し著しい影響を有している。高速フィードバック経路は1個のCLE内に納まる小型の回路(又は大型の回路のサブセット)の性能を増加させ且つ与えられた回路を実現するために使用せねばならない論理ブロック外部のルーチング資源の数を減少させる。1実施例においては、1個のCLE内の関数発生器の全ての結合が、論理がCLEの関数発生器内にどのようにマッピングされるかに拘らずに、高速フィードバック経路を介して互いに駆動することが可能である。別の実施例においては、1個のCLE内の各関数発生器は高速フィードバック経路を介して他の関数発生器(それ自身以外)の全てを同時的に駆動することが可能である。
従って、本発明はFPGAに対する新規で且つ有用な相互接続構成体を提供していることが理解される。本発明の関連技術における当業者は、本明細書の開示の結果として行うことの可能な種々の変形及び付加を想起するものである。従って、このような変形例及び付加の全ては本発明の請求の範囲内のものであると思料され、それは添付の請求の範囲及びそれらの均等物によってのみ制限されるべきである。

Claims (9)

  1. FPGAにおいて、
    複数個のタイルからなるアレイが設けられており、各タイルは、
    論理ブロック(LB,L)と、
    複数個のプログラム可能な相互接続点(PIP)と、
    複数本の相互接続線(6VN,6VS,6HE,6HW,N,S,E,W)を形成するために各線セグメントが隣接するタイル内の別の線セグメントと当接している複数個の線セグメント(31−37,41−47,N,S,E,W)と、
    を有しており、
    該相互接続線の内の幾つかは2個の隣接するタイル内の2個の論理ブロックをプログラミングによって接続する単一長線(N,S,E,W)であり、
    該相互接続線の内の少なくとも1本は、第2タイル内の少なくとも1本の単一長線と1個のPIPとを介して、第1タイル(TILE1)内の第1論理ブロックを第2タイル(TILE2)内の第2論理ブロックへプログラミングによって接続する少なくとも3個のタイル分の長さである中間長線(6VN,6VS,6HE,6HW)である、
    ことを特徴とするFPGA。
  2. 請求項1において、該中間長線(6VN,6VS,6HE,6HW)の内の幾つかは該中間長線の内の他のものへプログラミングによって単一の方向へ接続され(404−409)、且つ該中間長線の内の幾つかは該中間長線の内の他のものへプログラミングによって双方向に接続される(404、405)ことを特徴とするFPGA。
  3. 請求項1において、該中間長線(6VN,6VS,6HE,6HW)はバッファされたプログラム可能な相互接続点によって駆動され、且つ該単一長線(N,S,E,W)はバッファされないプログラム可能な相互接続点によって駆動されることを特徴とするFPGA。
  4. 請求項1において、各中間長線(6VN,6VS,6HE,6HW)はいずれか2個の隣接する論理ブロック(LB,L)の出力端へ接続不可能であることを特徴とするFPGA。
  5. 請求項1において、該相互接続線(6VN,6VS,6HE,6HW,N,S,E,W)及び該PIPは、
    第1PIPが第1論理ブロック(LB,L)の第1出力端を該中間長線(6VN,6VS,6HE,6HW)の内の1本へプログラミングによって単一の方向へ接続させ、
    第2PIPが該中間長線を第1単一長線(N,S,E,W)へプログラミングによって単一の方向へ接続させ、該第1単一長線は第2論理ブロック(L,B,L)の入力端へ接続されており、
    第3PIPが該中間長線を第2単一長線へプログラミングによって単一の方向へ接続させ、該第2単一長線は第3論理ブロック(LB,L)の入力端へ接続されている、
    ように配置されていることを特徴とするFPGA。
  6. 請求項1において、該複数本の相互接続線(6VN,6VS,6HE,6HE,N,S,E,W)は、更に、少なくとも1本の長尺線(LVN,LVS,LHW,LHE)を有しており、該長尺線は該中間長線(6VN,6VS,6HE,6HW)の長さよりも一層長く延在しており、該相互接続線及び該PIPは、
    第1PIPが第1論理ブロック(LB,L)の出力端を該長尺線へプログラミングによって接続し、
    第2PIPが該長尺線を1本の中間長線へプログラミングによって単一の方向へ接続し、
    第3PIPが該中間長線を1本の単一長線へプログラミングによって単一の方向へ接続し、該単一長線は第2論理ブロック(LB,L)の入力端へ接続している、
    ように配置されていることを特徴とするFPGA。
  7. 請求項1において、該複数本の中間長線(6VN,6VS,6HE,6HW)は端部セグメント(31,37,41,47)と内部セグメント(32−36,42−46)とを有しており、各内部セグメントは1個のタイル(TILE1,TILE2,TILE3)の1個の端部から該タイルの反対側の端部へ延在しており且つ隣接するタイル内の異なる内部セグメントへ接続されるようにオフセットをもって配置されており、それにより連続的な中間長線を形成し、各端部セグメントは第1端部と第2端部とを有しており、該第1端部は隣接するタイル内の1個の内部セグメントへ接続されるように該タイルの一つの端部へ延在しており、該第2端部が該タイル内で終端している、ことを特徴とするFPGA。
  8. 請求項1において、各論理ブロック(LB,L)は、
    入力端と出力端とを具備している入力マルチプレクサ(IMUX−2)と、
    入力端と出力端とを具備している形態特定可能論理要素(CLE−2)と、
    入力端と出力端とを具備している出力マルチプレクサ(OMUX−2)と、を有しており、該単一長線(N,S,E,W)は該入力マルチプレクサの入力端へ接続されており、該入力マルチプレクサの出力端は該形態特定可能論理要素の入力端へ接続されており、該形態特定可能論理要素の出力端は該出力マルチプレクサの入力端へ接続されており、該出力マルチプレクサの出力端は該中間長線(6VN,6VS,6HE,6HW)へプログラミングによって接続されていることを特徴とするFPGA。
  9. 請求項8において、更に、該形態特定可能論理要素(CLE−2)の出力端と該入力マルチプレクサ(IMUX−2)の入力端との間に接続されている高速フィードバック線(430)が設けられており、該高速フィードバック線は該出力マルチプレクサ(OMUX−2)をバイパスすることを特徴とするFPGA。
JP54566298A 1997-03-24 1997-08-28 Fpga繰返し可能相互接続構成体 Expired - Fee Related JP3948497B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/823,265 1997-03-24
US08/823,265 US5963050A (en) 1997-02-26 1997-03-24 Configurable logic element with fast feedback paths
PCT/US1997/015382 WO1998043354A1 (en) 1997-03-24 1997-08-28 Fpga repeatable interconnect structure

Publications (2)

Publication Number Publication Date
JP2001519133A JP2001519133A (ja) 2001-10-16
JP3948497B2 true JP3948497B2 (ja) 2007-07-25

Family

ID=25238264

Family Applications (1)

Application Number Title Priority Date Filing Date
JP54566298A Expired - Fee Related JP3948497B2 (ja) 1997-03-24 1997-08-28 Fpga繰返し可能相互接続構成体

Country Status (5)

Country Link
US (5) US5963050A (ja)
EP (1) EP0972344B1 (ja)
JP (1) JP3948497B2 (ja)
DE (1) DE69716771T2 (ja)
WO (1) WO1998043354A1 (ja)

Families Citing this family (291)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6107822A (en) * 1996-04-09 2000-08-22 Altera Corporation Logic element for a programmable logic integrated circuit
US6396303B1 (en) * 1997-02-26 2002-05-28 Xilinx, Inc. Expandable interconnect structure for FPGAS
US5963050A (en) 1997-02-26 1999-10-05 Xilinx, Inc. Configurable logic element with fast feedback paths
US6204689B1 (en) * 1997-02-26 2001-03-20 Xilinx, Inc. Input/output interconnect circuit for FPGAs
US6124730A (en) * 1998-12-15 2000-09-26 Vantis Corporation Methods for configuring FPGA's having variable grain components for providing time-shared access to interconnect resources
US6467009B1 (en) 1998-10-14 2002-10-15 Triscend Corporation Configurable processor system unit
EP1465345A3 (en) * 1999-03-04 2006-04-12 Altera Corporation Interconnection resources for programmable logic integrated circuit devices
US6366120B1 (en) 1999-03-04 2002-04-02 Altera Corporation Interconnection resources for programmable logic integrated circuit devices
DE60038659T2 (de) * 1999-03-04 2009-06-18 Altera Corp., San Jose Verbindungs- und eingangs/ausgangsmittel für programmierbare logische integrierte schaltungen
US6407576B1 (en) 1999-03-04 2002-06-18 Altera Corporation Interconnection and input/output resources for programmable logic integrated circuit devices
US6633181B1 (en) 1999-12-30 2003-10-14 Stretch, Inc. Multi-scale programmable array
US6721840B1 (en) 2000-08-18 2004-04-13 Triscend Corporation Method and system for interfacing an integrated circuit to synchronous dynamic memory and static memory
US6754760B1 (en) 2000-08-21 2004-06-22 Xilinx, Inc. Programmable interface for a configurable system bus
US7346644B1 (en) 2000-09-18 2008-03-18 Altera Corporation Devices and methods with programmable logic and digital signal processing regions
US7119576B1 (en) 2000-09-18 2006-10-10 Altera Corporation Devices and methods with programmable logic and digital signal processing regions
US7139848B1 (en) 2000-12-08 2006-11-21 Xilinx, Inc. DMA protocol extension for packet-based transfer
US6725364B1 (en) 2001-03-08 2004-04-20 Xilinx, Inc. Configurable processor system
US6630842B1 (en) 2001-05-06 2003-10-07 Altera Corporation Routing architecture for a programmable logic device
US6653862B2 (en) 2001-05-06 2003-11-25 Altera Corporation Use of dangling partial lines for interfacing in a PLD
US6895570B2 (en) 2001-05-06 2005-05-17 Altera Corporation System and method for optimizing routing lines in a programmable logic device
US6970014B1 (en) 2001-05-06 2005-11-29 Altera Corporation Routing architecture for a programmable logic device
US6605962B2 (en) 2001-05-06 2003-08-12 Altera Corporation PLD architecture for flexible placement of IP function blocks
US6466052B1 (en) * 2001-05-15 2002-10-15 Xilinx, Inc. Implementing wide multiplexers in an FPGA using a horizontal chain structure
US6476634B1 (en) * 2002-02-01 2002-11-05 Xilinx, Inc. ALU implementation in single PLD logic cell
US6838751B2 (en) * 2002-03-06 2005-01-04 Freescale Semiconductor Inc. Multi-row leadframe
US6577159B1 (en) 2002-04-22 2003-06-10 Nicholas Jesse Macias Method and apparatus for automatic high-speed bypass routing in a cell matrix self-configurable hardware system
US6670826B1 (en) * 2002-04-26 2003-12-30 Xilinx, Inc. Configurable logic block with a storage element clocked by a write strobe pulse
US7129744B2 (en) * 2003-10-23 2006-10-31 Viciciv Technology Programmable interconnect structures
US7112994B2 (en) 2002-07-08 2006-09-26 Viciciv Technology Three dimensional integrated circuits
US7673273B2 (en) * 2002-07-08 2010-03-02 Tier Logic, Inc. MPGA products based on a prototype FPGA
US7064579B2 (en) * 2002-07-08 2006-06-20 Viciciv Technology Alterable application specific integrated circuit (ASIC)
US20040018711A1 (en) * 2002-07-08 2004-01-29 Madurawe Raminda U. Methods for fabricating three dimensional integrated circuits
US20040004251A1 (en) * 2002-07-08 2004-01-08 Madurawe Raminda U. Insulated-gate field-effect thin film transistors
US7312109B2 (en) * 2002-07-08 2007-12-25 Viciciv, Inc. Methods for fabricating fuse programmable three dimensional integrated circuits
US6992503B2 (en) * 2002-07-08 2006-01-31 Viciciv Technology Programmable devices with convertibility to customizable devices
US20040004239A1 (en) * 2002-07-08 2004-01-08 Madurawe Raminda U. Three dimensional integrated circuits
US7064018B2 (en) * 2002-07-08 2006-06-20 Viciciv Technology Methods for fabricating three dimensional integrated circuits
WO2004010320A2 (en) * 2002-07-23 2004-01-29 Gatechance Technologies, Inc. Pipelined reconfigurable dynamic instruciton set processor
AU2003252157A1 (en) * 2002-07-23 2004-02-09 Gatechange Technologies, Inc. Interconnect structure for electrical devices
US20040111590A1 (en) * 2002-07-23 2004-06-10 Klein Robert C. Self-configuring processing element
US6829756B1 (en) * 2002-09-23 2004-12-07 Xilinx, Inc. Programmable logic device with time-multiplexed interconnect
US7812458B2 (en) * 2007-11-19 2010-10-12 Tier Logic, Inc. Pad invariant FPGA and ASIC devices
US8643162B2 (en) 2007-11-19 2014-02-04 Raminda Udaya Madurawe Pads and pin-outs in three dimensional integrated circuits
US7042756B2 (en) * 2002-10-18 2006-05-09 Viciciv Technology Configurable storage device
US7084666B2 (en) * 2002-10-21 2006-08-01 Viciciv Technology Programmable interconnect structures
US6946871B1 (en) * 2002-12-18 2005-09-20 Actel Corporation Multi-level routing architecture in a field programmable gate array having transmitters and receivers
US6800884B1 (en) * 2002-12-30 2004-10-05 Actel Corporation Inter-tile buffer system for a field programmable gate array
US6798240B1 (en) * 2003-01-24 2004-09-28 Altera Corporation Logic circuitry with shared lookup table
US6943580B2 (en) 2003-02-10 2005-09-13 Altera Corporation Fracturable lookup table and logic element
US7800401B1 (en) 2003-02-10 2010-09-21 Altera Corporation Fracturable lookup table and logic element
US6888373B2 (en) * 2003-02-11 2005-05-03 Altera Corporation Fracturable incomplete look up table for area efficient logic elements
US7271617B2 (en) * 2003-02-19 2007-09-18 Koninklijke Philips Electronics, N.V. Electronic circuit with array of programmable logic cells
US6930510B2 (en) * 2003-03-03 2005-08-16 Xilinx, Inc. FPGA architecture with mixed interconnect resources optimized for fast and low-power routing and methods of utilizing the same
US6943581B1 (en) 2003-03-27 2005-09-13 Xilinx, Inc. Test methodology for direct interconnect with multiple fan-outs
US7000211B2 (en) * 2003-03-31 2006-02-14 Stretch, Inc. System and method for efficiently mapping heterogeneous objects onto an array of heterogeneous programmable logic resources
US7613900B2 (en) * 2003-03-31 2009-11-03 Stretch, Inc. Systems and methods for selecting input/output configuration in an integrated circuit
US7590829B2 (en) * 2003-03-31 2009-09-15 Stretch, Inc. Extension adapter
US8001266B1 (en) 2003-03-31 2011-08-16 Stretch, Inc. Configuring a multi-processor system
US7581081B2 (en) 2003-03-31 2009-08-25 Stretch, Inc. Systems and methods for software extensible multi-processing
US20040242261A1 (en) * 2003-05-29 2004-12-02 General Dynamics Decision Systems, Inc. Software-defined radio
US7225422B2 (en) * 2003-06-19 2007-05-29 International Business Machines Corporation Wire trimmed programmable logic array
US7373642B2 (en) * 2003-07-29 2008-05-13 Stretch, Inc. Defining instruction extensions in a standard programming language
US7418575B2 (en) * 2003-07-29 2008-08-26 Stretch, Inc. Long instruction word processing with instruction extensions
US6952813B1 (en) * 2003-07-30 2005-10-04 Xilinx, Inc. Method and apparatus for selecting programmable interconnects to reduce clock skew
US7185035B1 (en) 2003-10-23 2007-02-27 Altera Corporation Arithmetic structures for programmable logic devices
US7243312B1 (en) 2003-10-24 2007-07-10 Xilinx, Inc. Method and apparatus for power optimization during an integrated circuit design process
US7013449B2 (en) * 2003-10-30 2006-03-14 Hewlett-Packard Development Company, L.P. Method of designing custom circuit device using scheduling clock cycles
US6982570B1 (en) 2003-10-30 2006-01-03 Hewlett-Packard Development Company, L.P. Reconfigurable device
US7565388B1 (en) 2003-11-21 2009-07-21 Altera Corporation Logic cell supporting addition of three binary words
US7167021B1 (en) * 2003-11-24 2007-01-23 Altera Corporation Logic device logic modules having improved arithmetic circuitry
US7317264B2 (en) * 2003-11-25 2008-01-08 Eaton Corporation Method and apparatus to independently control contactors in a multiple contactor configuration
US7019557B2 (en) * 2003-12-24 2006-03-28 Viciciv Technology Look-up table based logic macro-cells
US7176716B2 (en) * 2003-12-24 2007-02-13 Viciciv Technology Look-up table structure with embedded carry logic
US7558812B1 (en) * 2003-11-26 2009-07-07 Altera Corporation Structures for LUT-based arithmetic in PLDs
US7030651B2 (en) * 2003-12-04 2006-04-18 Viciciv Technology Programmable structured arrays
US7336097B2 (en) * 2003-12-24 2008-02-26 Viciciv, Inc. Look-up table structure with embedded carry logic
US7472155B2 (en) * 2003-12-29 2008-12-30 Xilinx, Inc. Programmable logic device with cascading DSP slices
US8495122B2 (en) * 2003-12-29 2013-07-23 Xilinx, Inc. Programmable device with dynamic DSP architecture
US7840630B2 (en) 2003-12-29 2010-11-23 Xilinx, Inc. Arithmetic logic unit circuit
US7853636B2 (en) * 2003-12-29 2010-12-14 Xilinx, Inc. Digital signal processing circuit having a pattern detector circuit for convergent rounding
US7840627B2 (en) * 2003-12-29 2010-11-23 Xilinx, Inc. Digital signal processing circuit having input register blocks
WO2005066832A2 (en) 2003-12-29 2005-07-21 Xilinx, Inc. Integrated circuit with cascading dsp slices
US7853632B2 (en) 2003-12-29 2010-12-14 Xilinx, Inc. Architectural floorplan for a digital signal processing circuit
US7865542B2 (en) * 2003-12-29 2011-01-04 Xilinx, Inc. Digital signal processing block having a wide multiplexer
US7882165B2 (en) * 2003-12-29 2011-02-01 Xilinx, Inc. Digital signal processing element having an arithmetic logic unit
US7567997B2 (en) * 2003-12-29 2009-07-28 Xilinx, Inc. Applications of cascading DSP slices
US7853634B2 (en) 2003-12-29 2010-12-14 Xilinx, Inc. Digital signal processing circuit having a SIMD circuit
US7844653B2 (en) 2003-12-29 2010-11-30 Xilinx, Inc. Digital signal processing circuit having a pre-adder circuit
US7467175B2 (en) * 2003-12-29 2008-12-16 Xilinx, Inc. Programmable logic device with pipelined DSP slices
US7870182B2 (en) 2003-12-29 2011-01-11 Xilinx Inc. Digital signal processing circuit having an adder circuit with carry-outs
US7467177B2 (en) * 2003-12-29 2008-12-16 Xilinx, Inc. Mathematical circuit with dynamic rounding
US7849119B2 (en) 2003-12-29 2010-12-07 Xilinx, Inc. Digital signal processing circuit having a pattern detector circuit
US7480690B2 (en) * 2003-12-29 2009-01-20 Xilinx, Inc. Arithmetic circuit with multiplexed addend inputs
US7860915B2 (en) 2003-12-29 2010-12-28 Xilinx, Inc. Digital signal processing circuit having a pattern circuit for determining termination conditions
US7176713B2 (en) * 2004-01-05 2007-02-13 Viciciv Technology Integrated circuits with RAM and ROM fabrication options
US7109752B1 (en) 2004-02-14 2006-09-19 Herman Schmit Configurable circuits, IC's, and systems
US7167025B1 (en) 2004-02-14 2007-01-23 Herman Schmit Non-sequentially configurable IC
US7126381B1 (en) 2004-02-14 2006-10-24 Herman Schmit VPA interconnect circuit
US7126373B1 (en) 2004-02-14 2006-10-24 Herman Schmit Configurable logic circuits with commutative properties
US7157933B1 (en) 2004-02-14 2007-01-02 Herman Schmit Configurable circuits, IC's, and systems
US7284222B1 (en) * 2004-06-30 2007-10-16 Tabula, Inc. Method and apparatus for identifying connections between configurable nodes in a configurable integrated circuit
US7193432B1 (en) 2004-02-14 2007-03-20 Herman Schmit VPA logic circuits
US7425841B2 (en) 2004-02-14 2008-09-16 Tabula Inc. Configurable circuits, IC's, and systems
US7193440B1 (en) * 2004-02-14 2007-03-20 Herman Schmit Configurable circuits, IC's, and systems
KR100564611B1 (ko) * 2004-02-14 2006-03-29 삼성전자주식회사 하드 디스크 드라이브의 완충 구조체
US7622951B2 (en) 2004-02-14 2009-11-24 Tabula, Inc. Via programmable gate array with offset direct connections
US7205791B1 (en) 2004-03-12 2007-04-17 Altera Corporation Bypass-able carry chain in a programmable logic device
US7061268B1 (en) 2004-03-15 2006-06-13 Altera Corporation Initializing a carry chain in a programmable logic device
US7167022B1 (en) 2004-03-25 2007-01-23 Altera Corporation Omnibus logic element including look up table based logic elements
US6975139B2 (en) * 2004-03-30 2005-12-13 Advantage Logic, Inc. Scalable non-blocking switching network for programmable logic
US7698118B2 (en) * 2004-04-15 2010-04-13 Mentor Graphics Corporation Logic design modeling and interconnection
US7768314B2 (en) 2004-05-12 2010-08-03 National University Corporation Okayama University Integrated circuit with multidimensional switch topology
US7489164B2 (en) * 2004-05-17 2009-02-10 Raminda Udaya Madurawe Multi-port memory devices
US7193438B1 (en) * 2004-06-30 2007-03-20 Andre Rohe Configurable integrated circuit with offset connection
US7282950B1 (en) * 2004-11-08 2007-10-16 Tabula, Inc. Configurable IC's with logic resources with offset connections
US7145361B1 (en) * 2004-06-30 2006-12-05 Andre Rohe Configurable integrated circuit with different connection schemes
US7449915B2 (en) * 2004-06-30 2008-11-11 Tabula Inc. VPA logic circuits
US7312630B2 (en) * 2004-06-30 2007-12-25 Tabula, Inc. Configurable integrated circuit with built-in turns
US7408382B2 (en) * 2004-06-30 2008-08-05 Tabula, Inc. Configurable circuits, IC's, and systems
US7243329B2 (en) 2004-07-02 2007-07-10 Altera Corporation Application-specific integrated circuit equivalents of programmable logic and associated methods
US7460529B2 (en) * 2004-07-29 2008-12-02 Advantage Logic, Inc. Interconnection fabric using switching networks in hierarchy
US7254797B2 (en) * 2004-09-30 2007-08-07 Rambus Inc. Input/output cells with localized clock routing
US7743085B2 (en) * 2004-11-08 2010-06-22 Tabula, Inc. Configurable IC with large carry chains
US7295037B2 (en) 2004-11-08 2007-11-13 Tabula, Inc. Configurable IC with routing circuits with offset connections
US7224181B1 (en) * 2004-11-08 2007-05-29 Herman Schmit Clock distribution in a configurable IC
US7276933B1 (en) * 2004-11-08 2007-10-02 Tabula, Inc. Reconfigurable IC that has sections running at different looperness
US7268586B1 (en) * 2004-11-08 2007-09-11 Tabula, Inc. Method and apparatus for accessing stored data in a reconfigurable IC
US7259587B1 (en) 2004-11-08 2007-08-21 Tabula, Inc. Configurable IC's with configurable logic resources that have asymetric inputs and/or outputs
US7917559B2 (en) * 2004-11-08 2011-03-29 Tabula, Inc. Configurable IC's with configurable logic circuits that perform adder and/or subtractor operations
US7342415B2 (en) * 2004-11-08 2008-03-11 Tabula, Inc. Configurable IC with interconnect circuits that also perform storage operations
US7301368B2 (en) * 2005-03-15 2007-11-27 Tabula, Inc. Embedding memory within tile arrangement of a configurable IC
US7242216B1 (en) 2004-11-08 2007-07-10 Herman Schmit Embedding memory between tile arrangement of a configurable IC
US7317331B2 (en) 2004-11-08 2008-01-08 Tabula, Inc. Reconfigurable IC that has sections running at different reconfiguration rates
US7573296B2 (en) * 2004-11-08 2009-08-11 Tabula Inc. Configurable IC with configurable routing resources that have asymmetric input and/or outputs
US7330050B2 (en) 2004-11-08 2008-02-12 Tabula, Inc. Storage elements for a configurable IC and method and apparatus for accessing data stored in the storage elements
US20070244958A1 (en) * 2004-11-08 2007-10-18 Jason Redgrave Configurable IC's with carry bypass circuitry
US7236009B1 (en) 2004-12-01 2007-06-26 Andre Rohe Operational time extension
US7496879B2 (en) * 2004-12-01 2009-02-24 Tabula, Inc. Concurrent optimization of physical design and operational cycle assignment
US7428721B2 (en) * 2004-12-01 2008-09-23 Tabula, Inc. Operational cycle assignment in a configurable IC
US7212030B1 (en) * 2004-12-31 2007-05-01 Actel Corporation Field programmable gate array long line routing network
US7358765B2 (en) * 2005-02-23 2008-04-15 Cswitch Corporation Dedicated logic cells employing configurable logic and dedicated logic functions
US7230869B1 (en) 2005-03-15 2007-06-12 Jason Redgrave Method and apparatus for accessing contents of memory cells
US7298169B2 (en) * 2005-03-15 2007-11-20 Tabula, Inc Hybrid logic/interconnect circuit in a configurable IC
US7224182B1 (en) 2005-03-15 2007-05-29 Brad Hutchings Hybrid configurable circuit for a configurable IC
US7825684B2 (en) * 2005-03-15 2010-11-02 Tabula, Inc. Variable width management for a memory of a configurable IC
US7530033B2 (en) 2005-03-15 2009-05-05 Tabula, Inc. Method and apparatus for decomposing functions in a configurable IC
US7310003B2 (en) * 2005-03-15 2007-12-18 Tabula, Inc. Configurable IC with interconnect circuits that have select lines driven by user signals
US20070244959A1 (en) * 2005-03-15 2007-10-18 Steven Teig Configurable IC's with dual carry chains
US7221186B1 (en) 2005-06-14 2007-05-22 Xilinx, Inc. Efficient tile layout for a programmable logic device
US7233168B1 (en) 2005-06-14 2007-06-19 Xilinx, Inc. Methods of setting and resetting lookup table memory cells
US7218143B1 (en) 2005-06-14 2007-05-15 Xilinx, Inc. Integrated circuit having fast interconnect paths between memory elements and carry logic
US7218140B1 (en) 2005-06-14 2007-05-15 Xilinx, Inc. Integrated circuit having fast interconnect paths between carry chain multiplexers and lookup tables
US7276934B1 (en) 2005-06-14 2007-10-02 Xilinx, Inc. Integrated circuit with programmable routing structure including diagonal interconnect lines
US7274214B1 (en) 2005-06-14 2007-09-25 Xilinx, Inc. Efficient tile layout for a programmable logic device
US7205790B1 (en) 2005-06-14 2007-04-17 Xilinx, Inc. Programmable integrated circuit providing efficient implementations of wide logic functions
US7256612B1 (en) * 2005-06-14 2007-08-14 Xilinx, Inc. Programmable logic block providing carry chain with programmable initialization values
US7193433B1 (en) 2005-06-14 2007-03-20 Xilinx, Inc. Programmable logic block having lookup table with partial output signal driving carry multiplexer
US7265576B1 (en) 2005-06-14 2007-09-04 Xilinx, Inc. Programmable lookup table with dual input and output terminals in RAM mode
US7199610B1 (en) 2005-06-14 2007-04-03 Xilinx, Inc. Integrated circuit interconnect structure having reduced coupling between interconnect lines
US7375552B1 (en) 2005-06-14 2008-05-20 Xilinx, Inc. Programmable logic block with dedicated and selectable lookup table outputs coupled to general interconnect structure
US7268587B1 (en) 2005-06-14 2007-09-11 Xilinx, Inc. Programmable logic block with carry chains providing lookahead functions of different lengths
US7202697B1 (en) 2005-06-14 2007-04-10 Xilinx, Inc. Programmable logic block having improved performance when functioning in shift register mode
US7202698B1 (en) 2005-06-14 2007-04-10 Xilinx, Inc. Integrated circuit having a programmable input structure with bounce capability
US7279929B1 (en) 2005-06-14 2007-10-09 Xilinx, Inc. Integrated circuit with programmable routing structure including straight and diagonal interconnect lines
US7196543B1 (en) 2005-06-14 2007-03-27 Xilinx, Inc. Integrated circuit having a programmable input structure with optional fanout capability
US7215138B1 (en) 2005-06-14 2007-05-08 Xilinx, Inc. Programmable lookup table with dual input and output terminals in shift register mode
US7804719B1 (en) 2005-06-14 2010-09-28 Xilinx, Inc. Programmable logic block having reduced output delay during RAM write processes when programmed to function in RAM mode
US7218139B1 (en) 2005-06-14 2007-05-15 Xilinx, Inc. Programmable integrated circuit providing efficient implementations of arithmetic functions
US7253658B1 (en) 2005-06-14 2007-08-07 Xilinx, Inc. Integrated circuit providing direct access to multi-directional interconnect lines in a general interconnect structure
US7284228B1 (en) 2005-07-19 2007-10-16 Xilinx, Inc. Methods of using ant colony optimization to pack designs into programmable logic devices
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
US7451421B1 (en) * 2005-11-01 2008-11-11 Xilinx, Inc. Methods of implementing and modeling interconnect lines at optional boundaries in multi-product programmable IC dies
US7498192B1 (en) 2005-11-01 2009-03-03 Xilinx, Inc. Methods of providing a family of related integrated circuits of different sizes
US7402443B1 (en) 2005-11-01 2008-07-22 Xilinx, Inc. Methods of providing families of integrated circuits with similar dies partially disabled using product selection codes
US7491576B1 (en) 2005-11-01 2009-02-17 Xilinx, Inc. Yield-enhancing methods of providing a family of scaled integrated circuits
US7312631B1 (en) 2005-11-01 2007-12-25 Xilinx, Inc. Structures and methods for avoiding hold time violations in a programmable logic device
US7765249B1 (en) 2005-11-07 2010-07-27 Tabula, Inc. Use of hybrid interconnect/logic circuits for multiplication
US7372297B1 (en) 2005-11-07 2008-05-13 Tabula Inc. Hybrid interconnect/logic circuits enabling efficient replication of a function in several sub-cycles to save logic and routing resources
US7818361B1 (en) 2005-11-07 2010-10-19 Tabula, Inc. Method and apparatus for performing two's complement multiplication
US8463836B1 (en) 2005-11-07 2013-06-11 Tabula, Inc. Performing mathematical and logical operations in multiple sub-cycles
US7262633B1 (en) 2005-11-11 2007-08-28 Tabula, Inc. Via programmable gate array with offset bit lines
US7679401B1 (en) 2005-12-01 2010-03-16 Tabula, Inc. User registers implemented with routing circuits in a configurable IC
US7423453B1 (en) 2006-01-20 2008-09-09 Advantage Logic, Inc. Efficient integrated circuit layout scheme to implement a scalable switching network used in interconnection fabric
US8266198B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8266199B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8301681B1 (en) 2006-02-09 2012-10-30 Altera Corporation Specialized processing block for programmable logic device
US8041759B1 (en) 2006-02-09 2011-10-18 Altera Corporation Specialized processing block for programmable logic device
US7797497B1 (en) * 2006-03-08 2010-09-14 Tabula, Inc. System and method for providing more logical memory ports than physical memory ports
US7486111B2 (en) * 2006-03-08 2009-02-03 Tier Logic, Inc. Programmable logic devices comprising time multiplexed programmable interconnect
US7694083B1 (en) 2006-03-08 2010-04-06 Tabula, Inc. System and method for providing a virtual memory architecture narrower and deeper than a physical memory architecture
US7669097B1 (en) 2006-03-27 2010-02-23 Tabula, Inc. Configurable IC with error detection and correction circuitry
US7389485B1 (en) 2006-03-28 2008-06-17 Xilinx, Inc. Methods of routing low-power designs in programmable logic devices having heterogeneous routing architectures
US7836117B1 (en) 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for programmable logic device
US7822799B1 (en) 2006-06-26 2010-10-26 Altera Corporation Adder-rounder circuitry for specialized processing block in programmable logic device
US20080024165A1 (en) * 2006-07-28 2008-01-31 Raminda Udaya Madurawe Configurable embedded multi-port memory
US8386550B1 (en) 2006-09-20 2013-02-26 Altera Corporation Method for configuring a finite impulse response filter in a programmable logic device
US8386553B1 (en) 2006-12-05 2013-02-26 Altera Corporation Large multiplier for programmable logic device
US7930336B2 (en) 2006-12-05 2011-04-19 Altera Corporation Large multiplier for programmable logic device
US7930666B1 (en) 2006-12-12 2011-04-19 Tabula, Inc. System and method of providing a memory hierarchy
US7814137B1 (en) 2007-01-09 2010-10-12 Altera Corporation Combined interpolation and decimation filter for programmable logic device
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US7865541B1 (en) 2007-01-22 2011-01-04 Altera Corporation Configuring floating point operations in a programmable logic device
US8645450B1 (en) 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
US7514957B2 (en) * 2007-03-20 2009-04-07 Tabula, Inc Configurable IC having a routing fabric with storage elements
US8112468B1 (en) 2007-03-22 2012-02-07 Tabula, Inc. Method and apparatus for performing an operation with a plurality of sub-operations in a configurable IC
US7394287B1 (en) 2007-05-21 2008-07-01 Altera Corporation Programmable logic device having complex logic blocks with improved logic cell functionality
US7459932B1 (en) * 2007-05-24 2008-12-02 Altera Corporation Programmable logic device having logic modules with improved register capabilities
US7949699B1 (en) 2007-08-30 2011-05-24 Altera Corporation Implementation of decimation filter in integrated circuit device using ram-based data storage
EP2201569A4 (en) 2007-09-06 2011-07-13 Tabula Inc CONFIGURATION CONTEXT SWITCH
EP2188894B1 (en) * 2007-09-13 2017-10-18 Friedrich-Alexander-Universität Erlangen-Nürnberg Logic chip, logic system and method for designing a logic chip
US7902862B2 (en) 2007-09-14 2011-03-08 Agate Logic, Inc. High-bandwidth interconnect network for an integrated circuit
US7635988B2 (en) * 2007-11-19 2009-12-22 Tier Logic, Inc. Multi-port thin-film memory devices
US20090128189A1 (en) * 2007-11-19 2009-05-21 Raminda Udaya Madurawe Three dimensional programmable devices
US7573294B2 (en) * 2007-12-26 2009-08-11 Tier Logic, Inc. Programmable logic based latches and shift registers
US7573293B2 (en) * 2007-12-26 2009-08-11 Tier Logic, Inc. Programmable logic based latches and shift registers
US7602213B2 (en) * 2007-12-26 2009-10-13 Tier Logic, Inc. Using programmable latch to implement logic
US7795913B2 (en) * 2007-12-26 2010-09-14 Tier Logic Programmable latch based multiplier
US8863067B1 (en) 2008-02-06 2014-10-14 Tabula, Inc. Sequential delay analysis by placement engines
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US8244789B1 (en) 2008-03-14 2012-08-14 Altera Corporation Normalization of floating point operations in a programmable integrated circuit device
US7701248B2 (en) * 2008-04-10 2010-04-20 Silicon Storage Technology, Inc. Storage element for controlling a logic circuit, and a logic device having an array of such storage elements
US8166435B2 (en) * 2008-06-26 2012-04-24 Tabula, Inc. Timing operations in an IC with configurable circuits
US8626815B1 (en) 2008-07-14 2014-01-07 Altera Corporation Configuring a programmable integrated circuit device to perform matrix multiplication
US8230375B2 (en) 2008-09-14 2012-07-24 Raminda Udaya Madurawe Automated metal pattern generation for integrated circuits
WO2010033263A1 (en) 2008-09-17 2010-03-25 Tabula, Inc. Controllable storage elements for an ic
US8255448B1 (en) 2008-10-02 2012-08-28 Altera Corporation Implementing division in a programmable integrated circuit device
US8307023B1 (en) 2008-10-10 2012-11-06 Altera Corporation DSP block for implementing large multiplier on a programmable integrated circuit device
US7705629B1 (en) 2008-12-03 2010-04-27 Advantage Logic, Inc. Permutable switching network with enhanced interconnectivity for multicasting signals
US7714611B1 (en) * 2008-12-03 2010-05-11 Advantage Logic, Inc. Permutable switching network with enhanced multicasting signals routing for interconnection fabric
US8543635B2 (en) 2009-01-27 2013-09-24 Xilinx, Inc. Digital signal processing block with preadder stage
US8479133B2 (en) 2009-01-27 2013-07-02 Xilinx, Inc. Method of and circuit for implementing a filter in an integrated circuit
US8987868B1 (en) 2009-02-24 2015-03-24 Xilinx, Inc. Method and apparatus for programmable heterogeneous integration of stacked semiconductor die
US8549055B2 (en) 2009-03-03 2013-10-01 Altera Corporation Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry
US8706790B1 (en) 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8805916B2 (en) 2009-03-03 2014-08-12 Altera Corporation Digital signal processing circuitry with redundancy and bidirectional data paths
US8645449B1 (en) 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US8886696B1 (en) 2009-03-03 2014-11-11 Altera Corporation Digital signal processing circuitry with redundancy and ability to support larger multipliers
US8468192B1 (en) 2009-03-03 2013-06-18 Altera Corporation Implementing multipliers in a programmable integrated circuit device
US7999570B2 (en) * 2009-06-24 2011-08-16 Advantage Logic, Inc. Enhanced permutable switching network with multicasting signals for interconnection fabric
JP2012532369A (ja) 2009-06-30 2012-12-13 ラムバス・インコーポレーテッド ノイズを補償するためにクロック信号を調節する技法
US8650236B1 (en) 2009-08-04 2014-02-11 Altera Corporation High-rate interpolation or decimation filter in integrated circuit device
US7893712B1 (en) 2009-09-10 2011-02-22 Xilinx, Inc. Integrated circuit with a selectable interconnect circuit for low power or high performance operation
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US8396914B1 (en) 2009-09-11 2013-03-12 Altera Corporation Matrix decomposition in an integrated circuit device
US8341580B2 (en) * 2009-09-28 2012-12-25 Advantage Logic, Inc. Modular routing fabric using switching networks
US8539016B1 (en) 2010-02-09 2013-09-17 Altera Corporation QR decomposition in an integrated circuit device
US7948267B1 (en) 2010-02-09 2011-05-24 Altera Corporation Efficient rounding circuits and methods in configurable integrated circuit devices
US8601044B2 (en) 2010-03-02 2013-12-03 Altera Corporation Discrete Fourier Transform in an integrated circuit device
US8458243B1 (en) 2010-03-03 2013-06-04 Altera Corporation Digital signal processing circuit blocks with support for systolic finite-impulse-response digital filtering
US8484265B1 (en) 2010-03-04 2013-07-09 Altera Corporation Angular range reduction in an integrated circuit device
US8510354B1 (en) 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8539014B2 (en) 2010-03-25 2013-09-17 Altera Corporation Solving linear matrices in an integrated circuit device
US9015023B2 (en) 2010-05-05 2015-04-21 Xilinx, Inc. Device specific configuration of operating voltage
US8589463B2 (en) 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8577951B1 (en) 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
US8890567B1 (en) 2010-09-30 2014-11-18 Altera Corporation High speed testing of integrated circuits including resistive elements
US8159266B1 (en) 2010-11-16 2012-04-17 Raminda Udaya Madurawe Metal configurable integrated circuits
US8159268B1 (en) 2010-11-16 2012-04-17 Raminda Udaya Madurawe Interconnect structures for metal configurable integrated circuits
US8159265B1 (en) 2010-11-16 2012-04-17 Raminda Udaya Madurawe Memory for metal configurable integrated circuits
JP5701054B2 (ja) * 2010-12-28 2015-04-15 国立大学法人 熊本大学 リコンフィギュラブルロジックブロック、並びに、これを用いたプログラマブル論理回路装置、及び、テクノロジマッピング方法
US8645451B2 (en) 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US8941409B2 (en) 2011-07-01 2015-01-27 Tabula, Inc. Configurable storage elements
US9148151B2 (en) 2011-07-13 2015-09-29 Altera Corporation Configurable storage elements
US8812576B1 (en) 2011-09-12 2014-08-19 Altera Corporation QR decomposition in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8762443B1 (en) 2011-11-15 2014-06-24 Altera Corporation Matrix operations in an integrated circuit device
US8522185B1 (en) * 2012-02-06 2013-08-27 Xilinx, Inc. Method for placement and routing of a circuit design
US8543634B1 (en) 2012-03-30 2013-09-24 Altera Corporation Specialized processing block for programmable integrated circuit device
US9166598B1 (en) 2012-05-08 2015-10-20 Altera Corporation Routing and programming for resistive switch arrays
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US8957512B2 (en) 2012-06-19 2015-02-17 Xilinx, Inc. Oversized interposer
US8869088B1 (en) 2012-06-27 2014-10-21 Xilinx, Inc. Oversized interposer formed from a multi-pattern region mask
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US9026872B2 (en) 2012-08-16 2015-05-05 Xilinx, Inc. Flexible sized die for use in multi-die integrated circuit
US9490811B2 (en) * 2012-10-04 2016-11-08 Efinix, Inc. Fine grain programmable gate architecture with hybrid logic/routing element and direct-drive routing
US9525419B2 (en) * 2012-10-08 2016-12-20 Efinix, Inc. Heterogeneous segmented and direct routing architecture for field programmable gate array
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
WO2014132669A1 (ja) * 2013-03-01 2014-09-04 アトナープ株式会社 データ処理装置およびその制御方法
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9000490B2 (en) 2013-04-19 2015-04-07 Xilinx, Inc. Semiconductor package having IC dice and voltage tuners
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US9547034B2 (en) 2013-07-03 2017-01-17 Xilinx, Inc. Monolithic integrated circuit die having modular die regions stitched together
US9379687B1 (en) 2014-01-14 2016-06-28 Altera Corporation Pipelined systolic finite impulse response filter
US9915869B1 (en) 2014-07-01 2018-03-13 Xilinx, Inc. Single mask set used for interposer fabrication of multiple products
US9372956B1 (en) 2014-11-10 2016-06-21 Xilinx, Inc. Increased usable programmable device dice
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device
US10523209B1 (en) * 2017-11-14 2019-12-31 Flex Logix Technologies, Inc. Test circuitry and techniques for logic tiles of FPGA

Family Cites Families (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US34363A (en) * 1862-02-11 Improvement in machinery for cleaning cotton
US4124899A (en) * 1977-05-23 1978-11-07 Monolithic Memories, Inc. Programmable array logic circuit
USRE34363E (en) 1984-03-12 1993-08-31 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US4870302A (en) * 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US4642487A (en) * 1984-09-26 1987-02-10 Xilinx, Inc. Special interconnect for configurable logic array
US4706216A (en) * 1985-02-27 1987-11-10 Xilinx, Inc. Configurable logic element
US4750155A (en) * 1985-09-19 1988-06-07 Xilinx, Incorporated 5-Transistor memory cell which can be reliably read and written
US4821233A (en) * 1985-09-19 1989-04-11 Xilinx, Incorporated 5-transistor memory cell with known state on power-up
US4758745B1 (en) * 1986-09-19 1994-11-15 Actel Corp User programmable integrated circuit interconnect architecture and test method
US5157618A (en) * 1988-03-10 1992-10-20 Cirrus Logic, Inc. Programmable tiles
GB8828828D0 (en) * 1988-12-09 1989-01-18 Pilkington Micro Electronics Semiconductor integrated circuit
GB8906145D0 (en) * 1989-03-17 1989-05-04 Algotronix Ltd Configurable cellular array
US5343406A (en) * 1989-07-28 1994-08-30 Xilinx, Inc. Distributed memory architecture for a configurable logic array and method for using distributed memory
US5212652A (en) * 1989-08-15 1993-05-18 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure
US5255203A (en) * 1989-08-15 1993-10-19 Advanced Micro Devices, Inc. Interconnect structure for programmable logic device
US5231588A (en) * 1989-08-15 1993-07-27 Advanced Micro Devices, Inc. Programmable gate array with logic cells having symmetrical input/output structures
US5185706A (en) * 1989-08-15 1993-02-09 Advanced Micro Devices, Inc. Programmable gate array with logic cells having configurable output enable
US5260881A (en) * 1989-10-30 1993-11-09 Advanced Micro Devices, Inc. Programmable gate array with improved configurable logic block
JPH0391932A (ja) 1989-09-04 1991-04-17 Canon Inc 半導体装置の製造方法
DE4011486A1 (de) * 1990-04-09 1991-10-10 Inst Stahlbeton Bewehrung Ev Betonrippenstahl mit kaltgewalzten schraegrippen und dessen verwendung
US5267187A (en) * 1990-05-10 1993-11-30 Xilinx Inc Logic structure and circuit for fast carry
US5198705A (en) * 1990-05-11 1993-03-30 Actel Corporation Logic module with configurable combinational and sequential blocks
JPH0447591A (ja) 1990-06-14 1992-02-17 Mitsubishi Electric Corp 半導体集積回路装置
US5073729A (en) * 1990-06-22 1991-12-17 Actel Corporation Segmented routing architecture
US5245227A (en) * 1990-11-02 1993-09-14 Atmel Corporation Versatile programmable logic cell for use in configurable logic arrays
US5144166A (en) * 1990-11-02 1992-09-01 Concurrent Logic, Inc. Programmable logic cell and array
US5079451A (en) * 1990-12-13 1992-01-07 Atmel Corporation Programmable logic device with global and local product terms
US5122685A (en) * 1991-03-06 1992-06-16 Quicklogic Corporation Programmable application specific integrated circuit and logic cell therefor
US5220213A (en) * 1991-03-06 1993-06-15 Quicklogic Corporation Programmable application specific integrated circuit and logic cell therefor
US5313119A (en) * 1991-03-18 1994-05-17 Crosspoint Solutions, Inc. Field programmable gate array
US5241224A (en) * 1991-04-25 1993-08-31 Altera Corporation High-density erasable programmable logic device architecture using multiplexer interconnections
US5338984A (en) * 1991-08-29 1994-08-16 National Semiconductor Corp. Local and express diagonal busses in a configurable logic array
US5260611A (en) * 1991-09-03 1993-11-09 Altera Corporation Programmable logic array having local and long distance conductors
US5260610A (en) * 1991-09-03 1993-11-09 Altera Corporation Programmable logic element interconnections for programmable logic array integrated circuits
US5347519A (en) * 1991-12-03 1994-09-13 Crosspoint Solutions Inc. Preprogramming testing in a field programmable gate array
US5208491A (en) * 1992-01-07 1993-05-04 Washington Research Foundation Field programmable gate array
US5359242A (en) * 1993-01-21 1994-10-25 Altera Corporation Programmable logic with carry-in/carry-out between logic blocks
US5258668A (en) * 1992-05-08 1993-11-02 Altera Corporation Programmable logic array integrated circuits with cascade connections between logic modules
US5384500A (en) * 1992-05-15 1995-01-24 Micron Semiconductor, Inc. Programmable logic device macrocell with an exclusive feedback and an exclusive external input line for a combinatorial mode and accommodating two separate programmable or planes
US5333279A (en) * 1992-06-01 1994-07-26 Intel Corporation Self-timed mesh routing chip with data broadcasting
US5365125A (en) * 1992-07-23 1994-11-15 Xilinx, Inc. Logic cell for field programmable gate array having optional internal feedback and optional cascade
US5645546A (en) 1992-09-14 1997-07-08 Microaire Surgical Instruments Bone screw and screw driver blade system for oral and maxillofacial surgical procedures
GB9223226D0 (en) * 1992-11-05 1992-12-16 Algotronix Ltd Improved configurable cellular array (cal ii)
US5414377A (en) 1992-12-21 1995-05-09 Xilinx, Inc. Logic block with look-up table for configuration and memory
US5357153A (en) * 1993-01-28 1994-10-18 Xilinx, Inc. Macrocell with product-term cascade and improved flip flop utilization
GB9312674D0 (en) * 1993-06-18 1993-08-04 Pilkington Micro Electronics Configurabel logic array
JP2944368B2 (ja) * 1993-07-07 1999-09-06 株式会社東芝 半導体集積回路及びプログラマブルロジックデバイス
US5457410A (en) * 1993-08-03 1995-10-10 Btr, Inc. Architecture and interconnect scheme for programmable logic circuits
US5546596A (en) * 1993-08-24 1996-08-13 Intel Corporation Method and apparatus for integrated local and express routing in a multiprocessor
US5546018A (en) * 1993-09-02 1996-08-13 Xilinx, Inc. Fast carry structure with synchronous input
US5481206A (en) * 1993-09-02 1996-01-02 Xilinx, Inc. Circuit for fast carry and logic
US5898319A (en) 1993-09-02 1999-04-27 Xilinx, Inc. Method and structure for providing fast conditional sum in a field programmable gate array
US5629886A (en) * 1993-09-02 1997-05-13 Xilinx, Inc. Method and structure for providing fast propagation of a carry signal in a field programmable gate array
US5349250A (en) * 1993-09-02 1994-09-20 Xilinx, Inc. Logic structure and circuit for fast carry
US5455525A (en) * 1993-12-06 1995-10-03 Intelligent Logic Systems, Inc. Hierarchically-structured programmable logic array and system for interconnecting logic elements in the logic array
KR960002333B1 (ko) 1993-12-23 1996-02-16 재단법인한국전자통신연구소 논리 집적회로 모듈
US5504440A (en) * 1994-01-27 1996-04-02 Dyna Logic Corporation High speed programmable logic architecture
US5682107A (en) * 1994-04-01 1997-10-28 Xilinx, Inc. FPGA architecture with repeatable tiles including routing matrices and logic matrices
US5761099A (en) * 1994-11-04 1998-06-02 Altera Corporation Programmable logic array integrated circuits with enhanced carry routing
US5815726A (en) * 1994-11-04 1998-09-29 Altera Corporation Coarse-grained look-up table architecture
US5581199A (en) * 1995-01-04 1996-12-03 Xilinx, Inc. Interconnect architecture for field programmable gate array using variable length conductors
US5537057A (en) * 1995-02-14 1996-07-16 Altera Corporation Programmable logic array device with grouped logic regions and three types of conductors
US5592106A (en) * 1995-05-17 1997-01-07 Altera Corporation Programmable logic array integrated circuits with interconnection conductors of overlapping extent
US5543732A (en) * 1995-05-17 1996-08-06 Altera Corporation Programmable logic array devices with interconnect lines of various lengths
US5900743A (en) 1995-05-17 1999-05-04 Altera Corporation Programmable logic array devices with interconnect lines of various lengths
US5646546A (en) * 1995-06-02 1997-07-08 International Business Machines Corporation Programmable logic cell having configurable gates and multiplexers
US5583450A (en) * 1995-08-18 1996-12-10 Xilinx, Inc. Sequencer for a time multiplexed programmable logic device
US5848285A (en) * 1995-12-26 1998-12-08 Cypress Semiconductor Corporation Macrocell having a dual purpose input register for use in a logic device
US5847580A (en) * 1996-10-10 1998-12-08 Xilinx, Inc. High speed bidirectional bus with multiplexers
US5635851A (en) * 1996-02-02 1997-06-03 Xilinx, Inc. Read and writable data bus particularly for programmable logic devices
US5677638A (en) * 1996-02-02 1997-10-14 Xilinx, Inc. High speed tristate bus with multiplexers for selecting bus driver
US5724276A (en) * 1996-06-17 1998-03-03 Xilinx, Inc. Logic block structure optimized for sum generation
US5933023A (en) 1996-09-03 1999-08-03 Xilinx, Inc. FPGA architecture having RAM blocks with programmable word length and width and dedicated address and data lines
US5889413A (en) * 1996-11-22 1999-03-30 Xilinx, Inc. Lookup tables which double as shift registers
US5828230A (en) * 1997-01-09 1998-10-27 Xilinx, Inc. FPGA two turn routing structure with lane changing and minimum diffusion area
US5920202A (en) 1997-02-26 1999-07-06 Xilinx, Inc. Configurable logic element with ability to evaluate five and six input functions
US5963050A (en) * 1997-02-26 1999-10-05 Xilinx, Inc. Configurable logic element with fast feedback paths
US5942913A (en) 1997-03-20 1999-08-24 Xilinx, Inc. FPGA repeatable interconnect structure with bidirectional and unidirectional interconnect lines
US5914616A (en) 1997-02-26 1999-06-22 Xilinx, Inc. FPGA repeatable interconnect structure with hierarchical interconnect lines
US5905385A (en) * 1997-04-01 1999-05-18 Advanced Micro Devices, Inc. Memory bits used to couple look up table inputs to facilitate increased availability to routing resources particularly for variable sized look up tables for a field programmable gate array (FPGA)
US5894426A (en) 1997-10-28 1999-04-13 Winbond Electronics Corporation Maximum/minimum value determination apparatus
US6154052A (en) 1999-02-04 2000-11-28 Xilinx, Inc. Combined tristate/carry logic mechanism

Also Published As

Publication number Publication date
US5963050A (en) 1999-10-05
US6107827A (en) 2000-08-22
EP0972344B1 (en) 2002-10-30
JP2001519133A (ja) 2001-10-16
US6204690B1 (en) 2001-03-20
US6292022B2 (en) 2001-09-18
WO1998043354A1 (en) 1998-10-01
EP0972344A1 (en) 2000-01-19
DE69716771T2 (de) 2003-06-12
DE69716771D1 (de) 2002-12-05
US20010007428A1 (en) 2001-07-12
US6448808B2 (en) 2002-09-10
US20020008541A1 (en) 2002-01-24

Similar Documents

Publication Publication Date Title
JP3948497B2 (ja) Fpga繰返し可能相互接続構成体
US5907248A (en) FPGA interconnect structure with high-speed high fanout capability
US5942913A (en) FPGA repeatable interconnect structure with bidirectional and unidirectional interconnect lines
US6204689B1 (en) Input/output interconnect circuit for FPGAs
US6396303B1 (en) Expandable interconnect structure for FPGAS
US6069490A (en) Routing architecture using a direct connect routing mesh
US6181163B1 (en) FPGA integrated circuit having embedded SRAM memory blocks and interconnect channel for broadcasting address and control signals
US6081473A (en) FPGA integrated circuit having embedded sram memory blocks each with statically and dynamically controllable read mode
US6216257B1 (en) FPGA device and method that includes a variable grain function architecture for implementing configuration logic blocks and a complimentary variable length interconnect architecture for providing configurable routing between configuration logic blocks
USRE39510E1 (en) FPGA integrated circuit having embedded sram memory blocks with registered address and data input sections
US5986465A (en) Programmable logic integrated circuit architecture incorporating a global shareable expander
US5701091A (en) Routing resources for hierarchical FPGA
JP5268195B2 (ja) プログラム可能高速入出力インターフェース
US6084429A (en) PLD having a window pane architecture with segmented and staggered interconnect wiring between logic block arrays
US6124731A (en) Configurable logic element with ability to evaluate wide logic functions
US5581199A (en) Interconnect architecture for field programmable gate array using variable length conductors
US5883526A (en) Hierarchical interconnect for programmable logic devices
US6127843A (en) Dual port SRAM memory for run time use in FPGA integrated circuits
US6466049B1 (en) Clock enable control circuit for flip flops
US8082526B2 (en) Dedicated crossbar and barrel shifter block on programmable logic resources
WO1996038917A1 (en) Very high-density complex programmable logic devices with a multi-tiered hierarchical switch matrix and optimized flexible logic allocation
EP1188241A1 (en) SCALABLE ARCHITECTURE FOR HIGH DENSITY CPLD's HAVING TWO-LEVEL HIERARCHY OF ROUTING RESOURCES
WO1999033177A1 (en) Symmetrical, extended and fast direct connections between variable grain blocks in fpga integrated circuits
WO1998038740A1 (en) Fpga having logic element carry chains capable of generating wide xor functions
US6150841A (en) Enhanced macrocell module for high density CPLD architectures

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070131

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070320

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070410

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees