JP3581152B2 - プログラム可能な論理回路用のアーキテクチャおよび相互接続機構 - Google Patents

プログラム可能な論理回路用のアーキテクチャおよび相互接続機構 Download PDF

Info

Publication number
JP3581152B2
JP3581152B2 JP52711795A JP52711795A JP3581152B2 JP 3581152 B2 JP3581152 B2 JP 3581152B2 JP 52711795 A JP52711795 A JP 52711795A JP 52711795 A JP52711795 A JP 52711795A JP 3581152 B2 JP3581152 B2 JP 3581152B2
Authority
JP
Japan
Prior art keywords
routing
mla
line
routing line
lines
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
JP52711795A
Other languages
English (en)
Other versions
JPH10501934A (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 JPH10501934A publication Critical patent/JPH10501934A/ja
Application granted granted Critical
Publication of JP3581152B2 publication Critical patent/JP3581152B2/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/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/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/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables
    • 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)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

関連出願の相互参照
本出願は、1993年8月3日に出願され本発明の出願人に譲渡された米国特許出願第08/101197号の一部継続出願(CIP)である。
発明の分野
本発明は、プログラム可能な論理回路の分野に関する。詳細には、本発明は、プログラム可能な論理回路用のアーキテクチャおよび相互接続(配線)機構に関する。
発明の背景
集積回路(IC)は、初めて導入されたときには極めて高価であり、機能が限られていた。半導体技術の急速な進歩によって、コストが大幅に低減され、同時にICチップの性能が向上した。しかし、専用カスタム構成IC用の設計、レイアウト、製造方法は、依然として非常にコストがかかる。これは特に、少量のカスタム設計ICしか製造しない例でそうである。さらに、ターンアラウンド時間(すなわち、最初の設計から最終製品までの時間)は、特に複雑な回路設計では、非常に長くなることが多い。電子機器およびコンピュータ製品の場合、最も早く市場に出すことが重大である。さらに、カスタムICの場合、最初の設計に変更を加えることはかなり困難である。必要な変更を加えるには時間、労力、費用がかかる。
カスタムICに関連する欠点に鑑みて、フィールドプログラマブルゲートアレイ(FPGA)は多くの場合に魅力的な解決策を与える。FPGAは基本的に、標準高密度オフザシェルフICであり、ユーザによって所望の構成にプログラムすることができる。まず回路設計者が、所望の論理機能を定義し、FPGAが、それに応じて入力信号を処理するようにプログラムされる。それによって、FPGA実施態様を迅速にかつ効率的に設計し、検証し、改訂することができる。FPGAは、論理密度要件および生産量に応じて、コストおよび市場時間の点で優れた代替策である。
通常のFPGAは基本的に、構成可能な論理ブロックの内側マトリックスを囲む外側入出力ブロック・リングからなる。FPGAの周辺に存在する入出力ブロックは、ユーザ・プログラム可能であり、そのため、各ブロックが入力または出力になるように独立にプログラムすることができ、あるいは各ブロックは三状態可能であってもよい。各論理ブロックは通常、プログラム可能な組合せ論理・記憶レジスタからなる。組合せ論理回路は、入力変数に対してブール関数を実行するために使用される。多くの場合、レジスタは、論理ブロック入力から直接ロードされ、あるいは組合せ論理回路からロードすることもできる。
相互接続資源は、論理ブロック・マトリックスの行と列との間と、論理ブロックと入出力ブロックとの間のチャネルを占有する。このような相互接続資源は、チップ上の指定された2つの点の間の相互接続を制御する融通性を与える。通常、論理ブロック間の行および列内では、金属線網が水平方向および垂直方向へ延びる。プログラム可能なスイッチによって、論理ブロックおよび入出力ブロックの入力および出力がこのような金属線に接続される。行と列の交差点上にあるクロスポイント・スイッチおよび相互接続部を使用して、信号がある線から他の線に切り替えられる。多くの場合、長い線は、チップの全長または幅に沿って延ばすために使用される。
入出力ブロック、論理ブロック、それらのそれぞれの相互接続部の機能はすべてプログラムすることができる。通常、これらの機能はオンチップ・メモリに記憶されている構成プログラムによって制御される。構成プログラムは、電源オン時またはコマンド時にメモリから自動的にロードされ、あるいはシステム初期設定の一部としてマイクロプロセッサによってプログラムされる。多くの場合、長い線は、チップの全長または幅に沿って延ばすために使用される。
FPGAの概念は60年代に、下記の文献でセルおよびセルラ・アレイの概念を構成可能な装置として説明したMinnickによって要約された。Minnick,R.C.and Short,R.A.著「Cellular Linear−Input Logic,Final Report」SRI Project 4122,Contract AF 19(628)−498,Stanford Research Institute,Menlo Park,California,AFCRL 64−6,DDC No.AD433802(1964年2月);Minnick,R.C.著「Cobweb Cellular Arrays」Proceedings AFIPS 1965 Fall Joint Computer Conference,第27巻,第1部,327ないし341ページ(1965年);Minnick,R.C.等著「Cellular Logic,Final Report,」SRI Project 5087,Contract AF 19(628)−4233,Stanford Research Institute,Menlo Park,California,AFCRL 66−613(1966年4月);Minnick,R.C.著「A Survey of MIcrocellular Research」Journal of the Association for computing Machinery,第14巻,第2号,203ないし241ページ(1967年4月)。Minnickは、装置間の相互接続部をイネーブルするメモリ・ベース(たとえば、RAMベース、またはヒューズ・ベース、またはアンチフェーズ・ベース)の手段だけでなく、近傍のセル間の直接接続と、他のルーチング技術としてのバス接続の使用の両方も論じた。Spandorfer,L.M.著「Synthesis of Logic Function on an Array of Integrated Circuits」(Stanford Research Institute,Menlo Park,Calif.,Contract AF 19(628)2907,AFCRL64−6,DDC No.AD433802(1965年11月))では、メモリ手段を通じてプログラムできる2本の相互接続線と、隣接する近傍セル相互接続部とを切り替える手段として相補MOS二方向パスゲートを使用することが論じられた。Wahlstrom,S.E.著「Programmable Logic Arrays−Cheaper by the Millions」(第40巻,第25号11,90ないし95ページ(1967年12月))には、隣接するセル間の直接接続とデータ・バスのネットワークの両方を含む同じセルの二次元アレイの、RAMベースの再構成可能な論理アレイが記載されている。
Shoup,R.G.著「Programmable Cellular Logic Arrays」(博士論文,Carnegie−Mellon University,Pittsburgh,PA(1970年3月))では、プログラム可能なセルラ論理アレイが論じられ、Minnickの同じ概念および用語が繰り返され、Wahlstromのアレイが認められている。Shoupの論文では、近傍接続の概念が簡単な2入力1出力最近近傍接続から8近傍2方向接続へ拡張されている。Shoupはさらに、バスを相互接続構造の一部として使用してアレイのパワーおよび融通性を向上させることを説明した。バスを使用して、過度に長い距離にわたり、あるいは不都合な方向へ信号をルーチングし、通常の近傍接続を行うことができる。これは、アレイの外部からの入力および出力を内部セルに渡すうえで特に有用である。
米国特許第4020469号では、それ自体をプログラムし、試験し、修理することができるプログラム可能な論理アレイが論じられた。米国特許第4870302号では、近傍直接相互接続を使用せず、すべてのプログラム化接続が、チャネル化アーキテクチャ中の異なる3組のバスを使用することによって行われる粗粒アーキテクチャが紹介された。(構成可能論理ブロックまたはCLBと呼ばれる)粗粒セルは、RAMベースの論理テーブル参照組合せ論理回路とフリップフロップの両方をCLB内部に含み、この場合、CLB内部で使用できる機能にユーザ定義論理をマップしなければならない。米国特許第4935734号では、各セル内部のNAND、またはNOR、または同様なタイプの簡単な論理機能として定義された簡単な論理機能セルが紹介された。この相互接続機構は、直接近傍・方向バス接続によるものである。米国特許第4700187号および第4918440号では、排他的論理和および論理積が機能し、セル内でレジスタ・ビットが使用できかつ選択できるさらに複雑な論理機能セルが定義された。好ましいこの接続方式は、直接近傍接続によるものである。二方向バスを接続として使用することも含まれる。
現行のFPGA技法は、いくつかの欠点を有する。これらの問題は、製造業者によって与えられたチップ上で多数のトランジスタを使用できる場合に回路利用度が低くなることによって具体化される。回路利用度は、3つの要因の影響を受ける。トランジスタまたは密粒セル・レベルでの第1の問題は、ユーザによって容易に使用できる基本論理要素の機能および融通性である。第2の問題は、第1の論理要素を使用し、最小限の回路面積を用いて意味のあるマクロ論理機能を容易に形成できるかどうかである。最後の要因は、チップ・レベル設計を効率的に実施するためのそのようなマクロ論理機能の相互接続である。前述のような密粒セル・アーキテクチャは、基本論理要素レベルで容易に使用でき融通性に富む論理機能を設計者に与えた。
しかし、密で複雑なマクロ関数およびチップ・レベル・ルーチングでは、多数の信号をセルの出力から他のセルの入力に接続するのに必要な相互接続資源がすぐに使い尽くされる恐れがあり、このような資源の追加は、シリコン面積の点で非常にコストがかかる。したがって、密粒アーキテクチャ設計では、大部分のセルが、アクセス不能であるために未使用のままになり、あるいはセルが論理回路ではなく相互接続線として使用される。これによって、論理回路の利用度が低くなるだけでなく、ルーチング遅延が大幅に延び、あるいは過度の量のルーチング資源が追加され、回路の寸法が大幅に増大する。粗粒アーキテクチャを広範囲のルーチング・バスに結合することによって、CLBの出力を他のCLBの入力に接続する信号が著しく改良される。CLB相互接続レベルでの利用度は高くなる。しかし、難点は、CLBに厳密に適合するための複雑な論理機能の区画およびマッピングである。CLB内部の論理機構の一部が未使用のままである場合、CLB内部の利用度(使用される単位面積当たりの有効ゲート数)が低くなることがある。
従来技術のFPGAに関する他の問題は、通常、各論理ブロックごとに一定数の入力および一定数の出力が提供されることによるものである。偶然に特定の論理ブロックのすべての出力が使い尽くされた場合、その論理ブロックの残りの部分は無用になる。
したがって、従来技術のFPGAでは、FPGAの利用度を最大にし、同時にダイ寸法に対する影響を最小限に抑える新しいアーキテクチャが必要である。この新しいアーキテクチャは、機能およびユーザによる使い勝手の点で最低論理要素レベルでの融通性をもたらし、単位面積当たりの密度が高く、ユーザが基本論理要素を用いて複雑な論理機能を容易に形成できるマクロ・レベルでの機能を提供し、最後に、チップ・レベルでマクロおよび基本論理要素を接続する信号用の階層一様分散ルーチング・ネットワークとの高い相互接続可能性をもたらすべきである。さらに、この新しいアーキテクチャは、個別の論理ブロックの入力および出力の数が選択できかつプログラムできるようにする融通性と、一連のFPGA寸法に適応するスケーリング可能なアーキテクチャをユーザに提供すべきである。
発明の概要
本発明は、FPGA用の論理回路などプログラム可能な論理回路の論理・接続方式のアーキテクチャに関する。プログラム可能なこの論理回路は、入力信号上のディジタル機能を実行するいくつかのセルで構成される。所望の論理機能を実現するために、特定の設計に応じて、ある種のセルが特定の構成にプログラム可能に相互接続される。
現在好ましい実施形態では、4つの論理セル(4つの2入力1出力論理ゲートおよび1つのDフリップフロップ)が論理クラスタ(すなわち、2×2セル・アレイ)を形成し、4組のクラスタが論理ブロック(すなわち、4×4セル・アレイ)を形成する。各クラスタ内に、内部接続マトリックス(Iマトリックス)と呼ばれる1組の5本の内部接続線があり、内部接続線はそれぞれ、他のセルの入力に接続できる4つのゲートのそれぞれおよびDフリップフロップの出力に結合される。各論理ブロック内で、各クラスタ内のIマトリックスを、パスゲートを通じて、隣接するクラスタへ延長し、論理ブロック内の接続を形成する(それによって内部接続レンジを延長する)ことができる。各論理ブロック内部には、ブロック・コネクタ(BC)と呼ばれる結合された1組のアクセス線がある。ブロック・コネクタは、その同じ論理ブロックの様々なセルどうしのアクセスおよび接続を可能にする。言い換えれば、論理ブロックの各セルの各入力および出力は、その論理ブロックに対応する1組のブロック・コネクタに接続することができる。同じ論理ブロック内でIマトリックスおよびブロック・コネクタを適切に使用すれば、論理ブロックの外部の資源を使用せずに1組の信号を内部接続することができる。いくつかのプログラム可能なスイッチを使用して、現論理ブロックの外部の信号に接続する外部アクセスを得るために論理ブロック内部のセルの1組の入力または出力あるいはその両方にどのブロック・コネクタをまとめて接続するかが制御される。言い換えれば、ある論理ブロックの外部から外部接続すべきこの現論理ブロック内部の入力ピンまたは出力ピンあるいはその両方は、現論理ブロック内のブロック・コネクタを通じてアクセスまたは接続される。
様々な論理ブロック間で信号をルーチングするには、一様分散多重レベル・アーキテクチャ(MLA)ルーチング・ネットワークを使用して、個別の1組のブロック・コネクタのそれぞれどうしを接続する。どの第1レベルMLAルーチング・ネットワーク線どうしを接続すべきかを制御するためにプログラム可能なスイッチが実施される。どのブロック・コネクタを特定の第1レベルMLAルーチング線に接続すべきかを制御するために、プログラム可能な追加スイッチが使用される。たとえば、スイッチは、1つの論理ブロックに属する発信側セルを、異なる論理ブロックに属する宛先セルに接続するようにプログラムすることができる。これは、発信セルをその1つまたは複数のブロック・コネクタを通じて第1レベルMLA上に接続し、距離に応じてその他のレベルのMLA上に接続し、MLAのレベルを順次下降して再び第1レベルMLAに接続し、最後に宛先セルのブロック・コネクタに接続することによって行うことができる。それによって、ブロック・コネクタおよび第1レベルのMLAルーチング・ネットワークは、ブロック・クラスタと呼ばれる8×8セル・アレイの相互接続可能性をもたらす。
本発明では、追加レベルのMLAルーチング・ネットワークを実施することによって、さらに大きなセル・アレイを相互接続することができる。たとえば、ブロック・セクタと呼ばれる16×16セル・アレイの接続可能性は、第2レベルのMLAルーチング・ネットワーク線を実施して様々な第1レベルのMLAルーチング線どうしを接続し、それによってそれぞれの異なるブロック・クラスタどうしを接続することによって達成することができる。MCAの各レベルは、そのレベルのルーチング・ネットワークのプログラム可能な相互接続を提供するために、対応する数のスイッチを有する。追加スイッチング交換網を使用して、様々なレベルのMLAが接続される。
一実施形態では、スイッチを使用して、異なる2組のブロック・コネクタどうしを接続することができる。さらに、特定のレベルのMLAの異なる数組のMLAルーチング線どうしを接続するスイッチを含めることができる。これによって、ルーチングの融通性が増大する。
本発明では、すべてのMLAルーチング・ネットワーク線は二方向のものである。スイッチはプログラム可能な二方向パスゲートで構成される。レベル数を増大する場合、ルーチング線、パスゲート、関連する負荷などをドライブするのに必要なスイッチング速度をもたらすドライバが必要になることがある。一実施形態では、スイッチを使用して様々な数組のブロック・コネクタどうしをプログラム可能に接続することができる。様々な数組の第1レベルのMLAどうしをプログラム可能に接続する追加スイッチを実施することができる。この方式は、より高いレベルのMLAでは繰り返すことができる。
【図面の簡単な説明】
本発明を制限としてではなく一例として、添付の図面に示す。図中、同じ参照符号は同様な要素を指す。
第1図は、本発明を実施できるFPGAのブロック図である。
第2A図は、個別のセルの一例を示す図である。
第2B図は、個別のセルの他の例を示す図である。
第3A図は、論理クラスタを示す図である。
第3B図は、論理クラスタの内部接続の近傍の論理クラスタへの延長を示す図である。
第4A図は、垂直ブロック・コネクタを含む論理クラスタの例を示す図である。
第4B図は、水平ブロック・コネクタを含む論理クラスタの例を示す図である。
第5A図は、論理ブロックおよびレベル1MLAターン・ポイントに結合されたレベル1MLA交換網の8つのブロック・コネクタを示す図である。
第5B図は、レベル1MLAターン・ポイントを示す図である。
第5C図は、交換網を示す図である。
第6図は、ブロック・クラスタ用のルーチング・ネットワークを示す図である。
第7A図は、ブロック・セクタのブロック図を示す。
第7B図は、レベル1MLAルーチング交換網とレベル2MLAルーチング交換網レベルを示す図である。
第8A図は、セクタ・クラスタを示す図である。
第8B図は、レベル2MLAルーチング交換網とレベル3MLAルーチング交換網レベルを示す図である。
第9図は、論理ブロックとMLAレベルとの間のルーチングを可能にする階層多重レベル・ルーチング・ネットワークの一実施形態を示す図である。
第10図は、論理ブロックとMLAレベルとの間のルーチングを可能にする階層多重レベル・ルーチング・ネットワークの他の実施形態を示す図である。
第11図は、2つのブロック・コネクタ群が同じMLA線にアクセスする階層ルーチング・ネットワークの一実施形態のブロック図である。
第12図は、より高いレベルのルーチング・ネットワーク用のMLAタブを含むMLA−3レベルとのブロック・コネクタを包含する多重レベル・ルーチング・ネットワークの一部ブロック図である。
第13図は、MLA−1ターン・ネットワークを示す図である。
第14図は、MLA−2ターン・ネットワークを示す図である。
第15図は、MLA−3ターン・ネットワークを示す図である。
第16図は、MLA−4層用のルーチング・ネットワークと、MLA−4線にアクセスするための機構の一実施形態を示す図である。
第17図は、3つの異なるスイッチ実施形態を示す図である。
第18図は、MLA−5層用のルーチング・ネットワークと、MLA−5線にアクセスするための機構の一実施形態を示す図である。
詳細な説明
プログラム可能な論理回路用のアーキテクチャおよび相互接続機構について説明する。下記の説明では、説明の都合上、本発明を完全に理解していただくために組合せ論理回路、セル構成、いくつかのセルなど多数の特定の詳細について述べる。しかし、当業者には、このような特定の詳細なしに本発明を実施できることが明らかになろう。他の例では、本発明を不必要にあいまいにするのを回避するために周知の構造および装置がブロック図形で示されている。本発明が、静的ランダム・アクセス・メモリ(SRAM)プロセス、動的ランダム・アクセス・メモリ(DRAM)プロセス、ヒューズ・プロセス、アンチヒューズ・プロセス、消去可能なプログラム可能読取り専用メモリ(EPROM)プロセス、電気的に消去可能なプログラム可能読取り専用メモリ(EEPROM)プロセス、フラッシュ・プロセス、強誘電プロセスを含むがこれらに限らない様々なプロセスに関することも留意されたい。第1図を参照すると、本発明を実施できるFPGA論理回路のブロック図が100として示されている。入出力論理ブロック102、103、111、112は、直接あるいは入出力−コア・インタフェース104、105、113、114を通じて、FPGAの外部パッケージ・ピンと内部ユーザ論理回路との間のインタフェースを形成する。4つのインタフェース・ブロック104、105、113、114は、コア106と入出力論理回路102、103、111、112との間の結合解除を行う。コア106は、Iマトリックス101によって内部接続され、MLAルーチング・ネットワーク108によって相互接続された、いくつかのクラスタ107で構成される。
制御/プログラミング論理回路109は、ビット線およびワード線をプログラムするすべてのビットを制御するために使用される。アンチヒューズ技法またはヒューズ技法の場合、高電圧/電流が印加され、ヒューズがザップまたは接続される。EEPROM技法、またはフラッシュ技法、または強誘電技法の場合、消去サイクルと、その後に続く、メモリ・ビットの論理状態をプログラムするプログラミング・サイクルがある。スキューイングを最小限に抑えるには、別々のクロック/リセット論理回路110を使用してグループごとにクロック線およびリセット線を与える。
現在好ましい実施形態では、各クラスタ107は、論理クラスタと呼ばれる、4つのセルの2×2階層で構成される。第2Aおよび2B図は、個別のセル200および250の例を示す。セル200は、2つの入力信号(AおよびB)上の複数の論理関数を実行し、出力信号Xをもたらす。現在好ましい実施形態では、セル200は、XORゲート201と、2入力NANDゲート202と、2入力NORゲート203とを有する。しかし、他の実施形態では、セル200は様々な他のタイプまたは組合せ、あるいはその両方のゲートを含むことができることに留意されたい。セル250は、Dフリップフロップ・セル260に結合されたセル200を有する。セル200の出力Xは、スイッチ218を作動させることによってDフリップフロップ・ゲート204のデータ入力Dに直接接続されるようにプログラムすることができる。データ入力Dには、組合せセル250の第3入力としてアクセスすることができる。
2つの入力信号AおよびBのそれぞれとDフリップフロップのD入力は、スイッチ206ないし211の状態に応じて反転または非反転することができる。スイッチ206、208、210を作動させると、信号A、B、Dが、ゲート201ないし204のドライバ212ないし214によって非反転的にドライブされる。スイッチ207、209、211を作動させると、入力信号A、B、Dがゲート201ないし204に渡される前にインバータ215ないし217によって反転される。6つのスイッチ212ないし217は、ユーザによるプログラムに応じて個別にオン・オフ操作することができる。
XORゲート201、NANDゲート202、NORゲート203を使用して、出力信号を次の段へ伝搬させることによって、XNOR、AND、ORを実行し、それによって前述のように信号を反転することができる。
3つのスイッチ219ないし221はそれぞれ、3つのゲート201ないし203の出力に結合される。この場合も、これらのスイッチは、ユーザによってプログラムすることができる。それによって、ユーザは、ゲート201ないし203からのどの出力をセル200からの出力Xとしてドライバ224へ送るべきかを指定することができる。
前述のスイッチ206ないし211、218ないし221は、二方向プログラム制御式パスゲートで構成される。スイッチは、制御信号の状態に応じて、伝導状態(すなわち、線上で信号を通過させる)または非伝導状態(線上で信号を通過させない)になる。下記の節で述べるスイッチも同様に、プログラム制御式パスゲートで構成される。
次に第3A図を参照すると、論理クラスタ107が示されている。現在好ましい実施形態では、論理クラスタ107は、4つのセル301ないし304およびDフリップフロップ305と、25個のスイッチ306ないし330と、5本の内部接続線331ないし335とで構成される。内部接続線331ないし335およびスイッチ306ないし330はIマトリックスを形成する。Iマトリックスは、4つのセル301ないし304のそれぞれの出力XおよびDフリップフロップ305の出力Xを、他の3つのセルのそれぞれおよびDフリップフロップの少なくとも1つの入力に接続できるようにする。たとえば、スイッチ306および307をイネーブルすることによってセル301の出力Xをセル302の入力Aに接続することができる。同様に、スイッチ306および310をイネーブルすることによって、セル301の出力Xをセル303の入力Bに接続することができる。スイッチ306および308をイネーブルすることによって、セル301の出力Xをセル304の入力Aに接続することができる。スイッチ306および309をイネーブルすることによって、セル301の出力XをDフリップフロップ・セル305の入力Dに接続することができる。
同様に、スイッチ311および312をイネーブルすることによって、セル302からの出力Xをセル301の入力Bに接続することができる。スイッチ311および315をイネーブルすることによって、セル302からの出力Xをセル303の入力Aに接続することができる。スイッチ311および313をイネーブルすることによって、セル302からの出力Xをセル304の入力Bに接続することができる。スイッチ311および314をイネーブルすることによって、セル302の出力XをDフリップフロップ・セル305の入力Dに接続することができる。
同様に、スイッチ326および327をイネーブルすることによって、セル303からの出力Xをセル301の入力Aに接続することができる。スイッチ326および328をイネーブルすることによって、セル303からの出力Xをセル302の入力Aに接続することができる。スイッチ326および329をイネーブルすることによって、セル303からの出力Xをセル304の入力Bに接続することができる。スイッチ326および330をイネーブルすることによって、セル303の出力XをDフリップフロップ・セル305の入力Dに接続することができる。
セル304の場合、スイッチ316および317をイネーブルすることによって、セル304からの出力Xをセル301の入力Bに接続することができる。スイッチ316および318をイネーブルすることによって、セル304からの出力Xをセル302の入力Bに接続することができる。スイッチ316および319をイネーブルすることによって、セル304からの出力Xをセル303の入力Aに接続することができる。第2A図のスイッチ218をイネーブルすることによって、セル304の出力XをDフリップフロップ・セル305の入力Dにプログラム可能に接続することができる。
セル305に関しては、スイッチ320および321をイネーブルすることによって、セル305の出力をセル301のA入力に、スイッチ320および322をイネーブルすることによって、セル305の出力をセル302のB入力に、スイッチ320および325をイネーブルすることによって、セル305の出力をセル303のB入力に、スイッチ320および323をイネーブルすることによって、セル305の出力をセル304のA入力に、スイッチ320および324をイネーブルすることによって、セル305の出力をセル305自体のD入力に接続することができる。
セル301ないし304およびDフリップフロップ305の各出力をクラスタ内部の近傍の各セルまたはフリップフロップ、あるいはその両方の入力に接続できることが分かる。
本発明の現在好ましい実施形態では、各論理クラスタをパスゲート・スイッチを通じて各論理ブロック内部のすべての他の論理クラスタに接続し、各論理ブロック内部の近傍のクラスタからのIマトリックスを延長することができる。第3B図は、論理クラスタ107のセル301ないし304およびDフリップフロップ305のIマトリックス内部接続線331ないし335を同じ論理ブロック内のパスゲート・スイッチ336ないし355を通じて近傍の論理クラスタ107に延長することを示す。
本発明の現在好ましい実施形態では、各論理ブロックをEPGAのすべての他の論理ブロックに接続することができる。これは、複数の相互接続層を含むアーキテクチャを実施することによって行われる。この複数層ルーチング・アーキテクチャが、概念階層であり、プロセス階層でも技術階層でもなく、したがって、現在のシリコン・プロセス技法を用いて容易に実施できることに留意されたい。1番下にある相互接続層を「ブロック・コネクタ」と呼ぶ。1組のブロック・コネクタによって、(4つの論理クラスタまたは16個のセルで構成された)結合された論理ブロック内で信号のアクセスおよび相互接続を行うことができる。それによって、延長されたIマトリックスまたはブロック・コネクタ、あるいはその両方を使用することによって同じ論理ブロック内の異なる数組の論理クラスタをそのグループ内の他の論理クラスタに接続することができる。この場合も、二方向にプログラム可能なパスゲートをスイッチとして使用して、ユーザにルーチング上の融通性がもたらされる。
次の接続レベルを「レベル1多重レベル・アーキテクチャ(MLA)」ルーチング・ネットワークと呼ぶ。レベル1MLAルーチング・ネットワークは、数組のブロック・コネクタどうしの相互接続を行う。プログラム可能なパスゲート・スイッチを使用して、ユーザがどのブロック・コネクタを接続するかを選択できるようにすることができる。したがって、1組の論理ブロック・グループの第1の論理ブロックを、同じグループに属する第2の論理ブロックに接続することができる。適当なスイッチをイネーブルし、第1の論理ブロックのブロック・コネクタをレベル1MLAルーチング・ネットワークのルーチン線に接続する。レベル1MLAルーチング・ネットワークの適当なスイッチをイネーブルし、第2の論理ブロックのブロック・コネクタをレベル1MLAルーチング・ネットワークのルーチング線に接続する。適当なスイッチをイネーブルし、第1および第2の論理ブロックのブロック・コネクタに接続されているレベル1MLAルーチング・ネットワークのルーチング線どうしを接続する。さらに、ユーザは、論理ブロックの各セル間の所望の内部接続を行うように所与の論理ブロック内の様々なスイッチをプログラムすることができる追加の融通性を有する。
次の接続レベルを「レベル2多重レベル・アーキテクチャ(MLA)」ルーチング・ネットワークと呼ぶ。レベル2MLAは、様々なレベル1MLAとの相互接続を行い、ブロック・クラスタのアクセスおよび接続を行う。この場合も、所望の接続を行うようにユーザによって二方向パスゲート・スイッチがプログラムされる。レベル2MLAルーチング・ネットワークを実施することによって、場合によっては多数の論理ブロック間のプログラム可能な相互接続が行われる。
追加MLAルーチング・ネットワーク・レベルを実現し、プログラム可能な相互接続を行う論理ブロック、ブロック・クラスタ、ブロック・セクタなどの数およびグループを順次増加することができる。基本的に、本発明は、ルーチングを実施するための三次元手法をとる。信号は、論理ブロックの内部接続部間でルーチングされる。次いで、ブロック・コネクタを通じてこのような信号にアクセスし、ブロック・コネクタのプログラムされた接続に応じてルーチングすることができる。必要に応じて信号をレベル1MLAに「エレベート」させ、レベル1MLAルーチング・ネットワークを通じてルーチングし、適当なブロック・コネクタに「エレベート解除」し、次いで宛先論理ブロックに渡す。
レベル2MLAルーチング・ネットワークが必要である場合、いくつかの信号がレベル1MLAルーチング・ネットワーク線からもう1度エレベートされ、あるいはレベル2MLAルーチング・ネットワークに直接エレベートされ、異なる1組のレベル2MLAルーチング・ネットワーク線にルーチングされ、レベル2MLAルーチング・ネットワーク線からレベル1MLAルーチング・ネットワーク線に「エレベート解除」される。その時点で、信号はもう1度「エレベート解除」され、レベル1MLAから宛先論理ブロックの適当なブロック・コネクタに渡される。別法として、「エレベーション」は、レベル1MLAルーチング・ネットワークを通過させずに直接行うことができる。この同じ手法は、必要に応じ、EPGAの寸法および密度に応じてレベル3、4、5などのMLAでも実行される。前述の方法を使用して所与のセル・アレイ・カウントを有するFPGAを実施し、部分レベルnMLAを実施することができる。
第4A図は、論理ブロック内の論理クラスタおよび結合された垂直ブロック・コネクタの例を示す。現在好ましい実施形態では、論理クラスタ中の各セルは、2つの垂直ブロック・コネクタによる入力からアクセスすることができ、論理クラスタ中のセルの各出力は2つの垂直ブロック・コネクタにアクセスすることができる。たとえば、セル301の入力Aにはスイッチ467、462を通じてそれぞれ、垂直ブロック・コネクタ451(BC−V11)および453(BC−V21)からアクセスすることができ、セル301の入力Bにはスイッチ466、468を通じてそれぞれ、垂直ブロック・コネクタ452(BC−V12)および454(BC−V22)からアクセスすることができ、セル301の出力Xはスイッチ460、459を通じてそれぞれ、垂直ブロック・コネクタ455(BC−V31)および458(BC−V42)にアクセスすることができる。セル302の入力Aにはスイッチ463、464を通じてそれぞれ、垂直ブロック・コネクタ453(BC−V21)および455(BC−V31)からアクセスすることができ、セル302の入力Bにはスイッチ469、470を通じてそれぞれ、垂直ブロック・コネクタ454(BC−V22)および456(BC−V32)からアクセスすることができ、セル302の出力Xはスイッチ461、465を通じてそれぞれ、垂直ブロック・コネクタ452(BC−V12)および457(BC−V41)にアクセスすることができる。セル303の入力Aにはスイッチ485、476を通じてそれぞれ、垂直ブロック・コネクタ451(BC−V11)および453(BC−V21)からアクセスすることができ、セル303の入力Bにはスイッチ480、476を通じてそれぞれ、垂直ブロック・コネクタ452(BC−V12)および454(BC−V22)からアクセスすることができ、セル303の出力Xはスイッチ472、471を通じてそれぞれ、垂直ブロック・コネクタ455(BC−V31)および458(BC−V42)にアクセスすることができる。セル304の入力Aにはスイッチ477、478を通じてそれぞれ、垂直ブロック・コネクタ453(BC−V21)および455(BC−V31)からアクセスすることができ、セル304の入力Bにはスイッチ482、484を通じてそれぞれ、垂直ブロック・コネクタ454(BC−V22)および456(BC−V32)からアクセスすることができ、セル304の出力Xはスイッチ475、474を通じてそれぞれ、垂直ブロック・コネクタ452(BC−V12)および457(BC−V41)にアクセスすることができる。Dフリップフロップ・セル305の入力にはスイッチ473、479を通じてそれぞれ、垂直ブロック・コネクタ454(BC−V22)および455(BC−V31)からアクセスすることができ、セル305の出力Xはスイッチ483、486を通じてそれぞれ、垂直ブロック・コネクタ452(BC−V12)および457(BC−V41)にアクセスすることができる。
同様に、第4B図は、第4A図に示した水平ブロック・コネクタおよび論理クラスタに対応する可能な接続を示す。セル301の入力Aにはスイッチ409、413を通じてそれぞれ、水平ブロック・コネクタ402(BC−H12)および404(BC−H22)からアクセスすることができ、セル301の入力Bにはスイッチ415、416を通じてそれぞれ、水平ブロック・コネクタ401(BC−H11)および403(BC−H21)からアクセスすることができ、セル301の出力Xはスイッチ421、428を通じてそれぞれ、水平ブロック・コネクタ405(BC−H31)および408(BC−H42)にアクセスすることができる。セル302の入力Aにはスイッチ411、414を通じてそれぞれ、水平ブロック・コネクタ402(BC−H12)および404(BC−H22)からアクセスすることができ、セル302の入力Bにはスイッチ433、417を通じてそれぞれ、水平ブロック・コネクタ401(BC−H11)および403(BC−H21)からアクセスすることができ、セル302の出力Xはスイッチ418、424を通じてそれぞれ、水平ブロック・コネクタ405(BC−H31)および408(BC−H42)にアクセスすることができる。セル303の入力Aにはスイッチ419、426を通じてそれぞれ、水平ブロック・コネクタ404(BC−H22)および406(BC−H32)からアクセスすることができ、セル303の入力Bにはスイッチ420、425を通じてそれぞれ、水平ブロック・コネクタ403(BC−H21)および405(BC−H31)からアクセスすることができ、セル303の出力Xはスイッチ410、427を通じてそれぞれ、水平ブロック・コネクタ402(BC−H12)および407(BC−H41)にアクセスすることができる。セル304の入力Aにはスイッチ422、430を通じてそれぞれ、水平ブロック・コネクタ404(BC−H22)および406(BC−H32)からアクセスすることができ、セル304の入力Bにはスイッチ423、429を通じてそれぞれ、水平ブロック・コネクタ403(BC−H21)および405(BC−H31)からアクセスすることができ、セル304の出力Xはスイッチ412、434を通じてそれぞれ、水平ブロック・コネクタ402(BC−H12)および407(BC−H41)にアクセスすることができる。Dフリップフロップ・セル305の入力にはスイッチ436、431を通じてそれぞれ、水平ブロック・コネクタ403(BC−H21)および406(BC−H32)からアクセスすることができ、セル305の出力Xはスイッチ432、435を通じてそれぞれ、水平ブロック・コネクタ401(BC−H11)および408(BC−H42)にアクセスすることができる。
第4A図および第4B図は、現在好ましい実施形態における論理ブロック内部の左上(NW)論理クラスタへの垂直・水平ブロック・コネクタ・アクセス方法を示す。左下(SW)クラスタは、NWクラスタの場合と同じ垂直ブロック・コネクタ・アクセス方法を有する。右上(NE)クラスタは、垂直ブロック・コネクタ・アクセスのシーケンスがシフトされることを除いて、垂直ブロック・コネクタに対してNWクラスタの場合と同様なアクセス方法を有する。垂直ブロック・コネクタ451ないし458は、共にシリンダ(451、452、...、458)として連鎖されたものとみたすことができる。たとえば4だけシフトすることによって、新しいシーケンス(455、456、457、458、451、452、453、454)が形成される。第4A図に示したNWクラスタ中のセル301による垂直ブロック・コネクタ451および453へのアクセスから始めるのではなく、NEクラスタ中のセル301にVBC455および457からアクセスすることができる。番号が4だけ「シフト」される。右下(SE)クラスタに対するVBCのアクセス順序は、NEクラスタの場合と同じである。
同様に、NWクラスタへの水平ブロック・コネクタ・アクセスは、NEクラスタの場合と同じであり、SWクラスタはSEクラスタと同じであり、これに対して、SWクラスタへの水平ブロック・コネクタ・アクセスは、NWクラスタの場合と比べて4だけシフトされる。
現在好ましい実施形態では、論理ブロック当たりに16個のブロック・コネクタが使用される(すなわち、4つのクラスタまたは4×4セル・アレイ)。レベル1MLAルーチング・ネットワークを追加することによって、ブロック・クラスタ(8×8セル・アレイ)の接続が可能になる。レベル2MLAルーチング・ネットワークを追加することによって、ブロック・セクタ(16×16セル・アレイ)との接続可能性が増大する。追加レベルのMLAルーチング・ネットワークによってブロック・セクタの数が4だけ増加し、同時に、MLAルーチング・ネットワーク中の各線の長さが係数2だけ増加する。レベル2MLA中のルーチング線の数は係数2だけ増加する。ブロック・セクタの数が単位面積当たりに係数4だけ増加したので、次の階層レベルのルーチング線の数は実際には係数2だけ減少する。
第5A図は、16個のブロック・コネクタに結合された論理ブロックと、論理ブロックに結合されたレベルMLAルーチング線を示す。16個のブロック・コネクタ501ないし506は太線で示され、それに対して16本のレベル1MLAルーチング・ネットワーク線517ないし532は細線で示されている。ブロック・コネクタの長さまたはスパンが論理ブロック内で終端し、それに対してレベル1MLAルーチング・ネットワーク線の長さが近傍の論理ブロックへ延びる(ブロック・コネクタの長さの2倍)ことに留意されたい。
ブロック・コネクタとレベル1MLAルーチング・ネットワーク線は共に、水平グループおよび垂直グループ、すなわち、垂直ブロック・コネクタ501ないし508、水平ブロック・コネクタ509ないし516、垂直レベル1MLAルーチング・ネットワーク線517ないし524、水平レベル1MLAルーチング・ネットワーク線525ないし532に細分割される。
現在好ましい実施形態では、論理ブロック内の16本のレベル1MLAルーチング・ネットワーク線用の24個のレベル1MLAターン・ポイントがある。第5A図では、24個のターン・ポイントは明確な点541ないし564として示されている。
MLAターン・ポイントは、水平MLAルーチング・ネットワーク線と垂直MLAルーチング・ネットワーク線との接続を可能にする二方向にプログラム可能なパスゲートである。たとえば、レベル1MLAターン・ポイント541をイネーブルすることによって、水平レベル1MLAルーチング・ネットワーク線526と垂直レベル1MLAルーチング・ネットワーク線520が接続される。第5B図は、レベル1MLAターン・ポイント541を示す。スイッチ583は、レベル1MLAルーチング・ネットワーク線526をレベル1MLAルーチング・ネットワーク線520に接続するかどうかを制御する。スイッチがイネーブルされた場合、レベル1MLAルーチング・ネットワーク線526がレベル1MLAルーチング・ネットワーク線520に接続される。そうでない場合、線526は線520に接続されない。スイッチ583はユーザによってプログラムすることができる。ターン・ポイントは、対単位のグループとして配置され、2つ以上のブロック・コネクタをまずブロック・コネクタを通じてレベル1MLA交換網に接続し、次いでスイッチをイネーブルすることによって選択されたレベル1MLAルーチング線どうしを接続するスイッチング・アクセスを行う目的を有する。レベル1MLA線は、同じブロック・クラスタ内の別々の論理ブロックに存在するブロック・コネクタどうしを接続するために使用される。
再び第5A図を参照すると分かるように、各論理ブロックごとにレベル1MLA交換網533ないし540に接続された8つのブロック・コネクタがある。これらの交換網は、ユーザによるプログラムに応じて、あるブロック・コネクタをレベル1MLA線に接続するように動作する。第5C図は、交換網537をさらに詳しく示す。レベル1MLAルーチング交換網に接続されたブロック・コネクタは、8つのドライバ575ないし582を有する。この8つのドライバ575ないし582は、ブロック・コネクタ501、502およびレベル1MLA線517、518用の二方向駆動機構を形成するために使用される。たとえば、スイッチ565をイネーブルすると、ブロック・コネクタ501上の信号が、ドライバ575によってレベル1MLA線517からドライブされる。スイッチ566をイネーブルすると、レベル1MLA線517上の信号が、ドライバ576によってブロック・コネクタ501からドライブされる。スイッチ567をイネーブルすると、ブロック・コネクタ501上の信号が、ドライバ577によってレベル1MLA線518からドライブされる。スイッチ568をイネーブルすると、レベル1MLA線518上の信号が、ドライバ578によってブロック・コネクタ501からドライブされる。
同様に、スイッチ569をイネーブルすると、ブロック・コネクタ502上の信号が、ドライバ579によってレベル1MLA線517からドライブされる。スイッチ570をイネーブルすると、レベル1MLA線517上の信号が、ドライバ580によってブロック・コネクタ502からドライブされる。スイッチ571をイネーブルすると、ブロック・コネクタ502上の信号が、ドライバ581によってレベル1MLA線518からドライブされる。スイッチ572をイネーブルすると、レベル1MLA線518上の信号が、ドライバ582によってブロック・コネクタ502からドライブされる。スイッチ573は、ある信号を1つのブロック・コネクタ501から、隣接する論理ブロックに属する隣接するブロック・コネクタ584へ通過させるべきかどうかを制御するために使用される。
同様に、スイッチ574は、ある信号を1つのブロック・コネクタ502から、隣接する論理ブロックに属する隣接するブロック・コネクタ585へ通過させるべきかどうかを制御するために使用される。
第6図は、ブロック・クラスタ用のルーチング・ネットワークを示す。このブロック・クラスタは基本的に、レベル1MLA交換網533ないし540によって相互接続できる4つの論理ブロックで構成される。32本のレベル1MLAルーチング・ネットワーク線があることが分かる。
第7A図は、ブロック・セクタのブロック図を示す。このブロック・セクタは、4つのブロック・クラスタ701ないし704で構成される。前述のように、ブロック・クラスタは、ブロック・コネクタおよびレベル1MLAルーチング・ネットワーク線によって相互接続される。このブロック・セクタは、レベル1MLAルーチング・ネットワークとレベル2MLAルーチング・ネットワークを接続できるようにするために64本のレベル2MLAルーチング・ネットワーク線と64個のレベル2・レベル1交換網とでも構成される。レベル1・レベル2MLAルーチング交換網は、第7A図で長方形で示されている。さらに、ブロック・セクタ内の4つの論理ブロックのそれぞれに結合された48個のレベル2MLAターン・ポイントがある。したがって、ブロック・セクタ用の192個のレベル2MLAターン・ポイントがある。
第7B図は、サンプル・レベル1・レベル2MLAルーチング交換網705を示す。スイッチ710が、レベル1MLA線709とレベル2MLA線708との間で信号を通過させるべきかどうかを制御するために使用されることが分かる。スイッチ711は、レベル1MLA線709とレベル2MLA線707との間で信号を通過させるべきかどうかを制御するために使用される。スイッチ712は、レベル1MLA線706とレベル2MLA線708との間で信号を通過させるべきかどうかを制御するために使用される。スイッチ713は、レベル1MLA線706とレベル2MLA線707との間で信号を通過させるべきかどうかを制御するために使用される。スイッチ714は、信号を1本のレベル1MLA線709から、隣接するブロック・クラスタに属する隣接するレベル1MLA線716へ通過させるべきかどうかを制御するために使用される。同様にスイッチ715は、信号を1本のレベル1MLA線706から、隣接するブロック・クラスタに属する隣接するレベル1MLA線715へ通過させるべきかどうかを制御するために使用される。
第8A図はセクタ・クラスタを示す。セクタ・クラスタは、4つのブロック・セクタ801ないし804と、それらに結合されたブロック・コネクタ、レベル1およびレベル2MLAルーチング・ネットワーク線、交換網とで構成される。128個のレベル3MLAルーチング・ネットワーク線もあり、これによって、同じセクタ・クラスタ800内のそれぞれの異なるブロック・セクタ801ないし804に属するレベル2MLA線どうしを接続することができる。各ブロック・セクタ801ないし804ごとにレベル3MLA線に結合された96個のレベル3MLAターン・ポイントがある(すなわち、セクタ・クラスタでは384個の総レベル3MLAターン・ポイント)。さらに、4つのブロック・セクタ801ないし804のそれぞれに結合された32個のレベル2・レベル3MLAルーチング交換網がある。したがって、様々なレベル2MLA線およびレベル3MLA線をプログラム可能に接続できるようにする、合計で128個のレベル3MLAルーチング交換網がある。
第8B図は、レベル2・レベル3MLAルーチング交換網805の例を示す。スイッチ810をイネーブルすると、レベル2MLA線808上の信号が、レベル3MLA線806に接続されることが分かる。スイッチ810をディスエーブルすると、レベル2MLA線808がレベル3MLA線806から切り離される。スイッチ811をイネーブルすると、レベル2MLA線808上の信号が、レベル3MLA線807に接続される。スイッチ811をディスエーブルすると、レベル2MLA線808がレベル3MLA線807から切り離される。同様に、スイッチ812をイネーブルすると、レベル2MLA線809上の信号が、レベル3MLA線806に接続される。スイッチ812をディスエーブルすると、レベル2MLA線809がレベル3MLA線806から切り離される。スイッチ813をイネーブルすると、レベル2MLA線809上の信号が、レベル3MLA線807に接続される。スイッチ813をディスエーブルすると、レベル2MLA線809がレベル3MLA線807から切り離される。
本発明では、追加レベルのMLAルーチング・ネットワークによって対応するMLAターン・ポイントおよび交換網に接続された追加論理セクタ・クラスタを追加することによって、より大型でより強力なFPGAを達成することができる。
本発明の好ましい実施形態では、5つのIマトリックス線(331ないし335、第3A図)のそれぞれを延長して、2つの異なるクラスタに属する2つの隣接するIマトリックス線を接続することができる。第3B図のパスゲート・スイッチ336ないし340、341ないし345、346ないし350、351ないし355は、異なる4組のIマトリックス線延長スイッチの例である。これにより、ブロック・コネクタを使用することによってルーチングする必要なしに、隣接する2つのクラスタ間で信号をルーチングする機能が与えられることによってさらに融通性がもたらされる。
同様に、ブロック・コネクタを延長して、2つの異なる論理ブロックに属する隣接する2つのブロック・コネクタを接続することができる。第5C図のスイッチ573は、ブロック・コネクタ501をスイッチ573を通じてブロック・コネクタ584に接続するそのようなブロック・コネクタの延長を示す。これにより、レベル1MLA線および結合されたMLA交換網を通じてルーチングする必要なしに、隣接する2つの論理ブロック間で信号をルーチングする機能が提供されることによってさらに融通性がもたらされる。この概念は、レベル1MLA線にも応用することができる。第7B図のスイッチ714は、スイッチ714をイネーブルすることによってレベル1MLA線716に接続するためにレベル1MLA線709が延長された例を示す。これにより、レベル2MLA線および結合されたMLA交換網を通じてルーチングする必要なしに、隣接する2つのブロック・クラスタ間で信号をルーチングする機能が与えられることによってさらに融通性がもたらされる。
第9図は、論理ブロックとMLAレベルとの間のルーチングを可能にする階層多重レベル・ルーチング・ネットワークの一実施形態を示す。8つの論理ブロック901ないし908が示されている。各論理ブロック901ないし908には、複数のブロック・コネクタが結合される。現在好ましい実施形態では、各論理ブロック901ないし908に結合された8つの水平ブロック・コネクタおよび8つの垂直ブロック・コネクタがある。明確にかつ容易に理解できるように、個別の論理ブロックに対応するブロック・コネクタが単一の線で表され(たとえば、ブロック・コネクタ909ないし916はそれぞれ、論理ブロック901ないし908に対応する)、水平ブロック・コネクタのみが示されている。
各ブロック・コネクタ909ないし916はそれぞれ、二方向にプログラム可能なドライバ917ないし924に結合される。したがって、ブロック・コネクタ909ないし916は、MLA−1線925ないし928に二方向結合されるようにプログラムすることができる。たとえば、交換網917は、論理ブロック901の1つのブロック・コネクタ909をMLA−1線925に結合するようにプログラムすることができる。二方向にプログラム可能な追加ドライバ929ないし932を使用して、MLA−1線925ないし928と次のMLAレベル、すなわちMLA−2線933ないし934が相互接続される。二方向にプログラム可能なドライバ935ないし936は、選択的にMLA−2線933ないし934とMLA−3線937の相互接続を行う。この階層相互接続機構は、複数の追加MLAレベルに対して繰り返すことができる。
第10図は、論理ブロックとMLAレベルの間のルーチングを可能にする階層多重レベル・ルーチング・ネットワークの他の実施形態を示す。この実施形態は、第9図に示したルーチング・ネットワークに類似している。ただし、ブロック・コネクタは、任意のMLAレベルに直接接続し、介在するMLAレベルをバイパスすることができる8つの論理ブロック1001ないし1008が示してある。各論理ブロックには、複数のブロック・コネクタ1009ないし1016が結合される。二方向にプログラム可能なドライバ1017ないし1024を使用して、ブロック・コネクタ1009ないし1016が選択的にブロック・コネクタ・タブ1025ないし1032に結合される。ブロック・コネクタ・タブ1025ないし1032は接合点として使用することができ、この点から複数のMLA層との接続を行うことができる。二方向にプログラム可能なドライバ・セット(1033ないし1035)、(1036ないし1038)、(1039ないし1041)、(1042ないし1044)、(1045ないし1047)、(1048ないし1050)、(1051ないし1053)、(1054ないし1056)はそれぞれ、ブロック・コネクタ・タブ1025ないし1032に対応する。これらのドライバ・セットはそれぞれ、介在するMLA線を通過させる必要なしに、それぞれの論理ブロックをMLA−1線1061とMLA−2線1062とMLA−3線1063のいずれかに接続できるようにする。たとえば、論理ブロック1001は、ドライバ1017および1033を選択的に作動させることによってMLA−1線1061に接続することができる。論理ブロック1001は、ドライバ1017および1034を選択的に作動させることによってMLA−2線1062に接続することもできる。この実施形態では、論理ブロック1001を最初にMLA−1線1061に接続する必要なしにMLA−2線1062に接続できることに留意されたい。さらに、論理ブロック1001は、ドライバ1017および1035を選択的に作動させることによってMLA−3線1063に接続することができる。この実施形態では、論理ブロック1001をMLA−1層はMLA−2層に接続しなくても、MLA−3層に接続できることに留意されたい。論理ブロックを直接、所望のMLA層に接続することによって、ルーチング・ネットワーク全体の速度が向上する。さらに、速度およびルーチング上の融通性は、2つ以上の隣接する論理ブロックを直接接続することによって向上することができる。それによって、隣接する論理ブロックは、MLA層を介してルーチングする必要なしに通信することができる。たとえば、論理ブロック1001と論理ブロック1002は、二方向にプログラム可能なドライバ1057を介して接続することができる。論理ブロック1003と論理ブロック1004は、ドライバ1058を介して接続することができる。論理ブロック1005ないし1007は、ドライバ1059ないし1060を介して接続することができる。この階層ルーチング方式は、任意の数の論理ブロックおよびMLA層であってよい。論理ブロック1002に対応するブロック・コネクタ1010を、論理ブロック1003に対応するブロック・コネクタ1011に結合するためにパスゲート1064を含めることができる。
第11図は、2つのブロック・コネクタ群が同じMLA線にアクセスする階層ルーチング・ネットワークの一実施形態のブロック図を示す。第1の論理ブロック1101ないし1104群および第2の論理ブロック群1105ないし1108を示す。第1の論理ブロック群1101ないし1104は、ブロック・コネクタ・タブ1113ないし1116を介して選択的に、MLA−1層1109および1121、MLA−2層1110、MLA−3層1111、MLAタブ1112に接続することができる。同様に、第2の論理ブロック群1105ないし1108は、それぞれのブロック・コネクタ・タブ1117ないし1120を介して選択的に、MLA−1層1109および1121、MLA−2層1110、MLA−3層1111、MLAタブ1112に接続することができる。
第12図は、より高いレベルのルーチング・ネットワーク用のMLAタブを含むMLA−3レベルに接続されたブロック・コネクタを包含する多重レベル・ルーチング・ネットワークの一部のブロック図である(Iマトリックスは示されていない)。第12図は、1組のブロック・コネクタと、ブロック・コネクタに対応する水平方向のより高いレベルのMLAとの相互接続を示す。ブロック・コネクタと結合されたMLAとを相互接続する対応する垂直ルーチング・ネットワーク群もある。本発明をあいまいにするのを回避するために、この垂直群は第12図には示されていない。FPGAの各ブロック・コネクタおよび結合されたMLA用のルーチング・ネットワークの対応するコピーがあることに留意されたい。
第12図には、32個のブロック1201ないし1232が示されている。各ブロックは、2つのBCタブ(たとえば、1つは水平であり、1つは垂直である)と共に、異なる隣接するブロックに結合される。各ブロック・コネクタ1201ないし1232は、プログラム可能なスイッチを介して選択可能な2つのBCタブに結合される。たとえば、ブロック・コネクタ1201は、プログラム可能なスイッチ1234を介して、選択可能なBCタブ1233に結合される。第1のBCタブ群に垂直な第2のBCタブ群は示されていない。ブロック・コネクタ1217ないし1232(水平方向と垂直方向の両方)用の同様なBCタブ相互接続機構が存在する。各BCタブごとに、MLA−1ルーチング線に接続できる二方向にプログラム可能なドライバがある。たとえば、BCタブ1233は、ドライバ1236を介して選択的にMLA−1ルーチング線1235に接続することができる。このドライバは、対応するBCタブに平行であっても、あるいは垂直であってもよい。現在好ましい実施形態では、各ブロック・コネクタごとに、対応するMLA−1線と、この第1のMLA−1線に垂直な別のMLA−1線があるので、MLA−1線の数はブロック・コネクタの数の半分である。各MLA−1線は、プログラム可能な手段を通じ対応するBCタブを通じて、対応するブロック・コネクタ、MLA−2線、MLA−3線に接続することができる。MLA−1ルーチング・ネットワークが、Iマトリックス線およびブロック・コネクタと共に、2×2ブロック領域にルーチング資源を形成することに留意されたい。このフォーマットは、セルにアクセスし相互接続するより複雑な論理機能構成を機能強化するものである。さらに、MLA−1ルーチング・ネットワークは、Iマトリックス線およびブロック・コネクタと共に、2×2ブロック領域の外部からの他のMLA線またはブロック・コネクタによる接続を通じてずっと複雑な論理機能を実施するためのアクセス・ポートとして働くことができる二方向にプログラム可能な追加アクセス線になる。プログラム可能なスイッチを使用することによって、必ずしも2×2ブロック領域に隣接しないIマトリックス線およびブロック・コネクタに選択的にアクセスすることができる。したがって、Iマトリックス線、ブロック・コネクタ、MLA−1線を含むルーチング・セグメントの総数の増加は、1つのブロックから2×2ブロックまでは幾何級数的なものである。
各BCタブごとに、MLA−2ルーチング線に接続できる二方向にプログラム可能なドライバがある。たとえば、ブロック・コネクタ・タブ1233は、ドライバ1238を介してMLA−2線1237に接続することができる。MLA−2は、対応するBCタブに平行であっても、あるいは垂直であってもよい。現在好ましい実施形態では、MLA−2線の数はMLA−1線の数の半分である。各MLA−2線は、プログラム可能な手段を通じ対応するBCタブを通じて、対応するブロック・コネクタ、MLA−1線、MLA−3線に接続することができる。MLA−2ルーチング・ネットワークは、Iマトリックス線、ブロック・コネクタ、MLA−1ルーチング・ネットワークと共に、セルにアクセスし相互接続するより複雑な論理機能構成用のルーチング資源を4×4ブロック領域に形成する。この場合、MLA−2ルーチング・ネットワークは、Iマトリックス線、ブロック・コネクタ、MLA−1線と共に、4×4ブロック領域の外部からの他のMLA線またはブロック・コネクタとの接続を通じてずっと複雑な論理機能を実施するためのアクセス・ポートとして働くことができる二方向にプログラム可能な追加アクセス線になる。プログラム可能なスイッチによって、アクセスは必ずしも4×4ブロック領域に隣接する必要はない。Iマトリックス線、ブロック・コネクタ、MLA−1線、MLA−2線を含むルーチング・セグメントの総数は、論理セルの増加に比例して増加する。総数の増加は、1つのブロックから4×4ブロックまでは幾何学的なものである。同様に、各BCタブごとに、MLA−3ルーチング線に接続できる二方向にプログラム可能なドライバがある。たとえば、BCタブ1233は、ドライバ1240を介してMLA−3線1239に接続することができる。MLA−3ルーチング線は、対応するBCタブに平行であっても、あるいは垂直であってもよい。現在好ましい実施形態では、MLA−3線の数はMLA−2線の数の半分である。各MLA−3線は、プログラム可能な手段を通じ対応するBCタブを通じて、対応するブロック・コネクタ、MLA−1線、MLA−2線に接続することができる。MLA−3ルーチング・ネットワークは、Iマトリックス線、ブロック・コネクタ、MLA−1ルーチング・ネットワーク、MLA−2ルーチング・ネットワークと共に、セルにアクセスし相互接続するより複雑な論理機能構成用のルーチング資源を8×8ブロック領域に形成する。MLA−3ルーチング・ネットワークは、Iマトリックス線、ブロック・コネクタ、MLA−1線、MLA−2線と共に、8×8ブロック領域の外部にある他のMLA線またはブロック・コネクタによる接続を通じてずっと複雑な論理機能を実施するためのアクセス・ポートとして働くことができる二方向にプログラム可能な追加アクセス線になる。この場合、他のMLA線またはブロック・コネクタは必ずしもプログラム可能な手段を通じて8×8領域に隣接するわけではない。Iマトリックス線、ブロック・コネクタ、MLA−1線、MLA−2線、MLA−3線を含む8×8ブロック単位のルーチング・セグメントの総数は、論理セルの増加に比例して増加する。この増加は、1つのブロックから8×8ブロックまでは幾何学的なものである。また、各BCタブごとに、MLAタブに接続できる二方向にプログラム可能なドライバがある。たとえば、BCタブ1233は、ドライバ1242を介してMLAタブ1241に接続することができる。MLAタブは、対応するBCタブに平行であっても、あるいは垂直であってもよい。二方向にプログラム可能な各ドライバ(たとえば、ドライバ1236、1238、1240、1242など)は、プログラム可能な手段を通じて制御されるパスゲートでも、プログラム可能な手段を通じて制御されるパスゲートを含む二方向ドライバでも、一方向にプログラム可能な手段を通じて制御される三状態およびプログラム可能な手段を通じて制御されるパスゲートまたはパスゲートを含むドライバでも、プログラム可能な手段を通じて制御される互いに逆方向の2つの三状態でもよい。どれを選択するかは、速度要件および密度要件の関数である。
一実施形態では、各ブロック・コネクタおよびBCタブは、隣接するブロックへの延長部を有する。たとえば、ブロック1201は、プログラム可能なスイッチ1243を介してブロック1202に接続することができる。BCタブ1244は、プログラム可能なスイッチ1246を介してBCタブ1245に接続することができる。より高いレベルのMLA線を使用する必要なしに、MLA線用の追加延長を実施してルーチング・レンジを拡張できることに留意されたい。第12図に示したルーチング・ネットワークには複数の変形が可能である。たとえば、ルーチング資源、したがってルーチング可能性を増大するために、MLA−2ルーチング・ネットワークの2つのコピーを作成することによってMLA−1ルーチング・ネットワークを置き換えることができる。一方、目的がルーチング面積を最小限に抑えることである場合、一実施形態は、MLA−1ルーチング・ネットワークをMLA−2ルーチング・ネットワークのコピーで置き換えることによってプログラミング・ビットの量を最小限に抑える。このような種類の変形を他のレベルの組合せに適用することができる。他の実施形態は、1本または複数のMLA線をオフセットすることである。たとえば、第12図では、1247にはBCタブ1245、1248、1249、1250からアクセスすることができる。その代わりに、MLA−1線1247を1ブロックだけシフトし、BCタブ1248、1251、1250、1252からアクセスできるようにすることができる。したがって、すべての他のMLA−1線をシフトすることができる。これは、他のMLAレベルにも適用することができる。
第13図は、MLA−1ターン・ネットワークを示す。4つの論理ブロック1301ないし1304を示す。この4つの論理ブロックは、セット1305ないし1308の各MLA−1線に接続される。各MLA−1線は、プログラム可能な手段(たとえば、ターン・ポイント1309)を通じて、対応する垂直MLA−1線を除くすべての垂直MLA−1線に接続することができる。たとえば、水平MLA−1線1310はターン・ポイント1312を介して垂直MLA−1線1311に接続することができる。MLA−1線の目的は、MLA−1ルーチング・ネットワーク・レンジ内にある1組のブロック・コネクタどうしを接続することである。第13図に示すように4ブロック領域内の対応するブロック・コネクタを接続する場合、ターン・ポイントを通じて2本の垂直なMLA−2線を使用する必要なしに、ブロック・コネクタ延長部またはBCタブを通じて対応する1本のMLA−1線との接続を行うことができる。一実施形態では、ターン・ポイントの数が減少される。これによって、ターン融通性が制限されるが、MLA−1線上の負荷と設計をレイアウトするのに必要な面積の両方が低減される。しかし、ルーチング融通性およびルーチング可能性が影響を受ける恐れがある。
第14図は、MLA−2ターン・ネットワークを示す。図から分かるように、各MLA−2線は、プログラム可能な手段を通じて、このMLA−2線に垂直なあらゆるMLA−2線に接続することができる。たとえば、垂直MLA−2線1401は、ターン・ポイント1403を通じて水平MLA−2線1402に接続することができる。他の実施形態では、ターン・ポイントの数を減少することによってターン融通性をさらに制限することができる。これによって、MLA−2線上の負荷と設計をレイアウトするのに必要な面積の両方が低減される。しかし、ルーチング融通性およびルーチング可能性が影響を受ける恐れがある。
第15図は、MLA−3ターン・ネットワークを示す。各MLA−3線は、プログラム可能な手段によってすべての垂直MLA−3線に接続可能である。たとえば、垂直MLA−3線1501は、ターン・ポイント1503を通じて水平MLA−3線1502に接続することができる。ターン融通性は、ターン・ポイントの数を減少することによってさらに制限することができる。これによって、MLA−3線上の負荷と設計をレイアウトするのに必要な面積の両方が低減される。しかし、ルーチング融通性およびルーチング可能性が影響を受ける恐れがある。
第16図は、MLA−4層用のルーチング・ネットワークと、MLA−4線にアクセスするための機構の一実施形態を示す。第16図は、4つの8×8ブロック1621ないし1624(合計で16×16個のブロック)を示す。4つの8×8ブロック1621ないし1624には、MLAタブの4つの水平グループおよび4つの垂直グループが結合される。現在好ましい実施形態では、MLA−4線およびMLAタブは8ビット幅である。各ブロックが、対応する8つのブロック・コネクタを有するので、各MLAタブの幅は、8本の線に等しいものとして示されており、この場合、各線は、上記で第12図に示したように8つのブロック・コネクタのうちの1つに対応する。現在好ましい実施形態では、それぞれ、幅が8本の線に等しい、4本の垂直MLA−4線および4本の水平MLA−4線がある。したがって、MLA−4線の数はMLA−3線の数の4分の1である。各MLA−4線は、プログラム可能な手段を通じて、対応するブロック・コネクタ、MLA−1線、MLA−2線、MLA−3線に接続することができる。所望の接続は、対応するMLAタブおよびBCタブを通じて行われる。MLA−4ルーチング・ネットワークは、Iマトリックス線、ブロック・コネクタ、MLA−1ルーチング・ネットワーク、MLA−2ルーチング・ネットワーク、MLA−3ルーチング・ネットワークと共に、セルのより複雑な論理機能形成アクセスおよび相互接続用のルーチング資源を16×16ブロック領域に形成する。一実施形態では、MLA−4ルーチング・ネットワークは、両方のIマトリックス線、ブロック・コネクタ、MLA−1線、MLA−2線、MLA−3線と共に、プログラム可能な手段を通じ、16×16ブロック領域の外部からのブロック・コネクタの他のMLA線による接続を通じてより複雑な論理機能を実施するためのアクセス・ポートとして働くことができる二方向にプログラム可能な追加アクセス線になる。このような他のMLA線またはブロック・コネクタは必ずしも、16×16ブロック領域に隣接する必要はない。16×16ブロック単位中のIマトリックス線、ブロック・コネクタ、MLA−1線、MLA−2線、MLA−3線、MLA−4線を含むルーチング・セグメントの総数は、論理セルの増加に比例して増加する。成長が1ブロックから16×16ブロックへのものであるとき、サイズの増大は幾何級数的である。各MLAタブから、スイッチを介してMLAタブに接続できる対応するMLA−4線がある。たとえば、MLAタブ1601は、スイッチ1603を介してMLA−4線1602に接続することができる。同様に、MLAタブ1601は、スイッチ1605を介してMLA−4線1604に、スイッチ1607を介してMLA−4線1606に、スイッチ1609を介してMLA−4線1608に接続することができる。同様に、MLAタブ1610は、スイッチ1615ないし1618を介してそれぞれ、MLA−4線1611ないし1614に接続することができる。4つのコーナーのうちの1つの各MLAタブは、プログラム可能な手段を通じ、垂直MLA−4線または水平MLA−4線を通じて、すべての4つのコーナーのすべての対応するMLAタブに接続することができる。
第17図は、3つの異なるスイッチ実施形態1701ないし1703を示す。一般に、スイッチは、二方向にプログラム可能なドライバ・ネットワークであり、簡単な二方向パスゲートでも、あるいは任意の二方向ドライバ構成1701ないし1703でもよい。
第18図は、MLA−5層用のルーチング・ネットワークと、MLA−5線にアクセスするための機構の一実施形態を示す。16個の8×x8ブロックが示されている。各8×8ブロックには、4つの水平MLAタブおよび4つの垂直MLAタブが結合される。これらのMLAタブは、第16図に示したMLAタブと同じである。(第16図に示した)16×16ブロックを単位としてグループ化すると、32×32ブロックからなる1つ上のレベルが形成される。4つの16×16コーナー単位のそれぞれには、それぞれ、幅が8ビットである、4本の水平MLA−5線および4本の垂直MLA−5線が結合される。これらの線は、第18図に示したように、隣接するコーナー単位によって共用される。したがって、MLA−5線の数はMLA−4線の数の半分である。各MLA−5線は、プログラム可能な手段を通じ、対応するMLAタブおよびBCタブを通じて、対応するブロック・コネクタ、MLA−1線、MLA−2線、MLA−3線、MLA−4線に接続することができる。MLA−5ルーチング・ネットワークは、Iマトリックス線、ブロック・コネクタ、MLA−1ルーチング・ネットワーク、MLA−2ルーチング・ネットワーク、MLA−3ルーチング・ネットワーク、MLA−4ルーチング・ネットワークと共に、セルのより複雑な論理機能形成アクセスおよび相互接続用のルーチング資源を32×32ブロック領域に形成する。さらに、MLA−5ルーチング・ネットワークは、両方のIマトリックス線、ブロック・コネクタ、MLA−1線、MLA−2線、MLA−3線、MLA−4線と共に、プログラム可能な手段を通じ、32×32ブロック領域の外部からのブロック・コネクタの他のMLA線(必ずしも32×32ブロック領域に隣接する必要はない)による接続を通じてずっと複雑な論理機能を実施するためのアクセス・ポートとして働くことができる二方向にプログラム可能な追加アクセス線として使用することができる。32×32ブロック単位中のIマトリックス線、ブロック・コネクタ、MLA−1線、MLA−2線、MLA−3線、MLA−4線、MLA−5線を含むルーチング・セグメントの総数は、論理セルの増加に比例して増加する。この増加は、1つのブロックから32×32ブロックまでは幾何学的である。
各MLAタブから、スイッチを介してMLAタブに接続できる対応するMLA−5線がある。スイッチは、二方向にプログラム可能なドライバ・ネットワークであり、簡単な二方向パスゲートでも、あるいは第17図に示した任意の二方向ドライバ構成でもよい。垂直MLA−5線が、プログラム可能な手段を通じて水平MLA−5と交差する位置にはターン・ポイントも組み込まれる。4つのコーナーのうちの1つの各MLAタブは、プログラム可能な手段を通じて、すべての4つのコーナーのすべての対応するMLAタブに接続することができる。これは、垂直MLA−5線および水平MLA−5線とのプログラム可能な接続を組み合わせ、ターン・ポイントを使用することによって実施される。
MLAタブを介したプログラム可能なアクセスにより、あるいは新しい他の中間MLAタブを導入することによって、より高いレベルのMLAネットワークを形成することができる。そのような例では、MLA線の数は、1つ下のレベルのMLAの一部である。Iマトリックス線、ブロック・コネクタ、MLA−1線、MLA−2線、MLA−3線、MLA−4線、MLA−5線、より高いレベルのMLA線を含むルーチング・セグメントの総数ならびにそれに対応する数のn×nブロック単位は、論理セルの増加に比例して増加する。成長が1ブロックからn×nブロックへのとき、この増大は幾何級数的である。
したがって、プログラム可能な論理回路用の内部接続・相互接続機構を含むアーキテクチャを開示した。

