説明

プログラマブル論理デバイスおよびその構築方法およびその使用方法

【課題】従来のPLD(FPGA)では、SRAMを論理要素として利用しているが、論理回路としての機能しか持たず、メモリとして効率よく利用することができない問題があった。これを解消するために論理要素とメモリ要素を備えた基本論理ブロックによって構成されたPLDが提案されているが、データの伝播遅延や、面積縮小などに課題があった。
【解決手段】PLDを構成する基本論理ブロックに、論理回路用入出力データ線をビットごとに分配したアドレス・データ対、アドレス線、データ線を追加配線する。追加配線は必要に応じて所望の基本論理ブロックのみに追加することができる。またアドレス・データ対、アドレス線、データ線を組み合わせて1つのPLDを構成することもできる。これにより、基本論理ブロック間の離間配線が可能となりデータの伝播遅延を回避できる。また基本論理ブロックのSRAMを1ポートSRAMにすることにより、PLDの面積縮小が実現する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラマブル論理デバイス、およびその構築方法、およびその使用方法に係り、特に、各基本論理ブロックがメモリ要素としても動作可能であり、各基本ブロック同士の配線において、近接した配線及び離間した配線を可能とするプログラマブル論理デバイス、およびその構築方法、およびその使用方法に関する。
【背景技術】
【0002】
図20を参照して、従来の技術を用いた一般的なプログラマブル論理デバイス(Programmable Logic Device:以下PLD)の構成を説明する。図20は、最も一般的なアイランドスタイルFPGA(Field Programmable Logic Array)100の一例であり、論理要素LB、接続要素、スイッチ要素SB、CB、入出力要素IOBから構成されている。
【0003】
論理要素LBは、組み合わせ回路を実現するプログラマブルな要素であり、順序回路を実現する論理要素LBはフリップフロップ回路を内部に備えている。論理要素LBの実現方式としてはプロダクトターム方式、LUT(Look Up Table)方式、MUX(MLUTiplexer:マルチプレクサ)方式などがある。例えばLUT方式は、任意の論理関数の真理値表をSRAM(Static Random Access Memory)に保持し、入力に応じて真理値表を参照して出力を行う方式である。
【0004】
入出力要素IOBとは、デバイスの入出力と論理要素LBとの間のインターフェースの役割を担う構成要素である。
【0005】
接続要素は、論理要素LB、入出力要素IOBを接続するための構成要素である。接続要素は配線チャネル、スイッチ要素CB、SBであり、論理要素LBや入出力要素IOBの間はこの接続要素を介して接続されている。配線チャネルとは、1次元的、2次元的、あるいは階層的に配置し固定された配線である。スイッチ要素CBは、論理ブロックLBと配線チャネルとの間に設定する要素であり、スイッチ要素SBは、縦方向と横方向の配線が交差する部分において縦横の配線間の設定を行う要素である。
【0006】
このようなFPGA100では、論理回路の構築情報を書き込む外部メモリMを備えている。論理回路を構築する際には外部メモリMから構築情報を読み込み、読み込んだ構築データをFPGA100に転送している。つまり上記の如きFPGA100は、SRAMベースで構成されているにも関わらず、LUTを構成するSRAMをまとめて1つのメモリとして効率よく使用することはできない問題がある。
【0007】
一方、メモリ機能と論理回路機能を兼ね備えたPLDとしてメモリベース論理回路(Memory-based PLD:以下MPLD)が提案されている。
【0008】
図21は、従来のMPLD150の概要を示す図である。
【0009】
図21(A)の如く、MPLD150は、メモリとLUTの双方として機能する基本論理ブロックLB’を導入し、その配置と配線を工夫することで、マルチプレクサや、スイッチ要素を不要とし、FPGAと略同等の機能を実現できる。
【0010】
具体的には、各基本論理ブロックLB’に接続する論理用入力データ線及び論理用出力データ線をそれぞれ、1ビットずつに分散してアドレス線とデータ線の対として、隣接する基本論理ブロックLB’と相互に接続する。これにより基本論理ブロックLB’は、再構成部として動作し、更にLUTやメモリ、さらには各基本論理ブロックLB’間を図21(A)に示した交互配線で接続することで信号スイッチとしても利用可能である。
【0011】
MPLD150をメモリとして動作させる時は、従来のメモリと同様の操作で動作させることが可能である。論理回路として動作させる時は、各基本論理ブロックLB’に所望の回路やスイッチ信号として振舞うような真理値表を記憶させておくことで動作させることが可能となる。
【0012】
これによりMPLD150は、図21(B)の如く、全ての基本論理ブロックLB’をまとめて1つのメモリとして使用することができ、また論理回路としても動作させることができる(例えば非特許文献1参照。)。
【非特許文献1】吉原理記、外4名、「再構成デバイスとしても動作するメモリ(MPLD)の一実装例」、信学技法、広島市立大学大学院、平成19年9月、RECONF2007−16、pp.7−12
【発明の開示】
【発明が解決しようとする課題】
【0013】
図21に示した従来のMPLDでは、以下の問題があった。
【0014】
第1に、各基本論理ブロックLB’間の配線が隣接した基本論理ブロックLB’にのみ接続されているため、離れた基本論理ブロックLB’にデータを転送する場合の伝播遅延が大きい問題があった。
【0015】
第2に、各基本論理ブロックLB’間の配線が隣接した基本論理ブロックLB’にのみ接続されているため、例えば順序回路の接続などが必要な場合には、MPLD150の外部で接続することとなり、汎用性が高められない問題があった。
【0016】
第3に、論理回路としての動作とメモリとしての動作は同時に使用しないにも関わらず、基本論理ブロックLB’として2ポートSRAMを用いているため、通常のSRAMよりも面積は2倍近く大きいものとなってしまう。このため、MPLD全体の面積も増大してしまう問題があった。
【課題を解決するための手段】
【0017】
本発明は、係る課題に鑑みてなされ、第1に、複数の基本論理ブロックを有し、コンフィギュレーション情報に応じて複数の論理回路が構成されるプログラマブル論理デバイスであって、それぞれの前記基本論理ブロックは、記憶手段と、メモリ用アドレス線と、メモリ用データ入出力線と、論理用アドレス線と、論理用データ線を有し、該論理用アドレス線および論理用データ線は、論理用入出力データのビット数に応じてそれぞれ1ビットごとに分配して単位アドレス線および単位データ線とし該単位アドレス線および単位データ線を対にして各対毎に前記基本論理ブロックから異なる方向に配線され、前記単位アドレス線および前記単位データ線と、前記メモリ用アドレス線および前記メモリ用データ入出力線により近接する前記基本論理ブロックが接続されて、論理回路要素及びメモリ要素を備える論理ブロック群が構成され、少なくとも1つの前記基本論理ブロックは、追加の単位アドレス線および/または追加の単位データ線を有することにより解決するものである。
【0018】
また、前記基本論理ブロック群の第1の領域の前記記憶手段に所望の論理回路を実現するコンフィギュレーション情報が保持され、前記基本論理ブロック群の第2の領域の前記記憶手段に前記第1の領域の前記基本論理ブロックを選択的に切り替えるスイッチ情報が保持されて前記基本論理ブロック群が前記論理回路要素となることを特徴とするものである。
【0019】
また、前記基本論理ブロック群の第3の領域、あるいは前記論理回路要素として非動作の領域に所望のデータが保持されて、前記基本論理ブロック群の少なくとも一部がメモリ要素となることを特徴とするものである。
【0020】
また、前記追加の単位アドレス線および/または追加の単位データ線は、前記基本論理ブロック同士を接続することを特徴とするものである。
【0021】
また、前記追加の単位アドレス線および/または追加のデータ線に記憶要素を接続することを特徴とするものである。
【0022】
また、前記記憶手段は1ポートメモリであり、前記基本論理ブロックは、前記メモリ用アドレス線と前記単位アドレス線とを切り替えて前記第1ポートメモリの入力ポートに割り当てる第1配線切替器と、前記メモリ用データ入出力線と前記単位データ線とを切り替えて前記1ポートメモリの出力ポートに割り当てる第2配線切替器とを備え、前記第1配線切替器および前記第2配線切替器によって論理回路動作時には前記単位アドレス線および前記単位データ線が選択され、メモリ動作時には前記メモリ用アドレス線および前記メモリ用データ入出力線が選択されることを特徴とするものである。
【0023】
また、前記論理ブロック群は前記記憶手段として1ポートメモリを有する第1の基本論理ブロックと前記記憶手段として複数ポートメモリを有する第2の基本論理ブロックとが混在することを特徴とするものである。
【0024】
第2に、記憶手段と、メモリ用アドレス線と、メモリ用データ入出力線と、論理用アドレス線と、論理用データ線とを有し基本論理ブロックを相互に接続して、コンフィギュレーション情報に応じて複数の論理回路を構築するプログラマブル論理デバイスの構築方法であって、前記記憶手段のポートを前記メモリ用アドレス線、メモリ用データ入出力線と、論理用アドレス線および論理用データ線に割り当てる工程と、前記論理用アドレス線および論理用データ線を、論理用入出力データのビット数に応じてそれぞれ1ビット単位で分配して単位アドレス線および単位データ線とし該単位アドレス線および単位データ線を対にするステップと、前記各対毎に前記基本論理ブロックから異なる方向に配線するステップと、少なくとも1つの前記基本論理ブロックに、追加の単位アドレス線および/または追加の単位データ線を接続するステップと、前記メモリ用アドレス線および前記メモリ用データ入出力線と、前記単位アドレス線および前記単位データ線により近接する前記基本論理ブロックを接続し、前記追加の単位アドレス線及び/又は追加の単位データ線を前記基本論理ブロックまたは前記基本論理ブロック群内の他の要素に接続して論理回路要素及びメモリ要素を備えた論理ブロック群を構成するステップと、を具備することにより解決するものである。
【0025】
また、前記記憶手段に1ポートメモリを用い、前記基本論理ブロックに、前記メモリ用アドレス線と前記単位アドレス線とを切り替えて前記第1ポートメモリの入力ポートに割り当てる第1配線切替器と、前記メモリ用データ入出力線と前記単位データ線とを切り替えて前記1ポートメモリの出力ポートに割り当てる第2配線切替器とを配置することを特徴とするものである。
【0026】
第3に、記憶手段と、メモリ用アドレス線と、メモリ用データ入出力線と、論理用アドレス線と、論理用データ線により基本論理ブロックを構成し、前記記憶手段のポートが前記メモリ用アドレス線およびメモリ用データ入出力線と、論理用アドレス線および論理用データ線に割り当てられ、前記論理用アドレス線および論理用データ線を、論理用入出力データのビット数に応じてそれぞれ1ビット単位で分配して単位アドレス線および単位データ線とし該単位アドレス線および単位データ線を対にして前記各対毎に前記基本論理ブロックから異なる方向に配線し、前記メモリ用アドレス線および前記メモリ用データ入出力線と、前記単位アドレス線および前記単位データ線により近接する前記基本論理ブロックを相互に接続して論理回路要素及びメモリ要素を備えた論理ブロック群を構成し、少なくとも1つの前記基本論理ブロックに、追加の単位アドレス線および/または追加の単位データ線を接続し、前記追加の単位アドレス線および/または追加の単位データ線を近接しない前記基本論理ブロックまたは前記基本論理ブロック群内の他の要素と接続したプログラマブル論理デバイスの使用方法であって、前記メモリ用アドレス線およびメモリ用データ入出力線を利用して、基本論理ブロック群の第1の領域の前記記憶手段に所望の論理回路を実現するコンフィギュレーション情報を保持させるステップと、前記メモリ用アドレス線およびメモリ用データ入出力線を利用して論理ブロック群の第2の領域の前記記憶手段に前記第1の領域の前記基本論理ブロックを選択的に切り替えるスイッチ情報を保持させるステップと、前記論理用アドレス線と、論理用データ線を利用して論理回路動作を行わせるステップと、前記メモリ用アドレス線を利用して前記基本論理ブロック群の第3の領域あるいは前記論理回路要素として非動作の領域に所望のデータを保持させて、前記基本論理ブロック群の少なくとも一部をメモリ動作させるステップと、を具備することにより解決するものである。
【0027】
また、前記基本論理ブロックの前記記憶手段として1ポートメモリを用い、前記基本論理ブロックに、前記メモリ用アドレス線と前記単位アドレス線とを切り替えて前記第1ポートメモリの入力ポートに割り当てる第1配線切替器と、前記メモリ用データ入出力線と前記単位データ線とを切り替えて前記1ポートメモリの出力ポートに割り当てる第2配線切替器とを配置し、前記第1配線切替器と、前記第2配線切替器を操作して、前記論理回路動作または前記メモリ動作させることを特徴とするものである。
【発明の効果】
【0028】
本発明によれば、以下の効果が得られる。
【0029】
第1に、所望の基本論理ブロックに、追加の単位アドレス線及び/または単位データ線を接続することにより、隣接する基本論理ブロック間を配線する近接配線に加えて、他の配線を追加することができる。これにより、例えば離間した基本論理ブロック同士を配線することが可能となる。
【0030】
各基本論理ブロックにおいて単位アドレス線および単位データ線を対で追加することにより、双方向にデータを伝播する経路が増加し、汎用性が高められる。
【0031】
一方、単位アドレス線および単位データ線を対で追加すると、単位アドレス線および単位データ線の対の数の増加にしたがって、MLUT全体の面積が増加する。このような場合は、所望の基本論理ブロックに選択的に、離間した基本論理ブロック同士を配線するための単位アドレス線および単位データ線の対の数を確保する。
【0032】
このように、追加の配線を接続する基本論理ブロックを限定することで、MLUT全体の面積増加を抑制することができる。これにより、CADでの取り扱いを容易にする近接配線の対称性と均質性を保ちながら、MPLD内において離間したMLUT間の配線を実現し、汎用性の高いMPLDを実現できる。
【0033】
更に、近接する基本論理ブロック同士を追加の配線で接続することもできる。
【0034】
第2に、所望の基本論理ブロックに、追加の単位アドレス線及び/または単位データ線を接続することにより、フリップフロップ回路などの記憶要素(素子)を追加するこができる。これにより、順序回路として機能させることも可能となる。あるいは、論理回路動作時における演算結果を記憶させることが可能である。
【0035】
これにより、CADでの取り扱いを容易にする近接配線の対称性と均質性を保ちながら、所望の基本論理ブロックと近接した領域に、フリップフロップ回路やラッチ回路接続することができる。
【0036】
第3に、追加の単位アドレス線および単位データ線は、必要に応じていずれか一方または両方を、必要な基本論理ブロックのみに接続することにより、全体の面積増加を抑えつつ、汎用性の高いMPLDを提供できる。
【0037】
基本論理ブロックにおいて、単位アドレス線および単位データ線を追加すれば、双方向の配線が増加し、汎用性は高められるが、単位アドレス線および単位データ線の対の数の増加にしたがって、MLUT全体の面積が増加する。そこで、必要に応じて離間したMLUTとの配線を実現するための単位アドレス線および単位データ線のうちいずれかを選択して配線する。すなわち、データを伝播する方向は固定されるが、面積増加を抑制できる。
【0038】
更に、離間したMLUTとの配線を実現するための追加の配線を付加する基本論理ブロックを限定することでMLUT全体の面積増加を抑制することができる。
【0039】
第4に、基本論理ブロックは、1ポートメモリと、その入出力メモリポートを論理回路動作用とメモリ(再構成)動作用に接続を切り替える2つの配線切替器を備えることにより、MPLDの面積を削減することができる。
【0040】
MPLDでは、基本論理ブロックに2ポートメモリを用いた場合であっても論理回路動作とメモリ(再構成)動作は同時には行われない。そこで、2ポートメモリに変えて1ポートメモリを使用し、配線切替器によって論理回路動作用とメモリ用のポート(配線)を切り替えることで、MPLDの面積を低減できる。特に、単位アドレス線と単位データ線の対の数が大きい(扱うデータのビット数が大きい)場合には、有効である。
【0041】
また、1ポートメモリを用いた基本論理ブロックは、配線切替器によってメモリ動作と論理回路動作を切り分けることが可能なため、通常のFPGAなどと比べて部分再構成がしやすい利点を有する。
【発明を実施するための最良の形態】
【0042】
図1から図19を参照して、本発明の実施形態について詳細に説明する。
【0043】
本発明のプログラマブル論理デバイスはメモリベースプログラマブル論理デバイス(Memory-based Programmable Logic Device:以下MPLD)10であり、記憶手段と、メモリ用アドレス線と、メモリ用データ入出力線と、論理用アドレス線と、論理用データ線と、からなる基本論理ブロック1を複数相互接続して構成される。
【0044】
まず図1から図13を参照して、本発明の第1の実施形態について説明する。
【0045】
図1は、MPLD10の全体を示す概要図である。
【0046】
MPLD10は、複数の基本論理ブロック1を配置したブロック群2と、行デコーダ3と、列デコーダ4を有する。
【0047】
MPLD10の入出力信号は、メモリアドレス入力信号MA、メモリデータ入出力信号MD、論理用アドレス信号LI、論理用データ信号LOである。
【0048】
メモリアドレス入力信号MAは、MPLD10がメモリ動作する場合に、メモリ中のデータの読み出しおよび書き込みに使用するアドレスの入力信号である。
【0049】
メモリデータ入出力信号MDは、メモリ中のデータの読み出し及び書き込みを行うときに、MPLD10の外部とのデータのやり取りを行う信号である。
【0050】
論理用アドレス信号LIは、MPLD10を論理回路として動作させる場合に用いて、演算データを入力するときに使用する信号である。
【0051】
論理用データ信号LOは、MPLD10を論理回路として動作させる場合に用いて、論理回路の演算結果を出力するときに使用する信号である。
【0052】
本実施形態の基本論理ブロック1は、メモリ要素と論理回路要素を備える。
【0053】
MPLD10をメモリとして使用する場合(メモリ機能)の動作について説明する。一般的なメモリと同様に、メモリ用アドレス線11は行デコーダ3と列デコーダ4に入力され、メモリ用アドレス線11からメモリアドレス入力信号MA(行アドレス入力信号)が入力され、制御信号が行デコーダ3に入力されることでワード線WLを操作する。そして、制御信号と行アドレス入力信号で内部のビット線BLを操作し、データの制御を列デコーダ4で行う。つまり、行アドレス入力信号と列アドレス入力信号を入力することで読み出し、または書き込みする場所を指定し、制御信号WE、制御信号RE、制御信号PREを用いて、それぞれ書き込み制御、読み出し制御、プリチャージの制御を行う。
【0054】
次に、MPLD10を論理回路として使用する場合(論理回路機能)の動作について説明する。各基本論理ブロック1は、ここでの図示は省略するが、隣接する基本論理ブロック1と相互に配線で接続されている。
【0055】
論理回路として動作させるには、上記のメモリ機能を用いて、各基本論理ブロック1に実現したい信号スイッチまたは論理回路の真理値表を入力しておく。次に論理用アドレス線13に論理用アドレス信号LIを入力することで、論理用データ線14から演算結果(論理用データ信号LO)が出力される。
【0056】
次に、図2から図7を参照して基本論理ブロック1について説明する。後に詳述するが、本実施形態の基本論理ブロック1は、多入力多出力LUT(Look Up Table)として機能するので、以下これをMLUT(Multi LUT)1と称する。以下では、4入出力(ビット数N=4)の場合を例に示す。
【0057】
まず図2は、MLUT1の入出力を示す図である。MLUT1は、2ポートメモリ(例えばSRAM(static random access memory))15、メモリ動作用のアドレスデコーダ16、論理回路用のアドレスデコーダ17を有する。尚、メモリ動作用のアドレスデコーダ16は全てのMLUT1で共有可能なので、MLUT1の外部に構成することによりMLUT1の小面積化が可能である。
【0058】
メモリ用入力ポート18Aにはメモリ用アドレス線11が接続し、メモリ用入出力ポート18Dにはメモリ用データ入出力線12が接続し、論理用入力ポート19Aには論理用アドレス線13が接続し、論理用出力ポート19Dには論理用データ線14が接続する。
【0059】
図3は、MLUT1内の2ポートメモリ15の入出力を示す図である。
【0060】
本実施形態では、MLUT1に接続する論理用アドレス線13と論理用データ線14は、論理用入出力データのビット数N(例えばN=4)に応じて1ビットごとに分配される。以下、1ビットごとに分配された論理用アドレス線13および論理用データ線を、それぞれ単位アドレス線130、単位データ線140と称する。
【0061】
すなわち論理用アドレス線13は、単位アドレス線130(131、132、・・・、13N)に分配され、論理用データ線14は単位データ線140(141、142、・・・14N)に分配される(図3(A))。
【0062】
更に単位アドレス線130と単位データ線140を、それぞれ1本ずつの対にする。これをアドレス・データ対ADと称する。そして、図3(B)の如く、アドレス・データ対AD1(単位アドレス線131と単位データ線141)、アドレス・データ対AD2(単位アドレス線132と単位データ線142)、アドレス・データ対AD3(単位アドレス線133と単位データ線143)、アドレス・データ対AD4(単位アドレス線134と単位データ線144)として配線する(図2参照)。
【0063】
図4は、MLUT1のアドレス・データ対ADの配線の一例を示す図である。
【0064】
図4(A)は1つのMLUT1を示す図であり、図4(B)はMLUT群1Gの一部を示す図である。
【0065】
図4(A)の如く、アドレス・データ対ADは、各対毎にMLUT1から異なる方向に配置された他のMLUT1に向かって配線される。一例として、アドレス・データ対AD1(単位アドレス線131と単位データ線141)、アドレス・データ対AD2(単位アドレス線132と単位データ線142)、アドレス・データ対AD3(単位アドレス線133と単位データ線143)、アドレス・データ対AD4(単位アドレス線134と単位データ線144)は、それぞれ図4に示すMLUT1の左、上、右、下から導出するように双方向に配線される。またメモリ用アドレス線11とメモリ用データ入出力線12も配線される。
【0066】
メモリ用アドレス線11とメモリ用データ入出力線12はそれぞれ、2ポートメモリ15の第1入力ポート18A、第1出力ポート18Dに接続し、単位アドレス線131〜134と単位データ線141〜144はそれぞれ、2ポートメモリ15の第2入力ポート19A、第2出力ポート19Dに接続する。
【0067】
図4(B)の如く、アドレス・データ対ADによって、MLUT1は近接するMLUT1と相互に接続される。近接するMLUT1とは、マトリクス状に配置されたMLUT1の一つに対して例えば上下左右に隣接する4つのMLUT1である。またMLUT1がマトリクス(アレイ)状に配置されない場合(例えば行方向または列方向にずらして配置した場合)であっても、4方向において隣接する4つのMLUT1と接続する。以下このように隣接するMLUT1との相互の接続を近接配線と称する。
【0068】
図5を参照して、MLUT1の論理回路動作を説明する。図5(A)は構築する論理回路の一例を示す図であり、図5(B)は真理値表の一例であり、図5(C)はMLUT1に入出力されるデータの一例を示す図である。
【0069】
論理回路動作時には、論理回路用の配線、すなわちアドレス・データ対AD(実線矢印)を利用する。また図5(A)に示す論理回路の場合は、図5(B)の如き真理値表で表現することができる。真理値表は、メモリ用アドレス線11およびメモリ用データ入出力線を利用して、MLUT1内の2ポートメモリ15に保持させることで、MLUT1を論理回路要素とすることができ、MLUT1にデータが入力されると、真理値表を参照して結果を出力する(図5(C))。
【0070】
このように本実施形態のMLUT1は、論理用アドレス線13と論理用データ線14を分配してアドレス・データ対ADとし、異なる方向に配線することで、多入力多出力LUTとして機能する。
【0071】
またMLUT1は、単位アドレス線がMLUT1に対して入力方向、単位データ線がMLUT1からの出力方向になるので、複数のアドレス・データ対ADを異なる方向に接続することで、MLUT1に方向性を持たせることができ、スイッチ要素として機能させることができる。
【0072】
図6を参照して、MLUT1のスイッチ動作を説明する。図6(A)が真理値表の一例であり、図6(B)がMLUT1に入出力されるデータの一例を示す図、図6(C)がスイッチ要素としての概要を示す図である。
【0073】
図6(A)の如く、入出力方向の情報(スイッチング情報)は真理値表で表現できる。またMLUT1は各アドレス・データ対ADが方向性を持っている(図6(B))。従って例えば入力(A0)と出力(Y1)が等価(A0=Y1)となる論理式を実現する真理値表を、メモリ用アドレス線11およびメモリ用データ入出力線12を利用して、2ポートメモリ15に保持させることで、それぞれ実線、破線、一点鎖線、二点鎖線の矢印の方向に配線を接続することができる。つまり、データの入力によってMLUT1をスイッチ要素として機能させることができる(図6(C))。
【0074】
図7を参照して、MLUT1のメモリ動作を説明する。図7はMLUT1に入出力されるデータの一例を示す図である。
【0075】
メモリ要素として利用するときは、メモリ用の配線(メモリ用アドレス線11、メモリ用データ入出力線12)を利用する。MLUT1をメモリ動作させることで、論理要素またはスイッチ要素としての真理値表の読み込みや書き換えを行う。尚、真理値表はデータとしても利用することができる。
【0076】
以上のような構成により、MLUT1はメモリ要素と論理回路要素を備えることができ、本実施形態のMPLD10は、従来のPLD(図20)とは異なり、配線要素CB、SBが不要で、一般的なメモリに近いPLDとしてメモリ動作と論理回路動作を行うことが可能となる。
【0077】
すなわち、メモリ用アドレス線11およびメモリ用データ入出力線12を利用して、所望のMLUT1にコンフィギュレーション情報を書き込み、他のMLUT1にスイッチング情報を書き込む。その後、論理用アドレス線13を利用して基本論理ブロック群(MLUT群)1Gを論理回路として動作させ、論理用データ線14から演算結果を出力する。
【0078】
図8を参照して具体的に説明する。図8は、MPLD10の構成の一例を示す図であり、図1に示すMLUT群1Gの一部を拡大した図である。ここでは論理回路として4ビット加算器を構成した場合を例に説明する。
【0079】
MLUT1は、それぞれ近接するMLUT1とアドレス・データ対AD(細矢印)にて相互に配線されている。また、メモリ用アドレス線11およびメモリ用データ入出力線12は各列で共有している。図7において例えば、最も左のアドレス・データ対ADと、左上のアドレス・データ対ADが、図1の論理用アドレス線、論理用データ線に接続する。
【0080】
論理回路として動作させるために、まずメモリ機能を用いて所望のMLUT1に実現したい論理回路のコンフィギュレーション情報およびスイッチ情報を入力する。
【0081】
すなわち、メモリ用アドレス線11とメモリ用データ入出力線12を用いて、MLUT群1Gの第1の領域R1(例えば左端の列)のMLUT1内の2ポートメモリ15に、論理和を求めるコンフィギュレーション情報(真理値表)を保持させる。
【0082】
またメモリ用アドレス線11とメモリ用データ入出力線12を用いて、MLUT群1Gの第2の領域R2(例えば左から2列目)のMLUT1内の2ポートメモリ15に、論理回路要素を選択的に切り替えるスイッチ情報となる真理値表を保持させる。例えば、左端の列の加算結果の桁上げを行う配線が選択されるような真理値表を保持させる。
【0083】
そして論理用アドレス線13および論理用データ線14(各アドレス・データ対AD)を利用して、太矢印の如く論理回路として動作させる。すなわち、演算データを論理用アドレス線13から入力することで、左端の列(第1の領域R1)と、左から2列目(第2の領域R2)のMLUT群が加算および桁上げの論理回路動作を行い、演算結果を、論理用データ線14から出力させる。
【0084】
このとき、MLUT群1Gの第3の領域R3(例えば左から3列目およびそれ以外の列)のMLUT1は、論理回路動作に使用されないため、必要に応じて、それぞれの2ポートメモリ15に所望のデータを保持させてメモリ要素として機能させることもできる。
【0085】
また、例えば第1の領域R1や第2の領域R2において論理回路動作していない領域をメモリ要素として機能させることもできる。
【0086】
論理回路をどのように構成するか、あるいはスイッチ要素をどのように機能させるか、より具体的には、どのような真理値表をどのMLUT1に保持させるかは、設計者によって適宜選択される。
【0087】
一方、メモリ要素として動作させるには、通常のメモリと同様の操作を行う。すなわち、再び図1を参照して、メモリアドレス入力信号MAを行デコーダ3、列デコーダ4に入力し、これにより操作したいメモリを指定し、書き込むデータとしてメモリデータ入出力信号MDを入力する。データの読み出しは同様に操作し、メモリ用データ入出力線からデータが出力される。制御信号WEは書き込み制御、制御信号REは読み出し制御、制御信号PREはプリチャージの制御を行う。
【0088】
本実施形態のMPLD10は、外部メモリを用いず、MLUT群1Gの一部の領域をPLDとして機能させ、他の領域をメモリとして機能させることができる。また一般的なメモリへの書き込み操作と同様の手法で論理回路を構築することができ、MLUT群1Gの一部を、部分的に書き換えることが容易である。従ってPLDとしての領域の増減にも柔軟に対応でき、またPLDとして利用する必要のない場合には、全体を1つのメモリとして機能させることも可能である。
【0089】
また論理回路要素となるMLUT1はそれぞれ構築情報を保持するので、外部メモリから構築情報を読み込む従来のPLDと比較して、構築速度を高めることができる。
【0090】
以上がMLUT1の基本的な動作であるが、本実施形態では、MLUT群1Gの少なくとも1つのMLUT1に、アドレス・データ対AD、またはアドレス線13およびデータ線14のいずれか一方を追加して接続するものであり、図9から図12を参照して説明する。
【0091】
図9は、MLUT群1G内のデータの伝播の一例を示す図であり、細矢印がアドレス・データ対であり、破線の太矢印はデータが伝播する様子を示している。
【0092】
例えば左上のMLUT1から右下のMLUT1へデータを伝播するような場合、構築する論理回路によっては太矢印の如く多数のMLUT1を通過する必要があるため伝播遅延が大きくなる問題がある。
【0093】
そこで本実施形態では、MLUT1に追加の配線を行うことにより、離間した他のMLUTとの配線(以下離間配線)を実現し、伝播遅延を抑制することとした。
【0094】
図10は、追加の配線を行ったMLUT群1Gの一部を示す図である。
【0095】
上記の如く各MLUT1は、例えば4組のアドレス・データ対AD(細矢印)によって4方向において隣接するMLUT1と相互に配線(近接配線)されている。
【0096】
本実施形態では、近接配線に使用するアドレス・データ対ADを維持したまま、追加のアドレス・データ対AD’(太矢印)を接続する。これにより、それぞれのMLUT1に接続されるアドレス・データ対AD、AD’の数が増加する。図10においてはアドレス・データ対AD、AD’合計数をAD対数として各MLUT1内に示した。
【0097】
追加する他のアドレス・データ対AD’は、隣接するMLUT1より遠方のMLUT1と接続し、これにより離間した他のMLUT1と配線(離間配線)が可能となる。
【0098】
論理回路によっては、このような場合に、離間配線を追加することでデータの伝播遅延を大幅に減少させることができる。また、配線の柔軟性を高めることができる。
【0099】
図11は、離間配線の他の一例を示す図である。図11(A)は1つのMLUT1を示す図であり、図11(B)はMLUT群1Gの一例を示す図である。細矢印は近接配線を行うアドレス・データ対ADである。
【0100】
単位アドレス線130および単位データ線140は常にアドレス・データ対ADで配線する必要はなく、必要に応じて、太矢印の如く、単位アドレス線130’および単位データ線140’をそれぞれ独立してMLUT1に追加することができる。尚、追加された後の単位アドレス線、単位データ線の数は、それぞれA線、D線としてMLUT1内に示した。図の如く送り側のMLUT1に単位データ線140’を追加した場合、受け側のMLUT1では単位アドレス線130’の追加となる。
【0101】
この場合は、追加のアドレス・データ対AD’を接続した場合と異なり、双方向配線ではなくなるが、普通の組み合わせ回路の場合双方向線を利用する必要はなく、一定の方向にデータが伝播さる。そのため、必ずしも追加した単位アドレス線130’、単位データ線140’が対になる必要はない。
【0102】
以下の説明では、追加のアドレス・データ対AD’、単位アドレス線13’、単位データ線14’を総称して追加配線と称し、これらを追加することを追加配線を行う、と称する。
【0103】
本実施形態では、全てのMLUT1に均一に、追加のアドレス・データ対AD’、単位アドレス線13’、単位データ線14’のそれぞれを追加することができる。これにより配線の自由度を大幅に向上させることができ、データを伝播する際の遅延を回避することができる。
【0104】
但し、追加配線は、直接的にMPLDの面積増加につながる。そこで、図10の如く、必要なMLUT1のみ選択的に、アドレス・データ対AD’を追加する。これにより、MPLDとしての面積増加を抑制しつつ、論理回路動作時における各MLUT1間のルーティングをより柔軟にすることができる。従って、隣接していないMLUT1へデータを伝播する際の遅延を回避することができる。
【0105】
また、図11の如く、必要なMLUT1のみ選択的に、単位アドレス線130’、単位データ線140’のいずれかを追加する。これによって、配線方向は限定されるが、面積の縮小に寄与できる。尚、図11(A)の如く、用途に応じてメモリ用アドレス線11、メモリ用データ入出力線12のビット数も均一あるいは不均一に増加する。
【0106】
更に、図12の如く、所望のMPLD11に対して、必要な部分のみに、非規則的、不均等に追加配線のそれぞれを追加することもできる。このように、異なる追加配線を有するMLUT1を1つのMLUT群1Gに混在させることも可能である。
【0107】
近接配線は、その対称性と均質性によりCADでの取り扱いが容易となっている。本実施形態では、近接配線に加えて離間配線用のアドレス・データ対AD’、アドレス線13’、データ線14’を接続することにより、近接配線の利点である対象性と均質性を維持したまま、論理回路の構築に柔軟に対応でき、またデータの伝播遅延を回避するMPLDを提供することができる。
【0108】
そして、アドレス・データ対AD’、アドレス線13’、データ線14’の数を必要に応じて確保し、接続するMLUT1を限定することにより、MPLD全体の面積増加を抑制できる。
【0109】
更に、追加のアドレス・データ対AD’、アドレス線13’、データ線14’を立体的に配線すれば、3次元LSIに用いて好適なMPLDが実現する。
【0110】
上記の例では、追加配線によってMLUT1を相互に接続する場合を例に示した。しかしこれに限らず、例えば追加配線によって、フリップフロップ回路やラッチ回路などの記憶要素(記憶素子)を追加することもできる。これによりMLUT群1Gを順序回路として機能させることができる。
【0111】
従来では、MLUT1にフリップフロップ回路やラッチ回路を接続する場合には、MLUT群1Gの外側で接続しており、例えばMLUT群1Gの中央付近のMLUT1では当該回路までの距離が長くなる問題があった。
【0112】
しかし、本実施形態によれば、接続すべきMLUT1に近い位置にフリップフロップ回路やラッチ回路を接続することができる。
【0113】
更に、離間配線に限らず、追加配線によって、隣接するMULT1同士を接続させることも可能である。これにより近接配線の配線数を選択的に(あるいは全数で)増加させることができる。
【0114】
図13は、上記のMPLD10の設計工程の一例を示すフロー図であり、以下これを参照して説明する。
【0115】
ステップ1(S1):MLUT1内の2ポートメモリ15の第1入力ポート18AをMLUT1におけるメモリ用入力ポート、すなわちメモリ用アドレス線11に割り当て、第1出力ポート18DをMLUT1におけるメモリ用入出力ポート、すなわちメモリ用データ入出力線12に割り当てる(図2参照)。
【0116】
また、2ポートメモリ15の第2入力ポート19AをMLUT1における論理用入力ポート、すなわち論理用アドレス線13に割り当て、第2出力ポート19DをMLUT1における論理用出力ポート、すなわち論理用データ線14に割り当てる。
【0117】
ステップ2(S2):論理用アドレス線13および論理用データ線14を1ビット単位で分配し、それぞれの1ビットずつを対にしたアドレス・データ対ADによって擬似的な双方向線を構成する(図3(B)参照)。
【0118】
ステップ3(S3):複数のアドレス・データ対ADがそれぞれ異なる方向に導出されるようにMLUT1に接続し、方向性を持たせる(図4(A)参照)。
【0119】
ステップ4(S4):少なくとも1つのMLUT1に、追加の単位アドレス線および/または追加の単位データ線を接続する。所望のMLUT1に選択的に、追加配線(アドレス・データ対AD’、単位アドレス線130’、単位データ線140’)を接続する。
【0120】
ステップ5(S5):複数のMLUT1を例えばアレイ状に配置し、配線を行う。すなわち、メモリ用アドレス線11およびメモリ用データ入出力線12と、単位アドレス線130および単位データ線140(アドレス・データ対AD)により近接するMLUT1を相互に接続する。更に、追加の単位アドレス線130’及び/又は追加の単位データ線140’(追加のアドレス・データ対AD’)をMLUT1または、MLUT群1G内の他の要素に接続して論理回路要素及びメモリ要素を備えた論理ブロック群を構成する(図10〜図12参照)。
【0121】
尚、上記のステップ2およびステップ3は順不同である。
【0122】
次に、図14から図17を参照して、本発明の第2の実施形態について説明する。
【0123】
第1の実施形態のMLUT1は、2ポートメモリ15を用いているが、MLUT1の論理回路動作とメモリ(再構成)動作は同時には行われない。そこで、第2の実施形態では2ポートメモリ15に変えて、1ポートメモリ25と配線切替器22、23を用いて、基本論理ブロックを構成する。以下、第2の実施形態の基本論理ブロックを、SMLUT(Single-port MLUT)2と称して説明する。
【0124】
図14および図15は、第2の実施形態のSMLUT2(例えば4ビット)を示す図である。図14はSMLUT2の入出力を示す図であり、図15はSMLUT2の配線の一例を示す図である。尚、第1の実施形態と同一構成要素は同一符号で示し、第1の実施形態と重複する部分は説明を省略する。
【0125】
MPLD10としての動作は、第1の実施形態と同様である。すなわち、論理回路として動作させる時は、各SMLUT2に所望の論理回路の構築情報やスイッチ信号として振舞うような情報を真理値表として記憶させておくことで動作させる。またメモリとして動作させる時は一般的なメモリと同じ操作で動作させる。
【0126】
図14を参照して、SMLUT2は、1ポートメモリ(例えばSRAM)25、アドレスデコーダ27、第1の配線切替器22、第2の配線切替器23を有する。
【0127】
メモリ用入力ポート28Aにはメモリ用アドレス線11と論理用アドレス線13が割り当てられ、メモリ用入出力ポート28Dにはメモリ用データ入出力線12と論理用データ線14が割り当てられる。
【0128】
SMLUT2も、第1の実施形態のMLUT1と同様に論理用アドレス線13と論理用データ線14は、それぞれ単位アドレス線131〜134、単位データ線141〜144に分配される。
【0129】
図15を参照して、アドレス・データ対ADの配線の一例を示す。
【0130】
アドレス・データ対ADは、各対毎にSMLUT2から異なる方向に配線される。一例として、アドレス・データ対AD1(単位アドレス線131と単位データ線141)、アドレス・データ対AD2(単位アドレス線132と単位データ線142)、アドレス・データ対AD3(単位アドレス線133と単位データ線143)、アドレス・データ対AD4(単位アドレス線134と単位データ線144)それぞれ図15に示すSMLUT2の左、上、右、下から導出するように配線される。またメモリ用アドレス線11およびメモリ用データ入出力線12も、例えば各列で共有するように配線される。
【0131】
単位アドレス線131〜134とメモリ用アドレス線11は、SMLUT2内に設けられた第1配線切替器22に接続する。単位データ線141〜144とメモリ用データ入出力線12は、SMLUT2内に設けられた第2配線切替器23に接続する。
【0132】
第1配線切替器22は、1ポートメモリ25の入力ポート28Aに接続し、第2配線切替器23は、1ポートメモリ25の出力ポート28Dに接続する。
【0133】
具体的には、論理回路動作時には、第1配線切替器22によって単位アドレス線131〜134が選択されて1ポートメモリ25の入力ポート28Aに接続し、第2配線切替器23によって単位データ線141〜144が選択されて1ポートメモリ25の出力ポート28Dに接続する。
【0134】
一方メモリ動作時には、第1配線切替器22によって、メモリ用アドレス線11が選択されて1ポートメモリ25の入力ポート28Aに接続し、第2配線切替器23によってメモリ用データ入出力線12が選択されて1ポートメモリ25の出力ポート28Dに接続する。
【0135】
第1配線切替器22、第2配線切替器23を切り替えることにより、論理回路動作時の入出力とメモリ動作時の入出力を切り替えることができるので、SMLUT2の内部の記憶手段として1ポートメモリ25を採用できる。
【0136】
これにより、第1の実施形態と同様にSMLUT2は論理回路要素とメモリ要素を備えることができる。また、アドレス・データ対AD1〜AD4によって、SMLUT2は近接するSMLUT2と相互に接続される。アドレス・データ対AD1〜AD4が方向性を有するので、第1の実施形態と同様にスイッチ要素としても機能させることができる。
【0137】
図16は、SMLUT群2Gの一部を示す概要図である。アドレス・データ対ADは単一方向の細矢印で示した。SMLUT2は例えばマトリクス状に配置され、隣接するSMLUT2は相互にアドレス・データ対ADと、ここでは不図示のメモリ用アドレス線、メモリ用データ入出力線により接続され、全てのSMLUT2を近接配線したMPLDが実現できる。
【0138】
1ポートメモリ25を採用することにより、メモリ容量が同じ場合には、2ポートメモリと比較してMPLDの面積を大幅に縮小できる。
【0139】
図17は、一例としてビット数N(アドレス・データ対ADの数)が4、6、7、8の場合について、2ポートメモリ15のMLUT1によって構成したMPLD(第1の実施形態)と、1ポートメモリ25のSMLUT2によって構成したMPLD(第2の実施形態)の面積を概算した結果を示す。
【0140】
尚、第1の実施形態については、追加配線を行わない(近接配線のみ)のMPLDとして計算した
このように、1ポートメモリ25を採用することにより、アドレス・データ対ADの数N=8の場合で約15%、N=4の場合で約40%の面積削減効果が得られる。
【0141】
また第1配線切替器22、第2配線切替器23によって、SMLUT2内のアドレスデコーダを1つにできるので、第1の実施形態の場合より、MPLD10の面積を縮小できる。
【0142】
更に、第1の実施形態のMLUT1と同様にアドレスデコーダは全てのSMLUT2で共有可能なので、アドレスデコーダをSMLUT2の外部に1つ配置することにより、より面積の縮小を実現できる。
【0143】
第2の実施形態のMPLDの使用方法は、以下の通りである。
【0144】
まず、第1配線切替器22、第2配線切替器23を操作して、メモリ用アドレス線11、メモリ用データ入出力線12をSMLUT2内の1ポートメモリ25に接続する。
【0145】
次に、論理回路として動作させるために、メモリ機能を用いて所望のSMLUT2に実現したい論理回路のコンフィギュレーション情報およびスイッチ情報を入力する。すなわち、メモリ用アドレス線11およびメモリ用データ入出力線12を用いて、SMLUT群2Gの第1の領域R1のSMLUT1内の1ポートメモリ25に、所望のコンフィギュレーション情報(真理値表)を保持させる。
【0146】
またモリ用アドレス線11およびメモリ用データ入出力線12を用いて、SMLUT群2Gの第2の領域R2のSMLUT2内の1ポートメモリ25に、論理回路要素を選択的に切り替えるスイッチ情報となる真理値表が保持させる。
【0147】
そして、第1配線切替器22、第2配線切替器23を操作して、論理用アドレス線13および論理用データ線14(各アドレス・データ対AD)を利用して、論理回路として動作させる。
【0148】
このとき、論理回路動作に使用されないSMLUT群2Gの第3の領域R3のSMLUT2は、必要に応じて、それぞれの1ポートメモリ25に所望のデータを保持させてメモリ要素として機能させることもできる。更に、第1の領域R1および第2の領域R2において論理回路動作を行わない領域もメモリとして機能させることができる。
【0149】
図18および図19を参照して、第3の実施形態を説明する。
【0150】
図18を参照して、第3の実施形態は、近接配線されたSMLUT2に追加配線を行うものである。すなわち、少なくとも1つのSMLUT2に、第1の実施形態と同様に、追加のアドレス・データ対AD’を追加する。あるいは単位アドレス線130’と単位データ線140’のいずれかをそれぞれ独立して追加する。これにより、近距離の配線の対称性と均質性を維持したまま、離間したMLUT同士の配線を実現できるので、データの伝播遅延を回避できる。また多数の論理回路の構築に柔軟に対応できる。
【0151】
追加配線は、全てのSMLUT2に接続しても良いし、所望のSMLUT2のみに選択的に接続してもよい。また、アドレス・データ対AD’を追加するSMLUT2、単位アドレス線130’を追加するSMLUT2、単位データ線140’を追加するSMLUT2を1つのSMLUT群2Gに混在させてもよい。
【0152】
更に第1の実施形態と同様に、追加した配線には、フリップフロップ回路やラッチ回路などの記憶要素を接続し、順序回路として機能させることも可能である。
【0153】
第3の実施形態では、SMLUT2が1ポートメモリ25で構成されるため、追加配線に伴う面積増加が2ポートメモリ15を用いたMLUT1よりも小さく、配線を追加した場合であっても、小さい面積でMPLDを構成することが可能となる。
【0154】
図19は、第3の実施形態のMPLD10の設計工程の一例を示すフロー図であり、以下これを参照して説明する。
【0155】
ステップ1(S1):SMLUT2内に、配線を切り替える第1の配線切替器25、第2の配線切替器26を配置し、SMLUT2内の1ポートメモリ25の入力ポート18AをSMLUT2におけるメモリ用アドレス線11および論理用アドレス線13に割り当て、出力ポート18DをSMLUT2におけるメモリ用データ入出力線12、論理用データ線14に割り当てる(図14参照)。
【0156】
ステップ2(S2):論理用アドレス線13および論理用データ線14を1ビット単位で分配し、それぞれの1ビットずつを対にしたアドレス・データ対ADによって擬似的な双方向線を構成する(図15参照)。
【0157】
ステップ3(S3):複数のアドレス・データ対ADがそれぞれ異なる方向に導出されるようにSMLUT2に接続し、方向性を持たせる。
【0158】
ステップ4(S4):少なくとも1つのSMLUT2に、追加の単位アドレス線および/または追加の単位データ線を接続する。所望のSMLUT1に選択的に、追加配線(アドレス・データ対AD’、単位アドレス線130’、単位データ線140’)を接続する。尚、第2の実施形態で示した近接配線のみのMPLDの場合には、追加配線のステップは不要である。
【0159】
ステップ5(S5):複数のSMLUT2を例えばアレイ状に配置し、配線を行う。すなわち、メモリ用アドレス線11およびメモリ用データ入出力線12と、単位アドレス線130および単位データ線140(アドレス・データ対AD)により近接するSMLUT1を相互に接続する。更に、追加の単位アドレス線130’及び/又は追加の単位データ線140’(追加のアドレス・データ対AD’)をSMLUT2または、SMLUT群2G内の他の要素に接続して論理回路要素及びメモリ要素を備えた論理ブロック群を構成する(図18参照)。
【0160】
上記のステップ2およびステップ3は順不同である。
【0161】
更に、第4の実施形態として、第2の実施形態で示したSMLUT2と、複数ポートの基本論理ブロック(MLUT)を混在させた基本論理ブロック群によりMPLDを構成してもよい。
【0162】
例えば、第1の実施形態で示した2ポートメモリのMLUT1と第2の実施形態で示した1ポートメモリのSMLUT2を混在させる。
【0163】
この場合、MLUT1で構成したMPLDとSMLUT1で構成したMPLDとでは、制御方法が異なる。すなわち、MLUT1で構成したMPLDの場合、MLUT1は2ポートメモリ15を用いるため、論理機能、メモリ機能で用いる配線はそれぞれ独立した異なる配線である。従って、これらを切り替える制御は不要である。
【0164】
一方、SMLUT1で構成したMPLDの場合は、SMLUT2は1ポートメモリを用いるため、それを第1配線切替器22および第2配線切替器23により擬似的に2ポートとしている。論理機能の配線とメモリ機能の配線はSMLUT2の外部ではそれぞれ独立した異なる配線であるが、SMLUT2内部では論理機能とメモリ機能の配線を第1配線切替器22および第2配線切替器23の切り替えによって共有しているため、全体におけるメモリ機能と論理機能の切り替えはスイッチで制御する必要がある。
【0165】
尚、SMLUT2と混在させる基本論理ブロックは2ポートメモリを利用したものに限らず、3ポートメモリや4ポートメモリなど、複数ポートのメモリを利用したものが適用できる。
【産業上の利用可能性】
【0166】
従来リコンフィギャラブルシステムで用いられるFPGAに代わる新たなデバイスとして利用可能である。
【0167】
また、SoC(System-on-Chip)上に搭載されるメモリの代わりとして利用できる。状況に応じて再構成可能なため、SoCを実装した後に必要となった機能を本発明のPLDを用いて再構成し、実現することができる。
【0168】
更に、本発明のPLDをSoC上に搭載することで、SoCに搭載されたCPU等の補助や搭載されている各回路のいずれかに故障が生じた場合の修復に応用可能である。
【0169】
また、SoC上に搭載するFPGAとして利用可能で、従来のFPGAより実装する上で必要な名配線層の数が少なく安価で、幅広い応用が可能となる。
【図面の簡単な説明】
【0170】
【図1】本発明の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図2】本発明の第1の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図3】本発明の第1の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図4】本発明の第1の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図5】本発明の第1の実施形態のプログラマブル論理デバイスを説明する(A)論理回路図、(B)真理値表、(3)概要図である。
【図6】本発明の第1の実施形態のプログラマブル論理デバイスを説明する(A)真理値表、(B)概要図、(C)概要図である。
【図7】本発明の第1の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図8】本発明の第1の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図9】本発明の第1の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図10】本発明の第1の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図11】本発明の第1の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図12】本発明の第1の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図13】本発明の第1の実施形態のプログラマブル論理デバイスの構築方法を説明するフロー図である。
【図14】本発明の第2の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図15】本発明の第2の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図16】本発明の第2の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図17】本発明の第1および第2の実施形態のプログラマブル論理デバイスを比較するための図である。
【図18】本発明の第3の実施形態のプログラマブル論理デバイスを説明する概要図である。
【図19】本発明の第3の実施形態のプログラマブル論理デバイスの構築方法を説明するフロー図である。
【図20】従来のプログラマブル論理デバイスを説明する概要図である。
【図21】従来のプログラマブル論理デバイスを説明する概要図である。
【符号の説明】
【0171】
1 基本論理ブロック(MLUT)
2 基本論理ブロック(SMLUT)
3 行デコーダ
4 列デコーダ
10 MPLD
11 メモリ用アドレス線
12 メモリ用データ入出力線
13 論理用アドレス線
14 論理用データ線
15 2ポートメモリ
16、17 デコーダ
18A 第1入力ポート
18D 第1出力ポート
19A 第2入力ポート
19D 第2出力ポート
25 1ポートメモリ
22 第1配線切替器
23 第2配線切替器
27 デコーダ
28A 入力ポート
28D 出力ポート
130、131、132、133、134 単位アドレス線
140、141、142、143、144 単位データ線
AD、AD1、AD2、AD3、AD4 アドレス・データ対

