JP5890733B2 - 再構成可能な半導体装置の配置配線方法、そのプログラム、及び配置配線装置 - Google Patents

再構成可能な半導体装置の配置配線方法、そのプログラム、及び配置配線装置 Download PDF

Info

Publication number
JP5890733B2
JP5890733B2 JP2012088864A JP2012088864A JP5890733B2 JP 5890733 B2 JP5890733 B2 JP 5890733B2 JP 2012088864 A JP2012088864 A JP 2012088864A JP 2012088864 A JP2012088864 A JP 2012088864A JP 5890733 B2 JP5890733 B2 JP 5890733B2
Authority
JP
Japan
Prior art keywords
memory cell
data
address
circuit
truth table
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012088864A
Other languages
English (en)
Other versions
JP2013218537A (ja
Inventor
佐藤 正幸
正幸 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Taiyo Yuden Co Ltd
Original Assignee
Taiyo Yuden Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Taiyo Yuden Co Ltd filed Critical Taiyo Yuden Co Ltd
Priority to JP2012088864A priority Critical patent/JP5890733B2/ja
Priority to US14/390,729 priority patent/US9177092B2/en
Priority to CN201380018430.XA priority patent/CN104205104B/zh
Priority to PCT/JP2013/053453 priority patent/WO2013153852A1/ja
Priority to TW102108725A priority patent/TWI576850B/zh
Publication of JP2013218537A publication Critical patent/JP2013218537A/ja
Application granted granted Critical
Publication of JP5890733B2 publication Critical patent/JP5890733B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing

Description

本発明は、再構成可能な半導体装置の配置配線方法、そのプログラム、及び配置配線装置に関する。
FPGA(Field−Programmable Gate Array)など、回路構成を切り替え可能なPLD(Programmable Logic Device)が広く使用されている。出願人又は発明者は、メモリセルユニットで回路構成を実現する「MPLD(Memory−based Programmable Logic Device)」(登録商標)を開発している。MPLDは、例えば、下記特許文献1に示される。MPLDは、MLUT(Multi Look−Up−Table)と呼ぶメモリアレイを相互に接続する。MLUTは真理値データを格納して、配線要素と論理要素を構成する。MPLDは、このMLUTをアレイ状に並べ、相互接続することによってFPGAとほぼ同等の機能を実現している。
また、MPLDは、MLUTを論理要素と配線要素の双方として使用することによって、論理領域と配線領域に柔軟性をもたせたデバイスであり、メモリセルユニット間の接続に専用の切り替え回路を有するFPGAと異なる。
FPGAについての最適配置、配線方法については既に検討されている(特許文献2)。MPLDの配置配線の場合、MLUTは論理要素及び/又は接続要素として動作するので、MLUTへの真理値表データの書込が、論理動作の配置、及び/又は、MLUT間の配線を意味する。そのため、MLUTに書き込むための真理値表データの生成が、MPLDの「配置・配線」に相当するが、MPLDについての最適配置、配線方法は開示していなかった。
特開2010−239325号公報 特開平8−87537号公報
MPLDは、配線要素と論理要素を同じMLUTで実現することから、回路を構成する際に論理セルの配置を工夫することで、配線要素として使用するMLUT数を減らすことができる。つまり、論理要素として用いるMLUT数が増えることになるので、より小規模なMPLDで所望の機能を実現できる。しかし、MPLDは配線要素と論理要素を同じメモリセルユニットであるMLUTで実現することから、論理と、配線が異なる回路ユニットにより実現されるFPGAの配置配線ツールのアルゴリズムは使用できない。このような状況から、MPLD向けの配置配線手法が必要になる。
本実施形態に係る配置配線方法は、メモリセルユニットから構成される再構成可能な半導体装置に対して、配線論理に使用されるメモリセルユニットの数を減らして、配置配線効率を高くすることを目的とする。
上記課題を解決する形態は、以下の項目により示される。
1.再構成可能な半導体装置の配置配線方法であって、
前記半導体装置は、アレイを構成するとともに互いに接続する複数のメモリセルユニットを備え、前記メモリセルユニットは、複数のアドレスで特定された入力値の論理演算を、データ線に出力するように構成される真理値表データを書き込むと、論理要素として動作し、及び/又は、あるアドレスで特定された入力値を、他のメモリセルユニットのアドレスに接続するデータ線に出力するように構成される真理値表データを書き込むと、接続要素として動作し、
回路構成を記述した回路記述に基づいて、ネットリストを生成し、
前記ネットリストから、スキャン化すべき順序回路データセットを抽出し、
前記スキャン化すべき順序回路データセットから、前記複数のメモリセルユニットのうち第1セットに書き込むための第1真理値表データセットを生成し、
前記ネットリストの組合せ論理回路データセットから、前記複数のメモリセルユニットのうち第2セットに書き込むための第2真理値表データセットを生成することを特徴とする再構成可能な半導体装置の配置配線方法。
2.前記第1真理値表データセットが割り当てられるメモリセルユニットを、クロックに同期させた実行をシミュレーションし、及び/又は、前記複数の第2真理値表データセットを、クロックに非同期で実行をシミュレーションして、前記半導体装置が所定の動作速度を実現するか評価する、項目1に記載の配置配線方法。
3.前記半導体装置は、N本(Nは2以上の整数)のアドレス線から入力されるアドレスをデコードしてワード線にワード選択信号を出力するアドレスデコーダを各メモリセルユニット毎に有し、
前記メモリセルユニットは、前記ワード線とデータ線に接続し、真理値表を構成するデータをそれぞれ記憶し、前記ワード線から入力される前記ワード選択信号により、前記データを前記データ線に入出力する複数の記憶素子を有し、
前記メモリセルユニットのN本のアドレス線は、前記メモリセルユニットの他のN個のメモリセルユニットのデータ線に、それぞれ接続する、項目1又は2に記載の配置配線方法。
4.再構成可能な半導体装置の配置配線を行う配置配線装置であって、
前記半導体装置は、アレイを構成する複数のメモリセルユニットを備え、前記メモリセルユニットは、複数のアドレスで特定された入力値の論理演算を、データ線に出力するように構成される真理値表データを書き込むと、論理要素として動作し、及び/又は、あるアドレスで特定された入力値を、他のメモリセルユニットのアドレスに接続するデータ線に出力するように構成される真理値表データを書き込むと、接続要素として動作すし、
前記配置配線装置は、プロセッサを備え、
前記プロセッサは、
回路構成を記述した回路記述に基づいて、ネットリストを生成し、
前記ネットリストから、スキャン化すべき順序回路データセットを抽出し、
前記スキャン化すべき順序回路データセットから、前記複数のメモリセルユニットのうち第1セットに書き込むための第1真理値表データセットを生成し、
前記ネットリストの組合せ論理回路データセットから、前記複数のメモリセルユニットのうち第2セットに書き込むための第2真理値表データセットを生成することを特徴とする配置配線装置。
5.前記プロセッサは、前記第1真理値表データセットが割り当てられるメモリセルユニットを、クロックに同期させた実行をシミュレーションし、及び/又は、前記複数の第2真理値表データセットを、クロックに非同期で実行をシミュレーションして、前記半導体装置が所定の動作速度を実現するか評価するように構成される、項目4に記載の配置配線装置。
6.再構成可能な半導体装置を配置配線するためのプログラムであって、前記半導体装置は、アレイを構成する複数のメモリセルユニットを備え、前記メモリセルユニットは、複数のアドレスで特定された入力値の論理演算を、データ線に出力するように構成される真理値表データを書き込むと、論理要素として動作し、及び/又は、あるアドレスで特定された入力値を、他のメモリセルユニットのアドレスに接続するデータ線に出力するように構成される真理値表データを書き込むと、接続要素として動作し、
プロセッサに、
回路構成を記述した回路記述に基づいて、ネットリストを生成する処理、
前記ネットリストから、スキャン化すべき順序回路データセットを抽出する処理、
前記スキャン化すべき順序回路データセットから、前記複数のメモリセルユニットのうち第1セットに書き込むための第1真理値表データセットを生成する処理、
前記ネットリストの組合せ論理回路データセットから、前記複数のメモリセルユニットのうち第2セットに書き込むための第2真理値表データセットを生成する処理を、実行させることを特徴とするプログラム。
7.前記第1真理値表データセットが割り当てられるメモリセルユニットを、クロックに同期させた実行をシミュレーションし、及び/又は、前記複数の第2真理値表データセットを、クロックに非同期で実行をシミュレーションして、前記半導体装置が所定の動作速度を実現するか評価する処理をプロセッサに実行させる項目6に記載のプログラム。
8.前記半導体装置は、N本(Nは2以上の整数)のアドレス線から入力されるアドレスをデコードしてワード線にワード選択信号を出力するアドレスデコーダを各メモリセルユニット毎に有し、
前記メモリセルユニットは、前記ワード線とデータ線に接続し、真理値表を構成するデータをそれぞれ記憶し、前記ワード線から入力される前記ワード選択信号により、前記データを前記データ線に入出力する複数の記憶素子を有し、
前記メモリセルユニットのN本のアドレス線は、前記メモリセルユニットの他のN個のメモリセルユニットのデータ線に、それぞれ接続する、項目6又は7に記載のプログラム。
本実施形態に係る配置配線方法は、メモリセルユニットから構成される再構成可能な半導体装置に対して、配線論理に使用されるメモリセルユニットの数を減らして、配置配線効率を高くできる。
同期/非同期切替可能なMLUTの第1例である。 MLUTの第1例を示す図である。 記憶素子の詳細例である。 アドレスデコーダの詳細例である。 MLUTの詳細例を示す図である。 プリチャージ回路の詳細例を示す図である。 ATD回路の詳細例である。 ATD回路を流れる信号のタイムチャートである。 同期/非同期切替可能なMLUTの第2例である。 同期/非同期切替可能なMLUTを用いたMPLDの一例を示す図である。 情報処理装置のハードウェア構成の一例を示す図である。 配置配線処理の一例を示すフローチャートである。 論理合成により生成された実際の回路図であるグルーロジックとF/Fの概略を示す。 スキャン化により新たに生成されたグルーロジックと、スキャンF/Fの概略を示す。 MLUT割り当ての評価方法の一例を示すフローチャートである。 MLUT割り当て評価の例を示す概念図である。 論理要素として動作するMLUTの一例を示す図である。 論理回路として動作するMLUTの一例を示す図である。 図17に示す論理回路の真理値表を示す図である。 接続要素として動作するMLUTの一例を示す図である。 図19に示す接続要素の真理値表を示す図である。 4つのAD対を有するMLUTによって実現される接続要素の一例を示す図である。 1つのMLUTが、論理要素及び接続要素として動作する一例を示す図である。 図22に示す論理要素及び接続要素の真理値表を示す。 AD対を有するMLUTによって実現される論理動作及び接続要素の一例を示す図である。
以下、図面を参照して、〔1〕再構成可能な半導体装置、〔2〕配置配線手法、〔3〕MLUTを論理要素及び/又は接続要素として動作させる真理値表の例について順に説明する。
〔1〕再構成可能な半導体装置
以下、同期又は非同期切替可能なMLUTを有する再構成可能な半導体装置について、2つの例を用いて説明する。
〔1.1〕同期/非同期切替可能なMLUTの第1例
図1は、同期/非同期切替可能なMLUTの第1例である。再構成可能な半導体装置としてのMPLD20は、MLUTと呼ぶ配線要素と論理要素の双方を実現するメモリ回路を相互に接続することにより論理を構成する。MPLD20は、図1のようにMLUTをアレイ状に敷き詰め、アドレス線LAとデータ線LDの対を用いてMLUT同士を相互接続させた構成になっている。メモリセルユニットから構成されるMLUT30を複数有するとともに、MLUTを特定するアドレスをデコードして、動作対象となるMLUTを特定するMLUTデコーダ12を有する。MPLD20は、MLUT30の記憶素子に、真理値表を構成するデータがそれぞれ記憶することで、論理要素、又は、接続要素、又は、論理要素及び接続要素として動作する論理動作を行う。
MPLD20はさらに、メモリ動作を行う。メモリ動作とは、MLUT30に含まれるメモリセルユニットへのデータの書込みWDや読み出しRDをいう。MLUT30へのデータの書込みは、真理値表データの書き換えにもなるため、メモリ動作は、真理値表データの再構成を生じる。
図2は、MLUTの第1例を示す図である。図2に示されるMLUT30は、各々がデータを記憶するメモリセルからなるメモリセルアレイ110と、アドレスデコーダ120と、外部から供給される外部クロックを選択する選択部130と、外部クロックの選択の有無に応じて、メモリセルアレイ110へのデータ読出し又はデータ書き込みを行うデータ入出力部140を有する。
メモリセルアレイは、n×2個の記憶素子を有し、n×2個の記憶素子は、2のn乗本のワード線と、n本のビット線の接続部分に配置される。なお、ビットライン数は、必要に応じてn本より増やしてもよい。図3は、記憶素子の詳細例である。図3に示される記憶素子40では、pMOSトランジスタ161、162、及び、nMOSトランジスタ163、164、165、166を備える。pMOSトランジスタ161のソースと、pMOSトランジスタ162のソースとは、VDD(電源電圧端)に接続する。nMOSトランジスタ163のドレーンと、nMOSトランジスタ164のドレーンは、VSS(接地電圧端)に接続される。
nMOSトランジスタ165のドレーンは、ビット線bに接続される。nMOSトランジスタ165のゲートは、ワード線WLに接続される。nMOSトランジスタ166のドレーンは、ビット線/bに接続される。nMOSトランジスタ166のゲートは、ワード線WLに接続される。
上記構成により、書き込み動作では、記憶素子40は、ワード線WLの信号レベル「H(High)」により、ビット線b及びビット線/bから伝えられた信号レベルを、pMOSトランジスタ161、162、nMOSトランジスタ163、164に保持する。読み出し動作では、記憶素子40は、ワード線WLの信号レベル「H」により、pMOSトランジスタ161、162、nMOSトランジスタ163、164に保持された信号レベルを、ビット線b、及び、ビット線/bに伝える。
図4は、アドレスデコーダの詳細例を示す図である。図4に示されるアドレスデコーダ120は、インバータ回路120−1、AND回路120−2、及びAND回路120−3を有する。インバータ回路120−1は、n本のアドレス信号線毎に、n個ある。AND回路120−2、120−3は、それぞれ2のn乗個ある。
インバータ回路120−1は、n本のアドレス信号線から受け取ったアドレス信号の論理を反転し、反転したアドレス信号を、AND回路120−2に出力する。AND回路120−2は、アドレス信号、及び、反転アドレス信号を入力信号として受け取り、全ての入力値の信号レベルが「H」のとき、論理積演算により、信号レベル「H」の出力を第2AND回路に出力する。AND回路120−3は、AND回路120−2の出力と、内部クロック(後述)を入力信号として受け取り、全ての入力値の信号レベルが「H」のとき、論理積演算により、信号レベル「H」の出力を出力する。
ワード線選択信号は、信号レベルが「H」であり、ワード線非選択信号は、信号レベル「L(Low)」である。このようにして、アドレスデコーダ120は、2のn乗本のワード線のうち1つのワード線に、信号レベル「H」のワード線選択信号を出力するように構成される。
なお、図4の例では、内部クロックを用いる例を示したが、内部クロックに同期しないデコーダであってもよい。その場合、AND回路120−3は不要となり、AND回路120−2の出力が、メモリセルのワード線と接続する。
図2を参照すると、アドレスデコーダ120は、n本のアドレス信号線から受け取ったアドレス信号をデコードし、2のn乗本のワード線WLにデコード信号であるワード線選択信号を出力する。
選択部130は、外部から供給される選択データに基いて、外部から供給される外部クロックを、データ入出力部140に伝える選択回路である。選択部130は、データ出力線毎に個々に設けられる複数の選択回路であり、選択回路は、それぞれ外部から供給される選択データを保持する。選択データは、メモリセルアレイ110から供給されてもよい。その場合、各選択回路は、メモリセルアレイ110内の特定のメモリセル(選択データ用メモリセル)に各々接続しており、選択データ用メモリセルの信号レベル「H」の場合、選択データの信号レベルも「H」になり、選択データ用メモリセルの信号レベル「L」の場合、選択データの信号レベルも「L」になる。選択回路は、選択データの信号レベル「L」の場合、外部クロックをデータ入出力部140に伝え、その選択回路に対応する読出データQは、外部クロックに同期して、読み出される。選択回路は、選択データの信号レベル「H」の場合、外部クロックをデータ入出力部140に伝えず、その選択回路に対応する読出データQは外部クロックに非同期で、読み出される。
データ入出力部140は、外部からライトイネーブル(WE)のエッジタイミング及び書込データを受け取ると、n本のビット線b、/bにその書込データの信号レベルを伝えて、メモリセルに書込データを書き込む。また、データ入出力部140は、n本のビット線b、/bの信号レベルを外部に出力することで、読出データを出力する。
図5は、MLUTの詳細例を示す図である。図4に示す半導体メモリ装置100Aは、メモリセル110、アドレスデコーダ120A、120B、選択部130A、ビットプリチャージ回路135、データ入出力部140Aを備える。
図5に示す例では、メモリセルユニット110において、X列が、2の5乗本のワード線と、Y列が、読出し用と、書込み用にそれぞれ用意される2の2乗×7本と1本のビット線が縦横に格子状に形成され、メモリセルは、ワード線とビット線の交差点に配置されている。よって、2の7乗×(7個+1個)のメモリセルを有し、そのうち7個のメモリセルは、上記した選択データ用メモリセルである。
図2で説明したアドレスデコーダ120は、図5では、X列用のXアドレスデコーダ120A及びY列用のYアドレスデコーダ120Bからなり、Xアドレスデコーダ120A及びYアドレスデコーダ120Bは、アドレス信号線A0〜A4、及び、アドレス信号線A5〜A6にそれぞれ接続する。アドレス信号線の数が増える場合、図5に示すように、X列と、Y列のデコーダに分けることで、メモリセル形状をX軸方向に伸ばすことができる。
選択データ用メモリセルは、選択データを保持し、選択データの信号を、S0,S1、・・・、S6として選択回路の制御信号とする。
Xアドレスデコーダ120Aは、アドレス変化検出部としてのATD回路(Address Transition Detect)121を備える。ATD回路は、アドレス入力端子に設けられ、アドレス入力端子に印加されるアドレス入力信号の変化を検知して、変化したアドレス信号を出力する回路である。ATD回路の詳細例は、図6及び図7を用いて後述する。
ATD回路はアドレス信号の変化を検出したときだけ、変化したアドレス信号を、Xアドレスデコーダ120Aに出力するので、Xアドレスデコーダ120Aは、アドレス信号が変化したときだけワード選択信号を出力し、アドレス信号が変化しないときはワード線選択信号を出力しない。このようにすることで、アドレス変化がない時は、ワード線選択信号が出力されないので、外乱ノイズによる書き込み誤動作を防止することができる。また、Xアドレスデコーダ120Aは、図2に示すアドレスデコーダ120より、ワード線を活性化するアドレス線の数を減らすので、アドレス変異が生じた場合にメモリセルへのワード線を介したノイズ混入の可能性を減らすことができる。
さらに、Xアドレスデコーダ120Aは、内部クロックを発生させるためのクロック回路122を有する。後述されるように、内部クロックは、データ入出力部140のフリップフロップ及びATD回路121の同期信号にも利用される。アドレスデコーダにおいてこの内部クロックに同期して、ワード選択信号の出力バラツキを抑制することもできる。一方、内部クロック周期を、外部クロック周期より短くすることで、非同期SRAMの高速性も両立させることができる。
内部クロックは、外部クロックと異なる周期としてもよく、非同期SRAMとして外部クロックに同期せずに、アクセス可能という非同期SRAMの高速性を得るために、内部クロックは、外部クロックより短周期であることが好ましい。
なお、上記説明では、Xアドレスデコーダ120A内にATD回路121及びクロック回路122を設ける例を説明したが、ATD回路121及びクロック回路122は、Xアドレスデコーダ120Aと別個に設けてもよい。ただし、ATD回路121は、アドレスの変遷を検出するために、Xアドレスデコーダ120Aの上段に設ける必要がある。
Yアドレスデコーダ120Bは、複数の選択回路であり、各々は7本のデータ線毎に複数個設けられてもよい。その場合、各々の選択回路は、4つのビット対から、アドレス信号A5、A6に従って、1つのビット対b、/bを、出力用又は入力用データ線として選択する。
ビットラインプリチャージ回路135は、ビット線b及びビット線/bを共に「1」にプリチャージする。
図6は、1ビット線対のためのビットラインプリチャージ回路の詳細例を示す。1ビット線対のためのビットラインプリチャージ回路135aは、2つのPMOSを有し、ビットラインプリチャージ回路135aの入力は、ビット線b及びビット線/bを介して、メモリセルと接続する。そして、ビットラインプリチャージ回路135aの出力は、ビット線b及びビット線/bを介してYアドレスデコーダと接続する。また、ビットラインプリチャージ回路135aは、内部クロックに従ってビット線対b、/bの信号レベルを「H」にプリチャージする。このような、1ビット線対のためのビットラインプリチャージ回路135aが、メモリセルアレイ110の各ビット線対b、/b毎に設けられる。
クロックが入り、信号レベルが「H」になると、PMOSがオフになるので、VDDとの接続も切れて、ビット線はメモリセルの情報でレベルを出力する。クロックの信号レベルが「L」になるとPMOSがオンになり、ビット線はVDDの電位に引き上げられる。このように、クロックが入るときだけ、ビット線がメモリセルと接続することで、メモリセルへの外乱ノイズによる書き込み誤動作を防ぐ。
再び、図5に戻ると、選択部130Aは、図2に示した選択部130と同様に、データ出力線毎に個々に設けられる複数の選択回路であり、選択回路は、それぞれ選択データを保持する。選択部130Aは、選択回路が選択データの信号レベル「H」の場合、外部クロックをデータ入出力部140に伝えず、内部クロックをデータ入出力部140に伝える点において、選択部130と異なる。メモリセルアレイ110には、1ビットラインを追加してD7とする。D7の1番地のメモリセルの内部信号をS0、2番地のメモリセルの内部信号をS1として、7番地のメモリセルの内部信号S7までの信号を、出力ラッチのクロックの内部クロック及び外部クロックの選択信号とする。
1ビット内に、選択データを保持できるので、メモリセルアレイ110の小型化できる。また、新たに選択データ格納用のメモリセルを設けることなく、既存のメモリセルを選択データを格納するために使用してもよい。
なお、外部から、選択データにデータを直接書き込むためには、外部データを受けるためのレジスタが必要になる。さらに、外部は、レジスタ用の書き込み制御が要求される。選択データをメモリセルに書き込みようにすれば、新たな書き込み制御を要することなく、外部から選択回路を制御可能になる。
外部クロックは一定の周期で入ってくるので、アドレスが変わっても出力は変わらないが、非同期はアドレスが変われば内部クロックに従って動作する。このように、内部クロックが外部クロックよりも短周期であれば、より高い即時性でデータアクセスが可能になる。したがって、非同期SRAMと同様に、外部クロックと同期させないときの高速性が要求される場合は、内部クロックは、外部クロックより短周期にする必要がある。
データ入出力部140は、出力データ線毎に設けられる複数のフリップフロップ(F/F)を有し(図4に示す例では、D型フリップフロップ)、C(CLOCK)端子の立ち上がりエッジでD入力の値がQ出力として保持される。つまり、クロック時のみ出力変化をさせて、それ以外は情報を保持する。このことにより、ビット線を「H」状態にでき、デバイスの低電圧化におけるマージン確保を図ることができる。
上記の例では、ワード線が32本であり、信号レベルの劣化が少ないので、センスアンプは、示していないが、アドレス、及びメモリセルの増加により、ワード線が増える場合は、ビットプリチャージ回路135と、Yアドレスデコーダ120Bの間に、センスアンプやライトアンプを設けてもよい。
また、図3に示したメモリセルは、シングルポートのものであるが、読出し及び書込みを同時に行う高速型のメモリセルを使用する場合は、マルチポートのメモリセルであってもよい。
以上説明したように、半導体メモリ装置100Aは、アドレス変化がない時は、ワード線選択信号が出力されないので、外乱ノイズによる書き込み誤動作を防止することができるとともに、データ線毎に外部クロック及び内部クロックの切り替えを行うことができる。
図7Aは、ATD回路の一例を示す図である。図7Aに示すATD回路121は、121−1に示されるように、フリップフロップ(F/F)、遅延回路(DC)、論理積演算を行うAND回路、排他的論理和演算を行うXOR回路、論理和演算を行うOR回路、トランスミッションゲート(TG)から構成される。AND回路、XOR回路及びOR回路は、MIL記号で示される。
XOR回路の入力は、アドレス信号と、そのアドレス信号を遅延させた信号であるので、遅延させている間に、アドレス信号に変化があれば、アドレス信号の変化を検出し、信号レベル「H」を出力する。このように、ATD回路121は、XOR回路と遅延回路の組み合わせでアドレス変化を検出する。
図7Bは、図7Aに示すATD回路のタイムチャートを示す。図7A及び図7BのAiは、外部からのアドレス信号入力に相当し、aiは図4に示すインバータ回路120−1の上段から分岐する信号入力に相当し、オーバーライン付きaiは、図4に示すインバータ回路120−1の出力信号、φ1は、TGからフロップフロップのクロックに入力する帰還信号、φ2は、AND回路に入力する帰還信号である。
フリップフロップは、内部クロックに同期したφ1をクロックとして受け取り、クロックのエッジの立ち上がりで、アドレス信号を保持する。
XOR回路は、前サイクルのアドレスと現在サイクルのアドレスが相違する場合、信号レベル「H」の信号を出力し、その信号が、φ2として、TGから出力される。φ2をクロックとして受け取るフリップフロップは、φ1のサイクルで保持していたアドレスを出力する。AND回路は、φ2のサイクルでフロップフロップから出力されたφ1サイクルのアドレスの信号レベルと、φ2の信号レベルが同じである場合、φ1サイクルのアドレスを、アドレスaiとして出力する。このように、ATD回路は、アドレス変化を検出したときだけ、変化したアドレス信号をアドレスデコーダに出力する。
〔1.2〕同期/非同期切替可能なMLUTの第2例
図8は、同期/非同期切替可能なMLUTの第2例である。図8に示すMLUTは、非同期用のメモリセルユニット40aと、同期用のメモリセルユニット40bのペアから構成され、同期用のメモリセルユニット40bの後段には、クロックCLKと同期するF/F41を有する。非同期用のメモリセルユニット40a及び同期用のメモリセルユニット40bには、それぞれ、アドレスデコーダ9a及び9bが設けられ、さらに、動作切替信号によって、メモリ動作か、論理動作かを選択するアドレス切替回路10、及び、動作切替信号によって、読み出しデータRDか論理動作用データLDかを選択する出力データ切替回路11が設けられる。
MPLD20を構成するメモリセルユニット及びその周辺回路からなる回路ユニットを、MLUTと言う。メモリセルユニットには、真理値表を構成するデータを格納することで、MLUTは、再構成可能デバイスであるMPLDの構成要素として動作する。MPLDが再構成可能デバイスとして使用される技術的根拠は、後述する。
MLUTは、図2に示すように、2つのメモリセルユニットを必ずしも必要としないが、各MLUTが、同期/非同期のどちらでも使えるため、同期メモリ、順序回路の論理要素、非同期メモリ、組合せ論理回路の論理要素と、様々な使い方が可能になる。
図8に示すMLUT30は、動作切替信号が論理動作を示す場合、論理動作用アドレスLAに従って、論理動作用データLDを出力する。また、MLUT30は、動作切替信号がメモリ動作を示す場合、メモリ動作用アドレスに従って、書込みデータWDを受け入れ、又は、読み出しデータRDを出力する。
アドレス切替回路10は、メモリ動作用アドレスが入力されるn本のメモリ動作用アドレス信号線と、論理動作用アドレス信号が入力されるn本の論理動作用アドレス入力信号線と、動作切替信号が入力される動作切替信号線とを接続する。アドレス切替回路10aは、動作切替信号に基づいて、メモリ動作用アドレス、又は論理動作用アドレスのいずれかをn本の選択アドレス信号線に出力するように動作する。このように、アドレス切替回路10aが、アドレス信号線を選択するのは、記憶素子40が読み出し動作と書込み動作の何れかを受け付ける1ポート型の記憶素子であるからである。論理動作的にはCE(Chip Enable)0、CE1を同時にアクティブにして、同期メモリ出力と非同期メモリ出力の論理和を出力する。そうすることにより、組み合わせ回路と順序回路を表現できる。メモリ動作のときは、交互にアクティブにして所定の記憶動作をさせる。
例えば、配線や組み合わせ回路を行わせるAD対(MLUTの論理動作用アドレス線と、それと接続する論理動作用データ線の対をいう)では、同期用のメモリには真理値0を記憶し、非同期用のメモリには所定の真理値を記憶させて、非同期用メモリのデータで信号伝播を行わせる。このことにより、メモリにおけるクロック遅延がなく論理回路を構成できる。また、順序回路では、同期用メモリに所定の真理値を記憶させ、非同期用メモリでは真理値0とする。このことによりクロック動作の順序回路が構成できる。このことは、順序回路構成での特別なF/Fをもさせなくてよく効率的である。
アドレスデコーダ9a、9bは、アドレス切替回路10から供給されるn本のアドレス信号線から受け取った選択アドレス信号をデコードし、2のn乗本のワード線にデコード信号を出力する。
メモリセルユニットのn×2個の記憶素子は、2のn乗本のワード線と、n本の書込データ線と、n個の出力データ線の接続部分に配置される。
出力データ切替回路11は、n本の出力データ線から信号を受け取ると、入力される動作切替信号に従って、読み出しデータをn本の読み出しデータ信号線に出力し、又は、読み出しデータを論理動作用信号線に出力するように動作する。
〔1.3〕同期/非同期切替可能なMLUTを用いたMPLD
図9は、同期/非同期切替可能なMLUTを用いたMPLDの一例を示す図である。図9に示すMPLD20は、複数のMLUT30を有する。MLUT30内の矩形は、半導体メモリ装置で説明した選択信号で切り替え可能なデータ出力線毎に設けられるF/Fである。この、F/Fは、データ入出力部140のF/Fに相当する。
6方向配置のMLUT(1つのMLUTの周囲に、6つのMLUTが配置され、中心にあるMLUTと周囲にある6つのMLUTが、それぞれ1つのAD対で接続される。言い換えれば、MLUTの6本のアドレス線は、周囲に配置されるの他の6個のMLUTのデータ線に、それぞれ接続され、MLUTの6本のデータ線は、MLUTの他の6個のMLUTのアドレス線に、それぞれ接続する)は、AD対に対して均一な接続を持たせることが出来るが、乗算回路などのようにCLA(キャリア・ルック・アヘッド)回路を2つ持つ回路では、自MLUT内で回路を実現できず、MLUTをひとつ多く使用するので論理構成効率が悪い。一方、交互配置(1つのMLUTの周囲に、8つのMLUTが配置され、周囲にある4つのMLUTとAD対と接続し、そのうち2つのMLUTとは2つのAD対で接続する。例えば、特開2010−239325号公報に開示されている)は隣接するMLUTに2つのAD対を持たせ得るのでこの場合は交互配置が優位である。
しかしながら、交互配置のMLUTは、接続要素として動作するMLUTの数を減らすことができるので、所望の論理回路を構成する記憶素子ブロックの総量を減らすことができるため、交互配置のMLUTを可能な限り用いるのが好ましい。
また、従来方式のMLUT間接続では、離間配線(離間配線は、近距離配線でないMLUT間を結線するAD対の配線をいう。例えば、特開2010−239325号公報に開示されている)が、AD対7でMLUTを飛んで配線させているので、長距離の配線においてMLUTを節約できる。AD対7を使い順序回路に必要なF/Fを接続すると、F/Fは自分のMLUTに戻る構造を持っている。また、離間配線とF/Fはある程度の比率で混在させている。この関係で順序回路を構成すると接続要素としてのMLUTが必要になり、論理構成効率が悪い。
図9に示すように、MLUT自体が、F/Fを持っており、外部にあるF/Fと接続するためにAD対を使用する必要がないので、AD対7は全て離間配線に使うことができる。
同期/非同期切替可能なMLUTを用いることで、MLUTが実現する回路も、同期が必要な回路と、同期が不要な回路に、MLUT内部で分けたり、1つのMLUTを動的に同期が必要な回路と、同期が不要な回路に使い分けることができる。例えば、組み合わせ回路や配線ロジックで非同期が必要な時は内部クロックとしてデータ線毎に非同期化して、順序回路のときは外部クロックでデータ線毎に同期化するように、MLUTをデータ線毎に設定することができる。
〔2〕配置配線手法
MPLDの配置配線を行うには、抽象的な回路の動作に関するハードウェア記述言語からネットリスト(素子間を接続する配線情報)を生成し、それを、実際のデジタル回路に割り当てる(以下「論理合成」と言う)配置配線方法が必要である。MPLDの機能搭載例として、論理合成された回路群を選択して入力ピンから逐次配置する方法が考えられる。しかし、配置についてはその後の回路の配置エリアを確保して配置しなければならない。また、組み合わせ回路と順序回路を仕分けせず行なうと、F/FのないMLUTに配置した場合は配置失敗となって再度配置検討しなければならない。その時、F/Fを有したMLUTに行き着くまでは配線論理となり、MLUTを多く使い配置配線効率が悪い状態になる。
本実施形態に係る配置配線手法では、F/Fをスキャン化した真理値表を生成して、MLUTによりF/Fを構成する。このために、所望の論理を実現する組合せ回路と、F/F間の配線要素が減り、MPLDの配置配線効率が高くなる。
C言語ではレジスタとその間の演算が主動作となるが、レジスタはF/Fであり、演算は組み合わせ論理であることから、基本的にC言語から論理合成が可能となる。レジスタ宣言からF/Fの配置を決め、演算の動作から真理値データが生成されるので、論理回路合成を経なくても論理合成が可能になる。従来、再構成デバイスの論理合成、特にC言語からの合成は、一度RTL記述(Verilog,VHDL)に変換して、その後、論理回路生成をして配置配線をしなければならなかった。そのために、何度かの情報処理を必要としており、煩雑であった。本実施形態に係る配置配線手法では、C言語からの論理合成が可能となり、簡便な手法が産業界に提供できる。
MPLDにとって、真理値表の作成と、その真理値表をMLUTに書き込む作業が、FPGAの配置配線に相当する。以下、図11〜15を用いて、本実施形態に係る配置配線方法を説明する。
なお、配置配線方法は、本実施形態に係る配置配線用のソフトウェアプログラムを実行する情報処理装置によって実現される。図10に、情報処理装置のハードウェア構成の一例を示す。情報処理装置210は、プロセッサ211と、入力部212と、出力部213と、記憶部214とドライブ装置215を有する。プロセッサ211は、入力部212に入力された配置・配線用のソフトウェア、集積回路を設計するためのC言語記述またはハードウェア記述言語(HDL)などの回路記述言語、及び、上記ソフトウェアを実行することによって生成される真理値表データを記憶部214に記憶する。また、プロセッサ211は、配置・配線用のソフトウェアを実行して、記憶部214に記憶された回路記述に対して以下に示す配置・配線の処理を行い、出力部213に、真理値表データを出力する。出力部213には、半導体装置100(図示せず)を接続することができ、プロセッサ211が配置配線処理を実行して、生成した真理値表データを、出力部213を介して半導体装置100に書き込む。出力部213は、外部ネットワークと接続していてもよい。この場合、配置配線用のソフトウェアプログラムは、ネットワークを介して送受信される。ドライブ装置215は、例えば、DVD(Digital Versatile Disc)、フラッシュメモリなどの記憶媒体217を読み書きする装置である。ドライブ装置215は、記憶媒体217を回転させるモータや記憶媒体217上でデータを読み書きするヘッド等を含む。なお、記憶媒体217は、配置配線用のプログラムを格納することができる。ドライブ装置215は、セットされた記憶媒体217からプログラムを読み出す。プロセッサ211は、ドライブ装置215により読み出されたプログラムを、記憶部214に格納する。なお、情報処置装置210は、本実施形態に係る配置配線方法を実行する配置配線装置として動作する。
図11は、配置配線処理の一例を示すフローチャートである。図11に示す配置配線処理は、図10に示す情報処理装置が実行する。まず、論理合成(S101)を行う。論理合成とは、広義では論理動作を生成することを言うが、本実施形態では、狭義の意味で、回路記述言語から、ネットリスト(素子間を接続する配線の一覧を記述したゲート・レベルの設計データの表現形式)を生成することを示す。図12には、論理合成により生成された実際の回路図であるグルーロジック1000AとF/Fの概略を示す。論理回路には組合せ回路と順序回路があるが、組合せ論理回路はグルー・ロジックと言う。
次に、論理合成により生成された回路に対して、スキャン化すべきF/Fを抽出する(S102)。スキャン化とは、論理回路内のレジスタを、論理合成された回路の内部のF/Fを、スキャン機能付きF/F(スキャンF/F)に置き換えることにより、F/Fを最適配置する。なお、F/Fがランダムにスキャン化されると配線が混線して有効で短いチェーン配線が構成できないため、論理状態を見て最適最短のチェーンを形成するように、抽出する。スキャン化すべきF/Fの抽出は、ネットリストからF/Fを抽出することにより行う。抽出処理により、ネットリストにおいて、スキャン化すべきF/Fが特定される。
図13は、スキャン化により新たに生成されたグルーロジックと、スキャンF/Fの概略を示す。スキャン化により、図12のグルー・ロジック1000Aを、スキャンF/F1100と接続するグルーロジック1000Bに構成し、図12に示す回路内のF/Fを、スキャンF/F1100に置き換える。また、このようにすることで、スキャンF/F1100は、グルーロジック1000Bを挟む形で配置される。図12と、図13を比較すると、グルーロジックとF/F間の接続関係が、図12に示す接続関係の方が簡略化されていることがわかる。このような簡略化により、F/Fとグルーロジック間の接続に必要となる配線論理を大幅に減らすことができる。
配置配線については、今までのMPLDの配置配線は組み合わせ回路と順序回路とを区別せず、回路をMLUTに配置して配線していた。MPLDはMLUTでの組み合わせ回路や配線がメモリの記憶情報で構成されることから、図12に示すように、グルーロジックとF/Fが混在し、このまま配置配線すると、F/Fと組合せ論理回路を接続する配線論理が必要になるので、配線論理が増えて合成効率が下がる。しかし、順序回路を先に配置すれば、F/Fと組合せ論理回路を接続する配線論理の量が相対的に減少するので、組み合わせ回路間の配線論理が削減できる。
抽出処理により特定されたスキャン化すべきF/Fから、真理値表のデータセットを生成する(S103)。スキャンF/F1100を抽出する。そして、論理合成したF/F間には複数のMLUTが必要になるので、これを組み合わせ回路を表現する真理値表データを生成する。当然、F/Fなので、配線論理も含まれるので、生成する真理値表データには、F/F間の論理状態を配線論理で表真理値も含まれる。ここで生成される複数のMLUTにそれぞれ書き込むための複数の真理値表データは、F/F間の接続状態を表現するので、図12に示すグルーロジックとF/F間の配線論理は生成されない。
次に、F/Fの配置を行う(S104)。このステップでは、同期選択したMLUTにF/F用の真理値データを割り当てる処理が行われる。当該処理も、シミュレートしたMLUTに真理値表を割り当てる処理である。なお、当該MLUTのシミュレーションでは、回路記述を実現する真理値表をMLUTに書き込んだ場合、動作速度を計るタイミング分析を少なくとも行う。そのため、当該シミュレーション環境では、所望の回路記述を実現するMLUT数に相当する配線長を計算し、さらに配線帳による信号遅延を計算し、クロック同期などのタイミング分析を行う。
そして、グルーロジックの配置を行う(S105)。このステップでは、非同期選択したMLUTにグルーロジックの真理値データを割り当てる処理が行われる。当該処理も、シミュレートしたMLUTに真理値表を割り当てる処理である。
なお、S105では、必要に応じて、MLUT分割又は結合を行ってもよい。MLUT分割又は結合とは、ネットリストを、MLUTに適当なネットリストとすることである。分割ステップでは、1つのMLUTに割り当てる1つの真理値表に所定の論理回路を包含できるように、論理回路の入力及び出力数を所定のAD対の数以下にするステップである。結合は、MLUTに構成される真理値表の数を最適化するために、1つのMLUTに包含できる2つ以上の真理値表を1つの真理値表にまとめる。このようなMLUT分割又は結合により、MLUTに構成される真理値表の数を最適化することができる。
次に、真理値表を割り当てられたMLUTが所定のMLUT数や、動作速度などの条件を満たすか評価する(S106)。評価が条件を満たせば(S106 Yes)、実際の真理値表データを生成し、記憶部214に格納、及び/又は、出力部213を介して、MPLDに書き込み、動作させる処理を行う。このとき、生成された真理値表は、ステップS103で抽出されたスキャン化すべき順序回路データセット(つまりスキャンF/F)から、複数のMLUTのうちの第1セットに書き込むための第1真理値表データセットと、ネットリストの組合せ論理回路データセットから、複数のMLUTのうちの第2セットに書き込むための第2真理値表データセットが生成される。条件を満たさない場合(S106 No)、S104に戻り、F/F及びグルーロジックのMLUTへの再配置を再度行うことを繰り返す。
図14は、MLUT割り当ての評価方法の一例を示すフローチャートである。図15は、MLUT割り当て評価の例を示す概念図である。当該処理も、図10に示すような、記憶部に記憶されるソフトウェアプログラムを実行する情報処理装置によって実現される。
まず、MLUT全てに優先順位をつける(S201)。優先順位が高いMLUTを配置対象MLUTとする(S202)。配置対象MLUTに関して自身の入力信号を生成しているMLUTまたは外部入力が置かれているMLUTを探索対象MLUTとする(S203)。探索基点MLUTより、図15に示す半径Rの円内にあるMLUT全てを配置先MLUTの候補とする(S204)。候補の中からランダムに1つのMLUTを選ぶ(S205)。選んだMLUTへ配置対象MLUTが配置可能か判断し(S206)、配線する(S207)。そして、配置対象MLUTの出力が外部に繋がっているか判断する(S208)。配置対象MLUTの出力が外部に繋がっている場合(S208、Yes)、全てのMLUTが配置されているか判断し(S209)、全てのMLUTが配置されている場合(S209、Yes)、処理を修了する。ステップS208の例を、図15で説明すると、MLUT2が、外部n101と繋がっているか判断し、つながっている場合、全てのMLUT0〜2が配置されているか判断し、配置されている場合、処理を終了する。
配置対象MLUTの出力が外部に繋がっていない場合(S208、No)、出力先のMLUTを注目MLUTとする(S210)。例えば、図15では、MLUT0やMLUT1にとって、出力先のMLUTは、MLUT2となる。次に、配置対象MLUTの入力先のMLUTが全て配置済みか判断する(S211)。全て配置済みの場合(S211、Yes)、S203に戻る。配置対象MLUTの入力先のMLUTが全て配置済みでない場合(S211、No)、S202に戻る。
〔3〕MLUTを論理要素及び/又は接続要素として動作させる真理値表の例
A.論理要素
図16は、論理要素として動作するMLUTの一例を示す図である。図16に示すMLUT30a、30bは、4つの論理動作用アドレス線A0〜A3と、4つの論理動作用データ線D0〜D3と、4×16=64個の記憶素子40と、アドレスデコーダ9とをそれぞれ有する。論理動作用データ線D0〜D3は、24個の記憶素子40をそれぞれ直列に接続する。アドレスデコーダ9は、論理動作用アドレス線A0〜A3に入力される信号に基づき、24本のワード線のいずれかに接続される4つの記憶素子を選択するように構成される。この4つの記憶素子はそれぞれ、論理動作用データ線D0〜D3に接続され、記憶素子に記憶されるデータを論理動作用データ線D0〜D3に出力する。例えば、論理動作用アドレス線A0〜A3に適当な信号が入力される場合は、4つの記憶素子40a、40b、40c、及び40dを選択するように構成することができる。ここで、記憶素子40aは、論理動作用データ線D0に接続され、記憶素子40bは、論理動作用データ線D1に接続され、記憶素子40dは、論理動作用データ線D2に接続され、記憶素子40dは、論理動作用データ線D3に接続される。そして、論理動作用データ線D0〜D3には、記憶素子40a〜40dに記憶される信号が出力される。このように、MLUT30a、30bは、論理動作用アドレス線A0〜A3から論理動作用アドレスを受け取り、その論理動作用アドレスによってアドレスデコーダ9が選択する4つの記憶素子40に記憶される値を、論理動作用データ線D0〜D3に論理動作用データとしてそれぞれ出力する。なお、MLUT30aの論理動作用アドレス線A2は、隣接するMLUT30bの論理動作用データ線D0と接続しており、MLUT30aは、MLUT30bから出力される論理動作用データを、論理動作用アドレスとして受け取る。また、MLUT30aの論理動作用データ線D2は、MLUT30bの論理動作用アドレス線A0と接続しており、MLUT30aが出力する論理動作用データは、MLUT30bで論理動作用アドレスとして受け取られる。例えば、MLUT30aの論理動作用データ線D2は、MLUT30aの論理動作用アドレス線A0〜A3に入力される信号に基づき、論理動作用データ線D2に接続される24個の記憶素子のいずれか1つに記憶される信号をMLUT30bの論理動作用アドレスA0に出力する。同様に、MLUT30bの論理動作用データ線D0は、MLUT30bの論理動作用アドレス線A0〜A3に入力される信号に基づき、論理動作用データ線D0に接続される24個の記憶素子のいずれか1つに記憶される信号をMLUT30aの論理動作用アドレスA2に出力する。このように、MPLD同士の連結は、1対のアドレス線とデータ線とを用いる。
なお、図16では、MLUT30a、30bが有するAD対は4であるが、AD対の数は、この数に限定されない。
図17は、論理回路として動作するMLUTの一例を示す図である。本例では、論理動作用アドレス線A0及びA1を2入力NOR回路701の入力とし、論理動作用アドレス線A2及びA3を2入力NAND回路702の入力とする。そして、2入力NOR回路の出力と、2入力NAND回路702の出力を、2入力NAND回路703に入力し、2入力NAND回路703の出力を論理動作用データ線D0に出力する論理回路を構成する。
図18は、図17に示す論理回路の真理値表を示す図である。図17の論理回路は、4入力のため、入力A0〜A3の全ての入力を入力として使用する。一方、出力は、1つのみなので、出力D0のみを出力として使用する。そしてこの出力D0は、図17に示す複数のアドレスで特定された入力値の論理演算(図17に示すように、論理和、又は、論理積)した値が記載されている。図18に示す真理値表の出力D1〜D3の欄には「*」が記載されている。これは、「0」又は「1」のいずれの値でもよいことを示す。例のためこのように示したが、実際に再構成のために真理値表データをMLUTに書き込むときには、これらの欄には、「0」又は「1」のいずれかの値を書き込む必要がある。
B.接続要素
図19は、接続要素として動作するMLUTの一例を示す図である。図19では、接続要素としてのMLUTは、論理動作用アドレス線A0の信号を論理動作用データ線D1に出力し、論理動作用アドレス線A1の信号を論理動作用データ線D2に出力し、論理動作用アドレス線A2の信号を論理動作用データ線D3に出力するように動作する。接続要素としてのMLUTはさらに、論理動作用アドレス線A3の信号を論理動作用データ線D1に出力するように動作する。
図20は、図19に示す接続要素の真理値表を示す図である。図19に示す接続要素は、4入力4出力である。したがって、入力A0〜A3の全ての入力と、出力D0〜D3の全ての出力が使用される。図20に示す真理値表によって、MLUTは、入力A0の信号を出力D1に出力し、入力A1の信号を出力D2に出力し、入力A2の信号を出力D3に出力し、入力A3の信号を出力D0に出力する接続要素として動作する。
図21は、AD0、AD1、AD2、及びAD3の4つのAD対を有するMLUTによって実現される接続要素の一例を示す図である。AD0は、論理動作用アドレス線A0と論理動作用データ線D0とを有する。AD1は、論理動作用アドレス線A1と論理動作用データ線D1とを有する。AD2は、論理動作用アドレス線A2と論理動作用データ線D2とを有する。そして、AD3は、論理動作用アドレス線A3と論理動作用データ線D3とを有する。図21において、1点鎖線は、AD対0の論理動作用アドレス線A0に入力された信号がAD対1の論理動作用データ線D1に出力される信号の流れを示す。2点鎖線は、第2のAD対1の論理動作用アドレス線A1に入力された信号がAD対2の論理動作用データ線D2に出力される信号の流れを示す。破線は、AD対2の論理動作用アドレス線A2に入力された信号がAD対3の論理動作用データ線D3に出力される信号の流れを示す。実線は、AD対3の論理動作用アドレス線A3に入力された信号がAD対0の論理動作用データ線D0に出力される信号の流れを示す。
なお、図21では、MLUT30が有するAD対は4であるが、AD対の数は、特に4に限定されない。
C.論理要素と接続要素の組合せ機能
図22は、1つのMLUTが、論理要素及び接続要素として動作する一例を示す図である。図22に示す例では、論理動作用アドレス線A0及びA1を2入力NOR回路121の入力とし、2入力NOR回路121の出力と、論理動作用アドレス線A2とを2入力NAND回路122の入力とし、2入力NAND回路122の出力を論理動作用データ線D0に出力する論理回路を構成する。また同時に、論理動作用アドレス線A3の信号を論理動作用データ線D2に出力する接続要素を構成する。
図23に、図22に示す論理要素及び接続要素の真理値表を示す。図22の論理動作は、入力D0〜D3の3つの入力を使用し、1つの出力D0を出力として使用する。一方、図23の接続要素は、入力A3の信号を出力D2に出力する接続要素が構成される。
図24は、AD0、AD1、AD2、及びAD3の4つのAD対を有するMLUTによって実現される論理動作及び接続要素の一例を示す図である。図21に示すMLUTと同様に、AD0は、論理動作用アドレス線A0と論理動作用データ線D0とを有する。AD1は、論理動作用アドレス線A1と論理動作用データ線D1とを有する。AD2は、論理動作用アドレス線A2と論理動作用データ線D2とを有する。そして、AD3は、論理動作用アドレス線A3と論理動作用データ線D3とを有する。上述のように、MLUT30は、3入力1出力の論理動作と、1入力1出力の接続要素との2つの動作を1つのMLUT30で実現する。具体的には、論理動作は、AD対0の論理動作用アドレス線A0と、AD対1の論理動作用アドレス線A1と、AD対2の論理動作用アドレス線A2とを入力として使用する。そして、AD対0の論理動作用データ線D0のアドレス線を出力と使用する。また、接続要素は、破線で示すようにAD対3の論理動作用アドレス線A3に入力された信号をAD対2の論理動作用データ線D2に出力する。
以上説明した実施形態は典型例として挙げたに過ぎず、その各実施形態の構成要素の組合せ、変形及びバリエーションは当業者にとって明らかであり、当業者であれば本発明の原理及び請求の範囲に記載した発明の範囲を逸脱することなく上述の実施形態の種々の変形を行えることは明らかである。
20 MPLD
30 MLUT
100 半導体装置

Claims (9)

  1. 再構成可能な半導体装置の配置配線方法であって、
    前記半導体装置は、アレイを構成するとともに互いに接続する複数のメモリセルユニットを備え、前記メモリセルユニットは、複数のアドレスで特定された入力値の論理演算を、データ線に出力するように構成される真理値表データを書き込むと、論理要素として動作し、及び/又は、あるアドレスで特定された入力値を、他のメモリセルユニットのアドレスに接続するデータ線に出力するように構成される真理値表データを書き込むと、接続要素として動作し、
    プロセッサが、回路構成を記述した回路記述に基づいて、ネットリストを生成し、
    前記プロセッサが、前記ネットリストから、スキャン化すべき順序回路データセットを抽出し、
    前記プロセッサが、前記スキャン化すべき順序回路データセットから、前記複数のメモリセルユニットのうち第1セットに書き込むための第1真理値表データセットを生成し、
    前記プロセッサが、前記ネットリストの組合せ論理回路データセットから、前記複数のメモリセルユニットのうち第2セットに書き込むための第2真理値表データセットを生成することを特徴とする再構成可能な半導体装置の配置配線方法。
  2. 前記プロセッサが、前記第1真理値表データセットが割り当てられるメモリセルユニットを、クロックに同期させた実行をシミュレーションし、及び/又は、
    前記プロセッサが、前記複数の第2真理値表データセットを、クロックに非同期で実行をシミュレーションして、前記半導体装置が所定の動作速度を実現するか評価する、請求項1に記載の配置配線方法。
  3. 前記半導体装置は、N本(Nは2以上の整数)のアドレス線から入力されるアドレスをデコードしてワード線にワード選択信号を出力するアドレスデコーダを各メモリセルユニット毎に有し、
    前記メモリセルユニットは、前記ワード線とデータ線に接続し、真理値表を構成するデータをそれぞれ記憶し、前記ワード線から入力される前記ワード選択信号により、前記データを前記データ線に入出力する複数の記憶素子を有し、
    前記メモリセルユニットのN本のアドレス線は、前記メモリセルユニットの他のN個のメモリセルユニットのデータ線に、それぞれ接続する、請求項1又は2に記載の配置配線方法。
  4. 再構成可能な半導体装置の配置配線を行う配置配線装置であって、
    前記半導体装置は、アレイを構成する複数のメモリセルユニットを備え、前記メモリセルユニットは、複数のアドレスで特定された入力値の論理演算を、データ線に出力するように構成される真理値表データを書き込むと、論理要素として動作し、及び/又は、あるアドレスで特定された入力値を、他のメモリセルユニットのアドレスに接続するデータ線に出力するように構成される真理値表データを書き込むと、接続要素として動作
    前記配置配線装置は、プロセッサを備え、
    前記プロセッサは、
    回路構成を記述した回路記述に基づいて、ネットリストを生成し、
    前記ネットリストから、スキャン化すべき順序回路データセットを抽出し、
    前記スキャン化すべき順序回路データセットから、前記複数のメモリセルユニットのうち第1セットに書き込むための第1真理値表データセットを生成し、
    前記ネットリストの組合せ論理回路データセットから、前記複数のメモリセルユニットのうち第2セットに書き込むための第2真理値表データセットを生成することを特徴とする配置配線装置。
  5. 前記プロセッサは、前記第1真理値表データセットが割り当てられるメモリセルユニットを、クロックに同期させた実行をシミュレーションし、及び/又は、前記複数の第2真理値表データセットを、クロックに非同期で実行をシミュレーションして、前記半導体装置が所定の動作速度を実現するか評価するように構成される、請求項4に記載の配置配線装置。
  6. 再構成可能な半導体装置を配置配線するためのプログラムであって、前記半導体装置は、アレイを構成する複数のメモリセルユニットを備え、前記メモリセルユニットは、複数のアドレスで特定された入力値の論理演算を、データ線に出力するように構成される真理値表データを書き込むと、論理要素として動作し、及び/又は、あるアドレスで特定された入力値を、他のメモリセルユニットのアドレスに接続するデータ線に出力するように構成される真理値表データを書き込むと、接続要素として動作し、
    プロセッサに、
    回路構成を記述した回路記述に基づいて、ネットリストを生成する処理、
    前記ネットリストから、スキャン化すべき順序回路データセットを抽出する処理、
    前記スキャン化すべき順序回路データセットから、前記複数のメモリセルユニットのうち第1セットに書き込むための第1真理値表データセットを生成する処理、
    前記ネットリストの組合せ論理回路データセットから、前記複数のメモリセルユニットのうち第2セットに書き込むための第2真理値表データセットを生成する処理を、実行させることを特徴とするプログラム。
  7. 前記第1真理値表データセットが割り当てられるメモリセルユニットを、クロックに同期させた実行をシミュレーションし、及び/又は、前記複数の第2真理値表データセットを、クロックに非同期で実行をシミュレーションして、前記半導体装置が所定の動作速度を実現するか評価する処理をプロセッサに実行させる請求項6に記載のプログラム。
  8. 前記半導体装置は、N本(Nは2以上の整数)のアドレス線から入力されるアドレスをデコードしてワード線にワード選択信号を出力するアドレスデコーダを各メモリセルユニット毎に有し、
    前記メモリセルユニットは、前記ワード線とデータ線に接続し、真理値表を構成するデータをそれぞれ記憶し、前記ワード線から入力される前記ワード選択信号により、前記データを前記データ線に入出力する複数の記憶素子を有し、
    前記メモリセルユニットのN本のアドレス線は、前記メモリセルユニットの他のN個のメモリセルユニットのデータ線に、それぞれ接続する、請求項6又は7に記載のプログラム。
  9. 請求項の何れか1項に示すプログラムを格納するコンピュータが読み取り可能な記憶媒体。
JP2012088864A 2012-04-09 2012-04-09 再構成可能な半導体装置の配置配線方法、そのプログラム、及び配置配線装置 Expired - Fee Related JP5890733B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2012088864A JP5890733B2 (ja) 2012-04-09 2012-04-09 再構成可能な半導体装置の配置配線方法、そのプログラム、及び配置配線装置
US14/390,729 US9177092B2 (en) 2012-04-09 2013-02-14 Method for arranging and wiring reconfigurable semiconductor device, program therefor, and arranging and wiring apparatus
CN201380018430.XA CN104205104B (zh) 2012-04-09 2013-02-14 可再构成的半导体装置的配置配线方法及配置配线装置
PCT/JP2013/053453 WO2013153852A1 (ja) 2012-04-09 2013-02-14 再構成可能な半導体装置の配置配線方法、そのプログラム、及び配置配線装置
TW102108725A TWI576850B (zh) 2012-04-09 2013-03-12 And a wiring method for disposing a semiconductor device that can be reconstructed, a program thereof, and a wiring device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012088864A JP5890733B2 (ja) 2012-04-09 2012-04-09 再構成可能な半導体装置の配置配線方法、そのプログラム、及び配置配線装置

Publications (2)

Publication Number Publication Date
JP2013218537A JP2013218537A (ja) 2013-10-24
JP5890733B2 true JP5890733B2 (ja) 2016-03-22

Family

ID=49327432

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012088864A Expired - Fee Related JP5890733B2 (ja) 2012-04-09 2012-04-09 再構成可能な半導体装置の配置配線方法、そのプログラム、及び配置配線装置

Country Status (5)

Country Link
US (1) US9177092B2 (ja)
JP (1) JP5890733B2 (ja)
CN (1) CN104205104B (ja)
TW (1) TWI576850B (ja)
WO (1) WO2013153852A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104737450B (zh) * 2012-10-28 2018-01-19 太阳诱电株式会社 可再构成的半导体装置
EP2988443B1 (en) 2013-05-24 2023-09-13 Nippon Telegraph and Telephone Corporation Wireless communication apparatus and wireless communication method
CN104571949B (zh) * 2014-12-22 2017-07-07 华中科技大学 基于忆阻器实现计算与存储融合的处理器及其操作方法
CN105989883B (zh) * 2015-02-26 2019-08-06 群联电子股份有限公司 存储器编程方法、存储器存储装置与存储器控制电路单元
US11609861B1 (en) * 2020-04-08 2023-03-21 Marvell Asia Pte Ltd Method and apparatus for efficient address decoding and address usage reduction

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887537A (ja) 1994-09-19 1996-04-02 Pfu Ltd フィールド・プログラマブル・ゲートアレイの最適配置・配線方法および装置
US6215689B1 (en) * 1999-11-18 2001-04-10 Cypress Semiconductor Corporation Architecture, circuitry and method for configuring volatile and/or non-volatile memory for programmable logic applications
US6496971B1 (en) * 2000-02-07 2002-12-17 Xilinx, Inc. Supporting multiple FPGA configuration modes using dedicated on-chip processor
US6331788B1 (en) * 2001-07-03 2001-12-18 The United States Of America As Represented By The Secretary Of The Air Force Simplified cellular array structure for programmable Boolean networks
US7042756B2 (en) * 2002-10-18 2006-05-09 Viciciv Technology Configurable storage device
US7784005B1 (en) * 2005-06-14 2010-08-24 Xilinx, Inc. Electronic circuit design viewer
JP4703655B2 (ja) * 2005-11-28 2011-06-15 太陽誘電株式会社 半導体装置
JP5260077B2 (ja) * 2008-02-15 2013-08-14 太陽誘電株式会社 プログラマブル論理デバイスおよびその構築方法およびその使用方法
JP5140029B2 (ja) * 2009-03-30 2013-02-06 太陽誘電株式会社 半導体装置
JP5735503B2 (ja) * 2010-06-24 2015-06-17 太陽誘電株式会社 半導体装置

Also Published As

Publication number Publication date
US20150095860A1 (en) 2015-04-02
TW201349246A (zh) 2013-12-01
WO2013153852A1 (ja) 2013-10-17
CN104205104A (zh) 2014-12-10
US9177092B2 (en) 2015-11-03
TWI576850B (zh) 2017-04-01
JP2013218537A (ja) 2013-10-24
CN104205104B (zh) 2017-05-10

Similar Documents

Publication Publication Date Title
JP6250548B2 (ja) 再構成可能な半導体装置の論理構成方法
US7667486B2 (en) Non-sequentially configurable IC
JP6517626B2 (ja) 再構成可能な半導体装置
JP6564186B2 (ja) 再構成可能な半導体装置
US20070075737A1 (en) Configurable Circuits, IC's, and Systems
JP5890733B2 (ja) 再構成可能な半導体装置の配置配線方法、そのプログラム、及び配置配線装置
US9425800B2 (en) Reconfigurable logic device
US8185861B2 (en) Variable sized soft memory macros in structured cell arrays, and related methods
US9780792B2 (en) FPGA RAM blocks optimized for use as register files
US20070241788A1 (en) VPA Logic Circuits
Tian et al. A field programmable transistor array featuring single-cycle partial/full dynamic reconfiguration
US7304499B1 (en) Distributed random access memory in a programmable logic device
WO2013011848A1 (ja) 半導体メモリ装置
US9628084B2 (en) Reconfigurable logic device
WO2018207801A1 (ja) プログラム可能なデバイス、その論理構成方法、及びそのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141120

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20150522

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20150522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160215

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160219

R150 Certificate of patent or registration of utility model

Ref document number: 5890733

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees