(57)【特許請求の範囲】
【請求項１】
プログラマブルロジック回路のためのルーティング構造であって、該ロジック回路は、ロジック機能が行われるロジックセルを含み、
該ロジックセルによって処理される信号を供給する入力ラインセットであって、各入力ラインはほぼ第１の方向に延びる入力ラインセットと、
該ロジックセルによって処理された信号を受け取る出力ラインセットであって、各出力ラインは該第１の方向に平行ではないほぼ第２の方向に延び、これにより該入力ラインと該出力ラインとが接合領域で交差する、出力ラインセットと、を備え、
該接合領域のそれぞれは、複数の制御可能なドライバ回路を含み、該ドライバ回路のそれぞれは、該出力ラインセットのうちの選択されたラインと該入力ラインセットのうちの選択されたラインとの間に接続され、これにより、該出力ライン上に存在する信号を該入力ラインセットのうちの所望のライン上に置くことが可能となり、
該制御可能なドライバ回路のそれぞれは、少なくとも、該制御可能なドライバ回路が供給される信号を複製するアクティブ状態、および該制御可能なドライバ回路が入力と出力との間に高インピーダンスを提供するパッシブ状態に置かれ得るバッファ回路を備え、
前記プログラマブルロジック回路のためのルーティング構造は、
前記出力ラインと前記制御可能なドライバ回路との間を結合し、該出力ラインの信号を、該制御可能なドライバ回路に供給する前に増幅する別の制御可能なドライバ回路をさらに備えた、プログラマブルロジック回路のためのルーティング構造。
【請求項２】
制御可能なドライバ回路により、前記出力ラインセットの各出力ラインは、前記入力ラインセットのうちの所望のラインに接続することが可能となる、請求項１に記載のプログラマブルロジック回路のためのルーティング構造。
【請求項３】
前記プログラマブルロジック回路は集積回路上で具体化される、請求項１に記載のプログラマブルロジック回路のためのルーティング構造。
【請求項４】
信号を前記ロジックセルに供給する前記入力ラインセットは、前記集積回路上を曲がりくねって延びて、該ロジックセルの近くに配置される、請求項３に記載のプログラマブルロジック回路のためのルーティング構造。
【請求項５】
前記ロジックセルからの信号を受け取る前記出力ラインセットは、前記集積回路上を曲がりくねって延びて、該ロジックセルの近くに配置される、請求項３に記載のプログラマブルロジック回路のためのルーティング構造。
【請求項６】
前記バッファ回路のそれぞれは、供給される制御信号および入力信号に応答して、３つの動作のうちの１つを行うプログラマブル３状態回路を備えている、請求項１に記載のプログラマブルロジック回路のためのルーティング構造。
【請求項７】
前記３つの動作は、ロジカル１を提供すること、ロジカルゼロを提供すること、および高インピーダンスを提供することを包含する、請求項６に記載のプログラマブルロジック回路のためのルーティング構造。
【請求項８】
それぞれが入力ノードおよび出力ノードを有し、該入力ノードに供給される信号にロジック機能を行って得られる出力信号を該出力ノードに供給するロジックセル群と、
該ロジックセルに入力信号を供給する入力ラインセットと、
該ロジックセルから該出力信号を受け取る出力ラインセットと、
該入力ラインのうちの所望のラインを該ロジックセルの該入力ノードに選択的に相互接続し、かつ、該出力ラインのうちの所望のラインを該ロジックセルの該出力ノードに選択的に相互接続するように配置された制御可能なドライバ回路セットと、
前記出力ノードと前記制御可能なドライバ回路セットとの間を結合し、該出力ノードの信号を、該制御可能なドライバ回路セットに供給する前に増幅する別の制御可能なドライバ回路と、を備え、
該制御可能なドライバ回路セットのそれぞれは、少なくとも、該制御可能なドライバ回路が供給される信号を複製するアクティブ状態、および該制御可能なドライバ回路が入力と出力との間に高インピーダンスを提供するパッシブ状態に置かれ得るバッファ回路を備えている、プログラマブルロジック回路のためのアーキテクチャー。
【発明の詳細な説明】
発明の背景
本発明は、プログラマブルロジックに関し、特に、アクティブドライバ回路を相互接続アレイにおいて使用する、高速プログラマブルロジックアーキテクチャに関する。
プログラマブルロジックデバイス（ＰＬＤ）とは、回路の使用者がソフトウェア制御を使用して、回路が実施するロジック機能をカスタマイズすることが可能な、プログラマブル集積回路である。以前は小、中、および大規模集積回路によって実施されていたロジック機能は、現在では、プログラマブルロジックデバイスによって実施されることが可能である。ＰＬＤは、現在、集積回路ごとにおよそ50,000ゲートのオーダーの能力を有する。典型的なプログラマブルロジックデバイスが集積回路製造業者によって供給されるときには、それはまだいかなる具体的な機能も実施することができない。しかし、使用者は、同様に典型的にはプログラマブルロジックデバイス製造業者によって供給されるソフトウェアと組み合わせて、ＰＬＤをプログラムして、具体的な機能または使用者の用途に必要な機能を実施することが可能である。次いで、ＰＬＤは、あたかも専用のロジックチップが使用されたかのように、使用者によって設計された大きなシステムで機能することが可能である。この機能性によって、使用者は、カスタムチップまたはゲートアレイの時間または費用に委ねることなく、システムロジックをデバッグすることが可能である。この機能性によってまた、小規模な本番運転用およびハードウェアのカスタマイズを非常に具体的な用途に合わせることが可能である。幾つかのＰＬＤでは、ロジックは「進行中に（on-the-fly）」変更されることが可能であり、それによりＰＬＤは、システムの動作中、ある時に１つの機能を実施し、その後に別の機能を実施することが可能になる。
典型的なＰＬＤは、同一のロジックセルのアレイから成る。このロジックセルは、個別にプログラムされることが可能であり、且つ任意に互いに相互接続されて内部入力および出力信号を与えることが可能であり、それにより非常に複雑な組み合わせの連続的なロジック機能の実施を可能にする。プログラムは、メモリセルなどのプログラム可能素子の状態を設定することによって、ＰＬＤにおいて実施される。
プログラマブルロジックアレイ（ＰＬＡ）として公知のプログラマブルロジックの１つのタイプは、積和ロジックを実施するようにプログラムすることが可能な組合わせの二レベルＡＮＤ／ＯＲ集積回路である。そのようなデバイスは、典型的には、プログラム可能にチップ入力信号に接続することが可能な入力端子を有するＡＮＤゲートの連続と、ＡＮＤゲートから出力信号を受信するためにプログラム可能に接続され得るＯＲゲートの連続とから成る。
プログラマブルロジックデバイスの別のタイプは、プログラマブルアレイロジック（ＰＡＬ）として公知である。ＰＡＬは、固定したＯＲアレイと双方向性の入力／出力ピンとを使用する。ＰＡＬおよびＰＬＡの両方の欠点は、それらがプログラムされ得る密度の欠如である。言い換えれば、アレイは多くのロジック機能を実施することが可能であるが、アレイの利用は望むほどには完全ではないということである。さらに、アレイの寸法は、そのプログラミング能力よりも速く増大する。
この課題に対する返答は、プログラマブルロジックデバイス内の「マクロセル」またはロジックブロックであった。マクロセルまたはロジックブロックは、多くの異なる機能を実施することが可能であり、且つ他のマクロセルまたはロジックブロックに選択的に相互接続可能なロジックの小区分である。これにより、プログラマブルロジックデバイス内のロジックは、ロジックの細片が他の細片と連絡する、より一層の粒状構造を想定することが可能になり、また、集積回路の全体的により効率的な利用を提供することが可能になる。ここでは、「プログラマブルロジックデバイス」という語句を用いて、プログラマブルアレイロジック、プログラマブルロジックアレイ、フィールドプログラマブルゲートアレイ、およびその他のタイプのプログラマブルロジックデバイスを集合的に呼ぶ。
現時点で利用可能な全てのプログラマブルロジックデバイスの顕著な欠点は、比較的速度が遅いことである。上記のプログラマブルロジックデバイスの全てにおいて、ＡＮＤならびにＯＲアレイ内部の接続、およびマクロセルへのまたはマクロセルからの接続は、消去可能なプログラマブルリードオンリメモリセル、電気的に消去可能なリードオンリメモリセル、スタティックランダムアクセスメモリセル、ヒューズ、またはアンチヒューズ他を用いて行われる。これらの場合のそれぞれにおいて、相互接続アプローチは受動的である。すなわち、メモリセルまたは受容性の接続の状態は、それ自体が、２つのノード間の接続を行うまたは壊す他の任意の装置を制御するために使用される。
これらの接続の全ては、接続に提供された信号は単に接続を通過する（または接続が開いている場合には通過しない）という意味で、受動的である。その結果、プログラマブルロジックデバイスの全体的な速度は、下記に論じられる理由により制限される。現時点で利用可能な最も速い従来技術の大規模なフィールドプログラマブルゲートアレイでさえ、５０ｍｈｚまたはそれより遅く動作する。幾つかの小さなトランジスタ−トランジスタロジック（ＴＴＬ）デバイスは、１００メガヘルツより高速で動作することが可能である。現時点では、誰も大規模高速アレイを製造していない。
従来技術のプログラマブルロジックデバイスの動作速度が比較的遅いことの主要な理由の１つは、相互接続システムに依存する抵抗である。相互接続システムは、プログラマブル「配線」であり、この配線によって、ロジック信号は集積回路チップを横切って伝搬される。この伝搬速度は、使用されるトランスファゲートがＥＰＲＯＭセル、ＳＲＡＭセル、アンチヒューズ他として形成されていようと、トランスファゲートの直列抵抗によって制限される。その結果、従来技術のプログラマブルロジックデバイスの製造業者は、トランスファゲートに関する技術的な選択において、抵抗と容量との間の選択を余儀なくされてきた。
上記のように、典型的な従来技術のプログラマブルロジックデバイスでは、ロジックは、互いに連絡しているロジックブロックにおいて実施される。そのようなロジックブロックは、トランスファゲートと結合される場合には、接続ごとにほぼ1,000オームのオーダープラスドライバ回路の抵抗の有効な駆動抵抗を有する。例えばActel Corporationによって実施されているようなアンチヒューズ技術では、効果的な駆動抵抗は、接続ごとにほぼ50〜500オームのオーダーの抵抗プラスドライバ回路の抵抗である。後述するように、本発明のシステムの技術は、有効な駆動抵抗とは、単に、ドライバ回路の抵抗である。
発明の要旨
従来のプログラマブルロジックデバイスより実質的に高い速度で動作を行い得るプログラマブルロジックデバイスのためのアーキテクチャーを開発した。本発明のシステムの好適な実施形態では、該システムのプログラマブルロジック技法および現在利用可能なシリコン半導体技術を用いて、５００ｍＨｚまでの速度が実現可能である。
本発明の１つの具現例では、ロジック機能が行われるロジックセルを含むプログラマブルロジック回路のためのルーティング構造が提供される。ルーティング構造は、ロジックセルによって処理される信号を供給する、ほぼ第１の方向に延びる入力ラインセットと、ロジックセルによって処理された信号を受け取る、ほぼ第２の方向に延びる出力ラインセットとを含む。入力ラインおよび出力ラインが交差する場所には、出力ラインセットのうちの選択されたラインと入力ラインセットのうちの選択されたラインとの間をプログラム可能に接続するか、または接続しないことにより、出力ラインに存在する信号を入力ラインのうちの所望のラインに配置させることができる、制御可能なアクティブドライバ回路を含む接合領域が確立される。制御可能なドライバ回路のそれぞれは、少なくとも、ドライバ回路がこれに供給される信号を複製するアクティブ状態かまたは、入力と出力との間に高インピーダンスを提供するパッシブ状態にされ得るバッファ回路である。典型的には、制御可能なドライバ回路は、セット内の各出力ラインを入力ラインセット内のいかなる所望のラインにも接続することができる。
別の実施形態では、本発明のシステムは、上述の構造と同様の構造を含むが、さらに、入力ラインおよび出力ラインのうちの所望のラインをロジックセルに選択的に相互接続する制御可能なドライバ回路セットを提供する。これにより、入力ラインに存在する入力信号を、ロジックセルの適切なノードに供給することができ、またロジックセルからの出力信号を他の所望のロジックセルまたは他の回路に供給することができる。
本発明のシステムに関連して、制御可能なドライバ回路はまた、集積回路のピンと入力および出力ラインセットとの間のインタフェース回路で用いられ得る。制御可能なドライバ回路により、集積回路のピンと入力および出力バスとの間の所望の接続が可能となり、これにより、チップのピンに存在する所望の信号を適切なロジックセルに供給し、同様にこれらロジックセルからの出力を適切なピンに印加することが可能となる。
本明細書で述べられる制御可能なドライバ回路などのアクティブ回路を使用することにより、本発明のシステムのプログラマブルロジックデバイスは、従来の装置より実質的に速く動作することが可能になる。従来技術の1993 semiconductor technologyを用いると、プログラマブルロジックデバイスが動作し得るクロック速度の上限は、５０ｍＨｚである。本発明の技法を用いて製造されるプログラマブルロジックデバイスは、５００ｍＨｚまでの速度で動作し得る。
【図面の簡単な説明】
図１は、本発明のプログラマブルロジックデバイスアーキテクチャを使用する集積回路の全体的なレイアウトのブロック図である。
図２は、入力信号を本発明のロジックセルに供給し、且つ出力信号をこのロジックセルから受信する方法を示す模式図である。
図３は、入力／出力バスと集積回路入力／出力ピンとを相互接続する回路の一実施形態を示す模式図である。
図４は、入力／出力バスと集積回路入力／出力ピンとを相互接続する回路の別の実施形態を示す模式図である。
図５は、ドライバ回路がどのようにして、ロジックセルと入力または出力バスとの間の相互接続の数を減少させる技術と共に、入力または出力バスにおいて使用され得るかを示す。
図６は、接続の数を減少させる別の技術を示す。
図７は、入力バスと出力バスとの間の相互接続を、例えばそれらが交差する位置で提供するために使用され得る回路の模式図である。
図８ａは、２つの一方向性バスラインを示す。
図８ｂは、どちらの方向にでも一方向性にすることが可能なバスラインを示す。
図８ｃは、制御可能なドライバ回路を使用して分割されたバスラインを示す。
図９は、１つのロジックセルの回路の模式図である。
図１０は、図１で使用されたロジックブロックの好適な実施形態の詳細な回路模式図である。そして、
図１１は、図１においてブロック形式で示された、全体的なプログラマブルロジックデバイスの小部分のブロック図である。
具体的な実施形態の説明
図１は、本発明の好適な実施形態に従って製造された、高速プログラマブルロジックデバイスの全体的なレイアウトを示すブロック図である。図１に示すように、本デバイスは、ほぼ東西方向に配置されたルーティングチャネル１２の第１のセットと、ほぼ南北方向に配置されたルーティングチャネル１５の第２のセットと、ルーティングチャネルのマトリクス内部に配置された一連のロジックセル２０とを含む。
プログラマブルロジックデバイスの動作の従来の方法では、ルーティングチャネルは、入力信号をロジックセルに供給し且つそこから出力信号を受信する、導体のバスを含む。しばしば、ロジックセルからの出力信号は、別のロジックセルへの入力信号として使用される。
周知のように、それぞれのロジックセルは、ロジックセルに供給される入力信号に対して、組合わせたまたは連続的な、あるいはその両方である、任意の所望の動作を実施する。ロジックセルによって実施される特定のロジック機能は、典型的には外部回路を使用してセルに「ロード」されるそのプログラム状態に依存する。この状態は、外部装置からの制御ビットを使用して規定され、マルチプレクサ、フリップフロップ、ゲート等を設定する。
図１の一般的なブロック図では、ロジックセル２０は、バス１２から入力信号を受信し、且つバス１５に出力信号を供給する。入力信号は、バスから伝達されて導体２３によってロジックセルに供給される。また、得られた出力信号は、導体２７を使用して出力バス１５に供給される。後述のように、これらの導体は、ロジックセルの入力ノードが入力データバス１２において選択されたラインに接続されている、または切断されているという意味において、それ自体がプログラム可能であり得る。言うまでもなく、上述のように、入力データバス自体が、他のロジックセルからの出力情報を信号として搬送し得る。
入力データバスと出力データバスとの間の接続は、これらのバスが互いに交差する位置３０において成され得る。バスは、図１の図面において互いに交差するように描写されているが、実際の実行では、それらは異なる金属層または他の導電性材料を使用して集積回路上に形成され、そしてそれらの間に電気的な接続が「プログラム」されない限り、互いに電気的に絶縁される。導体が交差領域３０において互いに結合され得る方法は、さらに下記に説明される。
本発明の構造の利点は、本発明がモジュール式であるということである。破線４０の内部に示すように、本発明の好適な実施形態では、本質的に集積回路領域の全てが、バス１２および１５、ロジックセル２０、ならびにバス２３および２７の相互接続からなり、ロジックセルに信号を提供し、且つロジックセルから信号を受信する規則的なモジュール４０によって使い尽くされる。このモジュール式構造は、集積回路の効率的なレイアウトを容易にする。
図に示すように、このようにして、ロジックセルのそれぞれの出力は、チップのレイアウトの垂直方向の全長に亘って延びる。出力バスは、ロジックセルの片側にのみ沿って延び、そしてチップの縁で止まる。しかし、入力バスは、集積回路の周囲を「包み込む」。例えば、バス１２ａと１２ｂとは、回路の東端または西端で接続される。この方法では、入力バスは、回路全体の表面全域に亘って蛇行して（曲がりくねって）延びる。このようにして、バス１２ａがチップの東側の縁または西側の縁のいずれかにおいてバス１２ｂに接続され、次いで、バス１２ｂが反対側等の縁においてバス１２ｃに結合される。
入力および出力バスは、好適には一方向性である。例えば、エミッタ結合論理（ＥＣＬ）の実施では、または相補型ＭＯＳ（ＣＭＯＳ）の実施では、バスは、最も短いセグメントでは一方向性であるが、セグメントを後述のように互いに絶縁することによって、共通バスの異なるセグメントでは双方向性にされることが可能である。バスの長さ、入力／出力信号の強度、およびその他の要素に依存して、バス内部に「リピータ」を使用することが望ましくあり得る。これらのリピータは、回路の容量を絶縁するための小さな増幅器から成り、それにより信号伝搬の遅延を減少させ、全体的なシステムの速度を向上させる。
図２は、ロジックセル２０とその入力バス２３との間、およびロジックセル２０とその出力バス２７との間の相互接続システムのより詳細な図である。任意の所望の数の入力および出力が、ロジックセルに提供され、且つロジックセルから提供されることが理解されるべきである。図２の図面は、これらの相互接続の形成および接続のプログラマブル制御への一般的なアプローチを示す。
図２に示すように、入力バス１２は、制御可能なドライバ回路５２および５８を使用して、ロジックセルの入力ノード４１に選択的に接続され得る一連の導体を有する。図面は、バス１２のそれぞれの導電線が入力ノード４１に別個に接続可能であるように示しているが、これは、例示のみを目的とするものである。本発明の回路の実際の実施では、下記のロジックセルの製造についての議論と関連して明らかになるように、それぞれの入力ノードは、バス上の全てのラインに接続される必要はない。
いずれにしても、図面では、バス１２のそれぞれのバスラインは、ドライバ回路を介して別個に接続される。ドライバ回路は、ライン５４上のそれに供給される入力信号の制御を受けて動作する、プログラム可能な三状態バッファとして機能する。ライン５４は、レジスタまたはその他の手段に結合される。レジスタまたはその他の手段の内部には、プログラマブルロジックデバイス全体を制御するプログラムが記憶される。このレジスタ、メモリ、ヒューズまたはその他の手段内の別個のビットは、図２の図面のプログラマブル接続の対応する１つを制御するために使用される。他のビットは、プログラマブルロジックデバイスの他の場所の他のプログラマブル接続を制御するために使用される。このようにして、制御メモリは、典型的には、制御されるプログラマブル接続と同じ数の、メモリに記憶されるビットを有する。言うまでもなく、２つの構成は互いに排他的であり且つ１つが、あるいは１つだけが、常に提供される場合には、単一のビットの相補的な状態が２つの構成を制御することが可能である。メモリビットの制御下では、回路５２ａは、アクティブまたは高インピーダンス状態のいずれかである。入力５４ａが使用可能である場合には、回路５２ａは、その入力ノード５７ａに結合された信号を繰り返す。言い換えれば、ロジカル１がバス１２の導体１２ａ上に存在するならば、ドライバ５２ａの入力ノード５７ａは、ロジカル１である。制御ライン５４ａが使用可能であると仮定すると、ドライバ５２ａからの出力もまたロジカル１である。言うまでもなく、同一の条件が、ロジカル０が導体１２ａ上に存在する場合に当てはまる。ドライバ５２のそれぞれが、同じ方法で機能する。
これに対して、制御ライン５４が使用可能でない場合には、ドライバ回路は、高インピーダンス状態を提供し、且つ開路として機能的に作用する。言い換えれば、ノード５５は、バス１２から完全に切断される。これにより、入力ノード４１は、その入力ノードがバス１２から信号を受信するものでない場合には、バス１２から切断されることが可能になる。
本発明の幾つかの実施形態では、別のドライバ回路５８がノード５５とノード４１との間に設けられる。この追加の回路を、入力ノード４１への容量性の負荷を減少させるのを補助するために使用することが可能である。図２には示していないが、ロジックセル２０への他の入力ノードのそれぞれは、同様に入力信号バス１２に結合される。
出力信号バス１５は、同様の技術を使用して、ロジックセル２０に結合される。図に示すように、ロジックセルは、任意のドライバ回路５９に供給される出力ノード４８を設ける。回路５９は、回路５８と同じ理由から、すなわちロジックセルへの容量性の負荷および回路要件を減少させるために設けられる。大容量を駆動するのに十分な出力駆動電力を有するロジックセルに関しては、ドライバ回路５９は不要である。
回路５９からの出力は、それぞれが対応するライン５１に供給される情報を使用してプログラム制御下で動作する、ドライバ回路５３の入力に結合される。ライン５１は、単一のシフトレジスタ素子、メモリセル、またはその他の記憶部に接続され得る。制御可能なドライバ回路５３は、回路５２と同じ方法で機能する。すなわち、ドライバ回路５３は、それらの入力ノードにおいて提供された信号を有する対応する出力バスラインを駆動するか、または高インピーダンス条件を出力バスに提供するかのいずれかである。高インピーダンス状態では、ロジックセルによって供給される信号が特定のバス導体の状態に影響を及ぼすことは防がれる。このように、全体的な出力接続２７（図１に示す）は、入力接続２３（図１に示す）の逆である。
本発明の別の実施形態では、回路５２、５３、５８、および５９は、マルチプレクサに置き換えることが可能である。この場合、制御ライン５１および５４は、制御信号を供給してマルチプレクサ入力ラインの中から選択して、適切な１つをロジックセルに接続する。
図３は、本プログラマブルロジックデバイスの好適な実施形態のルーティング構造をさらに詳細に示す。図３に示されているのは、集積回路の入力／出力ピンにおいて提供された信号が、プログラマブルロジックデバイスの相互接続する入力バスおよび出力バスに供給され、また、そこから受信される方法である。図３に示すように、２つの例Ｉ／Ｏピン６０および６１は、同様に回路６２を介して、入力／出力バス１２または１５に接続される。図面では、バスは南北方向に延びて示されているが、描写された回路は、バスが入力バス１２であろうと出力バス１５であろうと、同じ機能を実施することが可能であることが理解されるべきである。さらに、それぞれの入力／出力パッド６０を、単に図３に示された構造を繰り返すことによって、入力バスおよび出力バスの両方に結合することが可能である。このように、入力接続６０を、ドライバ回路６２ａ、６２ｂ、…を介してライン１２の任意の１つに接続することが可能である。これにより、パッド６０において提供される入力信号を、集積回路のロジックセルの任意の１つに供給するバス１２に配置することが可能になる。同様に、出力ドライバ回路６４ａ、６４ｂ、等により、バス上で提供される信号をバスから出力パッドへ伝達することが可能になる。上述のように、描写された構造は出力バスのみを示すが、図３の全構造を繰り返して入力バスへの接続を実現することが可能である。言うまでもなく、所望の数の多くの入力および出力ピンが使用され得る。
図４は、入力／出力パッドとバスとの間の相互接続への別のアプローチを示す図である。図４に示すように、入力バス１２ａおよび１２ｂは、入力／出力パッド６０および６１を通過して蛇行して延びる。対照的に、出力バス１５ａおよび１５ｂは、Ｉ／Ｏパッド６０および６１を垂直方向に通過する。Ｉ／Ｏパッド６０を、プログラマブルドライバ６５ａを使用して、出力バス１５ａを選択的に接続することが可能である。また、Ｉ／Ｏパッド６０および６１を、ドライバ６５ｂを介してバス１２ａに、そしてドライバ６５ｃを介してバス１２ｂに選択的に接続することも可能である。同様の方法で、入力／出力パッド６１を、ドライバ６７ａを用いて出力バス１５ｂを駆動するように接続されることが可能であり、且つドライバ６７ｂおよび６７ｃをそれぞれ使用して、バスライン１２ａまたはバスライン１２ｂのいずれかから信号を受信するように接続されることが可能である。この構成では、入力はセル出力のように作用し、異なって見られるバス１５の一部になり、そしてチップへの入力パッドをチップの外部ソースからの出力と見なすことが可能である。
図５は、本発明のシステムの入力および出力バスの別の局面を示す。図５に示すように、バス１２、例えば入力バスは、同図の上部を横断して延びる。入力バス１２は、図２に示すのと同じ技法を用いてロジックセル２０に結合される。しかし、簡単のために、入力バス１２とロジックセル２０との間のローカルバス２３内のドライバ回路は図示されていない。これらは上述の方法で配備される。
また、例示として、ロジックセル２０への入力端子４１は、入力バス１２のすべてのラインに接続可能ではないように示されている。各入力ラインと各ロジックセルの各入力ノードとの間にそれぞれ接続部を配備することが望ましいが、実際にはこれは不必要である。単にバスとロジックセルとの間の接続部セットおよびサブセットを配備することによって、もっと効率的な設計が可能であり得る。例えば、ロジックセル２０ａは、バスライン１２ａおよび１２ｃに接続可能な入力ノード４１ａ、ならびにバスライン１２ｂおよび１２ｎに接続可能な入力ノード４１ｂを有するように示されている。これに対して、ロジックセル２０ｂは、バスライン１２ａおよび１２ｂに接続可能な入力ノード４１ｃを有し、ノード４１ｄは、バスライン１２ｃおよび１２ｎに接続可能である。従って、ライン１２ａおよび１２ｂのデータのみをロジックセル２０への入力信号として用いてロジック機能が実行される場合は、この機能のためにはロジックセル２０ａが用いられ得る（そしてこのタスクのためにソフトウェアによって選択され得る）。ロジックセル２０ａを用いることによって、セルの入力４１ａはライン１２ａの入力信号を受け取ることができ、一方、入力４１ｂはライン１２ｂの入力信号を受け取ることができる。
図５に示す本発明のシステムの別の特徴は、バスライン自体に制御可能なドライバ回路を使用することである。バスラインが妨害されることなくチップ全体の表面を横切って曲がりくねって延びることが可能な場合は、セルの出力ドライバには非常に高い容量負荷がかかる。この高い容量により、入力信号を駆動するドライバが余分の電力を消費し、ドライバの動作が望ましくないほどに遅くなる結果となる。この問題を解決するために、バスラインに沿って選択された間隔でドライバ回路７０が配備される。入力バス１２に関連して図示しているが、同じ技法は出力バス１５においても用いられる。
図５では、これらのドライバ回路は、バスに沿って２つのロジックセル毎に配置されているように示されている。特定の設計においての実際のドライバ回路の数は、スペース、速度、および柔軟性の間のトレードオフによって決定される。
図５に示す実施形態では、いくつかのドライバ回路７０はプログラム可能にされ、他の回路７１はプログラム可能ではない。回路７１は常時オン状態で配備される。つまり、入力ノードに供給される信号がどのようなものであってもその信号が出力ノードで再生される。
しかし、回路７０はプログラマブルに制御可能にされ、制御可能なドライバ回路と同じ回路を用いることができる。回路７０のそれぞれは、上述の回路、例えば図２のドライバ回路５２および５３に類似する。回路を高インピーダンス状態にすることができるため、入力バス（または出力バス）をもっと小さな「部分」に分割することが可能である。例えば、バスライン１２ａの機能が、単に入力信号をロジックセル２０ａのノード４１ａに提供することである場合は、ドライバ回路７０ｄはオフにされ得る。これにより、バスライン１２ａを駆動するいかなる駆動回路であってもその駆動回路が、ドライバ回路７０ｄを超えたバスラインの余分の容量を駆動する必要がなくなる。さらに、バスライン１２ａのドライバ回路７０ｄを超えた部分を他の目的、例えば２つのロジックセル間の「ローカル」接続部として機能するように利用することが可能となる。
図６は、本発明のシステムのルーティング構造のさらに改良された例を示す。図６に示すように、ロジックセル２０からのいくつかの出力ノード４１ａは、出力バスライン１５ａへの専用の接続部を提供し得る。同時に、ロジックセルからの他の接続部、例えば、出力４１ｂは、制御可能なドライバ回路５３を用いて出力バスライン１５ｂへの制御可能またはプログラマブル接続部を提供し得る。これにより不必要なドライバ回路がなくなり、設計を提供されるロジック機能クラスに適合するように最適化することができる。本発明のシステムの典型的な具現例では、いくつかの接続部は、ノード４１ａに示すように、ドライバ回路を設けずに取り付けられ、一方、他の接続部は、ノード４１ｂにおいて示すように、プログラマブル接続部を用い得る。
図７は、図１に示すバス相互接続領域３０をもっと詳しく示したものである。同図は、３本の出力バスライン１５ａ、１５ｂ、および１５ｎ、ならびに５本の入力バスライン１２ａ、１２ｂ、１２ｃ、１２ｄ、および１２ｎを示す。上述のようなプログラマブルドライバ回路により、いかなる出力バスをいかなる入力バスに接続することも可能である。例えば、バスライン１５ｂの出力情報を入力バス１２ｄに供給することが所望されると仮定する。これを実現するためには、回路８０ｂがオンにプログラムされ、これによりノード８５でバス１５ｂの状態が複製される。さらに、回路８３ｄがオンにプログラムされ、これによりノード８５の状態が入力バス１２ｄに渡される。他のすべてのプログラマブルドライバ回路８３は、それぞれの高インピーダンス状態でオフにプログラムされ、ノード８５の情報が他のバスラインのいずれにも送られないようにされる。
また、例示として、出力バスライン１５ａが入力バスライン１２ａ、１２ｂ、．．．、１２ｎのいずれにも結合されないと仮定する。これを実現するためには、回路８０ａがすべての回路８２と共にオフにプログラムされ得る。これにより、出力バス１５ａが入力バス１２から隔離され得る。このようにして、所望の出力バスが所望の入力バスに結合され得る。
図８ａ、８ｂ、および８ｃは、本発明のシステムのルーティング構造の改良例を示す。本発明のシステムの上記の好適な実施形態では、バスは一方向である。このため、他の変更がなければ、例え最大級の柔軟性を有する場合でも、システムは各方向のバスを備える必要がある。例えば、入力バス１２は東向きの信号伝播を可能にするドライバ回路を備えたいくつかのライン、そして西向きの信号伝播を可能にするドライバ回路を備えたいくつかのラインを有することが必要である。図８ａは、信号を右側に伝播させるバスライン１２ａと信号を左側に伝播させるバスライン１２ｂとを有する１つの例を示す。
図８ｂは、制御可能なドライバ回路を使用してバスライン１２ａをもっと小さな領域にセグメント化し、これにより１つのラインの各部分を各方向に使用することが可能な、上記の技法の改変例を示す。図８ｂに示すように、いくつかの出力バス１５ａ、１５ｂ、１５ｃ、および１５ｄは接合位置３１、３２、３３、および３４で入力バス１２ａと交差する。これらの接合位置のそれぞれは、出力バスライン１５と入力バスライン１２との間の可能な相互接続を提供するために図７に示す接続構造を用い得る。しかし、図８ａの構造とは異なり、各接合部間に一対の制御可能なドライバ回路が配備される。例えば、接合部３１および３２間にはドライバ９２および９３が配備される。ドライバ回路のうちの一方をオンそして他方をオフにプログラムすることによって、信号はノード３１および３２間でいずれかの方向に伝播され得る。
図８ｃは１つの例を提供する。図８ｃでは、ライン１５ａの信号は入力バス１２ａ上を左側および右側の両方向に伝送されると仮定する。これを実現するためには、回路９１および９２がオンにプログラムされ、回路９０および９３はオフにプログラムされる。これにより、ライン１５ａの信号をノード３５および３２に供給することが可能になる。例示として、回路８８はオフにプログラムされており、これにより同じ双方向能力が、入力ラインと同様に出力ラインに提供され得る。
ドライバ回路９４、９５、９６、および９７はすべてオフにプログラムされており、これによりノード３２をノード３４から隔離する。当然ながら、ノードは、一対９４および９５または９６および９７のみをオフにプログラムすることによっても隔離され得る。出力バス１５ｄの信号を入力ライン１２ａ上で右側に供給することを可能にするためには、回路９８はオンにプログラムされ、回路９９はオフにプログラムされる。
図９は、本発明のシステムで用いられるロジックセルの好適な実施形態の概略図である。図１に関連して上述したように、ロジックセルは、入力バスからの入力信号に論理演算を行い、得られる出力信号を他のセルによって使用されるように、または集積回路によって他の電子装置に供給されるように、出力バス上に置くために使用される。
図９に示すように、この好適な実施形態では、ロジックセル２０は１８個までの入力信号１００、１０１、．．．、１１７を受け取り、これに応答して３個の出力信号１４０、１４１、および１４２を提供し得る。排他的ＯＲゲート１１９、ＡＮＤゲート１２０、１２１、および１２２、ならびにＯＲゲート１２８によって、組み合わせロジックが実行され得る。Ｄ型フリップフロップ１３３は、マルチプレクサ１３２の状態に依存して、入力信号または組み合わせロジックからの出力信号に連続ロジックを実行する能力を提供する。
図９では、各入力信号は、同図の右下部に示すように、排他的ＯＲゲートを用いて形成される極性制御（ＰＣ）回路を通して供給される。内部に「ＰＣ」と記した長方形の記号がこの極性制御接続を表しており、図面を簡略化するために用いられている。
図示した特定のロジックセルにより、グローバルまたはローカルのクロック選択が可能となり、これにより、ロジックセルのクロックレートを集積回路全体のクロックレートとは異なるようにすることができる。プログラマブル相互接続により、未使用の回路は電力を消費せず、しかもすべての入力に極性制御が提供される。
図示した特定のロジックセルは、桁繰り上げ付きの完全加算器、２ビット比較器、または４入力マルチプレクサなどを実現し、またその機能を果たすように最適化される。さらに、ロジックは、予めロード可能な左右シフトレジスタの単一段として、または４ビットの予めロード可能な同期アップ／ダウンカウンタの１つの段として容易に働き得る。
図１０は、本発明のプログラマブルロジックアーキテクチャーで用いられるロジックブロックの好適な実施形態の詳細回路図である。ロジックブロックは、概略的には、図１にブロック図の形態で示されるロジックブロック２０の好適な実施形態に対応する。概して、ロジックブロックは、プログラミングに依存して、潜在的に、同図の左端に沿った端子で１８個までの入力信号を受け取るように結合される。これに応答して、ロジックブロックは、同図の右端に沿った端子１４３、１４４、および１４５から３個までの出力信号を供給する。説明のために、ロジックブロックは、図１０を横断して延びる鎖線によって示されるように４つのセクションに分割されると考えられ得る。上部の２つのセクション１４６および１４７は、高レベルの機能を提供する。これについては後述する。第３のセクション１４８は多重化機能を提供し、下部セクション１４９は演算および比較機能を提供する。下部セクションの加算器は上部セクションに桁繰り上げを与えるかまたは、３つのビットを比較してすべてが同じかどうかを検出可能にし得る。
上部セクション１４６では、ロジックゲート１５１、１５２、１５３、および１５６はノードＡにＡＮＤ−ＯＲロジックを提供する。マルチプレクサ１７０、１７１、および１７２によってセクション１４７内のゲートのいくつかからのフィードバックが可能となる。これにより、セクション１４７に向かう入力信号のいくつかをセクション１４６にも提供することが可能となる。マルチプレクサ１５５はフィードバックマルチプレクサを提供し、ゲート１５６との組み合わせによりラッチ機能を提供することができる。フリップフロップ１５７からのフィードバック経路は、カウンタまたはシフタのためのロード機能を提供する。フリップフロップ自体は、ロジックブロックから外部の回路へのデータの流れを制御するための経路を提供する。フリップフロップがＤ型フリップフロップとして構成されると、これはシフトを提供する。Ｔ型フリップフロップとして構成されると、計数能力を提供する。
ロジックブロックの第２のセクション１４７は、上部セクションの機能を複製し、マルチプレクサ１５８およびＡＮＤゲート１５９を介してノードＣによって上部セクションに連結される。ロジックブロックの上部の２つのセクションをプログラム可能に結合することによって、ロジックブロック全体は２ビットカウンタを提供し得る。このカウンタは、他のロジックブロックによって提供される他のカウントと鎖状に結合されて、長いカウンタを形成することができる。ノードＣでの接続により上部ユニットがデータを下部ユニットにシフトさせることができる。
主にマルチプレクサ１６０よりなるロジックブロックの第３のセクション１４８は、入力信号サブセットに直線多重化機能（straight multiplexing function）を与えるようにプログラミングされ得る。
ロジックブロックの下部セクション１４９では、ゲート１６１、１６２、１６３、１６４、１６５、１６６、および１６７により、ノードＧで桁繰り上げビットを有する完全加算器が提供される。合計はノードＨに現れる。ゲート１６１および１６２により多重化が可能となり、ゲート１６３、１６８、および１６７により３ビット量の比較が可能となる。
図１０を通して、ＰＣと記された小長方形記号は、図９の挿入図に示されるゲート構造を用いて、信号に極性制御を提供する。また、図示するように、ロジックブロック内の各マルチプレクサは、１つまたは２つの制御ビットによって制御されるように接続される。これらはロジカル１またはロジカル０のいずれかであり得、これにより１つまたは２つのビット制御信号がマルチプレクサに提供され、マルチプレクサへの２つの入力ラインうちの１つ、または４つの入力ラインのうちの１つの選択が可能となる。選択されたラインがマルチプレクサの出力端子に結合される。
図１０に示すロジックブロックにより、ロジック機能セットを比較的容易に構成することができる。他のプログラマブルロジックデバイスアーキテクチャーによって行われる方法とは異なり、このアーキテクチャーは、全体的な完全な柔軟性および機能性を提供するのではなく、様々な機能を提供するように最適化される。比較的大きなロジックブロックを提供することによって、必要な接続は少なくなり、また全体の動作速度は速くなる。他のアーキテクチャーでは、多数の小さなロジックブロックが配備され、この結果ブロック間に多くの相互接続が必要となり、全体のシステム速度が低くなる。
図１１は、図１にブロック形態で示した全体的なプログラム可能ロジックデバイスチップの小部分を示すブロック図である。図１１の左縁に沿って、「垂直チャネル」と呼ばれる一連のラインが示されている。これらのラインは、これまでの図面で示された入力ルーティングチャネルまたはバス１２である。マルチプレクサ２００および２０１は、入力バスに結合され、ルーティングチャネル１２からロジックブロックの入力への接続を可能にする回路、ならびに、上述の入力極性制御機能を生成するために使用される回路を含む。ロジックブロックはマルチプレクサ２００および２０１の右側に示される。
ＡＮＤゲート２０２、２０３、および２０４、ＯＲゲート２０５、ならびにマルチプレクサ２０６よりなる、概略図の次の３つの部分は、ロジックブロック図である図１０の上部に示されるＡＮＤ−ＯＲ−マルチプレクサチェーンを表す。フリップフロップ２０７は、バス１５の１つのラインを駆動するための出力を生成するのに必要のなフリップフロップおよび回路を表す。図の次の４つのブロック２０８、２０９、２１０、および２１１は一方向リピータである。図には４つしか示していないが、所望数のリピータを用い得ることは明らかである。これらのリピータは、ゲート５３、６２、６５、６７、７０、７１、８０、８２、８３、または８４などを作成するために用いられ得るリピータである。例示として、抵抗器２１２および２１３はリピータ２０８および２０９に結合するように示されており、これらのリピータが他の回路の形態において駆動し得る負荷を表している。抵抗器自体はチップ上には製造されない。リピータ２１０および２１１はフィードバック経路を垂直チャネル１２に戻る方向に駆動する。したがって、これらは図７にノード８２で示すように、出力信号を入力バスに供給することを表す。
以上、本発明のシステムのプログラム可能ロジックの好適な実施形態について述べたが、上記の特定の詳細および構造の様々な変形例が具現化され得ることは理解され得る。従って、本発明の範囲は、添付の請求の範囲によって示される。
【図１】
0003774234.tif 000002
【図２】
0003774234.tif 000003
【図３】
0003774234.tif 000004
【図４】
0003774234.tif 000005
【図５】
0003774234.tif 000006
【図６】
0003774234.tif 000007
【図７】
0003774234.tif 000008
【図８Ａ】
0003774234.tif 000009
【図８Ｂ】
0003774234.tif 000010
【図８Ｃ】
0003774234.tif 000011
【図９】
0003774234.tif 000012
【図１０】
0003774234.tif 000013
【図１１】
0003774234.tif 000014