【特許請求の範囲】
【請求項1】
複数の基本論理ブロックを有し、コンフィギュレーション情報に応じて複数の論理回路が構成されるプログラマブル論理デバイスであって、
それぞれの前記基本論理ブロックは、記憶手段と、メモリ用アドレス線と、メモリ用データ入出力線と、論理用アドレス線と、論理用データ線を有し、
該論理用アドレス線および論理用データ線は、論理用入出力データのビット数に応じてそれぞれ1ビットごとに分配して単位アドレス線および単位データ線とし該単位アドレス線および単位データ線を対にして各対毎に前記基本論理ブロックから異なる方向に配線され、
前記単位アドレス線および前記単位データ線と、前記メモリ用アドレス線および前記メモリ用データ入出力線により近接する前記基本論理ブロックが接続されて、論理回路要素及びメモリ要素を備える論理ブロック群が構成され、
少なくとも1つの前記基本論理ブロックは、追加の単位アドレス線および/または追加の単位データ線を有することを特徴とするプログラマブル論理デバイス。
【請求項2】
前記基本論理ブロック群の第1の領域の前記記憶手段に所望の論理回路を実現するコンフィギュレーション情報が保持され、前記基本論理ブロック群の第2の領域の前記記憶手段に前記第1の領域の前記基本論理ブロックを選択的に切り替えるスイッチ情報が保持されて前記基本論理ブロック群が前記論理回路要素となることを特徴とする請求項1に記載のプログラマブル論理デバイス。
【請求項3】
前記基本論理ブロック群の第3の領域、あるいは前記論理回路要素として非動作の領域に所望のデータが保持されて、前記基本論理ブロック群の少なくとも一部がメモリ要素となることを特徴とする請求項2に記載のプログラマブル論理デバイス。
【請求項4】
前記追加の単位アドレス線および/または追加の単位データ線は、前記基本論理ブロック同士を接続することを特徴とする請求項1に記載のプログラマブル論理デバイス。
【請求項5】
前記追加の単位アドレス線および/または追加のデータ線に記憶要素を接続することを特徴とする請求項1に記載のプログラマブル論理デバイス。
【請求項6】
前記記憶手段は1ポートメモリであり、前記基本論理ブロックは、前記メモリ用アドレス線と前記単位アドレス線とを切り替えて前記第1ポートメモリの入力ポートに割り当てる第1配線切替器と、前記メモリ用データ入出力線と前記単位データ線とを切り替えて前記1ポートメモリの出力ポートに割り当てる第2配線切替器とを備え、前記第1配線切替器および前記第2配線切替器によって論理回路動作時には前記単位アドレス線および前記単位データ線が選択され、メモリ動作時には前記メモリ用アドレス線および前記メモリ用データ入出力線が選択されることを特徴とする請求項1に記載のプログラマブル論理デバイス。
【請求項7】
前記論理ブロック群は前記記憶手段として1ポートメモリを有する第1の基本論理ブロックと前記記憶手段として複数ポートメモリを有する第2の基本論理ブロックとが混在することを特徴とする請求項1に記載のプログラマブル論理デバイス。
【請求項8】
記憶手段と、メモリ用アドレス線と、メモリ用データ入出力線と、論理用アドレス線と、論理用データ線とを有し基本論理ブロックを相互に接続して、コンフィギュレーション情報に応じて複数の論理回路を構築するプログラマブル論理デバイスの構築方法であって、
前記記憶手段のポートを前記メモリ用アドレス線、メモリ用データ入出力線と、論理用アドレス線および論理用データ線に割り当てる工程と、
前記論理用アドレス線および論理用データ線を、論理用入出力データのビット数に応じてそれぞれ1ビット単位で分配して単位アドレス線および単位データ線とし該単位アドレス線および単位データ線を対にするステップと、
前記各対毎に前記基本論理ブロックから異なる方向に配線するステップと、
少なくとも1つの前記基本論理ブロックに、追加の単位アドレス線および/または追加の単位データ線を接続するステップと、
前記メモリ用アドレス線および前記メモリ用データ入出力線と、前記単位アドレス線および前記単位データ線により近接する前記基本論理ブロックを接続し、前記追加の単位アドレス線及び/又は追加の単位データ線を前記基本論理ブロックまたは前記基本論理ブロック群内の他の要素に接続して論理回路要素及びメモリ要素を備えた論理ブロック群を構成するステップと、
を具備することを特徴とするプログラマブル論理デバイスの構築方法。
【請求項9】
前記記憶手段に1ポートメモリを用い、前記基本論理ブロックに、前記メモリ用アドレス線と前記単位アドレス線とを切り替えて前記第1ポートメモリの入力ポートに割り当てる第1配線切替器と、前記メモリ用データ入出力線と前記単位データ線とを切り替えて前記1ポートメモリの出力ポートに割り当てる第2配線切替器とを配置することを特徴とする請求項8に記載のプログラマブル論理デバイスの構築方法。
【請求項10】
記憶手段と、メモリ用アドレス線と、メモリ用データ入出力線と、論理用アドレス線と、論理用データ線により基本論理ブロックを構成し、
前記記憶手段のポートが前記メモリ用アドレス線およびメモリ用データ入出力線と、論理用アドレス線および論理用データ線に割り当てられ、
前記論理用アドレス線および論理用データ線を、論理用入出力データのビット数に応じてそれぞれ1ビット単位で分配して単位アドレス線および単位データ線とし該単位アドレス線および単位データ線を対にして前記各対毎に前記基本論理ブロックから異なる方向に配線し、
前記メモリ用アドレス線および前記メモリ用データ入出力線と、前記単位アドレス線および前記単位データ線により近接する前記基本論理ブロックを相互に接続して論理回路要素及びメモリ要素を備えた論理ブロック群を構成し、
少なくとも1つの前記基本論理ブロックに、追加の単位アドレス線および/または追加の単位データ線を接続し、
前記追加の単位アドレス線および/または追加の単位データ線を近接しない前記基本論理ブロックまたは前記基本論理ブロック群内の他の要素と接続したプログラマブル論理デバイスの使用方法であって、
前記メモリ用アドレス線およびメモリ用データ入出力線を利用して、基本論理ブロック群の第1の領域の前記記憶手段に所望の論理回路を実現するコンフィギュレーション情報を保持させるステップと、
前記メモリ用アドレス線およびメモリ用データ入出力線を利用して論理ブロック群の第2の領域の前記記憶手段に前記第1の領域の前記基本論理ブロックを選択的に切り替えるスイッチ情報を保持させるステップと、
前記論理用アドレス線と、論理用データ線を利用して論理回路動作を行わせるステップと、
前記メモリ用アドレス線を利用して前記基本論理ブロック群の第3の領域あるいは前記論理回路要素として非動作の領域に所望のデータを保持させて、前記基本論理ブロック群の少なくとも一部をメモリ動作させるステップと、
を具備することを特徴とするプログラマブル論理デバイスの使用方法。
【請求項11】
前記基本論理ブロックの前記記憶手段として1ポートメモリを用い、前記基本論理ブロックに、前記メモリ用アドレス線と前記単位アドレス線とを切り替えて前記第1ポートメモリの入力ポートに割り当てる第1配線切替器と、前記メモリ用データ入出力線と前記単位データ線とを切り替えて前記1ポートメモリの出力ポートに割り当てる第2配線切替器とを配置し、前記第1配線切替器と、前記第2配線切替器を操作して、前記論理回路動作または前記メモリ動作させることを特徴とする請求項10に記載のプログラマブル論理デバイスの使用方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate