【解決手段】複数の論理部を有し、構成データに応じて複数の論理回路が構成される再構成可能論理デバイスであって、論理部は、第1構成データ及び第2構成データを格納する構成メモリと、クロックが、構成メモリへの第1アドレスとして入力される第1アドレス入力線と、データ入力線の入力が、構成メモリへの第2アドレスとして入力される第2アドレス入力線と、クロックに従い、構成メモリから、第1アドレスより特定される第2構成データを読出して保持するともに、前ステートで保持された第1構成データを出力するレジスタ部と、レジスタ部から出力される第1構成データ又は第2構成データに従って、選択的にデータ入力線からのデータ入力と、データ出力線へのデータ出力とを結合させるマルチプレクサとを備える、再構成可能論理デバイス。
前記第1構成データ及び第2構成データはそれぞれ、論理演算値及び/又は結線経路を規定する複数の真理値表データを含み、前記データ入力に応じて、前記複数の真理値表データの何れか1つが選択されるように構成される、請求項1〜3の何れか1項に記載の再構成可能論理デバイス。
前記再構成可能論理マルチプレクサは複数あり、前記データ入力線の方向と、前記データ出力線の方向の組合せ毎に設けられる、請求項1〜4の何れか1項に記載の再構成可能論理デバイス。
【発明の概要】
【発明が解決しようとする課題】
【0010】
以上のように、FPGAは、再構成可能な装置であるが、ASIC(Application Specific Integrated Circuit)よりも面積が大きい。その原因は、配線とスイッチであり、それは全体面積のおよそ70〜80%を占める。また、FPGAは、論理要素と、配線要素がそれぞれ異なる装置により実現されているため、再構成における制限がある。
【0011】
また、特許文献3で示されるATD(Address Transition Data)回路は、特殊な回路であり、一般の論理設計では適用にタイミング調整など配慮が必要であった。
【0012】
本発明の一実施形態によれば、ATD回路を不要とし、同期/非同期の切り替え可能な再構成可能な論理デバイスを提供する。
【課題を解決するための手段】
【0013】
上記課題を解決する形態は、以下の項目セットにより示される。
1.複数の論理部を有し、構成データに応じて複数の論理回路が構成される再構成可能論理デバイスであって、
それぞれの前記論理部は、
第1構成データ及び第2構成データを格納する構成メモリと、
データ入力線と、
データ出力線と、
クロックが、前記構成メモリへの第1アドレスとして入力される第1アドレス入力線と、
前記データ入力線の入力が、前記構成メモリへの第2アドレスとして入力される第2アドレス入力線と、
前記クロックに従い、前記構成メモリから、前記第1アドレスより特定される前記第2構成データを読出して保持するともに、前ステートで保持された前記第1構成データを出力するレジスタ部と、
前記レジスタ部から出力される前記第1構成データ又は前記第2構成データに従って、選択的に前記データ入力線からのデータ入力と、前記データ出力線へのデータ出力とを結合させ、及び/又は、前記データ入力線からのデータ入力に関して論理演算したデータを、前記データ出力線へデータ出力する再構成可能論理マルチプレクサと、を備え、
前記データ入力線および前記データ出力線により近接する前記論理部が接続される、再構成可能論理デバイス。
【0014】
レジスタ部は、クロックに従い、構成データを保持又は出力するD型フリップフロップを構成する。これにより、論理部は、クロックに従う同期動作をすることができる。前ステートの第1構成データと、第2構成データが異なれば、クロックが変化しても、出力が変わらないため、論理部は非同期動作することができる。
【0015】
2.前記第1アドレスは、システムクロックのn倍(nは、2以上の整数)の周波数の信号であり、
前記システムクロックが、前記構成メモリへの第3アドレスとして入力される第3アドレス入力線と、をさらに備え、
前記レジスタ部は、
前記第1アドレスの前周期のデータ、及び後周期のデータを前記構成メモリから読出して、エンコードし、
前記エンコードデータを、前記再構成可能論理マルチプレクサに出力する、項目1に記載の再構成可能論理デバイス。
【0016】
構成メモリのアドレス空間が行側に伸びるため、データ幅が狭いメモリにも適用可能になる。
【0017】
3.前記論理部は、マルチルックアップテーブルである、項目1又は2に記載の再構成可能論理デバイス。
【0018】
4.前記第1構成データ及び第2構成データはそれぞれ、論理演算値及び/又は結線経路を規定する複数の真理値表データを含み、前記データ入力に応じて、前記複数の真理値表データの何れか1つが選択されるように構成される、項目1〜3の何れか1項に記載の再構成可能論理デバイス。
【0019】
5.前記再構成可能論理マルチプレクサは複数あり、前記データ入力線の方向と、前記データ出力線の方向の組合せ毎に設けられる、項目1〜4の何れか1項に記載の再構成可能論理デバイス。
【0020】
6.前記構成メモリは、データ出力方向毎に用意される項目1〜5の何れか1項に記載の再構成可能論理デバイス。
【0021】
7.前記構成メモリへの第4アドレスとして入力される第4アドレス入力線をさらに備え、
前記構成メモリは、前記第1構成データ又は第2構成データの複数のセットを記憶し、前記第1構成データ又は第2構成データの複数のセットの何れか1つは、前記第4アドレス入力線に接続する第4データ出力線に出力し、前記第4アドレス入力線の入力に従って、前記複数の真理値表データを特定されるように構成される、項目1〜6の何れか1項に記載の再構成可能論理デバイス。
【0022】
8.複数の論理部を有し、構成データに応じて複数の論理回路が構成される再構成可能論理デバイスの制御方法であって、
それぞれの前記論理部は、
第1構成データ及び第2構成データを格納する構成メモリと、
データ入力線と、
データ出力線と、
クロックが、前記構成メモリへの第1アドレスとして入力される第1アドレス入力線と、
前記データ入力線の入力が、前記構成メモリへの第2アドレスとして入力される第2アドレス入力線と、
前記第1構成データ又は第2構成データを保持するレジスタ部と、
再構成可能論理マルチプレクサとを備え、
前記データ入力線および前記データ出力線により近接する前記論理部が接続され、
前記レジスタ部は、前記クロックに従い、前記構成メモリから、前記第1アドレスより特定される前記第2構成データを読出して保持するともに、前ステートで保持された前記第1構成データを出力し、
前記再構成可能論理マルチプレクサは、前記レジスタ部から出力される前記第1構成データ又は前記第2構成データに従って、選択的に前記データ入力線からのデータ入力と、前記データ出力線へのデータ出力とを結合させ、及び/又は、前記データ入力線からのデータ入力に関して論理演算したデータを、前記データ出力線へデータ出力する、制御方法。
【0023】
9.前記第1アドレスは、システムクロックのn倍(nは、2以上の整数)の周波数の信号であり、
前記システムクロックが、前記構成メモリへの第3アドレスとして入力される第3アドレス入力線と、をさらに備え、
前記レジスタ部は、
前記第1アドレスの前周期データ、及び後周期のデータを前記構成メモリから読出して、エンコードし、
前記エンコードデータを、前記再構成可能論理マルチプレクサに出力する、項目8に記載の方法。
【0024】
10.前記論理部は、マルチルックアップテーブルである、項目8又は9に記載の制御方法。
【0025】
11.再構成可能論理デバイスを制御するためのプログラムにおいて、
前記再構成可能論理デバイスは、複数の論理部を有し、構成データに応じて複数の論理回路が構成され、
それぞれの前記論理部は、
第1構成データ及び第2構成データを格納する構成メモリと、
データ入力線と、
データ出力線と、
クロックが、前記構成メモリへの第1アドレスとして入力される第1アドレス入力線と、
前記データ入力線の入力が、前記構成メモリへの第2アドレスとして入力される第2アドレス入力線と、
前記第1構成データ又は第2構成データを保持するレジスタ部と、
再構成可能論理マルチプレクサとを備え、
前記データ入力線および前記データ出力線により近接する前記論理部が接続され、
前記レジスタ部は、前記クロックに従い、前記構成メモリから、前記第1アドレスより特定される前記第2構成データを読出して保持するともに、前ステートで保持された前記第1構成データを出力し、
前記再構成可能論理マルチプレクサに、選択的に前記データ入力線からのデータ入力と、前記データ出力線へのデータ出力とを結合させ、及び/又は、前記データ入力線からのデータ入力に関して論理演算したデータを、前記データ出力線へデータ出力させる、プログラム。
【0026】
12.項目11に示すプログラムを格納する記憶媒体。
【発明の効果】
【0027】
本発明の一実施形態によれば、ATD回路を不要とし、同期/非同期の切り替え可能な再構成可能な論理デバイスを提供することができる。
【発明を実施するための形態】
【0029】
以下、図面を参照して、1.再構成可能な論理デバイス、2.MLUTアレイ、3.MLUT、4.ページ制御、5.構成データ、及び6.構成データの生成方法について順に説明する。
【0030】
1.再構成可能な論理デバイス
図1は、本実施形態に係る再構成可能な論理デバイスの一例を示す図である。以下、当該再構成可能な論理デバイスをMRLD(Memory based Reconfigurable Logic Device)(登録商標)と呼ぶ。
【0031】
MRLDは、FPGAとほぼ同等の再構成機能を備えているデバイスであるが、その構造が異なる。FPGAは、CLB(Configurable Logic Blocks)、スイッチブロック、コネクションブロックなどによって構成され、論理資源と配線資源の割合は固定である。これに対し、MRLDは、論理素子、配線素子の双方として利用可能なMLUTを並べた構成となり、さらに、MLUTが直接接続されている点が、FPGAと異なる。
【0032】
図1に示すMRLD20は、その詳細を後述する複数のMLUT(Multi Look Up Table:マルチルックアップテーブル)30を、アレイ状に配置したMLUTアレイ300、MLUTのメモリ読出し動作、書込み動作を特定するデコーダ12、及び、入出力部14を有する。
【0033】
MRLD20の論理動作では、実線で示されるデータ入力DI、及びデータ出力DOの信号を使用する。データ入力DIは、論理回路の入力信号のデータ入力線(InA0〜InA3、InB0〜InB3)の入力として使用される。そして、データ出力DOは、論理回路の出力信号のデータ出力線(OutA0〜OutA3、OutB0〜OutB3)の出力として使用される(なお、データ入力線の詳細は、
図5において後述する)。
【0034】
MRLD20の論理動作により実現される論理は、MLUT30に記憶される真理値表データにより実現される。いくつかのMLUT30は、AND回路、加算器などの組み合わせ回路としての論理回路として動作する。他のMLUTは、組み合わせ回路を実現するMLUT30間を接続する接続回路として動作する。MRLD20が、論理回路、及び接続回路を実現するための真理値表データの書き換えは、MLUT30の構成メモリへの書き込み動作によりなされる。
【0035】
MRLD20の書き込み動作は、書込用アドレスAD、及び書込用データWDによりなされ、読出し動作は、書込用アドレスAD、及び読出用データRDによりなされる。
【0036】
書込用アドレスADは、MLUT30内のメモリセルを特定するアドレスである。書込用アドレスADは、m本の信号線で、2のm乗の数nのメモリセルを特定する。書込用アドレスADは、メモリの読出し動作、書き込み動作、両方の場合で使用され、m本の信号線を介して、デコーダ12でデコードされて、対象となるメモリセルを選択する。なお本実施形態においては、後述するが、データ入力DIのデコードは、MLUT30内のデコーダにより行う。
【0037】
デコーダ12は、リード・イネーブル信号re、ライト・イネーブル信号we等の制御信号に従って、書込用アドレスADをデコードし、デコードアドレスnをMLUT30に対して出力する。デコードアドレスnは、MLUT30の構成メモリ内のメモリセルを特定するアドレスとして使用される。
【0038】
入出力部14は、ライト・イネーブル信号weに従って、書込用データWDを書込み、リード・イネーブル信号reに従って、読出用データRDを出力する。
【0039】
2.MLUTアレイ
図2は、交互配置のMLUTアレイの一例を説明する図である。
図2に示される矢印は、隣接する他のMLUTとつながるデータ入力線、又は、データ出力線である。データ入力線は、アドレスのアドレス入力線に利用される(
図5で後述)、データ出力線は、文字通りである。
図2に示すMLUTアレイ300において、MLUT30は、隣接する他のMLUT30と2本のデータ入力線又はデータ出力線で接続されている。つまり、MLUT同士の接続が複数のデータ入力線又はデータ出力線で接続するように構成される。また、隣接するMLUTは、再構成性を上げるために、入力方向及び出力方向に、それぞれ2つのMLUTと接続する。この配置を、以下「交互配置」と言う。
【0040】
図2で示す「矢印」は、データ出力方向を示している。
図2では、左から右、右から左への双方向のデータ流れがあるが、一方向としてもよい。
【0041】
交互配置型MLUTは、他の隣接するMLUTと接続するデータ入力線及びデータ出力線線を複数本とすることで、マルチビットのデータ処理が可能になり、さらに、入力及び出力方向のデータの流れの方向が限定できるので、論理ライブラリの作成も容易になる。
【0042】
図3は、4方向配置のMLUTアレイの一例を説明する図である。
図3に示す4方向配置では、FPGAと同様の配置である。このようにすることでFPGAに近い構成が取れ、FPGAツールで生成した論理構成された状態を使い、MRLDの構成データの作成が容易になる。例えば、図の左上及び中上、左下をスイッチブロックとして、右下をLUTブロックとして、FPGAのCLB相当が表現でき、FPGAの論理構成された状態から真理値データが生成できる。
【0043】
3.MLUT
図4は、交互配置のMLUTの信号線の配置例を示す図である。MLUT30は、第1構成データ及び第2構成データを格納する構成メモリ40と、データ入力線(InA0〜InA3、InB0〜InB3)と、データ出力線(OutA0〜OutA3、OutB0〜OutB3)と、クロックが、前記構成メモリへの第1アドレスとして入力される第1アドレス入力線(
図5で後述)と、前記データ入力線の入力が、前記構成メモリへの第2アドレスとして入力される第2アドレス入力線(
図5で後述)と、前記クロックに従い、前記構成メモリから、前記第1アドレスより特定される前記第1構成データを読出して保持するともに、前ステートで保持された構成データを出力するレジスタ部60と、前記レジスタ部から出力される前記第1構成データ又は前記第2構成データに従って、選択的に前記データ入力線からのデータ入力と、前記データ出力線へのデータ出力とを結合させ、及び/又は、前記データ入力線からのデータ入力に関して論理演算したデータを、前記データ出力線へデータ出力する再構成可能論理マルチプレクサ50と、を備える。
【0044】
第1及び第2構成データは、それぞれ真理値表データで構成される。
【0045】
図5は、交互配置のMLUTの一例を示す図である。
図5に示すMLUT30は、2つの構成メモリ40A、40Bを有する。これは、アドレスの増加によるメモリ容量の増加を防ぐためである。なお、
図5では、構成メモリは2つで示すが、構成メモリは1つでもよい。
【0046】
図5に示すMLUTのデータ入出力線(InA0〜InA3、InB0〜InB3、OutA0〜OutA3、OutB0〜OutB3)は、
図4に示すMLUTの信号線と同じである。
【0047】
一方、本実施形態では、構成メモリ40に入力されるアドレス線は、4種類である。第1アドレス線は、システムクロック信号の周波数を逓倍化した信号の入力線であり、クロックとして利用される。第2アドレス線は、再構成可能論理マルチプレクサ50のデータ入力線(InA0〜A3)と接続される入力線である。第3アドレス線は、システムクロック信号の入力線である。第4アドレスは、ページ(真理値表データ)切り替え信号の入力線である。一方、他の実施形態として、システムクロックを単に、第1アドレス線の信号として利用し、第3アドレス線の無い構成としてもよい。
【0048】
3.1 構成メモリ
図6は、構成メモリの詳細を示す図である。構成メモリ40は、例えば、SRAMであり、クロックに同期して動作する同期メモリである。構成メモリ40は、構成データを格納するメモリセルを特定するための複数のアドレス線と接続する。
【0049】
メモリセルアレイ110は、n×2
m個のメモリセル(それに伴う記憶素子)を有し、メモリセルは、2のm乗本のワード線と、n本のビット線(「データ線」とも言う。以下同じ)の接続部分に配置される。
【0050】
アドレスデコーダ120は、クロック(dclk)に同期して、m本のアドレス信号線からアドレス信号を受け取ると、それをデコードして、2のm乗本のワード線WLにデコード信号であるワード線選択信号を出力し、対応するメモリセルに対するデータの読み出し又は書込み処理が行なわれるようにする。
【0051】
構成データ入出力部140は、ライトアンプ及び、必要に応じてセンスアンプを有する。ライトアンプは、例えば、外部からライトイネーブル(WE)の立ち上がりエッジタイミング及び書込データを受け取ると、n本のビット線b0〜63にその書込データの信号レベルを伝えて、メモリセルにデータを書き込む。
【0052】
なお、
図6に示す構成メモリは、配線の1方向ずつ設けてもよい。例えば、
図2に示す交互配置では、2つの構成メモリ、
図3に示す4方向配置では、4つの構成メモリである。このように、方向毎に構成メモリを設けることで、単一のメモリで構成する場合と比して、アドレスの数が減る(2の10乗×4の方が、2の40乗よりも少なくなる)ので、メモリの容量を下げることができる。
【0053】
3.1.1 構成メモリのビット幅
本実施形態では、レジスタ部60A、60Bのデータ幅(d0〜d127)に対して、構成メモリ40A、40Bは半分のデータ幅のデータ(b0〜b63)を格納する。構成メモリ40A、40Bは、後述するデバイスクロックdclkに従って同期する同期メモリである。
【0054】
3.1.2 第1アドレス線及び第3アドレス線
再び
図5を用いて説明する。
図5において、第3アドレス線A1は、MLUT30のシステムクロック信号である。第1アドレス線は、システムクロック信号の周波数を、逓倍回路61A、61Bで、n倍(nは、2以上の整数)にしたものである。これにより、システムクロック周波数の周期内に、読出し対象となるアドレス領域を変化させて、データを読み出すことが可能になる一方で、メモリのデータ領域がn倍だけ行方向に増える。このような構成とすることで、構成メモリのデータ領域をアドレス方向に延ばすことができる。
【0055】
図5に示す例では、レジスタ部60A、60Bのデータ幅は、“d0〜d127”で128ビットである。一方、構成メモリ40A、40Bのデータ幅は、“b0〜b63”で64ビットである。これは、第1アドレスA0が、2倍に逓倍されて、高周波化されているので、MLUT30のシステムクロックの周期内で、構成メモリ40A、40Bが、データを2回出力することを意味している。
【0056】
なお、
図5において、システムクロックを単に、第1アドレス線の信号を生成するためだけに利用し、第3アドレス線の無い構成としてもよい。この場合、構成メモリ40は、128ビットのビット線を有することになる。そして、後述のレジスタ部60A、60Bは、128ビットのデータ入力を有し、エンコーダ機能を有することはない。
【0057】
3.1.3 第1アドレス生成回路(62A、62B)
逓倍回路61A、61Bは、上述のように、入力信号の周波数をn倍にする回路である。逓倍回路61A、61Bの出力信号は、インバータ62A、62Bで反転されて、構成メモリ40A、40Bのデバイスクロックdclkとして使用される。なお、
図7を用いて、後述するが、デバイスクロックdclkが反転されるのは、第1アドレス線A0に対応して、デバイスクロックdclkの立ち上りと、立ち下りで、構成メモリ40A、40Bからデータを読み出して、システムクロック周期内で、データの読出しを2回行うためである。
【0058】
3.1.4 レジスタクロック(sel)生成回路
レジスタクロックselは、デバイスクロックdclkと同周期で動作する信号であり、レジスタ部動作用のクロック信号として使用される。レジスタクロックselは、NAND(否定論理積)回路64A、64Bにより生成される。NAND回路64A、64Bの入力信号の両信号が、「High」のとき、「Low」を出力し、それ以外では、「High」を出力する。入力信号の片方は、リセット信号RSTの出力信号である。リセット信号は、リセット時「Low」なので、インバータ65A、65Bにより反転されて、NAND回路64A、64Bに、「High」が出力される。NAND回路64A、64Bのもう片方の入力信号は、デバイスクロックdclk同様に、遅延回路Dで遅延させた信号をインバータ63A、63Bで反転したものである。そのため、NAND回路64A、64Bの出力である、レジスタクロックselは、デバイスクロックdclkと同周期で動作する
【0059】
3.1.5 レジスタ部
A.第1アドレスによる同期動作又は非同期動作
レジスタ部60A、60Bは、レジスタクロックに従い、前記構成メモリから、前記第1アドレスより特定される前記第2構成データを読出して保持するともに、前ステートで保持された第1構成データを出力する。
【0060】
レジスタ部60A、60Bは、レジスタクロックで動作するレジスタ素子から構成され、レジスタクロックに従い、構成データを保持又は出力するD型フリップフロップを構成する。レジスタ部60A、60Bは、構成メモリから読み出したデータ入力の値であり、Q出力としてレジスタ素子に保持される。レジスタ部60A、60Bの構成により、論理部(MLUT)30は、クロックに従う同期動作をすることができる。
【0061】
B.第3アドレスによるエンコーダ機能
第3アドレスA1が入力される場合、レジスタ部60A、60Bは、第1アドレスの「High」と「Low」に応じて、データの保持およびエンコードを行うことで、再構成可能論理マルチプレクサ50に出力するエンコード機能を有する。例えば、sel信号が「Low」の時、b0〜b63を、d0〜d63にセットし、「Hi」の時b0〜b63を、d64〜d128にセットして、128ビットをエンコードし、再構成可能論理マルチプレクサ50に出力する。
【0062】
3.1.6 再構成可能論理マルチプレクサ
再構成可能論理マルチプレクサ50は、前記レジスタ部から出力される前記第1構成データ及び前記第2構成データに従って、選択的に前記データ入力線からのデータ入力と、前記データ出力線へのデータ出力とを結合させ、及び/又は、前記データ入力線のデータ入力に関して論理演算したデータを、前記データ出力線へデータ出力する。
【0063】
本実施形態では、レジスタ部60から出力されるデータを、マルチプレクサの“入力信号”とし、データ入力(InA0〜InA3、InB0〜InB3)を“選択制御信号”とする。選択されたデータが、データ出力線(OutA0〜OutA3、OutB0〜OutB3)へ出力される。
再構成可能論理マルチプレクサ50は、
図5に示されるように、入力信号を、選択制御信号により選択してデータを出力するマルチプレクサより構成される。
【0064】
MLUT30に、入力が4つある場合、その組み合わせは「16」であるので、入力1つに対して、レジスタは16個(ビット線は16本)必要になる。レジスタ部60のレジスタは、さらに入出力方向の数で決まる。双方向の場合、「左から左」、「左から右」、「右から左」、「右から右」のデータが必要なので、4ビット×16×4で256個のレジスタ及び、256本のビット線となる。データの入出力方向に従って、再構成可能論理マルチプレクサ50A、50B、50C、及び50Dが用意される。
【0065】
なお、本実施形態では、クロック信号を利用して、構成メモリを行方向に拡大し、ビット数を減らす構成となっているため、構成メモリのビット数は、64×2の128ビットと少ない。
【0066】
A.論理機能の実現
構成データは、論理積、論理和、否定、否定論理和、排他的論理和等の真理値表に対応した値として、「16ビット組合せ」×「4ビットデータ入力」で表現される。各再構成可能論理マルチプレクサ50A〜Dには、「64ビット」の構成データの入力がある。
【0067】
B.配線機能の実現
各再構成可能論理マルチプレクサは、データ入力を選択信号として用いて、データ入力に応じて、複数の真理値表データの何れかを選択する。各再構成可能論理マルチプレクサは、データ入力線からのデータ入力と、データ出力線へのデータ出力とを結合する所望の配線経路を実現するように構成される。再構成可能論理マルチプレクサは複数あり、データ入力線の方向と、データ出力線の方向の組合せ毎に設けられる。
【0068】
例えば、再構成可能論理マルチプレクサ50A、50B、50C、及び50Dは、それぞれ、左側入力から左側出力の配線経路、左側入力から右側出力の配線経路、右側入力から右側出力の配線経路、及び、右側入力から左側出力の配線経路のためにある。データ入力により、再構成可能論理マルチプレクサ50Bではなく、再構成可能論理マルチプレクサ50Aが選ばれる場合、データ入力に応じて再構成可能論理マルチプレクサ50Bが選択した入力信号(構成データ)は、「0」であり50Aの信号と50Cの信号が論理和されているので、左から左への信号が優先し、左から左の信号経路を構成する。データ入力に応じて再構成可能論理マルチプレクサ50Aが選択する入力信号(構成データ)は、所定の論理値を設定されており、それを左に出力する。
【0069】
再構成可能論理マルチプレクサ50Aと50Cは論理和されており、再構成可能論理マルチプレクサ50Cの構成データを「0」とすることにより左からのInA0〜InA3の信号を左に所定の論理値で出力しうる。また、再構成可能論理マルチプレクサ50Bと50Dは論理和されており、再構成可能論理マルチプレクサ50Dを「0」とすることにより、InA0〜InA3の信号を右側に出力している。これと同じ手法でInB0〜InB3の信号を左右に出力している。
【0070】
以上のように、再構成可能論理マルチプレクサ50は、配線経路に応じて設けられ、また、構成データを論理演算値、及び、配線選択するように、構成することで、論理演算回路、及び/又は、スイッチのように動作する。
【0071】
3.2 タイミングチャート
図7は、
図5に示すMLUTを流れる信号のタイムチャートである。まず、RSTが「Hi」から「Low」になって動作が開始する。
【0072】
CLKは、システムクロック信号である。本実施形態では、CLKが第3アドレス線A1の信号となり、また、第1アドレス線A0の信号を生成するために利用される。
【0073】
第2アドレスA2〜A5(InA0〜A3)は、非同期で入力され、クロックとは直接関連がない。ただし、同期信号として入力される場合、図示されるように、第3アドレスの入力の影響を受ける。
【0074】
第1アドレスA0は、第3アドレスA1の2倍の周波数となっている。
【0075】
レジスタクロックselは、遅延回路Dにより、第1アドレスA0より遅延されている。これは、構成メモリ40A、40Bと同じ動作では、D入力と同じ動作とすると、F/Fが動作しないため、D入力後のレジスタクロックselの立ち上がりで動作させるためである。
【0076】
構成メモリ40A、40Bから読み出されるデータ(b0〜b63)は、デバイスクロックdclkに従う。第1アドレスA0に従い、構成メモリ40A、40Bはデータを第1アドレス「High」と「Low」の各々のデータを出力するが、レジスタ部60A、60Bのエンコーダ機能により、それらのデータは統合され、構成データを、再構成可能論理マルチプレクサ50に出力する。
【0077】
3.3 4方向配置のMLUT
図8は、4方向配置のMLUTの一例を示す図である。
図8に示すように、左右からのデータ入出力は、交互配置と同じであるため、InA0〜D3のアドレス入力を省いている。
図8のMLUTは、それに加えて、上からのデータ入力InC0〜C3、上へのデータ出力OutC0〜OutC3、及び、下からのデータ入力InD0〜InD3、下へのデータ出力OutD0〜OutD3がある。
【0078】
構成メモリは表示しないが、各構成要素の動作は、交互配置のMLUTと同じである。4方向であるため、再構成可能論理マルチプレクサの数が、交互配置のMLUTと比して、4つ(再構成可能論理マルチプレクサ50E〜H)増える。
【0079】
交互配置のマルチプレクサの出力は、他の同方向への出力と論理和をしていたが、4方向配置でも原理は同じである。ただし、方向が4つとなったため、4つの論理和となっている。例えば、データ出力OutC0〜OutC3を例とすると、再構成可能論理マルチプレクサ50C、50E、50Gの出力の論理和となっている。再構成可能論理マルチプレクサ50E、50Gのデータを「0」とすることにより、50Eの出力が上に出力しうる。
【0080】
4.ページ制御
図9は、ページ制御を行うMLUTの一例を示す図である。ページ制御を行うMLUTは、MLUTの一部が、他の構成メモリのページ制御信号を生成する回路として動作し、そのデータ出力は、他の構成メモリのページを制御する。
【0081】
図9に示すMLUT30は、大容量のメモリセルユニット40A、40Bを有し、本例では、各メモリセルユニットは、10本のアドレス線と、64本のデータ線で構成されるので、2の10乗(1024)ワード×64ビットの大容量となる。このメモリ空間を、
図5で説明した第4アドレスであるA6〜A9により、ページに分割されて、論理の多重化ができる。この場合は、2の4乗ワードなので、16ページの例である。また、本例では、交互配置のMLUTアレイであるので、左右からのクロック制御が可能になる。
【0082】
なお、
図9は、概略図であり、メモリセルユニットの周辺回路であるデコーダ等は、示しておらず、デコーダは
図6で説明したアドレスデコーダ120及び構成データ入出力部140が、各メモリセルユニット毎に用意される。
【0083】
図10は、MLUT外部で状態機械を設ける例を示す図である。
図10に示すように、あるMLUT30を外部システムからの制御により、第4アドレスによりページ(真理値表データ)を切り替えることもできる。
【0084】
従来のMPLDでは、MPLDの状態機械は、真理値表データで定義する必要があった。そのため、決められた条件に従って、あらかじめ決められた複数の状態を真理値表データで定義する真理値表データを設ける必要があった。MLUTで構成されるステートマシンが制御回路になり、データ・パスとは違い論理回路まで生成して配置配線をしなければならなかった。
【0085】
図11は、MLUT内部で状態機械を設ける例を示す図である。構成データの一部を使いMRLD独自で状態機械を設ける例である。MLUT30Bで構成される回路らでデクリメント演算をさせてC言語のfor制御を行わせる。0データ(MLUT30Bの0アドレス)に次のページのアドレスを記憶させ他のアドレスには現在のアドレスを記憶させる。これでfor文制御が可能になる。
【0086】
図11に示すMLUT30は、ページの切替制御機能を持つことから、ステートマシンを真理値表で定義する必要がなくなる。例えば、for文は所定値がある条件になるまで、自ページのアドレスをデータに出力してページ切り替えを行わず、同じページで動作を処理する。ある条件を満たせば(例えば、i=0)、その際にページ切り替えのアドレスを、データ線に出力する。データ線は、他のメモリセルユニットにアドレス線として入力するので、当該他のメモリセルユニットのページ切り替えが可能になる。また、case文の場合は所定値の値により、飛び先番地をデータに出力してページ切り替えを行わせて動作変更させることが出来る。以上により、従来のMPLDは論理回路構成しか出来なかったものに対してC言語の動作合成も出来るようになり、C言語からMPLDのMLUTの真理値データを生成させることが可能になり、FPGA以上の機能を持たせることができる。
【0087】
MRLDは専用の小型のSRAMに関する半導体設計試作、製造を経なくても、従来の大容量のメモリデバイスを利用できる。MRLDをチップで構成する際、メモリIP(Intellectual Property)を使うが、従来のMLUTが求めている微小メモリ容量では、アドレスデコーダやセンスアンプの面積が大きくメモリ自体の構成比率は50%以下になる。このことは、オーバヘッドにもなり、効率が悪い。大容量メモリになるとアドレスデコーダやセンスアンプに比率は下がり、メモリ使用効率が上がる。そのため、大容量メモリにあった本案はMRLDチップの場合有効になる。
【0088】
5.構成データ
以下、構成データを、例を用いて説明する。
5 MLUTの論理動作
図12は、MLUTの一例を示す図である。
図12に示すMLUT30A、30Bは、4つの論理用アドレス入力LA線A0〜A3と、4つの論理動作用データ線D0〜D3に接続される。MLUT30Aの論理用アドレス入力LA線A2は、隣接するMLUT30Bの論理動作用データ線D0と接続しており、MLUT30Aは、MLUT30Bから出力される論理動作用データを、論理用アドレス入力LAとして受け取る。また、MLUT30Aの論理動作用データ線D2は、MLUT30Bの論理用アドレス入力LA線A0と接続しており、MLUT30Aが出力する論理動作用データは、MLUT30Bで論理用アドレス入力LAとして受け取られる。このようなMLUT同士の連結は、ペアを構成するアドレス線とデータ線とを用いるので「AD対」と呼ばれる。
以下に示す回路構成をMLUTで実現するための構成データ(真理値表データ)は、
図12に示すMLUT30A又は30Bのものである。
【0089】
A.論理回路の構成
図13は、論理回路として動作するMLUTの一例を示す図である。本例では、論理用アドレス入力LA線A0及びA1を2入力NOR回路701の入力とし、論理用アドレス入力LA線A2及びA3を2入力NAND回路702の入力とする。そして、2入力NOR回路701の出力と、2入力NAND回路702の出力を、2入力NAND回路703に入力し、2入力NAND回路703の出力を論理動作用データ線D0に出力する論理回路を構成する。
【0090】
図14は、
図13に示す論理回路の真理値表を示す図である。
図13の論理回路は、4入力のため、入力A0〜A3の全ての入力を入力として使用する。一方、出力は、1つのみなので、出力D0のみを出力として使用する。真理値表の出力D1〜D3の欄には「*」が記載されている。これは、「0」又は「1」のいずれの値でもよいことを示す。しかしながら、実際に再構成のために真理値表データをMLUTに書き込むときには、これらの欄には、「0」又は「1」のいずれかの値を書き込む必要がある。
【0091】
B.接続回路の構成
図15は、接続回路として動作するMLUTの一例を示す図である。
図15では、接続回路としてのMLUTは、論理用アドレス入力LA線A0の信号を論理動作用データ線D1に出力し、論理用アドレス入力LA線A1の信号を論理動作用データ線D2に出力し、論理用アドレス入力LA線A2の信号を論理動作用データ線D3に出力するように動作する。接続回路としてのMLUTはさらに、論理用アドレス入力LA線A3の信号を論理動作用データ線D0に出力するように動作する。
【0092】
図16は、
図15に示す接続回路の真理値表を示す図である。
図15に示す接続回路は、4入力4出力である。したがって、入力A0〜A3の全ての入力と、出力D0〜D3の全ての出力が使用される。
図16に示す真理値表によって、MLUTは、入力A0の信号を出力D1に出力し、入力A1の信号を出力D2に出力し、入力A2の信号を出力D3に出力し、入力A3の信号を出力D0に出力する接続回路として動作する。
【0093】
C.論理回路と接続回路の構成
図17は、1つのMLUTが、論理回路及び接続回路として動作する一例を示す図である。
図17に示す例では、論理用アドレス入力LA線A0及びA1を2入力NOR回路171の入力とし、2入力NOR回路171の出力と、論理用アドレス入力LA線A2とを2入力NAND回路172の入力とし、2入力NAND回路172の出力を論理動作用データ線D0に出力する論理回路を構成する。また同時に、論理用アドレス入力LA線A3の信号を論理動作用データ線D2に出力する接続回路を構成する。
【0094】
図18に、
図17に示す論理回路及び接続回路の真理値表を示す。
図17の論理動作は、入力D0〜D3の3つの入力を使用し、1つの出力D0を出力として使用する。一方、
図18の接続回路は、入力A3の信号を出力D2に出力する接続回路が構成される。
【0095】
D.順序回路機能
順序回路は、組合せ回路のように、構成メモリに保持される真理値表データそのもので、その動作を記述できない。そのため、順序回路は、レジスタ部60の機能を用いて実現する。
D型フリップフロップは、構成メモリからの出力に対して、以下のような真理値表を構成する。
【表1】
【0096】
なお、以下に示す、
図19では、MLUT30Fに、D型フリップフロップが示される。
【0097】
図19は、
図2で説明した交互配置のMLUTにより構成される論理回路と配線を示す図である。
図19は、
図2で説明した交互配置のMLUTにより構成され、2つの構成メモリ(左側、右側)により構成される。
図19に例示されるように、論理回路と配線は、MLUT30A〜30Dにより構成される。MLUT30Cは、
図17で説明した論理回路と接続回路を構成するMLUTであり、MLUT30Fは、表1に示されるフリップフロップを、レジスタ部60により実現する。また、下記に示す
図20A〜
図20Jは、ページ制御で選択される真理値表データも含む。
【0098】
図20Aは、MLUT30Aの左側の構成メモリに格納される構成データの一例を示す図である。
図20Bは、MLUT30Aの右側の構成メモリに格納される構成データの一例を示す図である。
図20Cは、MLUT30Bの左側の構成メモリに格納される構成データの一例を示す図である。
図20Dは、MLUT30Bの右側の構成メモリに格納される構成データの一例を示す図である。
図20Eは、MLUT30Cの左側の構成メモリに格納される構成データの一例を示す図である。
図20Fは、MLUT30Cの右側の構成メモリに格納される構成データの一例を示す図である。
【0099】
図20Gは、MLUT30Dの左側の構成メモリに格納される構成データの一例を示す図である。
図20Hは、MLUT30Dの右側の構成メモリに格納される構成データの一例を示す図である。
図20Iは、MLUT30Eの左側の構成メモリに格納される構成データの一例を示す図である。
図20Jは、MLUT30Eの右側の構成メモリに格納される構成データの一例を示す図である。
図20Kは、MLUT30Fの左側の構成メモリに格納される構成データの一例を示す図である。
図20Lは、MLUT30Fの右側の構成メモリに格納される構成データの一例を示す図である。
【0100】
上記したように、再構成可能論理マルチプレクサの出力は、論理和されているため、信号出力の無い経路の構成データを「0」とすることにより、所望の論理演算の結果を出力するように、構成データは構成されている。さらに、データセレクタのクロックをCLK入力「Low(0)」で禁止しているので、データセレクタのデータが保持されてF/Fを実現している。
【0101】
6.真理値表データの生成方法
再構成可能な半導体装置の真理値表データは、論理構成用のソフトウェアプログラムを実行する情報処理装置によって生成される。
【0102】
図21に、情報処理装置のハードウェア構成の一例を示す。情報処理装置210は、プロセッサ211と、入力部212と、出力部213と、記憶部214とドライブ装置215を有する。プロセッサ211は、入力部212に入力された配置・配線用のソフトウェア、集積回路を設計するためのC言語記述またはハードウェア記述言語(HDL)などの回路記述言語、及び、上記ソフトウェアを実行することによって生成される真理値表データを記憶部214に記憶する。また、プロセッサ211は、配置・配線用のソフトウェアを実行して、記憶部214に記憶された回路記述に対して以下に示す配置・配線の処理を行い、出力部213に、真理値表データを出力する。出力部213には、MRLD20を接続することができ、プロセッサ211が論理構成処理を実行して、生成した真理値表データを、出力部213を介してMRLD20に書き込む。出力部213は、外部ネットワークと接続していてもよい。この場合、論理構成用のソフトウェアプログラムは、ネットワークを介して送受信される。ドライブ装置215は、例えば、DVD(Digital Versatile Disc)、フラッシュメモリなどの記憶媒体217を読み書きする装置である。ドライブ装置215は、記憶媒体217を回転させるモータや記憶媒体217上でデータを読み書きするヘッド等を含む。なお、記憶媒体217は、論理構成用のプログラム、又は、真理値表データを格納することができる。ドライブ装置215は、セットされた記憶媒体217からプログラムを読み出す。プロセッサ211は、ドライブ装置215により読み出されたプログラム又は真理値表データを、記憶部214に格納する。
【0103】
真理値表データがMRLD20に読み込まれることにより、真理値表データとハードウェア資源とが協働した具体的手段によって、論理回路及び/又は接続回路としての機能が構築される。また、真理値表データは、真理値表という論理的構造を有するデータともいえる。
【0104】
以上説明した実施形態は典型例として挙げたに過ぎず、その各実施形態の構成要素の組合せ、変形及びバリエーションは当業者にとって明らかであり、当業者であれば本発明の原理及び請求の範囲に記載した発明の範囲を逸脱することなく上述の実施形態の種々の変形を行えることは明らかである。