JP3774234B2 - 高速プログラマブルロジックアーキテクチャ - Google Patents
高速プログラマブルロジックアーキテクチャ Download PDFInfo
- Publication number
- JP3774234B2 JP3774234B2 JP53522297A JP53522297A JP3774234B2 JP 3774234 B2 JP3774234 B2 JP 3774234B2 JP 53522297 A JP53522297 A JP 53522297A JP 53522297 A JP53522297 A JP 53522297A JP 3774234 B2 JP3774234 B2 JP 3774234B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- logic
- output
- circuit
- signal
- 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 - Lifetime
Links
Images
Description
本発明は、プログラマブルロジックに関し、特に、アクティブドライバ回路を相互接続アレイにおいて使用する、高速プログラマブルロジックアーキテクチャに関する。
プログラマブルロジックデバイス(PLD)とは、回路の使用者がソフトウェア制御を使用して、回路が実施するロジック機能をカスタマイズすることが可能な、プログラマブル集積回路である。以前は小、中、および大規模集積回路によって実施されていたロジック機能は、現在では、プログラマブルロジックデバイスによって実施されることが可能である。PLDは、現在、集積回路ごとにおよそ50,000ゲートのオーダーの能力を有する。典型的なプログラマブルロジックデバイスが集積回路製造業者によって供給されるときには、それはまだいかなる具体的な機能も実施することができない。しかし、使用者は、同様に典型的にはプログラマブルロジックデバイス製造業者によって供給されるソフトウェアと組み合わせて、PLDをプログラムして、具体的な機能または使用者の用途に必要な機能を実施することが可能である。次いで、PLDは、あたかも専用のロジックチップが使用されたかのように、使用者によって設計された大きなシステムで機能することが可能である。この機能性によって、使用者は、カスタムチップまたはゲートアレイの時間または費用に委ねることなく、システムロジックをデバッグすることが可能である。この機能性によってまた、小規模な本番運転用およびハードウェアのカスタマイズを非常に具体的な用途に合わせることが可能である。幾つかのPLDでは、ロジックは「進行中に(on-the-fly)」変更されることが可能であり、それによりPLDは、システムの動作中、ある時に1つの機能を実施し、その後に別の機能を実施することが可能になる。
典型的なPLDは、同一のロジックセルのアレイから成る。このロジックセルは、個別にプログラムされることが可能であり、且つ任意に互いに相互接続されて内部入力および出力信号を与えることが可能であり、それにより非常に複雑な組み合わせの連続的なロジック機能の実施を可能にする。プログラムは、メモリセルなどのプログラム可能素子の状態を設定することによって、PLDにおいて実施される。
プログラマブルロジックアレイ(PLA)として公知のプログラマブルロジックの1つのタイプは、積和ロジックを実施するようにプログラムすることが可能な組合わせの二レベルAND/OR集積回路である。そのようなデバイスは、典型的には、プログラム可能にチップ入力信号に接続することが可能な入力端子を有するANDゲートの連続と、ANDゲートから出力信号を受信するためにプログラム可能に接続され得るORゲートの連続とから成る。
プログラマブルロジックデバイスの別のタイプは、プログラマブルアレイロジック(PAL)として公知である。PALは、固定したORアレイと双方向性の入力/出力ピンとを使用する。PALおよびPLAの両方の欠点は、それらがプログラムされ得る密度の欠如である。言い換えれば、アレイは多くのロジック機能を実施することが可能であるが、アレイの利用は望むほどには完全ではないということである。さらに、アレイの寸法は、そのプログラミング能力よりも速く増大する。
この課題に対する返答は、プログラマブルロジックデバイス内の「マクロセル」またはロジックブロックであった。マクロセルまたはロジックブロックは、多くの異なる機能を実施することが可能であり、且つ他のマクロセルまたはロジックブロックに選択的に相互接続可能なロジックの小区分である。これにより、プログラマブルロジックデバイス内のロジックは、ロジックの細片が他の細片と連絡する、より一層の粒状構造を想定することが可能になり、また、集積回路の全体的により効率的な利用を提供することが可能になる。ここでは、「プログラマブルロジックデバイス」という語句を用いて、プログラマブルアレイロジック、プログラマブルロジックアレイ、フィールドプログラマブルゲートアレイ、およびその他のタイプのプログラマブルロジックデバイスを集合的に呼ぶ。
現時点で利用可能な全てのプログラマブルロジックデバイスの顕著な欠点は、比較的速度が遅いことである。上記のプログラマブルロジックデバイスの全てにおいて、ANDならびにORアレイ内部の接続、およびマクロセルへのまたはマクロセルからの接続は、消去可能なプログラマブルリードオンリメモリセル、電気的に消去可能なリードオンリメモリセル、スタティックランダムアクセスメモリセル、ヒューズ、またはアンチヒューズ他を用いて行われる。これらの場合のそれぞれにおいて、相互接続アプローチは受動的である。すなわち、メモリセルまたは受容性の接続の状態は、それ自体が、2つのノード間の接続を行うまたは壊す他の任意の装置を制御するために使用される。
これらの接続の全ては、接続に提供された信号は単に接続を通過する(または接続が開いている場合には通過しない)という意味で、受動的である。その結果、プログラマブルロジックデバイスの全体的な速度は、下記に論じられる理由により制限される。現時点で利用可能な最も速い従来技術の大規模なフィールドプログラマブルゲートアレイでさえ、50mhzまたはそれより遅く動作する。幾つかの小さなトランジスタ−トランジスタロジック(TTL)デバイスは、100メガヘルツより高速で動作することが可能である。現時点では、誰も大規模高速アレイを製造していない。
従来技術のプログラマブルロジックデバイスの動作速度が比較的遅いことの主要な理由の1つは、相互接続システムに依存する抵抗である。相互接続システムは、プログラマブル「配線」であり、この配線によって、ロジック信号は集積回路チップを横切って伝搬される。この伝搬速度は、使用されるトランスファゲートがEPROMセル、SRAMセル、アンチヒューズ他として形成されていようと、トランスファゲートの直列抵抗によって制限される。その結果、従来技術のプログラマブルロジックデバイスの製造業者は、トランスファゲートに関する技術的な選択において、抵抗と容量との間の選択を余儀なくされてきた。
上記のように、典型的な従来技術のプログラマブルロジックデバイスでは、ロジックは、互いに連絡しているロジックブロックにおいて実施される。そのようなロジックブロックは、トランスファゲートと結合される場合には、接続ごとにほぼ1,000オームのオーダープラスドライバ回路の抵抗の有効な駆動抵抗を有する。例えばActel Corporationによって実施されているようなアンチヒューズ技術では、効果的な駆動抵抗は、接続ごとにほぼ50〜500オームのオーダーの抵抗プラスドライバ回路の抵抗である。後述するように、本発明のシステムの技術は、有効な駆動抵抗とは、単に、ドライバ回路の抵抗である。
発明の要旨
従来のプログラマブルロジックデバイスより実質的に高い速度で動作を行い得るプログラマブルロジックデバイスのためのアーキテクチャーを開発した。本発明のシステムの好適な実施形態では、該システムのプログラマブルロジック技法および現在利用可能なシリコン半導体技術を用いて、500mHzまでの速度が実現可能である。
本発明の1つの具現例では、ロジック機能が行われるロジックセルを含むプログラマブルロジック回路のためのルーティング構造が提供される。ルーティング構造は、ロジックセルによって処理される信号を供給する、ほぼ第1の方向に延びる入力ラインセットと、ロジックセルによって処理された信号を受け取る、ほぼ第2の方向に延びる出力ラインセットとを含む。入力ラインおよび出力ラインが交差する場所には、出力ラインセットのうちの選択されたラインと入力ラインセットのうちの選択されたラインとの間をプログラム可能に接続するか、または接続しないことにより、出力ラインに存在する信号を入力ラインのうちの所望のラインに配置させることができる、制御可能なアクティブドライバ回路を含む接合領域が確立される。制御可能なドライバ回路のそれぞれは、少なくとも、ドライバ回路がこれに供給される信号を複製するアクティブ状態かまたは、入力と出力との間に高インピーダンスを提供するパッシブ状態にされ得るバッファ回路である。典型的には、制御可能なドライバ回路は、セット内の各出力ラインを入力ラインセット内のいかなる所望のラインにも接続することができる。
別の実施形態では、本発明のシステムは、上述の構造と同様の構造を含むが、さらに、入力ラインおよび出力ラインのうちの所望のラインをロジックセルに選択的に相互接続する制御可能なドライバ回路セットを提供する。これにより、入力ラインに存在する入力信号を、ロジックセルの適切なノードに供給することができ、またロジックセルからの出力信号を他の所望のロジックセルまたは他の回路に供給することができる。
本発明のシステムに関連して、制御可能なドライバ回路はまた、集積回路のピンと入力および出力ラインセットとの間のインタフェース回路で用いられ得る。制御可能なドライバ回路により、集積回路のピンと入力および出力バスとの間の所望の接続が可能となり、これにより、チップのピンに存在する所望の信号を適切なロジックセルに供給し、同様にこれらロジックセルからの出力を適切なピンに印加することが可能となる。
本明細書で述べられる制御可能なドライバ回路などのアクティブ回路を使用することにより、本発明のシステムのプログラマブルロジックデバイスは、従来の装置より実質的に速く動作することが可能になる。従来技術の1993 semiconductor technologyを用いると、プログラマブルロジックデバイスが動作し得るクロック速度の上限は、50mHzである。本発明の技法を用いて製造されるプログラマブルロジックデバイスは、500mHzまでの速度で動作し得る。
【図面の簡単な説明】
図1は、本発明のプログラマブルロジックデバイスアーキテクチャを使用する集積回路の全体的なレイアウトのブロック図である。
図2は、入力信号を本発明のロジックセルに供給し、且つ出力信号をこのロジックセルから受信する方法を示す模式図である。
図3は、入力/出力バスと集積回路入力/出力ピンとを相互接続する回路の一実施形態を示す模式図である。
図4は、入力/出力バスと集積回路入力/出力ピンとを相互接続する回路の別の実施形態を示す模式図である。
図5は、ドライバ回路がどのようにして、ロジックセルと入力または出力バスとの間の相互接続の数を減少させる技術と共に、入力または出力バスにおいて使用され得るかを示す。
図6は、接続の数を減少させる別の技術を示す。
図7は、入力バスと出力バスとの間の相互接続を、例えばそれらが交差する位置で提供するために使用され得る回路の模式図である。
図8aは、2つの一方向性バスラインを示す。
図8bは、どちらの方向にでも一方向性にすることが可能なバスラインを示す。
図8cは、制御可能なドライバ回路を使用して分割されたバスラインを示す。
図9は、1つのロジックセルの回路の模式図である。
図10は、図1で使用されたロジックブロックの好適な実施形態の詳細な回路模式図である。そして、
図11は、図1においてブロック形式で示された、全体的なプログラマブルロジックデバイスの小部分のブロック図である。
具体的な実施形態の説明
図1は、本発明の好適な実施形態に従って製造された、高速プログラマブルロジックデバイスの全体的なレイアウトを示すブロック図である。図1に示すように、本デバイスは、ほぼ東西方向に配置されたルーティングチャネル12の第1のセットと、ほぼ南北方向に配置されたルーティングチャネル15の第2のセットと、ルーティングチャネルのマトリクス内部に配置された一連のロジックセル20とを含む。
プログラマブルロジックデバイスの動作の従来の方法では、ルーティングチャネルは、入力信号をロジックセルに供給し且つそこから出力信号を受信する、導体のバスを含む。しばしば、ロジックセルからの出力信号は、別のロジックセルへの入力信号として使用される。
周知のように、それぞれのロジックセルは、ロジックセルに供給される入力信号に対して、組合わせたまたは連続的な、あるいはその両方である、任意の所望の動作を実施する。ロジックセルによって実施される特定のロジック機能は、典型的には外部回路を使用してセルに「ロード」されるそのプログラム状態に依存する。この状態は、外部装置からの制御ビットを使用して規定され、マルチプレクサ、フリップフロップ、ゲート等を設定する。
図1の一般的なブロック図では、ロジックセル20は、バス12から入力信号を受信し、且つバス15に出力信号を供給する。入力信号は、バスから伝達されて導体23によってロジックセルに供給される。また、得られた出力信号は、導体27を使用して出力バス15に供給される。後述のように、これらの導体は、ロジックセルの入力ノードが入力データバス12において選択されたラインに接続されている、または切断されているという意味において、それ自体がプログラム可能であり得る。言うまでもなく、上述のように、入力データバス自体が、他のロジックセルからの出力情報を信号として搬送し得る。
入力データバスと出力データバスとの間の接続は、これらのバスが互いに交差する位置30において成され得る。バスは、図1の図面において互いに交差するように描写されているが、実際の実行では、それらは異なる金属層または他の導電性材料を使用して集積回路上に形成され、そしてそれらの間に電気的な接続が「プログラム」されない限り、互いに電気的に絶縁される。導体が交差領域30において互いに結合され得る方法は、さらに下記に説明される。
本発明の構造の利点は、本発明がモジュール式であるということである。破線40の内部に示すように、本発明の好適な実施形態では、本質的に集積回路領域の全てが、バス12および15、ロジックセル20、ならびにバス23および27の相互接続からなり、ロジックセルに信号を提供し、且つロジックセルから信号を受信する規則的なモジュール40によって使い尽くされる。このモジュール式構造は、集積回路の効率的なレイアウトを容易にする。
図に示すように、このようにして、ロジックセルのそれぞれの出力は、チップのレイアウトの垂直方向の全長に亘って延びる。出力バスは、ロジックセルの片側にのみ沿って延び、そしてチップの縁で止まる。しかし、入力バスは、集積回路の周囲を「包み込む」。例えば、バス12aと12bとは、回路の東端または西端で接続される。この方法では、入力バスは、回路全体の表面全域に亘って蛇行して(曲がりくねって)延びる。このようにして、バス12aがチップの東側の縁または西側の縁のいずれかにおいてバス12bに接続され、次いで、バス12bが反対側等の縁においてバス12cに結合される。
入力および出力バスは、好適には一方向性である。例えば、エミッタ結合論理(ECL)の実施では、または相補型MOS(CMOS)の実施では、バスは、最も短いセグメントでは一方向性であるが、セグメントを後述のように互いに絶縁することによって、共通バスの異なるセグメントでは双方向性にされることが可能である。バスの長さ、入力/出力信号の強度、およびその他の要素に依存して、バス内部に「リピータ」を使用することが望ましくあり得る。これらのリピータは、回路の容量を絶縁するための小さな増幅器から成り、それにより信号伝搬の遅延を減少させ、全体的なシステムの速度を向上させる。
図2は、ロジックセル20とその入力バス23との間、およびロジックセル20とその出力バス27との間の相互接続システムのより詳細な図である。任意の所望の数の入力および出力が、ロジックセルに提供され、且つロジックセルから提供されることが理解されるべきである。図2の図面は、これらの相互接続の形成および接続のプログラマブル制御への一般的なアプローチを示す。
図2に示すように、入力バス12は、制御可能なドライバ回路52および58を使用して、ロジックセルの入力ノード41に選択的に接続され得る一連の導体を有する。図面は、バス12のそれぞれの導電線が入力ノード41に別個に接続可能であるように示しているが、これは、例示のみを目的とするものである。本発明の回路の実際の実施では、下記のロジックセルの製造についての議論と関連して明らかになるように、それぞれの入力ノードは、バス上の全てのラインに接続される必要はない。
いずれにしても、図面では、バス12のそれぞれのバスラインは、ドライバ回路を介して別個に接続される。ドライバ回路は、ライン54上のそれに供給される入力信号の制御を受けて動作する、プログラム可能な三状態バッファとして機能する。ライン54は、レジスタまたはその他の手段に結合される。レジスタまたはその他の手段の内部には、プログラマブルロジックデバイス全体を制御するプログラムが記憶される。このレジスタ、メモリ、ヒューズまたはその他の手段内の別個のビットは、図2の図面のプログラマブル接続の対応する1つを制御するために使用される。他のビットは、プログラマブルロジックデバイスの他の場所の他のプログラマブル接続を制御するために使用される。このようにして、制御メモリは、典型的には、制御されるプログラマブル接続と同じ数の、メモリに記憶されるビットを有する。言うまでもなく、2つの構成は互いに排他的であり且つ1つが、あるいは1つだけが、常に提供される場合には、単一のビットの相補的な状態が2つの構成を制御することが可能である。メモリビットの制御下では、回路52aは、アクティブまたは高インピーダンス状態のいずれかである。入力54aが使用可能である場合には、回路52aは、その入力ノード57aに結合された信号を繰り返す。言い換えれば、ロジカル1がバス12の導体12a上に存在するならば、ドライバ52aの入力ノード57aは、ロジカル1である。制御ライン54aが使用可能であると仮定すると、ドライバ52aからの出力もまたロジカル1である。言うまでもなく、同一の条件が、ロジカル0が導体12a上に存在する場合に当てはまる。ドライバ52のそれぞれが、同じ方法で機能する。
これに対して、制御ライン54が使用可能でない場合には、ドライバ回路は、高インピーダンス状態を提供し、且つ開路として機能的に作用する。言い換えれば、ノード55は、バス12から完全に切断される。これにより、入力ノード41は、その入力ノードがバス12から信号を受信するものでない場合には、バス12から切断されることが可能になる。
本発明の幾つかの実施形態では、別のドライバ回路58がノード55とノード41との間に設けられる。この追加の回路を、入力ノード41への容量性の負荷を減少させるのを補助するために使用することが可能である。図2には示していないが、ロジックセル20への他の入力ノードのそれぞれは、同様に入力信号バス12に結合される。
出力信号バス15は、同様の技術を使用して、ロジックセル20に結合される。図に示すように、ロジックセルは、任意のドライバ回路59に供給される出力ノード48を設ける。回路59は、回路58と同じ理由から、すなわちロジックセルへの容量性の負荷および回路要件を減少させるために設けられる。大容量を駆動するのに十分な出力駆動電力を有するロジックセルに関しては、ドライバ回路59は不要である。
回路59からの出力は、それぞれが対応するライン51に供給される情報を使用してプログラム制御下で動作する、ドライバ回路53の入力に結合される。ライン51は、単一のシフトレジスタ素子、メモリセル、またはその他の記憶部に接続され得る。制御可能なドライバ回路53は、回路52と同じ方法で機能する。すなわち、ドライバ回路53は、それらの入力ノードにおいて提供された信号を有する対応する出力バスラインを駆動するか、または高インピーダンス条件を出力バスに提供するかのいずれかである。高インピーダンス状態では、ロジックセルによって供給される信号が特定のバス導体の状態に影響を及ぼすことは防がれる。このように、全体的な出力接続27(図1に示す)は、入力接続23(図1に示す)の逆である。
本発明の別の実施形態では、回路52、53、58、および59は、マルチプレクサに置き換えることが可能である。この場合、制御ライン51および54は、制御信号を供給してマルチプレクサ入力ラインの中から選択して、適切な1つをロジックセルに接続する。
図3は、本プログラマブルロジックデバイスの好適な実施形態のルーティング構造をさらに詳細に示す。図3に示されているのは、集積回路の入力/出力ピンにおいて提供された信号が、プログラマブルロジックデバイスの相互接続する入力バスおよび出力バスに供給され、また、そこから受信される方法である。図3に示すように、2つの例I/Oピン60および61は、同様に回路62を介して、入力/出力バス12または15に接続される。図面では、バスは南北方向に延びて示されているが、描写された回路は、バスが入力バス12であろうと出力バス15であろうと、同じ機能を実施することが可能であることが理解されるべきである。さらに、それぞれの入力/出力パッド60を、単に図3に示された構造を繰り返すことによって、入力バスおよび出力バスの両方に結合することが可能である。このように、入力接続60を、ドライバ回路62a、62b、…を介してライン12の任意の1つに接続することが可能である。これにより、パッド60において提供される入力信号を、集積回路のロジックセルの任意の1つに供給するバス12に配置することが可能になる。同様に、出力ドライバ回路64a、64b、等により、バス上で提供される信号をバスから出力パッドへ伝達することが可能になる。上述のように、描写された構造は出力バスのみを示すが、図3の全構造を繰り返して入力バスへの接続を実現することが可能である。言うまでもなく、所望の数の多くの入力および出力ピンが使用され得る。
図4は、入力/出力パッドとバスとの間の相互接続への別のアプローチを示す図である。図4に示すように、入力バス12aおよび12bは、入力/出力パッド60および61を通過して蛇行して延びる。対照的に、出力バス15aおよび15bは、I/Oパッド60および61を垂直方向に通過する。I/Oパッド60を、プログラマブルドライバ65aを使用して、出力バス15aを選択的に接続することが可能である。また、I/Oパッド60および61を、ドライバ65bを介してバス12aに、そしてドライバ65cを介してバス12bに選択的に接続することも可能である。同様の方法で、入力/出力パッド61を、ドライバ67aを用いて出力バス15bを駆動するように接続されることが可能であり、且つドライバ67bおよび67cをそれぞれ使用して、バスライン12aまたはバスライン12bのいずれかから信号を受信するように接続されることが可能である。この構成では、入力はセル出力のように作用し、異なって見られるバス15の一部になり、そしてチップへの入力パッドをチップの外部ソースからの出力と見なすことが可能である。
図5は、本発明のシステムの入力および出力バスの別の局面を示す。図5に示すように、バス12、例えば入力バスは、同図の上部を横断して延びる。入力バス12は、図2に示すのと同じ技法を用いてロジックセル20に結合される。しかし、簡単のために、入力バス12とロジックセル20との間のローカルバス23内のドライバ回路は図示されていない。これらは上述の方法で配備される。
また、例示として、ロジックセル20への入力端子41は、入力バス12のすべてのラインに接続可能ではないように示されている。各入力ラインと各ロジックセルの各入力ノードとの間にそれぞれ接続部を配備することが望ましいが、実際にはこれは不必要である。単にバスとロジックセルとの間の接続部セットおよびサブセットを配備することによって、もっと効率的な設計が可能であり得る。例えば、ロジックセル20aは、バスライン12aおよび12cに接続可能な入力ノード41a、ならびにバスライン12bおよび12nに接続可能な入力ノード41bを有するように示されている。これに対して、ロジックセル20bは、バスライン12aおよび12bに接続可能な入力ノード41cを有し、ノード41dは、バスライン12cおよび12nに接続可能である。従って、ライン12aおよび12bのデータのみをロジックセル20への入力信号として用いてロジック機能が実行される場合は、この機能のためにはロジックセル20aが用いられ得る(そしてこのタスクのためにソフトウェアによって選択され得る)。ロジックセル20aを用いることによって、セルの入力41aはライン12aの入力信号を受け取ることができ、一方、入力41bはライン12bの入力信号を受け取ることができる。
図5に示す本発明のシステムの別の特徴は、バスライン自体に制御可能なドライバ回路を使用することである。バスラインが妨害されることなくチップ全体の表面を横切って曲がりくねって延びることが可能な場合は、セルの出力ドライバには非常に高い容量負荷がかかる。この高い容量により、入力信号を駆動するドライバが余分の電力を消費し、ドライバの動作が望ましくないほどに遅くなる結果となる。この問題を解決するために、バスラインに沿って選択された間隔でドライバ回路70が配備される。入力バス12に関連して図示しているが、同じ技法は出力バス15においても用いられる。
図5では、これらのドライバ回路は、バスに沿って2つのロジックセル毎に配置されているように示されている。特定の設計においての実際のドライバ回路の数は、スペース、速度、および柔軟性の間のトレードオフによって決定される。
図5に示す実施形態では、いくつかのドライバ回路70はプログラム可能にされ、他の回路71はプログラム可能ではない。回路71は常時オン状態で配備される。つまり、入力ノードに供給される信号がどのようなものであってもその信号が出力ノードで再生される。
しかし、回路70はプログラマブルに制御可能にされ、制御可能なドライバ回路と同じ回路を用いることができる。回路70のそれぞれは、上述の回路、例えば図2のドライバ回路52および53に類似する。回路を高インピーダンス状態にすることができるため、入力バス(または出力バス)をもっと小さな「部分」に分割することが可能である。例えば、バスライン12aの機能が、単に入力信号をロジックセル20aのノード41aに提供することである場合は、ドライバ回路70dはオフにされ得る。これにより、バスライン12aを駆動するいかなる駆動回路であってもその駆動回路が、ドライバ回路70dを超えたバスラインの余分の容量を駆動する必要がなくなる。さらに、バスライン12aのドライバ回路70dを超えた部分を他の目的、例えば2つのロジックセル間の「ローカル」接続部として機能するように利用することが可能となる。
図6は、本発明のシステムのルーティング構造のさらに改良された例を示す。図6に示すように、ロジックセル20からのいくつかの出力ノード41aは、出力バスライン15aへの専用の接続部を提供し得る。同時に、ロジックセルからの他の接続部、例えば、出力41bは、制御可能なドライバ回路53を用いて出力バスライン15bへの制御可能またはプログラマブル接続部を提供し得る。これにより不必要なドライバ回路がなくなり、設計を提供されるロジック機能クラスに適合するように最適化することができる。本発明のシステムの典型的な具現例では、いくつかの接続部は、ノード41aに示すように、ドライバ回路を設けずに取り付けられ、一方、他の接続部は、ノード41bにおいて示すように、プログラマブル接続部を用い得る。
図7は、図1に示すバス相互接続領域30をもっと詳しく示したものである。同図は、3本の出力バスライン15a、15b、および15n、ならびに5本の入力バスライン12a、12b、12c、12d、および12nを示す。上述のようなプログラマブルドライバ回路により、いかなる出力バスをいかなる入力バスに接続することも可能である。例えば、バスライン15bの出力情報を入力バス12dに供給することが所望されると仮定する。これを実現するためには、回路80bがオンにプログラムされ、これによりノード85でバス15bの状態が複製される。さらに、回路83dがオンにプログラムされ、これによりノード85の状態が入力バス12dに渡される。他のすべてのプログラマブルドライバ回路83は、それぞれの高インピーダンス状態でオフにプログラムされ、ノード85の情報が他のバスラインのいずれにも送られないようにされる。
また、例示として、出力バスライン15aが入力バスライン12a、12b、...、12nのいずれにも結合されないと仮定する。これを実現するためには、回路80aがすべての回路82と共にオフにプログラムされ得る。これにより、出力バス15aが入力バス12から隔離され得る。このようにして、所望の出力バスが所望の入力バスに結合され得る。
図8a、8b、および8cは、本発明のシステムのルーティング構造の改良例を示す。本発明のシステムの上記の好適な実施形態では、バスは一方向である。このため、他の変更がなければ、例え最大級の柔軟性を有する場合でも、システムは各方向のバスを備える必要がある。例えば、入力バス12は東向きの信号伝播を可能にするドライバ回路を備えたいくつかのライン、そして西向きの信号伝播を可能にするドライバ回路を備えたいくつかのラインを有することが必要である。図8aは、信号を右側に伝播させるバスライン12aと信号を左側に伝播させるバスライン12bとを有する1つの例を示す。
図8bは、制御可能なドライバ回路を使用してバスライン12aをもっと小さな領域にセグメント化し、これにより1つのラインの各部分を各方向に使用することが可能な、上記の技法の改変例を示す。図8bに示すように、いくつかの出力バス15a、15b、15c、および15dは接合位置31、32、33、および34で入力バス12aと交差する。これらの接合位置のそれぞれは、出力バスライン15と入力バスライン12との間の可能な相互接続を提供するために図7に示す接続構造を用い得る。しかし、図8aの構造とは異なり、各接合部間に一対の制御可能なドライバ回路が配備される。例えば、接合部31および32間にはドライバ92および93が配備される。ドライバ回路のうちの一方をオンそして他方をオフにプログラムすることによって、信号はノード31および32間でいずれかの方向に伝播され得る。
図8cは1つの例を提供する。図8cでは、ライン15aの信号は入力バス12a上を左側および右側の両方向に伝送されると仮定する。これを実現するためには、回路91および92がオンにプログラムされ、回路90および93はオフにプログラムされる。これにより、ライン15aの信号をノード35および32に供給することが可能になる。例示として、回路88はオフにプログラムされており、これにより同じ双方向能力が、入力ラインと同様に出力ラインに提供され得る。
ドライバ回路94、95、96、および97はすべてオフにプログラムされており、これによりノード32をノード34から隔離する。当然ながら、ノードは、一対94および95または96および97のみをオフにプログラムすることによっても隔離され得る。出力バス15dの信号を入力ライン12a上で右側に供給することを可能にするためには、回路98はオンにプログラムされ、回路99はオフにプログラムされる。
図9は、本発明のシステムで用いられるロジックセルの好適な実施形態の概略図である。図1に関連して上述したように、ロジックセルは、入力バスからの入力信号に論理演算を行い、得られる出力信号を他のセルによって使用されるように、または集積回路によって他の電子装置に供給されるように、出力バス上に置くために使用される。
図9に示すように、この好適な実施形態では、ロジックセル20は18個までの入力信号100、101、...、117を受け取り、これに応答して3個の出力信号140、141、および142を提供し得る。排他的ORゲート119、ANDゲート120、121、および122、ならびにORゲート128によって、組み合わせロジックが実行され得る。D型フリップフロップ133は、マルチプレクサ132の状態に依存して、入力信号または組み合わせロジックからの出力信号に連続ロジックを実行する能力を提供する。
図9では、各入力信号は、同図の右下部に示すように、排他的ORゲートを用いて形成される極性制御(PC)回路を通して供給される。内部に「PC」と記した長方形の記号がこの極性制御接続を表しており、図面を簡略化するために用いられている。
図示した特定のロジックセルにより、グローバルまたはローカルのクロック選択が可能となり、これにより、ロジックセルのクロックレートを集積回路全体のクロックレートとは異なるようにすることができる。プログラマブル相互接続により、未使用の回路は電力を消費せず、しかもすべての入力に極性制御が提供される。
図示した特定のロジックセルは、桁繰り上げ付きの完全加算器、2ビット比較器、または4入力マルチプレクサなどを実現し、またその機能を果たすように最適化される。さらに、ロジックは、予めロード可能な左右シフトレジスタの単一段として、または4ビットの予めロード可能な同期アップ/ダウンカウンタの1つの段として容易に働き得る。
図10は、本発明のプログラマブルロジックアーキテクチャーで用いられるロジックブロックの好適な実施形態の詳細回路図である。ロジックブロックは、概略的には、図1にブロック図の形態で示されるロジックブロック20の好適な実施形態に対応する。概して、ロジックブロックは、プログラミングに依存して、潜在的に、同図の左端に沿った端子で18個までの入力信号を受け取るように結合される。これに応答して、ロジックブロックは、同図の右端に沿った端子143、144、および145から3個までの出力信号を供給する。説明のために、ロジックブロックは、図10を横断して延びる鎖線によって示されるように4つのセクションに分割されると考えられ得る。上部の2つのセクション146および147は、高レベルの機能を提供する。これについては後述する。第3のセクション148は多重化機能を提供し、下部セクション149は演算および比較機能を提供する。下部セクションの加算器は上部セクションに桁繰り上げを与えるかまたは、3つのビットを比較してすべてが同じかどうかを検出可能にし得る。
上部セクション146では、ロジックゲート151、152、153、および156はノードAにAND−ORロジックを提供する。マルチプレクサ170、171、および172によってセクション147内のゲートのいくつかからのフィードバックが可能となる。これにより、セクション147に向かう入力信号のいくつかをセクション146にも提供することが可能となる。マルチプレクサ155はフィードバックマルチプレクサを提供し、ゲート156との組み合わせによりラッチ機能を提供することができる。フリップフロップ157からのフィードバック経路は、カウンタまたはシフタのためのロード機能を提供する。フリップフロップ自体は、ロジックブロックから外部の回路へのデータの流れを制御するための経路を提供する。フリップフロップがD型フリップフロップとして構成されると、これはシフトを提供する。T型フリップフロップとして構成されると、計数能力を提供する。
ロジックブロックの第2のセクション147は、上部セクションの機能を複製し、マルチプレクサ158およびANDゲート159を介してノードCによって上部セクションに連結される。ロジックブロックの上部の2つのセクションをプログラム可能に結合することによって、ロジックブロック全体は2ビットカウンタを提供し得る。このカウンタは、他のロジックブロックによって提供される他のカウントと鎖状に結合されて、長いカウンタを形成することができる。ノードCでの接続により上部ユニットがデータを下部ユニットにシフトさせることができる。
主にマルチプレクサ160よりなるロジックブロックの第3のセクション148は、入力信号サブセットに直線多重化機能(straight multiplexing function)を与えるようにプログラミングされ得る。
ロジックブロックの下部セクション149では、ゲート161、162、163、164、165、166、および167により、ノードGで桁繰り上げビットを有する完全加算器が提供される。合計はノードHに現れる。ゲート161および162により多重化が可能となり、ゲート163、168、および167により3ビット量の比較が可能となる。
図10を通して、PCと記された小長方形記号は、図9の挿入図に示されるゲート構造を用いて、信号に極性制御を提供する。また、図示するように、ロジックブロック内の各マルチプレクサは、1つまたは2つの制御ビットによって制御されるように接続される。これらはロジカル1またはロジカル0のいずれかであり得、これにより1つまたは2つのビット制御信号がマルチプレクサに提供され、マルチプレクサへの2つの入力ラインうちの1つ、または4つの入力ラインのうちの1つの選択が可能となる。選択されたラインがマルチプレクサの出力端子に結合される。
図10に示すロジックブロックにより、ロジック機能セットを比較的容易に構成することができる。他のプログラマブルロジックデバイスアーキテクチャーによって行われる方法とは異なり、このアーキテクチャーは、全体的な完全な柔軟性および機能性を提供するのではなく、様々な機能を提供するように最適化される。比較的大きなロジックブロックを提供することによって、必要な接続は少なくなり、また全体の動作速度は速くなる。他のアーキテクチャーでは、多数の小さなロジックブロックが配備され、この結果ブロック間に多くの相互接続が必要となり、全体のシステム速度が低くなる。
図11は、図1にブロック形態で示した全体的なプログラム可能ロジックデバイスチップの小部分を示すブロック図である。図11の左縁に沿って、「垂直チャネル」と呼ばれる一連のラインが示されている。これらのラインは、これまでの図面で示された入力ルーティングチャネルまたはバス12である。マルチプレクサ200および201は、入力バスに結合され、ルーティングチャネル12からロジックブロックの入力への接続を可能にする回路、ならびに、上述の入力極性制御機能を生成するために使用される回路を含む。ロジックブロックはマルチプレクサ200および201の右側に示される。
ANDゲート202、203、および204、ORゲート205、ならびにマルチプレクサ206よりなる、概略図の次の3つの部分は、ロジックブロック図である図10の上部に示されるAND−OR−マルチプレクサチェーンを表す。フリップフロップ207は、バス15の1つのラインを駆動するための出力を生成するのに必要のなフリップフロップおよび回路を表す。図の次の4つのブロック208、209、210、および211は一方向リピータである。図には4つしか示していないが、所望数のリピータを用い得ることは明らかである。これらのリピータは、ゲート53、62、65、67、70、71、80、82、83、または84などを作成するために用いられ得るリピータである。例示として、抵抗器212および213はリピータ208および209に結合するように示されており、これらのリピータが他の回路の形態において駆動し得る負荷を表している。抵抗器自体はチップ上には製造されない。リピータ210および211はフィードバック経路を垂直チャネル12に戻る方向に駆動する。したがって、これらは図7にノード82で示すように、出力信号を入力バスに供給することを表す。
以上、本発明のシステムのプログラム可能ロジックの好適な実施形態について述べたが、上記の特定の詳細および構造の様々な変形例が具現化され得ることは理解され得る。従って、本発明の範囲は、添付の請求の範囲によって示される。
Claims (8)
- プログラマブルロジック回路のためのルーティング構造であって、該ロジック回路は、ロジック機能が行われるロジックセルを含み、
該ロジックセルによって処理される信号を供給する入力ラインセットであって、各入力ラインはほぼ第1の方向に延びる入力ラインセットと、
該ロジックセルによって処理された信号を受け取る出力ラインセットであって、各出力ラインは該第1の方向に平行ではないほぼ第2の方向に延び、これにより該入力ラインと該出力ラインとが接合領域で交差する、出力ラインセットと、を備え、
該接合領域のそれぞれは、複数の制御可能なドライバ回路を含み、該ドライバ回路のそれぞれは、該出力ラインセットのうちの選択されたラインと該入力ラインセットのうちの選択されたラインとの間に接続され、これにより、該出力ライン上に存在する信号を該入力ラインセットのうちの所望のライン上に置くことが可能となり、
該制御可能なドライバ回路のそれぞれは、少なくとも、該制御可能なドライバ回路が供給される信号を複製するアクティブ状態、および該制御可能なドライバ回路が入力と出力との間に高インピーダンスを提供するパッシブ状態に置かれ得るバッファ回路を備え、
前記プログラマブルロジック回路のためのルーティング構造は、
前記出力ラインと前記制御可能なドライバ回路との間を結合し、該出力ラインの信号を、該制御可能なドライバ回路に供給する前に増幅する別の制御可能なドライバ回路をさらに備えた、プログラマブルロジック回路のためのルーティング構造。 - 制御可能なドライバ回路により、前記出力ラインセットの各出力ラインは、前記入力ラインセットのうちの所望のラインに接続することが可能となる、請求項1に記載のプログラマブルロジック回路のためのルーティング構造。
- 前記プログラマブルロジック回路は集積回路上で具体化される、請求項1に記載のプログラマブルロジック回路のためのルーティング構造。
- 信号を前記ロジックセルに供給する前記入力ラインセットは、前記集積回路上を曲がりくねって延びて、該ロジックセルの近くに配置される、請求項3に記載のプログラマブルロジック回路のためのルーティング構造。
- 前記ロジックセルからの信号を受け取る前記出力ラインセットは、前記集積回路上を曲がりくねって延びて、該ロジックセルの近くに配置される、請求項3に記載のプログラマブルロジック回路のためのルーティング構造。
- 前記バッファ回路のそれぞれは、供給される制御信号および入力信号に応答して、3つの動作のうちの1つを行うプログラマブル3状態回路を備えている、請求項1に記載のプログラマブルロジック回路のためのルーティング構造。
- 前記3つの動作は、ロジカル1を提供すること、ロジカルゼロを提供すること、および高インピーダンスを提供することを包含する、請求項6に記載のプログラマブルロジック回路のためのルーティング構造。
- それぞれが入力ノードおよび出力ノードを有し、該入力ノードに供給される信号にロジック機能を行って得られる出力信号を該出力ノードに供給するロジックセル群と、
該ロジックセルに入力信号を供給する入力ラインセットと、
該ロジックセルから該出力信号を受け取る出力ラインセットと、
該入力ラインのうちの所望のラインを該ロジックセルの該入力ノードに選択的に相互接続し、かつ、該出力ラインのうちの所望のラインを該ロジックセルの該出力ノードに選択的に相互接続するように配置された制御可能なドライバ回路セットと、
前記出力ノードと前記制御可能なドライバ回路セットとの間を結合し、該出力ノードの信号を、該制御可能なドライバ回路セットに供給する前に増幅する別の制御可能なドライバ回路と、を備え、
該制御可能なドライバ回路セットのそれぞれは、少なくとも、該制御可能なドライバ回路が供給される信号を複製するアクティブ状態、および該制御可能なドライバ回路が入力と出力との間に高インピーダンスを提供するパッシブ状態に置かれ得るバッファ回路を備えている、プログラマブルロジック回路のためのアーキテクチャー。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US1996/004409 WO1997037431A1 (en) | 1994-01-27 | 1996-03-29 | High speed programmable logic architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000507774A JP2000507774A (ja) | 2000-06-20 |
JP3774234B2 true JP3774234B2 (ja) | 2006-05-10 |
Family
ID=22254910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP53522297A Expired - Lifetime JP3774234B2 (ja) | 1996-03-29 | 1996-03-29 | 高速プログラマブルロジックアーキテクチャ |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP0913032A4 (ja) |
JP (1) | JP3774234B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6882555B2 (en) * | 2003-06-18 | 2005-04-19 | Lattice Semiconductor Corporation | Bi-directional buffering for memory data lines |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5504440A (en) * | 1994-01-27 | 1996-04-02 | Dyna Logic Corporation | High speed programmable logic architecture |
DE69525741D1 (de) * | 1994-04-14 | 2002-04-11 | Btr Inc | Architektur und verbindungsschema für programmierbare logische schaltungen |
-
1996
- 1996-03-29 EP EP96912515A patent/EP0913032A4/en not_active Withdrawn
- 1996-03-29 JP JP53522297A patent/JP3774234B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0913032A4 (en) | 2001-03-14 |
JP2000507774A (ja) | 2000-06-20 |
EP0913032A1 (en) | 1999-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5504440A (en) | High speed programmable logic architecture | |
US5742179A (en) | High speed programmable logic architecture | |
US5600265A (en) | Programmable interconnect architecture | |
US5371422A (en) | Programmable logic device having multiplexers and demultiplexers randomly connected to global conductors for interconnections between logic elements | |
US5399922A (en) | Macrocell comprised of two look-up tables and two flip-flops | |
US6181160B1 (en) | Programmable logic device with hierarchical interconnection resources | |
US5187393A (en) | Reconfigurable programmable interconnect architecture | |
US5818254A (en) | Multi-tiered hierarchical high speed switch matrix structure for very high-density complex programmable logic devices | |
US6567969B1 (en) | Configurable logic array including lookup table means for generating functions of different numbers of input terms | |
US5509128A (en) | FPGA architecture including direct logic function circuit to I/O interconnections | |
US6650142B1 (en) | Enhanced CPLD macrocell module having selectable bypass of steering-based resource allocation and methods of use | |
US6246259B1 (en) | High-speed programmable logic architecture having active CMOS device drivers | |
US7573297B1 (en) | Flexible macrocell interconnect | |
US5656950A (en) | Interconnect lines including tri-directional buffer circuits | |
US6275065B1 (en) | Programmable logic integrated circuit architecture incorporating a lonely register | |
US6798242B2 (en) | Programmable logic device with hierarchical interconnection resources | |
US6748577B2 (en) | System for simplifying the programmable memory to logic interface in FPGA | |
US5172014A (en) | Programmable interconnect architecture | |
US20010043083A1 (en) | Programmable logic array integrated circuits with blocks of logic regions grouped into super-blocks | |
US5614844A (en) | High speed programmable logic architecture | |
US6873182B2 (en) | Programmable logic devices having enhanced cascade functions to provide increased flexibility | |
JPH06318638A (ja) | プログラマブル論理アレイ集積回路 | |
GB2300951A (en) | Programmable logic array with overlapping interconnection conductors | |
US20080197905A1 (en) | Field-programmable gate array low voltage differential signaling driver utilizing two complimentary output buffers | |
US5463328A (en) | Expanded programmable logic architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050607 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050804 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050804 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050906 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050922 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20051017 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051115 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051206 |
|
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: 20060131 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060217 |
|
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: 20090224 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100224 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100224 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110224 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120224 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130224 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130224 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140224 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |