(57)【特許請求の範囲】
【請求項１】
複数個の形態特定可能論理ブロック及び前記形態特定論理ブロックへ信号を送信する相互接続資源とを有しているプログラム可能論理装置において、各形態特定可能論理ブロックが論理／メモリを有しており、それが、
前記相互接続資源から第一組の入力信号を受取るための第一複数個の入力端子、
前記第一複数個の入力信号に応答してアドレス信号を発生するデコーダ、
複数個のビット値を格納するためのプログラム可能要素と、前記アドレス信号を受取るために前記デコーダへ接続しているワード線と、前記アドレス信号に応答して前記プログラム可能要素ヘビット値を送信するビット線とを具備しているアレイ、
前記第一複数個の入力端子へ接続しており前記第一組の入力信号を１つのグループのビット線へ選択的に送信する入力制御回路、
前記グループのビット線を介して送信される前記第一組の入力信号及び前記プログラム可能要素内に格納されているビット値に応答して複数個の積項を発生する積項回路、
を有しているプログラム可能論理装置。
【請求項２】
請求項１において、
前記入力制御回路が第一入力端子と第一ビット線との間に接続している第一パストランジスタと、前記第一入力端子へ接続しているインバータ入力端子を具備しているインバータと、前記インバータの出力端子と第二ビット線との間に接続している第二パストランジスタとを有しており、
前記第一及び第二パストランジスタが、第一動作モード期間中に入力信号が前記第一及び第二ビット線へ通過されるようにターンオンし、且つ第二動作モード期間中に前記入力信号が前記第一及び第二ビット線から分離されるようにターンオフするために制御信号によって制御される、
プログラム可能論理装置。
【請求項３】
請求項１において、前記論理／メモリ回路が、更に、
第二組の入力信号を受取るための第二複数個の入力端子、
前記相互接続資源から書込ビット値を受取るためのデータ入力端子、
前記ビット線へ接続しているマルチプレクス／デマルチプレクス回路、
を有しており、前記マルチプレクス／デマルチプレクス回路が、第一モードにおいて前記第二組の入力信号に応答して前記プログラム可能要素から読取った選択したビット値を通過させ、且つ第二モードにおいて前記第二組の入力信号に応答して選択したビット線へ前記データ入力端子からの書込ビット値を通過させるべく選択的に制御可能であるプログラム可能論理装置。
【請求項４】
請求項１において、前記論理／メモリ回路が、更に、前記複数個の積項に応答して積の和の値を発生するマクロセル回路を有しているプログラム可能論理装置。
【請求項５】
請求項１において、前記デコーダが、
第一入力信号を受取るための第一入力端子、
第二入力信号を受取るための第二入力端子、
書込制御信号を受取るための書込制御端子、
前記第一及び第二入力信号及び前記書込制御信号に応答して第一書込アドレス信号を発生する第一論理ゲート、
前記第一及び第二入力信号に応答して第一読取アドレス信号を発生する第二論理ゲート、
を有しているプログラム可能論理装置。
【請求項６】
請求項１において、前記入力制御回路が第一ビット線上へ第一入力信号を選択的に印加させるための第一トランジスタと、前記第一信号の反転した信号を第二ビット線上へ印加する第二トランジスタとを有しており、
前記アレイが、
第一ビット値を格納するためのラッチを具備している第一プログラム可能要素、
前記第一ビット線へ接続している第一端子と、ノードへ接続している第二端子と、前記第一プログラム可能要素のラッチへ接続しているゲートとを具備している第一パストランジスタ、
前記第二ビット線へ接続している第一端子と、前記ノードへ接続している第二端子と、前記第一プログラム可能要素のラッチへ接続しているゲートとを具備しているパストランジスタ、
第二ビット値を格納するためのラッチを具備している第二プログラム可能要素、
を有しており、且つ前記積項回路が、
前記ノードへ接続している第一入力端子と、前記第二プログラム可能要素のラッチへ接続している第二入力端子とを具備しているセル論理回路、
前記セル論理回路によって発生される出力信号に応答して積項を発生するＡＮＤ回路、
を有している、プログラム可能論理装置。
【請求項７】
請求項１において、
前記デコーダが第一入力信号と、第二入力信号と、書込制御信号とに応答して第一書込アドレス信号を発生し、
前記アレイが、更に、前記第一入力信号及び第二入力信号に応答して第一読取アドレス信号及び第二読取アドレス信号を発生するハードワイヤードデコード回路を有している、
プログラム可能論理装置。
【請求項８】
請求項７において、前記デコーダが、更に、
前記第一入力信号を送信する第一線、
前記第一入力信号を反転させる第一インバータ、
前記第一インバータへ接続しており前記反転した第一入力信号を送信する第二線、
前記第二入力端子を送信する第三線、
前記第二入力信号を反転させる第二インバータ、
前記第二インバータへ接続しており前記反転した第二入力信号を送信する第四線、
前記書込制御信号を受取る書込制御端子、
前記第一及び第二入力信号及び前記書込制御信号に応答して第一書込アドレス信号を発生する第一論理ゲート、
を有しているプログラム可能論理装置。
【請求項９】
請求項７において、
前記アレイのプログラム可能要素が行と列との形態に配列されており、各行のプログラム可能要素が関連する書込ビット線と関連する読取ビット線とへ接続しており、各列のプログラム可能要素が関連する書込ワード線と関連する対の読取ワード線とに接続しており、
前記第一書込アドレス信号が第一書込ワード線上へ送信され、
前記第一読取アドレス信号が第一読取ワード線上へ送信され、
前記第二読取アドレス信号が第二読取ワード線上へ送信される、
プログラム可能論理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はプログラム可能論理装置に関するものであって、更に詳細には、フィールドプログラマブルゲートアレイのコンフィギュアラブル（ｃｏｎｆｉｇｕｒａｂｌｅ）即ち形態特定可能な論理ブロックに関するものである。
【０００２】
【従来の技術】
図１（Ａ）は基本的なフィールドプログラマブルゲートアレイ（ＦＰＧＡ）１００を示した概略図であって、それは１つのタイプのプログラム可能論理装置（ＰＬＤ）である。ＦＰＧＡ１００は入力／出力ブロック（ＩＯＢ）ＩＯＢ−１乃至ＩＯＢ−１６によって取囲まれている形態特定可能論理ブロック（ＣＬＢ）ＣＬＢ−１，１乃至ＣＬＢ−４，４からなるアレイ、及びＣＬＢ及びＩＯＢの行と列との間に延在している垂直相互接続セグメント１２０と水平相互接続セグメント１２１とを包含しているプログラム可能相互接続資源を有している。各ＣＬＢは形態特定可能な組合わせ回路及びユーザの論理機能（関数）の一部を実現するためにプログラムされているオプションとしての出力レジスタを有している。プログラム可能相互接続資源の相互接続セグメントは、論理機能部分をリンクさせるＣＬＢ間に信号経路を発生させるための種々のスイッチを使用して形態特定される。各ＩＯＢは同様に形態特定されて、ＦＰＧＡ１００の関連するピン（不図示）を装置入力ピン、装置出力ピン、又は入力／出力ピンのいずれかとして選択的に利用する。著しく簡単化してあるが、ＦＰＧＡ１００は、通常、カリフォルニア州サンノゼのザイリンクス、インコーポレイテッドによって製造されているＦＰＧＡと一貫性を有している。
【０００３】
図１（Ｂ）乃至１（Ｄ）は、ＦＰＧＡ１００のプログラム可能相互接続資源と関連している種々のスイッチの例を示した概略図である。図１（Ｂ）は６態様セグメント対セグメントスイッチ１２２の１例を示しており、それはメモリセルＭ１乃至Ｍ６内に格納されているコンフィギュレーション（ｃｏｎｆｉｇｕｒａｔｉｏｎ）即ち形態特定データに従って垂直配線セグメント１２０（１）及び１２０（２）及び水平配線セグメント１２１（１）及び１２１（２）を選択的に接続させる。一方、水平及び垂直配線セグメント１２０及び１２１が交点において断線しない場合には、単一のトランジスタが接続を行う。図１（Ｃ）はセグメント対ＣＬＢ／ＩＯＢ入力スイッチ１２３の１例を示しており、それはメモリセルＭ７及びＭ８内に格納されているコンフィギュレーションデータに従って、ＣＬＢ（又はＩＯＢ）入力配線１１０（１）を１つ又はそれ以上の相互接続配線セグメントへ選択的に接続させる。図１（Ｄ）はＣＬＢ／ＩＯＢ対セグメント出力スイッチ１２４の１例を示しており、それはメモリセルＭ９乃至Ｍ１１内に格納されているコンフィギュレーションデータに従って、ＣＬＢ（又はＩＯＢ）の出力配線１１５（１）を１つ又はそれ以上の相互接続配線セグメントへ選択的に接続する。
【０００４】
第一ＦＰＧＡが１９８０年代に発明されて以来、ＦＰＧＡが特定の機能をより効率的に実現することを可能とする基本的なＦＰＧＡ回路に関する変形がなされて来ている。例えば、汎用相互接続線を使用することなしに且つ高速で隣接するＣＬＢを接続させることを可能とするために特別相互接続線が付加されている。更に、ＦＰＧＡが演算機能又はある幅広の論理機能を実現するべく形態特定される場合に高速のキャリィ信号伝送を可能とするハードウエアが隣接するＣＬＢ間に配置されている。最後にＣＬＢと関連する回路は幾つかの変形がなされ、それは各ＣＬＢが特別の機能をより効率的に実現することを可能としている。このようなＣＬＢの修正は本発明にとって特に重要である。
【０００５】
図２（Ａ）はザイリンクス、インコーポレイテッドによって製造されているＸＣ４０００（商標）シリーズのＦＰＧＡにおいて使用されている従来のＣＬＢ２００を示した簡単化した概略図である。ＣＬＢ２００は、第一４入力ルックアップテーブル（ＬＵＴ）Ｆ、第二４入力ＬＵＴ  Ｇ、３入力ＬＵＴ  Ｈ、１組のＬＵＴ出力マルチプレクサ（ＭＵＸ）２１０、オプションの出力レジスタＦＦ−１及びＦＦ−２、及びＣＬＢ２００内における信号のルーチング即ち経路付けを行うための付加的な回路を有している。ＬＵＴ  ＦはＦＰＧＡの相互接続資源から送信されるデータ入力信号Ｆ１−Ｆ４を受取る。同様に、ＬＵＴ  Ｇはデータ入力信号Ｇ１乃至Ｇ４を受取る。ＬＵＴ  Ｆ及びＧの動作について以下に詳細に説明する。８個のデータ入力信号Ｆ１乃至Ｆ４及びＧ１乃至Ｇ４に加えて、ＣＬＢ２００は、クロック信号ＣＬＫ、データ／制御信号Ｈ１，ＤＩＮ／Ｈ２，ＳＲ／Ｈ０，ＥＣを受取る。ＣＬＢ２００と関連している種々のプログラム可能要素を選択的に形態特定させることによって、ＣＬＢ２００はユーザの論理機能の割り当てた部分と一貫性を有するデータ及び制御信号に応答して出力信号を発生する。
【０００６】
図２（Ｂ）はＣＬＢ２００において４入力ＬＵＴ  Ｆ及びＧを実現することが可能な回路を示した概略図である。各４入力ＬＵＴは、１６個のメモリビットＭ０乃至Ｍ１５及びＭＵＸ構造２４０を具備するメモリ回路２３０を有している。メモリビットＭ０乃至Ｍ１５の各々のプログラムした状態はライン２３５を介してＭＵＸ構造２４０へ送信される。ＭＵＸ構造２４０はメモリビットのうちの１つのプログラムした状態を４入力信号（Ｆ１乃至Ｆ４か又はＧ１乃至Ｇ４）に応答して出力端子２４５へ選択的に通過させる。機能について説明すると、ＭＵＸ構造２４０は該４入力信号によって制御される一連の２入力ＭＵＸを有している。４入力信号の各組合わせはメモリ回路２３０のメモリビットＭ０乃至Ｍ１５のうちの１つの内容をＬＵＴが出力させる一時的なアドレスを発生する。
【０００７】
図２（Ｃ）はメモリ回路２３０のメモリビットＭ０を示した簡単化した回路図である（図２（Ｂ）参照）。メモリビットＭ０は夫々パストランジスタ２３２及び２３３を介してＢＩＴ及びＢＩＴ ｂ（反転ビット）線へ接続しているラッチ２３１を形成するために端部同志を接続した第一及び第二インバータと、ラッチ２３１と出力線２３５−１との間に接続されている第三インバータ２３４とを有している。パストランジスタ２３２及び２３３はＷＲＩＴＥ（書込）制御線によって制御される。コンフィギュレーション即ち形態特定モード期間中、ＷＲＩＴＥ線は高へ移行され且つデータがＢＩＴ及びＢＩＴ ｂ線を介してラッチへ送信される。その後の動作期間中、該ラッチによって格納されるデータビットが第三インバータ２３４を介して送信され且つ出力線２３５−１へ印加され、それは該データビットをＭＵＸ構造２４０へ送信する。
【０００８】
ＣＬＢ２００の４入力ＬＵＴ  Ｆ及びＧは多くの論理機能を実現するために極めて有用なものであることが判明した。然しながら、４個又はそれ以上のＣＬＢを介して信号を伝送することを必要とするある大きな論理機能を実現する場合に問題が発生する。図３は６個のＣＬＢを有するＦＰＧＡの一部３００を示した簡単化した概略図である。部分３００と関連する相互接続資源は、選択したＣＬＢの間でデータ信号を伝送させるための信号経路３１０を与えるべくプログラムされている。特に、信号経路３１０は、ＣＬＢ−１，１のＬＵＴ  Ｆへ送信される入力信号、ＣＬＢ−１，２のＬＵＴ  Ｆへ送信されるＣＬＢ−１，１のＬＵＴ  Ｆからの出力信号、ＣＬＢ−２，２ＬＵＴ  Ｇへ送信されるＣＬＢ−１，２のＬＵＴ  Ｆからの出力信号、ＣＬＢ−２，３のＬＵＴ  Ｇ及びＨへ送信されるＣＬＢ−２，２のＬＵＴ−Ｇからの出力信号、及びＣＬＢ−２，３のＬＵＴ  Ｈからの出力信号の伝送経路を定義している。
【０００９】
信号経路３１０は、典型的に、ユーザの論理機能と関連する多数の信号経路のうちの１つを表している。例えば、付加的な入力信号をＣＬＢ−１，１のＬＵＴ  Ｆへ送信させるためにその他の信号経路が使用される（これらの付加的な信号経路はＣＬＢ−１，１から延在する短い線によって省略した態様で表示してある）。これらの付加的な信号経路によって使用される相互接続資源は示しておらず従って信号経路３１０が明白に識別される。
【００１０】
ＰＬＤのＣＬＢ、ＩＯＢ、相互接続資源の種々のコンポーネントは信号遅延を導入し、それはＰＬＤを介しての信号を遅延させる。例えば、信号がＦＰＧＡと関連する種々のスイッチを介して通過する場合に遅延が導入される（上述した図１（Ｂ）乃至１（Ｄ）参照）。典型的に、ＦＰＧＡのＣＬＢを介しての信号の伝播によって更に大きな遅延が発生される。上述したように、各４入力ＬＵＴ  Ｆ／Ｇからの出力信号は４入力信号によってアドレスされる選択されたメモリセルから４個のＭＵＸを介して通過される。各４入力ＬＵＴの４個のＭＵＸを介しての送信と関連する遅延は約１ナノ秒（ｎｓ）である。付加的な遅延が、その後、ＬＵＴ出力ＭＵＸ２１０によって発生される。
【００１１】
ＰＬＤユーザは、しばしば、ターゲットＰＬＤにおいて実現される論理機能における１つ又はそれ以上の信号経路に関してタイミング制限を課す場合がある。これらのタイミング制限、即ち「拘束条件」は特定の経路に沿って信号が伝播するのに許容される最大期間を定義する。信号経路は、それが回路の最大クロックレートを制限する場合に、「クリチカル」パスと呼称される。幾つかの信号は比較的数の少ないＣＬＢを介して送信される場合があり、その場合には比較的短い伝播遅延を経験する。逆に、その他の信号は比較的多数のＣＬＢを介して送信され、その場合に比較的大きな遅延を経験し、且つこれらの信号のうちの１つは、しばしば、クリチカルパス上にある。従って、信号がクリチカルパスに沿って進行するＣＬＢの数を最小とすることが重要である。
【００１２】
複数個のＣＬＢを介しての信号送信と関連する伝播遅延を最小とさせる１つのアプローチは、ユーザの論理機能の多くの部分を実現することが可能な大型の汎用論理回路を与えることである。上述したように、ＦＰＧＡのＣＬＢが小さな論理回路（例えば、４入力ＬＵＴ）を有している場合には、ユーザの論理機能はこれらの小さな論理回路で実現することが可能な比較的小さな論理部分に区画化されねばならない。大きな論理機能を複数個の小さな論理部分へ区画化することは論理機能の１つ又はそれ以上の経路がユーザのタイミング高速条件を満足することに失敗する場合がある。大きな論理回路を提供することによって、配置及び経路付けソフトウエアがユーザの論理機能を伝播遅延が最小であるように大きな論理回路で効率的に実現させることが可能なより大きな論理部分へ区画化することが可能である。
【００１３】
大きな汎用論理回路がプログラム可能論理アレイ（ＰＬＡ）又はプログラム可能アレイ論理（ＰＡＬ）回路の経路の形態で幾つかのＰＬＤにおいて提供されている。ＬＵＴと異なり、ＰＬＡ及びＰＡＬ回路は論理機能を実現するためにＡＮＤ／ＯＲ論理構成を利用する。ＰＬＡ及びＰＡＬ回路は、典型的に、ＬＵＴよりも高速なワイドな即ち幅広な論理機能を実現するものであるが、それらはこのＡＮＤ／ＯＲ論理構成によって制限されている。一般的には、ＬＵＴは同等の寸法を有するＰＬＡ及びＰＡＬ回路よりもより複雑な論理機能を実現することが可能である。
【００１４】
【発明が解決しようとする課題】
必要とされているものは、制限された量の空間を使用しながら、ＬＵＴ論理構成を使用して大きな論理機能を実現することを可能とするＦＰＧＡ用のＣＬＢである。更に必要とされているものは、ＬＵＴ又はＰＬＡ／ＰＡＬのいずれかとして動作させることが可能であり、それにより論理機能の一部をこれらの論理回路タイプのいずれかで選択的にユーザが実現することを可能とするＦＰＧＡ用の論理／メモリ回路である。
【００１５】
【課題を解決するための手段】
本発明は、プログラム可能要素（メモリセル）の同一のアレイを使用して高容量ルックアップテーブル（ＬＵＴ）動作及びＲＡＭ動作の両方を実現することが可能なプログラム可能論理装置（ＰＬＤ）のコンフィギャラブル即ち形態特定可能論理ブロック（ＣＬＢ）において使用される多目的論理／メモリ回路（ＬＭＣ）に関するものである。幾つかの実施例においては、プログラム可能要素のアレイは、又、高速プログラム可能アレイ論理（ＰＡＬ）動作を実施するために使用される。プログラム可能要素の同一のアレイがＬＵＴ、ＲＡＭ又はＰＡＬ動作のために選択的に使用されるので、本発明のＬＭＣは、ユーザの論理機能を高効率の態様で実現することが可能な高度に多様性のある論理回路を提供する。
【００１６】
本発明の１実施例によれば、ＬＭＣが、プログラム可能要素の同一の１６×１６アレイを使用して、８入力ルックアップテーブル（ＬＵＴ）か又は２５６ビットＲＡＭのいずれかを実現する。第一組の４入力信号が該アレイの１つの列内に格納されているワード（即ち、１６個のプログラム可能要素）をアドレスするために使用され、且つ第二組の４入力信号が選択されたワードからの１個又はそれ以上のビットを１組の出力端子へ通過させるために使用される。その結果得られる８入力ＬＵＴは従来の１６ビットＬＵＴよりも実質的により大きな容量を与え、従って、最小の付加的な空間を占有しながら、ユーザの論理機能の実質的により大きな部分を実現することが可能である。更に、より大きな論理機能を単一の８入力ＬＵＴにおいて実現することが可能であるので、複数個の１６ビットＬＵＴ間での信号の送信に関連する伝播遅延を回避することが可能である。更に、１実施例においては、独立した読取ビット線が読取動作期間中の容量を最小とするために使用され、それによりより速い動作速度を提供している。
【００１７】
本発明の別の実施例によれば、入力信号をアレイの書込ビット線へ直接送信するためにＰＡＬ入力信号制御回路を使用している。これらの入力信号は、プログラム可能要素内に格納されているビット値と共に、積項を発生する積項発生回路へ送信される。ＬＭＣは、又、積項に応答して積の和の項を発生するマクロセルが設けられている。この積の和の項はＰＡＬ動作期間中に選択的に送信され、それによりユーザが高速のＰＡＬ回路を使用して速度に影響され易い論理を実現することのオプションを可能としている。
【００１８】
別の実施例においては、ＣＬＢは４個のＬＭＣ及びＬＭＣへの入力信号及びそれからの出力信号に対してルーチング即ち経路付けするためのスイッチ回路を有している。乗算機能を実施するために乗算回路も設けられている。４個の大きな汎用ＬＭＣ及び比較的小さな特別目的乗算器回路を単一のＣＬＢ内に設けることによって、ユーザの論理機能の大きな部分をＣＬＢ内において実現することが可能であり、それによりＰＬＤの汎用相互接続資源を介しての信号の送信に関連する伝播遅延を回避している。更に別の実施例においては、ＣＬＢは高速論理を実現するためにＬＭＣと乗算回路を具備する専用のＰＡＬ回路の両方を組み込んでいる。
【００１９】
更に別の実施例においては、ＬＭＣは書込動作期間中にハードワイヤードデコーダによってアドレスされる４個の列のプログラム可能要素を具備する論理／メモリアレイを有している。該ハードワイヤードデコーダによって発生される読取アドレス信号によって制御される一連のパストランジスタを介して各プログラム可能要素からビット値が読取られ、それによりＬＵＴ及びＲＡＭ動作期間中における動作速度が増加される。更に、各読取ビット線へ接続されるプログラム可能要素の数を４へ制限することによって、最小の容量が読取ビット線へ付与され、それにより更に動作速度が増加される。
【００２０】
【発明の実施の形態】
図４は標準のＦＰＧＡ技術と一貫性を有する態様で相互接続資源４２０を介して選択的に接続される複数個の実質的に同一なコンフィギャラブル即ち形態特定可能な論理ブロック（ＣＬＢ）４１０を具備しているＦＰＧＡ（ＰＬＤ）４００の一部を示している。
【００２１】
各ＣＬＢ４１０は８入力論理／メモリ回路（ＬＭＣ）４３０及びレジスタ回路（ＦＦ）４４０を有している。各ＬＭＣ４３０は相互接続資源４２０から８個のデータ入力信号を受取り且つ１乃至４個のデータ出力信号を発生する。ＬＭＣ４３０からの出力信号は相互接続資源４２０へ直接的に送信されるか、又はレジスタ回路４４０を介して送信される。
【００２２】
相互接続資源４２０は、例えば、相互接続線セグメント及び従来のＦＰＧＡ１００（図１（Ａ）参照）に関して上述したようなスイッチング回路を有している。以下に説明する１実施例においては、相互接続資源４２０の各チャンネルは、８０個の並列相互接続線を有しており、それから入力信号が各ＣＬＢ４１０に対して選択的に経路付けされ、且つそれに対して各ＣＬＢ４１０は出力信号を送信する。その他の実施例においては、相互接続資源４２０の各チャンネルは異なる数の相互接続線を有することが可能である。
【００２３】
本発明によれば、各ＬＭＣ４３０はプログラム可能要素からなるアレイ及び論理又はメモリ機能のいずれかを実現するためにユーザが定義したコンフィギュレーションデータによってプログラムされるその他のコンフィギャラブル即ち形態特定可能な回路を有している。例えば、本発明の第一実施例においては、各ＬＭＣ４３０は（ａ）最大でｎ個の入力信号の任意に定義されたブール関数（機能）を実現するためにプログラム可能要素からなるアレイを選択的にプログラムさせるｎ入力ルックアップテーブル（即ち、関数発生器）としてか、又は（ｂ）入力信号によってアドレスされるメモリワードと関連するビット値をプログラム可能要素からなるアレイが格納する２nビットのランダムアクセスメモリ（ＲＡＭ）としてのいずれかで動作すべくコンフィギャラブル即ち形態特定可能である。別の実施例においては、ＬＭＣ４３０は、又、積の和の論理動作を実施するためのｎ入力プログラム可能論理アレイ（ＰＬＡ）回路として選択的に動作すべく形態特定可能である。この別の実施例においては、プログラム可能要素アレイは、相互接続資源４２０を介してＬＭＣ４３０へ送信される入力信号に応答して１個又はそれ以上の積項（Ｐ項）を発生するＡＮＤアレイとして使用される。選択されたＰ項はＯＲゲートへ経路付けされ、積の和の論理動作を実施する。ＬＭＣ４３０の種々の実施例について以下に詳細に説明する。
【００２４】
以下の説明においては、各ＬＭＣ４３０は８個のデータ入力端子を有しており且つ２５６個のプログラム可能要素を具備する論理／メモリアレイを有している。ＬＭＣ４３０は異なる（より大きな又はより小さな）数の入力及び異なる数のプログラム可能要素を具備するアレイを好適に有することが可能であるが、ＬＭＣ４３０を８個の入力端子と２５６個のプログラム可能要素で形成することによってある種の利点が与えられる。第一に、ＬＭＣ４３０がＬＵＴとして使用される場合には、４個又はそれ以上の４入力ＬＵＴ  Ｆ／Ｇを必要とするある論理機能は単一のＬＭＣ４３０によってより短い時間で実現することが可能であり、それによりこれらの論理機能を実現するために必要とされる相互接続資源の数を著しく減少させる。８入力ＬＵＴをプログラムする技術は、Ｓｔｅｖｅ  Ｗｉｌｔｏｎ著「ＳＭＡＰ：埋込型メモリアレイを具備するＦＰＧＡにおける面積減少用の異種技術マッピング（ＳＭＡＰ：  Ｈｅｔｅｒｏｇｅｎｅｏｕｓ  Ｔｅｃｈｎｏｌｏｇｙ  Ｍａｐｐｉｎｇ  ｆｏｒ  Ａｒｅａ  Ｒｅｄｕｃｔｉｏｎ  ｉｎ  ＦＰＧＡｓ  ｗｉｔｈ  Ｅｍｂｅｄｄｅｄ  Ｍｅｍｏｒｙ  Ａｒｒａｙｓ）」、１９９８年２月出版、フィールドプログラマブルゲートアレイに関するＡＣＭ／ＳＩＧＴＡインターナショナルシンポジウムにおいて記載されているものと同様であり、それはブロックＲＡＭにおける組合わせ論理のマッピングについて記載している。第二に、ＬＭＣ４３０がＲＡＭ回路として使用される場合には、２５６ビット論理／メモリ回路は高効率の態様で結合させることが可能である。ＬＭＣ４３０を８入力２５６プログラム可能要素回路として形成することのこれら及びその他の利点については以下の特定的な実施例において記載する。
【００２５】
第一実施例
図５（Ａ）乃至５（Ｄ）は本発明の第一実施例に基づくＬＭＣ４３０−１を示している。ＬＭＣ４３０−１は、８入力ＬＵＴか又は２５６ビットＲＡＭのいずれかとして選択的に使用することが可能なプログラム可能要素からなるアレイを有している。従って、このプログラム可能要素からなるアレイは、最大で８入力信号を有するユーザの論理機能（関数）の部分を格納するために使用することが可能である。そうであるから、ＬＭＣ４３０−１は、従来の４入力（１６ビット）ＬＵＴよりもユーザの論理機能の著しくより大きな部分を格納すべく形態特定することが可能であり、それにより信号伝播時間を減少させることによってある適用例においては動作速度が増加される。
【００２６】
論理機能部分を実現することに加えて、ＬＭＣ４３０−１は、又、２５６ビットＲＡＭとして使用することも可能である。各ＬＭＣ４３０−１と関連するメモリ容量（即ち、２５６ビット）は典型的なブロックＲＡＭ回路よりも小さいが、従来の４入力１６ビットＬＵＴのものよりも著しく大きい。更に、大型のメモリ回路を形成するために従来の１６ビットＬＵＴを使用することは実際的ではない。何故ならば、このようなメモリ回路を動作させるのに必要なオーバーヘッド（即ち、相互接続資源）は高過ぎるからである。これらのオーバーヘッド拘束条件は２５６ビットの局所化のためにＬＭＣ４３０−１においては減少されている。更に、ブロックＲＡＭ構造と比較して、ＬＭＣ４３０−１は不使用のメモリ容量を最小としながら異なる寸法のメモリを実現するためにより多くの柔軟性を提供している。
図５（Ａ）はＬＭＣ４３０−１の基本的な回路コンポーネントを示したブロック図である。ＬＭＣ４３０−１はデコーダ５１０、論理／メモリ（プログラム可能要素）アレイ５２０、ＬＭＣマルチプレクサ／デマルチプレクサ（ＭＵＸ／ＤＥＭＵＸ）５３０を有している。第一組の入力信号が相互接続資源４２０（図４参照）から入力端子５０３へ送信され、且つ第二組の入力信号が入力端子５０５へ送信される。コンフィギュレーション（形態特定）信号がコンフィギュレーションバス（不図示）からコンフィギュレーションワード線５０７及びコンフィギュレーションビット線５４９を介して論理／メモリアレイ５２０へ送信される。出力信号は出力端子５３５を介してＬＭＣ  ＭＵＸ／ＤＥＭＵＸ５３０から送信される。データ（ビット値）信号がデータ入力端子ＤＩＮ及びＬＭＣ  ＭＵＸ／ＤＥＭＵＸ５３０を介して、相互接続資源４２０から論理／メモリアレイ５２０へ書込まれる。
【００２７】
デコーダ５１０は入力端子５０３上で４個の入力信号を受取り、且つそこから、出力線５１３を介して１６個の書込アドレス信号を発生し且つ読取ワード線５１８を介して１６個の読取アドレス信号を発生する。出力線５１３上の１６個の書込アドレス信号はメモリ書込モード期間中に論理／メモリアレイ５２０へ選択的に送信される（例えば、ＦＰＧＡ４００の「通常」動作期間中に、相互接続資源４２０を介してデータが論理／メモリアレイ５２０へ書込まれる場合）。一方、コンフィギュレーション（スタートアップ即ち始動）モード期間中に、コンフィギュレーションワード線５０７を介して１６個のコンフィギュレーションアドレス信号が論理／メモリアレイ５２０へ送信される。マルチプレクサ５１５はデコーダ５１０からの書込アドレス信号か又はコンフィギュレーションアドレス信号のいずれかを選択的に論理／メモリアレイ５２０をアドレスする単一の組の書込ワード線５１７上に配置させる。
【００２８】
図５（Ｃ）は入力端子５０３−１及び５０３−２上で受取られた２個の入力信号をデコードする簡単化したデコーダ５１０を示している。各入力信号は反転され、且つ反転及び非反転入力信号の選択された対が８個のＮＯＲゲートＮ１乃至Ｎ８の入力端子へ印加される。更に、書込制御信号ＷＲＩＴＥが反転され且つライン５１２を介してＮＯＲゲートＮ１，Ｎ３，Ｎ５，Ｎ７へ送信される。選択した対の入力信号及びＷＲＩＴＥ制御信号に応答して、ＮＯＲゲートＮ１，Ｎ３，Ｎ５，Ｎ７は出力線５１３上に書込アドレス信号を発生し、それは論理／メモリアレイ５２０内の４個の列のプログラム可能要素ヘ印加される。例えば、ＮＯＲゲートＮ１はＷＲＩＴＥ制御信号及び入力端子５０３−１及び５０３−２において受取られた反転入力信号に応答して、ライン５１３−１上に書込アドレス信号を発生する。この書込アドレス信号は図５（Ａ）に示したマルチプレクサ５１５の一部を形成するスイッチ回路５１５Ａを介して書込ワード線５１７−１へ印加される。同様に、選択した対の入力信号に応答して、ＮＯＲゲートＮ２，Ｎ４，Ｎ６，Ｎ８は読取ワード線５１８上に読取アドレス信号を発生し、それは論理／メモリアレイ５２０内の同一の４個の列のプログラム可能要素ヘ印加される。例えば、ＮＯＲゲートＮ２は入力端子５０３−１及び５０３−２において受取られた反転入力信号に応答して、読取ワード線５１８−１上に読取アドレス信号を発生する。スイッチ回路５１５Ａはライン５１９上を非反転形態で且つライン５１９−Ｂ上を反転した形態で送信されるコンフィギュレーション信号ＣＦＧによって制御される。以下に詳細に説明するように、スイッチ回路５１５Ａはメモリ書込モードにおいて（即ち、コンフィギュレーション信号ＣＦＧが論理低である場合）ＮＯＲゲートＮ１，Ｎ３，Ｎ５，Ｎ７によって発生される書込アドレス信号をパス即ち通過させる。図５（Ａ）に示したように、４個の入力端子を受取り且つ１６個の読取アドレス信号及び１６個の書込アドレス信号を発生するようにデコーダ５１０の修正は図５（Ｃ）に示した開示に鑑み容易に達成される。
【００２９】
図５（Ｂ）は論理／メモリアレイ５２０の簡単化した表示を示している。論理／メモリアレイ５２０は１６個の行と１６個の列とに配列された２５６個のプログラム可能要素５４０を有している。例えば、第一行は第一プログラム可能要素５４０−１及び第二プログラム可能要素５４０−２を有しており、且つ１６番目の行は第三プログラム可能要素５４０−３及び第四プログラム可能要素５４０−４を有している。同様に、第一列は第一プログラム可能要素５４０−１及び第三プログラム可能要素５４０−３を有しており、且つ１６番目の列は第二プログラム可能要素５４０−２及び第四プログラム可能要素５４０−４を有している。各プログラム可能要素５４０は１６個の書込ワード線５１７のうちの関連する１つから書込アドレス信号を受取り、且つ１６個の読取ワード線５１８のうちの関連する１つから読取アドレス信号を受取る。更に、各プログラム可能要素５４０は関連する書込ビット線５４５、反転書込ビット線５４５−Ｂ、読取ビット線５２５へ接続している。例えば、コンフィギュレーション（形態特定）モード期間中に、プログラム可能要素５４０−１は書込ワード線５１７−１上で受取られた高アドレス信号に応答して、書込ビット線５４５−１及び反転書込ビット線５４５−１−ｂ（パストランジスタ５４８を介してコンフィギュレーションビット線５４９から、図５（Ｃ）参照）上で受取られたデータ信号によってプログラムされる。対照的に、ＬＵＴ動作又はメモリ読取モード期間中に、プログラム可能要素５４０−１は読取ワード線５１８−１上で受取られた高アドレス信号に応答して、読取／書込制御回路５２７を介して読取ビット線５２５−１上を格納したデータ信号を送信する。最後に、メモリ書込動作期間中に、書込ビット線５４５−１、反転書込ビット線５４５−１ ｂ、読取／書込制御回路５２７を介して、ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ５３０（図５（Ａ）参照）からプログラム可能要素５４０−１へ送信される。
【００３０】
再度図５（Ｃ）を参照すると、論理／メモリアレイ５２０のプログラム可能要素５４０−１に関する詳細について説明する。プログラム可能要素５４０−１はビット値を格納するためのラッチを有しており、且つそのビット値のプログラム可能要素５４０−１への書込及びそのビット値のプログラム可能要素５４０−１からの読取を制御する制御回路を有している。特に、プログラム可能要素５４０−１は第一インバータ５４１及び第二インバータ５４２を有しており、それらは端部同志が接続されてラッチを形成している。このラッチは、夫々、パストランジスタ５４３及び５４４を介して書込ビット線５４５−１及び反転書込ビット線５４５−１ ｂヘ接続している。パストランジスタ５４３及び５４４のゲートは書込ワード線５１７−１へ接続している。従って、高書込アドレス信号が書込ワード線５１７−１へ印加されると、書込ビット線５４５−１及び反転書込ビット線５４５−１ ｂ上を送信されるビット値が該ラッチ内に格納される。該ラッチは、又、第三パストランジスタ５４７を介して第三インバータ５４６を介して読取ビット線５２５−１へ接続している。パストランジスタ５４７のゲートは読取ワード線５１８−１へ接続している。従って、高読取アドレス信号が読取ワード線５１８−１へ印加されると、該ラッチ内に格納されているビット値は読取ビット線５２５−１へ送信される。
【００３１】
図５（Ｃ）に示したように、論理／メモリアレイ５２０は、又、ＬＭＣ４３０−１の動作モードを制御する幾つかの制御信号を受取る。
【００３２】
デコーダ５１０を参照して上に説明したように、コンフィギュレーション（形態特定）信号ＣＦＧはコンフィギュレーション即ち形態特定及びメモリ書込モード期間中に書込ワード線５１７上のアドレス信号のソース即ち供給源を制御する。即ち、メモリ書込モード期間中（即ち、コンフィギュレーション信号ＣＦＧが低であり且つＷＲＩＴＥ信号が高である場合）、ライン５１３上に発生される書込アドレス信号はマルチプレクサ５１５（図５（Ａ）参照）の第一スイッチ５１５Ａを介して書込ワード線５１７上へ送信される。例えば、ＣＦＧが低である場合に、ＮＯＲゲートＮ１によって発生される信号はスイッチ５１５Ａ−１を介して書込ワード線５１７−１上へ送信される。この低ＣＦＧ信号は、又、マルチプレクサ５１５の第二スイッチ５１５Ｂへ（論理／メモリアレイ５２０の底部に示してある）をターンオフさせ、従って書込ワード線５１７−１はコンフィギュレーションワード線５０７−１から分離される。逆に、コンフィギュレーションモード期間中にＣＦＧ信号が高であり、それにより第一スイッチ５１５Ａ−１がターンオフされ且つ第二スイッチ５１５Ｂがターンオンされて書込ワード線５１７−１をコンフィギュレーションアドレス線５０７−１へ接続させる。
【００３３】
書込ワード線５１７を制御することに加えて、ＣＦＧ信号は、ＷＲＩＴＥ信号及びＲＥＡＤ信号と共に、書込ビット線５４５及び反転書込ビット線５４５−ｂを制御するために使用される。即ち、メモリ書込モード期間中（即ち、ＣＦＧ信号が低であり、ＷＲＩＴＥ信号が高であり、且つＲＥＡＤ信号が低である場合）、データ（ビット値）信号がＬＭＣ  ＭＵＸ／ＤＥＭＵＸ５３０（図５（Ａ）参照）から読取／書込制御回路５２７を介して書込ビット線５４５及び反転書込ビット線５４５−ｂ上へ送信される。例えば、反転データ値はＬＭＣ  ＭＵＸ／ＤＥＭＵＸ５３０から反転書込ビット線５４５−１ ｂヘ送信され、且つ高ＷＲＩＴＥ信号は該データ値を書込ビット線５４５−１上へパスさせる。このデータ値は、次いで、高アドレス信号が書込ワード線５１７−１上に送信される場合にプログラム可能要素５４０−１へパスされ、そのことはパストランジスタ５４３及び５４４をターンオンさせる。このメモリ書込動作期間中に、低ＣＦＧ信号はパストランジスタ５４８をターンオフさせ、それにより書込ビット線５４５−１及び反転書込ビット線５４５−１ ｂをコンフィギュレーションビット線５４９−１及び反転コンフィギュレーションビット線５４９−１ ｂから分離させる。ＬＵＴ動作又はメモリ読取モード期間中、ＣＦＧ信号は低に止まり、ＷＲＩＴＥ信号は低であり、且つＲＥＡＤ信号は高であり、それによりデータ（ビット値）信号を、読取ワード線５１８−１上を送信される高アドレス信号に応答して、メモリセル５４０−１からパス即ち通過させる。最後に、コンフィギュレーションモード期間中（即ち、ＣＦＧ信号が高であり、ＷＲＩＴＥ信号及びＲＥＡＤ信号の両方が低である）、パストランジスタ５４８はターンオンされて書込ビット線５４５−１及び反転書込ビット線５４５−１ ｂを、夫々、コンフィギュレーションビット線５４９−１及び反転コンフィギュレーションビット線５４９−１ ｂからのデータ信号を受取るべく接続させる。
【００３４】
図５（Ｄ）はＬＭＣ  ＭＵＸ／ＤＥＭＵＸ５３０の１実施例を示した簡単化した概略図である。ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ５３０は１６対１でマルチプレクサ回路５３１、１６対１マルチプレクサ／デマルチプレクサ回路５３２、プログラム可能出力回路５３４を有している。
【００３５】
メモリ書込モード期間中、デマルチプレクサ回路５３１はパストランジスタ５３３−１を介して入力端子ＤＩＮから受取ったデータ信号の反転したものを受取り、且つその反転したデータ信号を反転書込ビット線５４５ ｂのうちの選択した１つへ送信する。デマルチプレクサ回路５３１は一連の２出力デマルチプレクサＰ１−Ｐ８，Ｑ１−Ｑ４，Ｒ１，Ｒ２，Ｓを有しており、選択端子が入力端子５０５上を送信される入力信号を受取る（図５（Ａ））。デマルチプレクサＳは反転データ信号を受取り且つそれを第一選択信号に従ってデマルチプレクサＲ１か又はデマルチプレクサＲ２のいずれかへパスする。同様に、デマルチプレクサＲ１又はデマルチプレクサＲ２はその反転データ信号をデマルチプレクサＱ１乃至Ｑ４のうちの１つへパスすべく制御され、それは、次いで、該反転データ信号をデマルチプレクサＰ１乃至Ｐ８へパスし、それは該反転データ信号を反転書込ビット線５４５ ｂのうちの１つへパスする。
【００３６】
同様に、メモリ書込モード期間中、マルチプレクサ／デマルチプレクサ回路５３２はパストランジスタ５３３−２を介して入力端子ＤＩＮから受取ったデータ信号を受取り、且つそのデータ信号を書込ビット線５４５のうちの選択した１つへ送信する（読取／書込制御回路５２７を介して、図５（Ｃ）参照）。マルチプレクサ／デマルチプレクサ回路５３２は一連の２入力マルチプレクサ／デマルチプレクサＰ１１乃至Ｐ１８，Ｑ１１乃至Ｑ１４，Ｒ１１，Ｒ１２，Ｓ１１を有しており、選択端子は入力端子５０５を介して送信された入力信号を受取る（図５（Ａ））。デマルチプレクサＳ１１はデータ信号を受取り且つそれを第一選択信号に従ってデマルチプレクサＲ１１か又はデマルチプレクサＲ１２のいずれかへパスする。同様に、デマルチプレクサＲ１１又はデマルチプレクサＲ１２はそのデータ信号をデマルチプレクサＱ１１乃至Ｑ１４のうちの１つへパスすべく制御され、それは該データ信号をデマルチプレクサＰ１１乃至Ｐ１８へパスし、それは該データ信号を書込ビット線５４５のうちの１つへパスする。
【００３７】
ＬＵＴ動作又はメモリ読取モード期間中、マルチプレクサ／デマルチプレクサ回路５３２は読取ビット線５２５上を送信されたデータ（ビット値）信号のうちの１つ又はそれ以上を出力端子５３５のうちの１つ又はそれ以上へ送信する（読取／書込制御回路５２７を介し、図５（Ｃ）参照）。特に、入力端子５０５（図５（Ａ））上で受取られた第一入力信号に応答して、マルチプレクサＰ１１乃至Ｐ１８は読取ビット線５２５からの全部で８個のデータ信号をマルチプレクサＱ１１乃至Ｑ１４へパスする。各マルチプレクサＱ１１乃至Ｑ１４はマルチプレクサＰ１１乃至Ｐ１８によってパスされた８個のデータ値のうちの２つを受取り、且つ第二入力信号に応答して該２つのデータ値のうちの選択した１つをパスする。各マルチプレクサＲ１１及びＲ１２はマルチプレクサＱ１１乃至Ｑ１４によってパスされた４個のデータ値のうちの２つを受取り、且つ第三アドレス信号に応答して該２つのデータ値のうちの選択した１つをパスする。最後に、２入力マルチプレクサＳ１１はマルチプレクサＲ１１及びＲ１２によってパスされた２つのデータ値を受取り且つ第四アドレス信号に応答して該２つのデータ値のうちの選択した１つをパスする。
【００３８】
ＬＭＣ４３０−１からの出力信号はプログラム可能出力回路５３４を介して出力端子５３５−１乃至５３５−４上に送信される。プログラム可能出力回路５３４は出力端子５３５−１乃至５３５−４上を格納されたデータ信号のうちの１つ、２つ又は４つを送信するためにコンフィギュレーションデータによって制御される。特に、格納されているデータ信号のうちの４個をＬＭＣ４３０−１から送信する場合には、マルチプレクサＴ，Ｕ，ＶがメモリセルＭ−Ｔ，Ｍ−Ｕ，Ｍ−Ｖによって制御されて、マルチプレクサＱ１２，Ｑ１３，Ｑ１４を介して送信された信号を夫々出力端子５３５−２，５３５−３，５３５−４へパスする（マルチプレクサＱ１１を介してパスされた信号は直接的に出力端子５３５−１へ印加される）。一方格納されているデータ信号のうちの２つがＬＭＣ４３０−１から送信される場合には、マルチプレクサＴ及びＶがメモリセルＭ−Ｔ及びＭ−Ｖによって制御されて、マルチプレクサＲ１１及びＲ１２を介して送信された信号を夫々出力端子５３５−２及び５３５−４へパスする（出力端子５３５−１及び５３５−３へパスされた信号はＣＬＢ出力制御回路によって無視される）。最後に、格納されているデータ信号のうちのただ１つがＬＭＣ４３０−１から送信される場合には、マルチプレクサＵがメモリセルＭ−Ｕによって制御されて、マルチプレクサＳ１１を介して送信された信号を出力端子５３５−３へパスする（出力端子５３５−１，５３５−２，５３５−４へパスされた信号はＣＬＢ出力制御回路によって無視される）。
【００３９】
図５（Ｄ）においては一連の２対１マルチプレクサとして示してあるが、マルチプレクサ回路に精通した当業者が理解するように、１６対１マルチプレクサ回路５３１及びマルチプレクサ／デマルチプレクサ回路５３２の機能は、例えば、１個又はそれ以上の４対１マルチプレクサ又はマルチプレクサ／デマルチプレクサで実現することが可能である。
【００４０】
上述したように、ＬＭＣ４３０−１は、８入力ＬＵＴか又は２５６ビットＲＡＭのいずれかを形成するために、論理／メモリアレイ５２０のプログラム可能要素を選択的に使用する。例えば、ＬＭＣ４３０−１が８入力ＬＵＴとして使用される場合には、プログラム可能要素は、最大で８入力信号の任意のブール関数を実現するために使用される。これらの８個の入力信号のうちで、入力端子５０３上で受取られる４個の入力信号はデコーダ５１０へ送信され、それは、選択された列内に格納されているデータ（ビット値）が読取ビット線５２５上を送信されるように、論理／メモリアレイ５２０における選択した列のプログラム可能要素をアドレスする。入力端子５０５上で受取られた残りの４個の入力信号はＬＭＣ  ＭＵＸ／ＤＥＭＵＸ５３０へ送信され、読取ビット線５２５上の該信号の１つ、２つ又は４つを出力端子５３５へ選択的にパスする。同様に、論理／メモリ回路４３０−１がＲＡＭ回路として使用される場合には、論理／メモリアレイ５２０のプログラム可能要素は、各ワードが１６個のビットを有している１６個のワードの情報を格納するために使用される。最初の４個の入力信号５０３は選択したワード（列）をアドレスし、且つ残りの４個の入力信号５０５は選択したワードに関連するデータビットの出力端子５３５上へのシリアル送信を制御する。
【００４１】
論理／メモリアレイ５２０内に格納されている１個、２個、または４個の格納されているデータ信号をパスするためにＬＭＣ  ＭＵＸ／ＤＥＭＵＸ５３０を選択的に形態特定することによって、ユーザは、最大で８個の入力項を有している任意の単一の論理機能（関数）部分、最大で７個の入力項を有している幾つかの対の論理機能（関数）部分、及び６個の入力項を有している幾つかの組の４個の論理機能（関数）部分を実現するためにＬＭＣ４３０を使用することが可能である。更に、ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ５３０は、単一のシリーズの１６個のビットとして、８個のビットからなる２つのグループとして、又は４個のビットからなる４個のグループとしてメモリデータを送信するように形態特定することが可能である。
【００４２】
第二実施例
図６（Ａ）乃至６（Ｄ）は本発明の第二実施例に基づくＬＭＣ４３０−２を示している。ＬＭＣ４３０−１（図５（Ａ））と同様に、ＬＭＣ４３０−２のプログラム可能要素は８入力ＬＵＴか又は２５６ビットＲＡＭのいずれかとして選択的に使用することが可能である。然しながら、これらの動作モードに加えて、ＬＭＣ４３０−２は８入力プログラム可能アレイ論理（ＰＡＬ）回路として又は連想記憶装置（ＣＡＭ）として選択的に動作させることが可能である。ＰＡＬ動作期間中、ＬＵＴ及びＲＡＭ動作のために使用される同一のプログラム可能要素を使用してＬＵＴ及びＲＡＭ動作のために使用されるのと同一の入力端子上で受取られる入力信号に応答して複数個の積項を発生するために使用される。これらの積項はマクロセルにおいて選択的にＯＲ処理されて積の和の項を形成する。上述したように、ＰＬＡ／ＰＡＬ回路を使用する論理エミュレーションは、通常、ＬＵＴ論理動作よりも一層高速である。従って、ＬＭＣ４３０−２は、ユーザがその論理機能を高密度ＬＵＴフォーマットか又は高速ＰＡＬフォーマットのいずれかで実現することを可能とする。更に、同一のプログラム可能要素及び入力端子が両方のＰＡＬ及びＬＵＴ動作に対して使用され、それによりＰＬＤ用の高度に柔軟性があり且つ空間効率的な形態特定可能論理ブロックが提供される。この柔軟性は、積項発生回路がＣＡＭ動作を与えるように選択的に形態特定することによって更に向上される。
【００４３】
図６（Ａ）を参照すると、ＬＭＣ４３０−２はデコーダ６１０、論理／メモリアレイ（Ｌ／Ｍ  ＡＲＲＡＹ）６２０、ＬＭＣマルチプレクサ／デマルチプレクサ（ＭＵＸ／ＤＥＭＵＸ）（スイッチ回路）６３０、マクロセル６６０、ＰＡＬ入力（ＰＡＬ  ＩＮ）制御回路６７０を有している。ＬＭＣ４３０−１（図５（Ａ））のデコーダ５１０と同様に、デコーダ６１０は第一組の入力端子６０３上の４個の入力信号を受取るべく接続されており、且つ論理／メモリアレイ６２０へ送信される１６個の書込アドレス信号を発生する。論理／メモリアレイ６２０は、又、コンフィギュレーションバス（不図示）からコンフィギュレーションアドレス線６０７を介して１６個のコンフィギュレーションアドレス信号を受取る。制御回路（後に説明する）が、メモリ書込動作期間中にデコーダ６１０によって発生された書込アドレス信号を書込ワード線６１７へ印加するか、又はコンフィギュレーションモード期間中にコンフィギュレーションアドレス線６０７上のコンフィギュレーションアドレス信号を書込ワード線６１７へ印加させるために設けられている。デコーダ６１０は、又、読取ワード線６１８上に１６個の読取アドレス信号を発生し、それらはＬＵＴ動作及びメモリ読取モード期間中に使用され、プログラム可能要素６４０（図６（Ｃ））に格納されているビット値が読取ビット線６２５上に書込まれる。ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ６３０は入力端子６０５によって受取られる入力信号に応答し、それはＬＵＴ動作及びメモリ読取モード期間中に、選択された読取ビット線６２５からのビット値を出力端子６３５へ送信する。更に、ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ６３０は、メモリ書込モード期間中に、入力信号に応答してデータ入力端子ＤＩＮからの入力データ値を選択した書込ビット線６４５及び反転書込ビット線６４５ ｂへ送信する。
【００４４】
ＬＭＣ４３０−２は積項発生回路（後に説明する）、マクロセル６６０、ＰＡＬ入力制御回路６７０を有しているという点においてＬＭＣ４３０−１（図５（Ａ））と異なっている。ＰＡＬ及びＣＡＭ動作期間中、ＰＡＬ入力制御回路６７０は入力端子６０３及び６０５において受取った入力信号を論理／メモリアレイ６２０の書込ビット線６４５上へパスする。更に、論理／メモリアレイ６２０は積項発生回路を有しており、それは、書込ビット線６４５上の入力信号及び論理／メモリアレイ６２０のプログラム可能要素内に格納されているビット値に応答して積項を発生する。ＣＡＭ動作期間中、これらの積項は、又、該入力信号が論理／メモリアレイ６２０の１つの列内に整列しているメモリセル内に格納されている値と一致することを表す。これらの積項はライン６２８を介してマクロセル６６０へ送信され、それは積の和の項を発生し、それはマクロセル出力線６６５を介してＬＭＣ  ＭＵＸ／ＤＥＭＵＸ６３０ヘ送信される。以下に説明するように、ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ６３０は出力制御回路を有しており、それは、選択した読取ビット線６２５を介して送信されたビット値か又はマクロセル６３０によって発生された積の和の項のいずれかをパスする。従ってＬＭＣ４３０−２は、ＬＵＴフォーマットか又はＰＡＬフォーマットのいずれかを使用して、ユーザが論理を選択的に実現することを可能とする。ＰＡＬ動作は、典型的に、ＬＵＴ動作よりもより高速であるので、この付加的な柔軟性はＬＭＣ４３０−２を小さな論理部分の速度が重要である適用例に対して有用なものとしている。ＬＭＣ４３０−２のこの柔軟性は、ＣＡＭ動作を選択的に実施することによって更に向上される。
【００４５】
図６（Ｂ）は簡単化したデコーダ６１０を示しており、それは入力端子６０３−１及び６０３−２上で受取った２つの入力信号をデコードし、且つ書込ワード線６１７−１乃至６１７−４上で書込アドレス信号を発生し且つ読取ワード線６１８−１乃至６１８−４上で読取アドレス信号を発生する。各入力信号は反転され、且つ選択した対の反転及び非反転入力信号が８個のＮＯＲゲートＮ１乃至Ｎ８の入力端子へ印加される。更に、書込制御信号ＷＲＩＴＥが反転され且つライン６１２を介してＮＯＲゲートＮ１，Ｎ３，Ｎ５，Ｎ７へ送信される。選択した対の入力信号及びＷＲＩＴＥ制御信号に応答して、ＮＯＲゲートＮ１，Ｎ３，Ｎ５，Ｎ７は書込アドレス信号を発生し、それは論理／メモリアレイ６２０内の４個の列のプログラム可能要素ヘ印加される。例えば、ＮＯＲゲートＮ１はＷＲＩＴＥ制御信号及び入力端子６０３−１及び６０３−２において受取った反転入力信号に応答して書込アドレス信号を発生する。この書込アドレス信号はスイッチ回路６１５Ａを介して書込ワード線６１７−１へ印加される。同様に、選択した対の入力信号に応答して、ＮＯＲゲートＮ２，Ｎ４，Ｎ６，Ｎ８は出力線６１８−１乃至６１８−４上に読取アドレス信号を発生し、それらは論理／メモリアレイ６２０内の同一の４個の列のプログラム可能要素ヘ印加される。スイッチ回路６１５Ａは、メモリ書込モードにおいてＮＯＲゲートＮ１，Ｎ３，Ｎ５，Ｎ７によって発生された書込アドレス信号をパスするためにライン６１９及びライン６１９ ｂ上のコンフィギュレーション（形態特定）信号ＣＦＧによって制御される。図６（Ａ）に示したように、４個の入力端子を受取り且つ１６個の読取アドレス信号及び１６個の書込アドレス信号を発生するためにデコーダ６１０の修正は図６（Ｂ）に示した開示に鑑み容易に達成される。
【００４６】
再度図６（Ａ）を参照すると、論理／メモリアレイ６２０は２つのグループに分割されている１６個の行と１６個の列とに配列された２５６個のプログラム可能要素を有しており、第一グループの８個の列（ＰＡＬ／ＬＵＴ／ＲＡＭ  ＣＯＬ）６２１はＰＡＬ／ＣＡＭ、ＬＵＴ、ＲＡＭ動作を実施し、且つ第二グループの８個の列（ＬＵＴ／ＲＡＭ  ＣＯＬＳ）６２２はＬＵＴ及びＲＡＭ動作のためにのみ使用される。第一グループ６２１の各列は８個の対を形成するために配列された１６個のプログラム可能要素を有している（以下において「ＰＡＬ／ＣＡＭセル」と呼称する）。第一グループ６２１の１つの列からの代表的な対のプログラム可能要素を図６（Ｃ）に示してあり以下に説明する。第二グループ６２２のプログラム可能要素は、基本的に、図５（Ｃ）に示したプログラム可能要素５４０−１と同一である。従って、第二グループ６２２内に設けられるプログラム可能要素の説明は割愛する。
【００４７】
論理／メモリアレイ６２０は論理／メモリアレイ５２０（図５（Ｃ）参照）において使用されるものと同様の態様でＣＦＧ、ＷＲＩＴＥ、ＲＥＡＤ制御信号を使用する。
【００４８】
コンフィギュレーション信号ＣＦＧは図５（Ｃ）を参照して上に説明したのと同様の態様で、コンフィギュレーション及びメモリ書込モード期間中、書込ワード線６１７上のアドレス信号のソース即ち供給源を制御する。例えば、メモリ書込モード（ＣＦＧが低）期間中、デコーダ６１０によって発生される信号はスイッチ６１５Ａ−１（図６（Ｂ）参照）を介して書込ワード線６１７−１上へパスされる。逆に、コンフィギュレーションモード期間中ＣＦＧ信号は高であり、それにより第一スイッチ６１５Ａ−１をターンオフさせ且つ第二スイッチ６１５Ｂ−１（図６（Ｃ）参照）をターンオンさせて書込ワード線６１７−１をコンフィギュレーションアドレス線６０７−１へ接続させる。
【００４９】
ＷＲＩＴＥ信号及びＲＥＡＤ信号は、又、ＣＦＧ信号と共に、書込ビット線６４５及び反転書込ビット線６４５ ｂを制御するために使用される。例えば、ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ６３０（図６（Ａ）参照）から送信されたデータ値はＷＲＩＴＥ信号が高である場合に書込ビット線６４５−１又は書込線６４５−２上へパスされ、且つＲＥＡＤ信号が高である場合にはデータ値は読取ビット線６２５−１又は６２５−２からＬＭＣ  ＭＵＸ／ＤＥＭＵＸ６３０ヘパスされる。最後に、コンフィギュレーションモード期間中（即ち、ＣＦＧ信号が高であり、且つＷＲＩＴＥ信号及びＲＥＡＤ信号の両方が低である場合）、パストランジスタ６４５はターンオンされて書込ビット線６４５−１及び６４５−２及び反転書込ビット線６４５−１ ｂ及び６４５−２ ｂを接続させてコンフィギュレーションビット線６４９−１及び６４９−２及び反転コンフィギュレーションビット線６４９−１ ｂ及び６４９−２ ｂからデータ信号を受取る。
【００５０】
ＣＦＧ，ＷＲＩＴＥ，ＲＥＡＤ制御信号に加えて、ＬＭＣ４３０−２はＰＡＬイネーブル（ＰＡＬ  ＥＮＢＬ）制御信号を使用して、ＰＡＬ及びＣＡＭ動作期間中、ＰＡＬ入力制御回路６７０（図６（Ａ）参照）をして入力端子６０３からの入力信号を書込ビット線６４５上へ印加させる。図６（Ｃ）を参照すると、ＰＡＬ入力制御回路６７０−１は第一パストランジスタ６７１、インバータ６７３、第二パストランジスタ６７５を有している。ＰＡＬ  ＥＮＢＬが高である場合には、ＰＡＬ入力制御回路６７０−１は選択的に入力端子６０３−１からの入力信号を直接的に書込ビット線６４５−１ヘパスし、且つインバータ６７３を介して反転書込ビット線６４５−１ ｂへパスする。ＰＡＬ  ＥＮＢＬが低である場合には、パストランジスタ６７１及び６７５はターンオフされ、それにより入力端子６０３−１上の入力信号が書込ビット線６４５−１及び反転書込ビット線６４５−１ ｂへパスされることを防止する。
【００５１】
図６（Ｃ）は１個のＰＡＬ／ＣＡＭセル及び論理／メモリアレイ６２０の関連する回路を示している。ＰＡＬ／ＣＡＭセルは論理／メモリアレイ６２０の１つの列内において順番に配列されている関連する対のプログラム可能要素６４０−１及び６４０−２から形成されている。各プログラム可能要素６４０−１及び６４０−２はビット値を格納するためのラッチ、該ラッチへの書込及びそれからの読取を制御する制御回路を有している。特に、プログラム可能要素６４０−１は第一インバータ６４１−１及び第二インバータ６４２−１を有しており、それらの端部同志は接続されて第一ラッチを形成しており、且つプログラム可能要素６４０−２は第一インバータ６４１−２及び第二インバータ６４２−２を有しており、それらは端部同志が接続されて第二ラッチを形成している。プログラム可能要素６４０−１の第一ラッチは、夫々、パストランジスタ６４３−１及び６４４−１を介して書込ビット線６４５−１及び反転書込ビット線６４５−１ ｂへ接続している。パストランジスタ６４３−１及び６４４−１のゲートは書込ワード線６１７−１へ接続している。プログラム可能要素６４０−２の第二ラッチは、夫々、パストランジスタ６４３−２及び６４４−２を介して書込ビット線６４５−２及び反転書込ビット線６４５−２ ｂへ接続している。パストランジスタ６４３−２及び６４４−２のゲートは書込ワード線６１７−１へ接続している。従って、高書込アドレス信号が書込ワード線６１７−１へ印加されると、書込ビット線６４５−１及び６４５−２上及び反転書込ビット線６４５−１ ｂ及び６４５−２ ｂ上に送信されるビット値は、夫々、プログラム可能要素６４０−１及び６４０−２の第一及び第二ラッチ内に格納される。これらのラッチは、又、第三パストランジスタ６４７−１及び６４７−２を介し第三インバータ６４６−１及び６４６−２を介して夫々読取ビット線６２５−１及び６２５−２へ接続している。パストランジスタ６４７−１及び６４７−２のゲートは読取ワード線６１８−１へ接続している。従って、高読取アドレス信号が読取ワード線６１８−１へ印加されると、プログラム可能要素６４０−１及び６４０−２のラッチによって格納されているビット値が夫々読取ビット線６２５−１及び６２５−２へ送信される。
【００５２】
ＰＡＬ入力回路６７０−１から書込ビット線６４５−１及び反転書込ビット線６４５−１ ｂ上へ送信される入力信号に応答し、且つＰＡＬ／ＣＡＭセル（例えば、プログラム可能要素６４０−１及び６４０−２）内に格納されている値に応答して、積項が積項回路によって発生される。該積項回路は複数個のＰＡＬ／ＣＡＭセル論理回路６８０及び１個又はそれ以上のＡＮＤゲート６８７を有している。
【００５３】
図６（Ｃ）に示したように、各ＰＡＬ／ＣＡＭセル論理回路６８０は、ノード６８１（プログラム可能要素６４０−１の内側に示してある）ヘ接続している第一入力端子とプログラム可能要素６４０−２へ接続している第二入力端子とを具備している２入力ＮＯＲゲートである。ノード６８１は第一パストランジスタ６８２を介して書込ビット線６４５−１へ接続しており、且つ第二パストランジスタ６８３を介して反転書込ビット線６４５−１ ｂへ接続している。第一パストランジスタ６８２及び第二パストランジスタ６８３のゲートは、夫々、プログラム可能要素６４０−１のラッチによって格納されている非反転及び反転値によって制御される。例えば、インバータ６４１−１及び６４２−１によって形成されるラッチが論理低値（即ち、論理低信号はインバータ６４２−１の出力において発生される）を格納している場合には、ノード６８１は反転書込ビット線６４５−１ ｂへ接続される。逆に、インバータ６４１−１及び６４２−１によって形成されるラッチが論理高値（即ち、論理高信号はインバータ６４２−１の出力において発生される）を格納している場合には、ノード６８１は書込ビット線６４５−１へ接続される。従って、ＰＡＬ／ＣＡＭセル論理回路６８０は、プログラム可能要素６４０−１及び６４０−２のプログラムされている即ち書込まれている状態及び入力端子６０３−１上のＰＡＬ入力信号（それは書込ビット線６４５−１及び反転書込ビット線６４５−１ ｂ上を送信される）に基づいてＰＡＬ／ＣＡＭセル出力信号を発生する。このＰＡＬ／ＣＡＭセル出力信号はＡＮＤ回路６８７へ送信される。
【００５４】
ＡＮＤ回路６８７はＰＡＬ／ＣＡＭセル論理回路６８０から及びプログラム可能要素６４０−１及び６４０−２を含む列内に配列されているその他のＰＡＬ／ＣＡＭセル及び関連する論理回路（不図示）からのＰＡＬ／ＣＡＭセル出力信号を受取る。これらのＰＡＬ／ＣＡＭセル出力信号は、マクロセル６６０へＰ項線６２８−１を介して送信されるＰ項信号を発生するためにＡＮＤ回路６８７によって（反転した形態で）使用される。
【００５５】
マクロセル６６０は、論理／メモリアレイ６２０のその他の列からの３個又は７個の付加的なＰ項信号と共に、Ｐ項線６２８−１からのＰ項信号を受取るＯＲゲート６６３を有している。マクロセル６６０はこれらのＰ項信号に応答して積の和の項を発生し、それはマクロセル出力線６６５を介してＬＭＣ  ＭＵＸ／ＤＥＭＵＸ６３０ヘ送信される。
【００５６】
論理／メモリアレイ６２０はコンフィギュレーション（形態特定）モード、メモリ読取（即ち、ＬＵＴ動作又はＲＡＭ読取）モード、メモリ書込モード、ＰＡＬ動作モード、及びＣＡＭ動作モードにおいて動作するためにコンフィギュレーション（形態特定）信号によって制御される。第二グループ６２２（即ち、ＬＵＴ／ＲＡＭ  ＣＯＬＳ）の動作は、基本的に、論理／メモリアレイ５２０に関して上述したものと基本的に同一であり、従って、ここで繰返し説明することはしない。第一グループ６２１の動作（即ち、ＰＡＬ／ＬＵＴ／ＲＡＭ  ＣＯＬＳ）は図６（Ｃ）を参照して以下に説明する。
【００５７】
コンフィギュレーション（形態特定）モード期間中に、ＣＦＧ制御信号は高であり、且つＷＲＩＴＥ及びＰＬＡ  ＥＮＢＬ制御信号は低である（ＲＥＡＤ信号は高又は低のいずれかであり、即ち「ｄｏｎ’ｔ  ｃａｒｅ」である）。高ＣＦＧ信号はスイッチ回路６１５Ａ−１（図６（Ｂ）参照）をターンオフさせ、且つスイッチ回路６１５Ｂ−１をターンオンさせ、従ってアドレス信号がコンフィギュレーションアドレス線６０７−１から書込ワード線６１７−１上へ送信される。更に、高ＣＦＧ信号はパストランジスタ６４８をターンオンさせて、書込ビット線６４５及び６４５ ｂを夫々コンフィギュレーションビット線６４９及び６４９ ｂヘ接続させる。注意すべきことであるが、低ＷＲＩＴＥ信号はＬＭＣ  ＭＵＸ／ＤＥＭＵＸ６３０から書込ビット線６４５−１，６４５−１ ｂ，６４５−２，６４５−２ ｂへ信号がパスされることを防止する。更に注意すべきことであるが、低ＰＬＡ  ＥＮＢＬ信号は入力端子６０３−１から書込ビット線６４５−１及び６４５−２へ入力信号の送信を防止する。この状態において、データ値が同時的に書込ビット線６４５−１及び６４５−１ ｂを介して書込可能要素６４０−１へ及び書込ビット線６４５−２及び６４５−２ ｂを介してプログラム可能要素６４０−２へ送信される。プログラム可能要素６４０−１及び６４０−２は、その後のデータ書込処理が実施されるまで（又は、パワーがターンオフされるまで）これらのデータ値を維持する。
【００５８】
メモリ書込モード期間中、ＷＲＩＴＥ信号は高であり且つＣＦＧ，ＲＥＡＤ，ＰＡＬ  ＥＮＢＬ信号は低である。高ＷＲＩＴＥ信号はＮＯＲゲートＮ１，Ｎ３，Ｎ５，Ｎ７（図６（Ｂ）参照）をイネーブルさせて、入力端子６０３−１及び６０３−２によって受取られた入力信号に応答して書込ビット線６１７−１乃至６１７−４上にアドレス信号を発生する。高ＷＲＩＴＥ信号は、又、読取／書込制御回路６２７−１及び６２７−２ヘ印加されて書込ビット線６４５−１及び６４５−２をＬＭＣ  ＭＵＸ／ＤＥＭＵＸ６３０ヘ接続させる。注意すべきことであるが、低ＣＦＧ信号はスイッチ回路６１５Ａ−１（図６（Ｂ）参照）をターンオンさせ、且つスイッチ回路６１５Ｂ−１をターンオフさせる。更に、低ＣＦＧ信号はパストランジスタ６４８をターンオフさせる。この状態において、データ信号ＤＩＮはＬＭＣ  ＭＵＸ／ＤＥＭＵＸ６３０の動作に応答して（後に説明する）ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ６３０から選択した書込ビット線６４５−１又は６４５−２（及び選択した反転書込ビット線６４５−１ ｂ又は６４５−２ ｂ）ヘ送信される。メモリ読取（ＬＵＴ動作又はＲＡＭ読取）モード期間中、ＲＥＡＤ信号は高であり、且つＣＦＧ，ＷＲＩＴＥ，ＰＡＬ  ＥＮＢＬ信号は低である。高ＲＥＡＤ信号は読取／書込制御回路６２７−１及び６２７−２へ印加されて読取ビット線６２５−１及び６２５−２をＬＭＣ  ＭＵＸ／ＤＥＭＵＸ６３０ヘ接続させる。低ＷＲＩＴＥ信号はＮＯＲゲートＮ１，Ｎ３，Ｎ５，Ｎ７（図６（Ｂ）参照）をディスエーブルさせ、且つ低ＣＦＧ信号はスイッチ回路６１５Ｂ−１をターンオフさせる。更に、低ＣＦＧ信号はパストランジスタ６４８をターンオフさせる。この状態において、プログラム可能要素６４０−１及び６４０−２内に格納されているビット値は読取ワード線６１８−１上をデコーダ６１０から送信された高読取アドレス信号に応答して読取ビット線６２５−１及び６２５−２上を送信される。以下に説明するように、該格納されているビット値は読取ビット線６２５−１及び６２５−２を介してＬＭＣ  ＭＵＸ／ＤＥＭＵＸ６３０ヘ送信される。
【００５９】
ＰＡＬ及びＣＡＭ動作モード期間中、ＰＡＬ  ＥＮＢＬ信号は高であり、且つＷＲＩＴＥ及びＣＦＧ信号は低である（ＲＥＡＤは「ｄｏｎ’ｔ  ｃａｒｅ」である）。高ＰＡＬ  ＥＮＢＬ信号はＰＡＬ入力制御回路６７０−１のパストランジスタ６７１及び６７５をターンオンさせ、それにより入力端子６０３−１から書込ビット線６４５−１へ入力信号をパスし、且つ入力信号の反転した形態を反転書込ビット線６４５−１ ｂヘパスする。プログラム可能要素６４０−２によって格納されている値はプログラム可能要素６４０−１及び６４０−２によって形成されているＰＡＬ／ＣＡＭセルをイネーブル又はディスエーブルさせる。プログラム可能要素６４０−２が論理低値を格納している場合（即ち、論理高値がインバータ６４１−２の出力において発生される）、この論理低値はＰＡＬ／ＣＡＭセル論理回路６８０をして、プログラム可能要素６４０−１内に格納されている値及び書込ビット線６４５−１及び６４５−１ ｂ上の入力信号に拘わらずに、低出力信号を発生させる。プログラム可能要素６４０−２が論理高値を格納している場合には、ＰＡＬ／ＣＡＭセル論理回路６８０は、プログラム可能要素６４０−１内に格納されている値及び書込ビット線６４５−１上を非反転形態で送信された入力信号及び反転書込ビット線６４５−１ ｂ上のその反転した形態によって決定される出力信号を発生する。プログラム可能要素６４０−１及び６４０−２内に格納されている両方の値が論理高値である場合には、ＰＡＬ／ＣＡＭセル論理回路６８０から送信される信号は書込ビット線６４５−１からの非反転入力信号である。プログラム可能要素６４０−１が論理低値を格納しており且つプログラム可能要素６４０−２が論理高値を格納している場合には、ＰＡＬ／ＣＡＭセル論理回路６８０から送信される信号は反転書込ビット線６４５−１ ｂからの反転入力信号である。例えば、ＰＡＬ／ＣＡＭセル論理回路６８０は、両方のプログラム可能要素６４０−１及び６４０−２が高（論理１）値を格納しており且つ書込線６４５−１上の非反転入力信号が論理高である場合には、ＡＮＤゲート６８７へ低（論理０）信号を送信する。ＰＡＬ／ＣＡＭセル論理回路６８０は、プログラム可能要素６４０−１が低（論理０）値を格納しており、プログラム可能要素６４０−２が高（論理１）値を格納しており、且つ書込ビット線６４５−１上の非反転入力信号が低である場合には、ＡＮＤゲート６８７へ高（論理１）信号を送信する。
【００６０】
注意すべきことであるが、ＣＡＭ動作モードはＰＡＬ動作の１つのタイプであって、その場合には８ビット「ワード」がＰＡＬ／ＣＡＭセルの列の各々に格納される。例えば、図６（Ｃ）を参照して、例示したＰＡＬ／ＣＡＭセルの両方のプログラム可能要素６４０−１及び６４０−２が論理高値を格納しており、且つプログラム可能要素６４０−１及び６４０−２を包含する列内の各ＰＡＬ／ＣＡＭセルの論理高値を格納しているものと仮定する。入力端子６０３−１乃至６０３−４から送信された４個の入力信号及び入力端子６０５から送信された４個の入力端子の両方が論理高値である場合には、８個の「マッチ（ｍａｔｃｈ）」（論理低）信号がＰＡＬ／ＣＡＭセル論理回路（図６（Ｃ）におけるＰＡＬ／ＣＡＭセル論理回路６８０と同様）からＡＮＤゲート６８７へ送信され、それはマクロセル６６０へ「マッチ」信号を送信する。Ｐ項線６２８上に送信される４個（又は８個）のＰ項信号のうちの少なくとも１つが高であるので、マクロセル６６０は積の和「マッチ」（論理高）信号をＬＭＣ  ＭＵＸ／ＤＥＭＵＸ６３０ヘ送信する。逆に、格納されている８ビットワードのうちのいずれもが入力信号とマッチ即ち一致しない場合には、Ｐ項線６２８上に送信されたＰ項信号のうちのいずれもが高ではなく、且つマクロセル６６０は積の和「マッチなし（ｎｏ−ｍａｔｃｈ）」（論理低）信号をＬＭＣ  ＭＵＸ／ＤＥＭＵＸ６３０ヘ送信する。
【００６１】
図６（Ｄ）はＬＭＣ  ＭＵＸ／ＤＥＭＵＸ６３０の実施例を示した簡単化した概略図である。ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ５３０（上に説明した）と同様に、はＬＭＣ  ＭＵＸ／ＤＥＭＵＸ６３０は１６対１デマルチプレクサ回路６３１，１６対１マルチプレクサ／デマルチプレクサ回路６３２、プログラム可能出力回路６３４を有している。デマルチプレクサ回路６３１は２入力マルチプレクサＰ１−Ｐ８，Ｑ１−Ｑ４，Ｒ１，Ｒ２，Ｓを有しており、選択端子は入力端子６０５上に送信された入力信号を受取る。第二マルチプレクサ回路６３２は一連の２入力マルチプレクサＰ１１−Ｐ１８，Ｑ１１−Ｑ１４，Ｒ１１，Ｒ１２，Ｓ１１を有しており、選択端子は入力端子６４５上に送信された入力信号を受取る。
【００６２】
メモリ書込モード期間中、デマルチプレクサ回路６３１はパストランジスタ６３３−１を介してデータ信号ＤＩＮの反転したものを受取り、且つ入力端子６０５上に送信された入力信号に従ってデマルチプレクサ回路６３１の２入力マルチプレクサＰ１−Ｐ８，Ｑ１−Ｑ４，Ｒ１，Ｒ２，Ｓを介してその反転データ信号を反転書込ビット線６４５ ｂのうちの１つへ送信する。同様に、マルチプレクサ／デマルチプレクサ回路６３２はパストランジスタ６３３−２を介してデータ信号ＤＩＮを受取り、且つそのデータ信号を書込ビット線６４５のうちの選択した１つへ送信する（読取／書込制御回路６２７を介して、図６（Ｃ）参照）。
【００６３】
メモリ読取（ＬＵＴ動作又はＲＡＭ読取）モード期間中、マルチプレクサ／デマルチプレクサ回路６３２はプログラム可能出力回路６３４を介し出力端子６３５−１乃至６３５−４のうちの１つ又はそれ以上へ読取ビット線６２５からデータ（ビット値）信号のうちの１つ又はそれ以上を送信する。プログラム可能出力回路６３４はコンフィギュレーションデータによって制御されて、格納されているデータ信号のうちの１つ、２つ、又は４つを出力端子６３５−１乃至６３５−４へ送信する。特に、格納されているデータ信号のうちの４個がＬＭＣ４３０−２から送信される場合には、マルチプレクサＴ，Ｕ，Ｖ，ＷがメモリセルＭ−Ｔ，Ｍ−Ｕ，Ｍ−Ｖ，Ｍ−Ｗによって制御されてマルチプレクサＱ１１，Ｑ１２，Ｑ１３，Ｑ１４を介して送信された信号を夫々出力端子６３５−１，６３５−２，６３５−３，６３５−４へパスする。一方、格納されているデータ信号のうちの２個がＬＭＣ４３０−２から送信される場合には、マルチプレクサＴ及びＶがメモリセルＭ−Ｔ及びＭ−Ｖによって制御されてマルチプレクサＲ１１及びＲ１２を介して送信された信号を夫々出力端子６３５−１及び６３５−３へパスする（出力端子６３５−２及び６３５−４へパスされた信号は無視される）。最後に、格納されているデータ信号のうちの単に１つがＬＭＣ４３０−２から送信される場合には、マルチプレクサＵがメモリセルＭ−Ｕによって制御されてマルチプレクサＳ１１を介して送信された信号を出力端子６３５−２へパスさせる（出力端子６３５−１，６３５−３，６３５−４へパスされる信号は無視される）。
【００６４】
ＰＬＡ／ＣＡＭ動作モード期間中、典型的にＬＭＣ４３０−２から出力されるビット値のみがマクロセル６６０によって発生される積の和（マッチ／マッチなし）値である。積の和の値は、メモリセルＭ−Ｕによって制御されるマルチプレクサＷを介して出力端子６３５−４へパスされる（出力端子６３５−１，６３５−２，６３５−３へパスされる信号は無視される）。
【００６５】
上に説明したように、ＬＭＣ４３０−２は８入力ＬＵＴか又は８入力ＰＡＬのいずれかを使用して論理を実現するために論理／メモリアレイ６２０のプログラム可能要素を選択的に使用することが可能である。従って、ユーザはＬＵＴ動作の高密度及び柔軟性とＰＡＬ動作の速度との間で選択することが可能である。この能力は、ユーザが、例えば、ＬＵＴ動作を使用して選択した大きな又は複雑な機能を実現しながら、幾つかのＬＭＣ内においてＰＡＬ動作を使用するより小さな又は速度が重要な論理グループを実現することを可能とする。両方の動作が同一のプログラム可能要素を使用して実施されるので、ＬＭＣ４３０−２のアレイを組込んだＰＬＤは広範な範囲の論理適用例に対して使用することが可能である。
【００６６】
第三実施例
図７（Ａ）乃至７（Ｄ）は本発明の第三実施例に基づくＬＭＣ４３０−３を示している。ＬＭＣ４３０−１（図５（Ａ））及びＬＭＣ４３０−２（図６（Ａ））と同様に、ＬＭＣ４３０−３のプログラム可能要素は８入力ＬＵＴとしてか又は２５６ビットＲＡＭとして選択的に使用することが可能である。更に、ＬＭＣ４３０−２（図６（Ａ））と同様に、ＬＭＣ４３０−３は選択的に８入力プログラム可能アレイ論理（ＰＡＬ）回路として動作することが可能であり、それによりユーザがその論理機能を高密度ＬＵＴフォーマットか又は高速ＰＡＬ／ＣＡＭフォーマットのいずれかで実現することを可能としている。更に、同一のプログラム可能要素及び入力端子が両方のＰＡＬ／ＣＡＭ及びＬＵＴ動作に対して使用され、それによりＰＬＤ用の高度に柔軟性があり且つ空間効率的なコンフィギャラブル即ち形態特定可能な論理ブロックを提供している。
【００６７】
図７（Ａ）を参照すると、ＬＭＣ４３０−３はデコーダ７１０、論理／メモリアレイ（Ｌ／Ｍ  ＡＲＲＡＹ）７２０、ＬＭＣマルチプレクサ／デマルチプレクサ（ＭＵＸ／ＤＥＭＵＸ）（スイッチ回路）７３０、マクロセル７６０、ＰＡＬ入力（ＰＡＬ  ＩＮ）制御回路７７０を有している。デコーダ７１０は第一組の入力端子７０３を介して４個の入力信号を受取るべく接続されており、且つアドレス線７１７を介して論理／メモリアレイ７２０へ送信される１６個のアドレス信号を発生する。論理／メモリアレイ７２０は、又、ライン７０７を介してコンフィギュレーションバス（不図示）から１６個のコンフィギュレーションアドレス信号を受取る。ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ７３０は入力端子７０５によって受取られた入力信号に応答して、ＬＵＴ動作及びメモリ読取モード期間中に選択したビット線７４５からのビット値を出力端子７３５へ送信する。ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ７３０は、メモリ書込モード期間中に、入力信号に応答してデータ入力端子ＤＩＮからの入力データ値を選択したビット線７４５及び反転ビット線７４５ ｂへ送信する。
【００６８】
更に、ＬＭＣ４３０−３は積項発生回路（以下に説明する）、マクロセル７６０、ＰＡＬ入力制御回路７７０を有している。ＰＡＬ及びＣＡＭ動作期間中、ＰＡＬ入力制御回路７７０は入力端子７０３及び７０５において受取られた入力信号を論理／メモリアレイ７２０のビット線７４５上へパスする。更に、論理／メモリアレイ７２０は積項発生回路を有しており、それはビット線７４５上の入力信号及び論理／メモリアレイ７２０のプログラム可能要素内に格納されているビット値に応答して積項を発生する。これらの積項はＰ項線７２８を介してマクロセル７６０へ送信され、それはマクロセル出力線７６５を介してＬＭＣ  ＭＵＸ／ＤＥＭＵＸ７３０ヘ送信される積の和の項を発生する。以下に説明するように、ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ７３０は出力制御回路を有しており、それは選択したビット線７４５を介して送信されたビット値か又はマクロセル７６０によって発生された積の和の項のいずれかをパスさせる。従って、ＬＭＣ４３０−３はユーザがＬＵＴフォーマットか又はＰＡＬ／ＣＡＭフォーマットのいずれかを使用して選択的に論理を実現することを可能とする。ＰＡＬ動作は典型的にＬＵＴ動作よりも一層高速であるので、この付加された柔軟性はＬＭＣ４３０−３を小さな論理部分の速度が重要である場合の適用例に対して有用なものとさせる。
【００６９】
図７（Ｂ）は簡単化したデコーダ７１０を示しており、それは入力端子７０３−１及び７０３−２上で受取られた２個の入力信号をデコードし、且つワード線７１７−１乃至７１７−４上に読取／書込アドレス信号を発生する。各入力信号が反転され、且つ選択された対の反転及び非反転入力信号が４個のＮＯＲゲートＮ１，Ｎ３，Ｎ５，Ｎ７の入力端子へ印加される。更に、読取／書込制御信号ＲＥＡＤ／ＷＲＩＴＥが反転され且つライン７１２を介してＮＯＲゲートＮ１，Ｎ３，Ｎ５，Ｎ７へ送信される。選択された対の入力信号及びＲＥＡＤ／ＷＲＩＴＥ制御信号に応答して、ＮＯＲゲートＮ１，Ｎ３，Ｎ５，Ｎ７は読取／書込アドレス信号を発生し、該信号は論理／メモリアレイ７２０における４つの列のプログラム可能要素ヘ印加される。例えば、ＮＯＲゲートＮ１はＲＥＡＤ／ＷＲＩＴＥ制御信号及び入力端子７０３−１及び７０３−２において受取られた反転入力信号に応答してアドレス信号を発生する。このアドレス信号はスイッチ回路７１５Ａを介してワード線７１７−１へ印加される。スイッチ回路７１５Ａはライン７１９及びライン７１９ ｂ上のコンフィギュレーション信号ＣＦＧによって制御されてメモリ書込モードにおいてＮＯＲゲートＮ１，Ｎ３，Ｎ５，Ｎ７によって発生されたアドレス信号をパスする。図７（Ａ）に示したように、４個の入力端子を受取り且つ１６個の読取／書込アドレス信号を発生するようにデコーダ７１０の修正は図７（Ｂ）に示した開示に鑑み容易に達成される。
【００７０】
再度図７（Ａ）を参照すると、論理／メモリアレイ７２０は２つのグループに分割されている１６個の行と１６個の列とに配列されている２５６個のプログラム可能要素を有している。第一グループの８個の列（ＰＡＬ／ＬＵＴ／ＲＡＭ  ＣＯＬＳ）７２１はＰＡＬ／ＣＡＭ，ＬＵＴ，ＲＡＭ動作を実施し、且つ第二グループの８個列（ＬＵＴ／ＲＥＭ  ＣＯＬＳ）７２２はＬＵＴ及びＲＡＭ動作のためにのみ使用される。第一グループ７２１の各列は８個の対を形成するために配列されている１６個のプログラム可能要素を有している（以後「ＰＡＬ／ＣＡＭセル」と呼称する）。第一グループ７２１の１つの列からの代表的な対のプログラム可能要素を図７（Ｃ）に示してあり且つ以下に説明する。第二グループ７２２のプログラム可能要素は、高速メモリ読取回路（即ち、インバータ５４６、トランジスタ５４７、読取ビット線５２５−１、図５（Ｃ）参照）なしでのプログラム可能要素５４０−１に類似している。従って、第二グループ７２２内に設けられるプログラム可能要素の説明は割愛する。
【００７１】
論理／メモリアレイ６２０（図６（Ｃ）参照）と同様に、論理／メモリアレイ７２０はビット線７４５及び７４５ ｂへ印加される信号を制御するためにコンフィギュレーションＣＦＧ制御信号及びＰＡＬイネーブル（ＰＡＬ  ＥＮＢＬ）制御信号を使用し、且つメモリ読取及びメモリ書込の両方の動作期間中にワード線７１７上に送信されたアドレス信号を制御するためにデコーダ７１０においてＲＥＡＤ／ＷＲＩＴＥ制御信号を使用する。注意すべきことであるが、論理／メモリアレイ６２０によって使用される別個のＲＥＡＤ及びＷＲＩＴＥ制御信号は論理／メモリアレイ７２０においては使用されていない。
【００７２】
コンフィギュレーション信号ＣＦＧが、ＬＭＣ４３０−２（図６（Ｃ）参照）に関して上述したのと同様の態様で、コンフィギュレーションモード期間中に、ワード線７１７上のアドレス信号のソース即ち供給源を制御する。例えば、メモリ書込モード（ＣＦＧが低であり且つＲＥＡＤ／ＷＲＩＴＥが高）期間中、デコーダ７１０によって発生される信号はスイッチ７１５Ａ−１（図７（Ｂ）参照）を介してワード線７１７−１上へパスされる。逆に、ＣＦＧ信号はコンフィギュレーションモード期間中に高であり、それにより第一スイッチ７１５Ａ−１をターンオフさせ且つ第二スイッチ７１５Ｂ−１（図７（Ｃ）参照）をターンオンさせてワード線７１７−１をコンフィギュレーションアドレス線７０７−１へ接続させる。ＣＦＧ信号は、又、ビット線７４５及び反転ビット線７４５ ｂを制御するために使用される。例えば、メモリ書込モード期間中、ＣＦＧが低であり且つＬＭＣ  ＭＵＸ／ＤＥＭＵＸ７３０（図７（Ａ）参照）から送信されたデータ値はビット線７４５−１上へパスされる。ＬＵＴ動作又はＲＡＭ読取モード期間中、データ値はビット線７４５−１からＬＭＣ  ＭＵＸ／ＤＥＭＵＸ７３０ヘパスされる。対照的に、コンフィギュレーションモード期間中（即ち、ＣＦＧ信号が高）、パストランジスタ７４８はターンオンされてビット線７３５−１及び７４５−２及び反転ビット線７４５−１ ｂ及び７４５−２ ｂを接続させてコンフィギュレーションビット線７４９−１及び７４９−２及び反転コンフィギュレーションビット線７４９−１ ｂ及び７４９−２ ｂからデータ信号を受取る。
【００７３】
ＰＡＬイネーブル（ＰＡＬ  ＥＮＢＬ）制御信号は、ＰＡＬ入力制御回路７７０（図７（Ａ）参照）をして入力端子７０３からの入力信号をＰＡＬ動作期間中にビット線７４５上へ印加させる。図７（Ｃ）を参照すると、ＰＡＬ入力制御回路７７０−１は、ＰＡＬ入力制御回路６７０−１（図６（Ｃ）参照）を参照して上に説明した態様で動作するパスゲート及びインバータを有している。
【００７４】
図７（Ｃ）は論理／メモリアレイ７２０の１個のＰＡＬ／ＣＡＭセル及び関連する回路を示している。ＰＡＬ／ＣＡＭセルは論理／メモリアレイ７２０の１つの列において順番に配列されている一対のプログラム可能要素７４０−１及び７４０−２から形成されている。プログラム可能要素７４０−１及び７４０−２の各々はビット値を格納するためのラッチ、及び該ラッチへの書込及びそれからの読取を制御する制御回路を有している。特にプログラム可能要素７４０−１は第一インバータ７４１−１及び第二インバータ７４２−１を有しており、それらは端部同志を接続して第一ラッチを形成しており、且つプログラム可能要素７４０−２は第一インバータ７４１−２及び第二インバータ７４２−２を有しており、それらは端部同志を接続して第二ラッチを形成している。プログラム可能要素７４０−１の第一ラッチは、夫々、パストランジスタ７４３−１及び７４４−１を介してビット線７４５−１及び反転ビット線７４５−１ ｂへ接続している。パストランジスタ７４３−１及び７４４−１のゲートはワード線７１７−１へ接続している。プログラム可能要素７４０−２の第二ラッチは、夫々、パストランジスタ７４３−２及び７４４−２を介してビット線７４５−２及び反転ビット線７４５−２ ｂへ接続している。パストランジスタ７４３−２及び７４４−２のゲートもワード線７１７−１へ接続している。従って、高アドレス信号がワード線７１７−１へ印加されると、ビット値はビット線７４５−１及び７４５−２及び反転ビット線７４５−１ ｂ及び７４５−２ ｂから送信されて夫々プログラム可能要素７４０−１及び７４０−２の第一及び第二ラッチ内へ格納されるか、又は第一及び第二ラッチから読取られてこれらのビット線上へ送信される。
【００７５】
積項は、ビット線７４５−１及び７４５−１ ｂ及びＰＡＬ／ＣＡＭセル（即ち、関連する対のプログラム可能要素）ヘ接続されている積項回路によって発生される。この積項回路は、複数個のＰＡＬ／ＣＡＭセル論理回路７８０及び１個又はそれ以上のＡＮＤゲート７８７を有している。図７（Ｃ）に示したように、各ＰＡＬ／ＣＡＭセル論理回路７８０は、ノード７８１（プログラム可能要素７４０−１の内側に示してある）ヘ接続している第一入力端子とプログラム可能要素７４０−２へ接続している第二入力端子とを具備している２入力ＮＯＲゲートである。ノード７８１は第一パストランジスタ７８３を介して書込ビット線７４５−１へ接続しており、且つ第二パストランジスタ７８２を介して反転ビット線７４５−１ ｂへ接続している。第一パストランジスタ７８３及び第二パストランジスタ７８２のゲートは、夫々、プログラム可能要素７４０−１のラッチによって格納されている反転及び非反転値によって制御される。図６（Ｃ）を参照して上に説明した対応する回路と同様に、ＰＡＬ／ＣＡＭセル論理回路７８０は、プログラム可能要素７４０−１及び７４０−２のプログラムされている状態、及び入力端子７０３−１上のＰＡＬ入力信号に基づいてＰＡＬ／ＣＡＭセル出力信号を発生する（それは、書込ビット線７４５−１及び反転書込ビット線７４５−１ ｂ上を送信される）。ＰＡＬ／ＣＡＭセル出力信号はＡＮＤ回路７８７へ送信され、それは、又、プログラム可能要素７４０−１及び７４０−２と同一の列内のその他のプログラム可能要素からのその他のＰＡＬ／ＣＡＭセル論理回路（不図示）からのＰＡＬ／ＣＡＭセル出力信号を受取る。これのＰＡＬ／ＣＡＭセル出力信号は、Ｐ項線７２８−１を介してマクロセル７６０へ送信されるＰ項信号を発生するためにＡＮＤ回路７８７によって使用される（反転した形式で）。
【００７６】
マクロセル７６０は、論理／メモリアレイ７２０のその他の列からの３個又は７個の付加的なＰ項信号と共に、Ｐ項線７２８−１からのＰ項信号を受取るＯＲゲート７６３を有している。マクロセル７６０はマクロセル出力線７６５を介してＬＭＣ  ＭＵＸ／ＤＥＭＵＸ７３０ヘ送信されるこれらのＰ項信号に応答して積の和の項を発生する。
【００７７】
論理／メモリアレイ７２０は、コンフィギュレーションモード、メモリ読取（即ち、ＬＵＴ動作又はＲＡＭ読取）モード、メモリ書込モード、及びＰＡＬ／ＣＡＭ動作モードで動作するためにコンフィギュレーション信号によって制御される。第二グループ７２２の動作（即ち、ＬＵＴ／ＲＡＭ  ＣＯＬＳ）は、論理／メモリアレイ５２０に関して上に説明したのと基本的に同一であり、従ってここで繰り返し説明することはしない。第一グループ７２１の動作（即ち、ＰＡＬ／ＬＵＴ／ＲＡＭ  ＣＯＬＳ）は図７（Ｃ）を参照して以下に説明する。
【００７８】
コンフィギュレーション即ち形態特定モード期間中、ＣＦＧ制御信号は高であり且つＰＬＡ  ＥＮＢＬ制御信号は低である（ＲＥＡＤ／ＷＲＩＴＥは「ｄｏｎ’ｔ  ｃａｒｅ」である）。高ＣＦＧ信号はスイッチ回路７１５Ａ−１（図７（Ｂ）参照）をターンオフさせ、且つスイッチ回路７１５Ｂ−１をターンオンさせ、従ってアドレス信号がコンフィギュレーションアドレス線７０７−１からワード線７１７−１上へ送信される。更に、高ＣＦＧ信号はパストランジスタ７４８をターンオンさせてビット線７４５及び７４５ ｂをコンフィギュレーションビット線７４９及び７４９ ｂへ接続させる。注意すべきことであるが、低ＰＬＡ  ＥＮＢＬ信号は、入力端子７０３−１からビット線７４５−１及び７４５−１ ｂへの入力信号の送信を防止する。この状態において、データ値が、同時的に、ビット線７４５−１及び７４５−１ ｂを介してプログラム可能要素７４０−１へ送信され、且つビット線７４５−２及び７４５−２ ｂを介してプログラム可能要素７４０−２へ送信される。プログラム可能要素７４０−１及び７４０−２は、その後のデータ書込処理が実施されるまで（又はパワーがターンオフされるまで）これらのデータ値を維持する。
【００７９】
メモリ書込モード期間中、ＣＦＧ及びＰＡＬ  ＥＮＢＬ信号は低であり、且つＲＥＡＤ／ＷＲＩＴＥ制御信号は高である。低ＣＦＧ信号はスイッチ回路７１５Ａ−１（図７（Ｂ）参照）をターンオンさせ、且つスイッチ回路７１５Ｂ−１をターンオフさせる。高ＲＥＡＤ／ＷＲＩＴＥ信号によってイネーブルされると、ＮＯＲゲートＮ１，Ｎ３，Ｎ５，Ｎ７（図７（Ｂ）参照）は入力端子７０３−１及び７３０−２によって受取られる入力信号に応答してワード線７１７−１乃至７１７−４上にアドレス信号を発生する。注意すべきことであるが、低ＣＦＧ信号はパストランジスタ７４８をターンオフさせる。この状態において、データ信号ＤＩＮはＬＭＣ  ＭＵＸ／ＤＥＭＵＸ７３０（後に説明する）の動作に応答して、ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ７３０から選択したビット線７４５−１又は７４５−２（及び選択した反転ビット線７４５−１ ｂ又は７４５−２ ｂ）ヘ送信される。
【００８０】
メモリ読取（ＬＵＴ動作又はＲＡＭ読取）モード期間中、ＣＦＧ及びＰＡＬ  ＥＮＢＬ制御信号は低であり、且つＲＥＡＤ／ＷＲＩＴＥ制御信号は高である。ＲＥＡＤ／ＷＲＩＴＥ信号は、ＮＯＲゲートＮ１，Ｎ３，Ｎ５，Ｎ７（図７（Ｂ）参照）をして、入力端子７０３−１及び７０３−２によって受取られる入力信号に応答して、ワード線７１７−１乃至７１７−４上にアドレス信号を発生させる。低ＣＦＧはスイッチ回路７１５Ａ−１をターンオンさせ、且つスイッチ回路７１５Ｂ−１をターンオフさせる。更に、低ＣＦＧ信号はパストランジスタ７４８をターンオフさせる。この状態において、プログラム可能要素７４０−１及び７４０−２内に格納されているビット値は、ワード線７１７−１を介してデコーダ７１０から送信される高アドレス信号に応答して、ビット線７４５−１及び７４５−２上に送信される。以下に説明するように、格納されているビット値はビット線７４５−１及び７４５−２を介してＬＭＣ  ＭＵＸ／ＤＥＭＵＸ７３０ヘ送信される。
【００８１】
ＰＡＬ／ＣＡＭ動作モード期間中、ＰＡＬ  ＥＮＢＬ信号は高であり、且つＣＦＧ信号は低である（ＲＥＡＤ／ＷＲＩＴＥは「ｄｏｎ’ｔ  ｃａｒｅ」である）。高ＰＡＬ  ＥＮＢＬ信号はＰＡＬイネーブル制御回路７７０−１をターンオンさせ、それにより入力信号を入力端子７０３−１からビット線７４５−１へパスさせ、かつ入力信号の反転したものを反転ビット線７４５−１ ｂヘパスさせる。ビット線７４５−１及び７４５−１ ｂ上の入力信号はプログラム可能要素７４０−１内に格納されている値に従ってＰＡＬ／ＣＡＭセル論理回路７８０の第一入力端子へ送信される。プログラム可能要素７４０−２内に格納されている値はＰＡＬ／ＣＡＭセル論理回路７８０の第二入力端子へ送信される。ＰＡＬ／ＣＡＭセル論理回路７８０は、プログラム可能要素７４０−１及び７４０−２内に格納されているビット値に依存し、且つビット線７４５−１及び７４５−１ ｂ上に送信される真及び補元ＰＡＬ入力信号に応答して高（論理１）信号又は低（論理０）信号のいずれかを発生する。ＰＡＬ／ＣＡＭセル論理回路７８０によって実施される論理は、ＰＡＬ／ＣＡＭセル論理回路６８０を参照して上に説明したものと同一である。
【００８２】
図７（Ｄ）は、ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ７３０の１つの実施例を示した簡単化した概略図である。ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ７３０はＬＭＣ  ＭＵＸ／ＤＥＭＵＸ６３０（上に説明した）と基本的に同一であり、その唯一の差異は、マルチプレクサ／デマルチプレクサ７３２が単にビット線７４５に接続されているに過ぎないという点である（即ち、読取／書込制御回路は存在しない）。従って、ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ７３０の動作の説明は割愛する。
【００８３】
第四実施例
図８（Ａ）乃至８（Ｄ）は本発明の第四実施例に基づくＣＬＢ８００を示した概略図である。ＣＬＢ８００は第一スイッチ回路（ＩＮＰＵＴ  ＭＵＸ）８２０、４個の論理／メモリ回路（ＬＭＣ）４３０−Ａ乃至４３０−Ｄ、第二スイッチ回路（ＯＵＴＰＵＴ  ＭＵＸ）８６０、レジスタ回路（ＦＦ）８７０、ＣＬＢ出力マルチプレクサ回路８７５を有している。ＣＬＢ８００はＣＬＢ８００に隣接して位置されている相互接続資源（不図示）の８０個の相互接続線から最大で２４個の入力信号を受取る。これらの入力信号はＣＬＢ入力端子８１０を介して第一スイッチ回路８２０へ送信され、それは、又、フィードバック線８８５を介して最大で１２個のフィードバック信号を受取る。第一スイッチ回路８２０はＬＭＣ入力線８３０を介してＬＭＣ４３０−Ａ乃至４３０−Ｄへこれらの入力及びフィードバック信号のうちのいずれか８個をルーチング即ち経路付けさせるためにプログラム可能なスイッチ要素を有している。第一スイッチ回路８２０は、例えば、ＬＭＣ４３０−Ａが第一グループの８個の入力信号を受取り且つＬＭＣ４３０−Ｂが第二の完全に異なるグループの８個の入力信号を受取るように、これらの入力信号を選択的に経路付けする。
【００８４】
各ＬＭＣ４３０−Ａ乃至４３０−ＤはＬＭＣ４３０−１（図５（Ａ）参照）、ＬＭＣ４３０−２（図６（Ａ）参照）、又はＬＭＣ４３０−３（図７（Ａ）参照）と一貫したプログラム可能な回路を有している。従って各ＬＭＣ４３０−Ａ乃至４３０−ＤへＬＭＣ入力線８３０を介して送信される８個の入力信号のグループは、第一組の４個の入力信号と第二組の４個の入力信号とを包含している。各ＬＭＣ４３０−Ａ乃至４３０−Ｄは、選択したワードが論理／メモリアレイのビット線上に送信されるように、第一組の入力信号によってアドレス可能な複数個のデータワードを格納するための論理／メモリアレイを有している。各ＬＭＣ４３０−Ａ乃至４３０−Ｄは、又、第二組の入力信号に応答して選択したビット線からＬＭＣ出力線８５０へ選択したデータ値をパスするためのスイッチ回路を有している。例えば制御信号ＣＦＧ，ＰＡＬ  ＥＮＢＬ，ＲＥＡＤ，ＷＲＩＴＥ等の付加的な信号、及びデータ入力信号ＤＩＮは周りの相互接続線から直接的にＬＭＣへ送信されるか、又は付加的なＬＭＣ入力線（不図示）上に送信される。ＬＭＣ出力線８５０を介してＬＭＣ４３０−Ａ乃至４３０−Ｄから送信される選択したデータ値は第二スイッチ回路（ＯＵＴＰＵＴ  ＭＵＸ）８６０へ送信される。第二スイッチ回路８６０はＬＭＣ４３０−Ａ乃至４３０−Ｄから送信される選択したデータ値を１２本の出力線８６５へパスする。ＣＬＢ８００がユーザによって組合わせ論理回路として使用されるか又は状態マシンとして使用されるかに依存して、出力線８６５上のデータ信号は、夫々、ＣＬＢ出力マルチプレクサ回路８７５の第一端子か、又はレジスタ回路（ＦＦｓ）８７０を介して第二端子へ送信される。ＣＬＢ出力マルチプレクサ回路８７５は、相互接続線（不図示）上へ送信するためにＣＬＢ出力端子８８０へ、又は第一スイッチ回路８２０へ送り戻すためにフィードバック線８８５へこれらの組の信号のうちの１つをパスする。
【００８５】
図８（Ｂ），８（Ｃ），８（Ｄ）はＣＬＢ８００の部分を更に詳細に示した概略図である。
【００８６】
図８（Ｂ）は第一スイッチ回路８２０を示したブロック図である。第一スイッチ回路８２０は４個のスイッチブロック８２０−Ａ乃至８２０−Ｄを有しており、各スイッチブロックは８個のマルチプレクサ回路（ＭＸＣ）を有している。例えば、スイッチブロック８２０−ＡはＭＸＣ  Ａ−１乃至ＭＸＣ  Ａ−８を有している。各スイッチブロック８２０−Ａ乃至８２０−ＤはＣＬＢ入力端子８１０を介して相互接続資源から入力信号を受取り且つフィードバック線８８５を介してフィードバック信号を受取る。各スイッチブロック８２０−Ａ乃至８２０−Ｄの各ＭＸＣはＣＬＢ入力端子８１０又はフィードバック線８８５から関連するＬＭＣ入力線８３０へ選択した信号をパスするためのプログラム可能なスイッチング要素を有している。例えば、ＭＸＣ  Ａ−１は、入力端子８１０又はフィードバック線８８５のいずれかから選択した１つの信号をＬＭＣ入力線８３０−１へパスするようにプログラムすることが可能である。
【００８７】
図８（Ｃ）はスイッチブロック８２０−Ａ乃至８２０−Ｄの全てのＭＸＣの代表的なものであるＭＸＣ  Ａ−１のプログラム可能なスイッチ要素を示した簡単化した概略図である。ＭＸＣ  Ａ−１はＣＬＢ入力端子８１０上で２４個の入力信号を受取り且つフィードバック線８８５上で１２個のフィードバック信号を受取る。これらの２４個の入力端子８１０及び１２個のフィードバック線８８５は４つのグループにまとめられており、且つ各グループはパストランジスタ８１２を介して共通ノードへプログラミングによって接続される。例えば、４個の入力端子８１０−１乃至８１０−４からなる１つのグループは共通ノード８１５へ接続している。入力端子８１０−１はパストランジスタ８１２−１を介して共通ノード８１５へ接続しており、且つ入力端子８１０−２乃至８１０−４は同様に制御される。第一組の４個のメモリ要素Ｍａ乃至Ｍｄはパストランジスタ８１２のゲートへ接続しており且つ各グループの４個の入力端子から１個の信号をパスするためにユーザによってプログラムされる。例えば、入力端子８１０−１からの入力信号は、パストランジスタ８１２−１をターンオンさせるようにメモリ要素Ｍａをプログラミングすることによって共通ノード８１５へパスされる（メモリ要素Ｍｂ乃至Ｍｄはそれらの関連するパストランジスタをターンオフするようにプログラムされる）。各共通ノードはメモリ要素Ｍｅ乃至Ｍｍによって制御される関連するパストランジスタを介して出力ノード８１７へ接続される。例えば、共通ノード８１５はメモリ要素Ｍｅによって制御されるパストランジスタ８１６を介して出力ノード８１７へ接続している。従って、ＭＸＣ  Ａ−１は、出力ノード８１７を介して２４個の入力端子８１０及び１２個のフィードバック線８８５のうちの選択した１つをＬＭＣ入力線８３０−１へ経路付けさせるためにメモリ要素Ｍａ乃至Ｍｍをプログラミングすることによって選択的に制御される。
【００８８】
図８（Ｄ）は、ＣＬＢ８００の第二スイッチ回路８６０、レジスタ回路８７０、ＣＬＢ出力マルチプレクサ回路８７５を示した概略図である。簡単に図８（Ａ）を参照すると、各ＬＭＣ４３０−Ａ乃至４３０−ＤはＬＭＣ出力線８５０を介して第二スイッチ回路８６０へ送信される１個、２個又は４個の出力信号を発生する。図８（Ｄ）に戻ると、第二スイッチ回路８６０は、各ＯＭＸＣが１６個全てのＬＭＣ出力信号を受取るように、ＬＭＣ出力線８５０へ接続されている１２個の出力マルチプレクサ回路（ＯＭＸＣ）８６０−１乃至８６０−１２を有している。各ＯＭＸＣ８６０−１乃至８６０−１２は、選択したＬＭＣ出力信号を関連する出力線８６５へパスさせるようにプログラムされている１６対１マルチプレクサを有している。出力線８６５はレジスタ回路８７０へ及びＣＬＢ出力マルチプレクサ回路８７５の１組の入力端子へ供給される。レジスタ回路８７０はフリップフロップＦＦ−１乃至ＦＦ−１２を有しており、その各々は関連する出力線８６５を介してパスされる信号を受取るべく接続されているデータ端子を有している。フリップフロップＦＦ−１乃至ＦＦ−１２はＣＬＢ出力マルチプレクサ回路８７５の第二組の入力端子へ接続している出力端子を有している。ＣＬＢ出力マルチプレクサ回路８７５は１２個の２対１マルチプレクサＺ１乃至Ｚ１２を有しており、それらは関連する出力線８６５を介して直接的に送信された選択したＬＭＣ出力信号か、又は関連するフリップフロップＦＦ−１乃至ＦＦ−１２から送信されたレジスタされた信号のいずれかをパスするためにコンフィギュレーションメモリセルＭによって制御される。ＣＬＢ出力マルチプレクサ回路８７５によってパスされた信号は関連するフィードバック線及び相互接続資源へ送信される。
【００８９】
ＣＬＢ８００は、従来技術において使用されている１６ビットＬＵＴが最小の付加的な空間を占有しながら実質的により大きな論理機能部分を実現する４個の２５６ビットＬＭＣ４３０によって置換されているという点において従来のＣＬＢにない利点を提供している。ＬＵＴ（即ち、ＬＭＣ）の寸法を増加させると論理レベルの数が減少され、従って論理機能は多数の１６ビットＬＵＴを使用して可能である場合よりもより速い速度で実施される。更に、２５６ビットＬＭＣを形成するために必要な付加的な空間は各ＬＭＣによって実現されるユーザ論理の付加的な量によってオフセットされる。
【００９０】
第五実施例
図９（Ａ）乃至９（Ｃ）は本発明の第五実施例に基づくＣＬＢ９００を示した概略図である。ＣＬＢ９００は、ＣＬＢ８００の第二スイッチ回路８６０及びＣＬＢ出力マルチプレクサ回路８７５がＣＬＢ９００においては使用されていないという点がＣＬＢ８００（図８Ａ（参照））と異なっている。これらの出力制御回路が存在しないことを補償するために、ＣＬＢ８００によって与えられる１２個と比較して、周りの相互接続資源（不図示）ヘＣＬＢ９００から出力信号を送信するために２４個の出力端子が設けられている。出力端子の数を増加させることは相互接続資源との接続を与えるために付加的なプログラム可能回路が必要となるが、これらの出力制御回路を取除くことは信号遅延を減少させ、それによりより速い動作速度の利点を提供する。
【００９１】
ＣＬＢ９００はスイッチ回路（ＩＮＰＵＴ  ＭＵＸ）９２０、４個の論理／メモリ回路（ＬＭＣ）４３０−Ａ乃至４３０−Ｄ、レジスタ回路（ＦＦｓ）９７０−１乃至９７０−４を有している。ＣＬＢ９００は最大で２４個の入力信号を入力端子９１０上で受取り、それらはホストＰＬＤ上のＣＬＢ９００に隣接して位置されている相互接続資源（不図示）の相互接続線へプログラミングによって接続されている。これらの入力信号はスイッチ回路９２０へ送信され、それは、又、フィードバックラインバス９８５上の８個のフィードバック信号を受取る。スイッチ回路９２０はＬＭＣ入力線９３０−Ａ乃至９３０−Ｄを介してＬＭＣ４３０−Ａ乃至４３０−Ｄへこれらの入力及びフィードバック信号のうちのいずれか８個をルーチング即ち経路付けするためのプログラム可能なスイッチ要素を有している。
【００９２】
各ＬＭＣ４３０−Ａ乃至４３０−Ｄは本発明のＬＭＣ、例えばＬＭＣ４３０−１（図５（Ａ）参照）、ＬＭＣ４３０−２（図６（Ａ）参照）、又はＬＭＣ４３０−３（図７（Ａ）参照）とを一貫性のあるプログラム可能回路を有している。従って、各ＬＭＣ４３０−Ａ乃至４３０−ＤはＬＭＣ入力線９１０―Ａ乃至９１０−Ｄを介して受取った入力信号に応答して、ＣＬＢ出力端子９５０−１乃至９５０−４上に最大で４個の出力信号を供給するためのスイッチ回路を有している。例えば制御信号ＣＦＧ，ＰＡＬ  ＥＮＢＬ，ＲＥＡＤ，ＷＲＩＴＥ及びデータ入力信号ＤＩＮなどの付加的な信号が周りの相互接続線から直接的にＬＭＣ４３０−Ａ乃至４３０−Ｄへ送信されるか、又は付加的なＬＭＣ入力線（不図示）上に送信される。フィードバック線対９８５−Ａ乃至９８５−Ｄは関連する出力端子９５０−１乃至９５０−４からフィードバック信号の経路付けを行う。例えば、フィードバック信号はＣＬＢ出力端子９５０−１を構成する４本のライン（線）のうちの２つからフィードバック線対９８５−Ａを介して送信される。フィードバック線対９６５−Ａ乃至９８５−Ｄはスイッチ回路９２０へ接続されているフィードバック線バス９８５を形成する。ＣＬＢ９００がユーザによって組合わせ論理として使用される場合には、ＣＬＢ出力端子９５０−１乃至９５０−４上のデータ信号は直接的に相互接続線（不図示）ヘ送信される。対照的に、ＣＬＢ９００が状態マシンとして使用される場合には、各ＣＬＢ出力端子９５０−１乃至９５０−４と関連する４本のラインのうちの２つの上の信号がレジスタ回路（ＦＦｓ）９７０−１乃至９７０−４へ送信され、それはレジスタされた出力信号をＣＬＢレジスタ済出力端子９７５−１乃至９７５−４上に送信する。
【００９３】
図９（Ｂ）及び９（Ｃ）はスイッチ回路（ＩＮＰＵＴ  ＭＵＸ）９２０の付加的な詳細を示した概略図である。
【００９４】
図９（Ｂ）はスイッチ回路９２０のブロック図である。スイッチ回路９２０は４個のスイッチブロック９２０−Ａ乃至９２０−Ｄを有しており、各スイッチブロックは８個のマルチプレクサ回路（ＭＸＣ）を有している。例えば、スイッチブロック９２０−ＡはＭＸＣ  Ａ−１１乃至ＭＸＣ  Ａ−１８を有している。各スイッチブロック９２０−Ａ乃至９２０−Ｄは、夫々、関連するＣＬＢ入力端子９１０−Ａ乃至９１０−Ｄを介して相互接続資源から２４個の入力信号を受取り、且つフィードバック線バス９８５を介して６個のフィードバック信号を受取る。各スイッチブロック９２０−Ａ乃至９２０−Ｄの各マルチプレクサ回路ＭＸＣは、ＣＬＢ入力端子９１０−Ａ乃至９１０−Ｄからの選択した信号又はフィードバック線バス９８５からのフィードバック信号をＬＭＣ入力線９３０−Ａ乃至９３０−Ｄの関連するライン（線）へパスさせるプログラム可能なスイッチング要素を有している。例えば、ＭＸＣ  Ａ−１１はＣＬＢ入力端子９１０−Ａの２４本の線からか又はフィードバック線バス９８５の６本のフィードバック線からの１個の信号をＬＭＣ入力線９３０−Ａ１へパスさせるべくプログラム可能であり、それは、次いで、ＬＭＣ４３０−Ａ（図９（Ａ）参照）ヘ送信される。
【００９５】
注意すべきことであるが、フィードバック線バス９８５の８本のフィードバック線のうちの６本のみが各スイッチブロック９２０−Ａ乃至９２０−Ｄに対して経路付けされる。図示例においては、ＬＭＣのうちの１つからの出力信号はそのＬＭＣによってフィードバックとして使用されていない。従って、１個のＬＭＣの出力端子へ接続されているフィードバック線バス９８５のフィードバック線対はそのＬＭＣと関連しているスイッチブロックに対してフィードバックされることはない。例えば、図９（Ｂ）に示したように、スイッチブロック９２０−Ａはフィードバック線対９８５−Ｂ，９８５−Ｃ，９８５−Ｄ、（夫々、ＬＭＣ４３０−Ｂ，４３０−Ｃ，４３０−Ｄによって発生される）からのフィードバック信号を受取る。従って、フィードバック線対９８５−Ａはスイッチブロック９２０−Ａに対して送信されることはない。同様に、スイッチブロック９２０−Ｂはフィードバック線対９８５−Ａ，９８５−Ｃ，９８５−Ｄからのフィードバック信号を受取り、スイッチブロック９２０−Ｃはフィードバック線対９８５−Ａ，９８５−Ｂ，９８５−Ｄからのフィードバック信号を受取り、且つスイッチブロック９２０−Ｄはフィードバック線対９８５−Ａ，９８５−Ｂ，９８５−Ｃからのフィードバック信号を受取る。
【００９６】
図９（Ｃ）はスイッチブロック９２０−Ａ乃至９２０−Ｄの全てのマルチプレクサ回路を代表するＭＸＣ  Ａ−１１のプログラム可能なスイッチ要素を示した簡単化した概略図である。ＭＸＣ  Ａ−１１はＣＬＢ入力端子９１０−Ａ上の２４個の入力信号及びフィードバック線対９８５−Ｂ，９８５−Ｃ，９８５−Ｄからの６個のフィードバック信号を受取る。これら２４個の入力信号はパストランジスタ９１２を介して４つのグループで送信される。第一組の４個のメモリ要素Ｍａ乃至Ｍｄはパストランジスタ９１２のゲートへ接続されており且つ各グループの４個の入力信号から１個の信号をパスさせるべくユーザによってプログラムされる。同様に、６個のフィードバック信号がパストランジスタ９１２を介して２個のグループ毎に送信される。メモリ要素Ｍａ及びＭｂはこれらのパストランジスタを制御して各グループの２個のフィードバック信号から１個の信号をパスさせる。これらのグループの内の１つからのフィードバック信号又は選択した入力信号がメモリ要素Ｍｅ乃至Ｍｍによって制御される関連するパストランジスタを介してＬＭＣ入力線９３０−Ａ１へパスされる。従って、ＭＸＣ  Ａ−１１はメモリ要素Ｍａ乃至Ｍｍをプログラミングすることによって選択的に制御されて、入力端子９１０−Ａからの２４個の入力信号及びフィードバック線対９８５−Ｂ，９８５−Ｃ，９８５−Ｄからの６個のフィードバック信号のうちの選択した１つをＬＭＣ入力線９３０−Ａ１を介してＬＭＣ４３０−Ａへ経路付けさせる。
【００９７】
再度図９（Ａ）を参照すると、各ＬＭＣ４３０−Ａ乃至４３０−Ｄは周りの相互接続資源（不図示）ヘＣＬＢ出力端子９５０−１乃至９５０−４を介して送信される１個、２個、又は４個の出力信号を発生する。一方、各ＣＬＢ出力端子９５０−１乃至９５０−４からの２個の信号をＣＬＢレジスタ済出力端子９７５−１乃至９７５−４を介してレジスタ回路９７０−１乃至９７０−４から送信されるレジスタ済の出力信号としてＣＬＢ９００から供給することが可能である。
【００９８】
第六実施例
ＣＬＢ８００及びＣＬＢ９００は論理／メモリ機能を実施するために４個のＬＭＣ４３０を有しているが、回路寸法における増加を最小としながら付加的な論理能力を与えるためにＬＭＣと関連して特別目的回路及びその他の論理回路を使用することが可能である。
【００９９】
図１０は本発明の第六実施例に基づくＣＬＢ１０００を示したブロック図である。ＣＬＢ８００（図８（Ａ）参照）と同様に、ＣＬＢ１０００は第一スイッチ回路（ＩＮＰＵＴ  ＭＵＸ）１０２０、４個の論理／メモリ回路（ＬＭＣ）４３０−Ａ乃至４３０−Ｄ、第二スイッチ回路（ＯＵＴＰＵＴ  ＭＵＸ）１０６０、レジスタ回路（ＦＦｓ）１０７０、ＣＬＢ出力マルチプレクサ回路１０７５を有している。更に、ＣＬＢ１０００は４×４アレイ乗算器回路１０９０を有しており、それは第一スイッチ回路１０２０から全部で８個の入力信号を受取り且つ第二スイッチ回路１０６０へ送信される８個の出力信号を発生する。適宜の４×４アレイ乗算器回路は、例えば、Ｎｅｉｌ  Ｗｅｓｔｅ及びＫａｍｒａｎ  Ｅｓｈｒａｇｈｉａｎ著「ＣＭＯＳ  ＶＬＳＩ設計の原理（Ｐｒｉｎｃｉｐｌｅｓ  ｏｆ  ＣＭＯＳ  ＶＬＳＩ  Ｄｅｓｉｇｎ）」、第二版、アジソンウエズリィ出版社、１９９３、５４５−５４７頁に記載されている。乗算器回路はＬＭＣ４３０の汎用回路よりも実質的に寸法がより小さく、しばしば、ＤＳＰ適用例において使用される。乗算器回路１０９０を与えることによって、ＣＬＢ１０００は３倍以上これらの適用例に対する乗算速度を改善する。
【０１００】
第七実施例
図１１は本発明の第七実施例に基づくＣＬＢ１１００を示したブロック図である。ＣＬＢ１０００（図１０）と同様に、ＣＬＢ１１００は、汎用論理演算を実施するための論理／メモリ回路（ＬＭＣ）４３０−Ａ及び４３０−Ｂを有しており、且つ乗算演算を実施するための４×４アレイ乗算器回路１１９０を有している。この第七実施例においては、ＬＭＣ４３０−Ａ及び４３０−Ｂは、例えば、ＬＵＴ及びＲＡＭ機能のみを実施するＬＭＣ４３０−１（図５（Ａ）参照）を使用して実現される。更に、ＡＮＤ−ＯＲ論理形式を使用して論理関数部分を実現するために２個の専用のＰＡＬ回路１１９５−１及び１１９５−２が設けられている。専用のＰＡＬ回路は公知であり、且つ、上述したように、典型的にＬＵＴ回路よりも一層高速である。大容量のＬＭＣ４３０と高速の専用のＰＡＬ回路の両方を単一のＣＬＢ１１００内に組込むことによって、高速且つ大容量の両方の論理機能を実現することが可能な高度に多様性のあるＰＬＤが製造される。
【０１０１】
第八実施例
上述したように、ＬＭＣ４３０−１（図５（Ａ））、４３０−２（図６（Ａ））、４３０−３（図７（Ａ））の論理／メモリアレイは１６×１６マトリクス（行列）に配列されている２５６個のプログラム可能要素を有している。この配列は任意の８入力論理機能の高容量ＬＵＴ実現を与えるものであるが、それは、又、これらのＬＭＣの動作速度を減少させる。特に、各ビット線へ接続されている１６個のプログラム可能要素は各ビット線上に顕著な負荷を形成する。上述したように、ＬＭＣ４３０−１（図５（Ｃ）参照）及び４３０−２（図６（Ｃ）参照）の論理／メモリアレイにおいて開示した「高速読取」構成はＬＭＣ４３０−３（図７（Ｃ）参照）によって与えられるものよりも比較的高速な動作速度を発生する。然しながら、この「高速読取」構成を使用した場合であっても、各「高速読取」ビット線上に１６個のプログラム可能要素によって発生される負荷は信号遅延に対して顕著に貢献する。従って、動作速度を更に増加させるために、論理／メモリアレイ内の各ビット線からプログラム可能要素を除去することが可能である。論理／メモリアレイからプログラム可能要素を取除くことはＬＵＴ及びＲＡＭ容量を犠牲にするものであるが、その結果発生する動作速度における増加は高速論理実現のために極めて有益的なものである。
【０１０２】
図１２（Ａ）乃至１２（Ｃ）は本発明の第八実施例に基づくＬＭＣ４３０−４を示している。ＬＭＣ４３０−２（図６（Ａ））と同様に、ＬＭＣ４３０−４のプログラム可能要素はＬＵＴ、ＲＡＭ又はＰＡＬ／ＣＡＭとして選択的に使用することが可能である。然しながら、ＬＭＣ４３０−２と異なり、ＬＭＣ４３０−４の論理／メモリアレイは１６個の行と４個の列とに配列された６４ビットを有するに過ぎない。そうであるから、ＬＭＣ４３０−４は６入力ＬＵＴ動作（ＬＭＣ４３０−２の８入力ＬＵＴ動作と対比される）を実現することが可能であり、且つ６４ビットＲＡＭ動作（２５６ビットと対比される）を実現することが可能である。然しながら、論理／メモリアレイの各行内のプログラム可能要素の数を減少させることによって、各読取ビット線に印加される容量は著しく小さく、それによりメモリ読取（ＬＵＴ動作及びＲＡＭ読取）モード期間中の動作速度が増加される。更に、列の数を４へ減少させることによって、メモリ読取モード期間中における動作速度を更に増加させるためにハードワイヤードデコーダを使用することが可能である。
【０１０３】
図１２（Ａ）を参照すると、ＬＭＣ４３０−４はデコーダ１２１０、ハードワイヤードデコーダ（ＬＡＲＤ  ＤＥＣ）１２１６、論理／メモリアレイ１２２０、ＬＭＣマルチプレクサ／デマルチプレクサ（ＭＵＸ／ＤＥＭＵＸ）（スイッチ回路）１２３０、マクロセル１２６０、ＰＡＬ入力（ＰＡＬ  ＩＮ）制御回路１２７０を有している。デコーダ１２１０が第一組の４個の入力端子１２０３から２個の入力信号を受取るべく接続されており、且つ書込ワード線１２１７上に４個の書込アドレス信号を発生し、それらは論理／メモリアレイ１２２０のプログラム可能要素の列へ送信される。ハードワイヤードデコーダ１２１６も入力端子１２３０から同一の２つの入力信号を受取るべく接続されており、且つ読取ワード線１２１８上に８個の読取アドレス信号を発生し、２個の読取アドレス信号は論理／メモリアレイ１２２０の各列へ送信される。論理／メモリアレイ１２２０は、又、コンフィギュレーションバス（不図示）から線１２０７を介して４個のコンフィギュレーション（形態特定）アドレス信号を受取る。制御回路（後に説明する）が、メモリ書込動作期間中にデコーダ１２１０によって発生されたアドレス信号を書込ワード線１２１７上に印加させるか、又はコンフィギュレーションモード期間中にコンフィギュレーションアドレス信号を書込ワード線１２１７上へ印加させるために設けられている。ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ１２３０は入力端子１２０５によって受取られる入力信号に応答して、選択した読取ビット線１２２５からのビット値をメモリ読取モード期間中に出力端子１２３５へパスさせる。更に、ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ１２３０は該入力信号に応答して、メモリ書込モード期間中に、データ入力端子ＤＩＮからの入力データ値を選択した書込ビット線１２４５及び反転書込ビット線１２４５ ｂへ送信する。
【０１０４】
図１２（Ｂ）は、入力端子１２０３−１及び１２０３−２上で受取った２つの入力信号をデコードする簡単化したデコーダ１２１０及びハードワイヤードデコーダ１２１６を示している。各入力信号は反転され、且つ選択された対の反転及び非反転入力信号がデコーダ１２１０の４個のＮＯＲゲートＮ１，Ｎ３，Ｎ５，Ｎ７の入力端子へ印加され、それは、又、反転ＷＲＩＴＥ制御信号を受取る。選択した対の入力信号及びＷＲＩＴＥ制御信号に応答して、ＮＯＲゲートＮ１，Ｎ３，Ｎ５，Ｎ７は書込アドレス信号を発生し、該信号はスイッチ回路１２１５を介して論理／メモリアレイ１２２０におけるプログラム可能要素の４つの列へ印加される。反転及び非反転入力信号は、又、ハードワイヤードデコーダ１２１６によって使用されて、該デコーダは反転及び非反転入力信号の選択した対を読取線１２１８−１乃至１２１８−８を介して論理／メモリアレイ１２２０におけるプログラム可能要素の４つの列へ供給する。
【０１０５】
再度図１２（Ａ）を参照すると、論理／メモリアレイ１２２０は１６個の行と４個の列とに配列された６４個のプログラム可能要素を有している。各列は８個の対を形成すべく配列された１６個のプログラム可能要素を有している（以後「ＰＡＬ／ＣＡＭセル」と呼称する）。論理／メモリアレイ１２２０の１つの列からの代表的な対のプログラム可能要素を図１２（Ｃ）に示してある。論理／メモリアレイ１２２０の残りの対のプログラム可能要素は基本的に図１２（Ｃ）に示した対と同一である。
【０１０６】
図１２（Ｃ）は論理／メモリアレイ１２２０の１つの列において順番に配列されているプログラム可能要素１２４０−１及び１２４０−２によって形成される１個のＰＡＬ／ＣＡＭセルを示している。図６（Ｃ）を参照して上に説明したプログラム可能要素６４０−１及び６４０−２と同様に、各プログラム可能要素１２４０−１及び１２４０−２は、ビット値を格納するためのラッチ、及び書込ビット線１２４５−１，１２４５−１ ｂ，１２４５−２，１２４５−２ ｂから各ラッチへビット値を書込むための処理を制御するための制御回路を有している。更に、プログラム可能要素１２４０−１及び１２４０−２は、夫々、ビット値を読取ビット線１２２５−１及び１２２５−２上へ駆動する第三インバータ１２４６−１及び１２４６−２を有している。ゲートが読取ワード線１２１８−１及び１２１８−２へ夫々接続されている２個の直列パストランジスタ１２４７−１Ａ及び１２４７−１Ｂによってメモリ読取動作が制御されるという点においてプログラム可能要素１２４０−１はプログラム可能要素６４０−１（図６（Ｃ））と異なっている。特に、プログラム可能要素１２４０−１のラッチによって格納されているビット値は、読取ワード線１２１８−１及び１２１８−２の両方へ高アドレス信号が印加された場合にのみ読取ビット線１２２５−１へ送信され、それによりパストランジスタ１２４７−１Ａ及び１２４７−１Ｂの両方をターンオンさせる。簡単に図１２（Ｂ）を参照すると、読取ワード線１２１８−１及び１２１８−２は、入力端子１２０３−１及び１２０３−２の両方において受取られる入力信号が低である場合にのみ、高アドレス信号を受取る（即ち、読取ワード線１２１８−１及び１２１８−２へ印加される反転入力信号が高）。同様に、プログラム可能要素１２４０−２に対するメモリ読取動作は、ゲートが読取ワード線１２１８−１及び１２１８−２へ夫々接続されている２個の直列パストランジスタ１２４７−２Ａ及び１２４７−２Ｂによって制御される。
【０１０７】
論理／メモリアレイ１２２０は単に４個の列のプログラム可能要素を有しているに過ぎないので、ハードワイヤードデコーダ１２１６の訂正及びメモリ読取動作用の第二パストランジスタの付加は論理／メモリアレイ１２２０に対して著しい複雑性を導入させることはない。更に、ハードワイヤードデコーダ１２１６によって除去されるデコーダ遅延はビット値を直列パストランジスタを介して送信させることによって発生される付加的な遅延よりも一層大きく、それにより正味の動作速度の増加が得られる。ＬＭＣ４３０−４の動作速度は、単に４個のプログラム可能要素が各ビット線へ接続されているのに過ぎないので、更に増加される。従って、ＬＭＣ４３０−４は１６×１６論理／メモリアレイを具備するＬＭＣによって与えられるものよりもメモリ読取（ＬＵＴ動作及びＲＡＭ読取）モードにおいて著しくより速い動作速度で動作する。
【０１０８】
プログラム可能要素１２４０−１及び１２４０−２の修正されたメモリ読取動作以外、ＬＭＣ４３０−４の動作はＬＭＣ４３０−２を参照して上述したものと同様である。更に、ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ１２３０は基本的ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ６３０（図６（Ｄ）参照）と同一である。従って、ＬＭＣ  ＭＵＸ／ＤＥＭＵＸ１２３０及びコンフィギュレーション、ＰＡＬ／ＣＡＭ、及びメモリ書込モードの説明は割愛する。
【０１０９】
本発明をその幾つかの好適実施例を参照してかなり詳細に説明したが、その他の実施例も可能である。例えば、別の実施例においては、ＬＭＣ４３０−１のメモリセルは１６×４マトリクス（上述したＬＭＣ４３０−４において使用したものと同様）として配列させ、且つハードワイヤードデコーダ（ハードワイヤードデコーダ１２１６と同様、図１２（Ｂ）参照）を包含するデコーダ構成が提供される。ハードワイヤードデコーダ１２１６をＬＭＣ３４０−１の高速メモリ読取回路と結合させることによって、極めて高速の読取動作を実施する論理／メモリ回路が提供される。更に別の実施例においては、ＣＬＢ８００又は９００は２４個を超える入力信号を受取ることが可能である。更に、本明細書に記載したＬＭＣは、９個又はそれ以上の入力のＬＵＴをサポートするためにより大きな数のプログラム可能要素を具備する論理／メモリアレイを有することが可能であるが、このようなＬＭＣは９（又はそれ以上）入力ＬＵＴを使用するために論理機能を区画化することに関連する問題のために下限最適である。更に、ＣＬＢ１０００及び１１００において使用した乗算器回路の１：１入力対出力比の代わりに、２：１入力対出力比を具備する加算器回路、又は別の特別目的回路を使用することが可能である。従って、特許請求の範囲の精神及び範囲は本明細書に含まれる好適実施例の記載に制限されるべきものではない。
【図面の簡単な説明】
【図１】  （Ａ）は簡単化した従来のＦＰＧＡの一部を示した概略図、（Ｂ）は（Ａ）のＦＰＧＡにおける信号の経路付けのために使用されるスイッチ回路を示した概略図、（Ｃ）は（Ａ）のＦＰＧＡにおける信号の経路付けのために使用されるスイッチ回路を示した概略図、（Ｄ）は（Ａ）のＦＰＧＡにおける信号の経路付けのために使用されるスイッチ回路を示した概略図。
【図２Ａ】  従来のＦＰＧＡのＣＬＢを示した簡単化した概略図。
【図２Ｂ】  図２Ａに示したＣＬＢの４入力ＬＵＴを示した簡単化した概略図。
【図２Ｃ】  図２Ｂに示した４入力ＬＵＴのメモリセルを示した簡単化した概略図。
【図３】  幾つかの４入力ＬＵＴを介しての信号の経路付けのために使用されるクリチカルパスを示し且つ従来のＦＰＧＡの一部を示した簡単化した概略図。
【図４】  本発明に基づいて形成した論理／メモリ回路（ＬＭＣ）を含む簡単化したＰＬＤを示したブロック図。
【図５Ａ】  本発明の第一実施例に基づくＬＭＣの一部を示した概略図。
【図５Ｂ】  本発明の第一実施例に基づくＬＭＣの一部を示した概略図。
【図５Ｃ】  本発明の第一実施例に基づくＬＭＣの一部を示した概略図。
【図５Ｄ】  本発明の第一実施例に基づくＬＭＣの一部を示した概略図。
【図６Ａ】  本発明の第二実施例に基づくＬＭＣの一部を示した概略図。
【図６Ｂ】  本発明の第二実施例に基づくＬＭＣの一部を示した概略図。
【図６Ｃ】  本発明の第二実施例に基づくＬＭＣの一部を示した概略図。
【図６Ｄ】  本発明の第二実施例に基づくＬＭＣの一部を示した概略図。
【図７Ａ】  本発明の第三実施例に基づくＬＭＣの一部を示した概略図。
【図７Ｂ】  本発明の第三実施例に基づくＬＭＣの一部を示した概略図。
【図７Ｃ】  本発明の第三実施例に基づくＬＭＣの一部を示した概略図。
【図７Ｄ】  本発明の第三実施例に基づくＬＭＣの一部を示した概略図。
【図８Ａ】  本発明の第四実施例に基づくＣＬＢを示した概略図。
【図８Ｂ】  本発明の第四実施例に基づくＣＬＢを示した概略図。
【図８Ｃ】  本発明の第四実施例に基づくＣＬＢを示した概略図。
【図８Ｄ】  本発明の第四実施例に基づくＣＬＢを示した概略図。
【図９Ａ】  本発明の第五実施例に基づくＣＬＢを示した概略図。
【図９Ｂ】  本発明の第五実施例に基づくＣＬＢを示した概略図。
【図９Ｃ】  本発明の第五実施例に基づくＣＬＢを示した概略図。
【図１０】  本発明の第六実施例に基づくＣＬＢを示した概略図。
【図１１】  本発明の第七実施例に基づくＣＬＢを示したブロック図。
【図１２Ａ】  本発明の第八実施例に基づくＬＭＣの一部を示した概略図。
【図１２Ｂ】  本発明の第八実施例に基づくＬＭＣの一部を示した概略図。
【図１２Ｃ】  本発明の第八実施例に基づくＬＭＣの一部を示した概略図。
【図１】
0004319786.tif 000002
【図２Ａ】
0004319786.tif 000003
【図２Ｂ】
0004319786.tif 000004
【図２Ｃ】
0004319786.tif 000005
【図３】
0004319786.tif 000006
【図４】
0004319786.tif 000007
【図５Ａ】
0004319786.tif 000008
【図５Ｂ】
0004319786.tif 000009
【図５Ｃ】
0004319786.tif 000010
【図５Ｄ】
0004319786.tif 000011
【図６Ａ】
0004319786.tif 000012
【図６Ｂ】
0004319786.tif 000013
【図６Ｃ】
0004319786.tif 000014
【図６Ｄ】
0004319786.tif 000015
【図７Ａ】
0004319786.tif 000016
【図７Ｂ】
0004319786.tif 000017
【図７Ｃ】
0004319786.tif 000018
【図７Ｄ】
0004319786.tif 000019
【図８Ａ】
0004319786.tif 000020
【図８Ｂ】
0004319786.tif 000021
【図８Ｃ】
0004319786.tif 000022
【図８Ｄ】
0004319786.tif 000023
【図９Ａ】
0004319786.tif 000024
【図９Ｂ】
0004319786.tif 000025
【図９Ｃ】
0004319786.tif 000026
【図１０】
0004319786.tif 000027
【図１１】
0004319786.tif 000028
【図１２Ａ】
0004319786.tif 000029
【図１２Ｂ】
0004319786.tif 000030
【図１２Ｃ】
0004319786.tif 000031