(57)【要約】本発明はプログラマブル論理回路に関するものである。本発明のプログラマブル論理回路は、複数のプログラマブル論理要素及び複数のプログラマブルインターコネクト手段を備えている。また、本発明のプログラマブル論理回路は、前記論理要素及び前記インターコネクト手段の設定を保存するためのメモリ手段をも備えている。そして、前記メモリ手段は、前記各論理要素の多数の異なる設定を保存するように形成及び構成されていることを特徴としている。【選択図】図１
2011514065.tif 000002
【特許請求の範囲】
【請求項１】
複数のプログラマブル論理要素及び複数のプログラマブルインターコネクト手段と、
前記論理要素及び前記インターコネクト手段の設定を保存するためのメモリ手段と、を備え、
前記メモリ手段は、前記各論理要素の多数の異なる設定を保存するように形成及び構成されていることを特徴とするプログラマブル論理回路。
【請求項２】
前記メモリ手段は、前記各インターコネクト手段の多数の異なる設定を保存するように形成及び構成されていることを特徴とする請求項１に記載のプログラマブル論理回路。
【請求項３】
複数のプログラマブル論理要素及び複数のプログラマブルインターコネクト手段と、
前記論理要素及び前記インターコネクト手段の設定を保存するためのメモリ手段と、を備え、
前記各論理要素の多数の異なる設定が前記メモリ手段に保存されることを特徴とするプログラマブル論理回路。
【請求項４】
前記メモリ手段は、前記インターコネクト手段の多数の異なる設定を保存することを特徴とする請求項３に記載のプログラマブル論理回路。
【請求項５】
当該プログラマブル論理回路に適用されるシステムクロック信号を修正クロック信号に変換するための手段をさらに備えることを特徴とする請求項３又は４に記載のプログラマブル論理回路。
【請求項６】
前記システムクロック信号を変換するための前記手段は、前記プログラマブル論理回路の前記システムクロックのサイクルを所定の数のサブサイクルに分割もすることを特徴とする請求項５に記載のプログラマブル論理回路。
【請求項７】
前記各サブサイクルには数字が割り当てられ、前記論理要素のそれぞれ異なる保存された設定がそれぞれのサブサイクル番号に相関されることを特徴とする請求項６に記載のプログラマブル論理回路。
【請求項８】
特定の設定を読み取り、前記サブサイクルに応じて前記相関する論理要素を設定するため、前記特定の設定に関連付けられた前記サブサイクル番号に関係するファブリックフェーズ信号によって、前記論理要素及び前記インターコネクト手段の設定を保存する前記メモリ手段をアドレス指定するように形成及び構成されていることを特徴とする請求項７に記載のプログラマブル論理回路。
【請求項９】
前記インターコネクト手段はインターコネクトブロックを備えることを特徴とする請求項３から７のいずれか一項に記載のプログラマブル論理回路。
【請求項１０】
前記サブサイクルに相関された前記インターコネクトブロックの設定を読み取り、前記サブサイクルに応じて前記インターコネクトブロックを設定するために、前記インターコネクトブロックのそれぞれ異なる保存された設定は、それぞれサブサイクル番号に関連付けられ、当該プログラマブル論理回路は、サブサイクル番号に関係するファブリックフェーズ信号により前記インターコネクトブロックの設定を保存するためのメモリ手段をアドレス指定するように形成及び構成されていることを特徴とする請求項９に記載のプログラマブル論理回路。
【請求項１１】
前記論理要素及びインターコネクトブロックの設定を保存する前記メモリ手段は、スタティック設定メモリを備えることを特徴とする請求項３から１０のいずれか一項に記載のプログラマブル論理回路。
【請求項１２】
前記論理要素及び前記インターコネクトブロックの設定を保存する前記メモリ手段は、さらにデコーダを備えることを特徴とする請求項１１に記載のプログラマブル論理回路。
【請求項１３】
前記論理要素はルックアップテーブルを備えることを特徴とする請求項３から１２のいずれか一項に記載のプログラマブル論理回路。
【請求項１４】
システム内の前記ルックアップテーブルは、前記サブサイクルのための前記ルックアップテーブルの設定を提供する、各サブサイクルのためのエントリを有する記憶メモリを備えることを特徴とする請求項１から１３のいずれか一項に記載のプログラマブル論理回路。
【請求項１５】
前記プログラマブル論理回路はさらにバッファ手段を備えることを特徴とする請求項１から１４のいずれか一項に記載のプログラマブル論理回路。
【請求項１６】
前記バッファ手段は、それぞれのルックアップテーブルにつき１以上の追加の記憶レジスタを備えることを特徴とする請求項１４に記載のプログラマブル論理回路。
【請求項１７】
前記ファブリッククロック手段は、当該プログラマブル論理回路のファブリックに亘って分配される複数のクロックノードを備えることを特徴とする請求項５から１６のいずれか一項に記載のプログラマブル論理回路。
【請求項１８】
前記ファブリックのクロック手段は省電力機構として使用されるように設定されていることを特徴とする請求項５から１７のいずれか一項に記載のプログラマブル論理回路。
【請求項１９】
前記省電力機構は、低電圧振幅のような低電圧信号伝達スキームを備えることを特徴とする請求項１８に記載のプログラマブル論理回路。
【請求項２０】
複数の論理要素及び複数のインターコネクト手段と、前記論理要素及び前記インターコネクト手段の設定を保存するためのメモリ手段を備えるプログラマブル論理回路を演算する方法であって、前記メモリ手段内の前記各論理要素の多数の異なる設定を保存することを含むことを特徴とする方法。
【請求項２１】
各前記インターコネクト手段の多数の異なる設定は前記メモリ手段に保存されることを特徴とする請求項２０に記載の方法。
【請求項２２】
添付した図に記載のプログラマブル論理回路。
【請求項２３】
添付した図に関して記載されたプログラマブル論理回路を演算する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル（プログラム可能な）論理回路に関する。特に限定されないが、本発明は、プログラマブル論理回路において実行可能な論理演算の密度の増加に関する。
【発明の概要】
【課題を解決するための手段】
【０００２】
プログラマブル論理回路は、時に論理ブロックとして記述される論理要素（素子）（ＬＥ）からなり、任意の論理関数（機能）を実行し、且つ、論理要素間の接続の全て（又は大部分）を設立するように設けられるルーティング（経路）ネットワークを実行するように構成される。論理要素及びルーティングの設定は、設定された回路に近接するメモリ（一般的にはスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ））内に保持される。
【０００３】
フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）は、プログラマブル論理回路の形態をとる。ＦＰＧＡは、プログラマブルＬＥ及びプログラマブルインターコネクト（接続部）を含む半導体装置である。ＬＥは、基本的な論理ゲート又は加算器のようなより複雑な算術関数を実行するようにプログラム可能である。ほとんどのＦＰＧＡでは、ＬＥはまたフリップ・フロップ（ｆｌｉｐ−ｆｌｏｐ）のようなメモリ要素を含み、いくつかは小さいブロックのメモリとして使用可能である。ＬＥ及びインターコネクトは、ＦＰＧＡの製造後、任意の論理関数を実行するために顧客又は設計者によってプログラム可能である。
【０００４】
本発明の第１の実施例によれば、プログラマブル論理回路（ＰＬＣ）は、複数のプログラマブル論理要素及び複数のプログラマブルインターコネクト手段と、論理要素及びインターコネクト手段の設定を保存するためのメモリ手段とを備えており、前記メモリ手段は、前記各論理要素の多数の異なる設定を保存するように形成及び構成されている。好ましくは、メモリ手段は前記各インターコネクト手段の多数の異なる設定を保存するように形成及び構成されている。
【０００５】
このような装置は、前記各論理要素の異なる設定でプログラムされたとき、複数の設定間の（論理要素及び好ましくはルーティングも含む）ファブリック（ｆａｂｒｉｃ、基礎構造）の固定リソース（ｆｉｘｅｄ  ｒｅｓｏｕｒｃｅ）を時分割（タイムシェアリング）することによって、論理密度を増加させるという利点を有する。そして、本発明の第２の実施例によれば、プログラマブル論理回路（ＰＬＣ）は、複数の論理要素及び複数のインターコネクト手段と、論理要素及びインターコネクト手段の設定を保存するためのメモリ手段と、を備えており、前記各論理要素の多数の異なる設定が前記メモリ内に保存される。好ましくは、メモリ手段は、前記各インターコネクト手段の多数の異なる設定をも保存する。
【０００６】
使用の際、一般に、外部システムクロック信号が、ＰＬＣのファブリック全体に適用される。好ましくは、ＰＬＣは、ＰＬＣに適用されたシステムクロック信号を修正クロック信号に変換するための手段をさらに含む。好ましくは、前記手段は、ＰＬＣのシステムクロックサイクル（周期）を所定数のサブサイクル（下位周期）へと分割する。以降、これらのサブサイクルを「ファブリックサイクル」と呼称し、修正クロック信号を「ファブリッククロック信号」として呼称する。同様に、以降、システムクロック信号をファブリッククロック信号へと変換させるための手段は、ファブリッククロック手段と呼称する。
【０００７】
ＰＬＣは、ここではシステムクロックサイクルは４つのファブリックサイクルに分割される場合には、１つのシステムクロックサイクル内の各ファブリッククロックサイクルに例えば、０，１，２，３の数字に割り当てられるように形成及び構成される。好適には、前記論理要素のそれぞれ異なる保存された設定は、それぞれのファブリックサイクル番号に関連付けられている。
【０００８】
好ましくは、ＰＬＣは、特定の設定に関連付けられたファブリックサイクル番号に関するファブリックフェーズ（位相）信号によって、論理要素及びインターコネクト手段の設定を保存するメモリ手段をアドレス指定するように形成及び構成されており、そのファブリックサイクルの設定を読み取って相関する論理要素をそれに応じて設定する。
【０００９】
例えば、インターコネクト手段は、インターコネクトブロックを備える。好ましくは、前記インターコネクトブロックのそれぞれ異なる保存された設定が各ファブリックサイクル番号に相関されて、ＰＬＣは、ファブリックサイクル番号に関するファブリックフェーズ（位相）信号によって、インターコネクトブロックの設定を保存するメモリ手段のアドレスを指定するように形成及び構成されており、ファブリックサイクルに相関する前記インターコネクトブロックの設定を読み取ってファブリックサイクルのインターコネクトブロックをそれに応じて設定する。
【００１０】
論理要素及びインターコネクトブロックの設定を保存するメモリ手段は、スタティック型（静的）設定メモリを備える。その上、メモリ手段はデコーダをさらに備える。
【００１１】
論理要素は、便宜上、ルックアップ（参照）テーブル（ＬＵＴ）を備えうる。ＬＵＴは、基本的に、アドレスが入力として働き、データ出力が論理出力を提供する小メモリである。つまり、４入力、１出力のＬＵＴ（４：１ＬＵＴ）は、実際に、１６エントリ（入力）、１ビット幅のメモリである。本発明の時分割スキーム（方式）では、システム内のＬＵＴは、
好ましくは、ファブリックサイクルのＬＵＴ構成を提供する各ファブリックサイクルのエントリを有する記憶（ストレージ）メモリを有する。
【００１２】
当然ながら、各ファブリックサイクル内に定められる論理は、他の任意のファブリックサイクルにその出力を送信可能であることを必要とする。特定のＬＵＴの入力が直前のファブリックサイクルによって提供されず、当該入力が干渉するファブリックサイクル内の別のＬＵＴによって必要とされている場合、追加の記憶手段が、それが要求されるまでその値を保存するように提供される必要がある。即ち、この目的として、ＰＬＣは好ましくは、例えば、ＬＵＴにつき、１以上の追加の記憶レジスタで形成されるバッファ（緩衝）手段をさらに含む。
【００１３】
好ましくは、ファブリッククロック手段は、例えば、メッシュ有効化オシレーション（Ｍｅｓｈ−ｅｎａｂｌｅｄ  ｏｓｃｉｌｌａｔｉｏｎ）を使用して、ＰＬＣのファブリックに亘って分配される多数のクロックノードを備える。
【００１４】
任意に、ＰＬＣはファブリッククロック手段が、省電力機構として使用されるように便宜上構成されうる。例えば、低電圧振幅（ＬＶＳ）のような低電圧信号伝達スキームが使用されうる。
【００１５】
本発明の第３の実施例によれば、複数の論理要素及び複数のインターコネクト手段と、論理要素及びインターコネクトの構成を保存するためのメモリ手段と、を備えるプログラマブル論理回路（ＰＬＣ）の演算方法であって、当該方法は、前記メモリ手段内の前記各論理要素の多数の異なる設定保存するステップを含む。好ましくは、前記各インターコネクト手段の多数の異なる設定も前記メモリ手段内に保存される。
【図面の簡単な説明】
【００１６】
【図１】４つのゲート装置を有するパイプ記憶回路の一例の図。
【図２】本発明の一実施形態に従う、入力回路の図。
【図３】パイプライン型の２サイクルの例示図。
【図４（ａ）】時分割方式のルックアップテーブル（ＬＵＴ）の図。
【図４（ｂ）】ＬＵＴの入力マルチプレクサの選択信号を制御することによって、ＬＵＴ入力及びバッファ入力を時分割することを説明する図。
【図５】従来のプログラマブルインターコネクトブロックの図。
【図６】本発明の一実施形態に従う、時分割方式のプログラマブルインターコネクトの図。
【図７】インターコネクトブロック内の可能なルーティング階層を示す図。
【図８（ａ）】本発明において利用されるクロックノードの図。
【図８（ｂ）】ｆクロック信号がどのようにｆフェーズ信号に関係するかを示す図。
【図９】１６クロックノードのメッシュを概略的に示す図。
【図１０】２つの論理ブロック（ＬＢ）間の２×２のルート接続を概略的に表す図。
【図１１（ａ）】低電圧振幅（ＬＶＳ）２：１多重通信回路を示す図。
【図１１（ｂ）】ルーティングを介したＬＵＴからセンス増幅器への典型的な信号経路の図。
【図１２】２つのフェーズルーティングスキームにおける様々な信号を示すグラフであって、横軸の時間に対して縦軸に信号電圧をプロットしたグラフ。
【図１３】４つのフェーズルーティングスキームにおける様々な信号を示すグラフであって、横軸の時間に対して縦軸に信号電圧をプロットしたグラフ。
【図１４】入力設定メモリ列内の基本回路の図。
【図１５】デコーダを使用する実施形態における選択ライン発生を示す図。
【図１６】複数の選択ラインを有する実施形態を示す図。
【図１７（ａ）】最上位の設定メモリを示す図。
【図１７（ｂ）】別の最上位のルート設定メモリを示す図。
【図１８】様々な回路入力で使用されるセンス増幅器を示す図。
【図１９（ａ）】アクティブローのセンス増幅イネーブル信号（ｓａｅ＿ｇｅｎ）を発生させるために用いられる回路の図。
【図１９（ｂ）】入力設定メモリの最上位の図。
【図２０】時間に対してプロットされた電圧における様々な制御信号のタイミング図。
【図２１】スタティック設定メモリを使用する実施形態における、設定メモリセルの図。
【図２２（ａ）】図２１のスタティック設定メモリとあわせて使用される４エントリマルチプレクサ回路メモリの図。
【図２２（ｂ）】スタティック設定メモリエントリ回路の図。
【図２３（ａ）】図２１のスタティック設定メモリで使用するように構成されている図１９（ａ）のｓａｅ＿ｇｅｎ回路の修正版の図。
【図２３（ｂ）】スタティック入力設定メモリの最上位の図。
【図２４】図２３（ａ）の回路の省電力版を示す図。
【図２５】静的デコードされたデータセルの図。
【図２６】時間に対して様々な信号（Ｖ）としてプロットした、２フェーズインプランテーション内のスタティック回路のタイミングを表すグラフを示す図。
【図２７】本発明に使用するためのセンス増幅器（ＳＡ）の図。
【図２８】ＬＵＴ４の低電圧作動振幅（ＬＶＤＳ）スキームを示す図。
【図２９】デコーダを使用する図２８の回路に代替可能な回路アーキテクチャを示す図。
【図３０】ＬＵＴデコーダ回路の図。
【図３１】４フェーズルーティングスキームの論理ブロック内のＬＵＴ配列の図。
【図３２】本発明に使用されるバッファアーキテクチャの図。
【図３３】拡張ルックアップテーブルの概略図。
【図３４】図３３の拡張ルックアップテーブルでのＬＵＴ出力選択を示す図。
【図３５】複階層拡張ルックアップテーブルの図。
【発明を実施するための形態】
【００１７】
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）のようなプログラマブル論理回路の基本アーキテクチャ（構造）は、設定可能な論理要素又はブロック（ＬＢ）及びルーティング（経路）チャンネルのアレイから構成される。古典的なＦＰＧＡ論理ブロックは、４入力ルックアップテーブル（ＬＵＴ）と、フリップ・フロップとから構成される。論理ブロックは、４つのＬＵＴの入力と、フリップ・フロップへのクロック信号入力とを有する。ルーティングチャンネルはしばしば、プログラマブルインターコネクトブロックを含む。ＦＰＧＡ内のメモリセル（例えばＳＲＡＭセル）における設定ビットとして保存された設定データは、ＬＢ及びそれらの間のルーティング接続の論理演算を定める。ＦＰＧＡの製造者又はカスタマー／設計者は、通常、ＦＰＧＡ製造者による権利で保護された「ｐｌａｃｅ−ａｎｄ−ｒｏｕｔｅ」ソフトウェアを使用して、ＦＰＧＡをプログラムすることができる。
【００１８】
本発明は、複数の設定間のファブリック（論理要素及びルーティング）の固定リソースを時分割することによって、論理密度を増加させる。
アーキテクチャの重要な点は、
１）使用の際、システムクロック信号は、一般的にファブリック全体に、又は、プログラマブル論理回路のサブセクションに適用される。本発明では、各システムクロックサイクルは、ファブリックサイクルとして呼称される所定数のサブサイクルに分割される。システムクロックサイクル内の各ファブリッククロックサイクルには、システムクロックサイクルが４つのファブリックサイクルに分割されるところでは、例えば０、１、２、３の番号が割り当てられる。
２）論理演算及びプログラマブル論理回路の接続を定める１組の設定ビットを有する代わりに、多数の異なる設定が、システムサイクル内のファブリックサイクル番号に関して後述するファブリックフェーズ（「ｆフェーズ」と称する）信号によってアドレス指定されるメモリ（「設定メモリ」と称する）内に定められている。
３）各ファブリックサイクルにおいて定められた論理は、他のファブリックサイクルにその出力を送信可能である必要がある。
【００１９】
例えば、図１の回路において、（本発明に従う）時分割は、回路中の全てのゲートＰ、Ｑ、Ｒ、Ｓを１つの論理回路内に包含させ、明らかに領域を節約するだけでなく電力も節約する。なぜなら、論理要素間のルートが削減されるからである。
【００２０】
システムサイクル内のファブリックサイクル数は、システム内の時分割の度合いを定める。これは、時分割値（ＴＳＶ）と呼ばれる。図１は、４のＴＳＶを有する回路を例示する。典型的なアーキテクチャは、例えば最確数が８又は１６であるように、実際にはより高いＴＳＶを有する。
【００２１】
（入力バッファ）
論理要素の設定に保持されたゲートへの入力が先行するファブリックサイクルによって与えられず、且つ、当該入力が干渉するサイクル内の別のゲートによって必要とされているところでは、必要となるまで値を保存するように追加の状態（ステート）が提供される必要がある。この追加の記憶（ストレージ）レジスタがバッファと呼ばれる。入力につき提供されるバッファの数は、アーキテクチャの重要な点である。入力を駆動するように選択されたバッファは、ファブリックサイクル（時にｆサイクルと呼称）内のそれが必要とされる入力に多重送信される。
【００２２】
例えば、図１のゲートＰからゲートＳへの接続は、ファブリックサイクルＰの端部で値をバッファリング（バッファに格納）すること、及び、ファブリックサイクルＳの始まりでのバッファ内の値にアクセスすることによって実行される。
【００２３】
図２に、論理要素への通常の入力構造を示す。入力マルチプレクサ１０は、特定のサイクル内のどのルートから入力を得るかを選択する。値は入力状態の記録要素１２内にキャプチャ（捕捉）される。先行のｆサイクルの前に、入力がｆサイクルから送られる場合、８つのバッファ（Ｂｕｆ０〜７）の１つ（図２ではそのうちの１つの１４のみが詳細に示される）からそれが生じ、そのバッファが代わりに選択される。
【００２４】
（システムサイクル境界）
図３の、ＴＳＶ＝４のパイプライン型の２つのサイクルを例として考えてみよう。パイプラインが完全にロード（搭載）状態であると想定しよう。サイクルｎ内のゲートＰ，Ｑ，Ｒ，Ｓが、データセットＮで演算し、サイクルｎ＋１内のゲートＴ，Ｕ，Ｖ，Ｗがデータセットｎで演算し、且つ、ゲートＰ，Ｑ，Ｒ，ＳがデータセットＮ＋１で演算する。
【００２５】
また、各サイクル内の４つの全てのゲートが、同じＬＥにマッピング（位置付け）（即ち、ＬＥ１（図示せず）へのゲートＰ／Ｑ／Ｒ／Ｓ及びＬＥ２（図示せず）へのＴ／Ｕ／Ｖ／Ｗのマッピング）されることを想定しよう。
【００２６】
ファブリックサイクル（ｆサイクル）は、０からＴＳＶ−１にカウントされ、ＴＳＶ−１の後に０にラップバック（ｗｒａｐ  ｂａｃｋ）される。カウントが０にラップバックすると、システムクロックの立上り（エッジ）は、ｆサイクルクロックの立上り（エッジ）で発生する。
【００２７】
システム内に明確なレジスタはない。状態記憶は、入力又はバッファ状態レジスタ内で実行される。図３の印の付いた接続において、ネットＡはシステムクロックの境界に登録されていないが、その値はＬＥ２のｆサイクル１入力内に保存されるか、あるいは、ＬＥ２によってアクセス可能なバッファ内に保存される。
【００２８】
制限が存在する。即ち、ネットＢは、ｆサイクル０のゲートＰからｆサイクル３のゲートＷへの接続を試行している。
【００２９】
しかしながら、ネットＢをＬＥ２のｆサイクル３に保存しようとする場合、それは次のパイプ段階の最新サイクル（例えば、所望するデータセットＮの代わりにデータセットＮ−１）内でピックアップされる。これは次の制限を設ける。つまり、ＴＳＶのｆサイクル以上を先に接続することができない。
【００３０】
ネットＢの接続は、その値をバッファリングすることによって実行される。
【００３１】
（ＬＵＴ）
ＦＰＧＡアーキテクチャは、設定可能な論理で構築される。当該論理は、任意の組の入力に有効な論理関数を実行するようにプログラム可能である。ルックアップテーブル（ＬＵＴ）は、設定可能な論理要素の一般的な形態である。基本的にＬＵＴは、アドレスが入力として働き且つデータ出力が論理出力として働く小メモリである。即ち、図４（ａ）に示した、４入力Ａ，Ｂ，Ｃ，Ｄで１出力のＬＵＴ（４：１ＬＵＴ）は、実際に、１６エントリ１ビット幅メモリである。
【００３２】
本願の時分割スキームにおいて、システム内のＬＵＴは、各ファブリックサイクルのエントリを有する記憶メモリ２２（設定メモリ２２）を有し、該エントリは当該サイクルのためのＬＵＴ設定を提供する。（ファブリックサイクル数に関する）ファブリックフェーズ信号２４は、サイクル内のＬＵＴを設定するように、どのエントリが読み取られるのかを制御する。
【００３３】
時分割ＬＵＴの演算は、パイプラインされることが可能であり、即ち、設定メモリ２２は、ファブリックを先行するファブリックサイクル内で読み取り可能であり、ＬＵＴ２０の設定に必要である。別の方法は、２又は４フェーズ論理スキームを使用することである。２フェーズスキームのために、（以下のセクションで２及び４フェーズルーティングについて説明するが）設定メモリ２２は、フェーズＢ内の設定データを提供することがすぐにできるように、フェーズＡ内で読み取られている。
【００３４】
（時分割入力）
ＬＵＴ２０への入力及びバッファＢｕｆ０−７への入力もまた時分割される。図４（ｂ）に示すとおり、これは、設定メモリ２５からの入力マルチプレクサ１０の選択信号を制御することによって達成される。
【００３５】
設定メモリ２５の幅は、入力マルチプレクサ１０の需要に依存する。例えば、１つのホットで完全にエンコードされたもの、又は、組み合わせたものもしくは多段のもの（例えば４：１マルチプレクサの２レベルツリー）である。
【００３６】
（論理ブロック）
ＦＰＧＡアーキテクチャはしばしばＬＵＴをブロックにグループ化する。これらブロック内で、ＬＵＴは高度に相互連結されている。論理ブロック（ＬＢ）は０から３の４つの入力ＬＵＴで成ると定義する。
【００３７】
（ルーティング）
ルーティングもまた時分割される。従来のセグメント化されたＦＰＧＡルーティングスキームでは、プログラマブルインターコネクトブロック（プログラム可能な内部接続ブロック）とはルートの接続性が定められるところである。図５に示される従来のプログラマブルインターコネクトブロックでは、６つのメモリセル３０が、マンハッタン（ｍａｎｈａｔｔａｎ）ルート（北Ｎ、東Ｅ、南Ｓ、西Ｗ）間の全ての可能な接続を定めるのに必要である。図５に、パストランジスタを使用するルーティングアーキテクチャを示す。これは、信号が両方向に伝わることを可能とする。双方向性のバッファアーキテクチャが代替的に使用可能である。
【００３８】
図５のスキームを時分割アーキテクチャに変換するためには、ＴＳＶエントリＮＷｃ，ＮＥｃ，ＷＥｃ，ＮＳｃ，ＳＷｃ，ＳＥｃを有する設定メモリ３５がメモリセルに取って代わる必要がある。これは図６に示されている。また、設定メモリ３５のアクセスを、ルーティングの演算でパイプライン化することができる。
【００３９】
ルートはＬＵＴ入力に接続可能である必要があり、且つ、ＬＵＴ出力もルートに接続可能である必要がある。図７は、４つのプログラマブルインターコネクトブロック（ＰｉＢ）３６，３７，３８，３９を含むこのような構成を示す。ここで、Ｑ＝各ＬＵＴ出力（O／ｐ）である。マルチプレクサ４０は、ＬＵＴ入力の特定のルートを選択することに使用される。
【００４０】
ルーティングはしばしば、（例えば１論理ブロック離れた）短距離、又は、（例えば６論理ブロック離れた）長距離を接続するように、階層に分割される。図７は、１つの階層又はインターコネクトしている組の階層を示す。複数のルート組は次の表のように使用可能である。
【表１】
2011514065.tif 000003
【００４１】
さらなる接続は、ルーティング階層間に提供される。例えば、ｂｙ１をｂｙ２ルート又はｂｙ６ルートに接続する。
【００４２】
ＬＵＴ入力マルチプレクサ１０の大きさ（幅）を制限するために、それらが接続するルートの数が制限される。可能な限り多くのルートが利用可能なＬＵＴに到達可能であるように、利用可能なルートはＬＵＴ内の４つの入力Ａ，Ｂ，Ｃ，Ｄに亘って広がる。
【００４３】
（クロッキング）
システムクロック信号（システムクロック）は、プログラマブル論理回路のファブリック全体に亘って駆動される必要がある。ファブリッククロック信号（ファブリッククロック）はまた、プログラマブル論理回路のファブリック全体に亘って同期して駆動される必要がある。このようなクロックは高周波数を有する必要がある。例えば、１６のＴＳ値を有するアーキテクチャ上の１２５Ｍｈｚの典型的なシステムクロックは、２Ｇｈｚのファブリッククロックを与える。大きいチップ上に歪みの少ない高周波数クロックを分配することは可能であるが難しい。
【００４４】
確実にファブリッククロックを分配する別の方法は、それをローカル（局所的）に自動的に時間制御、且つ、オシレーション（発振）をメッシュイネーブル（ｍｅｓｈ−ｅｎａｂｌｅ）にさせることである。本発明はこの技術を使用する。このようなシステムは、クロックノードのアレイ（又は「メッシュ（ｍｅｓｈ）」）６０（図９参照）によって構成される。１つのクロックノード５０は図８（ａ）に示されている。
【００４５】
このノード５０において、遅延Ｄを通したタイミングは、標準ＬＵＴのそれ（タイミング）に適合する。Ｄの出力は、全ての方向Ｎ，Ｅ，Ｓ，Ｗに向けて周囲のクロックノードに向けて駆動される。クロック信号はまた、クロックノードのローカルＬＵＴにファブリッククロックを提供するようにバッファリングされる。
【００４６】
クロック信号５１，５２，５３，５４はまた、全ての方向において、クロックノード５０によって、隣接するクロックノードから受け取られる。ノードにおける次のオシレーションは、全ての周囲のクロックノードによってイネーブル（有効）にされたときにだけ先に進むことができる。従って、最も遅い隣接クロックノードが各クロックノードの周波数を設定する。なぜなら、クロックノード５０自体が最も遅い周波数を有しているので、１つのクロック信号Ｎ’も不完全に任意の方向に駆逐されて、その後に元に戻る。
【００４７】
セルフタイム化（自動タイミング化）されているとはいえ、ＮＡＮＤゲート５５に関連する追加の遅延、及び、ロードＬＵＴを駆動することによる固有のオーバーヘッドが存在し、（これは）安全なマージンを提供する
【００４８】
この方法では、定常状態システムにおいて、全てのノードは、最も遅いノードの遅延を有する。ノードの遅延における任意の変更は、各サイクルごとに１つのクロックノードホップに伝播させる。変化率がクロックオーバーヘッド内に取り入れ可能である限り、これでも構わない。ある地点での電力供給における一時的なディップ（浸漬）は、その領域のタイミング回路により長い遅延を示させ、次のクロック周期を遅くする。メッシュは４つの周囲のクロックをもまた遅くする。電力ディップによって影響される回路によって発生した信号もまた遅い。この信号が隣接して接続されたメッシュの外側にあるクロックによってラッチされない限り、遅い信号は遅いクロックに適合する。
【００４９】
各クロックノードは、グリッド又はＨツリー分配スキームを通して、そのｆクロックを論理ブロックの周囲のアレイに駆動する。分配チェーン（鎖）の段階数が小さく、全てのクロックがローカル（局所的）であるので、クロック歪みの形状が最小化される（例えば複数レベルのＨツリーの極端なパスの差が排除される）。
【００５０】
ファブリッククロック信号は、ファブリッククロック信号の数をカウントするために各クロックノード５０内のカウンタを使用するシステムクロックに関連付けられる。必要数に達すると、システムクロックの立ち上りが到達するまで、次のファブリッククロックは停止される。そしてこれがカウンタをリセットして、ファブリッククロックはもう一度イネーブルされる。
【００５１】
別の可能な演算モード（セルフタイム化（ｓｅｌｆ−ｔｉｍｅｄ））が存在する。ここで、適用される外部システムクロックが利用されず、その代わりにファブリッククロックは自身の時間で可能な限り速くサイクルする。回路は、作業に基づいたハンドシェイクシステムが可能になるように設計される。これは非常に電力効率が良い。タスクは完成して、システム及びファブリックネットワーク／メッシュは次のタスクが現れるまで停止する。
【００５２】
（ファブリックサイクルカウンタ）
ある時点では、ファブリッククロックは、ファブリックサイクルカウントを制御することを必要とする。即ち、ｆクロックは、ＴＳ値０，１，２などと値を増加させる必要がある。これは、ファブリックフェーズ（ｆフェーズ）信号０，１，２などの形態で、必要な設定にアクセスするように設定メモリに適用される。図８（ｂ）は、ｆクロックがｆフェーズ信号であるｆフェーズ０−３にどのように関係するのかを示す。これは、上位レベル（例えばクロックノード５０）で、又は、ＬＢそれ自体又はＬＵＴの内部のような低位レベルで実行可能である。本実施形態では、各ＬＢ内のカウントを個別に制御することを可能とするようにＬＢ内にカウンタが存在する。これは、１６ＴＳシステムにおいて、ＬＢへ入力されるたった１つのファブリッククロックが存在し、それは、ＬＢ周囲に分配される１６のｆフェーズ信号を形成するようにＬＢ内のカウンタに接続されている。
【００５３】
（システム設定）
このようなＴＳスキームにおいて、アーキテクチャを決定づけるいくつかの基本的なポイントがある。
１．ＴＳＶがより高いほど、より高いゲート密度が可能になる。
２．ＴＳＶがより高いと、より低い全体の周波数が達成可能である。
３．ファブリックサイクルにつき１つのＬＵＴが、好適な開始点であろう。なぜなら、より高い速度且つより低い電力の小さい信号回路デザインをイネーブルするからである。
従って、これらの基本的なポイントが与えられると、完全なファブリックシステムが以下に説明する手段で構築可能である。
【００５４】
（電力考察）
より高度な論理密度を効果的に達成すると、所与のシステムに必要な面積を削減する。これは、低いスタンバイ（漏れ）電流が達成されることを意味する。また、（複数の）ＬＵＴ自体がより高密度になると、それらの間の実効距離が小さくなる。だから、有効電力を省力する可能性がある。この密度改善による省力が、各ファブリックサイクル内の設定データを読み取る際に消費される追加の電力をカバーするのに十分であろうか？この問題に以下の解析によって答える。
【００５５】
ＴＳスキームが４倍の密度に増加可能であることを想定すれば、典型的なトラック長は半分になるであろう。２つの論理回路（ＬＢ）７１，７２間の平均接続を考えてみよう。（ＴＳスキームではない）標準のスキームでは、接続は「２×２ルート」スキームであり、即ち、２つのステップ７３，７４において接続された４つの論理ブロックからなる（図１０参照）。全体長は、２４０μｍ×２＝４８０μｍである。ＴＳスキームにおいて、４倍に増加した密度で、同じ２つの論理ブロック７１，７２間の平均ルート長は、（１又は２つのステップで接続されている（図１０参照）２つの論理ブロックだけである。これは、２４０μｍのトラック「電力」を省力する。従って、電力を節約するためには、マルチプレクサ設定データの読み取りは、２４０μｍのトラックを駆動するよりも低い電力である必要がある。
【００５６】
ＴＳスキームにおいて、システムクロックは、ＴＳ時間（ＴＳ  ｔｉｍｅｓ）をユーザクロックよりも速く動作させる。しかしながら、クロックは、ＴＳ時間少ないＬＢに亘って分配される必要がある。
【００５７】
どの程度のトラック相当の電力を、４ビットのマルチプレクサのデータを読み取り及びデコーディングが必要とするのであろうか？基本的には非常に多い。ＳＲＡＭセルは、高い負荷を与える。なぜなら、それらは、ゲート接続される２つのアクセストランジスタを有するからである。また、従来のＳＲＡＭセルは異なるビットラインを有する。すなわち、アクセスにおいてビットライン（ビット線）がいつも推移する。
【００５８】
１・１６又は１・８のマルチプレクサの選択には、４又は３つのセルを必要とし、そして、４：１６又は３：８のデコーダを必要とする。４つの従来の異なるビットラインＳＲＡＭセルの読み取りとは、４つのビットラインを駆動することを意味する。４つのセルのワードライン（ワード線）を駆動することは多くの電力を使用する。また、デコーダ自体が、多くのゲート接続を必要とし、多くの電力を消費する。単終端ビットラインを使用することさえ（即ち、平均で４から２へと移動する数を半分にする）、所望の目標を遥かに超える電力を消費させる。
【００５９】
１つの解答は、別のメモリ技術を使用することである。フラッシュ電気的消去可能なロム（ｅｅｐｒｏｍ）は、少なくともＳＲＡＭの大きさの４分の１であり、例えば、０．１３μｍのＮＯＲ型フラッシュセルは０．４μｍ２である。
【００６０】
これは、マルチプレクサデータを１つのホットな形態に、範囲からの１ビットを１に設定して保存することを可能にし、デコーダの必要性を排除する。フラッシュセルはまた、より低いワードラインの容量を有する。なぜなら、それらは、１つだけのトランジスタを有し、且つ、より厚い酸化物を有するからである。全体的に、読み取りは２１０μｍのトラックと大体同じ電力で実行されると予測される。
【００６１】
フラッシュはもちろん不揮発性であり、これはＦＰＧＡが分離起動ＰＲＯＭを要求しないという大きい利点を有する。また、フラッシュは、ＳＲＡＭと比較して非常に小さい漏れ特性（即ち可能性としてはゼロ）を有する。しかしながら、複数のタスクを実行するために、又は、異なる演算モードに対処するために機能を変更するように、回路を迅速に再設定することができないという欠点がある。
【００６２】
別の解答は、マルチプレクサのためにデコーダを記憶セル内に組み込むことである。この方法で、記憶セルの数が最小化され、１ビット線のみが移動し、マルチプレクサに直接的に接続可能である。ワード線によって駆動されるゲートの量も削減される（設定メモリの機能上の詳細は以下を参照）。フラッシュ処理に関連する、追加された複雑さ及びリスクにより、本発明の好ましい実施形態は、以下のアーキテクチャで構築される。
【００６３】
（ファブリックサイクルクロックを利用する：低電圧振幅スキーム）
好ましい実施形態では、ファブリックサイクルクロックは、省電力機構として使用される。これを実施する１つの方法は、時にはＬＶＤＳ（低電圧差動振幅）として表されるＬＶＳ（低電圧振幅）のような低電圧信号スキームを使用することである。例えば、スキームは、以下で説明されている。
（ftp:download.intel.com/technology/itj/2004/volume08issue01/art04_lvs_technology/vol8iss1_art04.pdf）
【００６４】
ファブリックサイクルクロックによって駆動されるＬＢ入力及びバッファ内のフリップ・フロップ（例えば図７の入力、Ｂｕｆ０−７）は、低電圧入力信号を感知するセンス増幅器になる。より良いノイズ耐性のために信号は差動（信号）である。これは、インターコネクトのＴＳ特性がブロック間い非常に小さい信号密度が存在することを意味しているため、ＴＳスキームへの理想的な適合であり、差動スキームの信号数を２倍にするのに十分以上の空間を許容する。
【００６５】
ＦＰＧＡの高度の構造は、ＬＶＤＳシステムに適する。トラックタイプ（ｂｙ１，ｂｙ２，ｂｙ６．．．）の限定数は、全ての可能な組合せの注意深いシミュレーションが（Ｉｎｔｅｌのソリューションの場合と同様に）複雑なＥＤＡツールを作成する必要なしに内々に実行されること可能にする。
【００６６】
ＬＶＤスキームは、電力を節約し、ノイズを減少させる。電力は電圧の２乗関数であり、振幅の６７％の削減は、９０％の省電力につながる。
【００６７】
ＬＵＴ及びマルチプレクサの導入は、また非常に単純化されている。図１１（ａ）に示すとおり、ＬＶＳ２：１のマルチプレクサ８０の真数と補数の半分が単純に実行される。
【００６８】
ＬＵＴは、このようなマルチプレクサのツリーから構築可能である。ＬＵＴ４は、２：１のマルチプレクサの４つの段階からなり、各段階は図４のようにＬＵＴ４  ２０への入力Ａ，Ｂ，Ｃ，Ｄの１つによって選択される。差動マルチプレクサは、構造の２つのコピーを必要とし、１つは真数であり１つは補数である。このようなＬＶＤＳマルチプレクサは、半分のＣＭＯＳマルチプレクサのトランジスタを有し、ＰＭＯＳ装置を有さないので、無駄なウェル境界（ｗｅｌｌ  ｂｏｕｎｄａｒｙ）領域がないために面積が倹約される。
【００６９】
ＬＶＤＳはまたＸＯＲ（排他的論理和）が得意であり、ＸＯＲ演算回路に不可欠である。真数と補数のデータを単に選択的にスワッピング（交換）する。
【００７０】
当然、ルーティングマルチプレクサはこのような構造から構成される。このように、ルーティングを介したＬＵＴからセンス増幅器へのパス全体は、ＮＭＯＳパスゲートを通過する。このことはＬＵＴのゲート上の入力から受信センス増幅器での出力へ伝わる信号が低電圧であることを意味する。図１１（ｂ）は、信号パスを表す。
【００７１】
（アーキテクチャによる省電力）
別の実施形態では、異なる省電力技術を採用する。例えば、ＴＳスキームにおける省電力のための別の方法は、時間ファンアウトを使用することである。２：１マルチプレクサとして設定された３２の他のＬＵＴの選択入力を駆動するＡＮＤゲートとして設定されるＬＵＴについて考えてみよう。標準のアーキテクチャにおいて、これには３３のＬＵＴが必要であり、時間調節（タイミング）における余裕（ｓｌａｃｋ）の有無に関わらず、おそらく複数のレベルのルーティングを使用して、選択信号はそれらの全てに影響を及ぼす必要がある。
【００７２】
ＴＳスキームにおいて、時間調節に余裕がある場合、ファンアウトは空間と同様に時間に関して実施される。３２のＬＵＴは各々において８つのＬＵＴを有する４つのファブリックサイクルに折り畳まれ、選択信号は９つのＬＵＴ（それらの１つが駆動ＬＵＴに折り畳まれている場合には８）に及びさえすればよい。
【００７３】
（実施：２フェーズルーティングスキーム）
ＬＶＤＳスキームは、プレチャージ（ｐｒｅｃｈａｒｇｅ）／均一化（ｅｑｕａｌｉｓｅ）された信号ラインを必要とする。これは、ルーティングスキーム（プレチャージ／均一化及び統合（ｉｎｔｅｇｒａｔｅ））への２つのフェーズが存在することを意味する。データのスループットを最大化するために、全てのルーティングが２フェーズでなければならない。それらを奇数（ｏｄｄ）、偶数（ｅｖｅｎ）であるｏ及びｅとする。フェーズｅが統合状態にあるとき、フェーズｏはプレチャージ／均一化の状態にあり、逆も同様である。
【００７４】
プレチャージ／均一化は、以下の２つの方法で達成可能である。
１．ルートはＶｓｓ（負の電力源電圧）又はＶｄｄ（正の電力源電圧）にプレチャージ及び均一化される。
２．ルートの真数／補数は均一化される。中間点は２つの信号間のどこか（通常は丁度中間）で発見される。
【００７５】
両方の選択肢が図１２に図示されている（スキーム１は上方のグラフでフェーズＥ及びフェーズＯにより表され、スキーム２は下方のグラフでフェーズＥ及びフェーズＯにより示される）。第２の「均一化のみ」のスキームはさらに電力効率が良い。
・３つの装置（２プレチャージ及び１均一化）とは対照的に、１つだけの均一化装置が駆動される。
・真数及び補数ライン上の電圧振幅は半分になり、ラインにつき電力を４分の１にして、２つのラインがあるので電力全体を半分にする。
【００７６】
統合フェーズの最後で、宛先論理ブロックの入力又はバッファのセンス増幅器がファイア（解除）される。センス増幅器の出力はラッチされ、センス増幅器自体がリセットされる。センス増幅器の内部ノードが均一化されるか、又は、均一化フェーズの間に入力ルートに接続されることは重要である。なぜなら、そうしないと、センス増幅器内の残余データは、次のセンス増幅器のファイア処理の結果に影響を与えうるからである。
【００７７】
２つのフェーズルーティングスキームはプログラマブル論理回路の設定メモリ２２、３５で連結される。設定メモリも２つのフェーズにも分割されるので、全奇数のファブリックサイクル及び全偶数のファブリックサイクルのためのメモリが存在する。
【００７８】
フェーズｅの均一化の間、フェーズｅの次の設定はフェーズｅの設定メモリから読み取られる。設定メモリのビットラインの移動速度はかなり遅いので、ファブリッククロックサイクル全体を必要とすることが考えられる。均一化の最後で、新しい設定が構築される。マルチプレックスのゲートがそれらの設定メモリによってイネーブルされるので、全構成ルートは接続されて、均一化装置（イコライザ）によって均一化される。
【００７９】
統合フェーズに移動すると、均一化装置は停止し、信号がルート上に構築されることが許容される。この間、ルートを形成する全ての偶数メモリの全ビットラインの活性ビットラインは、ルートを保持し、信号の構築を確実にするように、高いままである。
【００８０】
統合フェーズの最後で、偶数メモリビットラインは、低く下げられ、センス増幅器がファイアされる。ここで、可能性としては存在する次のビットラインの構築開始と同時に古いビットラインをリセットすることが必要であるという問題がある。２つの解答を以下に述べる。
１．奇数及び偶数の両方のメモリを２つに再度分割して、ダブル偶数（ｄｅ−０，４，８）、シングル偶数（ｓｅ−２，６，１０）、ダブル奇数（３，７，１１）及びシングル奇数（１，５，９）と命名される４つのメモリを有する。
２．リセットをセルフタイム化して、リセットが完了した後に新しい信号を構築させることのみを許容する。
【００８１】
（４フェーズルーティングスキーム）
別のアプローチは、時間に対する電圧のプロットである図１３に説明される、４フェーズルーティングスキームを使用することである。このようなスキームは、以下の利点及び欠点を提供する。
（利点）
・センス増幅器をリセットする時間に余裕がある。
・シングル／ダブル偶数又はシングル／ダブル偶数信号パスを１つに組み合わせる必要がなく、速度を増加させる。
（欠点）
・２フェーズスキームのルート数が２倍になる。
・ＬＵＴ回路が２倍になり、各フェーズにＬＵＴが必要になる。
【００８２】
実際には、全ルートを含む十分な空間がない場合、追加のメタル層が必要であり、それが問題である。また、ＬＵＴ回路によって占められる面積が論理ブロック全体の状況において非常に大きい場合、ＬＵＴ回路が２倍になることが問題である。
【００８３】
（入力及びルーティング設定メモリ）
これらの設定メモリ２５（前述の時分割入力セクションで解説）は、それらが領域の大部分を占領するので、アーキテクチャの非常に重要な要素である。図１４は、１入力設定のエントリ又は列における基本回路を示す。
【００８４】
（センス増幅器（ＳＡ）なしにルーティングするためのデコーダ手段）
この技術では、８つのデコードラインｄ０−ｄ７を有するデコーダが、入力マルチプレクサ１０を通してパスを選択するのに使用される。図１４で示すように、エンコードされたデータＥＮ０，ＥＮ１はメモリの列９２に保存されて、その後、デコードツリーは、８つのデコードラインｄのうちのどのデコードラインが、それらが含むデータを基にして、活性化されるかを選択する。デコードツリーは、それぞれＥＮ０及びＥＮ１によってイネーブルされるｄ０−３及びｄ４−７を生成するように、（メモリの列９２の）セルＤ０及びＤ１の内容の真数及び補数のバージョンとなる。このように、状態量が最小化されるが、１のみのデコードラインが活性化される。
【００８５】
デコードラインｄは、低位にプレチャージされる必要があり、アクセスされたときにプレチャージが放出され、選択されたデコードラインが立ち上がる。選択されていないデコードラインは低位のままであるが、低位に保持されてもいない。即ち、浮動低位である（この状態に長く存在せず、カップリング（結合）機構がシミュレーションによって排除されるのでこれは許容可能である）。
【００８６】
デコードラインのプレチャージは、デコードラインと同様にデコードされうる追加の選択ラインを使用して、設定エントリによって制御される。
【００８７】
図１５は、選択ラインの生成を示す。回路を生成する選択ライン及びデコードラインは、ｆフェーズにつき１つのエントリである設定エントリを作成するように結合する。ここで、選択ラインは高位にプレチャージされる。メモリ列９２のセルＤ２によって選択された場合、ラインはグランドにディスチャージ（放電、解放）する。複数の選択ラインを有することで、それらが、複数のマルチプレクサ選択トランジスタを１つのデコードラインを逆多重化することを可能にする。このような逆多重化回路（デマルチプレクサ９０）は図１６で説明される。図１６では、選択ラインｓ［０］が高位である場合、１つのマルチプレクサ装置０が選択される。また、他方の選択ラインｓ［１］が高位である場合、異なるマルチプレクサ装置１が選択される。デフォルトのプレチャージされた状態ではｓ［０］及びｓ［１］の両方が高位であるが、デコードラインｄ［７：０］がこの状況において高位ではないので、これは有効である。このデマルチプレクサ回路の欠点は、デマルチプレクサ上の電圧が、満状態のＶｄｄ（正の供給電圧）からＶｄｄ−Ｖｔｎに減少することである。Ｖｔｎは、ｎｍｏｓ装置をオンにするしきい値電圧である。即ち、装置がオン状態になるためにゲート上で必要とする電圧である。
【００８８】
最高位の設定メモリは図１７（ａ）に示されているとおりである（他の回路（図１４−１６）は図１７（ａ）の最高位のメモリのサブ回路である）。この設計の消費電力を最小化することを確実にするように、様々なステップがとられる。
例えば、
・選択ラインｓ［１：０］が複製され、デコードラインｄ［３：０］の左半分のｅｎ０、及び、右半分ラインｄ［７：４］のｅｎ１によって有効にされる。これは、図１６のようなデマルチプレクサ９０の半分のみが駆動され、残りの半分がアクティブデコーダラインを見ることを意味する。
・デマルチプレクサは、選択ラインｓ［１：０］に直接的に接続されうる。これは、これらの振幅をＶｄｄ−Ｖｔｎからグランドレベルにまでに制限して電力を節約する。しかしながら、これも、マルチプレクサ装置が起動されるスピードを遅くする。
【００８９】
別の方法は、デマルチプレクサを使用する代わりにデコーダラインの数を２倍にし、１つだけの選択ラインを有することである。より簡易であるがより多くの面積を使用する。この方法はまた、より小さいマルチプレクサ（例えば、８：１）において使用されうる。この配置を有する最上位のルート設定メモリは図１７（ｂ）に示される。
【００９０】
（バッファ及び入力のためのデコーダ法）
ＬＵＴ入力及びバッファは、ルート化信号を検知するようにセンス増幅器を有する。これは図１８に示されている。センス増幅器（ＳＡ）１００は、設定メモリによって制御可能である。ＳＡは、設定メモリがイネーブルされたエントリを読み取っているときにのみファイアされる。センス増幅器のイネーブルされた信号ｓａｅ＿ｎはセンス増幅器１００をトリガー（始動）する。センス増幅器はまた、小振幅の入力がセンス増幅器自体によって駆動され、電力を浪費することを防止するように、入力信号９２から絶縁（分離）されている必要がある。デコードラインＤ［７：０］は、第１のマルチプレクサ段階の選択として動作し、第２のマルチプレクサ段階として選択信号ｓ［１：０］は分離信号として動作する。
【００９１】
図１９（ａ）に示された回路（ｓａｅ＿ｇｅｎ回路）は、アクティブな低位のセンス増幅器のイネーブルされた信号ｓａｅ＿ｎを生成する。設定メモリはまたｓａｅ＿ｇｅｎ回路からの均一化信号をも制御する。均一化は、メモリがアクセスされたときにのみ起こる。しかし、信号が自由に統合可能であるように、均一化はリリース（解除）される必要があるので、反対のフェーズクロックであるＣＬＫ１（例えば、ＣＬＫ０が偶数のフェーズクロックである場合、ＣＬＫ１は奇数のフェーズクロック）が、均一化信号をキャンセルするのに使用される。均一化は、マルチプレクサの中間段階に適用されるので、２つの均一化信号（ｓ［０］がイネーブルされているときに選択されたマルチプレクサの半分のｅｑ［０］、及び、ｓ［１］が選択されたときに半分のｅｑ［１］）が存在する。
【００９２】
以下のさらなる電力削減の方法が適用可能である。
・Ｖｄｄ−Ｖｔｎ付近の供給電圧が利用可能な場合、均一化ＮＯＲゲート１０１、１０２が、制限振幅選択ラインに接続可能である。
・そのゲートがｖｄｄに接続された状態で、各均一化信号の各選択ラインの分離ＮＭＯＳ１０３が、選択ラインｓ［１：０］の振幅を制限するように、より低い供給（例えば、Ｖｄｄが通常１．２Ｖであるときに０．８Ｖ）にゲート接続可能である。
【００９３】
入力設定メモリの最上位の図を図１９（ｂ）に示す。
【００９４】
４フェーズルーティングスキームにおけるこれらの制御信号のタイミング図を、時間に対する電圧プロットである図２０に示す。
【００９５】
（スタティック法）
他の実施形態で使用される別のアプローチは、スタティック（静的）設定メモリを使用することである。スタティック設定メモリの利点は、変更が必要ない場合にプレチャージ及び再評価における電力の浪費がないことである。このスキームは、高低いずれでも駆動可能であるセルに関する。図２１に示した設定メモリセル１１０は、０又は１（Ｖｄｄ）を、読み取りビットライン（ｒｂｌ＿ｔ）に駆動可能である。標準の６ＴのＳＲＡＭセル上で３つの追加のトランジスタが使用され、面積の５０％の増加が見込まれる。
【００９６】
スタティック法において、設定メモリの出力は、必要に応じて続くｆサイクルで再使用されるように維持される。ＦＰＧＡ製造者の「ｐｌａｃｅ  ａｎｄ  ｒｏｕｔｈｅ」ソフトウェアは、省電力機構としてこのような入力の再使用を目的としている。この機能を実行するために、読み取りワードラインは、出力が保持される限りに高位に保持されることを必要とする。これを実行するために、同じマルチプレクサメモリにおける別のイネーブルされたワードラインが起動され、別の出力を選択するまでラッチを使用して、イネーブルされたワードラインを維持する必要がある。
【００９７】
図２２（ａ）は、４エントリ設定メモリのエントリラッチを示す。エントリがイネーブルされる（即ち、イネーブルな設定を維持する）なら、ラッチはｆフェーズ入力によって設定される。その結果生じる読み取りワードライン出力（ｒｗｌ）は、スタティックセルからのデータを読み取り、且つ、他のエントリのイネーブルをリセットして、ｒｗｌ信号を低位に移行させる。同様に、次のｆサイクル上で、ｆフェーズｎ＋１エントリがイネーブルされた場合、ｆフェーズｎエントリをリセットするようにそのｒｗｌ信号を送信する。図２２（ｂ）は、完全な（完成した）設定メモリエントリがどのようにラッチ１０７、イネーブルされたセル１０８、及びスタティックデータセルＣｅｌｌ０，Ｃｅｌｌ１，Ｃｅｌｌ２，Ｃｅｌｌ３によって構成されているかを示す。
【００９８】
図２３（ａ）に示すとおり、図１９のｓａｅ＿ｇｅｎ回路は、スタティック法に適用されることを必要とする。このスタティックスキームにおいて、ｓａｅ＿ｎは、低位に移行するｃｌｋ０＿ｎ又は低位に移行するアクティブな低位選択ラインｓ＿ｎ［１：０］によって、高位に移行する。アクセスの最後で、センス（増幅器）がファイアされるべきときに、ｓａｅ＿ｎは、ｃｌｋ１＿ｎの上昇によって、低位に移行する。次のサイクルがまた設定メモリにアクセスするなら、ｓａｅ＿ｎの下降の後に、新しいアクセスによる再度の上昇が続き、効果的にｓａｅ＿ｎ上でパルスを作成する。センス増幅器及び入力ルートの均一化は、均一化サイクルの後半においてｓａｅ＿ｎが上昇した後、直ちに始動可能である。スタティック選択入力パスを介して、特定のルートを使用する別の信号を不測に均一化することを防止するように駆動されている入力信号の直前に、均一化信号は活性化される必要があるだけである。センス増幅器には、検知されたデータが失われないように、プレチャージされた構成のようなデータキャプチャ（捕捉）回路が続かなければならない。
【００９９】
図２３（ｂ）は、スタティック入力設定メモリの最上位の図を示す。
【０１００】
（思想の組合せ）
スタティック法の最大の問題は、列エントリの全体サイズである。列エントリ面積を削減するようにデコーダとスタティック法を組み合わせることが可能である。図２５は、（円で囲まれた）デコーダセクション１２０がスタティックであり且つセルに統合されているデータセル１１８を示す。デコーダの別のコピーは、完全２：４デコードを作成するように、ｄａｔａ＿ｔ[０]ノードに接続される。別のデータセル（図示せず）は、第２のデータ入力ｄａｔａ＿ｔ［１］及びｄａｔａ＿ｃ［１］を提供する。デコーダ１２０の領域は、データセルとほぼ同じであり、８つのトランジスタ１２１−１２８であり、１２１を除いた全ＮＭＯＳであり、レイアウトをより簡単にする。残ったＰＭＯＳ１２１も、（シミュレーションによって決定される）タイミングが許容するならそのゲートがｄａｔａ＿ｔ［０］に接続された状態でＮＭＯＳに変換可能である。
【０１０１】
（タイミング図）
２フェーズ実装におけるスタティック回路のタイミングは図２６に図示されている。設定メモリの読み取りワードラインを駆動するｆフェーズ信号はアクセスをトリガーする。選択ラインｓ［ｘ］、ｓ［ｙ］及びデコードラインｄ［ｘ］及びｄ［ｙ］は、アドレス指定された列の内容によって上昇する。（ｓラインの１つが有効である）有効なアクセスが存在するように、ｃｌｋ０＿ｎの下降はイコライザ（ｅｑ）及びｓａｅ＿ｎを上昇させる。ｓａｅ＿ｎが高位に移行するとき、センス増幅器（ＳＡ）ノード及び入力信号ノードをリセットし、センス増幅器ノードがイコライザ（ｅｑ）によって均一化される。ｃｌｋ０＿ｎが上昇するときに、イコライザは低位に移行するが、ｓａｅ＿ｎは高位のままである。なぜならｃｌｋ１＿ｎがそのとき低位であるからである。入力信号はそのとき、センス増幅器の入力に自由に統合可能である。ｃｌｋ１＿ｎの上昇エッジは、ｓａｅ＿ｎを下降させ、センス増幅器をファイアし、入力信号を増幅する。
【０１０２】
次のサイクルは有効な列をアドレス指定すれば、選択ラインは同じままか、又は、新しいものが選択され、古いものが脱選択される。新しいサイクルにおけるｃｌｋ０＿ｎの下降エッジは、ｓａｅ＿ｎ及びイコライザ信号を上昇させ、センス増幅器をリセットし、再度プロセスを開始する。センス増幅器の出力は、単時間有効であればよい。なぜなら、それらは、プレチャージされたデコーダ構造を駆動するからである。プレチャージされた構造がディスチャージするのに十分な時間を有する限り、データはキャプチャされる。
【０１０３】
図２７は、本発明に使用されるセンス増幅器１３０を示す。この回路設定はしばしば、ＳＲＡＭ（しかし、通常はＮＭＯＳ及びＰＭＯＳが転置された状態）において使用される。入力マルチプレクサからの差動入力信号は、センス増幅器ラッチ１３５の内部ノード１３４に伝えられる。センス増幅器はＰＭＯＳ装置１３７を使用してファイアされ、且つ、センス増幅器のファイア後に生成された全レール信号がルートに及ぶことを防止するように、設定メモリ内の第２段階の入力マルチプレクサ装置は、選択ラインｓ［１：０］によって同時に閉じられる。センス増幅器内の交差連結（ｃｒｏｓｓ−ｃｏｕｐｌｅｄ）ＰＭＯＳ１３６及びＮＭＯＳ１３８は、高ゲイン増幅連結ステージ（段階）を提供する。最も重要な装置は、交差連結ＰＭＯＳ１３６であり、これらは、入力オフセットを減少させるように、厳密に適合される必要がある。
【０１０４】
（ＬＵＴアーキテクチャ）
ＬＵＴ４のＬＶＤＳスキームは、４つの入力ＬＵＴツリー１４０を示す図２８に類似しうる。各三角形（又は段階）は、垂直入力Ａ，Ｂ，Ｃ，Ｄによって制御される２：１のマルチプレクサである。内部ＬＵＴノードは、（複数の）ＬＵＴ段階をひとつに接続する（ＬＵＴノードは、後述する基本的に図２８の三角形の頂点に存在する）。このスキームの欠点は、ＬＵＴデータから出力への非常に多くの連続するソース接続装置が存在することである。また、Ａ入力は、１６のマルチプレクサ（真数及び補数）に接続されるので多量のゲートに遭遇するであろう。
【０１０５】
（ＬＵＴデコーダ）
別の可能なアーキテクチャは、図２９に示すとおり、入力パス内でデコーダを使用することである。２つの入力（４つの出力ＬＵＴデコーダ）１５０、１５２は、センス増幅器の出力を受け取り、正しい出力データを選択するようにデコードされたラインでＬＵＴを駆動する。これは、４つの入力ＬＵＴ内のステージの数を４から２に削減する。各ステージは、２：１マルチプレクサの代わりに４：１マルチプレクサとなる。図２９からのデコーダ及びＬＵＴマルチプレクサの利用は、図３０で図示されている。デコーダを使用することの利点は、ＬＵＴデータからＬＵＴ出力へのパス内のトランジスタの数が４から２に減少することであり、小信号出力をより迅速に構築することを可能にする。他のデコーダ構造が使用可能であり、例えば、４入力１６出力デコーダは、ＬＵＴを単ステージ、１６選択入力の１ホットマルチプレクサに減少させる。
【０１０６】
（ＬＵＴアーキテクチャ：ＬＵＴバッファリング）
全４つのフェーズにおいて、各ＬＵＴへの各入力Ａ，Ｂ，Ｃ，Ｄに１つのバッファが提供される。バッファの数は変更可能である。バッファの数が少ないほど面積を節約するが、回路のルーティングを犠牲にする。回路の数が多いほど回路のルーティングがより簡単になるが、面積が増加する。バッファは多くの機能を有しており、重要度において以下のようにランク付けされる。
１．（すでに説明したとおり）正確な回路接続性がマップされるように追加の状態記憶を提供すること。
２．例えばＬＵＴ３において必要とされる追加の入力を提供すること。
３．マルチプレクサ及びスーパーＬＵＴの設定における状態点にルートすること。（状態点（以下で説明する）はＬＵＴ設定メモリの出力であるＬＵＴ設定状態ノードである。）
【０１０７】
バッファの接続性はすでに説明した。なされる設計選択の背後にある論拠の説明は以下の通りである。
【０１０８】
バッファの主要な役割は、接続性に関わらず全回路がファブリックにマップされることを可能にするように状態記憶を提供することにある。バッファは、関連する入力の全ての他のフェーズにルーティング可能であることを必要とする。例えば、フェーズがｐ、ｑ、ｒ及びｓで示される４フェーズルーティングスキームにおいて、（論理ブロック内のＬＵＴ構成を示す）図３１に示される、フェーズｐにおけるｌｕｔ［０］、入力ｄ、ｄ［０］のためのバッファは、フェーズｐ（それ自身の入力）、ｑ、ｒ及びｓのｄ［０］に接続可能である必要がある。
【０１０９】
同様に、時々、入力は値を受け取り、当該値は、次のフェーズの同じ入力内で使用されることを必要とする。これを処理する１方法は、第１サイクル内の入力及びバッファに送ることであり、そうすれば次のサイクルの入力は、バッファから値を得る。あるいは、その接続が入力マルチプレクサ上で利用可能であれば、入力は前のフェーズからの入力センス増幅器の出力からデータを受信可能である。これは省電力であるから好ましく、３つではなく２つだけのセンス増幅器がファイアされる。
【０１１０】
（ＬＵＴファンアウトバッファリング）
ＬＢ内のＡ  ＬＵＴ入力（ｂｕｆａ［３：０］）に接続されたバッファは、ＬＢ内の他のＬＵＴへのファンアウト機能を有する。これはファンアウトバッファとして知られている。ファンアウトバッファは独自の状態の記憶を有する。全ての入力は、ファンアウトバッファをＬＢ内の１つの他のＬＵＴ又は他の３つのＬＵＴに接続していることを示すと遭遇することができる。
【０１１１】
以下の表２は、ファンアウトバッファ信号源を定める。
【表２】
2011514065.tif 000004
【０１１２】
どのように信号が入力Ａ，Ｂ，Ｃ，Ｄに接続するかは表３に定められている。
【表３】
2011514065.tif 000005
【０１１３】
よって、ｂｕｆａ［０］から生じる信号ｂｕｆｆｏ４［０］は、ＬＢ内の全４つのＡ入力にファンアウト（論理出力）可能である。同様に、ｂｕｆａ［２］からのｂｕｆｆｏ２［１］は、ｌｕｔ０及び１のＣ、並びに、ｌｕｔ２及び３のＢに接続可能である。
【０１１４】
（バッファの概要）
バッファ構造は、入力マルチプレクサ及びセンス増幅器並びにバッファマルチプレクサ及びセンス増幅器の実施形態を示す図３２に概略的に図示されている。入力マルチプレクサへの入力の1つはバッファ状態から生じる。バッファマルチプレクサの半分は、バッファ状態（センス増幅器）に入力を提供する。他の半分は、（後述する）マルチプレクサ拡張部に入力を提供する。
【０１１５】
（ＬＵＴ拡張部）
複数の機能は、例えば、拡張ルックアップテーブルなどのようなＬＵＴ拡張マルチプレクサを介して利用可能である。
【０１１６】
（拡張ルックアップテーブル）
隣接するＬＵＴが結合可能であるようにＬＵＴ階層を追加することができる。これは図３３に示され、円で囲まれた４：１マルチプレクサ拡張部２００が、生成されるべき、より大きいＬＵＴ構造をイネーブルにするように加えられている。ここで、４つのＬＵＴ４は、ＬＵＴ６を生成するようにマルチプレクサ拡張部２００に結合される。ＬＵＴ出力ＬＵＴ０，ＬＵＴ１，ＬＵＴ２，ＬＵＴ３は、この統合フェーズ内のＬＵＴ入力Ａ−Ｄに接続されるバッファを介して、マルチプレクサデータ入力Ｄａ［３：０］に接続される。マルチプレクサ選択信号は、先行する駆動フェーズからのバッファから生じる。
【０１１７】
（部分ルックアップテーブル）
多くの大きい論理機能（例えば、４入力を超える５以上）は、１又はおそらく２の信号によって統制されるイネーブル装置として、追加の入力を使用する。これは、部分論理ツリーとして実行可能であり、即ち、コーンの１つのセクション（ブランチ）がいつも同じ値（０又は１）に戻る場合に回路が完全な論理コーン（ツリー）に提供されることを必要としない。
【０１１８】
図３３で図示するインフラストラクチャ（基盤）は、また、部分ツリー論理を提供するのに使用可能である。これを実行するのに、（センス増幅器のラッチではなく）バイパスの通路内のバッファマルチプレクサへの入力として０及び１を追加する必要がある。これによって、マルチプレクサデータ入力Ｄａ［３：０］を０又は１に接続され、部分ＬＵＴの状態値として働かせる。
【０１１９】
（マルチレベル拡張ＬＵＴ）
図３５に示すとおり、この思想は、複数のマルチプレクサ４：１構造にも拡張可能である。これは拡大部分ツリーを生成する。タイミングの理由で、これを最大許容構造とすることを提案する。
【０１２０】
（拡張部分ＬＵＴの留意点）
拡張部分ＬＵＴは、連鎖（チェイニング）ＬＵＴとは混同されるべきでない。ＬＵＴの連鎖は、１つのＬＵＴの出力から別のもの（即ち、ＬＵＴ状態点でなくＡ，Ｂ，Ｃ又はＤ入力）への接続を暗示する。しかしながら、部分ツリーＬＵＴ構造にマッピング可能である１つの拡大された複合ゲートとして結合されたゲートを考慮することにより、同じ効果を奏することが可能である。設定によっては、ＬＵＴ状態点への複数の接続が必要とされようが、これはシングル及び／又はダブル拡張におけるマルチプレクサデータ入力Ｄａ［３：０］に接続した複数のＬＵＴを暗示する。
【０１２１】
（マルチプレクサ）
マルチプレクサ拡張部は、４：１マルチプレクサとして使用可能である。これを可能にするＬＵＴ内の入力及び出力リソースは、ＬＵＴ４として（同一ＬＵＴ内において）は平行して実行されうる。
【０１２２】
（ＬＵＴとしてのマルチプレクサ拡張部）
マルチプレクサ拡張部は、ＬＵＴとして設定可能である。４：１マルチプレクサは、マルチプレクサデータ入力Ｄａ［３：０］を適切な０／１へと駆動することにより、ＬＵＴ２として働くことが可能である。説明しているように、１以上のマルチプレクサデータ入力Ｄａ［３：０］ピンに信号を接続することにより、ＬＵＴ３に相当する３入力マルチプレクサｌｕｔとして働くこともできる。
【０１２３】
（マルチプレクサ拡張部の概要）
拡張マルチプレクサは以下のモードで使用可能である。
１．他のＬＵＴに接続されている完全ＬＵＴ５／６拡張：全ての適用可能なＤａ［３：０］ピン。
２．バイナリ状態の必要とされる組み合わせ又は他のＬＵＴに接続されている部分ＬＵＴ５／６拡張：Ｄａ［３：０］。
３．２つの拡張マルチプレクサのキャスケード（転送）によるＬＵＴ７／８の完全及び部分バージョン。
４．キャスケードによる：２：１、３：１、４：１及び５：１から１６：１までのマルチプレクサとして。
５．Ｄａ［３：０］をバイナリ状態に接続することによるＬＵＴ２として。
６．Ｄａ［３：０］をバイナリ状態及び／又は第３入力に接続することによるマルチプレクサＬＵＴ３として。
【０１２４】
（特徴及び入力の選択）
説明した特徴の多くは、ＬＵＴノードから出力へ又は入力からＬＵＴノードへのいずれかの複数のパスを示す。利用可能なパスをどのように選択するのであろうか？入力からセンス増幅器へのパス上のトランジスタの数を最小化することが望まれている。なぜなら、これはルート上の信号統合の速度に大きな影響を与えることができがちである。これに留意して、入力を複製することが最善の解決である。例えば、図３３において、２つの可能なＯｕｔ０への接続が存在する。一方はＬＵＴ４出力ＬＵＴノードであり、他方はＬＵＴ５出力ＬＵＴノードからである。図３４は、正しい選択ラインを可能にすることによってどのようにＬＵＴ４又はＬＵＴ５のいずれかがＯｕｔ０に接続可能であるかを示す。ＬＵＴ４が必要な場合、ＬＵＴ４のイネーブル信号は１に設定され、ＬＵＴ５のイネーブル（信号）は０に設定される。これは、ＬＵＴ入力ＤがＬＵＴ設定データの（最）上位（ビット１５から８）又は（最）下位（ビット７から０）のいずれかを選択することを可能にする。入力ＬＵＴ５のイネーブル（信号）が１に設定され、且つ、反対にＬＵＴ４の有効（信号）が０に設定されたら、ＬＵＴ４が再度作成されるところに別のパスが存在するが、それはｂｕｆ＿ｔ／ｃ入力がＬＵＴ５を作成するように第５のＬＵＴ入力として働くさらなる選択ステージ（段階）に接続する。最後のＬＵＴ５の選択トランジスタは出力Ｏｕｔ０に接続する。
【０１２５】
（ＬＵＴ設定メモリ）
ＬＵＴは全ｆサイクルに再設定される。省電力化するために、次のＬＵＴの設定が先の設定と同一又は部分的に同一であるなら、メモリを再読み取りしてビットラインを移動させる必要がないことは有利である。この目的を達するためには、スタティック法が最善である。必要な場合にのみ設定メモリの出力が変更される。
【０１２６】
図２１のスタティックマルチプレクサメモリに使用されるようなセルは、スタティックＬＵＴ設定メモリにとって理想的である。
【図１】
2011514065.tif 000006
【図２】
2011514065.tif 000007
【図３】
2011514065.tif 000008
【図４（ａ）】
2011514065.tif 000009
【図４（ｂ）】
2011514065.tif 000010
【図５】
2011514065.tif 000011
【図６】
2011514065.tif 000012
【図７】
2011514065.tif 000013
【図８（ａ）】
2011514065.tif 000014
【図８（ｂ）】
2011514065.tif 000015
【図９】
2011514065.tif 000016
【図１０】
2011514065.tif 000017
【図１１（ａ）】
2011514065.tif 000018
【図１１（ｂ）】
2011514065.tif 000019
【図１２】
2011514065.tif 000020
【図１３】
2011514065.tif 000021
【図１４】
2011514065.tif 000022
【図１５】
2011514065.tif 000023
【図１６】
2011514065.tif 000024
【図１７（ａ）】
2011514065.tif 000025
【図１７（ｂ）】
2011514065.tif 000026
【図１８】
2011514065.tif 000027
【図１９（ａ）】
2011514065.tif 000028
【図１９（ｂ）】
2011514065.tif 000029
【図２０】
2011514065.tif 000030
【図２１】
2011514065.tif 000031
【図２２（ａ）】
2011514065.tif 000032
【図２２（ｂ）】
2011514065.tif 000033
【図２３（ａ）】
2011514065.tif 000034
【図２３（ｂ）】
2011514065.tif 000035
【図２４】
2011514065.tif 000036
【図２５】
2011514065.tif 000037
【図２６】
2011514065.tif 000038
【図２７】
2011514065.tif 000039
【図２８】
2011514065.tif 000040
【図２９】
2011514065.tif 000041
【図３０】
2011514065.tif 000042
【図３１】
2011514065.tif 000043
【図３２】
2011514065.tif 000044
【図３３】
2011514065.tif 000045
【図３４】
2011514065.tif 000046
【図３５】
2011514065.tif 000047
【国際調査報告】
2011514065.tif 000048
2011514065.tif 000049
2011514065.tif 000050
2011514065.tif 000051
2011514065.tif 000052