(57)【特許請求の範囲】
【請求項１】
複数のマルチルックアップテーブルを有し、コンフィギュレーション情報に応じて複数の論理回路が構成されるプログラマブル論理デバイスであって、
それぞれの前記マルチルックアップテーブルは、記憶手段と、メモリ用アドレス線と、メモリ用データ入出力線と、論理用アドレス線と、論理用データ線を有し、
該論理用アドレス線および論理用データ線は、論理用入出力データのビット数に応じてそれぞれ１ビットごとに分配して単位アドレス線および単位データ線とし該単位アドレス線および単位データ線を対にして各対毎に前記マルチルックアップテーブルから異なる方向に配線され、
前記単位アドレス線および前記単位データ線と、前記メモリ用アドレス線および前記メモリ用データ入出力線により近接する前記マルチルックアップテーブルが接続されて、論理回路要素及びメモリ要素を備える論理ブロック群が構成され、
少なくとも１つの前記マルチルックアップテーブルは、追加の単位アドレス線および／または追加の単位データ線を有することを特徴とするプログラマブル論理デバイス。
【請求項２】
前記マルチルックアップテーブル群の第１の領域の前記記憶手段に所望の論理回路を実現するコンフィギュレーション情報が保持され、前記マルチルックアップテーブル群の第２の領域の前記記憶手段に前記第１の領域の前記マルチルックアップテーブルを選択的に切り替えるスイッチ情報が保持されて前記マルチルックアップテーブル群が前記論理回路要素となることを特徴とする請求項１に記載のプログラマブル論理デバイス。
【請求項３】
前記マルチルックアップテーブル群の第３の領域、あるいは前記論理回路要素として非動作の領域に所望のデータが保持されて、前記マルチルックアップテーブル群の少なくとも一部がメモリ要素となることを特徴とする請求項２に記載のプログラマブル論理デバイス。
【請求項４】
前記追加の単位アドレス線および／または追加の単位データ線は、前記マルチルックアップテーブル同士を接続することを特徴とする請求項１に記載のプログラマブル論理デバイス。
【請求項５】
前記追加の単位アドレス線および／または追加のデータ線に記憶要素を接続することを特徴とする請求項１に記載のプログラマブル論理デバイス。
【請求項６】
前記記憶手段は１ポートメモリであり、前記マルチルックアップテーブルは、前記メモリ用アドレス線と前記単位アドレス線とを切り替えて前記第１ポートメモリの入力ポートに割り当てる第１配線切替器と、前記メモリ用データ入出力線と前記単位データ線とを切り替えて前記１ポートメモリの出力ポートに割り当てる第２配線切替器とを備え、前記第１配線切替器および前記第２配線切替器によって論理回路動作時には前記単位アドレス線および前記単位データ線が選択され、メモリ動作時には前記メモリ用アドレス線および前記メモリ用データ入出力線が選択されることを特徴とする請求項１に記載のプログラマブル論理デバイス。
【請求項７】
前記論理ブロック群は前記記憶手段として１ポートメモリを有する第１のマルチルックアップテーブルと前記記憶手段として複数ポートメモリを有する第２のマルチルックアップテーブルとが混在することを特徴とする請求項１に記載のプログラマブル論理デバイス。
【請求項８】
記憶手段と、メモリ用アドレス線と、メモリ用データ入出力線と、論理用アドレス線と、論理用データ線とを有しマルチルックアップテーブルを相互に接続して、コンフィギュレーション情報に応じて複数の論理回路を構築するプログラマブル論理デバイスの構築方法であって、
前記記憶手段のポートを前記メモリ用アドレス線、メモリ用データ入出力線と、論理用アドレス線および論理用データ線に割り当てるステップと、
前記論理用アドレス線および論理用データ線を、論理用入出力データのビット数に応じてそれぞれ１ビット単位で分配して単位アドレス線および単位データ線とし該単位アドレス線および単位データ線を対にするステップと、
前記各対毎に前記マルチルックアップテーブルから異なる方向に配線するステップと、
少なくとも１つの前記マルチルックアップテーブルに、追加の単位アドレス線および／または追加の単位データ線を接続するステップと、
前記メモリ用アドレス線および前記メモリ用データ入出力線と、前記単位アドレス線および前記単位データ線により近接する前記マルチルックアップテーブルを接続し、前記追加の単位アドレス線及び／又は追加の単位データ線を前記マルチルックアップテーブルまたは前記マルチルックアップテーブル群内の他の要素に接続して論理回路要素及びメモリ要素を備えた論理ブロック群を構成するステップと、
を具備することを特徴とするプログラマブル論理デバイスの構築方法。
【請求項９】
前記記憶手段に１ポートメモリを用い、前記マルチルックアップテーブルに、前記メモリ用アドレス線と前記単位アドレス線とを切り替えて前記第１ポートメモリの入力ポートに割り当てる第１配線切替器と、前記メモリ用データ入出力線と前記単位データ線とを切り替えて前記１ポートメモリの出力ポートに割り当てる第２配線切替器とを配置することを特徴とする請求項８に記載のプログラマブル論理デバイスの構築方法。
【請求項１０】
記憶手段と、メモリ用アドレス線と、メモリ用データ入出力線と、論理用アドレス線と、論理用データ線によりマルチルックアップテーブルを構成し、
前記記憶手段のポートが前記メモリ用アドレス線およびメモリ用データ入出力線と、論理用アドレス線および論理用データ線に割り当てられ、
前記論理用アドレス線および論理用データ線を、論理用入出力データのビット数に応じてそれぞれ１ビット単位で分配して単位アドレス線および単位データ線とし該単位アドレス線および単位データ線を対にして前記各対毎に前記マルチルックアップテーブルから異なる方向に配線し、
前記メモリ用アドレス線および前記メモリ用データ入出力線と、前記単位アドレス線および前記単位データ線により近接する前記マルチルックアップテーブルを相互に接続して論理回路要素及びメモリ要素を備えた論理ブロック群を構成し、
少なくとも１つの前記マルチルックアップテーブルに、追加の単位アドレス線および／または追加の単位データ線を接続し、
前記追加の単位アドレス線および／または追加の単位データ線を近接しない前記マルチルックアップテーブルまたは前記マルチルックアップテーブル群内の他の要素と接続したプログラマブル論理デバイスの使用方法であって、
前記メモリ用アドレス線およびメモリ用データ入出力線を利用して、マルチルックアップテーブル群の第１の領域の前記記憶手段に所望の論理回路を実現するコンフィギュレーション情報を保持させるステップと、
前記メモリ用アドレス線およびメモリ用データ入出力線を利用して論理ブロック群の第２の領域の前記記憶手段に前記第１の領域の前記マルチルックアップテーブルを選択的に切り替えるスイッチ情報を保持させるステップと、
前記論理用アドレス線と、論理用データ線を利用して論理回路動作を行わせるステップと、
前記メモリ用アドレス線を利用して前記マルチルックアップテーブル群の第３の領域あるいは前記論理回路要素として非動作の領域に所望のデータを保持させて、前記マルチルックアップテーブル群の少なくとも一部をメモリ動作させるステップと、
を具備することを特徴とするプログラマブル論理デバイスの使用方法。
【請求項１１】
前記マルチルックアップテーブルの前記記憶手段として１ポートメモリを用い、前記マルチルックアップテーブルに、前記メモリ用アドレス線と前記単位アドレス線とを切り替えて前記第１ポートメモリの入力ポートに割り当てる第１配線切替器と、前記メモリ用データ入出力線と前記単位データ線とを切り替えて前記１ポートメモリの出力ポートに割り当てる第２配線切替器とを配置し、前記第１配線切替器と、前記第２配線切替器を操作して、前記論理回路動作または前記メモリ動作させることを特徴とする請求項１０に記載のプログラマブル論理デバイスの使用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル論理デバイス、およびその構築方法、およびその使用方法に係り、特に、各基本論理ブロックがメモリ要素としても動作可能であり、各基本ブロック同士の配線において、近接した配線及び離間した配線を可能とするプログラマブル論理デバイス、およびその構築方法、およびその使用方法に関する。
【背景技術】
【０００２】
図２０を参照して、従来の技術を用いた一般的なプログラマブル論理デバイス（Programmable  Logic  Device：以下ＰＬＤ）の構成を説明する。図２０は、最も一般的なアイランドスタイルＦＰＧＡ（Field  Programmable  Logic  Array）１００の一例であり、論理要素ＬＢ、接続要素、スイッチ要素ＳＢ、ＣＢ、入出力要素ＩＯＢから構成されている。
【０００３】
論理要素ＬＢは、組み合わせ回路を実現するプログラマブルな要素であり、順序回路を実現する論理要素ＬＢはフリップフロップ回路を内部に備えている。論理要素ＬＢの実現方式としてはプロダクトターム方式、ＬＵＴ（Look  Up  Table）方式、ＭＵＸ（ＭＬＵＴiplexer：マルチプレクサ)方式などがある。例えばＬＵＴ方式は、任意の論理関数の真理値表をＳＲＡＭ（Static  Random  Access Memory）に保持し、入力に応じて真理値表を参照して出力を行う方式である。
【０００４】
入出力要素ＩＯＢとは、デバイスの入出力と論理要素ＬＢとの間のインターフェースの役割を担う構成要素である。
【０００５】
接続要素は、論理要素ＬＢ、入出力要素ＩＯＢを接続するための構成要素である。接続要素は配線チャネル、スイッチ要素ＣＢ、ＳＢであり、論理要素ＬＢや入出力要素ＩＯＢの間はこの接続要素を介して接続されている。配線チャネルとは、１次元的、２次元的、あるいは階層的に配置し固定された配線である。スイッチ要素ＣＢは、論理ブロックＬＢと配線チャネルとの間に設定する要素であり、スイッチ要素ＳＢは、縦方向と横方向の配線が交差する部分において縦横の配線間の設定を行う要素である。
【０００６】
このようなＦＰＧＡ１００では、論理回路の構築情報を書き込む外部メモリＭを備えている。論理回路を構築する際には外部メモリＭから構築情報を読み込み、読み込んだ構築データをＦＰＧＡ１００に転送している。つまり上記の如きＦＰＧＡ１００は、ＳＲＡＭベースで構成されているにも関わらず、ＬＵＴを構成するＳＲＡＭをまとめて１つのメモリとして効率よく使用することはできない問題がある。
【０００７】
一方、メモリ機能と論理回路機能を兼ね備えたＰＬＤとしてメモリベース論理回路（Memory-based  PLD：以下ＭＰＬＤ)が提案されている。
【０００８】
図２１は、従来のＭＰＬＤ１５０の概要を示す図である。
【０００９】
図２１（Ａ）の如く、ＭＰＬＤ１５０は、メモリとＬＵＴの双方として機能する基本論理ブロックＬＢ’を導入し、その配置と配線を工夫することで、マルチプレクサや、スイッチ要素を不要とし、ＦＰＧＡと略同等の機能を実現できる。
【００１０】
具体的には、各基本論理ブロックＬＢ’に接続する論理用入力データ線及び論理用出力データ線をそれぞれ、１ビットずつに分散してアドレス線とデータ線の対として、隣接する基本論理ブロックＬＢ’と相互に接続する。これにより基本論理ブロックＬＢ’は、再構成部として動作し、更にＬＵＴやメモリ、さらには各基本論理ブロックＬＢ’間を図２１（Ａ）に示した交互配線で接続することで信号スイッチとしても利用可能である。
【００１１】
ＭＰＬＤ１５０をメモリとして動作させる時は、従来のメモリと同様の操作で動作させることが可能である。論理回路として動作させる時は、各基本論理ブロックＬＢ’に所望の回路やスイッチ信号として振舞うような真理値表を記憶させておくことで動作させることが可能となる。
【００１２】
これによりＭＰＬＤ１５０は、図２１（Ｂ）の如く、全ての基本論理ブロックＬＢ’をまとめて１つのメモリとして使用することができ、また論理回路としても動作させることができる（例えば非特許文献１参照。）。
【非特許文献１】吉原理記、外４名、「再構成デバイスとしても動作するメモリ（ＭＰＬＤ）の一実装例」、信学技法、広島市立大学大学院、平成１９年９月、ＲＥＣＯＮＦ２００７−１６、ｐｐ.７−１２
【発明の開示】
【発明が解決しようとする課題】
【００１３】
図２１に示した従来のＭＰＬＤでは、以下の問題があった。
【００１４】
第１に、各基本論理ブロックＬＢ’間の配線が隣接した基本論理ブロックＬＢ’にのみ接続されているため、離れた基本論理ブロックＬＢ’にデータを転送する場合の伝播遅延が大きい問題があった。
【００１５】
第２に、各基本論理ブロックＬＢ’間の配線が隣接した基本論理ブロックＬＢ’にのみ接続されているため、例えば順序回路の接続などが必要な場合には、ＭＰＬＤ１５０の外部で接続することとなり、汎用性が高められない問題があった。
【００１６】
第３に、論理回路としての動作とメモリとしての動作は同時に使用しないにも関わらず、基本論理ブロックＬＢ’として２ポートＳＲＡＭを用いているため、通常のＳＲＡＭよりも面積は２倍近く大きいものとなってしまう。このため、ＭＰＬＤ全体の面積も増大してしまう問題があった。
【課題を解決するための手段】
【００１７】
本発明は、係る課題に鑑みてなされ、第１に、複数の基本論理ブロックを有し、コンフィギュレーション情報に応じて複数の論理回路が構成されるプログラマブル論理デバイスであって、それぞれの前記基本論理ブロックは、記憶手段と、メモリ用アドレス線と、メモリ用データ入出力線と、論理用アドレス線と、論理用データ線を有し、該論理用アドレス線および論理用データ線は、論理用入出力データのビット数に応じてそれぞれ１ビットごとに分配して単位アドレス線および単位データ線とし該単位アドレス線および単位データ線を対にして各対毎に前記基本論理ブロックから異なる方向に配線され、前記単位アドレス線および前記単位データ線と、前記メモリ用アドレス線および前記メモリ用データ入出力線により近接する前記基本論理ブロックが接続されて、論理回路要素及びメモリ要素を備える論理ブロック群が構成され、少なくとも１つの前記基本論理ブロックは、追加の単位アドレス線および／または追加の単位データ線を有することにより解決するものである。
【００１８】
また、前記基本論理ブロック群の第１の領域の前記記憶手段に所望の論理回路を実現するコンフィギュレーション情報が保持され、前記基本論理ブロック群の第２の領域の前記記憶手段に前記第１の領域の前記基本論理ブロックを選択的に切り替えるスイッチ情報が保持されて前記基本論理ブロック群が前記論理回路要素となることを特徴とするものである。
【００１９】
また、前記基本論理ブロック群の第３の領域、あるいは前記論理回路要素として非動作の領域に所望のデータが保持されて、前記基本論理ブロック群の少なくとも一部がメモリ要素となることを特徴とするものである。
【００２０】
また、前記追加の単位アドレス線および／または追加の単位データ線は、前記基本論理ブロック同士を接続することを特徴とするものである。
【００２１】
また、前記追加の単位アドレス線および／または追加のデータ線に記憶要素を接続することを特徴とするものである。
【００２２】
また、前記記憶手段は１ポートメモリであり、前記基本論理ブロックは、前記メモリ用アドレス線と前記単位アドレス線とを切り替えて前記第１ポートメモリの入力ポートに割り当てる第１配線切替器と、前記メモリ用データ入出力線と前記単位データ線とを切り替えて前記１ポートメモリの出力ポートに割り当てる第２配線切替器とを備え、前記第１配線切替器および前記第２配線切替器によって論理回路動作時には前記単位アドレス線および前記単位データ線が選択され、メモリ動作時には前記メモリ用アドレス線および前記メモリ用データ入出力線が選択されることを特徴とするものである。
【００２３】
また、前記論理ブロック群は前記記憶手段として１ポートメモリを有する第１の基本論理ブロックと前記記憶手段として複数ポートメモリを有する第２の基本論理ブロックとが混在することを特徴とするものである。
【００２４】
第２に、記憶手段と、メモリ用アドレス線と、メモリ用データ入出力線と、論理用アドレス線と、論理用データ線とを有し基本論理ブロックを相互に接続して、コンフィギュレーション情報に応じて複数の論理回路を構築するプログラマブル論理デバイスの構築方法であって、前記記憶手段のポートを前記メモリ用アドレス線、メモリ用データ入出力線と、論理用アドレス線および論理用データ線に割り当てる工程と、前記論理用アドレス線および論理用データ線を、論理用入出力データのビット数に応じてそれぞれ１ビット単位で分配して単位アドレス線および単位データ線とし該単位アドレス線および単位データ線を対にするステップと、前記各対毎に前記基本論理ブロックから異なる方向に配線するステップと、少なくとも１つの前記基本論理ブロックに、追加の単位アドレス線および／または追加の単位データ線を接続するステップと、前記メモリ用アドレス線および前記メモリ用データ入出力線と、前記単位アドレス線および前記単位データ線により近接する前記基本論理ブロックを接続し、前記追加の単位アドレス線及び／又は追加の単位データ線を前記基本論理ブロックまたは前記基本論理ブロック群内の他の要素に接続して論理回路要素及びメモリ要素を備えた論理ブロック群を構成するステップと、を具備することにより解決するものである。
【００２５】
また、前記記憶手段に１ポートメモリを用い、前記基本論理ブロックに、前記メモリ用アドレス線と前記単位アドレス線とを切り替えて前記第１ポートメモリの入力ポートに割り当てる第１配線切替器と、前記メモリ用データ入出力線と前記単位データ線とを切り替えて前記１ポートメモリの出力ポートに割り当てる第２配線切替器とを配置することを特徴とするものである。
【００２６】
第３に、記憶手段と、メモリ用アドレス線と、メモリ用データ入出力線と、論理用アドレス線と、論理用データ線により基本論理ブロックを構成し、前記記憶手段のポートが前記メモリ用アドレス線およびメモリ用データ入出力線と、論理用アドレス線および論理用データ線に割り当てられ、前記論理用アドレス線および論理用データ線を、論理用入出力データのビット数に応じてそれぞれ１ビット単位で分配して単位アドレス線および単位データ線とし該単位アドレス線および単位データ線を対にして前記各対毎に前記基本論理ブロックから異なる方向に配線し、前記メモリ用アドレス線および前記メモリ用データ入出力線と、前記単位アドレス線および前記単位データ線により近接する前記基本論理ブロックを相互に接続して論理回路要素及びメモリ要素を備えた論理ブロック群を構成し、少なくとも１つの前記基本論理ブロックに、追加の単位アドレス線および／または追加の単位データ線を接続し、前記追加の単位アドレス線および／または追加の単位データ線を近接しない前記基本論理ブロックまたは前記基本論理ブロック群内の他の要素と接続したプログラマブル論理デバイスの使用方法であって、前記メモリ用アドレス線およびメモリ用データ入出力線を利用して、基本論理ブロック群の第１の領域の前記記憶手段に所望の論理回路を実現するコンフィギュレーション情報を保持させるステップと、前記メモリ用アドレス線およびメモリ用データ入出力線を利用して論理ブロック群の第２の領域の前記記憶手段に前記第１の領域の前記基本論理ブロックを選択的に切り替えるスイッチ情報を保持させるステップと、前記論理用アドレス線と、論理用データ線を利用して論理回路動作を行わせるステップと、前記メモリ用アドレス線を利用して前記基本論理ブロック群の第３の領域あるいは前記論理回路要素として非動作の領域に所望のデータを保持させて、前記基本論理ブロック群の少なくとも一部をメモリ動作させるステップと、を具備することにより解決するものである。
【００２７】
また、前記基本論理ブロックの前記記憶手段として１ポートメモリを用い、前記基本論理ブロックに、前記メモリ用アドレス線と前記単位アドレス線とを切り替えて前記第１ポートメモリの入力ポートに割り当てる第１配線切替器と、前記メモリ用データ入出力線と前記単位データ線とを切り替えて前記１ポートメモリの出力ポートに割り当てる第２配線切替器とを配置し、前記第１配線切替器と、前記第２配線切替器を操作して、前記論理回路動作または前記メモリ動作させることを特徴とするものである。
【発明の効果】
【００２８】
本発明によれば、以下の効果が得られる。
【００２９】
第１に、所望の基本論理ブロックに、追加の単位アドレス線及び／または単位データ線を接続することにより、隣接する基本論理ブロック間を配線する近接配線に加えて、他の配線を追加することができる。これにより、例えば離間した基本論理ブロック同士を配線することが可能となる。
【００３０】
各基本論理ブロックにおいて単位アドレス線および単位データ線を対で追加することにより、双方向にデータを伝播する経路が増加し、汎用性が高められる。
【００３１】
一方、単位アドレス線および単位データ線を対で追加すると、単位アドレス線および単位データ線の対の数の増加にしたがって、ＭＬＵＴ全体の面積が増加する。このような場合は、所望の基本論理ブロックに選択的に、離間した基本論理ブロック同士を配線するための単位アドレス線および単位データ線の対の数を確保する。
【００３２】
このように、追加の配線を接続する基本論理ブロックを限定することで、ＭＬＵＴ全体の面積増加を抑制することができる。これにより、ＣＡＤでの取り扱いを容易にする近接配線の対称性と均質性を保ちながら、ＭＰＬＤ内において離間したＭＬＵＴ間の配線を実現し、汎用性の高いＭＰＬＤを実現できる。
【００３３】
更に、近接する基本論理ブロック同士を追加の配線で接続することもできる。
【００３４】
第２に、所望の基本論理ブロックに、追加の単位アドレス線及び／または単位データ線を接続することにより、フリップフロップ回路などの記憶要素（素子）を追加するこができる。これにより、順序回路として機能させることも可能となる。あるいは、論理回路動作時における演算結果を記憶させることが可能である。
【００３５】
これにより、ＣＡＤでの取り扱いを容易にする近接配線の対称性と均質性を保ちながら、所望の基本論理ブロックと近接した領域に、フリップフロップ回路やラッチ回路接続することができる。
【００３６】
第３に、追加の単位アドレス線および単位データ線は、必要に応じていずれか一方または両方を、必要な基本論理ブロックのみに接続することにより、全体の面積増加を抑えつつ、汎用性の高いＭＰＬＤを提供できる。
【００３７】
基本論理ブロックにおいて、単位アドレス線および単位データ線を追加すれば、双方向の配線が増加し、汎用性は高められるが、単位アドレス線および単位データ線の対の数の増加にしたがって、ＭＬＵＴ全体の面積が増加する。そこで、必要に応じて離間したＭＬＵＴとの配線を実現するための単位アドレス線および単位データ線のうちいずれかを選択して配線する。すなわち、データを伝播する方向は固定されるが、面積増加を抑制できる。
【００３８】
更に、離間したＭＬＵＴとの配線を実現するための追加の配線を付加する基本論理ブロックを限定することでＭＬＵＴ全体の面積増加を抑制することができる。
【００３９】
第４に、基本論理ブロックは、１ポートメモリと、その入出力メモリポートを論理回路動作用とメモリ（再構成）動作用に接続を切り替える２つの配線切替器を備えることにより、ＭＰＬＤの面積を削減することができる。
【００４０】
ＭＰＬＤでは、基本論理ブロックに２ポートメモリを用いた場合であっても論理回路動作とメモリ（再構成）動作は同時には行われない。そこで、２ポートメモリに変えて１ポートメモリを使用し、配線切替器によって論理回路動作用とメモリ用のポート（配線）を切り替えることで、ＭＰＬＤの面積を低減できる。特に、単位アドレス線と単位データ線の対の数が大きい（扱うデータのビット数が大きい）場合には、有効である。
【００４１】
また、１ポートメモリを用いた基本論理ブロックは、配線切替器によってメモリ動作と論理回路動作を切り分けることが可能なため、通常のＦＰＧＡなどと比べて部分再構成がしやすい利点を有する。
【発明を実施するための最良の形態】
【００４２】
図１から図１９を参照して、本発明の実施形態について詳細に説明する。
【００４３】
本発明のプログラマブル論理デバイスはメモリベースプログラマブル論理デバイス（Memory-based  Programmable  Logic  Device：以下ＭＰＬＤ）１０であり、記憶手段と、メモリ用アドレス線と、メモリ用データ入出力線と、論理用アドレス線と、論理用データ線と、からなる基本論理ブロック１を複数相互接続して構成される。
【００４４】
まず図１から図１３を参照して、本発明の第１の実施形態について説明する。
【００４５】
図１は、ＭＰＬＤ１０の全体を示す概要図である。
【００４６】
ＭＰＬＤ１０は、複数の基本論理ブロック１を配置したブロック群２と、行デコーダ３と、列デコーダ４を有する。
【００４７】
ＭＰＬＤ１０の入出力信号は、メモリアドレス入力信号ＭＡ、メモリデータ入出力信号ＭＤ、論理用アドレス信号ＬＩ、論理用データ信号ＬＯである。
【００４８】
メモリアドレス入力信号ＭＡは、ＭＰＬＤ１０がメモリ動作する場合に、メモリ中のデータの読み出しおよび書き込みに使用するアドレスの入力信号である。
【００４９】
メモリデータ入出力信号ＭＤは、メモリ中のデータの読み出し及び書き込みを行うときに、ＭＰＬＤ１０の外部とのデータのやり取りを行う信号である。
【００５０】
論理用アドレス信号ＬＩは、ＭＰＬＤ１０を論理回路として動作させる場合に用いて、演算データを入力するときに使用する信号である。
【００５１】
論理用データ信号ＬＯは、ＭＰＬＤ１０を論理回路として動作させる場合に用いて、論理回路の演算結果を出力するときに使用する信号である。
【００５２】
本実施形態の基本論理ブロック１は、メモリ要素と論理回路要素を備える。
【００５３】
ＭＰＬＤ１０をメモリとして使用する場合（メモリ機能）の動作について説明する。一般的なメモリと同様に、メモリ用アドレス線１１は行デコーダ３と列デコーダ４に入力され、メモリ用アドレス線１１からメモリアドレス入力信号ＭＡ（行アドレス入力信号）が入力され、制御信号が行デコーダ３に入力されることでワード線ＷＬを操作する。そして、制御信号と行アドレス入力信号で内部のビット線ＢＬを操作し、データの制御を列デコーダ４で行う。つまり、行アドレス入力信号と列アドレス入力信号を入力することで読み出し、または書き込みする場所を指定し、制御信号ＷＥ、制御信号ＲＥ、制御信号ＰＲＥを用いて、それぞれ書き込み制御、読み出し制御、プリチャージの制御を行う。
【００５４】
次に、ＭＰＬＤ１０を論理回路として使用する場合（論理回路機能）の動作について説明する。各基本論理ブロック１は、ここでの図示は省略するが、隣接する基本論理ブロック１と相互に配線で接続されている。
【００５５】
論理回路として動作させるには、上記のメモリ機能を用いて、各基本論理ブロック１に実現したい信号スイッチまたは論理回路の真理値表を入力しておく。次に論理用アドレス線１３に論理用アドレス信号ＬＩを入力することで、論理用データ線１４から演算結果（論理用データ信号ＬＯ）が出力される。
【００５６】
次に、図２から図７を参照して基本論理ブロック１について説明する。後に詳述するが、本実施形態の基本論理ブロック１は、多入力多出力ＬＵＴ（Look  Up  Table）として機能するので、以下これをＭＬＵＴ（Multi  LUT）１と称する。以下では、４入出力（ビット数Ｎ＝４）の場合を例に示す。
【００５７】
まず図２は、ＭＬＵＴ１の入出力を示す図である。ＭＬＵＴ１は、２ポートメモリ（例えばＳＲＡＭ（static  random  access  memory））１５、メモリ動作用のアドレスデコーダ１６、論理回路用のアドレスデコーダ１７を有する。尚、メモリ動作用のアドレスデコーダ１６は全てのＭＬＵＴ１で共有可能なので、ＭＬＵＴ１の外部に構成することによりＭＬＵＴ１の小面積化が可能である。
【００５８】
メモリ用入力ポート１８Ａにはメモリ用アドレス線１１が接続し、メモリ用入出力ポート１８Ｄにはメモリ用データ入出力線１２が接続し、論理用入力ポート１９Ａには論理用アドレス線１３が接続し、論理用出力ポート１９Ｄには論理用データ線１４が接続する。
【００５９】
図３は、ＭＬＵＴ１内の２ポートメモリ１５の入出力を示す図である。
【００６０】
本実施形態では、ＭＬＵＴ１に接続する論理用アドレス線１３と論理用データ線１４は、論理用入出力データのビット数Ｎ（例えばＮ＝４）に応じて１ビットごとに分配される。以下、１ビットごとに分配された論理用アドレス線１３および論理用データ線を、それぞれ単位アドレス線１３０、単位データ線１４０と称する。
【００６１】
すなわち論理用アドレス線１３は、単位アドレス線１３０（１３１、１３２、・・・、１３Ｎ）に分配され、論理用データ線１４は単位データ線１４０（１４１、１４２、・・・１４Ｎ）に分配される（図３（Ａ））。
【００６２】
更に単位アドレス線１３０と単位データ線１４０を、それぞれ１本ずつの対にする。これをアドレス・データ対ＡＤと称する。そして、図３（Ｂ）の如く、アドレス・データ対ＡＤ１（単位アドレス線１３１と単位データ線１４１）、アドレス・データ対ＡＤ２（単位アドレス線１３２と単位データ線１４２）、アドレス・データ対ＡＤ３（単位アドレス線１３３と単位データ線１４３）、アドレス・データ対ＡＤ４（単位アドレス線１３４と単位データ線１４４）として配線する（図２参照）。
【００６３】
図４は、ＭＬＵＴ１のアドレス・データ対ＡＤの配線の一例を示す図である。
【００６４】
図４（Ａ）は１つのＭＬＵＴ１を示す図であり、図４（Ｂ）はＭＬＵＴ群１Ｇの一部を示す図である。
【００６５】
図４（Ａ）の如く、アドレス・データ対ＡＤは、各対毎にＭＬＵＴ１から異なる方向に配置された他のＭＬＵＴ１に向かって配線される。一例として、アドレス・データ対ＡＤ１（単位アドレス線１３１と単位データ線１４１）、アドレス・データ対ＡＤ２（単位アドレス線１３２と単位データ線１４２）、アドレス・データ対ＡＤ３（単位アドレス線１３３と単位データ線１４３）、アドレス・データ対ＡＤ４（単位アドレス線１３４と単位データ線１４４）は、それぞれ図４に示すＭＬＵＴ１の左、上、右、下から導出するように双方向に配線される。またメモリ用アドレス線１１とメモリ用データ入出力線１２も配線される。
【００６６】
メモリ用アドレス線１１とメモリ用データ入出力線１２はそれぞれ、２ポートメモリ１５の第１入力ポート１８Ａ、第１出力ポート１８Ｄに接続し、単位アドレス線１３１〜１３４と単位データ線１４１〜１４４はそれぞれ、２ポートメモリ１５の第２入力ポート１９Ａ、第２出力ポート１９Ｄに接続する。
【００６７】
図４（Ｂ）の如く、アドレス・データ対ＡＤによって、ＭＬＵＴ１は近接するＭＬＵＴ１と相互に接続される。近接するＭＬＵＴ１とは、マトリクス状に配置されたＭＬＵＴ１の一つに対して例えば上下左右に隣接する４つのＭＬＵＴ１である。またＭＬＵＴ１がマトリクス（アレイ）状に配置されない場合（例えば行方向または列方向にずらして配置した場合）であっても、４方向において隣接する４つのＭＬＵＴ１と接続する。以下このように隣接するＭＬＵＴ１との相互の接続を近接配線と称する。
【００６８】
図５を参照して、ＭＬＵＴ１の論理回路動作を説明する。図５（Ａ）は構築する論理回路の一例を示す図であり、図５（Ｂ）は真理値表の一例であり、図５（Ｃ）はＭＬＵＴ１に入出力されるデータの一例を示す図である。
【００６９】
論理回路動作時には、論理回路用の配線、すなわちアドレス・データ対ＡＤ（実線矢印）を利用する。また図５（Ａ）に示す論理回路の場合は、図５（Ｂ）の如き真理値表で表現することができる。真理値表は、メモリ用アドレス線１１およびメモリ用データ入出力線を利用して、ＭＬＵＴ１内の２ポートメモリ１５に保持させることで、ＭＬＵＴ１を論理回路要素とすることができ、ＭＬＵＴ１にデータが入力されると、真理値表を参照して結果を出力する（図５（Ｃ））。
【００７０】
このように本実施形態のＭＬＵＴ１は、論理用アドレス線１３と論理用データ線１４を分配してアドレス・データ対ＡＤとし、異なる方向に配線することで、多入力多出力ＬＵＴとして機能する。
【００７１】
またＭＬＵＴ１は、単位アドレス線がＭＬＵＴ１に対して入力方向、単位データ線がＭＬＵＴ１からの出力方向になるので、複数のアドレス・データ対ＡＤを異なる方向に接続することで、ＭＬＵＴ１に方向性を持たせることができ、スイッチ要素として機能させることができる。
【００７２】
図６を参照して、ＭＬＵＴ１のスイッチ動作を説明する。図６（Ａ）が真理値表の一例であり、図６（Ｂ）がＭＬＵＴ１に入出力されるデータの一例を示す図、図６（Ｃ）がスイッチ要素としての概要を示す図である。
【００７３】
図６（Ａ）の如く、入出力方向の情報（スイッチング情報）は真理値表で表現できる。またＭＬＵＴ１は各アドレス・データ対ＡＤが方向性を持っている（図６（Ｂ））。従って例えば入力（Ａ０）と出力（Ｙ１）が等価（Ａ０＝Ｙ１）となる論理式を実現する真理値表を、メモリ用アドレス線１１およびメモリ用データ入出力線１２を利用して、２ポートメモリ１５に保持させることで、それぞれ実線、破線、一点鎖線、二点鎖線の矢印の方向に配線を接続することができる。つまり、データの入力によってＭＬＵＴ１をスイッチ要素として機能させることができる（図６（Ｃ））。
【００７４】
図７を参照して、ＭＬＵＴ１のメモリ動作を説明する。図７はＭＬＵＴ１に入出力されるデータの一例を示す図である。
【００７５】
メモリ要素として利用するときは、メモリ用の配線（メモリ用アドレス線１１、メモリ用データ入出力線１２）を利用する。ＭＬＵＴ１をメモリ動作させることで、論理要素またはスイッチ要素としての真理値表の読み込みや書き換えを行う。尚、真理値表はデータとしても利用することができる。
【００７６】
以上のような構成により、ＭＬＵＴ１はメモリ要素と論理回路要素を備えることができ、本実施形態のＭＰＬＤ１０は、従来のＰＬＤ（図２０）とは異なり、配線要素ＣＢ、ＳＢが不要で、一般的なメモリに近いＰＬＤとしてメモリ動作と論理回路動作を行うことが可能となる。
【００７７】
すなわち、メモリ用アドレス線１１およびメモリ用データ入出力線１２を利用して、所望のＭＬＵＴ１にコンフィギュレーション情報を書き込み、他のＭＬＵＴ１にスイッチング情報を書き込む。その後、論理用アドレス線１３を利用して基本論理ブロック群（ＭＬＵＴ群）１Ｇを論理回路として動作させ、論理用データ線１４から演算結果を出力する。
【００７８】
図８を参照して具体的に説明する。図８は、ＭＰＬＤ１０の構成の一例を示す図であり、図１に示すＭＬＵＴ群１Ｇの一部を拡大した図である。ここでは論理回路として４ビット加算器を構成した場合を例に説明する。
【００７９】
ＭＬＵＴ１は、それぞれ近接するＭＬＵＴ１とアドレス・データ対ＡＤ（細矢印）にて相互に配線されている。また、メモリ用アドレス線１１およびメモリ用データ入出力線１２は各列で共有している。図７において例えば、最も左のアドレス・データ対ＡＤと、左上のアドレス・データ対ＡＤが、図１の論理用アドレス線、論理用データ線に接続する。
【００８０】
論理回路として動作させるために、まずメモリ機能を用いて所望のＭＬＵＴ１に実現したい論理回路のコンフィギュレーション情報およびスイッチ情報を入力する。
【００８１】
すなわち、メモリ用アドレス線１１とメモリ用データ入出力線１２を用いて、ＭＬＵＴ群１Ｇの第１の領域Ｒ１（例えば左端の列）のＭＬＵＴ１内の２ポートメモリ１５に、論理和を求めるコンフィギュレーション情報（真理値表）を保持させる。
【００８２】
またメモリ用アドレス線１１とメモリ用データ入出力線１２を用いて、ＭＬＵＴ群１Ｇの第２の領域Ｒ２（例えば左から２列目）のＭＬＵＴ１内の２ポートメモリ１５に、論理回路要素を選択的に切り替えるスイッチ情報となる真理値表を保持させる。例えば、左端の列の加算結果の桁上げを行う配線が選択されるような真理値表を保持させる。
【００８３】
そして論理用アドレス線１３および論理用データ線１４（各アドレス・データ対ＡＤ）を利用して、太矢印の如く論理回路として動作させる。すなわち、演算データを論理用アドレス線１３から入力することで、左端の列（第１の領域Ｒ１）と、左から２列目（第２の領域Ｒ２）のＭＬＵＴ群が加算および桁上げの論理回路動作を行い、演算結果を、論理用データ線１４から出力させる。
【００８４】
このとき、ＭＬＵＴ群１Ｇの第３の領域Ｒ３（例えば左から３列目およびそれ以外の列）のＭＬＵＴ１は、論理回路動作に使用されないため、必要に応じて、それぞれの２ポートメモリ１５に所望のデータを保持させてメモリ要素として機能させることもできる。
【００８５】
また、例えば第1の領域Ｒ１や第２の領域Ｒ２において論理回路動作していない領域をメモリ要素として機能させることもできる。
【００８６】
論理回路をどのように構成するか、あるいはスイッチ要素をどのように機能させるか、より具体的には、どのような真理値表をどのＭＬＵＴ１に保持させるかは、設計者によって適宜選択される。
【００８７】
一方、メモリ要素として動作させるには、通常のメモリと同様の操作を行う。すなわち、再び図１を参照して、メモリアドレス入力信号ＭＡを行デコーダ３、列デコーダ４に入力し、これにより操作したいメモリを指定し、書き込むデータとしてメモリデータ入出力信号ＭＤを入力する。データの読み出しは同様に操作し、メモリ用データ入出力線からデータが出力される。制御信号ＷＥは書き込み制御、制御信号ＲＥは読み出し制御、制御信号ＰＲＥはプリチャージの制御を行う。
【００８８】
本実施形態のＭＰＬＤ１０は、外部メモリを用いず、ＭＬＵＴ群１Ｇの一部の領域をＰＬＤとして機能させ、他の領域をメモリとして機能させることができる。また一般的なメモリへの書き込み操作と同様の手法で論理回路を構築することができ、ＭＬＵＴ群１Ｇの一部を、部分的に書き換えることが容易である。従ってＰＬＤとしての領域の増減にも柔軟に対応でき、またＰＬＤとして利用する必要のない場合には、全体を１つのメモリとして機能させることも可能である。
【００８９】
また論理回路要素となるＭＬＵＴ１はそれぞれ構築情報を保持するので、外部メモリから構築情報を読み込む従来のＰＬＤと比較して、構築速度を高めることができる。
【００９０】
以上がＭＬＵＴ１の基本的な動作であるが、本実施形態では、ＭＬＵＴ群１Ｇの少なくとも１つのＭＬＵＴ１に、アドレス・データ対ＡＤ、またはアドレス線１３およびデータ線１４のいずれか一方を追加して接続するものであり、図９から図１２を参照して説明する。
【００９１】
図９は、ＭＬＵＴ群１Ｇ内のデータの伝播の一例を示す図であり、細矢印がアドレス・データ対であり、破線の太矢印はデータが伝播する様子を示している。
【００９２】
例えば左上のＭＬＵＴ１から右下のＭＬＵＴ１へデータを伝播するような場合、構築する論理回路によっては太矢印の如く多数のＭＬＵＴ１を通過する必要があるため伝播遅延が大きくなる問題がある。
【００９３】
そこで本実施形態では、ＭＬＵＴ１に追加の配線を行うことにより、離間した他のＭＬＵＴとの配線（以下離間配線）を実現し、伝播遅延を抑制することとした。
【００９４】
図１０は、追加の配線を行ったＭＬＵＴ群１Ｇの一部を示す図である。
【００９５】
上記の如く各ＭＬＵＴ１は、例えば４組のアドレス・データ対ＡＤ（細矢印）によって４方向において隣接するＭＬＵＴ１と相互に配線（近接配線）されている。
【００９６】
本実施形態では、近接配線に使用するアドレス・データ対ＡＤを維持したまま、追加のアドレス・データ対ＡＤ’（太矢印）を接続する。これにより、それぞれのＭＬＵＴ１に接続されるアドレス・データ対ＡＤ、ＡＤ’の数が増加する。図１０においてはアドレス・データ対ＡＤ、ＡＤ’合計数をＡＤ対数として各ＭＬＵＴ１内に示した。
【００９７】
追加する他のアドレス・データ対ＡＤ’は、隣接するＭＬＵＴ１より遠方のＭＬＵＴ１と接続し、これにより離間した他のＭＬＵＴ１と配線（離間配線）が可能となる。
【００９８】
論理回路によっては、このような場合に、離間配線を追加することでデータの伝播遅延を大幅に減少させることができる。また、配線の柔軟性を高めることができる。
【００９９】
図１１は、離間配線の他の一例を示す図である。図１１（Ａ）は１つのＭＬＵＴ１を示す図であり、図１１（Ｂ）はＭＬＵＴ群１Ｇの一例を示す図である。細矢印は近接配線を行うアドレス・データ対ＡＤである。
【０１００】
単位アドレス線１３０および単位データ線１４０は常にアドレス・データ対ＡＤで配線する必要はなく、必要に応じて、太矢印の如く、単位アドレス線１３０’および単位データ線１４０’をそれぞれ独立してＭＬＵＴ１に追加することができる。尚、追加された後の単位アドレス線、単位データ線の数は、それぞれＡ線、Ｄ線としてＭＬＵＴ１内に示した。図の如く送り側のＭＬＵＴ１に単位データ線１４０’を追加した場合、受け側のＭＬＵＴ１では単位アドレス線１３０’の追加となる。
【０１０１】
この場合は、追加のアドレス・データ対ＡＤ’を接続した場合と異なり、双方向配線ではなくなるが、普通の組み合わせ回路の場合双方向線を利用する必要はなく、一定の方向にデータが伝播さる。そのため、必ずしも追加した単位アドレス線１３０’、単位データ線１４０’が対になる必要はない。
【０１０２】
以下の説明では、追加のアドレス・データ対ＡＤ’、単位アドレス線１３’、単位データ線１４’を総称して追加配線と称し、これらを追加することを追加配線を行う、と称する。
【０１０３】
本実施形態では、全てのＭＬＵＴ１に均一に、追加のアドレス・データ対ＡＤ’、単位アドレス線１３’、単位データ線１４’のそれぞれを追加することができる。これにより配線の自由度を大幅に向上させることができ、データを伝播する際の遅延を回避することができる。
【０１０４】
但し、追加配線は、直接的にＭＰＬＤの面積増加につながる。そこで、図１０の如く、必要なＭＬＵＴ１のみ選択的に、アドレス・データ対ＡＤ’を追加する。これにより、ＭＰＬＤとしての面積増加を抑制しつつ、論理回路動作時における各ＭＬＵＴ１間のルーティングをより柔軟にすることができる。従って、隣接していないＭＬＵＴ１へデータを伝播する際の遅延を回避することができる。
【０１０５】
また、図１１の如く、必要なＭＬＵＴ１のみ選択的に、単位アドレス線１３０’、単位データ線１４０’のいずれかを追加する。これによって、配線方向は限定されるが、面積の縮小に寄与できる。尚、図１１（Ａ）の如く、用途に応じてメモリ用アドレス線１１、メモリ用データ入出力線１２のビット数も均一あるいは不均一に増加する。
【０１０６】
更に、図１２の如く、所望のＭＰＬＤ１１に対して、必要な部分のみに、非規則的、不均等に追加配線のそれぞれを追加することもできる。このように、異なる追加配線を有するＭＬＵＴ１を１つのＭＬＵＴ群１Ｇに混在させることも可能である。
【０１０７】
近接配線は、その対称性と均質性によりＣＡＤでの取り扱いが容易となっている。本実施形態では、近接配線に加えて離間配線用のアドレス・データ対ＡＤ’、アドレス線１３’、データ線１４’を接続することにより、近接配線の利点である対象性と均質性を維持したまま、論理回路の構築に柔軟に対応でき、またデータの伝播遅延を回避するＭＰＬＤを提供することができる。
【０１０８】
そして、アドレス・データ対ＡＤ’、アドレス線１３’、データ線１４’の数を必要に応じて確保し、接続するＭＬＵＴ１を限定することにより、ＭＰＬＤ全体の面積増加を抑制できる。
【０１０９】
更に、追加のアドレス・データ対ＡＤ’、アドレス線１３’、データ線１４’を立体的に配線すれば、３次元ＬＳＩに用いて好適なＭＰＬＤが実現する。
【０１１０】
上記の例では、追加配線によってＭＬＵＴ１を相互に接続する場合を例に示した。しかしこれに限らず、例えば追加配線によって、フリップフロップ回路やラッチ回路などの記憶要素（記憶素子）を追加することもできる。これによりＭＬＵＴ群１Ｇを順序回路として機能させることができる。
【０１１１】
従来では、ＭＬＵＴ１にフリップフロップ回路やラッチ回路を接続する場合には、ＭＬＵＴ群１Ｇの外側で接続しており、例えばＭＬＵＴ群１Ｇの中央付近のＭＬＵＴ１では当該回路までの距離が長くなる問題があった。
【０１１２】
しかし、本実施形態によれば、接続すべきＭＬＵＴ１に近い位置にフリップフロップ回路やラッチ回路を接続することができる。
【０１１３】
更に、離間配線に限らず、追加配線によって、隣接するＭＵＬＴ１同士を接続させることも可能である。これにより近接配線の配線数を選択的に（あるいは全数で）増加させることができる。
【０１１４】
図１３は、上記のＭＰＬＤ１０の設計工程の一例を示すフロー図であり、以下これを参照して説明する。
【０１１５】
ステップ１（Ｓ１）：ＭＬＵＴ１内の２ポートメモリ１５の第１入力ポート１８ＡをＭＬＵＴ１におけるメモリ用入力ポート、すなわちメモリ用アドレス線１１に割り当て、第１出力ポート１８ＤをＭＬＵＴ１におけるメモリ用入出力ポート、すなわちメモリ用データ入出力線１２に割り当てる（図２参照）。
【０１１６】
また、２ポートメモリ１５の第２入力ポート１９ＡをＭＬＵＴ１における論理用入力ポート、すなわち論理用アドレス線１３に割り当て、第２出力ポート１９ＤをＭＬＵＴ１における論理用出力ポート、すなわち論理用データ線１４に割り当てる。
【０１１７】
ステップ２（Ｓ２）：論理用アドレス線１３および論理用データ線１４を１ビット単位で分配し、それぞれの１ビットずつを対にしたアドレス・データ対ＡＤによって擬似的な双方向線を構成する（図３（Ｂ）参照）。
【０１１８】
ステップ３（Ｓ３）：複数のアドレス・データ対ＡＤがそれぞれ異なる方向に導出されるようにＭＬＵＴ１に接続し、方向性を持たせる（図４（Ａ）参照）。
【０１１９】
ステップ４（Ｓ４）：少なくとも１つのＭＬＵＴ１に、追加の単位アドレス線および／または追加の単位データ線を接続する。所望のＭＬＵＴ１に選択的に、追加配線（アドレス・データ対ＡＤ’、単位アドレス線１３０’、単位データ線１４０’）を接続する。
【０１２０】
ステップ５（Ｓ５）：複数のＭＬＵＴ１を例えばアレイ状に配置し、配線を行う。すなわち、メモリ用アドレス線１１およびメモリ用データ入出力線１２と、単位アドレス線１３０および単位データ線１４０（アドレス・データ対ＡＤ）により近接するＭＬＵＴ１を相互に接続する。更に、追加の単位アドレス線１３０’及び／又は追加の単位データ線１４０’（追加のアドレス・データ対ＡＤ’）をＭＬＵＴ１または、ＭＬＵＴ群１Ｇ内の他の要素に接続して論理回路要素及びメモリ要素を備えた論理ブロック群を構成する（図１０〜図１２参照）。
【０１２１】
尚、上記のステップ２およびステップ３は順不同である。
【０１２２】
次に、図１４から図１７を参照して、本発明の第２の実施形態について説明する。
【０１２３】
第１の実施形態のＭＬＵＴ１は、２ポートメモリ１５を用いているが、ＭＬＵＴ１の論理回路動作とメモリ（再構成）動作は同時には行われない。そこで、第２の実施形態では２ポートメモリ１５に変えて、１ポートメモリ２５と配線切替器２２、２３を用いて、基本論理ブロックを構成する。以下、第２の実施形態の基本論理ブロックを、ＳＭＬＵＴ（Single-port  ＭＬＵＴ）２と称して説明する。
【０１２４】
図１４および図１５は、第２の実施形態のＳＭＬＵＴ２（例えば４ビット）を示す図である。図１４はＳＭＬＵＴ２の入出力を示す図であり、図１５はＳＭＬＵＴ２の配線の一例を示す図である。尚、第１の実施形態と同一構成要素は同一符号で示し、第１の実施形態と重複する部分は説明を省略する。
【０１２５】
ＭＰＬＤ１０としての動作は、第１の実施形態と同様である。すなわち、論理回路として動作させる時は、各ＳＭＬＵＴ２に所望の論理回路の構築情報やスイッチ信号として振舞うような情報を真理値表として記憶させておくことで動作させる。またメモリとして動作させる時は一般的なメモリと同じ操作で動作させる。
【０１２６】
図１４を参照して、ＳＭＬＵＴ２は、１ポートメモリ（例えばＳＲＡＭ）２５、アドレスデコーダ２７、第１の配線切替器２２、第２の配線切替器２３を有する。
【０１２７】
メモリ用入力ポート２８Ａにはメモリ用アドレス線１１と論理用アドレス線１３が割り当てられ、メモリ用入出力ポート２８Ｄにはメモリ用データ入出力線１２と論理用データ線１４が割り当てられる。
【０１２８】
ＳＭＬＵＴ２も、第１の実施形態のＭＬＵＴ１と同様に論理用アドレス線１３と論理用データ線１４は、それぞれ単位アドレス線１３１〜１３４、単位データ線１４１〜１４４に分配される。
【０１２９】
図１５を参照して、アドレス・データ対ＡＤの配線の一例を示す。
【０１３０】
アドレス・データ対ＡＤは、各対毎にＳＭＬＵＴ２から異なる方向に配線される。一例として、アドレス・データ対ＡＤ１（単位アドレス線１３１と単位データ線１４１）、アドレス・データ対ＡＤ２（単位アドレス線１３２と単位データ線１４２）、アドレス・データ対ＡＤ３（単位アドレス線１３３と単位データ線１４３）、アドレス・データ対ＡＤ４（単位アドレス線１３４と単位データ線１４４）それぞれ図１５に示すＳＭＬＵＴ２の左、上、右、下から導出するように配線される。またメモリ用アドレス線１１およびメモリ用データ入出力線１２も、例えば各列で共有するように配線される。
【０１３１】
単位アドレス線１３１〜１３４とメモリ用アドレス線１１は、ＳＭＬＵＴ２内に設けられた第１配線切替器２２に接続する。単位データ線１４１〜１４４とメモリ用データ入出力線１２は、ＳＭＬＵＴ２内に設けられた第２配線切替器２３に接続する。
【０１３２】
第１配線切替器２２は、１ポートメモリ２５の入力ポート２８Ａに接続し、第２配線切替器２３は、１ポートメモリ２５の出力ポート２８Ｄに接続する。
【０１３３】
具体的には、論理回路動作時には、第１配線切替器２２によって単位アドレス線１３１〜１３４が選択されて１ポートメモリ２５の入力ポート２８Ａに接続し、第２配線切替器２３によって単位データ線１４１〜１４４が選択されて１ポートメモリ２５の出力ポート２８Ｄに接続する。
【０１３４】
一方メモリ動作時には、第１配線切替器２２によって、メモリ用アドレス線１１が選択されて１ポートメモリ２５の入力ポート２８Ａに接続し、第２配線切替器２３によってメモリ用データ入出力線１２が選択されて１ポートメモリ２５の出力ポート２８Ｄに接続する。
【０１３５】
第１配線切替器２２、第２配線切替器２３を切り替えることにより、論理回路動作時の入出力とメモリ動作時の入出力を切り替えることができるので、ＳＭＬＵＴ２の内部の記憶手段として１ポートメモリ２５を採用できる。
【０１３６】
これにより、第１の実施形態と同様にＳＭＬＵＴ２は論理回路要素とメモリ要素を備えることができる。また、アドレス・データ対ＡＤ１〜ＡＤ４によって、ＳＭＬＵＴ２は近接するＳＭＬＵＴ２と相互に接続される。アドレス・データ対ＡＤ１〜ＡＤ４が方向性を有するので、第１の実施形態と同様にスイッチ要素としても機能させることができる。
【０１３７】
図１６は、ＳＭＬＵＴ群２Ｇの一部を示す概要図である。アドレス・データ対ＡＤは単一方向の細矢印で示した。ＳＭＬＵＴ２は例えばマトリクス状に配置され、隣接するＳＭＬＵＴ２は相互にアドレス・データ対ＡＤと、ここでは不図示のメモリ用アドレス線、メモリ用データ入出力線により接続され、全てのＳＭＬＵＴ２を近接配線したＭＰＬＤが実現できる。
【０１３８】
１ポートメモリ２５を採用することにより、メモリ容量が同じ場合には、２ポートメモリと比較してＭＰＬＤの面積を大幅に縮小できる。
【０１３９】
図１７は、一例としてビット数Ｎ（アドレス・データ対ＡＤの数）が４、６、７、８の場合について、２ポートメモリ１５のＭＬＵＴ１によって構成したＭＰＬＤ（第１の実施形態）と、１ポートメモリ２５のＳＭＬＵＴ２によって構成したＭＰＬＤ（第２の実施形態）の面積を概算した結果を示す。
【０１４０】
尚、第１の実施形態については、追加配線を行わない（近接配線のみ）のＭＰＬＤとして計算した
このように、１ポートメモリ２５を採用することにより、アドレス・データ対ＡＤの数Ｎ＝８の場合で約１５％、Ｎ＝４の場合で約４０％の面積削減効果が得られる。
【０１４１】
また第１配線切替器２２、第２配線切替器２３によって、ＳＭＬＵＴ２内のアドレスデコーダを１つにできるので、第１の実施形態の場合より、ＭＰＬＤ１０の面積を縮小できる。
【０１４２】
更に、第１の実施形態のＭＬＵＴ１と同様にアドレスデコーダは全てのＳＭＬＵＴ２で共有可能なので、アドレスデコーダをＳＭＬＵＴ２の外部に１つ配置することにより、より面積の縮小を実現できる。
【０１４３】
第２の実施形態のＭＰＬＤの使用方法は、以下の通りである。
【０１４４】
まず、第１配線切替器２２、第２配線切替器２３を操作して、メモリ用アドレス線１１、メモリ用データ入出力線１２をＳＭＬＵＴ２内の１ポートメモリ２５に接続する。
【０１４５】
次に、論理回路として動作させるために、メモリ機能を用いて所望のＳＭＬＵＴ２に実現したい論理回路のコンフィギュレーション情報およびスイッチ情報を入力する。すなわち、メモリ用アドレス線１１およびメモリ用データ入出力線１２を用いて、ＳＭＬＵＴ群２Ｇの第１の領域Ｒ１のＳＭＬＵＴ１内の１ポートメモリ２５に、所望のコンフィギュレーション情報（真理値表）を保持させる。
【０１４６】
またモリ用アドレス線１１およびメモリ用データ入出力線１２を用いて、ＳＭＬＵＴ群２Ｇの第２の領域Ｒ２のＳＭＬＵＴ２内の１ポートメモリ２５に、論理回路要素を選択的に切り替えるスイッチ情報となる真理値表が保持させる。
【０１４７】
そして、第１配線切替器２２、第２配線切替器２３を操作して、論理用アドレス線１３および論理用データ線１４（各アドレス・データ対ＡＤ）を利用して、論理回路として動作させる。
【０１４８】
このとき、論理回路動作に使用されないＳＭＬＵＴ群２Ｇの第３の領域Ｒ３のＳＭＬＵＴ２は、必要に応じて、それぞれの１ポートメモリ２５に所望のデータを保持させてメモリ要素として機能させることもできる。更に、第１の領域Ｒ１および第２の領域Ｒ２において論理回路動作を行わない領域もメモリとして機能させることができる。
【０１４９】
図１８および図１９を参照して、第３の実施形態を説明する。
【０１５０】
図１８を参照して、第３の実施形態は、近接配線されたＳＭＬＵＴ２に追加配線を行うものである。すなわち、少なくとも１つのＳＭＬＵＴ２に、第１の実施形態と同様に、追加のアドレス・データ対ＡＤ’を追加する。あるいは単位アドレス線１３０’と単位データ線１４０’のいずれかをそれぞれ独立して追加する。これにより、近距離の配線の対称性と均質性を維持したまま、離間したＭＬＵＴ同士の配線を実現できるので、データの伝播遅延を回避できる。また多数の論理回路の構築に柔軟に対応できる。
【０１５１】
追加配線は、全てのＳＭＬＵＴ２に接続しても良いし、所望のＳＭＬＵＴ２のみに選択的に接続してもよい。また、アドレス・データ対ＡＤ’を追加するＳＭＬＵＴ２、単位アドレス線１３０’を追加するＳＭＬＵＴ２、単位データ線１４０’を追加するＳＭＬＵＴ２を１つのＳＭＬＵＴ群２Ｇに混在させてもよい。
【０１５２】
更に第１の実施形態と同様に、追加した配線には、フリップフロップ回路やラッチ回路などの記憶要素を接続し、順序回路として機能させることも可能である。
【０１５３】
第３の実施形態では、ＳＭＬＵＴ２が１ポートメモリ２５で構成されるため、追加配線に伴う面積増加が２ポートメモリ１５を用いたＭＬＵＴ１よりも小さく、配線を追加した場合であっても、小さい面積でＭＰＬＤを構成することが可能となる。
【０１５４】
図１９は、第３の実施形態のＭＰＬＤ１０の設計工程の一例を示すフロー図であり、以下これを参照して説明する。
【０１５５】
ステップ１（Ｓ１）：ＳＭＬＵＴ２内に、配線を切り替える第１の配線切替器２５、第２の配線切替器２６を配置し、ＳＭＬＵＴ２内の１ポートメモリ２５の入力ポート１８ＡをＳＭＬＵＴ２におけるメモリ用アドレス線１１および論理用アドレス線１３に割り当て、出力ポート１８ＤをＳＭＬＵＴ２におけるメモリ用データ入出力線１２、論理用データ線１４に割り当てる（図１４参照）。
【０１５６】
ステップ２（Ｓ２）：論理用アドレス線１３および論理用データ線１４を１ビット単位で分配し、それぞれの１ビットずつを対にしたアドレス・データ対ＡＤによって擬似的な双方向線を構成する（図１５参照）。
【０１５７】
ステップ３（Ｓ３）：複数のアドレス・データ対ＡＤがそれぞれ異なる方向に導出されるようにＳＭＬＵＴ２に接続し、方向性を持たせる。
【０１５８】
ステップ４（Ｓ４）：少なくとも１つのＳＭＬＵＴ２に、追加の単位アドレス線および／または追加の単位データ線を接続する。所望のＳＭＬＵＴ１に選択的に、追加配線（アドレス・データ対ＡＤ’、単位アドレス線１３０’、単位データ線１４０’）を接続する。尚、第２の実施形態で示した近接配線のみのＭＰＬＤの場合には、追加配線のステップは不要である。
【０１５９】
ステップ５（Ｓ５）：複数のＳＭＬＵＴ２を例えばアレイ状に配置し、配線を行う。すなわち、メモリ用アドレス線１１およびメモリ用データ入出力線１２と、単位アドレス線１３０および単位データ線１４０（アドレス・データ対ＡＤ）により近接するＳＭＬＵＴ１を相互に接続する。更に、追加の単位アドレス線１３０’及び／又は追加の単位データ線１４０’（追加のアドレス・データ対ＡＤ’）をＳＭＬＵＴ２または、ＳＭＬＵＴ群２Ｇ内の他の要素に接続して論理回路要素及びメモリ要素を備えた論理ブロック群を構成する（図１８参照）。
【０１６０】
上記のステップ２およびステップ３は順不同である。
【０１６１】
更に、第４の実施形態として、第２の実施形態で示したＳＭＬＵＴ２と、複数ポートの基本論理ブロック（ＭＬＵＴ）を混在させた基本論理ブロック群によりＭＰＬＤを構成してもよい。
【０１６２】
例えば、第１の実施形態で示した２ポートメモリのＭＬＵＴ１と第２の実施形態で示した１ポートメモリのＳＭＬＵＴ２を混在させる。
【０１６３】
この場合、ＭＬＵＴ１で構成したＭＰＬＤとＳＭＬＵＴ１で構成したＭＰＬＤとでは、制御方法が異なる。すなわち、ＭＬＵＴ１で構成したＭＰＬＤの場合、ＭＬＵＴ１は２ポートメモリ１５を用いるため、論理機能、メモリ機能で用いる配線はそれぞれ独立した異なる配線である。従って、これらを切り替える制御は不要である。
【０１６４】
一方、ＳＭＬＵＴ１で構成したＭＰＬＤの場合は、ＳＭＬＵＴ２は１ポートメモリを用いるため、それを第１配線切替器２２および第２配線切替器２３により擬似的に２ポートとしている。論理機能の配線とメモリ機能の配線はＳＭＬＵＴ２の外部ではそれぞれ独立した異なる配線であるが、ＳＭＬＵＴ２内部では論理機能とメモリ機能の配線を第１配線切替器２２および第２配線切替器２３の切り替えによって共有しているため、全体におけるメモリ機能と論理機能の切り替えはスイッチで制御する必要がある。
【０１６５】
尚、ＳＭＬＵＴ２と混在させる基本論理ブロックは２ポートメモリを利用したものに限らず、３ポートメモリや４ポートメモリなど、複数ポートのメモリを利用したものが適用できる。
【産業上の利用可能性】
【０１６６】
従来リコンフィギャラブルシステムで用いられるＦＰＧＡに代わる新たなデバイスとして利用可能である。
【０１６７】
また、ＳｏＣ（System-on-Chip）上に搭載されるメモリの代わりとして利用できる。状況に応じて再構成可能なため、ＳｏＣを実装した後に必要となった機能を本発明のＰＬＤを用いて再構成し、実現することができる。
【０１６８】
更に、本発明のＰＬＤをＳｏＣ上に搭載することで、ＳｏＣに搭載されたＣＰＵ等の補助や搭載されている各回路のいずれかに故障が生じた場合の修復に応用可能である。
【０１６９】
また、ＳｏＣ上に搭載するＦＰＧＡとして利用可能で、従来のＦＰＧＡより実装する上で必要な名配線層の数が少なく安価で、幅広い応用が可能となる。
【図面の簡単な説明】
【０１７０】
【図１】本発明の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図２】本発明の第１の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図３】本発明の第１の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図４】本発明の第１の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図５】本発明の第１の実施形態のプログラマブル論理デバイスを説明する（Ａ）論理回路図、（Ｂ）真理値表、（３）概要図である。
【図６】本発明の第１の実施形態のプログラマブル論理デバイスを説明する（Ａ）真理値表、（Ｂ）概要図、（Ｃ）概要図である。
【図７】本発明の第１の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図８】本発明の第１の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図９】本発明の第１の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図１０】本発明の第１の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図１１】本発明の第１の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図１２】本発明の第１の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図１３】本発明の第１の実施形態のプログラマブル論理デバイスの構築方法を説明するフロー図である。
【図１４】本発明の第２の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図１５】本発明の第２の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図１６】本発明の第２の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図１７】本発明の第１および第２の実施形態のプログラマブル論理デバイスを比較するための図である。
【図１８】本発明の第３の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図１９】本発明の第３の実施形態のプログラマブル論理デバイスの構築方法を説明するフロー図である。
【図２０】従来のプログラマブル論理デバイスを説明する概要図である。
【図２１】従来のプログラマブル論理デバイスを説明する概要図である。
【符号の説明】
【０１７１】
１    基本論理ブロック（ＭＬＵＴ）
２    基本論理ブロック（ＳＭＬＵＴ）
３    行デコーダ
４    列デコーダ
１０  ＭＰＬＤ
１１  メモリ用アドレス線
１２  メモリ用データ入出力線
１３  論理用アドレス線
１４  論理用データ線
１５  ２ポートメモリ
１６、１７  デコーダ
１８Ａ  第１入力ポート
１８Ｄ  第１出力ポート
１９Ａ  第２入力ポート
１９Ｄ  第２出力ポート
２５  １ポートメモリ
２２  第１配線切替器
２３  第２配線切替器
２７  デコーダ
２８Ａ  入力ポート
２８Ｄ  出力ポート
１３０、１３１、１３２、１３３、１３４    単位アドレス線
１４０、１４１、１４２、１４３、１４４    単位データ線
ＡＤ、ＡＤ１、ＡＤ２、ＡＤ３、ＡＤ４  アドレス・データ対
【図１】
0005260077.tif 000002
【図２】
0005260077.tif 000003
【図３】
0005260077.tif 000004
【図４】
0005260077.tif 000005
【図５】
0005260077.tif 000006
【図６】
0005260077.tif 000007
【図７】
0005260077.tif 000008
【図８】
0005260077.tif 000009
【図９】
0005260077.tif 000010
【図１０】
0005260077.tif 000011
【図１１】
0005260077.tif 000012
【図１２】
0005260077.tif 000013
【図１３】
0005260077.tif 000014
【図１４】
0005260077.tif 000015
【図１５】
0005260077.tif 000016
【図１６】
0005260077.tif 000017
【図１７】
0005260077.tif 000018
【図１８】
0005260077.tif 000019
【図１９】
0005260077.tif 000020
【図２０】
0005260077.tif 000021
【図２１】
0005260077.tif 000022