(57)【特許請求の範囲】
【請求項１】
コンピュータが、抵抗変化素子の動作をシミュレーションする方法であって、
前記抵抗変化素子は、スピントロニクス素子であり、
前記コンピュータは、前記スピントロニクス素子に供給される書込み電流を任意の時間刻み毎に計測し、
前記書込み電流に基づいて時間刻み毎に変化する時定数を計算し、
前記時定数を用いて前記抵抗変化素子の抵抗値を変化させるタイミングを計算する、抵抗変化素子の動作をシミュレーションする方法。
【請求項２】
前記コンピュータは、書込み電流に基づいて計算される前記時定数を有するＲＬＣ回路を仮想的に定義し、
前記ＲＬＣ回路に用いられる抵抗素子、容量素子、インダクタ素子の内、少なくとも一素子のパラメータを前記時定数に基づいて変化させる、請求項１記載の抵抗変化素子の動作をシミュレーションする方法。
【請求項３】
前記コンピュータは、前記書込み電流が任意のしきい値を超えた場合に、前記ＲＬＣ回路へステップ波形を入力し、前記しきい値を下回った場合に、前記ステップ波形の入力を停止する、請求項２記載の抵抗変化素子の動作をシミュレーションする方法。
【請求項４】
前記コンピュータは、前記ＲＬＣ回路出力のステップ応答に基づいて抵抗値を変化させるか否かを判定する、請求項３記載の抵抗変化素子の動作をシミュレーションする方法。
【請求項５】
前記コンピュータは、前記書込み電流が任意のしきい値よりも大きい場合に、前記書込み電流に基づいて前記時定数を計算し、前記しきい値よりも小さい場合に、予め規定された時定数に設定する、請求項２記載の抵抗変化素子の動作をシミュレーションする方法。
【請求項６】
前記コンピュータは、前記しきい値を複数有し、前記書込み電流と複数の前記しきい値との大小関係に応じたそれぞれ異なる計算式に基づいて前記時定数を計算する、請求項５記載の抵抗変化素子の動作をシミュレーションする方法。
【請求項７】
前記スピントロニクス素子が磁気抵抗素子である、請求項１記載の抵抗変化素子の動作をシミュレーションする方法。
【請求項８】
前記コンピュータは、前記書込み電流に基づいて計算される前記時定数を有するＲＣ回路を仮想的に定義し、
前記ＲＣ回路に用いられる抵抗素子、容量素子の内、少なくとも一素子のパラメータを前記時定数に基づいて変化させる、請求項１記載の抵抗変化素子の動作をシミュレーションする方法。
【請求項９】
前記コンピュータは、前記書込み電流が任意のしきい値を超えた場合に、前記ＲＣ回路へステップ波形を入力し、前記しきい値を下回った場合に、前記ステップ波形の入力を停止する、請求項８記載の抵抗変化素子の動作をシミュレーションする方法。
【請求項１０】
請求項１乃至９のいずれか１項に記載の抵抗変化素子の動作をシミュレーションする方法によって、スピントロニクス素子である前記抵抗変化素子の抵抗値を変化させるタイミングを計算する処理をコンピュータに実行させる、回路シミュレータ・プログラム。
【請求項１１】
スピントロニクス素子である抵抗変化素子に供給される書込み電流を任意の時間刻み毎に計測する電流計測手段と、
前記書込み電流に基づいて時間刻み毎に変化する時定数を計算する時定数計算手段と、
前記時定数を用いて前記スピントロニクス素子である抵抗変化素子の抵抗値を変化させるタイミングを計算するタイミング計算手段を備える、抵抗変化素子の動作をシミュレーションする回路シミュレータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スピントロニクス論理集積回路の設計に関し、特に回路シミュレータで抵抗変化素子の動作をシミュレーションする方法に関する。
【背景技術】
【０００２】
今日の情報通信技術は、電子の電荷を利用する半導体デバイス技術と、電子のスピンを利用する磁気デバイス技術が別々に技術開発されてきた。近年はそれぞれの技術が成熟度が増し、半導体デバイスの情報処理性能や、磁気デバイスの情報蓄積能力といった限界の壁にぶつかりつつある。この限界を解決するために、電子の電荷の自由度とスピンの自由度の両方を利用した相乗効果により、この限界を打破しようというスピントロニクス技術が注目されている。
【０００３】
スピントロニクス素子の代表例が磁気抵抗素子（ＭＴＪ（Magnetic Tunnel Junction）素子）である。典型的なＭＴＪ素子においては、磁化が一方向に固定された固定磁性層（磁化固定層ともいう）と、二方向に磁化方向が変化する自由磁性層（磁化自由層ともいう）を用い、これら磁性層の間にトンネルバリア層が形成される。１ビットの情報（０／１）は、自由磁性層の磁化に割り当てられ、二枚の磁性層の磁化が互いに平行（同じ向き）になる場合、トンネルバリア層を通過するトンネル電流が増加し（低抵抗状態）、逆に反平行（反対の向き）になる場合、トンネル電流は減少（高抵抗状態）する性質を利用して情報を取り出すことができる。ＭＴＪ素子にある一定以上の磁場を印加する、あるいはスピン偏極電流を流すことにより、自由磁性層の磁化方向を反転させることで１ビットの情報を書き換える。
【０００４】
ＭＴＪ素子は二端子素子（図１）と三端子素子（図２）に大別される。図１の二端子素子の場合、固定磁性層の磁化と自由磁性層の磁化が（ａ）平行状態（低抵抗状態）の時に、（ｂ）下部電極ｎ２から上部電極ｎ１の方向に電流を流すと（電流の符号は負と定義する）、自由磁性層の磁化が反転して（ｃ）反平行状態（高抵抗状態）となる。逆に、（ｃ）反平行状態の時に、（ｄ）上部電極ｎ１から下部電極ｎ２の方向に電流を流すと（電流の符号は正と定義する）、自由磁性層の磁化が反転して（ａ）平行状態（低抵抗状態）になる。
【０００５】
三端子素子はさらに磁場書込み方式と磁壁移動方式による構造のバリエーションが考えられるが、図２では磁壁移動方式によるＭＴＪ素子構造を例示している。上部電極ｎ１は固定磁性層と接続され、自由磁性層の両端にそれぞれ下部電極ｎ２０とｎ２１を有しており、電極ｎ２０の上部磁性層は紙面に対し左向きに磁化が固定化され、電極２１の上部磁性層は紙面に対し右向きに磁化が固定化されているとする（図示されていない）。固定磁性層の磁化と自由磁性層の磁化が（ａ）平行状態（低抵抗状態）の時に、（ｂ）下部電極ｎ２１からｎ２０の方向に電流を流すと（電流の符号は負と定義する）、自由磁性層の左側（ｎ２０側）にあった磁壁が右側（ｎ２１側）へ移動して（ｃ）反平行状態（高抵抗状態）となる。逆に、（ｃ）反平行状態の時に、（ｄ）下部電極ｎ２０からｎ２１の方向に電流を流すと（電流の符号は正と定義する）、自由磁性層の右側（ｎ２１）側にあった磁壁が左側（ｎ２０側）に移動して（ａ）平行状態になる。
【０００６】
このスピントロニクスの分野では、ＭＴＪ素子を半導体デバイスに応用し、ＤＲＡＭ(Dynamic Random Access Memory)に変わる大容量で高速、かつ不揮発性を兼ね備えた従来に存在しない性能を実現できる可能性のある磁気ランダムアクセスメモリ（ＭＲＡＭ：Magnetic Random Access Memory）が実用化段階に入っている。ＭＲＡＭは従来の半導体メモリを不揮発化しようという試みであるが、さらに従来の論理回路にもＭＴＪ素子を組み込んで演算機能と不揮発メモリ機能を同時に実現しようという試みも盛んである。例えば、非特許文献１でＭＴＪ素子が持つビット情報と、電圧で入力されるビット情報とを論理演算するスピントロニクスの要素論理回路が開示されている。このような様々なスピントロニクス要素論理回路が複雑に結線されて、より大規模で複雑な演算を、従来のＣＭＯＳ(Complementary Metal Oxide Semiconductor)回路に比べて小面積で、且つ省電力で実現することができる。さらに、論理回路内部の論理情報は不揮発性であるので、電源切断前の演算結果が消失しない。よって、データバスにおける情報の転送量を削減できることによる高性能化と省電力化や、電源を高頻度に切断して近年増加の一途をたどる非動作時のリーク電流をゼロにでき、従来実現が困難であった低電力設計を可能にする技術としても期待されている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】“Ｆａｂｒｉｃａｔｉｏｎ  ｏｆ  ａ  Ｎｏｎｖｏｌａｔｉｌｅ  Ｆｕｌｌ  Ａｄｄｅｒ  Ｂａｓｅｄ  ｏｎ  Ｌｏｇｉｃ−ｉｎ−Ｍｅｍｏｒｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｕｓｉｎｇ  Ｍａｇｎｅｔｉｃ  Ｔｕｎｎｅｌ  Ｊｕｎｃｔｉｏｎｓ”，Ａｐｐｌｉｅｄ  Ｐｈｙｓｉｃｓ  Ｅｘｐｒｅｓｓ  １  ０９１３０１，  ２００８．
【非特許文献２】“Ｉｎｓｐｅｃｔｉｏｎ  ｏｆ  Ｉｎｔｒｉｎｓｉｃ  Ｃｒｉｔｉｃａｌ  Ｃｕｒｒｅｎｔｓ  ｆｏｒ  Ｓｐｉｎ−Ｔｒａｎｓｆｅｒ  Ｍａｇｎｅｔｉｚａｉｏｎ  Ｓｗｉｔｃｈｉｎｇ”，ＩＥＥＥ  ＴＲＡＮＳＡＣＴＩＯＮＳ  ＯＮ  ＭＡＧＮＥＴＩＣＳ，ＶＯＬ．４１，ＮＯ．１０，Ｏｃｔｏｂｅｒ  ２００５．
【発明の概要】
【発明が解決しようとする課題】
【０００８】
スピントロニクス素子を組み込んだ論理集積回路を設計するには、回路が仕様通りに動作するか回路シミュレータでシミュレーションして確認する必要がある。しかし、現在流通している商用の回路シミュレータ（一般にＳＰＩＣＥと呼ばれる）は、トランジスタや抵抗、容量、インダクタのモデルには対応するものの、ＭＴＪ素子のモデルに対応するものは存在しない。従って、ＭＴＪ素子の磁化反転過程、及び、抵抗特性を理想電源や理想トランジスタ（あるいは理想スィッチ）等を使って等価回路を作成し、それをサブサーキットとして利用する方法が考えられる。この方法では、１つのＭＴＪ素子を再現するのに数１０素子を要し、さらに端子数も数１０に達する。このため、計算量が著しく増大し、シミュレーション時間が爆発的に増加してしまう。よって、大規模な論理演算回路の設計に適用することが困難である。
【０００９】
また、上記の簡易的なＭＴＪ素子のサブサーキット・モデルでは、実デバイス上の諸特性が様々なパラメータによってアナログ的に変化する振る舞いを完全に模擬することが不可能である。例えば、ＭＴＪ抵抗値が両端電圧によって変化するバイアス依存性や温度依存性、また、磁化反転に要する電流値が書込み電流のパルス幅や温度によって変化すること等があげられる。このＭＴＪ素子特有の諸特性が高精度にモデル化されていないと、致命的な回路設計ミスを起こしかねない。例えば、動作電圧や温度を保証する設計が困難になったり、電流パルス幅が適切でないために書込み動作が不安定になる等、動作不良を未然に防ぐ設計をすることが困難である。このように、ＭＴＪ素子を実素子の特性に合わせて忠実に再現できるモデル化を行い、そのモデルを回路シミュレータに組み込んで高速にシミュレーションできるようにすることはスピントロニクス論理集積回路を設計する上で必要不可欠な技術である。しかし、磁化反転に係る過渡応答については、スピントロニクス分野の物理的な動作原理を、エレクトロニクス分野（電荷モデル）による計算手法を組み込んだ従来の回路シミュレータに組み込むのは多大な開発期間と費用を要してしまう。
【００１０】
本発明は、回路シミュレーションのための抵抗変化素子の動作モデルを高精度に実現し、シミュレーション時間のオーバヘッドを少なくすることのできる、抵抗変化素子、及び、抵抗変化素子を含む回路の動作をシミュレーションする方法を提供する。
【課題を解決するための手段】
【００１１】
本発明によれば、ＭＴＪ素子等の抵抗変化素子に供給される書込み電流（あるいは電圧）を任意の時間刻み毎に計測し、上記書込み電流（電圧）によって時間刻み毎に変化する時定数を定義し、その時定数を用いて抵抗変化素子の抵抗値が変化するのに要する時間（書き込み時間）を計算することを含む抵抗変化素子の動作をシミュレーションする方法が得られる。
【００１２】
また、一実施形態では、シミュレーションする方法は、書込み電流（電圧）から計算される前記時定数を有するＲＬＣ回路を仮想的に定義し、前記ＲＬＣ回路に用いられる抵抗素子、容量素子、インダクタ素子の内、少なくとも一素子のパラメータを前記時定数に基づいて変化させることを含む。
【００１３】
また、一実施形態では、シミュレーションする方法は、前記書込み電流（電圧）が任意のしきい値を超えた場合に、前記ＲＬＣ回路へステップ波形を入力し、前記しきい値を下回った場合に、前記ステップ入力を停止することを含む。
【００１４】
また、一実施形態では、シミュレーションする方法は、上記ＲＬＣ回路出力のステップ応答から抵抗値を変化させるか否かを判定することを含む。
【００１５】
また、一実施形態では、前記書込み電流（電圧）が任意のしきい値よりも大きい場合に、書込み電流（電圧）から前記時定数を計算し、前記しきい値よりも小さい場合は、予め規定された時定数に設定される。
【００１６】
また、一実施形態では、上記しきい値を複数有し、上記書込み電流（電圧）と複数のしきい値との大小関係によってそれぞれ異なる計算式によって上記時定数が計算される。
【００１７】
また、本発明によれば、ＭＴＪ素子等の抵抗変化素子に供給される書込み電流（あるいは電圧）を任意の時間刻み毎に計測し、上記書込み電流（電圧）によって時間刻み毎に変化する時定数を定義し、その時定数を用いて抵抗変化素子の抵抗値が変化するのに要する時間（書き込み時間）を計算することを含む抵抗変化素子の動作をシミュレーションする方法をコンピュータで実行するためのプログラムが得られる。
【００１８】
また、本発明によれば、抵抗変化素子に供給される書込み電流（あるいは電圧）を任意の時間刻み毎に計測し、前記書込み電流（電圧）によって時間刻み毎に変化する時定数を定義し、前記時定数を用いて前記抵抗変化素子の抵抗値が変化するのに要する時間（書き込み時間）を計算することを含む抵抗変化素子の動作をシミュレーションする回路シミュレータが得られる。
【発明の効果】
【００１９】
本発明は、ＭＴＪ素子等の抵抗変化素子の磁化反転に要する電流値と時間との依存性が含まれるようにモデル化したものであって、このモデルは従来の回路シミュレータに組み込み易い。さらに、本発明によって高速、且つ、高精度に抵抗変化素子及び抵抗変化素子を含む回路の動作をシミュレーションすることができる。
【図面の簡単な説明】
【００２０】
【図１】スピン注入磁化反転方式による二端子ＭＴＪ素子の動作原理を示す図である。
【図２】磁場書込み、あるいは磁壁移動方式による三端子ＭＴＪ素子の動作原理を示す図である。
【図３】典型的な書込み電流値と磁化反転時間の依存性を示すチャートで、図において、線（１ｔ）は熱アシストモデル、線（２ｓ）はスピントルク効果モデルを示す。
【図４】本発明による磁化反転時間の計算方法の概略を示す図である。
【図５】本発明の第一実施例における磁化反転時間の計算アルゴリズムのフローチャートである。
【図６】本発明の第一実施例における磁化反転計算アルゴリズムを適用した過渡応答の回路シミュレーションのイメージを示す図である。
【図７】磁化反転の過渡応答シミュレーションを示し、（ａ）は、書込み電流がなまり波形の場合  （ｂ）は、書込み電流がリンギング波形の場合を示す。
【図８】本発明の第二実施例における磁化反転時間の計算アルゴリズムのフローチャートである。
【図９】第二実施例による磁化反転の過渡応答シミュレーションを示す。
【発明を実施するための形態】
【００２１】
本発明の実施形態を説明する前に、典型的なＭＴＪ素子における磁化反転電流と時間の関係について詳述する。図３は非特許文献２に記載の磁化反転電流（本文献では臨界電流ＩＣと称している）と磁化緩和時定数τｐの関係を図示したものである。図３の（１ｔ）の線は、熱アシストモデルによる臨界電流ＩＣを示しており、次式で表される。
【００２２】
ＩＣ＝ＩＣ０｛１−（ｋＢＴ／Ｅ）ｌｎ（τＰ／τ０）｝     （１）
ここで、ｋＢはボルツマン定数、Ｔは絶対温度、Ｅはエネルギーバリア、τ０は熱反転における試行時間（〜１ｎｓ）である。スピン注入磁化反転方式の場合は、τＰが２０ｎｓ程度以上の場合において（１）式が実測値に良く合致することが知られている。
【００２３】
また、印加磁場による磁化反転方式の場合は、
ＩＣ＝ＩＣ０［｛１−（ｋＢＴ／Ｅ）ｌｎ（τＰ／τ０）｝０．５］     （１’）
のように変形され、τＰが数ｎｓ程度以上の場合において（１’）式が実測値に良く合致することが知られている。
【００２４】
さらに、図３の（２ｓ）の線は、スピン注入方式におけるスピントルク効果モデルによる臨界電流ＩＣを示しており、次式で表される。
【００２５】
ＩＣ＝ＩＣ０［１＋（τｒｅｌａｘ／τＰ）・ｌｎ｛π／（２√（ｋＢＴ／Ｅ））｝］    （２）
ここで、τｒｅｌａｘは磁気モーメントの緩和時間である。図３に示すように、τＰが２０ｎｓ程度以下の場合において（２）式が実測値に良く合致することが知られている。
【００２６】
磁化反転電流と電流印加時間（電流パルス幅）依存性を調べる実験においては、電流パルス幅ｔW（＝τＰ）に対して磁化反転確率が６３％となる電流値Ｉｗ（＝ＩＣ）を調査する。即ち、図３のＡ線の方向で計測が行われる。しかし、回路シミュレーションを行う際には、ＭＴＪ素子に流れる書込み電流ＩＷをモニタしながら磁化反転に要する時間ｔWを計算（図３のＢ線の方向）する必要がある。本発明は、モデル化された物理パラメータから磁化反転時間ｔWを高精度に効率よく計算するためのアルゴリズムに係るものであり、以下、実施の形態を図面に基づいて説明する。
【第一実施例】
【００２７】
本発明による回路シミュレータにおけるＭＴＪ素子の磁化反転時間を計算するアルゴリズムについて、図４を用いながら説明する。先述したように、臨界電流ＩＣは磁化反転緩和時定数τＰの式で表される。即ち、（１）〜（２）式を緩和時定数τＰを臨海電流ＩＣの式で表すと、それぞれ以下のようになる。
【００２８】
τＰ＝τ０・ｅｘｐ［（Ｅ／ｋＢＴ）｛１−（ＩＣ／ＩＣ０）｝ｎ］     （３）
τＰ＝τｒｅｌａｘ・ｌｎ｛π／（２√（ｋＢＴ／Ｅ））｝／｛（ＩＣ／ＩＣ０）−１｝    （４）
ここで、（３）式は（１）式、及び、（１’）式から導出された熱アシストモデルにおける逆算式であり、スピン注入素子の場合はｎ＝１、磁場書き方式の素子の場合はｎ＝２とする。（４）式は（２）式から導出されたスピントルク効果モデルにおける逆算式である。
【００２９】
回路シミュレーションにおいて、ＭＴＪ素子に流れる電流ＩＷを（３）式、（４）式のＩＣとして代入して得られるτＰの値は、電流ＩＷが素子に印加された時刻からτＰ経過すると、磁化反転確率が６３％となることを表している。即ち、電流印加時刻から時間ｔ経過した時の磁化反転確率Ｐは次式のようになる。
【００３０】
Ｐ＝１−ｅｘｐ（−ｔ／τＰ）     （５）
もし、図４に示すＲＣ回路の時定数をτPと等しくすれば、そのステップ応答は磁化反転確率と等価的に見ても差し支えない。従って、任意の書込み電流ＩＷがＭＴＪ素子に印加された場合の磁化反転時間の計算アルゴリズムはおよそ以下のようになる。
【００３１】
（ｉ）ＩＷが任意のしきい値電流（Ｉｃ＿ｍｉｎ）を越えるとステップ入力をＲＣ回路に印加する。ここで、しきい値電流Ｉｃ＿ｍｉｎは式（１）においてτＰが１秒程度の時のＩＣの値を設定する。 
（ｉｉ）（３）式、あるいは（４）式からτＰを求め、τＰ＝ＲＰＲＢ・ＣＰＲＢからＲＰＲＢとＣＰＲＢの値を決定する。 
（ｉｉｉ）ＲＣ回路の出力電圧が任意のしきい値を越えると磁化反転したとみたて、ＭＴＪ素子抵抗値を変化させる。
【００３２】
回路シミュレーションで過渡応答を計算する場合、時間刻みΔｔで変化する時刻毎に上記（ｉ）〜（ｉｉｉ）のアルゴリズムに基づいて計算を行う。より詳細な計算アルゴリズムを図５に示す。ここで、シミュレーション上の時刻ｔ０からｔ１＝ｔ０＋Δｔに変化したと仮定する（Ａ０）。また、書込み電流値ＩＷは書込みデータに応じて正負の符号を持つが、平行化、及び反平行化のいずれの場合も同じ計算フローであるため、図５では絶対値として取り扱うこととする。
【００３３】
時刻ｔ１において、ＭＴＪ素子に流れる書込み電流値｜ＩＷ（ｔ１）｜が任意のしきい値電流値｜Ｉｃ＿ｍｉｎ｜よりも大きいか否かを比較する（Ａ１）。もし、書込み電流値がしきい値電流値よりも大きい場合はＲＣ回路にステップ入力、即ち、｜ＶＲＣＩＮ（ｔ１）｜＝｜ＶＨ｜の電圧を印加する（Ａ２）。同時に、τPの算出を行い（Ａ３）、ＲＰＲＢ（ｔ１）、あるいはＣＰＲＢ（ｔ１）の値を変更する（Ａ４）。ＲＣ回路のステップ応答が任意のしきい値電圧｜ＰＴＨ｜に対して、｜ＶＲＣＯＵＴ（ｔ０）｜＜｜ＰＴＨ｜  かつ、｜ＶＲＣＯＵＴ（ｔ１）｜≧｜ＰＴＨ｜であれば（Ａ５）、ＭＴＪ素子の磁化を反転させる（Ａ６）。
【００３４】
上記Ａ１の分岐で、もし書込み電流値がしきい値電流値よりも小さい場合はＲＣ回路にステップ入力を印加しない。即ち、｜ＶＲＣＩＮ（ｔ１）｜＝｜ＶＬ｜＝０Ｖのままである（Ｂ２）。また、τＰは磁化反転しない固有の時定数τＮＯＳＷに設定され（Ｂ３）、その時定数に応じてＲＰＲＢ（ｔ１）、あるいはＣＰＲＢ（ｔ１）を変更する（Ｂ４）。この場合、磁化反転はさせず磁化状態を保持する。
【００３５】
図６は、図５のフローチャートに基づいて過渡応答をシミュレーションした場合の概略図を示している。ＭＴＪ素子の磁化を平行化するため、時刻Ｔ０からＴ１の期間において書込み電流パルスＩＷ０を正の方向に印加している。さらに、磁化を反平行化するために時刻Ｔ２からＴ３の期間において書込み電流パルスＩＷ１を負の方向に印加している。
【００３６】
時刻Ｔ０においてＩＷ０＞Ｉｃ＿ｍｉｎ０であるから、（３）式よりτＰ０が計算され、ＲＰＲＢ（ＣＰＲＢは固定値と仮定）が計算される。（τＰ０とＲＰＲＢはシミュレーション時間刻み毎に再計算され更新される。）さらに時刻Ｔ０において、ＲＣ回路にステップ波形（ＶＲＣＩＮ＝１Ｖ）が入力される。ＲＣ回路のステップ応答ＶＲＣＯＵＴが、予め規定されたしきい値ＰＴＨよりも大きくなるタイミング（時刻ＴＲ０）でＭＴＪ素子の磁化を反転させ、ＭＴＪ素子抵抗は低抵抗のＲＰとなる。時刻Ｔ１に達すると、書込み電流の供給が停止され（ＩＷ０＞Ｉｃ＿ｍｉｎ０）、ＲＣ回路の時定数は予め規定されたτＮＯＳＷに設定される。同時にＲＣ回路へ入力されていたステップ波形が停止となる（ＶＲＣＩＮ＝０Ｖ）。
【００３７】
時刻Ｔ２においてＩＷ１＜−Ｉｃ＿ｍｉｎ１であるから、（３）式よりτＰ１が計算され、ＲＰＲＢが計算される。さらに時刻Ｔ２において、ＲＣ回路にステップ波形（ＶＲＣＩＮ＝−１Ｖ）が入力され、そのステップ応答ＶＲＣＯＵＴが、予め規定されたしきい値−ＰＴＨよりも小さくなるタイミング（時刻ＴＲ１）でＭＴＪ素子の磁化を反転させ、ＭＴＪ素子抵抗は高抵抗のＲＡＰとなる。時刻Ｔ３に達すると、書込み電流の供給が停止され（ＩＷ０＜−Ｉｃ＿ｍｉｎ１）、ＲＣ回路の時定数は予め規定されたτＮＯＳＷに設定される。同時にＲＣ回路へ入力されていたステップ波形が停止となる（ＶＲＣＩＮ＝０Ｖ）。
【００３８】
以上、本発明によるＭＴＪ素子の磁化反転を組み込んだ過渡応答シミュレーションの計算アルゴリズムを説明したが、図６の例では書込み電流波形が単純なパルス波形であった。実際には、図７に示すように電流波形の立ち上がりがなまっていたり、リンギング波形であったりする。本計算アルゴリズムでは、シミュレーション時間刻み毎に時定数τＰを変化させることが可能であるから、電流波形形状による磁化反転時間を正確に計算することが可能である。
【００３９】
また、先述したサブサーキット・モデルを用いた場合は一つのＭＴＪ素子につき計算を要する端子数が数１０端子にも及んだ。本発明による計算方法によれば、計算を要する端子数の増分をわずか２端子（図４では、VRCINとVRCOUT）に抑えられるため、大規模な回路シミュレーションにも適用できる。さらに、図４のＲＣ回路の過渡応答式をプログラムに組み込むことでさらに高速化を図ることが可能である。
【第二実施例】
【００４０】
先の第一実施例では、磁化反転が数１０ｎｓの領域である熱アシストモデル（図３の（１ｔ）の特性）、及び、式（１）、（３）に基づいて説明を行った。スピン注入方式のＭＴＪ素子の場合は、磁化反転が数ｎｓである領域はスピントルク効果モデルも考慮する必要がある。即ち、回路シミュレーションの計算過程、具体的にはτＰの計算において、書込み電流値によって式（３）と式（４）を使い分ける必要がある。この場合の計算アルゴリズムを図８に示す。また、書込み電流値ＩＷは書込みデータに応じて正負の符号を持つが、平行化、及び反平行化のいずれの場合も同じ計算フローであるため、図８では絶対値として取り扱うこととする。
【００４１】
図８に示すように、本実施例では書込み電流値が｜Ｉｃ＿ｍｉｎ｜よりも大きいか否かだけではなく、式（２）の｜ＩＣ０｜よりも大きいか否かもモニタする。時刻ｔ１において書込み電流値｜ＩＷ（ｔ１）｜≧｜Ｉｃ＿ｍｉｎ｜である場合（Ａ１）、ＲＣ回路にステップ入力、即ち、｜ＶＲＣＩＮ（ｔ１）｜＝｜ＶＨ｜の電圧を印加する（Ａ２）。さらに、｜ＩＷ（ｔ１）｜≧｜ＩＣ０｜である場合（Ａ７）、スピントルク効果モデルの式（４）を使ってτＰを計算する（Ａ３’）。もし、｜ＩＷ（ｔ１）｜＜｜ＩＣ０｜であれば、熱アシストモデルの式（３）を使ってτＰを計算する（Ａ３）。その後の計算フロー（Ａ４〜Ａ６）は第一実施例と同じであるので説明を省略する。また、ステップＡ１で｜ＩＷ（ｔ１）｜＜｜Ｉｃ＿ｍｉｎ｜であった場合の計算フロー（Ｂ２〜Ｂ６））についても第一実施例と同じであるため説明を省略する。
【００４２】
本実施例の計算アルゴリズムによると、過渡応答シミュレーションにおける磁化反転時間ｔＷの精度がさらに向上する。例えば、図９のように書込み電流波形が変化した場合を考える。時刻Ｔ０からＴ１の期間は、書込み電流値ＩＷはＩｃ＿ｍｉｎよりも大きく、且つ、ＩＣ０よりも小さいので熱アシストモデルの式（３）からτＰが計算される。時刻Ｔ１からＴ２の期間は、ＩＷはＩＣ０よりも大きくなるのでスピントルク効果の式（４）からτＰが計算される。時刻Ｔ２からＴ３の期間は、ＩＷはＩｃ＿ｍｉｎよりも大きく、且つ、ＩＣ０よりも小さいので熱アシストモデルの式（３）からτＰが計算される。図９の実線は、この方法によって計算されるτＰを表し、点線は第一実施例によるτＰを表している。本実施例による計算方法では、ＩＷ≧ＩＣ０の条件下（時刻Ｔ１−Ｔ２）において、式（４）から計算されるτＰスピンが、式（３）から計算されるτＰ熱よりも大きい値になる。即ち、ＩＷ≧ＩＣ０の条件下では磁化反転特性がスピントルク効果に支配的になる図３の特性に合っていることを意味しており、シミュレーション精度が向上する。
【００４３】
本発明の実施例によれば、回路シミュレーションのためのＭＴＪ素子の動作モデルを高精度に実現でき、且つ、シミュレーション時間のオーバヘッドを最小限にする計算アルゴリズムが得られ、さらに、ＭＴＪ素子モデルを適用できる回路シミュレータを最小限のプログラム変更で実現できる。
【００４４】
本発明は上記実施例に限定されず、本発明の技術思想の範囲内において、各実施例は適宜変更され得ることは明らかである。例えば、上述の実施例は二端子のＭＴＪ素子（図１）を例に説明したが、図２に記載の三端子のＭＴＪ素子は書込み電流経路が異なるだけであり、この素子への適用も本発明の範囲内にあることは明確である。また、上述の実施例では、書込み電流（電圧）から計算される時定数を有するＲＣ回路を仮想的に定義し、ＲＣ回路に用いられる抵抗素子、容量素子の内、少なくとも一素子のパラメータを前記時定数に基づいて変化させることにしたが、ＲＣ回路は、ＲＬＣ回路であってもよい。この場合、ＲＬＣ回路に用いられる抵抗素子、容量素子、インダクタ素子の内、少なくとも一素子のパラメータを前記時定数に基づいて変化させる。
【００４５】
上述した実施例の一部又は、全部は、以下の付記のようにも記載できるが、これらには限らない。
【００４６】
（付記１）抵抗変化素子の動作をシミュレーションする方法であって、前記抵抗変化素子に供給される書込み電流（あるいは電圧）を任意の時間刻み毎に計測し、前記書込み電流（電圧）によって時間刻み毎に変化する時定数を定義し、前記時定数を用いて前記抵抗変化素子の抵抗値が変化するのに要する時間（書き込み時間）を計算する回路シミュレータの計算アルゴリズムによって抵抗変化素子の動作をシミュレーションする方法。
【００４７】
（付記２）前記回路シミュレータの計算アルゴリズムは、書込み電流（電圧）から計算される前記時定数を有するＲＬＣ回路を仮想的に定義し、前記ＲＬＣ回路に用いられる抵抗素子、容量素子、インダクタ素子の内、少なくとも一素子のパラメータを前記時定数に基づいて変化させることを特徴とする付記１記載の抵抗変化素子の動作をシミュレーションする方法。
【００４８】
（付記３）前記回路シミュレータの計算アルゴリズムは、  前記書込み電流（電圧）が任意のしきい値を超えた場合に、前記ＲＬＣ回路へステップ波形を入力し、前記しきい値を下回った場合に、前記ステップ入力を停止することを特徴とする付記２記載の抵抗変化素子の動作をシミュレーションする方法。
【００４９】
（付記４）前記回路シミュレータの計算アルゴリズムは、前記ＲＬＣ回路出力のステップ応答から抵抗値を変化させるか否かを判定することを特徴とする付記３記載の抵抗変化素子の動作をシミュレーションする方法。
【００５０】
（付記５）前記回路シミュレータの計算アルゴリズムは、前記書込み電流（電圧）が任意のしきい値よりも大きい場合に、書込み電流（電圧）から前記時定数を計算し、前記しきい値よりも小さい場合は、予め規定された時定数に設定されることを特徴とする付記２記載の抵抗変化素子の動作をシミュレーションする方法。
【００５１】
（付記６）前記回路シミュレータの計算アルゴリズムは、前記しきい値を複数有し、前記書込み電流（電圧）と複数のしきい値との大小関係によってそれぞれ異なる計算式によって前記時定数が計算されることを特徴とする付記５記載の抵抗変化素子の動作をシミュレーションする方法。
【００５２】
（付記７）前記抵抗変化素子が磁気抵抗素子（ＭＴＪ素子）であることを特徴とする付記１記載の抵抗変化素子の動作をシミュレーションする方法。
【００５３】
（付記８）前記回路シミュレータの計算アルゴリズムは、書込み電流（電圧）から計算される前記時定数を有するＲＣ回路を仮想的に定義し、前記ＲＣ回路に用いられる抵抗素子、容量素子の内、少なくとも一素子のパラメータを前記時定数に基づいて変化させることを特徴とする付記１記載の抵抗変化素子の動作をシミュレーションする方法。
【００５４】
（付記９）前記回路シミュレータの計算アルゴリズムは、前記書込み電流（電圧）が任意のしきい値を超えた場合に、前記ＲＣ回路へステップ波形を入力し、前記しきい値を下回った場合に、前記ステップ入力を停止することを特徴とする付記８記載の抵抗変化素子の動作をシミュレーションする方法。
【００５５】
（付記１０）付記１乃至９のいずれか１に記載の抵抗変化素子の動作シミュレーション方法によって抵抗変化素子の抵抗値を変化させるタイミングを計算する回路シミュレータ・プログラム。
【００５６】
（付記１１）前記回路シミュレータの計算アルゴリズムは、前記ＲＣ回路出力のステップ応答から抵抗値を変化させるか否かを判定することを特徴とする付記８記載の抵抗変化素子の動作をシミュレーションする方法。
【００５７】
（付記１２）抵抗変化素子に供給される書込み電流（あるいは電圧）を任意の時間刻み毎に計測し、前記書込み電流（電圧）によって時間刻み毎に変化する時定数を定義し、前記時定数を用いて前記抵抗変化素子の抵抗値が変化するのに要する時間（書き込み時間）を計算することを含む抵抗変化素子の動作をシミュレーションする回路シミュレータ。
【図１】
0005793805.tif 000002
【図２】
0005793805.tif 000003
【図３】
0005793805.tif 000004
【図４】
0005793805.tif 000005
【図５】
0005793805.tif 000006
【図６】
0005793805.tif 000007
【図７】
0005793805.tif 000008
【図８】
0005793805.tif 000009
【図９】
0005793805.tif 000010