(57)【要約】本発明による再構成可能な論理デバイスが、入力信号を受信するための入力部（ｉｎ１）と、バイナリ出力信号を供給するための出力部（ｏｕｔ）とを備えるルックアップテーブル（ＬＵＴ）（１１．１）を有する。前記再構成可能な論理デバイスは、制御信号を受信するための制御入力部（ｃｔｒｌ）と、前記制御信号及び前記入力信号に応答してアドレス信号をＬＵＴ（１１．１）に供給するための制御可能な反転ゲート（１１．２）と、前記制御信号及び前記ＬＵＴの出力信号に応答して修正された出力信号を供給するための制御可能な反転ゲート（１１．３）とによって特徴付けられる。本発明による再構成可能な論理デバイスは高速で動作し得ると共に、同時に比較的適度なコンフィギュレーションメモリを有する。
2004529576.tif 000002
【特許請求の範囲】
【請求項１】
ルックアップテーブルを備える論理素子、入力信号を受信するための入力部、及び出力信号を供給するための出力部を有する再構成可能な論理デバイスにおいて、
制御信号を受信するための制御入力部と、
前記入力信号及び前記制御信号に応答して前記ルックアップテーブルにアドレス信号を供給するための制御可能な反転ゲートと、
前記制御信号及び前記ルックアップテーブルの出力信号に応答して、修正された出力信号を供給するための制御可能な反転ゲートと
によって特徴付けられる再構成可能な論理デバイス。
【請求項２】
入力信号を受信するための一つ又はそれより多くの更なる入力部によって特徴付けられる請求項１に記載の再構成可能な論理デバイス。
【請求項３】
一つ又はそれより多くの更なる入力部が、前記更なる入力部において受信される前記アドレス信号及び前記制御信号に応答して、前記アドレス信号を前記ルックアップテーブルに供給する制御可能な反転ゲートを介して前記ルックアップテーブルに結合される請求項２に記載の再構成可能な論理デバイス。
【請求項４】
前記ルックアップテーブルが、前記制御信号及び前記ルックアップテーブルの前記出力部における前記出力信号に応答して、前記修正された出力信号を供給するための排他的論理和ゲートに結合される一つ又はそれより多くの更なる出力部を有する請求項１に記載の再構成可能な論理デバイス。
【請求項５】
ｎビット加算のためのキャリー出力信号が、独立回路において生成される請求項１に記載の再構成可能な論理デバイス。
【請求項６】
前記ルックアップテーブルがマルチ出力ルックアップテーブルとして実現される請求項１に記載の再構成可能な論理デバイス。
【請求項７】
前記論理素子の前記出力信号として少なくとも第一及び第二の修正された出力信号から選択するように選択信号により制御されるマルチプレクサによって特徴付けられる請求項３に記載の再構成可能な論理デバイス。
【請求項８】
請求項１乃至７の何れか一項に記載の再構成可能な論理デバイスによって形成される複数の乗算素子を有する乗算アレイであって、前記乗算素子は、第一の数値の入力ビットと第二の数値の入力ビットとの積を演算するための少なくとも一つの論理積ゲートを備える論理積ユニットを更に有し、前記再構成可能な論理デバイスは、前記積と入力部分積との和を演算する乗算アレイ。
【請求項９】
少なくとも二つの乗算素子が、ｎビットの数値の和としてｎ＋１ビットの数値を演算する再構成可能な論理デバイスにおいて組み合わされ、前記ビットは、プロセッサ乗算素子によって得られる部分積であり、前記ｎビットの数値は、第二の信号の入力ビットを備えるｎビットの第一の入力信号と１ビットキャリーイン信号とを乗算することによって得られる請求項８に記載の乗算アレイ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ルックアップテーブル（ＬＵＴ（ｌｏｏｋｕｐ  ｔａｂｌｅ））を備える論理素子（ｌｏｇｉｃ  ｅｌｅｍｅｎｔ）と、アドレス信号を受信するための入力部と、出力信号を供給するための出力部とを有する再構成可能な論理デバイス（リコンフィギュラブルロジックデバイス（ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ））に関する。
【背景技術】
【０００２】
（再）構成可能な論理デバイス（例えば、フィールドプログラマブルゲートアレイ（FPGA（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ））において、基本論理素子（論理セル（ｌｏｇｉｃ  ｃｅｌｌ））の機能と、当該素子間の相互結線構成部との両方が書き込み可能（プログラマブル（Ｐｒｏｇｒａｍｍａｂｌｅ））である。書き込み可能性はプログラマブルスイッチ（Ｐｒｏｇｒａｍｍａｂｌｅ  ｓｗｉｔｃｈ）の使用によって実現され、前記スイッチの状態は、コンフィギュレーションメモリ（ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｍｅｍｏｒｙ）に保持されている。プログラマブルスイッチは、配線トラック間の接続又はその存在を判断することによってルーティングリソース（ｒｏｕｔｉｎｇ  ｒｅｓｏｕｒｃｅ）を制御する。前記プログラマブルスイッチは、内部マルチプレクサ（有効信号選択（ｖａｌｉｄ  ｓｉｇｎａｌ  ｓｅｌｅｃｔｉｏｎ））を制御することによって論理素子の機能も規定する。次にコンフィギュレーションメモリセルの一部はユーザメモリ及びルックアップテーブルのためのデータメモリ素子として使用される。
【０００３】
ルックアップテーブル（ＬＵＴ）の使用は、構成可能な論理デバイス（ｃｏｎｆｉｇｕｒａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ）において論理関数を実現する最も一般的な態様である。当該アプローチは、商用ＦＰＧＡデバイス、例えばＸｉｌｉｎｘ（例えばＸＣ４０００、ＸＣ５０００、Ｖｉｒｔｅｘ−Ｉ、及びＶｉｒｔｅｘ−ＩＩファミリ）、Ａｌｔｅｒａ（例えばＦＬＥＸファミリ）、Ａｔｍｅｌ（例えばＡＴ４０Ｋファミリ）、及びＡｃｔｅｌのほとんどにおいて使用されている。ルックアップテーブルの幅広い使用は、その柔軟性から来ている。すなわちｋ入力ルックアップテーブルは、ｋ個の変数の何れの論理関数も実現し得る。当該ＬＵＴは、２ｋ個のメモリセルを必要とし、（真理値表のような）入力ビットの全ての可能な組み合わせに対して論理関数出力を記憶する。ＬＵＴにおけるメモリセルの内容は変更され得るため、前記記憶された真理値、及びこのように生成された論理関数は互いに容易に置換され得る。構成可能な論理デバイスの書き込み可能な特質のために、ユーザに対して高い柔軟性がもたらされる。ユーザは、ソフトウエアプログラマブルソリューション（ｓｏｆｔｗａｒｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｓｏｌｕｔｉｏｎ）と比較して、例えば迅速な試作（ｒａｐｉｄ  ｐｒｏｔｏｔｙｐｉｎｇ）、システムにおける最新の更新／特化（ｌａｔｅ  ｕｐｇｒａｄｅ／ｓｐｅｃｉａｌｉｚａｔｉｏｎ）、又はシステム性能を上げるために当該デバイスを使用してもよい。
【０００４】
（面積、性能、電力、及びコードサイズの点からみた）コスト効率は、特にエンベデッドコンテキスト（ｅｍｂｅｄｄｅｄ  ｃｏｎｔｅｘｔ）（システムオンチップ（ｓｙｓｔｅｍ−ｏｎ−ｃｈｉｐ））において使用される構成可能な論理デバイスの設計において最も重要な課題の一つである。構成可能な論理デバイスは、非常に柔軟であるが、特にＡＳＩＣに比べるといくつかの不利点を示す。当該不利点は、（大規模なコンフィギュレーションメモリ及び膨大な量の相互結線リソースのために）より大きいことと、（相互結線及び論理のかなりの遅延のために）より遅いことと、（プログラマブルトラックにおける大規模なロード（ｌｏａｄ）のために）より多くの電力を消費することである。前記コンフィギュレーションコンテキストが実行期間（ｒｕｎ−ｔｉｍｅ）において変更され得る、ダイナミックに再構成可能な論理デバイスにおいて、効率の更なる目安となるものは再構成期間である。アルゴリズムの次の段階の実行が当該期間に直接依存しているため、当該期間は短くなるべきである。しかしながら、リロードされなければならない大規模コンフィギュレーションメモリのために、このことはよくあることではない。前記コストの量のほとんどは、前記コンフィギュレーションメモリのサイズによって直接的又は間接的に影響を及ばされる。この事実のために、前記コンフィギュレーションメモリサイズの最小限化は、（再）構成可能な論理デバイスの設計における主要な懸案事項の一つとなっている。
【０００５】
当該課題は、以下の状況（しかしながら限定されない）において重要となり得る。
−構成可能な論理デバイスが、ルックアップテーブルに基づく論理素子を有する。すなわち全てのデバイスは多くの論理素子から構成され、前記ＬＵＴのサイズは入力部の数に対して指数関数的に増大するため、非常に多くのメモリビットが、前記機能を全てサポートするために必要とされる。
−構成可能な論理コアが、同一のチップ上に他のIPブロックと共に搭載される。この場合、チップパッケージ形によって決定されると共に、しばしばポータブルデバイスに対する制限されたバッテリ寿命によっても決定される利用可能なシリコン面積及び消費電力が制限ファクタとなり得る。
−構成可能な論理コアが、いくつかのコンフィギュレーションコンテキスト（ダイナミックに再構成可能な論理コア）と共に動作する。この場合、必要とされるコンフィギュレーションメモリのサイズは、単一のコンテキストデバイス（ｓｉｎｇｌｅ−ｃｏｎｔｅｘｔ  ｄｅｖｉｃｅ）の場合におけるメモリサイズよりもほぼｎ倍大きくなる。ここでｎはコンフィギュレーションコンテキストの数である。
【０００６】
構成可能な論理デバイスにおける更なる問題は、算術関数及び任意（ランダム）の論理（ｒａｎｄｏｍ  ｌｏｇｉｃ）の実現を同時にサポートすると共に小さなメモリもしばしば実現することが所望されることである。通常任意の論理は、論理の深さ（ｌｏｇｉｃ  ｄｅｐｔｈ）を最小限化するために（ＬＵＴよりも大きな）粗粒度（ｃｏａｒｓｅｒ  ｇｒａｎｕｌａｒｉｔｙ）から利益を受ける。他方、算術回路においてＬＵＴサイズは、ある結果の最も重要なビット（ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ）の、当該結果のより重要でないビットに対する依存性のために好ましくはより小さくなる。
【０００７】
従って、特にＬＵＴベースのデバイスの場合、前記コンフィギュレーションメモリのサイズを制限する要求仕様と、同時に様々な関数をサポートするのに十分な柔軟性を保証する要求仕様とは相対するものとなる。従って適正な平衡点を見つけることが課題として残されている。
【０００８】
ＬＵＴベースの構成可能な論理デバイスは、最新技術の再構成可能なアーキテクチャのうちで支配的なグループをもたらしている。以下主に、論理素子の実現態様及び前記アーキテクチャに関連する態様が議論される。これらは、前記構成可能な論理デバイスのコスト効率を強く決定するからである。記載は、主として算術関数に対する、異なる論理素子の適用可能性に集中される。典型例を挙げると、前述のように、任意の関数の実現のための、ＬＵＴベースの論理素子の使用がより簡単となる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、比較的少ない数のコンフィギュレーションビットで算術演算が実現され得ると共に比較的高い速度をも有する、冒頭の段落において記載されている再構成可能な論理デバイスを提供することにある。
【課題を解決するための手段】
【００１０】
本発明によれば、ルックアップテーブル（ＬＵＴ）を備える論理素子、アドレス信号を受信するための入力部、及び出力信号を供給するための出力部を有する再構成可能な論理デバイスにおいて、
制御信号を受信するための制御入力部（ｃｔｒｌ）と、
前記入力信号（ｉｎ１）及び前記制御信号（ｃｔｒｌ）に応答してルックアップテーブル（１１．１）にアドレス信号を供給するための制御可能な反転ゲート（１１．２）と、
前記制御信号及びルックアップテーブル（１１．３）の出力信号に応答して、修正された出力信号（ｏｕｔ'）を供給するための制御可能な反転ゲート（１１．３）と
によって特徴付けられる再構成可能な論理デバイスがもたらされる。
【００１１】
ここで制御可能な反転ゲート（ｃｏｎｔｒｏｌｌａｂｌｅ  ｉｎｖｅｒｔｉｎｇ  ｇａｔｅ）は、制御信号が第一の論理値を有する場合に変更されない入力信号を送信するゲート、又は制御信号が第二の論理値を有する場合に反転形態で入力信号を送信するゲートの何れかとして規定される。その結果、簡略化のために、制御可能な反転ゲートは、制御信号を受信するための一つの入力部と、可変式に反転され得る信号を受信するための第二の入力部とを有するＥＸＯＲゲートの形態で示されるであろう。しかしながら、例えば制御信号を受信するための選択入力部と、変更されない信号を受信するための第一の入力部と、反転信号を受信するための第二の入力部とを有するマルチプレクサのような他の実現態様が可能である。
【００１２】
アドレス信号を受信するための入力部とは別に、再構成可能な論理デバイスは、アドレス信号を受信するための、より多くの当該入力部を有していてもよい。更なる入力部は、直接ＬＵＴに結合されていてもよい。代わりに、一つ若しくはそれより多くの更なる入力部又は各々の更なる入力部は、前記更なる入力部において受信されるアドレス信号及び制御信号に応答して、修正されたアドレス信号をＬＵＴに供給する制御可能な反転ゲートを介してＬＵＴに結合されていてもよい。同様に、ＬＵＴは一つよりも多くの出力部を有していてもよい。更なる出力部は、制御信号、及びＬＵＴの前記出力部における出力信号に応答して、修正された出力信号を供給するための制御可能な反転ゲートに結合されていてもよい。
【００１３】
本発明による手段は、構成可能なデバイスのＬＵＴを効率的に実現させるための加算器の反転特性の利用に基づいている。当該反転特性の利用によって、再構成可能な論理デバイスが、より少ない数のコンフィギュレーションビットで実現され得る。制御可能な反転ゲートを実現するために必要とされる更なる論理関数は、ほんの少ない数のゲートで実現され得る。それ故に制御可能な反転器（ｉｎｖｅｒｔｅｒ）によってもたらされる更なる遅延は比較的小さいので、前記再構成可能なデバイスは、なお比較的高い速度を有し得る。また、前記再構成可能な論理デバイスは比較的適度な数の相互接続部を有し得るため消費電力も低減される。
【００１４】
本発明による前記再構成可能な論理デバイスの実施例は、前記論理素子の出力信号として少なくとも第一及び第二の修正された出力信号から選択するように選択信号により制御されるマルチプレクサによって特徴付けられる。前記論理素子におけるマルチプレクサの適用により、より幅広い論理関数の実現が可能となる。シャノン（Ｓｈａｎｎｏｎ）の拡張理論によれば、いかなるｎ＋１に対して入力論理関数は以下のように記載される。
【数１】
2004529576.tif 000003
【００１５】
Ｓは例えば論理素子の更なる入力信号（ｍｕｘ制御信号）であり、Ｆ１及び
【数２】
2004529576.tif 000004
はＬＵＴにおいて実現されるｎ入力の関数である。
【００１６】
当該及び他の態様は、図面を参照して更に詳細に記載される。
【発明を実施するための最良の形態】
【００１７】
図１は、Ｘｉｌｉｎｘ  Ｖｉｒｔｅｘ−１ファミリの論理素子の二つの論理スライス（ｌｏｇｉｃ  ｓｌｉｃｅ）のうちの一つを示している。すなわち他方のスライスはそれと同じである。単一のスライスは、二つの独立したセットの入力部を備える二つの４ビットルックアップテーブル（４−ＬＵＴ）１．１及び１．２を含んでいる。従って、四つの変数の二つの独立関数がスライスにおいて実現されてもよい。両方のＬＵＴの出力は、キャリー論理回路１．３を介して第一及び第二の２：１マルチプレクサ１．４及び１．５に結合される。キャリー論理回路１．３は、第一及び第二の論理積ゲート（ＡＮＤ−ｇａｔｅ）１．６及び１．７から更なる入力信号を受信する。論理積ゲートは、各々のセットの入力部から二つの入力信号を各々受信する。いくつかのルックアップテーブルの出力を選択するためにマルチプレクサを適用することは、より幅広い論理関数を実現するための普通のアプローチである。このようにマッピングされた任意の関数が、更なる論理関数で拡張され得る。
【００１８】
算術関数に関して、全ての論理スライス、例えば図２において示されているような２ビット加算器が実現されてもよい。全てのＬＵＴ２．１及び２．２は、二つのビットの部分和（ｐａｒｔｉａｌ  ｓｕｍ）を生成する。適切なキャリー入力信号ｃｉｎ’及びｃｉｎと共にＬＵＴ２．１及び２．２の出力部は、前記和の値を（ＬＵＴ毎に１ビット）生成する排他的論理和（ＸＯＲ）ゲート２．３３及び２．３４の入力部を有している。キャリー出力信号ｃｏｕｔは、専用回路２．３において生成される。このように実現される２ビット加算器は、前記和のビットの生成が、伝播されたキャリー信号に依存している点で、直列（ｓｅｒｉａｌ）である。
【００１９】
図１に示されている回路は、二つの独立したセットの入力部のために、任意の論理関数を実現することにおける高い柔軟性を利点としている。しかしながら、二つのＬＵＴ入力部しか算術モードにおいて使用されないため（図２参照）、ＬＵＴの使用は非効率である。他の不利点は、二つの別個のデコーダが、全てのＬＵＴのために必要とされることにある。すなわちＬＵＴが、分布メモリブロック（ｄｉｓｔｒｉｂｕｔｅｄ  ｍｅｍｏｒｙ  ｂｌｏｃｋ）としても使用される場合、合計でＬＵＴ毎に二つのデコーダが必要とされる（書き込み及び読み出し動作のために分離される）。更に他の不利点として、別個のＬＵＴ入力部セットのために、及びそれ故に別個の入力ピンのために、非常に多くのルーティングトラックが必要とされる（論理スライス毎に少なくとも２×４ルーティングトラック）ことが挙げられる。このことにより、増大された数のスイッチと、より大きなサイズのコンフィギュレーションメモリとがもたらされる。更により高い消費電力ももたらされる。
【００２０】
多くの算術演算において、複数の出力ビットが同じセットの入力ビットから生成される。ＬＵＴベースの算術関数生成における当該特性の利用は、いくつかのＬＵＴの入力部が共有され得ることを意味するであろう。このことは、実現され得るいくつかの任意の論理関数に関して柔軟性を制限する可能性があるが、一つのセットの入力部しかサポートされる必要がないため同時にルーティングリソースのかなりの低減をもたらす。このことは、データパス又はＤＳＰ指向の構成可能な論理デバイスに対する重要な最適化となる。当該アプローチは、図３に示されているように、例えばＡｔｍｅｌ  ＡＴ４０Ｋデバイスにおいて使用されている。そこに示されている前記論理素子は、共有された入力部を備える二つのＬＵＴ３．１及び３．２を有している。二つの出力信号はマルチプレクサ３．３、３．４、及び３．５によって選択可能である。２ビット加算器の対応する実現態様が図４において示されている。当該加算器は第一及び第二の論理ユニットを有している。第一の論理ユニット４．６、４．７、４．８、４．９、及び４．１０は、入力ビットａ０及びｂ０と、キャリーインビット（ｃａｒｒｙ  ｉｎ  ｂｉｔ）ｃｉｎとから、第一の出力ビットＳ０及び中間キャリーアウトビット（ｉｎｔｅｒｍｅｄｉａｔｅ  ｃａｒｒｙ  ｏｕｔ  ｂｉｔ）ｃｏｕｔ’を演算する。第二の論理ユニット４．１、４．２、４．３、４．４、及び４．５は、入力ビットａ１及びｂ１と、中間キャリーアウトビットｃｏｕｔ’とから、第二の出力ビットＳ１及びキャリーアウトビット（ｃａｒｒｙ  ｏｕｔ  ｂｉｔ）ｃｏｕｔを演算する。
【００２１】
低電力ＰＧＡ（Ｌｏｗ−Ｐｏｗｅｒ  ＰＧＡ）の論理素子に対して同じアプローチが図５に示されている。図６は、当該論理素子を備える加算器の実現態様を示している。概念的には、両方のデバイスの論理素子は類似しているが、粒度（規模）（ｇｒａｎｕｌａｒｉｔｙ）が異なっている。すなわちＡｔｍｅｌ  ＡＴ４０Ｋにおける論理素子は、二つのＬＵＴ３．１及び３．２を有している一方、ＬＰ−ＦＰＧＡの論理素子は、四つのＬＵＴ５．１、５．２、５．３、及び５．４を有している。Ｖｉｒｔｅｘの論理素子と異なり、両方のデバイスは３入力ＬＵＴを使用する。当該ＬＵＴは、Ｖｉｒｔｅｘのアプローチと同様に、より幅広い関数（この場合４入力）の実現を可能にするためにマルチプレクサ５．５において接続され得る。３入力ＬＵＴ（３−ＬＵＴ）の使用により、算術モードにおけるＬＵＴの使用が改善される（全ＬＵＴが有効なデータを記憶するために使用される）。両方の論理素子アーキテクチャにおいて更なる演算が直列態様でなされる。ＬＵＴのうちの一つからの出力信号（この場合ｃｏｕｔ’）は、他のＬＵＴのための入力となる。更にキャリー生成のために専用回路は全く使用されない。
【００２２】
当該アプローチの利点は、単一のＬＵＴが、算術関数のためによりよく使用されること、すなわちリソースが全く浪費されないことにある。適用された入力部共有技術のために、更に少ないルーティングリソース、及びそれ故により小さなコンフィグレーションメモリしか必要とされない。しかしながら不利点は、入力部が共有される場合でさえ、全てのＬＵＴに対して別個のデコーダが必要とされることにある（ＬＵＴデコーダは通常、たった一つのＬＵＴ出力部を選択するマルチプレクサのツリーとして実現される）。
【００２３】
論理素子においてＬＵＴ入力部を共有する同じ概念は、再構成可能な演算キャッシュアーキテクチャ（ＲＣＣＡ（Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｃｏｍｐｕｔｉｎｇ  Ｃａｃｈｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ））において適用されてきた。当該アプローチは、２０００年２月モントレー開催のＦＰＧＡに関する第８回ＡＣＭ国際シンポジウム（８ｔｈ  ＡＣＭ  Ｉｎｔｅｒｎａｔｉｏｎａｌ；  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  ＦＰＧＡｓ，  Ｍｏｎｔｅｒｅｙ，  Ｆｅｂｒ．２０００）における、Ｋｉｍ  Ｈ．−Ｓ．，Ｓｏｍａｎｉ  Ａ．Ｋ．，Ｔｙａｇｉ  Ａｋ．，による「再構成可能なマルチ関数演算キャッシュアーキテクチャ（Ａ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｍｕｌｔｉ−ｆｕｎｃｔｉｏｎ  Ｃｏｍｐｕｔｉｎｇ  Ｃａｃｈｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ）」に記載されている。当該アーキテクチャは、図７に概略的に示されている。しかしながら従来のＬＵＴ実現態様と異なり、ＲＣＣＡはメモリ態様で実現されるＬＵＴを使用している。このことは、一つのアドレスデコーダが、たった一つのビットではなくマルチビット出力ワード（ｍｕｌｔｉ−ｂｉｔ  ｏｕｔｐｕｔ  ｗｏｒｄ）を選択するために使用されることを意味している。ＲＣＣＡにおいて任意の論理関数が、従来のＬＵＴベースのアーキテクチャと同じ態様で実現される。ＲＣＣＡ論理素子の１６セルメモリコラム（１６−ｃｅｌｌ  ｍｅｍｏｒｙ  ｃｏｌｕｍｎ）７．１乃至７．６の各々は、任意の論理関数（ａｒｂｉｔｒａｒｙ  ｌｏｇｉｃ  ｆｕｎｃｔｉｏｎ）の出力を記憶する。前記入力部のセットは、全てのメモリコラムの間で共有されるため、同じ入力部のセットに基づいてマルチビット出力が生成される。
【００２４】
ＲＣＣＡにおける算術関数の実現態様は少し異なっている。キャリー伝播を介したより重要でないビットへの、より重要なビットの依存性の問題はキャリー選択加算器（ｃａｒｒｙ−ｓｅｌｅｃｔ  ａｄｄｅｒ）で解消されている。ＲＣＣＡマルチ出力ＬＵＴ８．１乃至８．６は、“０”と“１”との両方に等しいキャリー信号に対する算術関数の真理値表を記憶している。正しい出力の選択が、前段（ＲＣＣＡブロック）（図８参照）からのキャリー入力信号ｃｉｎを使用してマルチプレクサ８．７、８．８、及び８．９でなされる。算術関数の生成は当該態様において非常に高速であるが、制御信号（例えばキャリー信号）の両方の値に対して真理値表の値を記憶するために多くのメモリセルが必要とされるため、非常に高価にもなる。
【００２５】
当該アプローチの利点は、単一のデコーダがマルチ出力ＬＵＴに対してコンパイルされ得ることにある。前記デバイスは、単一のＬＵＴのメモリ態様の実現態様のためにコンパクトなレイアウトを有している。いくつかの結果のビットが、選択メカニズムを使用して同時に生成されるため、このことは算術関数の高速な生成をもたらす。しかしながら、図３乃至６に示されているような標準的なソリューションのメモリビットの数の３倍の数が必要とされるため、このことは高価なソリューションとなる。粗関数（ｃｏａｒｓｅ  ｆｕｎｃｔｉｏｎ）（例えば２ビットオペランド（２−ｂｉｔ  ｏｐｅｒａｎｄ）よりも大きな関数）に対して、当該アプローチはコスト的に非効率となる。更なる不利点は、マッピングされた任意の論理関数が前記入力共有特性（ｉｎｐｕｔ  ｓｈａｒｉｎｇ  ｐｒｏｐｅｒｔｙ）を利用し得ない場合、マルチ出力ＬＵＴのかなりの部分は使用されなくてもよいことにある。
【００２６】
図９は、加算器の反転特性を概略的に示している。図９Ａは、入力部ａ、ｂ、及びｃｉｎと、出力部Ｓ及びｃｏｕｔを有する全加算器（ｆｕｌｌ  ａｄｄｅｒ）ＦＡを示している。図９Ｂは、当該全加算器が、全ての出力信号と共に全ての入力信号は反転されている全加算器と等価であることをしている。すなわち
【数３】
2004529576.tif 000005
【数４】
2004529576.tif 000006
２の補数のバイナリ加算の真理値表が、前記入力のうちの一つに関して反転対称となっている（図１０におけるテーブル参照）。このことは、前記加算真理値表の半分における情報が冗長になっていることを意味している。当該情報は、他の半分における情報に基づいて非常に簡単な変換を使用して生成されてもよいからである。
【００２７】
1ビット加算器の場合、任意の入力がキャリー入力信号として選択されてもよい。新たな真理値表において、前記出力信号（和及びキャリーアウト）の値が、入力（ａ及びｂ）の全ての可能な組み合わせに対して、及びｃｉｎ＝“０”に対して記憶される。ｃｉｎ＝“１”の場合、前記出力ビットを生成するために必要な変換は以下のようになる。
１．入力オペランド（ａ及びｂ）の全てのビットの否定
２．前記新たな（変換された）入力に対する真理値表からの出力の読み出し
３．読み出された出力ビットの否定
１ビット加算の場合、当該特性は以下の態様で検証され得る。
【数５】
2004529576.tif 000007
【数６】
2004529576.tif 000008
【数７】
2004529576.tif 000009
【数８】
2004529576.tif 000010
【数９】
2004529576.tif 000011
同様に当該反転特性は、ｎビット加算に適用される。
【００２８】
バイナリ加算演算の記載の特性は、ＬＵＴベースの演算論理素子（ＬＵＴ−ｂａｓｅｄ  ｃｏｍｐｕｔａｔｉｏｎａｌ  ｌｏｇｉｃ  ｅｌｅｍｅｎｔ）において直接使用され得る。本発明による構成可能なデバイスにおいて、十分なことにＬＵＴはｎビット加算の真理値表の半分を記憶する。ＬＵＴはシングル出力ＬＵＴ（ＬＵＴ毎に一つのビットが生成される場合）、又はマルチ出力ＬＵＴ（複数の出力ビットが生成される場合）であってもよい。ＬＵＴの内容は、前記キャリー入力信号（例えばキャリー入力＝“０”）の選択された極性に対して符号化される前記出力ビットの値を反映している。ここでキャリー入力信号の参照極性（ｒｅｆｅｒｅｎｃｅ  ｐｏｌａｒｉｚａｔｉｏｎ）と称される当該選択された極性に対して、ＬＵＴは従来のＬＵＴとして振る舞う。すなわち入力ビットの組み合わせ（加算オペランド）は、前記出力が読み出されるＬＵＴアドレスを決定する。
【００２９】
前記キャリー入力信号が前記参照極性の反転極性を有する場合、ＬＵＴアドレスとＬＵＴ出力値との両方は変換されなければならない。当該変換を実現するために、単一の２入力ＸＯＲゲートが、ＬＵＴの全ての出力部及び全ての入力部に接続される。ＸＯＲ信号のうちの一つは、キャリー入力信号である。当該信号が“１”に等しい場合、ＸＯＲゲートはＬＵＴ出力及びＬＵＴアドレス信号の元の極性を反転する。
【００３０】
図１１は、本発明による再構成可能なデバイスの論理素子の第一の実施例を示している。示されている再構成可能な論理デバイスは、アドレス信号を受信するための入力部ｉｎ１、バイナリ出力信号を供給するための出力部ｏｕｔ１、及びルックアップテーブル１１．１（ＬＵＴ）を備える論理素子を有している。前記論理素子は更に、制御信号を受信するための制御入力部ｃｔｒｌを有している。入力部ｉｎ１は、入力部ｉｎ１における入力信号及び制御入力部ｃｔｒｌにおける制御信号に応答してアドレス信号をＬＵＴ１１．１に供給するためのＥＸＯＲゲート１１．２を介して結合される。前記論理素子は、制御入力部ｃｔｒｌにおける制御信号及びＬＵＴ１１．１の出力信号に応答して、修正された出力信号ｏｕｔ’を供給するための更なるＥＸＯＲゲート１１．３を有している。論理素子は、更なるＥＸＯＲゲート１１．４を介してＬＵＴ１１．１の更なる入力部に結合される更なるアドレス入力部ｉｎ２を有している。
【００３１】
好ましくは、ｎビット加算のためのキャリー出力信号は、独立回路、例えばスイス連邦工科大学の集積システム研究所における、Ｚｉｍｍｅｒｍａｎｎ  Ｒ氏による講義ノート「コンピュータ算術：原理、アーキテクチャ、及びＶＬＳＩ設計」（チューリヒ  １９９９年３月）（Ｚｉｍｍｅｒｍａｎｎ  Ｒ，Ｃｏｍｐｕｔｅｒ  Ａｒｉｔｈｍｅｔｉｃ：Ｐｒｉｎｃｉｐｌｅｓ，Ａｒｃｈｉｔｅｃｔｕｒｅｓ，ａｎｄ  ＶＬＳＩ  Ｄｅｓｉｇｎ，Ｌｅｃｔｕｒｅ  ｎｏｔｅｓ，Ｉｎｔｅｇｒａｔｅｄ  Ｓｙｓｔｅｍｓ  Ｌａｂｏｒａｔｏｒｙ，Ｓｗｉｓｓ  Ｆｅｄｅｒａｌ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｔｅｃｈｎｏｌｏｇｙ，Ｚｕｒｉｃｈ，Ｍａｒｃｈ，１９９９）に記載のように生成される。これにより、クリティカルパス上のキャリー信号は、非常に高速な態様で生成されることが保証される（専用回路の遅延はＬＵＴの遅延よりも短い）。更にキャリー信号に対する専用回路の使用により、コンフィギュレーションメモリのサイズの低減ももたらされる。キャリー出力値を反映するメモリビットはＬＵＴにおいて記憶される必要がないためである。
【００３２】
本発明はいくつかの態様において適用されてもよい。まず、前記加算は最も基本的な算術演算であるため、本技術はＬＵＴベースのＦＰＧＡにおいて、当該ＦＰＧＡの性能を改善させると共に、コンフィギュレーションメモリのサイズを低減させるために使用されてもよい。同様にＬＵＴの入力部の数が低減されてもよく、それによって消費電力の低減も達成される。本技術は、減算（ｓｕｂｔｒａｃｔｉｏｎ）（ほとんど直接の実現態様）及び乗算（ｍｕｌｔｉｐｌｉｃａｔｉｏｎ）のような他の算術演を実現するために使用されてもよい。以下、可能な実施例の簡潔な記載がもたらされる。
【００３３】
本発明は、粗粒度のアーキテクチャ（ｃｏａｒｓｅｇｒａｉｎｅｄ  ａｒｃｈｉｔｅｃｔｕｒｅ）における適用に対して特に有利となる。図の場合、ＥＸＯＲゲート１２．３、１２．４、１２．５、及び１２．６を介してＬＵＴ１２．１及び１２．２に結合されている四つの基本入力部ｉｎ０、ｉｎ１、ｉｎ２、及びｉｎ３を有する論理素子の実施例が図１２に示されている。ＬＵＴ１２．１及び１２．２の出力部は更なるＥＸＯＲゲート１２．７及び１２．８を介して前記論理素子の出力部ｏｕｔ１及びｏｕｔ２に結合されている。当該論理素子は更に二つの追加の入力部Ｃ及びＳＬを有する。入力部Ｃは、第二の入力信号をＥＸＯＲゲート１２．３、１２．４、１２．５、１２．６、１２．７、及び１２．８に供給する。他の追加の入力部ＳＬは、出力部ｏｕｔ１及びｏｕｔ２のうちの一つにおける出力信号を自身の出力信号として選択するマルチプレクサ１２．９に選択信号を供給する。図１２は、４入力部及び２出力部を備えるＬＵＴを有する論理素子を示しているが、任意の他の数のビットの場合においても、本発明は同様に適用可能である。図１２の論理素子は、５入力信号を有するいかなる論理演算の実現に対しても適している。ここで
【数１０】
2004529576.tif 000012
【数１１】
2004529576.tif 000013
となる。
更なる入力信号として選択信号ＳＬも使用することによって更なる論理関数ｏｕｔ３が可能である。ここで
【数１２】
2004529576.tif 000014
である。
同様に当該態様で、ｋ個の変数の第一の関数（ｏｕｔ１）及び第二の関数（ｏｕｔ２）としてｋ＋１個の変数の各々の出力関数（ｏｕｔ３）を生成すると共に、ｋ＋１番目の変数として選択信号（ＳＬ）を生成することが可能である。
【数１３】
2004529576.tif 000015
関数ｏｕｔ１及びｏｕｔ２のクラス（ｃｌａｓｓ）は、今度はｋ−１個の変数（Ｆ１及びＦ２）の第一及び第二の基本関数（ｐｒｉｍｉｔｉｖｅ  ｆｕｎｃｔｉｏｎ）として書き込まれ得ると共に変数Ｃはｋ番目の変数として書き込まれ得る。
【数１４】
2004529576.tif 000016
【数１５】
2004529576.tif 000017
【００３４】
図１３は、当該論理素子を備える加算器の実現態様を示している。図１２の部分に対応する、図１３の部分は、同じ第二の部分（例えば１２．３及び１３．３）を有する参照番号で示されている。１ビットよりも大きな変数（引数）（ａｒｇｕｍｅｎｔ）についての加算演算は、マルチビット出力を生成する。このことは、接続された入力部を有する１グループの１出力ビットＬＵＴで実現され得る。しかしながら、好ましくはこのことは、図７及び８に関して記載されているように、マルチ出力ＬＵＴで実現される。このことは前述のいくつかの重要な利点を有する。しかしながら本発明による再構成可能なデバイスにおいて、マルチ出力ＬＵＴは、図６に示されているＬＵＴよりもかなり小さくなり得る。本発明による再構成可能な論理デバイスは加算の反転特性を使用するため、ＬＵＴ１３．１及び１３．２におけるメモリ位置の数が二つに低減され得る。当該実施例においてキャリーアウトｃｏｕｔは専用回路１３．９によって演算されるため、メモリ位置の数は更にずっと低減される。
【００３５】
より幅広い任意の論理関数を実現する可能性をもたらすために更なる２：１マルチプレクサが使用されてもよい。例えば図１２及び１３に示されているような本発明による回路は、前述の知られているアプローチと比較して以下の利点を有している。
【００３６】
本発明の構成可能な論理回路は、図７及び８に関して記載されているアプローチと比較して比較的少ない数のコンフィギュレーションビットしか必要としていない。更に図１２及び１３に示されている本発明の実施例による回路は、全出力部の平衡遅延（ｂａｌａｎｃｅｄ  ｄｅｌａｙ）を有する。これにより、不要な信号遷移（ｓｉｇｎａｌ  ｔｒａｎｓｉｔｉｏｎ）が防止され、それ故に消費電力が低減される。可能なことに、多くの任意の論理関数は同じセットの入力からマルチビット出力も生成するため、ここに示されるマルチ出力ＬＵＴが任意の論理に対して使用されてもよい。ＸＯＲゲートは信号処理における遅延をもたらすが、このことは無視され得ることが分かっている。本発明の回路はより少ないルーティングリソース（ｒｏｕｔｉｎｇ  ｒｅｓｏｕｒｃｅ）も必要としており、それによってより小さな面積が適合され得る。このことにより、低減された消費電力が可能となる。節減された面積は、例えば代わりにメモリのために使用され得る。通常任意の論理に対して最適化される細粒度（ｆｉｎｅ−ｇｒａｉｎｅｄ）アーキテクチャ（シーオブセル（ｓｅａ−ｏｆ−ｃｅｌｌ））において、一つ又は数個の小さなＬＵＴ（例えば２入力ＬＵＴ（２−ＬＵＴ））が論理素子において使用される。算術演算（例えば加算）を実現するために、いくつかの論理セル、又は論理セル内のいくつかのＬＵＴが互いに接続されなければならない。ＬＵＴ（例えば２−ＬＵＴ）の全ての入力部及び出力部においてＸＯＲゲートが含まれる場合、単一のＬＵＴの機能は算術演算を実現するために拡張され得る。従来のアプローチにおいて当該ＬＵＴは、少なくとも３入力部を必要とし、それ故に２３個のメモリセルを備え得る。本発明の手段により、入力部及び出力部上に追加のＸＯＲゲートを配置する非常に低いコストでＬＵＴのサイズが２のファクタで低減され得る。図１４は、例えばキャリーを伴う１ビット加算に対してこのことを示している。図１１の部分に対応する、図１４の部分は、同じ第二の部分（例えば１１．１及び１４．１）を有する参照番号で示されている。構成可能な論理アーキテクチャにおいて通常信号毎に二つの出力部、すなわち一つの直接出力部（ｄｉｒｅｃｔ  ｏｕｔｐｕｔ）及び一つの記録出力部（ｒｅｇｉｓｔｅｒｅｄ  ｏｕｔｐｕｔ）がもたらされていることは注目されるべきである。これら二つのピンのうちの一つが、キャリー出力信号のために必要とされる更なる出力部としてもたらされてもよい。
【００３７】
本発明による再構成可能なデバイスにおける、図１５Ａに概略的に示されているマルチ出力ＬＵＴは、いくつかの態様で実現されてもよい。その例は図１５Ｂ及び１５Ｃに示されている。
【００３８】
図１５Ａに示されているマルチ出力ＬＵＴ１５．１は、複数の入力部１５．２及び複数の出力部１５．３を有している。
【００３９】
図１５Ｂに示されている実施例においてマルチ出力ＬＵＴ１５．４が、シングル出力部１５．８及び１５．９を各々有する第一のＬＵＴ１５．６及び第二のＬＵＴ１５．７から構成されている。ＬＵＴ１５．６及び１５．７の入力部は両方とも入力部１５．５に結合されている。
【００４０】
マルチ出力ＬＵＴ１５．１０の第二の実施例が図１５Ｃに示されている。当該ＬＵＴはメモリセル１５．１１及び１５．１２の第一及び第二のコラムを各々有している。デコーダ（マルチプレクサ）１５．１３によって第一のコラム１５．１１の出力部のうちの一つが、出力部１５．１５における出力信号を供給するように選択されると共に、第二のコラム１５．１２の出力部のうちの一つが、出力部１５．１６における出力信号を供給するように選択される。前記デコーダは、入力信号１５．１７によって制御される。
【００４１】
マルチ出力ＬＵＴ１５．１８の第三の実施例が図１５Ｄに示されている。当該ＬＵＴは、前記入力信号を第一及び第二のメモリコラム１５．２０及び１５．２１に対するアドレスに各々復号化するためのデコーダ１５．１９を有している。メモリコラム１５．２０及び１５．２１は、出力信号１５．２３のうちの一つを各々供給する。
【００４２】
テーブル７−１は、記載されている最新の論理素子と、提案されているアプローチに基づく論理素子との間の比較を示している。第一のコラム（ＴＹＰＥ）は、論理素子の型を示している。論理素子は粒度（ｇｒａｎｕｌａｒｉｔｙ）の点で異なっているため、任意の型の論理素子を使用して２ビット加算器を実現するために必要とされる論理素子の数（ＮＬ）が参照される。当該数に基づいて、前記テーブルにもたらされているパラメータによって記載される全体のコストが計算される。
【００４３】
第三のコラムは、実現され得る論理関数の型（ＴＬＦ）を示している。その中の表記ｋｘ（ｍＩ＋ｎＯ）は、ｍ個の入力及びｎ個の出力の最大値でｋ個の論理関数の最大値が実現され得ることを意味している。当然なことに、入力及び出力を各々使用する必要はない。第四のコラムは、２ビット加算器の実現態様のために必要とされるコンフィギュレーションビットの数（ＮＣ）を示している。ＬＵＴデコーダの複雑度（ｃｏｍｐｌｅｘｉｔｙ）（ＣＬＵＴ）は、第五のコラムに含まれている。算術関数を実現するためのルーティング複雑度（ｒｏｕｔｉｎｇ  ｃｏｍｐｌｅｘｉｔｙ）（ＲＣ）は、第六のコラムに示されている。当該ルーティング複雑度は、前記入力及び出力信号のために必要とされるトラックの最大数として表現されている。
全体のコストＴＣを求める手段は以下となる。
【数１６】
2004529576.tif 000018
【００４４】
【表１】
2004529576.tif 000019
【００４５】
当該比較から、本発明による再構成可能なデバイスは、適度な数のコンフィギュレーションビットで比較的高い性能を達成させることが明らかとなる。一方で前記性能は、高速ＲＣＣＡ型の再構成可能な回路の性能に匹敵する。他方で必要とされるコンフィギュレーションビットの数は、例えば型式ＬＰ−ＦＰＧＡの再構成可能な回路の数に匹敵する。本発明による再構成可能な論理デバイスは特に乗算器アレイ（ｍｕｌｔｉｐｌｉｅｒ  ａｒｒａｙ）における用途に適している。例示によって、図１６は、二つの数値ａ０、．．．．、ａｎ−１とｂ０、．．．．、ｂｍ−１とを乗算するための乗算器アレイを示している。前記アレイは、‘垂直’キャリー伝播（‘ｖｅｒｔｉｃａｌ’  ｃａｒｒｙ  ｐｒｏｐａｇａｔｉｏｎ）を有するキャリー保存乗算器（ｃａｒｒｙ  ｓａｖｅ  ｍｕｌｔｉｐｌｉｅｒ）の形態をとっている。当該アレイは、比較的低速の‘水平’キャリー伝播（‘ｈｏｒｉｚｏｎｔａｌ’  ｃａｒｒｙ  ｐｒｏｐａｇａｔｉｏｎ）を有するリプルキャリー乗算器（ｒｉｐｐｌｅ  ｃａｒｒｙ  ｍｕｌｔｉｐｌｉｅｒ）よりも高速であるため、好ましい。いくつかの実現態様が可能であるが、好ましくはいわゆるブラウンアレイ（Ｂｒａｕｎ  ａｒｒａｙ）が符号無しの数値（ｕｎｓｉｇｎｅｄ  ｎｕｍｂｅｒ）を乗算するために使用され、修正ペザリスアレイ乗算器（Ｐｅｚａｒｉｓ  ａｒｒａｙ  ｍｕｌｔｉｐｌｅｒ）が２の補数（ｔｗｏ’ｓ  ｃｏｍｐｌｅｍｅｎｔ  ｎｕｍｂｅｒ）に対して使用される。この場合ｎ＝ｍ＝４となるが、当該アレイがｎ及びｍのいかなる組み合わせに対しても構成され得ることは当業者のとって明らかであろう。前記乗算器アレイは出力の数値Ｐ０、．．．．、Ｐｎ＋ｍ−１をもたらす。
【００４６】
図１６に示されているように、前記アレイは乗算素子１６．ｉ．ｊから構成されている。当該素子のうちの一つが図１７により詳細に示されている。乗算素子は、論理積ゲートＮ及び全加算器ＦＡを有している。論理積ゲートＮはａｉとｂｊとの積を演算し、全加算器ＦＡはその結果を、乗算素子１６．ｉ−１．ｊ＋１から得られる部分積（ｐａｒｔｉａｌ  ｐｒｏｄｕｃｔ）ＰＰｉ−１．ｊ＋１に加算する。それに応答して全加算器は更なる部分積ＰＰｉ．ｊとキャリーアウト信号ｃｏｕｔとを供給する。前記アレイの第一の列における乗算素子１６．０．ｊの場合、入力部分積Ｐ−１，ｊ＋１＝‘０’となる。出力ビットＰ０、．．．．、Ｐ３は、乗算素子１６．ｉ．０のよって出力される部分積ＰＰｉ．ｊに等しい。出力ビットＰ４乃至Ｐ６は、乗算素子１６．４．０乃至１６．４．２に応答して出力される部分積によってもたらされる。最後の出力ビットＰ７は、乗算素子１６．４．２のキャリーアウトビットに等しい。ｎ×ｍ乗算器の場合、出力ビットＰ０、．．．．、Ｐｎ−１は乗算素子１６．０．０乃至１６．ｎ−１．０の部分積によって各々もたらされる。ビットＰｎ、．．．．、Ｐｎ＋ｍ−２は乗算素子１６．ｎ．０乃至１６．ｎ．ｍ−１によって各々もたらされ、ビットＰｎ＋ｍ−１は、乗算素子１６．ｎ．ｍ−１のｃｏｕｔ出力によってもたらされる。
【００４７】
実際の実施例において、前記乗算器アレイは以下のように簡略化され得る。当該素子によって受信される信号ｃｉｎにおけるキャリー及び部分積ＰＰは全て‘０’であるため、ａ‘＊’によって示される乗算素子１６．０．０、．．．．、１６．０．３及び１６．１．３、．．．．、１６．３．３は論理積ゲートに簡略化され得る。従って素子１６．０．ｊは、ａ０とｂｊとの論理積をただ演算すればよく、素子１６．ｉ．３は、ａｉとｂ３との論理積をただ演算すればよい。
【００４８】
更に二つの素子１６．ｉ．ｊ及び１６．ｉ＋１．ｊは、図１８に概略的に示されているように、本発明による再構成可能な論理デバイスのよって実現され得る。それに示されている再構成可能な論理デバイスは、論理積ユニット１８．１、第一の制御可能な反転ゲート１８．２、ルックアップテーブル１８．３、第二の制御可能な反転ゲート１８．４、及びキャリー演算のための別個の回路１８．５を有する。図１８に示されている再構成可能な論理デバイスは、２ビットの数値ＰＰｉ．ｊ＋１｜ＰＰｉ−１．ｊ＋１と、２ビットの数値ａｉ＋１．ｂｊ｜ａｉ．ｂｊと、１ビットの数値ｃｉｎとの和として３ビットの数値ｃｏｕｔ｜ＰＰｉ＋１．ｊ｜ＰＰｉ．ｊを演算する。
【００４９】
論理積ユニット１８．１は、積ａｉ．ｂｊ及びａｉ＋１．ｂｊを演算するための論理積ゲートを有している。ユニット１８．２、１８．３、及び１８．４によって形成される加算器は、その後ビットＰＰｉ．ｊ及びＰＰｉ＋１．ｊを演算する。ビットｃｏｕｔを演算する回路１８．５は、図１９においてより詳細に示されている。前記回路は第一及び第二のＸＯＲゲート１９．１及び１９．３と、マルチプレクサ１９．２及び１９．４とを各々有している。
乗算器アレイは、本発明による再構成可能な素子の規則的なアレイ（ｒｅｇｕｌａｒ  ａｒｒａｙ）においていくつかの態様で実現され得る。図２０及び２１は、偶数個の列（ｅｖｅｎ  ｎｕｍｂｅｒ  ｏｆ  ｒｏｗｓ）を有する乗算器アレイの第一及び第二の実現態様を示している。
【００５０】
その中において各々の再構成可能な素子２０．ｉ．ｊは、第一及び第二の部分を有する四角形として表されている。前記部分のうちの一つのみが網掛け（ｃｒｏｓｓ  ｈａｔｃｈ）されている場合、再構成可能な素子におけるルックアップテーブルのうちの一つのみが使用される。両方の部分が網掛けされている場合、全体のルックアップテーブルが使用される。例えば図１８に示されているように中央の素子２０．２．１が各々二つの乗算器素子を実現している。再構成可能な素子２０．３．１の最後の列において、乗算器素子１６．４．０、１６．４．１、及び１６．４．２のそれぞれに対してルックアップテーブルの一部のみが各々使用される。当該最後の列において、第一の乗算器アレイ素子１６．４．１は、“０”にセットされる自身のａｉ入力部を有する。自身のｃｏｕｔ出力部は、次段の乗算器アレイ素子１６．４．１のａｉ入力部に結合される。同様に最後の列の各々の更なる乗算器アレイ素子１６．４．ｊは、前段のアレイ素子、すなわち列１６．４．ｊ−１に結合される自身のａｉ入力部を有している。最後の乗算器素子１６．４．２のｃｏｕｔ出力部は、乗算結果の最後の出力ビットＰ７を供給する。
【００５１】
好ましくは再構成可能な素子の論理積ユニット１８．１は少なくとも４論理積ゲートを有している。これにより、再構成可能な素子２０．１．ｊの一つの部分において第二の列の乗算器素子１６．１．ｊ−１及び第一の列の乗算器素子１６．０．ｊを実現することが可能となる。
【００５２】
このことは図２２において示されている。図２２において素子２２．ｎは図１８における素子１８．ｎに対応している。図２２は、一つの再構成可能な素子２０．１．１における乗算器素子１６．０．０、１６．０．１、及び１６．１．０の実現態様を示している。図１８と比較すると、部分積ａ０．ｂ１を演算するために一つの更なる論理積ゲート２２．１．１が使用されている。他の更なる加算器２２．１．３は、論理値“１”に接続される自身の入力部のうちの一つを有するので、入力信号ａ０は、制御可能な反転ゲート２２．２に修正されることなく送信される。ルックアップテーブル２２．３の第一のコラム２２．３．１は、積Ｐ１を演算するために使用される。第二のコラム２２．３．２は、結果Ｐ０を有する論理積演算ａ０．ｂ０を実現するために使用される。前記ルックアップテーブルの内容は以下のテーブルに表されている。
【００５３】
【表２】
2004529576.tif 000020
【００５４】
図２１は、前記乗算器アレイの他の実現態様を示している。図２１の実施例は、最後の列における素子１６．４．１と乗算器素子１６．４．０とが一つの再構成可能な素子２１．３．１において組み合わされている点で図２０の実施例と異なっている。図２０の実施例と異なり、乗算器素子１６．４．０の出力部ｃｏｕｔは素子１６．４．１の入力部ｃｉｎに接続されている。乗算器素子１６．４．１のａｉｎ入力部は、素子１６．３．１の出力部ｃｏｕｔに接続されている。乗算器素子１６．４．２は、図２０における対応する素子と同じ態様で接続される。
【００５５】
同様に奇数個の列（ｏｄｄ  ｎｕｍｂｅｒ  ｏｆ  ｒｏｗｓ）を有する乗算器アレイが、図２３及び２４に概略的に示されているように実現され得る。図２３は、最後の列における各々の再構成可能な素子２３．４．ｊが一つの乗算器素子を有する実施例を示している。図２４は、図２１における素子２１．３．１に対して示されている態様と同様に二つの乗算器素子が素子２４．４．１において組み合わされている実施例を示している。
【００５６】
図２５に示されている本発明の再構成可能な論理素子の実施例により、関数加算と減算とを変更することが容易に可能となる。
【００５７】
図１１に示されている論理素子と同様に当該素子は、ルックアップテーブル２５．１と、入力信号を受信するための入力部ａ０及びａ１と、出力信号を供給するための出力部ｏ０及びｏ１とを有している。当該素子は、制御信号を受信するための制御入力部ｃｔｒｌと、入力部ａ０及びａ１における入力信号及び制御信号ｃｔｒｌに応答してＬＵＴ２５．１にアドレス信号を供給するための制御可能な反転ゲート２５．２．１及び２５．１．２とも有している。当該素子は、制御信号ｃｔｒｌと、ＬＵＴ２５．１の出力信号とに応答して、修正された出力信号ｏ０及びｏ１を供給するための制御可能な反転ゲート２５．３．１及び２５．３．２も更に有している。
【００５８】
図１１に示されている実施例に加えて、当該素子は加算又は減算モードを選択するためのモード制御入力部
【数１７】
2004529576.tif 000021
を有している。図２５に示されている実施例は、修正された制御信号ｃｔｒｌ２を生成するための組み合わせ素子２５．５、ここではＥＸＯＲゲートも有している。入力部ｂ０及びｂ１における入力信号及び前記修正された制御信号ｃｔｒｌに応答してＬＵＴ２５．１にアドレス信号を供給するための制御可能な反転ゲート２５．２．３及び２５．１．４を図２５の実施例は更に有している。図２５に示されているように、制御信号ｃｔｒｌは、信号入力部ｃｉｎにおいてキャリーに結合される第一の入力部と、コンフィギュレーションメモリ素子Ｍに結合される第二の入力部とを有する第一のマルチプレクサ２５．６によって生成される。マルチプレクサ２５．６は、コンフィギュレーションメモリ素子に接続される制御入力部を更に有している。組み合わせ素子２５．５は、第一の入力として制御信号ｃｔｒｌを受信すると共に、第二のマルチプレクサ２５．７に結合される第二の入力部を有している。第二のマルチプレクサ２５．７は、
【数１８】
2004529576.tif 000022
モード制御信号と、コンフィギュレーションメモリからの固定値との間で選択するように第一のコンフィギュレーション素子によって制御される。
【図面の簡単な説明】
【００５９】
【図１】Ｘｉｌｉｎｘ  Ｖｉｒｔｅｘ−１ファミリの再構成可能なデバイスの論理ブロックの例を示している。
【図２】図１の論理ブロックにおける加算器の実現態様を示している。
【図３】Ａｔｍｅｌデバイスの論理ブロックの例を示している。
【図４】図３の論理ブロックにおける加算器の実現態様を示している。
【図５】低消費電力ＰＧＡ論理素子を示している。
【図６】図５の論理素子を備える加算器の実現態様を示している。
【図７】当業者に知られている更なる論理素子を示している。
【図８】図７の論理素子を備える加算器の実現態様を示している。
【図９Ａ】加算器の反転特性を示している。
【図９Ｂ】加算器の反転特性を示している。
【図１０】テーブルの形態における当該特性を更に示している。
【図１１】本発明による論理素子の第一の実施例を示している。
【図１２】本発明による論理素子の第二の実施例を示している。
【図１３】第二の実施例における加算器の実施例を示している。
【図１４】第一の実施例における加算器の実施例を示している。
【図１５Ａ】マルチ出力ＬＵＴを概略的に示している。
【図１５Ｂ】図１５Ａのマルチ出力ＬＵＴの第一の実現態様を示している。
【図１５Ｃ】図１５Ａのマルチ出力ＬＵＴの第二の実現態様を示している。
【図１５Ｄ】図１５Ａのマルチ出力ＬＵＴの第三の実現態様を示している。
【図１６】二つの数値を乗算するための乗算器アレイを示している。
【図１７】図１７の素子をより詳細に示している。
【図１８】本発明による再構成可能な論理デバイスにおける二つの当該素子の実現態様を示している。
【図１９】図１８の一部をより詳細に示している。
【図２０】本発明による再構成可能な素子の規則的なアレイにおいて偶数個の列を有する乗算器アレイを実現する一つの可能性を示している。
【図２１】本発明による再構成可能な素子の規則的なアレイにおいて偶数個の列を有する乗算器アレイを実現する他の可能性を示している。
【図２２】前記素子のうちの一つの構成例をより詳細に示している。
【図２３】本発明による再構成可能な素子の規則的なアレイにおいて奇数個の列を有する乗算器アレイを実現する一つの可能性を示している。
【図２４】本発明による再構成可能な素子の規則的なアレイにおいて奇数個の列を有する乗算器アレイを実現する他の可能性を示している。
【図２５】本発明による再構成可能な素子の更なる実施例に示している。
【図１】
2004529576.tif 000023
【図７】
2004529576.tif 000024
【図１０】
2004529576.tif 000025
【図１２】
2004529576.tif 000026
【図１３】
2004529576.tif 000027
【図１４】
2004529576.tif 000028
【国際公開パンフレット】
2004529576.tif 000029
2004529576.tif 000030
2004529576.tif 000031
2004529576.tif 000032
2004529576.tif 000033
2004529576.tif 000034
2004529576.tif 000035
2004529576.tif 000036
2004529576.tif 000037
2004529576.tif 000038
2004529576.tif 000039
2004529576.tif 000040
2004529576.tif 000041
2004529576.tif 000042
2004529576.tif 000043
2004529576.tif 000044
2004529576.tif 000045
2004529576.tif 000046
2004529576.tif 000047
2004529576.tif 000048
2004529576.tif 000049
2004529576.tif 000050
2004529576.tif 000051
2004529576.tif 000052
2004529576.tif 000053
2004529576.tif 000054
2004529576.tif 000055
2004529576.tif 000056
2004529576.tif 000057
2004529576.tif 000058
2004529576.tif 000059
2004529576.tif 000060
2004529576.tif 000061
2004529576.tif 000062
2004529576.tif 000063
2004529576.tif 000064
2004529576.tif 000065
【国際公開パンフレット（コレクトバージョン）】
2004529576.tif 000066
【国際調査報告】
2004529576.tif 000067
2004529576.tif 000068