Claims (9)

  1. 第1または第2、第3および第4の1組みのルーチング線が少なくとも3つの異なるスパンを有する、第1の1組、第2の1組、第3の1組および第4の1組のルーチング線と、
    第2の1組のルーチング線を第3の1組と第4の1組のルーチング線に選択的に結合する第1の1組のスイッチと、
    第2の1組のルーチング線を前記第1の1組のルーチング線に選択的に結合する第2の1組のスイッチとから構成され、
    第1の信号経路を形成するために、第1の1組の第1のスイッチが、前記第2の1組のルーチング線の第1のルーチング線を、第3の1組のルーチング線の第2ルーチング線に選択的に結合し、第2ルーチング線は上記第1のスイッチを介して第1ルーチング線をドライブし、第2の信号路を形成するために、第1の1組のスイッチ群の第2スイッチは第1のルーチング線を第4の1組のルーチング線の第3ルーチング線に選択的に結合し、第3ルーチング線は第2スイッチを介して第1ルーチング線をドライブし、前記第2の1組のスイッチの第3のスイッチが、前記第3のスイッチによって前記第1の1組のルーチング線の第4のルーチング線をドライブするように第1のルーチング線に選択的に結合することを特徴とするプログラム可能な論理回路。
  2. 各論理ブロックが論理信号で論理機能を実行するように構成されている複数の構成可能セルからなる複数の論理ブロックと、
    論理ブロックの構成可能セルを選択的に結合する、第1の1組のスイッチによって前記論理ブロックの構成可能セルの入力ポートと出力ポートとに選択的に結合される第1の1組のルーチング線と、
    前記第1の1組のルーチング線とは異なるスパンを有する第2の1組のルーチング線と、
    相互に少なくとも1つの論理ブロックだけオフセットする、前記第2の1組のルーチング線の第1のルーチング線および第2のルーチング線とから構成され、前記第1のルーチング線が、第1の論理ブロックの第1の1組のルーチング線の少なくとも1つのルーチング線と、第1の論理ブロックに隣接して配置される第2の論理ブロックの、少なくとも前記第1の論理ブロックと前記第2の論理ブロックの長さだけオフセットする第1の1組のルーチング線の少なくとも1つのルーチング線とに第2の1組のスイッチによって選択的に結合されており、前記第2のルーチング線が、前記第2の論理ブロックの第1の1組のルーチング線の少なくとも1つのルーチング線と、前記第2の論理ブロックに隣接して配置される第3の論理ブロックの第1の1組の少なくとも1つのルーチング線とに前記第2の1組のスイッチによって選択的に結合されており、少なくとも前記第2の論理ブロックと前記第3の論理ブロックの長さでスパンすることを特徴とするプログラム可能な論理回路。
  3. 少なくとも3つの異なるスパンを有する第1のルーチング線、第2のルーチング線、第3のルーチング線、および第4のルーチング線と、
    前記第2のルーチング線をドライブするように第1のスイッチによって選択的に結合される前記第4のルーチング線と、
    前記第2のルーチング線をドライブするように第2のスイッチによって選択的に結合される前記第3のルーチング線と、
    第3のスイッチによって前記第4のルーチング線に選択的に結合される前記第1のルーチング線と
    を含むことを特徴とするプログラム可能な論理回路。
  4. 構成可能セル、ルーチング線、およびスイッチから構成される集積回路であって、
    それぞれが異なるスパンを有する、第1のスイッチによって第3の非セグメント化ルーチング線に選択的に結合する第1の非セグメント化ルーチング線、第2のスイッチによって前記第3の非セグメント化ルーチング線をドライブするように選択的に結合する第2の非セグメント化ルーチング線、および第3の非セグメント化ルーチング線と、
    前記第1の非セグメント化ルーチング線と前記第2の非セグメント化ルーチング線の横断を必要とせずに前記第3の非セグメント化ルーチング線をドライブするように選択的に結合する構成可能セルと
    を含むことを特徴とする集積回路。
  5. 構成可能セル、ルーチング線、およびスイッチから構成される集積回路であって、
    それぞれが異なるスパンを有する、第1の非セグメント化ルーチング線と第2の非セグメント化ルーチング線と第3の非セグメント化ルーチング線を有し、第1および第2の非セグメント化ルーチング線は第1の方向に並行に構成されている部分を有し、第1の非セグメント化ルーチング線は前記第3の非セグメント化ルーチング線を選択的にドライブし、且つ第2の非セグメント化ルーチング線は、第2スイッチを介して第3のルーチング線を選択的に結合することを特徴とする集積回路。
  6. 構成可能セル、ルーチング線およびスイッチから構成される集積回路であって、
    階層のレベルを形成するために複数の領域にグループ化された第1の複数の構成可能セルと、
    相互に近接した前記第1の複数の構成可能セルのサブセットから構成され、1つの方向で少なくとも前記第1の領域の長さをスパンする少なくとも1つの対応する第1の1組の非セグメント化ルーチング線を有する、階層の第1のレベルの第1の領域と、
    前記第1の領域の構成可能セルの入力ポートと出力ポートの少なくとも1つに結合されるように構成されている前記第1の1組の非セグメント化ルーチング線と、
    少なくとも2つの近接した第1の領域の構成可能セルから構成され、非セグメント化ルーチング線の少なくとも2つの対応する、1つの方向で少なくとも前記第2の領域をスパンし、かつ相互に異なるスパンを有する、第2の1組の非セグメント化ルーチング線と第3の1組の非セグメント化ルーチング線とを有する、階層の前記第1の領域よりも高いレベルの第2の領域と、
    第1のスイッチによって前記第2の領域の第1の領域の前記第1の1組の非セグメント化ルーチング線の第2のルーチング線をドライブし、第2のスイッチによって前記第2の領域の別の第1の領域の前記第1の1組の非セグメント化ルーチング線の第3のルーチング線をドライブするように選択的に結合する、前記第2の1組の非セグメント化ルーチング線の第1のルーチング線と、
    第3のスイッチによって前記第2のルーチング線をドライブし、第4のスイッチによって前記第3のルーチング線をドライブするように選択的に結合する前記第3の1組の非セグメント化ルーチング線の第4のルーチング線と
    を含むことを特徴とする集積回路。
  7. 構成可能セル、ルーチング線およびスイッチから構成される集積回路であって、
    階層のレベルを形成するために複数の領域にグループ化された第1の複数の構成可能セルと、
    前記第1の複数の構成可能セルのサブセットから構成され、少なくとも1つの方向で前記第1の領域の長さをスパンする少なくとも1つの対応する第1の1組の非セグメント化ルーチング線を有する、階層の第1のレベルの第1の領域と、
    前記第1の領域の入力ポートと出力ポートの少なくとも1つに結合するように構成される前記第1の1組の非セグメント化ルーチング線と、
    第1の方向に沿った少なくとも3つの前記領域の構成可能セルから構成され、1つの方向で少なくとも前記第2の領域をスパンする少なくとも1つの対応する第2の1組の非セグメント化ルーチング線を有する、階層の前記第1の領域よりも高いレベルの第2の領域と、
    第1のスイッチによって、前記第2の領域のうちの1つの第1の領域の前記第1の1組の非セグメント化ルーチング線の第2のルーチング線と、第2のスイッチによって前記第2の領域の2つめの第1の領域の前記第1の1組の非セグメント化ルーチング線の第3のルーチング線とに選択的に結合する前記第2の1組の非セグメント化ルーチング線の第1のルーチング線と、
    第3のスイッチによって前記2つめの第1の領域の前記第1の1組の非具メント化ルーチング線の第4のルーチング線と、第4のスイッチによって前記第2の領域の3つめの第1の領域の前記第1の1組の非セグメント化ルーチング線の第6のルーチング線に選択的に結合される、少なくとも1つの第1の領域だけ前記第1のルーチング線からオフセットされる、前記第2の1組の非セグメント化ルーチング線の第4のルーチング線と
    を含むことを特徴とする集積回路。
  8. 構成可能セル、ルーチング線およびスイッチから構成される集積回路であって、
    それぞれが第1のスパンを有する、第1のスイッチによって第2の非セグメント化ルーチング線に選択的に延長する第1の非セグメント化ルーチング線、および、第2の非セグメント化ルーチング線と、
    それぞれが前記第1のスパンよりも大きな第2のスパンを有し、相互に少なくとも1つの第1のスパンだけオフセットする、第2のスイッチによって前記第1の非セグメント化ルーチング線に選択的に結合する第3の非セグメント化ルーチング線、および、第3のスイッチによって前記第2の非セグメント化ルーチング線に選択的に結合する第4の非セグメント化ルーチング線と
    を含むことを特徴とする集積回路。
  9. 構成可能セル、ルーチング線およびスイッチから構成される集積回路であって、
    第1のスパンを有する第1の非セグメント化ルーチング線と、
    前記第1のスパンよりも大きな第2のスパンをそれぞれが有し、相互に少なくとも1つの第1のスパンだけオフセットする、第1のスイッチによって前記第1の非セグメント化ルーチング線に選択的に結合する第2の非セグメント化ルーチング線、および、第2のスイッチによって前記第1の非セグメント化ルーチング線に結合する第3の非セグメント化ルーチング線と
    から構成されることを特徴とする集積回路。
