(57)【要約】  再構成可能な半導体装置であって、互いにアドレス線又はデータ線で接続する複数の論理部を備え、前記各論理部は、複数のアドレス線と、複数のデータ線と、前記複数のアドレス線の一部から入力されるアドレスをデコードする第１アドレスデコーダと、前記複数のアドレス線の他の一部から入力されるアドレスをデコードする第２アドレスデコーダと、前記第１アドレスデコーダのデコード線により特定される複数にメモリセルを有する第１メモリセルユニットと、前記第２アドレスデコーダのデコード線により特定される複数のメモリセルを有する第２メモリセルユニットと、を備える再構成可能な半導体装置が提供される。
2014065424.tif 000002
【特許請求の範囲】
【請求項１】
再構成可能な半導体装置であって、
互いにアドレス線又はデータ線で接続する複数の論理部を備え、
前記各論理部は、
複数のアドレス線と、
複数のデータ線と、
前記複数のアドレス線の一部から入力されるアドレスをデコードする第１アドレスデコーダと、
前記複数のアドレス線の他の一部から入力されるアドレスをデコードする第２アドレスデコーダと、
前記第１アドレスデコーダのデコード線により特定される複数にメモリセルを有する第１メモリセルユニットと、
前記第２アドレスデコーダのデコード線により特定される複数のメモリセルを有する第２メモリセルユニットと、を備えることを特徴とする再構成可能な半導体装置。
【請求項２】
前記メモリセルユニットは、マルチルックアップテーブルである、請求項１に記載の半導体装置。
【請求項３】
前記論理部は、矩形状であり、一辺から複数のアドレス線又は複数のデータ線で他の論理部と接続するとともに、前記一辺と反対側の他辺から複数のアドレス線又は複数のデータ線で他の論理部と接続する、請求項１又は２に記載の半導体装置。
【請求項４】
前記第１メモリセルユニットは、前記一辺からの第１複数アドレス線により特定されて、前記第１複数アドレス線の２倍の数の第１複数データ線に出力する複数のメモリセルを有し、
前記第２メモリセルユニットは、前記他辺からの第２複数アドレス線により特定されて、前記第２複数アドレス線の２倍の数の第２複数データ線に出力する複数のメモリセルを有し、
前記論理部は、第１複数データ線及び第２複数データ線の一部を、前記一辺へ出力するとともに、前記第１複数データ線及び第２複数データ線の他の一部を、他辺へ出力する、請求項３に記載の半導体装置。
【請求項５】
前記第１メモリセルユニットは、前記一辺からのアドレス入力に対して、前記一辺へデータを出力する第１真理値表データと、前記他辺へデータを出力する第２真理値表データを記憶し、且つ、
前記第２メモリセルユニットは、前記他辺からのアドレス入力に対して、前記一辺へデータを出力する第３真理値表データと、前記他辺へデータを出力する第４真理値表データを記憶し、
前記第１〜第４真理値表データに従って、前記データの出力方向を変える、請求項４に記載の半導体装置。
【請求項６】
前記第１メモリセルユニットは、前記一辺からの第１複数アドレス線により特定されて、前記第１複数アドレス線の２倍の数の第１複数データ線に出力する複数のメモリセルを有し、
前記第２メモリセルユニットは、前記他辺からの第２複数アドレス線により特定されて、前記第２複数アドレス線の同じ数の第３複数データ線に出力する複数のメモリセルを有し、
前記論理部は、第１複数データ線の一部及び第３複数データ線を、前記一辺へ出力するとともに、前記第１複数データ線の他の一部を、他辺へ出力する、請求項４に記載の半導体装置。
【請求項７】
前記第１及び／又は第２メモリセルユニットは、
ある前記アドレス線で特定されたメモリセルに記憶される値の論理演算を、データ線に出力するための真理値表データを記憶して、論理回路として動作し、及び／又は、
ある前記アドレス線で特定されたメモリセルに記憶される値を、他の論理部のアドレス線に接続するデータ線に出力するための真理値表データを記憶して、接続回路として動作するように構成される、請求項１〜６の何れか１項に記載の半導体装置。
【請求項８】
前記第１メモリセルユニット及び第２メモリセルユニットは、複数の真理値表データを記憶し、前記複数の真理値表データの何れか１つを特定するデータを出力する第２の複数アドレス線に接続する、請求項１〜７の何れか１項に記載の半導体装置。
【請求項９】
前記第１メモリセルユニット及び第２メモリセルユニットの何れかのデータ線の一部は、前記第２の複数アドレス線に接続するとともに、前記第１メモリセルユニット及び第２メモリセルユニットの何れかは、前記第２の複数アドレス線に出力して、前記複数の真理値表データを特定するための真理値表データを記憶する、請求項１〜８の何れか１項に記載の半導体装置。
【請求項１０】
前記第２の複数のアドレス線は、外部と接続する、請求項１〜８の何れか１項に記載の半導体装置。
【請求項１１】
前記論理部は、
データ入力線と、
データ出力線と、
前記真理値表データに応答して選択的に前記データ入力線からのデータ入力と、前記データ出力線への前記データ出力とを結合させ、及び／又は、前記真理値表データに応答して前記データ入力に関して論理演算したデータを、前記データ出力線へデータ出力する再構成可能論理マルチプレクサと、を備え、
前記データ入力線および前記データ出力線により近接する前記論理部が接続される、請求項１〜１０の何れか１項に記載の半導体装置。
【請求項１２】
前記メモリセルユニットから読み出された真理値表データを保持するとともに、前記保持した真理値表データを、前記再構成可能論理マルチプレクサに出力する保持部をさらに備える請求項１１に記載の半導体装置。
【請求項１３】
前記再構成可能論理マルチプレクサは、前記データ入力線からのデータ入力によって、前記保持部に保持された真理値表データの何れかを、選択して出力する請求項１１又は１２に記載の半導体装置。
【請求項１４】
再構成可能な半導体装置の制御方法であって、
前記半導体装置は、
互いにアドレス線又はデータ線で接続する複数の論理部を備え、
前記各論理部は、
複数のアドレス線と、
複数のデータ線と、
第１アドレスデコーダと、
第２アドレスデコーダと、
複数にメモリセルを有する第１メモリセルユニットと、
複数のメモリセルを有する第２メモリセルユニットと、を備え、
前記第１アドレスデコーダは、前記複数のアドレス線の一部から入力されるアドレスをデコードし、
前記第２アドレスデコーダは、前記複数のアドレス線の他の一部から入力されるアドレスをデコードし、
前記第１メモリセルユニットのメモリセルは、前記第１アドレスデコーダのデコード線により特定され、
前記第２メモリセルユニットのメモリセルは、前記第２アドレスデコーダのデコード線により特定される、ことを特徴とする制御方法。
【請求項１５】
前記メモリセルユニットは、マルチルックアップテーブルである、請求項１４に記載の制御方法。
【請求項１６】
前記論理部は、矩形状であり、一辺から複数のアドレス線又は複数のデータ線で他の論理部と接続するとともに、前記一辺と反対側の他辺から複数のアドレス線又は複数のデータ線で他の論理部と接続する、請求項１４又は１５に記載の制御方法。
【請求項１７】
前記第１メモリセルユニットは、前記一辺からの第１複数アドレス線により特定されて、前記第１複数アドレス線の２倍の数の第１複数データ線に出力する複数のメモリセルを有し、
前記第２メモリセルユニットは、前記他辺からの第２複数アドレス線により特定されて、前記第２複数アドレス線の２倍の数の第２複数データ線に出力する複数のメモリセルを有し、
前記論理部は、第１複数データ線及び第２複数データ線の一部を、前記一辺へ出力するとともに、前記第１複数データ線及び第２複数データ線の他の一部を、他辺へ出力する、請求項１６に記載の制御方法。
【請求項１８】
前記第１メモリセルユニットは、前記一辺からのアドレス入力に対して、前記一辺へデータを出力する第１真理値表データと、前記他辺へデータを出力する第２真理値表データを記憶し、且つ、
前記第２メモリセルユニットは、前記他辺からのアドレス入力に対して、前記一辺へデータを出力する第３真理値表データと、前記他辺へデータを出力する第４真理値表データを記憶し、
前記第１〜第４真理値表データに従って、前記データの出力方向を変える、請求項１７に記載の制御方法。
【請求項１９】
前記第１メモリセルユニットは、前記一辺からの第１複数アドレス線により特定されて、前記第１複数アドレス線の２倍の数の第１複数データ線に出力する複数のメモリセルを有し、
前記第２メモリセルユニットは、前記他辺からの第２複数アドレス線により特定されて、前記第２複数アドレス線の同じ数の第３複数データ線に出力する複数のメモリセルを有し、
前記論理部は、第１複数データ線の一部及び第３複数データ線を、前記一辺へ出力するとともに、前記第１複数データ線の他の一部を、他辺へ出力する、請求項１７に記載の制御方法。
【請求項２０】
前記第１及び／又は第２メモリセルユニットは、
ある前記アドレス線で特定されたメモリセルに記憶される値の論理演算を、データ線に出力するための真理値表データを記憶して、論理回路として動作し、及び／又は、
ある前記アドレス線で特定されたメモリセルに記憶される値を、他の論理部のアドレス線に接続するデータ線に出力するための真理値表データを記憶して、接続回路として動作するように構成される、請求項１４〜１９の何れか１項に記載の制御方法。
【請求項２１】
前記第１メモリセルユニット及び第２メモリセルユニットは、複数の真理値表データを記憶し、前記複数の真理値表データの何れか１つを特定するデータを出力する第２の複数アドレス線に接続する、請求項１４〜２０の何れか１項に記載の制御方法。
【請求項２２】
前記第１メモリセルユニット及び第２メモリセルユニットの何れかのデータ線の一部は、前記第２の複数アドレス線に接続するとともに、前記第１メモリセルユニット及び第２メモリセルユニットの何れかは、前記第２の複数アドレス線に出力して、前記複数の真理値表データを特定するための真理値表データを記憶する、請求項１４〜２１の何れか１項に記載の制御方法。
【請求項２３】
前記第２の複数のアドレス線は、外部と接続する、請求項１４〜２２の何れか１項に記載の制御方法。
【請求項２４】
前記論理部は、
データ入力線と、
データ出力線と、
再構成可能論理マルチプレクサと、を備え、
前記データ入力線および前記データ出力線により近接する前記論理部に接続し、
前記再構成可能論理マルチプレクサは、前記真理値表データに応答して選択的に前記データ入力線からのデータ入力と、前記データ出力線への前記データ出力とを結合し、
前記真理値表データに応答して前記データ入力に関して論理演算したデータを、前記データ出力線へデータ出力する、請求項１４〜２３の何れか１項に記載の制御方法。
【請求項２５】
前記メモリセルユニットから読み出された真理値表データを保持するとともに、前記保持した真理値表データを、前記再構成可能論理マルチプレクサに出力する保持部をさらに備え、
前記再構成可能論理マルチプレクサは、前記データ入力線からのデータ入力によって、前記保持部に保持された真理値表データの何れかを、選択して出力する、請求項２４に記載の制御方法。
【請求項２６】
再構成可能な半導体装置を制御するためのプログラムにおいて、
前記半導体装置は、
互いにアドレス線又はデータ線で接続する複数の論理部を備え、
前記各論理部は、
複数のアドレス線と、
複数のデータ線と、
第１アドレスデコーダと、
第２アドレスデコーダと、
複数にメモリセルを有する第１メモリセルユニットと、
複数のメモリセルを有する第２メモリセルユニットと、を備え、
前記第１アドレスデコーダは、前記複数のアドレス線の一部から入力されるアドレスをデコードし、
前記第２アドレスデコーダは、前記複数のアドレス線の他の一部から入力されるアドレスをデコードし、
前記論理部は、矩形状であり、一辺から複数のアドレス線又は複数のデータ線で他の論理部と接続するとともに、前記一辺と反対側の他辺から複数のアドレス線又は複数のデータ線で他の論理部と接続すし、
前記第１及び第２メモリセルユニットは、各々が真理値表データから構成されるプログラムを記憶して、論理要素及び／又は接続要素として構成する、半導体装置であって、
前記第１又は第２メモリセルユニットに、
一辺で接続する前記アドレス線で特定されたメモリセルに記憶される値の論理演算を、前記一辺と反対側で接続するデータ線に出力して、論理回路として動作する処理、
一辺で接続するある前記アドレス線で特定されたメモリセルに記憶される値を、前記一辺と反対側で接続するデータ線に出力して、接続回路として動作する処理、を実行させることを特徴とするプログラム。
【請求項２７】
前記メモリセルユニットは、マルチルックアップテーブルである、請求項２６に記載のプログラム。
【請求項２８】
第１複数アドレス線の２倍の数の第１複数データ線に出力する複数のメモリセルを有し、
前記第２メモリセルユニットは、前記他辺からの第２複数アドレス線により特定されて、前記第２複数アドレス線の２倍の数の第２複数データ線に出力する複数のメモリセルを有し、
前記第１又は第２メモリセルユニットに、
第１複数データ線及び第２複数データ線の一部を、前記一辺へ出力する処理、
前記第１複数データ線及び第２複数データ線の他の一部を、他辺へ出力する処理、を実行させる、請求項２６又は２７に記載のプログラム。
【請求項２９】
前記第１メモリセルユニットは、前記一辺からのアドレス入力に対して、前記一辺へデータを出力する第１真理値表データと、前記他辺へデータを出力する第２真理値表データを記憶し、且つ、
前記第２メモリセルユニットは、前記他辺からのアドレス入力に対して、前記一辺へデータを出力する第３真理値表データと、前記他辺へデータを出力する第４真理値表データを記憶し、
前記第１又は第２メモリセルユニットに、
前記第１〜第４真理値表データに従って、前記データの出力方向を変える処理を実行させる、請求項２６に記載のプログラム。
【請求項３０】
前記第１メモリセルユニットは、前記一辺からの第１複数アドレス線により特定されて、前記第１複数アドレス線の２倍の数の第１複数データ線に出力する複数のメモリセルを有し、
前記第２メモリセルユニットは、前記他辺からの第２複数アドレス線により特定されて、前記第２複数アドレス線の同じ数の第３複数データ線に出力する複数のメモリセルを有し、
前記第１又は第２メモリセルユニットに、
前記論理部は、第１複数データ線の一部及び第３複数データ線を、前記一辺へ出力するとともに、前記第１複数データ線の他の一部を、他辺へ出力する処理を実行させる、請求項２９に記載のプログラム。
【請求項３１】
前記第１メモリセルユニット及び第２メモリセルユニットの何れかのデータ線の一部は、前記第２の複数アドレス線に接続し、
前記第１メモリセルユニット及び第２メモリセルユニットの何れかに、前記第２の複数アドレス線に出力して、前記複数の真理値表データを特定する処理を実行させる、請求項２６〜３０の何れか１項に記載のプログラム。
【請求項３２】
前記論理部は、
データ入力線と、
データ出力線と、
再構成可能論理マルチプレクサと、を備え、
前記メモリセルユニット
前記データ入力線および前記データ出力線により近接する前記論理部に接続し、
前記再構成可能論理マルチプレクサは、前記真理値表データに応答して選択的に前記データ入力線からのデータ入力と、前記データ出力線への前記データ出力とを結合し、
前記真理値表データに応答して前記データ入力に関して論理演算したデータを、前記データ出力線へデータ出力する処理を実行させる、請求項２６〜３１の何れか１項に記載のプログラム。
【請求項３３】
請求項２６〜３２の何れか１項に示すプログラムを格納する記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能な半導体装置に関する。
【背景技術】
【０００２】
ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）など、回路構成を切り替え可能なＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）が広く使用されている（例えば、特許文献１）。出願人又は発明者は、メモリセルユニットで回路構成を実現する「ＭＰＬＤ（Ｍｅｍｏｒｙ−ｂａｓｅｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）」（登録商標）を開発している。ＭＰＬＤは、例えば、下記特許文献１に示される。ＭＰＬＤは、ＭＬＵＴ（Ｍｕｌｔｉ  Ｌｏｏｋ−Ｕｐ−Ｔａｂｌｅ）と呼ぶメモリアレイを相互に接続する。ＭＬＵＴは真理値表データを格納して、配線要素と論理要素を構成する。ＭＰＬＤは、このＭＬＵＴをアレイ状に並べ、相互接続することによってＦＰＧＡとほぼ同等の機能を実現している。【０００３】
また、ＭＰＬＤは、真理値表データにより、ＭＬＵＴを論理要素と配線要素の双方として使用することによって、論理領域と配線領域に柔軟性をもたせたデバイスであり（例えば、特許文献２）、メモリセルユニット間の接続に専用の切り替え回路を有するＦＰＧＡと異なる。【０００４】
さらに、ＭＬＵＴは、多方向に入出力するアドレス線又はデータ線を有する多方向型ＭＬＵＴ（特許文献１）や、矩形状であり、水平方向にのみデータを入出力する矩形状型ＭＬＵＴ（特許文献３）が開示されている。ＭＬＵＴ間の接続は、アドレス線とデータ線の１ビットずつを対にして、擬似的な双方向線を実現する。この擬似的な双方向線を「ＡＤ対」と呼ぶ。多方向型ＭＬＵＴは、隣接するＭＬＵＴが１つのＡＤ対で接続するので、隣接するＭＬＵＴと送信するデータは、１ビットとなる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２３９３２５号公報
【特許文献２】米国特許第５８１５７２６号明細書
【特許文献３】国際公開第２０１１／１６２１１６号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
マルチビットの演算を前提にコーディングされたデータ処理を、ＭＬＵＴで実現する場合、マルチビットを小さいビット数に分割（以下、「ビット分割」と言う）し、複数のＭＬＵＴによりビット演算を実現する必要がある。多方向型ＭＬＵＴは、隣接するＭＬＵＴに対して１つのデータ又はアドレス入出力しかもたないので、隣接するＭＬＵＴに対して１ビットずつのデータ伝送しかできない。そのため、マルチビット演算では、１ビット数へのビット分割が必要により、使用するＭＬＵＴ数が増加する。例えば、ＭＬＵＴで８ビットの加算器を実現する場合、１ビットずつ演算する加算器を実現するＭＬＵＴが８つ必要になり、それらの演算結果を足し合わせるための論理回路を実現するＭＬＵＴも必要になる。
【課題を解決するための手段】
【０００７】
上記課題を解決する形態は、以下の項目セットにより示される。
１．再構成可能な半導体装置であって、
互いにアドレス線又はデータ線で接続する複数の論理部を備え、
前記各論理部は、
複数のアドレス線と、
複数のデータ線と、
前記複数のアドレス線の一部から入力されるアドレスをデコードする第１アドレスデコーダと、
前記複数のアドレス線の他の一部から入力されるアドレスをデコードする第２アドレスデコーダと、
前記第１アドレスデコーダのデコード線により特定される複数にメモリセルを有する第１メモリセルユニットと、
前記第２アドレスデコーダのデコード線により特定される複数のメモリセルを有する第２メモリセルユニットと、を備えることを特徴とする再構成可能な半導体装置。
上記半導体装置によれば、メモリセルユニットは、アドレス線の二乗に比例して増えるので、データ線の数は同じであっても、各メモリセルユニットのアドレス数を少なくすれば、トータルに必要なメモリセルの数を少なくすることができる。
２．前記メモリセルユニットは、マルチルックアップテーブルである、項目１に記載の半導体装置。
本半導体装置は、論理要素及び／又は接続要素としての動作を、マルチルックアップテーブルで行うため、配線接続を選択回路で実現するＦＰＧＡとは明確に異なる。
３．前記論理部は、矩形状であり、一辺から複数のアドレス線又は複数のデータ線で他の論理部と接続するとともに、前記一辺と反対側の他辺から複数のアドレス線又は複数のデータ線で他の論理部と接続する、項目１又は２に記載の半導体装置。
隣接する論理部に対して複数ビットのデータ処理が可能になるので、複数ビット演算を行うプログラムから構成させるデータ処理において、使用する論理部の数を減らすことができる。
４．前記第１メモリセルユニットは、前記一辺からの第１複数アドレス線により特定されて、前記第１複数アドレス線の２倍の数の第１複数データ線に出力する複数のメモリセルを有し、
前記第２メモリセルユニットは、前記他辺からの第２複数アドレス線により特定されて、前記第２複数アドレス線の２倍の数の第２複数データ線に出力する複数のメモリセルを有し、
前記論理部は、第１複数データ線及び第２複数データ線の一部を、前記一辺へ出力するとともに、前記第１複数データ線及び第２複数データ線の他の一部を、他辺へ出力する、項目３に記載の半導体装置。
各メモリセルユニットのデータ数を、アドレス数より増やすとともに、各メモリセルユニットからデータ出力の方向を双方向にすることで、必要なメモリセルの数を少なくし、且つ、双方向へのデータ出力を可能にすることができる。
５．前記第１メモリセルユニットは、前記一辺からのアドレス入力に対して、前記一辺へデータを出力する第１真理値表データと、前記他辺へデータを出力する第２真理値表データを記憶し、且つ、
前記第２メモリセルユニットは、前記他辺からのアドレス入力に対して、前記一辺へデータを出力する第３真理値表データと、前記他辺へデータを出力する第４真理値表データを記憶し、
前記第１〜第４真理値表データに従って、前記データの出力方向を変える、項目４に記載の半導体装置。
６．前記第１メモリセルユニットは、前記一辺からの第１複数アドレス線により特定されて、前記第１複数アドレス線の２倍の数の第１複数データ線に出力する複数のメモリセルを有し、
前記第２メモリセルユニットは、前記他辺からの第２複数アドレス線により特定されて、前記第２複数アドレス線の同じ数の第３複数データ線に出力する複数のメモリセルを有し、
前記論理部は、第１複数データ線の一部及び第３複数データ線を、前記一辺へ出力するとともに、前記第１複数データ線の他の一部を、他辺へ出力する、項目４に記載の半導体装置。
何れかのメモリセルユニットの帰還方向の出力を制限することで、さらに、必要なメモリセルの数を減らすことができる。
７．前記第１及び／又は第２メモリセルユニットは、
ある前記アドレス線で特定されたメモリセルに記憶される値の論理演算を、データ線に出力するための真理値表データを記憶して、論理回路として動作し、及び／又は、
ある前記アドレス線で特定されたメモリセルに記憶される値を、他の論理部のアドレス線に接続するデータ線に出力するための真理値表データを記憶して、接続回路として動作するように構成される、項目１〜６の何れか１項に記載の半導体装置。
８．前記第１メモリセルユニット及び第２メモリセルユニットは、複数の真理値表データを記憶し、前記複数の真理値表データの何れか１つを特定するデータを出力する第２の複数アドレス線に接続する、項目１〜７の何れか１項に記載の半導体装置。
大容量メモリを活用し余剰アドレスをページ切替制御にして制御可能とした再構成可能な半導体装置が提供できる。
９．  前記第１メモリセルユニット及び第２メモリセルユニットの何れかのデータ線の一部は、前記第２の複数アドレス線に接続するとともに、前記第１メモリセルユニット及び第２メモリセルユニットの何れかは、前記第２の複数アドレス線に出力して、前記複数の真理値表データを特定するための真理値表データを記憶する、項目１〜８の何れか１項に記載の半導体装置。
大容量メモリを活用して、ページ切り替え制御をおこなうこともできる。
１０．前記第２の複数のアドレス線は、外部と接続する、項目１〜８の何れか１項に記載の半導体装置。【０００８】
１１．前記論理部は、
データ入力線と、
データ出力線と、
前記真理値表データに応答して選択的に前記データ入力線からのデータ入力と、前記データ出力線への前記データ出力とを結合させ、及び／又は、前記真理値表データに応答して前記データ入力に関して論理演算したデータを、前記データ出力線へデータ出力する再構成可能論理マルチプレクサと、を備え、
前記データ入力線および前記データ出力線により近接する前記論理部が接続される、項目１〜１０の何れか１項に記載の半導体装置。
１２．前記メモリセルユニットから読み出された真理値表データを保持するとともに、前記保持した真理値表データを、前記再構成可能論理マルチプレクサに出力する保持部をさらに備える項目１１に記載の半導体装置。
１３．前記再構成可能論理マルチプレクサは、前記データ入力線からのデータ入力によって、前記保持部に保持された真理値表データの何れかを、選択して出力する項目１１又は１２に記載の半導体装置。【０００９】
１４．再構成可能な半導体装置の制御方法であって、
前記半導体装置は、
互いにアドレス線又はデータ線で接続する複数の論理部を備え、
前記各論理部は、
複数のアドレス線と、
複数のデータ線と、
第１アドレスデコーダと、
第２アドレスデコーダと、
複数にメモリセルを有する第１メモリセルユニットと、
複数のメモリセルを有する第２メモリセルユニットと、を備え、
前記第１アドレスデコーダは、前記複数のアドレス線の一部から入力されるアドレスをデコードし、
前記第２アドレスデコーダは、前記複数のアドレス線の他の一部から入力されるアドレスをデコードし、
前記第１メモリセルユニットのメモリセルは、前記第１アドレスデコーダのデコード線により特定され、
前記第２メモリセルユニットのメモリセルは、前記第２アドレスデコーダのデコード線により特定される、ことを特徴とする制御方法。
１５．前記メモリセルユニットは、マルチルックアップテーブルである、項目１４に記載の制御方法。
１６．前記論理部は、矩形状であり、一辺から複数のアドレス線又は複数のデータ線で他の論理部と接続するとともに、前記一辺と反対側の他辺から複数のアドレス線又は複数のデータ線で他の論理部と接続する、項目１４又は１５に記載の制御方法。
１７．前記第１メモリセルユニットは、前記一辺からの第１複数アドレス線により特定されて、前記第１複数アドレス線の２倍の数の第１複数データ線に出力する複数のメモリセルを有し、
前記第２メモリセルユニットは、前記他辺からの第２複数アドレス線により特定されて、前記第２複数アドレス線の２倍の数の第２複数データ線に出力する複数のメモリセルを有し、
前記論理部は、第１複数データ線及び第２複数データ線の一部を、前記一辺へ出力するとともに、前記第１複数データ線及び第２複数データ線の他の一部を、他辺へ出力する、項目１６に記載の制御方法。
１８．前記第１メモリセルユニットは、前記一辺からのアドレス入力に対して、前記一辺へデータを出力する第１真理値表データと、前記他辺へデータを出力する第２真理値表データを記憶し、且つ、
前記第２メモリセルユニットは、前記他辺からのアドレス入力に対して、前記一辺へデータを出力する第３真理値表データと、前記他辺へデータを出力する第４真理値表データを記憶し、
前記第１〜第４真理値表データに従って、前記データの出力方向を変える、項目１７に記載の制御方法。
１９．前記第１メモリセルユニットは、前記一辺からの第１複数アドレス線により特定されて、前記第１複数アドレス線の２倍の数の第１複数データ線に出力する複数のメモリセルを有し、
前記第２メモリセルユニットは、前記他辺からの第２複数アドレス線により特定されて、前記第２複数アドレス線の同じ数の第３複数データ線に出力する複数のメモリセルを有し、
前記論理部は、第１複数データ線の一部及び第３複数データ線を、前記一辺へ出力するとともに、前記第１複数データ線の他の一部を、他辺へ出力する、項目１７に記載の制御方法。
２０．前記第１及び／又は第２メモリセルユニットは、
ある前記アドレス線で特定されたメモリセルに記憶される値の論理演算を、データ線に出力するための真理値表データを記憶して、論理回路として動作し、及び／又は、
ある前記アドレス線で特定されたメモリセルに記憶される値を、他の論理部のアドレス線に接続するデータ線に出力するための真理値表データを記憶して、接続回路として動作するように構成される、項目１４〜１９の何れか１項に記載の制御方法。
２１．前記第１メモリセルユニット及び第２メモリセルユニットは、複数の真理値表データを記憶し、前記複数の真理値表データの何れか１つを特定するデータを出力する第２の複数アドレス線に接続する、項目１４〜２０の何れか１項に記載の制御方法。
２２．前記第１メモリセルユニット及び第２メモリセルユニットの何れかのデータ線の一部は、前記第２の複数アドレス線に接続するとともに、前記第１メモリセルユニット及び第２メモリセルユニットの何れかは、前記第２の複数アドレス線に出力して、前記複数の真理値表データを特定するための真理値表データを記憶する、項目１４〜２１の何れか１項に記載の制御方法。
２３．前記第２の複数のアドレス線は、外部と接続する、項目１４〜２２の何れか１項に記載の制御方法。
２４．前記論理部は、
データ入力線と、
データ出力線と、
再構成可能論理マルチプレクサと、を備え、
前記データ入力線および前記データ出力線により近接する前記論理部に接続し、
前記再構成可能論理マルチプレクサは、前記真理値表データに応答して選択的に前記データ入力線からのデータ入力と、前記データ出力線への前記データ出力とを結合し、
前記真理値表データに応答して前記データ入力に関して論理演算したデータを、前記データ出力線へデータ出力する、項目１４〜２３の何れか１項に記載の制御方法。
２５．前記メモリセルユニットから読み出された真理値表データを保持するとともに、前記保持した真理値表データを、前記再構成可能論理マルチプレクサに出力する保持部をさらに備え、
前記再構成可能論理マルチプレクサは、前記データ入力線からのデータ入力によって、前記保持部に保持された真理値表データの何れかを、選択して出力する、項目２５に記載の制御方法。【００１０】
２６．再構成可能な半導体装置を制御するためのプログラムにおいて、
前記半導体装置は、
互いにアドレス線又はデータ線で接続する複数の論理部を備え、
前記各論理部は、
複数のアドレス線と、
複数のデータ線と、
第１アドレスデコーダと、
第２アドレスデコーダと、
複数にメモリセルを有する第１メモリセルユニットと、
複数のメモリセルを有する第２メモリセルユニットと、を備え、
前記第１アドレスデコーダは、前記複数のアドレス線の一部から入力されるアドレスをデコードし、
前記第２アドレスデコーダは、前記複数のアドレス線の他の一部から入力されるアドレスをデコードし、
前記論理部は、矩形状であり、一辺から複数のアドレス線又は複数のデータ線で他の論理部と接続するとともに、前記一辺と反対側の他辺から複数のアドレス線又は複数のデータ線で他の論理部と接続すし、
前記第１及び第２メモリセルユニットは、各々が真理値表データから構成されるプログラムを記憶して、論理要素及び／又は接続要素として構成する、半導体装置であって、
前記第１又は第２メモリセルユニットに、
一辺で接続する前記アドレス線で特定されたメモリセルに記憶される値の論理演算を、前記一辺と反対側で接続するデータ線に出力して、論理回路として動作する処理、
一辺で接続するある前記アドレス線で特定されたメモリセルに記憶される値を、前記一辺と反対側で接続するデータ線に出力して、接続回路として動作する処理、を実行させることを特徴とするプログラム。
２７．前記メモリセルユニットは、マルチルックアップテーブルである、項目２６に記載のプログラム。
２８．第１複数アドレス線の２倍の数の第１複数データ線に出力する複数のメモリセルを有し、
前記第２メモリセルユニットは、前記他辺からの第２複数アドレス線により特定されて、前記第２複数アドレス線の２倍の数の第２複数データ線に出力する複数のメモリセルを有し、
前記第１又は第２メモリセルユニットに、
第１複数データ線及び第２複数データ線の一部を、前記一辺へ出力する処理、
前記第１複数データ線及び第２複数データ線の他の一部を、他辺へ出力する処理、を実行させる、項目２６又は２７に記載のプログラム。
２９．前記第１メモリセルユニットは、前記一辺からのアドレス入力に対して、前記一辺へデータを出力する第１真理値表データと、前記他辺へデータを出力する第２真理値表データを記憶し、且つ、
前記第２メモリセルユニットは、前記他辺からのアドレス入力に対して、前記一辺へデータを出力する第３真理値表データと、前記他辺へデータを出力する第４真理値表データを記憶し、
前記第１又は第２メモリセルユニットに、
前記第１〜第４真理値表データに従って、前記データの出力方向を変える処理を実行させる、項目２６に記載のプログラム。
３０．前記第１メモリセルユニットは、前記一辺からの第１複数アドレス線により特定されて、前記第１複数アドレス線の２倍の数の第１複数データ線に出力する複数のメモリセルを有し、
前記第２メモリセルユニットは、前記他辺からの第２複数アドレス線により特定されて、前記第２複数アドレス線の同じ数の第３複数データ線に出力する複数のメモリセルを有し、
前記第１又は第２メモリセルユニットに、
前記論理部は、第１複数データ線の一部及び第３複数データ線を、前記一辺へ出力するとともに、前記第１複数データ線の他の一部を、他辺へ出力する処理を実行させる、項目２９に記載のプログラム。
３１．前記第１メモリセルユニット及び第２メモリセルユニットの何れかのデータ線の一部は、前記第２の複数アドレス線に接続し、
前記第１メモリセルユニット及び第２メモリセルユニットの何れかに、前記第２の複数アドレス線に出力して、前記複数の真理値表データを特定する処理を実行させる、項目２６〜３０の何れか１項に記載のプログラム。
３２．前記論理部は、
データ入力線と、
データ出力線と、
再構成可能論理マルチプレクサと、を備え、
前記メモリセルユニット
前記データ入力線および前記データ出力線により近接する前記論理部に接続し、
前記再構成可能論理マルチプレクサは、前記真理値表データに応答して選択的に前記データ入力線からのデータ入力と、前記データ出力線への前記データ出力とを結合し、
前記真理値表データに応答して前記データ入力に関して論理演算したデータを、前記データ出力線へデータ出力する処理を実行させる、項目２６〜３１の何れか１項に記載のプログラム。
３３．項目２６〜３２の何れか１項に示すプログラムを格納する記憶媒体。
【発明の効果】
【００１１】
本実施形態に係る半導体装置は、隣接する論理部に対して複数ビットのデータ伝送を行うとともに、論理部に含まれるメモリセルユニットへの入力アドレス数を少なくすることで、必要なメモリセルを少なくすることができる。また、大容量メモリを活用し余剰アドレスをページ切替制御にして制御可能とした再構成可能な半導体装置が提供できる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態に係る半導体装置の全体構成の一例を示す図である。
【図２】ＭＬＵＴアレイの一例を示す図である。
【図３】ＭＬＵＴ同士の接続が１つのアドレス又はデータ線で接続される構成例を示す図である。
【図４】論理コーンの一例である。
【図５】ＦＰＧＡにおけるＣ言語による論理合成の一例を示す図である。
【図６】ＭＬＵＴ間の接続が複数のアドレス又はデータ線で接続される構成例を示す図である。
【図７】ｎ値を説明する図である。
【図８】双方向型ＭＬＵＴの分割例を示す図である。
【図９】双方向型ＭＬＵＴの分割例を示す図である。
【図１０】双方向型ＭＬＵＴの分割例を示す図である。
【図１１】双方向型ＭＬＵＴにおけるビット分割の例を示す図である。
【図１２】本実施形態に係るＭＬＵＴの一例を示す図である。
【図１３】本実施形態に係るＭＬＵＴで実現される回路構成の一例を示す図である。
【図１４】本実施形態に係るＭＬＵＴの別な例を示す図である。
【図１５Ａ】本実施形態に係るＭＬＵＴの回路例を示す図である。
【図１５Ｂ】メモリセルの一例を示す図である。
【図１６】本実施形態に係るＭＬＵＴのアレイ配置の詳細例を示す図である。
【図１７】ＦＰＧＡの構成について説明する図である。
【図１８】２メモリセルユニットからなるＭＬＵＴを横積みして構成されるＭＬＵＴを概略的に示す図である。
【図１９】大容量メモリを用いたＭＬＵＴの一例を示す図である。
【図２０】図１９に示すＭＬＵＴの回路例を示す図である。
【図２１】図１９に示すＭＬＵＴを用いたＭＰＬＤを説明する図である。
【図２２】ＭＬＵＴ内部で状態機械を設ける例を示す図である。
【図２３】図２２に示すＭＬＵＴを用いたＭＰＬＤを説明する図である。
【図２４】２方向配置のＭＬＵＴアレイの一例を示す図である。
【図２５】４方向配置のＭＬＵＴアレイの一例を示す図である。
【図２６Ａ】２方向配置のＭＬＵＴの信号線の配置例を示す図である。
【図２６Ｂ】２方向配置のＭＬＵＴの一例を示す図である。
【図２７】メモリセルユニットの一例を示す図である。
【図２８Ａ】アドレス遷移検出部の一例を示す図である。
【図２８Ｂ】アドレス遷移検出部のタイムチャートの一例である。
【図２８Ｃ】アドレス遷移検出部におけるアドレスと生成したクロックのタイムチャートの一例である。
【図２９Ａ】４方向配置のＭＬＵＴの信号線の配置例を示す図である。
【図２９Ｂ】４方向配置のＭＬＵＴの一例を示す図である。
【図３０】ページ制御を行うＭＬＵＴの一例を示す図である。
【図３１】外部システムとＭＰＬＤの接続一例を示す概念図である。
【図３２】論理要素として動作するＭＬＵＴの一例を示す図である。
【図３３】論理回路として動作するＭＬＵＴの一例を示す図である。
【図３４】図３３に示す論理回路の真理値表を示す図である。
【図３５】接続要素として動作するＭＬＵＴの一例を示す図である。
【図３６】図３５に示す接続要素の真理値表を示す図である。
【図３７】４つのＡＤ対を有するＭＬＵＴによって実現される接続要素の一例を示す図である。
【図３８】１つのＭＬＵＴが、論理要素及び接続要素として動作する一例を示す図である。
【図３９】図３８に示す論理要素及び接続要素の真理値表を示す。
【図４０】ＡＤ対を有するＭＬＵＴによって実現される論理動作及び接続要素の一例を示す図である。
【図４１】図２４で説明した交互配置のＭＬＵＴにより構成される論理回路と配線を示す図である。
【図４２Ａ】ＭＬＵＴ３０Ａの左側のメモリセルユニットに格納される構成データの一例を示す図である。
【図４２Ｂ】ＭＬＵＴ３０Ａの右側のメモリセルユニットに格納される構成データの一例を示す図である。
【図４２Ｃ】ＭＬＵＴ３０Ｂの左側のメモリセルユニットに格納される構成データの一例を示す図である。
【図４２Ｄ】ＭＬＵＴ３０Ｂの右側のメモリセルユニットに格納される構成データの一例を示す図である。
【図４２Ｅ】ＭＬＵＴ３０Ｃの左側のメモリセルユニットに格納される構成データの一例を示す図である。
【図４２Ｆ】ＭＬＵＴ３０Ｃの右側のメモリセルユニットに格納される構成データの一例を示す図である。
【図４２Ｇ】ＭＬＵＴ３０Ｄの左側のメモリセルユニットに格納される構成データの一例を示す図である。
【図４２Ｈ】ＭＬＵＴ３０Ｄの右側のメモリセルユニットに格納される構成データの一例を示す図である。
【図４２Ｉ】ＭＬＵＴ３０Ｅの左側のメモリセルユニットに格納される構成データの一例を示す図である。
【図４２Ｊ】ＭＬＵＴ３０Ｅの右側のメモリセルユニットに格納される構成データの一例を示す図である。
【図４３】真理値表データを生成する情報処理装置のハードウェア構成を示す図である。
【発明を実施するための形態】
【００１３】
多方向型ＭＬＵＴと異なり、双方向型ＭＬＵＴは、入出力を行う辺が２つに制限され、隣接する他のＭＬＵＴと、複数ビットの入出力を行うので、ビット分割により使用するＭＬＵＴ数を少なくできる。
【００１４】
ＭＬＵＴはメモリセルユニットで構成されるが、アドレス線と同じ数のデータ線を必要とするため、メモリセルユニットは、アドレス線の数の２乗×データ線の数のメモリセルが必要になる。したがって、アドレス線の数を減らすことで、メモリセルの数は劇的に減らすことが可能である。本実施形態に係るＭＬＵＴ（Ｍｕｌｔｉ  Ｌｏｏｋ−Ｕｐ−Ｔａｂｌｅ）は、従前のＭＬＵＴと胡遁なるメモリセルユニットの構成を有する。
【００１５】
本実施形態に係る半導体装置は、隣接する論理部に対して複数ビットのデータ処理を行うとともに、論理部に含まれるメモリセルユニットへの入力アドレス数を少なくすることで、必要なメモリセルを少なくすることを目的とする。
【００１６】
以下、図面を参照して、［１］ＭＲＬＤ、［２］多方向型ＭＬＵＴ、［３］双方向型ＭＬＵＴ、［４］２メモリセルユニット型ＭＬＵＴ、［５］ＦＰＧＡとの比較例、［６］大容量メモリの使用例、［７］マルチプレクサを用いるＭＬＵＴ、［８］ＭＰＬＤの論理又は接続動作、［９］真理値表データの生成方法について順に説明する。
【００１７】
［１］ＭＲＬＤ
図１は、本実施形態に係る半導体装置の全体構成の一例を示す図である。以下、当該再構成可能な半導体装置をＭＲＬＤ（Ｍｅｍｏｒｙ  ｂａｓｅｄ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）（登録商標）と呼ぶ。ＭＲＬＤは、ＦＰＧＡとほぼ同等の機能を備えているデバイスであるが、その構造が異なる。ＦＰＧＡはＬＵＴとスイッチブロック、コネクションブロックなどによって構成され、論理資源と配線資源の割合は固定である。これに対し、ＭＲＬＤは、ＭＬＵＴ呼ばれる論理素子、配線素子の双方として利用可能な素子を並べた構成となっている。この構成により、全体の面積における論理領域の割合を高めることができる。
【００１８】
ＭＲＬＤは、「ＭＰＬＤ」（登録商標）と同様に、各ＭＬＵＴ間が、配線要素を介在せずに直接接続する点で共通するが、メモリＩＰとして供給される同期ＳＲＡＭの機能を有効に活用する点において、区別される。
【００１９】
図１に示す２０は、再構成可能な半導体装置としてのＭＲＬＤである。ＭＲＬＤ２０は、論理部としてのＭＬＵＴを複数個、アレイ状に配置したＭＬＵＴアレイ６０、ＭＬＵＴのメモリ読出し動作、書込み動作を特定するデコーダ１２、及び、入出力部１４を有する。
【００２０】
ＭＬＵＴ３０は、メモリで構成される。メモリの記憶素子には、真理値表とみなされるデータがそれぞれ記憶されることで、ＭＬＵＴ３０は、論理要素、又は、接続要素、又は、論理要素及び接続要素として動作する論理動作を行う。
【００２１】
ＭＲＬＤ２０の論理動作では、実線で示される論理用アドレスＬＡ、及び論理用データＬＤの信号を使用する。論理用アドレスＬＡは、論理回路の入力信号として使用される。そして、論理用データＬＤは、論理回路の出力信号として使用される。ＭＬＵＴ３０の論理用アドレスＬＡは、隣接するＭＬＵＴの論理動作用データＬＤのデータ線と接続している。
【００２２】
ＭＲＬＤ２０の論理動作により実現される論理は、ＭＬＵＴ３０に記憶される真理値表データにより実現される。いくつかのＭＬＵＴ３０は、ＡＮＤ回路、加算器などの組み合わせ回路としての論理要素として動作する。他のＭＬＵＴは、組み合わせ回路を実現するＭＬＵＴ３０間を接続する接続要素として動作する。ＭＬＵＴ２０が、論理要素、及び接続要素を実現するための真理値表データの書き換えは、メモリへの書き込み動作によりなされる。
【００２３】
ＭＲＬＤ２０の書き込み動作は、書込用アドレスＡＤ、及び書込用データＷＤによりなされ、読出し動作は、書込用アドレスＡＤ、及び読出用データＲＤによりなされる。
【００２４】
書込用アドレスＡＤは、ＭＬＵＴ３０内のメモリセルを特定するアドレスである。書込用アドレスＡＤは、m本の信号線で、２のｍ乗の数ｎのメモリセルを特定する。書込用アドレスＡＤは、メモリの読出し動作、書き込み動作、両方の場合で使用され、m本の信号線を介して、デコーダ１２でデコードされて、対象となるメモリセルを選択する。なお本実施形態においては、後述するが、論理用動作アドレスＬＡのデコードは、ＭＬＵＴ３０内のデコーダにより行う。
【００２５】
デコーダ１２は、リード・イネーブル信号ｒｅ、ライト・イネーブル信号ｗｅ等の制御信号に従って、書込用アドレスＡＤをデコードし、デコードアドレスｎをＭＬＵＴ３０に対して出力する。デコードアドレスｎは、ＭＬＵＴ３０内のメモリセルを特定するアドレスとして使用される。
【００２６】
入出力部１４は、ライト・イネーブル信号ｗｅに従って、書込用データＷＤを書込み、リード・イネーブル信号ｒｅに従って、読出用データＲＤを出力する。
【００２７】
図２は、ＭＬＵＴアレイの一例を示す図である。なお、図２では、ＭＬＵＴ３０間を繋ぐ、アドレス線とデータ線の接続は明示しておらず、後述する図３等を用いてアドレス線とデータ線は説明する。ＭＬＵＴアレイ３０は、図示されるように、ＭＬＵＴ３０をアレイ状に配置したものである。各ＭＬＵＴは、書込用アドレスＡＤ、ライト・イネーブル信号ｗｅ、リード・イネーブル信号ｒｅ、書込用データＷＤ、および読出用データＲＤ用の各信号線に接続する。
【００２８】
［２］多方向型ＭＬＵＴ
図３は、ＭＬＵＴ同士の接続が１つのアドレス又はデータ線で接続される構成例を示す図である。図３に示されるＭＲＬＤ２０は、ＭＬＵＴ同士の接続が１つのアドレス又はデータ線で接続するように構成されるＭＬＵＴ３０ａ〜３０ｆが示される。
【００２９】
なお、ＡＤ対とは、上記のように、アドレス線とデータ線のセットの定義である。以下、図面において、例えば、図３に示すように、双方向の矢印で示す場合、このＡＤ対を示し、後述の図１２のように一方向の矢印を示す場合、アドレス線およびデータ線の何れかを示す。
【００３０】
図４は、論理コーンの一例である。論理コーンを用いて、多方向型ＭＬＵＴの適用が困難なケースを説明する。論理コーンとは、組合せ論理回路の一つの出力に影響を与える全ての入力及び論理回路素子によって定義される集合（回路群）を言う。図４に示される論理コーンには、図示しないが、同一クロックで動く複数のＦＦ（フリップフロップ）があり、ＦＦの出力とＦＦのＤ入力の間を、組合せ論理回路が繋いでいる。Ｃ言語合成では演算において、変数をＦＦ表現して入出力に配置して回路データを、ＦＦ間に生成する。入力端子列１０１０にあるクロックがＦＦに入ると、全ＦＦが値を更新して、ＦＦの値が更新されたら全組み合わせ回路が動作し、次のクロックが来るまでの間に、影響範囲が下段の回路に広がり、出力端子列１０２０にあるＦＦの入力が確定する。このようにして、１つのＦＦ出力に影響を与える全ての入力及び論理回路素子によって定義される集合である論理コーン１０００が形成される。図４に示すＭＬＵＴ段数については、図７を用いて後述する。
【００３１】
［２．１］  多方向型ＭＬＵＴの問題  接続使用のＭＬＵＴの増加
多方向型ＭＬＵＴでは、１つのＭＬＵＴが所望の論理コーンを構成可能である場合、接続要素として使用されるＭＬＵＴが減り、結果としてＭＬＵＴ使用数が減る。しかしながら、複数のＭＬＵＴに論理コーンが渡る場合、ＭＬＵＴ間のデータ伝送幅が１ビットであるので、ＭＬＵＴ同士の接続において、データの行き分れが生じて、接続要素として使用されるメモリ領域が増える。このように、所望の論理コーンを構成するために、複数のＭＬＵＴが必要になり、各ＭＬＵＴに、論理回路が分割して構成される場合を、「ＭＬＵＴ分割（「クラスタリング」ともいう）」と呼ぶ。また、Ｃ言語等の高位言語ではビット数は複数ビットになる。Ｃ言語等でコーディングした機能を、「多方向型ＭＬＵＴ」で実現する場合、複数のビットをビット分割して演算し、演算後のデータを合成するなどのデータの流れが生じるので、接続要素として使用するＭＬＵＴが増えて、ＭＬＵＴ使用数は増えてしまう。
【００３２】
ＭＬＵＴが接続するデータ線及びアドレス線を増やして、それに伴いメモリセルユニットを大型化すると、ＭＬＵＴ間のデータ伝送がなくなり、接続要素として使用するＭＬＵＴは減る。しかしながら、このようにデータ線及びアドレス線を増加すると、隣接するＭＬＵＴの接続数も増え、各々のＭＬＵＴが、様々な方向に入出力が増えるので、構成が困難になる。
【００３３】
［２．２］  多方向型ＭＬＵＴの問題  接続使用のＭＬＵＴの増加
ＦＰＧＡの論理合成手法として、Ｃ言語から機能を構築する高位合成手法が発表されており、実用化されている。図５は、ＦＰＧＡにおけるＣ言語による論理合成の一例を示す図である。９１０は、Ｃ言語記述の例を示す。９２０は、ＦＰＧＡにおけるＣ言語高位合成の例である。９３０は、ＡＳＩＣにおけるＣ言語高位合成の例である。Ｃ言語高位合成９２０では、Ｃ言語の変数をレジスタとしてその間の演算を組合せ回路で表現して機能を構築する。この例はＦＰＧＡに実装する例であるが、ＦＰＧＡの論理表現に併せて論理を分解して動作させる。Ｃ言語高位合成９３０では、ＦＰＧＡでなくＡＳＩＣで実装した例であるが、ＡＳＩＣでは論理表現が自由なので一括で処理してレジスタで変数データを処理する。このように、Ｃ言語の処理はデータ列を処理してレジスタに蓄え次の処理（データパス処理）をするのが一般的である。
【００３４】
図５に示したように、Ｃ言語はデータの流れを記述してそれを制御して動作を構築するので一方向の流れになる。そして、そのデータ・ビットは８ビットや１６ビットなどのデータ列になっている。Ｃ言語合成ツールではこのデータ列長を選択できるが、少なくとも３ビット以上のデータ列で記述するのが一般的である。
【００３５】
［３］双方向型ＭＬＵＴ
図６は、ＭＬＵＴ間の接続が複数のアドレス又はデータ線で接続される構成例を示す図である。図６に示すＭＬＵＴ３０Ａ〜３０Ｅは、データの出力端にＦＦを有しているが、このＦＦの構成については、図１５Ａを用いて後述する。ＭＬＵＴ３０Ａは、隣接する他のＭＬＵＴ３０Ｂ〜３０Ｅと２本のアドレス線又はアドレス線で接続されており、つまり、ＭＬＵＴ同士の接続が複数のアドレス又はデータ線で接続するように構成される。このような構成は、隣接するＭＬＵＴが複数のＡＤ対で接続することになるので、隣接するＭＬＵＴに送信するデータは、複数ビット（図６の例では、４ビット）となる。さらに、アドレス線及びデータ線は、多方向ではなく、双方向（図６において、右側方向及び左側方向）での接続に限定されている。また、双方向とするものの、隣接するＭＬＵＴを２つに限定せず、それ以上として、構成可能性を上げるために、入力方向及び出力方向に、それぞれ２つのＭＬＵＴと接続可能となっている（「交互配置」とも言う）。例えば、ＭＬＵＴ３０Ａは、右側方向でＭＬＵＴ３０Ｂ及び３０Ｃと、左側方向でＭＬＵＴ３０Ｄ及び３０Ｅと接続している。このようなＭＬＵＴを「双方向型ＭＬＵＴ」と呼ぶ。
【００３６】
本実施形態に係るＭＬＵＴは、矩形状であり、一辺から複数のアドレス線又は複数のデータ線で他の論理部と接続するとともに、一辺と反対側の他辺から複数のアドレス線又は複数のデータ線で他のＭＬＵＴと接続する、
【００３７】
多方向型ＭＬＵＴと異なり、双方向型ＭＬＵＴは、データ線及びアドレス線複数本とすることで、マルチビットのデータ処理が可能になり、さらに、入力及び出力方向のデータの流れの方向が限定できるので、論理ライブラリの作成も容易になる。
【００３８】
つまり、隣接するＭＬＵＴに対して複数ビットのデータ処理が可能になるので、複数ビット演算を行うプログラム（例えば、上記のＣ言語）から構成させるデータ処理において、使用するＭＬＵＴの数を減らすことができる。
【００３９】
［３．１］  必要な双方向型ＭＬＵＴの数の論理段数
以下では、論理コーンに対して必要になる双方向型ＭＬＵＴの決定方法について、ｎ値という定義を用いて説明する。図７は、ｎ値を説明する図であり、図６で説明したＭＬＵＴ３０Ａ及び３０Ｃを用いてｎ値を説明する。隣接するＭＬＵＴ３０Ａ及び３０Ｃに向かい合う１辺から出るアドレス線又はデータ線の数１０３０を「ｎ値」と定義する。図３の多方向型ＭＬＵＴでは、隣接するＭＬＵＴの分だけ辺があるので、１辺から出るアドレス線又はデータ線は「１」であり、ｎ値は「１」である。図６及び図７の４ビット長型ＭＬＵＴは、矩形であるが、複数ビット伝送を要件としているので、１辺からでるアドレス線又はデータ線は「４」であり、ｎ値は「４」である。双方向型ＭＬＵＴでは、隣接するＭＬＵＴとの関係で、データ伝送量がｎ値の半分となり、且つ、信号パスが１段ずれるので、最長信号パスを実現するには信号パスを（ｎ値／２）で割った段数だけ必要である。ＭＬＵＴ論理段数とは、所望の回路を実現するために横に配置する必要なＭＬＵＴ段数の数を示す。ＭＬＵＴ論理段数は、以下の式で示される。
式１：  ＭＬＵＴ論理段数  ＝  ｍ／（ｎ値／２）
なお、ここでｍは、信号パス距離であり、論理コーンにする入力信号線を示す。
図７に示す例では、ｎ値は「４」であるが、隣接するＭＬＵＴは、一方向に２つあるので、（ｎ値／４）は「２」となる。Ｃ言語の論理演算が、８ビットで演算されており、論理コーンの入力データ線が８本であった場合、ＭＬＵＴ論理段数は、４となる。つまり、８ビット演算をＭＬＵＴで行う場合、４つのＭＬＵＴが必要になる。
【００４０】
［３．２］  双方向型ＭＬＵＴの分割例
図８〜図１０は、ＭＬＵＴ分割の例を示す図である。図８は、右方向へのデータ接続を示すＭＬＵＴの図である。図８の１０４０は、８ビットの入力に対して必要なＭＬＵＴ論理段数を示す。図８では、ＭＬＵＴは５つ必要である。図８に示されるように、論理コーンを構成する組み合わせ回路を、ＭＬＵＴ論理段数で分割することにより、ＭＬＵＴ分割が出来る。ＭＬＵＴ分割された組み合わせ回路に対して、入力の全ての組み合わせ（ｎ値の場合は２ｎになる）に対して、論理演算を実施し、その真理値表データを求めることができる。
【００４１】
図９及び図１０は、双方向型ＭＬＵＴによるデータの折り返し接続を示す図である。ＭＬＵＴは双方向に接続されているため、複数のＭＬＵＴを使用することでデータを、右方向から、左方向へ戻す折り返しデータ接続が可能である。点線で示す例は、折り返されたデータ接続を示す。なお、右方向の流れは図示していないが、図８の１０４０で示す右方向の流れを維持したまま、折り返しにより、左方向のデータの流れがある。図９では、ＭＬＵＴ３０Ｂ及び３０Ｃが、データの折り返し接続を行う例を示し、図１０では、ＭＬＵＴ３０Ａが論理演算とデータの折り返し接続を行う例を示している。
【００４２】
図１０に示すように、双方向型ＭＬＵＴにおいて、ＭＬＵＴ端に信号を帰還する真理値表データを書き込ませれば、折り返しが実施できる。また、この例では、往路方向の真理値表データに加えて、復路方向の真理値表データは別に設ける必要があるので、１つのＭＬＵＴは、往路用の真理値表データに加えて、復路用の真理値表データを記憶する必要があるので、ＭＬＵＴ数を下げることができる。従前、双方向型のＭＬＵＴは、図９及び図１０に示すように、折り返し処理ができる構成であった。しかし、本実施形態に係るＭＬＵＴは、１つのＭＬＵＴで、それぞれが一方向のデータ流れを実現する２つの真理値表データを記憶するように構成される点で、両者は、明確に区別される。  
【００４３】
［３．３］  双方向型ＭＬＵＴにおけるビット分割
また、Ｃ言語からの直接真理値表データを求める配置配線手法について述べる。Ｃ言語でのｉｎｔ演算は、例えば、１６ビットである。そのため、１６ビットに相当するレジスタを生成して、そのレジスタに保持されるビット値の演算により組み合わせ回路を実現する。１６ビットのｎ値を持つＭＬＵＴがあればその結果を真理値表データにして動作を構成できるが、ｎ値を１６とするＭＬＵＴは、１６本のアドレスを用いて、２の１６乗のメモリセルが必要になるので、ＭＬＵＴのような構成ユニットとして使用する場合、未使用メモリ領域が多くなり現実的でない。そこで、ビットを分割してＭＬＵＴにあった演算手法に記述変換をする。ｎ値が４のＭＬＵＴであれば、１６ビットを４分割したＣ言語記述をする。このようなことはＣ言語記述では一般的である。例えば、３２ビット演算はｆｌｏｔを使い記述するが、ｉｎｔを使い記述することはある。
【００４４】
図１１は、双方向型ＭＬＵＴにおけるＦＦの使用例を示す図である。４ビットに分割した記述をＣ言語合成に掛ければ、１０４０Ａ及び１０４０Ｂに示すような、ＭＬＵＴ論理段数が決まる。６０Ａは、論理回路において、ＭＬＵＴの各ＦＦを使用する例であり、６０Ｂは、論理回路において、ＦＦを禁止する例である。６０Ｂの各ＭＬＵＴにＦＦがあることはクロック遅延を起こすので、中間のＭＬＵＴのＦＦを禁止し２０Ｂに示すように、ＦＦの使用を停止することにより動作を高速化できる。
【００４５】
［４］２メモリセルユニット型ＭＬＵＴ
以下説明するＭＬＵＴは、複数のアドレス線と、複数のデータ線と、前記複数のアドレス線の一部から入力されるアドレスをデコードする第１アドレスデコーダと、前記複数のアドレス線の他の一部から入力されるアドレスをデコードする第２アドレスデコーダと、前記第１アドレスデコーダのデコード線と、前記データ線との交差する位置メモリセルを有する第１メモリセルユニットと、前記第２アドレスデコーダのデコード線と、前記データ線との交差する位置にメモリセルを有する第２メモリセルユニットと、を備える。
【００４６】
ＭＬＵＴは、アドレス線から入力されるアドレスで特定されるメモリセルからデータを出力するが、そのデータは、所望の論理要素及び／又は接続要素を実現する真理値表データである。以下、ＭＬＵＴの構成と、そこに記憶される真理値表データについて説明するが、真理値表データによる論理要素及び／又は接続要素という「情報処理」が、ＭＬＵＴというハードウエア資源を用いて実現される、例えば、真理値表データを、アドレスデコーダで読み出すことで実現される。また、半導体装置の制御方法は、アドレスデコーダ等のＭＬＵＴを構成するハードウェア、及び、真理値表データの読み出しにより実現される。  
【００４７】
［４．１］２つのメモリセルユニット
図１２は、本実施形態に係るＭＬＵＴの一例を示す図である。図１２に示すＭＬＵＴ３０は、メモリセルユニット３１Ａ、３１Ｂを有する。メモリセルユニットは、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。図１２に示されるように、メモリセルユニット３１Ａは、一辺からの第１複数アドレス線により特定されて、第１複数アドレス線の２倍の数の第１複数データ線に出力する複数のメモリセルを有し、メモリセルユニット３１Ｂは、他辺からの第２複数アドレス線により特定されて、第２複数アドレス線の２倍の数の第２複数データ線に出力する複数のメモリセルを有し、ＭＬＵＴ３０は、第１複数データ線及び第２複数データ線の一部を、一辺へ出力するとともに、第１複数データ線及び第２複数データ線の他の一部を、他辺へ出力する。
【００４８】
なお、図１０を用いて説明したように、各メモリセルユニットは、一方向毎に真理値表データをメモリセルに記憶する。そのため、メモリセルユニット３１Ａ及び３１Ｂの各々には、右から左方向用の真理値表データ、及び、左から右方向用の真理値表データを記憶する。すなわち、ＭＬＵＴは、それぞれが特定のデータ出力方向を規定する４つの真理値表データを記憶する。
【００４９】
各メモリセルユニットのデータ数を、アドレス数より増やすとともに、各メモリセルユニットからデータ出力の方向を双方向にすることで、必要なメモリセルの数を少なくし、且つ、双方向へのデータ出力を可能にすることができる。なお、図１２は、概略図であり、メモリセルユニットの周辺回路であるデコーダ等は、示しておらず、図１５Ａを用いて後述する。
【００５０】
メモリセルユニット３１Ａ、３１Ｂの各々は、あるアドレス線で特定されたメモリセルに記憶される値の論理演算を、データ線に出力するための真理値表データを記憶して、論理回路として動作し、及び／又は、あるアドレス線で特定されたメモリセルに記憶される値を、他のＭＬＵＴのアドレス線に接続するデータ線に出力するための真理値表データを記憶して、接続回路として動作するように構成される。真理値表データで所望の機能を実現するＭＬＵＴについては、［７］ＭＲＬＤの論理又は接続動作で説明する。
【００５１】
従前、ＭＬＵＴとして用いるメモリセルユニットは、１つのメモリセルユニットから構成され、また、ＭＬＵＴとして用いるメモリセルユニットはアドレス線の幅とデータ線の幅が等しい。したがって、図１２に示す８本のアドレス線を有するメモリセルユニットは、デコードされたアドレス線が、２の８乗本（２５６本）あり、ビット線が８本あるので、２，０４６（２５６×８）のメモリセルを必要としていた。図１２に示すＭＬＵＴは、メモリ分割しており、デコードされたアドレス線の数が、１６本で済む。そのため、使用するメモリセルを、２５６（１６×８×２）に節約できる。
【００５２】
つまり、ＭＬＵＴに含まれるメモリセルユニットへの入力アドレス数を少なくすることで、必要な大幅にメモリセルを少なくすることができる。なお、これにより、従前はできた一部の論理演算ができなくなるが、これに関しては、図１３を用いて後述する。
【００５３】
図１２に示すように、ＡＤ対は、左右２方向に入出力するので、メモリセルユニット３１は、入力するアドレス信号Ａ０〜Ａ３の出力データＤ０〜Ｄ７を、入力アドレス側への出力Ｄ０〜Ｄ３、及び、他のメモリセルユニット側への出力Ｄ４〜Ｄ７に転送する。なお、信号入力方向に、出力を戻す接続構成を、以下で「帰還」と言う。メモリセルユニット３１の出力Ｄ０〜Ｄ３用のメモリセルは、帰還方向の真理値表データに限定され、出力データＤ０〜Ｄ７用のメモリセルは、右から左方向の真理値表データに限定される。メモリセルユニット３２も同様に、入力するアドレス信号Ａ４〜Ａ７の出力データＤ０〜Ｄ７を、入力アドレス側への出力Ｄ４〜Ｄ７、及び、他のメモリセルユニット側への出力Ｄ０〜Ｄ３に転送する。
【００５４】
両メモリセルユニットの出力信号の接続部分は、ワイヤードORを構成する、又は、論理和（ＯＲ）回路で接続されているので所定のデータを転送できる。
【００５５】
このように、本実施形態に係るＭＬＵＴは、内部に２つのメモリセルユニットを有し、ＭＬＵＴに対するアドレス信号を、アドレス信号の入力方向に従って、２つのメモリセルユニットのアドレスデコーダ（図１５Ａを用いて後述）に入力する。例えば、一つのアドレスデコーダは、複数のアドレス線の一部から入力されるアドレスをデコードし、他方のアドレスデコーダは、複数のアドレス線の他の一部から入力されるアドレスをデコードし、デコード信号は、各アドレスデコーダと接続するメモリセルを特定する。
【００５６】
次に、図１２に示すＭＬＵＴのアドレス線と、データ線の関係について説明する。ＭＬＵＴ３０は、双方向型ＭＬＵＴであるが、原則として、往路方向（左から右への方向）では、アドレスＡ０〜Ａ３を使い、復路方向（右から左への方向）では、アドレスＡ４〜Ａ７を使う。往路方向に使う真理値表データと、復路方向に使う真理値表データはそれぞれ用意される。
【００５７】
なお、帰還処理を行わない場合、真理値表データは、メモリセルユニット３１ＡのＤ０〜Ｄ３およびメモリセルユニット３１ＢのＤ４〜Ｄ７のデータを「０」とする。また、逆に帰還処理をする場合は、メモリセルユニット３１ＡのＤ４〜Ｄ７およびメモリセルユニットＢ３１のＤ０〜Ｄ３を「０」にする。
【００５８】
ある方向から入力される信号に対して、入力側に帰還するか、出力側に出力することが可能であるが、入力方向がそれぞれ異なる２つの信号に対して、論理演算をすることができない。この状況を、図１３に示す。
【００５９】
図１３は、本実施形態に係るＭＬＵＴで実現される回路構成の一例である。ＭＬＵＴ３０Ａは、１つのメモリセルユニットで構成されるＭＬＵＴであり、ＭＬＵＴ３０Ｂ、３０Ｃは、本実施形態に係る２つのメモリセルユニットで構成されるＭＬＵＴである。ＭＬＵＴ３０Ａは、左辺側からのＡアドレス信号と、右辺側からのＢアドレス信号をＡＮＤ回路でＡＮＤ演算して、Ｃデータ信号を出力する。一方、ＭＬＵＴ３０Ａ、３０Ｂは、入力方向がそれぞれ異なる２つの信号に対して、論理演算をすることができないので、信号入力方向に、信号を出力する接続回路を構成できない。これにより、本実施形態に係るＭＬＵＴは、ＭＬＵＴを多く使う構成が生じるが、データ処理となるＣ言語合成では使われないので、帰還信号に対して論理演算できないことによる弊害が少ない。また、必要な場合は図にあるように本回路を構成できるので、回路的に制限されるものではない。
【００６０】
図９及び図１０では、データの折り返し処理を示した。複数ビット処理によるビット分割をすると、分割されたビットのデータ処理が長くなる。そのため、所望の演算を行おうとする場合、ＭＲＬＤが横長になる。そこで、右方向のデータ流れである往路に加えて、右方向のデータ流れである往路へのデータを折り返して、復路での処理を実現することで、長いデータ処理の実行が可能になる。上述のように、ＭＬＵＴ３０は、方向性を持つが、メモリセルユニット３１Ａは、帰還の接続回路となり得る。したがって、末端配置されたＭＬＵＴ３０を帰還回路として使用することで、往路方向で論理演算した後に、末端部で、折り返して、復路方向で論理演算可能である。
【００６１】
図１４は、本実施形態に係るＭＬＵＴの別な例を示す図である。図１４に示されるメモリセルユニット３１Ａは、一辺からの第１複数アドレス線により特定されて、第１複数アドレス線の２倍の数の第１複数データ線に出力する複数のメモリセルを有し、メモリセルユニット３１Ｂは、他辺からの第２複数アドレス線により特定されて、第２複数アドレス線の同じ数の第３複数データ線に出力する複数のメモリセルを有し、ＭＬＵＴ３０は、第１複数データ線の一部及び第３複数データ線を、一辺へ出力するとともに、第１複数データ線の他の一部を、他辺へ出力する。何れかのメモリセルユニットの帰還方向の出力を制限することで、さらに、必要なメモリセルの数を減らすことができる。図１２に示すように、右辺に配置されたメモリセルユニット３１Ｃは、帰還用の出力Ｄ４〜Ｄ７がなく、またそのためのメモリセルも有さない。往路側は、メモリセルユニット３１Ａで演算を行い、復路では、帰還動作を制限して、論理演算することで、必要なメモリセルをさらに小さくすることができる。
【００６２】
［４．２］メモリセルユニット毎のアドレスデコーダ
図１５Ａは、本実施形態に係るＭＬＵＴの回路例を示す図である。図１５Ａに示すＭＬＵＴ３０は、メモリセルユニット３１、３１Ｂ、アドレスデコーダ９Ａ、９Ｂ、アドレスセレクタ１１Ａ、１１Ｂ、Ｉ／Ｏ（入出力）バッファ１２Ａ、１２Ｂ、及び、データセレクタ１３Ａ、１３Ｂを有する。ＭＬＵＴ３０は、メモリセルユニット３１、３１Ｂは、それぞれ、アドレスデコーダ、アドレスセレクタ、及びＩ／Ｏバッファ、及び、データセレクタを有する。
【００６３】
メモリセルユニット３１Ａ、３１Ｂはそれぞれ、左方向および右方向（折り返し方向）へ接続するための真理値表データを記憶する。アドレスデコーダ９Ａは、左側から入力するアドレスＡ０〜Ａ３をデコードする。アドレスデコーダ９Ｂは、右側から入力するアドレスＡ４〜Ａ７をデコードする。本ＭＬＵＴでは非同期／同期ＳＲＡＭ選択回路を持たせるために、アドレス・デコーダにはＡＴＤ（Address Transition Detector）回路を伴わせ内部クロックを生成させている。
【００６４】
アドレスセレクタ１１Ａ、１１Ｂは、書込用アドレスＡＤ及び論理アドレスＡ０〜Ａ３、Ａ４〜Ａ７を選択する。この例では、書込み動作と、論理動作の何れかのみを行うシングルポートメモリセル（図１５Ｂ）である。デュアルポートメモリを使用する場合、メモリセルへの読出し及び書込みが同時にできるので、アドレスセレクタ１１Ａ、１１Ｂは不要となる。
【００６５】
Ｉ／Ｏバッファ１２Ａ、１２Ｂは、外部クロック（OCrock）と内部クロック（ICrock）の何れかに同期して、メモリセルユニットのデータ線からデータを読み出すことで、ＦＦの機能を提供している。なお、外部クロック（OCrock）と内部クロック（ICrock）は、例えば、内部クロックの周期を短周期とすることで、内部クロック同期時に動作を早めるなどの作用が得られる。外部クロックと内部クロックの切り替えは、メモリセルユニットにクロック制御用のデータを記憶する１ビット列を設けて、真理値表データにより、そのビット列を外部から書き換え可能としている。なお、Ｉ／Ｏバッファ１２Ａ、１２Ｂは、メモリセルのビット線から出力される電圧を増幅するセンスアンプを含んでいる。
【００６６】
データセレクタ１３Ａ、１３Ｂは、論理動作時の出力データ、又は、書込みデータＷＤを切り替える選択回路である。
【００６７】
尚、この構造を同期ＳＲＡＭ／非同期ＳＲＡＭ重ね合わせ回路で実現しても良い。そのことにより、ファンダリィが所有しているメモリＩＰが使えるので、設計費の大幅削減が可能となる。但し、その場合は２倍のメモリ容量になる。
【００６８】
このように、上記ＭＬＵＴを有するＭＲＬＤは、隣接するＭＬＵＴに対して複数ビットのデータ処理を行うとともに、複数のメモリセルユニットで論理部を構成する。メモリセルユニットは、アドレス線の二乗に比例して増えるので、データ線の数は同じであっても、各メモリセルユニットのアドレス数を少なくすれば、トータルに必要なメモリセルの数を少なくすることができる。
【００６９】
また、あるメモリセルユニットは、第１の方向からのアドレス入力に対して、第1の方向に、又は、第1の方向と反対の第２の方向にデータを出力するデータ線と接続し、及び、他のメモリセルユニットは、第２の方向からのアドレス入力に対して、第２の方向に、又は、第１の方向にデータを出力するデータ線と接続し、２つのメモリセルユニットは、真理値表データに従って、データの出力方向を変える。このように、データ出力の方向を制限することで、論理部の再構成性は制限されるものの、必要なメモリセルの数を少なくすることができる。
【００７０】
［４．３］メモリセル
図１５Ｂは、シングルポートのメモリセルの一例を示す図である。メモリセル（「記憶素子」とも言う）は、デコード信号の信号線であるワード線と、ビット線の交差点に配置される。図１５Ｂに示される記憶素子４０では、ｐＭＯＳ（Metal Oxide Semiconductor）トランジスタ１６１、１６２、及び、ｎＭＯＳトランジスタ１６３、１６４、１６５、１６６を備える。ｐＭＯＳトランジスタ１６１のソースと、ｐＭＯＳトランジスタ１６２のソースとは、ＶＤＤ（電源電圧端）に接続する。ｎＭＯＳトランジスタ１６３のドレーンと、ｎＭＯＳトランジスタ１６４のドレーンは、ＶＳＳ（接地電圧端）に接続される。
【００７１】
ｎＭＯＳトランジスタ１６５のドレーンは、ビット線ｂに接続される。ｎＭＯＳトランジスタ１６５のゲートは、ワード線ＷＬに接続される。ｎＭＯＳトランジスタ１６６のドレーンは、ビット線/ｂに接続される。ｎＭＯＳトランジスタ１６６のゲートは、ワード線ＷＬに接続される。
【００７２】
上記構成により、書き込み動作では、記憶素子４０は、ワード線ＷＬの信号レベル「Ｈ（Ｈｉｇｈ）」により、ビット線ｂ及びビット線/ｂから伝えられた信号レベルを、ｐＭＯＳトランジスタ１６１、１６２、ｎＭＯＳトランジスタ１６３、１６４に保持する。読み出し動作では、記憶素子４０は、ワード線ＷＬの信号レベル「Ｈ」により、ｐＭＯＳトランジスタ１６１、１６２、ｎＭＯＳトランジスタ１６３、１６４に保持された信号レベルを、ビット線ｂ、及び、ビット線/ｂに伝える。
【００７３】
［５］ＦＰＧＡとの比較例
図１６は、ＦＰＧＡの構成について説明する図である。ＦＰＧＡは、論理ＬＵＴを持ちそれらを配線とスイッチで接続して論理回路を構成するデバイスである。９４０は、アイランドスタイル型ＦＰＧＡである。ＦＰＧＡ９４０は、論理セルと、論理セル９４５を囲い込むスイッチマトリックス（ＳＷ）から構成される。９６０は、論理セル９４５とスイッチマトリックスの詳細であり、９５０はスイッチマトリックスの詳細である。論理セル９４５は、ＣＬＢ（Ｃｏｎｆｉｇｕｒａｂｌｅ  Ｌｏｇｉｃ  Ｂｌｏｃｋ）から構成される。ＣＬＢは、一般的に、４入力１出力のＬＵＴ（最終段にＦＦを活性化できるようにしてあり順序回路も構成できる）を２段持ち、且つ、それが２ページ有した４ＬＵＴ構造である。それらを外部のＣＬＢに有効に接続できる構造になっている。ＬＵＴを２段持つことから入力は８であり、それらが有効に接続されるために多くのスイッチを有している。そのスイッチは６ＭＯＳのトランスファ・ゲートからなり、それらのＯＮ／ＯＦＦはＳＲＡＭメモリ・セルの記憶ノードに接続され、ＳＲＡＭ情報により制御されている。
【００７４】
なお、ＣＬＢは、４入力１出力ＬＵＴを２個、これを２段、２スライス構造としたものである。つまり、１ＣＬＢでの必要メモリ容量は、以下の式により得られる。
ＬＵＴ：４アドレス（１６ｂｉｔ）
８ＬＵＴ×１６ｂｉｔ  ＝    １２８ｂｉｔ
スイッチ・アレイＭＯＳスイッチ数
８×８×３ブロック＋８×２×１ブロック  ＝２０８個
スイッチ当たりのＭＯＳスイッチ数：６ＭＯＳスイッチ
２０８個×６  ＭＯＳスイッチ  ＝１，２４８ｂｉｔ
１ＣＬＢでの必要メモリ容量        ＝１，３７６ｂｉｔ（１．４Ｋｂｉｔ）
Ｖｅｒｔｅｘ  ＸＣ２Ｖ３０００の必要メモリ容量：３，５８４ＣＬＢ×１，３７６ｂｉｔ
＝  ４，９３１，５８４ｂ  （４．９Ｍｂ）
【００７５】
上述したように、メモリセルユニット１つからなるＭＬＵＴは、アドレスが８本ありデータが８本であるので２Ｋビットのメモリセルが必要になる。この従前のＭＬＵＴをＣＬＢ相当にするためには１０個連結しなければならないので２０Ｋビットのメモリ容量が必要である。
【００７６】
図１７は、ＣＬＢに相当するＭＬＵＴブロックの構成例を示す図である。上記のように、ＣＬＢは、入力が８つあり、それらの配線が再構成可能構成であるため、ＭＬＵＴブロックも、８入力必要である。また、ＣＬＢは、左右上下に８本の入出力があるので、図１７に示すように、ＭＬＵＴは１０個必要になる。図１７に示すＭＬＵＴブロック５０は、ＭＬＵＴアレイ６０の一部を取り出したものである。
【００７７】
図示されるように、ＭＬＵＴブロック５０は、８入力及び８出力を有する。１０個のＭＬＵＴを使用する場合、図１２に示すＭＬＵＴは、２５６（１６×８×２）ビットであり、図１４に示すＭＬＵＴの場合、１９２（１６×８＋１６×４）ビットとなる。よって、本実施形態に係るＭＬＵＴでは、ＣＬＢ相当は２．５Ｋ（２５６×１０）ビット、又は、１．９Ｋ（１９２×１０）ビットが必要となり、ＦＰＧＡのＣＬＢ：１．４Ｋビットにかなり近いものが構成できる。このことは、ＭＲＬＤは、ＦＰＧＡのような特殊回路を要することなく、汎用のメモリセルユニットで再構成可能な半導体装置を実現するとともに、ＦＰＧＡと同じ論理合成効率を有するので、安価な製造コストと、高い論理合成効率の両者を実現できる。
【００７８】
上記のように、本実施形態に係るＭＲＬＤは、ＦＰＧＡのＣＬＢ相当に近いメモリ容量で構成でき、ＦＰＧＡに比する論理構成効率を上げることができる。制限された左辺の自辺に戻す信号転送は、２個のＭＬＵＴを使うことにより実現できるので、大きな制限にはならない。元々、ＦＰＧＡのＣＬＢも４入力１出力の非対称の構造であり、このことでＦＰＧＡに劣るものとはならない。そして、ＭＬＵＴは交互に接続されているので、後述のＣ言語搭載性が良くなり、Ｃ言語直裁型の再構成デバイスとなり得る。
【００７９】
ＭＬＵＴのメモリセルユニットとして使用されるＳＲＡＭはＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）では良く使われるデバイスである。そのＳＲＡＭを使って再構成デバイスを構成できることは、有効的なＳｏＣ搭載再構成デバイスになり得る。そして、ＳＲＡＭは数層の配線層で構成されるので安価な再構成デバイスが出来る。
【００８０】
［６］大容量メモリの使用例
市販のメモリデバイスは、プロセッサの処理量の増加とともに大容量化し、記憶容量あたりのコストが低下している。そのため、大容量のメモリをＭＬＵＴとして用いるほうが、ＭＲＬＤコストは低下できる。
【００８１】
しかし、市販のメモリデバイスはアドレス本数とデータ本数が違うことからＭＲＬＤのアドレス・データを構成すると一般にアドレスが余る。さらに、一般のメモリはシステムの要請からデータは８，１６本になることが多く、アドレスはシステムのメモリ空間を表現するため２０本以上のアドレスとなる。
【００８２】
また、ＭＬＵＴの入力アドレス数であるｎ値を増やすことにより、Ｃ言語のビット長に近いデータ処理も可能になり、ＣＰＵで処理するデータ処理を高速処理させるＩＰとして活用できる。以下では、大容量メモリを用いた場合の、ＭＲＬＤの構成例を説明する。
【００８３】
図１８は、２メモリセルユニットからなるＭＬＵＴを横積みして構成されるＭＬＵＴを概略的に示す図である。図１８に示すＭＬＵＴ３０は、左方向からアドレスＡ０Ｌ〜Ａ７Ｌの入力があり、右方向からアドレスＡ０Ｒ〜Ａ７Ｒの入力があり、また、左方向にデータＤ０Ｌ〜Ｄ７Ｌの入力があり、右方向へデータＤ０Ｒ〜Ｄ７Ｒの入力がある。ｎ値＝８のＭＬＵＴは従来方式では１ＭビットとなりＣＬＢ相当が４Ｍビットと大規模化してしまう。それに対して本案では８Ｋ（２５６ワード×１６ビット×ＭＬＵＴ２個）ビットで構成される。そのＣＬＢ相当も２４Ｋ（８Ｋ×３）ビットで構成される。
【００８４】
図１９は、大容量メモリを用いたＭＬＵＴの一例を示す図である。図１９に示すＭＬＵＴ３０は、メモリセルユニット３１Ａ、３１Ｂを有し、各メモリセルユニットは、１６本のアドレス線と、１６本のデータ線で構成されるので、６４Ｋ×１６ビットの大容量メモリである。メモリセルユニット３１Ａ、３１Ｂの周辺には、アドレスセレクタ１１Ａ、１１Ｂ、１４Ａ、１４Ｂ、及び、データセレクタ１３Ａ、１３Ｂがある。
【００８５】
本実施例は、市販の大容量メモリでのＭＬＵＴの有効利用を図ったものである。図１９及び後述の図２２では、メモリセルユニット３１Ａ、３１Ｂは、それぞれアドレスＡ０Ｌ〜Ａ７Ｌ、Ａ８〜Ａ１５、及び、アドレスアドレスＡ０Ｒ〜Ａ７Ｒ、Ａ８〜Ａ１５の入力を有する。
【００８６】
なお、図１９及び後述の図２２は、概略図であり、メモリセルユニットの周辺回路であるデコーダ等は、示しておらず、デコーダは図１５Ａで説明したデコーダ９Ａ、９Ｂが、各メモリセルユニット毎に用意され、アドレスセレクタ１１Ａ、１１Ｂと、メモリセルユニット３１Ａ、３１Ｂの間に配置される。よって、デコーダは、アドレスセレクタ１１Ａ、１１Ｂ、１４Ａ、１４Ｂから出力される全てのアドレスをデコードしてもよい。
【００８７】
行セレクタ３２Ａ、３２Ｂは、論理動作用のアドレス線か、書込み用のアドレスかを切り替えるための選択回路である。メモリセルがシングルポートの場合、必要となる。メモリセルをマルチポートとする場合、行セレクタは不要である。
【００８８】
アドレスセレクタ１１Ａ、１１Ｂ、１４Ａ、１４Ｂ、論理動作用のアドレス線か、書込み用のアドレスかを切り替えるための選択回路である。メモリセルがシングルポートの場合、必要となる。メモリセルをデュアルポートとする場合、行セレクタは不要である。データセレクタ１３Ａ、１３Ｂは、出力データ、又は、書込みデータＷＤを切り替える選択回路である。
【００８９】
大容量メモリでＭＬＵＴを構成するために、ページ切り替えを利用する。つまり、真理値表データの異なるページ（メモリ領域）を複数用意して、ページ切り替えして、論理状態を順次切り替える。図１９に示す例では、アドレスＡ０〜Ａ７は１つのページを構成し、アドレスＡ８〜Ａ１５は別のページを特定する。つまり、アドレスＡ８〜Ａ１５で特定されるメモリセルには、アドレスＡ０〜Ａ７で特定されるメモリセルとは異なる真理値表データが記憶される。
【００９０】
論理動作はメモリの読み出しモードで行い、コンフィギュレーションは書き込み動作で行う。そのため、アドレスおよびデータではセレクタを使い書き込みアドレスＡＤおよび書込みデータＷＤを切り替えている。この機構を持つことで、本デバイスはメモリとしても使える。また、マルチポート・メモリを使うことで、これらのセレクタを省くことも出来る。論理動作はメモリの読み出しモードで行い、コンフィギュレーションは書き込み動作で行う。そのため、アドレスおよびデータではセレクタを使い書き込みアドレスおよびデータを切り替えている。この機構を持つことで、本デバイスはメモリとしても使える。また、マルチポート・メモリを使うことで、このセレクタを省くことも出来る。
【００９１】
このように、何れかのメモリセルユニットの帰還方向の出力を制限することで、さらに、必要なメモリセルの数を減らすことができる。
【００９２】
図２０は、図１９に示すＭＬＵＴの回路例を示す図である。図２０に示すＭＬＵＴ３０は、図１５Ａに示すＭＬＵＴ３０と同様の構成を有するが、メモリセルユニット３１Ａ、３１Ｂへの入力アドレスが、それぞれ、アドレスＡ０Ｌ〜Ａ７Ｌ、Ａ８〜Ａ１５、及び、アドレスＡ０Ｒ〜Ａ７Ｒ、Ａ８〜Ａ１５となる。そのため、メモリセルユニット３１Ａ、３１Ｂは、２の１６乗（６５，５３６）ワード×８ビットの５２Ｋの大容量となる。
【００９３】
図２１は、図１９に示すＭＬＵＴを用いたＭＲＬＤを説明する図である。図２１に示すように、あるＭＬＵＴ３０を外部システムからの制御により、アドレスによりページ（真理値表データ）を切り替えることができる。
【００９４】
従来のＭＲＬＤでは、ＭＲＬＤの状態機械は、真理値表データで定義することが必要があった。そのため、決められた条件に従って、あらかじめ決められた複数の状態を真理値表データで定義する真理値表データを設ける必要があった。ＭＬＵＴで構成されるステート・マシンが制御回路になり、データ・パスとは違い論理回路まで生成して配置配線をしなければならなかった。
【００９５】
図１９に示すＭＬＵＴ３０は、ページの切替制御機能を持つことから、ステートマシンを真理値表で定義する必要がなくなる。例えば、ｆｏｒ文は所定値がある条件になるまで、自ページのアドレスをデータに出力してページ切り替えを行わず、同じページで動作を処理する。ある条件を満たせば（例えば、ｉ＝０）、その際にページ切り替えのアドレスを、データ線に出力する。データ線は、他のメモリセルユニットにアドレス線として入力するので、当該他のメモリセルユニットのページ切り替えが可能になる。また、ｃａｓｅ文の場合は所定値の値により、飛び先番地をデータに出力してページ切り替えを行わせて動作変更させることが出来る。以上により、従来のＭＲＬＤは論理回路構成しか出来なかったものに対してＣ言語の動作合成も出来るようになり、Ｃ言語からＭＲＬＤのＭＬＵＴの真理値表データを生成させることが可能になり、ＦＰＧＡ以上の機能を持たせることができる。
【００９６】
図２２は、ＭＬＵＴ内部で状態機械を設ける例を示す図である。演算回路などのデータ・パス系は方向性があり、折り返し方式を説明した（図８〜図１０）。図１４では、その折り返しの状況を見て分割非対称となるＭＬＵＴを説明した。図１４のＭＬＵＴは、片方のメモリセルユニットの容量を削減して、メモリ使用量を削減したが、図２２では削減せずその余ったデータを切り替え信号に利用する。このことにより、ＭＬＵＴ自体で演算を変える制御機能を持たせることができる。例えば、図１４のメモリセルユニット３２Ｂは、右方向からの入力アドレスＡ４〜Ａ７を、データＤ４〜Ｄ７として出力するメモリセルを有していない。図２２では、右方からの入力アドレスＡ０〜Ａ７に対して、ページ切替判断する論理演算を行い、データＤ０〜Ｄ７を出力する。データＤ０〜Ｄ７は、アドレスＡ８〜Ａ１５用のアドレス信号線に接続しており、他のＭＬＵＴに対するページ切り替え信号として利用される。
【００９７】
図２３は、図２２に示すＭＬＵＴを用いたＭＲＬＤを説明する図である。図２３では左下のブロックを図２２のＭＬＵＴ３０Ｂとして、それ以外は図１９のＭＬＵＴ３０で構成している。図２２のＭＬＵＴではアドレス・データ対に所定の値が来たときに、所定のアドレスを出力させて全体をページ制御して動作を切り替える。このことにより、ＪＵＭＰなどの制御ができる。
【００９８】
ＭＲＬＤは専用の小型のＳＲＡＭに関する半導体設計試作、製造を経なくても、従来の大容量のメモリデバイスを利用できる。ＭＲＬＤをチップで構成する際、メモリＩＰ（Intellectual Property）を使うが、従来のＭＬＵＴが求めている微小メモリ容量では、アドレスデコーダやセンスアンプの面積が大きくメモリ自体の構成比率は５０％以下になる。このことは、ＭＲＬＤのオーバヘッドにもなり、効率が悪い。大容量メモリになるとアドレス・デコーダやセンス・アンプに比率は下がり、メモリ使用効率が上がる。そのため、大容量メモリにあった本案はＭＲＬＤチップの場合有効になる。
【００９９】
［７］再構成可能論理マルチプレクサを用いたＭＬＵＴ
図２４は、２方向配置のＭＬＵＴアレイの一例を説明する図である。図２４に示される矢印は、隣接する他のＭＬＵＴとつながるデータ入力線、又は、データ出力線である。図２４に示すＭＬＵＴアレイ３００において、ＭＬＵＴ３０は、隣接する他のＭＬＵＴ３０と２本のデータ入力線又はデータ出力線で接続されいる。つまり、ＭＬＵＴ同士の接続が複数のデータ入力線又はデータ出力線で接続するように構成される。また、隣接するＭＬＵＴは、構成可能性を上げるために、入力方向及び出力方向に、それぞれ２つのＭＬＵＴと接続する。この配置を、以下「交互配置」と言う。
【０１００】
交互配置型ＭＬＵＴは、データ線及びビット線を複数本とすることで、マルチビットのデータ処理が可能になり、さらに、入力及び出力方向のデータの流れの方向が限定できるので、論理ライブラリの作成も容易になる。
【０１０１】
各ＭＬＵＴ３０は、多数の異なる論理関数を実行することが可能である。ＭＬＵＴ３０は、メモリセルユニット４０と、再構成可能論理マルチプレクサ５０を有する。ＭＬＵＴ３０によって実行される論理関数は、メモリセルユニット４０内に格納された構成データによって決定される。ＭＬＵＴ３０は、構成データ用の入力を有しており、且つ、再構成可能論理マルチプレクサ５０への構成データ用の出力を有している。構成データは、ＭＲＬＤ２０外側からメモリセルユニット４０内へ、そのアドレス線及びデータ線を用いて、ロードされる。
【０１０２】
再構成可能論理マルチプレクサ５０は、データ入力、データ出力、構成データを受取るためのコンフィギュレーション入力を有しており、且つそれに応答してデータ入力及び出力の結合状態を制御する。再構成可能論理マルチプレクサ５０はさらに、構成データに応答してデータ入力に関して論理演算したデータを、データ出力線へデータ出力する。
【０１０３】
図２５は、４方向配置のＭＬＵＴアレイの一例を説明する図である。図２５に示す方向配置では、ＦＰＧＡと同様の配置である。このようにすることでＦＰＧＡに近い構成が取れ、ＦＰＧＡツールで生成した論理構成された状態を使い、ＭＲＬＤの構成データの作成が容易になる。例えば、図の左上及び中上、左下をスイッチ・ブロックとして、中下をＬＵＴブロックとして、ＦＰＧＡのＣＬＢ相当が表現でき、ＦＰＧＡの構成された状態から真理値データが生成できる。
【０１０４】
図２６Ａは、２方向配置のＭＬＵＴの信号線の配置例を示す図である。図２６Ａに示すように、左からのデータ入力は、ＩｎＡ０〜ＩｎＡ３であり、左へのデータ出力は、ＯｕｔＡ０〜ＯｕｔＡ３である。また、右からのデータ入力は、ＩｎＢ０〜ＩｎＢ３であり、左へのデータ出力は、ＯｕｔＢ０〜ＯｕｔＢ３である。
【０１０５】
図２６Ｂは、２方向配置のＭＬＵＴの一例を示す図である。図２６Ｂに示すＭＬＵＴの信号線は、図２６Ａに示すＭＬＵＴの信号線と同じである。図２６Ｂに示すＭＬＵＴ３０は、メモリセルユニット４０、再構成可能論理マルチプレクサ５０、及びレジスタユニット６０を有する。メモリセルユニット４０は、例えば、ＳＲＡＭである。メモリセルユニット４０は、構成データを格納するメモリセルを特定するための複数のアドレス線Ａ０〜Ａ８と接続する。図２５に示す例では、メモリセルユニットには、９つのアドレスにより、２の９乗である「５１２」のワード線があり、それに対して２５６個のビット線（「データ線」とも言う）がある。入力が４つありその組み合わせは１６であるので、レジスタは１６個必要になる。また、４ビットで１６個必要で、左から左、左から右、右から左、右から右のデータが必要なので、４ビット×１６×４で２５６個のビット線となる。よって、メモリセルユニットには、２の９乗×２５６個のメモリセルがある。なお、Ａ０にはポジティブタイプのアドレス遷移検出（ＡＴＤ）回路を付けてクロック入力とする（図２８で後述する）。
【０１０６】
［７．１］メモリセルユニット
メモリセルユニット４０は、クロックＡ０に従って、アドレスで特定されたメモリセルから、図示されないセンスアンプによりデータを読み出して、ビット先に対応した数のレジスタ（図２４の例では、２５６ビット）を有するレジスタユニット６０にデータを出力する。レジスタユニット６０は、メモリセルユニット４０から新たなデータが出力されるまで、データを保持し続ける複数のレジスタから構成される。
【０１０７】
図２７は、メモリセルユニットの詳細である。図２７に示されるメモリセルユニット４０は、各々がデータを記憶するメモリセルからなるメモリセルアレイ１１０と、アドレスデコーダ１２０と、後述の図２８Ａに示すアドレス遷移検出部２００と、メモリセルアレイ１１０へのデータ読出し又はデータ書込みを行うデータ入出力部１４０と、を有する。なお、本実施例において、メモリセルユニット４０は、クロックに同期して読出し、又は、書込み動作を行う同期ＳＲＡＭである。よって、アドレスデコーダ１２０及びデータ入出力部１４０はクロックに同期して動作する。
【０１０８】
メモリセルアレイ１１０は、ｍ×２ｎ個のメモリセル（それに伴う記憶素子）を有し、ｍ×２ｎ個のメモリセルは、２のｍ乗本のワード線と、ｎ本のビット線（「データ線」とも言う。以下同じ）の接続部分に配置される。
【０１０９】
アドレスデコーダ１２０は、Ａ０のアドレス遷移検出部で生成されたクロックに同期して、ｍ本のアドレス信号線から受け取ったアドレス信号を受け取ると、それをデコードして、２のｍ乗本のワード線ＷＬにデコード信号であるワード線選択信号及びデータ入出力部１４０で選択するデータ線選択信号を出力し、対応するメモリセルに対するデータの読み出し又は書込み処理が行なわれるようにする。
【０１１０】
データ入出力部１４０は、データ入出部１４０は、ライトアンプと、センスアンプとを有する。ライトアンプは、例えば、外部からライトイネーブル（ＷＥ）の立ち上がりエッジタイミング及び書込データを受け取ると、ｍ本のデータ線ｂ、／ｂにその書込データの信号レベルを伝えて、メモリセルにデータを書き込む。また、センスアンプは、データ入出力部１４０は、外部からリードイネーブル（ＲＥ）の立ち上がりエッジタイミングを受け取ると、ｍ本のデータ線ｂ、／ｂの信号レベルを外部に出力することで、読出データを出力する。
【０１１１】
なお、図２７に示すメモリセルユニットは、配線の１方向ずつ設けてもよい。例えば、図２４に示す２方向配置では、２つのメモリセルユニット、図２５に示す４方向配置では、４つのメモリセルユニットである。このように、方向毎にメモリセルユニットを設けることで、単一のメモリで構成する場合と比して、アドレスの数が減る（２の９乗×４の方が、２の３６乗よりも少なくなる）ので、メモリの容量を下げることができる。
【０１１２】
図２８Ａは、本実施形態に係るアドレス遷移検出部の回路図である。図２８Ａに示されるアドレス遷移検出部２００は、否定論理和（ＮＯＲ）回路２１０Ａ、２１０Ｂ、論理積（ＡＮＤ）回路２３０、遅延回路２４０Ａ〜２４０Ｃ、フリップフロップ（ＦＦ）２５０、インバータ２６０Ａ、２６０Ｂ、及びＤラッチ２７０を有する。
【０１１３】
図２８Ｂは、図２８Ａに示したアドレス遷移検出部の信号のタイミングチャートである。信号Ｓ１は、メモリセルユニットへのアドレス入力信号である。本実施例では、アドレスＡ０である。信号Ｓ２は、Ｄラッチの出力である。Ｄラッチ２７０は、信号Ｓ１に変化があった場合、一定期間変化しないようにラッチする。これは、ノイズ等で後続のアドレス遷移を無視するためである。信号Ｓ３は、Ｄラッチ２７０から出力される遅延信号である。遅延信号は、図２８Ｂに示されるように、立ち上がりおよび立ち下がりでクロックを作って、信号Ｓ４のクロック幅を生成するために、遅延回路２４０Ｂで遅延される。
【０１１４】
クロック信号として生成される信号Ｓ４は、ＡＮＤ回路２３０から出力される。ＡＮＤ回路２３０では、遅延回路２４０Ｂの入力と、出力とが入力されるので、両者の信号レベルが異なると、信号レベル「ハイ」を出力する。これにより、アドレス遷移を検出することができる。
【０１１５】
信号Ｓ５は、遅延回路２４０Ｃから出力される遅延信号であり、ＬＡＴ２７０のイネーブル信号待ちしてクロック入力する。
【０１１６】
信号Ｓ６は、信号Ｓ５の信号延長であり、イネーブル信号のパルス生成である。ＮＯＲ回路２１０Ａは、信号Ｓ５とＳ６のＮＯＲ演算値である信号Ｓ７を出力する。そして、信号Ｓ７は、Ｄラッチ２７０のイネーブル信号となる。信号Ｓ８は、信号Ｓ５をインバータ２６０Ａで反転した信号で、ＦＦ２５０で、アドレス信号のラッチのクロックとして使用される。信号Ｓ９は、メモリセルユニットのイネーブル、信号Ｓ１０は、メモリセルユニットのクロック（ａｔｄ＿ｃｌｋ）、信号Ｓ１１は、メモリセルユニットのアドレスとして利用される。このように、アドレスＡ０である信号Ｓ１により、クロック信号Ｓ１０が生成されるので、メモリセルユニットとして同期ＳＲＡＭの使用が可能になる。
【０１１７】
図２８Ｃは、アドレスＡ０と生成されるクロック信号との関係を示すタイミングチャートである。図２８Ｃでは、信号Ｓ１とＳ１０のみを示す。アドレスＡ０の「Ｌｏｗ」から「Ｈｉ」への立ち上がりタイミングを用いて、クロックを生成し、アドレスＡ０「Ｈｉ」から「Ｌｏｗ」への立下りタイミングでもクロックを生成すると、データの書込みの時、立ち上がりでデータを書き込んでも、立下りの時、最初のメモリ・データに戻ってしまいデータが保持されない。この対策として、ＭＬＵＴ２０は、ポジティブタイプのアドレス遷移検出（ＡＴＤ）部２００を有する。このように、ポジティブタイプのＡＴＤ回路は、Ａ０の立ち上がりのみでＣＬＫを生成するので、メモリ内部のアドレスをＨｉで保持する。Ｈｉで保持する構成データが出力され、Ａ０がＬｏｗになってＣＬＫが生成されず構成データが、レジスタユニット６０のレジスタに保持される。これにて、ＭＬＵＴ３０は、フリップフロップ回路などの現実の回路を用意することなく、順序回路を構成することができる。このＣＬＫ生成は本ＡＴＦ回路方式でなくとも、Ｆ／Ｆで実現してもよい。
【０１１８】
［７．２］再構成可能論理マルチプレクサ
再構成可能論理マルチプレクサ５０は、データの配線経路の数だけある。例えば、再構成可能論理マルチプレクサ５２Ａ、５２Ｂ、５２Ｃ、及び５２Ｄがある。
【０１１９】
レジスタユニット６０に保持される構成データに従って、データ入力をデータ出力とに結合させるマルチプレクサであり、その接続経路は、構成データによって再構成可能である。動作としては、レジスタユニット６０に保持されるデータを“入力信号”とし、データ入力を“選択制御信号”として用いて、“入力信号”を選択して、出力する。
【０１２０】
図２９Ａは、４方向配置のＭＬＵＴの信号線の配置例を示す図である。図２９Ａに示すように、左右からのデータ入出力は、２方向配置と同じであるが、それに加えて、上からのデータ入力ＩｎＣ０〜Ｃ３、上へのデータ出力ＯｕｔＣ０〜ＯｕｔＣ３、及び、下からのデータ入力ＩｎＤ０〜ＩｎＤ３、下へのデータ出力ＯｕｔＤ０〜ＯｕｔＤ３がある。
【０１２１】
図２９Ｂは、４方向配置のＭＬＵＴの一例を示す図である。なお、本例は適便に改良してもよい。図２９Ｂに示すＭＬＵＴの信号線は、図２９Ａに示すＭＬＵＴの信号線と同じである。メモリセルユニットは表示しないが、各構成要素の動作は、２方向配置のＭＬＵＴと同じである。４方向であるため、再構成可能論理マルチプレクサの数が、２方向配置のＭＬＵＴと比して、４つ（再構成可能論理マルチプレクサ５２Ｅ〜Ｈ）増え、それに伴いレジスタユニット６２も増える。
【０１２２】
２方向配置のマルチプレクサの出力は、他の同方向への出力と論理和をしていたが、４方向配置でも原理は同じである。ただし、方向が４つとなったため、４つの論理和となっている。例えば、データ出力ＯｕｔＣ０〜ＯｕｔＣ３を例とすると、再構成可能論理マルチプレクサ５２Ｃ、５２Ｅ、５２Ｇの出力の論理和となっている。再構成可能論理マルチプレクサ５２Ｅ、５２Ｇのデータを「０」とすることにより、５２Ｅの出力が上に出力しうる。
【０１２３】
［７．３］ページ制御
図３０は、ページ制御を行うＭＬＵＴの一例を示す図である。ページ制御を行うＭＬＵＴは、ＭＬＵＴの一部が、他のメモリセルユニットのページ制御信号を生成する回路として動作し、そのデータ出力は、他のメモリセルユニットのページを制御する。
【０１２４】
図３０に示すＭＬＵＴ３０は、大容量のメモリセルユニット４０Ａ、４０Ｂを有し、各メモリセルユニットは、９本のアドレス線と、６４本のデータ線で構成されるので、２の９乗（５１２）ワード×６４ビットの大容量となる。本例ではＡ２〜Ａ８がページ・アドレスで論理の多重化ができる。この場合は１２８ページの例である。また、本例では、２方向配置のＭＬＵＴアレイである。そして、メモリセルユニットは、各ページの構成データを格納するように構成されるので、記憶容量は大きくなる。そのため、２つのメモリにより、構成される。このようにすることで、左右からのクロック制御が可能になる。
【０１２５】
なお、図３０は、概略図であり、メモリセルユニットの周辺回路であるデコーダ等は、示しておらず、デコーダは図５で説明したデコーダ１２０及びデータ入出力部１４０が、各メモリセルユニット毎に用意される。
【０１２６】
図３１は、外部システムとＭＲＬＤの接続一例を示す概念図である。外部システム１２０は、情報処理装置、又は、ＳｏＣで実現されたデバイスである。外部システム１２０は、図１９に示すＭＲＬＤ２０と接続しており、ＭＲＬＤ２０からのデータ出力を受け取るとともに、ページ切替判断する論理演算を行いって、その接続を介して、アドレスＡ８〜Ａ１５にページ切替信号を出力する。外部システムが、ＳｏＣを搭載することにより、ＭＲＬＤ２０とともに高機能化されたデバイスが実現できる。
【０１２７】
［８］ＭＲＬＤの論理又は接続動作
ＭＬＵＴは、真理値表データをプログラムとして実行することで、論理要素及び／又は接続要素の機能を実現する。ＭＲＬＤでの論理又は接続動作の説明を以下にする。なお、説明としては多方向ＭＬＵＴの例で行う。
Ａ．論理要素
図３２は、論理要素として動作するＭＬＵＴの一例を示す図である。図３２では、説明を簡単にするために、アドレスセレクタ、データセレクタ、及び入出力バッファの記載は、省略される。図３２に示すＭＬＵＴ３０Ａ、３０Ｂは、４つの論理用アドレス入力ＬＡ線Ａ０〜Ａ３と、４つの論理動作用データ線Ｄ０〜Ｄ３と、４×１６＝６４個の記憶素子４０と、アドレスデコーダ９とをそれぞれ有する。論理動作用データ線Ｄ０〜Ｄ３は、２４個の記憶素子４０をそれぞれ直列に接続する。アドレスデコーダ９は、論理用アドレス入力ＬＡ線Ａ０〜Ａ３に入力される信号に基づき、１６本のワード線のいずれかに接続される４つの記憶素子を選択するように構成される。この４つの記憶素子はそれぞれ、論理動作用データ線Ｄ０〜Ｄ３に接続され、記憶素子に記憶されるデータを論理動作用データ線Ｄ０〜Ｄ３に出力する。例えば、論理用アドレス入力ＬＡ線Ａ０〜Ａ３に適当な信号が入力される場合は、４つの記憶素子４０Ａ、４０Ｂ、４０Ｃ、及び４０Ｄを選択するように構成することができる。ここで、記憶素子４０Ａは、論理動作用データ線Ｄ０に接続され、記憶素子４０Ｂは、論理動作用データ線Ｄ１に接続され、記憶素子４０Ｄは、論理動作用データ線Ｄ２に接続され、記憶素子４０Ｄは、論理動作用データ線Ｄ３に接続される。そして、論理動作用データ線Ｄ０〜Ｄ３には、記憶素子４０Ａ〜４０Ｄに記憶される信号が出力される。このように、ＭＬＵＴ３０Ａ、３０Ｂは、論理用アドレス入力ＬＡ線Ａ０〜Ａ３から論理用アドレス入力ＬＡを受け取り、その論理用アドレス入力ＬＡによってアドレスデコーダ９が選択する４つの記憶素子４０に記憶される値を、論理動作用データ線Ｄ０〜Ｄ３に論理動作用データとしてそれぞれ出力する。なお、ＭＬＵＴ３０Ａの論理用アドレス入力ＬＡ線Ａ２は、隣接するＭＬＵＴ３０Ｂの論理動作用データ線Ｄ０と接続しており、ＭＬＵＴ３０Ａは、ＭＬＵＴ３０Ｂから出力される論理動作用データを、論理用アドレス入力ＬＡとして受け取る。また、ＭＬＵＴ３０Ａの論理動作用データ線Ｄ２は、ＭＬＵＴ３０Ｂの論理用アドレス入力ＬＡ線Ａ０と接続しており、ＭＬＵＴ３０Ａが出力する論理動作用データは、ＭＬＵＴ３０Ｂで論理用アドレス入力ＬＡとして受け取られる。例えば、ＭＬＵＴ３０Ａの論理動作用データ線Ｄ２は、ＭＬＵＴ３０Ａの論理用アドレス入力ＬＡ線Ａ０〜Ａ３に入力される信号に基づき、論理動作用データ線Ｄ２に接続される１６個の記憶素子のいずれか１つに記憶される信号をＭＬＵＴ３０Ｂの論理用アドレス入力ＬＡＡ０に出力する。同様に、ＭＬＵＴ３０Ｂの論理動作用データ線Ｄ０は、ＭＬＵＴ３０Ｂの論理用アドレス入力ＬＡ線Ａ０〜Ａ３に入力される信号に基づき、論理動作用データ線Ｄ０に接続される１６個の記憶素子のいずれか１つに記憶される信号をＭＬＵＴ３０Ａの論理用アドレス入力ＬＡＡ２に出力する。このように、ＭＲＬＤ同士の連結は、１対のアドレス線とデータ線とを用いる。
【０１２８】
なお、図３２では、ＭＬＵＴ３０Ａ、３０Ｂが有するＡＤ対は４であるが、ＡＤ対の数は、特に後述するように４に限定されない。
【０１２９】
図３３は、論理回路として動作するＭＬＵＴの一例を示す図である。本例では、論理用アドレス入力ＬＡ線Ａ０及びＡ１を２入力ＮＯＲ回路７０１の入力とし、論理用アドレス入力ＬＡ線Ａ２及びＡ３を２入力ＮＡＮＤ回路７０２の入力とする。そして、２入力ＮＯＲ回路の出力と、２入力ＮＡＮＤ回路７０２の出力を、２入力ＮＡＮＤ回路７０３に入力し、２入力ＮＡＮＤ回路７０３の出力を論理動作用データ線Ｄ０に出力する論理回路を構成する。
【０１３０】
図３４は、図３３に示す論理回路の真理値表を示す図である。図３３の論理回路は、４入力のため、入力Ａ０〜Ａ３の全ての入力を入力として使用する。一方、出力は、１つのみなので、出力Ｄ０のみを出力として使用する。真理値表の出力Ｄ１〜Ｄ３の欄には「＊」が記載されている。これは、「０」又は「１」のいずれの値でもよいことを示す。しかしながら、実際に再構成のために真理値表データをＭＬＵＴに書き込むときには、これらの欄には、「０」又は「１」のいずれかの値を書き込む必要がある。少なくとも図１２示すメモリセルユニット３１Ａとメモリセルユニット３１Ｂとの関係で不必要なデータは０データにする。
【０１３１】
Ｂ．接続要素
図３５は、接続要素として動作するＭＬＵＴの一例を示す図である。図３５では、接続要素としてのＭＬＵＴは、論理用アドレス入力ＬＡ線Ａ０の信号を論理動作用データ線Ｄ１に出力し、論理用アドレス入力ＬＡ線Ａ１の信号を論理動作用データ線Ｄ２に出力し、論理用アドレス入力ＬＡ線Ａ２の信号を論理動作用データ線Ｄ３に出力するように動作する。接続要素としてのＭＬＵＴはさらに、論理用アドレス入力ＬＡ線Ａ３の信号を論理動作用データ線Ｄ１に出力するように動作する。
【０１３２】
図３６は、図３５に示す接続要素の真理値表を示す図である。図３５に示す接続要素は、４入力４出力である。したがって、入力Ａ０〜Ａ３の全ての入力と、出力Ｄ０〜Ｄ３の全ての出力が使用される。図３６に示す真理値表によって、ＭＬＵＴは、入力Ａ０の信号を出力Ｄ１に出力し、入力Ａ１の信号を出力Ｄ２に出力し、入力Ａ２の信号を出力Ｄ３に出力し、入力Ａ３の信号を出力Ｄ０に出力する接続要素として動作する。
【０１３３】
図３７は、ＡＤ０、ＡＤ１、ＡＤ２、及びＡＤ３の４つのＡＤ対を有するＭＬＵＴによって実現される接続要素の一例を示す図である。ＡＤ０は、論理用アドレス入力ＬＡ線Ａ０と論理動作用データ線Ｄ０とを有する。ＡＤ１は、論理用アドレス入力ＬＡ線Ａ１と論理動作用データ線Ｄ１とを有する。ＡＤ２は、論理用アドレス入力ＬＡ線Ａ２と論理動作用データ線Ｄ２とを有する。そして、ＡＤ３は、論理用アドレス入力ＬＡ線Ａ３と論理動作用データ線Ｄ３とを有する。図３７において、１点鎖線は、ＡＤ対０の論理用アドレス入力ＬＡ線Ａ０に入力された信号がＡＤ対１の論理動作用データ線Ｄ１に出力される信号の流れを示す。２点鎖線は、第２のＡＤ対１の論理用アドレス入力ＬＡ線Ａ１に入力された信号がＡＤ対２の論理動作用データ線Ｄ２に出力される信号の流れを示す。破線は、ＡＤ対２の論理用アドレス入力ＬＡ線Ａ２に入力された信号がＡＤ対３の論理動作用データ線Ｄ３に出力される信号の流れを示す。実線は、ＡＤ対３の論理用アドレス入力ＬＡ線Ａ３に入力された信号がＡＤ対０の論理動作用データ線Ｄ０に出力される信号の流れを示す。
【０１３４】
なお、図３７では、ＭＬＵＴ３０が有するＡＤ対は４であるが、ＡＤ対の数は、特に４に限定されない。
【０１３５】
Ｃ．論理要素と接続要素の組合せ機能
図３８は、１つのＭＬＵＴが、論理要素及び接続要素として動作する一例を示す図である。図３８に示す例では、論理用アドレス入力ＬＡ線Ａ０及びＡ１を２入力ＮＯＲ回路１２１の入力とし、２入力ＮＯＲ回路１２１の出力と、論理用アドレス入力ＬＡ線Ａ２とを２入力ＮＡＮＤ回路１２２の入力とし、２入力ＮＡＮＤ回路１２２の出力を論理動作用データ線Ｄ０に出力する論理回路を構成する。また同時に、論理用アドレス入力ＬＡ線Ａ３の信号を論理動作用データ線Ｄ２に出力する接続要素を構成する。
【０１３６】
図３９に、図３８に示す論理要素及び接続要素の真理値表を示す。図３８の論理動作は、入力Ｄ０〜Ｄ３の３つの入力を使用し、１つの出力Ｄ０を出力として使用する。一方、図３９の接続要素は、入力Ａ３の信号を出力Ｄ２に出力する接続要素が構成される。
【０１３７】
図４０は、ＡＤ０、ＡＤ１、ＡＤ２、及びＡＤ３の４つのＡＤ対を有するＭＬＵＴによって実現される論理動作及び接続要素の一例を示す図である。図３７に示すＭＬＵＴと同様に、ＡＤ０は、論理用アドレス入力ＬＡ線Ａ０と論理動作用データ線Ｄ０とを有する。ＡＤ１は、論理用アドレス入力ＬＡ線Ａ１と論理動作用データ線Ｄ１とを有する。ＡＤ２は、論理用アドレス入力ＬＡ線Ａ２と論理動作用データ線Ｄ２とを有する。そして、ＡＤ３は、論理用アドレス入力ＬＡ線Ａ３と論理動作用データ線Ｄ３とを有する。上述のように、ＭＬＵＴ３０は、３入力１出力の論理動作と、１入力１出力の接続要素との２つの動作を１つのＭＬＵＴ３０で実現する。具体的には、論理動作は、ＡＤ対０の論理用アドレス入力ＬＡ線Ａ０と、ＡＤ対１の論理用アドレス入力ＬＡ線Ａ１と、ＡＤ対２の論理用アドレス入力ＬＡ線Ａ２とを入力として使用する。そして、ＡＤ対０の論理動作用データ線Ｄ０のアドレス線を出力と使用する。また、接続要素は、破線で示すようにＡＤ対３の論理用アドレス入力ＬＡ線Ａ３に入力された信号をＡＤ対２の論理動作用データ線Ｄ２に出力する。
【０１３８】
Ｄ．再構成可能論理マルチプレクサを用いたＭＬＵＴの真理値表データ
図４１に示す例における構成データを図４２Ａ〜図４２Ｊに示す。図４１は、図２４で説明した交互配置のＭＬＵＴにより構成される論理回路と配線を示す図である。図４１で示される、２つのメモリセルユニット（左側、右側）により構成され、論理回路と配線は、ＭＬＵＴ３０Ａ〜３０Ｄにより構成される。また、下記に示す図４２Ａ〜図４２Ｊは、ページ制御で選択される真理値表データも含む。
【０１３９】
図４２Ａは、ＭＬＵＴ３０Ａの左側のメモリセルユニットに格納される構成データの一例を示す図である。図４２Ｂは、ＭＬＵＴ３０Ａの右側のメモリセルユニットに格納される構成データの一例を示す図である。図４２Ｃは、ＭＬＵＴ３０Ｂの左側のメモリセルユニットに格納される構成データの一例を示す図である。図４２Ｄは、ＭＬＵＴ３０Ｂの右側のメモリセルユニットに格納される構成データの一例を示す図である。図４２Ｅは、ＭＬＵＴ３０Ｃの左側のメモリセルユニットに格納される構成データの一例を示す図である。図４２Ｆは、ＭＬＵＴ３０Ｃの右側のメモリセルユニットに格納される構成データの一例を示す図である。
【０１４０】
図４２Ｇは、ＭＬＵＴ３０Ｄの左側のメモリセルユニットに格納される構成データの一例を示す図である。図４２Ｈは、ＭＬＵＴ３０Ｄの右側のメモリセルユニットに格納される構成データの一例を示す図である。図４２Ｉは、ＭＬＵＴ３０Ｅの左側のメモリセルユニットに格納される構成データの一例を示す図である。図４２Ｊは、ＭＬＵＴ３０Ｅの右側のメモリセルユニットに格納される構成データの一例を示す図である。
【０１４１】
上記したように、再構成可能論理マルチプレクサの出力は、論理和されているため、信号出力の無い経路の構成データを「０」とすることにより、所望の論理演算を結果を出力するように、構成データは構成されている。
【０１４２】
［９］真理値表データの生成方法
再構成可能な半導体装置の真理値表データは、論理構成用のソフトウェアプログラムを実行する情報処理装置によって生成される。
【０１４３】
図４３に、情報処理装置のハードウェア構成の一例を示す。情報処理装置２１０は、プロセッサ２１１と、入力部２１２と、出力部２１３と、記憶部２１４とドライブ装置２１５を有する。プロセッサ２１１は、入力部２１２に入力された配置・配線用のソフトウェア、集積回路を設計するためのＣ言語記述またはハードウェア記述言語（ＨＤＬ）などの回路記述言語、及び、上記ソフトウェアを実行することによって生成される真理値表データを記憶部２１４に記憶する。また、プロセッサ２１１は、配置・配線用のソフトウェアを実行して、記憶部２１４に記憶された回路記述に対して以下に示す配置・配線の処理を行い、出力部２１３に、真理値表データを出力する。出力部２１３には、再構成可能な論理デバイス２０（図３４には示さず）を接続することができ、プロセッサ２１１が論理構成処理を実行して、生成した真理値表データを、出力部２１３を介して再構成可能な論理デバイス２０に書き込む。出力部２１３は、外部ネットワークと接続していてもよい。この場合、論理構成用のソフトウェアプログラムは、ネットワークを介して送受信される。ドライブ装置２１５は、例えば、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、フラッシュメモリなどの記憶媒体２１７を読み書きする装置である。ドライブ装置２１５は、記憶媒体２１７を回転させるモータや記憶媒体２１７上でデータを読み書きするヘッド等を含む。なお、記憶媒体２１７は、論理構成用のプログラム、又は、真理値表データを格納することができる。ドライブ装置２１５は、セットされた記憶媒体２１７からプログラムを読み出す。プロセッサ２１１は、ドライブ装置２１５により読み出されたプログラム又は真理値表データを、記憶部２１４に格納する。
【０１４４】
以上説明した実施形態は典型例として挙げたに過ぎず、その各実施形態の構成要素の組合せ、変形及びバリエーションは当業者にとって明らかであり、当業者であれば本発明の原理及び請求の範囲に記載した発明の範囲を逸脱することなく上述の実施形態の種々の変形を行えることは明らかである。特に、ＭＲＬＤの論理又は接続動作において、双方向ＭＬＵＴを、多方向ＭＬＵＴの動作とすることは実施形態の変更として可能である。
【符号の説明】
【０１４５】
２０    ＭＲＬＤ
３０    ＭＬＵＴ
３１    メモリセルユニット
４０    記憶素子
６０    ＭＬＵＴアレイ
【図１】
2014065424.tif 000003
【図２】
2014065424.tif 000004
【図３】
2014065424.tif 000005
【図４】
2014065424.tif 000006
【図５】
2014065424.tif 000007
【図６】
2014065424.tif 000008
【図７】
2014065424.tif 000009
【図８】
2014065424.tif 000010
【図９】
2014065424.tif 000011
【図１０】
2014065424.tif 000012
【図１１】
2014065424.tif 000013
【図１２】
2014065424.tif 000014
【図１３】
2014065424.tif 000015
【図１４】
2014065424.tif 000016
【図１５Ａ】
2014065424.tif 000017
【図１５Ｂ】
2014065424.tif 000018
【図１６】
2014065424.tif 000019
【図１７】
2014065424.tif 000020
【図１８】
2014065424.tif 000021
【図１９】
2014065424.tif 000022
【図２０】
2014065424.tif 000023
【図２１】
2014065424.tif 000024
【図２２】
2014065424.tif 000025
【図２３】
2014065424.tif 000026
【図２４】
2014065424.tif 000027
【図２５】
2014065424.tif 000028
【図２６Ａ】
2014065424.tif 000029
【図２６Ｂ】
2014065424.tif 000030
【図２７】
2014065424.tif 000031
【図２８Ａ】
2014065424.tif 000032
【図２８Ｂ】
2014065424.tif 000033
【図２８Ｃ】
2014065424.tif 000034
【図２９Ａ】
2014065424.tif 000035
【図２９Ｂ】
2014065424.tif 000036
【図３０】
2014065424.tif 000037
【図３１】
2014065424.tif 000038
【図３２】
2014065424.tif 000039
【図３３】
2014065424.tif 000040
【図３４】
2014065424.tif 000041
【図３５】
2014065424.tif 000042
【図３６】
2014065424.tif 000043
【図３７】
2014065424.tif 000044
【図３８】
2014065424.tif 000045
【図３９】
2014065424.tif 000046
【図４０】
2014065424.tif 000047
【図４１】
2014065424.tif 000048
【図４２Ａ】
2014065424.tif 000049
【図４２Ｂ】
2014065424.tif 000050
【図４２Ｃ】
2014065424.tif 000051
【図４２Ｄ】
2014065424.tif 000052
【図４２Ｅ】
2014065424.tif 000053
【図４２Ｆ】
2014065424.tif 000054
【図４２Ｇ】
2014065424.tif 000055
【図４２Ｈ】
2014065424.tif 000056
【図４２Ｉ】
2014065424.tif 000057
【図４２Ｊ】
2014065424.tif 000058
【図４３】
2014065424.tif 000059
【国際調査報告】
2014065424.tif 000060
2014065424.tif 000061