論理集積回路のCADシステム及びスピントロニクス論理集積回路の設計方法
【課題】設計フローの最小限の変更のみでスピントロニクス論理集積回路の設計体系を確立する。
【解決手段】論理集積回路のCADシステムは、ハードウェア記述言語で記述された動作記述レベルあるいは論理ゲートレベルの論理集積回路ネットリストから、論理合成ツールの入力となるスピントロニクス論理ゲートを含む動作レベルの論理集積回路ネットリストへの変換手段を含む。変換手段は、指定される不揮発化対象の論理信号を入力とする組み合わせ回路の一部をスピントロニクス論理回路に変換する。
【解決手段】論理集積回路のCADシステムは、ハードウェア記述言語で記述された動作記述レベルあるいは論理ゲートレベルの論理集積回路ネットリストから、論理合成ツールの入力となるスピントロニクス論理ゲートを含む動作レベルの論理集積回路ネットリストへの変換手段を含む。変換手段は、指定される不揮発化対象の論理信号を入力とする組み合わせ回路の一部をスピントロニクス論理回路に変換する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、スピントロニクス論理集積回路の設計に関し、特にスピントロニクス論理集積回路の論理合成方法に関する。
【背景技術】
【0002】
今日の情報通信技術は、電子の電荷を利用する半導体デバイス技術と、電子のスピンを利用する磁気デバイス技術とが別々に技術開発されてきた。近年はそれぞれの技術の成熟度が増し、半導体デバイスの情報処理性能や、磁気デバイスの情報蓄積能力といった限界の壁にぶつかりつつある。この限界を解決するために、電子の電荷の自由度と電子のスピンの自由度との両方を利用した相乗効果により、この限界を打破しようというスピントロニクス技術が注目されている。
【0003】
スピントロニクス素子の代表例が磁気抵抗素子(MTJ素子)である。典型的なMTJ素子においては、磁化が一方向に固定された固定磁性層と、二方向に磁化方向が変化する自由磁性層とを用い、これら磁性層の間にトンネルバリア層が形成される。1ビットの情報(0/1)は、自由磁性層の磁化に割り当てられ、二枚の磁性層の磁化が互いに並行(同じ向き)になる場合、トンネルバリア層を通過するトンネル電流が増加し(低抵抗状態)、逆に反平行(反対の向き)になる場合、トンネル電流は減少(高抵抗状態)する性質を利用して情報を取り出すことができる。MTJ素子にある一定以上の磁場を印加する、あるいはスピン偏極電流を流すことにより、自由磁性層の磁化方向を反転させることで1ビットの情報を書き換える。
【0004】
このスピントロニクスの分野では、MTJ素子を半導体デバイスに応用し、ダイナミック・ランダムアクセスメモリ(DRAM)に変わる大容量で高速、かつ不揮発性を兼ね備えた、従来に存在しない性能を実現できる可能性のある磁気ランダムアクセスメモリ(MRAM)が実用化段階に入っている。MRAMは従来の半導体メモリを不揮発化しようという試みであるが、さらに従来の論理回路にもMTJ素子を組み込んで演算機能と不揮発メモリ機能を同時に実現しようという試みも盛んである。
【0005】
例えば、非特許文献1は、MTJ素子が持つビット情報と、電圧で入力されるビット情報とを論理演算するスピントロニクスの要素論理回路を開示している。
【0006】
図1に、このスピントロニクス論理回路10の基本構成を示す。図示のスピントロニクス論理回路10は、第1乃至第5のトランジスタM1〜M5と、第1のMTJ素子RXと、第2のMTJ素子R/Xと、パス・トランジスタ論理部11とから構成されている。第1のトランジスタM1は、NチャネルMOSFETから構成され、第2乃至第5のトランジスタM2〜M5の各々は、PチャネルMOSFETから構成されている。
【0007】
第1のトランジスタM1のソースは接地され、第1のトランジスタM1のゲートにはクロック信号CLKが供給されている。第1のトランジスタM1のドレインは、第1および第2のMTJ素子RXおよびR/Xを介して、それぞれ、パス・トランジスタ論理部11の第1および第2のデータ入力端子Xおよび/Xに接続されている。パス・トランジスタ論理部11は、それぞれ、第1および第2の入力信号AおよびBを受けるための第1および第2の入力端子を持つ。また、パス・トランジスタ論理部11は、第1および第2の内部出力端子yおよび/yを持つ。第1および第2の内部出力端子yおよび/yの信号は、バッファ12を介して出力信号Yとして出力される。
【0008】
第2のトランジスタM2において、そのソースには電源電圧Vddが供給され、そのゲートにはクロック信号CLKが供給され、そのドレインはパス・トランジスタ論理部11の第1の内部出力端子yに接続されている。第3のトランジスタM3において、そのソースには電源電圧Vddが供給され、そのゲートにはクロック信号CLKが供給され、そのドレインはパス・トランジスタ論理部11の第2の内部出力端子/yに接続されている。第4のトランジスタM4において、そのソースには電源電圧Vddが供給され、そのゲートはパス・トランジスタ論理部11の第2の内部出力端子/yに接続され、そのドレインはパス・トランジスタ論理部11の第1の内部出力端子yに接続されている。第5のトランジスタM5において、そのソースには電源電圧Vddが供給され、そのゲートはパス・トランジスタ論理部11の第1の内部出力端子yに接続され、そのドレインはパス・トランジスタ論理部11の第2の内部出力端子/yに接続されている。
【0009】
このような構成のスピントロニクス論理回路10において、2つのMTJ素子RXおよびR/Xに1ビット情報Xが相補に記憶される。1ビット情報Xが論理“0”レベルの時はRX<R/Xとなり、1ビット情報Xが論理“1”レベルの時はRX>R/Xとなる。上述したように、2つのMTJ素子RXおよびR/Xに1ビット情報Xが相補に記憶されるので、その記憶内容(論理値)をMで表すとする。
【0010】
第1および第2の入力信号AおよびBはパス・トランジスタ論理部11に入力される。パス・トランジスタ論理部11は、第1の入力信号Aと第2の入力信号B、及び記憶内容(論理値)Mとを論理演算し、その論理演算された結果を、バッファ12を介して出力信号Yとして出力する。
【0011】
クロック信号CLKがローレベルとなったとする。この時、第1のトランジスタM1はオフとなり、第2および第3のトランジスタM2およびM3がオンとなって、パス・トランジスタ論理部11の第1および第2の内部出力端子yおよび/yはハイプリチャージされる。
【0012】
クロック信号CLKがハイレベルになったとする。このとき、第1のトランジスタM1がオンとなり、第1および第3のトランジスタM2およびM3はオフになり、第4および第5のトランジスタM4およびM5によってパス・トランジスタ論理部11の第1および第2の内部出力端子yおよび/yの信号が増幅される。
【0013】
但し、実際には、MTJ素子RXおよびR/Xに相補のデータXを書き込むための電流供給手段が本回路に接続されるが、図1では説明の便宜上省略している。
【0014】
パス・トランジスタ論理部11の回路構成を変えることで、様々な複雑な論理演算を少数のトランジスタで構成できる。例えば、パス・トランジスタ論理部11を図2(a)に示すパス・トランジスタ構成にすると、スピントロニクス論理回路10は1ビットの加算器として動作する。また、パス・トランジスタ論理部11を図2(b)に示すパス・トランジスタ構成にすると、スピントロニクス論理回路10はキャリー生成回路として動作する。
【0015】
スピントロニクス論理集積回路は図1に示した要素回路が複数結線されて、より大規模で複雑な演算を、従来のCMOS回路に比べて小面積で、且つ省電力で実現することができる。さらに、論理回路内部の論理情報は不揮発性であるので、電源切断前の演算結果が消失しない。よって、データバスにおける情報の転送量を削減できることによる高性能化と省電力化や、電源を高頻度に切断して近年増加の一途をたどる非動作時のリーク電流をゼロにでき、従来実現が困難であった低電力設計を可能にする技術としても期待されている。
【先行技術文献】
【非特許文献】
【0016】
【非特許文献1】“Fabrication of a Nonvolatile Full Adder Based on Logic−in−Memory Architecture Using Magnetic Tunnel Junctions”,Applied Physics Express 1 091301, 2008.
【発明の概要】
【発明が解決しようとする課題】
【0017】
大規模な論理演算回路を設計するには、計算機援用設計(CAD)ツールによる自動設計化は短ターンアラウンド時間(TAT)の観点から必須である。
【0018】
図3に、一般的な相補金属酸化膜半導体(CMOS)論理回路設計における設計フローを示す。図示の設計フロー(プログラム)は、図示しない中央処理装置(CPU)によって処理される。
【0019】
先ず、CPUは、ハードウェア記述言語(HDL)により仕様を満足する動作を記述して、動作記述レベル(RTL:Register Transfer Level)の論理集積回路実回路情報(ネットリスト)を作成する(ステップS101)。ここで、ハードウェア記述言語(HDL)とは、文書化、設計そして超LSI回路などのディジタルシステムの製造を容易にするためのコンピュータ言語のことを指す。また、「RTL」では、回路中のフリップフロップやメモリなどの記憶素子がまず定義され、現在の記憶素子の状態がクロックに対応してどのような次状態に変化するかが定義される。「ネットリスト」とは、回路を構成する素子同士の接続関係や素子の電気的な特性値を記述したテキストファイルのことを指す。
【0020】
引き続いて、CPUは、論理シミュレータで、動作記述レベル(RTL)の論理集積回路ネットリストの機能検証(論理検証)を行う(ステップS102)。
【0021】
次に、CPUは、HDLで記述された動作記述レベルの論理集積回路ネットリストから、論理合成ツールによって、論理ゲートレベルの論理集積回路ネットリストを自動作成する(ステップS103)。
【0022】
図4に示すように、合成された論理回路20は、クロック信号CLKの1サイクルだけデータを保持する遅延フリップフロップ(DFF)21と、多数の要素回路が複雑に結線される組み合せ回路22とから構成される。
【0023】
図3に戻って、CPUは、論理ゲートレベルの論理集積回路ネットリストからプリミティブセルを自動配置し(ステップS104)、セル間を自動配線するツールによりマスクデータを得、トランジスタや配線のRC遅延を考慮したタイミング解析を行う(ステップS105)。
【0024】
大規模なスピントロニクス論理集積回路を設計する際、CMOS論理回路とスピントロニクス論理回路との動作原理の違いから、上記設計フローをそのまま適用することが出来ないという問題がある。
【0025】
詳述すると、CMOS論理回路の場合、トランジスタのオン/オフ比が6桁以上と大きいので、トランジスタはスィッチ素子として働く。よって、組み合せ回路22では入力信号の変化とほぼ同時に出力信号も変化する。これに対して、スピントロニクス論理回路10の場合、MTJ素子RXおよびR/Xの信号量(RXとR/Xの比)が数倍程度であるため、その抵抗差を検出する手続きや制約が必要となる。
【0026】
図1の例で具体的に述べると、クロック信号CLKがハイレベルの時に、各々のMTJ素子RXおよびR/Xに流れる電流の差がパス・トランジスタ論理部11の第1および第2の内部出力端子yおよび/yに相補電圧として出力される。
【0027】
この時、図5(b)に示すように、第1および第2の入力信号A、Bは変化することは許されず、クロック信号CLKがハイレベルに遷移する前に確定される必要がある。
【0028】
また、クロック信号CLKがローレベルのハイプリチャージ期間、出力信号はハイレベルになるので、スピントロニクス論理回路10の出力端子Yに演算結果が出力されるのは、クロック信号CLKの半周期のみになる。
【0029】
これに対し、DFF21においては、入力信号Dはクロックの立上がり前後で確定していれば良く(通常、立上がりエッジ前に必要な確定時間はセットアップ時間で規定され、エッジ後に必要な確定時間はホールド時間で規定される)、出力信号Qはクロック・サイクル期間で保持し続ける(図5(a)参照)。
【0030】
既存設計ツールは、このスピントロニクス論理回路10の特殊性に対応していないため、CMOSライブラリにスピントロニクス論理ゲートを追加するだけでは、既存設計フローに沿った設計をすることができない。特に、HDLで記述された動作記述レベルの論理集積回路ネットリストから、論理ゲートレベルで構成される論理集積回路ネットリストまでのフロントエンドまでの設計が困難である。
【0031】
スピントロニクス論理回路10に特有の設計体系を確立する必要があるが、設計ツールの開発コストや過去の設計資産の流用や互換性を考慮すると、CMOS論理回路設計における設計フローの最小限の変更のみで、スピントロニクス論理回路設計における設計体系を確立できることが望ましい。
【0032】
本発明の目的は、CMOS論理回路設計における設計フローの最小限の変更のみで、スピントロニクス論理回路設計における設計体型を確立することができる、論理集積回路のCADシステムを提供することにある。
【課題を解決するための手段】
【0033】
本発明は、上記課題を解決するため、論理集積回路のCADシステムであって、ハードウェア記述言語で記述された動作記述レベルあるいは論理ゲートレベルの論理集積回路ネットリストから、スピントロニクス論理ゲートを含む不揮発性の論理集積回路ネットリストへ変換する変換手段を有することを特徴とする。
【0034】
また、上記CADシステムにおいて、変換手段は、指定される不揮発化対象の論理信号を入出力とする組み合わせ回路の一部をスピントロニクス論理ゲートに置き換えることを特徴とする。
【0035】
また、論理集積回路の設計手法であって、スピントロニクス素子に割り付けられる論理信号から後段のレジスタ(一般的にはDFF)の入力までの組み合せ論理回路を抽出する第1のステップと、この抽出した組み合せ回路を、この論理真理値と一致するスピントロニクス論理ゲートをライブラリから検索して置き換える第2のステップとを含むことを特徴とする。
【0036】
また、上記設計方法において、スピントロニクス論理ゲートの出力がレジスタに入力されている場合に、このレジスタをラッチ回路に置き換えるステップを更に含むことを特徴とする。
【0037】
また、上記設計方法において、スピントロニクス論理ゲートの入力と、その前段の組み合せ回路との間にラッチ回路を挿入するステップを更に含むことを特徴とする。
【0038】
また、上記設計方法において、置き換え対象の組み合せ論理回路の真理値と一致するスピントロニクス論理ゲートが見つからない場合において、上記組み合せ論理回路の最終段の論理ゲートを除いた組み合せ論理回路に置き換え対象を変更し、この論理真理値と一致するスピントロニクス論理ゲートをライブラリから検索して置き換える第3のステップを更に含むことを特徴とする。
【0039】
また、上記設計方法において、置き換え対象の組み合わせ論理回路の論理真理値と一致するスピントロニクス論理ゲートが見つかるまで、上記第1乃至第3のステップを繰り返すことを特徴とする。
【0040】
また、上記設計方法において、上記第1および第2のステップの各々は、上記レジスタがクロック信号の立ち上がり(立ち下がり)で入力データを取り込む場合に、クロック信号の立ち下がり(立ち上がり)で論理演算を実行するスピントロニクス論理ゲートを選択することを特徴とする。
【発明の効果】
【0041】
本発明によれば、CMOS論理回路の既存設計フローにほぼ沿った形でスピントロニクス論理集積回路の設計が可能となる。これは、CMOS論理回路を前提に書かれた設計資産(動作記述ネットリスト)を流用することも簡単になり、スピントロニクス論理集積回路のゲートレベル化も可能になる。
【図面の簡単な説明】
【0042】
【図1】スピントロニクス論理回路の基本回路構成を示す図である。
【図2】図1のパス・トランジスタ論理回路の例を示す図で、(a)はSUM回路、(b)はCARRY生成回路の例を示す図である。
【図3】典型的な論理集積回路の自動設計フロー図である。
【図4】論理合成ツールによって得られる同期型論理回路の基本構成を示す図である。
【図5】図4に示す同期型論理回路の動作タイミング・チャートであり、(a)はDFFの動作タイミング・チャート、(b)はスピントロニクス論理回路の動作タイミング・チャートである。
【図6】(a)は本発明の第1の実施形態における、F/F化されたスピントロニクス論理回路の基本構成を示す図、(b)はその等価回路を示す図である。
【図7】図6(a)の回路の動作タイミング・チャートである。
【図8】スピントロニクス論理集積回路のフロントエンド設計フロー図である。
【図9】スピントロニクス論理集積回路のフロントエンド設計フロー(別の形態)図である。
【図10】本発明の第1の実施形態によるCMOS論理回路からスピントロニクス論理回路への置き換え方法を示す図で、(a)置き換え前の論理回路を示し、(b)置き換え後の論理回路を示す。
【図11】第1の実施形態の方法を加減算回路に適用した例を示す図で、(a)はスピントロニクス論理回路へ置き換え前の回路図、(b)は置き換えた後の回路図である。
【図12】本発明の第2の実施形態における、F/F化されたスピントロニクス論理回路の基本構成を示す図である。
【図13】図12の回路の動作タイミング・チャートである。
【図14】本発明の第2の実施形態によるCMOS論理回路からスピントロニクス論理回路への置き換え方法を示す図で、(a)は置き換え前の論理回路、(b)は置き換え後の論理回路を示す。
【図15】第2の実施形態の方法を図11(a)の加減算回路に適用した例を示す図である。
【発明を実施するための形態】
【0043】
以下、本発明の実施の形態を図面に基づいて説明する。
最初に、本発明の第1の実施形態について説明する。
【0044】
図6(a)は、図1に図示したスピントロニクス論理回路(スピントロニクス論理ゲート)10の入力端子に第1および第2のロースルー・ラッチ16および17を挿入し、出力端子にハイスルー・ラッチ18を付加した回路である。図6(b)は、図6(a)に示した回路の等価回路である。また、図7は図6(a)の回路における動作タイミング・チャートを示している。
【0045】
スピントロニクス論理回路10の入力端子に挿入された第1および第2のロースルー・ラッチ16および17は、クロック信号CLKがローレベルの時に第1および第2の入力信号A、Bを通過させ、ハイレベルの間は保持する。
【0046】
スピントロニクス論理回路10のパス・トランジスタ論理部11は、クロック信号CLKがハイレベルの期間に、スピントロニクス素子(MTJ素子)RXおよびR/Xの論理値Xおよび/Xと入力信号a、bとを論理演算して、演算結果yを出力する。この時、パス・トランジスタ論理部11への入力信号a、bは変化しないので、その演算結果yは安定する。
【0047】
スピントロニクス論理回路10の後段のハイスルー・ラッチ18は、クロック信号CLKがハイレベルの時に演算結果yを通過させ、ローレベルの時は保持する。従って、ハイスルー・ラッチ18の出力端子Qに出力される演算結果を、クロック・サイクル中、ハイスルー・ラッチ18は保持し続ける。これは、図5(a)に図示したDFFの動作タイミングと同じである。従って、図6(a)の回路は、論理演算機能付のDFFと等価である。
【0048】
図8に、スピントロニクス論理集積回路のフロントエンド設計フローの一例を示す。このフロントエンド設計フロー(プログラム)は、コンピュータから成るCADシステムで実行される。図示はしないが、CADシステム(コンピュータ)は、データを入力する入力装置と、図8に示されたプログラム(フロントエンド設計フロー)を記憶するリードオンリメモリ(ROM)と、データを一時的に記憶するワークエリアとして使用されるランダムアクセスメモリ(RAM)と、ROMに記憶されたプログラムに従って、RAMに記憶されているデータを処理する中央処理装置(CPU)と、CPUでの処理結果を出力する出力装置と、種々のライブラリを格納する補助記憶装置とを備えている。
【0049】
CPUは、ハードウェア記述言語(HDL)によって動作記述レベル(RTL:Register Transfer Level)の論理集積回路ネットリストから、CMOSライブラリを使った論理合成ツールによって論理ゲートレベル(GL)の論理集積回路ネットリストを得る(ステップS201〜S203)。
【0050】
これらステップS201〜S203は、図3に示されたステップS101〜S103とそれぞれ同じである。すなわち、CPUは、HDLにより仕様を満足する動作を記述して、RTLの論理集積回路ネットリストを作成する(ステップS201)。引き続いて、CPUは、論理シミュレータで、RTLの論理集積回路ネットリストの論理検証を行う(ステップS202)。そして、CPUはHDLで記述されたRTLの論理集積回路ネットリストから、論理合成ツールによって論理ゲートレベルの論理集積回路ネットリストを作成する(ステップS203)。
【0051】
次に、CPUは、論理ゲートレベルの論理集積回路ネットリストにおいて、スピントロニクス論理ゲート10に置き換えられる論理部分を探索し、その論理が一致するスピントロニクス論理ゲート10に置き換える(S204)。換言すれば、CPUは、論理ゲートレベルの論理集積回路ネットリストから、スピントロニクス論理ゲート10を含む不揮発性の論理集積回路ネットリストへ変換する。
【0052】
また、図9による設計フローも考えられる。ここでは、CPUは、RTLの論理集積回路ネットリストの段階で、スピントロニクス論理ゲート10が利用できる部分を探し、その部分のみをゲートレベル化する(ステップS204A)。すなわち、CPUは、HDLで記述されたRTLの論理集積回路ネットリストから、スピントロニクス論理ゲート10を含む不揮発性のRTLの論理集積回路ネットリストへ変換する。
【0053】
次に、CPUは、CMOSライブラリを使って論理合成を行って全てゲートレベル化をする(ステップS203A)。換言すれば、CPUは、スピントロニクス論理ゲート10を含む不揮発性のRTLの論理集積回路ネットリストから、論理合成ツールによって論理ゲートレベルの論理集積回路ネットリストを作成する。
【0054】
以下、図10を参照して、本発明の第1の実施形態によるCMOSゲートからスピントロニクス・ゲートに置き換える方法について詳述する。この方法の基本的な考え方は、図8、及び図9の設計フローのどちらにも適用可能であるが、説明の便宜上、図8の設計フロー(CMOSライブラリを使って論理合成した後にスピントロニクス・ゲートに置き換える)を想定して説明を行う。
【0055】
図10(a)は、CMOSライブラリを使って論理合成して得られた回路構成の概念図である。ここで、信号X0はスピントロニクス素子に割り付けられた信号を示している。この時、以下の手順でスピントロニクス論理ゲート10に置き換えを行う。
【0056】
(1)スピントロニクス素子の信号を入力とし、DFFの入力端子へ出力される組み合せ回路CL2を見つける。
(2)組み合せ回路CL2の論理と一致するスピントロニクス論理ゲートをライブラリから選択し、組み合せ回路CL2を置き換える。
(3)組み合せ回路CL2の入力信号と、置き換えたスピントロニクス論理ゲートの入力との間に、ロースルー・ラッチ16、17を挿入する。
(4)置き換えたスピントロニクス論理ゲートの出力端子と接続されるDFFをハイスルー・ラッチ18に置き換える。
【0057】
上記(1)〜(4)の手順で回路構成を変更したのが図10(b)となり、スピントロニクス・ゲートに置換する前の回路(図10(a))と等価である。
【0058】
図11に、本第1の実施形態による設計方法を加減算器に適用した例を示す。ここで、入力信号Aはスピントロニクス素子の信号を表し、SUB信号が0の場合は和(SUM=A+B)を演算し、1の場合は差(SUM=A−B)を演算する。この加減算器では、クロック・サイクル毎に最小ビット(LSB)から1ビットずつ加減演算を行い、例えば入力信号AおよびBが4ビットの時は5サイクル後に演算結果が出力される。
【0059】
図11(a)は、RTL記述からCMOSライブラリを使った論理合成を実行した結果である。次に、先述の手順に従ってスピントロニクス・ゲートに置き換えていく。
【0060】
手順(1)によると、スピントロニクス素子の信号Aを入力とし、信号SUMを出力するDFFとの間にSUM論理、信号CARRYを出力するDFFとの間にCARRY論理がある。手順(2)でSUM論理部分を図2(a)のパス・トランジスタ回路をもつスピントロニクス・ゲートに置き換え、さらにCARRY論理部分を図2(b)のパス・トランジスタ論理部11をもつスピントロニクス・ゲートに置き換える。手順(3)で各々のスピントロニクス・ゲートの入力信号にロースルー・ラッチ16、17を挿入する。手順(4)で上記2つのDFFをハイスルー・ラッチ18に置き換える。
【0061】
以上の置換を行った結果を図11(b)に示す。これは、元のCMOS論理回路(図11(a))と回路的に等価である。
【0062】
本第1の実施形態の変形として、図6に図示した回路、即ち、スピントロニクス論理回路10の入力にロースルー・ラッチ16、17を置き、出力にハイスルー・ラッチ18を置いた回路を一つのプリミティブセルとしてライブラリに登録し、以下の手順で置き換えても良い。
【0063】
(1)スピントロニクス素子の信号を入力とし、DFFの入力端子へ出力される組み合せ回路CL2を見つける。
(2’)組み合せ回路CL2の論理と一致するラッチ付スピントロニクス論理ゲート10をライブラリから選択し、組み合せ回路CL2と後段のDFFとを置き換える。
【0064】
上記(1)と(2’)の手順で図10(a)の回路をスピントロニクス論理回路10に置き換えると、図10(b)となり同じ結果が得られる。
【0065】
次に、本発明の第2の実施形態について説明する。
【0066】
先述の第1の実施形態によるCMOS論理回路からスピントロニクス論理回路への置き換え方法では、以下の二つの問題点が存在する。一つは、スピントロニクス・ゲートに置き換えられるのは、スピントロニクス素子に割り付けられた論理信号からDFFの入力までの組み合せ回路(CL2)のみということである。組み合せ回路CL2の真理値に一致するスピントロニクス・ゲートがライブラリに無いと、その組み合せ回路は置き換えることができない。もう一つの問題点は、スピントロニクス・ゲートに置き換える際に、入力信号の各々にロースルー・ラッチ回路を挿入しなければならないことである。これは、回路面積や遅延の増加、消費電力の増加というデメリットが生じる。
【0067】
第2の実施形態ではこれらの問題点を克服する手法であり、以下に詳述する。
【0068】
図12は、クロック信号CLKがローレベルの時に論理演算をし、ハイレベルの時にプリチャージを行うスピントロニクス論理回路10Aと、その後段にDFF12Aが付加された回路を示している。図13に、この回路の動作タイミング・チャートを示す。
【0069】
図12に示す回路は、スピントロニクス論理回路10Aの第1乃至第3のトランジスタM1〜M3のゲートにクロック信号CLKの反転クロック信号/CLKが供給されている点が、図1と異なる(図1のバッファ12は省略している)。
【0070】
図13に示すように、第1および第2の入力信号A、Bとスピントロニクス素子の論理値Xとはクロック信号CLKがローレベルの時に演算される(評価期間)ので、第1および第2の入力信号A、Bは、クロック信号CLKの立ち下がり時点で確定していなければならない(クロック信号CLKのローレベル時は変化してはいけない)。
【0071】
すなわち、クロック信号CLKの立ち下がり前に確定された第1および第2の入力信号A、Bと論理値Xによるデータd1は、クロック信号CLKがローレベルの期間にスピントロニクス論理回路10Aのパス・トランジスタ論理部11によって演算され、内部出力端子yに演算結果Y1が出力される。そして後段のDFF12Aの立ち上がりのタイミングで演算結果Y1がDFF12Aに取り込まれ、次の立ち上がりのタイミングまでDFF12Aはその値を保持し続ける。
【0072】
本回路は第1の実施形態の図6の回路に比べて、クロック信号CLKの立ち上がりに対するセットアップ時間がクロックの半周期分だけ必要となる欠点があるが、上記問題を解決できる。
【0073】
図14は、本発明の第2の実施形態によるCMOS論理回路からスピントロニクス論理回路10Aへの置き換え方法を示している。図14(a)は、CMOSライブラリを使って論理合成して得られた回路構成の概念図を示している。ここで、信号X0はスピントロニクス素子に割り付けられた信号を示しており、組み合せ回路CL1は信号X0によって演算結果が変わらない部分、組み合せ回路CL2および組み合せ回路CL3は信号X0によって演算結果が変わる部分を示している。この時、以下の手順でスピントロニクス論理ゲートに置き換えを行う。
【0074】
(1)スピントロニクス素子の信号を入力とし、DFFの入力端子へ出力され組み合せ回路CL2を見つける。
(2)組み合せ回路CL2の論理と一致するスピントロニクス論理ゲート10Aをライブラリから選択し、組み合せ回路CL2を置き換える。
(3)手順(2)で組み合せ回路CL2に一致するスピントロニクス論理ゲートがなければ、DFF入力側のCMOS論理ゲートを組み合せ回路CL3とし、組み合せ回路CL3を含まない組み合せ回路を新たにCL2’とする。
(4)手順(2)にならって、組み合せ回路CL2’をスピントロニクス論理ゲート10Aに置き換える。もし、組み合せ回路CL2’に一致するスピントロニクス論理ゲートがなければ、さらに手順(3)を行い、本手順を繰り返す。
【0075】
上記(1)〜(4)の手順で回路構成を変更したのが図14(b)となり、スピントロニクス・ゲートに置換する前の回路(図14(a))と論理的に等価である。しかしながら、スピントロニクス論理ゲート10Aに置き換え後の回路が正常に動作するためには、以下の条件AとBがともに成立する時である。
【0076】
A)組み合せ回路CL1の遅延時間tCL1が、クロック信号CLKがハイレベルの時間(TCLKH)からDFFの遅延時間tDFF_DELAYとスピントロニクス論理ゲート10Aのセットアップ時間(tSP_SETUP)を差し引いた時間よりも短いこと。
B)組み合せ回路CL3の遅延時間tCL3が、クロック信号CLKがローレベルの時間(TCLKL)からスピントロニクス論理ゲート10Aの遅延時間tSP_DELAY)とDFFのセットアップ時間(tDFF_SETUP)を差し引いた時間よりも短いこと。
【0077】
図15に、上記本第2の実施形態を図11(a)の加減算器に適用した例を示す。これは、入力信号のセットアップ時間がクロックの半周期分増加しているのを除けば元のCMOS論理回路と等価であり、第1の実施形態の方法で得られた図11(b)のスピントロニクス論理回路10とも等価である。
【0078】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【0079】
10、10A スピントロニクス論理回路(スピントロニクス論理ゲート)
11 パス・トランジスタ論理部
12 バッファ
12A DFF
16、17 ロースルー・ラッチ
18 ハイスルー・ラッチ
M1 NチャネルMOSFET
M2〜M5 PチャネルMOSFET
RX、R/X MTJ素子
【技術分野】
【0001】
本発明は、スピントロニクス論理集積回路の設計に関し、特にスピントロニクス論理集積回路の論理合成方法に関する。
【背景技術】
【0002】
今日の情報通信技術は、電子の電荷を利用する半導体デバイス技術と、電子のスピンを利用する磁気デバイス技術とが別々に技術開発されてきた。近年はそれぞれの技術の成熟度が増し、半導体デバイスの情報処理性能や、磁気デバイスの情報蓄積能力といった限界の壁にぶつかりつつある。この限界を解決するために、電子の電荷の自由度と電子のスピンの自由度との両方を利用した相乗効果により、この限界を打破しようというスピントロニクス技術が注目されている。
【0003】
スピントロニクス素子の代表例が磁気抵抗素子(MTJ素子)である。典型的なMTJ素子においては、磁化が一方向に固定された固定磁性層と、二方向に磁化方向が変化する自由磁性層とを用い、これら磁性層の間にトンネルバリア層が形成される。1ビットの情報(0/1)は、自由磁性層の磁化に割り当てられ、二枚の磁性層の磁化が互いに並行(同じ向き)になる場合、トンネルバリア層を通過するトンネル電流が増加し(低抵抗状態)、逆に反平行(反対の向き)になる場合、トンネル電流は減少(高抵抗状態)する性質を利用して情報を取り出すことができる。MTJ素子にある一定以上の磁場を印加する、あるいはスピン偏極電流を流すことにより、自由磁性層の磁化方向を反転させることで1ビットの情報を書き換える。
【0004】
このスピントロニクスの分野では、MTJ素子を半導体デバイスに応用し、ダイナミック・ランダムアクセスメモリ(DRAM)に変わる大容量で高速、かつ不揮発性を兼ね備えた、従来に存在しない性能を実現できる可能性のある磁気ランダムアクセスメモリ(MRAM)が実用化段階に入っている。MRAMは従来の半導体メモリを不揮発化しようという試みであるが、さらに従来の論理回路にもMTJ素子を組み込んで演算機能と不揮発メモリ機能を同時に実現しようという試みも盛んである。
【0005】
例えば、非特許文献1は、MTJ素子が持つビット情報と、電圧で入力されるビット情報とを論理演算するスピントロニクスの要素論理回路を開示している。
【0006】
図1に、このスピントロニクス論理回路10の基本構成を示す。図示のスピントロニクス論理回路10は、第1乃至第5のトランジスタM1〜M5と、第1のMTJ素子RXと、第2のMTJ素子R/Xと、パス・トランジスタ論理部11とから構成されている。第1のトランジスタM1は、NチャネルMOSFETから構成され、第2乃至第5のトランジスタM2〜M5の各々は、PチャネルMOSFETから構成されている。
【0007】
第1のトランジスタM1のソースは接地され、第1のトランジスタM1のゲートにはクロック信号CLKが供給されている。第1のトランジスタM1のドレインは、第1および第2のMTJ素子RXおよびR/Xを介して、それぞれ、パス・トランジスタ論理部11の第1および第2のデータ入力端子Xおよび/Xに接続されている。パス・トランジスタ論理部11は、それぞれ、第1および第2の入力信号AおよびBを受けるための第1および第2の入力端子を持つ。また、パス・トランジスタ論理部11は、第1および第2の内部出力端子yおよび/yを持つ。第1および第2の内部出力端子yおよび/yの信号は、バッファ12を介して出力信号Yとして出力される。
【0008】
第2のトランジスタM2において、そのソースには電源電圧Vddが供給され、そのゲートにはクロック信号CLKが供給され、そのドレインはパス・トランジスタ論理部11の第1の内部出力端子yに接続されている。第3のトランジスタM3において、そのソースには電源電圧Vddが供給され、そのゲートにはクロック信号CLKが供給され、そのドレインはパス・トランジスタ論理部11の第2の内部出力端子/yに接続されている。第4のトランジスタM4において、そのソースには電源電圧Vddが供給され、そのゲートはパス・トランジスタ論理部11の第2の内部出力端子/yに接続され、そのドレインはパス・トランジスタ論理部11の第1の内部出力端子yに接続されている。第5のトランジスタM5において、そのソースには電源電圧Vddが供給され、そのゲートはパス・トランジスタ論理部11の第1の内部出力端子yに接続され、そのドレインはパス・トランジスタ論理部11の第2の内部出力端子/yに接続されている。
【0009】
このような構成のスピントロニクス論理回路10において、2つのMTJ素子RXおよびR/Xに1ビット情報Xが相補に記憶される。1ビット情報Xが論理“0”レベルの時はRX<R/Xとなり、1ビット情報Xが論理“1”レベルの時はRX>R/Xとなる。上述したように、2つのMTJ素子RXおよびR/Xに1ビット情報Xが相補に記憶されるので、その記憶内容(論理値)をMで表すとする。
【0010】
第1および第2の入力信号AおよびBはパス・トランジスタ論理部11に入力される。パス・トランジスタ論理部11は、第1の入力信号Aと第2の入力信号B、及び記憶内容(論理値)Mとを論理演算し、その論理演算された結果を、バッファ12を介して出力信号Yとして出力する。
【0011】
クロック信号CLKがローレベルとなったとする。この時、第1のトランジスタM1はオフとなり、第2および第3のトランジスタM2およびM3がオンとなって、パス・トランジスタ論理部11の第1および第2の内部出力端子yおよび/yはハイプリチャージされる。
【0012】
クロック信号CLKがハイレベルになったとする。このとき、第1のトランジスタM1がオンとなり、第1および第3のトランジスタM2およびM3はオフになり、第4および第5のトランジスタM4およびM5によってパス・トランジスタ論理部11の第1および第2の内部出力端子yおよび/yの信号が増幅される。
【0013】
但し、実際には、MTJ素子RXおよびR/Xに相補のデータXを書き込むための電流供給手段が本回路に接続されるが、図1では説明の便宜上省略している。
【0014】
パス・トランジスタ論理部11の回路構成を変えることで、様々な複雑な論理演算を少数のトランジスタで構成できる。例えば、パス・トランジスタ論理部11を図2(a)に示すパス・トランジスタ構成にすると、スピントロニクス論理回路10は1ビットの加算器として動作する。また、パス・トランジスタ論理部11を図2(b)に示すパス・トランジスタ構成にすると、スピントロニクス論理回路10はキャリー生成回路として動作する。
【0015】
スピントロニクス論理集積回路は図1に示した要素回路が複数結線されて、より大規模で複雑な演算を、従来のCMOS回路に比べて小面積で、且つ省電力で実現することができる。さらに、論理回路内部の論理情報は不揮発性であるので、電源切断前の演算結果が消失しない。よって、データバスにおける情報の転送量を削減できることによる高性能化と省電力化や、電源を高頻度に切断して近年増加の一途をたどる非動作時のリーク電流をゼロにでき、従来実現が困難であった低電力設計を可能にする技術としても期待されている。
【先行技術文献】
【非特許文献】
【0016】
【非特許文献1】“Fabrication of a Nonvolatile Full Adder Based on Logic−in−Memory Architecture Using Magnetic Tunnel Junctions”,Applied Physics Express 1 091301, 2008.
【発明の概要】
【発明が解決しようとする課題】
【0017】
大規模な論理演算回路を設計するには、計算機援用設計(CAD)ツールによる自動設計化は短ターンアラウンド時間(TAT)の観点から必須である。
【0018】
図3に、一般的な相補金属酸化膜半導体(CMOS)論理回路設計における設計フローを示す。図示の設計フロー(プログラム)は、図示しない中央処理装置(CPU)によって処理される。
【0019】
先ず、CPUは、ハードウェア記述言語(HDL)により仕様を満足する動作を記述して、動作記述レベル(RTL:Register Transfer Level)の論理集積回路実回路情報(ネットリスト)を作成する(ステップS101)。ここで、ハードウェア記述言語(HDL)とは、文書化、設計そして超LSI回路などのディジタルシステムの製造を容易にするためのコンピュータ言語のことを指す。また、「RTL」では、回路中のフリップフロップやメモリなどの記憶素子がまず定義され、現在の記憶素子の状態がクロックに対応してどのような次状態に変化するかが定義される。「ネットリスト」とは、回路を構成する素子同士の接続関係や素子の電気的な特性値を記述したテキストファイルのことを指す。
【0020】
引き続いて、CPUは、論理シミュレータで、動作記述レベル(RTL)の論理集積回路ネットリストの機能検証(論理検証)を行う(ステップS102)。
【0021】
次に、CPUは、HDLで記述された動作記述レベルの論理集積回路ネットリストから、論理合成ツールによって、論理ゲートレベルの論理集積回路ネットリストを自動作成する(ステップS103)。
【0022】
図4に示すように、合成された論理回路20は、クロック信号CLKの1サイクルだけデータを保持する遅延フリップフロップ(DFF)21と、多数の要素回路が複雑に結線される組み合せ回路22とから構成される。
【0023】
図3に戻って、CPUは、論理ゲートレベルの論理集積回路ネットリストからプリミティブセルを自動配置し(ステップS104)、セル間を自動配線するツールによりマスクデータを得、トランジスタや配線のRC遅延を考慮したタイミング解析を行う(ステップS105)。
【0024】
大規模なスピントロニクス論理集積回路を設計する際、CMOS論理回路とスピントロニクス論理回路との動作原理の違いから、上記設計フローをそのまま適用することが出来ないという問題がある。
【0025】
詳述すると、CMOS論理回路の場合、トランジスタのオン/オフ比が6桁以上と大きいので、トランジスタはスィッチ素子として働く。よって、組み合せ回路22では入力信号の変化とほぼ同時に出力信号も変化する。これに対して、スピントロニクス論理回路10の場合、MTJ素子RXおよびR/Xの信号量(RXとR/Xの比)が数倍程度であるため、その抵抗差を検出する手続きや制約が必要となる。
【0026】
図1の例で具体的に述べると、クロック信号CLKがハイレベルの時に、各々のMTJ素子RXおよびR/Xに流れる電流の差がパス・トランジスタ論理部11の第1および第2の内部出力端子yおよび/yに相補電圧として出力される。
【0027】
この時、図5(b)に示すように、第1および第2の入力信号A、Bは変化することは許されず、クロック信号CLKがハイレベルに遷移する前に確定される必要がある。
【0028】
また、クロック信号CLKがローレベルのハイプリチャージ期間、出力信号はハイレベルになるので、スピントロニクス論理回路10の出力端子Yに演算結果が出力されるのは、クロック信号CLKの半周期のみになる。
【0029】
これに対し、DFF21においては、入力信号Dはクロックの立上がり前後で確定していれば良く(通常、立上がりエッジ前に必要な確定時間はセットアップ時間で規定され、エッジ後に必要な確定時間はホールド時間で規定される)、出力信号Qはクロック・サイクル期間で保持し続ける(図5(a)参照)。
【0030】
既存設計ツールは、このスピントロニクス論理回路10の特殊性に対応していないため、CMOSライブラリにスピントロニクス論理ゲートを追加するだけでは、既存設計フローに沿った設計をすることができない。特に、HDLで記述された動作記述レベルの論理集積回路ネットリストから、論理ゲートレベルで構成される論理集積回路ネットリストまでのフロントエンドまでの設計が困難である。
【0031】
スピントロニクス論理回路10に特有の設計体系を確立する必要があるが、設計ツールの開発コストや過去の設計資産の流用や互換性を考慮すると、CMOS論理回路設計における設計フローの最小限の変更のみで、スピントロニクス論理回路設計における設計体系を確立できることが望ましい。
【0032】
本発明の目的は、CMOS論理回路設計における設計フローの最小限の変更のみで、スピントロニクス論理回路設計における設計体型を確立することができる、論理集積回路のCADシステムを提供することにある。
【課題を解決するための手段】
【0033】
本発明は、上記課題を解決するため、論理集積回路のCADシステムであって、ハードウェア記述言語で記述された動作記述レベルあるいは論理ゲートレベルの論理集積回路ネットリストから、スピントロニクス論理ゲートを含む不揮発性の論理集積回路ネットリストへ変換する変換手段を有することを特徴とする。
【0034】
また、上記CADシステムにおいて、変換手段は、指定される不揮発化対象の論理信号を入出力とする組み合わせ回路の一部をスピントロニクス論理ゲートに置き換えることを特徴とする。
【0035】
また、論理集積回路の設計手法であって、スピントロニクス素子に割り付けられる論理信号から後段のレジスタ(一般的にはDFF)の入力までの組み合せ論理回路を抽出する第1のステップと、この抽出した組み合せ回路を、この論理真理値と一致するスピントロニクス論理ゲートをライブラリから検索して置き換える第2のステップとを含むことを特徴とする。
【0036】
また、上記設計方法において、スピントロニクス論理ゲートの出力がレジスタに入力されている場合に、このレジスタをラッチ回路に置き換えるステップを更に含むことを特徴とする。
【0037】
また、上記設計方法において、スピントロニクス論理ゲートの入力と、その前段の組み合せ回路との間にラッチ回路を挿入するステップを更に含むことを特徴とする。
【0038】
また、上記設計方法において、置き換え対象の組み合せ論理回路の真理値と一致するスピントロニクス論理ゲートが見つからない場合において、上記組み合せ論理回路の最終段の論理ゲートを除いた組み合せ論理回路に置き換え対象を変更し、この論理真理値と一致するスピントロニクス論理ゲートをライブラリから検索して置き換える第3のステップを更に含むことを特徴とする。
【0039】
また、上記設計方法において、置き換え対象の組み合わせ論理回路の論理真理値と一致するスピントロニクス論理ゲートが見つかるまで、上記第1乃至第3のステップを繰り返すことを特徴とする。
【0040】
また、上記設計方法において、上記第1および第2のステップの各々は、上記レジスタがクロック信号の立ち上がり(立ち下がり)で入力データを取り込む場合に、クロック信号の立ち下がり(立ち上がり)で論理演算を実行するスピントロニクス論理ゲートを選択することを特徴とする。
【発明の効果】
【0041】
本発明によれば、CMOS論理回路の既存設計フローにほぼ沿った形でスピントロニクス論理集積回路の設計が可能となる。これは、CMOS論理回路を前提に書かれた設計資産(動作記述ネットリスト)を流用することも簡単になり、スピントロニクス論理集積回路のゲートレベル化も可能になる。
【図面の簡単な説明】
【0042】
【図1】スピントロニクス論理回路の基本回路構成を示す図である。
【図2】図1のパス・トランジスタ論理回路の例を示す図で、(a)はSUM回路、(b)はCARRY生成回路の例を示す図である。
【図3】典型的な論理集積回路の自動設計フロー図である。
【図4】論理合成ツールによって得られる同期型論理回路の基本構成を示す図である。
【図5】図4に示す同期型論理回路の動作タイミング・チャートであり、(a)はDFFの動作タイミング・チャート、(b)はスピントロニクス論理回路の動作タイミング・チャートである。
【図6】(a)は本発明の第1の実施形態における、F/F化されたスピントロニクス論理回路の基本構成を示す図、(b)はその等価回路を示す図である。
【図7】図6(a)の回路の動作タイミング・チャートである。
【図8】スピントロニクス論理集積回路のフロントエンド設計フロー図である。
【図9】スピントロニクス論理集積回路のフロントエンド設計フロー(別の形態)図である。
【図10】本発明の第1の実施形態によるCMOS論理回路からスピントロニクス論理回路への置き換え方法を示す図で、(a)置き換え前の論理回路を示し、(b)置き換え後の論理回路を示す。
【図11】第1の実施形態の方法を加減算回路に適用した例を示す図で、(a)はスピントロニクス論理回路へ置き換え前の回路図、(b)は置き換えた後の回路図である。
【図12】本発明の第2の実施形態における、F/F化されたスピントロニクス論理回路の基本構成を示す図である。
【図13】図12の回路の動作タイミング・チャートである。
【図14】本発明の第2の実施形態によるCMOS論理回路からスピントロニクス論理回路への置き換え方法を示す図で、(a)は置き換え前の論理回路、(b)は置き換え後の論理回路を示す。
【図15】第2の実施形態の方法を図11(a)の加減算回路に適用した例を示す図である。
【発明を実施するための形態】
【0043】
以下、本発明の実施の形態を図面に基づいて説明する。
最初に、本発明の第1の実施形態について説明する。
【0044】
図6(a)は、図1に図示したスピントロニクス論理回路(スピントロニクス論理ゲート)10の入力端子に第1および第2のロースルー・ラッチ16および17を挿入し、出力端子にハイスルー・ラッチ18を付加した回路である。図6(b)は、図6(a)に示した回路の等価回路である。また、図7は図6(a)の回路における動作タイミング・チャートを示している。
【0045】
スピントロニクス論理回路10の入力端子に挿入された第1および第2のロースルー・ラッチ16および17は、クロック信号CLKがローレベルの時に第1および第2の入力信号A、Bを通過させ、ハイレベルの間は保持する。
【0046】
スピントロニクス論理回路10のパス・トランジスタ論理部11は、クロック信号CLKがハイレベルの期間に、スピントロニクス素子(MTJ素子)RXおよびR/Xの論理値Xおよび/Xと入力信号a、bとを論理演算して、演算結果yを出力する。この時、パス・トランジスタ論理部11への入力信号a、bは変化しないので、その演算結果yは安定する。
【0047】
スピントロニクス論理回路10の後段のハイスルー・ラッチ18は、クロック信号CLKがハイレベルの時に演算結果yを通過させ、ローレベルの時は保持する。従って、ハイスルー・ラッチ18の出力端子Qに出力される演算結果を、クロック・サイクル中、ハイスルー・ラッチ18は保持し続ける。これは、図5(a)に図示したDFFの動作タイミングと同じである。従って、図6(a)の回路は、論理演算機能付のDFFと等価である。
【0048】
図8に、スピントロニクス論理集積回路のフロントエンド設計フローの一例を示す。このフロントエンド設計フロー(プログラム)は、コンピュータから成るCADシステムで実行される。図示はしないが、CADシステム(コンピュータ)は、データを入力する入力装置と、図8に示されたプログラム(フロントエンド設計フロー)を記憶するリードオンリメモリ(ROM)と、データを一時的に記憶するワークエリアとして使用されるランダムアクセスメモリ(RAM)と、ROMに記憶されたプログラムに従って、RAMに記憶されているデータを処理する中央処理装置(CPU)と、CPUでの処理結果を出力する出力装置と、種々のライブラリを格納する補助記憶装置とを備えている。
【0049】
CPUは、ハードウェア記述言語(HDL)によって動作記述レベル(RTL:Register Transfer Level)の論理集積回路ネットリストから、CMOSライブラリを使った論理合成ツールによって論理ゲートレベル(GL)の論理集積回路ネットリストを得る(ステップS201〜S203)。
【0050】
これらステップS201〜S203は、図3に示されたステップS101〜S103とそれぞれ同じである。すなわち、CPUは、HDLにより仕様を満足する動作を記述して、RTLの論理集積回路ネットリストを作成する(ステップS201)。引き続いて、CPUは、論理シミュレータで、RTLの論理集積回路ネットリストの論理検証を行う(ステップS202)。そして、CPUはHDLで記述されたRTLの論理集積回路ネットリストから、論理合成ツールによって論理ゲートレベルの論理集積回路ネットリストを作成する(ステップS203)。
【0051】
次に、CPUは、論理ゲートレベルの論理集積回路ネットリストにおいて、スピントロニクス論理ゲート10に置き換えられる論理部分を探索し、その論理が一致するスピントロニクス論理ゲート10に置き換える(S204)。換言すれば、CPUは、論理ゲートレベルの論理集積回路ネットリストから、スピントロニクス論理ゲート10を含む不揮発性の論理集積回路ネットリストへ変換する。
【0052】
また、図9による設計フローも考えられる。ここでは、CPUは、RTLの論理集積回路ネットリストの段階で、スピントロニクス論理ゲート10が利用できる部分を探し、その部分のみをゲートレベル化する(ステップS204A)。すなわち、CPUは、HDLで記述されたRTLの論理集積回路ネットリストから、スピントロニクス論理ゲート10を含む不揮発性のRTLの論理集積回路ネットリストへ変換する。
【0053】
次に、CPUは、CMOSライブラリを使って論理合成を行って全てゲートレベル化をする(ステップS203A)。換言すれば、CPUは、スピントロニクス論理ゲート10を含む不揮発性のRTLの論理集積回路ネットリストから、論理合成ツールによって論理ゲートレベルの論理集積回路ネットリストを作成する。
【0054】
以下、図10を参照して、本発明の第1の実施形態によるCMOSゲートからスピントロニクス・ゲートに置き換える方法について詳述する。この方法の基本的な考え方は、図8、及び図9の設計フローのどちらにも適用可能であるが、説明の便宜上、図8の設計フロー(CMOSライブラリを使って論理合成した後にスピントロニクス・ゲートに置き換える)を想定して説明を行う。
【0055】
図10(a)は、CMOSライブラリを使って論理合成して得られた回路構成の概念図である。ここで、信号X0はスピントロニクス素子に割り付けられた信号を示している。この時、以下の手順でスピントロニクス論理ゲート10に置き換えを行う。
【0056】
(1)スピントロニクス素子の信号を入力とし、DFFの入力端子へ出力される組み合せ回路CL2を見つける。
(2)組み合せ回路CL2の論理と一致するスピントロニクス論理ゲートをライブラリから選択し、組み合せ回路CL2を置き換える。
(3)組み合せ回路CL2の入力信号と、置き換えたスピントロニクス論理ゲートの入力との間に、ロースルー・ラッチ16、17を挿入する。
(4)置き換えたスピントロニクス論理ゲートの出力端子と接続されるDFFをハイスルー・ラッチ18に置き換える。
【0057】
上記(1)〜(4)の手順で回路構成を変更したのが図10(b)となり、スピントロニクス・ゲートに置換する前の回路(図10(a))と等価である。
【0058】
図11に、本第1の実施形態による設計方法を加減算器に適用した例を示す。ここで、入力信号Aはスピントロニクス素子の信号を表し、SUB信号が0の場合は和(SUM=A+B)を演算し、1の場合は差(SUM=A−B)を演算する。この加減算器では、クロック・サイクル毎に最小ビット(LSB)から1ビットずつ加減演算を行い、例えば入力信号AおよびBが4ビットの時は5サイクル後に演算結果が出力される。
【0059】
図11(a)は、RTL記述からCMOSライブラリを使った論理合成を実行した結果である。次に、先述の手順に従ってスピントロニクス・ゲートに置き換えていく。
【0060】
手順(1)によると、スピントロニクス素子の信号Aを入力とし、信号SUMを出力するDFFとの間にSUM論理、信号CARRYを出力するDFFとの間にCARRY論理がある。手順(2)でSUM論理部分を図2(a)のパス・トランジスタ回路をもつスピントロニクス・ゲートに置き換え、さらにCARRY論理部分を図2(b)のパス・トランジスタ論理部11をもつスピントロニクス・ゲートに置き換える。手順(3)で各々のスピントロニクス・ゲートの入力信号にロースルー・ラッチ16、17を挿入する。手順(4)で上記2つのDFFをハイスルー・ラッチ18に置き換える。
【0061】
以上の置換を行った結果を図11(b)に示す。これは、元のCMOS論理回路(図11(a))と回路的に等価である。
【0062】
本第1の実施形態の変形として、図6に図示した回路、即ち、スピントロニクス論理回路10の入力にロースルー・ラッチ16、17を置き、出力にハイスルー・ラッチ18を置いた回路を一つのプリミティブセルとしてライブラリに登録し、以下の手順で置き換えても良い。
【0063】
(1)スピントロニクス素子の信号を入力とし、DFFの入力端子へ出力される組み合せ回路CL2を見つける。
(2’)組み合せ回路CL2の論理と一致するラッチ付スピントロニクス論理ゲート10をライブラリから選択し、組み合せ回路CL2と後段のDFFとを置き換える。
【0064】
上記(1)と(2’)の手順で図10(a)の回路をスピントロニクス論理回路10に置き換えると、図10(b)となり同じ結果が得られる。
【0065】
次に、本発明の第2の実施形態について説明する。
【0066】
先述の第1の実施形態によるCMOS論理回路からスピントロニクス論理回路への置き換え方法では、以下の二つの問題点が存在する。一つは、スピントロニクス・ゲートに置き換えられるのは、スピントロニクス素子に割り付けられた論理信号からDFFの入力までの組み合せ回路(CL2)のみということである。組み合せ回路CL2の真理値に一致するスピントロニクス・ゲートがライブラリに無いと、その組み合せ回路は置き換えることができない。もう一つの問題点は、スピントロニクス・ゲートに置き換える際に、入力信号の各々にロースルー・ラッチ回路を挿入しなければならないことである。これは、回路面積や遅延の増加、消費電力の増加というデメリットが生じる。
【0067】
第2の実施形態ではこれらの問題点を克服する手法であり、以下に詳述する。
【0068】
図12は、クロック信号CLKがローレベルの時に論理演算をし、ハイレベルの時にプリチャージを行うスピントロニクス論理回路10Aと、その後段にDFF12Aが付加された回路を示している。図13に、この回路の動作タイミング・チャートを示す。
【0069】
図12に示す回路は、スピントロニクス論理回路10Aの第1乃至第3のトランジスタM1〜M3のゲートにクロック信号CLKの反転クロック信号/CLKが供給されている点が、図1と異なる(図1のバッファ12は省略している)。
【0070】
図13に示すように、第1および第2の入力信号A、Bとスピントロニクス素子の論理値Xとはクロック信号CLKがローレベルの時に演算される(評価期間)ので、第1および第2の入力信号A、Bは、クロック信号CLKの立ち下がり時点で確定していなければならない(クロック信号CLKのローレベル時は変化してはいけない)。
【0071】
すなわち、クロック信号CLKの立ち下がり前に確定された第1および第2の入力信号A、Bと論理値Xによるデータd1は、クロック信号CLKがローレベルの期間にスピントロニクス論理回路10Aのパス・トランジスタ論理部11によって演算され、内部出力端子yに演算結果Y1が出力される。そして後段のDFF12Aの立ち上がりのタイミングで演算結果Y1がDFF12Aに取り込まれ、次の立ち上がりのタイミングまでDFF12Aはその値を保持し続ける。
【0072】
本回路は第1の実施形態の図6の回路に比べて、クロック信号CLKの立ち上がりに対するセットアップ時間がクロックの半周期分だけ必要となる欠点があるが、上記問題を解決できる。
【0073】
図14は、本発明の第2の実施形態によるCMOS論理回路からスピントロニクス論理回路10Aへの置き換え方法を示している。図14(a)は、CMOSライブラリを使って論理合成して得られた回路構成の概念図を示している。ここで、信号X0はスピントロニクス素子に割り付けられた信号を示しており、組み合せ回路CL1は信号X0によって演算結果が変わらない部分、組み合せ回路CL2および組み合せ回路CL3は信号X0によって演算結果が変わる部分を示している。この時、以下の手順でスピントロニクス論理ゲートに置き換えを行う。
【0074】
(1)スピントロニクス素子の信号を入力とし、DFFの入力端子へ出力され組み合せ回路CL2を見つける。
(2)組み合せ回路CL2の論理と一致するスピントロニクス論理ゲート10Aをライブラリから選択し、組み合せ回路CL2を置き換える。
(3)手順(2)で組み合せ回路CL2に一致するスピントロニクス論理ゲートがなければ、DFF入力側のCMOS論理ゲートを組み合せ回路CL3とし、組み合せ回路CL3を含まない組み合せ回路を新たにCL2’とする。
(4)手順(2)にならって、組み合せ回路CL2’をスピントロニクス論理ゲート10Aに置き換える。もし、組み合せ回路CL2’に一致するスピントロニクス論理ゲートがなければ、さらに手順(3)を行い、本手順を繰り返す。
【0075】
上記(1)〜(4)の手順で回路構成を変更したのが図14(b)となり、スピントロニクス・ゲートに置換する前の回路(図14(a))と論理的に等価である。しかしながら、スピントロニクス論理ゲート10Aに置き換え後の回路が正常に動作するためには、以下の条件AとBがともに成立する時である。
【0076】
A)組み合せ回路CL1の遅延時間tCL1が、クロック信号CLKがハイレベルの時間(TCLKH)からDFFの遅延時間tDFF_DELAYとスピントロニクス論理ゲート10Aのセットアップ時間(tSP_SETUP)を差し引いた時間よりも短いこと。
B)組み合せ回路CL3の遅延時間tCL3が、クロック信号CLKがローレベルの時間(TCLKL)からスピントロニクス論理ゲート10Aの遅延時間tSP_DELAY)とDFFのセットアップ時間(tDFF_SETUP)を差し引いた時間よりも短いこと。
【0077】
図15に、上記本第2の実施形態を図11(a)の加減算器に適用した例を示す。これは、入力信号のセットアップ時間がクロックの半周期分増加しているのを除けば元のCMOS論理回路と等価であり、第1の実施形態の方法で得られた図11(b)のスピントロニクス論理回路10とも等価である。
【0078】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【0079】
10、10A スピントロニクス論理回路(スピントロニクス論理ゲート)
11 パス・トランジスタ論理部
12 バッファ
12A DFF
16、17 ロースルー・ラッチ
18 ハイスルー・ラッチ
M1 NチャネルMOSFET
M2〜M5 PチャネルMOSFET
RX、R/X MTJ素子
【特許請求の範囲】
【請求項1】
ハードウェア記述言語により仕様を満足する動作を記述して、動作記述レベルの論理集積回路ネットリストを作成する動作記述手段と、
論理シミュレータで、前記動作記述レベルの論理集積回路ネットリストの論理検証を行う論理検証手段と、
前記ハードウェア記述言語で記述された動作記述レベルの論理集積回路ネットリストから、論理合成ツールによって論理ゲートレベルの論理集積回路ネットリストを作成する論理合成手段と、
前記論理ゲートレベルの論理集積回路ネットリストから、スピントロニクス論理ゲートを含む不揮発性の論理集積回路ネットリストへ変換する変換手段と、
を含む論理集積回路のCADシステム。
【請求項2】
請求項1に記載の論理集積回路のCADシステムにおいて、
前記変換手段は、指定される不揮発化対象の論理信号を入出力とする組み合せ回路の一部をスピントロニクス論理ゲートに置き換えることを特徴とする、論理集積回路のCADシステム。
【請求項3】
ハードウェア記述言語により仕様を満足する動作を記述して、動作記述レベルの論理集積回路ネットリストを作成する動作記述手段と、
論理シミュレータで、前記動作記述レベルの論理集積回路ネットリストの論理検証を行う論理検証手段と、
前記ハードウェア記述言語で記述された動作記述レベルの論理集積回路ネットリストから、スピントロニクス論理ゲートを含む不揮発性の動作記述レベルの論理集積回路ネットリストへ変換する変換手段と、
前記スピントロニクス論理ゲートを含む不揮発性の動作記述レベルの論理集積回路ネットリストから、論理合成ツールによって論理ゲートレベルの論理集積回路ネットリストを作成する論理合成手段と、
を含む論理集積回路のCADシステム。
【請求項4】
請求項3に記載の論理集積回路のCADシステムにおいて、
前記変換手段は、指定される不揮発化対象の論理信号を入出力とする組み合せ回路の一部をスピントロニクス論理ゲートに置き換えることを特徴とする、論理集積回路のCADシステム。
【請求項5】
スピントロニクス素子に割り付けられる論理信号から後段のレジスタの入力までの組み合せ論理回路を抽出する第1のステップと、
該抽出した組み合せ論理回路を、この論理真理値と一致するスピントロニクス論理ゲートをライブラリから検索して置き換える第2のステップと、
を含むスピントロニクス論理集積回路の設計方法。
【請求項6】
請求項5に記載のスピントロニクス論理集積回路の設計方法において、
上記スピントロニクス論理ゲートの出力がレジスタに入力されている場合に、このレジスタをラッチ回路に置き換えるステップ、
を更に含むスピントロニクス論理集積回路の設計方法。
【請求項7】
請求項5に記載のスピントロニクス論理集積回路の設計方法において、
上記スピントロニクス論理ゲートの入力と、その前段の組み合せ回路との間にラッチ回路を挿入するステップ、
を更に含むスピントロニクス論理集積回路の設計方法。
【請求項8】
請求項5に記載のスピントロニクス論理集積回路の設計方法において、
上記組み合せ論理回路の真理値と一致するスピントロニクス論理ゲートが見つからない場合において、上記組み合せ論理回路の最終段の論理ゲートを除いた組み合せ論理回路に置き換え対象を変更し、この論理真理値と一致するスピントロニクス論理ゲートをライブラリから検索して置き換える第3のステップ、
を更に含むスピントロニクス論理集積回路の設計方法。
【請求項9】
請求項8に記載のスピントロニクス論理集積回路の設計方法において、
置き換え対象の組み合せ論理回路の論理真理値と一致するスピントロニクス論理ゲートが見つかるまで、前記第1乃至第3のステップを繰り返す、
スピントロニクス論理集積回路の設計方法。
【請求項10】
請求項8に記載のスピントロニクス論理集積回路の設計方法において、
前記第2および第3のステップの各々は、上記レジスタがクロック信号の立ち上がりで入力データを取り込む場合に、前記クロック信号の立ち下がりで論理演算を実行するスピントロニクス論理ゲートを選択する、
スピントロニクス論理集積回路の設計方法。
【請求項11】
請求項8に記載のスピントロニクス論理集積回路の設計方法において、
前記第2および第3のステップの各々は、上記レジスタがクロック信号の立ち下がりで入力データを取り込む場合に、前記クロック信号の立ち上がりで論理演算を実行するスピントロニクス論理ゲートを選択する、
スピントロニクス論理集積回路の設計方法。
【請求項12】
スピントロニクス論理集積回路の設計を、コンピュータで実行させるためのプログラムであって
スピントロニクス素子に割り付けられる論理信号から後段のレジスタの入力までの組み合せ論理回路を抽出する第1の処理と、
該抽出した組み合せ論理回路を、この論理真理値と一致するスピントロニクス論理ゲートをライブラリから検索して置き換える第2の処理と、
を前記コンピュータに実行させるプログラム。
【請求項13】
請求項12に記載のプログラムにおいて、
上記スピントロニクス論理ゲートの出力がレジスタに入力されている場合に、このレジスタをラッチ回路に置き換える処理、
を更に前記コンピュータに実行させるプログラム。
【請求項14】
請求項12に記載のプログラムにおいて、
上記スピントロニクス論理ゲートの入力と、その前段の組み合せ回路との間にラッチ回路を挿入する処理、
を更に前記コンピュータに実行させるプログラム。
【請求項15】
請求項12に記載のプログラムにおいて、
上記組み合せ論理回路の真理値と一致するスピントロニクス論理ゲートが見つからない場合において、上記組み合せ論理回路の最終段の論理ゲートを除いた組み合せ論理回路に置き換え対象を変更し、この論理真理値と一致するスピントロニクス論理ゲートをライブラリから検索して置き換える第3の処理、
を更に前記コンピュータに実行させるプログラム。
【請求項16】
請求項15に記載のプログラムにおいて、
置き換え対象の組み合せ論理回路の論理真理値と一致するスピントロニクス論理ゲートが見つかるまで、前記第1乃至第3の処理を繰り返す、
プログラム。
【請求項17】
請求項15に記載のプログラムにおいて、
前記第2および第3の処理の各々は、上記レジスタがクロック信号の立ち上がりで入力データを取り込む場合に、前記クロック信号の立ち下がりで論理演算を実行するスピントロニクス論理ゲートを選択する、
プログラム。
【請求項18】
請求項15に記載のプログラムにおいて、
前記第2および第3の処理の各々は、上記レジスタがクロック信号の立ち下がりで入力データを取り込む場合に、前記クロック信号の立ち上がりで論理演算を実行するスピントロニクス論理ゲートを選択する、
プログラム。
【請求項1】
ハードウェア記述言語により仕様を満足する動作を記述して、動作記述レベルの論理集積回路ネットリストを作成する動作記述手段と、
論理シミュレータで、前記動作記述レベルの論理集積回路ネットリストの論理検証を行う論理検証手段と、
前記ハードウェア記述言語で記述された動作記述レベルの論理集積回路ネットリストから、論理合成ツールによって論理ゲートレベルの論理集積回路ネットリストを作成する論理合成手段と、
前記論理ゲートレベルの論理集積回路ネットリストから、スピントロニクス論理ゲートを含む不揮発性の論理集積回路ネットリストへ変換する変換手段と、
を含む論理集積回路のCADシステム。
【請求項2】
請求項1に記載の論理集積回路のCADシステムにおいて、
前記変換手段は、指定される不揮発化対象の論理信号を入出力とする組み合せ回路の一部をスピントロニクス論理ゲートに置き換えることを特徴とする、論理集積回路のCADシステム。
【請求項3】
ハードウェア記述言語により仕様を満足する動作を記述して、動作記述レベルの論理集積回路ネットリストを作成する動作記述手段と、
論理シミュレータで、前記動作記述レベルの論理集積回路ネットリストの論理検証を行う論理検証手段と、
前記ハードウェア記述言語で記述された動作記述レベルの論理集積回路ネットリストから、スピントロニクス論理ゲートを含む不揮発性の動作記述レベルの論理集積回路ネットリストへ変換する変換手段と、
前記スピントロニクス論理ゲートを含む不揮発性の動作記述レベルの論理集積回路ネットリストから、論理合成ツールによって論理ゲートレベルの論理集積回路ネットリストを作成する論理合成手段と、
を含む論理集積回路のCADシステム。
【請求項4】
請求項3に記載の論理集積回路のCADシステムにおいて、
前記変換手段は、指定される不揮発化対象の論理信号を入出力とする組み合せ回路の一部をスピントロニクス論理ゲートに置き換えることを特徴とする、論理集積回路のCADシステム。
【請求項5】
スピントロニクス素子に割り付けられる論理信号から後段のレジスタの入力までの組み合せ論理回路を抽出する第1のステップと、
該抽出した組み合せ論理回路を、この論理真理値と一致するスピントロニクス論理ゲートをライブラリから検索して置き換える第2のステップと、
を含むスピントロニクス論理集積回路の設計方法。
【請求項6】
請求項5に記載のスピントロニクス論理集積回路の設計方法において、
上記スピントロニクス論理ゲートの出力がレジスタに入力されている場合に、このレジスタをラッチ回路に置き換えるステップ、
を更に含むスピントロニクス論理集積回路の設計方法。
【請求項7】
請求項5に記載のスピントロニクス論理集積回路の設計方法において、
上記スピントロニクス論理ゲートの入力と、その前段の組み合せ回路との間にラッチ回路を挿入するステップ、
を更に含むスピントロニクス論理集積回路の設計方法。
【請求項8】
請求項5に記載のスピントロニクス論理集積回路の設計方法において、
上記組み合せ論理回路の真理値と一致するスピントロニクス論理ゲートが見つからない場合において、上記組み合せ論理回路の最終段の論理ゲートを除いた組み合せ論理回路に置き換え対象を変更し、この論理真理値と一致するスピントロニクス論理ゲートをライブラリから検索して置き換える第3のステップ、
を更に含むスピントロニクス論理集積回路の設計方法。
【請求項9】
請求項8に記載のスピントロニクス論理集積回路の設計方法において、
置き換え対象の組み合せ論理回路の論理真理値と一致するスピントロニクス論理ゲートが見つかるまで、前記第1乃至第3のステップを繰り返す、
スピントロニクス論理集積回路の設計方法。
【請求項10】
請求項8に記載のスピントロニクス論理集積回路の設計方法において、
前記第2および第3のステップの各々は、上記レジスタがクロック信号の立ち上がりで入力データを取り込む場合に、前記クロック信号の立ち下がりで論理演算を実行するスピントロニクス論理ゲートを選択する、
スピントロニクス論理集積回路の設計方法。
【請求項11】
請求項8に記載のスピントロニクス論理集積回路の設計方法において、
前記第2および第3のステップの各々は、上記レジスタがクロック信号の立ち下がりで入力データを取り込む場合に、前記クロック信号の立ち上がりで論理演算を実行するスピントロニクス論理ゲートを選択する、
スピントロニクス論理集積回路の設計方法。
【請求項12】
スピントロニクス論理集積回路の設計を、コンピュータで実行させるためのプログラムであって
スピントロニクス素子に割り付けられる論理信号から後段のレジスタの入力までの組み合せ論理回路を抽出する第1の処理と、
該抽出した組み合せ論理回路を、この論理真理値と一致するスピントロニクス論理ゲートをライブラリから検索して置き換える第2の処理と、
を前記コンピュータに実行させるプログラム。
【請求項13】
請求項12に記載のプログラムにおいて、
上記スピントロニクス論理ゲートの出力がレジスタに入力されている場合に、このレジスタをラッチ回路に置き換える処理、
を更に前記コンピュータに実行させるプログラム。
【請求項14】
請求項12に記載のプログラムにおいて、
上記スピントロニクス論理ゲートの入力と、その前段の組み合せ回路との間にラッチ回路を挿入する処理、
を更に前記コンピュータに実行させるプログラム。
【請求項15】
請求項12に記載のプログラムにおいて、
上記組み合せ論理回路の真理値と一致するスピントロニクス論理ゲートが見つからない場合において、上記組み合せ論理回路の最終段の論理ゲートを除いた組み合せ論理回路に置き換え対象を変更し、この論理真理値と一致するスピントロニクス論理ゲートをライブラリから検索して置き換える第3の処理、
を更に前記コンピュータに実行させるプログラム。
【請求項16】
請求項15に記載のプログラムにおいて、
置き換え対象の組み合せ論理回路の論理真理値と一致するスピントロニクス論理ゲートが見つかるまで、前記第1乃至第3の処理を繰り返す、
プログラム。
【請求項17】
請求項15に記載のプログラムにおいて、
前記第2および第3の処理の各々は、上記レジスタがクロック信号の立ち上がりで入力データを取り込む場合に、前記クロック信号の立ち下がりで論理演算を実行するスピントロニクス論理ゲートを選択する、
プログラム。
【請求項18】
請求項15に記載のプログラムにおいて、
前記第2および第3の処理の各々は、上記レジスタがクロック信号の立ち下がりで入力データを取り込む場合に、前記クロック信号の立ち上がりで論理演算を実行するスピントロニクス論理ゲートを選択する、
プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2012−243137(P2012−243137A)
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願番号】特願2011−113617(P2011−113617)
【出願日】平成23年5月20日(2011.5.20)
【出願人】(000004237)日本電気株式会社 (19,353)
【出願人】(504157024)国立大学法人東北大学 (2,297)
【Fターム(参考)】
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願日】平成23年5月20日(2011.5.20)
【出願人】(000004237)日本電気株式会社 (19,353)
【出願人】(504157024)国立大学法人東北大学 (2,297)
【Fターム(参考)】
[ Back to top ]