(57)【要約】【課題】  大きなLUT(ルックアップテーブル)または複数の小さなLUTを実現する高速かつ低コストなプログラム可能論理回路素子を提供する。【解決手段】  論理素子100は記憶素子、MPX(マルチプレクサ)および制御部を含む。MPXは記憶素子に接続される入力104及び次高位MPX(4-LUTs102内)の入力に接続される出力をもつ最高レベルMPX(4-LUTs102内)と第二レベルのMPX106、116の出力に接続される入力および少なくとも1つの出力114をもつ第一レベルMPX110とを含んで複数レベルに段階的に配列される。制御部104、108、112はMPX 4-LUTs102内、MPX106、116、110に接続される。第一動作(非分割)モードでは制御部は第一レベルMPX110の少なくとも1つの出力において第一モード出力114を決定し、第二動作(分割)モードでは制御部は第一レベルでないMPXの選択された出力における複数第二モード出力118、120を決定する。【選択図】      図１
2004248282.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶素子と、
前記記憶素子に接続される入力および次に高位のレベルのマルチプレクサの入力に接続される出力を有する最高レベルのマルチプレクサと第二のレベルのマルチプレクサの出力に接続される入力および少なくとも１つの出力を有する第一のレベルのマルチプレクサとを含んで複数のレベルに配列される複数のマルチプレクサと、
前記マルチプレクサに接続される複数の制御部と、
を備える論理素子において、
第一の動作モードにおいては、前記制御部が、前記第一のレベルのマルチプレクサの前記少なくとも1つの出力における第一モード出力を決定し、
第二の動作モードにおいては、前記制御部が、前記第一のレベルではないマルチプレクサの選択された出力における複数の第二モード出力を決定する、
ことを特徴とする論理素子。
【請求項２】
前記第一の動作モードにおいて、前記第一モード出力が前記制御部の完全な関数を提供する、請求項1に記載の論理素子。
【請求項３】
前記第二の動作モードにおいて、各第二モード出力が前記制御部の適切なサブセットの完全な関数を提供する、請求項２に記載の論理素子。
【請求項４】
前記第二の動作モードにおいて、対応する副制御部が各分割された制御部に接続される各マルチプレクサにおいて前記分割された制御部と置き換わるように、1つまたはそれ以上の制御部が複数の副制御部に分割される、請求項1に記載の論理素子。
【請求項５】
前記論理素子の制御部のうち1つまたはそれ以上に接続される出力及び複数の制御-マルチプレクサ入力によって決定される入力を有する１つまたはそれ以上の制御マルチプレクサを備える、請求項1に記載の論理素子。
【請求項６】
前記制御マルチプレクサの1つまたはそれ以上の入力および段階的に配列される前記マルチプレクサの1つまたはそれ以上の出力に接続される入力を有する1つまたはそれ以上の入力出力マルチプレクサを備える、請求項5に記載の論理素子。
【請求項７】
前記制御マルチプレクサのうち少なくとも２つが同一の制御-マルチプレクサ入力を受け取る、請求項6に記載の論理素子。
【請求項８】
前記制御マルチプレクサの1つまたはそれ以上の入力に接続される入力を有する1つまたはそれ以上のフリップフロップを備える、請求項６に記載の論理素子。
【請求項９】
前記入力出力マルチプレクサの1つまたはそれ以上の出力に接続される入力を有する1つまたはそれ以上のフリップフロップを備える、請求項６に記載の論理素子。
【請求項１０】
前記第一の動作モードと前記第二の動作モードの間で切り替えるために前記論理素子に接続される１つまたはそれ以上のモード・マルチプレクサを備える、請求項１に記載の論理素子。
【請求項１１】
請求項１に記載の論理素子を備える、プログラム可能論理装置。
【請求項１２】
請求項１１に記載のプログラム可能論理装置を備える、データ処理システム。
【請求項１３】
複数の記憶素子を設けるステップと、
複数のマルチプレクサを設けるステップであって、前記マルチプレクサが、前記記憶素子に接続される入力および次に高位のレベルのマルチプレクサの入力に接続される出力を有する最高レベルのマルチプレクサと第二のレベルのマルチプレクサの出力に接続される入力および少なくとも１つの出力を有する第一のレベルのマルチプレクサとを含んで複数のレベルに配列される、ステップと、
複数の制御部を設けるステップであって、前記制御部が前記マルチプレクサに接続される、ステップと、
を含む論理素子の作成方法において、
第一の動作モードにおいて、前記制御部が、前記第一のレベルのマルチプレクサの前記少なくとも１つの出力における第一モード出力を決定し、かつ
第二の動作モードにおいて、前記制御部が、前記第一のレベルではないマルチプレクサの選択された出力における複数の第二モード出力を決定する、
ことを特徴とする論理素子の作成方法。
【請求項１４】
前記第一の動作モードにおいて、前記第一モード出力が前記制御部の完全な関数を提供する、請求項１３に記載の方法。
【請求項１５】
前記第二の動作モードにおいて、各第二モード出力が前記制御部の適切なサブセットの完全な関数を提供する、請求項１４に記載の方法。
【請求項１６】
前記第二の動作モードにおいて、対応する副制御部が各分割された制御部に接続される各マルチプレクサにおいて前記分割された制御部と置き換わるように、１つまたはそれ以上の制御部が複数の副制御部に分割される、請求項１３に記載の方法。
【請求項１７】
前記論理素子の前記制御部のうち１つまたはそれ以上に接続される出力と複数の制御-マルチプレクサ入力によって決定される入力とを有する１つまたはそれ以上の制御マルチプレクサを前記論理素子に追加するステップを含む、請求項１３に記載の方法。
【請求項１８】
前記制御マルチプレクサの１つまたはそれ以上の入力および段階的に配列される前記マルチプレクサの１つまたはそれ以上の出力に接続される入力を有する１つまたはそれ以上の入力出力マルチプレクサを前記論素子に追加するステップを含む、請求項１７に記載の方法。
【請求項１９】
前記制御マルチプレクサのうち少なくとも２つが同一の制御-マルチプレクサ入力を受け取る、請求項１８に記載の方法。
【請求項２０】
前記制御マルチプレクサの１つまたはそれ以上の入力に接続される入力を有する１つまたはそれ以上のフリップフロップを前記論理素子に追加するステップを含む、請求項１８に記載の方法。
【請求項２１】
前記入力出力マルチプレクサの１つまたはそれ以上の出力に接続される入力を有する１つまたはそれ以上のフリップフロップを前記論理素子に追加するステップを含む、請求項１８に記載の方法。
【請求項２２】
前記第一の動作モードと前記第二の動作モードとの間で切り替えるために前記論理素子に接続される１つまたはそれ以上のモード・マルチプレクサを前記論理素子に追加するステップを含む、請求項１３に記載の方法。
【請求項２３】
複数の記憶素子と、
前記記憶素子に接続される入力および次に高位のマルチプレクサの入力に接続される出力を有する最高レベルのマルチプレクサと第二のレベルのマルチプレクサの出力に接続される入力および少なくとも１つの出力を有する第一のレベルのマルチプレクサとを含んで複数のレベルに配列される複数のマルチプレクサと、
前記マルチプレクサに接続される複数の制御部と、
前記論理素子の前記制御部のうち１つまたはそれ以上に接続される出力および複数の制御-マルチプレクサ入力によって決定される入力を有する１つまたはそれ以上の制御マルチプレクサと、
前記第一の動作モードと前記第二の動作モードとの間で切り替えるために前記論理素子に接続される１つまたはそれ以上のモード・マルチプレクサと、
を備える、該論理素子において、
第一の動作モードにおいて、前記制御部が、前記第一のレベルのマルチプレクサの前記少なくとも１つの出力における第一モード出力を決定し、
第二の動作モードにおいて、前記制御部が、前記第一のレベルではないマルチプレクサの選択された出力における第二モード出力を決定する、
ことを特徴とする論理素子。
【請求項２４】
請求項２３に記載の論理素子を備えるプログラム可能論理装置。
【請求項２５】
請求項２４に記載のプログラム可能論理装置を備えるデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム可能論理装置または他の同様な装置に使用するための論理素子、プログラム可能論理装置、データ処理システムおよび論理素子の作成方法に関する。
【背景技術】
【０００２】
プログラム可能論理装置（ＰＬＤ）（時にはＣＰＬＤ、ＰＡＬ、ＰＬＡ、ＦＰＬＡ、ＥＰＬＤ、ＥＥＰＬＤ、ＬＣＡ、ＦＰＧＡまたはその他の名前でも呼ばれる）は、特別仕様集積回路の融通性を有する固定集積回路という利点をもたらす周知の集積回路である。この種の論理装置は、技術上周知であり、一般には、ユーザーの固有のニーズに合わせるために電気的にプログラムできる部分を少なくとも一部有する「既製」の装置である。特定用途向け集積回路（ＡＳＩＣ）は、伝統的に固定集積回路であったが、プログラム可能な部分を有するＡＳＩＣを提供することは可能である。すなわち、集積回路装置はＡＳＩＣとＰＬＤ両方の質を持つことが可能である。本出願においてＰＬＤという用語は、この種の装置を含めるのに十分に広義のものとみなされる。
【０００３】
ＰＬＤは、一般に、時にロジック・アレイ・ブロック（ＬＡＢ）または「構成可能ロジック・ブロック」ＣＬＢ）と呼ばれる論理素子のブロックを含む。「論理装置」または「論理セル」など他の名前でも呼ばれる論路素子（ＬＥ）は、ルックアップテーブル（ＬＵＴ）、プロダクトターム（ｐｒｏｄｕｃｔ  ｔｅｒｍ）、キャリアウト・チェーン、レジスタ及びその他の素子を含むことができる。
【０００４】
ＬＵＴベースの論理素子を含めて論理素子は、一般に論理素子が果たす特定の機能を決定する構成データを保持する構成可能な素子を含む。典型的なＬＵＴ回路は、データ（“１”または“０”）を保持するＲＡＭビットを含むことができる。ただし、他のタイプの構成可能素子を使用することができる。例としては、スタティック、磁気、強誘磁性またはダイナミック・ランダム・アクセス・メモリ、電気的消去可能読み出し専用メモリ、フラッシュ、ヒューズ及びアンティヒューズ・プログラム可能接続がある。構成素子のプログラミングは、装置の製造中のマスク・プログラミングによっても行うことができる。マスク・プログラミングは、すでに述べた現場プログラミングの選択肢に比べて不利点があるかも知れないが、一部の高容量の用途においては有益かも知れない。本出願において「記憶素子」という総称は、ＰＬＤによって実現される関数を決定するように構成することができるあらゆるプログラム可能素子を意味するために使用される。
【０００５】
上述の通り、ＰＬＤは、一般に基本的論理素子としてルックアップテーブル（ＬＵＴ）を使用して構成される。例えば、Ｋ入力ルックアップテーブル（Ｋ-ＬＵＴ）は、一般に２K個のプログラム可能記憶素子及び２K対１のマルチプレクサを含み、マルチプレクサに対するＫ個の選択入力の制御の下で記憶素子のうちの１つを選択する。このＫ個の入力は、記憶素子の内容を適切な値に設定することによって特定の要求される論理関数を実現することができるＫ入力論理関数への入力と考えることができる。
【０００６】
ＬＵＴで構成される論理装置のコストと処理速度の間には二律背反の関係がある。一般に、各ＬＵＴのコストはＫの選択に伴い指数関数的に増大するが、論理装置を構築するために必要とされるＬＵＴの数はＫの数が大きくなる場合もっと緩慢に減少する。ただし、Ｋの値が大きくなると直列のＬＵＴの数は減少して、論理装置をより高速にする。例えば、Ｋ＝４の場合、単一のＬＵＴを構築するために１６個の記憶素子及び１６：１のマルチプレクサが必要とされ、Ｋ＝６の場合、６４個の記憶素子及び６４：１のマルチプレクサが必要とされる。ある論理装置を構成するために１０００個の４-ＬＵＴを必要とするが、６-ＬＵＴは８００個しか必要としないかも知れない。このような仮定の下では、各ＬＵＴについて増す複雑さを補うにはＬＵＴの数の減少は不十分なので、６-ＬＵＴ論理素子を構成するためにはより多くのハードウェアが必要とされる。ただし、６-ＬＵＴ回路構成に必要なハードウェアの増大は遅延の減少によって相殺される。論理装置を通る最長経路は、４-ＬＵＴの１０個に対して６-ＬＵＴは８個であろう。このように、６-ＬＵＴバージョンの回路はより大きくなるかも知れないが、より高速である。さらに６-ＬＵＴ回路は、ＰＬＤにおけるプログラム可能ルーティングの必要を減少する可能性があり、高くなるコストを一部相殺するだろう。
【０００７】
より大きいＬＵＴの効率が不足する１つの理由は、必ずしも全ての論理関数がＫ個の入力の全てを使用しないことにある。上述の例の場合、８００個の６-ＬＵＴは、実際には３００個の６入力関数、３００個の５入力関数、１００個の４入力関数及び１００個の３入力関数を含むかも知れない。従って、６-ＬＵＴに基づく論理素子（ＬＥ）は、８００個のうち３００個においてしか十二分に使用されていない。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従って、本発明は、比較的大きいＬＵＴ（ルックアップテーブル）またはその代わりに複数のこれより小さいＬＵＴを実現するように構成できるプログラム可能な構造の論理素子を提供することを目的とする。
【課題を解決するための手段】
【０００９】
図１を参照して本発明の実施態様を以下に説明する。
本発明の１つの実施態様においては、論理素子１００は、記憶素子、ＭＰＸ（マルチプレクサ）及び制御部を含む。マルチプレクサは、記憶素子に接続される入力１０４および次に高位のマルチプレクサ（４−ＬＵＴｓ１０２内）の入力に接続される出力を有する最高レベルのマルチプレクサ（４−ＬＵＴｓ１０２内）と第二のレベルのマルチプレクサ１０６、１１６の出力に接続される入力および少なくとも１つの出力１１４を有する第一のレベルのマルチプレクサ１１０とを含んで、複数のレベルに段階的に配列される。制御部１０４、１０８、１１２は、マルチプレクサ４−ＬＵＴｓ１０２内、１０６、１１６、１１０に接続される。第一の動作（非分割）モードにおいて、制御部１０４、１０８、１１２は、第一のレベルのマルチプレクサ１１０の少なくとも１つの出力における第一モード出力１１４を決定し、第二の動作（分割）モードにおいて、制御部１０４、１０８、１１２は、第一のレベルではないマルチプレクサ１０６、１１６の選択された出力における第二モード出力１１８、１２０を決定する。
【００１０】
この実施態様の１つの態様に従えば、論理素子が第一の動作モードのとき、第一モード出力は、制御部の完全な関数を提供する。別の態様に従えば、論理素子が第二の動作モードのとき、各第二モード出力は制御部の適切なサブセットの完全な関数を提供する。別の態様に従えば、論理素子が第二の動作モードのとき、１つまたはそれ以上の制御部は副制御部に分割されて、この分割された制御部に接続される各マルチプレクサにおいて該当の副制御部が各分割された制御部に取って代わる。別の態様に従えば、論理素子は、さらに、論理素子の制御部のうち１つまたはそれ以上に接続される出力および制御-マルチプレクサ入力によって決定される入力を有する１つまたはそれ以上の制御マルチプレクサを含む。動作条件によっては、制御マルチプレクサのうち少なくとも２つは同一の制御-マルチプレクサ入力を受け取る。別の態様に従えば、論理素子は、さらに、フリップ・フロップ回路と結合できる付加的マルチプレクサを含む。別の態様に従えば、論理素子は、さらに、第一の動作モードと第二の動作モードの間で切り替えるために論理素子に接続される１つまたはそれ以上のモード・マルチプレクサを含む。別の態様に従えば、論理素子は、プログラム可能論理装置に含まれ、論理装置自体をデータ処理システムに含めることができる。
【００１１】
本発明の別の実施態様においては、論理素子を作成するための方法は、記憶素子を設けるステップ、マルチプレクサを設けるステップおよび制御部を設けるステップを含む。マルチプレクサは、記憶素子に接続される入力および次に高位のマルチプレクサの入力に接続される出力を有する最高レベルのマルチプレクサと第二のレベルのマルチプレクサの出力に接続される入力および少なくとも１つの出力を有する第一のレベルのマルチプレクサとを含んで段階的に配列される。制御部はマルチプレクサに接続される。第一の動作モードにおいて、制御部は、第一のレベルのマルチプレクサの少なくとも１つの出力における第一モード出力を決定し、第二の動作モードにおいて、制御部は、第一のレベルではないマルチプレクサの選択された出力における第二モード出力を決定する。この実施態様は、他の実施態様に関して上述した態様を含むことができる。別の態様に従えば、この方法は、さらに、論理素子の制御部のうち１つまたはそれ以上に接続される出力と制御-マルチプレクサ入力によって決定される入力とを有する１つまたはそれ以上の制御マルチプレクサを論理素子に付加するステップを含む。別の態様に従えば、この方法は、さらに、第一の動作モードと第二の動作モードの間で切り替えるために論理素子に接続される１つまたはそれ以上のモード・マルチプレクサを論理素子に付加するステップを含む。
【発明を実施するための最良の形態】
【００１２】
図７は、４個の４-ＬＵＴ７０２を含む従来の６-ＬＵＴ７００を示している。各４-ＬＵＴ７０２は、入力ａ、ｂ、ｃ及びｄの７０４によって制御される１６個の記憶素子及び１６：１マルチプレクサを含む。４-ＬＵＴ７０２からの出力は２つの２：１マルチプレクサ７０６への入力となり、マルチプレクサの各々が入力ｅの７０８によって制御される。この２つのマルチプレクサからの出力は、最終出力７１４をもたらすために入力ｆの７１２によって制御されるさらなる２：１マルチプレクサ７１０への入力となる。このようにして、６個の入力ｚ１（ａ、ｂ、ｃ、ｄ、ｅ、ｆ）のどの関数も実現できる。
【００１３】
図８の（Ａ）は、図７に示される６-ＬＵＴのコンポーネントとして使用できる従来の４-ＬＵＴ８００を示している。この４-ＬＵＴは、複数の記憶素子８１９及び４：１マルチプレクサ８５０、８４０を含んでいる。各記憶素子８１９は、1つのデータ・ビット（すなわち、１または）を保持することができ、図に示される通り、各々このビットをマルチプレクサ８５０の入力に与えるように結合される。各マルチプレクサ８５０の２つの制御入力はそれぞれ４-ＬＵＴ８００の入力Ａ８１４及び入力Ｂ８１３に結合される。マルチプレクサ８５０の各々の出力は、図に示される通り別の４：１マルチプレクサ８４０の入力に結合される。このマルチプレクサ８４０の２つの制御入力は、それぞれ、４−ＬＵＴ８００の入力Ｃ８１１及び入力Ｄ８１２に結合される。このマルチプレクサ８４０の出力は、４−ＬＵＴ８００の最終出力８１５となる。
【００１４】
当業者は、図８の（Ａ）の４-ＬＵＴ８００のような４-ＬＵＴは、４個の入力信号の完全な関数をもたらすことできることが分かるだろう。ここで「完全な」とは、任意の４入力関数を実現するよう４-ＬＵＴ８００を構成するために記憶素子８１９をプログラムできることを意味するに過ぎない。すなわち、４-ＬＵＴ８００は、当業者に分かるだろうが出力信号Ｙの８１５が入力信号Ａの８１４、Ｂの８１３、Ｃの８１１及びＤの８１２の論理関数全体のうち任意の１つであるようにその記憶素子をプログラミングすることによって（例えば記憶素子に値をロードして）構成することができる。同様に、図７の６-ＬＵＴも、その６個の入力信号の完全な関数をもたらすことができる。
【００１５】
図８の（Ｂ）は、最終的な４：１マルチプレクサ８４０を構成する２：１マルチプレクサ８４１、８４２の「ツリー」を示している（他の４：１マルチプレクサ８５０も同様に特徴付けることができる）。マルチプレクサ８４１、８４２の制御入力８１１、８１２は、４-ＬＵＴ８００の入力に相当する。より高位のマルチプレクサ８４２（すなわち、記憶素子８１９により近い）の出力は、出力８１５により近い次のレベル８４１にデータを送る。当業者には分かる通り、最終４：１マルチプレクサ８４０を構成する２：１マルチプレクサ８４１、８４２の「ツリー」は、４-ＬＵＴ８００を特徴付けるより大きい２：１マルチプレクサ・ツリーの一部と考えることができる。より一般的に言うと、典型的なＬＵＴ回路は、ＬＵＴ回路の出力に対して相対的な２：１マルチプレクサの「レベル」によって示すことができるマルチプレクサ・ツリーを有する。
【００１６】
例えば、出力８１５に最も近いマルチプレクサ８４１は、４-ＬＵＴ８００の２：１マルチプレクサ・ツリー全体において第一のレベルのマルチプレクサと呼ぶことができ、次の２つのマルチプレクサのセット８４２はツリーの第二のレベルと呼ぶことができる。図８の（Ｂ）の構造を図８の（Ａ）に拡大することによって、４-ＬＵＴ８００においては４つのレベルの２：１マルチプレクサがある。４-ＬＵＴ８００は、制御入力が論理入力Ｂ８１３に結合される４つの２：１マルチプレクサ（すなわち各マルチプレクサ８５０に１つ）を含む第三のレベル、及び制御入力が論理入力Ａ８１４に結合される８つの２：１マルチプレクサ（すなわち各マルチプレクサ８５０に２つ）を含む第四のレベルを有する。
【００１７】
当業者には分かる通り、４：１マルチプレクサは、２つの異なるレベルに３つの２：１マルチプレクサ８４１、８４２の「ツリー」を有する図に示されるマルチプレクサ８４０とは異なる方法で実現できる。例えば、各々が2つの制御信号の解読出力によって制御される４つのパスゲートによって４：１マルチプレクサを実現することができる。このような例においては、4つのパスゲートは、相互にレベルによって区別されないが、この４：１マルチプレクサは２つのレベルの２：１マルチプレクシングを効果的に実現するだろう。
【００１８】
図１は、本発明の第一の実施態様に従った分割可能な（以下、分割可能と記す）６-ＬＵＴ１００を示している。従来の６-ＬＵＴ７００と同様、分割可能６-ＬＵＴ１００は、４つの４-ＬＵＴ１０２を含む。各４-ＬＵＴ１０２は、入力ａ、ｂ、ｃ及びｄの１０４によって制御される１６の記憶素子及び１６：１マルチプレクサを含む。４-ＬＵＴ１０２からの出力は２つの２：１マルチプレクサ１０６への入力となり、この２つのマルチプレクサ１０６は各々入力ｅの１０８によって制御される。これらのマルチプレクサ１０６からの出力は、最終出力１１４をもたらすために入力ｆ１１２によって制御されるさらなる２：１マルチプレクサ１１０の入力となる。このようにして、６つの入力ｚｌ（ａ、ｂ、ｃ、ｄ、ｅ、ｆ）のどの関数でも実現することができる。
【００１９】
従来の６-ＬＵＴ７００と比較すると、分割可能６-ＬＵＴ１００は、４-ＬＵＴ１０２のうち２つからの入力を受け取り入力ｆ１１２の制御を受ける付加的な２：１マルチプレクサ１１６を含む。６-ＬＵＴとして（すなわち非分割（第１）動作モードで）使用される場合、出力信号ｚｌの１１４は、６つの入力全ての完全な関数であって分割されない。２つの関数として（すなわち、分割（第２）動作モードで）使用される場合、ＬＵＴ１００の上半分から得られる出力ｚ０の１１８は、ａ、ｂ、ｃ、ｄ、ｅの完全な関数をもたらし、追加の２：１マルチプレクサから得られる出力ｚ２の１２０は、ａ、ｂ、ｃ、ｄ、ｆの完全な関数をもたらす。このように、このＬＵＴは、４つの入力ａ、ｂ、ｃ、ｄを共有する分割された２つの５入力関数を実現することができる。ＬＵＴ１００が単一の６-ＬＵＴとして使用される場合ｚ１関数１１４をまたＬＵＴ１００が２つの５-ＬＵＴとして使用される場合ｚ０の１１８及びｚ２の１２０を選択するために、分割可能ＬＵＴの外部のロジックが使用される。例えば、分割可能６-ＬＵＴを１つの５-ＬＵＴ及び２つの４-ＬＵＴの組み合わせとして構成できるように、さらにＬＵＴの分割を続けられることが分かるだろう（これは、例えば、ｚ０の１１８出力を上の２つの４-ＬＵＴ１０２からの該当の出力と置き換えることによって実施することができる）。同様に、１つの５-ＬＵＴと１つまたは２つの３-ＬＵＴの組み合わせ、または図１に示される構造から最も近い４つの４-ＬＵＴの組み合わせを含めて、その他の組み合わせが可能である。
【００２０】
Ｋ＝６のケースについて図１に示される通り、分割可能Ｋ-ＬＵＴはＫ個の入力しか持たないので、２つの（Ｋ−１）関数は、Ｋ個の入力信号の共通セットを使用しなければならない。すなわち、各（Ｋ−１）-ＬＵＴは、固有の入力信号を１つしか持たず、（Ｋ−２）個の信号を別のＬＵＴと共有する。分割可能ＬＵＴの使用の融通性を増すためには、より多くの入力信号を含むことが望ましい。これは、共通信号の一部を早いＬＵＴ段階に分割することによって行うことができる。これが分割可能（Ｋ，Ｍ）-ＬＵＴと呼ばれるものであり、ここで、Ｍは、ＬＵＴに追加される付加的な入力信号の数である。
【００２１】
図２は、本発明の別の実施態様に従った分割可能（６，２）-ＬＵＴを示している。図１の分割可能６-ＬＵＴ１００と同様、分割可能（６，２）-ＬＵＴ２００は、４つの４-ＬＵＴ２０２を含む。各４-ＬＵＴ２０２は１６個の記憶素子及び１６:１マルチプレクサを含む。４-ＬＵＴ２０２からの出力は、２つの２：１マルチプレクサ２０６への入力となり、マルチプレクサ２０６は各々入力ｅの２０８によって制御される。このマルチプレクサ２０６からの出力は、最終出力２１４をもたらすために入力ｆの２１２によって制御される付加的な２：１マルチプレクサ２１０への入力となる。付加的な２：１マルチプレクサ２１６は、４-ＬＵＴ２０２のうち２つから入力を受けて、入力ｆの２１２によって制御される。
【００２２】
分割可能６-ＬＵＴ１００と比較すると、４つの４-ＬＵＴ２０２への入力のうち２つが分割される。すなわち、２つの入力ａ及びｂの２０４は分割可能６-ＬＵＴ１００における同様の入力１０４と一致するが、分割可能６-ＬＵＴ１００の入力ｃ及びｄの１０４は分割されて、４-ＬＵＴ２０２の上半分のための入力ｃ１及びｄ１の２２２及び下半分のための入力ｃ２及びｄ２の２２４になる。
【００２３】
従来、ＬＵＴへの入力は、最も遅いものから最も速いものの順に列記される（すなわち、ａ、ｂ、ｃ、ｄ）ので、ｄは４-ＬＵＴ２０２の各々にとって最も速い入力である。最も速い入力が相互に独立するように、ＬＵＴへの最も速い入力を分割することが望ましい。ＬＵＴが６-ＬＵＴとして使用される場合、ｄ１及びｄ２には同じ入力信号が与えられ（すなわち、ｄ＝ｄ１＝ｄ２）、同様にｃ１及びｃ２には同じ入力信号が与えられる（すなわち、ｃ＝ｃ１＝ｃ２）。ＬＵＴが２つの５-ＬＵＴとして使用される場合、上の２つの４-ＬＵＴは論理関数ｚ０（ａ、ｂ、ｃ１、ｄ１、ｅ）を形成し、下の２つの４-ＬＵＴは論理関数ｚ２（ａ、ｂ、ｃ２、ｄ２、ｆ）を形成する。このように２つのＬＵＴの間で共有しなければならない論理信号は２つだけ（ａ及びｂ）である。
【００２４】
このように、分割動作モードにおいては、ｚ０（ａ、ｂ、ｃ１、ｄ１、ｅ）２１８及びｚ２（ａ、ｂ、ｃ２、ｄ２、ｅ）２２０について５つの入力の完全な関数を実現することができ、ｃ=ｃ１=ｃ２及びｄ＝ｄ１＝ｄ２である非分割動作モードにおいては、６つの入力ｚ１（ａ、ｂ、ｃ、ｄ、ｅ、ｆ）の完全な関数を実現できる。
【００２５】
その代わりに、分割可能（６，２）-ＬＵＴは、その入力のうち１つまたはそれ以上に対して関数従属性を持たないようにＬＵＴを構成することによって、３入力関数及び５入力関数など８個以下の異なる入力信号を使用する任意の２つの関数を実現することができる。例えば、（６，２）-ＬＵＴ２００は、入力ａ及びｂの２０４に対して従属性を持たないように４-ＬＵＴ２０２の上半分を構成することによって関数ｚ０（ｃ１、ｄ１、ｅ）２１８及びｚ２（ａ、ｂ、ｃ２、ｄ２、ｆ）を実現することができる。一般化すると、（Ｋ，Ｍ）-ＬＵＴは、Ｋ+Ｍ以下の異なる入力信号を有する最高Ｋ-１個の入力の任意の２つの関数を実現することができる。
【００２６】
分割可能（６，２）-ＬＵＴ２００は、また８つの入力ａ、ｂ、ｃ１、ｃ２、ｄ１、ｄ２、ｅ及びｆ２０８、２２２、２０４、２２４、２１２をｚ１２１４での出力と一緒に使用することによって不完全な論理関数に使用することもできる。この場合、８入力関数ｚ１（ａ、ｂ、ｃ１、ｃ２、ｄ１、ｄ２、ｅ、ｆ）の一部のセットは実現できるが、一般ＬＵＴと異なり、あらゆる８入力関数を実現できるわけではない。ただし、任意関数とともにこの種の関数を含む論理装置を設計することによって、これを活用できるかも知れない。
【００２７】
論理素子の別の態様は、ＬＵＴからフリップフロップにデータを送ることができる能力である。従来、ＬＵＴ出力は、同じ論理素子に含まれるフリップフロップへのデータ入力として使用することができる。また、さまざまな構成情報及び論理信号の制御の下で、フリップフロップへのデータ入力をＬＵＴへの入力の１つとして選択することができる。本発明は、論理素子において１つまたはそれ以上のフリップフロップと分割可能ＬＵＴを組み合わせることができるようにする。
【００２８】
図３は、本発明の別の実施態様に従った論理素子３００を示している。論理素子３００は、分割可能（６，２）-ＬＵＴ３０２及び２つのフリップフロップ３０４ａ及び３０４ｂを含む。（６，２）-ＬＵＴ３０２は、入力Ａ、Ｂ、Ｃ１、Ｃ２、Ｄ１、Ｄ２、Ｅ、Ｆを有し、これらには入力ラインＬＥＩＭＡ、ＬＥＩＭＢ、ＬＥＩＭＣ１、ＬＥＩＭＣ２、ＬＥＩＭＤ１、ＬＥＩＭＤ２、ＬＥＩＭＥ及びＬＥＩＭＦ３０６を通じてデータが送られる。さらに、２つのマルチプレクサ３０８ａ、３０８ｂが、レジスタ値ＲＥＧ０と共にＬＥＩＭＣ１を多重化し（３０８ａ）、レジスタ値ＲＥＧ１と共にＬＥＩＭＣ２を多重化する（３０８ｂ）ことによって、入力Ｃ１及びＣ２にデータを送る。非分割モードにおいては、ＬＵＴ３０２は、単一の出力ｚ１の３１０をもたらし、分割モードにおいては、ＬＵＴ３０２は２つの出力ｚ０の３１２及びｚ２の３１４をもたらす。
【００２９】
ＬＵＴ３０２からの出力は、２つのマルチプレクサ３１６ａ、３１６ｂへの入力となる。これらのマルチプレクサ３１６ａ、３１６ｂは、別の対のマルチプレクサ３１８ａ、３１８ｂへの入力を生じ、これらのマルチプレクサは、インバータ回路３２２ａ、３２２ｂ、ＮＯＲゲート３２４ａ、３２４ｂ及びＮＡＮＤゲート３２６ａ、３２６ｂと結合される入力ラインＬＥＩＭＣ１３２０ａ及びＬＥＩＭＣ２３２０ｂからの入力も受ける。
【００３０】
後者のマルチプレクサ３１８ａ、３１８ｂからの出力及びライン値ＬＥＩＭＣ１の３２０ａ及びＬＥＩＭＣ２の３２０ｂは、フリップフロップ３０４ａ、３０４ｂに送られる。フリップフロップは、記憶された値３２８の組み合わせ及びマルチプレクサ３３０ａ、３３０ｂからもデータを受け取る。これらのフリップフロップ３０４ａ、３０４ｂに関連する構造は、現在Ａｌｔｅｒａ  Ｃｏｒｐｏｒａｔｉｏｎ（カリフォルニア州サンホセ）が販売しているＳｔｒａｔｉｘ論理素子に使用される構造と同様である。
【００３１】
第一のフリップフロップ３０４ａからの出力は、ＬＵＴ出力ｚ０の３１２及びｚ１の３１０と一緒に第一の３つ１組のマルチプレクサ３３２ａに向かい、第一の組の出力ＬＯＣＡＬ０、ＬＥＯＵＴ０及びＬＥＯＵＴ１の３３４ａを決定する。第二のフリップフロップ３０４ｂからの出力は、ＬＵＴ出力ｚ１の３１０及びｚ２の３１４と一緒に第二の３つ１組のマルチプレクサ３３２ｂに向かい、第二の組の出力ＬＯＣＡＬ１、ＬＥＯＵＴ２及びＬＥＯＵＴ３の３３４ｂを決定する。
【００３２】
この論理素子３００は、ＬＥから最高４つの信号（すなわち、ＬＥＯＵＴ０、ＬＥＯＵＴ１、ＬＥＯＵＴ２及びＬＥＯＵＴ３）及び内部ルーティングへの２つの信号（すなわちＬＯＣＡＬ０及びＬＯＣＡＬ１）を発するために多重化構造を含んでいる。この図においては、ライン信号ＬＥＩＭｘ３０６は、論理素子の入力に接続される論理信号のソースを意味する。図３の実施態様は、２つのフリップフロップ３０４ａ、３０４ｂを含んでいる。ＬＵＴ３０２は、２つの論理関数を生成することができるので、非分割Ｋ-ＬＵＴからまたは分割ＬＵＴのいずれかからデータをロードできる２つのフリップフロップを持つことが望ましい。
【００３３】
上述の通り、図３に示されるフリップフロップ接続を一般化することができる。関連するフリップフロップ・データ入力をＬＵＴ出力にするかＬＵＴ入力の１つと共通にすることができ、多様な代替実施態様が可能である。図３に示される実施態様においては、論理配列は、Ａｌｔｅｒａ  Ｃｏｒｐｏｒａｔｉｏｎ（カリフォルニア州サンホセ）が現在販売しているＳｔｒａｔｉｘ論理素子と同様である。
【００３４】
図３の実施態様においては、フリップフロップ３０４ａ、３０４ｂの各々は、６-ＬＵＴ出力ｚ１の３１０または２つの５-ＬＵＴ出力ｚ０の３１２及びｚ２の３１４のうち１つからロードすることができる。各出力は、６-ＬＵＴ出力、５-ＬＵＴ出力またはフリップフロップから選択することができる。また、フリップフロップ出力をＬＵＴに戻してＳｔｒａｔｉｘ装置と同様クイック・フィードバックするように、マルチプレクサが配備される。この構造を使って、６-ＬＵＴは、１つまたは両方のフリップフロップにデータを送ることができ、各５-ＬＵＴは１つのフリップフロップにデータを送ることができ、または独立のフリップフロップを、１つの入力を共有する５-ＬＵＴとまたは入力を共有しない４-ＬＵＴと結合することができる。ただし、この構造は、たとえ８つの入力全部が利用可能でも１つの入力を共有しない限り６-ＬＵＴを独立のフリップフロップと結合できない、という限界がある。なぜなら、非分割６−ＬＵＴモードにおいては、Ｃ１及びＣ２並びにＤ１及びＤ２は両方ともＬＵＴに同一の入力信号を供給しなければならないからである（すなわち、Ｃ＝Ｃ１＝Ｃ２、Ｄ＝Ｄ１＝Ｄ２）。図４の実施態様はこの問題に対処している。
【００３５】
図４は、本発明の別の実施態様に従った論理素子４００を示している。この論理素子４００は、図３の論理素子３００と同様であるが、ＬＵＴ４０２の入力に付加的な多重化を含む。入力ラインＬＥＩＭＣ１の４０６及びレジスタ値ＲＥＧ０はマルチプレクサ４０８ａへの入力であり、このマルチプレクサは、ＬＵＴ４０２の入力Ｃ１にデータを送る。また、入力ラインＬＥＩＭＣ１及びＬＥＩＭＣ２の４０６は、レジスタ値ＲＥＧ１と共にマルチプレクサ４０８ｂへの入力であり、このマルチプレクサはＬＵＴ４０２の入力Ｃ２にデータを送る。
【００３６】
論理素子４００は、分割可能（６，２）-ＬＵＴ４０２及び２つのフリップフロップ４０４ａ、４０４ｂを含む。（６，２）-ＬＵＴ４０２は入力Ａ、Ｂ、Ｃ１、Ｃ２、Ｄ１、Ｄ２、Ｅ、Ｆを有し、これらの入力には、入力ラインＬＥＩＭＡ、ＬＥＩＭＢ、ＬＥＩＭＣ１、ＬＥＩＭＣ２、ＬＥＩＭＤ１、ＬＥＩＭＤ２、ＬＥＩＭＥ及びＬＥＩＭＦの４０６を通じてデータが送られる。さらに、２つのマルチプレクサ４０８ａ、４０８ｂが、レジスタ値ＲＥＧ０と共にＬＥＩＭＣ１を多重化し、レジスタ値ＲＥＧ１と共にＬＥＩＭＣ２を多重化することによって、入力Ｃ１及びＣ２にデータを送る。図３の実施態様と異なり、入力Ｃ２にデータを送る第二のマルチプレクサ４０８ｂは、入力ラインＬＥＩＭＣ１、入力ラインＬＥＩＭＣ２及びレジスタ値ＲＥＧ１からの入力を受け取る。
【００３７】
前の実施態様３００と同様、ＬＵＴ４０２は、非分割モードにおいて単一の出力ｚ１の４１０を、また分割モードにおいて２つの出力ｚ０の４１２及びｚ２の４１４を生じる。また、前の実施態様と同様、回路構成はＬＥＭＣ１の４２０ａ及びＬＥＭＣ２の４２０ｂ用の付加的なライン、マルチプレクサ４１６ａ、４１６ｂ、４１８ａ、４１８ｂ、４３０ａ、４３０ｂ、４３２ａ、４３２ｂ、インバータ４２２ａ、４２２ｂ、ＮＯＲゲート４２４ａ、４２４ｂ、ＮＡＮＤゲート４２６ａ、４２６ｂ、記憶値４２８及び出力４３４ａ、４３４ｂを含む。
【００３８】
図４の実施態様は、ＬＵＴ４０２が非分割モードで動作するとき付加的な入力信号を有利に活用する。この構造においては、オリジナルの入力を分割することから生じる追加の入力のうち１つ（この場合にはＣ１）は、対応するマルチプレクサ４０８ｂにおいて対応する分割された入力（この場合にはＣ２）に接続することができる。これによって、６-ＬＵＴはＣ信号を単一のピンＣ１に導き、これをＬＵＴ４０２においてＣ１とＣ２の両方に接続することができる。その結果、別の目的のため、この場合にはデータ信号を完全に独立したフリップフロップ４０４ｂに導くために入力ピンＣ２を使用することができる。これによって、論理素子は、独立フリップフロップ４０４ｂと共に任意にフリップフロップ４０４ａにデータを供給できる６-ＬＵＴをサポートすることができる。
【００３９】
図４の実施態様においては、６-ＬＵＴは、同一のデータをロードするために両方のフリップフロップを使用することによってＬＵＴの入力へのレジスタのクイック・フィードバックと共に６-ＬＵＴを使用できるので、結果をＣ１とＣ２の両方にフィードバックすることができる。代替実施態様においては、ＲＥＧ０とＲＥＧ１の両方が、Ｃ１及びＣ２にデータを送るマルチプレクサ４０８ａ、４０８ｂの一方あるいは両方に入力される。これによって、データを記憶するために単一のフリップフロップを使用し、Ｃ１とＣ２の両方にフィードバックすることができる。さまざまな代替案の相違は、６−ＬＵＴ４０２においてクイック・フィードバック・モードのためにどのフリップフロップ４０４ａ、４０４ｂを使用できるかの選択肢にあり、最適の選択は、実現される論理装置及びＰＬＤにおいて与えられるルーティング構造の融通性によって決まる。一般的にはＬＵＴへの分割入力のうち最遅のものをフリップフロップに送ることが望ましいが、他の入力も同様に使用することができる。
【００４０】
図５は、本発明の別の実施態様に従った論理素子５００を示している。この論理素子５００は、図３の論理素子３００と同様であるが、ＬＵＴ５０２への入力に付加的な多重化を含む。入力ラインＬＥＩＭＣ１の５０６は、ＬＵＴ５０２のＣ１入力にデータを送り、入力ラインＬＥＩＭＣ１及びＬＥＩＭＣ２の５０６は、レジスタ値ＲＥＧ０と共にマルチプレクサ５０８ａの入力となり、このマルチプレクサは、ＬＵＴ５０２のＣ２入力にデータを送る。入力ラインＬＥＩＭＤ２の５０６は、ＬＵＴ５０２のＤ２入力にデータを送り、入力ラインＬＥＩＭＤ１及びＬＥＩＭＤ２の５０６は、レジスタ値ＲＥＧ１と共にマルチプレクサ５０８ｂの入力となり、このマルチプレクサはＬＵＴ５０２のＤ１入力にデータを送る。
【００４１】
論理素子５００は、分割可能（６，２）-ＬＵＴ５０２及び２つのフリップフロップ５０４ａ、５０４ｂを含む。（６，２）-ＬＵＴ５０２は、入力Ａ、Ｂ、Ｃ１、Ｃ２、Ｄ１、Ｄ２、Ｅ及びＦを有し、これらには入力ラインＬＥＩＭＡ、ＬＥＩＭＢ、ＬＥＩＭＣ１、ＬＥＩＭＣ２、ＬＥＩＭＤ１、ＬＥＩＭＤ２、ＬＥＩＭＥ及びＬＥＩＭＦ５０６を通じてデータが送られる。さらに、２つのマルチプレクサ５０８ａ、５０８ｂは、ＲＥＧ０と共にＬＥＩＭＣ１およびＬＥＩＭＣ２を多重化し、ＲＥＧ１と共にＬＥＩＭＤ１及びＬＥＩＭＤ２を多重化することによって、入力Ｃ２及びＤ１にデータを送る。図３の実施態様と異なり、入力Ｃ２にデータを送る第一のマルチプレクサ５０８ａは、入力ラインＬＥＩＭＣ１，入力ラインＬＥＩＭＣ２及びレジスタ値ＲＥＧ０からの入力を受け取り、入力Ｄ１にデータを送る第二のマルチプレクサ５０８ｂは、入力ラインＬＥＩＭＤ１、入力ラインＬＥＩＭＤ２及びレジスタ値ＲＥＧ１からの入力を受け取る。
【００４２】
図３の実施態様と同様、ＬＵＴ５０２は、非分割モードにおいて単一の出力ｚ１の５１０をもたらし、分割モードにおいて２つの出力ｚ０の５１２及びｚ２の５１４をもたらす。前の実施態様と同様、回路構成は、ＬＥＩＭＣ１の５２０ａ及びＬＥＩＭＣ２の５２０ｂ用の追加のライン、マルチプレクサ５１６ａ、５１６ｂ、５１８ａ、５１８ｂ、５３０ａ、５３０ｂ、５３２ａ、５３２ｂ、インバータ５２２ａ、５２２ｂ、ＮＯＲゲート５２４ａ、５２４ｂ、ＮＡＮＤゲート５２６ａ、５２６ｂ、記憶値５２８及び出力５３４ａ、５３４ｂを含む。
【００４３】
図５の実施態様は、フリップフロップ５０４ａ、５０４ｂをＬＵＴと結合して６-ＬＵＴ５０２を２つの独立レジスタ（第一のマルチプレクサ５０８ａにおけるＲＥＧ０及び第二のマルチプレクサ５０８ｂにおけるＲＥＧ１）と結合できるようにすることによって、融通性を増すことができる。Ｃ１/２またはＤ１/２のどちらでも対応するピンに割り当てられるようにすることによって、Ｃ及びＤの各々に単一の信号を使用することができる。図５の実施態様においては、Ｃ１をＬＵＴ入力として使用し、Ｃ２をフリップフロップ５０４ｂに対するデータ入力として使用できる一方で、Ｄ２はＬＵＴに対する別の入力として使用され、Ｄ１はフリップフロップ５０４ａへのデータ入力として使用される。どのフリップフロップにどの入力を使用するか、またどの入力信号をＬＵＴ入力またはフリップフロップ・データとして使用するかの厳密な選択は、構築される論理装置の特性によって決まる。また、どの入力を分割すべきかの選択は、フリップフロップのパッキング・フレキシビリティの程度に応じて多様である。フリップフロップのパッキング・フレキシビリティを増すために含まれるマルチプレクサが多くなれば、遅延が加わるので、最速の入力より遅い入力を分割するほうが望ましくなるかも知れない。最良の選択は、実現される論理装置及びＬＵＴの設計における遅延の考量によって決まる。
【００４４】
図５の実施態様においては、クイック・フィードバックは、論理素子において使用される単一のフリップフロップによってのみサポートされる。上述の通り、代替実施態様は、２つのクイック・フィードバックをサポートするためにマルチプレクサに追加の入力が付け加えられることによって得られる。
【００４５】
図６は、上述の通り本発明の実施態様を含むＰＬＤ６１０を備えるデータ処理システム６００を示している。ＰＬＤ６１０は、図に示されるＬＡＢ６１２など複数のロジック・アレイ・ブロック（ＬＡＢ）を含む（図面を過度に複雑にしないように図にはＬＡＢが１つしか示していない）。ＬＡＢ６１２は、図に示される論理素子６１１など複数の論理素子を含む（図面を過度に複雑にしないように図には論理素子は１つしか示していない）。データ処理システム６００は、以下のコンポーネントのうち１つまたはそれ以上を含むことができる。プロセッサ６４０、メモリ６５０、Ｉ/Ｏ回路６２０、及び周辺装置６３０。これらのコンポーネントは、システム・バス６６５によってともに結合され、エンドユーザー・システム６７０内に納められる回路基板６６０上に配置される。
【００４６】
システム６００は、コンピュータ・ネットワーキング、データ・ネットワーキング、器具類、ビデオ処理、デジタル信号処理あるいはプログラム可能または再プログラム可能な論理を使用する利点が望ましいその他の用途など多様な用途において使用できる。ＰＬＤ６１０は、多様な論理機能を果たすために使用することができる。例えば、ＰＬＤ６１０は、プロセッサ６４０と協働して機能するプロセッサまたはコントローラとして構成することができる（または、代替実施態様においては、ＰＬＤ自身が、単独のシステム・プロセッサとして作用することが可能である）。ＰＬＤ６１０は、また、システム６００において共有資源へのアクセスを仲裁するアービトレータとして使用することもできる。さらに別の例においては、ＰＬＤ６１０は、プロセッサ６４０とシステム６００の他のコンポーネントのうちの1つの間のインターフェイスとして構成することができる。システム６００は単なる例であることに留意しなければならない。
【００４７】
本発明の一部の実施態様例について上に詳細に説明したが、当業者は、本発明の新規の教示及び利点から実質的に逸脱することなく実施態様例に多くの修正を加えることが可能であることが容易に分かるだろう。従って、これらの修正は全て本発明の範囲内に含まれるものとする。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施態様に従った分割可能６-ＬＵＴ（「６入力ルックアップテーブル」）を示す図である。
【図２】本発明の実施態様に従った分割可能（６、２）-ＬＵＴを示す図である。
【図３】本発明の実施態様に従った２つのフリップフロップを有する分割可能（６、２）-ＬＵＴを示す図である。
【図４】本発明の実施態様に従った６ＬＵＴのサポート及び独立レジスタを有する分割可能（６、２）-ＬＵＴを示す図である。
【図５】本発明の実施態様に従った６-ＬＵＴのサポート及び２つの独立レジスタを有する分割可能（６、２）-ＬＵＴを示す図である。
【図６】本発明に従った論理装置を実現できるプログラム可能論理装置の例を含むデータ処理システムの例を示す図である。
【図７】従来技術の６-ＬＵＴを示す図である。
【図８】（Ａ）は従来技術の４-ＬＵＴを示す図であり、（Ｂ）は、（Ａ）に示される４：１マルチプレクサをさらに詳細に示す図である。
【図１】
2004248282.tif 000003
【図２】
2004248282.tif 000004
【図３】
2004248282.tif 000005
【図４】
2004248282.tif 000006
【図５】
2004248282.tif 000007
【図６】
2004248282.tif 000008
【図７】
2004248282.tif 000009
【図８】
2004248282.tif 000010
【外国語明細書】
2004248282000001.pdf