(57)【特許請求の範囲】
【請求項１】
ハードウェア記述言語により仕様を満足する動作を記述して、動作記述レベルの論理集積回路ネットリストを作成する動作記述手段と、
論理シミュレータで、前記動作記述レベルの論理集積回路ネットリストの論理検証を行う論理検証手段と、
前記ハードウェア記述言語で記述された動作記述レベルの論理集積回路ネットリストから、論理合成ツールによって論理ゲートレベルの論理集積回路ネットリストを作成する論理合成手段と、
前記論理ゲートレベルの論理集積回路ネットリストから、スピントロニクス論理ゲートを含む不揮発性の論理集積回路ネットリストへ変換する変換手段と、
を含む論理集積回路のＣＡＤシステムであって、
前記変換手段は、
前記スピントロニクス論理ゲートに割り付けられた信号を入力とし、ＤＦＦの入力端子へ出力される組み合せ回路を抽出し、該抽出した組み合せ回路の論理と一致する前記スピントロニクス論理ゲートをライブラリから選択して、前記抽出した組み合せ回路を置き換え、
前記抽出した組み合せ回路の入力信号と、前記置き換えたスピントロニクス論理ゲートとの間に、ロースルー・ラッチを挿入し、
前記置き換えたスピントロニクス論理ゲートの出力端子と接続されるＤＦＦをハイスルー・ラッチに置き換える、
ことを特徴とする論理集積回路のＣＡＤシステム。
【請求項２】
請求項１に記載の論理集積回路のＣＡＤシステムにおいて、
前記変換手段は、指定される不揮発化対象の論理信号を入出力とする組み合せ回路の一部をスピントロニクス論理ゲートに置き換えることを特徴とする、論理集積回路のＣＡＤシステム。
【請求項３】
ハードウェア記述言語により仕様を満足する動作を記述して、動作記述レベルの論理集積回路ネットリストを作成する動作記述手段と、
論理シミュレータで、前記動作記述レベルの論理集積回路ネットリストの論理検証を行う論理検証手段と、
前記ハードウェア記述言語で記述された動作記述レベルの論理集積回路ネットリストから、スピントロニクス論理ゲートを含む不揮発性の動作記述レベルの論理集積回路ネットリストへ変換する変換手段と、
前記スピントロニクス論理ゲートを含む不揮発性の動作記述レベルの論理集積回路ネットリストから、論理合成ツールによって論理ゲートレベルの論理集積回路ネットリストを作成する論理合成手段と、
を含む論理集積回路のＣＡＤシステムであって、
前記変換手段は、
前記スピントロニクス論理ゲートに割り付けられた信号を入力とし、ＤＦＦの入力端子へ出力される組み合せ回路を抽出し、該抽出した組み合せ回路の論理と一致する前記スピントロニクス論理ゲートをライブラリから選択して、前記抽出した組み合せ回路を置き換え、
前記抽出した組み合せ回路の入力信号と、前記置き換えたスピントロニクス論理ゲートとの間に、ロースルー・ラッチを挿入し、
前記置き換えたスピントロニクス論理ゲートの出力端子と接続されるＤＦＦをハイスルー・ラッチに置き換える、
ことを特徴とする論理集積回路のＣＡＤシステム。
【請求項４】
請求項３に記載の論理集積回路のＣＡＤシステムにおいて、
前記変換手段は、指定される不揮発化対象の論理信号を入出力とする組み合せ回路の一部をスピントロニクス論理ゲートに置き換えることを特徴とする、論理集積回路のＣＡＤシステム。
【請求項５】
データとプログラムを記憶するメモリと、ライブラリを格納する補助記憶装置と、前記データを処理するＣＰＵとを備えたＣＡＤシステムを用いて、スピントロニクス論理集積回路を設計する方法であって、
前記ＣＰＵが、スピントロニクス素子に割り付けられる論理信号から後段のレジスタの入力までの組み合せ論理回路を抽出する第１のステップと、
前記ＣＰＵが、該抽出した組み合せ論理回路を、この論理真理値と一致するスピントロニクス論理ゲートを前記ライブラリから検索して置き換える第２のステップと、
前記ＣＰＵが、前記置き換えたスピントロニクス論理ゲートの入力と、その前段の組み合せ論理回路との間にロースルー・ラッチを挿入する第３のステップと、
前記ＣＰＵが、記置き換えたスピントロニクス論理ゲートの出力がレジスタに入力されている場合に、このレジスタをハイスルー・ラッチに置き換える第４のステップと、
を含むスピントロニクス論理集積回路の設計方法。
【請求項６】
データとプログラムを記憶するメモリと、ライブラリを格納する補助記憶装置と、前記データを処理するＣＰＵとを備えたＣＡＤシステムを用いて、スピントロニクス論理集積回路を設計する方法であって、
前記ライブラリには、クロック信号がローレベルの時に論理演算をし、ハイレベルの時にプリチャージを行うスピントロニクス論理回路が格納されており、
前記ＣＰＵが、スピントロニクス素子に割り付けられる論理信号から後段のレジスタの入力までの組み合せ論理回路を抽出する第１のステップと、
前記ＣＰＵが、該抽出した組み合せ論理回路を、この論理真理値と一致するスピントロニクス論理ゲートを前記ライブラリから検索して置き換える第２のステップと、
前記ＣＰＵが、上記組み合せ論理回路の真理値と一致するスピントロニクス論理ゲートが見つからない場合において、上記組み合せ論理回路の最終段の論理ゲートを除いた組み合せ論理回路に置き換え対象を変更し、この論理真理値と一致するスピントロニクス論理ゲートを前記ライブラリから検索して置き換える第３のステップと、
を含むスピントロニクス論理集積回路の設計方法。
【請求項７】
請求項６に記載のスピントロニクス論理集積回路の設計方法において、
前記ＣＰＵが、置き換え対象の組み合せ論理回路の論理真理値と一致するスピントロニクス論理ゲートが見つかるまで、前記第１乃至第３のステップを繰り返す、
スピントロニクス論理集積回路の設計方法。
【請求項８】
請求項６に記載のスピントロニクス論理集積回路の設計方法において、
前記ＣＰＵが、前記第２および第３のステップの各々において、上記レジスタがクロック信号の立ち上がりで入力データを取り込む場合に、前記クロック信号の立ち下がりで論理演算を実行するスピントロニクス論理ゲートを選択する、
スピントロニクス論理集積回路の設計方法。
【請求項９】
スピントロニクス論理集積回路の設計を、コンピュータで実行させるためのプログラムであって、
スピントロニクス素子に割り付けられる論理信号から後段のレジスタの入力までの組み合せ論理回路を抽出する第１の処理と、
該抽出した組み合せ論理回路を、この論理真理値と一致するスピントロニクス論理ゲートをライブラリから検索して置き換える第２の処理と、
前記置き換えたスピントロニクス論理ゲートの入力と、その前段の組み合せ論理回路との間にロースルー・ラッチを挿入する第３の処理と、
前記置き換えたスピントロニクス論理ゲートの出力がレジスタに入力されている場合に、このレジスタをハイスルー・ラッチに置き換える第４の処理と、
を前記コンピュータに実行させるプログラム。
【請求項１０】
スピントロニクス論理集積回路の設計を、コンピュータで実行させるためのプログラムであって、ライブラリには、クロック信号がローレベルの時に論理演算をし、ハイレベルの時にプリチャージを行うスピントロニクス論理回路が格納されており、
スピントロニクス素子に割り付けられる論理信号から後段のレジスタの入力までの組み合せ論理回路を抽出する第１の処理と、
該抽出した組み合せ論理回路を、この論理真理値と一致するスピントロニクス論理ゲートを前記ライブラリから検索して置き換える第２の処理と、
上記組み合せ論理回路の真理値と一致するスピントロニクス論理ゲートが見つからない場合において、上記組み合せ論理回路の最終段の論理ゲートを除いた組み合せ論理回路に置き換え対象を変更し、この論理真理値と一致するスピントロニクス論理ゲートを前記ライブラリから検索して置き換える第３の処理と、
を前記コンピュータに実行させるプログラム。
【請求項１１】
請求項１０に記載のプログラムにおいて、
置き換え対象の組み合せ論理回路の論理真理値と一致するスピントロニクス論理ゲートが見つかるまで、前記第１乃至第３の処理を繰り返す、
プログラム。
【請求項１２】
請求項１０に記載のプログラムにおいて、
前記第２および第３の処理の各々は、上記レジスタがクロック信号の立ち上がりで入力データを取り込む場合に、前記クロック信号の立ち下がりで論理演算を実行するスピントロニクス論理ゲートを選択する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スピントロニクス論理集積回路の設計に関し、特にスピントロニクス論理集積回路の論理合成方法に関する。
【背景技術】
【０００２】
今日の情報通信技術は、電子の電荷を利用する半導体デバイス技術と、電子のスピンを利用する磁気デバイス技術とが別々に技術開発されてきた。近年はそれぞれの技術の成熟度が増し、半導体デバイスの情報処理性能や、磁気デバイスの情報蓄積能力といった限界の壁にぶつかりつつある。この限界を解決するために、電子の電荷の自由度と電子のスピンの自由度との両方を利用した相乗効果により、この限界を打破しようというスピントロニクス技術が注目されている。
【０００３】
スピントロニクス素子の代表例が磁気抵抗素子（ＭＴＪ素子）である。典型的なＭＴＪ素子においては、磁化が一方向に固定された固定磁性層と、二方向に磁化方向が変化する自由磁性層とを用い、これら磁性層の間にトンネルバリア層が形成される。１ビットの情報（０／１）は、自由磁性層の磁化に割り当てられ、二枚の磁性層の磁化が互いに並行（同じ向き）になる場合、トンネルバリア層を通過するトンネル電流が増加し（低抵抗状態）、逆に反平行（反対の向き）になる場合、トンネル電流は減少（高抵抗状態）する性質を利用して情報を取り出すことができる。ＭＴＪ素子にある一定以上の磁場を印加する、あるいはスピン偏極電流を流すことにより、自由磁性層の磁化方向を反転させることで１ビットの情報を書き換える。
【０００４】
このスピントロニクスの分野では、ＭＴＪ素子を半導体デバイスに応用し、ダイナミック・ランダムアクセスメモリ（ＤＲＡＭ）に変わる大容量で高速、かつ不揮発性を兼ね備えた、従来に存在しない性能を実現できる可能性のある磁気ランダムアクセスメモリ（ＭＲＡＭ）が実用化段階に入っている。ＭＲＡＭは従来の半導体メモリを不揮発化しようという試みであるが、さらに従来の論理回路にもＭＴＪ素子を組み込んで演算機能と不揮発メモリ機能を同時に実現しようという試みも盛んである。
【０００５】
例えば、非特許文献１は、ＭＴＪ素子が持つビット情報と、電圧で入力されるビット情報とを論理演算するスピントロニクスの要素論理回路を開示している。
【０００６】
図１に、このスピントロニクス論理回路１０の基本構成を示す。図示のスピントロニクス論理回路１０は、第１乃至第５のトランジスタＭ１〜Ｍ５と、第１のＭＴＪ素子ＲＸと、第２のＭＴＪ素子Ｒ／Ｘと、パス・トランジスタ論理部１１とから構成されている。第１のトランジスタＭ１は、ＮチャネルＭＯＳＦＥＴから構成され、第２乃至第５のトランジスタＭ２〜Ｍ５の各々は、ＰチャネルＭＯＳＦＥＴから構成されている。
【０００７】
第１のトランジスタＭ１のソースは接地され、第１のトランジスタＭ１のゲートにはクロック信号ＣＬＫが供給されている。第１のトランジスタＭ１のドレインは、第１および第２のＭＴＪ素子ＲＸおよびＲ／Ｘを介して、それぞれ、パス・トランジスタ論理部１１の第１および第２のデータ入力端子Ｘおよび／Ｘに接続されている。パス・トランジスタ論理部１１は、それぞれ、第１および第２の入力信号ＡおよびＢを受けるための第１および第２の入力端子を持つ。また、パス・トランジスタ論理部１１は、第１および第２の内部出力端子ｙおよび／ｙを持つ。第１および第２の内部出力端子ｙおよび／ｙの信号は、バッファ１２を介して出力信号Ｙとして出力される。
【０００８】
第２のトランジスタＭ２において、そのソースには電源電圧Ｖｄｄが供給され、そのゲートにはクロック信号ＣＬＫが供給され、そのドレインはパス・トランジスタ論理部１１の第１の内部出力端子ｙに接続されている。第３のトランジスタＭ３において、そのソースには電源電圧Ｖｄｄが供給され、そのゲートにはクロック信号ＣＬＫが供給され、そのドレインはパス・トランジスタ論理部１１の第２の内部出力端子／ｙに接続されている。第４のトランジスタＭ４において、そのソースには電源電圧Ｖｄｄが供給され、そのゲートはパス・トランジスタ論理部１１の第２の内部出力端子／ｙに接続され、そのドレインはパス・トランジスタ論理部１１の第１の内部出力端子ｙに接続されている。第５のトランジスタＭ５において、そのソースには電源電圧Ｖｄｄが供給され、そのゲートはパス・トランジスタ論理部１１の第１の内部出力端子ｙに接続され、そのドレインはパス・トランジスタ論理部１１の第２の内部出力端子／ｙに接続されている。
【０００９】
このような構成のスピントロニクス論理回路１０において、２つのＭＴＪ素子ＲＸおよびＲ／Ｘに１ビット情報Ｘが相補に記憶される。１ビット情報Ｘが論理“０”レベルの時はＲＸ＜Ｒ／Ｘとなり、１ビット情報Ｘが論理“１”レベルの時はＲＸ＞Ｒ／Ｘとなる。上述したように、２つのＭＴＪ素子ＲＸおよびＲ／Ｘに１ビット情報Ｘが相補に記憶されるので、その記憶内容（論理値）をＭで表すとする。
【００１０】
第１および第２の入力信号ＡおよびＢはパス・トランジスタ論理部１１に入力される。パス・トランジスタ論理部１１は、第１の入力信号Ａと第２の入力信号Ｂ、及び記憶内容（論理値）Ｍとを論理演算し、その論理演算された結果を、バッファ１２を介して出力信号Ｙとして出力する。
【００１１】
クロック信号ＣＬＫがローレベルとなったとする。この時、第１のトランジスタＭ１はオフとなり、第２および第３のトランジスタＭ２およびＭ３がオンとなって、パス・トランジスタ論理部１１の第１および第２の内部出力端子ｙおよび／ｙはハイプリチャージされる。
【００１２】
クロック信号ＣＬＫがハイレベルになったとする。このとき、第１のトランジスタＭ１がオンとなり、第１および第３のトランジスタＭ２およびＭ３はオフになり、第４および第５のトランジスタＭ４およびＭ５によってパス・トランジスタ論理部１１の第１および第２の内部出力端子ｙおよび／ｙの信号が増幅される。
【００１３】
但し、実際には、ＭＴＪ素子ＲＸおよびＲ／Ｘに相補のデータＸを書き込むための電流供給手段が本回路に接続されるが、図１では説明の便宜上省略している。
【００１４】
パス・トランジスタ論理部１１の回路構成を変えることで、様々な複雑な論理演算を少数のトランジスタで構成できる。例えば、パス・トランジスタ論理部１１を図２（ａ）に示すパス・トランジスタ構成にすると、スピントロニクス論理回路１０は１ビットの加算器として動作する。また、パス・トランジスタ論理部１１を図２（ｂ）に示すパス・トランジスタ構成にすると、スピントロニクス論理回路１０はキャリー生成回路として動作する。
【００１５】
スピントロニクス論理集積回路は図１に示した要素回路が複数結線されて、より大規模で複雑な演算を、従来のＣＭＯＳ回路に比べて小面積で、且つ省電力で実現することができる。さらに、論理回路内部の論理情報は不揮発性であるので、電源切断前の演算結果が消失しない。よって、データバスにおける情報の転送量を削減できることによる高性能化と省電力化や、電源を高頻度に切断して近年増加の一途をたどる非動作時のリーク電流をゼロにでき、従来実現が困難であった低電力設計を可能にする技術としても期待されている。
【先行技術文献】
【非特許文献】
【００１６】
【非特許文献１】“Ｆａｂｒｉｃａｔｉｏｎ  ｏｆ  ａ  Ｎｏｎｖｏｌａｔｉｌｅ  Ｆｕｌｌ  Ａｄｄｅｒ  Ｂａｓｅｄ  ｏｎ  Ｌｏｇｉｃ−ｉｎ−Ｍｅｍｏｒｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｕｓｉｎｇ  Ｍａｇｎｅｔｉｃ  Ｔｕｎｎｅｌ  Ｊｕｎｃｔｉｏｎｓ”，Ａｐｐｌｉｅｄ  Ｐｈｙｓｉｃｓ  Ｅｘｐｒｅｓｓ  １  ０９１３０１，  ２００８．
【発明の概要】
【発明が解決しようとする課題】
【００１７】
大規模な論理演算回路を設計するには、計算機援用設計（ＣＡＤ）ツールによる自動設計化は短ターンアラウンド時間（ＴＡＴ）の観点から必須である。
【００１８】
図３に、一般的な相補金属酸化膜半導体（ＣＭＯＳ）論理回路設計における設計フローを示す。図示の設計フロー（プログラム）は、図示しない中央処理装置（ＣＰＵ）によって処理される。
【００１９】
先ず、ＣＰＵは、ハードウェア記述言語（ＨＤＬ）により仕様を満足する動作を記述して、動作記述レベル（ＲＴＬ：Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）の論理集積回路実回路情報（ネットリスト）を作成する（ステップＳ１０１）。ここで、ハードウェア記述言語（ＨＤＬ）とは、文書化、設計そして超ＬＳＩ回路などのディジタルシステムの製造を容易にするためのコンピュータ言語のことを指す。また、「ＲＴＬ」では、回路中のフリップフロップやメモリなどの記憶素子がまず定義され、現在の記憶素子の状態がクロックに対応してどのような次状態に変化するかが定義される。「ネットリスト」とは、回路を構成する素子同士の接続関係や素子の電気的な特性値を記述したテキストファイルのことを指す。
【００２０】
引き続いて、ＣＰＵは、論理シミュレータで、動作記述レベル（ＲＴＬ）の論理集積回路ネットリストの機能検証（論理検証）を行う（ステップＳ１０２）。
【００２１】
次に、ＣＰＵは、ＨＤＬで記述された動作記述レベルの論理集積回路ネットリストから、論理合成ツールによって、論理ゲートレベルの論理集積回路ネットリストを自動作成する（ステップＳ１０３）。
【００２２】
図４に示すように、合成された論理回路２０は、クロック信号ＣＬＫの１サイクルだけデータを保持する遅延フリップフロップ（ＤＦＦ）２１と、多数の要素回路が複雑に結線される組み合せ回路２２とから構成される。
【００２３】
図３に戻って、ＣＰＵは、論理ゲートレベルの論理集積回路ネットリストからプリミティブセルを自動配置し（ステップＳ１０４）、セル間を自動配線するツールによりマスクデータを得、トランジスタや配線のＲＣ遅延を考慮したタイミング解析を行う（ステップＳ１０５）。
【００２４】
大規模なスピントロニクス論理集積回路を設計する際、ＣＭＯＳ論理回路とスピントロニクス論理回路との動作原理の違いから、上記設計フローをそのまま適用することが出来ないという問題がある。
【００２５】
詳述すると、ＣＭＯＳ論理回路の場合、トランジスタのオン／オフ比が６桁以上と大きいので、トランジスタはスィッチ素子として働く。よって、組み合せ回路２２では入力信号の変化とほぼ同時に出力信号も変化する。これに対して、スピントロニクス論理回路１０の場合、ＭＴＪ素子ＲＸおよびＲ／Ｘの信号量（ＲＸとＲ／Ｘの比）が数倍程度であるため、その抵抗差を検出する手続きや制約が必要となる。
【００２６】
図１の例で具体的に述べると、クロック信号ＣＬＫがハイレベルの時に、各々のＭＴＪ素子ＲＸおよびＲ／Ｘに流れる電流の差がパス・トランジスタ論理部１１の第１および第２の内部出力端子ｙおよび／ｙに相補電圧として出力される。
【００２７】
この時、図５（ｂ）に示すように、第１および第２の入力信号Ａ、Ｂは変化することは許されず、クロック信号ＣＬＫがハイレベルに遷移する前に確定される必要がある。
【００２８】
また、クロック信号ＣＬＫがローレベルのハイプリチャージ期間、出力信号はハイレベルになるので、スピントロニクス論理回路１０の出力端子Ｙに演算結果が出力されるのは、クロック信号ＣＬＫの半周期のみになる。
【００２９】
これに対し、ＤＦＦ２１においては、入力信号Ｄはクロックの立上がり前後で確定していれば良く（通常、立上がりエッジ前に必要な確定時間はセットアップ時間で規定され、エッジ後に必要な確定時間はホールド時間で規定される）、出力信号Ｑはクロック・サイクル期間で保持し続ける（図５（ａ）参照）。
【００３０】
既存設計ツールは、このスピントロニクス論理回路１０の特殊性に対応していないため、ＣＭＯＳライブラリにスピントロニクス論理ゲートを追加するだけでは、既存設計フローに沿った設計をすることができない。特に、ＨＤＬで記述された動作記述レベルの論理集積回路ネットリストから、論理ゲートレベルで構成される論理集積回路ネットリストまでのフロントエンドまでの設計が困難である。
【００３１】
スピントロニクス論理回路１０に特有の設計体系を確立する必要があるが、設計ツールの開発コストや過去の設計資産の流用や互換性を考慮すると、ＣＭＯＳ論理回路設計における設計フローの最小限の変更のみで、スピントロニクス論理回路設計における設計体系を確立できることが望ましい。
【００３２】
本発明の目的は、ＣＭＯＳ論理回路設計における設計フローの最小限の変更のみで、スピントロニクス論理回路設計における設計体系を確立することができる、論理集積回路のＣＡＤシステムを提供することにある。
【課題を解決するための手段】
【００３３】
本発明は、上記課題を解決するため、論理集積回路のＣＡＤシステムであって、ハードウェア記述言語で記述された動作記述レベルあるいは論理ゲートレベルの論理集積回路ネットリストから、スピントロニクス論理ゲートを含む不揮発性の論理集積回路ネットリストへ変換する変換手段を有することを特徴とする。
【００３４】
また、上記ＣＡＤシステムにおいて、変換手段は、指定される不揮発化対象の論理信号を入出力とする組み合わせ回路の一部をスピントロニクス論理ゲートに置き換えることを特徴とする。
【００３５】
また、論理集積回路の設計手法であって、スピントロニクス素子に割り付けられる論理信号から後段のレジスタ（一般的にはＤＦＦ）の入力までの組み合せ論理回路を抽出する第１のステップと、この抽出した組み合せ回路を、この論理真理値と一致するスピントロニクス論理ゲートをライブラリから検索して置き換える第２のステップとを含むことを特徴とする。
【００３６】
また、上記設計方法において、スピントロニクス論理ゲートの出力がレジスタに入力されている場合に、このレジスタをラッチ回路に置き換えるステップを更に含むことを特徴とする。
【００３７】
また、上記設計方法において、スピントロニクス論理ゲートの入力と、その前段の組み合せ回路との間にラッチ回路を挿入するステップを更に含むことを特徴とする。
【００３８】
また、上記設計方法において、置き換え対象の組み合せ論理回路の真理値と一致するスピントロニクス論理ゲートが見つからない場合において、上記組み合せ論理回路の最終段の論理ゲートを除いた組み合せ論理回路に置き換え対象を変更し、この論理真理値と一致するスピントロニクス論理ゲートをライブラリから検索して置き換える第３のステップを更に含むことを特徴とする。
【００３９】
また、上記設計方法において、置き換え対象の組み合わせ論理回路の論理真理値と一致するスピントロニクス論理ゲートが見つかるまで、上記第１乃至第３のステップを繰り返すことを特徴とする。
【００４０】
また、上記設計方法において、上記第２および第３のステップの各々は、上記レジスタがクロック信号の立ち上がり（立ち下がり）で入力データを取り込む場合に、クロック信号の立ち下がり（立ち上がり）で論理演算を実行するスピントロニクス論理ゲートを選択することを特徴とする。
【発明の効果】
【００４１】
本発明によれば、ＣＭＯＳ論理回路の既存設計フローにほぼ沿った形でスピントロニクス論理集積回路の設計が可能となる。これは、ＣＭＯＳ論理回路を前提に書かれた設計資産（動作記述ネットリスト）を流用することも簡単になり、スピントロニクス論理集積回路のゲートレベル化も可能になる。
【図面の簡単な説明】
【００４２】
【図１】スピントロニクス論理回路の基本回路構成を示す図である。
【図２】図１のパス・トランジスタ論理回路の例を示す図で、（ａ）はＳＵＭ回路、（ｂ）はＣＡＲＲＹ生成回路の例を示す図である。
【図３】典型的な論理集積回路の自動設計フロー図である。
【図４】論理合成ツールによって得られる同期型論理回路の基本構成を示す図である。
【図５】図４に示す同期型論理回路の動作タイミング・チャートであり、（ａ）はＤＦＦの動作タイミング・チャート、（ｂ）はスピントロニクス論理回路の動作タイミング・チャートである。
【図６】（ａ）は本発明の第１の実施形態における、Ｆ／Ｆ化されたスピントロニクス論理回路の基本構成を示す図、（ｂ）はその等価回路を示す図である。
【図７】図６（ａ）の回路の動作タイミング・チャートである。
【図８】スピントロニクス論理集積回路のフロントエンド設計フロー図である。
【図９】スピントロニクス論理集積回路のフロントエンド設計フロー（別の形態）図である。
【図１０】本発明の第１の実施形態によるＣＭＯＳ論理回路からスピントロニクス論理回路への置き換え方法を示す図で、（ａ）置き換え前の論理回路を示し、（ｂ）置き換え後の論理回路を示す。
【図１１】第１の実施形態の方法を加減算回路に適用した例を示す図で、（ａ）はスピントロニクス論理回路へ置き換え前の回路図、（ｂ）は置き換えた後の回路図である。
【図１２】本発明の第２の実施形態における、Ｆ／Ｆ化されたスピントロニクス論理回路の基本構成を示す図である。
【図１３】図１２の回路の動作タイミング・チャートである。
【図１４】本発明の第２の実施形態によるＣＭＯＳ論理回路からスピントロニクス論理回路への置き換え方法を示す図で、（ａ）は置き換え前の論理回路、（ｂ）は置き換え後の論理回路を示す。
【図１５】第２の実施形態の方法を図１１（ａ）の加減算回路に適用した例を示す図である。
【発明を実施するための形態】
【００４３】
以下、本発明の実施の形態を図面に基づいて説明する。 
最初に、本発明の第１の実施形態について説明する。
【００４４】
図６（ａ）は、図１に図示したスピントロニクス論理回路（スピントロニクス論理ゲート）１０の入力端子に第１および第２のロースルー・ラッチ１６および１７を挿入し、出力端子にハイスルー・ラッチ１８を付加した回路である。図６（ｂ）は、図６（ａ）に示した回路の等価回路である。また、図７は図６（ａ）の回路における動作タイミング・チャートを示している。
【００４５】
スピントロニクス論理回路１０の入力端子に挿入された第１および第２のロースルー・ラッチ１６および１７は、クロック信号ＣＬＫがローレベルの時に第１および第２の入力信号Ａ、Ｂを通過させ、ハイレベルの間は保持する。
【００４６】
スピントロニクス論理回路１０のパス・トランジスタ論理部１１は、クロック信号ＣＬＫがハイレベルの期間に、スピントロニクス素子（ＭＴＪ素子）ＲＸおよびＲ／Ｘの論理値Ｘおよび／Ｘと入力信号ａ、ｂとを論理演算して、演算結果ｙを出力する。この時、パス・トランジスタ論理部１１への入力信号ａ、ｂは変化しないので、その演算結果ｙは安定する。
【００４７】
スピントロニクス論理回路１０の後段のハイスルー・ラッチ１８は、クロック信号ＣＬＫがハイレベルの時に演算結果ｙを通過させ、ローレベルの時は保持する。従って、ハイスルー・ラッチ１８の出力端子Ｑに出力される演算結果を、クロック・サイクル中、ハイスルー・ラッチ１８は保持し続ける。これは、図５（ａ）に図示したＤＦＦの動作タイミングと同じである。従って、図６（ａ）の回路は、論理演算機能付のＤＦＦと等価である。
【００４８】
図８に、スピントロニクス論理集積回路のフロントエンド設計フローの一例を示す。このフロントエンド設計フロー（プログラム）は、コンピュータから成るＣＡＤシステムで実行される。図示はしないが、ＣＡＤシステム（コンピュータ）は、データを入力する入力装置と、図８に示されたプログラム（フロントエンド設計フロー）を記憶するリードオンリメモリ（ＲＯＭ）と、データを一時的に記憶するワークエリアとして使用されるランダムアクセスメモリ（ＲＡＭ）と、ＲＯＭに記憶されたプログラムに従って、ＲＡＭに記憶されているデータを処理する中央処理装置（ＣＰＵ）と、ＣＰＵでの処理結果を出力する出力装置と、種々のライブラリを格納する補助記憶装置とを備えている。
【００４９】
ＣＰＵは、ハードウェア記述言語（ＨＤＬ）によって動作記述レベル（ＲＴＬ：Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）の論理集積回路ネットリストから、ＣＭＯＳライブラリを使った論理合成ツールによって論理ゲートレベル（ＧＬ）の論理集積回路ネットリストを得る（ステップＳ２０１〜Ｓ２０３）。
【００５０】
これらステップＳ２０１〜Ｓ２０３は、図３に示されたステップＳ１０１〜Ｓ１０３とそれぞれ同じである。すなわち、ＣＰＵは、ＨＤＬにより仕様を満足する動作を記述して、ＲＴＬの論理集積回路ネットリストを作成する（ステップＳ２０１）。引き続いて、ＣＰＵは、論理シミュレータで、ＲＴＬの論理集積回路ネットリストの論理検証を行う（ステップＳ２０２）。そして、ＣＰＵはＨＤＬで記述されたＲＴＬの論理集積回路ネットリストから、論理合成ツールによって論理ゲートレベルの論理集積回路ネットリストを作成する（ステップＳ２０３）。
【００５１】
次に、ＣＰＵは、論理ゲートレベルの論理集積回路ネットリストにおいて、スピントロニクス論理ゲート１０に置き換えられる論理部分を探索し、その論理が一致するスピントロニクス論理ゲート１０に置き換える（Ｓ２０４）。換言すれば、ＣＰＵは、論理ゲートレベルの論理集積回路ネットリストから、スピントロニクス論理ゲート１０を含む不揮発性の論理集積回路ネットリストへ変換する。
【００５２】
また、図９による設計フローも考えられる。ここでは、ＣＰＵは、ＲＴＬの論理集積回路ネットリストの段階で、スピントロニクス論理ゲート１０が利用できる部分を探し、その部分のみをゲートレベル化する（ステップＳ２０４Ａ）。すなわち、ＣＰＵは、ＨＤＬで記述されたＲＴＬの論理集積回路ネットリストから、スピントロニクス論理ゲート１０を含む不揮発性のＲＴＬの論理集積回路ネットリストへ変換する。
【００５３】
次に、ＣＰＵは、ＣＭＯＳライブラリを使って論理合成を行って全てゲートレベル化をする（ステップＳ２０３Ａ）。換言すれば、ＣＰＵは、スピントロニクス論理ゲート１０を含む不揮発性のＲＴＬの論理集積回路ネットリストから、論理合成ツールによって論理ゲートレベルの論理集積回路ネットリストを作成する。
【００５４】
以下、図１０を参照して、本発明の第１の実施形態によるＣＭＯＳゲートからスピントロニクス・ゲートに置き換える方法について詳述する。この方法の基本的な考え方は、図８、及び図９の設計フローのどちらにも適用可能であるが、説明の便宜上、図８の設計フロー（ＣＭＯＳライブラリを使って論理合成した後にスピントロニクス・ゲートに置き換える）を想定して説明を行う。
【００５５】
図１０（ａ）は、ＣＭＯＳライブラリを使って論理合成して得られた回路構成の概念図である。ここで、信号Ｘ０はスピントロニクス素子に割り付けられた信号を示している。この時、以下の手順でスピントロニクス論理ゲート１０に置き換えを行う。
【００５６】
（１）スピントロニクス素子の信号を入力とし、ＤＦＦの入力端子へ出力される組み合せ回路ＣＬ２を見つける。 
（２）組み合せ回路ＣＬ２の論理と一致するスピントロニクス論理ゲートをライブラリから選択し、組み合せ回路ＣＬ２を置き換える。 
（３）組み合せ回路ＣＬ２の入力信号と、置き換えたスピントロニクス論理ゲートの入力との間に、ロースルー・ラッチ１６、１７を挿入する。 
（４）置き換えたスピントロニクス論理ゲートの出力端子と接続されるＤＦＦをハイスルー・ラッチ１８に置き換える。
【００５７】
上記（１）〜（４）の手順で回路構成を変更したのが図１０（ｂ）となり、スピントロニクス・ゲートに置換する前の回路（図１０（ａ））と等価である。
【００５８】
図１１に、本第１の実施形態による設計方法を加減算器に適用した例を示す。ここで、入力信号Ａはスピントロニクス素子の信号を表し、ＳＵＢ信号が０の場合は和（ＳＵＭ＝Ａ＋Ｂ）を演算し、１の場合は差（ＳＵＭ＝Ａ−Ｂ）を演算する。この加減算器では、クロック・サイクル毎に最小ビット（ＬＳＢ）から１ビットずつ加減演算を行い、例えば入力信号ＡおよびＢが４ビットの時は５サイクル後に演算結果が出力される。
【００５９】
図１１（ａ）は、ＲＴＬ記述からＣＭＯＳライブラリを使った論理合成を実行した結果である。次に、先述の手順に従ってスピントロニクス・ゲートに置き換えていく。
【００６０】
手順（１）によると、スピントロニクス素子の信号Ａを入力とし、信号ＳＵＭを出力するＤＦＦとの間にＳＵＭ論理、信号ＣＡＲＲＹを出力するＤＦＦとの間にＣＡＲＲＹ論理がある。手順（２）でＳＵＭ論理部分を図２（ａ）のパス・トランジスタ回路をもつスピントロニクス・ゲートに置き換え、さらにＣＡＲＲＹ論理部分を図２（ｂ）のパス・トランジスタ論理部１１をもつスピントロニクス・ゲートに置き換える。手順（３）で各々のスピントロニクス・ゲートの入力信号にロースルー・ラッチ１６、１７を挿入する。手順（４）で上記２つのＤＦＦをハイスルー・ラッチ１８に置き換える。
【００６１】
以上の置換を行った結果を図１１（ｂ）に示す。これは、元のＣＭＯＳ論理回路（図１１（ａ））と回路的に等価である。
【００６２】
本第１の実施形態の変形として、図６に図示した回路、即ち、スピントロニクス論理回路１０の入力にロースルー・ラッチ１６、１７を置き、出力にハイスルー・ラッチ１８を置いた回路を一つのプリミティブセルとしてライブラリに登録し、以下の手順で置き換えても良い。
【００６３】
（１）スピントロニクス素子の信号を入力とし、ＤＦＦの入力端子へ出力される組み合せ回路ＣＬ２を見つける。 
（２’）組み合せ回路ＣＬ２の論理と一致するラッチ付スピントロニクス論理ゲート１０をライブラリから選択し、組み合せ回路ＣＬ２と後段のＤＦＦとを置き換える。
【００６４】
上記（１）と（２’）の手順で図１０（ａ）の回路をスピントロニクス論理回路１０に置き換えると、図１０（ｂ）となり同じ結果が得られる。
【００６５】
次に、本発明の第２の実施形態について説明する。
【００６６】
先述の第１の実施形態によるＣＭＯＳ論理回路からスピントロニクス論理回路への置き換え方法では、以下の二つの問題点が存在する。一つは、スピントロニクス・ゲートに置き換えられるのは、スピントロニクス素子に割り付けられた論理信号からＤＦＦの入力までの組み合せ回路（ＣＬ２）のみということである。組み合せ回路ＣＬ２の真理値に一致するスピントロニクス・ゲートがライブラリに無いと、その組み合せ回路は置き換えることができない。もう一つの問題点は、スピントロニクス・ゲートに置き換える際に、入力信号の各々にロースルー・ラッチ回路を挿入しなければならないことである。これは、回路面積や遅延の増加、消費電力の増加というデメリットが生じる。
【００６７】
第２の実施形態ではこれらの問題点を克服する手法であり、以下に詳述する。
【００６８】
図１２は、クロック信号ＣＬＫがローレベルの時に論理演算をし、ハイレベルの時にプリチャージを行うスピントロニクス論理回路１０Ａと、その後段にＤＦＦ１２Ａが付加された回路を示している。図１３に、この回路の動作タイミング・チャートを示す。
【００６９】
図１２に示す回路は、スピントロニクス論理回路１０Ａの第１乃至第３のトランジスタＭ１〜Ｍ３のゲートにクロック信号ＣＬＫの反転クロック信号／ＣＬＫが供給されている点が、図１と異なる（図１のバッファ１２は省略している）。
【００７０】
図１３に示すように、第１および第２の入力信号Ａ、Ｂとスピントロニクス素子の論理値Ｘとはクロック信号ＣＬＫがローレベルの時に演算される（評価期間）ので、第１および第２の入力信号Ａ、Ｂは、クロック信号ＣＬＫの立ち下がり時点で確定していなければならない（クロック信号ＣＬＫのローレベル時は変化してはいけない）。
【００７１】
すなわち、クロック信号ＣＬＫの立ち下がり前に確定された第１および第２の入力信号Ａ、Ｂと論理値Ｘによるデータｄ１は、クロック信号ＣＬＫがローレベルの期間にスピントロニクス論理回路１０Ａのパス・トランジスタ論理部１１によって演算され、内部出力端子ｙに演算結果Ｙ１が出力される。そして後段のＤＦＦ１２Ａの立ち上がりのタイミングで演算結果Ｙ１がＤＦＦ１２Ａに取り込まれ、次の立ち上がりのタイミングまでＤＦＦ１２Ａはその値を保持し続ける。
【００７２】
本回路は第１の実施形態の図６の回路に比べて、クロック信号ＣＬＫの立ち上がりに対するセットアップ時間がクロックの半周期分だけ必要となる欠点があるが、上記問題を解決できる。
【００７３】
図１４は、本発明の第２の実施形態によるＣＭＯＳ論理回路からスピントロニクス論理回路１０Ａへの置き換え方法を示している。図１４（ａ）は、ＣＭＯＳライブラリを使って論理合成して得られた回路構成の概念図を示している。ここで、信号Ｘ０はスピントロニクス素子に割り付けられた信号を示しており、組み合せ回路ＣＬ１は信号Ｘ０によって演算結果が変わらない部分、組み合せ回路ＣＬ２および組み合せ回路ＣＬ３は信号Ｘ０によって演算結果が変わる部分を示している。この時、以下の手順でスピントロニクス論理ゲートに置き換えを行う。
【００７４】
（１）スピントロニクス素子の信号を入力とし、ＤＦＦの入力端子へ出力される組み合せ回路ＣＬ２を見つける。 
（２）組み合せ回路ＣＬ２の論理と一致するスピントロニクス論理ゲート１０Ａをライブラリから選択し、組み合せ回路ＣＬ２を置き換える。 
（３）手順（２）で組み合せ回路ＣＬ２に一致するスピントロニクス論理ゲートがなければ、ＤＦＦ入力側のＣＭＯＳ論理ゲートを組み合せ回路ＣＬ３とし、組み合せ回路ＣＬ３を含まない組み合せ回路を新たにＣＬ２’とする。 
（４）手順（２）にならって、組み合せ回路ＣＬ２’をスピントロニクス論理ゲート１０Ａに置き換える。もし、組み合せ回路ＣＬ２’に一致するスピントロニクス論理ゲートがなければ、さらに手順（３）を行い、本手順を繰り返す。
【００７５】
上記（１）〜（４）の手順で回路構成を変更したのが図１４（ｂ）となり、スピントロニクス・ゲートに置換する前の回路（図１４（ａ））と論理的に等価である。しかしながら、スピントロニクス論理ゲート１０Ａに置き換え後の回路が正常に動作するためには、以下の条件ＡとＢがともに成立する時である。
【００７６】
Ａ）組み合せ回路ＣＬ１の遅延時間ｔＣＬ１が、クロック信号ＣＬＫがハイレベルの時間（ＴＣＬＫＨ）からＤＦＦの遅延時間ｔＤＦＦ＿ＤＥＬＡＹとスピントロニクス論理ゲート１０Ａのセットアップ時間（ｔＳＰ＿ＳＥＴＵＰ）を差し引いた時間よりも短いこと。 
Ｂ）組み合せ回路ＣＬ３の遅延時間ｔＣＬ３が、クロック信号ＣＬＫがローレベルの時間（ＴＣＬＫＬ）からスピントロニクス論理ゲート１０Ａの遅延時間ｔＳＰ＿ＤＥＬＡＹ）とＤＦＦのセットアップ時間（ｔＤＦＦ＿ＳＥＴＵＰ）を差し引いた時間よりも短いこと。
【００７７】
図１５に、上記本第２の実施形態を図１１（ａ）の加減算器に適用した例を示す。これは、入力信号のセットアップ時間がクロックの半周期分増加しているのを除けば元のＣＭＯＳ論理回路と等価であり、第１の実施形態の方法で得られた図１１（ｂ）のスピントロニクス論理回路１０とも等価である。
【００７８】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００７９】
１０、１０Ａ  スピントロニクス論理回路（スピントロニクス論理ゲート）
１１    パス・トランジスタ論理部
１２    バッファ
１２Ａ    ＤＦＦ
１６、１７    ロースルー・ラッチ
１８    ハイスルー・ラッチ
Ｍ１    ＮチャネルＭＯＳＦＥＴ
Ｍ２〜Ｍ５    ＰチャネルＭＯＳＦＥＴ
ＲＸ、Ｒ／Ｘ      ＭＴＪ素子
【図１】
0005810426.tif 000002
【図２】
0005810426.tif 000003
【図３】
0005810426.tif 000004
【図４】
0005810426.tif 000005
【図５】
0005810426.tif 000006
【図６】
0005810426.tif 000007
【図７】
0005810426.tif 000008
【図８】
0005810426.tif 000009
【図９】
0005810426.tif 000010
【図１０】
0005810426.tif 000011
【図１１】
0005810426.tif 000012
【図１２】
0005810426.tif 000013
【図１３】
0005810426.tif 000014
【図１４】
0005810426.tif 000015
【図１５】
0005810426.tif 000016