JP52711795A 1994-04-14 1995-04-14 プログラム可能な論理回路用のアーキテクチャおよび相互接続機構 Expired - Fee Related JP3581152B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US22992394A 1994-04-14 1994-04-14
US08/229,923 1994-04-14
PCT/US1995/004639 WO1995028769A1 (en) 1994-04-14 1995-04-14 Architecture and interconnect scheme for programmable logic circuits

Publications (2)

Publication Number Publication Date
JPH10501934A JPH10501934A (ja) 1998-02-17
JP3581152B2 true JP3581152B2 (ja) 2004-10-27

Family

ID=22863228

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52711795A Expired - Fee Related JP3581152B2 (ja) 1994-04-14 1995-04-14 プログラム可能な論理回路用のアーキテクチャおよび相互接続機構

Country Status (7)

Country Link
EP (4) EP1162745A3 (ja)
JP (1) JP3581152B2 (ja)
CN (1) CN1101082C (ja)
AT (1) ATE214210T1 (ja)
AU (1) AU2291495A (ja)
DE (2) DE69534659T2 (ja)
WO (1) WO1995028769A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5457410A (en) 1993-08-03 1995-10-10 Btr, Inc. Architecture and interconnect scheme for programmable logic circuits
GB2305759A (en) * 1995-09-30 1997-04-16 Pilkington Micro Electronics Semi-conductor integrated circuit
EP0913032A4 (en) * 1996-03-29 2001-03-14 Dyna Logic Corp HIGH SPEED PROGRAMMABLE LOGIC ARCHITECTURE
US6034547A (en) 1996-09-04 2000-03-07 Advantage Logic, Inc. Method and apparatus for universal program controlled bus
US6624658B2 (en) 1999-02-04 2003-09-23 Advantage Logic, Inc. Method and apparatus for universal program controlled bus architecture
US5977793A (en) * 1996-10-10 1999-11-02 Altera Corporation Programmable logic device with hierarchical interconnection resources
US6300794B1 (en) 1996-10-10 2001-10-09 Altera Corporation Programmable logic device with hierarchical interconnection resources
US5999016A (en) * 1996-10-10 1999-12-07 Altera Corporation Architectures for programmable logic devices
US6107825A (en) * 1997-10-16 2000-08-22 Altera Corporation Input/output circuitry for programmable logic devices
US7389487B1 (en) 1998-04-28 2008-06-17 Actel Corporation Dedicated interface architecture for a hybrid integrated circuit
US7084476B2 (en) * 2004-02-26 2006-08-01 International Business Machines Corp. Integrated circuit logic with self compensating block delays
US6975139B2 (en) 2004-03-30 2005-12-13 Advantage Logic, Inc. Scalable non-blocking switching network for programmable logic
US7460529B2 (en) 2004-07-29 2008-12-02 Advantage Logic, Inc. Interconnection fabric using switching networks in hierarchy
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
US7456653B2 (en) * 2007-03-09 2008-11-25 Altera Corporation Programmable logic device having logic array block interconnect lines that can interconnect logic elements in different logic blocks
US7999570B2 (en) 2009-06-24 2011-08-16 Advantage Logic, Inc. Enhanced permutable switching network with multicasting signals for interconnection fabric
CN102288903B (zh) * 2011-07-26 2014-12-10 北京航空航天大学 一种fpga内连线资源的测试结构及方法
CN108427829B (zh) * 2018-02-09 2022-11-08 京微齐力(北京)科技有限公司 一种具有公共线结构的fpga

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5212652A (en) * 1989-08-15 1993-05-18 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure
US5338984A (en) * 1991-08-29 1994-08-16 National Semiconductor Corp. Local and express diagonal busses in a configurable logic array
GB9223226D0 (en) * 1992-11-05 1992-12-16 Algotronix Ltd Improved configurable cellular array (cal ii)
GB9312674D0 (en) * 1993-06-18 1993-08-04 Pilkington Micro Electronics Configurabel logic array
US5457410A (en) * 1993-08-03 1995-10-10 Btr, Inc. Architecture and interconnect scheme for programmable logic circuits

