(57)【要約】  ＦＰＧＡのプログラマブル論理ブロックは、２つのルックアップテーブル（ＬＵＴ）（４１、４４）を備える。これらのＬＵＴ（４１、４４）の構成情報は、プログラマブルコントローラ（４３）により提供され、プログラマブルコントローラはそれ自体、ＬＵＴ機能を組み込む。ＬＵＴ機能のこの中間層は、初期化モード中に行われる設定に基づいて、動作モードで一次ＬＵＴ（４１、４４）の挙動をプログラム可能に制御する手段を提供する。特定の実施形態は、論理回路（３５）も組み込み、論理回路は、一次ＬＵＴのプログラム可能な挙動と共に、加算器、マルチプレクサ、パリティ及び拡張ＬＵＴ及びマルチプレクサの機能を含むにおいて幾つかの共通の論理関数を効率的に実施する手段を提供する。そのようなプログラマブル論理ブロックを含むＦＰＧＡをプログラムする方法及び対応するデータストリームも記載される。
2018538704.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブル論理ブロックであって、
第１のＬＵＴであって、第１の複数のデータ入力、
第２の複数の構成入力、及び
第３の複数の出力
を有する、第１のＬＵＴと、
第２のＬＵＴであって、
第４の複数のデータ入力、
第５の複数の構成入力、及び
第６の複数の出力
を有する、第２のＬＵＴと
を備えるプログラマブル論理ブロックにおいて、
プログラマブルコントローラであって、
前記第２の複数の構成入力及び前記第５の複数の構成入力のそれぞれに接続される出力と、
第７の複数の構成メモリセルと、
第８の複数のデータエントリと
を有するプログラマブルコントローラを更に備え、
前記第２の複数の構成入力及び前記第５の複数の構成入力のそれぞれの値は、所定の様式で、前記第７の複数の構成メモリセルの値と共に、前記第８の複数のデータエントリのそれぞれに存在する値により指示される、ことを特徴とするプログラマブル論理ブロック。
【請求項２】
前記第３の複数の出力及び前記第６の複数の出力のそれぞれに接続される論理回路を更に備え、前記論理回路は、前記出力を結合して、指定されたデータ処理機能を実行するように構成される、請求項１に記載のプログラマブル論理ブロック。
【請求項３】
前記論理回路は、複数のデータ処理機能を実施する構成要素を備えるとともに、前記論理回路の構成要素にそれぞれ結合されて、前記複数のデータ処理機能から前記指定されたデータ処理機能をプログラム可能に選択する１つ又は複数の構成メモリセルを更に備える、請求項２に記載のプログラマブル論理ブロック。
【請求項４】
前記複数のデータ処理機能は、１ビット全加算器の機能を含む、請求項２又は３に記載のプログラマブル論理ブロック。
【請求項５】
前記複数のデータ処理機能は、２ビット全加算器の機能を含む、請求項２〜４のいずれか一項に記載のプログラマブル論理ブロック。
【請求項６】
前記複数のデータ処理機能は、マルチプレクサの機能を含む、請求項２〜５のいずれか一項に記載のプログラマブル論理ブロック。
【請求項７】
前記複数のデータ処理機能は、前記第２の複数よりも大きなデータ入力数を有するルックアップテーブルの機能を含む、請求項２〜６のいずれか一項に記載のプログラマブル論理ブロック。
【請求項８】
前記プログラマブルコントローラは、複数のプログラマブルコントローラＬＵＴを備え、前記プログラマブルコントローラの前記出力のそれぞれは、前記プログラマブルコントローラＬＵＴのうちの１つの各出力に対応し、前記プログラマブルコントローラＬＵＴのそれぞれの前記構成入力は、前記第７の複数の構成メモリセルのそれぞれ１つに結合される、請求項１〜７のいずれか一項に記載のプログラマブル論理ブロック。
【請求項９】
前記プログラマブルコントローラＬＵＴの前記データ入力は、前記プログラマブルコントローラの前記第８の複数のデータエントリに結合される、請求項８に記載のプログラマブル論理ブロック。
【請求項１０】
前記プログラマブルコントローラは、前記第８の複数のデータエントリを復号化するように構成されたデコーダを更に備え、前記プログラマブルコントローラは、複数の切り替えボックスを更に備え、前記切り替えボックスのそれぞれは、前記デコーダの復号化された出力のそれぞれと、前記第５の複数の構成入力のそれぞれ１つとを受信し、それにより、各切り替えボックスは、前記第２の複数の構成入力及び前記第５の複数の構成入力の各々にそれぞれ接続する前記出力のうちの１つに出力値を提供し、前記出力の値は、前記デコーダの前記復号化された出力のそれぞれの論理ＡＮＤと、前記第２の複数の構成入力のそれぞれ１つとの論理ＯＲによる結合に等しい、請求項９に記載のプログラマブル論理ブロック。
【請求項１１】
前記プログラマブルコントローラは、４つのデータエントリを有し、そのうち２つは共通して、前記プログラマブルコントローラＬＵＴのそれぞれの２つのそれぞれのデータ入力に結合され、前記エントリのうちの第３のエントリは共通して、出力が前記第１のＬＵＴの構成入力に対応する前記プログラマブルコントローラＬＵＴのそれぞれの第３の各入力に結合され、前記エントリのうちの第４のエントリは共通して、出力が前記第２のＬＵＴの構成入力に対応する前記プログラマブルコントローラＬＵＴのそれぞれの第３の各入力に結合される、請求項９又は１０に記載のプログラマブル論理ブロック。
【請求項１２】
前記第１のＬＵＴの前記第３の複数の出力のうちの第１の出力は、前記第１の複数のデータ入力のそれぞれで多重化された前記第２の複数の入力のいずれかに対応し、前記第１のＬＵＴの前記第３の複数の出力のうちの第２の出力は、前記第１の複数のデータ入力のサブセットで多重化された前記第２の複数の入力のサブセットのいずれかに対応し、又は前記第２のＬＵＴの前記第６の複数の出力のうちの第１の出力は、前記第４の複数のデータ入力のそれぞれで多重化された前記第５の複数の入力のいずれかに対応し、前記第２のＬＵＴの前記第６の複数の出力のうちの第２の出力は、前記第４の複数のデータ入力のサブセットで多重化された前記第５の複数の入力のサブセットのいずれかに対応する、請求項１〜１１のいずれか一項に記載のプログラマブル論理ブロック。
【請求項１３】
第１のＬＵＴと、
第２のＬＵＴと、
プログラマブルコントローラと
を備えるＦＰＧＡデバイスを操作する方法であって、
前記プログラマブルコントローラに関連付けられた第１の複数のメモリセルの値を設定するステップと、
前記ＦＰＧＡをイネーブルするステップと、
データ入力を前記プログラマブルコントローラに提供するステップであって、それにより、前記プログラマブルコントローラは、前記データ入力及び前記第１の複数のメモリセルの値の関数として、前記第１のＬＵＴ及び前記第２のＬＵＴの構成値を設定する、提供するステップと、
データ入力を前記第１のＬＵＴ及び前記第２のＬＵＴに提供するステップと
を含み、
前記第１のＬＵＴ及び前記第２のＬＵＴは、前記プログラマブルコントローラにより設定される前記構成値の関数として、前記データ入力を提供するステップにおいて提供される前記データ入力のそれぞれに対して各論理演算を実行し、前記論理演算のそれぞれの結果を出力する、方法。
【請求項１４】
前記ＦＰＧＡデバイスは論理回路を更に備え、前記方法は、
前記ＦＰＧＡをイネーブルするステップの前、前記論理回路の前記構成入力に関連付けられた第２の複数のメモリセルの値を設定するステップ
を更に含み、
前記データ入力を前記第１のＬＵＴ及び前記第２のＬＵＴに提供するステップは、データ入力を前記論理回路に提供することを更に含み、
前記論理回路は、前記第２の複数のメモリセルの値の関数として、前記第１のＬＵＴ及び前記第２のＬＵＴの前記出力に対して更なる論理演算を実行し、
前記更なる論理演算の結果を出力する、請求項１３に記載の方法。
【請求項１５】
請求項１３又は１４に記載の方法を実施するように選択された構成値を含む構成データストリーム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル論理デバイスに関し、より詳細にはフィールドプログラマブルゲートアレイデバイスに関する。
【背景技術】
【０００２】
ＦＰＧＡは、プログラマブル論理デバイスの一種である。ＦＰＧＡは一般に、標準プログラマブル論理ブロックに基づき、多数の標準プログラマブル論理ブロックが一緒に配置されて、様々な機能を実施する。
【０００３】
図１は、現況水準に属する論理ブロック例を示す。
【０００４】
図１に示されるように、論理ブロックは、第１のルックアップテーブル（ＬＵＴ）１１及び第２のルックアップテーブル（ＬＵＴ）１４を備える。各ＬＵＴは、２つの７つのマルチプレクサ１１１、１１２、１１３、１１４、１１５、１１６、１１７及び１４１、１４２、１４３、１４４、１４５、１４６、１４７をそれぞれ備える。これらのマルチプレクサは、３行を有するカスケード接続で配置されて、８入力マルチプレクサを構成し、その出力はＬＵＴの出力を構成する。各カスケード配列内のマルチプレクサの第１の行（１１１、１１３、１１５、及び１１７並びに１４１、１４３、１４５、及び１４７）は両方とも、合計で８つの入力を有する。これらの８つの入力は、各ＬＵＴのプログラミング入力をそれぞれ構成する。各行の選択入力は一緒にまとめられて、各ＬＵＴの３つのデータ入力を構成する。従来、この様式での３データ入力を有するＬＵＴは、「ＬＵＴ３」と呼ばれている。示されるように、各ＬＵＴの各入力は、別のＬＵＴの対応する入力に結び付けられ、両入力とも、論理ブロック自体の対応する入力ａ、ｂ、又はｃに接続される。各ＬＵＴ１１及び１４の８つのプログラミング入力は、メモリデバイス１２及び１３にそれぞれ接続される。動作に当たり、これらのメモリデバイス１２、１３は、一定の所定の論理値を各ＬＵＴの８つのプログラミング入力のそれぞれに提供する。各入力において提供される所定の論理値を選択することにより、ＬＵＴの論理挙動は、その３つのデータ入力での任意の二進値に応答し、必要に応じて定義することができる。これは、ＦＰＧＡ技術の土台をなす基本概念である。一般に、各ＬＵＴプログラミング入力での所望の所定の論理値に対応するメモリ１２、１３内の値は、デバイスがオンになる都度、不揮発性メモリ（図示せず）からロードされる。これらの値が、デバイスのハードウェアを変更せずに、任意の所望の機能を提供するように選択可能なこと及び値が、単に不揮発性メモリ内の情報を置換することにより、バグ修正又は機能改善を提供するように変更可能なことは、ＦＰＧＡ技術の主要な利点である。しかし、２つのＬＵＴ３を備える単一の論理ブロックが実施することができる機能が限られ、図１に示される論理ブロックの残りの特徴が、この容量を拡張することが意図されることが理解される。２つのＬＵＴ１１及び１４の出力を接続するマルチプレクサ１６が提供され、論理ブロックの第４の入力ｄにより切り替えされる。２つのＬＵＴの出力がこのようにして結合される場合、２つのＬＵＴ３は論理的に、ＬＵＴ４に等しくなる。それと同時に、２つのＬＵＴ１１及び１４から出力された値を加算するように構成された１ビット全加算器１５が提供される。全加算器１５のキャリーイン接続１５１及びキャリーアウト接続１５２は、近傍の論理ブロック（図示せず）に接続され、それにより、複数の隣接するブロックを使用することにより、任意のサイズの二進値を加算し得る。最後のマルチプレクサ１７が提供されて、全加算器１５の出力及びマルチプレクサ１６の出力のうちの一方を選択し、それに対応して、一方ではＬＵＴ４として挙動する論理ブロック、他方では加算された出力を有する２つのＬＵＴ３を選択する。最後に、マルチプレクサ１７の出力を受信し、クロック入力１８１で検出されるパルスでこれをＤ出力に渡すように構成されるＤフリップフロップ１８が提供される。クロック入力１８１は、複数の隣接する論理ブロックで共有され、したがって、ブロック内で行われる論理処理に関係なく、あらゆるブロックは、所定の調整された時間に出力を生成するように制御することができる。
【０００５】
上述したように、ＦＰＧＡシステムが有用な機能を提供するためには、通常、多数の論理ブロックを関連付ける必要がある。
【０００６】
図２は、現況水準で既知のＦＰＧＡシステム例を概略的に示す。
【０００７】
図２に示されるように、ＦＰＧＡチップ２０は、例えば、上述したような幾つかの論理ブロック２１を備える。チップは、幾つかの入／出力ポート２２も備える。これらの論理ブロック２１及び入／出力ポート２２を接続するのは、幾つかのトラック２４である。これらのトラックの接合点には、及び数のプログラマブル配線エリア２３が提供される。これのプログラマブル配線エリアには、各スイッチに接続されるメモリセル内に記憶される論理値の制御下で、任意の対の交差トラックを選択的に接続することができるスイッチが提供される。メモリユニット１２及び１３のプログラミングについて上述した様式と同様に、スイッチメモリ値は、システムスタートアップ時、不揮発性メモリから設定される。したがって、必要に応じてスイッチメモリ内の値を設定することにより、及び任意の論理ブロックの接続を任意の他の論理ブロック又は任意の入／出力ポート２２に結合することができる。したがって、各論理ブロックの動作を定義するように、メモリユニット１２及び１３を適宜構成し、論理ブロック間に適切な接続を確立するようにスイッチメモリ２３を適宜構成することにより、任意の所望の機能を実施することができる。
【０００８】
上述した構成、極めて大きな多様性を有するが、速度、消費エネルギー、及び表面積に関して幾つかの非効率性も受けることが理解される。これらは幾つかの理由により生じる。第１に、一般に、完全な効率を有する利用可能な回路に所望の機能をマッピングすることは可能ではない−常に幾らかの冗長要素がある。第２に、汎用回路を用いて特定の機能を実施することは多くの場合、その機能を実行するように特に設計された回路、（例えば）使用されるトランジスタ数に関して効率がより低い。
【０００９】
これらの非効率性はある程度、特定用途向け集積回路と比較してＦＰＧＡ技術の土台をなす手法に固有であるが、それにもかかわらず、可能な限りこれらを最小に抑えることが望ましい。
【００１０】
近年、例えば、メモリ、ＤＳＰ、符号化／復号化、又は暗号化の機能を実行するように最適化されたより専用化された回路を同じシステムに包含することがますます一般的になった。例えば、図２に示されるように、ブロック２５は、そのような専門的な目的で確保され得る。これらのＦＰＧＡシステムは、純粋に再構成可能な／用途に依存しないルートから離れる傾向を有し、純粋なＡＳＩＣ解決策の実行により近い実行を提供するために、ＡＳＩＣ技術の特定の側面を採用する。
【００１１】
米国特許第６７９８２４０号明細書、米国特許出願公開第５４１４３７７Ａ号明細書、米国特許出願公開第５８８９４１３Ａ号明細書、及び国際公開第２０１２１２３２４３Ａ１号パンフレットには、この分野での関連手法が記載されている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】米国特許第６７９８２４０号明細書
【特許文献２】米国特許出願公開第５４１４３７７号明細書
【特許文献３】米国特許出願公開第５８８９４１３号明細書
【特許文献４】国際公開第２０１２／１２３２４３号
【発明の概要】
【発明が解決しようとする課題】
【００１３】
ＦＰＧＡシステムの多様性を維持しながら、ＦＰＧＡシステムの効率を改善することが望ましい。
【課題を解決するための手段】
【００１４】
本発明の第１の態様によれば、第１のＬＵＴであって、第１の複数のデータ入力、第２の複数の構成入力、及び第３の複数の出力を有する、第１のＬＵＴと、第２のＬＵＴであって、第４の複数のデータ入力、第５の複数の構成入力、及び第６の複数の出力を有する、第２のＬＵＴとを備えるプログラマブル論理ブロックが提供され、上記プログラマブル論理ブロックは、プログラマブルコントローラを更に備えることを特徴とし、プログラマブルコントローラは、上記第２の複数の構成入力及び上記第５の複数の構成入力のそれぞれに接続される出力と、第７の複数の構成メモリセルと、第８の複数のデータエントリとを有し、上記第２の複数の構成入力及び上記第５の複数の構成入力のそれぞれの値は、所定の様式で、上記第７の複数の構成メモリセルの値と共に、上記第８の複数のデータエントリのそれぞれに存在する値により指示される。
【００１５】
このプログラマブル論理デバイスは、ＦＰＧＡ解決策でのより専用化された回路と比較した場合、ゲートカウント要件及び表面積要件に対して低い影響を有しながら、高度に柔軟であり、広範囲の高度な処理機能を実施可能である。
【００１６】
本発明の第１の態様の展開によれば、本プログラマブル論理ブロックは、上記第３の複数の出力及び上記第６の複数の出力のそれぞれに接続される論理回路を更に備え、上記論理回路は、上記出力を結合して、指定されたデータ処理機能を実行するように構成される。
【００１７】
そのような論理回路を追加することにより、デバイスの機能は更に強化され、一方ではゲートカウント要件と表面積要件との間の妥協、他方では機能を更に改善する。
【００１８】
本発明の第１の態様の更なる展開によれば、本プログラマブル論理ブロック、論理回路は、複数のデータ処理機能を実施する構成要素を備えるとともに、上記論理回路の構成要素にそれぞれ結合されて、上記複数のデータ処理機能から上記指定されたデータ処理機能をプログラム可能に選択する１つ又は複数の構成メモリセルを更に備える。
【００１９】
幾つかの共通する専用機能に向けて論理回路を最適化することにより、デバイスの機能は更に強化され、一方ではゲートカウント要件と表面積要件との間の妥協、他方では機能を更に改善する。
【００２０】
本発明の第１の態様の更なる展開によれば、複数のデータ処理機能は、１ビット全加算器の機能を含む。この共通機能は、多数のＦＰＧＡ実装で有用であり、汎用ＦＰＧＡ実装と比較した場合、ゲートカウント要件及び表面積要件を低減する。
【００２１】
本発明の第１の態様の更なる展開によれば、複数のデータ処理機能は、２ビット全加算器の機能を含む。この共通機能は、多数のＦＰＧＡ実装で有用であり、汎用ＦＰＧＡ実装と比較した場合、ゲートカウント要件及び表面積要件を低減する。
【００２２】
本発明の第１の態様の更なる展開によれば、複数のデータ処理機能は、幅が上記第２の複数よりも大きいマルチプレクサの機能を含む。この共通機能は、多数のＦＰＧＡ実装で有用であり、汎用ＦＰＧＡ実装と比較した場合、ゲートカウント要件及び表面積要件を低減する。
【００２３】
本発明の第１の態様の更なる展開によれば、複数のデータ処理機能は、上記第２の複数よりも大きなデータ入力数をその有するＬＵＴの機能を含む。この共通機能は、多数のＦＰＧＡ実装で有用であり、汎用ＦＰＧＡ実装と比較した場合、ゲートカウント要件及び表面積要件を低減する。
【００２４】
本発明の第１の態様の更なる展開によれば、プログラマブルコントローラは、複数のプログラマブルコントローラＬＵＴを備え、上記プログラマブルコントローラの出力のそれぞれは、上記プログラマブルコントローラＬＵＴのうちの１つの各出力に対応し、上記プログラマブルコントローラＬＵＴのそれぞれの構成入力は、上記第７の複数の構成メモリセルのそれぞれ１つに結合される。このアーキテクチャは、基本的で十分に理解された構成要素ライブラリについて格別の柔軟性を提供する。
【００２５】
本発明の第１の態様の更なる展開によれば、上記プログラマブルコントローラＬＵＴのデータ入力は、上記プログラマブルコントローラの上記第８の複数のデータエントリに結合される。この１対１マッピングは、単純であるが、それでもなお柔軟な構造を提供する。
【００２６】
本発明の第１の態様の更なる展開によれば、プログラマブルコントローラは、第８の複数のデータエントリを復号化するように構成されたデコーダを更に備え、プログラマブルコントローラは、複数の切り替えボックスを更に備え、各切り替えボックスは、上記デコーダの復号化された出力のそれぞれと、上記第５の複数の構成入力のそれぞれ１つとを受信し、それにより、各切り替えボックスは、上記第２の複数の構成入力及び第５の複数の構成入力のそれぞれにそれぞれ接続する出力のうちの１つに出力値を提供し、出力の値は、デコーダの復号化された出力のそれぞれの論理ＡＮＤと、上記第２の複数の構成入力のそれぞれ１つとの論理ＯＲによる結合に等しい。
【００２７】
この構造は、表面積及び標準回路要素の使用に関して最小コストでＬＵＴのプログラミング動作及び論理をサポートする強力で柔軟な様式を提供する。
【００２８】
本発明の第１の態様の更なる展開によれば、プログラマブルコントローラは、４つのデータエントリを有し、そのうち２つは共通して、上記プログラマブルコントローラＬＵＴのそれぞれの２つのそれぞれのデータ入力に結合され、上記エントリのうちの第３のエントリは共通して、出力が上記第１のＬＵＴの構成入力に対応する上記プログラマブルコントローラＬＵＴのそれぞれの第３の各入力に結合され、上記エントリのうちの第４のエントリは共通して、出力が上記第２のＬＵＴの構成入力に対応する上記プログラマブルコントローラＬＵＴのそれぞれの第３の各入力に結合される。このようにして入力を共有することにより、例えば、信号トラックに起因した表面積要件の任意の増大をコントロールしながら、機能の大半を利用可能にする。
【００２９】
本発明の第１の態様の更なる展開によれば、上記第１のＬＵＴの上記第３の複数の出力のうちの第１の出力は、上記第１の複数のデータ入力のそれぞれで多重化された上記第２の複数の入力のいずれかに対応し、上記第１のＬＵＴの上記第３の複数の出力のうちの第２の出力は、上記第１の複数のデータ入力のサブセットで多重化された上記第２の複数の入力のサブセットのいずれかに対応し、又は上記第２のＬＵＴの上記第６の複数の出力のうちの第１の出力は、上記第４の複数のデータ入力のそれぞれで多重化された上記第５の複数の入力のいずれかに対応し、上記第２のＬＵＴの上記第６の複数の出力のうちの第２の出力は、上記第４の複数のデータ入力のサブセットで多重化された上記第５の複数の入力のサブセットのいずれかに対応する。このようにしてＬＵＴの異なる部分にアクセスすることにより、ゲートカウント又は表面積を増大させずに、又は僅かな増大で、デバイスの機能を更に拡張する更なる選択肢が開かれる。
【００３０】
本発明の第２の態様によれば、第１のＬＵＴと、第２のＬＵＴと、プログラマブルコントローラとを備えるＦＰＧＡデバイスを操作する方法が提供される。本方法は、上記プログラマブルコントローラに関連付けられた第１の複数のメモリセルの値を設定するステップと、次に、ＦＰＧＡをイネーブルするステップとを含む。次に、本方法は、データ入力をプログラマブルコントローラに提供することに進み、それにより、プログラマブルコントローラは、データ入力及び第１の複数のメモリセルの値の関数として、第１のＬＵＴ及び第２のＬＵＴの構成値を設定する。さらに、データ入力は、第１のＬＵＴ及び第２のＬＵＴに提供される。第１のＬＵＴ及び第２のＬＵＴは、上記プログラマブルコントローラにより設定される構成値の関数として、データ入力のそれぞれに対して各論理演算を実行し、次に、結果を出力する。
【００３１】
この方法は、全体的に汎用的なＦＰＧＡアーキテクチャと同じほど容易にプログラムされる本発明の高度な特徴を有するＦＰＧＡのプログラミングを提供する。
【００３２】
本発明の第２の態様の展開によれば、本ＦＰＧＡデバイスは論理回路を更に備え、方法は、上記ＦＰＧＡをイネーブルするステップの前、上記論理回路の構成入力に関連付けられた第２の複数のメモリセルの値を設定する更なるステップを含む。データ入力を第１のＬＵＴ及び第２のＬＵＴに提供するステップは、データ入力を上記論理回路に提供することを更に含み、更なるステップにおいて、論理回路は、第２の複数のメモリセルの値の関数として、第１のＬＵＴ及び上記第２のＬＵＴの出力に対して更なる論理演算を実行し、結果を出力する。
【００３３】
この方法は、デバイスが実施し得る演算に関して、更なる柔軟性を提供する。
【００３４】
本発明の第３の態様によれば、本発明の第２の態様の方法を実施するように選択された構成値を含む構成データストリームが提供される。この手段により、本発明によるＦＰＧＡの完全な構成は、純粋にデジタル形式で定義し記憶することができる。
【００３５】
本発明の上記及び他の利点について、添付図面を参照してこれより説明する。
【図面の簡単な説明】
【００３６】
【図１】現況水準に属する論理ブロック例を示す。
【図２】現況水準で既知のＦＰＧＡシステム例を概略的に示す。
【図３】第１の実施形態を示す。
【図４】第２の実施形態を示す。
【図５】図４を参照して説明された実施形態の結合論理４５の更なる詳細を示す。
【図６】図４を参照して説明された実施形態の結合論理４５の更なる詳細を示す。
【図７】図４を参照して説明された実施形態の結合論理４５の更なる詳細を示す。
【図８】図４を参照して説明された実施形態の結合論理４５の更なる詳細を示す。
【図９】図４を参照して説明された実施形態の結合論理４５の更なる詳細を示す。
【図１０】実施形態によるプログラマブルコントローラの実施態様の詳細を示す。
【図１１】更なる実施形態によるプログラマブルコントローラの実施態様の詳細を示す。
【図１２】実施形態によるＦＰＧＡデバイスを操作する方法のステップを示す。
【図１３】実施形態によるＦＰＧＡデバイスを操作する更なる方法のステップを示す。
【発明を実施するための形態】
【００３７】
図３は第１の実施形態を示す。図３に示されるように、１組のデータ入力３１１、１組の構成入力３１２、及び出力３１３を有する第１のルックアップテーブル（ＬＵＴ）３１と、１組のデータ入力３４１、１組の構成入力３４２、及び出力３４３を有する第２のＬＵＴ３４とを備えるプログラマブル論理ブロック３０が提供される。第１のＬＵＴ３１及び第２のＬＵＴ３４は、任意のサイズであり得、異なるサイズであり得る。データ入力３１１、３４１の数及び構成入力３１２、２４２の数は、２つのＬＵＴのサイズに応じて様々である。
【００３８】
プログラマブル論理ブロック３０は、第１のＬＵＴ３１の構成入力３１２のそれぞれ及び第２のＬＵＴ３４の構成入力３４２のそれぞれに接続する出力を有するプログラマブルコントローラ３３を更に備える。プログラマブル論理ブロック３０は、メモリセル（図示せず）にそれぞれ結合される１組の構成入力３３２と、第８の複数のデータエントリとも有し、第８の複数のデータエントリの幾つか又は全ては、後述する結合論理３５と共有される共通幅入力接続３３３であり得る。構成入力３３２及びデータ入力３３１の数は、プログラマブルコントローラ３３の特定の構成と、幾つかの非限定的な例が以下の実施形態において記載されるプログラマブル論理ブロック３０により実施される機能とに依存する。
【００３９】
したがって、例えば、図１を参照して説明した従来の論理ブロックでは、任意の所与のブロックの機能は、メモリ１２、１３の値が設定されるスタートアップ時に固定されるが、本実施形態の論理ブロックの機能は、プログラマブルコントローラ３３の入力ピンで受信される値に応じて、幾つかの指定される選択肢のいずれかにリセットすることができる。これらの選択肢は、更に後述するように、論理ブロック３５によりイネーブルされる拡張機能に起因して、指定されるサイズが何であれ、そのサイズの標準ＬＵＴの基本性能を超えて拡張し得る。
【００４０】
したがって、第１の複数のデータ入力、第２の複数の構成入力、及び第３の複数の出力を有する第１のＬＵＴと、第４の複数のデータ入力、第５の複数の構成入力、及び第６の複数の出力を有する第２のＬＵＴとを備えるプログラマブル論理ブロックが開示され、上記プログラマブル論理ブロックは、を更に備えることを特徴とする。
【００４１】
この実施形態では、第１及び第２のＬＵＴは両方ともＬＵＴ３であり、８つの構成入力及び３つのデータ入力を有するが、任意のサイズ及び２つの異なるサイズのＬＵＴを使用し得ることが理解される。
【００４２】
プログラマブルコントローラが更に提供され、プログラマブルコントローラは、上記第２の複数の構成入力及び上記第５の複数の構成入力のそれぞれに接続される出力と、第７の複数の構成メモリセルと、第８の複数のデータエントリとを有し、第２の複数の構成入力及び第５の複数の構成入力のそれぞれの値は、所定の様式で、上記第７の複数の構成メモリセルの値と共に、第８の複数のデータエントリのそれぞれに存在する値により指示される。
【００４３】
この実施形態によれば、プログラマブル論理ブロックは、第１のＬＵＴ３１からの上記組の出力３１３及び第２のＬＵＴ３４からの１組の出力３４３のそれぞれに接続される結合論理３５を更に備え、上記結合論理３５は、例えば、後述するように、上記データ入力３５２での値に応答して、出力３１３、３４３を結合し、指定されたデータ処理機能を実施するように構成される。
【００４４】
より詳細に後述するように、プログラマブル論理ブロックが任意選択的であることが理解される。
【００４５】
この場合、プログラマブル論理ブロックは、第３の複数の出力及び上記第６の複数の出力のそれぞれに接続される論理回路を更に備え、この論理回路は、上記出力を結合して、指定されたデータ処理機能を実施するように構成される。
【００４６】
特定の実施形態により実施し得るデータ処理機能の幾つかの例が続く。
【００４７】
論理関数
１ビット全加算器：値Ａ、Ｂ、及びＣｉｎは、指定された各データ入力３４１において受信され、出力３５１は、以下の真理値表に従ってＣｏｕｔ及びＳの値をキャリーする。
【００４８】
【表１】
2018538704.tif 000003
【００４９】
２ビット全加算器、値Ａ、Ｂ、及びＣｉｎは、指定された各データ入力３１１、３４１において受信され、出力３５１は、以下の真理値表に従ってＣｏｕｔ及びＳの値をキャリーする。
【００５０】
【表２】
2018538704.tif 000004
【００５１】
【表３】
2018538704.tif 000005
【００５２】
全幅マルチプレクサ：第１のＬＵＴ３１及び第２のＬＵＴ３４は、マルチプレクサとして構成され、出力は一緒に多重化され、それにより、任意の入力３１１、３４１上の値を選択し、出力３５１に提供することができる。これに基づいて、システムは、第１のＬＵＴ又は第２のＬＵＴのうちの一方のデータ入力の数よりも多い幅を有するマルチプレクサを含め、任意のサイズのマルチプレクサを実施し得る。
【００５３】
一致の判断：第１のＬＵＴ３１及び第２のＬＵＴ３４は、ＸＮＯＲとして構成され、出力は更なる論理を用いて結合され、それにより、任意の入力３１１、３４１上の値を選択し、出力３５１に提供することができる。したがって、システムは、第１のＬＵＴのデータ入力の数以下の幾つかのビットを有する第１の二進数が、第２のＬＵＴのデータ入力の数以下の幾つかのビットを有する第２の二進数と同一であるか否かを判断する機能を提供し得る。
【００５４】
コンパレータ：第１のＬＵＴ３４はＸＮＯＲとして構成され、その出力は、結合論理により入力と一緒に処理され、それにより、出力３５１上の値は、以下の真理値表に示されるように、一方の入力が他方の入力よりも大きいか否かを示す。
【００５５】
【表４】
2018538704.tif 000006
【００５６】
したがって、システムは、第１のＬＵＴのデータ入力の数以下のビット数を有する第１の二進数が、第１の場合、第２の二進数以上であるか否か、又は第２の場合、上記第２の二進数未満であるか否かを判断する機能を提供することができる。
【００５７】
拡張ＬＵＴ：プログラマブルコントローラはそれ自体、ＬＵＴ機能を実施する。ＬＵＴ４１の入力に加えて、プログラマブルコントローラの入力を使用することにより、より大きなＬＵＴの機能を提供することが可能。この拡大は、一方のＬＵＴ又は他方のＬＵＴに起因し得るか、又は間で分割し得るか、又は共通の入力として両ＬＵＴで共有し得る。この手段により、論理ブロックは、基本の２つのＬＵＴ３の構成に加えて、以下のような機能を提供することができる。
【００５８】
【表５】
2018538704.tif 000007
【００５９】
減算等の追加の機能も、ＬＵＴを使用して実施可能な任意の論理と同様に実施し得る。
【００６０】
【表６】
2018538704.tif 000008
【００６１】
これらの論理関数が単なる例であり、有利なことに、各構成メモリの制御下で、一方又は両方のＬＵＴと適する結合論理及びプログラマブルコントローラとの組合せを用いて、多くの他の論理関数を実施し得ることが理解される。記載される手法は、例えば、図１に関して説明された従来の論理ブロックを用いて達成し得る性能と比較して、実施形態によるプログラマブル論理ブロックを組み込んだＦＰＧＡにマッピングされるアプリケーションのタイミング性能の改善に繋がることができる。
【００６２】
記載される手法は、例えば、図１に関して説明された従来の論理ブロックを用いて達成し得る性能と比較して、実施形態によるプログラマブル論理ブロックを組み込んだＦＰＧＡで実施される複雑な機能に対して面積効率の改善に繋がることができる。
【００６３】
記載される手法は、例えば、図１に関して説明された従来の論理ブロックを用いて達成し得る性能と比較して、実施形態によるプログラマブル論理ブロックを組み込んだＦＰＧＡで実施される機能で使用されるリソース数がより少ないため、電力最適化の改善に繋がることができる。
【００６４】
一般に、記載される実施形態に基づいて達成されるＡＳＩＣとＦＰＧＡとの間の面積／タイミングギャップの低減及びマッピング効率の改善は、例えば、図１に関して説明された従来の論理ブロックを用いて達成し得る性能と比較して、コスト低減及び性能改善の両方に繋がる。
【００６５】
図４は、第２の実施形態を示す。図４の実施形態は、第１及び第２のＬＵＴが２つの従来のＬＵＴ３である図３の実施形態の展開である。図４に示されるように、定義により、３つ１組のデータ入力４１１、４１２、４１３、それに対応して２＾３＝８個の構成入力４１４、及び１つの出力４１６を有する第１のＬＵＴ３  ４１と、定義により、３つ１組のデータ入力４４１、４４２、４４３、それに対応して２＾３＝８個の構成入力４４４、及び１つの出力４４６第２のＬＵＴ３  ４４とを備えるプログラマブル論理ブロック４０が提供される。第１のＬＵＴ４１は、図１に関して説明されたＬＵＴ３  １１及び１４と同様に、２つの７つの入力マルチプレクサを備えるものとして示されている。これらのマルチプレクサは、３行を有するカスケード接続で配置されて、８入力マルチプレクサを構成する。しかし、図１のＬＵＴ３とは異なり、図４のＬＵＴ３  ４１及び４４はそれぞれ、各ＬＵＴ４１及び４４のマルチプレクサの第２の行を構成する２つの２方向マルチプレクサのうちの一方の出力にそれぞれ結合される追加の出力４１５及び４４５をそれぞれ備える。後述するように、この追加の特徴は、回路の幾つかの追加の論理関数の実施に有用であることができる。
【００６６】
プログラマブル論理ブロック４０は、第１のＬＵＴ４１の構成入力４１４のそれぞれ及び第２のＬＵＴ４４の構成入力４４４のそれぞれに接続する出力を有するプログラマブルコントローラ４３を更に備える。プログラマブル論理ブロック４０は、メモリセル（図示せず）にそれぞれ結合される１組の構成入力４３２と、複数のデータエントリ４３３とも有する。データ入力は、後述する結合論理４５と共有される１つ又は複数の入力接続４５２から受信することもできる。構成入力４３２及びデータ入力４３３の数は、プログラマブルコントローラ４３の特定の構成と、幾つかの非限定的な例が以下の実施形態において記載されるプログラマブル論理ブロック４０により実施される機能とに依存する。
【００６７】
この実施形態によれば、プログラマブル論理ブロックは、第１のＬＵＴ４１からの上記１組の出力４１５、４１６及び第２のＬＵＴ４４からの１組の出力４４５、４４６のそれぞれに接続される結合論理４５を更に備え、上記結合論理４５は、例えば、後述するように、上記データ入力４５２での１つ又は複数の値に応答して、出力４１５、４１６、４４５、４４６を結合し、指定されたデータ処理機能を実施するように構成される。
【００６８】
プログラマブル論理ブロックのデータエントリ４３３のそれぞれに存在する値は、プログラマブルコントローラ４３の各構成入力４３２の値の関数として、第１のＬＵＴ４１の８つの構成入力４１４のそれぞれの値及び第２のＬＵＴ４４の８つの構成入力４４４のそれぞれの値を指示する。
【００６９】
本発明のこの実施形態によれば、プログラマブル論理ブロックは、第１のＬＵＴ４１の出力４１５、４１６のそれぞれ及び第２のＬＵＴ４４の出力４４５、４４６のそれぞれに接続され、出力４５１を有する結合論理４５を更に備え、結合論理４５は、例えば、上記の第１の実施形態に関して列挙され、以下に更に詳細に説明されるように、データ入力４５２上の値に応答して、第１のＬＵＴ４１及び第２のＬＵＴ４４の出力を結合して、指定されたデータ処理機能を実施するように構成される。
【００７０】
結合論理４５の特定の内容及び構成が、実施される特定の組の論理関数に応じて様々であることが理解される。例として、幾つかの可能な構成が、以下の実施形態に記載される。簡明化するために、これらの例は、図４の実施形態の状況で説明されるが、これらの実施態様が直接、任意の他の実施形態に適合可能なことが理解される。
【００７１】
さらに、結合論理ブロック４５の使用に頼らずに、特定の機能が実施可能なことが理解される。例えば、図４に示される構成は、単に、図１１を参照して以下に詳細に説明されるようなプログラマブルコントローラを適宜構成することにより、２つの共通入力を有する２つの６入力ルックアップテーブル（ＬＵＴ６）を実施するように構成することができる。
【００７２】
図５は、図４を参照して説明した実施形態の結合論理４５の更なる詳細を示す。図５の実施形態では、結合論理は、１ビット加算器を実施するように構成される。図５に示されるように、ＬＵＴ４１及び４４並びにプログラマブルコントローラ４３は、図４を参照して説明されるように構成される。結合論理５５は２方向マルチプレクサ５５１を備え、このマルチプレクサは、データ入力を第２のＬＵＴ４４の入力４４２及び４４３（ＬＵＴのマルチプレクサアレイの２行目及び最後の行のデータ入力にそれぞれ対応する）から受信する。出力４４５は、上述したように、２行目のマルチプレクサの一群の出力に対応し）、切り替え信号をマルチプレクサ５５１に提供して、入力４４３及び４４２上の２つの入力値のうち一方を選択する。ＬＵＴ４４の８つの構成入力４４４の値は、順に０１１０１００１に設定される。この構成では、入力４４１はＡ加算器入力に対応し、入力４４２は加算器入力Ｂに対応し、入力４４３は、上記加算器真理値表を参照して説明するように、入力でのキャリーインに対応する。したがって、ＬＵＴ４４は、以下のようにＸＯＲ関数を実施し、したがって、加算器出力４４６のＳ出力を提供する。ＬＵＴの２行目の出力４４５は、必要とされるキャリーアウト値に対応する入力４４２、４４３からの値を選択するように、マルチプレクサ５５１を切り替える。
【００７３】
図６は、図４を参照して説明した実施形態の結合論理４５の更なる詳細を示す。図６の実施形態では、結合論理は、２ビット加算器を実施するように構成される。図６に示されるように、ＬＵＴ４１及び４４並びにプログラマブルコントローラ４３は、図４を参照して説明されるように構成される。結合論理６５は２方向マルチプレクサ６５１を備え、このマルチプレクサは、データ入力を第２のＬＵＴ４４の入力４４２及び４４３（ＬＵＴのマルチプレクサアレイの２行目及び最後の行のデータ入力にそれぞれ対応する）から受信する。結合論理６５は２方向マルチプレクサ６５２を更に備え、このマルチプレクサは、データ入力Ｃｉｎ及びＣｉｎ０を受信し、ＬＵＴ４４の入力ピン４４３での値を設定するように切り替えられる。マルチプレクサ６５２は、メモリセル６５６に記憶される値により切り替えられ、メモリセルに記憶される値は、システム初期化時に、ＬＵＴ構成セル又はプログラマブルコントローラの構成セルと同じように設定される。値Ｃｉｎ及びＣｉｎ０は、キャリーチェインパスの一部を形成する更なるＭＬＵＴ（図示せず）Ｃｏｕｔから受信される。このパスは、ＦＰＧＡプログラマブル配線特徴を使用して作成されていてもよく、又は専用キャリーチェイン配線の一部であってもよい。結合論理６５は、２方向マルチプレクサ６５３を更に備え、このマルチプレクサは、データ入力をマルチプレクサ６５１の出力及び第１のＬＵＴの第２の入力４１２から受信する。マルチプレクサ６５３は、ＬＵＴ４１を構成するマルチプレクサアレイの２行目におけるマルチプレクサ出力の群の出力に対応する出力４１５により、切り替えられる。マルチプレクサ６５３の出力は、２ビット加算器の出力Ｃｏｕｔを提供する。結合論理６５は、２方向マルチプレクサ６５４を更に備え、このマルチプレクサは、データ入力をマルチプレクサ６５３及びマルチプレクサ６５１の出力から受信する。マルチプレクサ６５４は、メモリセル６５５に記憶される値により切り替えられ、メモリセルに記憶される値は、システム初期化時、ＬＵＴ構成セル又はプログマブルコントローラの構成セルと同じように設定される。マルチプレクサ６５３の出力は、２ビット加算器の出力Ｃｏｕｔ＿Ｌを提供する。出力４４５は、上述したように、２行目のマルチプレクサの一群の出力に対応し）、切り替え信号をマルチプレクサ６５１に提供して、入力４４３及び４４２上の２つの入力のうち一方を選択する。図４のＬＵＴ４４の８つの構成入力４４４の値及びＬＵＴ４１の入力４１４の値は、順に０１１０１００１に設定される。この構成では、入力４４１はＡ０加算器入力に対応し、入力４１３はＡ１加算器入力に対応し、入力４４２は加算器入力Ｂ０に対応し、入力４１２は加算器入力Ｂ１に対応する。入力Ｃｉｎ及びＣｉｎ０は直接、入力４５２を介してマルチプレクサ６５２に提供される。
【００７４】
ＬＵＴ４４及び４１はそれぞれ、以下のようにＸＯＲ関数を実施し、したがって、加算器出力４４６のＳ出力を提供する。
【００７５】
これらの同じ組の構成要素が、単に、ＬＵＴ４４の８つの構成入力４４４の値を順に、上述したような０１１０１００１の代わりに１００１０１１０に設定することによって、減算器特徴の実施に使用可能なことが理解される。
【００７６】
これらの同じ組の構成要素が、コンパレータ特徴の実施に使用可能なことが理解される。この場合、ＬＵＴはＸＮＯＲゲートとして構成され、出力４１６及び４４６での値を無視することができる。上述したように、出力４１５、４４５を使用して、Ｂｉｎｐｕｔとキャリー値とを切り替え、マルチプレクサ６５４の出力は、ＢがＡ以上である場合、１である。この段落で説明されるように、２ビットコンパレータが実施されるが、１つのＬＵＴを使用して、１ビットコンパレータを実施することもでき、他方のＬＵＴを他の特徴の実施のために解放されたままにすることが更に理解される。
【００７７】
図７は、図４を参照して説明した実施形態の結合論理４５の更なる詳細を示す。図７の実施形態では、結合論理は、８ビット加算器を実施するように構成される。図７に示されるように、ＬＵＴ４１及び４４並びにプログラマブルコントローラ４３は、図４を参照して説明されるように構成される。結合論理６５はＡＮＤゲート７５１を備え、データ入力Ｓｅｌ０及びＳｅｌ１を外部入力４５２のうちの２つから受信し、外部入力４５２は、プログラマブルコントローラ４３の２つのデータ入力にも結合される。結合論理６５は、一方の入力で第１のＬＵＴ３  ４１からの出力を受信するとともに、他方の入力で外部入力４５２の更なる１つから出力を受信するマルチプレクサ７５２を備える。このマルチプレクサ７５２は、ＡＮＤゲート７５１から出力される値により切り替えられる。結合論理６５は、一方の入力で第２のＬＵＴ３  ４４からの出力４４６を受信するとともに、他方の入力で外部入力４５２のうちの更なる１つからの出力を受信するマルチプレクサ７５３を備える。このマルチプレクサ７５３は、ＡＮＤゲート７５１から出力される値により切り替えられる。結合論理６５は、マルチプレクサ７５２及び７５３から出力を受信し、外部入力４５２のうちの更なる１つｓｅｌ２により、切り替えられる更なるマルチプレクサ７５４を備える。マルチプレクサ７５４の出力は、結合論理ブロック７５のデータ入力に提供される。この実施形態では、プログラマブルは、以下の真理値表に基づいて、入力Ｓｅｌ０及びＳｅｌ１に基づいてＬＵＴ４１及び４３の構成を設定する。
【００７８】
【表７】
2018538704.tif 000009
【００７９】
したがって、記載される構成が８ビットマルチプレクサの機能を提供するような、３つの選択入力Ｓｅｌ０、Ｓｅｌ１、及びＳｅｌ２を使用して選択することができる８つのデータ入力ａ、ｂ、ｃ、ｄ、ｅ、ｆ、ｇ、ｈを有するデバイスが提供される。
【００８０】
図８は、図４を参照して説明した実施形態の結合論理４５の更なる詳細を示す。図８の実施形態では、結合論理は、２つの４ビット数を比較し、２つが等しいか否かを判断するように構成される一致回路を実施するように構成される。図８に示されるように、ＬＵＴ４１及び４４並びにプログラマブルコントローラ４３は、図４を参照して説明されるように構成される。結合論理８５はＸＮＯＲゲート８５１を備え、ＸＮＯＲゲート８５１は、データ入力を外部入力４５２のうちの２つから受信する。結合論理８５は、外部入力４５２のうちの更なる２つからデータ入力を受信する更なるＸＮＯＲゲート８５２を備える。結合論理８５は、ＬＵＴを構成するマルチプレクサのアレイの２行目において値を出力するマルチプレクサの一群に対応する第２のＬＵＴ３  ４４の出力４４５と、ＸＮＯＲ８５１の出力とからデータ入力を受信する２つの入力ＡＮＤゲート８５３を備える。結合論理８５は、ＬＵＴを構成するマルチプレクサのアレイの２行目において値を出力するマルチプレクサの一群に対応する第１のＬＵＴ３  ４１の出力４１５と、ＸＮＯＲゲート８５２の出力と、ＡＮＤゲート８５３の出力とからデータ入力を受信する３つの入力ＡＮＤゲート８５４を備える。２つのＬＵＴ３  ４１及び４４は、ＸＮＯＲ真理値表により指示されるように、２行目の出力４１５及び４４５に対応する２行目のマルチプレクサに供給される２つの１行目のマルチプレクサに対応する４つの構成入力をそれぞれ１００１に設定することにより、プログラマブルコントローラによりＸＮＯＲとして構成される。
【００８１】
【表８】
2018538704.tif 000010
【００８２】
各ＬＵＴ４１、４４が、２ビット一致回路として別個にプログラム可能であり、潜在的に、他方のＬＵＴを他の用途に利用できる状態を保つことが理解される。他の回路要素がない場合、ＡＮＤゲート８５３及び８５４は、１つの４入力ＡＮＤゲートに論理的に等しいが、これは、示されるように、何故ＡＮＤゲート８５３及び８５４が別個に示されるのかの理由である。
【００８３】
したがって、動作にあたり、この実施形態によれば、ビット単位の比較が、各ビットに２入力ＸＮＯＲを用いて実行され、全てのビットが等しい場合、２つの４ビット値は等しく、結合論理８５の出力におけるＡＮＤ８５４により１が出力されるように、ＡＮＤゲートと結合される結果。
【００８４】
図９は、図４を参照して説明した実施形態の結合論理４５の更なる詳細を示す。図９の実施形態では、結合論理は、図３〜図８を参照して上述した機能のいずれかを実施するように構成される。示されるように、均等な論理構成要素が提供されて、上述した様々な機能を実施するとともに、所望の機能の選択をサポートする追加の更なる論理及び必要な場合には冗長構成要素の除外を実施する。具体的には、この実施形態の結合論理９５は、全体的にキャリー伝搬機能に対応する一群の構成要素９５１ｘ、２つのＬＵＴの多重化に対応する一群の構成要素９５２ｘ、加算機能及び比較機能に関連する一群の構成要素９５３ｘ、並びに機能選択に関連する一群９５４ｘを備える。更に具体的には、全体的にキャリー伝搬機能に対応する一群の構成要素９５１ｘは、２つの入力ｆ及びＣｉｎをデータ入力４５２から受信し、その出力を第２のＬＵＴ４４の第３のデータ入力４４３に提供するマルチプレクサ９５１１と、入力をマルチプレクサ９５１１及び第２のＬＵＴ４４の第２のデータ入力４４２から受信し、ＬＵＴを構成するマルチプレクサのアレイの２行目におけるマルチプレクサの出力に対応する第２のＬＵＴ４４の出力４４５により切り替えられるマルチプレクサ９５１２と、入力ｈをデータ入力４１２から受信するとともに、マルチプレクサ９５１２の出力を受信するマルチプレクサ９５１３と、入力ｉをデータ入力４５２から受信するとともに、マルチプレクサ９５１２の出力を受信し、その出力を第２のＬＵＴ４１の第３のデータ入力４１１に提供するマルチプレクサ９５１４とを備える。２つのＬＵＴの多重化に対応する一群の構成要素９５２ｘは、プログラマブルコントローラ４３の２つのデータ入力４５２に対応する入力ａ及びｂを受信し、その出力を第１の２入力マルチプレクサ９５２２及び第２の２入力マルチプレクサ９５２３に提供するＡＮＤゲート９５２１を備える。マルチプレクサ９５２２は、データ入力ｊをデータ入力４５２から受信するとともに、第１のＬＵＴ４１の出力４１６を受信し、マルチプレクサ９５２３は、データ入力ｋをデータ入力４５２から受信するとともに、第１のＬＵＴ４４の出力４４６を受信する。マルチプレクサ９５２２及び９５２３は、出力を更なる２入力マルチプレクサ９５２４に提供し、マルチプレクサ９５２４は、データ入力４５２からのデータ入力ｃにより切り替えられる。加算一致機能に関連する一群の構成要素９５３ｘは、２つの入力ｊ及びｆをデータ入力４５２から受信する第１のＸＮＯＲゲート９５３１と、２つの入力ｌ及びｋをデータ入力４５２から受信する第２のＸＮＯＲゲート９５３３とを備える。この群は、入力をＸＮＯＲ９５３１から受信するとともに、ＬＵＴ４４の出力４４５を受信するＡＮＤゲート９５３１と、入力をＡＮＤゲート９５３２及びＸＮＯＲゲート９５３３から受信するとともに、ＬＵＴ４１の出力４１５を受信する３入力ＡＮＤゲート９５３４とを更に備える。機能選択に関連する一群９５４ｘは、入力をＡＮＤゲート９５３４及び９５３２から受信する２入力マルチプレクサ９５４１と、入力をマルチプレクサ９５４１、マルチプレクサ９５１３、マルチプレクサ９５１２、及びマルチプレクサ９５２４から受信する４入力マルチプレクサ９５４２を備える。マルチプレクサ９５１１、９５４１、９５４２、９５１４は、システム初期化時、ＬＵＴ構成セル又はプログラマブルコントローラの構成セルと同じように設定される各メモリセル（図示せず）に記憶される値により切り替えられる。
【００８５】
異なる実施形態の比較を容易にするために、一方では、図９に関して説明した要素と、他方ではその他の実施形態に関して説明された要素との一致は、以下のように記載することができる。
【００８６】
【表９】
2018538704.tif 000011
【００８７】
したがって、プログラマブル論理ブロックは、複数のデータ処理機能を実施する構成要素を備える論理回路を備え得るとともに、上記論理回路の構成要素にそれぞれ結合されて、上記複数のデータ処理機能から上記指定されたデータ処理機能をプログラム可能に選択する１つ又は複数のメモリセルを更に備え得る。
【００８８】
図９の実施形態並びに図５、図６、及び図８の実施形態では、ＬＵＴ４１及び４４が２つの出力を有し、第１のＬＵＴ４１の出力のうちの第１の出力４１６が、データ入力４１１、４１２、４１３のそれぞれにより多重化される入力４１４のいずれかに対応し、出力のうちの第２の出力４１５が、データ入力４１１、４１２、４１３のサブセットにより多重化される入力４１４のサブセットのいずれかに対応することに留意する。特に示されるように、第１のＬＵＴ４１の８つの構成入力のうちの４つは、ＬＵＴを構成するマルチプレクサの１行目及び２行目に対応する２つのデータエントリ４１２及び４１３により多重化される。
【００８９】
第２のＬＵＴ４４に関しても同様に、出力のうちの第１の出力は、データ入力４４１、４４２、４４３のそれぞれにより多重化される入力４４４のいずれかに対応し、第２のＬＵＴ４４の出力のうちの第２の出力は、データ入力のサブセットにより多重化される入力のサブセットのいずれかに対応する。特に示されるように、第２のＬＵＴ４４の８つの構成入力のうちの４つは、ＬＵＴを構成するマルチプレクサの１行目及び２行目に対応する２つのデータエントリ４４１及び４４２により多重化される。
【００９０】
ＬＵＴ４１、４４のいずれか一方又は両方に関して、多重化される構成入力のサブセット及び多重化される構成入力のサブセットの選択に使用されるデータエントリのサブセットは、実施される機能に応じて様々であり得、２つのＬＵＴ間で異なり得る。
【００９１】
上述した機能の代替の回路及びＬＵＴにより提供される機能を補足するために実施し得る追加の機能の両方に関して、結合論理に無限の可能な代替の構成があることが理解される。一方、幾つかの機能は省略又は置換し得る。
【００９２】
図１０は、実施形態によるプログラマブルコントローラの実施態様の詳細を示す。図１０に示されるように、プログラマブルコントローラは、４つの入力４３１／４３２を２組の８出力に復号化するデコーダ４３４を備える。これらの２組の信号は、８つの切り替えボックス４３６、４３７のそれぞれに通される。８つの切り替えボックス４３６、４３７の内部は同一であり、本実施形態による切り替えボックス４３７の内部構造の詳細は、更に詳細に示される。これらの切り替えボックスのそれぞれは、８つの２群になった１６のＡＮＤゲート４３７１を備える。所与の８つ１群内の各ＡＮＤゲートは、その出力を２つのＯＲゲート４３７２のうちの一方に供給し、２つのＯＲゲート４３７２はそれぞれ、切り替えボックスの２つの出力のうちの一方を提供する。これらのＡＮＤゲートのそれぞれは、第２の入力をメモリブロック４３５内の各メモリセルから受信する。この手段により、プログラマブルコントローラは、入力ピン４３１及び４３２での対応する予め定義される信号に応答して、ＬＵＴ４１及び４４の構成に、１６の予め定義される出力パターンのいずれか１つを生成することが可能である。
【００９３】
プログラマブルコントローラの記載されるアーキテクチャが、異なるサイズのＬＵＴのプログラミングに応じるようにスケーリング可能なことが理解される。
【００９４】
幾つかの場合、プログラミング論理ブロックにより実施される論理関数に応じて、特別な役割を入力ピン４３１、４３２の幾つか又は全てに割り当てることが望ましいことがあり、次にそれが、例えば、プログラミング論理ブロックが８ビットマルチプレクサを実施し、プログラマブルコントローラ４３の２つの入力４３２が多重化入力として使用され、２つのＬＵＴ４１及び４４がＸＮＯＲとして構成される図７を参照して説明した実施形態の場合と同様に、コントローラの出力が設定される値を制約し得ることが理解される。
【００９５】
したがって、プログラミングコントローラは、第８の複数のデータエントリ４３１／４３２を復号化するように構成されるデコーダ４３４を備える。プログラマブルコントローラは、複数の切り替えボックス４３６、４３７を更に備え、上記切り替えボックスのそれぞれは、上記デコーダの復号化出力のそれぞれと、上記第５の複数の構成入力のそれぞれ１つを受信し、それにより、各切り替えボックスは、第２の複数の構成入力のそれぞれ及び上記第５の複数の構成入力にそれぞれ接続する出力の１つに出力値を提供し、出力４１４、４４４の値は、上記デコーダの上記復号化出力のそれぞれの論理ＡＮＤと、上記第２の複数の構成入力のそれぞれ１つとの論理ＯＲによる結合に等しい。
【００９６】
示される特定の実施形態では、切り替えボックスの数は、第８の複数のデータエントリの数の２乗〜１／２乗に等しく、第８の複数のデータエントリの数は、示されるように４つであり、それにより、８つの切り替えボックスがあり、各切り替えボックスは、１６の構成値及び１６の構成値を受信する。データ値の数、構成値の数、及び切り替えボックスの数の多くの様々な組合せが、制御されるＬＵＴ４１、４４の数及びサイズ並びに実施されるプログラマブル機能の数及び複雑性に応じて考案可能なことが理解される。
【００９７】
同等の機能を提供するプログラマブルコントローラの多くの他のアーキテクチャを考案可能なことが理解される。
【００９８】
図１１は、更なる実施形態によるプログラマブルコントローラの実施態様の詳細を示す。図１１の実施態様の機能が図１０のものと同一であることが理解される。
【００９９】
図１１に示されるように、プログラマブルコントローラ４３は、８つのＬＵＴ３の２つのバンク４３８及び４３９を備え、各ＬＵＴ３はそれぞれ、構成メモリ４３００の各セルに結合される８つの構成入力を有する。
【０１００】
第１のＬＵＴバンク４３８内の各ＬＵＴは、バンク内の各ＬＵＴの３つの入力に共通して接続される３つの入力線４３８１、４３８２、４３８３を有する。これらの３つの入力線は、プログラマブルコントローラ４３の入力ｋ、ａ、及びｂに対応する。第２のＬＵＴバンク４３９内の各ＬＵＴは、バンク内の各ＬＵＴの３つの入力に共通して接続される３つの入力線４３９１、４３９２、４３９３を有する。これらの３つの入力線は、プログラマブルコントローラ４３の入力ｊ、ａ、及びｂに対応する。したがって、入力ａ及びｂは、２つのバンク４３８、４３９を構成する１６のＬＵＴ３のそれぞれで共通である。
【０１０１】
第１のＬＵＴバンク４３８内の各ＬＵＴは、出力線４３８４を有する。その結果、８つの出力線は、ＬＵＴ４１の構成入力を提供する線４１４に対応する。第２のＬＵＴバンク４３９内の各ＬＵＴは、出力線４３９４を有する。その結果、８つの出力線は、ＬＵＴ４４の構成入力を提供する線４４４に対応する。
【０１０２】
したがって、動作にあたり、プログラマブルコントローラ４３により実施される機能は、構成メモリ４３００内の値を設定することにより、広範囲の自由度で定義することができる。好ましい実施形態によれば、これらの値は、システム初期化時に設定される。
【０１０３】
したがって、プログラマブルコントローラは、複数のプログラマブルコントローラＬＵＴを備えると見なし得、プログラマブルコントローラの各出力４１４は、上記プログラマブルコントローラＬＵＴの１つの各出力に対応し、各プログラマブルコントローラＬＵＴの構成入力は、構成メモリセル４３００のそれぞれ１つに結合される。
【０１０４】
さらに、プログラマブルコントローラＬＵＴのデータ入力は、上記プログラマブルコントローラのデータエントリに結合し得る。
【０１０５】
示されるように、プログラマブルコントローラは更に、４つのデータエントリｋ、ａ、ｂ、ｊを有し、そのうちの２つ（ａ，ｂ）は共通して、プログラマブルコントローラＬＵＴの２つの各データ入力に結合され、第３のエントリ（ｋ）は共通して、出力が上記第１のＬＵＴ４１の構成入力に対応する各プログラマブルコントローラＬＵＴの第３の各入力に結合され、第４のエントリ（ｊ）は共通して、出力が第２のＬＵＴ４４の構成入力に対応する各プログラマブルコントローラＬＵＴの第３の各入力に結合される。
【０１０６】
この手法が、必要に応じて、プログラマブルコントローラの入力の数及び実施する機能の厳密な性質に適合されることが理解される。
【０１０７】
図３〜図９に関して説明した実施形態は、様々な構成の論理４５に関連してプログラマブルコントローラ４３を提示したが、プログラマブルコントローラ４３が、幾つかの有用な特徴を提供することができ、サポートする論理４５がごくわずかであるか、又はないことが理解される。
【０１０８】
例えば、プログラマブルコントローラ４３は、ＬＵＴ４１及び４４と一緒に、ＬＵＴ４１、４４の入力を使用することに加えて、プログラマブルコントローラの入力ｋ、ａ、ｂ、及びｊを使用することにより、システムのＬＵＴ性能を拡大して、より大きなＬＵＴの機能を提供するように構成することができる。この拡大は、一方のＬＵＴ又は他方のＬＵＴに起因し得るか、又は間で分割し得るか、又は共通の入力として両ＬＵＴで共有し得る。この手段により、論理ブロックは、基本の２つのＬＵＴ３の構成に加えて、以下のような機能を提供することができる。
【０１０９】
【表１０】
2018538704.tif 000012
【０１１０】
図１２は、実施形態によるＦＰＧＡデバイスを操作する方法のステップを示す。
【０１１１】
この方法は、例えば、上述したように、複数のプログラマブル論理ブロックを備えるＦＰＧＡを操作することが意図される。示されるように、方法は、ステップ１２０１において開始され、それから、ステップ１２０３において、プログラマブルコントローラに関連付けられた第１の複数のメモリセルの値を設定することに進み、それから、ステップ１２０４において、ＦＰＧＡをイネーブルする。ここで、動作モードでは、方法は、ステップ１２０５において、プログラマブルコントローラにデータ入力を提供し、その結果として、プログラマブルコントローラは、ステップ１２０６において、データ入力及び第１の複数のメモリセルの値の関数として、第１のＬＵＴ及び第２のＬＵＴの構成値を設定する。上記例に基づいて、このデータ入力が、回路構成及び所望の動作に応じて、任意の数のビットを含み得、各ＬＵＴのあらゆる入力が必ずしも、その動作の実施に影響を及ぼすわけではなく、その場合、データ入力が、幾つかの入力で未定義又は浮動値を含み得ることが理解される。幾つかの場合、入力は、ハイに浮動するか、又はローに浮動すると仮定し得、それにより、データ入力は、それに従ってハイ値又はロー値に制限し得る。
【０１１２】
方法は次に、ステップ１２０７に進み、そこでデータ入力は第１のＬＵＴ及び上記第２のＬＵＴに提供される。上記例に基づいて、このデータ入力が、回路構成及び所望の動作に応じて、任意の数のビットを含み得、各ＬＵＴのあらゆる入力が必ずしも、その動作の実施に影響を及ぼすわけではなく、その場合、データ入力が、幾つかの入力で未定義又は浮動値を含み得ることが理解される。幾つかの場合、入力は、ハイに浮動するか、又はローに浮動すると仮定し得、それにより、データ入力は、それに従ってハイ値又はロー値に制限し得る。
【０１１３】
ステップ１２０８において、第１のＬＵＴ及び第２のＬＵＴは、上記プログラマブルコントローラにより設定された構成値の関数としてステップ１２０７において提供された各データ入力に対して各論理演算を実行し、次に、上記更なる論理演算の結果を出力し、それから、ステップ１２１０において終了する。
【０１１４】
多くの実施態様において、演算が終了する前、任意の回数、方法がステップ１２０７にループバックして、新しい入力値に対して論理演算を繰り返し得ることが理解される。
【０１１５】
多くの実施態様において、演算が終了する前、任意の回数、方法がステップ１２０５にループバックして、新しい入力値に基づいてプログラマブルコントローラから新しい動作モードを選択して、プログラマブルコントローラにＬＵＴの構成値を変更させ得ることが理解される。
【０１１６】
図１３は、実施形態によるＦＰＧＡデバイスを操作する方法のステップを示す。
【０１１７】
図１３の方法は、図１２の方法の更なる展開であり、同様の番号の参照は同様のステップに対応し、方法は、論理回路３５、４５、５５、６５、７５、８５、９５、又は本明細書に記載されるか、又は記載されない他の実施形態等の論理回路の動作に拡張される。
【０１１８】
この方法は、例えば、上述したように、複数のプログラマブル論理ブロックを備えるＦＰＧＡを操作することが意図される。示されるように、方法はステップ１２０１において開始され、それから、ステップ１３０２において、論理回路の構成入力に関連付けられた第２の複数のメモリセルの値を設定することに進む。方法は次に、ステップ１２０３において、プログラマブルコントローラに関連付けられた第１の複数のメモリセルの値を設定し、それから、ステップ１２０４において、ＦＰＧＡをイネーブルする。ここで、動作モードにおいて、方法は、ステップ１２０５において、データ入力をプログラマブルコントローラに提供し、その結果として、プログラマブルコントローラは、ステップ１２０６において、データ入力及び第１の複数のメモリセルの値の関数として、第１のＬＵＴ及び第２のＬＵＴの構成値を設定する。上記例に基づいて、このデータ入力が、回路構成及び所望の動作に応じて、任意の数のビットを含み得、各ＬＵＴのあらゆる入力が必ずしも、その動作の実施に影響を及ぼすわけではなく、その場合、データ入力が、幾つかの入力で未定義又は浮動値を含み得ることが理解される。幾つかの場合、入力は、ハイに浮動するか、又はローに浮動すると仮定し得、それにより、データ入力は、それに従ってハイ値又はロー値に制限し得る。
【０１１９】
方法は次にステップ１３０７に進み、データ入力は、論理回路、第１のＬＵＴ、及び上記第２のＬＵＴに提供される。上記例に基づいて、このデータ入力が、回路構成及び所望の動作に応じて、任意の数のビットを含み得、各ＬＵＴのあらゆる入力が必ずしも、その動作の実施に影響を及ぼすわけではなく、その場合、データ入力が、幾つかの入力で未定義又は浮動値を含み得ることが理解される。幾つかの場合、入力は、ハイに浮動するか、又はローに浮動すると仮定し得、それにより、データ入力は、それに従ってハイ値又はロー値に制限し得る。
【０１２０】
ステップ１２０８において、第１のＬＵＴ及び第２のＬＵＴは、上記プログラマブルコントローラにより設定される構成値の関数として、ステップ１２０７において提供された各データ入力に対して各論理演算を実行し、その結果は、論理回路に出力される。次に、ステップ１３０９において、論理回路は、上記第２の複数のメモリの値の関数として、上記第１のＬＵＴ及び上記第２のＬＵＴの出力並びにステップ１３０７において受信されたデータに対して更なる論理演算を実行し、次に、上記更なる論理演算の結果を出力し、それから、ステップ１２１０において終了する。
【０１２１】
多くの実施態様では、方法が、演算が終了する前、任意の回数、ステップ１３０７にループバックして、新しい入力値に対して論理演算を繰り返し得ることが理解される。
【０１２２】
多くの実施態様において、演算が終了する前、任意の回数、方法がステップ１２０５にループバックして、新しい入力値に基づいてプログラマブルコントローラから新しい動作モードを選択して、プログラマブルコントローラにＬＵＴの構成値を変更させ得ることが理解される。
【０１２３】
上記例に基づいて、幾つかの場合、ＬＵＴがヌル演算を実行し得ること又はＬＵＴの出力が、論理回路により生成される結果にいかなる影響も及ぼさない（それにより、論理回路は、ステップ１３０７において受信されたデータ入力に対して単独でその演算を実行する）こと、及び他の場合、論理回路が、ヌル演算をＬＵＴの出力に対して実行し得るか、又は単に、ＬＵＴからの結果を変更せずに出力にわたすだけであり得、その場合、出力結果が、ステップ１３０７において受信されるデータ入力に対するＬＵＴの演算及びステップ１２０６において受信される構成値のみに依存することが理解される。幾つかの場合、ＬＵＴ上又は他方のＬＵＴのみが所与の演算に寄与することが更に理解される。上述したように、２つのＬＵＴは任意のサイズであり得、異なるサイズであり得、２の数字を超え得る。
【０１２４】
図１２又は図１３を参照して説明した方法のステップが、例えば、上述したように、実施される機能に応じて、異なるステップを実施するように選択される値を含む特有のデータストリームに繋がることが理解される。
【０１２５】
ステップ１３０２及び１２０３が任意の順序で実施可能であり、それらが部分的又は全体的に並列に実施可能なことが理解される。
【０１２６】
したがって、２つのルックアップテーブル（ＬＵＴ）４１、４４を備えるＦＰＧＡのプログラマブル論理ブロックが提供される。これらのＬＵＴ４１、４４の構成情報は、プログラマブルコントローラ４３により提供され、プログラマブルコントローラ４３はそれ自体、ＬＵＴの機能を組み込む。ＬＵＴ機能のこの中間層は、初期化モード中に行われる設定に基づいて、動作モードで一次ＬＵＴ４１、４４の挙動をプログラム可能に制御する手段を提供する。特定の実施形態は、論理回路３５も組み込み、論理回路は、一次ＬＵＴのプログラム可能な挙動と共に、加算器、マルチプレクサ、パリティ及び拡張ＬＵＴ及びマルチプレクサの機能を含むにおいて幾つかの共通の論理関数を効率的に実施する手段を提供する。
【０１２７】
本明細書に記載される構成及び／又は手法が、例示的な性質のものであり、多くの変形が可能であるため、これらの特定の実施形態又は例が限定の意味で解釈されるべきではないことが理解される。本明細書に記載される特定の構造又は方法は、任意の数の手法のうちの１つ又は複数を表し得る。したがって、示され、及び／又は記載される様々な動作は、示され、及び／又は記載される順序、他の順序、並列に実行され得るか、又は省略し得る。同様に、上述したプロセスの順序は変更可能である。
【０１２８】
本開示の趣旨は、本明細書に開示される様々なプロセス、システム、構成、他の特徴、機能、動作、及び／又は特性並びにそれらのありとあらゆる均等物の新規且つ非自明な組合せ及び下位組合せを全て包含する。
【図１】
2018538704.tif 000013
【図２】
2018538704.tif 000014
【図３】
2018538704.tif 000015
【図４】
2018538704.tif 000016
【図５】
2018538704.tif 000017
【図６】
2018538704.tif 000018
【図７】
2018538704.tif 000019
【図８】
2018538704.tif 000020
【図９】
2018538704.tif 000021
【図１０】
2018538704.tif 000022
【図１１】
2018538704.tif 000023
【図１２】
2018538704.tif 000024
【図１３】
2018538704.tif 000025
【手続補正書】
【提出日】平成29年2月7日(2017.2.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラマブル論理ブロック（３０）であって、
第１のＬＵＴ（３１、５１）であって、第１の複数のデータ入力（３１１）、
第２の複数の構成入力（３１２、４１４）、及び
第３の複数の出力（３１３）
を有する、第１のＬＵＴ（３１、５１）と、
第２のＬＵＴ（３２、４２）であって、
第４の複数のデータ入力（３４１）、
第５の複数の構成入力（３４２、４４４）、及び
第６の複数の出力（３４３）
を有する、第２のＬＵＴ（３２、４２）と
を備えるプログラマブル論理ブロック（３０）において、
プログラマブルコントローラ（３３、４３）であって、
前記第２の複数の構成入力（３１２、４１４）及び前記第５の複数の構成入力のそれぞれに接続される出力と、
第７の複数の構成メモリセル（４３００、４３５）と、
第８の複数のデータエントリ（４３２）と
を有するプログラマブルコントローラ（３３、４３）を更に備え、
前記第２の複数の構成入力（３１２、４１４）及び前記第５の複数の構成入力（３４２、４４４）のそれぞれの値は、所定の様式で、前記第７の複数の構成メモリセル（６３００、４３５）の値と共に、前記第８の複数のデータエントリ（４３２）のそれぞれに存在する値により指示される、ことを特徴とするプログラマブル論理ブロック。
【請求項２】
前記第３の複数の出力（３１３）及び前記第６の複数の出力（３４３）のそれぞれに接続される論理回路（３５、４５）を更に備え、前記論理回路（３５、４５）は、前記出力（３１３、３４３）を結合して、指定されたデータ処理機能を実行するように構成される、請求項１に記載のプログラマブル論理ブロック。
【請求項３】
前記論理回路は、複数のデータ処理機能を実施する構成要素を備えるとともに、前記論理回路の構成要素にそれぞれ結合されて、前記複数のデータ処理機能から前記指定されたデータ処理機能をプログラム可能に選択する１つ又は複数の構成メモリセルを更に備える、請求項２に記載のプログラマブル論理ブロック。
【請求項４】
前記複数のデータ処理機能は、１ビット全加算器の機能を含む、請求項２又は３に記載のプログラマブル論理ブロック。
【請求項５】
前記複数のデータ処理機能は、２ビット全加算器の機能を含む、請求項２〜４のいずれか一項に記載のプログラマブル論理ブロック。
【請求項６】
前記複数のデータ処理機能は、マルチプレクサの機能を含む、請求項２〜５のいずれか一項に記載のプログラマブル論理ブロック。
【請求項７】
前記複数のデータ処理機能は、前記第２の複数よりも大きなデータ入力数を有するルックアップテーブルの機能を含む、請求項２〜６のいずれか一項に記載のプログラマブル論理ブロック。
【請求項８】
前記プログラマブルコントローラ（３３、４３）は、複数のプログラマブルコントローラＬＵＴ（４３８、４３９）を備え、前記プログラマブルコントローラの前記出力のそれぞれは、前記プログラマブルコントローラＬＵＴ（４３８、４３９）のうちの１つの各出力に対応し、前記プログラマブルコントローラＬＵＴのそれぞれの前記構成入力は、前記第７の複数の構成メモリセル（４３００）のそれぞれ１つに結合される、請求項１〜７のいずれか一項に記載のプログラマブル論理ブロック。
【請求項９】
前記プログラマブルコントローラＬＵＴ（４３８、４３９）の前記データ入力は、前記プログラマブルコントローラ（４３２）の前記第８の複数のデータエントリに結合される、請求項８に記載のプログラマブル論理ブロック。
【請求項１０】
前記プログラマブルコントローラは、前記第８の複数のデータエントリ（４３２）を復号化するように構成されたデコーダ（４３４）を更に備え、前記プログラマブルコントローラ（３３、４３）は、複数の切り替えボックス（４３６、４３７）を更に備え、前記切り替えボックス（４３６、４３７）のそれぞれは、前記デコーダ（４３４）の復号化された出力のそれぞれと、前記第５の複数の構成メモリセル（４３００、４３５）のそれぞれ１つとを受信し、それにより、各切り替えボックスは、前記第２の複数の構成入力（３１２、４１４）及び前記第５の複数の構成入力（３４２、４４４）の各々にそれぞれ接続する前記出力のうちの１つに出力値を提供し、前記出力の値は、前記デコーダの前記復号化された出力のそれぞれの論理ＡＮＤと、前記第２の複数の構成入力のそれぞれ１つとの論理ＯＲによる結合に等しい、請求項９に記載のプログラマブル論理ブロック。
【請求項１１】
前記プログラマブルコントローラ（３３、４３）は、４つのデータエントリを有し、そのうち２つは共通して、前記プログラマブルコントローラＬＵＴ（４３８、４３９）のそれぞれの２つのそれぞれのデータ入力に結合され、前記エントリのうちの第３のエントリは共通して、出力が前記第１のＬＵＴ（３１、４１）の構成入力に対応する前記プログラマブルコントローラＬＵＴ（４３８、４３９）のそれぞれの第３の各入力に結合され、前記エントリのうちの第４のエントリは共通して、出力が前記第２のＬＵＴ（３４、４４）の構成入力に対応する前記プログラマブルコントローラＬＵＴ（４３８、４３９）のそれぞれの第３の各入力に結合される、請求項９又は１０に記載のプログラマブル論理ブロック。
【請求項１２】
前記第１のＬＵＴ（３１、４１）の前記第３の複数の出力（３１３）のうちの第１の出力は、前記第１の複数のデータ入力のそれぞれで多重化された前記第２の複数の入力（３１２、４１４）のいずれかに対応し、前記第１のＬＵＴの前記第３の複数の出力のうちの第２の出力は、前記第１の複数のデータ入力（３１１）のサブセットで多重化された前記第２の複数の入力のサブセットのいずれかに対応し、又は前記第２のＬＵＴ（３４、４４）の前記第６の複数の出力（３４３）のうちの第１の出力は、前記第４の複数のデータ入力（３４１）のそれぞれで多重化された前記第５の複数の入力（３４２、４４４）のいずれかに対応し、前記第２のＬＵＴ（３４、４４）の前記第６の複数の出力（３４３）のうちの第２の出力は、前記第４の複数のデータ入力（３４１）のサブセットで多重化された前記第５の複数の入力（３４２、４４４）のサブセットのいずれかに対応する、請求項１〜１１のいずれか一項に記載のプログラマブル論理ブロック。
【請求項１３】
第１のＬＵＴ（３１、４１）と、
第２のＬＵＴ（３４、４４）と、
プログラマブルコントローラ（３３、４３）と
を備えるＦＰＧＡデバイスを操作する方法であって、
前記プログラマブルコントローラ（３３、４３）に関連付けられた第１の複数のメモリセル（４３００、４３５）の値を設定するステップと、
前記ＦＰＧＡをイネーブルするステップと、
データ入力を前記プログラマブルコントローラ（３３、４３）に提供するステップであって、それにより、前記プログラマブルコントローラ（３３、４３）は、前記データ入力及び前記第１の複数のメモリセル（４３００、４３５）の値の関数として、前記第１のＬＵＴ（３１、４１）及び前記第２のＬＵＴ（３３、４３）の構成値を設定する、提供するステップと、
データ入力を前記第１のＬＵＴ（３１、４１）及び前記第２のＬＵＴ（３４、４４）に提供するステップと
を含み、
前記第１のＬＵＴ（３１、４１）及び前記第２のＬＵＴ（３４、４４）は、前記プログラマブルコントローラ（３３、４４）により設定される前記構成値の関数として、前記データ入力を提供するステップにおいて提供される前記データ入力のそれぞれに対して各論理演算を実行し、前記論理演算のそれぞれの結果を出力する、方法。
【請求項１４】
前記ＦＰＧＡデバイスは論理回路（３５、４５）を更に備え、前記方法は、
前記ＦＰＧＡをイネーブルするステップの前、前記論理回路（３３、４３）の前記構成入力に関連付けられた第２の複数のメモリセルの値を設定するステップ
を更に含み、
前記データ入力を前記第１のＬＵＴ（３１、４１）及び前記第２のＬＵＴ（３４、４４）に提供するステップは、データ入力を前記論理回路（３３、４４）に提供することを更に含み、
前記論理回路（３３、４４）は、前記第２の複数のメモリセル（４３００、４３５）の値の関数として、前記第１のＬＵＴ及び前記第２のＬＵＴの前記出力に対して更なる論理演算を実行し、
前記更なる論理演算の結果を出力する、請求項１３に記載の方法。
【請求項１５】
請求項１３又は１４に記載の方法を実施するように選択された構成値を含む構成データストリーム。
【国際調査報告】
2018538704.tif 000026
2018538704.tif 000027