(57)【特許請求の範囲】
【請求項１】
Ｍ入力Ｎ出力のルックアップテーブルであって、
複数のＬＵＴユニットと、
該複数のＬＵＴユニットによる内部構成を制御する内部構成制御手段とを備え、
該内部構成制御手段は、
前記複数のＬＵＴユニットの入出力信号を選択する複数のセレクタと、
該各セレクタを制御して前記複数のＬＵＴユニットによる構成を規定するセレクタ制御手段とを備え、
該セレクタ制御手段は、メモリを備え、該メモリに格納するデータに応じて前記複数のセレクタを制御し、
前記セレクタは、
少なくとも１つの前記ＬＵＴユニットの入力に設けられて入力信号の選択を行う入力信号選択用セレクタと、
前記ＬＵＴユニットの出力に設けられて出力信号の選択を行う出力信号選択用セレクタとを備え、該入力信号選択用セレクタおよび該出力信号選択用セレクタは、前記メモリに格納するデータおよび前記入力信号に応じて制御されることを特徴とするルックアップテーブル。
【請求項２】
請求項１に記載のルックアップテーブルにおいて、前記Ｍ入力Ｎ出力のルックアップテーブルは、６入力３出力のルックアップテーブルであることを特徴とするルックアップテーブル。
【請求項３】
請求項２に記載のルックアップテーブルにおいて、前記６入力３出力のルックアップテーブルは、８つの３入力１出力ＬＵＴユニットを備えることを特徴とするルックアップテーブル。
【請求項４】
請求項２に記載のルックアップテーブルにおいて、前記６入力３出力のルックアップテーブルは、４つの３入力２出力ＬＵＴユニットを備えることを特徴とするルックアップテーブル。
【請求項５】
複数の論理ブロックと、該各論理ブロックに接続される複数の配線と、該各配線の交差個所に設けられた複数のスイッチ手段と、該各論理ブロックの入出力線と前記各配線との間に設けられた接続ブロックと、外部との入出力を行うＩ／Ｏブロックとを備えるプログラマブル論理回路装置であって、
前記論理ブロックは、請求項１〜４のいずれか１項に記載のルックアップテーブルを備えることを特徴とするプログラマブル論理回路装置。
【請求項６】
Ｍ入力Ｎ出力のルックアップテーブルを構成する方法であって、
複数のＬＵＴユニットを準備し、
該複数のＬＵＴユニットの入出力信号を選択制御して所定の内部構成モードを設定し、
少なくとも１つの前記ＬＵＴユニットに入力する信号、および、該ＬＵＴユニットが出力する信号は、それぞれ当該ルックアップテーブル内に格納されるデータおよび入力信号の所定の関数により選択制御されることを特徴とするルックアップテーブルの構成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は実装面積の削減が可能なルックアップテーブルの構成技術に関する。
近年、プログラマブル論理回路装置は、内部回路を電気的にプログラムすることでユーザの様々な要求に応じた論理回路を実現することができるデバイスとして注目されている。このプログラマブル論理回路装置は、ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）或いはＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）として知られているが、最近では、ハードウェアの試作に対する利用を越えて、それ自体で様々な機能を有する大規模な回路（例えば、マイクロプロセッサ等）を構成するためにも使用されるようになって来ている。このようなプログラマブル論理回路装置は、ルックアップテーブル（ＬＵＴ：Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）を主要な構成要素としているが、このＬＵＴの回路面積の削減が強く要望されている。
【０００２】
【従来の技術】
プログラマブル論理回路装置（ＰＬＤやＦＰＧＡ）の主要な要素であるルックアップテーブル（ＬＵＴ）はメモリから構成されており、任意の論理回路を実装することが可能である。このようなＦＰＧＡの基本的な構成は、従来、例えば、米国特許第４７０６２１６号および第４８７０３０２号に提案されている。また、ＦＰＧＡにおけるマルチコンテキスト（ｍｕｌｔｉ−ｃｏｎｔｅｘｔ）および複数のＬＵＴのクラスタ化に関しては、例えば、米国特許第５７７８４３９号および第５９０５３８５号等に提案されている。さらに、ＦＰＧＡ等に使用するＬＵＴに対する評価（例えば、機能性と面積に関する評価並びに性能評価、および、クラスタ化の評価等）に関しては、例えば、Ｊ．  Ｒｏｓｅ  ｅｔ  ａｌ．，  ”Ａｒｃｈｉｔｅｃｔｕｒｅ  ｏｆ  Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙｓ：  Ｔｈｅ  Ｅｆｆｅｃｔ  ｏｆ  Ｌｏｇｉｃ  Ｂｌｏｃｋ  Ｆｕｎｃｔｉｏｎａｌｉｔｙ  ｏｎ  Ａｒｅａ  Ｅｆｆｉｃｉｅｎｃｙ”，  ＩＥＥＥ  Ｊ．  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ，  ｖｏｌ．  ２５，  ｎｏ．  ５，  ｐｐ．  １２１７−１２２５，  Ｏｃｔ．  １９９０、Ｊ．  Ｒｏｓｅ  ｅｔ  ａｌ．，  ”  Ｔｈｅ  Ｅｆｆｅｃｔ  ｏｆ  Ｌｏｇｉｃ  Ｂｌｏｃｋ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｏｎ  ＦＰＧＡ  Ｐｅｒｆｏｒｍａｎｃｅ  ”，  ＩＥＥＥ  Ｊ．  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ，  ｖｏｌ．  ２７，  ｎｏ．  ３，  ｐｐ．  ２８１−２８７，  Ｍａｒ．  １９９２、および、Ｅ．  Ａｈｍｅｄ  ｅｔ  ａｌ．，  ”Ｔｈｅ  Ｅｆｆｅｃｔ  ｏｆ  ＬＵＴ  ａｎｄ  Ｃｌｕｓｔｅｒ  Ｓｉｚｅ  ｏｎ  Ｄｅｅｐ−Ｓｕｂｍｉｃｒｏｎ  ＦＰＧＡ  Ｐｅｒｆｏｒｍａｎｃｅ  ａｎｄ  Ｄｅｎｓｉｔｙ”，  ＦＰＧＡ  ２０００，  Ｍｏｎｔｅｒｅｙ，  ＣＡ  ＵＳＡ，  ２０００に研究成果が示されている。
【０００３】
プログラマブル論理回路装置において、実装できる論理回路の入力信号のビット数ＭはＬＵＴを構成するメモリのアドレスのビット数に対応し、また、出力信号のビット数Ｎはメモリの出力ビット数に対応している。したがって、１つのＬＵＴに実装できる論理回路は、任意のＭ入力Ｎ出力の論理回路となる。本明細書では、このようなＬＵＴをＭ入力Ｎ出力ＬＵＴと表す。
【０００４】
【発明が解決しようとする課題】
従来、例えば、ＦＰＧＡにおいて、ＬＵＴの入力数Ｍおよび出力数Ｎは共に固定値であり、任意の論理回路は、Ｍ入力Ｎ出力の回路単位に分割され、複数のＬＵＴを用いて実装されるようになっている。
そのため、従来のＦＰＧＡでは、回路分割により入力数がＭビット未満の回路が生じた場合、この入力数がＭビット未満の回路に対しても１つのＬＵＴを割り当てなければならず、実装面積の増加をもたらす原因になっている。
【０００５】
本発明は、上述した従来のプログラマブル論理回路装置が有する課題に鑑み、ルックアップテーブル（ＬＵＴ）すなわちプログラマブル論理回路装置の回路面積を削減することを主たる目的とする。さらに、本発明は、プログラマブル論理回路装置の消費電力の低減も目的とする。
【０００６】
【課題を解決するための手段】
本発明の第１の形態によれば、Ｍ入力Ｎ出力のルックアップテーブルであって、複数のＬＵＴユニットと、該複数のＬＵＴユニットによる内部構成を制御する内部構成制御手段とを備え、該内部構成制御手段は、前記複数のＬＵＴユニットの入出力信号を選択する複数のセレクタと、該各セレクタを制御して前記複数のＬＵＴユニットによる構成を規定するセレクタ制御手段とを備え、該セレクタ制御手段は、メモリを備え、該メモリに格納するデータに応じて前記複数のセレクタを制御し、前記セレクタは、少なくとも１つの前記ＬＵＴユニットの入力に設けられて入力信号の選択を行う入力信号選択用セレクタと、前記ＬＵＴユニットの出力に設けられて出力信号の選択を行う出力信号選択用セレクタとを備え、該入力信号選択用セレクタおよび該出力信号選択用セレクタは、前記メモリに格納するデータおよび前記入力信号に応じて制御されることを特徴とするルックアップテーブルが提供される。
【０００７】
本発明の第２の形態によれば、複数の論理ブロックと、該各論理ブロックに接続される複数の配線と、該各配線の交差個所に設けられた複数のスイッチ手段と、該各論理ブロックの入出力線と前記各配線との間に設けられた接続ブロックと、外部との入出力を行うＩ／Ｏブロックとを備えるプログラマブル論理回路装置であって、前記論理ブロックは、Ｍ入力Ｎ出力のルックアップテーブルであって、複数のＬＵＴユニットと、該複数のＬＵＴユニットによる内部構成を制御する内部構成制御手段とを有するルックアップテーブルを備え、該内部構成制御手段は、前記複数のＬＵＴユニットの入出力信号を選択する複数のセレクタと、該各セレクタを制御して前記複数のＬＵＴユニットによる構成を規定するセレクタ制御手段とを備え、該セレクタ制御手段は、メモリを備え、該メモリに格納するデータに応じて前記複数のセレクタを制御し、前記セレクタは、少なくとも１つの前記ＬＵＴユニットの入力に設けられて入力信号の選択を行う入力信号選択用セレクタと、前記ＬＵＴユニットの出力に設けられて出力信号の選択を行う出力信号選択用セレクタとを備え、該入力信号選択用セレクタおよび該出力信号選択用セレクタは、前記メモリに格納するデータおよび前記入力信号に応じて制御されることを特徴とするプログラマブル論理回路装置が提供される。
【０００８】
本発明の第３の形態によれば、Ｍ入力Ｎ出力のルックアップテーブルを構成する方法であって、複数のＬＵＴユニットを準備し、該複数のＬＵＴユニットの入出力信号を選択制御して所定の内部構成モードを設定し、少なくとも１つの前記ＬＵＴユニットに入力する信号、および、該ＬＵＴユニットが出力する信号は、それぞれ当該ルックアップテーブル内に格納されるデータおよび入力信号の所定の関数により選択制御されることを特徴とするルックアップテーブルの構成方法が提供される。
本発明によれば、ＬＵＴ内にモード変更用のメモリを設けることにより、従来のＦＰＧＡで使用されるＬＵＴと異なり、複数の入力数および出力数を有するＬＵＴを実現することができる。これにより、分割された回路が必要とする入力信号数に適したＬＵＴで構成することが可能となり、実装面積の増加を防ぐことができる。また、同時に動作しない回路を同一のＬＵＴ内に重ね合わせて実装し、これらを切り替えながら動作させることで、実装面積だけでなく消費電力も大幅に削減することができる。
【０００９】
【発明の実施の形態】
以下、本発明に係るルックアップテーブル、ルックアップテーブルを備えるプログラマブル論理回路装置、および、ルックアップテーブルの構成方法を添付図面に従って詳述する。
図１は本発明が適用されるＦＰＧＡの一例を示すブロック図である。図１において、参照符号１００はプログラマブル論理回路装置の一例としてのＦＰＧＡ、１０１はＩ／Ｏブロック、１０２は論理ブロック（ＣＬＢ：Ｃｏｎｆｉｇｕｒａｂｌｅ  Ｌｏｇｉｃ  Ｂｌｏｃｋ）、１０３は接続ブロック（Ｃ）、１０４はスイッチマトリクス（Ｓ）、そして、１０５は配線を示している。
【００１０】
図１に示されるように、ＦＰＧＡ１００は、アレー状に配置された論理ブロック（ＣＬＢ）１０２、これらＣＬＢ１０２を取り囲む配線（回線領域）１０５、および、外部との入出力を行うＩ／Ｏブロック１０１を備えて構成される。各配線１０５の交差個所には、それらを接続するためのスイッチマトリクス（Ｓ）１０４が配置され、さらに、各ＣＬＢ１０２の入出力線と配線１０５との間にはそれぞれ接続ブロック（Ｃ）１０３が配置されている。各ＣＬＢ１０２は、ルックアップテーブル（ＬＵＴ）１２１、ラッチ１２２、および、セレクタ１２３を備えて構成される。本発明は、主としてＬＵＴ１２１の構成に関するものである。
【００１１】
図２はＦＰＧＡにおけるＬＵＴの一例としての６入力３出力ＬＵＴを示すブロック図であり、図１におけるＬＵＴ１２１の一例を示すものである。すなわち、図２に示すＬＵＴは、Ｍ入力Ｎ出力ＬＵＴにおいて、Ｍ＝６，Ｎ＝３の場合の構成に対応するものである。なお、ＭおよびＮの値に関して、Ｍ＝６，Ｎ＝３は単なる一例であり、他の様々な値の場合もあり、さらに、Ｍ＝Ｎ、或いは、Ｍ＜Ｎとなる場合もある。
【００１２】
図３は図２に示す６入力３出力ＬＵＴの内部構成モードを示すブロック図であり、後に詳述するように、モード変更用メモリ（７１）の値（Ｘ，Ｙ，Ｚ）を変えることで、６入力３出力ＬＵＴを図３（ａ）〜図３（ｆ）に示すような内部構成に設定することができるのを示している。
具体的に、図３（ａ）は、６入力３出力ＬＵＴを３個の２入力１出力ＬＵＴとしてモード設定した場合を示している。例えば、従来のＦＰＧＡ（従来、４入力１出力ＬＵＴを単位として使用されている）において、３個の２入力１出力回路をＬＵＴに割り当てるには３つのＬＵＴ（４入力１出力ＬＵＴ）を必要とするが、図３（ａ）に示す構成では、１つの６入力３出力ＬＵＴだけで十分である。
【００１３】
ところで、配線の領域を含む４入力１出力ＬＵＴと６入力３出力ＬＵＴの面積比は、１：１．５程度である。したがって、図３（ａ）に示す構成は、例えば、３つの４入力１出力ＬＵＴを使用する従来例に対して、回路の実装面積比を（１×３）：１．５、すなわち、１：０．５程度にすることができ、最大約５０％の面積の削減が実現できる。
【００１４】
また、図３（ｂ）は、２個の３入力１出力ＬＵＴとしてモード設定した場合を示す。この場合、例えば、２つの４入力１出力ＬＵＴを使用する従来例に対して、回路の実装面積比を（１×２）：１．５、すなわち、１：０．７５程度にすることができ、最大２５％の面積の削減が実現できる。
さらに、図３（ｃ）は、６入力３出力ＬＵＴを６入力１出力ＬＵＴとしてモードを設定した場合を示す。
【００１５】
図３（ｄ）は、３入力１出力ＬＵＴ×８プレーンとしてモード設定した場合を示し、図３（ｅ）は、４入力１出力ＬＵＴ×４プレーンとしてモードを設定した場合を示し、そして、図３（ｆ）は、５入力１出力ＬＵＴ×２プレーンとしてモード設定した場合を示す。
図４はルックアップテーブルにおける回路のマッピング方法の一例を説明するための図であり、上記図３（ｄ）〜図３（ｆ）のモード設定が可能な理由を示すものである。
【００１６】
図４に示されるように、例えば、ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）におけるＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）記述内のｉｆ〜，ｅｌｓｅ，ｃａｓｅ等の制御構造を利用したマッピング方法においては、条件分岐は明示的に同時動作でないことが保証されているため、各条件内の処理を各コンテキストにマッピングする。なお、各コンテキストの切り替えは、例えば、他のＬＵＴ（ルックアップテーブル）に実装された制御回路からの信号で行う。
【００１７】
このような場合には、上述した図３（ｄ）〜図３（ｆ）に示されるように、複数のＬＵＴを１つのＬＵＴで構成することができる。具体的に、図３（ｄ）の場合には、８つの３入力１出力ＬＵＴを１つのＬＵＴ（図３（ｄ）の場合は、１つの６入力３出力ＬＵＴ）で構成することができる。また、図３（ｅ）の場合には、４つの４入力１出力ＬＵＴを１つのＬＵＴで構成することができ、さらに、図３（ｆ）の場合には、２つの５入力１出力ＬＵＴを１つのＬＵＴで構成することができる。
【００１８】
具体的に、図３（ｅ）に示す構成は、例えば、４つの４入力１出力ＬＵＴを使用する従来例に対して、回路の実装面積比を（１×４）：１．５、すなわち、１：０．３７５程度にすることができ、最大約６２％の面積の削減が実現できる。換言すると、図３（ｅ）に示す実施例のＬＵＴ（１個の６入力３出力ＬＵＴで構成したＬＵＴ）は、従来のＬＵＴ（４個の４入力１出力ＬＵＴで構成したＬＵＴ）の約３２％の実装面積で構成することができ、さらに、消費電力も大幅に低減することができる。
【００１９】
また、例えば、８オペレーションのＡＬＵ回路を、従来の４入力１出力ＬＵＴに実装した場合と、図３（ｅ）に示すような６入力３出力ＬＵＴを４入力１出力ＬＵＴ×４プレーンとして使用し、これに実装した場合とを比較すると、回路実装面積を約７５％にして実装効率の向上を実現することができる。
図５は本発明に係るＦＰＧＡにおけるＬＵＴの一例としての６入力３出力ＬＵＴ７を入出力信号と共に示すブロック図であり、図２に示す６入力３出力ＬＵＴ１２１に対して６つの入力信号Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆと３つの出力信号Ｑ，Ｖ，Ｗを追加したものに相当する。
【００２０】
図６は図５に示す６入力３出力ＬＵＴの内部構成の一例を示すブロック図である。
図６に示されるように、６入力３出力ＬＵＴ７（１２１）は、モード変更用メモリ７１、セレクタ７２１〜７２６、および、３入力１出力ＬＵＴユニット（メモリアレイ）７３１〜７３８を備えている。モード変更用メモリ７１は、ユーザにより指定された３ビットのデータＸ，Ｙ，Ｚを格納するようになっており、６ビットの入力Ａ〜Ｆと３ビットの出力Ｑ，Ｖ，Ｗとの関係をユーザの要求に応じて設定するようになっている。
【００２１】
各セレクタ（入力信号選択用セレクタ）７２１〜７２５には、６ビットの入力信号内の所定の信号が入力され、それぞれモード変更用メモリ７１に格納されたデータＸ，Ｙ，Ｚに応じて入力信号の選択を行うようになっている。すなわち、セレクタ７２１には信号Ａ，Ｃが入力され、また、セレクタ７２２には信号Ｂ，Ｄが入力され、それぞれデータＸ，Ｙ，Ｚにより規定される選択信号Ｆ０（Ｘ，Ｙ，Ｚ）により一方の信号が選択されて出力される。同様に、セレクタ７２３には信号Ａ，Ｄが入力され、また、セレクタ７２４には信号Ｂ，Ｅが入力され、さらに、セレクタ７２５には信号Ｃ，Ｆが入力され、それぞれデータＸ，Ｙ，Ｚにより規定される選択信号Ｆ１（Ｘ，Ｙ，Ｚ）により一方の信号が選択されて出力される。
【００２２】
各３入力１出力ＬＵＴユニット７３１〜７３８は、後述するように、アドレスデコーダ、メモリ、および、セレクタを備え、それぞれ３ビットの入力信号に応じて１ビットの信号を出力する。すなわち、各ＬＵＴユニット７３１，７３２，７３４〜７３６および７３８には、それぞれ信号Ａ，Ｂ，Ｃが入力され、また、ＬＵＴユニット７３３には、選択信号Ｆ０により選択された信号ＡまたはＣの一方と信号ＢまたはＤの一方、および、信号Ｃが入力される。さらに、ＬＵＴユニット７３７には、選択信号Ｆ１により選択された信号ＡまたはＤの一方、信号ＢまたはＥの一方、および、信号ＣまたはＦの一方が入力される。そして、ＬＵＴユニット７３１〜７３８の出力信号はセレクタ（出力信号選択用セレクタ）７２６に入力され、信号Ｄ，Ｅ，ＦおよびデータＸ，Ｙ，Ｚにより規定される選択信号Ｆ２（Ｄ，Ｅ，Ｆ，Ｘ，Ｙ，Ｚ）により１つの信号が選択され、信号Ｖとして出力される。なお、信号Ｑは、ＬＵＴユニット７３１の出力とされ、また、信号Ｗは、ＬＵＴユニット７３７の出力とされている。
【００２３】
図７は図６の６入力３出力ＬＵＴ７における３入力１出力ＬＵＴユニット７３１の一例を示すブロック図である。なお、各３入力１出力ＬＵＴユニット７３１〜７３８は全て同様の構成とされている。
図７に示すＬＵＴユニット７３１は、アドレスデコーダ７３１１、セレクタ７３１２、および、２組の４ビットで構成されたメモリユニット群Ｍ１１〜Ｍ１４，Ｍ２１〜Ｍ２４を備えている。アドレスデコーダ７３１１は、２ビットの入力信号Ａ，Ｂをデコードしてメモリユニット群Ｍ１１〜Ｍ１４およびＭ２１〜Ｍ２４の各１つを指定し、さらに、入力信号Ｃによって、メモリユニット群Ｍ１１〜Ｍ１４またはＭ２１〜Ｍ２４の一方の組を選択してデータを出力する。
【００２４】
図８は図６の６入力３出力ＬＵＴ７における３入力１出力ＬＵＴユニット７３１の他の例を示すブロック図である。
図８に示すＬＵＴユニット７３１は、アドレスデコーダ７３１３、および、８ビットのメモリユニット群Ｍ３１〜Ｍ３８を備えている。アドレスデコーダ７３１３は、３ビットの入力信号Ａ，Ｂ，Ｃをデコードしてメモリユニット群Ｍ３１〜Ｍ３８の１つを指定してそのデータ（Ｑ）を出力する。
【００２５】
上述した図６に示す６入力３出力ＬＵＴにおけるモード変更用メモリ７１に指定された３ビットデータＸ，Ｙ，Ｚと、それに対応した内部構成（設定モード）のと関係を図３（ａ）〜図３（ｆ）に対応させて説明する。
まず、図３（ａ）に示すように、６入力３出力ＬＵＴ７（１２１）を３個の２入力１出力ＬＵＴとしてモード設定する場合、選択信号Ｆ０およびＦ１は各セレクタ７２１，７２２および７２３〜７２５において入力『１』を選択し、さらに、選択信号Ｆ２はセレクタ７２６において入力『２』を選択する。
【００２６】
すなわち、ユーザは、選択信号Ｆ０（Ｘ，Ｙ，Ｚ）およびＦ１（Ｘ，Ｙ，Ｚ）が各セレクタ７２１，７２２および７２３〜７２５における入力『１』を選択するように、且つ、選択信号Ｆ２（Ｄ，Ｅ，Ｆ，Ｘ，Ｙ，Ｚ）がセレクタ７２６における入力『２』を選択するように、モード変更用メモリ７１に格納する３ビットデータＸ，Ｙ，Ｚを指定する。
【００２７】
そして、信号Ａ，Ｂ，Ｃが入力されて信号Ｑを出力するＬＵＴユニット７３１、セレクタ７２１，７２２を介した信号Ｃ，Ｄおよび直接の信号Ｃが入力されてセレクタ７２６を介して信号Ｖを出力するＬＵＴユニット７３３、および、セレクタ７２３〜７２５を介した信号Ｄ，Ｅ，Ｆが入力されて信号Ｗを出力するＬＵＴユニット７３７を使用することで、図３（ａ）に示す３個の２入力１出力ＬＵＴとして構成することができる。なお、ＬＵＴユニット７３１における入力信号Ｃ、ＬＵＴユニット７３３における一方の入力信号Ｃ、および、ＬＵＴユニット７３７におけるセレクタ７２３を介した入力信号Ｄは、各ＬＵＴユニットにおいて余分な入力信号となっているが、問題となることはない。
【００２８】
次に、図３（ｂ）に示すように、６入力３出力ＬＵＴ７を２個の３入力１出力ＬＵＴとしてモード設定する場合、選択信号Ｆ１はセレクタ７２３〜７２５における入力『１』を選択するようにモード変更用メモリ７１に格納する３ビットデータＸ，Ｙ，Ｚを指定する。そして、信号Ａ，Ｂ，Ｃが入力されて信号Ｑを出力するＬＵＴユニット７３１、および、セレクタ７２３〜７２５を介した信号Ｄ，Ｅ，Ｆが入力されて信号Ｗを出力するＬＵＴユニット７３７を使用することで、図３（ｂ）に示す２個の３入力１出力ＬＵＴとして構成することができる。
【００２９】
図３（ｃ）に示すように、６入力３出力ＬＵＴを６入力１出力ＬＵＴとしてモード設定する場合には、選択信号Ｆ０およびＦ１は各セレクタにおける入力『０』を選択し、選択信号Ｆ２は入力信号Ｄ，Ｅ，Ｆによってセレクタ７２６の値を決定し、信号Ｖを出力する。すなわち、信号Ａ，Ｂ，Ｃと信号Ｄ，Ｅ，Ｆの６ビット入力により、１ビットの信号Ｖを出力する。
【００３０】
図３（ｄ）に示すように、６入力３出力ＬＵＴを３入力１出力ＬＵＴ×８プレーンとしてモード設定する場合には、選択信号Ｆ０およびＦ１は各セレクタにおける入力『０』を選択し、選択信号Ｆ２は信号Ｄ，Ｅ，Ｆによってセレクタ７２６の値を決定し、信号Ｖを出力する。この場合、信号Ｄ，Ｅ，Ｆはプレーン切り替え信号が使用される。
【００３１】
図３（ｅ）に示すように、６入力３出力ＬＵＴを４入力１出力ＬＵＴ×４プレーンとしてモード設定する場合にも、選択信号Ｆ０およびＦ１は各セレクタにおける入力『０』を選択し、選択信号Ｆ２は信号Ｄ，Ｅ，Ｆによってセレクタ７２６の値を決定し、信号Ｖを出力する。この場合、信号Ｄは、信号Ａ，Ｂ，Ｃと共に４ビットの入力信号の１つであり、また、信号ＥおよびＦはプレーン切り替え信号が使用されることになる。
【００３２】
図３（ｆ）に示すように、６入力３出力ＬＵＴを５入力１出力ＬＵＴ×２プレーンとしてモード設定する場合には、選択信号Ｆ０およびＦ１は各セレクタにおける入力『０』を選択し、選択信号Ｆ２は信号Ｄ，Ｅ，Ｆによってセレクタ７２６の値を決定し、信号Ｖを出力する。この場合、信号ＤおよびＥは、信号Ａ，Ｂ，Ｃと共に５ビットの入力信号の２つであり、また、信号Ｆはプレーン切り替え信号が使用されることになる。
【００３３】
上述したように、本実施例によれば、例えば、６入力３出力ＬＵＴを、モード変更用メモリ７１の値Ｘ，Ｙ，Ｚを変えることにより様々な内部構成モードとして使用することができる。
図９は図５に示す６入力３出力ＬＵＴの内部構成の他の例を示すブロック図であり、前述した図６とは異なる６入力３出力ＬＵＴの内部構成の例を示すものである。
【００３４】
図９に示されるように、６入力３出力ＬＵＴ８（１２１）は、モード変更用メモリ８１、セレクタ８２１〜８２６、および、３入力２出力ＬＵＴユニット８３１〜８３４を備えている。モード変更用メモリ８１は、ユーザにより指定された３ビットのデータＸ，Ｙ，Ｚを格納するようになっており、６ビットの入力Ａ〜Ｆと３ビットの出力Ｑ，Ｖ，Ｗとの関係をユーザの要求に応じて設定するようになっている。
【００３５】
すなわち、上述した図６に示す６入力３出力ＬＵＴ７が８つの３入力１出力ＬＵＴユニット７３１〜７３８を備えていたのに対して、図９に示す本６入力３出力ＬＵＴ８は、４つの３入力２出力ＬＵＴユニット８３１〜８３４を備えている点を除き、他は実質的に同様の構成とされている。
なお、図９に示すＬＵＴ８におけるモード変更用メモリ８１に指定する３ビットのデータＸ，Ｙ，Ｚと、それにしたがった選択信号Ｆ０（Ｘ，Ｙ，Ｚ），Ｆ１（Ｘ，Ｙ，Ｚ）およびＦ２（Ｄ，Ｅ，Ｆ，Ｘ，Ｙ，Ｚ）、並びに、これら選択信号Ｆ０，Ｆ１，Ｆ２により制御される各セレクタ８２１〜８２６（セレクタ７２１〜７２６に対応）の動作は、図６および図３（ａ）〜図３（ｆ）を参照して説明したのと同様であり、ここではその説明を省略する。
【００３６】
図１０は図９の６入力３出力ＬＵＴにおける３入力２出力ＬＵＴユニットの一例を示すブロック図である。なお、各３入力２出力ＬＵＴユニット８３１〜８３４は全て同様の構成とされている。
図１０に示すＬＵＴユニット８３１は、アドレスデコーダ８３１１、セレクタ８３１２，８３１３、および、４組の４ビットで構成されたメモリユニット群Ｍ４１〜Ｍ４４，Ｍ５１〜Ｍ５４，Ｍ６１〜Ｍ６４，Ｍ７１〜Ｍ７４を備えている。アドレスデコーダ８３１１は、２ビットの入力信号Ａ，Ｂをデコードして４組のメモリユニット群Ｍ４１〜Ｍ４４，Ｍ５１〜Ｍ５４，Ｍ６１〜Ｍ６４およびＭ７１〜Ｍ７４の各１つを指定し、さらに、入力信号Ｃによって、メモリユニット群Ｍ４１〜Ｍ４４またはＭ５１〜Ｍ５４の一方の組のデータ（出力信号Ｑ：セレクタ８２６の入力『０』に供給される信号）と、メモリユニット群Ｍ６１〜Ｍ６４またはＭ７１〜Ｍ７４の一方の組のデータ（セレクタ８２６の入力『１』に供給される信号）とを選択して出力する。
【００３７】
図１１は図９の６入力３出力ＬＵＴにおける３入力２出力ＬＵＴユニットの他の例を示すブロック図である。
図１１に示すＬＵＴユニット８３１は、アドレスデコーダ８３１４、および、２組の８ビットのメモリユニット群Ｍ８１〜Ｍ８８およびＭ９１〜Ｍ９８を備えている。アドレスデコーダ８３１４は、３ビットの入力信号Ａ，Ｂ，Ｃをデコードして２組のメモリユニット群Ｍ８１〜Ｍ８８およびＭ９１〜Ｍ９８の各１つを指定し、それぞれデータ（出力信号Ｑ：セレクタ８２６の入力『０』に供給される信号と、セレクタ８２６の入力『１』に供給される信号）を出力する。
【００３８】
図１２は図９の６入力３出力ＬＵＴにおける３入力２出力ＬＵＴユニットのさらに他の例を示すブロック図である。
図１２に示すＬＵＴユニット８３１は、アドレスデコーダ８３１５、セレクタ８３１６，８３１７、および、８組の２ビットのメモリユニット群Ｍ１１１，Ｍ１２１；Ｍ１１２，Ｍ１２２；…；Ｍ１１８，Ｍ１２８を備えている。アドレスデコーダ８３１５は、１ビットの入力信号Ａをデコードして８組のメモリユニット群Ｍ１１１，Ｍ１２１〜Ｍ１１８，Ｍ１２８の各１つを指定し、さらに、２ビットの入力信号Ｂ，Ｃによって、メモリユニット群Ｍ１１１，Ｍ１２１〜Ｍ１１４，Ｍ１２４の内の一組のデータ（出力信号Ｑ：セレクタ８２６の入力『０』に供給される信号）と、メモリユニット群Ｍ１１５，Ｍ１２５〜Ｍ１１８，Ｍ１２８の内の一組のデータ（セレクタ８２６の入力『１』に供給される信号）とを選択して出力する。
【００３９】
図１３は８オペレーションのＡＬＵ回路（ＡＬＵ１６）９０の一構成例を示すブロック図である。図１３において、参照符号ＧおよびＨは１６ビットのデータ、Ｉはオペレーションを決めるコマンド信号、そしてＪは出力信号を示している。
図１３に示されるように、ＡＬＵ回路９０は、それぞれ１６ビットのデータＧおよびＨが入力されたＯＲ回路９１、ＡＮＤ回路９２、ＸＯＲ回路９３、ｎｏｔ回路９４、＋（加算）回路９５、ＮＥ（Ｎｏｔ  Ｅｑｕａｌ）回路９６、ＧＴ（Ｇｒｅａｔｅｒ  Ｔｈａｎ）回路９７およびＳＨＩＨＴ（シフト）回路９８の８つの演算回路と、これら８つの演算回路９１〜９８の出力をコマンド信号Ｉにより選択するセレクタ９９とを備え、コマンド信号Ｉに対応した出力信号Ｊ部を出力するようになっている。
【００４０】
この図１３に示すＡＬＵ回路（ＡＬＵ１６）９０に対して、従来のＦＰＧＡで使用されている３入力１出力ＬＵＴから７入力１出力ＬＵＴ（横軸：３ＬＵＴ〜７ＬＵＴ）に実装した場合と、本発明に係るＦＰＧＡで使用される図６に示すような６入力３出力ＬＵＴ（８つの３入力１出力ＬＵＴ７３１〜７３８、モード変更用メモリ７１およびセレクタ７２１〜７２６を備える構成：３ＬＵＴ＊８）および図９に示すような６入力３出力ＬＵＴ（４つの３入力２出力ＬＵＴ８３１〜８３４、モード変更用メモリ８１およびセレクタ８２１〜８２６を備える構成：４ＬＵＴ＊４）に実装した場合とを比較して、次の図１４および図１５に示す。なお、ＡＬＵ１６は、例えば、配線の切り替えを行うデータセレクタ（ＬＵＴを使用する必要がない回路）、ランダムロジック（ＬＵＴで構成される回路）、および、フリップフロップ（論理ブロックの固定部分の回路）を備えている。また、図１４および図１５の比較は、ＬＵＴの構成以外の条件が実質的に同一として行われているのはいうまでもない。
【００４１】
図１４は図１３に示すＡＬＵ１６を従来および本発明に係るＦＰＧＡで使用されるＬＵＴ（３ＬＵＴ〜７ＬＵＴおよび６入力３出力ＬＵＴ（３ＬＵＴ＊８並びに４ＬＵＴ＊４））に実装したときの面積比の相違を示す図であり、また、図１５は図１３に示すＡＬＵ１６に対して従来および本発明に係るＦＰＧＡで使用されるＬＵＴに実装したときの構成データビット数の相違を示す図である。図１４における縦軸は、一般に使用されている４入力１出力ＬＵＴ（４ＬＵＴ）を用いて構成した場合の面積を１とし、それに対する様々なＬＵＴを使用して構成した場合の面積比を示し、また、図１５における縦軸は、様々なＬＵＴを使用して構成した場合の構成データのビット数を示している。
【００４２】
図１４から明らかなように、例えば、図１３に示すようなＡＬＵ１６を本発明に係るＦＰＧＡで使用されている６入力３出力ＬＵＴ（３ＬＵＴ＊８および４ＬＵＴ＊４）に実装した場合の面積比は、同じのＡＬＵ１６を従来のＦＰＧＡで使用されているＬＵＴ（３ＬＵＴ〜７ＬＵＴ）に実装した場合に比べて大幅に小さくなることが分かる。具体的に、例えば、６入力３出力ＬＵＴを３入力１出力×８プレーンとして実装した３ＬＵＴ＊８は、従来のＬＵＴ中で最小面積を示す４入力１出力ＬＵＴ（４ＬＵＴ）を用いて実装した場合の約７５％の面積とすることができることが分かる。
【００４３】
さらに、図１５から明らかなように、ＡＬＵ１６を本発明に係るＦＰＧＡで使用されている６入力３出力ＬＵＴ（３ＬＵＴ＊８および４ＬＵＴ＊４）に実装した場合の構成データビット数は、従来のＬＵＴ中で最小の４ＬＵＴの場合と同等であることが判る。すなわち、本発明６入力３出力ＬＵＴは、例えば、４入力１出力に対して４倍の構成データを必要とするにも関わらず、構成データビット数を同等とすることができるのは、従来のＬＵＴが出力段のセレクタをＬＵＴにより構成しているのに対して、本発明では配線の切り替えによって行われるのでＬＵＴの使用数を削減することができるからである。
【００４４】
以上の説明において、本発明に係るＦＰＧＡで使用される６入力３出力ＬＵＴは、単なる一例であり、Ｍ入力Ｎ出力（例えば、８入力４出力）のＬＵＴに適用することができる。さらに、例えば、６入力３出力ＬＵＴ自体の構成に関しても、図６に示す８つの３入力１出力ＬＵＴユニットおよび図９に示す４つの３入力２出力ＬＵＴユニットに限定されるものではなく、様々な変更が可能なのはいうまでもない。
【００４５】
【発明の効果】
以上、詳述したように、本発明によれば、ルックアップテーブル（ＬＵＴ）すなわちプログラマブル論理回路装置の回路面積を削減することができる。さらに、本発明によれば、プログラマブル論理回路装置の消費電力を低減することもできる。
【図面の簡単な説明】
【図１】本発明が適用されるＦＰＧＡの一例を示すブロック図である。
【図２】ＦＰＧＡにおけるＬＵＴの一例としての６入力３出力ＬＵＴを示すブロック図である。
【図３】図２に示す６入力３出力ＬＵＴの内部構成モードを示すブロック図である。
【図４】ルックアップテーブルにおける回路のマッピング方法の一例を説明するための図である。
【図５】本発明に係るＦＰＧＡにおけるＬＵＴの一例としての６入力３出力ＬＵＴを入出力信号と共に示すブロック図である。
【図６】図５に示す６入力３出力ＬＵＴの内部構成の一例を示すブロック図である。
【図７】図６の６入力３出力ＬＵＴにおける３入力１出力ＬＵＴユニットの一例を示すブロック図である。
【図８】図６の６入力３出力ＬＵＴにおける３入力１出力ＬＵＴユニットの他の例を示すブロック図である。
【図９】図５に示す６入力３出力ＬＵＴの内部構成の他の例を示すブロック図である。
【図１０】図９の６入力３出力ＬＵＴにおける３入力２出力ＬＵＴユニットの一例を示すブロック図である。
【図１１】図９の６入力３出力ＬＵＴにおける３入力２出力ＬＵＴユニットの他の例を示すブロック図である。
【図１２】図９の６入力３出力ＬＵＴにおける３入力２出力ＬＵＴユニットのさらに他の例を示すブロック図である。
【図１３】８オペレーションのＡＬＵ回路（ＡＬＵ１６）の一構成例を示すブロック図である。
【図１４】図１３に示すＡＬＵ１６に対して従来および本発明に係るＦＰＧＡで使用されるＬＵＴに実装したときの面積比の相違を示す図である。
【図１５】図１３に示すＡＬＵ１６に対して従来および本発明に係るＦＰＧＡで使用されるＬＵＴに実装したときの構成データビット数の相違を示す図である。
【符号の説明】
７，８，１２１…ルックアップテーブル（ＬＵＴ：６入力３出力ＬＵＴ）
７１，８１…モード変更用メモリ
１００…プログラマブル論理回路装置（ＦＰＧＡ）
１０１…Ｉ／Ｏブロック
１０２…論理ブロック（ＣＬＢ）
１０３…接続ブロック（Ｃ）
１０４…スイッチマトリクス（Ｓ）
１０５…配線
１２２…ラッチ
１２３…セレクタ
７２１〜７２６，８２１〜８２６…セレクタ
７３１〜７３８…３入力１出力ＬＵＴユニット
８３１〜８３４…３入力２出力ＬＵＴユニット
【図１】
0003580785.tif 000002
【図２】
0003580785.tif 000003
【図３】
0003580785.tif 000004
【図４】
0003580785.tif 000005
【図５】
0003580785.tif 000006
【図６】
0003580785.tif 000007
【図７】
0003580785.tif 000008
【図８】
0003580785.tif 000009
【図９】
0003580785.tif 000010
【図１０】
0003580785.tif 000011
【図１１】
0003580785.tif 000012
【図１２】
0003580785.tif 000013
【図１３】
0003580785.tif 000014
【図１４】
0003580785.tif 000015
【図１５】
0003580785.tif 000016