Also Published As

Publication number Publication date
CN1152375A (zh) 1997-06-18
EP1594228A3 (en) 2005-11-16
DE69534659T2 (de) 2006-09-07
CN1101082C (zh) 2003-02-05
EP1162746B1 (en) 2005-11-30
DE69534659D1 (de) 2006-01-05
EP1594228A2 (en) 2005-11-09
EP0755588A1 (en) 1997-01-29
ATE214210T1 (de) 2002-03-15
EP1162746A2 (en) 2001-12-12
EP1162745A2 (en) 2001-12-12
DE69525741D1 (de) 2002-04-11
EP1162745A3 (en) 2003-05-14
WO1995028769A1 (en) 1995-10-26
JPH10501934A (ja) 1998-02-17
EP1162746A3 (en) 2003-05-14
EP0755588B1 (en) 2002-03-06
AU2291495A (en) 1995-11-10

Similar Documents

Publication Publication Date Title
US6747482B2 (en) Architecture and interconnect scheme for programmable logic circuits
US6507217B2 (en) Architecture and interconnect scheme for programmable logic circuits
JP3581152B2 (ja) プログラム可能な論理回路用のアーキテクチャおよび相互接続機構
EP0824791B1 (en) Scalable multiple level interconnect architecture
EP0824792A1 (en) Floor plan for scalable multiple level interconnect architecture
US6051991A (en) Architecture and interconnect scheme for programmable logic circuits

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040713

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040722

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080730

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090730

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100730

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110730

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees