(57)【特許請求の範囲】
【請求項１】
第１の入力および第１の出力と、前記第１の入力と前記第１の出力との間に結合された第１の和論理および第１の桁上げ論理とを含む、第１のルックアップテーブル（ＬＵＴ）と、
第２の入力および第２の出力と、前記第２の入力と前記第２の出力との間に結合された第２の和論理とを含む、第２のＬＵＴと、
前記第１のＬＵＴの前記第１の入力のうちの１つに結合された第１のカスケードマルチプレクサと、前記第２のＬＵＴの前記第２の入力のうちの１つに結合された第２のカスケードマルチプレクサとを含み、
前記第２のカスケードマルチプレクサの入力が、前記第１のＬＵＴにおける前記第１の桁上げ論理の出力に結合される、プログラマブル集積回路（ＩＣ）用の構成可能論理素子。
【請求項２】
前記第１のＬＵＴまたは前記第２のＬＵＴの少なくとも１つに結合された桁上げチェーンマルチプレクサをさらに含む、請求項１に記載の構成可能論理素子。
【請求項３】
前記第２のＬＵＴは第２の桁上げ論理を含み、前記桁上げチェーンマルチプレクサの入力が、前記第２のＬＵＴにおける前記第２の桁上げ論理の出力に結合される、請求項２に記載の構成可能論理素子。
【請求項４】
前記第１のカスケードマルチプレクサに結合された桁上げ入力をさらに含む、請求項２に記載の構成可能論理素子。
【請求項５】
前記桁上げ入力はさらに、前記桁上げチェーンマルチプレクサの入力に結合される、請求項４に記載の構成可能論理素子。
【請求項６】
前記桁上げチェーンマルチプレクサの入力が、前記第１のカスケードマルチプレクサの出力に結合される、請求項２に記載の構成可能論理素子。
【請求項７】
前記第１および第２の和論理の各々は排他的ＯＲゲートを含み、前記第１の桁上げ論理はマルチプレクサを含む、請求項１に記載の構成可能論理素子。
【請求項８】
前記第１の桁上げ論理の前記マルチプレクサの制御端子が、前記第１のＬＵＴにおける第１の論理ゲートに結合される、請求項７に記載の構成可能論理素子。
【請求項９】
前記第１のＬＵＴまたは前記第２のＬＵＴの少なくとも１つに結合された桁上げチェーンマルチプレクサをさらに含み、前記桁上げチェーンマルチプレクサの制御インターフェイスが、前記第１の論理ゲートまたは第２の論理ゲートの少なくとも１つに結合される、請求項８に記載の構成可能論理素子。
【請求項１０】
前記第１および第２のカスケードマルチプレクサの制御端子が、前記プログラマブルＩＣにおける構成可能メモリセルに結合される、請求項１に記載の構成可能論理素子。
【請求項１１】
プログラマブル集積回路（ＩＣ）を構成する方法であって、
第１の和を計算するように、構成可能論理素子における第１のルックアップテーブル（ＬＵＴ）を構成するステップを含み、前記第１のＬＵＴは、第１の入力および第１の出力と、前記第１の入力と前記第１の出力との間に結合された第１の和論理および第１の桁上げ論理とを含み、前記方法はさらに、
第２の和を計算するように、前記構成可能論理素子における第２のＬＵＴを構成するステップを含み、前記第２のＬＵＴは、第２の入力および第２の出力と、前記第２の入力と前記第２の出力との間に結合された第２の和論理とを含み、前記方法はさらに、
前記第１のＬＵＴにおける前記第１の桁上げ論理の出力を前記第２のＬＵＴにおける前記第２の和論理の入力に結合するように、カスケードマルチプレクサを構成するステップを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の例は一般に電子回路に関し、特に、カスケード式ルックアップテーブル（lookup-table：ＬＵＴ）桁上げ論理回路に関する。
【背景技術】
【０００２】
背景
プログラマブル集積回路（integrated circuit：ＩＣ）は、ユーザ構成可能な入力に従ってデジタル論理演算を実現するために使用されることが多い。例示的なプログラマブルＩＣは、複合プログラマブル論理デバイス（complex programmable logic device：ＣＰＬＤ）およびフィールドプログラマブルゲートアレイ（field programmable gate array：ＦＰＧＡ）を含む。ＣＰＬＤはしばしば、積和論理を有するプログラマブル論理アレイ（programmable logic array：ＰＬＡ）アーキテクチャに基づいたいくつかの機能ブロックを含む。構成可能な相互接続マトリックスが、機能ブロック間で信号を伝送する。
【０００３】
あるタイプのＦＰＧＡは、プログラマブルタイルのアレイを含む。これらのプログラマブルタイルはさまざまなタイプの論理ブロックを含み、それらは、たとえば、入力／出力ブロック（input/output block：ＩＯＢ）、構成可能論理ブロック（configurable logic block：ＣＬＢ）、専用ランダムアクセスメモリブロック（random access memory block：ＢＲＡＭ）、乗算器、デジタル信号処理ブロック（digital signal processing：ＤＳＰ）、プロセッサ、クロックマネージャ、遅延ロックループ（delay lock loop：ＤＬＬ）、周辺装置コンポーネント相互接続エクスプレス（Peripheral Component Interconnect Express：ＰＣＩｅ）およびイーサネット（登録商標）などのバスまたはネットワークインターフェイスなどを含み得る。各プログラマブルタイルは典型的には、プログラマブル相互接続およびプログラマブル論理の双方を含む。プログラマブル相互接続は典型的には、プログラマブル相互接続点（programmable interconnect point：ＰＩＰ）によって相互接続された、さまざまな長さの多数の相互接続線を含む。プログラマブル論理は、たとえば関数発生器、レジスタ、算術論理などを含み得るプログラマブル素子を使用して、ユーザ設計の論理を実現する。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要
カスケード式ルックアップテーブル（ＬＵＴ）桁上げ論理回路が説明される。一例では、プログラマブル集積回路（ＩＣ）用の構成可能論理素子は、第１の入力および第１の出力と、第１の入力と第１の出力との間に結合された第１の和論理および第１の桁上げ論理とを含む、第１のルックアップテーブル（ＬＵＴ）と、第２の入力および第２の出力と、第２の入力と第２の出力との間に結合された第２の和論理とを含む、第２のＬＵＴと、第１および第２のＬＵＴにそれぞれ結合された、第１および第２のカスケードマルチプレクサとを含み、第２のカスケードマルチプレクサの入力が、第１のＬＵＴにおける第１の桁上げ論理の出力に結合される。
【０００５】
別の例では、プログラマブル集積回路（ＩＣ）は、構成メモリと、構成メモリに結合された複数の構成可能論理素子とを含む。複数の構成可能論理素子の各々は、第１の入力および第１の出力と、第１の入力と第１の出力との間に結合された第１の和論理および第１の桁上げ論理とを含む、第１のルックアップテーブル（ＬＵＴ）と、第２の入力および第２の出力と、第２の入力と第２の出力との間に結合された第２の和論理とを含む、第２のＬＵＴと、第１および第２のＬＵＴにそれぞれ結合された、第１および第２のカスケードマルチプレクサとを含み、第２のカスケードマルチプレクサの入力が、第１のＬＵＴにおける第１の桁上げ論理の出力に結合される。
【０００６】
別の例では、プログラマブル集積回路（ＩＣ）を構成する方法は、第１の和を計算するように、構成可能論理素子における第１のルックアップテーブル（ＬＵＴ）を構成するステップを含み、第１のＬＵＴは、第１の入力および第１の出力と、第１の入力と第１の出力との間に結合された第１の和論理および第１の桁上げ論理とを含み、方法はさらに、第２の和を計算するように、構成可能論理素子における第２のＬＵＴを構成するステップを含み、第２のＬＵＴは、第２の入力および第２の出力と、第２の入力と第２の出力との間に結合された第２の和論理とを含み、方法はさらに、第１のＬＵＴにおける第１の桁上げ論理の出力を第２のＬＵＴにおける第２の和論理の入力に結合するように、カスケードマルチプレクサを構成するステップを含む。
【０００７】
別の例では、ルックアップテーブル（ＬＵＴ）カスケード回路が説明される。
一例では、プログラマブル集積回路（ＩＣ）用のＬＵＴは、複数の入力端子と、プログラマブルＩＣにおける少なくとも１つの他のＬＵＴに結合されたカスケード入力とを含む。ＬＵＴはさらに、共通の一組の入力端子に各々結合された複数のＬＵＴを有するＬＵＴ論理を含む。ＬＵＴはさらに、複数のＬＵＴの出力に結合された入力を有する複数のマルチプレクサと、複数のマルチプレクサの出力に結合された入力を有する出力マルチプレクサとを含む。ＬＵＴはさらに、複数のマルチプレクサのそれぞれの制御入力に結合された出力を各々有する複数のカスケードマルチプレクサを含み、複数のカスケードマルチプレクサの各々は複数の入力を含み、複数の入力の少なくとも１つはカスケード入力に結合される。
【０００８】
別の例では、プログラマブルＩＣは、構成メモリと、構成メモリに結合された少なくとも１つの構成可能論理素子（configurable logic element：ＣＬＥ）とを含む。少なくとも１つのＣＬＥは、複数のＬＵＴを有する。複数のＬＵＴの各々は出力端子とカスケード入力とを含む。複数のＬＵＴのうちの第１のＬＵＴのカスケード入力は、複数のＬＵＴのうちの第２のＬＵＴの出力端子に結合される。
【０００９】
別の例では、プログラマブルＩＣにおいてＬＵＴを動作させる方法は、共通の一組の入力信号をＬＵＴ論理における複数のＬＵＴに結合するステップと、カスケード入力を複数のカスケードマルチプレクサの各々に結合するステップとを含み、カスケード入力は、プログラマブルＩＣにおける少なくとも１つの他のＬＵＴに結合され、方法はさらに、カスケード入力の信号を選択するように複数のカスケードマルチプレクサの少なくとも１つを制御するステップと、ＬＵＴ論理における複数のＬＵＴの出力の中から選択するように動作可能なマルチプレクサ論理にカスケードマルチプレクサの出力を結合するステップとを含む。
【００１０】
これらのおよび他の局面は、以下の詳細な説明を参照して理解され得る。
図面の簡単な説明
上述の特徴が詳細に理解され得るように、上に簡潔に概説されたより特定の説明が例示的な実現化例を参照して得られてもよく、それらのいくつかが添付図面に示される。しかしながら、添付図面は典型的な実現化例を例示しているに過ぎず、したがって、その範囲を限定すると考えられるべきではない、ということに留意されたい。
【図面の簡単な説明】
【００１１】
【図１Ａ】ＦＰＧＡの例示的なアーキテクチャを示す図である。
【図１Ｂ】一例に従った図１のＦＰＧＡのより高いレベルの図を示すブロック図である。
【図２】図１のＦＰＧＡのプログラマブルファブリックのフロアプランを示すブロック図である。
【図３】一例に従った構成可能論理素子を示すブロック図である。
【図４】別の例に従った構成可能論理素子を示すブロック図である。
【図５】一例に従ったプログラマブル集積回路（ＩＣ）を構成する方法を示すフロー図である。
【図６】図１Ａ〜１ＢのＦＰＧＡのプログラマブルファブリックのフロアプランの一部を示すブロック図である。
【図７】一例に従ったＬＵＴを示すブロック図である。
【図８】広い組合せ関数を実現する一連のＬＵＴを含む例示的な回路を示すブロック図である。
【図９】マルチプレクサを実現する複数のＬＵＴを含む例示的な回路５００を示すブロック図である。
【図１０】一例に従ったプログラマブルＩＣにおいてＬＵＴを動作させる方法を示すフロー図である。
【発明を実施するための形態】
【００１２】
理解を促すために、図面に共通している同一の要素を表わすために、可能であれば同一の参照符号が使用されている。ある例の要素が他の例に有益に取入れられ得るということが考えられる。
【００１３】
詳細な説明
図面を参照して、さまざまな特徴が以下に説明される。なお、図面は縮尺通りに描かれても描かれなくてもよく、また、同様の構造または機能の要素は、図面全体を通して、同じ参照符号によって表わされる。なお、図面は、特徴の説明を容易にするよう意図されているに過ぎない。それらは、請求される発明の網羅的な説明として、または請求される発明の範囲に対する制限として意図されてはいない。加えて、例示された実施形態は、図示されたすべての局面または利点を有していなくてもよい。特定の実施形態に関連して説明された局面または利点は必ずしもその実施形態に限定されず、そのように例示されていなくても、またはそのように明示的に説明されていなくても、任意の他の実施形態で実践され得る。
【００１４】
カスケード式ルックアップテーブル（ＬＵＴ）桁上げ論理回路が説明される。一例では、ＦＰＧＡなどのプログラマブル集積回路（ＩＣ）用の構成可能論理素子（ＣＬＥ）は、１対のルックアップテーブル（ＬＵＴ）を含む。第１のルックアップテーブル（ＬＵＴ）は、第１の入力および第１の出力と、第１の入力と第１の出力との間に結合された第１の和論理および第１の桁上げ論理とを含む。第２のＬＵＴは、第２の入力および第２の出力と、第２の入力と第２の出力との間に結合された第２の和論理とを含む。ＣＬＥは、第１および第２のＬＵＴにそれぞれ結合された、第１および第２のカスケードマルチプレクサを含む。第２のカスケードマルチプレクサの入力が、第１のＬＵＴにおける第１の桁上げ論理の出力に結合される。別の例では、ＬＵＴ対における第２のＬＵＴにも桁上げ論理が組込まれ得る。
【００１５】
ここに説明される例示的なＣＬＥでは、和論理および桁上げ論理は、ＣＬＥの１つ以上のＬＵＴに組込まれる。桁上げ初期化が、カスケードマルチプレクサによって行なわれ得る。カスケードマルチプレクサは、包括的なＬＵＴ間直接接続を迅速化する。和出力および桁上げ出力は双方とも、ＬＵＴによって直接提供される。これは、これらの信号によって駆動される出力マルチプレクサのサイズが減少されることを可能にする。なぜなら、そのような出力マルチプレクサはさもなければ、ＬＵＴの和出力および桁上げ出力について別々の出力を必要とするためである。ＬＵＴの各々はそれに結合されたカスケードマルチプレクサを含むため、すべてのＬＵＴで桁上げチェーンを開始／初期化することが可能であり、それは、より効率的な複数の桁上げチェーンのパッキングを可能にする。これらのおよびさらなる局面が、以下の図面に関して以下に説明される。
【００１６】
図１Ａは、マルチギガビットトランシーバ（multi-gigabit transceiver：「ＭＧＴ」）１０１と、構成可能論理ブロック（「ＣＬＢ」）１０２と、ランダムアクセスメモリブロック（「ＢＲＡＭ」）１０３と、入力／出力ブロック（「ＩＯＢ」）１０４と、構成およびクロッキング論理（「ＣＯＮＦＩＧ／ＣＬＯＣＫＳ」）１０５と、デジタル信号処理ブロック（「ＤＳＰ」）１０６と、特殊入力／出力ブロック（「Ｉ／Ｏ」）１０７（たとえば、構成ポートおよびクロックポート）と、デジタルクロックマネージャ、アナログ／デジタル変換器、システム監視論理などの他のプログラマブル論理１０８とを含む、多数の異なるプログラマブルタイルを含むＦＰＧＡ１００の例示的なアーキテクチャを示す。いくつかのＦＰＧＡは、専用プロセッサブロック（「ＰＲＯＣ」）１１０も含む。
【００１７】
いくつかのＦＰＧＡでは、図１Ａの上部に含まれる例によって示されるように、各プログラマブルタイルは、同じタイル内のプログラマブル論理素子の入力および出力端子１２０への接続を有する少なくとも１つのプログラマブル相互接続素子（「ＩＮＴ」）１１１を含み得る。各プログラマブル相互接続素子１１１（「相互接続素子１１１」とも呼ばれる）はまた、同じタイルまたは他のタイルにおける隣接するプログラマブル相互接続素子の相互接続セグメント１２２への接続を含み得る。各プログラマブル相互接続素子１１１はまた、論理ブロック（図示せず）間の汎用ルーティングリソースの相互接続セグメント１２４への接続を含み得る。汎用ルーティングリソースは、相互接続セグメント（たとえば相互接続セグメント１２４）のトラックと、相互接続セグメントを接続するためのスイッチブロック（図示せず）とを含む、論理ブロック（図示せず）間のルーティングチャネルを含み得る。汎用ルーティングリソースの相互接続セグメント（たとえば相互接続セグメント１２４）は、１つ以上の論理ブロックにまたがる場合がある。プログラマブル相互接続素子１１１は、汎用ルーティングリソースとともに、例示されたＦＰＧＡのためのプログラマブル相互接続構造「（プログラマブル相互接続」）を実現する。以下にさらに説明されるように、いくつかの例では、相互接続素子１１１のいくつかまたはすべては、ＴＣＡＭの効率的な実現のための追加の回路を含み得る。
【００１８】
例示的な一実現化例では、ＣＬＢ１０２は、ユーザ論理を実現するようにプログラムされ得る構成可能論理素子（「ＣＬＥ」）１１２と、単一のプログラマブル相互接続素子（「ＩＮＴ」）１１１とを含み得る。ＢＲＡＭ１０３は、１つ以上のプログラマブル相互接続素子に加えて、ＢＲＡＭ論理素子（「ＢＲＬ」）１１３を含み得る。典型的には、あるタイルに含まれる相互接続素子の数は、そのタイルの高さに依存する。図示された例では、ＢＲＡＭタイルは５つのＣＬＢと同じ高さを有するが、他の数（たとえば４つ）も使用可能である。ＤＳＰタイル１０６は、適切な数のプログラマブル相互接続素子に加えて、ＤＳＰ論理素子（「ＤＳＰＬ」）１１４を含み得る。ＩＯＢ１０４は、たとえば、プログラマブル相互接続素子１１１の１つのインスタンスに加えて、入力／出力論理素子（「ＩＯＬ」）１１５の２つのインスタンスを含み得る。当業者には明らかであるように、たとえばＩ／Ｏ論理素子１１５に接続された実際のＩ／Ｏパッドは典型的には、入力／出力論理素子１１５のエリアに制限されない。
【００１９】
図示された例では、（図１Ａに示す）ダイの中央近くの水平エリアは、構成、クロック、および他の制御論理のために使用される。この水平エリアまたは列から延在する垂直列１０９は、ＦＰＧＡの広さを越えてクロックおよび構成信号を分散させるために使用される。
【００２０】
図１Ａに示すアーキテクチャを利用するいくつかのＦＰＧＡは、ＦＰＧＡの大部分を作り上げる通常の列構造を乱す追加の論理ブロックを含む。追加の論理ブロックは、プログラマブルブロックおよび／または専用論理であり得る。たとえば、プロセッサブロック１１０は、ＣＬＢおよびＢＲＡＭのいくつかの列にまたがる。プロセッサブロック１１０は、単一のマイクロプロセッサから、マイクロプロセッサ、メモリコントローラ、周辺装置などの完全なプログラマブル処理システムに及ぶ、さまざまなコンポーネントを含み得る。
【００２１】
なお、図１Ａは、単なる例示的なＦＰＧＡアーキテクチャを例示するよう意図されている。たとえば、１行における論理ブロックの数、行の相対的な幅、行の数および順序、行に含まれる論理ブロックのタイプ、論理ブロックの相対的なサイズ、および図１Ａの上部に含まれる相互接続／論理実現化例は、単に例示的である。たとえば、実際のＦＰＧＡでは、ユーザ論理の効率的な実現を容易にするために、ＣＬＢがどこに現われようと、ＣＬＢの２つ以上の隣接する行が典型的には含まれるが、隣接するＣＬＢ行の数は、ＦＰＧＡの全体的なサイズによって変わる。別の例では、ＦＰＧＡは、プロセッサブロック１１０の代わりに、またはプロセッサブロック１１０に加えて、 処理システム全体（たとえばプロセッサ、メモリ、周辺装置など）を含み得る。そのような実現化例では、システム・オン・チップ（System-on-Chip：Ｓｏｃ）は、処理システムと通信するプログラマブルファブリック（ＦＰＧＡ１００に示されるようなプログラマブル論理）を含み得る。
【００２２】
図１Ｂは、一例に従ったＦＰＧＡ１００のより高いレベルの図を示すブロック図である。ＦＰＧＡ１００はプログラマブルファブリック１５０を含み、それは、上述のさまざまなプログラマブルタイルを含み得る。プログラマブルファブリック１５０は、構成メモリ１５２に結合される。構成メモリ１５２は、スタティックＲＡＭ（ＳＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）を含む。プログラマブルファブリック１５０はまた、ここに説明されるようなカスケード式ＬＵＴ桁上げ論理を有するＣＬＥ１１２を含み得る。構成メモリ１５２には、プログラマブルファブリック１５０をプログラムする（「構成する」）ための構成ビットストリームがロードされ得る。たとえば、構成ビットストリームは、ここに説明されるようにプログラマブルファブリック１５０のＣＬＥ１１２を構成するために、構成メモリ１５２へロードされ得る。
【００２３】
図２は、ＦＰＧＡ１００のプログラマブルファブリック１５０のフロアプランを示すブロック図である。図２は、プログラマブルファブリック１５０におけるプログラマブルタイルの２つの列２０２および２０６を示す。列２０２および２０６におけるプログラマブルタイルは、ＣＬＥ１１２を含む。列２０２および２０６の各々では、ＣＬＥ１１２は１つだけ示されているが、列２０２および２０６は一般に、複数のＣＬＥを含む。ＣＬＥ１１２の各々は、相互接続素子１１１に結合される。
【００２４】
ＣＬＥ１１２の各々は、４つのスライスＳＭ１〜ＳＭ０およびＳＬ０〜ＳＬ１を含む。スライスＳＭ０〜ＳＬ１は、あるタイプ（タイプ「Ｍ」）のものであり、スライスＳＬ０〜ＳＬ１は、別のタイプ（タイプ「Ｌ」）のものである。タイプ「Ｍ」のスライスＳＭ０およびＳＭ１は、ルックアップテーブル（ＬＵＴ）２０８とサポート論理２１０とを含む。ＬＵＴ２０８は、複数の入力と複数の出力とを有する任意の組合せ関数を実行するための関数発生器として構成され得る。ＬＵＴ２０８はまた、複数のビットを格納するように構成されたＬＵＴ−ＲＡＭとして構成され得る。サポート論理２１０は、ＬＵＴ２０８をサポートする、フリップフロップ、マルチプレクサ、桁上げチェーン論理などを含み得る。タイプ「Ｌ」のスライスＳＬ０およびＳＬ１は、ＬＵＴ２１２とサポート論理２１０とを含む。ＬＵＴ２１２は、ＬＵＴ−ＲＡＭとしてではなく、関数発生器として構成され得る。図２に示すアーキテクチャは単なる一例である。他の例では、ＣＬＥ１１２におけるすべてのＬＵＴがＬＵＴ−ＲＡＭを含んでいてもよく（すべてのスライスがタイプ「Ｍ」のものである）、または、ＣＬＥ１１２におけるすべてのＬＵＴが、ＲＡＭとして構成されることができないＬＵＴを含んでいてもよい（すべてのスライスがタイプ「Ｌ」のものである）。
【００２５】
この例では、列２０２におけるタイプ「Ｌ」のスライスＳＬ０およびＳＬ１は、列２０６におけるタイプ「Ｍ」のスライスＳＭ０およびＳＭ１に、それらの間に２つの相互接続素子１１１を有して隣接している。列２０２におけるスライスＳＬ０〜ＳＬ１は相互接続素子１１１のうちの一方に結合され、列２０６におけるスライスＳＭ０〜ＳＭ１は相互接続素子１１１のうちの他方に結合される。相互接続素子１１１は互いに結合され得る。相互接続素子１１１の各々は、マルチプレクサ２１４を含む。マルチプレクサ２１４のうちの異なるマルチプレクサは、列２０２におけるＣＬＥ１１２からの入力、列２０６におけるＣＬＥ１１２からの入力、別の相互接続素子１１１におけるマルチプレクサ２１４からの入力、または相互接続からの入力といった、異なる入力を有し得る。同様に、マルチプレクサ２１４のうちの異なるマルチプレクサは、列２０２におけるＣＬＥ１１２への出力、列２０６におけるＣＬＥ１１２への出力、別の相互接続素子１１１への出力、または相互接続への出力といった、異なる出力を有し得る。
【００２６】
ここに説明されるように、ＬＵＴ２０８および／またはＬＵＴ２１２は内部の和論理および桁上げ論理を含むことができ、そのような和論理および桁上げ論理がサポート論理２１０に含まれる必要性を取り除く。これは、ＣＬＥ１１２のための出力マルチプレクサコストを減少させる。これはまた、可能な臨界経路の減少をもたらし、それはＣＬＥ１１２の性能を最適化する。また、桁上げチェーンは、ＣＬＥ１１２におけるどのＬＵＴででも初期化可能であり、それは、より細かい精度での複数の桁上げチェーンのパッキングを可能にする。
【００２７】
図３は、一例に従った構成可能論理素子１１２を示すブロック図である。この例では、構成可能論理素子１１２は、１対のＬＵＴ３０２−０および３０２−１（総称してＬＵＴ３０２）を含む。この例ではＬＵＴが２つだけ示されているが、上述のように、ＣＬＥ１１２は、１つ以上のＬＵＴを各々有するスライスを１つ以上有し得る。
【００２８】
ＬＵＴ３０２の各々は、和論理３１２と桁上げ論理３１０とを内部に含む。この例では、ＬＵＴ３０２−０は和論理３１２−０と桁上げ論理３１０−０とを含み、ＬＵＴ３０２−１は和論理３１２−１と桁上げ論理３１０−１とを含む。この例では、和論理３１２は排他的ＯＲ（ＸＯＲ）ゲートを含み、桁上げ論理３１０はマルチプレクサを含む。このため、和論理３１２−０は論理ゲート３２０を含み、和論理３１２−１は論理ゲート３０８を含む。この例では、論理ゲート３０８および３２０の各々はＸＯＲゲートを含む。同様に、桁上げ論理３１０−０はマルチプレクサ３１８を含み、桁上げ論理３１０−１はマルチプレクサ３０６を含む。ＬＵＴ３０２−０はさらに論理ゲート３０４−０を含み、ＬＵＴ３０２−１はさらに論理ゲート３０４−１を含む。この例では、論理ゲート３０４−０および３０４−１の各々はＸＯＲゲートを含む。
【００２９】
ＬＵＴ３０２の各々は、Ａ１〜Ａ６と称される６つの入力を含む。ＬＵＴ３０２−０では、入力Ａ３およびＡ４は、論理ゲート３０４−０の入力に結合される。入力Ａ５は、カスケードマルチプレクサ３２２−０の出力に結合される。入力Ａ６は、基準電圧（たとえば電気接地）に接続されるとして図示される。この例では、入力Ａ１およびＡ２は接続されていない。論理ゲート３０４−０の出力は、ｐｒｏｐ０と称される。マルチプレクサ３１８の制御入力は、ｐｒｏｐ０を受信するように結合される。マルチプレクサ３１８の入力は、入力Ａ４およびＡ５に結合される。論理ゲート３２０の入力は、入力Ａ５および論理ゲート３０４−０の出力（ｐｒｏｐ０）に結合される。マルチプレクサ３１８の出力はＣｏｕｔ０と称され、論理ゲート３２０の出力はＳｕｍ０と称される。
【００３０】
ＬＵＴ３０２−１では、入力Ａ３およびＡ４は、論理ゲート３０４−１の入力に結合される。入力Ａ５は、カスケードマルチプレクサ３２２−１の出力に結合される。入力Ａ６は、基準電圧（たとえば電気接地）に接続されるとして図示される。この例では、入力Ａ１およびＡ２は接続されていない。論理ゲート３０４−１の出力は、ｐｒｏｐ１と称される。マルチプレクサ３０６の制御入力は、ｐｒｏｐ１を受信するように結合される。マルチプレクサ３０６の入力は、入力Ａ４およびＡ５に結合される。論理ゲート３０８の入力は、入力Ａ５および論理ゲート３０４−１の出力（ｐｒｏｐ１）に結合される。マルチプレクサ３０６の出力はＣｏｕｔ１’と称され、論理ゲート３０８の出力はＳｕｍ１と称される。
【００３１】
カスケードマルチプレクサ３２２−０の一方の入力はＡ５’と称され、カスケードマルチプレクサ３２２−０の他方の入力はノードＣｉｎに結合される。カスケードマルチプレクサ３２２−１の一方の入力はＡ５’と称され、カスケードマルチプレクサ３２２−１の他方の入力はマルチプレクサ３１８の出力（Ｃｏｕｔ０）に結合される。
【００３２】
この例では、ＣＬＥ１１２のためのサポート論理２１０は、桁上げチェーンマルチプレクサ３１４を含む。桁上げチェーンマルチプレクサ３１４の出力は、Ｃｏｕｔと称される。桁上げチェーンマルチプレクサ３１４の制御インターフェイスは、ｐｒｏｐ０、ｐｒｏｐ１、または双方を受信するように結合され得る。桁上げチェーンマルチプレクサ３１４の入力は、Ｃｏｕｔ１’を受信するように結合される。桁上げチェーンマルチプレクサ３１４の他の入力は、カスケードマルチプレクサ３２２−０の出力、Ｃｉｎ、または双方を受信するように結合され得る。
【００３３】
演算時、ＬＵＴ３０２−０および３０２−１は、データワードＡ＿ｄａｔａとＢ＿ｄａｔａとの和を計算する。この例では、データワードＡ＿ｄａｔａおよびＢ＿ｄａｔａは各々、＜０＞および＜１＞と称される２ビットを有する。ＬＵＴ３０２−０の入力Ａ３およびＡ４は、Ａ＿ｄａｔａ＜０＞およびＢ＿ｄａｔａ＜０＞をそれぞれ受信する。ＬＵＴ３０２−１の入力Ａ３およびＡ４は、Ａ＿ｄａｔａ＜１＞およびＢ＿ｄａｔａ＜１＞をそれぞれ受信する。
【００３４】
論理ゲート３０４−０は、Ａ＿ｄａｔａ＜０＞とＢ＿ｄａｔａ＜０＞との和を計算する（すなわち、ｐｒｏｐ０＝Ａ＿ｄａｔａ＜０＞＋Ｂ＿ｄａｔａ＜０＞）。論理ゲート３２０は、Ａ＿ｄａｔａ＜０＞とＢ＿ｄａｔａ＜０＞との和に桁上げビットを加算する（すなわち、ｓｕｍ０＝Ａ＿ｄａｔａ＜０＞＋Ｂ＿ｄａｔａ＜０＞＋桁上げ）。桁上げビットはカスケードマルチプレクサ３２２−０によって出力され、それは、Ａ５’を通して、またはＣｉｎ（ＣＬＥ１１２への桁上げ入力）を通して入力され得る。マルチプレクサ３１８は、ＬＵＴ３０２−０によって行なわれる和演算のための桁上げビットを出力する（Ｃｏｕｔ０と称される）。
【００３５】
論理ゲート３０４−１は、Ａ＿ｄａｔａ＜１＞とＢ＿ｄａｔａ＜１＞との和を計算する（すなわち、ｐｒｏｐ１＝Ａ＿ｄａｔａ＜１＞＋Ｂ＿ｄａｔａ＜１＞）。論理ゲート３０８は、Ａ＿ｄａｔａ＜１＞とＢ＿ｄａｔａ＜１＞との和に桁上げビットを加算する（すなわち、ｓｕｍ１＝Ａ＿ｄａｔａ＜１＞＋Ｂ＿ｄａｔａ＜１＞＋桁上げ）。桁上げビットはカスケードマルチプレクサ３２２−１によって出力され、それは、Ａ５’を通して、またはマルチプレクサ３１８の出力（たとえばＣｏｕｔ０）を通して入力され得る。Ａ＿ｄａｔａ＋Ｂ＿ｄａｔａを求めるために、マルチプレクサ３２２−１はＣｏｕｔ０を桁上げビットとして選択する。マルチプレクサ３０６は、ＬＵＴ３０２−１によって行なわれる和演算のための桁上げビットを出力する（Ｃｏｕｔ１’と称される）。
【００３６】
桁上げチェーンマルチプレクサ３１４は、ＣＬＥ１１２のための桁上げビットを出力する。ＣＬＥ１１２のための桁上げビットは、（演算Ａ＿ｄａｔａ＋Ｂ＿ｄａｔａについては）Ｃｏｕｔ１であり得る。他の演算については、Ｃｏｕｔが、Ｃｉｎ（桁上げ通過）であるか、またはカスケードマルチプレクサ３２２−０の出力であることも可能である。図３に示すＣＬＥ１１２は、任意の数のビットを有するＡ＿ｄａｔａとＢ＿ｄａｔａとの和を計算するために、複製してともにつなげることができる。
【００３７】
図３の例では、和論理および桁上げ論理は、ＣＬＥ１１２のＬＵＴ３０２に組込まれる。桁上げ初期化が、カスケードマルチプレクサ３２２によって行なわれ得る。カスケードマルチプレクサ３２２は、包括的なＬＵＴ間直接接続を迅速化する。和出力および桁上げ出力は双方とも、ＬＵＴ３０２によって直接提供される。これは、（たとえば相互接続１１１内の）これらの信号によって駆動される出力マルチプレクサのサイズが減少されることを可能にする。なぜなら、そのような出力マルチプレクサはさもなければ、ＬＵＴ３０２の和出力および桁上げ出力について別々の出力を必要とするためである。ＬＵＴ３０２の各々はそれに結合されたカスケードマルチプレクサ３２２を含むため、すべてのＬＵＴで桁上げチェーンを開始／初期化することが可能であり、それは、より効率的な複数の桁上げチェーンのパッキングを可能にする。また、和出力は専用のものではなく、和を計算する論理ゲート３０４は、ＸＯＲ以外の何らかの他の関数であり得る。
【００３８】
図４は、別の例に従った構成可能論理素子１１２を示すブロック図である。上述のものと同じまたは同様の要素は、同一の参照符号で表わされる。この例では、桁上げ論理３１０−０におけるマルチプレクサ３１８の出力（Ｃｏｕｔ０）は、桁上げチェーンマルチプレクサ３１４の入力に結合される。また、ＬＵＴ３０２−１から桁上げ論理３１０−１が省略される。むしろ、ＬＵＴ３０２−１の入力Ａ４は、桁上げチェーンマルチプレクサ３１４の入力に結合される。構成可能論理素子１１２の残りは、図３に関して上述したように実現される。
【００３９】
図４に示すような構成可能論理素子１１２では、桁上げチェーンマルチプレクサ３１４の入力は、ＬＵＴ３０２−０から桁上げ出力（Ｃｏｕｔ０）を直接受信するように拡張する。このように、ＬＵＴ３０２−０からの桁上げ出力（Ｃｏｕｔ０）は、チェーンマルチプレクサ３１４に到達するためにＬＵＴ３０２−１まで伝搬する必要がない。また、ＬＵＴ３０２−０の桁上げ出力（Ｃｏｕｔ０）はマルチプレクサ３１４に直接接続されるため、桁上げ論理３１０−１が取り除かれ得る。
【００４０】
図３および図４の例では、２ビットの桁上げ（Ｃｏｕｔ０およびＣｏｕｔ１）が示される。一般に、図３および図４における回路は、Ｎビットの桁上げを生成するように拡張可能であり、ここでＮは正の整数である。そのような例では、桁上げチェーンマルチプレクサ３１４は、他のＬＵＴによって生成された追加ビットの桁上げに対処するための増加した幅を含み得る。また、上述の例では、桁上げ論理構造は、加法演算に関して説明されている。一般に、ここに説明される桁上げ論理構造は、他のタイプの算術演算のすべてまたは一部を行なうために使用され得る。
【００４１】
図５は、一例に従ったプログラマブル集積回路（ＩＣ）を構成する方法５００を示すフロー図である。方法５００はブロック５０２で始まり、そこでは、ＣＬＥにおける第１のＬＵＴが、第１の和を計算するように構成され、第１のＬＵＴは、第１の入力および第１の出力と、第１の入力と出力との間に結合された第１の和論理および第１の桁上げ論理とを含む。ブロック５０４で、ＣＬＥにおける第２のＬＵＴが、第２の和を計算するように構成され、第２のＬＵＴは、第２の入力および第２の出力と、第２の入力と出力との間に結合された第２の和論理および第２の桁上げ論理とを含む。ブロック５０６で、カスケードマルチプレクサが、第１のＬＵＴにおける第１の桁上げ論理の出力を第２のＬＵＴにおける第２の和論理の入力に結合するように構成される。方法５００は、任意の数のビットを有するデータワードの和を計算するために、１つ以上の追加のＬＵＴについて繰り返され得る。
【００４２】
いくつかの他の例は一般に電子回路に関し、特に、ルックアップテーブル（ＬＵＴ）カスケード回路に関する。
【００４３】
図１Ｂを再度参照すると、一例では、プログラマブルファブリック１５０はまた、ルックアップテーブル（ＬＵＴ）１５４を有するＣＬＥ１１２を含み得る。ここに説明されるように、ＬＵＴ１５４はカスケード入力を含み得る。
【００４４】
ここで図６を参照すると、別のブロック図が、ＦＰＧＡ１００のプログラマブルファブリック１５０のフロアプランの一部を示す。図６は、プログラマブルファブリック１５０におけるプログラマブルタイルの２つの列６０２および６０６を示す。列６０２および６０６におけるプログラマブルタイルは、ＣＬＥ６１２を含む。列６０２および６０６の各々では、ＣＬＥ６１２は１つだけ示されているが、列６０２および６０６は一般に、複数のＣＬＥを含む。ＣＬＥ６１２の各々は、相互接続素子６１１に結合される。
【００４５】
ＣＬＥ６１２の各々は、４つのスライスＳＭ０〜ＳＭ１およびＳＬ０〜ＳＬ１を含む。スライスＳＭ０〜ＳＬ１は、あるタイプ（タイプ「Ｍ」）のものであり、スライスＳＬ０〜ＳＬ１は、別のタイプ（タイプ「Ｌ」）のものである。タイプ「Ｍ」のスライスＳＭ０およびＳＭ１は、ＬＵＴ１５４Ａとサポート論理６１０とを含む。ＬＵＴ１５４Ａは、複数の入力と複数の出力とを有する任意の組合せ関数を実行するための関数発生器として構成され得る。ＬＵＴ１５４Ａはまた、複数のビットを格納するように構成されたＬＵＴ−ＲＡＭとして構成され得る。サポート論理６１０は、ＬＵＴ１５４Ａをサポートする、フリップフロップ、マルチプレクサ、桁上げチェーン論理などを含み得る。タイプ「Ｌ」のスライスＳＬ０およびＳＬ１は、ＬＵＴ１５４Ｂとサポート論理６１０とを含む。ＬＵＴ１５４Ｂは、ＬＵＴ−ＲＡＭとしてではなく、関数発生器として構成され得る。図６に示すアーキテクチャは単なる一例である。他の例では、ＣＬＥ６１２におけるすべてのＬＵＴがＬＵＴ−ＲＡＭを含んでいてもよく（すべてのスライスがタイプ「Ｍ」のものである）、または、ＣＬＥ６１２におけるすべてのＬＵＴが、ＲＡＭとして構成されることができないＬＵＴを含んでいてもよい（すべてのスライスがタイプ「Ｌ」のものである）。
【００４６】
双方のタイプのＬＵＴ１５４Ａおよび１５４Ｂは、カスケード接続６２０を有し得る。カスケードに接続６２０は、プログラマブル相互接続（たとえば、ＩＮＴ６１１およびＭＵＸ６１４）を使用することなく、ＬＵＴ間接続を可能にする。図２では、カスケード接続６２０は概して、スライス間接続（たとえば、２つの異なるスライスにおけるＬＵＴ同士の間でのＬＵＴ間接続）として示されている。カスケード接続６２０はまた、ＣＬＥ間接続（たとえば、２つの異なるＣＬＥ６１２におけるＬＵＴ同士の間でのＬＵＴ間接続）であり得る。カスケード接続６２０はまた、スライス内接続（たとえば、同じスライスにおけるＬＵＴ同士の間でのＬＵＴ間接続）であり得る。
【００４７】
この例では、列６０２におけるタイプ「Ｌ」のスライスＳＬ０およびＳＬ１は、列６０６におけるタイプ「Ｍ」のスライスＳＭ０およびＳＭ１に、それらの間に２つの相互接続素子６１１を有して隣接している。列６０２におけるスライスＳＬ０〜ＳＬ１は相互接続素子６１１のうちの一方に結合され、列６０６におけるスライスＳＭ０〜ＳＭ１は相互接続素子６１１のうちの他方に結合される。相互接続素子６１１は互いに結合され得る。相互接続素子６１１の各々は、マルチプレクサ６１４を含む。マルチプレクサ２１４のうちの異なるマルチプレクサは、列６０２におけるＣＬＥ６１２からの入力、列６０６におけるＣＬＥ６１２からの入力、別の相互接続素子６１１におけるマルチプレクサ６１４からの入力、または相互接続からの入力といった、異なる入力を有し得る。同様に、マルチプレクサ６１４のうちの異なるマルチプレクサは、列６０２におけるＣＬＥ６１２への出力、列６０６におけるＣＬＥ６１２への出力、別の相互接続素子６１１への出力、または相互接続への出力といった、異なる出力を有し得る。
【００４８】
図７は、一例に従ったＬＵＴ１５４を示すブロック図である。ＬＵＴ１５４は、ＬＵＴ論理７０２と、マルチプレクサ７０４と、マルチプレクサ７０６と、マルチプレクサ７０８と、マルチプレクサ７１０と、マルチプレクサ７１２とを含む。ＬＵＴ１５４は、Ａ１〜Ａ６と称される６つの入力を含む。ＬＵＴ１５４はまた、ｃａｓｃ＿ｉｎと称されるカスケード入力を含む。カスケード入力は、単一の入力であってもよく、または信号のバスであってもよい。一般に、カスケード入力はＮ個のビットまたは信号を含み、ここでＮは正の整数である。ＬＵＴ１５４は、０５＿１、０５＿２、および０６と称される出力を含む。
【００４９】
ＬＵＴ論理７０２は、４つの４入力ＬＵＴ７０２Ａ、７０２Ｂ、７０２Ｃ、および７０２Ｄを含む。一例では、ＬＵＴ論理７０２は、少なくとも４つのＬＵＴ７０２を含み得る。４入力ＬＵＴはここに「４ＬＵＴ」とも呼ばれる。各４ＬＵＴ７０２Ａ〜７０２Ｄは、共通の入力端子７２２に結合される。入力端子７２２は、４ＬＵＴ７０２Ａ〜７０２Ｄの各々に入力Ａ１、Ａ２、Ａ３、およびＡ４を提供する。４ＬＵＴ７０２Ａの出力はマルチプレクサ７０６の入力に結合され、４ＬＵＴ７０２Ｂの出力はマルチプレクサ７０６の別の入力に結合される。４ＬＵＴ７０２Ａおよび７０２Ｂはともに、ＬＵＴ１５４の第１の半分を構成する。４ＬＵＴ７０２Ｃの出力はマルチプレクサ７１０の入力に結合され、４ＬＵＴ７０２Ｄの出力はマルチプレクサ７１０の別の入力に結合される。４ＬＵＴ７０２Ｃおよび７０２Ｄはともに、ＬＵＴ１５４の第２の半分を構成する。マルチプレクサ７０６の出力は出力０５＿１（ＬＵＴ１５４の第１の半分の出力）を提供し、マルチプレクサ７１０の出力は出力０５＿２（ＬＵＴ１５４の第２の半分の出力）を提供する。
【００５０】
マルチプレクサ７０６の出力はまた、マルチプレクサ７０８の入力に結合され、マルチプレクサ７１０の出力はまた、マルチプレクサ７０８の別の入力に結合される。マルチプレクサ７０８の出力は、ＬＵＴ１５４の出力０６を提供する。出力０５＿１、０５＿２、および０６はともに、ＬＵＴ１５４の出力端子７２４によって提供される。出力端子７２４のうちの１つ以上は、ＦＰＧＡにおける１つ以上の追加のＬＵＴのｃａｓｃ＿ｉｎに結合され得る。マルチプレクサ７０８はここに「出力マルチプレクサ」とも呼ばれる。
【００５１】
マルチプレクサ７０４の出力は、マルチプレクサ７０６の制御入力に結合される。マルチプレクサ７０４の１つの入力は入力端子７２０に結合され、それはＬＵＴ１５４の入力Ａ５を提供する。マルチプレクサ７０４の別の入力は入力端子７２４に結合され、それはＬＵＴ１５４の入力Ａ６を提供する。マルチプレクサ７０４の１つ以上の追加の入力端子は入力７１８に結合され、それはｃａｓｃ＿ｉｎを提供する。マルチプレクサ７０４の制御入力は制御端子７１４に結合される。制御端子７１４は、メモリ（たとえば、ＢＲＡＭ、ＬＵＴＲＡＭ、構成メモリなど）といったＦＰＧＡにおける別の回路から信号を受信することができる。
【００５２】
マルチプレクサ７１２の出力は、マルチプレクサ７１０の制御入力に結合される。マルチプレクサ７１２の１つの入力は入力端子７２０に結合され、それはＬＵＴ１５４の入力Ａ５を提供する。マルチプレクサ７１２の別の入力は入力端子７２４に結合され、それはＬＵＴ１５４の入力Ａ６を提供する。マルチプレクサ７１２の１つ以上の追加の入力端子は入力７１８に結合され、それはｃａｓｃ＿ｉｎを提供する。マルチプレクサ７１２の制御入力は制御端子７１６に結合される。制御端子７１６は、メモリ（たとえば、ＢＲＡＭ、ＬＵＴＲＡＭ、構成メモリなど）といったＦＰＧＡにおける別の回路から信号を受信することができる。マルチプレクサ７０４および７１２はここに「カスケードマルチプレクサ」とも呼ばれる。
【００５３】
演算時、４ＬＵＴ７０２Ａ−７０２Ｄの各々は、入力Ａ１〜Ａ４に基づいて任意の４入力関数を実現することができる。マルチプレクサ７０６は、４ＬＵＴ７０２Ａまたは４ＬＵＴ７０２Ｂのうちの１つからの出力を、ＬＵＴ１５４の第１の半分のための出力０５＿１として選択する。マルチプレクサ７１０は、４ＬＵＴ７０２Ｃまたは４ＬＵＴ７０２Ｄのうちの１つからの出力を、ＬＵＴ１５４の第２の半分のための出力０５＿２として選択する。このように、ＬＵＴ１５４は、２つの５入力関数を実現するために使用され得る２つの５入力ＬＵＴを実現することができる。マルチプレクサ７０８は、ＬＵＴ１５４の出力０６を提供するために、マルチプレクサ７０６および７１０の出力の中から選択する。このため、ＬＵＴ１５４は、１つの６入力関数を実現するために使用され得る１つの６入力ＬＵＴを実現することができる。
【００５４】
一構成では、マルチプレクサ７０４および／または７１２は、マルチプレクサ７０６および／または７１０をそれぞれ制御するために、入力Ａ５を選択することができる。別の構成では、マルチプレクサ７０４および／または７１２は、マルチプレクサ７０６および／または７１０をそれぞれ制御するために、入力Ａ６を選択することができる。さらに別の構成では、マルチプレクサ７０４および／または７１２は、マルチプレクサ７０６および／または７１０をそれぞれ制御するために、ｃａｓｃ＿ｉｎ入力のうちの１つを選択することができる。入力７１８は、ＦＰＧＡにおける１つ以上の他のＬＵＴの１つ以上の出力端子に結合され得る。このように、ＬＵＴ１５４は、ｃａｓｃ＿ｉｎを通して、ＦＰＧＡにおける１つ以上の他のＬＵＴに直接結合され得る。そのため、ＬＵＴ１５４は、マルチレベル関数を合成するためにともにつなげられてもよく、それらのいくつかの例を以下に説明する。
【００５５】
ｃａｓｃ＿ｉｎ入力をＡ５入力と多重化することは、最速のＬＵＴ入力に対する遅延を増加させないという利点と、異なる信号がＬＵＴの上半分および下半分を供給されることを可能にするという利点とを有する。マルチプレクサ７０４および７１２は、あるＬＵＴの出力を別のＬＵＴのｃａｓｃ＿ｉｎに接続することによって、高速のＬＵＴ間接続の作成を可能にする。いくつかの例では、ｃａｓｃ＿ｉｎ入力は、複数の信号を含み得る。そのような例では、ＬＵＴ１５４の上半分は、ＬＵＴ１５４の下半分とは異なるｃａｓｃ＿ｉｎ信号を使用することができ、広いマルチプレクサツリーの実現を可能にする。
【００５６】
図７に示すＬＵＴ１５４は、異なる数のＬＵＴおよび入力を提供するために拡大縮小され得る。たとえば、ＬＵＴ論理７０２は５つ以上のＬＵＴを含んでいてもよく、ＬＵＴ論理７０２におけるＬＵＴは５つ以上の入力を含んでいてもよい。マルチプレクサ７０６および７１０は、ＬＵＴ論理７０２におけるＬＵＴの出力の中から選択する多重化論理の一部である。いくつかの例では、そのような多重化論理は、カスケードマルチプレクサに各々結合された３つ以上のマルチプレクサを含んでいてもよい。そのため、２つのカスケードマルチプレクサ７０４および７１２が示されているが、ＬＵＴ１５４は、複数のカスケードマルチプレクサを含み得る。
【００５７】
図８は、一連のＬＵＴ１５４−１〜１５４−４を含む例示的な回路８００を示すブロック図である。ＬＵＴ１５４−１のｃａｓｃ＿ｉｎ入力は、ＬＵＴ１５４−２の出力に結合される。ＬＵＴ１５４−２のｃａｓｃ＿ｉｎ入力は、ＬＵＴ１５４−３の出力に結合される。ＬＵＴ１５４−３のｃａｓｃ＿ｉｎ入力は、ＬＵＴ１５４−４の出力に結合される。ＬＵＴ１５４−１〜１５４−３の各々におけるマルチプレクサ６０４および／またはマルチプレクサ６１２は、ｃａｓｃ＿ｉｎ入力で、ＬＵＴ１５４−２〜１５４−４のそれぞれの出力を選択する。図３の例では、各ＬＵＴ１５４−１〜１５４−３は、ｃａｓｃ＿ｉｎに加えて使用され得る他の５つの入力Ａ１〜Ａ４およびＡ６を含む。ＬＵＴ１５４−４は、使用され得る６つの入力Ａ１〜Ａ６を含む。そのため、回路４００は２１入力関数を実現することができ、その出力はＬＵＴ１５４−１によって提供される。他の例では、ＬＵＴ１５４は異なる数の入力端子を有し得るが、一般に、ＬＵＴをカスケード接続して広い組合せ関数を実現するためにカスケード入力が使用され得る。
【００５８】
図９は、複数のＬＵＴ１５４−５〜１５４−９を含む例示的な回路９００を示すブロック図である。図７に示すような実現化例を仮定して、回路９００は１６：１マルチプレクサを実現する。１６：１マルチプレクサの入力は、ＬＵＴ１５４−５の入力Ａ１〜Ａ４と、ＬＵＴ１５４−６の入力Ａ１〜Ａ４と、ＬＵＴ１５４−７の入力Ａ１〜Ａ３と、ＬＵＴ１５４−８の入力Ａ１〜Ａ３と、ＬＵＴ１５４−９の入力Ａ１〜Ａ２とを含む。１６：１マルチプレクサの出力は、ＬＵＴ１５４−９の出力０６によって提供される。１６：１マルチプレクサの制御入力は、ＬＵＴ１５４−５の入力Ａ５〜Ａ６と、ＬＵＴ１５４−６の入力Ａ５〜Ａ６と、ＬＵＴ１５４−７の入力Ａ４およびＡ６と、ＬＵＴ１５４−８の入力Ａ４およびＡ６と、ＬＵＴ１５４−９の入力Ａ４およびＡ６とを含む。ＬＵＴ１５４−５の出力０６は、ＬＵＴ１５４−７のｃａｓｃ＿ｉｎ入力に結合される。ＬＵＴ１５４−６の出力０６は、ＬＵＴ１５４−８のｃａｓｃ＿ｉｎ入力に結合される。ＬＵＴ１５４−７および１５４−８の出力０６は、ＬＵＴ１５４−９のｃａｓｃ＿ｉｎ入力に結合される。この例は、ＬＵＴ１５４−９のｃａｓｃ＿ｉｎ入力が複数の信号を含むバスであると仮定する。
【００５９】
図８の回路８００および図９の回路９００は、ここに説明されるようなカスケード入力を有するＬＵＴを使用して形成され得る回路のタイプの単なる２例である。一般に、たとえば図７の例に示すように、各ＬＵＴは、１つ以上のビットまたは信号を有するｃａｓｃ＿ｉｎ入力を含み得る。そのため、各ＬＵＴは、１つ以上の追加のＬＵＴに結合され得る。追加のＬＵＴは、同じスライスに、隣接するスライスに、および／または隣接するＣＬＥに位置し得る。単一のＬＵＴを使用して形成され得る組合せ関数、マルチプレクサなどのより広いバージョンを形成するために、１組のカスケード式ＬＵＴが使用され得る。
【００６０】
図１０は、一例に従ったプログラマブルＩＣにおいてＬＵＴを動作させる方法１０００を示すフロー図である。方法１０００はステップ１００２で始まり、そこでは、共通の一組の入力信号が、ＬＵＴ論理における複数のＬＵＴに結合される。たとえば、図７に示すように、入力Ａ１〜Ａ４がＬＵＴ７０２Ａ〜７０２Ｂに結合される。
【００６１】
ステップ６０４で、カスケード入力が、複数のカスケードマルチプレクサの各々に結合され、ここでカスケード入力は、プログラマブルＩＣにおける少なくとも１つの他のＬＵＴに結合される。たとえば、図３に示すように、入力ｃａｓｃ＿ｉｎが、ＬＵＴ１５４におけるマルチプレクサ３０４および３１２に結合される。
【００６２】
ステップ１００６で、カスケードマルチプレクサの少なくとも１つが、カスケード入力の信号を選択するように制御される。たとえば、マルチプレクサ７０４および７１２のいずれかまたは双方が、ｃａｓｃ＿ｉｎの信号を選択するように制御され得る。一例では、マルチプレクサ３０４および３１２は、構成メモリなどのプログラマブルＩＣにおけるメモリを使用して制御され得る。
【００６３】
ステップ１００８で、第１および第２のカスケードマルチプレクサが、カスケード入力の第１および第２の信号を選択するように制御される。第１の信号は、第２の信号とは異なり得る。たとえば、図７に示すように、ｃａｓｃ＿ｉｎ入力は複数の信号を有するバスであってもよく、マルチプレクサ７０４はｃａｓｃ＿ｉｎ信号のうちの１つを選択し、一方、マルチプレクサ３１２はｃａｓｃ＿ｉｎ信号のうちの別のものを選択してもよい。
【００６４】
ステップ１０１０で、ＬＵＴ論理における複数のＬＵＴの出力の中から選択するように、カスケードマルチプレクサの出力がマルチプレクサ論理に結合される。たとえば、図７に示すように、ＬＵＴ７０２Ａ〜７０２Ｄの出力の中から選択するように、マルチプレクサ７０４および７１２の出力がマルチプレクサ７０６および７１０に結合される。
【００６５】
追加の例が以下に続く。
一例では、プログラマブル集積回路（ＩＣ）用の構成可能論理素子が提供されてもよい。そのような構成可能論理素子は、第１の入力および第１の出力と、第１の入力と第１の出力との間に結合された第１の和論理および第１の桁上げ論理とを含む、第１のルックアップテーブル（ＬＵＴ）と、第２の入力および第２の出力と、第２の入力と第２の出力との間に結合された第２の和論理とを含む、第２のＬＵＴと、第１および第２のＬＵＴにそれぞれ結合された、第１および第２のカスケードマルチプレクサとを含み、第２のカスケードマルチプレクサの入力が、第１のＬＵＴにおける第１の桁上げ論理の出力に結合されてもよい。
【００６６】
そのような構成可能論理素子は、第１のＬＵＴまたは第２のＬＵＴの少なくとも１つに結合された桁上げチェーンマルチプレクサをさらに含んでいてもよい。
【００６７】
何らかのそのような構成可能論理素子では、第２のＬＵＴは第２の桁上げ論理を含んでいてもよく、桁上げチェーンマルチプレクサの入力が、第２のＬＵＴにおける第２の桁上げ論理の出力に結合されてもよい。
【００６８】
そのような構成可能論理素子は、第１のカスケードマルチプレクサに結合された桁上げ入力をさらに含んでいてもよい。
【００６９】
何らかのそのような構成可能論理素子では、桁上げ入力はさらに、桁上げチェーンマルチプレクサの入力に結合されてもよい。
【００７０】
何らかのそのような構成可能論理素子では、桁上げチェーンマルチプレクサの入力が、第１のカスケードマルチプレクサの出力に結合されてもよい。
【００７１】
何らかのそのような構成可能論理素子では、第１および第２の和論理の各々は排他的ＯＲゲートを含み、第１の桁上げ論理はマルチプレクサを含む。
【００７２】
何らかのそのような構成可能論理素子では、第１の桁上げ論理のマルチプレクサの制御端子が、第１のＬＵＴにおける第１の論理ゲートに結合されてもよい。
【００７３】
何らかのそのような構成可能論理素子は、第１のＬＵＴまたは第２のＬＵＴの少なくとも１つに結合された桁上げチェーンマルチプレクサをさらに含み、桁上げチェーンマルチプレクサの制御インターフェイスが、第１の論理ゲートまたは第２の論理ゲートの少なくとも１つに結合されてもよい。
【００７４】
何らかのそのような構成可能論理素子では、第１および第２のカスケードマルチプレクサの制御端子が、プログラマブルＩＣにおける構成可能メモリセルに結合されてもよい。
【００７５】
別の例では、プログラマブル集積回路（ＩＣ）が提供されてもよい。そのようなプログラマブルＩＣは、構成メモリと、構成メモリに結合された複数の構成可能論理素子とを含み、複数の構成可能論理素子の各々は、第１の入力および第１の出力と、第１の入力と第１の出力との間に結合された第１の和論理および第１の桁上げ論理とを含む、第１のルックアップテーブル（ＬＵＴ）と、第２の入力および第２の出力と、第２の入力と第２の出力との間に結合された第２の和論理とを含む、第２のＬＵＴと、第１および第２のＬＵＴにそれぞれ結合された、第１および第２のカスケードマルチプレクサとを含み、第２のカスケードマルチプレクサの入力が、第１のＬＵＴにおける第１の桁上げ論理の出力に結合されてもよい。
【００７６】
プログラマブルＩＣは、第１のＬＵＴまたは第２のＬＵＴの少なくとも１つに結合された桁上げチェーンマルチプレクサをさらに含んでいてもよい。
【００７７】
何らかのそのようなプログラマブルＩＣでは、第２のＬＵＴは第２の桁上げ論理を含んでいてもよく、桁上げチェーンマルチプレクサの入力が、第２のＬＵＴにおける第２の桁上げ論理の出力に結合されてもよい。
【００７８】
何らかのそのようなプログラマブルＩＣは、第１のカスケードマルチプレクサに結合された桁上げ入力をさらに含んでいてもよい。
【００７９】
何らかのそのようなプログラマブルＩＣでは、桁上げ入力はさらに、桁上げチェーンマルチプレクサの入力に結合されてもよい。
【００８０】
何らかのそのようなプログラマブルＩＣでは、桁上げチェーンマルチプレクサの入力が、第１のカスケードマルチプレクサの出力に結合されてもよい。
【００８１】
何らかのそのようなプログラマブルＩＣでは、第１および第２の和論理の各々は排他的ＯＲゲートを含んでいてもよく、第１の桁上げ論理はマルチプレクサを含んでいてもよい。
【００８２】
何らかのそのようなプログラマブルＩＣでは、第１の桁上げ論理のマルチプレクサの制御端子が、第１のＬＵＴにおける第１の論理ゲートに結合されてもよい。
【００８３】
何らかのそのようなプログラマブルＩＣでは、第１および第２のカスケードマルチプレクサの制御端子が、プログラマブルＩＣにおける構成可能メモリセルに結合されてもよい。
【００８４】
別の例では、プログラマブルＩＣを構成する方法が提供されてもよい。そのような方法は、第１の和を計算するように、構成可能論理素子における第１のルックアップテーブル（ＬＵＴ）を構成するステップを含み、第１のＬＵＴは、第１の入力および第１の出力と、第１の入力と第１の出力との間に結合された第１の和論理および第１の桁上げ論理とを含み、方法はさらに、第２の和を計算するように、構成可能論理素子における第２のＬＵＴを構成するステップを含み、第２のＬＵＴは、第２の入力および第２の出力と、第２の入力と第２の出力との間に結合された第２の和論理とを含み、方法はさらに、第１のＬＵＴにおける第１の桁上げ論理の出力を第２のＬＵＴにおける第２の和論理の入力に結合するように、カスケードマルチプレクサを構成するステップを含んでいてもよい。
【００８５】
別の例では、プログラマブル集積回路（ＩＣ）用のＬＵＴは、複数の入力端子と、プログラマブルＩＣにおける少なくとも１つの他のＬＵＴに結合されたカスケード入力とを含む。ＬＵＴはさらに、共通の一組の入力端子に各々結合された複数のＬＵＴを有するＬＵＴ論理を含む。ＬＵＴはさらに、複数のＬＵＴの出力に結合された入力を有する複数のマルチプレクサと、複数のマルチプレクサの出力に結合された入力を有する出力マルチプレクサとを含む。ＬＵＴはさらに、複数のマルチプレクサのそれぞれの制御入力に結合された出力を各々有する複数のカスケードマルチプレクサを含み、複数のカスケードマルチプレクサの各々は複数の入力を含み、複数の入力の少なくとも１つはカスケード入力に結合される。
【００８６】
別の例では、プログラマブル集積回路（ＩＣ）用のルックアップテーブル（ＬＵＴ）が提供されてもよい。そのようなＬＵＴは、複数の入力端子と、プログラマブルＩＣにおける少なくとも１つの他のＬＵＴに結合されたカスケード入力と、共通の一組の入力端子に各々結合された複数のＬＵＴを有するＬＵＴ論理と、複数のＬＵＴの出力に結合された入力を有する複数のマルチプレクサと、複数のマルチプレクサの出力に結合された入力を有する出力マルチプレクサと、複数のマルチプレクサのそれぞれの制御入力に結合された出力を各々有する複数のカスケードマルチプレクサとを含み、複数のカスケードマルチプレクサの各々は複数の入力を含み、複数の入力の少なくとも１つはカスケード入力に結合されてもよい。
【００８７】
何らかのそのようなＬＵＴでは、複数のＬＵＴは、少なくとも４つのＬＵＴを含み、複数のマルチプレクサは、少なくとも４つのＬＵＴに結合された少なくとも２つのマルチプレクサを含み、複数のカスケードマルチプレクサは、少なくとも２つのマルチプレクサを制御するように結合された少なくとも２つのカスケードマルチプレクサを含む。
【００８８】
何らかのそのようなＬＵＴでは、少なくとも４つのＬＵＴの各々は、４入力ＬＵＴを含んでいてもよく、複数の入力端子は、４入力ＬＵＴの各々に結合された４つの入力を含む。
【００８９】
何らかのそのようなＬＵＴでは、複数のカスケードマルチプレクサの各々の複数の入力の少なくとも１つが、複数の入力端子の少なくとも１つに結合されてもよい。
【００９０】
何らかのそのようなＬＵＴでは、カスケード入力は、複数の信号を有するバスを含んでいてもよい。
【００９１】
何らかのそのようなＬＵＴでは、複数のカスケードマルチプレクサの制御入力が、プログラマブルＩＣにおけるメモリに結合されてもよい。
【００９２】
何らかのそのようなＬＵＴでは、メモリは、プログラマブルＩＣの構成メモリを含んでいてもよい。
【００９３】
何らかのそのようなＬＵＴでは、出力マルチプレクサの制御入力が、複数の入力端子のうちのある端子に結合されてもよい。
【００９４】
何らかのそのようなＬＵＴは、複数のマルチプレクサおよび出力マルチプレクサの出力に結合された複数の出力端子をさらに含んでいてもよい。
【００９５】
別の例では、プログラマブルＩＣが提供されてもよい。そのようなプログラマブルＩＣは、構成メモリと、構成メモリに結合され、複数のルックアップテーブル（ＬＵＴ）を有する少なくとも１つの構成可能論理素子（ＣＬＥ）とを含み、複数のＬＵＴの各々は出力端子とカスケード入力とを含んでいてもよく、複数のＬＵＴのうちの第１のＬＵＴのカスケード入力は、複数のＬＵＴのうちの第２のＬＵＴの出力端子に結合される。
【００９６】
何らかのそのようなプログラマブルＩＣでは、複数のＬＵＴの各々はさらに、複数の入力端子と、共通の一組の入力端子に各々結合された複数のＬＵＴを有するＬＵＴ論理と、複数のＬＵＴの出力に結合された入力を有する複数のマルチプレクサと、複数のマルチプレクサの出力に結合された入力と出力端子に結合された出力とを有する出力マルチプレクサと、複数のマルチプレクサのそれぞれの制御入力に結合された出力を各々有する複数のカスケードマルチプレクサとを含み、複数のカスケードマルチプレクサの各々は複数の入力を含み、複数の入力の少なくとも１つはカスケード入力に結合される。
【００９７】
何らかのそのようなプログラマブルＩＣでは、複数のＬＵＴの各々について、複数のカスケードマルチプレクサの各々の複数の入力の少なくとも１つが、複数の入力端子の少なくとも１つに結合されてもよい。
【００９８】
何らかのそのようなプログラマブルＩＣでは、複数のＬＵＴの各々について、カスケード入力は、複数の信号を有するバスを含んでいてもよい。
【００９９】
何らかのそのようなプログラマブルＩＣでは、複数のＬＵＴの各々について、複数のカスケードマルチプレクサの制御入力が、プログラマブルＩＣにおけるメモリに結合されてもよい。
【０１００】
何らかのそのようなプログラマブルＩＣでは、メモリは構成メモリを含んでいてもよい。
【０１０１】
何らかのそのようなプログラマブルＩＣでは、複数のＬＵＴの各々について、出力マルチプレクサの制御入力が、複数の入力端子のうちのある端子に結合されてもよい。
【０１０２】
何らかのそのようなプログラマブルＩＣでは、第１のＬＵＴおよび第２のＬＵＴは、組合せ関数を実現するように構成される。
【０１０３】
何らかのそのようなプログラマブルＩＣでは、第１のＬＵＴおよび第２のＬＵＴは、マルチプレクサを実現するように構成されてもよい。
【０１０４】
別の例では、プログラマブルＩＣにおいてＬＵＴを動作させる方法が提供されてもよい。ＬＵＴを動作させるそのような方法は、共通の一組の入力信号をＬＵＴ論理における複数のＬＵＴに結合するステップと、カスケード入力を複数のカスケードマルチプレクサの各々に結合するステップとを含んでいてもよく、カスケード入力は、プログラマブルＩＣにおける少なくとも１つの他のＬＵＴに結合され、方法はさらに、カスケード入力の信号を選択するように複数のカスケードマルチプレクサの少なくとも１つを制御するステップと、ＬＵＴ論理における複数のＬＵＴの出力の中から選択するように動作可能なマルチプレクサ論理にカスケードマルチプレクサの出力を結合するステップとを含んでいてもよい。
【０１０５】
何らかのそのような方法では、制御する動作は、カスケード入力の第１の信号を選択するように、複数のマルチプレクサのうちの第１のカスケードマルチプレクサを制御するステップと、第１の信号とは異なるカスケード入力の第２の信号を選択するように、複数のマルチプレクサのうちの第２のカスケードマルチプレクサを制御するステップとを含んでいてもよい。
【０１０６】
前述の事項は特定の例に向けられているが、他の例およびさらなる例が、その基本的範囲から逸脱することなく考案されてもよく、その範囲は請求項によって定められる。
【図１Ａ】
0006697545.tif 000002
【図１Ｂ】
0006697545.tif 000003
【図２】
0006697545.tif 000004
【図３】
0006697545.tif 000005
【図４】
0006697545.tif 000006
【図５】
0006697545.tif 000007
【図６】
0006697545.tif 000008
【図７】
0006697545.tif 000009
【図８】
0006697545.tif 000010
【図９】
0006697545.tif 000011
【図１０】
0006697545.tif 000012