(57)【特許請求の範囲】
【請求項１】
プログラマブルロジック集積回路装置であって、
複数のプログラマブルロジックの領域の複数の行と複数の列とが交差する二次元配列で、該装置に配置された複数のプログラマブルロジックの領域と、
該複数の領域の該複数の行のうちの２つの行の間に配置された行において該装置に配置された入力／出力回路の複数のセルと
を備え、
該複数のセルのそれぞれの回路は、該装置の入力／出力ピンを含み、該入力／出力ピンのうちの少なくともいくつかは、該装置の中央に隣接して配置されている、プログラマブルロジック集積回路装置。
【請求項２】
前記複数のセルの少なくともいくつかは、前記複数の領域の前記複数の行のうちの１つの行の領域に関連付けられており、該複数の領域間の該複数のセルの行は、該関連付けられたセルと該複数の領域との間で延びる複数のコンダクタによって配置されており、該複数のコンダクタは、該関連付けられた領域から該関連付けられたセルにの出力信号を搬送するように構成されている、請求項１に記載の装置。
【請求項３】
プログラマブルロジック集積回路装置であって、
複数のプログラマブルロジックの領域の複数の行と複数の列とが交差する二次元配列で、該装置に配置された複数のプログラマブルロジックの領域と、
該複数の行に垂直に延び、該複数の行の中間点に隣接する複数の信号コンダクタと、
該複数の信号コンダクタから分岐する複数の分岐コンダクタであって、該複数の行のそれぞれに隣接し、かつ、該隣接する行に沿って延び、各行に隣接する該複数の分岐コンダクタは、該複数の信号コンダクタから該隣接する行の領域に信号を搬送するように構成されている、複数の分岐コンダクタと、
該装置の中央に隣接して配置された複数の入力ピンであって、該装置の外部の回路から受信された信号を該複数の信号コンダクタにそれぞれ供給するように構成されている、複数の入力ピンと
を備えた、プログラマブルロジック集積回路装置。
【請求項４】
前記複数の領域のそれぞれは、前記複数の分岐コンダクタを介して受信された信号をクロック信号として用いるように構成されている、請求項３に記載の装置。
【請求項５】
前記複数のロジック領域の前記複数の行のうちの２つの行の間に配置された行において前記装置に配置された複数の入力／出力セルをさらに備え、該複数の入力／出力セルのそれぞれはまた、前記複数の分岐コンダクタを介して前記複数の信号コンダクタから信号を受信する、請求項３に記載の装置。
【請求項６】
前記複数の入力／出力セルのそれぞれは、前記複数の分岐コンダクタを介して受信される信号をクロック信号として用いるように構成されている、請求項５に記載の装置。
【請求項７】
前記複数の入力／出力セルのそれぞれは、
入力／出力ピンと、
該セルの該入力／出力ピンへの可能な印加のために、前記装置によって生成された信号を選択的に登録するように構成されている出力レジスタ回路と、
トリステートドライバ回路であって、該トリステートドライバ回路がイネーブルされる場合には、該出力レジスタ回路の出力信号を該セルの入力／出力ピンに印加するように構成されているトリステートドライバ回路と、
該トリステートドライバ回路への印加のために、該装置によって生成された出力イネーブル信号を信号として選択的に登録することにより、該トリステートドライバ回路を選択的にイネーブルするように構成されている出力イネーブルレジスタ回路と、
該装置の他の回路への印加のために、該セルの入力／出力ピンからの入力信号を選択的に登録するように構成されている入力レジスタ回路と
を備え、
該複数の入力／出力セルのそれぞれは、該出力レジスタ回路と該出力イネーブルレジスタ回路と該入力レジスタ回路とをクロックするために、前記複数の分岐コンダクタを介して受信された信号を用いるように構成されている、請求項５に記載の装置。
【請求項８】
プログラマブルロジック集積回路装置であって、
複数のプログラマブルロジックの領域の複数の行と複数の列とが交差する二次元配列で、該装置に配置された複数のプログラマブルロジックの領域と、
該装置の中央に隣接して配置された複数の入力ピンであって、該装置の外部の回路からの信号を受信するように構成されている複数の入力ピンと、
該複数の入力ピンによって受信される信号と該装置の中央に隣接する該複数の領域の一部によって出力される信号とから高速コンダクタ信号を選択するように構成されている第１のプログラマブルロジックコネクタ回路と、
該複数の行に垂直に延び、該複数の行の中間点に隣接する複数の高速コンダクタであって、該第１のプログラマブルロジックコネクタ回路によって選択された該複数の高速コンダクタ信号を搬送するように構成されている、複数の高速コンダクタと、
該複数の行のそれぞれに隣接する複数の分岐コンダクタであって、該隣接する行に沿って延び、各行に隣接する該複数の分岐コンダクタは、該隣接する行の領域に信号を搬送するように構成されている、複数の分岐コンダクタと、
該複数の行のそれぞれに関連付けられた第２のプログラマブルロジックコネクタ回路であって、該第２のプログラマブルロジックコネクタ回路が関連付けられている該行に隣接する該複数の分岐コンダクタに該複数の高速コンダクタからの高速コンダクタ信号を選択的に印加するように構成されている、第２のプログラマブルロジックコネクタ回路と
を備えた、プログラマブルロジック集積回路装置。
【請求項９】
プログラマブルロジック集積回路装置であって、
二次元配列で配置された複数のロジック領域と、
該二次元配列内に位置する複数の入力／出力セルと
を備え、
該複数のセルのそれぞれの回路は、該装置の入力／出力ピンを含み、該入力／出力ピンのうちの少なくともいくつかは、該装置の中央に隣接して配置されている、プログラマブルロジック集積回路装置。
【請求項１０】
プログラマブルロジック集積回路装置であって、
ロジック領域の所定の複数のグループに配置された複数のロジック領域と、
該ロジック領域の所定の複数のグループ間に配置された複数のＩ／Ｏ領域と
を備え、
該複数のＩ／Ｏ領域のそれぞれの回路は、該装置の入力／出力ピンを含み、該入力／出力ピンのうちの少なくともいくつかは、該装置の中央に隣接して配置されている、プログラマブルロジック集積回路装置。
【請求項１１】
プログラマブルロジック集積回路装置であって、
複数のロジック領域の複数の行と複数の列との二次元配列で、該装置に配置された複数のロジック領域と、
該複数のロジック領域の該複数の行のうちの２つの行の間に配置された入力／出力回路の複数のセルと、
該複数のロジック領域と該複数のセルとに隣接して水平および垂直に延びる複数のコンダクタと、
該複数のコンダクタに信号を選択的に印加するように構成されている複数のプログラマブルロジックコネクタであって、少なくとも該複数のロジック領域から該信号を受信するように構成されている、複数のプログラマブルロジックコネクタと
を備えた、プログラマブルロジック集積回路装置。
【請求項１２】
前記装置の中央に隣接して配置された複数の入力ピンをさらに備え、該複数の入力ピンは、該装置の外部の回路から受信された信号を前記複数のコンダクタにそれぞれ供給するように構成されている、請求項１１に記載の装置。
【請求項１３】
前記複数の入力ピンは、前記複数の垂直コンダクタのうちの少なくとも２つに印加されるクロック信号を受信する、請求項１１に記載の装置。
【請求項１４】
前記装置の中央に隣接して配置された第２の複数の入力ピンをさらに備え、該第２の複数の入力ピンは、前記複数のプログラマブルロジックコネクタのうちの少なくとも１つに関連付けられている、請求項１１に記載の装置。
【請求項１５】
前記複数のプログラマブルロジックコネクタは、前記複数のコンダクタへの印加のために、前記複数の入力ピンまたは前記複数のロジック領域のいずれかによって提供される信号を選択する、請求項１４に記載の装置。
【請求項１６】
前記複数のプログラマブルロジックコネクタは、前記複数のコンダクタへの印加のために、該複数のコンダクタまたは前記複数のロジック領域のいずれかによって提供される信号を選択する、請求項１４に記載の装置。
【請求項１７】
前記複数のプログラマブルロジックコネクタは、前記複数の水平コンダクタに信号を提供するように構成されており、該複数の水平コンダクタは、該複数のプログラマブルロジックコネクタに関連付けられた前記複数のロジック領域に隣接して分岐している、請求項１１に記載の装置。
【請求項１８】
前記複数のプログラマブルロジックコネクタは、前記複数の水平コンダクタに信号を提供するように構成されており、該複数の水平コンダクタは、該複数のプログラマブルロジックコネクタに関連付けられた前記複数のセルに隣接して分岐している、請求項１１に記載の装置。
【請求項１９】
前記複数のプログラマブルロジックコネクタは、前記装置に沿って垂直に延びる複数のコンダクタに信号を提供するように構成されている、請求項１１に記載の装置。
【請求項２０】
前記複数のコンダクタは、前記複数のプログラマブルロジックコネクタと、前記複数のロジック領域と、前記複数のセルとに信号を搬送するように構成されている、請求項１１に記載の装置。
【発明の詳細な説明】
【０００１】
【発明の背景】
この発明は、プログラマブルロジックアレー集積回路デバイス（“プログラマブルロジックデバイス”または“ＰＬＤ”）に係り、より具体的には、プログラマブルロジックデバイスに適用してこの種のデバイスの動作速度を増加するための相互接続リソースに関する。本発明はさらに、（例えばクロックおよびクリア信号等の）二次信号配分、入力／出力回路、ロジックモジュール間のカスケード接続等の、ＰＬＤの他の要素に関する。
【０００２】
プログラマブルロジックデバイスは、典型的に、（１）多数の領域のプログラマブルロジックと、（２）これらのロジック領域間において相互に信号を伝送するためのプログラマブル相互接続リソースとを備えている。各ロジック領域は、いくつかの比較的単純なロジック機能を実施するためにプログラム可能である。相互接続リソースは複数のロジック領域が共に動作して個々のロジック領域が実施するものよりもはるかに複雑なロジック機能を実施し得るようにプログラム可能である。既知のＰＬＤの例としては、ウォールストロームの米国特許第３４７３１６０号公報、フリーマンの米国特許第３４３６３号公報、クリフ氏等の米国特許第５６８９１９５号公報、クリフ氏等の米国特許第５９０９１２６号公報、ジェファーソン氏等の米国特許出願第０９／２６６２３５号公報に記載されており、これらはここにおいて参照に組み入れてある。
【０００３】
ＰＬＤが動作する最大速度の典型的な尺度は、信号がデバイスを通じてあるロジック領域のレジスタ（またはレジスタを有するその他のリソース）から他のロジック領域のレジスタ（またはレジスタを有するその他のリソース）へ伝送されるために必要とされる最長時間である。ＰＬＤは、この最長信号伝送時間よりも短い周期を有するクロック速度に安定的に同期させることはできない。殆どのＰＬＤにおいて重要な設計目標は、最長信号伝送時間を短縮することである。従って、ロジック領域および相互接続リソースの両方が、この点を考慮して時間効率化を目的として設計される。しかしながら、このことを一度達成すると、所与の集積回路製造技術において、最長信号伝送時間をさらに大幅に短縮することは困難である。例えば、相互接続速度を増加させるために、より大きなドライバおよびパストランジスタが使用されるが、これに対応してルーティングチャネル上に付加される拡散も増加する。金属ＲＣ遅延を縮小するためにコンダクタの相互接続に幅の大きい金属トラックを使用するが、これによってサイズが拡大する。結果として、最終的な速度の向上が低減する。
【０００４】
前述の視点から、本発明の目的は、改善されたプログラマブルロジックデバイスを提供することである。
【０００５】
さらに、本発明のより具体的な目的は、プログラマブルロジックデバイス用の改善された相互接続リソースを提供することである。
【０００６】
さらに、本発明の別の具体的な目的は、プログラマブルロジックデバイスの最長信号伝送時間特性を、単純に全てのリソースの速度を増加させた際に生じる問題点を伴うことなく短縮するための相互接続リソースを提供することである。
【０００７】
本発明のさらに別の目的は、二次（例えばクロックおよびクリア）信号配分、入力／出力回路、ならびに２つまたはそれ以上のロジックモジュールをカスケード接続する回路等の要素に関してＰＬＤを改善することである。
【０００８】
【発明の概要】
本発明のこれらおよびその他の目的は、本発明の原理に従って、少なくとも部分的に実質的に平行な２つの形状体またはサブセット内に構成された相互接続リソースを備えるプログラマブルロジックデバイスを提供することによって解決される。第１のサブセット内の相互接続リソースは、いわゆる“ノーマル”信号伝送速度特性を有するように形成される。実質的に平行な第２のサブセット内の相互接続リソースは、充分に大きな信号伝送速度特性を有するように形成される。例えば、第１のサブセットと比べて、第２のサブセットはより大きなドライバおよびパスゲートと、より幅広かつ広く離間して配置されたコンダクタ用のメタルトラックと、さらに信号伝送速度を増加させるためのその他の特性をもって構成される。両方の形式の相互接続リソースが存在する場合、殆どのリソースはノーマル速度のものとし、少数（２０％ないし３３％、好適には２５％）のリソースを高速度形式とすることが好適である。
【０００９】
高速相互接続リソースは、デバイス上において充分に広域に広げて配置することが好適であり、これによって実質的に任意のデバイス上の２つ（またはそれ以上）のロジック領域間の信号のルーティングのために少なくとも部分的に使用することができる。（勿論、高速リソースは、略最高価値のものであり、従ってデバイス上において比較的に遠くにあるロジック領域間の接続を形成するために使用することに最も適していることが理解されよう。）従って、実質的にデバイス上の任意の位置のロジック領域間の相互接続は、全てノーマル速度相互接続リソースを介して形成されるか、または少なくとも部分的に高速相互接続リソースを介して形成される。
【００１０】
高速度リソースに対する典型的な設計目標は、充分な量の充分に高速なリソースを設けることによってデバイスがクロックされる速度を倍増させることであり、従ってこれらのリソースはデバイスに最長の信号伝送時間をもたらす信号を伝送するために使用することができ、これによってこの信号の伝送時間を半減させることができる。他方、単にデバイス上の全ての相互接続リソースの速度を大幅に増加させる際の問題点を回避するために、任意の所与の種類の相互接続リソースのうちの少ない割合のみを高速度化する。多数の部分はノーマル速度のままとし、それほどの速度を必要としない大半の相互接続に使用される。
【００１１】
本発明に従って、Ｉ／Ｏセル（Ｉ／Ｏ端子を含む）の配列をデバイス上のロジックおよび他の配列の中に点在させることによって、ＰＬＤの入力／出力（“Ｉ／Ｏ”）回路を改善することができる。これによってＩ／Ｏ端子がより均一にデバイスを横断して配置され、その結果デバイスの周囲にのみＩ／Ｏ端子を配置した場合に生じるＩ／Ｏ端子不足を軽減することができる。Ｉ／Ｏ端子をデバイスを横断して配分することによって、二次（例えばクロックおよびクリア）信号がデバイスの中央に近いＩ／Ｏ端子から伝送されるため、これらの信号の配分（例えばスキューを削減して）を容易化することができる。二次信号配分回路は、このような改善されたＩ／Ｏ端子配置の利点を使用するように形成される。隣接するまたは近接するロジック領域間のカスケード接続は、これらの接続の速度を増加させ、実用性を向上させ、これが使用されていない際のデバイス上における負担を軽減するように改善することができる。
【００１２】
本発明のその他の特徴、特性ならびに種々の利点は、添付図面を参照しながら以下に詳細に記述する実施例の説明によって明らかにされる。
【００１３】
【実施例の詳細な説明】
図１には、本発明に従って構成された例示的なプログラマブルロジックデバイス１０が示されている。デバイス１０は１２行のプログラマブルロジック領域２０を含んでいる。各行は４０個の領域２０からなる。従って、領域２０はデバイス１０上において１２行４０列の領域２０からなる２次元行列として配置されている。
【００１４】
各領域２０は、１０個のプログラマブルロジック小領域３０を含んでいる。図１の煩雑化を避けるため、個々の小領域３０は最上部左端の領域２０についてのみ示してある。この点に関して後で詳細に述べるように、各小領域３０はデバイス１０のユーザがプログラムしていくつかの比較的小さなロジック機能のいずれかを実施することができる。非常に複雑なロジック機能は、相互接続コンダクタのプログラマブルネットワークおよびデバイス１０上の他の適宜な相互接続リソースを介して小領域３０を連結することによって実施することができる。
【００１５】
領域２０の行の中に、５行の入力／出力（“Ｉ／Ｏ”）端子および関連するＩ／Ｏ回路４０が配分されている。Ｉ／Ｏ行４０の１つは、領域２０の行の最上部に配置されている。別のＩ／Ｏ行４０は、領域２０の行の最底部に配置されている。３番目のＩ／Ｏ行４０は、３番目と４番目の領域２０の行の間に配置されている。４番目のＩ／Ｏ行４０は、６番目と７番目の領域２０の行の間に配置されている。５番目のＩ／Ｏ行４０は、９番目と１０番目の領域２０の行の間に配置されている。
【００１６】
最上部のＩ／Ｏ行４０の上方には、メモリ領域５０の行が配置され、これはデバイス１０のユーザがランダムアクセスメモリ（“ＲＡＭ”）、リードオンリーメモリ（“ＲＯＭ”）、積算項（“Ｐ項”）ロジック、内容アドレスメモリ等として使用することができる。別の同様なメモリ領域５０の行は、最底部Ｉ／Ｏ行４０の下方に配置されている。適宜なメモリ領域５０の回路については、クリフ氏等の米国特許第５５５０７８２号公報、サング氏等の米国特許第５５５５２１４号公報、サング氏等の米国特許第５６３３８３０号公報、クリフ氏等の米国特許第５６８９１９５号公報、サング氏等の米国特許第５７１７９０１号公報、サング氏等の米国特許第５８０２５４０号公報、ヘイル氏の米国特許出願第０９／０３４０５０号公報、ペダーソン氏の米国特許出願第０９／０２３２５１号公報、レディ氏等の米国特許出願第０９／１０７５３３号公報、レディ氏等の米国特許出願第０９／１０７９２６号公報、ガイ氏等の米国特許出願第０９／１２４６４９号公報、ヘイル氏の米国特許出願第０９／２９２４４８号公報、ヘイル氏の米国特許出願第０９／３８９９９５号公報に記載されており、これらは全てここにおいて全体的に参照に組み入れてある。
【００１７】
メモリ領域５０の各行の右端にはＰＬＬ回路の領域６０が配置され、これは図１には示されていない外部回路からデバイス１０に付加されるクロック信号に対して位相シフトされたクロック信号を形成するように使用される。適宜なＰＬＬ回路については、ジェファーソン氏の米国特許第５６４２０８２号公報、ジェファーソン氏の米国特許第５６９９０２０号公報、レディ氏等の米国特許第５８４７６１７号公報、サング氏等の米国特許出願第０９／３６６９４０号公報、サング氏等の米国特許出願第０９／３６８４６４号公報、サング氏等の米国特許出願第０９／３９２０９５号公報、サング氏等の米国特許出願第０９／３９３０３６号公報に記載されており、これらはここにおいて参照として全体的に組み入れてある。
【００１８】
領域５０の最上の行の左端には、制御ロジックおよび端子の領域７０が配置されている。この回路は、デバイス１０を通常のロジック動作に使用している際より優先してこれをデバイスのプログラミングおよびテストに使用している際にこのデバイスを制御するために使用される。
【００１９】
領域５０の最底部の行の左端にはＪＴＡＧロジックおよび端子の領域８０が配置されている。領域８０の回路は、デバイスの使用者が通常のロジック動作に優先してデバイス１０のインシステムプログラミングおよびテストに使用することができる。領域８０に使用される適宜な回路は、例えばチュー氏等の米国特許第５６５０７３４号公報、およびウォン氏等の米国特許第５６９９３１２号公報に記載されており、これらはここにおいて全体的に参照に組み入れてある。
【００２０】
図１に示された回路の最上の行はアドレスおよびレジスタ回路９０であり、これは通常のロジック動作に優先してデバイス１０をプログラムする際に使用される。図１に示された回路の最も左の列はデータレジスタ回路１００であり、これは通常のロジック動作に優先してプログラムを行っている際に使用される。図１に示された回路の最も右側の列はテストレジスタ回路１１０であり、これは通常のロジック動作に優先してプログラムを行っている際に使用される。典型的な使用に際して、プログラミングデータは図示されていない外部回路から回路１００にロードされる。このデータはデバイス１０を通じて左から右に流れ、回路９０内のアドレス上方によって決定された垂直スライス位置に記録される。デバイス１０が適正にプログラム可能であることと、および／または適正に動作可能であることを確認するために使用するデータは、レジスタ１１０を介してデバイス１０から読み出すことができる。例示的な回路において、前述した説明および領域７０についての記載によって示されたデバイス１０のプログラミングおよびテスト特性に関しては、クリフ氏の米国特許第５２３７２１９号公報を参照すべきである。
【００２１】
図１に示された要素でまだ説明してないものは、デバイス１０の左右方向の中央またはその付近に配置されたいわゆる二次信号コンダクタと呼ばれる垂直配置領域１２０である。領域１２０は、信号伝送リソースのネットワークの一部であり、デバイス１０全体で広く必要とされる信号を分配するために使用される。これらの信号の例としては、クロック信号、クリア信号、セット信号、リセット信号等が挙げられる。領域１２０および関連する回路の実施例が図７Ａおよび図７Ｂに示されており、後でこの点に関して説明する。
【００２２】
一般的に、プログラミングおよびテストモードと回路は実質的に本発明にとは関係なく、従ってデバイス１０のこれらの機能をさらに詳しく説明する必要はない。このことは要素７０，８０，９０，１００，および１１０に該当する。デバイスのこの特性に関する構造および技術は当業者において周知であり、この点に関して先に挙げた参照文献に例が示されている。ＰＬＬ回路６０の構成、動作、ならびに使用方法は実質的に本発明とは関係なく、これらの回路についてより詳しく説明する必要はない。再び、適宜なＰＬＬ回路は当業者において周知であり、この点に関して先に挙げた参照文献に例が示されている。本発明は、メモリ領域５０を補助するように拡張することができ、このような拡張可能性については以下の記述において説明され、これは主に本発明をロジック領域２０、Ｉ／Ｏ領域４０、これらのロジック領域およびＩ／Ｏ領域を含む相互接続に適用することに関する。従って、メモリ領域５０についてもさらに詳しく説明する必要はない。
【００２３】
図２には図１の一部であるが、デバイス１０に設けられた相互接続リソースのいくつかが示されている。ロジック領域２０の各列に結合し、かつメモリ行５０へと延在する、複数のいわゆる広域垂直コンダクタ２００が設けられている。煩雑化を避けるため、図１には代表的ないくつかのコンダクタ２００のみが示されている。コンダクタ２００の各グループは、参照符号２００ａで示される比較的大きなコンダクタのサブセットを有し、これは通常の信号伝送速度特性を有する。コンダクタ２００の各グループはまた参照符号２００ｂで示される比較的小さなコンダクタのサブセットを含んでおり、これは大幅に速い信号伝播速度特性を有する。例えば、各サブセット２００ａは該当するコンダクタ２００のセットのうちの約６７ないし８０％（最も好適には約７５％）を含んでおり、各サブセット２００ｂは該当するコンダクタ２００のセットのうちの約２０ないし３３％（最も好適には約２５％）からなる。
【００２４】
ロジック領域２０の各列の上半分に結合し、またメモリ領域５０の上の行に延在する、複数のいわゆる半垂直相互接続コンダクタ２１０が設けられている。半垂直相互接続コンダクタ２１０は、ロジック領域２０の各列の下半分ならびにメモリ領域５０の下方の行に結合されている。図面の煩雑化を避けるために、代表的なコンダクタ２１０のみが示されている。コンダクタ２００の場合と同様に、コンダクタ２１０の各セットも比較的大きなノーマル速度コンダクタのサブセット２１０ａと、比較的小さな高速コンダクタのサブセット２１０ｂを備えている。コンダクタ２１０ａとコンダクタ２１０ｂの比率は、コンダクタ２００ａと２００ｂの比率と同様なものにすることができる。
【００２５】
ロジック領域２０の各列に結合して、複数のいわゆる交互配置垂直（“ＩＶ”）コンダクタ２２０が設けられている。再び、図面の煩雑化を避けるため代表的なコンダクタ２２０のみが示されている。コンダクタ２２０の各グループは、上下に近接するロジック領域２０とメモリ領域５０との間を延在するとともに、間在しているＩ／Ｏ領域４０のいずれかを介して延在している。コンダクタ２００および２１０が交差する要素２０，４０および５０のいずれかの間において信号を伝送するために使用されるのに対し、コンダクタ２２０は上下に近接する要素２０および５０の間において接続速度を高めるために使用されるとともに、デバイス１０上の垂直相互接続に必要とされるコンダクタ２００および２１０の数を削減するよう作用する。ＩＶコンダクタに関しての追加的な詳細は、米国特許（出願番号、出願日不明、文書番号第１７４／１７３）に記載されており、これはここにおいて全体的に参照に組み入れてある。
【００２６】
ロジック領域２０の各行に結合して、複数のいわゆる広域水平相互接続コンダクタ２３０が設けられている。図面の煩雑化を避けるために代表的なコンダクタ２３０のみが図示されている。コンダクタ２３０の各セットは、比較的大きなノーマル速度コンダクタのサブセット２３０ａと比較的小さな極めて高速のコンダクタのサブセット２３０ｂを含んでいる。ノーマル速度コンダクタと高速コンダクタとの比率は前述したノーマル速度コンダクタと高速コンダクタとの比率と同様である。
【００２７】
ロジック領域２０の各行の左半分に結合するとともにこれに沿って延在する、複数のいわゆる半または直接水平相互接続コンダクタ２４０が設けられている。半水平コンダクタ２４０はロジック領域２０の各行の右半分に沿って延在している。再度、図面の煩雑化を避けるために少数の代表的なコンダクタ２４０のみが図示されている。
【００２８】
さらに、ロジック領域２０の各行に結合して、複数群のいわゆるＨＦＮＬ（第１ライン水平ネットワーク）相互接続コンダクタ２５０が設けられている。いくつかのＨＮＦＬコンダクタを短くする必要がある行の末端部を除いて、ＮＦＮＬコンダクタ２５０の各グループは１０個のロジック領域２０に架かっている。加えて、ＨＮＦＬコンダクタ２５０の各グループ内のコンダクタは、ロジック領域２０またはそのグループの中央付近にあるその他の信号源によってのみ駆動することができる（再度、行の末端のものは除いて）。コンダクタ２３０および２４０はこれらが架かっているロジック領域２０のいずれかの間において信号を伝送することに使用され、コンダクタ２５０はロジック領域２０またはこのコンダクタを含むグループの中央にある他の信号源から中央ロジック領域の左および／または右の固定数のロジック領域に伝送される。各行内の各ロジック領域２０は、該当する複数のコンダクタ２５０に対する中央／駆動ロジック領域となる。ＨＮＦＬコンダクタに関しての追加的な詳細は米国特許出願（出願番号、出願日不明、文書番号１７４／１７３号）に記載されており、これはここにおいて全体的に参照に組み入れられている。
【００２９】
図３には、ロジック領域２０の行に結合された水平コンダクタからこの行内のロジック領域に信号を伝送するための代表的な相互接続および回路が示されている。図３には、ロジック領域付近を通過する２１５本のノーマル速度広域水平コンダクタ２３０ａと、そのロジック領域付近を通過する１００本の高速広域水平コンダクタ２３０ｂと、そのロジック領域付近を通過する１０５本の半水平コンダクタ２４０と、そのロジック領域付近を通過する９０本のＨＮＦＬコンダクタ２５０と、そのロジック領域付近を通過する１２本の二次コンダクタ２６０とが存在することが示されている。前述したように、最後に挙げた二次コンダクタ２６０は、クロック、クリア等の信号を伝送することができる。これらの信号２６０のうちのいくつかは中央二次信号領域１２０（図１）から伝送することができ；その他の信号はより局所的（例えば隣接するロジック領域２０の行内）に形成されソースの局所内（すなわちそのソースの行）においてのみ使用することができる（後述する図７Ａおよび図７Ｂに関する詳細な説明を参照）。
【００３０】
図３には、さらに代表的な論理領域フィーディングコンダクタ３００が示されている。図示されたコンダクタ３００は、図示されたコンダクタ２３０ａ，２３０ｂ等が作用するロジック領域行内の水平に近接する２つのロジック領域２０の間に配置された２６本のコンダクタのグループのうちの１つである。２６本のコンダクタ３００は、全てのロジック領域行内の全ての水平に近接するロジック領域２０の間に間在している。
【００３１】
各コンダクタ３００について、コンダクタ２３０ａ、２３０ｂ、２４０、および２６０のうちの選択された１つが２つのプログラマブルロジックコネクタ（“ＰＬＣ”；例えばマルチプレクサ）２７０−１および２７０−２の入力に接続される。ＰＬＣ２７０は、それぞれ通常プログラマブル動作制御要素（“ＦＣＥ”）２７２によって制御され、その入力のうちのいずれかの上の信号をその出力に適用する。（４つの入力が図示されているが、各ＰＬＣ２７０はそれよりも少ないかまたは多い入力（例えば、２，３，６，７または８個の入力）を備えることもできることが理解されよう。）各ＰＬＣ２７０出力信号は、該当する反転バッファ（増幅器）２７４に付加され、従って該当するＰＬＣ２７６の入力に付加される。ＰＬＣ２７６への他の入力は、近接するコンダクタ２３０ｂおよび２５０のうちの選択された１つ、ならびに（伝送線２８０を介して）相関する（もし存在すれば）Ｉ／Ｏ領域４０から通じている。ＰＬＣ２７６はＦＣＥ（図示されていないがＦＣＥ２７２と同様である）によって制御され、その出力に入力のうちのいずれかの上の信号を付加する。ＰＬＣ２７６の出力信号は、反転バッファ２７８を介してコンダクタ３００に付加される。前述したＩ／Ｏ領域４０とロジック領域２０との相関は以下のようである：最上の行２０と４０、第２行４０と第４行２０、第３行４０と第７行２０、第４行４０と第１０行２０、第５行４０と第１２行２０である。
【００３２】
図３に示された相互接続は、図示されたロジック領域２０に近接するコンダクタ２３０，２４０，２５０，２６０および２８０のそれぞれがそのロジック領域の左または右の少なくとも１本のコンダクタ３００へ通じる経路を有するように形成される。加えて、各コンダクタ２３０ｂおよび２５０は、ＰＬＣ２７６を通じて直接的にかつＰＬＣ２７０を経由することなく、そのロジック領域の左または右の少なくとも１本のコンダクタ３００へ通じる経路を有する。この最後の点は、コンダクタ２３０ｂおよび２５０が速度に関して最適化されているため重要であり、また要素２７６と２７８のみを介して信号をコンダクタ３００に伝送する方が要素２７０および２７４も介して伝送するより高速である。
【００３３】
図４には、水平に近接する領域２０の間に配置されデバイスの他の相互接続リソースからこれらの領域に信号を伝送するとともにこれらの領域内の小領域３０の中の局所的相互接続を形成するための代表的なコンダクタが示されている。これらのコンダクタの各グループは、２６本のコンダクタ３００（その信号ソースは図３に示されている）と、近接するＨＮＦＬコンダクタ２５０の１つの支線と、１０本の局所フィードバックコンダクタ３１０とを含んでいる。これらの局所フィードバックコンダクタ３１０のうちの５本は、図示されたコンダクタグループの左側の領域２０内の小領域３０のうちの５つからの信号を受信する。これらのコンダクタ３１０の残りの５本は、図示されたコンダクタグループの右側の領域２０内の小領域３０のうちの５つからの信号を受信する。
【００３４】
各小領域３０は、時々入力Ａ−Ｄで示される４つのデータ信号入力を備える。コンダクタ３００および３１０は、いずれもこれらのコンダクタの右側の１０個の小領域３０の入力ＡおよびＣへ付加される信号源、ならびにこれらのコンダクタの左側の１０個の小領域３０の入力ＢおよびＤへ付加される信号源として使用することができる。他方、図示されたＨＮＦＬコンダクタ支線２５０は、最上右側の小領域の入力Ａに付加される信号源、ならびに最上左側の小領域の入力Ｂに付加される信号源として使用することができる。中間の４本のコンダクタ３２０が各小領域入力Ａ−Ｄに結合されている。これらのコンダクタ３２０に交差するコンダクタ２５０，３００，および３１０のそれぞれが、各入力Ａ−Ｄに結合された４本のコンダクタ３２０の１本に接続することができる。これらの接続は、ＦＣＥ３２４によって４つずつのグループにおいて制御されるＰＬＣ３２２によって形成される。（４つずつのグループの例外として、ＨＮＦＬ支線２５０への接続のためにグループ分けが行われる。）従って、単一のＦＣＥ３２４は４本のコンダクタ３００／３１０を各入力Ａ−Ｄに結合された４本のコンダクタ３２０へ接続するようプログラムされる。各入力Ａ−Ｄに付加される信号の最終的な選択は、この入力に結合された４つのＦＣＥ３２６の１つをプログラミングしてこの入力に結合されたＰＬＣ３２８のうちの１つを付勢することによって実施される。（他方、ＨＮＦＬ支線２５０上の信号は、該当するＦＣＥ３２４および３２６を適宜にプログラミングすることによってＡ入力またはＢ入力に付加することができる。
【００３５】
前述のことから、図４に示されているように、ＨＮＦＬ信号はコンダクタ３００等が作用するロジック領域２０への２つの可能な経路を有する。これらの経路のうちの１つは、図３の要素２７６および２７８を介する比較的高速なルーティングである。１つの特定のＨＮＦＬコンダクタ２５０および図４に示されたコンダクタ３００は作用する最上部の小領域３０に対する他の経路は、図４に示されたコンダクタ支線２５０と関連する要素３２２および３２８を介するより高速のルーティングである。多少低速ではあるが、第１の経路は、近接するＨＮＦＬ信号を図４の回路が作用するロジック領域２０への少なくとも多数の入力へ伝送する点において、より広範な目的を有している。他方、高速の経路は、近接するＨＮＦＬの１つにのみ作用し、図４の回路が作用するロジック領域２０のそれぞれの中の１つの小領域３０の入力端子への入力のみを可能にする点において、より限定的なものとなる。
【００３６】
図５Ａおよび図５Ｂ（図５で総称することもある）には、代表的な小領域３０の例示的な実施例が示されている。小領域３０の核は、４入力ルックアップテーブル（要素４０２，４０４，４０６，および４０８）とレジスタ４８０である。この点に関して後に説明する他の特徴とともに記述されるが、小領域３０の基本的な動作は、入力Ａ−Ｄの任意の論理的組合わせとすることができるルックアップテーブルの出力信号（ＰＬＣ４０８からの）を形成するようプログラム可能な４入力ルックアップテーブルである。ルックアップテーブル出力信号は、ＰＬＣ４８２のいずれか１つまたはいくつかを介して直接的に出力される。他方、またはこれに加えて、ルックアップテーブル出力信号はレジスタ４８０によって記録され、その後記録されていないルックアップテーブル出力信号を出力するために使用されていないいずれかのＰＬＣ４８２を介して出力される。
【００３７】
代表的な小領域３０についてより詳細に説明すると、第１ステージの４入力ルックアップテーブルロジックは、４つの２入力ルックアップテーブル４０２ａ−４０２ｄとして構成されている。各ルックアップテーブル４０２は小領域入力ＡおよびＢを受信し、これら２つの入力信号のいずれかの論理的組合わせである出力信号を形成する。４入力ルックアップテーブルの第２のステージは、２つのＰＬＣ４０４ａおよび４０４ｂとして構成されている。ＰＬＣ（例えばマルチプレクサ）４０４は、（１）小領域３０へのＣ入力か、（２）小領域３０へのＤ入力か、または（３）ＰＬＣ４１０ｂによって選択されたキャリーイン信号によって制御することができる。選択肢（１）、（２）、および（３）からの選択は、ＰＬＣ４１４ａを適宜にプログラムすることによって実施される。小領域が特定のバイナリ計算動作（例えば、高速加算器、カウンタ、マルチプライア、およびワイドパリティ機能）の一部分を実施するために使用される場合、選択肢（３）が選択される。選択肢（１）と（２）の間の選択は、エレメント４０６，４０８および４１８に関連して詳細に説明する信号タイミング要件に基づいて実施される。出力信号ＰＬＣ４０４ａおよび４０４ｂは、それぞれ反転バッファ４０６ａおよび４０６ｂによって増幅されている。（要素４０４はしばしばＰＬＣと呼称されるが、これらはプログラム制御よりむしろ動的に制御される。言い換えると、ＦＣＥによってプログラム制御されデバイス１０が一度プログラムされた通り常に同一の信号選択をするよりも、むしろ要素４０４はデバイスの通常ロジック動作中の異なった時間に異なった信号選択を実施し、これはその制御信号はそのロジック動作の結果に起因して変化するロジック信号であるためである。にもかかわらず、ここで４０４のような要素はＰＬＣと呼称される。より正確にするために、これらの動的制御された要素は、しばしば代わりにロジックコネクタと呼称される。要素４０４のようにＰＬＣと呼ばれたりロジックコネクタと呼ばれたりするその他の要素の例は、要素４０８，４１０，４２２，４４２，４６４，４６６である。）
４入力ルックアップテーブルロジックの最終ステージはＰＬＣ（例えばマルチプレクサ）４０８によって構成される。ＰＬＣ４０８は、（１）小領域３０へのＣ入力か、（２）小領域３０へのＤ入力か、または（３）別の隣接するまたは近傍の小領域３０からのいわゆる“直接接続”入力ＤＣＩＮによって制御することができる。これらの選択肢（１）、（２）、および（３）の中からの選択はＰＬＣ４１８を適正にプログラミングすることによって実施される。選択肢（３）は、図示された小領域３０が他の近接するまたは近傍の小領域からの直接接続信号を受信することに（少なくとも部分的に）基づいたロジック機能を実施している場合に選択される。これらの小領域間の直接接続は、広範なファンインロジック機能等の操作を実施するために使用することができ、これはいくつかの小領域を直列接続することを必要とし、これはしばしばカスケードチェーンと呼称される。（プログラマブルロジックデバイス内のロジックモジュール間のカスケード接続についての詳しい説明に関しては、例えばクリフ氏等の米国特許第５２５８６６８号参照すべきである。この文献はここにおいて全体的に参照に組み入れてある。）選択肢（１）と（２）との間の選択は、信号タイミング要件に基づいて実施される。
【００３８】
前記の２つの段落に関する信号タイミング要件は、４入力ルックアップテーブルロジックによって処理されそのロジックの最終ステージ（すなわちＰＬＣ４０８の制御入力端子）に伝送される最も低速のデータ信号のルーティングを含んでいる。このようにして、先に到達したデータ信号は、ルックアップテーブルロジックの最初の２つのステージによって処理されバッファ４０６ａと４０６ｂの出力端子上に既にバッファされた２つの信号を形成する。最後に到達するデータ信号を受信すると、ＰＬＣ４０８は最後に到達する信号の状態によって選択されたバッファ出力信号を直ちに出力することが可能となる。最後に到達するデータ信号をルックアップテーブルの最終ステージに付加することによって、ルックアップテーブル出力信号は、最後に到達するデータ信号をルックアップテーブルの前方ステージに付加する場合に比べて、著しく迅速なものにすることができる。このルックアップテーブルの高速化は、ＰＬＣ４０８の下流側のバッファによって最終ルックアップテーブル信号を遅延させるよりも、むしろＰＬＣ４０８の上流側にバッファ４０６を設置することによりさらに増進することができる。
【００３９】
前述した要素４１４ａおよび４１８は、入力Ｃまたは入力Ｄのいずれか一方をルックアップテーブルの最終ステージに付加されるものとして選択することを可能にする。従って、最終ステージに対して選択されていない入力ＣまたはＤは、ルックアップテーブルの最終前のステージに付加することができる。入力Ｄが小領域の右側のコンダクタ３００／３１０から通じているのに対して入力Ｃは小領域３０の左側のコンダクタ３００／３１０（図４）から通じているため、入力Ｃまたは入力Ｄのどちらかを最後に到達する入力として選択する（ＰＬＣ４１４ａおよび４１８を使用して）可能性により、デバイス内のルーティングの制約が容易になる。従って、最後に到達する信号は、小領域の左側または右側のいずれかのコンダクタ３００／３１０を介して到達するようルーティングすることができる。
【００４０】
直接接続信号ＤＣＩＮは比較的遅く到達するため（例えば、比較的長いカスケードチェーンの下流端部付近で形成された場合）、この信号もＰＬＣ４１８によって選択してルックアップテーブルの最終ステージへ付加することができる。このこともカスケードチェーンの高速化を補助する。
【００４１】
図５Ａの他の要素について説明を続けると、小領域３０がバイナリ加算、カウンティング等の一部を実行するために使用される場合、要素４０２ａ、４０２ｂは入力Ａ、入力Ｂ、およびキャリーイン信号（ＰＬＣ４１０ｂからの）の合計の２つの先行値を形成するようプログラムすることができる。ＰＬＣ４０４ａは、キャリーイン信号（ＰＬＣ４１４ａを介して）によって制御され、これらの２つの先行値のうちの適宜な１つを合計出力信号として選択する。ＰＬＣ４０８は、合計出力信号を常に図５Ｂの回路に伝送するよう制御される。このＰＬＣ４０８の状態は、小領域に対してＤ入力を使用してＰＬＣ４０８を制御するとともに関連する全てのＤ入力要素３２８（図４）をオフ状態にプログラムすることによって達成され、このことによりＤ入力は高位の初期設定とされる。）要素４０２ｃおよび４０２ｄは、入力Ａ、入力Ｂ、およびキャリーイン信号の合計からなるキャリーアウトの２つの先行値を形成するようにプログラムされる。この２つの先行値は、バッファ４２０ａおよび４２０ｂによってそれぞれ反転され、平行して各ＰＬＣ（例えばマルチプレクサ）４２２ａおよび４２２ｂの２つのデータ入力に付加される。ＰＬＣ４２２ａおよび４２２ｂは、小領域３０に付加されたＣ０ＩＮおよびＣ１ＩＮ信号に基づいてＣ０ＯＵＴおよびＣ１ＯＵＴとして出力する先行値をそれぞれ選択する。各小領域３０のＣ０ＯＵＴおよびＣ１ＯＵＴ信号は、キャリーチェーンの中の次の小領域３０のＣ０ＩＮとＣ１ＩＮ信号となる。従って、高速化キャリーチェーンのための回路の一部として２つのキャリー信号が伝送される。この回路（ＰＬＣ４１０ｂを制御するためのＬＡＢＣＩＮＨ信号の形成を含んでいる）は、本発明の構成要素ではなく、従ってさらに詳細な説明は省略する。しかしながら、これについては、米国特許（出願番号、出願日不明；文書番号１７４／１７６号）に記載されており、これはここにおいて全体的に参照に組み入れてある。
【００４２】
要素４３０，４３２，４３４，４３６，４３８，４４０，４４２，および４４は、小領域３０の乗算動作を実行および高速化する回路の一部として設置される。回路（ＰＬＣ４１０ａを制御するためのＬＡＢＣＩＮＶ信号の形成を含む）も本発明の構成要素ではないので、その詳細な説明は省略する。しかしながら、これについては、米国特許（出願番号、出願日不明；文書番号１７４／１７５号）に記載されており、これはここにおいて全体的に参照に組み入れてある。
【００４３】
要素４５０および４５２は、レジスタ４８０（図５Ｂ）がいわゆる“単独レジスタモード”において使用されることを可能にする回路の一部である。すなわち、レジスタ４８０がＰＬＣ４０８からのルックアップテーブル出力信号を記録するために必要とされていない場合、レジスタは代わりに入力Ｃおよび入力Ｄを記録するために使用される。Ｃ／Ｄの選択は、ＰＬＣ４１４ｂによって実施される。ＰＬＣ４５０は、選択された信号の真値または補数値のいずれか一方を伝送するようプログラムされる。バッファ４５２は、選択された信号を反転および増幅する。
【００４４】
ここで、図５Ｂに示されている代表的な小領域３０回路の部分について説明すると、要素４５４および４５６は、ルックアップテーブル出力信号（図５ＡのＰＬＣ４０８からの）をこの小領域の直接接続出力信号（ＤＣＯＵＴ）として出力することを可能にする。各小領域３０のＤＣＯＵＴ信号は、カスケードチェーンまたは小領域列内の次の小領域のＤＣＩＮ信号となる。要素４５４はＤＣＯＵＴ信号用の反転バッファであり、要素４５６はこの信号用のレベル復元回路の一部である。
【００４５】
要素４６０および４６２は、ＰＬＣ４６４および４６６の状態を要素４６０のプログラミングと、バッファ４５２（図５Ａ）の論理状態と、ＳＣＡＮ、ＳＹＮＣＬＤ、およびＳＹＮＣＬＲ信号の論理状態とに基づいて制御するための回路である。ＳＣＡＮ信号は、デバイスをスキャンテストモードに設定するためのデバイス広域信号であり、このモードにおいてデバイス上のレジスタ４８０およびその他のレジスタはスキャンチェーン内で効率的に接続され、それらの内容を読み出すとともにこれによってデバイスが適正に動作するよう迅速に検査する。従って、ＳＣＡＮ信号が確認されると、デコーディングロジック４６２がＰＬＣ４６４および４６６を制御し、ＳＣＡＮＩＮ信号をレジスタ４８０に付加する。各小領域３０のＳＣＡＮＩＮ信号は、１つ前の小領域またはスキャンチェーン内の他のレジスタ回路ＳＣＡＮＯＵＴ信号である。レジスタ４８０のＱ出力信号は、小領域３０のＳＣＡＮＯＵＴ信号として反転バッファ４８６を介して出力される。
【００４６】
ＳＹＮＣＬＤおよびＳＹＮＣＬＲは、小領域３０を含む領域２０について領域全体のベースで選択することが好適な信号である。これらの信号は、レジスタ４８０を同期的にロードするかまたは同期的にクリアするのに適した信号を付加するようデコーディングロジック４６２を付勢するために使用される。例えば、ＶＳＳ（接地またはロジック０）はＰＬＣ４６４および４６６を介してレジスタ４８０のＤ入力端子に接続され、これによってレジスタの同期的なクリアを生じさせる。このロジック４６２への入力、ならびに結果としてこのロジックからの出力の他の状態は、レジスタ４８０がその出力信号を再登録するか、いわゆるバッファ４４（図５Ａ）からの“直接合計出力”信号ＤＳＯを記録するか、またはバッファ４５２（図５Ａ）の出力信号を記録する単独レジスタモードで動作することを付勢する。ここで全体的に参照に組み入れられているペダーソン氏の米国特許第５８３５９９８号公報には、要素４６０および４６２として４６４，４６６，４８０等の要素（以下に詳細に説明する要素４９０，４９２，４９４および４９６等の要素）を制御するよう使用することができる回路の例が示されている。
【００４７】
要素４７０，４７２，および４７４は、クロック信号ＣＬＫ０またはＣＬＫ１のいずれか一方をレジスタ４８０のクロック入力端子に付加するクロック信号として選択することを可能にする。ＦＣＥ４７０は、ＰＬＣ４７２が２つのクロック信号のうちの１つを選択することを付勢し、これはバッファ４７４によって反転されレジスタ４８０に付加される。
【００４８】
要素４９０−４９６は、レジスタ４８０を制御して、多様なプリセット、同期ロード、およびクリア動作を実施するようプログラム可能か、または動作可能である。要素４９０はＦＣＥ、要素４９２はインバータ、要素４９４ａおよび４９４ｂはＡＮＤゲート、要素４９４ｃおよび４９４ｄはＯＲゲート、要素４９６ａはＮＯＲゲート、要素４９６ｂはＮＡＮＤゲートである。ＰＲＥ／ＡＳＹＮＬＤ信号は、非同期ロード制御信号である。ＮＣＬＲ信号はクリア信号である。
【００４９】
ＰＬＣ４８２ａ−ｃは、ＦＣＥ（図示されてない）によってプログラムし、ＶＳＳ（ロジック０）、レジスタ４８０のＱ出力、またはＰＬＣ４０８（図５Ａ）からの記録されていないルックアップテーブル出力信号のいずれかを出力することができる。ＰＬＣ４８２ｄも、ＶＳＳに代えてＶＣＣ（論理１）を出力し得る点を除いて同様である。ＰＬＣ４８２ａの出力信号は、反転バッファ４８４ａによって小領域３０の第１出力線ＯＵＴ０に付加される。ＰＬＣ４８２ｂの出力信号は、反転バッファ４８４ｂによって小領域３０の第２出力線ＯＵＴ１に付加される。ＰＬＣ４８２の出力信号は、反転バッファ４８４ｃによって小領域３０のＬＯＣＡＬ出力線に付加される。ＰＬＣ４８２ｄの出力信号は、反転バッファ４８４ｄおよび４８４ｄ′によって交互配置垂直（“ＩＶ”）コンダクタ２２０に付加される。
【００５０】
ＯＵＴ０およびＯＵＴ１信号の目的は、図６に基づいて以下に説明する。ＬＯＣＡＬ信号は、小領域３０を含んでいる領域２０の左側または右側の局所フィードバックコンダクタ３１０（図４）のうちの１本に付加される。特に（また既に記述したように）、各領域２０内の小領域３０の半分のＬＯＣＡＬ出力その領域の左側のコンダクタ３１０のそれぞれに付加され、各領域内の小領域の残り半分のＬＯＣＡＬ出力はその領域の右側のコンダクタ３１０に付加される。ＬＯＣＡＬ出力信号と同様な方式で、各領域２０内の小領域３０の半分のＩＶ出力線２２０はその領域から上方に延在しており、残り半分の小領域の出力線２２０はその領域から下方に延在している。
【００５１】
図６には、小領域３０からデバイスの相互接続コンダクタへの接続、ならびに種々の相互接続コンダクタ間の接続を形成するための代表的な回路が示されている（図４に示されたものと違うものであり、既に説明済みである）。図６は、ドライバ回路の代表的なブロック５００を有することを特徴とする。４つの小領域３０からなる各グループに結合された、この種のドライバ回路のブロックは、水平に隣接する２つの領域２０のそれぞれから２つの小領域を含んでいる。
【００５２】
まず、左側の上部小領域３０の種々の出力信号について考えると、その小領域のＯＵＴ０信号がＰＬＣ５０２の１つの入力端子に付加される。（ＯＵＴ０信号は図６に示されたものの左側のドライバブロックにも付加される。）ＰＬＣ５０２へのその他の入力は、（１）図６に示された、同じ領域２０の列であるが小領域を含む行の上または下の行内の小領域３０からの交互配置垂直信号２２０のうちの１つ、（２）ＯＵＴ０を生成するものと同じ小領域３０からの直接合計出力信号ＤＳＯ、および（３）図６に部分的に示されているドライバ回路ブロック５００の列と結合された高速半垂直コンダクタ２１０ｂのうちの１つである。ＰＬＣ５０２は、その４つの入力信号のうちの１つを選択して反転バッファ５０４に付加するようプログラム可能である（図６には図示されていないＦＣＥによって）。バッファ５０４の出力信号は、図６の左側に示された小領域を含む領域２０の列の中央に配置されたコンダクタのグループ内のＨＮＦＬコンダクタ２５０の１つに付加される。特に、バッファ５０４の出力信号は領域２０の列の左側に延在するＨＮＦＬコンダクタセグメント２５０へ付加される。反転バッファ５６２（以下により詳細に説明する）の出力信号は、領域２０の右側に延在する同一のＨＮＦＬコンダクタ２５０のセグメントに付加される（左右に延在する各ＨＮＦＬコンダクタ２５０のセグメントは実質的に分離したコンダクタであり、これは分離して駆動可能であり、しばしば総称して単一のＨＮＦＬコンダクタ２５０と呼称される）。
【００５３】
図６の上部左側の小領域３０のＯＵＴ１出力信号は、各ＰＬＣ５１０，５２２，５３０，５４０，５５０，および５６０の１入力端子に付加される。ＰＬＣ５６０の他の入力は、前述したＰＬＣ５０２への入力（１）−（３）と同様になる。ＰＬＣ５６０は、その４つの入力信号のうちのいずれか１つを反転バッファ５６２に付加して、前の段落で説明したように、右側に延在しているＨＮＦＬコンダクタ２５０のセグメントに付加するようプログラムすることができる。
【００５４】
図６の上部左側の小領域３０のいわゆるＬＯＣＡＬ出力信号は、近接する局所フィードバックコンダクタ３１０の１つに付加される。前述したように、各領域２０内の小領域３０の半分のＬＯＣＡＬ出力信号はその小領域の左側の局所フィードバックコンダクタ３１０に付加され、各領域内の小領域の残り半分のＬＯＣＡＬ出力信号はその小領域の右側の局所フィードバックコンダクタ３１０に付加される。
【００５５】
図６内の上部左側の小領域３０のＩＶ出力信号は、図６に部分的に示された行の上方の行内の適宜な位置に延在しているＩＶコンダクタ２２０に付加される。
【００５６】
図６の下部左側の小領域３０の出力信号の目的は、一般的に前述した上部左側の小領域と同様である。ＯＵＴ０信号は、ＰＬＣ５０６への入力の１つである。（再び、このＯＵＴ０信号は左側の別のドライバブロック５００にも付加される。）ＰＬＣ５０６への別の入力は、（１）近接する高速広域垂直コンダクタ２００ｂからの信号、（２）ＩＶ信号２２０、および（３）下部左側の小領域３０の直接合計出力信号である。ＰＬＣ５０６は、その入力信号のうちのいずれかを反転バッファ５０８に付加し、別の近接する、左側に延在するＨＮＦＬセグメント２５０に付加するようプログラムすることができる。
【００５７】
下方左側の領域３０のＯＵＴ１信号は、ＰＬＣ５１０，５２２，５３０，５４０，５５０、および５６４に付加される。ＰＬＣ５６４への他の入力は、前述したＰＬＣ５０６への入力（１）−（３）と同様であり、ＰＬＣ５６４の出力は（バッファ５６６を介して）バッファ５０８が駆動するものと同じＨＮＦＬコンダクタの右方に延在するセグメントに付加される。下方左側の小領域３０のＬＯＣＡＬ出力信号は、近接する局所フィードバックコンダクタ３１０に付加される。下方左側の小領域３０のＩＶ出力信号は、図６の回路を含む行の下側に近接する行内の適宜な位置に延在するＩＶコンダクタ２２０へ付加される。
【００５８】
図６に示された上方右側の小領域３０のＯＵＴ０信号は、各ＰＬＣ５１０，５２２，５３０，５４０，および５５０の１入力端子に付加される。この信号は、図６に示されたものの右側の別の同様なドライバブロック５００にも付加される。上方右側の小領域３０のＯＵＴ１およびＤＳＯ出力信号は、右側のドライバブロックにも付加される。上部右側の小領域３０のＬＯＣＡＬ出力信号は、近接する局所フィードバックコンダクタ３１０に付加される。上部右側小領域３０のＩＶ出力信号は、上方へ延在するＩＶコンダクタ２２０に付加される。
【００５９】
下部右側小領域３０の出力信号の目的は一般的に同様なものである。ＯＵＴ０信号は、各ＰＬＣ５１０，５２２，５３０，５４０，および５５０の１入力端子、ならびに図６に示されたものの右側のドライバブロック５００に付加される。ＯＵＴ１およびＤＳＯ信号も右側のドライバブロック５００に付加される。ＬＯＣＡＬ出力信号は、近接する局所フィードバックコンダクタ３１０に付加される。ＩＶ出力信号は、図６に部分的に示された行の下に近接する行内の同様な位置に向かって下方に延在するＩＶコンダクタ２２０へ付加される。
【００６０】
ＰＬＣ５１０は、（図示されてないＦＣＥによって）その入力信号のうちのいずれかを選択してドライバ５１２に付加するようにプログラムすることができる。ドライバ５１２の出力信号は、ＰＬＣ５１４（例えばデマルチプレクサ）に付加され、これはＦＣＥ（図示されていない）によってプログラムしその入力信号をその出力端子のいずれかに付加することができる。ＰＬＣ５１４の１出力端子は、近接する高速広域垂直コンダクタ２００ｂに接続される。ＰＬＣ５１４の別の出力端子は、近接する高速半垂直コンダクタ２１０ｂに接続される。前述のことより、要素５１０，５１２，および５１４は、左側の小領域３０のＯＵＴ１信号、または右側の小領域３０のＯＵＴ０信号のうちのいずれか１つを、近接する高速広域垂直コンダクタ２００ｂまたは近接する半垂直コンダクタ２１０ｂのいずれかに接続することを可能にする。この要素５１０，５１２，および５１４は、図６に示されたドライバブロック５００が作用する４つの小領域３０のいずれかが、高速広域垂直コンダクタ２００ｂまたは高速半垂直コンダクタ２１０ｂのいずれかを駆動することを可能にする。
【００６１】
まだ説明していないＰＬＣ５２２への入力は：（１）近接する１つの高速広域垂直コンダクタ２００ｂの１つからの信号、（２）近接する高速半垂直コンダクタ２１０ｂの１つからの信号、（３）２つの交互配置垂直コンダクタ信号２２０（そのうち１つは図６に部分的に示された行の上の行から伝送され、他の１つは図６に部分的に示された行の下の行から伝送される）、（４）近接する４本の広域垂直コンダクタ２００ａのうちの１本からの信号（この４つのうちの１つの信号の選択はＰＬＣ５２０によって実施される）である。デバイス１０上の他のＰＬＣと同様に、ＰＬＣ５２２はＦＣＥ（図示されていない）によってその入力のうちいずれか１つを選択してトリステートドライバ５２４に付加するようプログラム制御される。トリステートドライバ５２４は、ＦＣＥ５２６によってオフ（高出力インピーダンス）またはオン（付加されたデータ入力信号を伝送および増幅することができる）のいずれかにプログラム制御される。トリステートドライバ５２４の出力信号は、高速広域水平コンダクタ２３０ｂのうちの近接する１つに付加される。前述のことから、要素５２２，５２４，および５２６が図６に示されたドライバブロック５００が作用する小領域３０のうちのいずれか１つの出力信号が近接する高速広域水平コンダクタ２３０ｂのうちの１つ上に伝送されることが理解される。他の例においては、要素５２２，５２４，および５２６は、近接する高速広域垂直または高速半垂直コンダクタ２００ｂまたは２１０ｂのいずれかからの信号を転向させて前述した高速水平コンダクタ２３０ｂ上に伝送することを可能にする。さらに別の変更例においては、要素５２２，５２４，および５２６は、２つの交互配置垂直コンダクタ信号２２０のいずれか一方を前述した高速広域水平コンダクタ２３０ｂ上に伝送することを可能にする。最後の変更例においては、要素５２０，５２２，５２４，および５２６は、近接する４つの広域垂直コンダクタ信号２００ａのうちの１つを転向させて前述した高速広域水平コンダクタ２３０ｂ上に伝送することを可能にする。
【００６２】
次に、まだ説明していないＰＬＣ５３０への入力について考えると、ＰＬＣ５２０に付加された４つの信号のうちの２つはＰＬＣ５３０にも付加され、近接する２つの半垂直コンダクタ２１０ａからの信号と同様である。ＰＬＣ５２２に付加される交互配置垂直コンダクタ信号の１つは、ＰＬＣ５３０にも付加される。デバイス１０上の他のＰＬＣと同様に、ＰＬＣ５３０は、ＦＣＥ（図示されていない）によってその入力のいずれか１つをドライバ５３２に付加しそのデバイスによって使用するようにプログラムすることができる。ドライバ５３２の出力信号はＰＬＣ５３４に付加される（例えばデマルチプレクサ）。ＰＬＣ５３４は、ＦＣＥ（図示されていない）によってその入力信号をその出力線のいずれかに付加するようプログラム制御される。ＰＬＣ５３４の出力線のうちの２つは、近接する２つの広域水平コンダクタ２３０ａにそれぞれ接続される。ＰＬＣ５３４の第３の出力線は、近接する半垂直コンダクタ２１０ａに接続される。前述のことから、要素５３０，５３２，および５３４は、図６に示された４つの小領域３０のうちのいずれか１つの出力信号を近接する通常（ノーマル速度）の水平および垂直コンダクタ２３０ａおよび２１０ａのいずれかに伝送するために使用することができる。他の例において、要素５３０，５３２，および５３４は、近接する通常（ノーマル速度）コンダクタ２００ａおよび２１０ａからの信号または相互配置垂直コンダクタ２２０からの信号を通常の水平または垂直コンダクタ２３０ａまたは２１０ａ上に伝送するために使用することができる。従って、５３０，５３２，および５３４は、例えば、信号を通常の垂直コンダクタから通常の水平コンダクタへ転向させることを可能にする。
【００６３】
要素５４０，５４２，および５４４への入力およびこれからの出力は、一般的に前述した要素５３０，５３２，および５４０のものと同様である。異なるのは、（１）ＰＬＣ５３０のものとは異なったコンダクタ２２０がＰＬＣ５４０に接続される点と、（２）コンダクタ２１０ａの１つのみがＰＬＣ５４０に接続され、（３）ＰＬＣ５４４の３番目の出力が半垂直コンダクタ２１０ａではなく近接する広域垂直コンダクタ２００ａに付加される点である。しかしながら、要素５４０，５４２，および５４４は、要素５３０，５３２，および５３４に比べてより多くの同じ基本型のルーティング能力を提供する。
【００６４】
まだ説明していないＰＬＣ５５０の入力は、近接する４つのコンダクタ２００ａおよび近接する３つのコンダクタ２１０ａからの信号である。デバイス１０上のその他の類似のＰＬＣと同様に、ＰＬＣ５５０は（図示されてないＦＣＥによって）付加された信号のうちのいずれか１つを選択してドライバ５５２に使用するようプログラムすることができる。ドライバ５５２は受信した信号を増幅して、増幅された信号を近接する直接水平コンダクタ２４０のいずれか１つに付加する。従って、要素５５０および５５２は、図６に示された小領域３０のいずれか、または複数の近接する垂直コンダクタ２００ａまたは２１０ａのいずれかが、近接する直接水平コンダクタ２４０をドライブすることを可能にする。例えば、要素５５０および５５２は、垂直コンダクタ２００ａまたは２１０ａからの信号を水平コンダクタ２４０に転向させることを可能にする。
【００６５】
前述のことから、本発明に従って構成されたプログラマブルロジックデバイス１０がノーマル速度形式およびより高い速度（“高速”）形式の両方の形式で設けられた相互接続リソースを少なくともいくつか備えることが理解されよう。両方の形式は、互いに“構造的に類似”していることが好適である。“構造的に類似”とは、両方の形式の相互接続リソースのいずれを使用しても一般的に同形式のルーティングが可能であることを意味する。いずれかの形式の相互接続リソースを使用する基本的に類似の経路を介して同一のソースからの信号が得られる。しかしながら、高速形式のリソースを介するとノーマル速度形式のリソースを介するよりも、信号は大幅に速く伝送される。
【００６６】
高速形式の相互接続リソースは、いくつかの経路よりも高速に形成することができる。例えば、高速コンダクタは、通常速度コンダクタに比べて幅広かつ互いの離間距離を広げて構成することができる。特に、高速コンダクタはノーマル速度コンダクタに比べて２ないし３倍の幅をもって形成することができる。これに代えてまたは加えて、高速コンダクタ間の離間距離は、ノーマル速度コンダクタ間の離間距離に比べて２ないし３倍とすることができる。高速コンダクタに対して厚い上金属層を使用することが好適であり、他方通常のルーティングは薄い低金属層を使用する。この技術を使用することによって、高速コンダクタのＲＣ時定数はノーマル速度コンダクタのＲＣ時定数に比べて２０％削減される。ドライバ（例５１２および５２４）およびパスゲートを提供する高速コンダクタは、より大きくかつより強力（例えば、ノーマル速度ドライバ５３２，５４２，５５２に比べて）に構成することができる。例えば、高速ドライバは、ノーマル速度ドライバのトランジスタサイズの約２倍のトランジスタサイズを有することができる。加えて、ノーマル速度ドライバは出力デマルチプレクサを有するドライバを使用して実施されるのに対して、構造的には同様な高速ドライバはより好適な速度を達成するために個別のトリステートドライバとして実施することが好適である。高速コンダクタに接続されるＰＬＣ（例えば、マルチプレクサ５１０およびデマルチプレクサ５１４）は、ノーマル速度コンダクタに接続された対応する要素（例えば５３０および５３４）に比べてより少ない入力（マルチプレクサに対し）およびより少ない出力（デマルチプレクサに対して）をもって形成することができる。高速コンダクタは、対応するノーマル速度コンダクタに比べて、より少ないタップを有し、従ってより少ないローディングを有する。これらの技術のいずれかまたは全てを、構造的には同様なノーマル速度コンダクタに比べて大幅に速い高速相互接続リソースを形成するために使用することができる。例えば、本発明に従って、デバイス１０において、ノーマル速度相互接続リソースのみによって達成される同一の接続に比べて約２倍の速度を達成するいずれかの相互接続（特に比較的長い相互接続）の提供を少なくとも補助する高速相互接続リソースを得るという設計目的を達成することができる。
【００６７】
デバイス１０における構造上は類似のノーマル速度および高速相互接続リソースの特定の例は以下のものである：ノーマル速度相互接続リソースを介して領域２０内の第１行第１列の第１小領域３０から領域２０の第２の遠隔行および第２の遠隔列の第２の小領域３０へ信号を伝送するため、ノーマル速度要素５４０，５４２，および５４４を使用して第１の小領域から近接するノーマル速度垂直コンダクタ２００ａへ伝送する。ノーマル速度垂直コンダクタ２００ａを使用して第１の小領域３０の行から第２の小領域３０へ伝送する。目的の行において、ノーマル速度要素５３０，５３２，および５３４を使用して前記垂直コンダクタ２００ａからノーマル速度水平コンダクタ２３０ａへ伝送する。目的の列において、ノーマル速度要素２７０，２７４，等を使用し、目的の小領域への入力回路３００／３２０へ伝送する。反対に、高速相互接続リソースを介して同じ相互接続を形成するため、高速要素５１０，５１２，および５１４を使用して第１の小領域３０の出力信号を近接する高速垂直コンダクタ２００ｂまたは２１０ｂに付加する。目的の行において、高速要素５２２および５２４を使用して信号を高速垂直コンダクタから高速水平コンダクタ２３０ｂに転向させる。目的の列において、高速要素２７６を使用して信号を高速水平コンダクタ２３０ｂから目的小領域３０の入力回路３００／３２０に伝送する。
【００６８】
前述のことより、符号“ｂ”を付けた参照符号で示した高速コンダクタに加えて、デバイス１０の高速相互接続リソースは、ＰＬＣ、ドライバ等を含み、これらは主に前記の高速コンダクタに作用する。例として、ＰＬＣ５１０，５１４，５２２，および２７６、ならびにドライバ５１２，５２４，および２７８が挙げられる。構造的に類似のノーマル速度ＰＬＣおよびドライバ（主にノーマル速度コンダクタ）としては、５３０，５３２，５３４，５４０，５４２，５４４，５５０，５５２，２７０，および２７４が挙げられる。
【００６９】
構造的に類似する高速およびノーマル速度形式の特定の相互接続リソースの装備に加えて、デバイス１０はデバイスの全体速度を増加させることを補助する他の相互接続リソースを備えることができる。これらのリソースの例としては、ＨＮＦＬコンダクタ２５０（高速部分的相互接続コンダクタと呼ばれることもある）、およびこれらのコンダクタをドライブする結合されたＰＬＣ５０２，５０６，５６０，５６４，および５０４，５０８，５６２，ならびに５６６が挙げられる。コンダクタ２５０は比較的短く従って少数のタップを有するため高速である。これらをドライブするＰＬＣおよびドライバは高速に形成することができる（例えば、比較的少ない入力を有するＰＬＣと比較的大型かつ強力に形成されたドライバを使用することによって）。
【００７０】
デバイス１０上に設けられこのデバイスの速度を増加させる相互接続リソースの別の例は、ＩＶコンダクタ２２０である（ブリッジング相互接続コンダクタと呼ばれることもある）。これらのコンダクタは、隣接するまたは近傍にある領域２０の行の間において比較的直接および短い接続を形成する。これらは比較的強力なドライバ４８４によってドライブすることができる。これらを使用する場所において、１つの行から他の行への伝送を行うために長い、従ってより低速の汎用垂直相互接続コンダクタ２００／２１０を使用する必要が除外される。
【００７１】
図７Ａには、二次信号コンダクタリソース領域１２０および関連する回路の実施例が詳細に示されている（図７Ａの回路に示されている追加的な要素は図７Ｂに示されている）。４本のコンダクタ６１０は、実質的にデバイス１０の垂直方向寸法全体にわたって垂直に延在している。コンダクタ６１０のそれぞれが、４つの専用のクロック信号入力端子６１２−１ないし６１２−４のうちのそれぞれ１つからの４つのクロック信号のうちの１つをそれぞれ伝送し、前記のクロック信号入力端子は、デバイス１０の中央付近に配置され、デバイス全体にわたったクロック信号スキューを削減するよう作用する。コンダクタ６１０上のクロック信号は、各行に近接する水平クロックコンダクタ６２０を分岐させることによって水平に領域２０，４０等の各行にに対して配分される。コンダクタ６２０は、参照符号２６０によって既に特定されたコンダクタ（例えば図３）の中に含まれるものである。コンダクタ６２０上の信号は、近接する（従って結合された）ロジック領域２０またはＩ／Ｏセル６３０に付加される。
【００７２】
６本の追加的なコンダクタ６４０は、実質的にデバイス１０の垂直方向の寸法全体にわたって垂直に延在している。各コンダクタ６４０は、６個のいわゆる高速信号のうちの１つをそれぞれ伝送する。これらの高速信号のそれぞれは、デバイス１０の中央付近に配置された６個の専用入力端子６４２−１ないし６４２−６のうちの適宜な１つ、または同様にデバイス１０の中央付近に配置されたロジック領域２０−１／２０−２のうちの選択されたもののいずれかから伝送される。前述した高速信号を供給するための追加出力線を有することを除いて、ロジック領域２０−１ないし２０−２はデバイス１０上の他のロジック領域と同様なものとすることができる。ＰＬＣ６４４は、各入力端子６４２と結合され、入力端子の信号またはロジック領域２０−１あるいは２０−２のいずれかを高速信号としてプログラム制御で選択する。各ＰＬＣ６４４の出力信号は、相関するバッファ６４６を介してコンダクタ６４０のうちの１つにそれぞれ付加される。各ＰＬＣ６４４の出力信号は、さらに、領域２０−１および２０−２を含む行と結合された６本の水平高速コンダクタ６５０のうちの１本、ならびに領域２０−１および２０−２を含むロジック領域の行と結合されたＩ／Ｏ行４０と結合された６本の同様な水平高速コンダクタ６５０のうちの１本に付加される。（この点について先に説明したように、Ｉ／Ｏ行４０とロジック領域行との間の完全な相関は以下のものである（図１参照）：それらは、（１）最上のＩ／Ｏ行４０と最上のロジック領域行、（２）上から２番目のＩ／Ｏ行４０と上から４番目のロジック領域行、（３）上から３番目のＩ／Ｏ行４０と上から７番目のロジック領域行、（４）上から４番目のＩ／Ｏ行４０と上から１０番目のロジック領域行、（５）最底部のＩ／Ｏ行４０と最底部のロジック領域行である。
【００７３】
前の段落で参照符号２０−１および２０−２として説明したもの以外のロジック領域行およびＩ／Ｏ行は、結合された水平高速コンダクタ６５０を備えている。これらの他のロジック領域行のそれぞれに対して、結合された各コンダクタ６５０上の信号がコンダクタ６４０またはその行内かつ領域１２０に近接するロジック領域２０のいずれか一方からそれぞれ伝送される。ＰＬＣ６４８は、これらの追加的な高速信号選択を形成するために設けられている。前の段落で説明したもの以外の各Ｉ／Ｏ行４０に対して、結合されたコンダクタ６５０上の信号は、このＩ／Ｏ行に結合されたロジック領域行に結合されたコンダクタ６５０上の信号と同一である。
【００７４】
コンダクタ６５０も先に参照符号２６０で示したコンダクタ（例えば図３）の中に含まれている。各ロジック領域行またはＩ／Ｏ行に結合されたコンダクタ６５０上の信号は、その行内のロジック領域２０またはＩ／Ｏセル６３０に付加される。
【００７５】
前述のことから、ロジック領域２０（およびこのロジック領域行に結合された各Ｉ／Ｏ行４０）の各行に結合された各高速コンダクタ６５０の信号は、局所的に形成するか（その行の中央付近のロジック領域２０の１つによって）、またはより広域的に形成することができる（ロジック領域２０−１／２０−２の１つ、または入力ピン６４２から）。高速コンダクタ６４０／６５０を入力端子６４２またはロジック領域２０のいずれかによってドライブ可能にすることにより、入力端子に加えて内部で形成されたロジックによってロースキュー二次信号のいくつかをドライブすることが可能になる。各高速コンダクタ６４０／６５０を好適にはただ１つの入力端子またはただ１つの特定ロジック領域によってドライブ可能にすることにより、ロジック領域出力信号または入力端子信号を広域二次信号コンダクタネットワーク上に伝送するために必要なルーティングの総量を削減することができる。広域クロック信号を専用の入力端子６１２によって直接ドライブ可能にすることにより、これらの信号を最大限に高速化することができる。専用ソース６１０／６２０／２０−１／２０−２等の全てを選択してデバイスの中央付近に配置することにより、デバイスを介する信号スキューの総量を削減することができる。ロジック領域２０の各行に結合された高速コンダクタ６５０の信号を局所的な配置する可能性により、デバイス１０が同時に作用する他の多数の二次信号を有することが可能なる（すなわち、１０個の広域信号＋Ｎ×６個の局所信号であり、Ｎはロジック領域の行数である）。加えて、ロジック領域によってその行内に配置される局所二次信号は、中央スパインから広域的にドライブされるために必要なものに比べて小さな遅延を有する。
【００７６】
前述したコンダクタ６２０および６５０に加えて、ロジック領域２０またはＩ／Ｏセル６３０の各行はその長さにわたって延在する２本の局所高速コンダクタ６６０を備えている。コンダクタ６６０は、既に参照符号２６０によって示されたコンダクタ（例えば図３において）に含まれる。図７Ｂには、これらのコンダクタの信号源が示されている。各Ｉ／Ｏセル行およびこのＩ／Ｏセル行に結合されたロジック領域行に対して、相関するコンダクタ６６０上の信号は、そのＩ／Ｏセル行の中央付近の入力端子６６２、またはそのロジック領域行の中央付近のロジック領域２０のいずれかから伝送することができる。ＰＬＣ６６４は、これらの入力端子とロジック領域の間で信号を選択する。Ｉ／Ｏセル行に結合されていない各ロジック領域行はに対して、コンダクタ６６０の信号はその行の中央付近のロジック領域２０から伝送することができる。
【００７７】
図７に示された回路への変更は、各ロジック領域内に局所的行入力端子（例えば入力端子６６２）を備えることを含み、これはその行内のロジック領域２０からのコンダクタをドライブする代わりに、この行に対する二次信号６５０および／または６６０をドライブする。別の可能性は、局所的二次信号６５０／６６０をより繊細に処理するか、あるいはより粗く処理することである（例えば、これらの信号を半分の行によってグループ化するか、または局所二次信号を個々の行ではなくデバイス１０の４分割によってグループ化することによって）。
【００７８】
図７には、さらに各Ｉ／Ｏ行４０がこれに結合されたロジック領域２０の行と二次信号６５０／６６０を分割する方式が示されている。従って、図７の上端付近に示されている典型的なＩ／Ｏ行４０は、このＩ／Ｏ行の直ぐ下にある結合されたロジック領域行と同一の二次信号６５０／６６０を有する。同様に、図７の底部付近に示された他のＩ／Ｏ行４０も、このＩ／Ｏ行の直ぐ下にある結合されたロジック領域行と同一の二次信号６５０／６６０を有する。
【００７９】
図７には、各Ｉ／Ｏ行４０と対応するロジック領域２０との間の相関性の別の側面も示されている。このことは、Ｉ／Ｏ行４０内のＩ／Ｏセル６３０に対する追加的入力信号源として各Ｉ／Ｏ行４０に対して結合されたロジック領域内における領域フィーディングコンダクタ３００および局所フィードバックコンダクタ３１０の使用に関する。例えば、コンダクタ３００／３１０は、図７内のロジック領域２０−１に結合され、そのロジック領域の上側のＩ／Ｏセル６３０まで延在しており、従ってこれらのコンダクタ３００／３１０上の信号はこのＩ／Ｏセルに対する追加的入力として使用することができる。別の例として、図７の上部右側付近に示されたロジック領域２０に結合されたコンダクタ３００／３１０は、そのロジック領域上側のＩ／Ｏセル６３０まで延在しており、従ってこれらのコンダクタ３００／３１０上の信号はそのＩ／Ｏセルに対する追加的な入力として使用することができる。次に説明する図８は、代表的なＩ／Ｏセル６３０の好適な実施例の構成に関してより詳細に示しており、これにはこのセルに付加される種々の信号が使用される方式が含まれている。
【００８０】
典型的なＩ／Ｏセル６３０の実施例が図８により詳細に示されている。Ｉ／Ｏセル６３０は、Ｉ／Ｏ端子７１０、入力レジスタ７４０、出力レジスタ７２０、およびトリステート制御信号（または出力付勢）レジスタ７３０を含んでいる。レジスタ７２０，７３０，および７４０のそれぞれは、データ入力Ｄ、クロック入力、クロック付勢入力ＥＮ、クリア／プリセット入力Ｃ／Ｐ、およびデータ出力Ｑを備えている。入力レジスタ７４０のデータ入力（Ｉ／Ｏ端子７１０から伝送される）を除いて、レジスタ７２０，７３０，および７４０への全ての入力は、Ｉ／Ｏセルへの４つのクロック入力６２０、Ｉ／Ｏセルへの６個の高速コンダクタ６５０入力、Ｉ／Ｏセルへ入力可能な３６個のコンダクタ３００／３１０上の種々の信号の中から選択することができる。円７５４は、種々のコンダクタ６２０／６５０／３００／３１０と種々のレジスタ入力との間における可能な接続性を示している。各ＰＬＣ７５６は、接続可能ないくつかの信号の中から１つの信号を選択することを実施する。プログラム可能な反転要素７５８（これは図５Ａの回路４５０と同様である）は、各ＰＬＣ７５６の出力信号をデバイスのユーザの要望に応じて反転するかまたは反転しないかを可能にする。
【００８１】
図７に示されまた前の図においても説明したように、図８に示されているコンダクタ３００／３１０は、領域フィーディングコンダクタ３００および図８に示されたＩ／Ｏセル６３０を含んだＩ／Ｏ行４０に結合されたロジック領域の行からのフィードバックコンダクタ３１０である。（これらの各行４０内のいくつかのＩ／Ｏセルは、通常相関するロジック領域行内の異なった一つ一つの領域２０からのコンダクタ３００／３１０を備えている。）図８内のコンダクタ６２０および６５０は、図７に示された水平コンダクタ６２０および６５０の支線であり、これは図８のＩ／Ｏセル６３０を含むＩ／Ｏ行に結合されている。
【００８２】
出力レジスタ７２０および出力付勢レジスタ７３０の両方をクロックするために同一の信号が使用される。全てのレジスタ７２０，７３０，および７４０は、同一のクリア／プリセット入力信号を有する。各レジスタはクリア／プリセット入力信号に応答してクリアまたはプリセットするようプログラムすることができる。
【００８３】
出力レジスタ７２０のデータ出力信号Ｑは、ＰＬＣ７２２の一入力端子に付加される。ＰＬＣ７２２への他の入力は、レジスタ７２０へデータ入力である。従って、ＰＬＣ７２２は、レジスタ７２０によって登録されているかまたはこのレジスタを迂回した、デバイス１０の出力信号をトリステートドライバ７２４に付加するように使用することができる。出力付勢レジスタ７３０のデータ出力信号Ｑは、ＰＬＣ７３２の一入力端子に付加される。ＰＬＣ７３２への他の入力は、レジスタ７３０への未記録データ入力である。ＰＬＣ７３２の出力信号は、トリステートドライバ７２４のトリステート制御入力端子に付加される。従って、トリステートドライバ制御信号は、レジスタ７３０に付加される記録されたまたは未記録のいずれかのデータ信号である。トリステートドライバ７２４の出力信号は、Ｉ／Ｏ端子７１０に付加される。
【００８４】
入力側において、Ｉ／Ｏ端子７１０からの入力信号が入力レジスタ７４０のデータ入力端子Ｄに付加される。この信号は、各ＰＬＣ７４２−１および７４２−２の一入力端子に付加される。これらのＰＬＣのそれぞれへの別の入力は、入力レジスタ７４０のＱ出力信号である。ＰＬＣ７４２−１の出力信号はバッファ７４４−１を介してデバイス１０のロジックへ付加される。同様に、ＰＬＣ７４２−２の出力信号は、バッファ７４４−２を介してデバイス１０のロジックに付加される。例えば、各バッファ７４４の出力信号は、デバイスの１つまたは複数の相互接続コンダクタ２００ａ／ｂ，２１０ａ／ｂ，２３０ａ／ｂ，２４０等に付加される（例えば、トリステートドライバまたはパスゲートデマルチプレクサ（図示されていない）を介して）。従って、経路７４２−１／７４４−１および７４２−２／７４４−２のいずれかまたは両方が、端子７１０からの記録されたまたは未記録のいずれかのＩ／Ｏ信号に対して使用される。言い換えると、端子７１０は記録されたまたは未記録の両方の形式でデバイス１０のロジックに使用され得る。
【００８５】
レジスタ７２０および７３０は、それぞれバッファ７２６および７３６を介してのデバイスのロジックへのフィードバック経路を有することが示されている。これらのフィードバック経路は、前述したようにトリステートドライバまたはパスゲートデマルチプレクサを介してデバイスの適宜な相互接続コンダクタに接続することもできる。
【００８６】
図９には、Ｉ／Ｏセル６３０および結合されたＩ／Ｏ端子７１０が好適には各Ｉ／Ｏ行４０を横切って配置されることが示されている。言い換えると、これらのＩ／Ｏ端子７１０は、デバイス１０の周囲部には配置されていない。それに代えて、それらはいくつかのＩ／Ｏ行４０のそれぞれを横断して離間させることによってデバイスの内部に配置されている。これによってデバイス１０上に設けられるＩ／Ｏ端子の数を増加させることができる。
【００８７】
例えば図５に示されているように小領域３０をカスケード接続することによって（すなわち、ＤＣＩＮおよび／またはＤＣＯＵＴ信号を使用する）、２つまたはそれ以上の小領域を、各小領域が個々に有する４つの入力よりも多い入力を有する単一のルックアップテーブルとして、効果的に共に使用することができる（デバイスのより一般的な相互接続リソースに依存することなく）。例えば、２つの小領域３０をカスケード接続し、５，６，または７入力の多数の（しかしながら全てではない）可能な論理的組合わせを形成することができる。一般的に、より大きなルックアップテーブルは、デバイスの一般的相互接続リソースを介して接続しなければならないいくつかの小さなルックアップテーブルに比べて、より多数かつより高速な入力の論理的組合わせを形成できるという利点を有する。他方、比較的少数の入力の論理的組合わせを形成することが求められている場合、大きなルックアップテーブルは不経済なものである。従って、比較的小さなルックアップテーブル（例えば４入力）をカスケード接続または直接接続する可能性は、良好な解決策を見出すものである。比較的多数の入力の論理的組合わせを形成する必要がある場合、２つまたはそれ以上の小領域３０をカスケード結合することができる。他方、比較的少数の入力の論理的組合わせを形成する必要がある場合、ルックアップテーブルのリソースを過度に浪費することを防止するため小領域３０を個別に使用することができる。勿論、既に説明したように、４入力より多い全ての論理的組合わせが２つまたはそれ以上の小領域３０によって形成されるものではない。
【００８８】
図１０には、２つの小領域３０内の４入力ルックアップテーブルがカスケード形式の直接接続を介して選択的に相互接続され、これによって真の５入力ルックアップテーブル（すなわち、５入力の全ての論理的組合わせを形成することが可能なルックアップテーブル）が形成される代替的な実施例が示されている。要素８１０−１および８１０−２は、第１小領域３０−１の一部を形成する２つの３入力ルックアップテーブルである。ＰＬＣ８１２−１もこの第１小領域３０−１の一部を形成する。それ自体で使用するものとして、小領域３０−１はＯＵＴ１としてその４つの入力Ａ１−Ｄ１のいずれかの論理的組合わせ形成する。
【００８９】
要素８１０−３および８１０−４は、第２の小領域３０−２の一部を形成する２つの３入力ルックアップテーブルである。ＰＬＣ８１２−２，８１４−１，８１４−２，および８１８、ならびにＦＣＥ８１６は、小領域３０−２の追加的な要素である。小領域３０−２がそれ自体によって使用されている場合、ＰＬＣ８１４−１が入力Ｄ２をＰＬＣ８１２−２の制御入力端子に付加し、ＰＬＣ８１４−２が固定ＶＣＣ（論理１）をＰＬＣ８１８の制御入力端子に付加することを付勢するように、ＦＣＥ８１６をプログラムすることができる。ＰＬＣ８１８へのロジック１制御入力は、この要素がＰＬＣ８１２−２の出力信号を出力端子ＯＵＴ２に伝送することを付勢する。このことは、小領域３０−２がＯＵＴ２として小領域３０−２の４つの入力Ａ２−Ｄ２のいずれかの論理的組合わせを形成するために使用されることを可能にする。
【００９０】
他方、図１０に示されている全ての回路が５入力ルックアップテーブルとして共に使用される場合、ＦＣＥ８１６は、ＰＬＣ８１４−１がＰＬＣ８１２−２の制御入力端子に付加し、ＰＬＣ８１４−２がＰＬＣ８１８の制御入力端子に入力Ｄ２を付加することを付勢するようにプログラムすることができる。加えて、同一の信号Ａ−Ｃがそれぞれ入力Ａ１−Ｃ１およびＡ２−Ｃ２に付加される。このことは、デバイス１０の一般的な相互接続リソース（例えば図３および図４に示されている要素）を適宜にプログラムすることによって実施することができる。５入力ルックアップテーブルへの４番目の入力は入力Ｄであり（入力端子Ｄ１に付加される）、５入力ルックアップテーブルへの５番目の入力は入力Ｅである（入力端子Ｄ２に付加される）。入力Ｄに基づいて、ＰＬＣ８１２−１および８１２−２は３入力ルックアップテーブル８１０−１ないし８１０−４の４つの出力のうちから２つの信号を選択する。ＰＬＣ８１８は、これら２つの信号から入力Ｅに基づいて１つの信号（ＯＵＴ２）の最終選択を行う。従って、この方式で共に使用される場合、図１０に示された回路は５入力ルックアップテーブルとして５入力Ａ−Ｅのいずれかの論理的組合わせを形成するよう使用される。
【００９１】
図１０には２つの４入力ルックアップテーブルを１つの５入力ルックアップテーブルに選択的に変換するための回路が示されているが、２つのＭ＋１入力ルックアップテーブルを１つのＭ＋２ルックアップテーブルに変換する原理は一般的に適用することができ、ここでＭは要素８１０−１等の最初のルックアップテーブルの入力数である。図１０において、Ｍは数値３を有しているが、図１０に示された形式の回路は容易に２，４，５，６，７等の他のＭ数値に変更することができる。
【００９２】
小領域３０をカスケード接続するためのさらに別の回路が図１１に示されている。図５に示された主要な実施例においては、ＰＬＣ４０８の出力信号は、このＰＬＣ４０８を含む小領域のルックアップテーブル部分の直接接続出力信号ＤＣＯＵＴおよびメインデータ出力信号の両方を提供する。図１１に示された代替的な実施例において、各小領域３０−１と３０−２は、２つのＰＬＣ９１２−１および９１２−２（小領域３０−１について）、ならびに９１２−３および９１２−４（小領域３０−２について）を備えている。各小領域３０内において、両方のＰＬＣ９１２は、その小領域内のＰＬＣ９１４の出力信号によって並行して制御される。各小領域において、ＰＬＣ９１４は結合されたＦＣＥ９１６によってプログラム制御され、その小領域に対してＤ入力またはカスケード入力のいずれかを出力する。最後に、各小領域において、ＰＬＣ９１２のうちの１つがこの小領域のメインデータ出力信号を選択し、第２のＰＬＣ９１２は同じ信号選択を行ってこの小領域のカスケード出力信号を形成する。各小領域３０内に２つの分離したＰＬＣ９１２を設けることによって、メインデータ出力信号およびカスケード出力信号のいずれもこれらの２つの信号以外によってロードされることはない。このことはこれら両方の信号の速度を増加させることを促進する。別の観点において、図１１に示された実施例は図５に示された主要な実施例と論理的に同一である。
【００９３】
図１０および図１１は、いずれも図５の主要な実施例に比べて簡略化して示されている。しかしながら、図５に示された他の特徴のいずれもが図１０および図１１に適用し得ることが理解される。
【００９４】
図１２には、データプロセッシングシステム１００２内に設けられた本発明に係るプログラマブルロジックデバイス１０が示されている。データプロセッシングシステム１００２は：プロセッサ１００４と；メモリ１００６と；Ｉ／Ｏ回路１００８と；および周辺装置１０１０のうちの１つまたは複数を備えることができる。これらの構成要素はシステムバス１０２０によって結合されるとともに、エンドユーザシステム１０４０内に含まれた回路基板上に装着される。
【００９５】
システム１００２は、コンピュータネットワーキング、データネットワーキング、計測、画像処理、デジタル信号処理、またはその他のプログラマブルまたはリプログラマブルロジックの利点を必要とする適用方法において、広範囲な適用分野で使用することができる。プログラマブルロジックデバイス１０は、広範囲な異なったロジック機能を実行するために使用することができる。例えば、プログラマブルロジックデバイス１０は、プロセッサ１００４と共同動作するプロセッサまたはコントローラとして構成することができる。プログラマブルロジックデバイス１０は、システム１００２内において分配されたリソースへのアクセスを仲介するアービタとして使用することもできる。さらに別の例において、プログラマブルロジックデバイス１０は、プロセッサ１００４とシステム１００２内の別の構成要素の１つとの間のインタフェースとして構成することができる。システム１００２は単に例示的なものであり、本発明の真の視点および精神は請求の範囲によって定義されることが理解されよう。
【００９６】
本発明の特徴ならびにデバイスの種々の構成要素（例えば前述したＰＬＣおよびＰＬＣを制御するＦＣＥ等）を備えるプログラマブルロジックデバイス１０を実施するために、種々の技術を使用することができる。例えば、各ＰＬＣは、複数の入力のいずれか１つを出力に接続するためのスイッチまたはスイッチ群等の比較的に単純にプログラム可能なコンダクタとすることができる。他方、各ＰＬＣは、接続の形成と並んでロジックの実行（例えば複数の入力の論理的な結合）も可能な幾分複雑な要素とすることもできる。後者において、例えば、各ＰＬＣは、積算項ロジック、ＡＮＤ、ＮＡＮＤ、ＯＲ、またはＮＯＲ等の命令実行機能とすることができる。ＰＬＣを実施するための好適な構成要素としては、ＥＰＲＯＭ、ＥＥＰＲＯＭ、パストランジスタ、トランスミッションゲート、アンティヒューズ、レーザヒューズ、メタルオプション接続器等が挙げられる。前述したように、ＰＬＣの種々の要素は、種々のプログラマブル機能制御要素（“ＦＣＥ”）によって制御することができる。（特定のＰＬＣ機器（例えば、ヒューズおよびメタルオプション接続器）においては、独立したＦＣＥデバイスは必要とされない。）ＦＣＥもいくつかの異なった方式で実施することができる。例えば、ＦＣＥは、ＳＲＡＭ、ＤＲＡＭ、ファーストインファーストアウト（“ＦＩＦＯ”）メモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、機能制御レジスタ（例えば、ウォールストロムの米国特許第３４７３１６０号参照）、強誘電メモリ、ヒューズ、アンティヒューズ等とすることができる。前述した種々の例により、本発明は、一回のみプログラム可能なデバイス、またはリプログラマブルデバイスのいずれに適用することもできる。
【００９７】
前述の説明は本発明の原理を単に例示するものであり、当業者においては本発明の精神を逸脱することなく、種々の設計変更をなし得ることが理解されよう。例えば、デバイス１０上の多様な形式のリソースの数は、添付図面および説明において示された実施例の数字とは異なったものとすることができる。これは、種々の形式の回路の行および列の数、各領域２０内の小領域３０の数、種々の形式の相互接続コンダクタの数、種々の形式の相互接続コンダクタの間における相互接続を形成するためのＰＬＣの数およびサイズ等に該当する。また、“垂直”および“水平”、“左”および“右”、“上”および“下”、“行”および“列”等の種々の方向および位置的な用語は、単に便宜的に使用しているものであり、これらの用語によって固定的または絶対的な方向的または位置的限定を意図するものではない。例えば、本発明に係るデバイスは任意の方向性を有することができる。方向を変更した場合、異なった方向的または位置的用語をその説明に使用することができるが、これは本発明の視点および精神に係る基本的な特徴を変更するものではない。“領域”および“小領域”等の用語も単に一般的に使用しているものであり、同様な回路に対して関連する用語またはその他用語を使用することもできる。従って、これらの用語は意味において逆転して使用することもでき、領域／小領域の序列は重要でない。他方、本発明の視点に係るデバイスは、小領域に分割されていないプログラマブルロジック領域を備えることもできる。ルックアップテーブルロジックも使用され、実施例において図示および説明しているが、必要に応じてこれに代えて他の種類のロジックを使用し得ることは勿論である。例えば、ペダーソン氏等の米国特許第５２４１２２４号およびパテル氏の米国特許第５３７１４２２号公報（これらはともに全体的に参照に組み入れてある）に関連する第１の例において考慮したように、ルックアップテーブルロジックに代えて積和ロジックを使用することもできる。ここでは特定のプログラマブルロジックデバイス構造に関して説明したが、本発明の種々の特徴は、フリーマン氏の米国特許第３４３６３号公報、クリフ氏等の米国特許第５６８９１９５号公報、および１９９９年３月１０日に出願されたジェファーソン氏等の米国特許出願０９／２６６２３５号公報（これらは全て全体的に参照に組み入れてある）等に記載されているその他の多様な構造のプログラマブルロジックデバイスに適用することができる。
【図面の簡単な説明】
【図１】  本発明に従って構成される例示的なプログラマブルロジックデバイスの概略ブロック線図である。
【図２】  本発明に従った代表的かつ例示的な相互接続リソースを加えた図１のデバイスの部分拡大図である。
【図３】  本発明に従って図１および図２に示されたデバイスに追加的に使用する代表的かつ例示的な相互接続リソースを示す概略ブロック線図である。
【図４】  図１および図２のデバイスに適用される別の代表的かつ例示的な相互接続リソースを示す概略ブロック線図である。
【図５Ａ】  本発明に従って図１および図２のデバイス上において使用する代表的かつ例示的なプログラマブルロジックおよび関連回路を示す概略ブロック線図である。
【図５Ｂ】  本発明に従って図１および図２のデバイス上において使用する代表的かつ例示的なプログラマブルロジックおよび関連回路を示す概略ブロック線図である（図５Ａおよび図５Ｂは、図５と総称することもある）
【図６】  本発明に従って図１および図２に示されたデバイスに使用するさらに別の代表的かつ例示的な相互接続リソースを示す概略ブロック線図である。
【図７Ａ】  図１の本発明の回路の別の代表的な部分の例示的な実施例を詳細に示した概略ブロック線図である。
【図７Ｂ】  図７Ａの回路に関する追加的な要素で図７Ａに示されていないものを示した概略ブロック線図である。図７Ａおよび図７Ｂは、図７と総称することもある。
【図８】  図７の回路の代表的な部分を詳細に示した概略ブロック線図である。
【図９】  図１の本発明の回路のさらに別の代表的な部分の例示的な実施例を示す概略ブロック線図である。
【図１０】  図５の一部分の本発明に従った別の実施例を示す概略ブロック線図である。
【図１１】  図５の一部分の本発明に従ったさらに別の実施例を示す概略ブロック線図である。
【図１２】  本発明に係るプログラマブルロジックデバイスを使用する例示的なシステムを示す概略ブロック線図である。
【図１】
0004206203.tif 000002
【図２】
0004206203.tif 000003
【図３】
0004206203.tif 000004
【図４】
0004206203.tif 000005
【図５Ａ】
0004206203.tif 000006
【図５Ｂ】
0004206203.tif 000007
【図６】
0004206203.tif 000008
【図７Ａ】
0004206203.tif 000009
【図７Ｂ】
0004206203.tif 000010
【図８】
0004206203.tif 000011
【図９】
0004206203.tif 000012
【図１０】
0004206203.tif 000013
【図１１】
0004206203.tif 000014
【図１２】
0004206203.tif 000015