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