(57)【要約】  メモリセルを複数備えた記憶部を複数有する半導体装置の論理構成方法であって、それぞれの記憶部は、アドレス入力に対して論理値を出力するための真理値表データをそのメモリセルに記憶し、論理回路として動作するように構成され、記憶部は、入力線および出力線の対を２のｎ倍（ｎは２以上の整数）本有し、記憶部同士は、１つの記憶部からの２のｎ倍本の出力線が、他の２つの記憶部のｎ本の入力線に接続され、論理構成方法は、回路構成を記述した回路記述に基づいて、回路の接続情報を有するネットリストを生成し、ネットリストから、論理コーンを抽出し、論理コーンに対する入力線の数を２分のｎで除算した数に相当する記憶部の段数で、論理コーンを構成する複数の記憶部のための真理値表データを、生成する論理構成方法が提供される。
2014080872.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶するメモリセルを複数備えた記憶部を複数有する半導体装置の論理構成方法であって、
それぞれの前記記憶部は、アドレス入力に対して論理値を出力するための真理値表データをそのメモリセルに記憶し、論理回路として動作するように構成され、
前記記憶部は、入力線および出力線の対を少なくとも２のｎ倍（ｎは２以上の整数）本有し、
前記記憶部同士は、１つの記憶部からの２のｎ倍本の出力線が、他の２つの記憶部のｎ本の入力線に接続され、
前記論理構成方法は、
回路構成を記述した回路記述に基づいて、回路の接続情報を有するネットリストを生成し、
前記ネットリストから、順序回路を含んで成る論理コーンを抽出し、
前記論理コーンに対する入力線の数を２分のｎで除算した数に相当する前記記憶部の段数で、前記論理コーンを構成する複数の前記記憶部のための前記真理値表データを、生成することを特徴とする再構成可能な半導体装置の論理構成方法。
【請求項２】
前記ネットリストの生成は、高級言語で記述されたプログラムの中の変数ビットを、より小さいビットに型変換するステップを含む、請求項１に記載の論理構成方法。
【請求項３】
前記記憶部は、一辺と、前記一辺と反対側の他辺で他の記憶部に接続するとともに、複数のメモリセルユニットを有し、且つ、
前記複数のメモリセルユニットの少なくとも１つが有する複数のメモリセルは、前記一辺におけるアドレス入力に対して、前記一辺から論理値を出力するための第１真理値表データと前記他辺から論理値を出力するための第２真理値表データとを記憶し、
前記真理値表データを生成するステップは、前記第１真理値表データと、前記第２真理値表データを生成するステップを含む、請求項１又は２に記載の論理構成方法。
【請求項４】
前記ネットリストの生成は、高級言語で記述されたプログラムに対して、ループ展開、及び／又は、並列化処理するステップを含む、請求項１〜３の何れか１項に記載の論理構成方法。
【請求項５】
前記ネットリストから、スキャン化可能な順序回路データセットを抽出して、スキャン化された順序回路データセットを生成し、
前記スキャン化できる順序回路データセットから、前記複数のメモリセルユニットのうち第１セットに書き込むための第１真理値表データセットを生成し、
前記ネットリストの組合せ論理回路データセットから、前記複数のメモリセルユニットのうち第２セットに書き込むための第２真理値表データセットを生成する、請求項１〜４の何れか１項に記載の論理構成方法。
【請求項６】
前記半導体装置は、前記記憶部とともに、順序回路要素を有する論理部を、複数個有し、  前記論理構成方法は、
回路構成を記述した回路記述から、論理回路データ、順序回路データ、及び、前記論理回路データと順序回路データの接続情報を記述するネットリストを生成し、
前記生成したネットリストから、前記接続情報に従って、前記論理回路データと前記順序回路データをそれぞれ前記メモリセル及び論理回路要素に割り当てる、請求項１〜５の何れか１項に記載の論理構成方法。
これにより、端子に基づく結線で配置配線するのではなく、論理回路及び順序回路の接続情報などのデバイスレベルで配置配線することで、デバイスによる回路の簡略化や回路ブロックの再構成が容易にすることができる。
【請求項７】
前記半導体装置は、前記論理部の外部に、スイッチ要素を有し、
前記スイッチ要素に前記ネットリストの接続情報を割り当てることをさらに有する、請求項６の論理構成方法。
【請求項８】
前記記憶部のメモリセルは、あるアドレスで特定された入力値を、他の論理部の記憶部に出力するように構成される真理値表データを書き込むと、接続要素として動作し、
前記記憶部に前記ネットリストの接続情報を割り当てることをさらに有する、請求項６又は７に記載の論理構成方法。
【請求項９】
前記ネットリストを生成した後に、順序回路データを削除し、
前記生成したネットリストから、前記接続情報に従って、前記論理回路データを前記メモリセルに割り当てた後に、前記順序回路データを論理回路要素に割り当てる、請求項６〜８の何れか１項に記載の論理構成方法。
【請求項１０】
前記ネットリスト生成ステップは、論理回路データ、順序回路データ、及び、前記論理回路データを含む並列入力直列出力形のシフトレジスタを生成することを含む、請求項６〜９の何れか１項に記載の論理構成方法。
【請求項１１】
前記順序回路要素は、前記記憶部から読み出したデータを保持するとともに、クロックに同期して保持したデータを出力する順序回路である、請求項６〜１０の何れか１項に記載の論理構成方法。
【請求項１２】
データを記憶するメモリセルを複数備えた記憶部を複数有する半導体装置の論理構成を行う論理構成装置であって、
前記半導体装置は、それぞれの前記記憶部は、アドレス入力に対して論理値を出力するための真理値表データをそのメモリセルに記憶し、論理回路として動作するように構成され、
前記記憶部は、入力線および出力線の対を少なくとも２のｎ倍（ｎは２以上の整数）本有し、
前記記憶部同士は、１つの記憶部からの２のｎ倍本の出力線が、他の２つの記憶部のｎ本の入力線に接続され、
前記論理構成装置は、プロセッサを備え、
前記プロセッサは、
回路構成を記述した回路記述に基づいて、回路の接続情報を有するネットリストを生成し、
前記ネットリストから、順序回路を含んで成る論理コーンを抽出し、
前記論理コーンに対する入力線の数を２分のｎで除算した数に相当する記憶部の段数で、前記論理コーンを構成する複数の前記記憶部のための前記真理値表データを、生成するように構成される、ことを特徴とする論理構成装置。
【請求項１３】
前記ネットリストの生成は、高級言語で記述されたプログラムの中の変数ビットを、より小さいビットに型変換することを含む、請求項１２に記載の論理構成装置。
【請求項１４】
前記記憶部は、一辺と、前記一辺と反対側の他辺で他の記憶部に接続するとともに、複数のメモリセルユニットを有し、且つ、
前記複数のメモリセルユニットの少なくとも１つが有する複数のメモリセルは、前記一辺におけるアドレス入力に対して、前記一辺から論理値を出力するための第１真理値表データと前記他辺から論理値を出力するための第２真理値表データとを記憶し、
前記真理値表データを生成することは、前記第１真理値表データと、前記第２真理値表データを生成することを含む、請求項１２又は１３に記載の論理構成装置。
【請求項１５】
前記ネットリストの生成は、高級言語で記述されたプログラムに対して、ループ展開、及び／又は、並列化処理することを含む、請求項１２〜１４の何れか１項に記載の論理構成装置。
【請求項１６】
前記プロセッサは、前記ネットリストから、スキャン化可能な順序回路データセットを抽出して、スキャン化された順序回路データセットを生成し、
前記スキャン化できる順序回路データセットから、前記複数のメモリセルユニットのうち第１セットに書き込むための第１真理値表データセットを生成し、
前記ネットリストの組合せ論理回路データセットから、前記複数のメモリセルユニットのうち第２セットに書き込むための第２真理値表データセットを生成するように構成される、請求項１２〜１５の何れか１項に記載の論理構成装置。
【請求項１７】
前記半導体装置は、前記記憶部とともに、順序回路要素を有する論理部を、複数個有し、
前記プロセッサは、
回路構成を記述した回路記述から、論理回路データ、順序回路データ、及び、前記論理回路データと順序回路データの接続情報を記述するネットリストを生成し、
前記生成したネットリストから、前記接続情報に従って、前記論理回路データと前記順序回路データをそれぞれ前記メモリセル及び論理回路要素に割り当てる、請求項１２〜１６の何れか１項に記載の論理構成装置。
【請求項１８】
前記半導体装置は、論理部の外部に、スイッチ要素を有し、
前記スイッチ要素に前記ネットリストの接続情報を割り当てることをさらに有する、請求項１７の論理構成装置。
【請求項１９】
前記記憶部のメモリセルは、あるアドレスで特定された入力値を、他の論理部の記憶部に出力するように構成される真理値表データを書き込むと、接続要素として動作し、
前記プロセッサは、前記記憶部に前記ネットリストの接続情報を割り当てるように構成される、請求項１７又は１８に記載の論理構成方法。
【請求項２０】
前記プロセッサは、
前記ネットリストを生成した後に、順序回路データを削除し、
前記生成したネットリストから、前記接続情報に従って、前記論理回路データを前記メモリセルに割り当てた後に、前記順序回路データを論理回路要素に割り当てるように構成される、請求項１７〜１９の何れか１項に記載の論理構成方法。
【請求項２１】
前記ネットリスト生成は、論理回路データ、順序回路データ、及び、前記論理回路データを含む並列入力直列出力形のシフトレジスタを生成することを含む、請求項１７〜２０の何れか１項に記載の論理構成装置。
【請求項２２】
前記順序回路要素は、前記記憶部から読み出したデータを保持するとともに、クロックに同期して保持したデータを出力する順序回路である、請求項１７〜２１の何れか１項に記載の論理構成装置。
【請求項２３】
データを記憶するメモリセルを複数備えた記憶部を複数有する半導体装置の論理構成を行うのためのプログラムであって、
前記半導体装置は、それぞれの前記記憶部は、アドレス入力に対して論理値を出力するための真理値表データをそのメモリセルに記憶し、論理回路として動作するように構成され、
前記記憶部は、入力線および出力線の対を少なくとも２のｎ倍（ｎは２以上の整数）本有し、
前記記憶部同士は、１つの記憶部からの２のｎ倍本の出力線が、他の２つの記憶部のｎ本の入力線に接続され、
前記プロセッサに、
回路構成を記述した回路記述に基づいて、回路の接続情報を有するネットリストを生成する処理、
前記ネットリストから、順序回路を含んで成る論理コーンを抽出する処理、
前記論理コーンに対する入力線の数を２分のｎで除算した数に相当する前記記憶部の段数で、前記論理コーンを構成する複数の前記記憶部のための前記真理値表データを、生成する処理を実行させることを特徴とするプログラム。
【請求項２４】
前記ネットリストの生成は、高級言語で記述されたプログラムの中の変数ビットを、より小さいビットに型変換することを含む、請求項２３に記載のプログラム。
【請求項２５】
前記記憶部は、一辺と、前記一辺と反対側の他辺で他の記憶部に接続するとともに、複数のメモリセルユニットを有し、且つ、
前記複数のメモリセルユニットの少なくとも１つが有する複数のメモリセルは、前記一辺におけるアドレス入力に対して、前記一辺から論理値を出力するための第１真理値表データと前記他辺から論理値を出力するための第２真理値表データとを記憶し、
前記真理値表データを生成する処理は、前記第１真理値表データと、前記第２真理値表データを生成する処理を含む、請求項２３又は２４に記載のプログラム。
【請求項２６】
前記ネットリストの生成は、高級言語で記述されたプログラムに対して、ループ展開、及び／又は、並列化処理することを含む、請求項２３〜２５の何れか１項に記載のプログラム。
【請求項２７】
前記ネットリストから、スキャン化可能な順序回路データセットを抽出して、スキャン化された順序回路データセットを生成する処理、
前記スキャン化できる順序回路データセットから、前記複数のメモリセルユニットのうち第１セットに書き込むための第１真理値表データセットを生成する処理、
前記ネットリストの組合せ論理回路データセットから、前記複数のメモリセルユニットのうち第２セットに書き込むための第２真理値表データセットを生成する処理、を実行させる請求項２３〜２６の何れか１項に記載のプログラム。
【請求項２８】
前記半導体装置は、前記記憶部とともに、順序回路要素を有する論理部を、複数個有し、
前記プロセッサに、
回路構成を記述した回路記述から、論理回路データ、順序回路データ、及び、前記論理回路データと順序回路データの接続情報を記述するネットリストを生成する処理、
前記生成したネットリストから、前記接続情報に従って、前記論理回路データと前記順序回路データをそれぞれ前記メモリセル及び論理回路要素に割り当てる処理を実行させる、請求項２３〜２７プログラム。
【請求項２９】
前記半導体装置は、論理部の外部に、スイッチ要素を有し、
前記プログラムは、前記スイッチ要素に前記ネットリストの接続情報を割り当てる処理を実行させる、請求項２８に記載のプログラム。
【請求項３０】
前記記憶部のメモリセルは、あるアドレスで特定された入力値を、他の論理部の記憶部に出力するように構成される真理値表データを書き込むと、接続要素として動作し、
前記プロセッサは、前記記憶部に前記ネットリストの接続情報を割り当てる処理を実行させる、請求項２８又は２９に記載のプログラム。
【請求項３１】
前記プロセッサに、
前記ネットリストを生成した後に、順序回路データを削除し、
前記生成したネットリストから、前記接続情報に従って、前記論理回路データを前記メモリセルに割り当てた後に、前記順序回路データを論理回路要素に割り当てる、処理を実行させる請求項２８〜３０の何れか１項に記載の論理構成方法。
【請求項３２】
前記ネットリスト生成は、論理回路データ、順序回路データ、及び、前記論理回路データを含む並列入力直列出力形のシフトレジスタを生成する処理を含む、請求項２８〜３１の何れか１項に記載のプログラム。
【請求項３３】
前記順序回路要素は、前記記憶部から読み出したデータを保持するとともに、クロックに同期して保持したデータを出力する順序回路である、請求項２３〜３２の何れか１項に記載のプログラム。
【請求項３４】
請求項２３〜３３の何れか１項に示すプログラムを格納する記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能な半導体装置の論理構成方法、そのプログラム、及び論理構成装置に関する。
【背景技術】
【０００２】
ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などの再構成可能（プログラム可能、又は、書込み可能）な半導体装置（「再構成デバイス」ともいう）は、その再書込み可能性によって与えられる柔軟性のため、広く使用されている（例えば、特許文献１）。【０００３】
一般的なアイランドスタイルＦＰＧＡは、論理要素ＣＬＢ（Ｃｏｎｆｉｇｕｒａｂｌｅ  Ｌｏｇｉｃ  Ｂｌｏｃｋｓ）、スイッチ要素ＳＢ、ＣＢ、入出力要素ＩＯＢから構成されている。【０００４】
論理要素ＣＬＢは、組み合わせ回路を実現するプログラマブルな要素であり、ＣＬＢの各々は、データフリップフロップ（ＤＦＦ）や、ＬＵＴ（Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）等から構成される。ｋ入力のＬＵＴ（ｋ−ＬＵＴ）は２のｋ乗個のＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）セルが使われ、ｋ変数の関数を実現する。例えば、任意の論理関数の真理値表をＳＲＡＭに保持し、入力に応じて真理値表を参照して出力を行う方式である。【０００５】
また、論理機能部分をリンクさせるＣＬＢ間に信号経路を発生させるため、ＣＬＢ間には、信号経路を切り替え可能なスイッチ要素ＣＢ、ＳＢが配置される。スイッチ要素ＣＢは、論理ブロックＬＢと配線チャネルとの間に設定する要素であり、スイッチ要素ＳＢは、縦方向と横方向の配線が交差する部分において縦横の配線間の設定を行う要素である。【０００６】
入出力要素ＩＯＢとは、デバイスの入出力と論理要素ＬＢとの間のインターフェースの役割を担う構成要素である。【０００７】
出願人又は発明者は、メモリセルユニットで回路構成を実現する「ＭＰＬＤ（Ｍｅｍｏｒｙ−ｂａｓｅｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）」（登録商標）を開発している。ＭＰＬＤは、例えば、下記特許文献１に示される。ＭＰＬＤは、ＭＬＵＴ（Ｍｕｌｔｉ  Ｌｏｏｋ−Ｕｐ−Ｔａｂｌｅ）と呼ぶメモリアレイを相互に接続する。ＭＬＵＴは真理値データを格納して、配線要素と論理要素を構成する。ＭＰＬＤは、このＭＬＵＴをアレイ状に並べ、相互接続することによってＦＰＧＡとほぼ同等の機能を実現している。また、ＭＰＬＤは、真理値表データにより、ＭＬＵＴを論理要素と配線要素の双方として使用することによって、論理領域と配線領域に柔軟性をもたせたデバイスであり（例えば、特許文献２）、メモリセルユニット間の接続に専用の切り替え回路を有するＦＰＧＡと異なる。【０００８】
ＦＰＧＡについての最適配置、配線方法については既に検討されている（特許文献３）。ＭＰＬＤの論理構成の場合、ＭＬＵＴは論理要素及び／又は接続要素として動作するので、ＭＬＵＴへの真理値表データの書込が、論理動作の配置、及び／又は、ＭＬＵＴ間の配線を意味する。そのため、ＭＬＵＴに書き込むための真理値表データの生成が、ＭＰＬＤの「配置・配線」に相当する。【０００９】
ＭＰＬＤの論理構成方法は、開示されている（特許文献４、図４３）。しかしながら、開示の記載は、ＭＬＵＴの入出力数を、ＡＤ対（ＭＬＵＴ同士を連結するとともに、１対のアドレス線と、データ線）の数未満にすること等、一般的な記載にとどまる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】国際公開第２００２／５３８６５２号
【特許文献２】国際公開第２００７／０６０７６３号
【特許文献３】特開２０１０−２３９３２５号公報
【特許文献４】国際公開第２０１１／１６２１１６号
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上記のように、ＦＰＧＡ、及びＭＰＬＤについての最適配置、配線方法は全く開示されていない。ＭＰＬＤは、配線要素と論理要素を同じＭＬＵＴで実現することから、回路を構成する際に論理セルの配置を工夫することで、配線要素として使用するＭＬＵＴ数を減らすことができる。つまり、最適配置、配線できていない場合、使用するＭＬＵＴ数が増えるので、最適配置、配線により、小規模なＭＰＬＤで所望の機能を実現できる。しかし、ＭＰＬＤは配線要素と論理要素を同じメモリセルユニットであるＭＬＵＴで実現することから、論理と、配線が異なる回路ユニットにより実現されるＦＰＧＡの論理構成ツールのアルゴリズムは使用できない。このような状況から、ＭＰＬＤ向けの論理構成手法が必要になる。
【課題を解決するための手段】
【００１２】
上記課題を解決する形態は、以下の項目により示される。【００１３】
１．データを記憶するメモリセルを複数備えた記憶部を複数有する再構成可能な半導体装置の論理構成方法であって、
それぞれの前記記憶部は、アドレス入力に対して論理値を出力するための真理値表データをそのメモリセルに記憶し、論理回路として動作するように構成され、
前記記憶部は、入力線および出力線の対を少なくとも２のｎ倍（ｎは２以上の整数）本有し、
前記記憶部同士は、１つの記憶部からの２のｎ倍本の出力線が、他の２つの記憶部のｎ本の入力線に接続され、
前記論理構成方法は、
回路構成を記述した回路記述に基づいて、回路の接続情報を有するネットリストを生成し、
前記ネットリストから、順序回路を含んで成る論理コーンを抽出し、
前記論理コーンに対する入力線の数を２分のｎで除算した数に相当する前記記憶部の段数で、前記論理コーンを構成する複数の前記記憶部のための前記真理値表データを、生成することを特徴とする再構成可能な半導体装置の論理構成方法。
２．前記ネットリストの生成は、高級言語で記述されたプログラムの中の変数ビットを、より小さいビットに型変換するステップを含む、項目１に記載の論理構成方法。
３．前記記憶部は、一辺と、前記一辺と反対側の他辺で他の記憶部に接続するとともに、複数のメモリセルユニットを有し、且つ、
前記複数のメモリセルユニットの少なくとも１つが有する複数のメモリセルは、前記一辺におけるアドレス入力に対して、前記一辺から論理値を出力するための第１真理値表データと前記他辺から論理値を出力するための第２真理値表データとを記憶し、
前記真理値表データを生成するステップは、前記第１真理値表データと、前記第２真理値表データを生成するステップを含む、項目１又は２に記載の論理構成方法。
４．前記ネットリストの生成は、高級言語で記述されたプログラムに対して、ループ展開、及び／又は、並列化処理するステップを含む、項目１〜３の何れか１項に記載の論理構成方法。
５．前記ネットリストから、スキャン化可能な順序回路データセットを抽出して、スキャン化された順序回路データセットを生成し、
前記スキャン化できる順序回路データセットから、前記複数のメモリセルユニットのうち第１セットに書き込むための第１真理値表データセットを生成し、
前記ネットリストの組合せ論理回路データセットから、前記複数のメモリセルユニットのうち第２セットに書き込むための第２真理値表データセットを生成する、項目１〜４の何れか１項に記載の論理構成方法。【００１４】
特許文献３に示されるように、通常、配置配線では、論理回路の構造から、ゲート・レベルに展開して、展開したゲート素子をランダムに配置し、配置した複数のゲート素子を接続する。そして、ゲート展開によって、使用ＣＬＢ数や動作速度が操作変数とする繰り返しの最適化処理により、論理要素ＣＬＢの数を最小化する。【００１５】
論理回路ミュレーションではネットリストのようなデバイスとデバイスをノードの結線情報で表示するのではなく端子名を使い結線情報を表示する手法を使用している。本実施形態に係る論理構成方法は、端子に基づく結線で配置配線するのではなく、論理回路及び順序回路の接続情報などを論理素子やＦＦなどのデバイスレベルでネットリスト情報を持たせ配置配線することで、端子名とノードを対応させたデータを保持し、変更後の確認が容易になり、また、デバイスによる回路の簡略化や回路ブロックの再構成が容易になる。【００１６】
上記課題を解決する形態は、以下の項目により示される。
６．前記半導体装置は、前記記憶部とともに、順序回路要素を有する論理部を、複数個有し、  前記論理構成方法は、
回路構成を記述した回路記述から、論理回路データ、順序回路データ、及び、前記論理回路データと順序回路データの接続情報を記述するネットリストを生成し、
前記生成したネットリストから、前記接続情報に従って、前記論理回路データと前記順序回路データをそれぞれ前記メモリセル及び論理回路要素に割り当てる、項目１〜５の何れか１項に記載の論理構成方法。【００１７】
これにより、端子に基づく結線で配置配線するのではなく、論理回路及び順序回路の接続情報などのデバイスレベルで配置配線することで、デバイスによる回路の簡略化や回路ブロックの再構成が容易にすることができる。
７．前記半導体装置は、前記論理部の外部に、スイッチ要素を有し、
前記スイッチ要素に前記ネットリストの接続情報を割り当てることをさらに有する、項目６の論理構成方法。
８．前記記憶部のメモリセルは、あるアドレスで特定された入力値を、他の論理部の記憶部に出力するように構成される真理値表データを書き込むと、接続要素として動作し、
前記記憶部に前記ネットリストの接続情報を割り当てることをさらに有する、項目６又は７に記載の論理構成方法。
９．前記ネットリストを生成した後に、順序回路データを削除し、
前記生成したネットリストから、前記接続情報に従って、前記論理回路データを前記メモリセルに割り当てた後に、前記順序回路データを論理回路要素に割り当てる、項目６〜８の何れか１項に記載の論理構成方法。
１０．前記ネットリスト生成ステップは、論理回路データ、順序回路データ、及び、前記論理回路データを含む並列入力直列出力形のシフトレジスタを生成することを含む、項目６〜９の何れか１項に記載の論理構成方法。
１１．前記順序回路要素は、前記記憶部から読み出したデータを保持するとともに、クロックに同期して保持したデータを出力する順序回路である、項目６〜１０の何れか１項に記載の論理構成方法。【００１８】
１２．データを記憶するメモリセルを複数備えた記憶部を複数有する再構成可能な半導体装置の論理構成を行う論理構成装置であって、
前記半導体装置は、それぞれの前記記憶部は、アドレス入力に対して論理値を出力するための真理値表データをそのメモリセルに記憶し、論理回路として動作するように構成され、
前記記憶部は、入力線および出力線の対を少なくとも２のｎ倍（ｎは２以上の整数）本有し、
前記記憶部同士は、１つの記憶部からの２のｎ倍本の出力線が、他の２つの記憶部のｎ本の入力線に接続され、
前記論理構成装置は、プロセッサを備え、
前記プロセッサは、
回路構成を記述した回路記述に基づいて、回路の接続情報を有するネットリストを生成し、
前記ネットリストから、順序回路を含んで成る論理コーンを抽出し、
前記論理コーンに対する入力線の数を２分のｎで除算した数に相当する記憶部の段数で、前記論理コーンを構成する複数の前記記憶部のための前記真理値表データを、生成するように構成される、ことを特徴とする論理構成装置。
１３．前記ネットリストの生成は、高級言語で記述されたプログラムの中の変数ビットを、より小さいビットに型変換することを含む、項目１２に記載の論理構成装置。
１４．前記記憶部は、一辺と、前記一辺と反対側の他辺で他の記憶部に接続するとともに、複数のメモリセルユニットを有し、且つ、
前記複数のメモリセルユニットの少なくとも１つが有する複数のメモリセルは、前記一辺におけるアドレス入力に対して、前記一辺から論理値を出力するための第１真理値表データと前記他辺から論理値を出力するための第２真理値表データとを記憶し、
前記真理値表データを生成することは、前記第１真理値表データと、前記第２真理値表データを生成することを含む、項目１２又は１３に記載の論理構成装置。
１５．前記ネットリストの生成は、高級言語で記述されたプログラムに対して、ループ展開、及び／又は、並列化処理することを含む、項目１２〜１４の何れか１項に記載の論理構成装置。
１６．前記プロセッサは、前記ネットリストから、スキャン化可能な順序回路データセットを抽出して、スキャン化された順序回路データセットを生成し、
前記スキャン化できる順序回路データセットから、前記複数のメモリセルユニットのうち第１セットに書き込むための第１真理値表データセットを生成し、
前記ネットリストの組合せ論理回路データセットから、前記複数のメモリセルユニットのうち第２セットに書き込むための第２真理値表データセットを生成するように構成される、項目１２〜１５の何れか１項に記載の論理構成装置。
１７．前記半導体装置は、前記記憶部とともに、順序回路要素を有する論理部を、複数個有し、
前記プロセッサは、
回路構成を記述した回路記述から、論理回路データ、順序回路データ、及び、前記論理回路データと順序回路データの接続情報を記述するネットリストを生成し、
前記生成したネットリストから、前記接続情報に従って、前記論理回路データと前記順序回路データをそれぞれ前記メモリセル及び論理回路要素に割り当てる、項目１２〜１６の何れか１項に記載の論理構成装置。
１８．前記半導体装置は、論理部の外部に、スイッチ要素を有し、
前記スイッチ要素に前記ネットリストの接続情報を割り当てることをさらに有する、項目１７の論理構成装置。
１９．前記記憶部のメモリセルは、あるアドレスで特定された入力値を、他の論理部の記憶部に出力するように構成される真理値表データを書き込むと、接続要素として動作し、
前記プロセッサは、前記記憶部に前記ネットリストの接続情報を割り当てるように構成される、項目１７又は１８に記載の論理構成方法。
２０．前記プロセッサは、
前記ネットリストを生成した後に、順序回路データを削除し、
前記生成したネットリストから、前記接続情報に従って、前記論理回路データを前記メモリセルに割り当てた後に、前記順序回路データを論理回路要素に割り当てるように構成される、項目１７〜１９の何れか１項に記載の論理構成方法。
２１．前記ネットリスト生成は、論理回路データ、順序回路データ、及び、前記論理回路データを含む並列入力直列出力形のシフトレジスタを生成することを含む、項目１７〜２０の何れか１項に記載の論理構成装置。
２２．前記順序回路要素は、前記記憶部から読み出したデータを保持するとともに、クロックに同期して保持したデータを出力する順序回路である、項目１７〜２１の何れか１項に記載の論理構成装置。
２３．データを記憶するメモリセルを複数備えた記憶部を複数有する再構成可能な半導体装置の論理構成を行うのためのプログラムであって、
前記半導体装置は、それぞれの前記記憶部は、アドレス入力に対して論理値を出力するための真理値表データをそのメモリセルに記憶し、論理回路として動作するように構成され、
前記記憶部は、入力線および出力線の対を少なくとも２のｎ倍（ｎは２以上の整数）本有し、
前記記憶部同士は、１つの記憶部からの２のｎ倍本の出力線が、他の２つの記憶部のｎ本の入力線に接続され、
前記プロセッサに、
回路構成を記述した回路記述に基づいて、回路の接続情報を有するネットリストを生成する処理、
前記ネットリストから、順序回路を含んで成る論理コーンを抽出する処理、
前記論理コーンに対する入力線の数を２分のｎで除算した数に相当する前記記憶部の段数で、前記論理コーンを構成する複数の前記記憶部のための前記真理値表データを、生成する処理を実行させることを特徴とするプログラム。
２４．前記ネットリストの生成は、高級言語で記述されたプログラムの中の変数ビットを、より小さいビットに型変換することを含む、項目２３に記載のプログラム。
２５．前記記憶部は、一辺と、前記一辺と反対側の他辺で他の記憶部に接続するとともに、複数のメモリセルユニットを有し、且つ、
前記複数のメモリセルユニットの少なくとも１つが有する複数のメモリセルは、前記一辺におけるアドレス入力に対して、前記一辺から論理値を出力するための第１真理値表データと前記他辺から論理値を出力するための第２真理値表データとを記憶し、
前記真理値表データを生成する処理は、前記第１真理値表データと、前記第２真理値表データを生成する処理を含む、項目２３又は２４に記載のプログラム。
２６．前記ネットリストの生成は、高級言語で記述されたプログラムに対して、ループ展開、及び／又は、並列化処理することを含む、項目２３〜２５の何れか１項に記載のプログラム。
２７．前記ネットリストから、スキャン化可能な順序回路データセットを抽出して、スキャン化された順序回路データセットを生成する処理、
前記スキャン化できる順序回路データセットから、前記複数のメモリセルユニットのうち第１セットに書き込むための第１真理値表データセットを生成する処理、
前記ネットリストの組合せ論理回路データセットから、前記複数のメモリセルユニットのうち第２セットに書き込むための第２真理値表データセットを生成する処理、を実行させる項目２３〜２６の何れか１項に記載のプログラム。
２８．前記半導体装置は、前記記憶部とともに、順序回路要素を有する論理部を、複数個有し、
前記プロセッサに、
回路構成を記述した回路記述から、論理回路データ、順序回路データ、及び、前記論理回路データと順序回路データの接続情報を記述するネットリストを生成する処理、
前記生成したネットリストから、前記接続情報に従って、前記論理回路データと前記順序回路データをそれぞれ前記メモリセル及び論理回路要素に割り当てる処理を実行させる、項目２３〜２７プログラム。
２９．前記半導体装置は、論理部の外部に、スイッチ要素を有し、
前記プログラムは、前記スイッチ要素に前記ネットリストの接続情報を割り当てる処理を実行させる、項目２８に記載のプログラム。
３０．前記記憶部のメモリセルは、あるアドレスで特定された入力値を、他の論理部の記憶部に出力するように構成される真理値表データを書き込むと、接続要素として動作し、
前記プロセッサは、前記記憶部に前記ネットリストの接続情報を割り当てる処理を実行させる、項目２８又は２９に記載のプログラム。
３１．前記プロセッサに、
前記ネットリストを生成した後に、順序回路データを削除し、
前記生成したネットリストから、前記接続情報に従って、前記論理回路データを前記メモリセルに割り当てた後に、前記順序回路データを論理回路要素に割り当てる、処理を実行させる項目２８〜３０の何れか１項に記載の論理構成方法。
３２．前記ネットリスト生成は、論理回路データ、順序回路データ、及び、前記論理回路データを含む並列入力直列出力形のシフトレジスタを生成する処理を含む、項目２８〜３１の何れか１項に記載のプログラム。
３３．前記順序回路要素は、前記記憶部から読み出したデータを保持するとともに、クロックに同期して保持したデータを出力する順序回路である、項目２３〜３２の何れか１項に記載のプログラム。
３４．項目２３〜３３の何れか１項に示すプログラムを格納する記憶媒体。
【発明の効果】
【００１９】
本実施形態に係る論理構成方法は、メモリセルユニットから構成される再構成可能な半導体装置に対して、配線論理に使用されるメモリセルユニットの数を減らして、配置配線効率を高くできる。【００２０】
また、本実施形態に係る論理構成方法は、端子に基づく結線で配置配線するのではなく、論理回路及び順序回路の接続情報などのデバイスレベルで配置配線することで、デバイスによる回路の簡略化や回路ブロックの再構成が容易にすることができる。
【図面の簡単な説明】
【００２１】
【図１】ＭＬＵＴ同士の接続が１つのアドレス又はデータ線で接続される構成例を示す図である。
【図２】論理部アレイの一例を示す図である。
【図３Ａ】ＭＬＵＴの回路例を示す図である。
【図３Ｂ】シングルポートのメモリセルの一例を示す図である。
【図４】２メモリセルユニット型のＭＬＵＴの一例を示す図である。
【図５】ＭＬＵＴの回路例を示す図である。
【図６】ＭＬＵＴ同士の接続が１つのアドレス又はデータ線で接続される構成例を示す図である。
【図７】論理コーンの一例を示す図である。
【図８】ＦＰＧＡにおけるＣ言語による論理合成の一例を示す図である。
【図９】ＭＬＵＴ間の接続が複数のアドレス又はデータ線で接続される構成例を示す図である。
【図１０】ｎ値を説明する図である。
【図１１Ａ】論理コーンを形成する回路の一例を示す図である。
【図１１Ｂ】図１１Ａで示した論理コーンを実現する複数のＭＬＵＴを示す図である。
【図１２】双方向型ＭＬＵＴ分割の例を示す図である。
【図１３】双方向型ＭＬＵＴ分割の例を示す図である。
【図１４】双方向型ＭＬＵＴ分割の例を示す図である。
【図１５】双方向型ＭＬＵＴにおけるＦＦの使用の例を示す図である。
【図１６】情報処理装置のハードウェア構成の一例を示す。
【図１７】回路記述と、デバイスレベルのネットリストの相違を説明する図である。
【図１８】再構成可能な半導体装置が実現するパラレルシリアル変換シフトレジスタの一例である。
【図１９】図１８の回路を再構成するための回路記述の一例である。
【図２０】図１８の回路を再構成するための回路記述の別な一例である。
【図２１】論理構成処理の一例を示すフローチャートである。
【図２２】ＦＦが論理コーン末端に収まる例を示す図である。
【図２３】ＦＦが論理コーン末端に収まる例を示す図である。
【図２４】折り返しをするために、ＭＬＵＴを追加する一例である。
【図２５】双方向ＭＬＵＴを使って折り返し処理した例である。
【図２６】Ｃ言語等の高級言語に基づいて、ネットリストを生成する処理の一例を示す。
【図２７】生成されたネットリストで示されるグルーロジック１０００ＡとＦＦの概略を示す。
【図２８】スキャン化された順序回路データセットと分けたグルーロジックから論理コーンを抽出する処理を示すフローチャートである。
【図２９】スキャン化により新たに生成されたグルーロジックと、スキャンＦＦの概略を示す。
【図３０】論理要素として動作するＭＬＵＴの一例を示す図である。
【図３１】論理回路として動作するＭＬＵＴの一例を示す図である。
【図３２】図３１に示す論理回路の真理値表を示す図である。
【図３３】接続要素として動作するＭＬＵＴの一例を示す図である。
【図３４】図３３に示す接続要素の真理値表を示す図である。
【図３５】４つのＡＤ対を有するＭＬＵＴによって実現される接続要素の一例を示す図である。
【図３６】１つのＭＬＵＴが、論理要素及び接続要素として動作する一例を示す図である。
【図３７】図３６に示す論理要素及び接続要素の真理値表を示す。
【図３８】ＡＤ対を有するＭＬＵＴによって実現される論理動作及び接続要素の一例を示す図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して、［１］ＭＲＬＤの構成、［２］多方向型ＭＬＵＴ、［３］双方向型ＭＬＵＴ、［４］論理構成手法、［５］ＭＬＵＴを論理要素及び／又は接続要素として動作させる真理値表の例について順に説明する。
【００２３】
［１］ＭＲＬＤの構成
図１は、本実施形態に係る再構成可能な半導体装置の全体構成の一例を示す図である。以下、当該再構成可能な論理デバイスをＭＲＬＤ（Ｍｅｍｏｒｙ  ｂａｓｅｄ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）と呼ぶ。ＭＲＬＤは、ＦＰＧＡ同様の機能を備えているデバイスであるが、その構造が異なる。ＦＰＧＡはＬＵＴとスイッチブロック、コネクションブロックなどによって構成され、論理資源と配線資源の割合は固定である。これに対し、ＭＲＬＤは、ＭＬＵＴと呼ばれる論理素子、配線素子の双方として利用可能な素子を並べた構成となっている。この構成により、全体の面積における論理領域の割合を高めることができる。
【００２４】
なお、以下では、再構成可能な半導体装置の例として、ＭＲＬＤを例に説明するが、本実施形態に係る論理構成方法は、ＭＲＬＤのみを対象とするものではなく、ＦＰＧＡを対象としたものであってもよい。その場合、複数のメモリセルを有する記憶部と、順序回路要素とを有する論理部としてのＭＬＵＴ（後述）は論理要素として動作する場合、論理要素ＣＬＢであり、ＭＬＵＴが配線要素として動作する場合、スイッチ要素ＳＢ、ＣＢに相当する。
【００２５】
図１に示す２０は、再構成可能な半導体装置としてのＭＲＬＤである。ＭＲＬＤ２０は、後述する論理部をアレイ状に配置した論理部アレイ６０、論理部の記憶部に対するメモリ読出し動作又は書込み動作用のアドレスを特定するデコーダ１２、及び、書込用データＷＤ又は読出用データＲＤを入出力する入出力部１４を有する。
【００２６】
論理部アレイ６０は、ＭＬＵＴが、アレイ状に配置したものである。記憶部のメモリセルに、真理値表とみなされるデータがそれぞれ記憶され、アドレス入力に対する論理値（「０」と「１」の何れかの値となり、アドレス入力に対する否定、論理和、論理積、排他的論理和等の論理演算の結果）を出力することで、論理部は、論理要素、又は、接続要素、又は、論理要素及び接続要素として動作する論理動作を行う。論理部が、論理要素、及び／又は、接続要素として動作する例は、［５］で説明し、記憶素子の構成例は、図３Ｂを用いて後述する。
【００２７】
ＭＲＬＤ２０の論理動作では、実線で示される論理動作用アドレスＬＡ、及び論理動作用データＬＤの信号を使用する。論理動作用アドレスＬＡは、論理回路の入力信号として使用される。そして、論理動作用データＬＤは、論理回路の出力信号として使用される。論理部への論理動作用アドレスＬＡは、隣接する論理部への論理動作用データＬＤのデータ線と接続している。
【００２８】
ＭＲＬＤ２０の論理動作により実現される論理は、記憶部に記憶される真理値表データにより実現される。いくつかの論理部は、ＡＮＤ回路、加算器などの組み合わせ回路としての論理要素として動作する。他の論理部は、組み合わせ回路を実現する論理部間を接続する接続要素として動作することも可能である。論理部が、論理要素、及び接続要素を実現するための真理値表データの書き換えは、メモリへの書き込み動作によりなされる。真理値表データにより実現される論理要素、及び、接続要素の例は、図３０〜図３８を用いて後述する。
【００２９】
ＭＲＬＤ２０の書き込み動作は、書込用アドレスＡＤ、及び書込用データＷＤによりなされ、読出し動作は、書込用アドレスＡＤ、及び読出用データＲＤによりなされる。
【００３０】
書込用アドレスＡＤは、記憶部内のメモリセルを特定するアドレスである。書込用アドレスＡＤは、m本の信号線で、２のｍ乗の数ｎのメモリセルを特定する。書込用アドレスＡＤは、メモリの読出し動作、書き込み動作、両方の場合で使用され、m本の信号線を介して、デコーダ１２でデコードされて、対象となるメモリセルを選択する。なお本実施形態においては、後述するが、論理動作用アドレスＬＡのデコードは、記憶部内のデコーダにより行う。
【００３１】
デコーダ１２は、リード・イネーブル信号ｒｅ、ライト・イネーブル信号ｗｅ等の制御信号に従って、書込用アドレスＡＤをデコードし、デコードアドレスｎをＭＬＵＴ３０に対して出力する。デコードアドレスｎは、記憶部内のメモリセルを特定するアドレスとして使用される。
【００３２】
入出力部１４は、ライト・イネーブル信号ｗｅに従って、書込用データＷＤを書込み、リード・イネーブル信号ｒｅに従って、読出用データＲＤを出力する。
【００３３】
図２は、論理部アレイの一例を示す図である。なお、図２では、論理部３０間を繋ぐ、アドレス線とデータ線の接続は明示しておらず、後述する図３Ａ等を用いてアドレス線とデータ線を説明する。論理部アレイ３０は、図示されるように、ＭＬＵＴ３０をアレイ状に配置したものである。各ＭＬＵＴは、書込用アドレスＡＤ、ライト・イネーブル信号ｗｅ、リード・イネーブル信号ｒｅ、書込用データＷＤ、および読出用データＲＤの各信号線に接続する。
【００３４】
［１．１］ＭＬＵＴ
図３Ａは、ＭＬＵＴの回路例を示す図である。図３Ａに示すＭＬＵＴ３０は、メモリセルユニット３１、アドレスデコーダ９、アドレスセレクタ１１、Ｉ／Ｏ（入出力）バッファ１２、及び、データセレクタ１３を有する。
【００３５】
メモリセルユニット３１は、データを記憶するｎ×２ｎ個のメモリセルを有する。メモリセルは、２のｎ乗本のワード線と、ｎ本のビット線の接続部分に配置される。なお、ビット線の数は、必要に応じてｎ本より増やしてもよい。「ビット線」は、メモリセルユニットの出力後は、「データ線」とよばれる。本実施例では、記憶素子に関する説明において、「ビット線」という用語を用いる。メモリセルの詳細は、図３Ｂを用いて後述する。
【００３６】
アドレスデコーダ９は、入力されるアドレス信号Ａ０〜Ａ７をデコードして、ワード線にデコード信号（「ワード線選択信号」とも言う）を出力する。デコード信号は、信号レベルが「Ｈ」であり、デコード信号が流れないワード線は、信号レベル「Ｌ（Ｌｏｗ）」である。アドレスデコーダ９は、２のｎ乗本のワード線のうち１つのワード線に、信号レベル「Ｈ」のデコード信号を出力するように構成される。ワード線を流れるデコード信号で選択されたメモリセルは、記憶するデータをビット線に出力する。
【００３７】
アドレスセレクタ１１は、書込用アドレスＡＤ及び論理アドレスＡ０〜Ａ７の何れかを選択する。この例では、書込み動作と、論理動作の何れかのみを行うシングルポートメモリセル（図３Ｂ）である。デュアルポートメモリを使用する場合、メモリセルへの読出し及び書込みが同時にできるので、アドレスセレクタ１１は不要となる。
【００３８】
Ｉ／Ｏバッファ１２は、外部クロック（OCrock）と内部クロック（ICrock）の何れかに同期して、メモリセルユニットのデータ線からデータを読み出すことで、順序回路要素としてのＦＦ（フリップフロップ）の機能を提供する。なお、外部クロック（OCrock）と内部クロック（ICrock）は、例えば、内部クロックの周期を短周期とすることで、内部クロック同期時に動作を早めるなどの作用が得られる。外部クロックと内部クロックの切り替えは、メモリセルユニット３１にクロック制御用のデータを記憶する１ビット列を設けて、真理値表データによりそのビット列を外部から書き換え可能としている。
【００３９】
データセレクタ１３は、読出用データＲＤ、又は、書込用データＷＤを切り替える選択回路である。
【００４０】
［１．２］メモリセル
図３Ｂは、シングルポートのメモリセルの一例を示す図である。メモリセル（「記憶素子」とも言う）は、デコード信号の信号線であるワード線と、ビット線の交差点に配置される。図３Ｂに示される記憶素子４０では、ｐＭＯＳ（Metal Oxide Semiconductor）トランジスタ１６１、１６２、及び、ｎＭＯＳトランジスタ１６３、１６４、１６５、１６６を備える。ｐＭＯＳトランジスタ１６１のソースと、ｐＭＯＳトランジスタ１６２のソースとは、ＶＤＤ（電源電圧端）に接続する。ｎＭＯＳトランジスタ１６３のドレーンと、ｎＭＯＳトランジスタ１６４のドレーンは、ＶＳＳ（接地電圧端）に接続される。
【００４１】
ｎＭＯＳトランジスタ１６５のドレーンは、ビット線ＢＬに接続される。ｎＭＯＳトランジスタ１６５のゲートは、ワード線ＷＬに接続される。ｎＭＯＳトランジスタ１６６のドレーンは、ビット線ｑＢＬに接続される。ｎＭＯＳトランジスタ１６６のゲートは、ワード線ＷＬに接続される。
【００４２】
上記構成により、書き込み動作では、記憶素子４０は、ワード線ＷＬの信号レベル「Ｈ（Ｈｉｇｈ）」により、ビット線ＢＬ及びビット線ｑＢＬから伝えられた信号レベルを、ｐＭＯＳトランジスタ１６１、１６２、ｎＭＯＳトランジスタ１６３、１６４に保持する。読み出し動作では、記憶素子４０は、ワード線ＷＬの信号レベル「Ｈ」により、ｐＭＯＳトランジスタ１６１、１６２、ｎＭＯＳトランジスタ１６３、１６４に保持された信号レベルを、ビット線ＢＬ、及び、ビット線ｑＢＬに伝える
【００４３】
［１．３］２メモリセルユニット型ＭＬＵＴ
図４は、２メモリセルユニット型のＭＬＵＴの一例を示す図である。図４に示すＭＬＵＴ３０は、矩形状であり、後述する双方向のアドレス線又はデータ線接続に限定される双方向型ＭＬＵＴである。ＭＬＵＴは、一辺において複数のアドレス線又は複数のデータ線で他の記憶部に接続し、及び、前記一辺と反対側の他辺において複数のアドレス線又は複数のデータ線で他の記憶部に接続するとともに、複数のメモリセルユニット３１Ａ、３１Ｂを有する。
【００４４】
メモリセルユニット３１Ａ、３１Ｂの各々は、あるアドレス線で特定されたメモリセルに記憶される値の論理演算を、データ線に出力するための真理値表データを記憶して、論理回路として動作し、及び／又は、あるアドレス線で特定されたメモリセルに記憶される値を、他のＭＬＵＴのアドレス線に接続するデータ線に出力するための真理値表データを記憶して、接続回路として動作するように構成される。
【００４５】
図４に示すように、ＡＤ対は、ＭＬＵＴ３０の左右２方向に入力又は出力する。メモリセルユニット３１Ａ、３１Ｂが有する複数のメモリセルは、一辺から入力されるアドレスのデコード信号で選択されて、一辺における第１複数データ線に出力する第１真理値表データ及び他辺における第２複数データ線に出力する第２真理値表データを記憶する。
【００４６】
メモリセルユニット３１Ａは、左側（一辺）から入力されるアドレス信号Ａ０〜Ａ３の出力データＤ０〜Ｄ７を、左側への出力Ｄ０〜Ｄ３（「第１複数データ線」に相当）に出力し、及び、他のメモリセルユニット３１Ｂ側（他辺）への出力Ｄ４〜Ｄ７（「第２複数データ線」に相当）に出力する。なお、出力Ｄ０〜Ｄ３のように、信号入力方向に、出力を戻す接続構成を、以下で「帰還」と言う。
【００４７】
メモリセルユニット３１Ａの出力Ｄ０〜Ｄ３用のメモリセルは、帰還方向の真理値表データ（第１真理値表データ）を記憶し、出力データＤ０〜Ｄ７用のメモリセルは、右側から左方向の真理値表データ（第２真理値表データ）を記憶する。メモリセルユニット３１Ｂも同様に、入力されるアドレス信号Ａ４〜Ａ７の出力データＤ０〜Ｄ７を出力し、入力アドレス側への出力Ｄ４〜Ｄ７、及び、他のメモリセルユニット側への出力Ｄ０〜Ｄ３に出力する。
【００４８】
両メモリセルユニットの出力信号の接続部分は、ワイヤードORを構成する、又は、論理和（ＯＲ）回路で接続されているので所定のデータを転送できる。
【００４９】
ＭＬＵＴ３０は、双方向型ＭＬＵＴであるが、原則として、往路方向（左から右への方向）では、アドレスＡ０〜Ａ３を使い、復路方向（右から左への方向）では、アドレスＡ４〜Ａ７を使う。往路方向に使う真理値表データと、復路方向に使う真理値表データはそれぞれ用意される。
【００５０】
なお、帰還処理を行わない場合、真理値表データは、メモリセルユニット３１ＡのＤ０〜Ｄ３およびメモリセルユニット３１ＢのＤ４〜Ｄ７のデータを「０」とする。また、逆に帰還処理をする場合は、メモリセルユニット３１ＡのＤ４〜Ｄ７およびメモリセルユニットＢ３１のＤ０〜Ｄ３を「０」にする。
【００５１】
なお、図４では、２つのメモリセルユニット３１Ａ、３１Ｂが、一方向へのデータ接続と、帰還方向へのデータ接続を有しているが、何れか1つのメモリセルユニットが、帰還方向へのデータ接続をなくすことでメモリセルの量を減らしてもよい。その場合、1つのメモリセルユニットは、左右両方向へのデータ流れをもち、他のメモリセルユニットは、左方向のみのデータ流れをもつ。
【００５２】
図５は、ＭＬＵＴの回路例を示す図である。図５に示すＭＬＵＴ３０は、メモリセルユニット３１Ａ、３１Ｂ、アドレスデコーダ９Ａ、９Ｂ、アドレスセレクタ１１Ａ、１１Ｂ、Ｉ／Ｏ（入出力）バッファ１２Ａ、１２Ｂ、及び、データセレクタ１３Ａ、１３Ｂを有する。メモリセルユニット３１Ａ、３１Ｂは、それぞれ、アドレスデコーダ、アドレスセレクタ、Ｉ／Ｏバッファ、及び、データセレクタを有する。
【００５３】
メモリセルユニット３１Ａ、３１Ｂはそれぞれ、左方向および右方向（折り返し方向）へ接続するための真理値表データを記憶する。アドレスデコーダ９Ａは、左側から入力されるアドレスＡ０〜Ａ３をデコードする。アドレスデコーダ９Ｂは、右側から入力されるアドレスＡ４〜Ａ７をデコードする。
【００５４】
アドレスセレクタ１１Ａ、１１Ｂは、書込用アドレスＡＤ及び論理アドレスＡ０〜Ａ３、Ａ４〜Ａ７を選択する。この例では、書込み動作と、論理動作の何れかのみを行うシングルポートメモリセル（図３Ｂ）である。デュアルポートメモリを使用する場合、メモリセルへの読出し及び書込みが同時にできるので、アドレスセレクタ１１Ａ、１１Ｂは不要となる。
【００５５】
Ｉ／Ｏバッファ１２Ａ、１２Ｂは、外部クロック（OCrock）と内部クロック（ICrock）の何れかに同期して、メモリセルユニットのデータ線からデータを読み出すことで、ＦＦの機能を提供している。なお、外部クロック（OCrock）と内部クロック（ICrock）は、例えば、内部クロックの周期を短周期とすることで、内部クロック同期時に動作を早めるなどの作用が得られる。外部クロックと内部クロックの切り替えは、メモリセルユニットにクロック制御用のデータを記憶する１ビット列を設けて、真理値表データにより、そのビット列を外部から書き換え可能としている。なお、Ｉ／Ｏバッファ１２Ａ、１２Ｂは、メモリセルのビット線から出力される電圧を増幅するセンスアンプを含んでいる。
【００５６】
データセレクタ１３Ａ、１３Ｂは、出力データＲＤ、又は、書込みデータＷＤを切り替える選択回路である。
【００５７】
このように、上記ＭＬＵＴを有するＭＲＬＤは、隣接するＭＬＵＴに対して複数ビットのデータ処理を行うとともに、複数のメモリセルユニットで記憶部を構成する。メモリセルユニットは、アドレス線の二乗に比例して増えるので、データ線の数は同じであっても、各メモリセルユニットのアドレス数を少なくすれば、トータルに必要なメモリセルの数を少なくすることができる。
【００５８】
［２］多方向型ＭＬＵＴ
図６は、ＭＬＵＴ同士の接続が１つのアドレス又はデータ線で接続される構成例を示す図である。図６に示されるＭＲＬＤ２０は、ＭＬＵＴ同士の接続が１つのアドレス又はデータ線で接続するように構成されるＭＬＵＴ３０ａ〜３０ｆが示される。このような構成は、隣接するＭＬＵＴが１つのＡＤ対で接続するので、隣接するＭＬＵＴと送信するデータは、１ビットとなる。このように、隣接するＭＬＵＴと、多方向で接続し、伝送ビット幅が１ビットであるＭＬＵＴを「多方向型ＭＬＵＴ」と呼ぶ。特許文献４の図３１Ａ〜図３１Ｄでは、“be_adder”等単純な回路構成をＭＲＬＤで実現する場合に、ＭＬＵＴの使用数が最も少なくなることが開示される。
【００５９】
なお、図６に示すように、双方向の矢印は、ＡＤ対を示し、図４のように一方向の矢印を示す場合、アドレス線およびデータ線の何れかを示す。
【００６０】
図７は、論理コーンの一例である。論理コーンを用いて、多方向型ＭＬＵＴの適用が困難なケースを説明する。論理コーンとは、ＦＦ等で構成されるレジスタ、又は、入出力によって囲まれる組合せ回路のグループを言う。図７に示される論理コーンには、図示しないが、同一クロックで動く複数のＦＦがあり、ＦＦの出力とＦＦの入力の間を、組合せ論理回路が繋いでいる。Ｃ言語合成では演算において、変数をＦＦ表現して入出力に配置して回路データを、ＦＦ間に生成する。入力端子列１０１０にあるクロックがＦＦに入ると、全ＦＦが値を更新して、ＦＦの値が更新されたら全組み合わせ回路が動作し、次のクロックが来るまでの間に、影響範囲が下段の回路に広がり、出力端子列１０２０にあるＦＦの入力が確定する。このようにして、１つのＦＦ出力に影響を与える全ての入力及び論理回路素子によって定義される集合である論理コーン１０００が形成される。図７に示すＭＬＵＴ段数については後述する。
【００６１】
［２．１］  多方向型ＭＬＵＴの問題  接続使用のＭＬＵＴの増加
多方向型ＭＬＵＴでは、１つのＭＬＵＴが所望の論理コーンを構成可能である場合、接続要素として使用されるＭＬＵＴが減り、結果としてＭＬＵＴ使用数が減る。しかしながら、複数のＭＬＵＴに論理コーンが渡る場合、ＭＬＵＴ間のデータ伝送幅が１ビットであるので、ＭＬＵＴ同士の接続において、データの行き分れが生じて、接続要素として使用されるメモリ領域が増える。このように、所望の論理コーンを構成するために、複数のＭＬＵＴが必要になり、各ＭＬＵＴに、論理回路が分割して構成される場合を、「ＭＬＵＴ分割（「クラスタリング」ともいう）」と呼ぶ。また、Ｃ言語等の高位言語ではビット数は複数ビットになる。Ｃ言語等でコーディングした機能を、「多方向型ＭＬＵＴ」で実現する場合、複数のビットをビット分割して演算し、演算後のデータを合成するなどのデータの流れが生じるので、接続要素として使用するＭＬＵＴが増えて、ＭＬＵＴ使用数は増えてしまう。
【００６２】
ＭＬＵＴが接続するデータ線及びアドレス線を増やして、それに伴いメモリセルユニットを大型化すると、ＭＬＵＴ間のデータ伝送がなくなり、接続要素として使用するＭＬＵＴは減る。しかしながら、このようにデータ線及びアドレス線を増加すると、隣接するＭＬＵＴの接続数も増え、各々のＭＬＵＴが、様々な方向に入出力が増えるので、構成が困難になる。
【００６３】
ＦＰＧＡの論理合成手法として、Ｃ言語から機能を構築する高位合成手法が発表されており、実用化されている。図８は、ＦＰＧＡにおけるＣ言語による論理合成の一例を示す図である。９１０は、Ｃ言語記述の例を示す。９２０は、ＦＰＧＡにおけるＣ言語高位合成の例である。９３０は、ＡＳＩＣにおけるＣ言語高位合成の例である。Ｃ言語高位合成９２０では、Ｃ言語の変数をレジスタとしてその間の演算を組合せ回路で表現して機能を構築する。この例はＦＰＧＡに実装する例であるが、ＦＰＧＡの論理表現に併せて論理を分解して動作させる。Ｃ言語高位合成９３０では、ＦＰＧＡでなくＡＳＩＣで実装した例であるが、ＡＳＩＣでは論理表現が自由なので一括で処理してレジスタで変数データを処理する。このように、Ｃ言語の処理はデータ列を処理してレジスタに蓄え次の処理（データパス処理）をするのが一般的である。
【００６４】
図８に示したように、Ｃ言語はデータの流れを記述して、それを制御して動作を構築するので、データの流れは一方向になる。そして、そのデータ・ビットは８ビットや１６ビットなどのデータ列になっている。Ｃ言語合成ツールではこのデータ列の長さを選択できるが、少なくとも３ビット以上のデータ列で記述するのが一般的である。
【００６５】
ＭＲＬＤも同様に、Ｃ言語等の高位言語から論理合成する手法の開発が考えられる。一般的にＣ言語合成では最終的な組み合わせ表現を取るのに、対象となるデバイスの論理ライブラリを構築しておき、そのライブラリを参照しながら組み合わせ回路を構成していく。ＭＲＬＤのＭＬＵＴに合った論理ライブラリを求めれば原理的に実施できるのであるが、多方向型ＭＬＵＴでは、どの方向のアドレスを入力にして、どの方向のデータ線を出力にするかが自由なので、確定的な論理ライブラリが作成できない。
【００６６】
以上のように、多方向型ＭＬＵＴは、論理コーンの実現や、マルチビット処理で生じる組合せ回路のＭＬＵＴ分割と、それに伴うＭＬＵＴ使用量の増加、及び、論理ライブラリの構築が困難である等の問題がある。
【００６７】
［３］双方向型ＭＬＵＴ
図９は、ＭＬＵＴ間の接続が複数のアドレス又はデータ線で接続される構成例を示す図である。図９に示すＭＬＵＴ３０Ａ〜３０Ｅは、データの出力端にあるＦＦ（図３Ａで説明したＩ／Ｏバッファ）を有している。図２に示される論理部アレイ６０では、ＭＬＵＴ３０Ａは、隣接する他のＭＬＵＴ３０Ｂ〜３０Ｅと２本のペアを構成するアドレス線又はデータ線で接続されており、つまり、ＭＬＵＴ同士の接続が複数ペアのアドレス又はデータ線で接続するように構成される。このような構成は、隣接するＭＬＵＴが複数のＡＤ対で接続することになるので、隣接するＭＬＵＴと送信するデータは、複数ビット（図２の例では、４ビット）となる。
【００６８】
また、図９に示すように、それぞれのＭＬＵＴは、矩形状をしており、アレイ状の配置から少なくとも一部をずらして配置することで、１つのＭＬＵＴの出力線（「データ線」とも言う）が、２つのＭＬＵＴの入力線（「アドレス線」とも言う）として接続されている。
【００６９】
それぞれのＭＬＵＴが複数の入力線を有しており、さらに、その出力線が２つのＭＬＵＴの入力に接続されている。つまり、ＭＬＵＴは、入力線および出力線の対を少なくとも２のｎ倍（ｎは２以上の整数）本有する場合、ＭＬＵＴ同士は、１つのＭＬＵＴからの２のｎ倍本の出力線が、他の２つのＭＬＵＴのｎ本の入力線に接続される。
【００７０】
さらに、アドレス線及びデータ線は、多方向ではなく、双方向での接続に限定されている。また、双方向とするものの、隣接するＭＬＵＴを２つに限定せず、それ以上として、構成可能性を上げるために、入力方向及び出力方向に、それぞれ複数のＭＬＵＴと接続可能となっている（「交互配置」と言う）。例えば、ＭＬＵＴ３０Ａは、右側方向でＭＬＵＴ３０Ｂ及び３０Ｃと、左側方向でＭＬＵＴ３０Ｄ及び３０Ｅと接続している。このようなＭＬＵＴを「双方向型ＭＬＵＴ」とも言う。
【００７１】
多方向型ＭＬＵＴと異なり、双方向型ＭＬＵＴは、データ線及びアドレス線を複数本とすることで、マルチビットのデータ処理が可能になり、さらに、入力及び出力方向のデータの流れの方向が限定できるので、論理ライブラリの作成も容易になる。
【００７２】
つまり、隣接するＭＬＵＴに対して複数ビットのデータ処理が可能になるので、複数ビット演算を行うプログラム（例えば、上記のＣ言語）から構成させるデータ処理において、使用するＭＬＵＴの数を減らすことができる。
【００７３】
［３．１］  必要な双方向型ＭＬＵＴの数の論理段数
以下では、論理コーンに対して必要になる双方向型ＭＬＵＴの決定方法について、ｎ値という定義を用いて説明する。図１０は、ｎ値を説明する図であり、図９で説明したＭＬＵＴ３０Ａ及び３０Ｃを用いてｎ値を説明する。隣接するＭＬＵＴ３０Ａ及び３０Ｃに向かい合う１辺から出るアドレス線又はデータ線の数１０３０を「ｎ値」と定義する。図１の多方向型ＭＬＵＴでは、隣接するＭＬＵＴの分だけ辺があるので、１辺から出るアドレス線又はデータ線は「１」であり、ｎ値は「１」である。図４及び図５の４ビット長型ＭＬＵＴは、矩形であるが、複数ビット伝送を要件としているので、１辺からでるアドレス線又はデータ線は「４」であり、ｎ値は「４」である。双方向型ＭＬＵＴでは、隣接するＭＬＵＴとの関係で、データ伝送量がｎ値の半分となり、且つ、信号パスが１段ずれるので、最長信号パスを実現するには信号パスを（ｎ値／２）で割った段数だけ必要である。なお、「段数」とは、回路において、接続する素子の数を示す。ＭＬＵＴの「段数」も、通常の回路の段数のように、接続するＭＬＵＴの数を示す。しかし、図９に示されるように、ＭＬＵＴは、前段にそれぞれ接続する２つのＭＬＵＴ、後段にそれぞれ接続する２つのＭＬＵＴがあるので、直線的な接続ではなく、左右、上下などの方向に接続するＭＬＵＴの数を示す。これらの具体的な構成については、図１１Ｂで説明する。
ＭＬＵＴ論理段数は、以下の式で示される。
式１：  ＭＬＵＴ論理段数  ＝  ｍ／（ｎ値／２）
なお、ここでｍは、信号バスであり、論理コーンにする入力信号線を示す。
図１０に示す例では、ｎ値は「４」であるが、隣接するＭＬＵＴは、一方向に２つあるので、（ｎ値／２）は「２」となる。Ｃ言語の論理演算が、８ビットで演算されており、論理コーンの入力信号線ｍが８本であった場合、ＭＬＵＴ論理段数は、「８／（４／２）＝４」となる。つまり、８ビット演算をＭＬＵＴで行う場合、４つの段数を構成するＭＬＵＴが必要になる。
【００７４】
図１１Ａは、論理コーンを形成する回路の一例を示す図である。図１１Ａに示す回路１０５０Ａは、９本のデータ線である信号パス（Ｘ０，Ｙ１〜Ｘ３，Ｙ３，Ｃ−１）に対して下記式に示す論理演算を行い、論理値Ｃ３を出力する。つまり、図１１Ａに示す回路は、９ビット演算を行う論理コーンである。
式２：Ｃ３＝Ｇ３＋Ｇ２・Ｐ３＋Ｐ２・Ｐ３・Ｇ１＋Ｐ１・Ｐ２・Ｐ３・Ｇ０＋Ｐ３・Ｐ２・Ｐ１・Ｐ０・（Ｃ−１）
【００７５】
図１１Ｂは、図１１Ａで示した論理コーンを実現する複数のＭＬＵＴである。なお、図１１Ｂでは、ＭＬＵＴのｎ値は、４である。論理コーンの信号パスは「９」であるため、ＭＬＵＴ論理段数は、「９／（４／２）＝４．５」であるので、「４．５」に相当する「５」の段数を構成するＭＬＵＴが必要になる。図１１Ｂでは、図１１Ａで説明した論理コーンを構成する複数のＭＬＵＴが示されるが、左右、上下などの方向を問わず互いに接続するＭＬＵＴの数は「５」である。ここで、論理コーンを構成する各ＭＬＵＴ３０の接続、及び、論理演算が明確になるので、ＭＬＵＴの真理値表データの生成が可能になる。
【００７６】
［２．２］  双方向型ＭＬＵＴの分割例
図１２〜図１４は、双方向型ＭＬＵＴ分割の例を示す図である。図１２は、右方向へのデータ接続を示すＭＬＵＴの図である。図１２の１０４０は、８ビットの入力に対して必要なＭＬＵＴ論理段数を示す。図１２に示されるように、論理コーンを構成する組み合わせ回路を、ＭＬＵＴ論理段数で分割することによりＭＬＵＴ分割が出来る。ＭＬＵＴ分割された組み合わせ回路に対して、入力の全ての組み合わせ（ｎ値の場合は２ｎになる）に対して論理演算を実施し、その真理値データを求めることができる。
【００７７】
図１３及び図１４は、双方向型ＭＬＵＴによるデータの折り返し接続を示す図である。ＭＬＵＴは双方向に接続されているため、複数のＭＬＵＴを使用することでデータを、右方向から、左方向へ戻す折り返しデータ接続が可能である。点線で示す例は、折り返されたデータ接続を示す。なお、右方向の流れは図示していないが、図１２の１０４０で示す右方向の流れを維持したまま、折り返しにより、左方向のデータの流れがある。図１３では、ＭＬＵＴ３０Ｂ及び３０Ｃが、データの折り返し接続を行う例を示し、図１４では、ＭＬＵＴ３０Ａが論理演算とデータの折り返し接続を行う例を示している。
【００７８】
なお、折り返しは、回路構成において既に規定されている、２メモリセルユニット型ＭＬＵＴを使用した方が、未使用のメモリセルを少なくすることができ、効果的である。
【００７９】
図１３に示すように、双方向型ＭＬＵＴにおいて、ＭＬＵＴ端に信号を帰還する真理値データを書き込ませれば、折り返しが実施できる。また、この例では、往路方向の真理値データに加えて、復路方向の真理値データは別に設ける必要があるので、１つのＭＬＵＴは、往路用の真理値データに加えて、復路用の真理値データを記憶する必要があるので、ＭＬＵＴ数を下げることができる。従前、双方向型のＭＬＵＴは、図１３及び図１４に示すように、折り返し処理ができる構成であった。しかし、本実施形態に係るＭＬＵＴは、１つのＭＬＵＴで、両方向のデータ流れを実現する２つの真理値表データを記憶するように構成される点で、両者は、明確に区別される。
【００８０】
［２．３］  双方向型ＭＬＵＴにおけるビット分割
また、Ｃ言語からの直接真理値データを求める論理構成手法について述べる。Ｃ言語でのｉｎｔ演算では、例えば、１６ビットである。そのため、１６ビットに相当するレジスタを生成して、そのレジスタに保持されるビット値の演算により組み合わせ回路を実現する。１６ビットのｎ値を持つＭＬＵＴがあればその結果を真理値データにして動作を構成できるが、ｎ値を１６とするＭＬＵＴは、１６本のアドレスを用いて、２の１６乗のメモリセルが必要になるので、ＭＬＵＴのような構成ユニットとして使用する場合、未使用メモリ領域が多くなり現実的でない。そこで、ビットを分割してＭＬＵＴにあった演算手法に記述変換をする。ｎ値が４のＭＬＵＴであれば、１６ビットを４分割したＣ言語記述をする。このようなことはＣ言語記述では一般的である。例えば、３２ビット演算はｆｌｏｔを使い記述するが、ｉｎｔを使い記述することはある。
【００８１】
図１５は、双方向型ＭＬＵＴにおけるＦＦの使用の例を示す図である。４ビットに分割した記述をＣ言語合成に掛ければ、１０４０Ａ及び１０４０Ｂに示すような、ＭＬＵＴ論理段数が決まる。６０Ａは、論理回路において、ＭＬＵＴの各ＦＦを使用する例であり、６０Ｂは、論理回路において、ＦＦを禁止する例である。各ＭＬＵＴにＦＦがあることはクロック遅延を起こすので、中間のＭＬＵＴのＦＦを禁止し６０Ｂに示すように、ＦＦの使用を停止することにより動作を高速化できる。
【００８２】
［３］論理構成装置
ＭＲＬＤの論理構成を行うには、抽象的な回路の動作に関するハードウェア記述言語からネットリストを生成し、それを、実際のデジタル回路に割り当てる（以下「論理合成」と言う）論理構成方法が必要である。なお、「ネットリスト」とは、電子回路における端子間の接続情報のデータのことである。電子回路の分野では、各端子間を結んだ信号線や端子間のつながりを指して「ネット」と呼んでいる。ＭＲＬＤの機能搭載例として、論理合成された回路群を選択して入力ピンから逐次配置する方法が考えられる。しかし、配置についてはその後の回路の配置エリアを確保して配置しなければならない。
【００８３】
Ｃ言語ではレジスタとその間の演算が主動作となるが、レジスタはＦＦであり、演算は組み合わせ論理であることから、基本的にＣ言語から論理合成が可能となる。レジスタ宣言からＦＦの配置を決め、演算の動作から真理値データが生成されるので、論理回路合成を経なくても論理合成が可能になる。従来、再構成可能な半導体装置の論理合成、特にＣ言語からの合成は、一度ＲＴＬ記述（Ｖｅｒｉｌｏｇ，ＶＨＤＬ）に変換して、その後、論理回路生成をして論理構成をしなければならなかった。そのために、何度かの情報処理を必要としており、煩雑であった。本実施形態に係る論理構成手法では、Ｃ言語からの論理合成が可能となり、簡便である。
【００８４】
ＭＲＬＤにとって、真理値表の作成と、その真理値表をＭＬＵＴに書き込む作業が、ＦＰＧＡの論理構成に相当する。
【００８５】
論理構成装置は、本実施形態に係る論理構成用のソフトウェアプログラムを実行する情報処理装置によって実現される。図１６に、情報処理装置のハードウェア構成の一例を示す。情報処理装置２１０は、プロセッサ２１１と、入力部２１２と、出力部２１３と、記憶部２１４とドライブ装置２１５を有する。プロセッサ２１１は、入力部２１２に入力された配置・配線用のソフトウェア、集積回路を設計するためのＣ言語記述またはハードウェア記述言語（ＨＤＬ）などの回路記述言語、及び、上記ソフトウェアを実行することによって生成される真理値表データを記憶部２１４に記憶する。また、プロセッサ２１１は、配置・配線用のソフトウェアを実行して、記憶部２１４に記憶された回路記述に対して以下に示す配置・配線の処理を行い、出力部２１３に、真理値表データを出力する。出力部２１３には、ＭＲＬＤ２０（図１６には示さず）を接続することができ、プロセッサ２１１が論理構成処理を実行して、生成した真理値表データを、出力部２１３を介してＭＲＬＤ２０に書き込む。出力部２１３は、外部ネットワークと接続していてもよい。この場合、論理構成用のソフトウェアプログラムは、ネットワークを介して送受信される。ドライブ装置２１５は、例えば、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、フラッシュメモリなどの記録メディア２１７を読み書きする装置である。ドライブ装置２１５は、記録メディア２１７を回転させるモータや記録メディア２１７上でデータを読み書きするヘッド等を含む。なお、記録メディア２１７は、論理構成用のプログラムを格納することができる。ドライブ装置２１５は、セットされた記憶媒体２１７からプログラムを読み出す。プロセッサ２１１は、ドライブ装置２１５により読み出されたプログラムを、記憶部２１４に格納する。なお、情報処置装置２１０は、本実施形態に係る論理構成方法を実行する論理構成装置として動作する。
【００８６】
［４］論理構成方法
本実施形態に係る論理構成方法は、回路構成を記述した回路記述（ＨＤＬなど）から、論理回路データ、順序回路データ、及び、前記論理回路データと順序回路データの接続情報を記述するネットリストを生成し、生成したネットリストから、前記接続情報に従って、前記論理回路データと前記順序回路データをそれぞれ前記メモリセル及び論理回路要素に割り当てる。
【００８７】
前記ネットリスト生成ステップは、論理回路データ、順序回路データ、及び、前記論理回路データを含む並列入力直列出力形のシフトレジスタ（「パラレルシリアル変換シフトレジスタ」）を生成することを含む。
【００８８】
論理回路ミュレーションではデバイスとノードの結線情報で表示するのではなく端子名を使い結線情報を表示する手法を使用している。本実施形態に係る論理構成方法は、論理素子とＦＦなどの論理回路レベルでネットリスト情報を持たせる。端子名とノードを対応させたデータを保持し、変更後の確認が容易になり、また、デバイスによる回路の簡略化や回路ブロックの再構成が容易になる。
【００８９】
図１７は、回路記述と、デバイスレベルのネットリストの相違を説明する図である。図１７に示す９４０Ａは、ＦＦの回路ブロック、９４０Ｂは、ＦＦの回路記号、９４０Ｃは、ＦＦのトランジスタレベルの回路図をそれぞれあらわす。
【００９０】
９４０Ａでは、記述例としては、「ＦＦ１，ＦＦ２，ＦＦ３，ＦＦ４」と示される。９４０Ｂでは回路記述は以下のように示される。
【００９１】
Module dff(q,d, clk);
input SET, RST, clk,d;
output q,q(-);
wire SET,RST,clk,d;
wire n1o, n2o, n3o, n4o;
nand n1(n1o,SET,n4o,n2o);
nand n2(n2o,RST,n1o,clk);
nand n3(n3o,n4o,n2o,clk);
nand n4(n4o,d,RST,n3o);
nand n5(q,SET,n2o,q(-));
nand n6(q(-),RST,n3o,q);
endmodule
【００９２】
９４０Ｃでは回路記述は以下のように示される。
NAND(VDD:3, A:1, B:2, Y:4, GND:0)
⇒＊ A CMOS NAND gate
MP3 4 1 3 3 CMOSP W=28.0U L=2.0U AS=252P
AD=252P
MP4 4 2 3 3 CMOSP W=28.0U L=2.0U AS=252P
AD=252P
MN1 4 1 5 0 CMOSN W=10.0U L=2.0U AS=90P AD=90P
MN2 5 2 0 0 CMOSN W=10.0U L=2.0U AS=90P AD=90P
.MODEL CMOSN NMOS(〜)
.MODEL CMOSN PMOS(〜)
【００９３】
図１７に示すように、本実施形態に係る論理構成方法は、回路記述言語から、トランジスタレベル９４０Ｃのネットリストではなく、論理回路レベル９４０Ｂのネットリストを生成する。
【００９４】
図１８は、再構成可能な半導体装置が実現するパラレルシリアル変換シフトレジスタの一例である。図示されるパラレルシリアル変換シフトレジスタの回路図９５０Ａは、ＭＬＵＴ３０が機能的に実現する順序回路であり、物理的には、図３Ａに示すＩ／Ｏバッファ１２によって実現される。９５０Ｂは、図１８に示すパラレルシリアル変換シフトレジスタのタイムチャートである。
【００９５】
図１９は、図１８の回路を再構成するための回路記述の一例である。図１９の回路記述は、Verilog-HDLであるが、素子レベルではなく、論理回路レベルで記述されている。ＦＦの内部構造も回路記述されている。
【００９６】
図２０は、図１８の回路を再構成するための回路記述の別な一例である。図２０の回路記述は、ＦＦは、ゲートで実現されている。
【００９７】
さらに、ネットリストから、図１１Ａ及び図１１Ｂで説召したように、順序回路を含んで成る論理コーンを抽出し、論理コーンに対する入力線の数を、２分のｎで除算した数に合わせて、前記論理コーンの一部を構成するとともに、メモリセルユニットに記憶するための真理値表データを生成する。
【００９８】
図２１は、論理構成処理の一例を示すフローチャートである。論理構成処理は、図１６に示す情報処理装置が実行する。まず、論理合成（Ｓ１０１）を行うことにより、回路構成を記述した回路記述に基づいて、回路の接続情報を有するネットリストを生成する（Ｓ１０２）。これらの処理は、一実施例によれば、Ｃ言語等の高級言語に基づいて、ネットリストを生成するが、当該処理の詳細は、図２６で説明する。
【００９９】
次に、ネットリストから、帰還ネット及びＦＦを削除して、バッファに置き換える（Ｓ１０３）。このとき、接続情報を保持し、後のＳ１０９で削除した帰還ネットとＦＦを適用可能にする。
【０１００】
順序回路を含んで成る論理コーンを抽出する（Ｓ１０４）。論理コーンの抽出は、生成したネットリストから直接論理コーンを生成する処理と、ネットリストからスキャン化された順序回路データセットと、グルーロジックに分けて、そのグルーロジックから論理コーンを抽出する処理の２つの方法があるが、後者は、図２８を用いて後述する。
【０１０１】
次に生成した論理コーンにおいて、ＦＦが論理コーン末端に収まるか判断する（Ｓ１０５）。図２２は、ＦＦが論理コーン末端に収まる例を示す図である。フリップフロップ出力Ｓが、論理コーンを形成するＭＬＵＴから出力されるため、ＦＦが論理コーン末端に収まる。
【０１０２】
図２３は、ＦＦが論理コーン末端に収まる例を示す図である。論理コーンの末端にあるＭＬＵＴ３０は、４入力１出力である必要があり、図示されるように、その入出力要件を満たしている。
【０１０３】
図２４は、折り返しをするために、ＭＬＵＴを追加する一例である。図２２で折り返すと交互でＭＬＵTが重ならないのでまた１段ＭＬＵを追加している。その場合、ＭＬＵＴ段数を増やして（Ｓ１０６）、ＦＦが論理コーンの末端にあるようになる。
【０１０４】
図２５は、双方向ＭＬＵＴを使って折り返し処理した例である。折り返し処理でも同様に、ＦＦが論理コーン末端に収まるか判断し（Ｓ１０７）、末端にＦＦがなければ、ＭＬＵＴ段数を追加する（Ｓ１０８）。
【０１０５】
論理コーンの割り当てができれば、ステップＳ１０３で削除した帰還ネット及びＦＦを、ＭＬＵＴに割り当てる（Ｓ１０９）。
【０１０６】
次に、ＭＬＵＴ論理段数（論理コーンに対する入力線の数を、２分のｎで除算した数に相当するＭＬＵＴの段数）で、論理コーンを構成する複数のＭＬＵＴのための真理値表データを生成する（Ｓ１１０）。真理値表データの生成では、２メモリセルユニット型ＭＬＵＴの折り返し処理をするための第1及び第２真理値表データの生成を含む。言い換えれば、当該ステップは、一辺におけるアドレス入力に対して、一辺から論理値を出力するための第１真理値表データと他辺から論理値を出力するための第２真理値表データとを生成する。第１真理値データは、記憶部の一辺から入力されるアドレスのデコード信号で選択されて、一辺における第１複数データ線に出力する真理値表データであり、第２真理値表データは、記憶部の他辺における第２複数データ線に出力する真理値表データである。
【０１０７】
次に、真理値表データをＭＲＬＤに出力して（Ｓ１１１）、処理を終了する。なお、Ｓ１１１の代わりに、論理構成装置がシミュレーションしたＭＲＬＤに真理値表データを割り当ててすることで、動作検証をしてもよい。
【０１０８】
［４．１］高級言語からのネットリストの生成
図２６は、Ｃ言語等の高級言語に基づいて、ネットリストを生成する処理の一例を示す。双方向型ＭＬＵＴは、複数のアドレス入力を有するが、Ｃ言語などの高級言語の場合、３２ビットの演算処理などがあり、それらをＭＬＵＴのアドレス入力数にビット分割する必要がある。
【０１０９】
まず、高級言語で記述されたプログラムの中の変数ビットを、より小さいビットに型変換する（Ｓ２０１）。例えば、Ｆｌｏａｔ型の変数ビットを、よりビットの小さいＩｎｔ型の変数ビットに変換する。これにより、ＭＬＵＴの入力数に比較的近い演算となり、論理コーンを小さくすることができる。次に、ループ展開する（Ｓ２０２）。ループ展開により、毎回の繰り返しごとに発生する「ループの終了」条件のテストを減少させるので、真理値表データの数を少なくすることができる。次に、並列化処理を行う（Ｓ２０３）。並列化処理は、処理をいくつかの小さな処理に分割し、それらの小さな処理を同調させて並列実行し、最終結果を得る処理である。ＭＲＬＤは、多入力多出力が可能なので、並列化処理が容易である。これにより、ＭＲＬＤの処理能力が向上する。
【０１１０】
［４．２］スキャン化
図２７には、生成されたネットリストで示されるグルーロジック１０００ＡとＦＦの概略を示す。論理回路には組合せ回路と順序回路があるが、組合せ論理回路はグルー・ロジックと言う。図２８は、スキャン化された順序回路データセットと分けたグルーロジックから論理コーンを抽出する処理を示すフローチャートである。
【０１１１】
生成されたネットリストに対して、スキャン化可能なＦＦを抽出する（Ｓ３０１）。スキャン化とは、論理回路内のレジスタを、論理合成された回路の内部のＦＦを、スキャン機能付きＦＦ（スキャンＦＦ）に置き換えることにより、ＦＦを最適配置することである。なお、ＦＦがランダムにスキャン化されると配線が混線して有効で短いチェーン配線が構成できないため、論理状態を見て最適最短のチェーンを形成するように、抽出する。
【０１１２】
図２９は、スキャン化により新たに生成されたグルーロジックと、スキャンＦＦの概略を示す。スキャン化により、図２７のグルー・ロジック１０００Ａを、スキャンＦＦ１１００と接続するグルーロジック１０００Ｂに構成し、図２７に示す回路内のＦＦを、スキャンＦＦ１１００に置き換える。また、このようにすることで、スキャンＦＦ１１００は、グルーロジック１０００Ｂを挟む形で配置される。図２７と、図２９を比較すると、グルーロジックとＦＦ間の接続関係が、図２７に示す接続関係の方が簡略化されていることがわかる。このような簡略化により、ＦＦとグルーロジック間の接続に必要となる配線論理を大幅に減らすことができる。
【０１１３】
論理構成については、今までのＭＲＬＤの論理構成は組み合わせ回路と順序回路とを区別せず、回路をＭＬＵＴに配置して配線していた。ＭＲＬＤはＭＬＵＴでの組み合わせ回路や配線がメモリの記憶情報で構成されることから、図２７に示すように、グルーロジックとＦＦが混在し、このまま論理構成すると、ＦＦと組合せ論理回路を接続する配線論理が必要になるので、配線論理が増えて合成効率が下がる。しかし、順序回路を先に配置すれば、ＦＦと組合せ論理回路を接続する配線論理の量が相対的に減少するので、組み合わせ回路間の配線論理が削減できる。
【０１１４】
抽出処理により特定されたスキャン化可能なＦＦから、真理値表のデータセットを生成する（Ｓ３０２）。スキャンＦＦ１１００を抽出する。そして、論理合成したＦＦ間には複数のＭＬＵＴが必要になるので、これを組み合わせ回路を表現する真理値表データを生成する。当然、ＦＦなので、配線論理も含まれるので、生成する真理値表データには、ＦＦ間の論理状態を配線論理で表真理値も含まれる。ここで生成される複数のＭＬＵＴにそれぞれ書き込むための複数の真理値表データは、ＦＦ間の接続状態を表現するので、図２７に示すグルーロジックとＦＦ間の配線論理は生成されない。
【０１１５】
次に、ＦＦの配置を行う（Ｓ３０３）。このステップでは、同期選択したＭＬＵＴにＦＦ用の真理値データを割り当てる処理が行われる。当該処理も、シミュレートしたＭＬＵＴに真理値表を割り当てる処理である。なお、当該ＭＬＵＴのシミュレーションでは、回路記述を実現する真理値表をＭＬＵＴに書き込んだ場合、動作速度を計るタイミング分析を少なくとも行う。そのため、当該シミュレーション環境では、所望の回路記述を実現するＭＬＵＴ数に相当する配線長を計算し、さらに配線帳による信号遅延を計算し、クロック同期などのタイミング分析を行う。
【０１１６】
そして、グルーロジックの配置を行う（Ｓ３０４）。このステップでは、非同期選択したＭＬＵＴにグルーロジックの真理値データを割り当てる処理が行われる。当該処理も、シミュレートしたＭＬＵＴに真理値表を割り当てる処理である。
【０１１７】
なお、Ｓ３０４では、必要に応じて、図１２〜図１４で説明したＭＬＵＴ分割又は結合を行ってもよい。ＭＬＵＴ分割又は結合とは、ネットリストを、ＭＬＵＴに適当なネットリストとすることである。分割ステップでは、１つのＭＬＵＴに割り当てる１つの真理値表に所定の論理回路を包含できるように、論理回路の入力及び出力数を所定のＡＤ対の数以下にするステップである。結合は、ＭＬＵＴに構成される真理値表の数を最適化するために、１つのＭＬＵＴに包含できる２つ以上の真理値表を１つの真理値表にまとめる。このようなＭＬＵＴ分割又は結合により、ＭＬＵＴに構成される真理値表の数を最適化することができる。
【０１１８】
次に、真理値表を割り当てられたＭＬＵＴが所定のＭＬＵＴ数や、動作速度などの条件を満たすか評価する（Ｓ３０５）。評価が条件を満たせば（Ｓ３０５  Ｙｅｓ）、実際の真理値表データを生成し、記憶部２１４に格納、及び／又は、出力部２１３を介して、ＭＲＬＤに書き込み、動作させる処理を行う。このとき、生成された真理値表は、ステップＳ３０２で抽出されたスキャン化すべき順序回路データセット（つまりスキャンＦＦ）から、複数のＭＬＵＴのうちの第１セットに書き込むための第１真理値表データセットと、ネットリストの組合せ論理回路データセットから、複数のＭＬＵＴのうちの第２セットに書き込むための第２真理値表データセットが生成される。条件を満たさない場合（Ｓ３０５  Ｎｏ）、Ｓ３０３に戻り、ＦＦ及びグルーロジックのＭＬＵＴへの再配置を再度行うことを繰り返す。
【０１１９】
［５］ＭＬＵＴを論理又は接続動作
ＭＲＬＤでの論理又は接続動作の説明を以下にする。なお、説明としては多方向ＭＬＵＴの例で行う。
Ａ．論理要素
図３０は、論理要素として動作するＭＬＵＴの一例を示す図である。図３０では、説明を簡単にするために、アドレスセレクタ、データセレクタ、及びＩ／Ｏバッファの記載は、省略される。図３０に示すＭＬＵＴ３０ａ、３０ｂは、４つの論理用アドレス入力ＬＡ線Ａ０〜Ａ３と、４つの論理動作用データ線Ｄ０〜Ｄ３と、４×１６＝６４個の記憶素子４０と、アドレスデコーダ９とをそれぞれ有する。論理動作用データ線Ｄ０〜Ｄ３は、２４個の記憶素子４０をそれぞれ直列に接続する。アドレスデコーダ９は、論理用アドレス入力ＬＡ線Ａ０〜Ａ３に入力される信号に基づき、１６本のワード線のいずれかに接続される４つの記憶素子を選択するように構成される。この４つの記憶素子はそれぞれ、論理動作用データ線Ｄ０〜Ｄ３に接続され、記憶素子に記憶されるデータを論理動作用データ線Ｄ０〜Ｄ３に出力する。例えば、論理用アドレス入力ＬＡ線Ａ０〜Ａ３に適当な信号が入力される場合は、４つの記憶素子４０ａ、４０ｂ、４０ｃ、及び４０ｄを選択するように構成することができる。ここで、記憶素子４０ａは、論理動作用データ線Ｄ０に接続され、記憶素子４０ｂは、論理動作用データ線Ｄ１に接続され、記憶素子４０ｃは、論理動作用データ線Ｄ２に接続され、記憶素子４０ｄは、論理動作用データ線Ｄ３に接続される。そして、論理動作用データ線Ｄ０〜Ｄ３には、記憶素子４０ａ〜４０ｄに記憶される信号が出力される。このように、ＭＬＵＴ３０ａ、３０ｂは、論理用アドレス入力ＬＡ線Ａ０〜Ａ３から論理用アドレス入力ＬＡを受け取り、その論理用アドレス入力ＬＡによってアドレスデコーダ９が選択する４つの記憶素子４０に記憶される値を、論理動作用データ線Ｄ０〜Ｄ３に論理動作用データとしてそれぞれ出力する。なお、ＭＬＵＴ３０ａの論理用アドレス入力ＬＡ線Ａ２は、隣接するＭＬＵＴ３０ｂの論理動作用データ線Ｄ０と接続しており、ＭＬＵＴ３０ａは、ＭＬＵＴ３０ｂから出力される論理動作用データを、論理用アドレス入力ＬＡとして受け取る。また、ＭＬＵＴ３０ａの論理動作用データ線Ｄ２は、ＭＬＵＴ３０ｂの論理用アドレス入力ＬＡ線Ａ０と接続しており、ＭＬＵＴ３０ａが出力する論理動作用データは、ＭＬＵＴ３０ｂで論理用アドレス入力ＬＡとして受け取られる。例えば、ＭＬＵＴ３０ａの論理動作用データ線Ｄ２は、ＭＬＵＴ３０ａの論理用アドレス入力ＬＡ線Ａ０〜Ａ３に入力される信号に基づき、論理動作用データ線Ｄ２に接続される１６個の記憶素子のいずれか１つに記憶される信号をＭＬＵＴ３０ｂの論理用アドレス入力ＬＡ線Ａ０に出力する。同様に、ＭＬＵＴ３０ｂの論理動作用データ線Ｄ０は、ＭＬＵＴ３０ｂの論理用アドレス入力ＬＡ線Ａ０〜Ａ３に入力される信号に基づき、論理動作用データ線Ｄ０に接続される１６個の記憶素子のいずれか１つに記憶される信号をＭＬＵＴ３０ａの論理用アドレス入力ＬＡ線Ａ２に出力する。このように、ＭＲＬＤ同士の連結は、１対のアドレス線とデータ線とを用いる。
【０１２０】
なお、図３０では、ＭＬＵＴ３０ａ、３０ｂが有するＡＤ対は４であるが、ＡＤ対の数は、特に後述するように４に限定されない。
【０１２１】
図３１は、論理回路として動作するＭＬＵＴの一例を示す図である。本例では、論理用アドレス入力ＬＡ線Ａ０及びＡ１を２入力ＮＯＲ回路７０１の入力とし、論理用アドレス入力ＬＡ線Ａ２及びＡ３を２入力ＮＡＮＤ回路７０２の入力とする。そして、２入力ＮＯＲ回路７０１の出力と、２入力ＮＡＮＤ回路７０２の出力を、２入力ＮＡＮＤ回路７０３に入力し、２入力ＮＡＮＤ回路７０３の出力を論理動作用データ線Ｄ０に出力する論理回路を構成する。
【０１２２】
図３２は、図３１に示す論理回路の真理値表を示す図である。図３１の論理回路は、４入力のため、入力Ａ０〜Ａ３の全ての入力を入力として使用する。一方、出力は、１つのみなので、出力Ｄ０のみを出力として使用する。真理値表の出力Ｄ１〜Ｄ３の欄には「＊」が記載されている。これは、「０」又は「１」のいずれの値でもよいことを示す。しかしながら、実際に再構成のために真理値表データをＭＬＵＴに書き込むときには、これらの欄には、「０」又は「１」のいずれかの値を書き込む必要がある。少なくとも図４に示すメモリセルユニット３１Ａとメモリセルユニット３１Ｂとの関係で不必要なデータは０データにする。
【０１２３】
Ｂ．接続要素
図３３は、接続要素として動作するＭＬＵＴの一例を示す図である。図３３では、接続要素としてのＭＬＵＴは、論理用アドレス入力ＬＡ線Ａ０の信号を論理動作用データ線Ｄ１に出力し、論理用アドレス入力ＬＡ線Ａ１の信号を論理動作用データ線Ｄ２に出力し、論理用アドレス入力ＬＡ線Ａ２の信号を論理動作用データ線Ｄ３に出力するように動作する。接続要素としてのＭＬＵＴはさらに、論理用アドレス入力ＬＡ線Ａ３の信号を論理動作用データ線Ｄ０に出力するように動作する。
【０１２４】
図３４は、図３３に示す接続要素の真理値表を示す図である。図３３に示す接続要素は、４入力４出力である。したがって、入力Ａ０〜Ａ３の全ての入力と、出力Ｄ０〜Ｄ３の全ての出力が使用される。図３４に示す真理値表によって、ＭＬＵＴは、入力Ａ０の信号を出力Ｄ１に出力し、入力Ａ１の信号を出力Ｄ２に出力し、入力Ａ２の信号を出力Ｄ３に出力し、入力Ａ３の信号を出力Ｄ０に出力する接続要素として動作する。
【０１２５】
図３５は、ＡＤ対０、ＡＤ対１、ＡＤ対２、及びＡＤ対３の４つのＡＤ対を有するＭＬＵＴによって実現される接続要素の一例を示す図である。ＡＤ０は、論理用アドレス入力ＬＡ線Ａ０と論理動作用データ線Ｄ０とを有する。ＡＤ対１は、論理用アドレス入力ＬＡ線Ａ１と論理動作用データ線Ｄ１とを有する。ＡＤ対２は、論理用アドレス入力ＬＡ線Ａ２と論理動作用データ線Ｄ２とを有する。そして、ＡＤ対３は、論理用アドレス入力ＬＡ線Ａ３と論理動作用データ線Ｄ３とを有する。図３５において、２点鎖線は、ＡＤ対０の論理用アドレス入力ＬＡ線Ａ０に入力された信号がＡＤ対１の論理動作用データ線Ｄ１に出力される信号の流れを示す。破線は、第２のＡＤ対１の論理用アドレス入力ＬＡ線Ａ１に入力された信号がＡＤ対２の論理動作用データ線Ｄ２に出力される信号の流れを示す。実線は、ＡＤ対２の論理用アドレス入力ＬＡ線Ａ２に入力された信号がＡＤ対３の論理動作用データ線Ｄ３に出力される信号の流れを示す。一点鎖線は、ＡＤ対３の論理用アドレス入力ＬＡ線Ａ３に入力された信号がＡＤ対０の論理動作用データ線Ｄ０に出力される信号の流れを示す。
【０１２６】
なお、図３５では、ＭＬＵＴ３０が有するＡＤ対は４であるが、ＡＤ対の数は、特に４に限定されない。
【０１２７】
Ｃ．論理要素と接続要素の組合せ機能
図３６は、１つのＭＬＵＴが、論理要素及び接続要素として動作する一例を示す図である。図３６に示す例では、論理用アドレス入力ＬＡ線Ａ０及びＡ１を２入力ＮＯＲ回路１７１の入力とし、２入力ＮＯＲ回路１７１の出力と、論理用アドレス入力ＬＡ線Ａ２とを２入力ＮＡＮＤ回路１７２の入力とし、２入力ＮＡＮＤ回路１７２の出力を論理動作用データ線Ｄ０に出力する論理回路を構成する。また同時に、論理用アドレス入力ＬＡ線Ａ３の信号を論理動作用データ線Ｄ２に出力する接続要素を構成する。
【０１２８】
図３７に、図３６に示す論理要素及び接続要素の真理値表を示す。図３６の論理動作は、入力Ａ０〜Ａ２の３つの入力を使用し、１つの出力Ｄ０を出力として使用する。一方、図３７の接続要素は、入力Ａ３の信号を出力Ｄ２に出力する接続要素が構成される。
【０１２９】
図３８は、ＡＤ対０、ＡＤ対１、ＡＤ対２、及びＡＤ対３の４つのＡＤ対を有するＭＬＵＴによって実現される論理動作及び接続要素の一例を示す図である。図３５に示すＭＬＵＴと同様に、ＡＤ対０は、論理用アドレス入力ＬＡ線Ａ０と論理動作用データ線Ｄ０とを有する。ＡＤ１対は、論理用アドレス入力ＬＡ線Ａ１と論理動作用データ線Ｄ１とを有する。ＡＤ対２は、論理用アドレス入力ＬＡ線Ａ２と論理動作用データ線Ｄ２とを有する。そして、ＡＤ対３は、論理用アドレス入力ＬＡ線Ａ３と論理動作用データ線Ｄ３とを有する。上述のように、ＭＬＵＴ３０は、３入力１出力の論理動作と、１入力１出力の接続要素との２つの動作を１つのＭＬＵＴ３０で実現する。具体的には、論理動作は、ＡＤ対０の論理用アドレス入力ＬＡ線Ａ０と、ＡＤ対１の論理用アドレス入力ＬＡ線Ａ１と、ＡＤ対２の論理用アドレス入力ＬＡ線Ａ２とを入力として使用する。そして、ＡＤ対０の論理動作用データ線Ｄ０のアドレス線を出力と使用する。また、接続要素は、破線で示すようにＡＤ対２の論理用アドレス入力ＬＡ線Ａ２に入力された信号をＡＤ対１の論理動作用データ線Ｄ１に出力する。
【０１３０】
以上説明した実施形態は典型例として挙げたに過ぎず、その各実施形態の構成要素の組合せ、変形及びバリエーションは当業者にとって明らかであり、当業者であれば本発明の原理及び請求の範囲に記載した発明の範囲を逸脱することなく上述の実施形態の種々の変形を行えることは明らかである。特に、ＭＲＬＤの論理又は接続動作において、双方向ＭＬＵＴを、多方向ＭＬＵＴの動作とすることは実施形態の変更として可能である。
【符号の説明】
【０１３１】
２０    ＭＲＬＤ
３０    ＭＬＵＴ
６０    論理部アレイ
１００    再構成可能な半導体装置
【図１】
2014080872.tif 000003
【図２】
2014080872.tif 000004
【図３Ａ】
2014080872.tif 000005
【図３Ｂ】
2014080872.tif 000006
【図４】
2014080872.tif 000007
【図５】
2014080872.tif 000008
【図６】
2014080872.tif 000009
【図７】
2014080872.tif 000010
【図８】
2014080872.tif 000011
【図９】
2014080872.tif 000012
【図１０】
2014080872.tif 000013
【図１１Ａ】
2014080872.tif 000014
【図１１Ｂ】
2014080872.tif 000015
【図１２】
2014080872.tif 000016
【図１３】
2014080872.tif 000017
【図１４】
2014080872.tif 000018
【図１５】
2014080872.tif 000019
【図１６】
2014080872.tif 000020
【図１７】
2014080872.tif 000021
【図１８】
2014080872.tif 000022
【図１９】
2014080872.tif 000023
【図２０】
2014080872.tif 000024
【図２１】
2014080872.tif 000025
【図２２】
2014080872.tif 000026
【図２３】
2014080872.tif 000027
【図２４】
2014080872.tif 000028
【図２５】
2014080872.tif 000029
【図２６】
2014080872.tif 000030
【図２７】
2014080872.tif 000031
【図２８】
2014080872.tif 000032
【図２９】
2014080872.tif 000033
【図３０】
2014080872.tif 000034
【図３１】
2014080872.tif 000035
【図３２】
2014080872.tif 000036
【図３３】
2014080872.tif 000037
【図３４】
2014080872.tif 000038
【図３５】
2014080872.tif 000039
【図３６】
2014080872.tif 000040
【図３７】
2014080872.tif 000041
【図３８】
2014080872.tif 000042
【国際調査報告】
2014080872.tif 000043
2014080872.tif 000044