(57)【要約】【課題】面積の小さくかつ再構成性の高い再構成可能な論理デバイスを提供できる。【解決手段】複数のマルチルックアップテーブルユニットを有し、構成データ情報に応じて複数の論理回路が構成される再構成可能論理デバイスであって、それぞれのマルチルックアップテーブルユニットは、構成データを格納する構成メモリと、データ入力線と、データ出力線と、前記構成データに応答して選択的に前記データ入力線からのデータ入力と、前記データ出力線への前記データ出力とを結合させ、及び／又は、前記構成データに応答して前記データ入力に関して論理演算したデータを、前記データ出力線へデータ出力する再構成可能論理マルチプレクサと、を備え、前記データ入力線および前記データ出力線により近接する前記マルチルックアップテーブルが接続される、再構成可能論理デバイス。【選択図】図４Ｂ
2014163099.tif 000002
【特許請求の範囲】
【請求項１】
複数のマルチルックアップテーブルユニットを有し、構成データ情報に応じて複数の論理回路が構成される再構成可能論理デバイスであって、
それぞれのマルチルックアップテーブルユニットは、
構成データを格納する構成メモリと、
データ入力線と、
データ出力線と、
前記構成データに応答して選択的に前記データ入力線からのデータ入力と、前記データ出力線への前記データ出力とを結合させ、及び／又は、前記構成データに応答して前記データ入力に関して論理演算したデータを、前記データ出力線へデータ出力する再構成可能論理マルチプレクサと、を備え、
前記データ入力線および前記データ出力線により近接する前記マルチルックアップテーブルが接続される、再構成可能論理デバイス。
【請求項２】
前記構成データは、論理演算値及び／又は結線経路を規定する複数個の真理値表データを含み、前記データ入力に応じて、前記複数個の真理値表データの何れか１つが選択されるように構成される、請求項１に記載の再構成可能論理デバイス。
【請求項３】
前記再構成可能マルチプレクサは複数個あり、前記データ入力線の方向と、前記データ出力線の方向の組合せ毎に設けられる、請求項１又は２に記載の再構成可能論理デバイス。
【請求項４】
前記構成メモリから読み出された構成データを保持するとともに、前記保持した構成データを、前記再構成可能論理マルチプレクサに出力する保持部をさらに備える請求項１〜３の何れか１項に記載の再構成可能な論理デバイス。
【請求項５】
前記再構成可能論理マルチプレクサは、前記データ入力線からのデータ入力によって、前記保持部に保持された構成データの何れかを、選択して出力する請求項１〜４の何れか１項に記載の再構成可能論理マルチプレクサ。
【請求項６】
前記マルチルックアップテーブルのデータ入力線は、隣接する他の前記マルチルックアップテーブルのデータ出力線に接続する請求項１〜５の何れか１項に記載の再構成可能論理マルチプレクサ。
【請求項７】
前記構成メモリは、データ出力方向毎に用意される複数の構成メモリから構成される請求項１〜６の何れか１項に記載の再構成可能な論理デバイス。
【請求項８】
前記構成メモリに出力されるアドレスの入力タイミングでクロックを生成するクロック遷移検出部を備え、前記構成メモリは、前記クロックに同期して動作する請求項１〜７の何れか１項に記載の再構成可能な論理デバイス。
【請求項９】
前記構成メモリは、複数の構成データを記憶し、前記複数の構成データの何れか１つは、前記構成メモリの第２アドレス線に接続する第２データ出力線に出力し、前記第２アドレス線の入力に従って、前記複数の真理値表データを特定されるように構成される、請求項１〜８の何れか１項に記載の再構成可能な論理デバイス。
【請求項１０】
前記構成メモリは、複数の構成データを記憶し、外部と接続する第２アドレス線の入力に従って、前記複数の真理値表データを特定されるように構成される、請求項１〜９の何れか１項に記載の再構成可能な論理デバイス。
【請求項１１】
複数のマルチルックアップテーブルユニットを有し、構成データ情報に応じて複数の論理回路が構成される再構成可能論理デバイスの制御方法であって、
それぞれのマルチルックアップテーブルユニットは、
データ入力線と、
データ出力線と、
再構成可能論理マルチプレクサと、を備え、
前記データ入力線および前記データ出力線により近接する前記論理部に接続し、
前記再構成可能論理マルチプレクサは、前記真理値表データに応答して選択的に前記データ入力線からのデータ入力と、前記データ出力線への前記データ出力とを結合し、
前記真理値表データに応答して前記データ入力に関して論理演算したデータを、前記データ出力線へデータ出力する、制御方法。
【請求項１２】
前記再構成可能論理デバイスは、前記構成メモリから読み出された構成データを保持するとともに、前記保持した構成データを、前記再構成可能論理マルチプレクサに出力する保持部をさらに備え、
前記再構成可能論理マルチプレクサは、前記データ入力線からのデータ入力によって、前記保持部に保持された構成データの何れかを、選択して出力する請求項１１に記載の制御方法。
【請求項１３】
前記構成メモリに出力されるアドレスの入力タイミングでクロックを生成するクロック遷移検出部を備え、前記構成メモリは、前記クロックに同期して動作する請求項１１又は１２に記載の制御方法。
【請求項１４】
再構成可能論理デバイスを制御するためのプログラムにおいて、
前記再構成可能論理デバイスは、
複数のマルチルックアップテーブルユニットを有し、構成データ情報に応じて複数の論理回路が構成され、
それぞれのマルチルックアップテーブルユニットは、
構成データを格納する構成メモリと、
データ入力線と、
データ出力線と、を有し、
前記マルチルックアップテーブルユニットに、
選択的に前記データ入力線からのデータ入力と、前記データ出力線への前記データ出力とを結合し、
前記構成データに応答して前記データ入力に関して論理演算したデータを、前記データ出力線へデータ出力する処理を実行させる、プログラム。
【請求項１５】
請求項１４に示すプログラムを格納する記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能な論理デバイスに関する。
【背景技術】
【０００２】
ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などの再構成可能（プログラム可能、又は、書込み可能）な半導体装置は、その再書込み可能性によって与えられる柔軟性のため、広く使用されている（例えば、特許文献１）。【０００３】
一般的なアイランドスタイルＦＰＧＡは、論理要素ＣＬＢ（Ｃｏｎｆｉｇｕｒａｂｌｅ  Ｌｏｇｉｃ  Ｂｌｏｃｋｓ）、スイッチ要素ＳＢ、ＣＢ、入出力要素ＩＯＢから構成されている。【０００４】
論理要素ＣＬＢは、組み合わせ回路を実現するプログラマブルな要素であり、ＣＬＢの各々は、データフリップフロップ（ＤＦＦ）や、ＬＵＴ（Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）等から構成される。ｋ入力のＬＵＴ（ｋ−ＬＵＴ）は２のｋ乗個のＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）セルが使われ、ｋ変数の関数を実現する。例えば、任意の論理関数の真理値表をＳＲＡＭに保持し、入力に応じて真理値表を参照して出力を行う方式である。【０００５】
また、論理機能部分をリンクさせるＣＬＢ間に信号経路を発生させるため、ＣＬＢ間には、信号経路を切り替え可能なスイッチ要素ＣＢ、ＳＢが配置される。スイッチ要素ＣＢは、論理ブロックＬＢと配線チャネルとの間に設定する要素であり、スイッチ要素ＳＢは、縦方向と横方向の配線が交差する部分において縦横の配線間の設定を行う要素である。【０００６】
入出力要素ＩＯＢとは、デバイスの入出力と論理要素ＬＢとの間のインターフェースの役割を担う構成要素である。【０００７】
出願人又は発明者は、メモリセルユニットで回路構成を実現する「ＭＰＬＤ（Ｍｅｍｏｒｙ−ｂａｓｅｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）」（登録商標）を開発している。ＭＰＬＤは、例えば、下記特許文献１に示される。ＭＰＬＤは、ＭＬＵＴ（Ｍｕｌｔｉ  Ｌｏｏｋ−Ｕｐ−Ｔａｂｌｅ）と呼ぶメモリアレイを相互に接続する。ＭＬＵＴは真理値データを格納して、配線要素と論理要素を構成する。ＭＰＬＤは、このＭＬＵＴをアレイ状に並べ、相互接続することによってＦＰＧＡとほぼ同等の機能を実現している。また、ＭＰＬＤは、真理値表データにより、ＭＬＵＴを論理要素と配線要素の双方として使用することによって、論理領域と配線領域に柔軟性をもたせたデバイスであり（例えば、特許文献２）、メモリセルユニット間の接続に専用の切り替え回路を有するＦＰＧＡと異なる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】国際公開第２００２／５３８６５２号
【特許文献２】国際公開第２００７／０６０７６３号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
以上のように、ＦＰＧＡは、再構成可能な装置であるが、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）よりも面積が大きい。その原因は、配線とスイッチであり、それは全体面積のおよそ７０〜８０％を占める。また、ＦＰＧＡは、論理要素と、配線要素がそれぞれ異なる装置により実現されているため、再構成における制限がある。【００１０】
本発明の一実施形態によれば、面積の小さくかつ再構成性の高いプログラマブル論理デバイスを提供する。
【課題を解決するための手段】
【００１１】
上記課題を解決する形態は、以下の項目セットにより示される。
１．複数のマルチルックアップテーブルユニットを有し、構成データ情報に応じて複数の論理回路が構成される再構成可能論理デバイスであって、
それぞれのマルチルックアップテーブルユニットは、
構成データを格納する構成メモリと、
データ入力線と、
データ出力線と、
前記構成データに応答して選択的に前記データ入力線からのデータ入力と、前記データ出力線への前記データ出力とを結合させ、及び／又は、前記構成データに応答して前記データ入力に関して論理演算したデータを、前記データ出力線へデータ出力する再構成可能論理マルチプレクサと、を備え、
前記データ入力線および前記データ出力線により近接する前記マルチルックアップテーブルが接続される、再構成可能論理デバイス。
２．  前記構成データは、論理演算値及び／又は結線経路を規定する複数個の真理値表データを含み、前記データ入力に応じて、前記複数個の真理値表データの何れか１つが選択されるように構成される、項目１に記載の再構成可能論理デバイス。
３．前記再構成可能マルチプレクサは複数個あり、前記データ入力線の方向と、前記データ出力線の方向の組合せ毎に設けられる、項目１又は２に記載の再構成可能論理デバイス。
４．前記構成メモリから読み出された構成データを保持するとともに、前記保持した構成データを、前記再構成可能論理マルチプレクサに出力する保持部をさらに備える項目１〜３の何れか１項に記載の再構成可能な論理デバイス。
５．前記再構成可能論理マルチプレクサは、前記データ入力線からのデータ入力によって、前記保持部に保持された構成データの何れかを、選択して出直する項目１〜４の何れか１項に記載の再構成可能論理マルチプレクサ。
６．前記マルチルックアップテーブルのデータ入力線は、隣接する他の前記マルチルックアップテーブルのデータ出力線に接続する項目１〜５の何れか１項に記載の再構成可能論理マルチプレクサ。
７．前記構成メモリは、データ出力方向毎に用意される複数の構成メモリから構成される項目１〜６の何れか１項に記載の再構成可能な論理デバイス。
８．前記構成メモリに出力されるアドレスの入力タイミングでクロックを生成するクロック遷移検出部を備え、前記構成メモリは、前記クロックに同期して動作する項目１〜７の何れか１項に記載の再構成可能な論理デバイス。
９．前記構成メモリは、複数の構成データを記憶し、前記複数の構成データの何れか１つは、前記構成メモリの第２アドレス線に接続する第２データ出力線に出力し、前記第２アドレス線の入力に従って、前記複数の真理値表データを特定されるように構成される、項目１〜８の何れか１項に記載の再構成可能な論理デバイス。
１０．前記構成メモリは、複数の構成データを記憶し、外部と接続する第２アドレス線の入力に従って、前記複数の真理値表データを特定されるように構成される、項目１〜９の何れか１項に記載の再構成可能な論理デバイス。
１１．複数のマルチルックアップテーブルユニットを有し、構成データ情報に応じて複数の論理回路が構成される再構成可能論理デバイスの制御方法であって、
それぞれのマルチルックアップテーブルユニットは、
データ入力線と、
データ出力線と、
再構成可能論理マルチプレクサと、を備え、
前記データ入力線および前記データ出力線により近接する前記論理部に接続し、
前記再構成可能論理マルチプレクサは、前記真理値表データに応答して選択的に前記データ入力線からのデータ入力と、前記データ出力線への前記データ出力とを結合し、
前記真理値表データに応答して前記データ入力に関して論理演算したデータを、前記データ出力線へデータ出力する、制御方法。
１２．前記再構成可能論理デバイスは、前記構成メモリから読み出された構成データを保持するとともに、前記保持した構成データを、前記再構成可能論理マルチプレクサに出力する保持部をさらに備え、
前記再構成可能論理マルチプレクサは、前記データ入力線からのデータ入力によって、前記保持部に保持された構成データの何れかを、選択して出力する項目１１に記載の制御方法。
１３．前記構成メモリに出力されるアドレスの入力タイミングでクロックを生成するクロック遷移検出部を備え、前記構成メモリは、前記クロックに同期して動作する項目１１又は１２に記載の制御方法。
１４．再構成可能論理デバイスを制御するためのプログラムにおいて、
前記再構成可能論理デバイスは、
複数のマルチルックアップテーブルユニットを有し、構成データ情報に応じて複数の論理回路が構成され、
それぞれのマルチルックアップテーブルユニットは、
構成データを格納する構成メモリと、
データ入力線と、
データ出力線と、を有し、
前記マルチルックアップテーブルユニットに、
選択的に前記データ入力線からのデータ入力と、前記データ出力線への前記データ出力とを結合し、
前記構成データに応答して前記データ入力に関して論理演算したデータを、前記データ出力線へデータ出力する処理を実行させる、プログラム。
１５．項目１４に示すプログラムを格納する記憶媒体。
【発明の効果】
【００１２】
本実施形態に係る半導体装置は、面積の小さくかつ再構成性の高い半導体装置を提供できる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態に係る半導体装置の全体構成の一例を示す図である。
【図２】２方向配置のＭＬＵＴアレイの一例を示す図である。
【図３】４方向配置のＭＬＵＴアレイの一例を示す図である。
【図４Ａ】２方向配置のＭＬＵＴの信号線の配置例を示す図である。
【図４Ｂ】２方向配置のＭＬＵＴの一例を示す図である。
【図５】構成メモリの一例を示す図である。
【図６Ａ】クロック遷移検出部の一例を示す図である。
【図６Ｂ】クロック遷移検出部のタイムチャートの一例である。
【図６Ｃ】クロック遷移検出部におけるアドレスと生成したクロックのタイムチャートの一例である。
【図７Ａ】４方向配置のＭＬＵＴの信号線の配置例を示す図である。
【図７Ｂ】４方向配置のＭＬＵＴの一例を示す図である。
【図８】ページ制御を行うＭＬＵＴの一例を示す図である。
【図９】ＭＬＵＴ外部で状態機械を設ける例を示す図である。
【図１０】ＭＬＵＴ内部で状態機械を設ける例を示す図である。
【図１１】図２で説明した交互配置のＭＬＵＴにより構成される論理回路と配線を示す図である。
【図１２Ａ】ＭＬＵＴ３０Ａの左側の構成メモリに格納される構成データの一例を示す図である。
【図１２Ｂ】ＭＬＵＴ３０Ａの右側の構成メモリに格納される構成データの一例を示す図である。
【図１２Ｃ】ＭＬＵＴ３０Ｂの左側の構成メモリに格納される構成データの一例を示す図である。
【図１２Ｄ】ＭＬＵＴ３０Ｂの右側の構成メモリに格納される構成データの一例を示す図である。
【図１２Ｅ】ＭＬＵＴ３０Ｃの左側の構成メモリに格納される構成データの一例を示す図である。
【図１２Ｆ】ＭＬＵＴ３０Ｃの右側の構成メモリに格納される構成データの一例を示す図である。
【図１２Ｇ】ＭＬＵＴ３０Ｄの左側の構成メモリに格納される構成データの一例を示す図である。
【図１２Ｈ】ＭＬＵＴ３０Ｄの右側の構成メモリに格納される構成データの一例を示す図である。
【図１２Ｉ】ＭＬＵＴ３０Ｅの左側の構成メモリに格納される構成データの一例を示す図である。
【図１２Ｊ】ＭＬＵＴ３０Ｅの右側の構成メモリに格納される構成データの一例を示す図である。
【図１３】真理値表データを生成する情報処理装置のハードウェア構成を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、［１］再構成可能な論理デバイス、［２］ＭＬＵＴアレイ、［３］ＭＬＵＴ、［４］ページ制御、［５］構成データ、及び［６］真理値表データの生成方法について順に説明する。
【００１５】
［１］再構成可能な論理デバイス
図１は、本実施形態に係る再構成可能な論理デバイスの一例を示す図である。以下、当該再構成可能な論理デバイスをＭＲＬＤ（Ｍｅｍｏｒｙ  ｂａｓｅｄ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）（登録商標）と呼ぶ。ＭＲＬＤは、出願人が開発したＭＰＬＤと同様に、各ＭＬＵＴ間が、配線要素を介在せずに直接接続する点で共通するが、汎用ＳＲＡＭの機能を有効に活用する点において、区別される。
【００１６】
ＭＲＬＤは、ＦＰＧＡとほぼ同等の機能を備えているデバイスであるが、その構造が異なる。ＦＰＧＡは、ＣＬＢ、スイッチブロック、コネクションブロックなどによって構成され、論理資源と配線資源の割合は固定である。これに対し、ＭＲＬＤは、論理素子、配線素子の双方として利用可能なＭＬＵＴを並べた構成となり、さらに、ＭＬＵＴが直接接続されている点が、ＦＰＧＡと大きく異なる。
【００１７】
図１に示すＭＲＬＤ２０は、後述する複数個のＭＬＵＴ（Ｍｕｌｔｉ  Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ：マルチルックアップテーブル）を、アレイ状に配置したＭＬＵＴアレイ３００、ＭＬＵＴのメモリ読出し動作、書込み動作を特定するデコーダ１２、及び、入出力部１４を有する。
【００１８】
ＭＲＬＤ２０の論理動作では、実線で示されるデータ入力ＤＩ、及びデータ出力ＤＯの信号を使用する。データ入力ＤＩは、論理回路の入力信号として使用される。そして、データ出力ＤＯは、論理回路の出力信号として使用される（図２において後述する）。
【００１９】
ＭＲＬＤ２０の論理動作により実現される論理は、ＭＬＵＴ３０に記憶される真理値表データにより実現される。いくつかのＭＬＵＴ３０は、ＡＮＤ回路、加算器などの組み合わせ回路としての論理要素として動作する。他のＭＬＵＴは、組み合わせ回路を実現するＭＬＵＴ３０間を接続する接続要素として動作する。ＭＲＬＤ２０が、論理要素、及び接続要素を実現するための真理値表データの書き換えは、ＭＬＵＴ３０の構成メモリへの書き込み動作によりなされる。
【００２０】
ＭＰＬＤ２０の書き込み動作は、書込用アドレスＡＤ、及び書込用データＷＤによりなされ、読出し動作は、書込用アドレスＡＤ、及び読出用データＲＤによりなされる。
【００２１】
書込用アドレスＡＤは、ＭＬＵＴ３０内のメモリセルを特定するアドレスである。書込用アドレスＡＤは、m本の信号線で、２のｍ乗の数ｎのメモリセルを特定する。書込用アドレスＡＤは、メモリの読出し動作、書き込み動作、両方の場合で使用され、m本の信号線を介して、デコーダ１２でデコードされて、対象となるメモリセルを選択する。なお本実施形態においては、後述するが、論理用動作アドレスＤＩのデコードは、ＭＬＵＴ３０内のデコーダにより行う。
【００２２】
デコーダ１２は、リード・イネーブル信号ｒｅ、ライト・イネーブル信号ｗｅ等の制御信号に従って、書込用アドレスＡＤをデコードし、デコードアドレスｎをＭＬＵＴ３０に対して出力する。デコードアドレスｎは、ＭＬＵＴ３０の構成メモリ内のメモリセルを特定するアドレスとして使用される。
【００２３】
入出力部１４は、ライト・イネーブル信号ｗｅに従って、書込用データＷＤを書込み、リード・イネーブル信号ｒｅに従って、読出用データＲＤを出力する。
【００２４】
［２］ＭＬＵＴアレイ
図２は、２方向配置のＭＬＵＴアレイの一例を説明する図である。図２に示される矢印は、隣接する他のＭＬＵＴとつながるデータ入力線、又は、データ出力線である。図２に示すＭＬＵＴアレイ３００において、ＭＬＵＴ３０は、隣接する他のＭＬＵＴ３０と２本のデータ入力線又はデータ出力線で接続されいる。つまり、ＭＬＵＴ同士の接続が複数のデータ入力線又はデータ出力線で接続するように構成される。また、隣接するＭＬＵＴは、構成可能性を上げるために、入力方向及び出力方向に、それぞれ２つのＭＬＵＴと接続する。この配置を、以下「交互配置」と言う。
【００２５】
交互配置型ＭＬＵＴは、データ線及びビット線を複数本とすることで、マルチビットのデータ処理が可能になり、さらに、入力及び出力方向のデータの流れの方向が限定できるので、論理ライブラリの作成も容易になる。
【００２６】
各ＭＬＵＴ３０は、多数の異なる論理関数を実行することが可能である。ＭＬＵＴ３０は、構成メモリ４０と、再構成可能論理マルチプレクサ５０を有する。ＭＬＵＴ３０によって実行される論理関数は、構成メモリ４０内に格納された構成データによって決定される。ＭＬＵＴ３０は、構成データ用の入力を有しており、且つ、再構成可能論理マルチプレクサ５０への構成データ用の出力を有している。構成データは、ＭＲＬＤ２０外側から構成メモリ４０内へ、そのアドレス線及びデータ線を用いて、ロードされる。
【００２７】
再構成可能論理マルチプレクサ５０は、データ入力、データ出力、構成データを受取るためのコンフィギュレーション入力を有しており、且つそれに応答してデータ入力及び出力の結合状態を制御する。再構成可能論理マルチプレクサ５０はさらに、構成データに応答してデータ入力に関して論理演算したデータを、データ出力線へデータ出力する。
【００２８】
図３は、４方向配置のＭＬＵＴアレイの一例を説明する図である。図３に示す方向配置では、ＦＰＧＡと同様の配置である。このようにすることでＦＰＧＡに近い構成が取れ、ＦＰＧＡツールで生成した論理構成された状態を使い、ＭＲＬＤの構成データの作成が容易になる。例えば、図の左上及び中上、左下をスイッチ・ブロックとして、中下をＬＵＴブロックとして、ＦＰＧＡのＣＬＢ相当が表現でき、ＦＰＧＡの構成された状態から真理値データが生成できる。
【００２９】
［３］ＭＬＵＴ
図４Ａは、２方向配置のＭＬＵＴの信号線の配置例を示す図である。図４Ａに示すように、左からのデータ入力は、ＩｎＡ０〜ＩｎＡ３であり、左へのデータ出力は、ＯｕｔＡ０〜ＯｕｔＡ３である。また、右からのデータ入力は、ＩｎＢ０〜ＩｎＢ３であり、左へのデータ出力は、ＯｕｔＢ０〜ＯｕｔＢ３である。
【００３０】
図４Ｂは、２方向配置のＭＬＵＴの一例を示す図である。図４Ｂに示すＭＬＵＴの信号線は、図４Ａに示すＭＬＵＴの信号線と同じである。図４Ｂに示すＭＬＵＴ３０は、構成メモリ４０、再構成可能論理マルチプレクサ５０、及びレジスタユニット６０を有する。構成メモリ４０は、例えば、ＳＲＡＭである。構成メモリ４０は、構成データを格納するメモリセルを特定するための複数のアドレス線Ａ０〜Ａ８と接続する。図３に示す例では、構成メモリには、９つのアドレスにより、２の９乗である「５１２」のワード線があり、それに対して２５６個のビット線（「データ線」とも言う）がある。入力が４つありその組み合わせは１６であるので、レジスタは１６個必要になる。また、４ビットで１６個必要で、左から左、左から右、右から左、右から右のデータが必要なので、４ビット×１６×４で２５６個のビット線となる。よって、構成メモリには、２の９乗×２５６個のメモリセルがある。なお、Ａ０にはポジティブタイプのアドレス遷移検出（ＡＴＤ）回路を付けてクロック入力とする（図６で後述する）。
【００３１】
［３．１］構成メモリ
構成メモリ４０は、クロックＡ０に従って、アドレスで特定されたメモリセルから、図示されないセンスアンプによりデータを読み出して、ビット先に対応した数のレジスタ（図２の例では、２５６ビット）を有するレジスタユニット６０にデータを出力する。レジスタユニット６０は、構成メモリ４０から新たなデータが出力されるまで、データを保持し続ける複数のレジスタから構成される。
【００３２】
図５は、構成メモリの詳細である。図５に示される構成メモリ４０は、各々がデータを記憶するメモリセルからなるメモリセルアレイ１１０と、アドレスデコーダ１２０と、後述の図６Ａに示すクロック遷移検出部２００と、メモリセルアレイ１１０へのデータ読出し又はデータ書込みを行うデータ入出力部１４０と、を有する。なお、本実施例において、構成メモリ４０は、クロックに同期して読出し、又は、書込み動作を行う同期ＳＲＡＭである。よって、アドレスデコーダ１２０及びデータ入出力部１４０はクロックに同期して動作する。
【００３３】
メモリセルアレイ１１０は、ｍ×２ｎ個のメモリセル（それに伴う記憶素子）を有し、ｍ×２ｎ個のメモリセルは、２のｍ乗本のワード線と、ｎ本のビット線（「データ線」とも言う。以下同じ）の接続部分に配置される。
【００３４】
アドレスデコーダ１２０は、Ａ０のクロック遷移検出部で生成されたクロックに同期して、ｍ本のアドレス信号線から受け取ったアドレス信号を受け取ると、それをデコードして、２のｍ乗本のワード線ＷＬにデコード信号であるワード線選択信号及びデータ入出力部１４０で選択するデータ線選択信号を出力し、対応するメモリセルに対するデータの読み出し又は書込み処理が行なわれるようにする。
【００３５】
データ入出力部１４０は、データ入出部１４０は、ライトアンプと、センスアンプとを有する。ライトアンプは、例えば、外部からライトイネーブル（ＷＥ）の立ち上がりエッジタイミング及び書込データを受け取ると、ｍ本のデータ線ｂ、／ｂにその書込データの信号レベルを伝えて、メモリセルにデータを書き込む。また、センスアンプは、データ入出力部１４０は、外部からリードイネーブル（ＲＥ）の立ち上がりエッジタイミングを受け取ると、ｍ本のデータ線ｂ、／ｂの信号レベルを外部に出力することで、読出データを出力する。
【００３６】
なお、図５に示す構成メモリは、配線の１方向ずつ設けてもよい。例えば、図２に示す２方向配置では、２つの構成メモリ、図３に示す４方向配置では、４つの構成メモリである。このように、方向毎に構成メモリを設けることで、単一のメモリで構成する場合と比して、アドレスの数が減る（２の９乗×４の方が、２の３６乗よりも少なくなる）ので、メモリの容量を下げることができる。
【００３７】
図６Ａは、本実施形態に係るクロック遷移検出部の回路図である。図６Ａに示されるクロック遷移検出部２００は、否定論理和（ＮＯＲ）回路２１０Ａ、２１０Ｂ、論理積（ＡＮＤ）回路２３０、遅延回路２４０Ａ〜２４０Ｃ、フリップフロップ（ＦＦ）２５０、インバータ２６０Ａ、２６０Ｂ、及びＤラッチ２７０を有する。
【００３８】
図６Ｂは、図６Ａに示したクロック遷移検出部の信号のタイミングチャートである。信号Ｓ１は、構成メモリへのアドレス入力信号である。本実施例では、アドレスＡ０である。信号Ｓ２は、Ｄラッチの出力である。Ｄラッチ２７０は、信号Ｓ１に変化があった場合、一定期間変化しないようにラッチする。これは、ノイズ等で後続のアドレス遷移を無視するためである。信号Ｓ３は、Ｄラッチ２７０から出力される遅延信号である。遅延信号は、図６Ｂに示されるように、立ち上がりおよび立ち下がりでクロックを作って、信号Ｓ４のクロック幅を生成するために、遅延回路２４０Ｂで遅延される。
【００３９】
クロック信号として生成される信号Ｓ４は、ＡＮＤ回路２３０から出力される。ＡＮＤ回路２３０では、遅延回路２４０Ｂの入力と、出力とが入力されるので、両者の信号レベルが異なると、信号レベル「ハイ」を出力する。これにより、アドレス遷移を検出することができる。
【００４０】
信号Ｓ５は、遅延回路２４０Ｃから出力される遅延信号であり、ＬＡＴ２７０のイネーブル信号待ちしてクロック入力する。
【００４１】
信号Ｓ６は、信号Ｓ５の信号延長であり、イネーブル信号のパルス生成である。ＮＯＲ回路２１０Ａは、信号Ｓ５とＳ６のＮＯＲ演算値である信号Ｓ７を出力する。そして、信号Ｓ７は、Ｄラッチ２７０のイネーブル信号となる。信号Ｓ８は、信号Ｓ５をインバータ２６０Ａで反転した信号で、ＦＦ２５０で、アドレス信号のラッチのクロックとして使用される。信号Ｓ９は、構成メモリのイネーブル、信号Ｓ１０は、構成メモリのクロック（ａｔｄ＿ｃｌｋ）、信号Ｓ１１は、構成メモリのアドレスとして利用される。このように、アドレスＡ０である信号Ｓ１により、クロック信号Ｓ１０が生成されるので、構成メモリとして同期ＳＲＡＭの使用が可能になる。
【００４２】
図６Ｃは、アドレスＡ０と生成されるクロック信号との関係を示すタイミングチャートである。図６Ｃでは、信号Ｓ１とＳ１０のみを示す。アドレスＡ０の「Ｌｏｗ」から「Ｈｉ」への立ち上がりタイミングを用いて、クロックを生成し、アドレスＡ０「Ｈｉ」から「Ｌｏｗ」への立下りタイミングでもクロックを生成すると、データの書込みの時、立ち上がりでデータを書き込んでも、立下りの時、最初のメモリ・データに戻ってしまいデータが保持されない。この対策として、ＭＬＵＴ２０は、ポジティブタイプのアドレス遷移検出（ＡＴＤ）部２００を有する。このように、ポジティブタイプのＡＴＤ回路は、Ａ０の立ち上がりのみでＣＬＫを生成するので、メモリ内部のアドレスをＨｉで保持する。Ｈｉで保持する構成データが出力され、Ａ０がＬｏｗになってＣＬＫが生成されず構成データが、レジスタユニット６０のレジスタに保持される。これにて、ＭＬＵＴ３０は、フリップフロップ回路などの現実の回路を用意することなく、順序回路を構成することができる。
【００４３】
［３．２］再構成可能論理マルチプレクサ
再構成可能論理マルチプレクサ５０は、データの配線経路の数だけある。例えば、再構成可能論理マルチプレクサ５２Ａ、５２Ｂ、５２Ｃ、及び５２Ｄがある。
【００４４】
レジスタユニット６０に保持される構成データに従って、データ入力をデータ出力とに結合させるマルチプレクサであり、その接続経路は、構成データによって再構成可能である。動作としては、レジスタユニット６０に保持されるデータを“入力信号”とし、データ入力を“選択制御信号”として用いて、“入力信号”を選択して、出力する。
【００４５】
Ａ．論理機能の実現
図４Ｂに示す例では、レジスタでは、構成データから読み出した論理演算の結果を示す４対の４ビットが保持されている。つまり、構成データでは、４ビットデータは、論理積、論理和、否定、否定論理和、排他的論理和等の真理値表に対応した値が用意される。再構成可能論理マルチプレクサ５２Ａ等は、１６対１のマルチプレクサで、１６対「２方向×２×１６」の４ビットを、データ入力に対応して、１対の４ビットに選択する。つまり、構成メモリ４０では、データ入力数（図４Ｂでは４つ）と、その配線方向（図４Ｂでは４つ）の数を構成する構成データ（図４Ｂの例では、４方向×４対の４ビットデータ）が格納される。
【００４６】
Ｂ．配線機能の実現
各再構成可能論理マルチプレクサは、データ入力を選択信号として用いて、データ入力に応じて、複数個の真理値表データの何れを選択する。各再構成可能論理マルチプレクサは、データ入力線からのデータ入力と、データ出力線へのデータ出力とを結合する所望の配線経路を実現するように構成される。再構成可能マルチプレクサは複数個あり、データ入力線の方向と、データ出力線の方向の組合せ毎に設けられる。例えば、再構成可能論理マルチプレクサ５２Ａ、５２Ｂ、５２Ｃ、及び５２Ｄは、それぞれ、左側入力から左側出力の配線経路、左側入力から右側出力の配線経路、右側入力から右側出力の配線経路、及び、右側入力から左側出力の配線経路のためにある。例えば、データ入力により、再構成可能論理マルチプレクサ５２Ｂではなく、再構成可能論理マルチプレクサ５２Ａが選ばれる場合、データ入力に応じて再構成可能論理マルチプレクサ５２Ｂが選択した入力信号（構成データ）は、「０」であり５２Ａの信号と５２Ｃの信号が論理和されているので、左から左への信号が優先し、左から左の信号経路を構成する。データ入力に応じて再構成可能論理マルチプレクサ５２Ａが選択する入力信号（構成データ）は、所定の論理値を設定されており、それを左に出力する。
【００４７】
構成データの詳細は、図１２を用いて、後述する。再構成可能論理マルチプレクサ５２Ａと５２Ｃは論理和されており、再構成可能論理マルチプレクサ５２Ｃの構成データを「０」とすることにより左からのＩｎＡ０〜ＩｎＡ３の信号を左に所定の論理値で出力しうる。また、再構成可能論理マルチプレクサ５２Ｂと５２Ｄは論理和されており、再構成可能論理マルチプレクサ５２Ｄを「０」とすることにより、ＩｎＡ０〜ＩｎＡ３の信号を右側に出力している。これと同じ手法でＩｎＢ０〜ＩｎＢ３の信号を左右に出力している。
【００４８】
以上のように、再構成可能論理マルチプレクサ５０は、配線経路に応じて設けられ、また、構成データを論理演算値、及び、配線選択するように、構成することで、論理演算回路、及び／又は、スイッチのように動作する。
【００４９】
図７Ａは、４方向配置のＭＬＵＴの信号線の配置例を示す図である。図７Ａに示すように、左右からのデータ入出力は、２方向配置と同じであるが、それに加えて、上からのデータ入力ＩｎＣ０〜Ｃ３、上へのデータ出力ＯｕｔＣ０〜ＯｕｔＣ３、及び、下からのデータ入力ＩｎＤ０〜ＩｎＤ３、下へのデータ出力ＯｕｔＤ０〜ＯｕｔＤ３がある。
【００５０】
図７Ｂは、４方向配置のＭＬＵＴの一例を示す図である。なお、本例は適便に改良してもよい。図７Ｂに示すＭＬＵＴの信号線は、図７Ａに示すＭＬＵＴの信号線と同じである。構成メモリは表示しないが、各構成要素の動作は、２方向配置のＭＬＵＴと同じである。４方向であるため、再構成可能論理マルチプレクサの数が、２方向配置のＭＬＵＴと比して、４つ（再構成可能論理マルチプレクサ５２Ｅ〜Ｈ）増え、それに伴いレジスタユニット６２も増える。
【００５１】
２方向配置のマルチプレクサの出力は、他の同方向への出力と論理和をしていたが、４方向配置でも原理は同じである。ただし、方向が４つとなったため、４つの論理和となっている。例えば、データ出力ＯｕｔＣ０〜ＯｕｔＣ３を例とすると、再構成可能論理マルチプレクサ５２Ｃ、５２Ｅ、５２Ｇの出力の論理和となっている。再構成可能論理マルチプレクサ５２Ｅ、５２Ｇのデータを「０」とすることにより、５２Ｅの出力が上に出力しうる。
【００５２】
［４］ページ制御
図８は、ページ制御を行うＭＬＵＴの一例を示す図である。ページ制御を行うＭＬＵＴは、ＭＬＵＴの一部が、他の構成メモリのページ制御信号を生成する回路として動作し、そのデータ出力は、他の構成メモリのページを制御する。
【００５３】
図８に示すＭＬＵＴ３０は、大容量のメモリセルユニット４０Ａ、４０Ｂを有し、各メモリセルユニットは、９本のアドレス線と、６４本のデータ線で構成されるので、２の９乗（５１２）ワード×６４ビットの大容量となる。本例ではＡ２〜Ａ８がページ・アドレスで論理の多重化ができる。この場合は１２８ページの例である。また、本例では、２方向配置のＭＬＵＴアレイである。そして、構成メモリは、各ページの構成データを格納するように構成されるので、記憶容量は大きくなる。そのため、２つのメモリにより、構成される。このようにすることで、左右からのクロック制御が可能になる。
【００５４】
なお、図８は、概略図であり、メモリセルユニットの周辺回路であるデコーダ等は、示しておらず、デコーダは図５で説明したデコーダ１２０及びデータ入出力部１４０が、各メモリセルユニット毎に用意される。
【００５５】
図９は、ＭＬＵＴ外部で状態機械を設ける例を示す図である。図９に示すように、あるＭＬＵＴ３０を外部システムからの制御により、アドレスによりページ（真理値表データ）を切り替えることもできる。
【００５６】
従来のＭＰＬＤでは、ＭＰＬＤの状態機械は、真理値表データで定義することが必要があった。そのため、決められた条件に従って、あらかじめ決められた複数の状態を真理値表データで定義する真理値表データを設ける必要があった。ＭＬＵＴで構成されるステート・マシンが制御回路になり、データ・パスとは違い論理回路まで生成して配置配線をしなければならなかった。
【００５７】
図１０は、ＭＬＵＴ内部で状態機械を設ける例を示す図である。構成データの一部を使いＭＲＬＤ独自で状態機械を設ける例である。ＭＬＵＴ３０Ｂで構成される回路らでデクリメント演算をさせてＣ言語のｆｏｒ制御を行わせる。０データ（ＭＬＵＴ３０Ｂの０アドレス）に次のページのアドレスを記憶させ他のアドレスには現在のアドレスを記憶させる。これでｆｏｒ文制御が可能になる。
【００５８】
図１０に示すＭＬＵＴ３０は、ページの切替制御機能を持つことから、ステートマシンを真理値表で定義する必要がなくなる。例えば、ｆｏｒ文は所定値がある条件になるまで、自ページのアドレスをデータに出力してページ切り替えを行わず、同じページで動作を処理する。ある条件を満たせば（例えば、ｉ＝０）、その際にページ切り替えのアドレスを、データ線に出力する。データ線は、他のメモリセルユニットにアドレス線として入力するので、当該他のメモリセルユニットのページ切り替えが可能になる。また、ｃａｓｅ文の場合は所定値の値により、飛び先番地をデータに出力してページ切り替えを行わせて動作変更させることが出来る。以上により、従来のＭＰＬＤは論理回路構成しか出来なかったものに対してＣ言語の動作合成も出来るようになり、Ｃ言語からＭＰＬＤのＭＬＵＴの真理値データを生成させることが可能になり、ＦＰＧＡ以上の機能を持たせることができる。
【００５９】
ＭＲＬＤは専用の小型のＳＲＡＭに関する半導体設計試作、製造を経なくても、従来の大容量のメモリデバイスを利用できる。ＭＲＬＤをチップで構成する際、メモリＩＰ（Intellectual Property）を使うが、従来のＭＬＵＴが求めている微小メモリ容量では、アドレスデコーダやセンスアンプの面積が大きくメモリ自体の構成比率は５０％以下になる。このことは、オーバヘッドにもなり、効率が悪い。大容量メモリになるとアドレス・デコーダやセンス・アンプに比率は下がり、メモリ使用効率が上がる。そのため、大容量メモリにあった本案はＭＲＬＤチップの場合有効になる。
【００６０】
［５］構成データ
図８に示す例における構成データを図１２Ａ〜図１２Ｊに示す。図１１は、図２で説明した交互配置のＭＬＵＴにより構成される論理回路と配線を示す図である。図１１は、図２で説明した交互配置のＭＬＵＴにより構成され、２つの構成メモリ（左側、右側）により構成される。図１１に例示されるように、論理回路と配線は、ＭＬＵＴ３０Ａ〜３０Ｄにより構成される。また、下記に示す図１２Ａ〜図１２Ｊは、ページ制御で選択される真理値表データも含む。
【００６１】
図１２Ａは、ＭＬＵＴ３０Ａの左側の構成メモリに格納される構成データの一例を示す図である。図１２Ｂは、ＭＬＵＴ３０Ａの右側の構成メモリに格納される構成データの一例を示す図である。図１２Ｃは、ＭＬＵＴ３０Ｂの左側の構成メモリに格納される構成データの一例を示す図である。図１２Ｄは、ＭＬＵＴ３０Ｂの右側の構成メモリに格納される構成データの一例を示す図である。図１２Ｅは、ＭＬＵＴ３０Ｃの左側の構成メモリに格納される構成データの一例を示す図である。図１２Ｆは、ＭＬＵＴ３０Ｃの右側の構成メモリに格納される構成データの一例を示す図である。
【００６２】
図１２Ｇは、ＭＬＵＴ３０Ｄの左側の構成メモリに格納される構成データの一例を示す図である。図１２Ｈは、ＭＬＵＴ３０Ｄの右側の構成メモリに格納される構成データの一例を示す図である。図１２Ｉは、ＭＬＵＴ３０Ｅの左側の構成メモリに格納される構成データの一例を示す図である。図１２Ｊは、ＭＬＵＴ３０Ｅの右側の構成メモリに格納される構成データの一例を示す図である。
【００６３】
上記したように、再構成可能論理マルチプレクサの出力は、論理和されているため、信号出力の無い経路の構成データを「０」とすることにより、所望の論理演算を結果を出力するように、構成データは構成されている。
【００６４】
［６］真理値表データの生成方法
再構成可能な半導体装置の真理値表データは、論理構成用のソフトウェアプログラムを実行する情報処理装置によって生成される。
【００６５】
図１３に、情報処理装置のハードウェア構成の一例を示す。情報処理装置２１０は、プロセッサ２１１と、入力部２１２と、出力部２１３と、記憶部２１４とドライブ装置２１５を有する。プロセッサ２１１は、入力部２１２に入力された配置・配線用のソフトウェア、集積回路を設計するためのＣ言語記述またはハードウェア記述言語（ＨＤＬ）などの回路記述言語、及び、上記ソフトウェアを実行することによって生成される真理値表データを記憶部２１４に記憶する。また、プロセッサ２１１は、配置・配線用のソフトウェアを実行して、記憶部２１４に記憶された回路記述に対して以下に示す配置・配線の処理を行い、出力部２１３に、真理値表データを出力する。出力部２１３には、再構成可能な論理デバイス２０（図１３には示さず）を接続することができ、プロセッサ２１１が論理構成処理を実行して、生成した真理値表データを、出力部２１３を介して再構成可能な論理デバイス２０に書き込む。出力部２１３は、外部ネットワークと接続していてもよい。この場合、論理構成用のソフトウェアプログラムは、ネットワークを介して送受信される。ドライブ装置２１５は、例えば、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、フラッシュメモリなどの記憶媒体２１７を読み書きする装置である。ドライブ装置２１５は、記憶媒体２１７を回転させるモータや記憶媒体２１７上でデータを読み書きするヘッド等を含む。なお、記憶媒体２１７は、論理構成用のプログラム、又は、真理値表データを格納することができる。ドライブ装置２１５は、セットされた記憶媒体２１７からプログラムを読み出す。プロセッサ２１１は、ドライブ装置２１５により読み出されたプログラム又は真理値表データを、記憶部２１４に格納する。
【００６６】
真理値表データが半導体装置２０に読み込まれることにより、真理値表データとハードウェア資源とが協働した具体的手段によって、論理要素及び／又は接続要素としての機能が構築される。また、真理値表データは、真理値表という論理的構造を示す構造を有するデータともいえる。
【００６７】
以上説明した実施形態は典型例として挙げたに過ぎず、その各実施形態の構成要素の組合せ、変形及びバリエーションは当業者にとって明らかであり、当業者であれば本発明の原理及び請求の範囲に記載した発明の範囲を逸脱することなく上述の実施形態の種々の変形を行えることは明らかである。
【符号の説明】
【００６８】
２０    ＭＲＬＤ
３０    ＭＬＵＴ
４０    構成メモリ
５０    再構成可能論理マルチプレクサ
６０    レジスタユニット
２００    クロック遷移検出部
３００    ＭＬＵＴアレイ
【図１】
2014163099.tif 000003
【図２】
2014163099.tif 000004
【図３】
2014163099.tif 000005
【図４Ａ】
2014163099.tif 000006
【図４Ｂ】
2014163099.tif 000007
【図５】
2014163099.tif 000008
【図６Ａ】
2014163099.tif 000009
【図６Ｂ】
2014163099.tif 000010
【図６Ｃ】
2014163099.tif 000011
【図７Ａ】
2014163099.tif 000012
【図７Ｂ】
2014163099.tif 000013
【図８】
2014163099.tif 000014
【図９】
2014163099.tif 000015
【図１０】
2014163099.tif 000016
【図１１】
2014163099.tif 000017
【図１２Ａ】
2014163099.tif 000018
【図１２Ｂ】
2014163099.tif 000019
【図１２Ｃ】
2014163099.tif 000020
【図１２Ｄ】
2014163099.tif 000021
【図１２Ｅ】
2014163099.tif 000022
【図１２Ｆ】
2014163099.tif 000023
【図１２Ｇ】
2014163099.tif 000024
【図１２Ｈ】
2014163099.tif 000025
【図１２Ｉ】
2014163099.tif 000026
【図１２Ｊ】
2014163099.tif 000027
【図１３】
2014163099.tif 000028
【国際調査報告】
2014163099.tif 000029
2014163099.tif 000030
2014163099.tif 000031
2014163099.tif 000032