(57)【特許請求の範囲】
【請求項１】
再構成可能な半導体装置であって、
互いにアドレス線又はデータ線で接続する複数の論理部と、
システムクロック信号を受け取るクロック信号線と、
前記システムクロック信号を遅延する遅延素子と、を備え、前記遅延素子は、前記複数の論理部のうち、論理演算を行う複数の互いに接続する論理部において生じる遅延に応じて遅延させた遅延クロック信号を生成し、
前記各論理部は、
前記遅延素子から出力される遅延クロック信号に同期して動作する第１メモリセルユニットと、
アドレス信号をデコードして、前記第１メモリセルユニットにデコード信号を出力する第１アドレスデコーダと、
前記第１メモリセルユニットの出力データを、前記遅延クロック信号に同期して読み込む第１出力バッファと、
前記システムクロック信号に同期して動作する第２メモリセルユニットと、
前記アドレス信号をデコードして、前記第２メモリセルユニットにデコード信号を出力する第２アドレスデコーダと、
前記第２メモリセルユニットの出力データを、前記システムクロック信号に同期して読み込み、次のクロックが加わるまでの期間中その値を保持する、第２出力バッファと、を有し、
前記遅延クロック信号は、前段の論理部の次に、後段の論理部に出力され、
前記システムクロック信号は、後段の論理部の次に、前段の論理部に出力される、半導体装置。
【請求項２】
前記第１メモリセルユニットに接続するデータ線と、前記第２メモリセルユニットに接続するデータ線は、互いに接続して、論理和を出力し、及び、
何れかのメモリセルユニットを使用しない場合、当該未使用のメモリセルユニットには、全て０が書き込まれるように構成される、請求項１に記載の半導体装置。
【請求項３】
前記遅延素子は、前記クロック信号線上に、２つ以上の論理部に対して１つ設けられ、その遅延量を固定値とする、請求項１または２に記載の半導体装置。
【請求項４】
前記各論理部はさらに、
前記遅延素子から出力される遅延クロック信号に同期して動作する前記第３メモリセルユニットと、
前記アドレス信号をデコードして、前記第３メモリセルユニットにデコード信号を出力する第３アドレスデコーダと、
前記システムクロック信号に同期して動作する第４メモリセルユニットと、
前記アドレス信号をデコードして、前記第４メモリセルユニットにデコード信号を出力する第４アドレスデコーダと、を備え、
前記第１及び第２アドレスデコーダは、前記複数のアドレス線の一部から入力されるアドレスをデコードし、
前記第３及び第４アドレスデコーダは、前記複数のアドレス線の他の一部から入力されるアドレスをデコードするように構成される、請求項１〜３の何れか１項に記載の再構成可能な半導体装置。
【請求項５】
前記メモリセルユニットは、配線要素及び／又は論理要素を構成する真理値表データを格納して、前記論理部はマルチルックアップテーブルとして動作する、請求項１〜４の何れか１項に記載の再構成可能な半導体装置。
【請求項６】
前記第１及び第３メモリセルユニットをまたがる論理演算を、禁止論理として生成しないように構成される真理値表データを格納する請求項４または５に記載の再構成可能な半導体装置。
【請求項７】
再構成可能な半導体装置の制御方法であって、
前記半導体装置は、
互いにアドレス線又はデータ線で接続する複数の論理部と、
システムクロック信号を受け取るクロック信号線と、
前記システムクロック信号を遅延する遅延素子と、を備え、前記遅延素子は、前記複数の論理部のうち、論理演算を行う複数の互いに接続する論理部において生じる遅延に応じて遅延させた遅延クロック信号を生成し、
前記各論理部は、
前記遅延素子から出力される遅延クロック信号に同期して動作する第１メモリセルユニットと、
アドレス信号をデコードして、前記第１メモリセルユニットにデコード信号を出力する第１アドレスデコーダと、
前記遅延素子から出力される遅延クロック信号に同期して動作する第１メモリセルユニットと、
前記第１メモリセルユニットの出力データを、前記遅延クロック信号に同期して読み込む第１出力バッファと、
前記システムクロック信号に同期して動作する第２メモリセルユニットと、
前記アドレス信号をデコードして、前記第２メモリセルユニットにデコード信号を出力する第２アドレスデコーダと、
前記第２メモリセルユニットの出力データを、前記システムクロック信号に同期して動作する第２出力バッファと、を有し、
前記第２出力バッファは、前記第２メモリセルユニットの出力データを、前記システムクロック信号に同期して読み込み、次のクロックが加わるまでの期間中その値を保持し、
前記遅延クロック信号は、前段の論理部の次に、後段の論理部に出力され、
前記システムクロック信号は、後段の論理部の次に、前段の論理部に出力される、制御方法。
【請求項８】
前記第１メモリセルユニットに接続するデータ線と、前記第２メモリセルユニットに接続するデータ線は、互いに接続して、論理和を出力し、及び、
何れかのメモリセルユニットを使用しない場合、当該未使用のメモリセルユニットには、全て０が書き込まれるように構成される、請求項７に記載の制御方法。
【請求項９】
前記遅延素子は、前記クロック信号線上に、２つ以上の論理部に対して１つ設けられ、その遅延量を固定値とする、請求項７または８に記載の制御方法。
【請求項１０】
前記各論理部はさらに、
前記遅延素子から出力される遅延クロック信号に同期して動作する前記第３メモリセルユニットと、
前記アドレス信号をデコードして、前記第３メモリセルユニットにデコード信号を出力する第３アドレスデコーダと、
前記システムクロック信号に同期して動作する第４メモリセルユニットと、
前記アドレス信号をデコードして、前記第４メモリセルユニットにデコード信号を出力する第４アドレスデコーダと、をさらに備え、
前記第３メモリセルユニットは、前記遅延クロック信号に同期して動作し、前記第４メモリセルユニットは、前記システムクロック信号に同期して動作し、且つ、
前記第１及び第２アドレスデコーダは、前記複数のアドレス線の一部から入力されるアドレスをデコードし、
前記第３及び第４アドレスデコーダは、前記複数のアドレス線の他の一部から入力されるアドレスをデコードするように構成される、請求項７〜９の何れか１項に記載の制御方法。
【請求項１１】
前記メモリセルユニットは、配線要素及び／又は論理要素を構成する真理値表データを格納して、マルチルックアップテーブルとして動作する、請求項７〜１０の何れか１項に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能な半導体装置に関する。
【背景技術】
【０００２】
「ＭＰＬＤ（Ｍｅｍｏｒｙ−ｂａｓｅｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）」（登録商標）は、専用のスイッチ回路をメモリセルユニット毎に有するＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）と異なりメモリセルユニットを有し、さらに、標準ＣＭＯＳ（Complementary Metal Oxide Semiconductor）ロジックプロセスで製造可能であるので、低価格化が可能である。しかし、ＭＰＬＤは同期型ではないため、同期メモリとして使用した場合、その性能が満たせない。そこで、出願人は、メモリセルユニットの標準製造プロセスで、同期型メモリとして使用可能な「ＭＲＬＤ（Ｍｅｍｏｒｙ  ｂａｓｅｄ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）」（登録商標）を、下記特許文献１において提案した。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２１９６９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記公報では、クロックと同期する同期型メモリと、クロックと非同期の非同期型メモリとから構成されるペアのメモリを、同期非同期切り替え可能なＭＬＵＴ（Ｍｕｌｔｉ  Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）として動作させていた。しかしながら、標準プロセスにおいては、同期型メモリの採用が好ましい。
【０００５】
ＦＰＧＡで配線や組み合わせ回路を構成する場合、ＬＵＴ（Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）の遅延時間やスイッチの配線遅延や容量の関係で大きな遅延時間を持つ。ＭＲＬＤも遅延に関しては同様に、配線も組み合わせ回路も大きな遅延時間を持っている。この遅延により、前段のＭＬＵＴにおける演算が終了する前に、クロックに同期する後段のＭＬＵＴが演算を開始すると、組合せ回路を構成するＬＵＴに論理矛盾が生じる。
【０００６】
このような論理矛盾を回避するために、所定のシステムクロックに基づき、ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）等によりシミュレーションを行い、バッファ回路を設けて、ある回路の出力信号のタイミングを、他の遅延した回路の出力信号に合わせる等のタイミング検証が必要になる。
【０００７】
上記課題を解決する形態は、以下の項目セットにより示されるように、組合せ論理回路を構成する論理部は、前記遅延素子から出力される遅延クロック信号に同期して動作することで、タイミング検証不要な再構成可能な半導体装置を提供する。
【０００８】
１．再構成可能な半導体装置であって、
互いにアドレス線又はデータ線で接続する複数の論理部を備え、
前記各論理部は、
複数のアドレス線と、
複数のデータ線と、
システムクロック信号を受け取るクロック信号線と、
前記システムクロック信号を遅延する遅延素子と、
クロック信号に同期して動作するメモリセルユニットと、
アドレス信号をデコードして、前記メモリセルユニットにデコード信号を出力するアドレスデコーダと、を備え、
組合せ論理回路を構成する論理部は、前記遅延素子から出力される遅延クロック信号に同期して動作する、再構成可能な半導体装置。
【０００９】
組合せ論理回路を構成する論理部は、遅延素子から出力される遅延クロック信号に同期することで、ＦＰＧＡのような、タイミング検証が不要になる。
【００１０】
２．前記遅延クロック信号と、前記システムクロック信号を選択する選択部をさらに備え、
同期回路を構成する論理部は、前記システムクロック信号に同期して動作する、項目１に記載の半導体装置。
【００１１】
論理部が、同期回路を構成するときはシステムクロックに従って、同期することで、回路の再構成性を担保する。
【００１２】
３．前記論理部はさらに、
クロック信号に同期して動作する第２メモリセルユニットと、
アドレス信号をデコードして、前記第２メモリセルユニットにデコード信号を出力する第２アドレスデコーダと、をさらに備え、
前記第２メモリセルユニットは、前記システムクロック信号に同期して動作するとともに、
前記メモリセルユニットに接続するデータ線と、前記第２メモリセルユニットに接続するデータ線は、互いに接続して、論理和を出力し、及び、
何れかのメモリセルユニットを使用しない場合、当該未使用のメモリセルユニットには、全て０が書き込まれるように構成される、項目１に記載の半導体装置。
【００１３】
論理部が、遅延クロック信号に同期するメモリセルユニットと、システムクロック信号に同期するメモリセルユニットを有して、構成データにより何れかを動作ことで、論理部の構成性を担保する。
【００１４】
４．前記遅延クロック信号は、前段の論理部の次に、後段の論理部に出力され、
前記システムクロック信号は、後段の論理部の次に、前段の論理部に出力される、項目３に記載の半導体装置。
【００１５】
システムクロック信号を、遅延クロック信号の向きと反対に流すことで、システムクロック信号の信号遅延を緩和する。
【００１６】
５．前記遅延素子は、前記クロック信号線上に、２つ以上の論理部に対して１つ設けられ、その遅延量を固定値とする、項目１〜４の何れか１項に記載の半導体装置。
【００１７】
遅延素子の回路規模を縮小することができる。
【００１８】
６．クロック信号に同期して動作する第３及び第４のメモリセルユニットと、
アドレス信号をデコードして、前記第３メモリセルユニットにデコード信号を出力する第３アドレスデコーダと、
アドレス信号をデコードして、前記第４メモリセルユニットにデコード信号を出力する第４アドレスデコーダと、をさらに備え、
前記第３メモリセルユニットは、前記遅延クロック信号に同期して動作し、前記第４メモリセルユニットは、前記システムクロック信号に同期して動作し、且つ、
前記第１及び第２アドレスデコーダは、前記複数のアドレス線の一部から入力されるアドレスをデコードし、
前記第３及び第４アドレスデコーダは、前記複数のアドレス線の他の一部から入力されるアドレスをデコードするように構成される、項目３〜５の何れか１項に記載の再構成可能な半導体装置。
【００１９】
７．前記メモリセルユニットは、配線要素及び／又は論理要素を構成する真理値表データを格納して、前記論理部はマルチルックアップテーブルとして動作する、項目１〜６の何れか１項に記載の再構成可能な半導体装置。
【００２０】
８．前記第１及び第３メモリセルユニットをまたがる論理演算を、禁止論理として生成しないように構成される真理値表データを格納する項目３〜７の何れか１項に記載の再構成可能な半導体装置。
【００２１】
９．再構成可能な半導体装置の制御方法であって、
前記半導体装置は、
互いにアドレス線又はデータ線で接続する複数の論理部を備え、
前記各論理部は、
複数のアドレス線と、
複数のデータ線と、
システムクロック信号を受け取るクロック信号線と、
前記システムクロック信号を遅延する遅延素子と、
アドレスデコーダと、
複数にメモリセルを有し、且つクロック信号に同期して動作するメモリセルユニットと、を備え、
組合せ論理回路を構成する論理部は、前記遅延素子から出力される遅延クロック信号に同期して動作する、制御方法。
【００２２】
１０．前記遅延クロック信号と、前記システムクロック信号を選択する選択部をさらに備え、
同期回路を構成する論理部は、前記システムクロック信号に同期して動作する、項目９に記載の制御方法。
【００２３】
１１．前記論理部はさらに、
クロック信号に同期して動作する第２メモリセルユニットと、
アドレス信号をデコードして、前記第２メモリセルユニットにデコード信号を出力する第２アドレスデコーダと、をさらに備え、
前記第２メモリセルユニットは、前記システムクロック信号に同期して動作するとともに、
前記メモリセルユニットに接続するデータ線と、前記第２メモリセルユニットに接続するデータ線は、互いに接続して、論理和を出力し、及び、
何れかのメモリセルユニットを使用しない場合、当該未使用のメモリセルユニットには、全て０が書き込まれるように構成される、項目９に記載の制御方法。
【００２４】
１２．前記遅延クロック信号は、前段の論理部の次に、後段の論理部に出力され、
前記システムクロック信号は、後段の論理部の次に、前段の論理部に出力される、項目１１に記載の制御方法。
【００２５】
１３．前記遅延素子は、前記クロック信号線上に、２つ以上の論理部に対して１つ設けられ、その遅延量を固定値とする、項目９〜１２の何れか１項に記載の制御方法。
【００２６】
１４．クロック信号に同期して動作する第３及び第４のメモリセルユニットと、
アドレス信号をデコードして、前記第３メモリユニットにデコード信号を出力する第３アドレスデコーダと、
アドレス信号をデコードして、前記第４メモリセルユニットにデコード信号を出力する第４アドレスデコーダと、をさらに備え、
前記第３メモリセルユニットは、前記遅延クロック信号に同期して動作し、前記第４メモリセルユニットは、前記システムクロック信号に同期して動作し、且つ、
前記第１及び第２アドレスデコーダは、前記複数のアドレス線の一部から入力されるアドレスをデコードし、
前記第３及び第４アドレスデコーダは、前記複数のアドレス線の他の一部から入力されるアドレスをデコードするように構成される、項目９〜１３の何れか１項に記載の制御方法。
【００２７】
１５．前記メモリセルユニットは、配線要素及び／又は論理要素を構成する真理値表データを格納して、マルチルックアップテーブルとして動作する、項目９〜１４の何れか１項に記載の制御方法。
【００２８】
１６．再構成可能な半導体装置を制御するためのプログラムにおいて、
前記半導体装置は、
互いにアドレス線又はデータ線で接続する複数の論理部を備え、
前記各論理部は、
複数のアドレス線と、
複数のデータ線と、
システムクロック信号を受け取るクロック信号線と、
前記システムクロック信号を遅延する遅延素子と、
第１アドレスデコーダと、
第２アドレスデコーダと、
複数にメモリセルを有し、且つクロック信号に同期して動作する第１メモリセルユニットと、
複数のメモリセルを有し、且つクロック信号に同期して動作する第２メモリセルユニットと、を備え、
前記第１アドレスデコーダは、前記アドレス信号をデコードして、前記第１メモリセルユニットにデコード信号を出力し、
前記第１アドレスデコーダは、前記アドレス信号をデコードして、前記第２メモリセルユニットにデコード信号を出力し、
前記第１メモリセルユニットは、前記遅延素子から出力される遅延クロック信号に同期して動作し、
前記第２メモリセルユニットは、前記システムクロック信号に同期して動作する処理、を実行させることを特徴とするプログラム。
【発明の効果】
【００２９】
本発明に係る一実施形態は、組合せ論理回路を構成する論理部は、前記遅延素子から出力される遅延クロック信号に同期して動作することで、タイミング検証不要な再構成可能な半導体装置を提供する。
【図面の簡単な説明】
【００３０】
【図１】本実施形態に係る半導体装置の全体構成の一例を示す図である。
【図２】ＭＬＵＴを横積みして構成されるＭＬＵＴを概略的に示す図である。
【図３】８ビットのデータ線幅をもつＭＬＵＴの一例を示す図である。
【図４Ａ】ＭＬＵＴの一例を示す図である。
【図４Ｂ】同期非同期切り替え可能なＭＬＵＴの第１例を示す図である。
【図４Ｃ】同期非同期切り替え可能なＭＬＵＴの第２例を示す図である。
【図５】遅延素子のタイミングチャートである。
【図６】ＭＲＬＤにおける遅延素子の配置を示す図である。
【図７】同期回路を適用したＭＬＵＴの例である。
【図８】ＭＬＵＴの一例を示す図である。
【図９】論理回路として動作するＭＬＵＴの一例を示す図である。
【図１０】図９に示す論理回路の真理値表を示す図である。
【図１１】接続要素として動作するＭＬＵＴの一例を示す図である。
【図１２】図１１に示す接続要素の真理値表を示す図である。
【図１３】１つのＭＬＵＴが、論理要素及び接続要素として動作する一例を示す図である。
【図１４】論理要素及び接続要素の真理値表を示す。
【図１５】情報処理装置のハードウェア構成の一例を示す。
【発明を実施するための形態】
【００３１】
以下、図面を参照して、以下の構成に基づき、再構成可能な半導体装置を説明する。
１．ＭＲＬＤ
１．１  ＭＲＬＤの全体構成
１．２  ＭＬＵＴ配置
２．ＭＬＵＴ
３．ＭＬＵＴの論理、接続、及び同期動作
４．真理値表データの生成方法
【００３２】
１．ＭＲＬＤ
再構成可能な論理デバイスをＭＲＬＤと呼ぶ。ＭＲＬＤは、メモリセルユニットで回路構成を実現するＭＰＬＤと同様に、各ＭＬＵＴ間が、配線要素を介在せずに直接接続する点で共通するが、メモリＩＰとして供給される同期メモリセルユニットの機能を有効に活用する点において、区別される。
【００３３】
なお、本実施形態において、「メモリユニット」とは、複数のメモリセルからなるメモリセルユニットに加え、周辺回路のデコーダと出力バッファを含む。
【００３４】
１．１  ＭＲＬＤの全体構成
図１に示す２０は、ＭＲＬＤの一例である。ＭＲＬＤ２０は、同期メモリユニットを利用したＭＬＵＴ３０を複数個、アレイ状に配置したＭＬＵＴアレイ６０、ＭＬＵＴ３０のメモリ読出し動作、書込み動作を特定する行デコーダ２２、及び、列デコーダ２４を有する。
【００３５】
ＭＬＵＴは、同期メモリユニットで構成される。メモリの記憶素子には、真理値表とみなされるデータがそれぞれ記憶されることで、ＭＬＵＴは、論理要素、又は、接続要素、又は、論理要素及び接続要素として動作する論理動作を行う。
【００３６】
ＭＲＬＤ２０の論理動作では、実線で示される論理用アドレスＬＡ、及び論理用データＬＤの信号を使用する。論理用アドレスＬＡは、論理回路の入力信号として使用される。そして、論理用データＬＤは、論理回路の出力信号として使用される。ＭＲＬＤアレイ６０において、論理用アドレスＬＡおよび論理用データＬＤは、ＭＬＵＴ同士を接続する信号線として使用され、例えば、ＭＬＵＴの論理用アドレスＬＡは、隣接するＭＬＵＴの論理動作用データＬＤのデータ線と接続している。
【００３７】
ＭＲＬＤ２０の論理動作により実現される論理は、ＭＬＵＴに記憶される真理値表データにより実現される。いくつかのＭＬＵＴは、ＡＮＤ回路、加算器などの組み合わせ回路としての論理要素として動作する。他のＭＬＵＴは、組み合わせ回路を実現するＭＬＵＴ間を接続する接続要素として動作する。ＭＬＵＴが、論理要素、及び接続要素を実現するための真理値表データの書き換えは、メモリへの書き込み動作によりなされる。
【００３８】
ＭＲＬＤ２０の書き込み動作は、メモリ動作用アドレスＡＤ、及び書込用データＷＤによりなされ、読出し動作は、メモリ動作用アドレスＡＤ、及び読出用データＲＤによりなされる。
【００３９】
メモリ動作用アドレスＡＤは、ＭＬＵＴ内のメモリセル（図４Ａ等で後述）を特定するアドレスであり、メモリの読出し動作、書き込み動作、両方の場合で使用される。メモリ動作用アドレスＡＤは、ｍ本の信号線で、２のｍ乗の数ｎのメモリセルを特定する。行デコーダ２２は、ｍ本の信号線を介してＭＬＵＴアドレスを受け取るとともに、ＭＬＵＴアドレスをデコードして、メモリ動作の対象となるＭＬＵＴ内のメモリセルを特定する。なお本実施形態においては、後述するが、論理用アドレスＬＡのデコードは、ＭＬＵＴ内のデコーダにより行う。
【００４０】
行デコーダ２２は、リード・イネーブル信号ｒｅ、ライト・イネーブル信号ｗｅ等の制御信号に従って、メモリ動作用アドレスＡＤのｍビットのうちｘビットをデコードし、デコードアドレスｎをＭＬＵＴ３０に対して出力する。デコードアドレスｎは、ＭＬＵＴ３０内のメモリセルを特定するアドレスとして使用される。
【００４１】
列デコーダ２４は、メモリ動作用アドレスＡＤのｍビットのうちｙビットをデコードし、行デコーダ２２と同様の機能を有して、デコードアドレスｎをＭＬＵＴ３０に対して出力するとともに、書込用データＷＤの出力、及び、読出用データＲＤを入力する。
【００４２】
なお、ＭＬＵＴのアレイがｓ行ｔ列である場合、ＭＬＵＴアレイ６０からはｎ×ｔビットのデータが列デコーダ２４に入力される。ここで、各行毎のＭＬＵＴを選択するために行デコーダ２２はｏ行分のｒｅ，ｗｅを出力する。つまり、ｏ行は、ＭＬＵＴのｓ行に相当する。ここでｏビットのうち、１ビットだけをアクティブにすることで、特定のメモリセルのワード線が選択される。そしてｔ個のＭＬＵＴがｎビットのデータを出力するため、ｎ×ｔビットのデータがＭＬＵＴアレイ６０から選択され、そのうち１列を選択するのに列デコーダ２４が使われる。
【００４３】
１．２  双方向ＭＬＵＴ配置
図２は、ＭＬＵＴ３０を横積みして構成されるＭＬＵＴアレイ６０を概略的に示す図である。ＭＬＵＴアレイ６０は、図示されるように、ＭＬＵＴ３０をアレイ状に配置したものである。ＭＬＵＴ３０として用いるメモリはアドレス線の幅とデータ線の幅が等しい。アドレス線とデータ線の１ビットずつを対にして、擬似的な双方向線を定義する。この擬似的な双方向線を「ＡＤ対」と呼ぶ。図２では、４ビットのデータ線幅の例が示される。アドレス線の幅とデータ線の幅がＮビットのメモリを用いることで、ＡＤ対をＮ本もつＭＬＵＴが実現される。
【００４４】
なお、図２に示すＭＬＵＴ３０Ａ〜３０Ｄは、図５において参照される。
【００４５】
図３は、８ビットのデータ線幅をもつＭＬＵＴの一例を示す図である。図２に示すＭＬＵＴ３０は、左方向から図３に示すアドレスＡ０Ｌ〜Ａ７Ｌ（論理用アドレスＬＡの例である。以下同じ。）の入力があり、及び、右方向から図３に示すアドレスＡ０Ｒ〜Ａ７Ｒの入力があり、また、左方向へ図３に示すデータＤ０Ｌ〜Ｄ７Ｌ（論理用データＬＤの例である。以下同じ。）の出力があり、右方向へ図３に示すデータＤ０Ｒ〜Ｄ７Ｒの出力がある。ｎ値＝８のＭＬＵＴは従来方式では１ＭビットとなりＣＬＢ（Ｃｏｎｆｉｇｕｒａｂｌｅ  Ｌｏｇｉｃ  Ｂｌｏｃｋｓ）相当が４Ｍビットと大規模化してしまう。それに対して本実施形態に係るＭＬＵＴは、後述するように、４Ｋ（２５６ワード×１６ビット）ビット×２で構成される。
【００４６】
なお、ｎ値とは、隣接するＭＬＵＴ３０に向かい合う１辺から出るアドレス線又はデータ線の数を言う。図２に示す４ビット長型ＭＬＵＴは、複数ビット伝送を要件としているので、１辺からでるアドレス線又はデータ線は「４」であり、ｎ値は「４」である。図２に示すように、双方向型ＭＬＵＴでは、隣接するＭＬＵＴとの関係で、データ伝送量がｎ値の半分となり、且つ、信号パスが１段ずれるので、最長信号パスを実現するには信号パスを（ｎ値／２）で割った段数だけ必要である。なお、「段数」とは、回路において、接続する素子の数を示す。ＭＬＵＴの「段数」も、通常の回路の段数のように、接続するＭＬＵＴの数を示す。ＭＬＵＴ論理段数は、以下の式で示される。
式１：  ＭＬＵＴ論理段数  ＝  ｍ／（ｎ値／２）
なお、ここでｍは、信号バスであり、論理コーンにする入力信号線を示す。
図２に示す例では、ｎ値は「４」であるが、隣接するＭＬＵＴは、一方向に２つあるので、ｎ値／２は「２」となる。Ｃ言語の論理演算が、８ビットで演算されており、論理コーンの入力信号線ｍが８本であった場合、ＭＬＵＴ論理段数は、「８／（４／２）＝４」となる。つまり、８ビット演算をＭＬＵＴで行う場合、４つの段数を構成するＭＬＵＴが必要になる。尚、本ＭＬＵＴは双方向性であるので、折り返しをすることで、段数を少なくすることが出来る。
【００４７】
このように、上記のＭＬＵＴを有するＭＲＬＤは、隣接するＭＬＵＴに対して複数ビットのデータ処理を行うとともに、複数のメモリセルユニットで論理部を構成する。メモリセルユニットは、アドレス線の二乗に比例して増えるので、データ線の数は同じであっても、各メモリセルユニットのアドレス数を少なくすれば、トータルに必要なメモリセルの数を少なくすることができる。
【００４８】
あるメモリユニットは、第１の方向からのアドレス入力に対して、第１の方向に、又は、第１の方向と反対の第２の方向にデータを出力するデータ線と接続し、及び、他のメモリユニットは、第２の方向からのアドレス入力に対して、第２の方向に、又は、第１の方向にデータを出力するデータ線と接続し、２つのメモリユニットは、真理値表データに従って、データの出力方向を変える。このように、データ出力の方向を制限することで、論理部の再構成性は制限されるものの、必要なメモリセルの数を少なくすることができる。
【００４９】
２．ＭＬＵＴ
（第１例）
図４Ａは、ＭＬＵＴの回路図の一例を示す図である。ＭＬＵＴ３０は、メモリセルユニット３１Ａおよび３１Ｃを有する。なお、図４Ａでは、ＭＬＵＴの論理動作を説明するため、アドレスＡ０〜Ａ７（論理用アドレスＬＡ）、出力データＤ０〜Ｄ７（論理用データＬＤ）を示しているが、メモリ動作用のメモリ動作用アドレスＡＤ、書込用データＷＤ、メモリ動作用アドレスＡＤ、及び読出用データＲＤは示していない。図４Ｂ、および図４Ｃも同様である。
【００５０】
ＭＬＵＴ３０はさらに、アドレスデコーダ１１Ａおよび１１Ｃ、出力バッファ１３Ａおよび１３Ｃ、遅延素子３５Ａ、３５Ｂを有する。なお、図示しないが、アドレスデコーダ１１Ａ、１１Ｃの前段に、論理用アドレスＬＡ及びメモリ動作用アドレスＡＤを切り替えるための選択回路を有する。出力バッファ１３Ａおよび１３Ｃは、出力データＤ０〜Ｄ７、又は、読出用データＲＤを切り替える選択回路であるとともに、出力データを、クロック（ＣＬＫ）に従い一時的に保持するバッファとして動作する。
【００５１】
２．１  遅延素子
遅延素子は、非同期用ＭＬＵＴのクロック信号線に設けられる。遅延素子３５Ａ、３５Ｂは、前段のＭＬＵＴのクロックと接続しており、一定の遅延時間を持たせてクロックを出力する。遅延素子３５Ａ及び３５Ｂは、構成する非同期用ＭＬＵＴ全体のデータ遅延を考慮した遅延量を設定する。遅延素子は、例えば、ゲート・チェーンによる遅延素子である。ＭＬＵＴ３０は、同期メモリユニットを利用して、製造されるため、外部から供給されるクロックに同期して動作する。
【００５２】
遅延素子を用いた非同期動作
ＭＲＬＤは、他の半導体装置と同様に、配線や回路動作において遅延時間が生じている。例えば、前段のＭＬＵＴにおける演算が終了する前に、後段のＭＬＵＴが演算を開始すると、ＭＬＵＴにより構成される論理回路に、論理矛盾が生じる。
【００５３】
図５は、遅延素子のタイミングチャートである。図５に示す、ＭＬＵＴ３０Ａ〜３０Ｄは、図２に示すＭＬＵＴ３０Ａ〜３０Ｄのように配置される。この例では、ＭＬＵＴ３０Ａ〜Ｄは、時刻Ｔ１と時刻Ｔ２との間の時間（Ｉ３）の回路遅延が生じる。
【００５４】
ＭＬＵＴにアドレス信号が入力し、データが出力するために遅延時間（Ｉ３）が生じる。クロック信号の立ち上がり時の時刻Ｔ１に注目すると、ＭＬＵＴ３０Ａのデータ出力（Ｄａｔａ０）を、ＭＬＵＴ３０Ｂは、アドレス入力（Ａｄｄｒｅｓｓ０）として使用しており、この場合、論理矛盾は生じない。また、ＭＬＵＴ３０Ｂのデータ出力（Ｄａｔａ０）を、ＭＬＵＴ３０Ｃは、アドレス入力（Ａｄｄｒｅｓｓ０）として使用しており、この場合も、論理矛盾は生じない。
【００５５】
しかし、ＭＬＵＴ３０Ｄは、時刻Ｔ１では、アドレス入力（Ａｄｄｒｅｓｓ０）が入力されておらず、この時点で、同じクロック信号で、論理演算できていないことになる。そのため、遅延素子により、時間（Ｉ３）を各ＭＬＵＴ３０Ａ〜３０Ｄで遅延させることで、全て同期した処理が可能になる。
【００５６】
ＦＰＧＡは、回路規模に従って一意的に必要なＣＬＢ数が決まらないため、ＣＬＢで構成される論理時間遅延を考慮して可変な遅延量でクロックさせる必要がある。しかし、ＭＲＬＤは搭載する回路規模によらず、式１にあるように信号数により必要なＭＬＵＴの数が決まるので、ＦＰＧＡでの非同期設計のように、遅延量を、バッファ回路により緩和させることで対応する必要はなく、遅延量は、ＭＬＵＴ毎に固定値とすることができる。
【００５７】
以上説明したように、本実施形態に係るＭＲＬＤは、論理動作において、遅延による論理矛盾が生じないように、クロック信号線に遅延素子を設ける。これにより、システムクロックが、遅延素子により遅延し、前段のＭＬＵＴが論理演算を終了して、後段のＭＬＵＴにデータを伝送するので、論理矛盾が生じない。
【００５８】
２．３  出力バッファ
出力バッファ１３Ａおよび１３Ｃ（後述する第２例では、１３Ａ〜１３Ｄである。以下同じ）は、クロックに同期して、メモリセルユニットのデータ線からデータを読み出し、それを保持することで、ＦＦ（フリップフロップ）の機能を提供している。つまり、ＦＦのＱ出力を、Ｉ／Ｏバッファに維持し、その前段の論理回路と接続関係を、真理値表データで実現することで、同期メモリユニットから構成されるＭＬＵＴがＦＦ機能を提供できる。なお、出力バッファ１３Ａおよび１３Ｃは、メモリセルのビット線から出力される電圧を増幅するセンスアンプを含んでいる。なお、遅延素子から出力されるクロックを受け取る非同期ＭＬＵＴも同様に、Ｉ／Ｏバッファを有する。しかし、非同期ＭＬＵＴは、組合せ論理回路用に使用されるため、ＦＦを構成しないように使用される。同期動作については、「３．ＭＬＵＴの論理、接続、及び同期動作」で説明される。
【００５９】
出力バッファを用いた同期動作
同期設計では、その遅延時間を包括的にクロック期間に収まるように最大のクロック時間で同期させ、このようなタイミング制約内で、回路構成されるので、配線やＬＵＴの遅延時間が影響しないように見えている。このようにすると、ＦＰＧＡを構成するＬＵ（Ｌｏｇｉｃ Ｕｎｉｔ）単位で、クロックへの同期待ちが生じ、各同期待ち時間が、ＦＰＧＡ全体として直列的に付加されることで、ＦＰＧＡの動作速度が遅くなる。
【００６０】
ＭＲＬＤの同期設計では、同期用のメモリユニットに、非同期のメモリユニットと逆の向き（バックフォワードともいう）にクロックを入れて、配線遅延による誤動作を回避している。メモリＩＰのスペックから算出して、メモリデータがアクセスされる最大時間を遅延量としている。
【００６１】
図４Ｂは、同期動作、非同期動作切り替え可能なＭＬＵＴの回路図の第１例を示す図である。図４Ｂに示すＭＬＵＴ３０は、図４Ａに示すＭＬＵＴ３０と、選択部３６を有する点が異なり、その他の構成は同じであるので、説明を省略する。選択部３６は、遅延クロック信号と、システムクロック信号を選択することで、ＭＬＵＴを同期動作、非同期動作の切り替える機能を提供する。
【００６２】
このようにすることで、ＭＬＵＴアレイ６０の中間に位置するＭＬＵＴで、遅延クロックを選択することができる。
【００６３】
図４Ｃは、同期非同期切り替え可能なＭＬＵＴの回路図の第２例を示す図である。ＭＬＵＴ３０は、メモリセルユニット３１Ａ〜３１Ｄを有し、上段のメモリセルユニット３１Ａ、３１Ｃは、非同期動作用のメモリセルユニットであり、下段のメモリセルユニット３１Ｂ、３１Ｄは、同期動作用のメモリセルユニットである。図４Ａに示すＭＬＵＴ３０と、メモリセルユニット３１Ｂ、３１Ｄを有する点が異なり、その他の構成は同じである。
【００６４】
ＭＬＵＴ３０はさらに、アドレスデコーダ１１Ａ〜１１Ｄ、出力バッファ１３Ａ〜１３Ｄ、遅延素子３５Ａ、３５Ｂを有する。出力バッファ１３Ａ、１３Ｃが、遅延素子３５Ａ、３５Ｂで遅延された遅延クロックに同期して動作する。出力バッファ１３Ｂ、１３Ｄは、バックフォワードで入力するクロック（ＣＬＫ）に同期して動作する。このように、出力バッファ１３Ａ〜１３Ｄが動作することで、上段のメモリセルユニット３１Ａ、３１Ｃは、非同期動作し、下段のメモリセルユニット３１Ｂ、３１Ｄは、同期動作する。
【００６５】
このようにすることで、ＭＬＵＴ内のメモリセルユニットは増えるものの、第２例と同様に、同期動作、非同期動作切り替え可能なＭＬＵＴが実現される。ただし、以下に示すように、第１例とは、真理値表データが異なる。
【００６６】
２．４  同期非同期切り替え可能なＭＬＵＴ第２例用の真理値表データ
メモリセルユニット３１Ａ（３１Ｂ）は、一辺からのアドレスＡ０〜Ａ３により特定されて、アドレスＡ０〜Ａ３の２倍の数の第１出力データＤ０〜Ｄ７を出力する複数のメモリセルを有し、メモリセルユニット３１Ｃ（３１Ｄ）は、他辺からのアドレスＡ４〜Ａ７により特定されて、アドレスＡ４〜Ａ７の２倍の数の第２出力データＤ０〜Ｄ７を出力する複数のメモリセルを有する。ＭＬＵＴ３０はさらに、第１データ及び第２データの一部を、一辺へ出力するとともに、第１データ及び第２データの他の一部を、他辺へ出力する。各メモリセルユニットは、一方向毎に真理値表データをメモリセルに記憶する。そのため、メモリセルユニット３１Ａ及び３１Ｂの各々には、左から左方向用の真理値表データ、及び、左から右方向用の真理値表データを記憶する。すなわち、ＭＬＵＴは、それぞれが特定のデータ出力方向を規定する２つの真理値表データを記憶する。
【００６７】
本実施形態に係るＭＬＵＴは、双方向配置ＭＬＵＴであり、同期動作用のメモリセルユニット３１Ｂ、３１Ｄと、非同期動作用のメモリセルユニット３１Ａ、３１Ｃを備える。同期動作用のメモリセルユニット又は非同期動作用のメモリセルユニットは、ペアを構成するが、図４Ｃにおいて、隣接するＭＬＵＴ３０と入出力して、論理要素及び／又は接続要素として動作するメモリセルユニット３１Ａ、３１Ｂ（又は、３１Ｃ、３１Ｄ）は、上段又は下段にあるメモリセルユニットのうちの何れか１つである。そのため、メモリセルユニット３１Ａ、３１Ｂ（又は、３１Ｃ、３１Ｄ）のデータ出力を、ワイヤードオア接続、又は、ＯＲ回路で接続して、動作しないメモリセルユニットには、全て「０」のデータが格納される。
【００６８】
なお、メモリセルユニットのデータ出力は、図示のように、ワイヤードＯＲとしてもよいし、ＯＲ論理回路を設けてもよい。
【００６９】
また、双方向型ＭＬＵＴの特性として、禁止論理構成がある。表１に示す２つの真理値表を用いて、禁止論理の必要性を説明する。
【００７０】
【表１】
0006517626.tif 000002
【００７１】
真理値表１では、Ａ０，Ａ１を使用してＡＮＤ回路を構成し、Ｄ０に出力する真理値表が示される。真理値表２では、Ａ０，Ａ４を使用してＡＮＤ回路を構成し、Ｄ０に出力する真理値表が示される。真理値表１の場合の論理は、Ａ３−Ａ０使用のメモリセルユニット３１Ａだけで論理演算可能なので、他のメモリセルユニットに“０”を書き込んでいれば、ＯＲ演算により、他のメモリセルユニットの出力値の影響を受けないので、禁止論理の問題は生じない。
【００７２】
一方、真理値表２の論理の場合、Ａ３−Ａ０使用のメモリセルユニットはｃ，ｄの識別ができない。Ａ７−Ａ４使用のメモリセルユニットは、ｂ，ｄの識別ができない。このように、２つのメモリセルユニットをまたがる論理演算は、２つの真理値表では正しい値を得られないため、２つのメモリセルユニットを跨ぐ論理演算を、禁止論理としている。よって、論理構成する場合、各メモリセルユニット内部で、論理を実現する必要がある。そのため、本実施形態に係る真理値表データでは、上記禁止論理を生じないように生成される。但し、禁止された論理は、他のＭＬＵＴで実現可能である。
【００７３】
図６は、ＭＲＬＤにおける遅延素子の配置を示す図である。図示されるＭＲＬＤは、図４Ｃに示すＭＬＵＴ３０が、２×３で配置されたＭＬＵＴブロック６１を構成し、さらに、その構成が上下に設けられている。なお、図６では、図４Ｃに示すＭＬＵＴを用いているが、図４Ａ又は図４Ｂに示すＭＬＵＴであってもよい。ＭＬＵＴブロック６１の左右にクロック・ツリーを設けて、上下でのクロック時間を補正する。クロック信号線上には、信号電圧を維持するためにバッファ回路３４Ａ〜３４Ｅが設けられる。ＭＬＵＴブロック６１の左右のクロック・ツリーを同時間でクロックするために、メインのクロック・ツリーを構築する。非同期用のメモリユニット（メモリセルユニット３１Ａ、３１Ｃおよびその周辺回路）は、左右のクロック・ツリーから出力されるクロックを、遅延素子３５により遅延させた信号をクロックとして利用する。
【００７４】
遅延素子３５Ａ〜３５Ｌは、所定の遅延量とするために、各々が非同期用のメモリユニット毎に配置されている。例えば、遅延素子３５Ａは、メモリセルユニット３１Ａ用に設けられている。さらに、クロック信号の入力が、非同期用のメモリユニットは、フィードフォワード、同期用のメモリユニットは、その逆向きのバックフォワードで入力されている。フィードフォワードは、遅延素子により遅延させた遅延クロックでクロックして行くことを意味し、ＭＬＵＴの遅延量を考慮して、データ出力の方向と同じ方向に、本例では、左から右へ（または右から左へ）クロックを伝搬させることを指す。それによりＭＬＵＴの論理値を確定させてから出力して論理動作をさせる。このことにより組み合わせ回路や配線動作を行わせることが可能となる。
【００７５】
バックフォワードはこの逆で、論理確定しなくとも出力させてその状態の論理値を確定させる。そのために、クロックを遅延させず、データ出力の方向と反対方向で、本例では、右から左へ（または左から右へ）クロックを伝搬させる。言い換えれば、クロックをアドレス信号の流れと同じ方向から伝搬させる。このように構成すると、クロックの配線遅延が、生じるという課題があるため、信号の流れと逆方向でクロックを伝搬させる。
【００７６】
図７は、同期回路を適用したＭＬＵＴアレイの例である。なお、メモリセルユニットの同期動作は、「３．ＭＬＵＴの論理、接続、及び同期動作」で説明する。
【００７７】
なお、ＡＴＤ（Ａｄｄｒｅｓｓ  Ｔｒａｎｓｉｔｉｏｎ  Ｄｅｔｅｃｔｏｒ）回路により、システムクロックより高周波のクロックを生成し、高周波クロックで動作させるとともに、アドレス遷移が無い場合、出力バッファに保持するビットを出力し、アドレス遷移がある場合、デコーダを動作させて、出力バッファを書き換える動作により、非同期用のＭＬＵＴを提供することも可能である。しかし、アドレス遷移回路により出力ばらつきが生じるため、「動作禁止時間」を設ける必要があり、加えて、回路規模が、信号遅延素子遅延と比して大きく、近年の回路の微細化の観点では好ましくないため、本実施形態では、ＡＴＤ回路を採用していない。
【００７８】
３．ＭＬＵＴの論理、接続、及び同期動作
以下、ＭＬＵＴの論理、接続、及び同期動作を、例を用いて説明する。なお、上記においては、ＭＬＵＴ３０のアドレスはＡ０〜Ａ７、および、出力データは、Ｄ０〜Ｄ７でそれぞれ、８つのアドレス又はデータがあったが、ここでは、説明の簡易化のために、４つのアドレス又はデータで説明する。
【００７９】
図８は、ＭＬＵＴの一例を示す図である。図８に示すＭＬＵＴ３０ａ、３０ｂは、４つのアドレスＡ０〜Ａ３と、４つの出力データＤ０〜Ｄ３に接続される。ＭＬＵＴ３０ａのアドレスＡ２は、隣接するＭＬＵＴ３０ｂの出力データＤ０と接続しており、ＭＬＵＴ３０ａは、ＭＬＵＴ３０ｂから出力される論理用データを、論理用アドレス入力として受け取る。また、ＭＬＵＴ３０ａの出力データＤ２は、ＭＬＵＴ３０ｂのアドレスＡ０と接続しており、ＭＬＵＴ３０ａが出力する論理用データは、ＭＬＵＴ３０ｂで論理用アドレス入力として受け取られる。
以下に示す回路構成をＭＬＵＴで実現するための構成データ（真理値表データ）は、図８に示すＭＬＵＴ３０ａ又は３０ｂのものである。
【００８０】
Ａ．論理回路を構成する真理値表データ
図９は、論理回路として動作するＭＬＵＴの一例を示す図である。本例では、アドレスＡ０及びＡ１を２入力ＮＯＲ回路７０１の入力とし、アドレスＡ２及びＡ３を２入力ＮＡＮＤ回路７０２の入力とする。そして、２入力ＮＯＲ回路７０１の出力と、２入力ＮＡＮＤ回路７０２の出力を、２入力ＮＡＮＤ回路７０３に入力し、２入力ＮＡＮＤ回路７０３の出力を出力データＤ０に出力する論理回路を構成する。
【００８１】
図１０は、図９に示す論理回路の真理値表を示す図である。図９の論理回路は、４入力のため、入力Ａ０〜Ａ３の全ての入力を入力として使用する。一方、出力は、１つのみなので、出力Ｄ０のみを出力として使用する。真理値表の出力Ｄ１〜Ｄ３の欄には「＊」が記載されている。これは、「０」又は「１」のいずれの値でもよいことを示す。しかしながら、実際に再構成のために真理値表データをＭＬＵＴに書き込むときには、これらの欄には、「０」又は「１」のいずれかの値を書き込む必要がある。
【００８２】
Ｂ．接続回路を構成する真理値表データ
図１１は、接続回路として動作するＭＬＵＴの一例を示す図である。図１１では、接続回路としてのＭＬＵＴは、アドレスＡ０の信号を出力データＤ１に出力し、アドレスＡ１の信号を出力データＤ２に出力し、アドレスＡ２の信号を出力データＤ３に出力するように動作する。接続回路としてのＭＬＵＴはさらに、アドレスＡ３の信号を出力データＤ０に出力するように動作する。
【００８３】
図１２は、図１１に示す接続回路の真理値表を示す図である。図１１に示す接続回路は、４入力４出力である。したがって、アドレスＡ０〜Ａ３の全ての入力と、出力データＤ０〜Ｄ３の全ての出力が使用される。図１２に示す真理値表によって、ＭＬＵＴは、アドレスＡ０の信号を出力データＤ１に出力し、アドレスＡ１の信号を出力データＤ２に出力し、アドレスＡ２の信号を出力データＤ３に出力し、アドレスＡ３の信号を出力データＤ０に出力する接続回路として動作する。
【００８４】
Ｃ．論理回路と接続回路を構成する真理値表データ
図１３は、１つのＭＬＵＴが、論理回路及び接続回路として動作する一例を示す図である。図１３に示す例では、アドレスＡ０及びＡ１を２入力ＮＯＲ回路１７１の入力とし、２入力ＮＯＲ回路１７１の出力と、アドレスＡ２とを２入力ＮＡＮＤ回路１７２の入力とし、２入力ＮＡＮＤ回路１７２の出力を出力データＤ０に出力する論理回路を構成する。また同時に、アドレスＡ３の信号を出力データＤ２に出力する接続回路を構成する。
【００８５】
図１４に、図１３に示す論理回路及び接続回路の真理値表を示す。図１３の論理回路は、アドレスＡ０〜Ａ３の３つの入力を使用し、１つの出力データＤ０を出力として使用する。一方、アドレスＡ３の信号を出力データＤ２に出力する接続回路が構成される。
【００８６】
Ｄ．順序回路機能
順序回路は、組合せ回路のように、構成メモリに保持される真理値表データそのもので、その動作を記述できない。本実施形態では、順序回路は、出力バッファ１３の機能を用いて実現する。Ｄ型フリップフロップは、同期動作するメモリセルユニットの出力に対して、以下のような真理値表を構成する。
【００８７】
【表２】
0006517626.tif 000003
【００８８】
４．真理値表データの生成方法
本実施形態を用いて説明した再構成可能な半導体装置に適用される真理値表データは、論理構成用のソフトウェアプログラムを実行する情報処理装置によって生成される。
【００８９】
図１５に、情報処理装置のハードウェア構成の一例を示す。情報処理装置２１０は、プロセッサ２１１と、入力部２１２と、出力部２１３と、記憶部２１４とドライブ装置２１５を有する。プロセッサ２１１は、入力部２１２に入力された配置・配線用のソフトウェア、集積回路を設計するためのＣ言語記述またはハードウェア記述言語（ＨＤＬ）などの回路記述言語、及び、上記ソフトウェアを実行することによって生成される真理値表データを記憶部２１４に記憶する。また、プロセッサ２１１は、配置・配線用のソフトウェアを実行して、記憶部２１４に記憶された回路記述に対して配置・配線の処理を行い、出力部２１３に、真理値表データを出力する。出力部２１３には、再構成可能な半導体装置であるＭＲＬＤ２０（図１６には示さず）を接続することができ、プロセッサ２１１が論理構成処理を実行して、生成した真理値表データを、出力部２１３を介してＭＲＬＤ２０に書き込む。出力部２１３は、外部ネットワークと接続していてもよい。この場合、論理構成用のソフトウェアプログラムは、ネットワークを介して送受信される。ドライブ装置２１５は、例えば、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、フラッシュメモリなどの記憶メディア２１７を読み書きする装置である。ドライブ装置２１５は、記憶媒体２１７を回転させるモータや記憶媒体２１７上でデータを読み書きするヘッド等を含む。なお、記憶媒体２１７は、論理構成用のプログラム、又は、真理値表データを格納することができる。ドライブ装置２１５は、セットされた記憶媒体２１７からプログラムを読み出す。プロセッサ２１１は、ドライブ装置２１５により読み出されたプログラム又は真理値表データを、記憶部２１４に格納する。
【００９０】
真理値表データがＭＲＬＤ２０に読み込まれることにより、プログラムとしての真理値表データとハードウェア資源とが協働した具体的手段によって、論理要素及び／又は接続要素としての機能が構築される。また、真理値表データは、真理値表という論理的構造を示す構造を有するデータともいえる。
【００９１】
以上説明した実施形態は典型例として挙げたに過ぎず、その各実施形態の構成要素の組合せ、変形及びバリエーションは当業者にとって明らかであり、当業者であれば本発明の原理及び請求の範囲に記載した発明の範囲を逸脱することなく上述の実施形態の種々の変形を行えることは明らかである。特に、ＭＲＬＤの論理又は接続動作において、双方向ＭＬＵＴを、多方向ＭＬＵＴの動作とすることは実施形態の変更として可能である。
【符号の説明】
【００９２】
１１    アドレスデコーダ
１３    出力バッファ
２０    ＭＲＬＤ
２２    行デコーダ
２４    列デコーダ
３０    ＭＬＵＴ
３１    メモリセルユニット
３４    バッファ回路
３５    遅延素子
６０    ＭＬＵＴアレイ
ＬＡ    論理用アドレス
ＬＤ    論理用データ
ＡＤ    メモリ動作用アドレス
ＷＤ    書込用データ
ＲＤ    読出用データ
【図１】
0006517626.tif 000004
【図２】
0006517626.tif 000005
【図３】
0006517626.tif 000006
【図４Ａ】
0006517626.tif 000007
【図４Ｂ】
0006517626.tif 000008
【図４Ｃ】
0006517626.tif 000009
【図５】
0006517626.tif 000010
【図６】
0006517626.tif 000011
【図７】
0006517626.tif 000012
【図８】
0006517626.tif 000013
【図９】
0006517626.tif 000014
【図１０】
0006517626.tif 000015
【図１１】
0006517626.tif 000016
【図１２】
0006517626.tif 000017
【図１３】
0006517626.tif 000018
【図１４】
0006517626.tif 000019
【図１５】
0006517626.tif 000020