以下、本発明の実施の形態を、図面を参照して詳細に説明する。
(第1の実施の形態)
最初に、第1の実施の形態であるシミュレーション装置、シミュレーション方法、及び、そのシミュレーション方法を使用した抵抗変化メモリ回路の設計支援方法を図1乃至図23を用いて説明する。
先ず、抵抗変化メモリ素子の回路構成の基本構成について説明する。
図1は抵抗変化メモリ素子に相当するサブサーキットの中身を表す回路図である。
この図に示す回路は、可変抵抗部10、遅延電位発生部30、記憶部20を含む構成をしている。そして、この回路では、抵抗変化メモリ素子の状態、即ち高抵抗状態か低抵抗状態かの情報を、記憶部20の記憶ノードrinで表す。
可変抵抗部10は、高抵抗素子R11、低抵抗素子R12、抵抗素子R13、抵抗素子R14、ノードbl及びノードglを含む構成をし、ノードblとノードglとの間に高抵抗素子R11と抵抗素子R13とが直列に接続されている。また、ノードblとノードglとの間に低抵抗素子R12と抵抗素子R14とが直列に接続されている。
高抵抗素子R11は、高抵抗状態の抵抗変化メモリ素子の特性を表し、自分自身にかかる電圧によって抵抗値が変わる電圧依存抵抗である。
低抵抗素子R12は、低抵抗状態の抵抗変化メモリ素子の特性を表す素子である。低抵抗素子R12は、自分自身にかかる電圧によって抵抗値が変わる電圧依存抵抗であっても、自分自身にかかる電圧によって抵抗値が変わらない一定抵抗でもよい。一定抵抗とした場合は、低抵抗素子R12は、例えば4kΩが適する。
一方、記憶部20は、高電位電源ノードvddr、低電位電源ノードvssr、記憶ノードrin、リセッタスイッチ及びリセッタ負荷抵抗素子として機能する抵抗素子R21、セッタスイッチとして機能する抵抗素子R23及びキャパシタC24を含む構成をし、高電位電源ノードvddrと低電位電源ノードvssrとの間に、抵抗素子R21及び抵抗素子R23が直列に接続されている。そして、記憶ノードrinと低電位電源ノードvssrとの間には、キャパシタC24が接続されている。
ここで、抵抗素子R21及び抵抗素子R23は、2つのノードbl−ノードgl間の電圧に依存する電圧依存抵抗である。
また、抵抗素子R21は、2つのノードbl−ノードgl間の電圧がリセット電圧以上セット電圧以下となった場合に、抵抗値がある程度低い値になり、それ以外の場合は、非常に高い抵抗(開放状態)になる。
そして、記憶ノードrinの電位は、抵抗素子R21及び抵抗素子R23の抵抗値を変化させることにより、変化する。
遅延電位発生部30は、遅延素子31とノードdtmo、低電位電源ノードvssrを含む構成をしている。遅延素子31は、セット後にリセットが起きやすい状態になることを防ぐための素子である。遅延素子31は、2つのノードbl−ノードgl間の電圧をある程度短い遅延を持たせてノードdtmoの電位にコピーする。
このサブサーキッドについては、その動作を容易に理解するために、別の図面を用いて説明する。
図2は抵抗変化メモリ素子に相当する回路図である。図2は、図1に示す抵抗変化メモリ素子に相当するサブサーキットの中身がより具体的に説明され、第1の実施の形態のシミュレーション装置の基本原理が示されている。尚、この図においては、シミュレーション装置の基本原理を容易に理解するためにスイッチ機能のある抵抗素子を直接スイッチ素子として表記している。
図2に示す回路は、抵抗変化メモリ素子の基本構成を表しており、抵抗変化メモリ素子は、可変抵抗部10と記憶部20を含む構成をしている。
そして、この記憶部20は、記憶を保持し、可変抵抗部10に印加される電圧等の情報に応じて、状態と記憶内容を変化する機能を有する。また、可変抵抗部10は、記憶部20の記憶ノードrinの電位によって、2つのノードbl−ノードgl間の抵抗値が変化する機能を有する。
従って、記憶部20は、可変抵抗部10によって制御され、可変抵抗部10は、記憶部20によって制御されている。そして、抵抗変化メモリ素子が高抵抗状態にあるのか、或いは低抵抗状態にあるのかの情報を記憶部20の記憶ノードrinで表している点に特徴がある。即ち、可変抵抗部10が高抵抗状態或いは低抵抗状態にあるかを記憶ノードrinの電位で制御している。
次に、記憶部20及び可変抵抗部10の回路を構成する部材について説明する。
記憶部20は、高電位電源ノードvddr、低電位電源ノードvssr、記憶ノードrin、リセッタスイッチSW21、リセッタ負荷抵抗素子R22、セッタスイッチSW23、記憶保持用の一定の容量を有するキャパシタC24を含む構成をしている。高電位電源ノードvddr、リセッタスイッチSW21、リセッタ負荷抵抗素子R22、セッタスイッチSW23及び低電位電源ノードvssrは直列に接続されている。
セッタスイッチSW23は、セットの電圧条件が満たされるとき導通する。一方、リセッタスイッチSW21は、リセットの条件が満たされるときに導通する。その条件を満たすか満たさないかは、可変抵抗部10の2つのノードbl−ノードgl間に印加される電圧によって決定される。このように、記憶部20は、可変抵抗部10によって制御されている。
ここで、セットの電圧条件が満たされるとは、例えば、2つのノードbl−ノードgl間の電圧が、セット電圧以上である場合を言う。セットの条件が満たされると、セッタスイッチSW23が導通し、記憶ノードrinの電位が低電位電源ノードvssrと同じになる。
また、リセットの電圧条件が満たされるとは、例えば、2つのノードbl−ノードgl間の電圧が、リセット電圧以上セット電圧以下である場合を言う。リセットの条件が満たされると、リセッタスイッチSW21が導通し、記憶ノードrinの電位が高電位電源ノードvddrの電位まで上昇する。
但し、リセッタスイッチSW21が導通した直後においては、記憶ノードrinの電位は、直ぐには高電位電源ノードvddrの電位と同じにはならない。何故なら、記憶部20には、リセッタ負荷抵抗素子R22及びキャパシタC24が存在するからである。この場合の記憶ノードrinの電位変化は、リセッタ負荷抵抗素子R22及びキャパシタC24の時定数によって決定される(後述)。
ここで、時定数とは、リセッタ負荷抵抗素子R22の抵抗値とキャパシタC24の容量の積である。従って、リセッタ負荷抵抗素子R22とキャパシタC24を調整することにより、時定数が変化し、リセットに要する時間を調整することができる。
上述したように、単極性抵抗変化メモリ素子の場合、高抵抗状態から低抵抗状態に移行するセットに要する時間は短く、低抵抗状態から高抵抗状態に移行するリセットに要する時間は長い。従って、実際の単極性抵抗変化メモリ素子の性質と類似させるために、図2に示す回路では、可変抵抗部10の他に記憶部20を設け、セットにかかる時間を一瞬とし、リセットにかかる時間のみをRC積を利用して、低抵抗状態と高抵抗状態の切り替えを調整可能にしている。
尚、セットの条件、リセットの条件のいずれも満たさない場合は、セッタスイッチSW23及びリセッタスイッチSW21がいずれも導通しない。この場合は、キャパシタC24によって所定の電位に保持されるとする。
次に、可変抵抗部10は、高抵抗状態の抵抗変化メモリ素子を表す高抵抗素子R11、低抵抗状態の抵抗変化メモリ素子を表す低抵抗素子R12、高抵抗状態を選択するスイッチSW13、低抵抗状態を選択するスイッチSW14を含む構成をしている。
スイッチSW13、スイッチSW14は、記憶部20の記憶ノードrinの電位に応じて、常にどちらか一方のスイッチが導通される。このように、可変抵抗部10は、記憶部20によって制御されている。
ここで、スイッチSW13またはスイッチSW14のいずれかを記憶ノードrinの電位に応じて選択する制御は、例えば、記憶ノードrinの電位に、ある基準電位Vthを設け、記憶ノードrinの電位が基準電位Vthより高い場合にノードbl−ノードgl間の抵抗を高抵抗に、記憶ノードrinの電位が基準電位Vthより低い場合にノードbl−ノードgl間の抵抗を低抵抗にするという制御をする。
具体的には、記憶ノードrinの電位が基準電位Vthより高い場合には、スイッチSW13を導通させ、記憶ノードrinの電位が基準電位Vthより低い場合にスイッチSW14を導通させることにより行う。
以上のような制御方法によって、記憶ノードrinの電位が基準電位Vthより高い場合には、2つのノードbl−ノードgl間の抵抗は、スイッチSW13自体の抵抗値を充分低くすることにより、高抵抗状態の抵抗変化メモリ素子を表す高抵抗素子R11のみが単独で存在するようになり、記憶ノードrinの電位が基準電位Vthより低い場合には、2つのノードbl−ノードgl間の抵抗は、スイッチSW14自体の抵抗値を充分低くすることにより、低抵抗状態の抵抗変化メモリ素子を表す低抵抗素子R12のみが単独で存在するようになる。
同時に、記憶ノードrinの電位をみることにより、2つのノードbl−ノードgl間の抵抗が高抵抗状態にあるのか、或いは低抵抗状態にあるのかを判断することができる。
尚、厳密な意味でのグラウンド線(ground line)は、図2に示すノードglではなく、後述する図11に示す選択トランジスタ44の下のGNDノードになるが、図2中のglと記されたノードはグラウンド線を示すglと呼ぶものとする。
また、図2に示す可変抵抗部10、記憶部20の構成は一例であり、これ以外にも、抵抗変化メモリ素子を表す構成要素は考えられる。
ところが、図2に示す回路構成では、可変抵抗部10と記憶部20とが互いに制御し合っているために、実際には、アナログシミュレーション用の抵抗変化メモリ素子のサブサーキットとしては正常に動作しない場合がある。それは、例えば、以下のような場合である。
上述したように、記憶ノードrinの電位が基準電位Vthを下回った状態で、ノードbl−ノードgl間の抵抗が低抵抗になり、記憶ノードrinの電位が基準電位Vthを上回った状態で、ノードbl−ノードgl間の抵抗が低抵抗になる。
ここで、可変抵抗部10のノードbl−ノードgl間に印加される電圧がセットの条件を満たし、記憶部20において、記憶ノードrinの電位が基準電位Vthをわずかに下回ったら、すぐに可変抵抗部10のノードbl−ノードgl間の抵抗が低抵抗状態になる。
そうすると、2つのノードbl−ノードgl間に印加される電圧が下がり、ノードbl−ノードgl間の電圧がセットの電圧条件からリセットの電圧条件に移行する。
そうすると、記憶ノードrinの電位は、すぐに基準電位Vth以上に達し、リセットが起きる。
そうすると、2つのノードbl−ノードgl間にかかる電圧がセットの電圧条件を満たし、記憶ノードrinの電位は基準電位Vthより下降に転じる。
このような繰り返しによって、記憶ノードrinの電位は、基準電位Vthを基準にして振動する現象が起きる。このような振動によってスイッチSW13またはスイッチSW14のいずれかの一方が絶えず導通され、ノードbl及びノードglの電位も激しく振動する。
このような振動現象は、記憶ノードrinの電位が基準電位Vthを僅かに下回り、セットが開始した直後に、リセットがおきやすい状況が生じることによる。
ところで、実際の単極性抵抗変化メモリ素子の特性を評価すると、リセットが起きた直後に、非常に短い時間でもセットに必要な電圧条件を満たすと、セットが起こってしまうことが分かっている。また、セットが起きた直後にリセットに必要な電圧条件を満たしても、すぐにはリセットが起きないことが分かっている。従って、シミュレーション装置においても、セットが起きた直後に、すぐにリセットが起きないような回路構成にする必要がある。
このような振動の問題は、リセッタスイッチSW21、セッタスイッチSW23を導通させるかどうかの判断に、2つのノードbl−ノードgl間の電圧を短い時間遅延させた電圧によって判断させることにより解決できる。
即ち、セッタスイッチSW23は、2つのノードbl−ノードgl間の電圧を短い時間遅延させた電圧信号がセット電圧以上である場合に導通させ、リセッタスイッチSW21は、2つのノードbl−ノードgl間の電圧を短い時間遅延させた電圧信号がリセット電圧以上セット電圧以下である場合に導通させるようにする。
こうすることにより、セット時に、抵抗変化メモリ素子は、以下のような動作をする。
上述したように、遅延を行わない場合は、2つのノードbl−ノードgl間の電圧が、セットの電圧条件を満たしている状態で、セッタスイッチSW23が導通状態で、リセッタスイッチSW21は絶縁状態(開放状態)になっている。この状態で、記憶ノードrinの電位が基準電位Vthを上回った状態から下回った状態に変化すると、スイッチSW13は絶縁状態(開放状態)になり、スイッチSW14は導通状態になる。その結果、2つのノードbl−ノードgl間の抵抗値は、高抵抗から低抵抗に移行する。この場合、記憶ノードrinの電位は、基準電位Vthを基準に振動する。
しかし、2つのノードbl−ノードgl間の電圧を短い時間遅延させることのできる回路を備えることにより、可変抵抗部10から記録部20に伝送されるノードbl−ノードgl間の電圧信号がその遅延時間分、遅延する。
即ち、ノードbl−ノードgl間の抵抗値が低抵抗の状態になり、ノードbl−ノードgl間に印加される電圧がリセットの電圧条件を満たしたとしても、記録部20は遅延時間分、可変抵抗部10がセットの電圧条件を満たしていると認識する。従って、遅延時間分は、セッタスイッチSW23が導通状態で、リセッタスイッチSW21が絶縁状態である状態が続くことになる。
その結果、実際には、可変抵抗部10においてセット直後のリセット電圧条件が満たされていたとしても、遅延時間分の時間が終わるまでに、記憶ノードrinの電位は基準電位Vthを一旦下がり跳ね返ることなく、低電位電源ノードvssrと略同じ電位に到達する。そして、リセットが開始する場合は、記憶ノードrinの電位が基準電位Vthを僅かに下回った状態から跳ね返るのではなく、低電位電源ノードvssrと略同じ電位の状態から上昇する。従って、リセットの電圧条件が満たされる時間は、記憶ノードrinの電位が低電位電源ノードvssrの電位から高電位電源ノードvddrの電位まで上昇するリセッタ負荷抵抗素子R22とキャパシタC24とのRC積で調整できることになる。
さらに、抵抗変化メモリ素子を現実の単極性抵抗変化メモリ素子と同じように動作させるには、注意を要することがある。
それは、セッタスイッチSW23自体の抵抗及びリセッタスイッチSW21自体の抵抗も考慮し、セッタスイッチSW23またはリセッタスイッチSW21が導通した状態の抵抗値とキャパシタC24との積で表される時定数と、上述した遅延時間の大小関係である。
ここで、図2に示すセッタスイッチSW23が導通した場合のセッタスイッチSW23自体の抵抗をR23、リセッタ負荷抵抗素子R22の抵抗値をR22とおき、キャパシタC24の容量値をC24とする。セッタスイッチSW23については、スイッチ機能のみであり、抵抗は0であると考えることもできるが、後述する図1のような回路図で表現した場合、セッタスイッチSW23を導通させても極めて小さい抵抗を有している。従って、ここでは、セッタスイッチSW23を導通させた場合でも、抵抗は0でないとする。
そして、セット時とリセット時における記憶ノードrinの電位変化における時定数をそれぞれt1,t2とおく。また、上述した遅延時間をt3とする。
t1とt2については、図2からt1=R23C24、t2=R22C24と表されることは明らかである。そして、t1,t2,t3の関係は、t1<t3<t2のように設定する必要がある。特に、t1<<t3<<t2のように設定されていることが望ましい。
その理由は、t1<t3とすることにより、セット直後の遅延時間t3の間に、記憶ノードrinの電位を低電位電源ノードvssrに近い値にすることができるからである。また、t1<<t3とすることにより、セット直後の遅延時間t3の間に、記憶ノードrinの電位を低電位電源ノードvssrとほぼ同等にすることができる。例えば、具体的な計算では、t1=t3/10である場合、セット直後の遅延時間t3の間に、記憶ノードrinの電位を例えば、4.5×10-5(V)まで減少させることができる。
また、t3<t2とすることにより、リセット時の遅延時間t3の影響を小さく抑えることができる。リセット時には、遅延時間t3がそのまま遅延する。つまり、リセットの電圧条件を満たしてから、t3の時間経過して、t2に比例する時間経過後、2つのノードbl−ノードgl間の抵抗値が高抵抗になる。
但し、t3<<t2とすることが望ましい。その理由は、t2の時間が短いと、t2に比例する時間経過後、t2に比例する時間経過+t3の時間経過するまでの間に、セットの電圧条件を満たした場合、セットの電圧条件が満たされている間に一旦2つのノードbl−ノードgl間の抵抗値が高抵抗になり、その後、低抵抗になるといった予期しないことが起きやすくなるからである。
次に、リセッタスイッチSW21に関するリセット時間を所望の値に調整する方法について説明する。
記憶ノードrinの電位が低電位電源ノードvssrの電位まで下がり、この状態でリセットの電圧条件を満たしても、すぐには2つのノードbl−ノードgl間の抵抗値が高抵抗にならず、一定時間リセットの電圧条件を満たした場合のみノードbl−ノードgl間の抵抗値が高抵抗になるようにするには、リセッタ負荷抵抗素子R22の抵抗値R22及びキャパシタC24の容量値C24によるRC遅延を利用する。
記憶ノードrinの電位が基準電位Vthより高い場合に2つのノードbl−ノードgl間の抵抗値が高抵抗とし、記憶ノードrinの電位がVthより低い場合に2つのノードbl−ノードgl間の抵抗値が低抵抗とし、高電位電源ノードvddr、低電位電源ノードvssrの電位をそれぞれVvddr、Vvssrとする場合、リセットに要する時間T2は、以下の式で表される。
T2=t2×A+t3……(1)
但し、t2=R22×C24……(2)
A=ln((Vvddr−Vvssr)/(Vth−Vvssr))……(3)
ここで、t2にファクタAをかけているのは、t2に要する時間の途中で記憶ノードrinの電位が低電位電源ノードvssrから基準電位Vthに達し、t2より短い時間でリセットが起こるからである。但し、リセットに要する時間は、リセッタ負荷抵抗素子R22の抵抗値R22、キャパシタC24の容量値C24を調整することにより、自由に調整することができる。
次に、図2に示す抵抗変化素子の構成で、リセットの電圧条件を満たし、2つのノードbl−ノードgl間にかかる電圧がリセット電圧以下になってリセットの電圧条件を満たさなくなり、再びリセットの電圧条件を満たした場合に記憶ノードrinがどのように動作するかを説明する。
図3はリセットをする場合の記憶ノードrinの電位の変化を説明する図である。横軸は時刻(ns)で、縦軸は記憶ノードrinの電位(V)を表している。この図は、後述する具体的な値、例えば、t2=100ns、t3=1ns、Vvddr=1.0V、
Vvssr=0.0V、Vth=0.5V、T2=70.3nsを用いて作成している。
ここで、図中の期間A及び期間Cは、リセットの電圧条件を満たしている期間である。一方、期間Bは、リセットの電圧条件もセットの電圧条件も満たしていない期間、つまり、2つのノードbl−ノードgl間の電圧がリセット電圧以下の期間である。
期間A及び期間Cでは、記憶ノードrinの電位Vrinは、時定数t2で変化する。
そして、期間Aにおける記憶ノードrinの電位は、以下の式で表される。
Vrin(t)=Vvssr+(Vvddr−Vvssr)(1−exp(−(t−t3)/t2)
)……(4)
期間Bは、キャパシタC24の機能によって電位が保持される期間である。期間Bの長さをT4とするとき、期間Cでの記憶ノードrinの電位Vrinは、以下の式で表される。
Vrin(t)=Vvssr+(Vvddr−Vvssr)(1−exp(−(t−(T4+t3)
)/t2))……(5)
図2、図3で示される構成では、リセットに要する時間は、セットの電圧条件を満たさない限りにおいて、累積時間が適用される。つまり、セットの電圧条件を満たさない限りにおいて、リセットの電圧条件を満たしている期間の合計時間がT2に達するとリセットが起き、2つのノードbl−ノードgl間の抵抗値が高抵抗になる。図3においては、期間A及び期間Cの長さをそれぞれT2A、T2Bとすると、T2A+T2B=T2となる。即ち、記憶ノードrinの電位が低電位電源ノードvssrにある場合、T2の時間を経てノードbl−ノードgl間の抵抗値が低抵抗から高抵抗に移行する。尚、この場合、T4は考慮せず、T4=0としている。
以上で、本発明の抵抗変化メモリ素子の基本構成と、その動作に関する説明が終わった。さらに、本発明の理解を深めるために、具体的な数値を用いて説明する。但し、以下で用いる数値は、あくまで理解を深くするための例であり、本発明の請求の範囲は、以下で用いる数値に限定されるものではない。
ところで、実際の抵抗変化メモリ素子は、高抵抗状態では、自分自身に印加される電圧が0V付近では抵抗値が高く、自分自身に印加される電圧によって大きく抵抗が異なり、自分自身に印加される電圧がセット電圧付近の比較的高い電圧のときは、抵抗値が低くなってしまう。一方、実際の抵抗変化メモリ素子の低抵抗状態は、自分自身に印加される電圧によって比較的抵抗値が変わらない。従って、図2に示した高抵抗状態の抵抗変化メモリ素子を表す高抵抗素子R11は、2つのノードbl−ノードgl間に印加される電圧によって抵抗値が変化し、例えば、図4のような特性になるようにする。図4は高抵抗素子のI−V曲線の一例を説明する図である。また、低抵抗状態の抵抗変化メモリ素子を表す低抵抗素子R12については、2つのノードbl−ノードgl間に印加される電圧によって抵抗値が変化しない一定抵抗としてもよく、2つのノードbl−ノードgl間に印加される電圧によって抵抗値が変化する電圧依存抵抗としてもよい。一定抵抗の場合は、例えば4kΩとする。
そして、図2に示す高電位電源ノードvddrの電位は常に1.0V、低電位電源ノードvssrの電位は常に0.0V、リセッタ負荷抵抗素子R22の抵抗値は100Ω、キャパシタC24の容量値は1nFとする。2つのノードbl−ノードgl間の抵抗値は、記憶ノードrinの電位が0.5Vより高い場合に高抵抗、記憶ノードrinの電位が0.5Vより低い場合に低抵抗とする。これまでに用いた記号で表現すると、C24=1nF、R22=100Ω、t2=100ns、t3=1ns、Vvddr=1.0V、Vvssr=0.0V、Vth=0.5Vである。
この条件下では、T2=70.3nsとなる。但し、記憶ノードrinの電位の変化は、特に上記の数値と、これから示す以下の例に限定されるものではなく、また、本実施の形態における理論と説明は、上記の数値と以下の例にのみ該当するものではない。
そして、式4、式5は、それぞれ以下の式6、式7のようになる。但し、t2については、数値を代入していない。
Vrin(t)=1−exp(−(t−t3)/t2)≒1−exp(−t/t2)……(6)
Vrin(t)=1−exp(−(t−(T4+t3))/t2)≒1−exp(−(t−T4)/t2)……(7)
セットに関して、さらに詳細に説明すると、セットの電圧条件が満たされる直前の記憶ノードrinの電位によって、厳密にはセットに要する時間は異なる。しかし、セットに要する時間はきわめて短く、セットの電圧条件が満たされる直前の記憶ノードrinの電位にかかわらず一瞬とみなすことができ、セットの電圧条件が満たされる直前の記憶ノードrinの電位は問題にならない。
以上で、図2の構成と動作の説明が終わったので、次にシミュレータ上でのより具体的な回路素子の配置と接続について説明する。HSPICEなどのアナログシミュレータにおいて、図2で用いたスイッチ類は、電圧依存抵抗を用いるのがよい。また、HSPICEでは、電圧依存抵抗は、特定の2点間の符号付の電圧によって抵抗値の変化する素子として記述する。ここで、特定の2点間の符号付の電圧とは、任意の2点の電位をVDA、VDBとするとき、「VDB−VDA」で表される。以下では、低電圧電源ノードvssrの電位Vvssrは0.0Vとし、「記憶ノードrinの電位」は、「記憶ノードrinと低電圧電源ノードvssrの間の電圧」、または「記憶ノードrinの電位から低電圧電源ノードvssrの電位を引いたもの」と同じとして説明する。しかし、本特許の請求の範囲は、Vvssr=0.0Vの場合に限定されるものではない。
図5は抵抗変化メモリ素子を構成する素子の役割と機能を説明した図である。図5に示す記述例は、後述するHSPICE等のアナログシミュレータのネットリスト記述において、回路素子の名称をどのように設定するかの例が示されている。
ここで、サブサーキットの動作の説明が終わったので、再び、図1に戻り、シミュレーション装置に用いるサブサーキットを図2に示す基本原理と対応させながらその動作を説明する。
可変抵抗部10の高抵抗素子R11は、上述したように、高抵抗状態の抵抗変化メモリ素子の特性を表し、自分自身にかかる電圧によって抵抗値が変化する電圧依存抵抗である。高抵抗素子R11は、例えば、図4のような特性になるようにする。
低抵抗素子R12は、低抵抗状態の抵抗変化メモリ素子の特性を表す素子である。低抵抗素子R12は、自分自身にかかる電圧によって抵抗値が変わらない一定抵抗でもよく、自分自身にかかる電圧によって抵抗値が変わる電圧依存抵抗であってもよい。低抵抗素子R12には、一定抵抗の場合は、例えば、4kΩが適する。
高抵抗状態及び低抵抗状態における抵抗変化メモリ素子の読出し特性は、高抵抗素子R11及び低抵抗素子R12の特性を調整することにより、自由に調整できる。尚、高抵抗素子R11及び低抵抗素子R12は、電圧依存電流源を用いても代用できる。
ノードbl−ノードgl間における高抵抗状態を選択する抵抗素子R13及び低抵抗状態を選択する抵抗素子R14は、記憶ノードrinの電位に依存する抵抗である。
抵抗素子R13は、スイッチとして機能し、記憶ノードrinの電位が高い場合に非常に低抵抗(導通状態)になり、記憶ノードrinの電位が低い場合は非常に高抵抗(開放状態)となる。
抵抗素子R14は、スイッチとして機能し、記憶ノードrinの電位が低い場合に非常に低抵抗(導通状態)になり、記憶ノードrinの電位が高い場合は非常に高抵抗(開放状態)となる。
抵抗素子R13及び抵抗素子R14が、非常に高抵抗になるか非常に低抵抗になるかの基準となる記憶ノードrinの電位Vthは、例えば、0.5Vが適する。
シミュレーションの安定動作のため、抵抗素子R13及び抵抗素子R14の両方が共に、非常に高抵抗の状態(開放状態)になる記憶ノードrinの電位は無いほうがよい。
記憶ノードrinの電位が丁度Vthのときに、抵抗素子R13及び抵抗素子R14の両方が共に、非常に高抵抗の状態(開放状態)になることを避けるための一つの方法として、抵抗素子R13は、記憶ノードrinの電位が0.4999V以上で非常に低抵抗(導通状態)になり、抵抗素子R14は、記憶ノードrinの電位が0.5001V以下で非常に低抵抗(導通状態)になるようにすることが挙げられる。
導通状態にある抵抗素子R13及び抵抗素子R14自体の抵抗値を充分に低くさせると、記憶ノードrinの電位が標準電位Vthより高い場合は、図1に示すノードbl−ノードgl間では、高抵抗素子R11のみが単独で存在するようになり、記憶ノードrinの電位が標準電位Vthより低い場合は、低抵抗素子R12のみが単独で存在するようになる。
読出し特性における現実の素子との差を無視できるくらい小さくするため、抵抗素子R13及び抵抗素子R14の非常に低抵抗の状態(導通状態)の抵抗値は、高抵抗素子R11及び低抵抗素子R12の抵抗値に比べて非常に小さく、少なくとも1桁以上小さくし、抵抗素子R13及び抵抗素子R14の非常に高抵抗の状態(開放状態)の抵抗値は、高抵抗素子R11及び低抵抗素子R12の抵抗値に比べて非常に大きく、少なくとも1桁以上大きくさせてもよい。
抵抗素子R13及び抵抗素子R14の非常に低抵抗の状態(導通状態)の抵抗値は、例えば1mΩが適し、抵抗素子R13及び抵抗素子R14の非常に高抵抗の状態(開放状態)の抵抗値は、例えば1TΩが適する。より具体的には、例えば、抵抗素子R13は、記憶ノードrinの電位が0.4999V以上の場合に1mΩになり、記憶ノードrinの電位が0.4999V以下場合には1TΩとなる。抵抗素子R14は、記憶ノードrinの電位が0.5001V以下の場合に1mΩになり、記憶ノードrinの電位0.5001V以上の場合には1TΩになる。
遅延電位発生部30の遅延素子31は、上述したように、セット後にリセットが起きやすい状態になることを防ぐための素子である。遅延素子31は、2つのノードbl−ノードgl間の電圧をある程度短い遅延t3を持たせてノードdtmoの電位にコピーする。
ここで、ノードdtmoの電位にコピーするとは、ノードdtmoと低電位電源ノードvssrの間の電圧にコピーするということである。「ノードdtmoの電位」と、「ノードdtmoと低電位電源ノードvssrの間の電圧」、「ノードdtmoの電位から低電位電源ノードvssrの電位を引いたもの」は、同義とする。
遅延時間t3としては、例えば、1nsが適する。遅延素子は、HSPICEに存在するので、そのまま用いればよい。遅延素子は、以下のように記述する。
例えば、「E31 dtmo vssr VCVS DELAY bl−gl TD=1ns」と記述する。
これで、1nsの遅延を与えて、ノードblとノードglの間の電圧を、ノードdtmoと低電位電源ノードvssrの間の電圧にコピーせよ、という意味になる。
また、記憶部20の抵抗素子R21及び抵抗素子R23は、上述したように可変抵抗である。尚、図2に示したリセッタ負荷抵抗素子R22は、図1においては、抵抗素子R21に含めて表している。
抵抗素子R21及び抵抗素子R23は、ノードdtmoの電位に依存する電圧依存抵抗である。また、抵抗素子R21及び抵抗素子R23は、2つのノードbl−ノードgl間の電圧に直接的には依存せず、ノードdtmoの電位に依存することによって、2つのノードbl−ノードgl間の電圧を遅延時間t3だけ遅延させた電圧に依存する。
抵抗素子R21は、ノードdtmoの電位がリセット電圧以上セット電圧以下となった場合に抵抗値がある程度低い値R22になり、それ以外の場合は、非常に高い抵抗(開放状態)になる。抵抗素子R23は、ノードdtmoの電位がセット電圧以上の電圧となった場合に低抵抗(抵抗値R23)になり、それ以外の場合は、非常に高い抵抗(開放状態)になる。
抵抗素子R21の低抵抗状態(導通状態)の抵抗値R22は、例えば100Ωが適する。抵抗素子R23の低抵抗状態(導通状態)の抵抗値R23は、例えば、1mΩが適する。
抵抗素子R21の非常に高抵抗の状態(開放状態)の抵抗値は、例えば1018Ωが適する。セット電圧とリセット電圧は、例えば、それぞれ1.6V、0.75Vが可能である。セット電圧とリセット電圧については、自由に調整できることは言うまでもない。
より具体的には、例えば、抵抗素子R21は、ノードdtmoの電位が0.75V以上1.6V以下となった場合に抵抗値が100Ωになり、それ以外の場合は、1018Ωになり、抵抗素子R23は、ノードdtmoの電位が1.6V以上の電圧となった場合に1mΩになり、それ以外の場合は、1018Ωにすることもできる。
キャパシタC24は、記憶保持をし、遅延を与えるための一定容量を有する容量素子である。キャパシタC24は、抵抗素子R21及び抵抗素子R23の両方が共に非常に高い抵抗値(開放状態)のときに、記憶ノードrinの電位を保持する機能を有する。また、抵抗素子R21の低抵抗状態(導通状態)の抵抗値R22とキャパシタC24の容量値C24の積t2は、リセット時間を決定する。キャパシタC24の容量値C24は例えば1nFが適する。
上記の説明では、t1=R23C24、t2=R22C24と表されるが、ここで挙げた例では、t1=1ps、t2=100ns、t3=1nsである。従って、t1<<t3<<t2の関係を満たしていることが分かる。高電位電源ノードvddrの電位をVvddr=1.0V、低電位電源ノードvssrの電位は、既に述べたとおりVvssr=0.0Vとする。このとき、式(1)〜式(3)により、リセットに要する時間T2=70.3nsとなる。一方、セットに要する時間は、遅延素子31が機能する遅延時間t3でおよそ決まってしまい、約1nsである。
遅延電位発生部30には、HSPICEで予め与えられている遅延素子を使わなくてもよい。遅延機能は、抵抗と容量によるRC遅延を用いて作製することもできる。ここで、遅延電位発生部30の抵抗と容量は、記憶部20中の抵抗や容量とは別のものである。遅延機能の構成要素を、RC遅延を用いて作った例で図6に示す。
図6は遅延電位発生部の基本構成を説明する図である。この図に示すように、遅延電位発生部30は、電圧依存電圧源32、抵抗値が一定の抵抗素子R33、一定の容量を有するキャパシタC34を含む構成をしている。
電圧依存電圧源32は、ノードbl−ノードgl間の電圧を、電圧依存電圧源32の両端の電圧にそのままコピーする。その結果、抵抗素子R33の抵抗値と、キャパシタC34の容量値の積と概ね同じオーダーの遅延時間をもって、図6に示すノードdtmoに、ノード35の電位がコピーされる。
また、図1に示した回路には、さらに可変抵抗部10に並列に、キャパシタC15を挿入する場合がある。図7はキャパシタを挿入した可変抵抗部の基本構成を説明する図である。実際の抵抗変化メモリ素子は、2つの導体からなる平行平板間に比較的抵抗値の高い物質が挿入された構造をとっているため、平行平板間に容量成分が存在する。キャパシタC15は、この平行平板間の容量成分を再現するものである。キャパシタC15が存在しても、図1に示した回路の本質的な動作に変わりはない。
次に、シミュレーション装置及びシミュレーション方法を用いた抵抗変化メモリ回路の設計支援方法の概要から説明する。
図8は抵抗変化メモリ回路の設計を支援する方法を説明するフローチャート図である。図示するように、抵抗変化メモリ回路の設計を支援する方法は、抵抗変化メモリ回路のシミュレーション(ステップS1)、動作検証(ステップS2)及びネットリスト変更または素子属性の変更(ステップS3)の支援ステップを有している。
ここで、抵抗変化メモリ回路のシミュレーション(ステップS1)の支援ステップは、ライブラリ100、記憶部を表すサブサーキット101、ネットリスト102及び初期設定電圧103を使用して、メモリ回路に含まれるノードの電圧の時間変化をシミレーションするステップである。
また、動作検証(ステップS2)の支援ステップは、期待電圧104と、抵抗変化メモリ回路のシミュレーション(ステップS1)で得られたシミュレーション結果とから、抵抗変化メモリ回路の動作の検証を支援するステップである。
ネットリスト変更または素子属性の変更(ステップS3)の支援ステップは、動作検証(ステップS2)の支援ステップにおいて、抵抗変化メモリ回路の動作に不具合があった場合に、ネットリストの変更または素子属性の変更を行う支援ステップである。
図9は抵抗変化メモリ回路のシミュレーションステップをさらに詳細に説明するフローチャート図である。上述した抵抗変化メモリ回路のシミュレーション(ステップS1)は、図示するように、上記ライブラリ100からの部品属性の読込み(ステップS10)、ネットリストの読込み(ステップS11)、記憶部を表すサブサーキットの読込み(ステップS12)、初期設定電圧の読込み(ステップS13)、ノードの電圧の時間解析シミュレーション(ステップS14)及びノードの電圧の時間依存テーブルの作成(ステップS15)を有している。
ここで、部品属性の読込み(ステップS10)のステップは、後述する図10に示す部品属性をシミュレーション装置に入力するステップである。
ネットリストの読込み(ステップS11)のステップは、後述する図11に示すネットリストをシミュレーション装置に読み込ませる、即ち、入力するステップである。
サブサーキットの読込み(ステップS12)のステップは、図1及び図5に示す記憶部のサブサーキットをシミュレーション装置に読み込ませる、即ち、入力するステップである。
初期設定電圧の読込み(ステップS13)のステップは、後述する図13に示す初期設定電圧のテーブルをシミュレーション装置に読み込ませる、即ち、入力するステップである。
次に、図10は素子及び素子の属性を説明する図である。この図では、例えば、素子であるtransistorAと、その属性A、transistorBと、その属性B、capacitorAとその属性M、resistorAとその属性Xが示されている。
図11はネットリストが表す回路の一例を示す図である。また、図12はネットリストの一覧を表す図である。
図11に示す回路は、部品、即ち、素子の接続関係及び接続ノードを示すリストである。具体的には、多機能pMOS40、カラムスイッチであるnMOS41a〜41p、カラムスイッチであるpMOS42a〜42p、抵抗変化メモリ素子43、選択トランジスタ44、増幅用インバータ45,46、プリチャージ制御トランジスタ47,48、ビットライン寄生容量49により構成されている。また各素子は、ノード50,51,52,53,54によって接続されている。
また、多機能pMOS40、nMOS41a〜41p及びpMOS42a〜42pの間にノード50を、nMOS41a〜41p、pMOS42a〜42pと抵抗変化メモリ素子43の間にノード51、抵抗変化メモリ素子43と選択トランジスタ44の間にノード52を有する。さらに、多機能pMOS40のゲートにノードXWE、nMOS41a〜41pのゲートにノードCL1、pMOS42a〜42pのゲートにノードCPL1、選択トランジスタ44のゲートにノードWL、プリチャージ制御トランジスタ47,48のゲートにノードPRCを有する。
ここで、図12に示すMN40は、多機能pMOS40に対応し、MN41a〜MN41pは、カラムスイッチのnMOS41a〜41pに対応し、MP42a〜MN42pは、カラムスイッチのpMOS42a〜42pに対応し、サブサーキット43は、抵抗変化メモリ素子43に対応し、MN44は選択トランジスタ44に対応し、サブサーキット45,46は、増幅用インバータ45,46に対応し、MN47,MN48は、プリチャージ制御トランジスタ47,48に対応し、C49は、ビットライン寄生容量49に対応している。
また、MOSトランジスタを示すMN40等の括弧内は、順に、ドレイン端子、ゲート端子、ソース端子、基板に接続する端子を示している。そして、括弧の右隣には、MOSトランジスタの属性を示している。例えば、N、L、Wは、順に、導電型、チャネル長(ゲート電極の幅)、チャネル幅を示している。
このように、図11に示す回路は、メモリセルが、1つの選択トランジスタ44及び1つの抵抗変化メモリ素子43により構成される1T1R型抵抗変化メモリである。また、図11に示す回路は、メモリセルの他に、書込みと読出しに必要な回路が含まれる。
図1に示した回路は、以上のような動作原理に基づいて実際の抵抗変化メモリ素子に極めて近い電気的特性を示す。図1に示したサブサーキットが図11に示した回路の抵抗変化メモリ素子43の部分に組込まれることにより、図11の回路は、実際の抵抗変化メモリ素子を含む回路と極めて近い回路動作をする。従って、正しくネットリストを記述し、抵抗変化メモリ素子43として組込むネットリストのパラメータが正しいものであれば、製品或いはCTEGとして製造或いは試作する半導体チップ或いは半導体マクロと同等な動作をシミュレーション装置上で再現することが可能である。その結果、図8、図9に示したような方法で、抵抗変化メモリ素子を含む回路の設計を支援し、効率化することができる。
次に、上記ネットリストを用いた回路設計支援方法を説明する。
図13はアナログシミュレータに入力する初期設定値の例を示す図である。図13では、ノード名及び初期値を示している。
ノードは、素子と素子の接続点、サブサーキットと素子の接続点、或いは、サブサーキットとサブサーキットとの接続点をいう。そして、ノードの指定は、ノードインバータからなる回路Aのノードを指定する場合は、例えば、InvA・node(a)と表すことにより行う。
初期値は各ノードの初期電圧である。そして、初期値の指定は、ノード名、例えば、InvA・node(a)に対して行う場合には、InvA・node(a)、1.0Vというように指定する。
図14はアナログシミュレータによって作成される時間依存テーブルを示す図である。この時間依存テーブルは、ノード、初期値、各時刻でのノードの電圧が表されている。
ノードは、シミュレーションを行う回路内のすべてのノードが記載されている欄である。初期値は、初期設定値が与えられたノードに対して、初期値が記載されている欄である。時刻は、シミュレーションによって、結果を得たい時刻が記載された欄である。各ノードの電圧は、シミュレーションで求めた各ノードの各時刻での電圧が記載された欄である。
尚、アナログシュミレータには、シミュレーション後に、シミュレーションで求めた、各時刻に対する各ノードの電圧値のテーブルが作成される。そこで、当初の各ノードに対して設定された初期設定値と、シミュレーションで求めた、各時刻に対する各ノードの電圧値のテーブルを組み合わせて、アナログシミュレータは図14の時間依存テーブルを作成する。
図15は動作検証の支援ステップの詳細について示すフローチャート図である。この図は、図8に示した動作検証(ステップS2)の詳細について示すフローチャートを示している。そして、図15のフローチャートは、動作検証として、ノードの電圧の時間依存テーブルの読込み(ステップS2a)、期待値の読込み(ステップS2b)、期待値が設定されているノード、時刻において、シミュレーションで求めたノードの電圧と期待電圧を比較し(ステップS2c)及び指定時刻において、ノード電圧と期待電圧が一致していたかを判断する(ステップS2d)ステップを有している。
ここで、ノードの電圧の時間依存テーブルを読み込むステップは、時間テーブルを読み込むステップである。期待値の読込みのステップは、期待値テーブルを読み込むステップである。シミュレーションで求めたノードの電圧と期待電圧を比較するステップは、期待値が設定されている時刻において、シミュレーションで求めたノードの電圧と期待電圧の比較を行い、比較結果を出力するステップである。ノード電圧と期待電圧が一致していたかを判断するステップは、比較結果に基づいて、シミュレーションを行った回路の動作検証の支援を行うステップである。
そして、動作確認を行った結果、良好であれば、抵抗変化メモリ回路の設計の支援は終了する。一方、動作確認を行った結果、期待値と一致しないノードの電圧が存在した場合には、後に詳細を示す、回路変更、素子属性の変更の支援ステップへ進む。
図16は期待値テーブルを示す図である。そして、期待値テーブルは、ノード、期待値及び時刻で表されている。
ノードは、期待値が設定されているノードの一覧が記載されている欄である。期待値は、各ノードに対する電圧の期待値が記載されている欄である。時刻は、期待値が設定されている時刻を記載する欄である。
図17は期待値とシミュレーションを行って得たノードの電圧との比較テーブルを示す図である。上記の比較テーブルは、ノード名、期待値、シミュレーション値、時刻、比較結果を含む構成をしている。
ノード名は、期待値と電圧を比較するノードが記載されている欄である。期待値はノードに記載されたノードに対する期待値が記載されている欄である。シミュレーション値は、ノードに記載されたノードに対するものであって、時刻欄に記載された時刻に対応する、シミュレーションで求めた電圧が記載されている欄である。時刻は、期待値とノードの電圧の比較を行う時刻が記載されている欄である。比較結果は、期待値とシミュレーションで求めたノードの電圧を比較した結果が記載されている欄である。
例えば、ノードに記載されたノード、「InvA node(a)」に対して、期待値に記載された期待値は>0.9V、シミュレーション値に記載されたノードの電圧は1.0Vであるときには、比較結果には、「Yes」と記載され、期待値とノードの電圧が合致することが示される。
一方、ノードに記載されたノード、「InvA node(b)」に対して、期待値の欄に記載された期待値は>0.9V、シミュレーション値に記載されたノードの電圧は0.5Vであるときには、比較結果には、「No」と記載され、期待値とノードの電圧が合致しないことが示される。そして、比較結果に記載され記載結果がすべて、「Yes」であるときに、期待値とノードの電圧が一致していると判断する。
このように、図8に示す動作検証(ステップS2)の支援ステップでは、期待値とシミュレーションで求めたノードの電圧を比較し、すべての期待値とノードの電圧が一致しているときに、期待値とノード電圧が一致していると判断する。そして、期待値とノード電圧が一致するときには、抵抗変化メモリ素子を含むメモリ回路の設計支援を終了する。一方、期待値とノード電圧が一致しないときには、抵抗変化メモリ素子を含むメモリ回路の設計をさらに支援するため、回路変更または素子属性の変更の支援ステップへ進む。
図18は回路変更または素子属性の変更の支援ステップの詳細を示すフローチャート図である。そして、回路変更または素子属性の変更の支援ステップは、素子属性の変更が必要かを判断し(ステップS3a)、素子属性の変更が必要な場合は、素子属性の変更をし(ステップS3b)、そして、ネットリストの変更が必要かを判断し(ステップS3c)、ネットリストの変更が必要な場合は、ネットリストの変更を行う(ステップS3d)。
素子属性の変更が必要かを判断するステップは、期待値とノードの電圧が一致しなかった原因が、負荷の見積もりを誤った等に起因する信号遅延の見積もり誤りの問題なのかを検討し、素子属性の変更が必要か否かを判断するステップである。素子属性の変更の支援ステップは、素子属性の変更が必要と判断する場合に、どのような素子属性とすればよいかを検討し、その素子属性と合致するように、素子属性の変更を支援するステップである。ネットリストの変更が必要かを判断するステップは、期待値とノードの電圧が一致しなかった原因が、論理の誤り等によるものなのかを検討し、ネットリストの変更が必要か否かを判断するステップである。ネットリストの変更の支援ステップは、ネットリストの変更が必要と判断する場合に、ネットリストの変更を支援するステップである。
このように、上記シミュレーション方法では、サブサーキットを構成する回路部品を接続する接続ノードの内の一つ(例えば、記憶ノードrin)が、記憶部の記憶状態に対応する電圧を保持する記憶ノードとなっているサブサーキットをアナログシミュレータに入力し、記憶装置を構成する回路部品間の接続関係が記載されているネットリストをアナログシミュレータに入力し、アナログシミュレーションを行い、記憶装置を構成する回路部品間の接続ノードの電圧の時間変化を求める。
さらに、記憶装置を構成する回路部品間の接続ノードの電圧の期待値を入力し、アナログシミュレータで求めた記憶装置を構成する回路部品間の接続ノードの電圧と、記憶装置を構成する回路部品間の接続ノードの電圧の期待値を比較し、比較結果を出力し、比較結果から記憶装置の動作が正常に動作しているか否かを判断する。
実際のシミュレーション結果はどのようなものであるか、もう少し具体的な例を挙げて説明する。尚、以下で挙げる例は、図8乃至図18で示した回路設計支援方法の例と必ずしも対応したものではなく、シミュレーション結果の一例を示したものである。
以下で挙げる例では、図11で示した、抵抗変化メモリ素子43を含む回路の、各トランジスタのゲートノードXWE、CL1、CPL1、WL、PRCに特定の電位信号を与え、書込みを行い、それぞれの書込みの後に読出しを行い、書込んだとおりの読出し結果が得られ、各ノードの電位が意図したものとなっているかどうかを確認するというものである。図11に示す抵抗変化メモリ素子43には、図1に示したサブサーキットを用いている。以下で挙げるシミュレーション結果は、実際にHSPICEによってシミュレーションを行うことによって得られた結果である。
以下に説明するシミュレーション結果では、図11に示すVDDHの電位を3.3Vとし、抵抗変化メモリ素子の特性として用いたパラメータは、C24=1nF、R22=100Ω、R23=1mΩ、t1=1ps、t2=100ns、t3=1ns、Vvddr=1.0V、Vvssr=0.0V、Vth=0.5V、T2=70.3ns、そして、リセット電圧が0.75V、セット電圧が1.60Vである。
図19はシミュレータ上での各時刻における動作モードを示した図である。最初の100nsは省電力モード、次の100nsはセットモード、その次の100nsはセット後の読出し、その次の200nsはリセットモード、その次の100nsはリセット後の読出し、その次の100nsはセットモード、その次の100nsはセット後の読出し、その次の200nsはリセットモード、その次の100nsはリセット後の読出しである。
ここで、省電力モードとは、電力を消費しないようにする待機状態のモードである。セットモードとは、抵抗変化メモリ素子43がセットの電圧条件を満たす電圧信号を与えるように回路を動作させるモードである。リセットモードとは、抵抗変化メモリ素子43がリセットの電圧条件を満たす電圧信号を与えるように回路を動作させるモードである。
読出しモードでは、抵抗変化メモリ素子43の記憶即ち抵抗状態に応じて、図11に示すノード54に電位信号が出力されるモードである。読出しモードにおいては、抵抗変化メモリ素子43の抵抗状態が低抵抗である場合は、ノード54に0.0Vに近い低い電位を、抵抗変化メモリ素子43の抵抗状態が高抵抗である場合は、ノード54に3.3Vに近い高い電位をそれぞれ出力する。
2回あるリセットモードのうち1回目、即ち、時刻300〜500nsにおいては、抵抗変化メモリ素子43がリセットの電圧条件を満たす状態が長時間連続する連続モードである。一方、リセットモードのうち2回目、即ち、時刻800〜1000nsにおいては、抵抗変化メモリ素子43がリセットの電圧条件を満たす状態と満たさない状態を10ns程度の比較的短い時間ごとに繰返す、断続モードである。このような断続モードは、実際の抵抗変化メモリでは用いないかもしれないが、このような2つのリセットモードの動作の違いを示すため、このような設定としている。
図20はXWE、CL1、CPL1、WL及びPRCとして与えた信号の波形図である。図11で示した回路の詳細な説明は本発明の範囲を超えるため、省略するが、図19で示した動作をさせるための信号を与えたことになる。
図21はシミュレーション結果として得られる各ノードの電位を説明する図である。ここで、ノード54の電位に注目すると、時刻200〜300nsにおいては、ノード54の電位は0.0Vに近い電位であり、抵抗変化メモリ素子43の低抵抗状態が読出されたものと推測できる。同様に、時刻500〜600nsにおいては、ノード54の電位は3.3Vに近い電位であり、抵抗変化メモリ素子43の高抵抗状態が読出されたものと推測できる。同様に、時刻700〜800nsにおいては、ノード54の電位は0.0Vに近い電位であり、抵抗変化メモリ素子43の低抵抗状態が読出されたものと推測できる。同様に、時刻1000〜1100nsにおいては、ノード54の電位は3.3Vに近い電位であり、抵抗変化メモリ素子43の高抵抗状態が読出されたものと推測できる。従って、セット後の読出しにおいては低抵抗状態が読出され、リセット後の読出しにおいては高抵抗状態が読出されていることが推測できる。
図22はシミュレーション結果として得られる各ノードの電位を説明する図である。この図では、抵抗変化メモリ素子43の両端の電圧、選択トランジスタ44を流れる電流、抵抗変化メモリ素子を表すサブサーキット中のノードdtmoの電位、抵抗変化メモリ素子を表すサブサーキット中の記憶ノードrinの電位が示されている。ここで、今回のシミュレーションで用いた図11に示すネットリストは、抵抗変化メモリ素子43を1つのみを含んでいる。従って、図11中のノード51と、図1中のノードbl、図11中のノード52と、図1中のノードglは同じノードを表している。
書込み後に正しく読出されているであるという推測は、図21及び図22の各電圧、電位、電流の信号によって確認できる。特に、抵抗変化メモリ素子を表した、図1に示すサブサーキット中の記憶ノードrinの電位を確認することによって、特定時刻において高抵抗状態が書込まれているか、低抵抗状態が書込まれているかどうかを確認することができる。例えば、時刻490nsにおいて、記憶ノードrinの電位は、Vth=0.5Vより高い電位となっている。従って、時刻490nsにおける抵抗変化メモリ素子の状態は、高抵抗であるということが分かる。
1回目のリセットモードにおいては、時刻300nsにおいてリセットの電圧条件が満たされる状態が始まり、そこからT2=70.3ns経過した時刻370ns付近にて記憶ノードrinの電位がVth=0.5Vに達し、リセットが起きていることが分かる。図21、図22の各電圧、電位、電流信号を見ると、この時刻にいくつかの電圧、電位、電流信号が変化していることが分かる。
2回目のリセットモードにおいては、最初に時刻800nsにおいてリセットの電圧条件が満たされる状態が始まり、そこからある程度の時間が経過した後に記憶ノードrinの電位がVth=0.5Vに達し、リセットが起きていることが分かる。ここで、抵抗変化メモリ素子43の両端の電圧に注目すると、リセットの電圧条件である0.75V以上1.6V以下という条件を満たす期間と満たさない期間が繰返されていることが分かる。リセットが起きた時刻は、時刻800nsからリセットの電圧条件である0.75V以上1.6V以下という条件を満たす期間が累積の合計時間でT2=70.3nsに到達した時刻である。
尚、セットは、事実上無限小とみなせる極めて短い時間で起きるため、図21、図22の結果では、セットの電圧条件が満たされるとすぐに起きる。例えば、時刻100nsでは、セットが起こっていることが抵抗変化メモリ素子を表すサブサーキット中の記憶ノードrinの電位がVvssr=0.0Vと同じ電位になっていることから分かる。ここで、もし遅延素子31が無かったとすると、記憶ノードrinの電位がVth=0.5Vと同程度で止まってしまい、セット直後にリセットが極めて起きやすい状態となってしまい、現実の抵抗変化メモリ素子と異なってしまう。
ここで挙げたサブサーキットの例では、シミュレーション対象のネットリストに抵抗変化メモリ素子を表すサブサーキットが1つのみ存在する。しかし、シミュレーション対象のネットリストに抵抗変化メモリ素子を表すサブサーキットが多数存在する場合でも、このサブサーキットを使ったシミュレーションは可能であり、このような場合に、より威力を発揮する。実際のメモリ製品や製品に近いCTEGでは、シミュレーション対象のネットリストに抵抗変化メモリ素子を表すサブサーキットが多数存在する。尚、シミュレーション対象のネットリストに抵抗変化メモリ素子を表すサブサーキットが多数とは、ネットリスト上で、抵抗変化メモリ素子を表すサブサーキットは1箇所のみに記述されていても、そのサブサーキットが多数の箇所で呼び出されている場合を含む。
ここで挙げたシミュレーションの例では、正常に動作したことが分かる。つまり、電圧、電位、電流信号のシミュレーション値と期待値が一致した。このような場合は、シミュレーション対象のネットリストは正常に動くという結論となり、回路設計支援は終了する。しかし、もし正常ではなく、電圧、電位、電流信号のシミュレーション値と期待値が一致しない箇所が1箇所でも存在した場合、素子属性、ネットリストを必要に応じて修正し、再度シミュレーションを行う必要がある。
高抵抗状態を書込んだ場合、書込んだ後、記憶ノードrinの電位の期待値はVth=0.5V以上となり、低抵抗状態を書込んだ場合、書込んだ後、記憶ノードrinの電位の期待値はVth=0.5V以下となる。従って、記憶ノードrinの電位のシミュレーション値が、記憶ノードrinの電位の期待値の範囲外であった場合、書込み動作に関する回路のネットリストの修正が必要である。また、記憶ノードrinの電位がVth=0.5V以上である状態で読出しを行ったときの、ノード54の電位の期待値は、2.7V以上であり、記憶ノードrinの電位がVth=0.5V以下である状態で読出しを行ったときの、ノード54の電位の期待値は0.6V以下である。この場合、ノード54の電位のシミュレーション値が、ノード54の電位の期待値の範囲外であった場合は、読出し動作に関する回路のネットリストの修正が必要である。以上は、あくまで例であり、本発明の請求の範囲は、これらの例に限定されるものではない。
このようなシミュレーション装置によれば、記憶部を表すサブサーキットに記憶状態を示す記憶ノードを設けて、記憶部を表すサブサーキットは可変抵抗部の状態に応じて動作をする。そのため、記憶部を表すサブサーキットの動作後の状態が保持され、その状態に基づいて、さらに、記憶部を表すサブサーキットは次の動作を連続して行うことができる。書込みと読出しを複雑に組合せたシミュレーションにおいて、抵抗変化メモリ素子を表すサブサーキットが多数ある場合に、特に威力を発揮する。
また、遅延素子の導入により、セット後にリセットが起きやすいという、実際の抵抗変化メモリ素子と異なった振る舞いをすることを回避できる。また、サブサーキット中の抵抗値や容量値等を調整することにより、リセット時間、セット電圧、リセット電圧、高抵抗状態または低抵抗状態における抵抗値等のパラメータを自由に設定できる。ここで、リセット時間には、リセットの電圧条件を満たしている時間の累積時間が適用される。
以上により、抵抗変化メモリ素子を含む記憶部を用いた記憶装置のアナログシミュレーションを連続して行えるため、上記の記憶部を含むメモリ回路のシミュレーションを容易に行える抵抗変化メモリのシミュレーション装置、抵抗変化メモリのシミュレーション方法、及び回路設計支援方法を提供することができる。
(第2の実施の形態)
次に、第2の実施の形態について説明する。以下の説明では、第1の実施の形態で説明した同一の構成要素には、同一の符号を付し、その構成要素及び作用の説明の詳細については省略する。
この第2の実施の形態では、第1の実施の形態で説明した遅延する電圧信号を可変抵抗部10から記憶部20に送信するのではなく、記憶部20から可変抵抗部10に送信することを特徴としている。
図23は抵抗変化メモリ素子に相当するサブサーキットの中身を表す回路図である。この図は、図11に示す抵抗変化メモリ素子43に相当するサブサーキットの中身を表す第2の実施の形態に関する回路図が示されている。
図23に示すサブサーキットは、可変抵抗部10、遅延電位発生部60、記憶部20を含む構成をしている。そして、この回路では、抵抗変化メモリ素子の状態、即ち高抵抗状態か、または低抵抗状態かの情報を、記憶部20の記憶ノードrinで表す。
可変抵抗部10は、高抵抗素子R11、低抵抗素子R12、抵抗素子R13、抵抗素子R14、ノードbl及びノードglを含む構成をし、ノードblとノードglとの間に高抵抗素子R11と抵抗素子R13とが直列に接続されている。また、ノードblとノードglとの間に低抵抗素子R12と抵抗素子R14とが直列に接続されている。
高抵抗素子R11は、高抵抗状態の抵抗変化メモリ素子43の特性を表し、自分自身にかかる電圧によって抵抗値が変わる電圧依存抵抗である。例えば、高抵抗素子R11は、図4のような特性になるようにする。
低抵抗素子R12は、低抵抗状態の抵抗変化メモリ素子の特性を表す素子である。低抵抗素子R12は、自分自身にかかる電圧によって抵抗値が変わる電圧依存抵抗であっても、自分自身にかかる電圧によって抵抗値が変わらない一定抵抗でもよい。一定抵抗とした場合は、低抵抗素子R12は、例えば4kΩが適する。
一方、記憶部20は、高電位電源ノードvddr、低電位電源ノードvssr、記憶ノードrin、リセッタスイッチ及びリセッタ負荷抵抗素子として機能する抵抗素子R21、セッタスイッチとして機能する抵抗素子R23及びキャパシタC24を含む構成をし、高電位電源ノードvddrと低電位電源ノードvssrとの間に、抵抗素子R21及び抵抗素子R23が直列に接続されている。そして、記憶ノードrinと低電位電源ノードvssrとの間には、キャパシタC24が接続されている。
ここで、抵抗素子R21及び抵抗素子R23は、2つのノードbl−ノードgl間の電圧に依存する電圧依存抵抗である。
また、抵抗素子R21は、2つのノードbl−ノードgl間の電圧がリセット電圧以上セット電圧以下となった場合に、抵抗値がある程度低い値R22になり、それ以外の場合は、非常に高い抵抗(開放状態)になる。
そして、記憶ノードrinの電位は、抵抗素子R21及び抵抗素子R23の抵抗値を変化させることにより、変化する。
遅延電位発生部60は、遅延素子61、ノードdrin、低電位電源ノードvssrを含む構成をしている。遅延素子61は、セット後にリセットが起きやすい状態になることを防ぐための素子である。遅延素子61は、記憶ノードrinの電位をある程度短い遅延t3を持たせてノードdrinの電位にコピーする。
図24は抵抗変化メモリ素子を構成する素子の役割と機能を説明した図である。図24に記述された例は、HSPICE等のアナログシミュレータのネットリスト記述において、回路素子の名称をどのように設定するかの例が示されている。
以上で、図23に示す回路の構成とそれぞれの素子の役割についての説明が終わったので、次に、図23に示す回路の動作について説明する。
図25は抵抗変化メモリ素子に相当する回路図である。図25は、図23に示すサブサーキットの動作を容易に理解するために、図23に示す回路構成をより具体的に説明した図である。図25では、第2の実施の形態のシミュレーション装置の基本原理が示されている。尚、この図においては、シミュレーション装置の基本原理を容易に理解するためにスイッチ機能のある抵抗素子を直接スイッチ素子として表記している。
図25の左側は、可変抵抗部10であり、右側は、記憶部20である。記憶部20は、記憶を保持し、また可変抵抗部10に印加される電圧等の情報に応じて状態と記憶内容を変化する機能を有する。また、可変抵抗部10は、記憶部20の記憶ノードrinの電位によって、2つのノードbl−ノードgl間の抵抗値を変化させる機能を有する。
図25に示す回路構成は、図11に示す抵抗変化メモリ素子43の状態、即ち高抵抗状態か、或いは低抵抗状態かの情報を、記憶部20の記憶ノードrinで表している点に特徴がある。以上の点に関しては、第1の実施の形態で説明した内容と同様である。
第2の実施の形態と第1の実施の形態との相違は、以下に説明する遅延電位発生部の役割である。
高抵抗状態を選択するスイッチSW13、低抵抗状態を選択するスイッチSW14は、記憶ノードrinの電位に応じて、常にどちらか一方が導通している。
例えば、記憶ノードrinの電位が高い場合には、2つのノードbl−ノードgl間の抵抗値が高抵抗であり、記憶ノードrinの電位が低い場合には、2つのノードbl−ノードgl間の抵抗値が低抵抗になる制御をする場合、記憶ノードrinの電位が高い場合にスイッチSW13が導通し、記憶ノードrinの電位が低い場合にスイッチSW14が導通する。この点の考え方は、第1の実施の形態と同様である。
第2の実施の形態においては、リセッタスイッチSW21またはセッタスイッチSW23を導通させるか否かの判断には、2つのノードbl−ノードgl間の電圧を遅延させずにそのまま用いる。
しかし、スイッチSW13及びスイッチSW14は、記憶ノードrinの電位を短い時間遅延させた電位に応じて、常にどちらか一方が導通するようにする。
即ち、第1の実施の形態では、リセッタスイッチSW21、セッタスイッチSW23を導通させるか否かの判断に、2つのノードbl−ノードgl間の電圧を短い時間遅延させた電圧を用いている。これに対し、第2の実施の形態では、スイッチSW13、スイッチSW14は、記憶ノードrinの電位を短い時間遅延させた電位に応じて、常にどちらか一方を導通させるようにする。つまり、第1の実施の形態と第2の実施の形態との差異は、遅延させる電位信号を発生する遅延電位発生部と、その影響が与えられるスイッチを変更させた点である。
こうすることにより、セット時に、抵抗変化メモリ素子43は、以下のような動作をする。2つのノードbl−ノードgl間の電圧が、セットの電圧条件を満たしている状態では、セッタスイッチSW23が導通状態で、リセッタスイッチSW21は絶縁状態(開放状態)である。ここで、記憶ノードrinの電位が基準電位Vthを上回った状態から下回った状態に変化した直後では、2つのノードbl−ノードgl間の抵抗はすぐには低抵抗状態にならない。
言い換えると、記憶ノードrinの電位が基準電位Vthを下回った状態でも、2つのノードbl−ノードgl間の抵抗値の高抵抗の状態が遅延時間の分の長さだけ続く。
この遅延時間分の時間では、可変抵抗部10において、セッタスイッチSW23が導通状態で、リセッタスイッチSW21は絶縁状態だと認識する。そのため、遅延時間分の時間が終わるまでには、記憶ノードrinの電位は低電位電源ノードvssrと略同じ電位に到達する。その結果、セット後にリセットの電圧条件を満たしたとしても、記憶ノードrinの電位が低電位電源ノードvssrと同じ電位の状態からリセット動作が始まるため、リセットの電圧条件が満たされる時間は、記憶ノードrinの電位が低電位電源ノードvssrの電位から高電位電源ノードvddrの電位まで上昇するリセッタ負荷抵抗素子R22とキャパシタC24とのRC積で調整できることになる。
このように、第2の実施の形態においては、セット直後にリセットがおきやすい問題を回避するために、記憶ノードrinの電位が基準電位Vthより下回った状態で、2つのノードbl−ノードgl間の抵抗値が高抵抗の状態が遅延時間の分の長さだけ続くことになる。
その他の各素子の役割、リセット時間の設定方法等は、第1の実施の形態と同様である。
以上で、サブサーキットの動作の説明が終わったので、再び、図23に戻り、シミュレーション装置に用いるサブサーキットを図25に示す基本原理と対応させながらその動作を説明する。以下に、シミュレータ上でのより具体的な回路素子の配置と接続について説明する。また、HSPICEなどのアナログシミュレータにおいて、図25で用いたスイッチ類は、電圧依存抵抗を用いるのがよい。
HSPICEでは、電圧依存抵抗は、特定の2点間の符号付の電圧によって抵抗値の変化する素子として記述する。ここで、特定の2点間の符号付の電圧とは、特定の2点の電位をVDA、VDBとするとき、「VDB−VDA」で表される。以下では、低電圧電源ノードvssrの電位Vvssrは0.0Vとし、「記憶ノードrinの電位」は、「記憶ノードrinと低電圧電源ノードvssrの間の電圧」、「記憶ノードrinの電位から低電圧電源ノードvssrの電位を引いたもの」と同じとして説明する。しかし、本特許の請求の範囲は、Vvssr=0.0Vの場合に限定されるものではない。
また、高抵抗状態及び低抵抗状態における抵抗変化メモリ素子の読出し特性は、高抵抗素子R11及び低抵抗素子R12の特性を調整することにより、自由に調整できる。尚、高抵抗素子R11及び低抵抗素子R12は、電圧依存電流源を用いても代用できる。
抵抗素子R13及び抵抗素子R14は、記憶ノードrinの電位には直接的に依存せず、遅延電位発生部60のノードdrinの電位に依存する抵抗である。即ち、記憶ノードrinの電位を遅延時間t3だけ遅延させた電位に依存する。
また、抵抗素子R13は、スイッチとして機能し、ノードdrinの電位が高い場合には、非常に低抵抗(導通状態)になり、ノードdrinの電位が低い場合には非常に高抵抗(開放状態)となる。
抵抗素子R14は、スイッチとして機能し、ノードdrinの電位が基準電位Vthより低い場合に非常に低抵抗(導通状態)になり、ノードdrinの電位が基準電位Vthより高い場合は非常に高抵抗(開放状態)となる。このように抵抗素子R13及び抵抗素子R14が非常に高抵抗(開放状態)或いは非常に低抵抗(導通状態)になるかの基準は、基準電位Vthによって決定され、その値は、例えば0.5Vが適する。
シミュレーションの安定動作のため、抵抗素子R13及び抵抗素子R14の両方が共に非常に高抵抗(開放状態)になるノードdrinの電位は無いほうがよい。
ノードdrinの電位が丁度Vthのときに、抵抗素子R13及び抵抗素子R14の両方が共に非常に高抵抗(開放状態)になることを避けるための一つの方法として、抵抗素子R13は、ノードdrinの電位が0.4999V以上で非常に低抵抗(導通状態)になり、抵抗素子R14は、ノードdrinの電位が0.5001V以下で非常に低抵抗(導通状態)になるようにすることなどが挙げられる。
読出し特性における現実の素子との差を無視できるくらい小さくするため、抵抗素子R13及び抵抗素子R14の非常に低抵抗(導通状態)の状態の抵抗値は、高抵抗素子R11及び低抵抗素子R12の抵抗値に比べて非常に小さく、少なくとも1桁以上小さくし、抵抗素子R13及び抵抗素子R14の非常に高抵抗(開放状態)の状態の抵抗値は、高抵抗素子R11及び低抵抗素子R12の抵抗値に比べて非常に大きく、少なくとも1桁以上大きくするべきである。
抵抗素子R13及び抵抗素子R14の低抵抗(導通状態)の状態の抵抗値は、例えば1mΩが適し、抵抗素子R13及び抵抗素子R14の非常に高抵抗(高抵抗状態)の状態の抵抗値は、例えば1TΩが適する。具体的には、例えば、抵抗素子R13は、ノードdrinの電位が0.4999V以上の場合に1mΩになり、ノードdrinの電位が0.4999V以下場合には1TΩとなる。抵抗素子R14は、ノードdrinの電位が0.5001V以下の場合に1mΩになり、ノードdrinの電位が0.5001V以上の場合には1TΩになる。
導通状態にある抵抗素子R13及び抵抗素子R14自体の抵抗値を充分に低くさせると、記憶ノードrinの電位が標準電位Vthより高い場合は、図23に示すノードbl−ノードgl間には、高抵抗素子R11のみが単独で存在するようになり、記憶ノードrinの電位が標準電位Vthより低い場合は、低抵抗素子R12のみが単独で存在するようになる。
遅延電位発生部60の遅延素子61は、上述したように、セット後にリセットが起きやすい状態になることを防ぐための素子である。遅延素子61は、記憶ノードrinの電位をある程度短い遅延時間(t3)を持たせてノードdrinの電位にコピーする。ここで、ノードdrinの電位にコピーするとは、ノードdrinと低電位電源ノードvssrの間の電圧にコピーするということである。「drinの電位」と、「ノードdrinと低電位電源ノードvssrの間の電圧」、「ノードdrinの電位から低電位電源ノードvssrの電位を引いたもの」は、同義とする。
遅延時間t3としては、例えば、1nsが適する。遅延素子61は、HSPICEに存在するので、そのまま用いればよい。
遅延素子61は、例えば、「E61 drin vssr VCVS DELAY rin vssr TD=1ns」のように記述する。
これで、1nsの遅延を与えて、記憶ノードrinと低電位電源ノードvssrの間の電圧を、ノードdrinと低電位電源ノードvssrの間の電圧にコピーせよ、という意味になる。
記憶部20の抵抗素子R23は、上述したように、2つのノードbl−ノードgl間の電圧がセット電圧以上の電圧となった場合にある程度低い低抵抗(抵抗値R23)になり、それ以外の場合は、非常に高い抵抗(開放状態)になる。
また、抵抗素子R21のある程度低い抵抗値R22とは、例えば100Ωが適する。抵抗素子R23の低抵抗(導通状態)の状態の抵抗値R23は、例えば、1mΩが適する。抵抗素子R21の非常に高抵抗(開放状態)の状態の抵抗値は、例えば1018Ωが適する。
また、セット電圧とリセット電圧は、例えば、それぞれ1.6V、0.75Vが可能である。セット電圧とリセット電圧が自由に調整できることは言うまでもない。具体的には、例えば、抵抗素子R21は、2つのノードbl−ノードgl間の電圧が0.75V以上1.6V以下となった場合に抵抗値が100Ωになり、それ以外の場合は、1018Ωになり、抵抗素子R23は、2つのノードbl−ノードgl間の電圧が1.6V以上の電圧となった場合に1mΩになり、それ以外の場合は、1018Ωになる。
キャパシタC24は、記憶保持をし、遅延を与えるための一定容量を有する容量素子である。キャパシタC24は、抵抗素子R21及び抵抗素子R23の両方が非常に高い抵抗値(開放状態)のときに、記憶ノードrinの電位を保持する機能を有する。また、抵抗素子R21のある程度低い値R22とキャパシタC24の容量値C24の積t2は、リセット時間を決定する。キャパシタC24の容量値C24は、例えば1nFが適する。
セット時及びリセット時の記憶ノードrinの電位変化の時定数は、それぞれ、t1=R23C24、t2=R22C24と表されるが、ここで挙げた例では、t1=1ps、t2=100ns、t3=1nsである。従って、t1<<t3<<t2の関係を満たしていることが分かる。高電位電源ノードvddrの電位をVvddr=1.0V、低電位電源ノードvssrの電位は既に述べたとおりVvssr=0.0Vとする。このとき、式(1)〜式(3)により、リセットに要する時間T2=70.3nsとなる。一方、セットに要する時間は、遅延素子61が機能する遅延時間t3でおよそ決まり、約1nsである。
遅延電位発生部60には、第1の実施の形態で説明したように、HSPICEで予め与えられている遅延素子61を使わなくてもよい。
尚、図23に示した回路にて可変抵抗部10に並列に、第1の実施の形態で説明した図7のように、キャパシタC15を挿入する場合がある。
図23に示した回路は、以上のような動作原理に基づいて実際の抵抗変化メモリ素子に極めて近い電気的特性を示す。
図23に示したサブサーキットが図11に示す回路の抵抗変化メモリ素子43として組込まれることにより、図11に示す回路は、実際の抵抗変化メモリ素子を含む回路と極めて近い回路動作をする。従って、正しくネットリストを記述し、抵抗変化メモリ素子43として組込むネットリストのパラメータが正しいものであれば、製品或いはCTEGとして製造或いは試作する半導体チップ或いは半導体マクロと同等な動作をシミュレーション装置上で再現することが可能である。その結果、図8、図9で示したような方法で、抵抗変化メモリ素子を含む回路の設計を支援し、効率化することができる。
第2の実施の形態においても、第1の実施の形態の図13乃至図22を用いて説明した回路設計支援方法の例やシミュレーションの例と同様な回路設計支援方法やシミュレーションが可能である。
また、第2の実施の形態の発明の効果は、第1の実施の形態と同様である。
(第3の実施の形態)
次に、第3の実施の形態について説明する。以下の説明では、第1、2の実施の形態で説明した同一の構成要素には、同一の符号を付し、その構成要素及び作用の説明の詳細については省略する。
第3の実施の形態では、記憶部にプルバッカスイッチを備えたことを特徴としている。
図26は抵抗変化メモリ素子に相当するサブサーキットの中身を表す回路図である。この図は、図11に示す抵抗変化メモリ素子43に相当するサブサーキットの中身を表す第3の実施の形態に関する回路図である。
この図に示す回路は、可変抵抗部10、遅延電位発生部70、記憶部20を含む構成をしている。図26に示す回路構成では、抵抗変化メモリ素子の状態、即ち高抵抗状態か低抵抗状態かの情報を、記憶部20の記憶ノードrinで表している点に特徴がある。
可変抵抗部10は、高抵抗素子R11、低抵抗素子R12、抵抗素子R13及び抵抗素子R14を含む構成をしている。また、遅延電位発生部70は、遅延素子71を含む構成をしている。これら2つの部分に関しては、第1の実施の形態における図1に示す可変抵抗部10及び遅延電位発生部30と同一であり、その説明は省略する。
記憶部20は、リセッタスイッチ及びリセッタ負荷抵抗素子として機能する抵抗素子R21、セッタスイッチとして機能する抵抗素子R23、プルバッカスイッチとして機能する抵抗素子R25,R26及びキャパシタC24を含む構成をし、高電位電源ノードvddrと低電位電源ノードvssrとの間に、抵抗素子R21及び抵抗素子R23が直列に接続されている。また、記憶ノードrinと低電位電源ノードvssrとの間には、キャパシタC24の他、抵抗素子R25,R26が並列に接続されている。ここで、抵抗素子R25,R26は可変抵抗である。
図27は抵抗変化メモリ素子を構成する素子の役割と機能を説明した図である。この図に示す記述例とは、HSPICE等のアナログシミュレータのネットリスト記述において、回路素子の名称をどのように設定するかの例を示している。この図では、可変抵抗部の記述例は、図5と同一なので、その記載を省略している。
以上で、図26に示す回路の構成とそれぞれの素子の役割についての説明が終わったので、次に図26に示す回路の動作について説明する。
図28は抵抗変化メモリ素子に相当する回路図である。図28は、図26に示すサブサーキットの動作を容易に理解するために、図26に示す回路構成をより具体的に説明した図である。図28では、第3の実施の形態のシミュレーション装置の基本原理が示されている。尚、この図においては、シミュレーション装置の基本原理を容易に理解するために、スイッチ機能のある抵抗素子を直接スイッチ素子として表記している。
図28の左側は、可変抵抗部10であり、右側は、記憶部20である。記憶部20は、記憶を保持し、可変抵抗部10に印加される電圧等の情報に応じて状態と記憶内容を変化させる機能を有している。一方、可変抵抗部10は、記憶部20の記憶ノードrinの電位によって、2つのノードbl−ノードgl間の抵抗値を、変化させる機能を有している。
図28に示す回路構成では、抵抗変化メモリ素子の状態、即ち高抵抗状態か、または低抵抗状態かの情報を、記憶部を表す記憶部20の記憶ノードrinで表している点に特徴がある。以上の点は、図1を用いて説明した第1の実施の形態におけると同様である。
また、第3の実施の形態における可変抵抗部10は、図1に示す可変抵抗部10と同様である。従って、以下では、第3の実施の形態における記憶部20を詳細に説明する。
記憶部20は、高電位電源ノードvddr、低電位電源ノードvssr、記憶ノードrin、リセッタスイッチSW21、リセッタ負荷抵抗素子R22、セッタスイッチSW23、キャパシタC24及びプルバッカスイッチSW25,SW26を含む構成をしている。
第3の実施の形態における記憶部20では、2つの直列に接続されたスイッチであるプルバッカスイッチSW25,SW26を備えている点が、図1と異なる。これら2つのプルバッカスイッチSW25,SW26によって、記録部20は、2つのノードbl−ノードgl間の抵抗が低抵抗状態であって、このようなリセットの電圧条件を満たした状態が途切れたときに、記憶ノードrinの電位を低電位電源ノードvssrと同じ電位に戻す機能を有する。これら2つのプルバッカスイッチSW25,SW26を備えることにより、リセットに要する時間は、累積時間ではなく連続時間になる(後述)。
プルバッカスイッチSW25は、2つのノードbl−ノードgl間の電圧が、リセットの電圧条件を満たさなくなった場合に導通する。また、プルバッカスイッチSW26は、記憶ノードrinの電位が低い場合に導通する。つまり、プルバッカスイッチSW25は、「リセットの電圧条件を満たす状態が途切れたときに」に導通し、プルバッカスイッチSW26は、「2つのノードbl−ノードgl間の抵抗が低抵抗状態のときに」に導通する。2つのプルバッカスイッチSW25,SW26の経路を通じて記憶ノードrinと低電位電源ノードvssrが導通するのは、2つのプルバッカスイッチSW25,SW26の両方が共に導通したときである。即ち、2つのノードbl−ノードgl間の抵抗が低抵抗状態であり、且つリセットの電圧条件を満たした状態が途切れたときに、プルバッカスイッチSW25,SW26の両方が導通する。
セッタスイッチSW23及びリセッタスイッチSW21は、それぞれ、セットの電圧条件が満たされるとき及びリセットの条件が満たされるときに導通する。これらの作用については、第1の実施の形態と同じであるので、これ以上の説明は省略する。因みに、セットの電圧条件が満たされるときに、プルバッカスイッチSW25を導通させるかどうかは、殆ど動作に影響しない。何故なら、セットの電圧条件が満たされるときは、セッタスイッチSW23が導通しているからである。
セットの条件もリセットの条件も満たさない場合は、セッタスイッチSW23もリセッタスイッチSW21も導通しない。この場合、記憶ノードrinの電位が、基準電位Vth以上であり、高抵抗状態のときは、プルバッカスイッチSW26が導通せず、キャパシタC24の機能により、電位は保持される。
一方、記憶ノードrinの電位が、リセットの電圧条件を満たした状態が途切れ、標準電位Vth以下になり、さらに2つのノードbl−ノードgl間の抵抗が低抵抗状態のときは、2つのプルバッカスイッチSW25及びプルバッカスイッチSW26の両方が導通し、記憶ノードrinの電位は、低電位電源ノードvssrと同じ電位となる。
第1の実施の形態の説明と同様に、セット後にリセットがおきやすい状態を回避するために、遅延素子が必要である。
第3の実施の形態においては、第1の実施の形態に近い機能を有した遅延素子を用いている。セッタスイッチSW23、リセッタスイッチSW21及びプルバッカスイッチSW26を導通させるかどうかの判断に、2つのノードbl−ノードgl間の電圧を短い時間遅延させた電圧を用いる。
即ち、セッタスイッチSW23は、2つのノードbl−ノードgl間の電圧を短い時間遅延させた電圧信号がセット電圧以上である場合に導通し、リセッタスイッチSW21は、2つのノードbl−ノードgl間の電圧を短い時間遅延させた電圧信号がリセット電圧以上セット電圧以下である場合に導通するようにする。それに加えて、プルバッカスイッチSW25は、2つのノードbl−ノードgl間の電圧を短い時間遅延させた電圧信号がリセット電圧以下である場合に導通するようにする。
尚、第2の実施の形態で説明した遅延素子と第3の実施の形態における記憶部20は、組み合わせることも可能である。また、リセット時間の設定方法等は、第1の実施の形態と同様であり、ここでは説明を省略する。
次に、リセットの電圧条件を満たした状態から、2つのノードbl−ノードgl間にかかる電圧がリセット電圧以下になり(リセットの電圧条件が途切れ)、リセットの電圧条件を満たさない状態から、再びリセットの電圧条件を満たした場合に記憶ノードrinがどのように動作するかを説明する。
図29はリセットをする場合の記憶ノードrinの電位の変化を説明する図である。横軸は時刻(ns)、縦軸はrinの電位(V)を示している。尚、この図は、t2=100ns、t3=1ns、Vvddr=1.0V、Vvssr=0.0V、Vth=0.5V、T2=70.3nsという条件を用いて作成している。
図29における期間A及び期間Cは、リセットの電圧条件を満たしている期間である。期間Bは、リセットの電圧条件もセットの電圧条件も満たしていない期間、つまり、2つのノードbl−ノードgl間の電圧がリセット電圧以下の期間である。また、この図は、一例であり、上記の数値と後述する例に限定されるものではない。また、第3の実施の形態における理論と説明は、上記の数値と以下の例のみではなく、一例を用いて説明している。
期間A及び期間Cにおいては、記憶ノードrinの電位は、時定数t2で変化する。
そして、期間Aにおける記憶ノードrinの電位Vrinは、以下の式で表される。
Vrin(t)=Vvssr+(Vvddr−Vvssr)(1−exp(−(t−t3)/t2)
)……(4)
また、期間Aの長さをT2A、期間Bの長さをT4とするとき、期間Cにおける記憶ノードrinの電位Vrinは、以下の式で表される。
Vrin(t)=Vvssr+(Vvddr−Vvssr)(1−exp(−(t−(T2A+T4+
t3))/t2))……(8)
図29で示される構成では、リセットに要する時間は、連続時間が適用される。つまり、セットの電圧条件を満たさない限りにおいて、リセットの電圧条件を満たしている期間の連続時間がT2に達しない限りリセットが起きず、2つのノードbl−ノードgl間の抵抗値が高抵抗にならない。図29においては、期間A及び期間Cの長さをそれぞれT2A、T2Cとすると、T2A+T2C≧T2となっても、リセットが起きない。もし、T2A≧T2、或いは、T2C≧T2ならばリセットが起きる。この点が、第1の実施の形態との相違である。この相違は、プルバッカスイッチSW25,SW26の機能によって生じる。
さらに、第3の実施の形態を具体的数値例を挙げて説明する。
図28に示す高電位電源ノードvddrの電位は常に1.0V、低電位電源ノードvssrの電位は常に0.0V、リセッタ負荷抵抗素子R22の抵抗値は100Ω、キャパシタC24の容量値は1nFとする。記憶ノードrinの電位が0.5Vより高い場合に2つのノードbl−ノードgl間の抵抗値が高抵抗、記憶ノードrinの電位が0.5Vより低い場合に2つのノードbl−ノードgl間の抵抗値が低抵抗とする。これらを今まで用いた記号で表現すると、C24=1nF、R22=100Ω、t2=100ns、t3=1ns、Vvddr=1.0V、Vvssr=0.0V、Vth=0.5Vである。
この条件下では、T2=70.3nsとなる。また、式4、式8は、それぞれ、以下の式6、式9のようになることは容易に理解できる。但し、t2について数値を代入していない。
Vrin(t)=1−exp(−(t−t3)/t2)≒1−exp(−t/t2)……(6)
Vrin(t)=1−exp(−(t−(T2A+T4+t3))/t2)≒1−exp(−(t−(T2A+T4))/t2)……(9)
以上で、サブサーキットの動作の説明が終わったので、再び、図26に戻り、シミュレーション装置に用いるサブサーキットを図28に示す基本原理と対応させながらその動作を説明する。以下に、シミュレータ上でのより具体的な回路素子の配置と接続について説明する。HSPICEなどのアナログシミュレータにおいて、図28で用いたスイッチ類は、電圧依存抵抗を用いるのがよい。
HSPICEでは、電圧依存抵抗は、特定の2点間の符号付の電圧によって抵抗値が変化する素子として記述する。ここで、特定の2点間の符号付の電圧とは、特定の2点の電位をVDA、VDBとするとき、「VDB−VDA」で表される。以下では、低電圧電源ノードvssrの電位Vvssrは0.0Vとし、「記憶ノードrinの電位」は、「記憶ノードrinと低電圧電源ノードvssrの間の電圧」、「記憶ノードrinの電位から低電圧電源ノードvssrの電位を引いたもの」と同じとして説明する。しかし、Vvssr=0.0Vの場合のみに限定されるものではない。
記憶部20の抵抗素子R21、抵抗素子R23、抵抗素子R25、抵抗素子R26は、上述したようにノードdtmoの電位に依存する電圧依存抵抗である。2つのノードbl−ノードgl間の電圧に直接的に依存せず、ノードdtmoの電位に依存することによって、2つのノードbl−ノードgl間の電圧を遅延時間t3だけ遅延させた電圧に依存する。
抵抗素子R21は、ノードdtmoの電位がリセット電圧以上セット電圧以下となった場合に抵抗値がある程度低い値R22になり、それ以外の場合は、非常に高い抵抗(開放状態)になる。
抵抗素子R23は、ノードdtmoの電位がセット電圧以上の電圧となった場合に低抵抗(抵抗値R23)になり、それ以外の場合は、非常に高い抵抗(開放状態)になる。
抵抗素子R25は、ノードdtmoの電位がリセット電圧以下となった場合に低抵抗(抵抗値R25)になり、それ以外の場合は、非常に高い抵抗(開放状態)になる。
抵抗素子R26は、記憶ノードrinの電位が低い場合に非常に低抵抗(導通状態)になり、記憶ノードrinの電位が高い場合に非常に高抵抗(開放状態)になる。
抵抗素子R21のある程度低い抵抗値R22は、例えば100Ωが適する。抵抗素子R23,R25,R26の低抵抗の状態のそれぞれの抵抗値R23、R25、R26は、例えば、1mΩが適する。抵抗素子R21、抵抗素子R25,R26の非常に高抵抗(開放状態)の状態の抵抗値は、例えば1018Ωが適する。セット電圧とリセット電圧は、例えば、それぞれ1.6V、0.75Vが可能である。但し、セット電圧とリセット電圧は、自由に調整できる。
抵抗素子R26の抵抗値が非常に高抵抗(開放状態)或いは非常に低抵抗(導通状態)になるかの判断基準となる記憶ノードrinの電位は、抵抗素子R13及び抵抗素子R14が、非常に高抵抗(開放状態)になるか非常に低抵抗(導通状態)になるかの判断基準となる記憶ノードrinの基準電位Vthと同じとする。例えば、0.5Vが適する。
より具体的には、抵抗素子R21は、ノードdtmoの電位が0.75V以上1.6V以下となった場合に抵抗値が100Ωになり、それ以外の場合は、1018Ωになる。抵抗素子R23は、ノードdtmoの電位が1.6V以上の電圧となった場合に1mΩになり、それ以外の場合は、1018Ωになる。
抵抗素子R25は、ノードdtmoの電位が0.75V以下の場合に抵抗値が1mΩになり、それ以外の場合は、1018Ωになる。抵抗素子R26は、記憶ノードrinの電位が0.5V以下の場合に抵抗値が1mΩになり、それ以外の場合は、1018Ωになる。
キャパシタC24は、記憶保持をし、遅延を与えるための一定容量を有する容量素子である。キャパシタC24は、抵抗素子R21及び抵抗素子R23の両方が共に非常に高抵抗(開放状態)であり、かつ、抵抗素子R25、抵抗素子R26のうち、少なくとも片方が非常に高抵抗(開放状態)のときに、記憶ノードrinの電位を保持する機能を有する。また、抵抗素子R21のある程度低い値R22とキャパシタC24の容量値C24の積t2は、リセット時間を決定する。キャパシタC24の容量値C24は、例えば1nFが適する。
t1=R23C24、t2=R22C24と表されるが、ここで挙げた例では、t1=1ps、t2=100ns、t3=1nsである。従って、t1<<t3<<t2の関係を満たしていることが分かる。高電位電源ノードvddrの電位をVvddr=1.0V、低電位電源ノードvssrの電位は、Vvssr=0.0Vとする。このとき、式(1)〜式(3)により、リセットに要する時間T2=70.3nsとなる。一方、セットに要する時間は、遅延素子71が機能する遅延時間t3でおよそ決まってしまい、約1nsである。
尚、図26に示す回路において、可変抵抗部10に並列に、キャパシタC15を挿入する場合がある。この場合の可変抵抗部10は、図7のようになる。実際の抵抗変化メモリ素子は、2つの導体からなる平行平板間に比較的抵抗値の高い物質が挿入された構造をとっているため、平行平板間に容量成分が存在する。キャパシタC15は、この平行平板間の容量成分を再現するものである。キャパシタC15が存在しても、図26に示した回路の本質的な動作に変わりはない。
実際のシミュレーション結果を具体的な例を挙げて説明する。以下で挙げる例は、第1の実施の形態において、図12乃至図18、図20で示した回路設計支援方法の例と必ずしも対応したものではなく、シミュレーション結果の一例を示している。
以下に挙げる例は、図11に示す抵抗変化メモリ素子43を含む回路の、各トランジスタのゲートノードXWE、CL1、CPL1、WL、PRCに特定の電位信号を与え、書込みを行い、それぞれの書込みの後に読出しを行い、書込んだとおりの読出し結果が得られ、各ノードの電位が意図したものとなっているかどうかを確認するというものである。
ここでの抵抗変化メモリ素子43には、図26に示したネットリストを用いている。この点が、第1の実施の形態におけるシミュレーション結果の具体例とは異なる。以下で挙げるシミュレーション結果は、実際にHSPICEによってシミュレーションを行うことによって得られた結果である。
VDDH=3.3Vとし、抵抗変化メモリ素子の特性として用いたパラメータは、C24=1nF、R22=100Ω、R23=1mΩ、R25=1mΩ、R26=1mΩ、t1=1ps、t2=100ns、t3=1ns、Vvddr=1.0V、Vvssr=0.0V、Vth=0.5V、T2=70.3ns、そして、リセット電圧が0.75V、セット電圧が1.60Vである。
シミュレータ上での各時刻において、どのような動作モードになっているかは、第1の実施の形態にて、図19で示したものと同一である。最初の100nsは省電力モード、次の100nsはセットモード、その次の100nsはセット後の読出し、その次の200nsはリセットモード、その次の100nsはリセット後の読出し、その次の100nsはセットモード、その次の100nsはセット後の読出し、その次の200nsはリセットモード、その次の100nsはリセット後の読出しである。
省電力モードとは、電力を消費しないようにする待機状態のモードである。セットモードとは、抵抗変化メモリ素子43がセットの電圧条件を満たす電圧信号を与えるように回路を動作させるモードであり、リセットモードとは、抵抗変化メモリ素子43がリセットの電圧条件を満たす電圧信号を与えるように回路を動作させるモードである。
読出しモードでは、抵抗変化メモリ素子43の記憶即ち抵抗状態に応じて、ノード54に電位信号が出力されるモードである。読出しモードにおいては、抵抗変化メモリ素子43の抵抗状態が低抵抗である場合は、ノード54に0.0Vに近い低い電位を、抵抗変化メモリ素子43の抵抗状態が高抵抗である場合は、ノード54に3.3Vに近い高い電位をそれぞれ出力する。
2回あるリセットモードのうち1回目、即ち、時刻300〜500nsにおいては、抵抗変化メモリ素子43がリセットの電圧条件を満たす状態が長時間連続する連続モードである。一方、リセットモードのうち2回目、即ち、時刻800〜1000nsにおいては、抵抗変化メモリ素子43がリセットの電圧条件を満たす状態と満たさない状態を10ns程度の比較的短い時間ごとに繰返す、断続モードである。このような断続モードは、実際の抵抗変化メモリでは用いないかもしれないが、このような2つのリセットモードの動作の違いを示すため、このような設定とした。
図30はXWE、CL1、CPL1、WL及びPRCとして与えた信号の波形を説明する図である。図11に示す回路の詳細な説明は本発明の範囲を超えるため、ここでは省略するが、図19で示した動作をさせるための信号を与えたことになる。
図31はシミュレーション結果として得られた各ノードの電位を説明する図である。ここで、ノード54に注目する。時刻200〜300nsにおいては、ノード54の電位は0.0Vに近い電位であり、抵抗変化メモリ素子43の低抵抗状態が読出されたものと推測できる。
時刻500〜600nsにおいては、ノード54の電位は3.3Vに近い電位であり、抵抗変化メモリ素子43の高抵抗状態が読出されたものと推測できる。
時刻700〜800nsにおいては、ノード54の電位は0.0Vに近い電位であり、抵抗変化メモリ素子43の低抵抗状態が読出されたものと推測できる。
時刻1000〜1100nsにおいては、ノード54の電位は0.0Vに近い電位であり、抵抗変化メモリ素子43の低抵抗状態が読出されたものと推測できる。
従って、1回目のセット後の読出しにおいては低抵抗状態が読出され、1回目のリセット後の読出しにおいては高抵抗状態が読出され、2回目のセット後の読出しにおいては低抵抗状態が読出され、2回目のリセット後の読出しにおいても低抵抗状態が読出されていることが推測できる。ここで、2回目のリセット後の読出しにおいても低抵抗状態が読出されていることは、第1の実施の形態におけるシミュレーション結果の具体例と異なる。
また、図32はシミュレーション結果として得られた各ノードの電位を説明する図である。図32には、抵抗変化メモリ素子43の両端の電圧、選択トランジスタ44を流れる電流、抵抗変化メモリ素子を表すサブサーキット中のノードdtmoの電位、抵抗変化メモリ素子を表すサブサーキット中の記憶ノードrinの電位が示されている。ここで、今回のシミュレーションで用いた図26に示すネットリストは、抵抗変化メモリ素子1つのみを含む。従って、図11に示すノード51と図26に示すノードbl、図11に示すノード52と図26に示すノードglは同じノードを表している。
第1の実施の形態と結果が異なる解釈には、図31及び図32の各電圧、電位、電流の信号を調べるとよい。特に、図26に示す記憶ノードrinの電位を調査することによって、特定時刻において高抵抗状態が書込まれているか、低抵抗状態が書込まれているかどうかを調査することができる。例えば、時刻490nsにおいて、記憶ノードrinの電位は、Vth=0.5Vより高い電位となっている。従って、時刻490nsにおける抵抗変化メモリ素子の状態は、高抵抗であるということが分かる。
1回目のリセットモードにおいては、時刻300nsにおいてリセットの電圧条件が満たされる状態が始まり、そこからT2=70.3nsが経過した時刻370ns付近にて記憶ノードrinの電位がVth=0.5Vに達し、リセットが起きていることが分かる。図31及び図32の各電圧、電位、電流信号を見ると、この時刻にいくつかの電圧、電位、電流信号が変化していることが分かる。
2回目のリセットモードにおいては、最初に時刻800nsにおいてリセットの電圧条件が満たされる状態が始まる。しかし、その後記憶ノードrinの電位がVth=0.5Vに到達せず、リセットが起きていないことが分かる。ここで、抵抗変化メモリ素子43の両端の電圧に注目すると、リセットの電圧条件である0.75V以上1.6V以下という条件を満たす期間と満たさない期間が繰返されていることが分かる。図26に示す2つのプルバッカスイッチの機能により、リセットの電圧条件を満たさない状態になると、記憶ノードrinの電位は、低電位電源ノードvssrと同じ電位に戻されてしまい、リセットの電圧条件を連続したT2=70.3nsの時間だけ満たさない限り、永久にリセットが起きないためである。この点が、第1の実施の形態と異なる。当然、この後の読出しにおいては、低抵抗状態が読出される。
尚、セットは、事実上無限小とみなせる極めて短い時間で起きるため、図31及び図32の結果では、セットの電圧条件が満たされるとすぐに起きる。例えば、時刻100nsでは、セットが起こっていることが抵抗変化メモリ素子を表すサブサーキット中の記憶ノードrinの電位がVvssr=0.0Vと同じ電位になっていることから分かる。ここで、もし遅延素子71が無かったとすると、記憶ノードrinの電位がVth=0.5Vと同程度で止まってしまい、セット直後にリセットが極めて起きやすい状態となってしまい、現実の抵抗変化メモリ素子と異なってしまう。
ここで挙げたサブサーキットの例では、シミュレーション対象のネットリストに抵抗変化メモリ素子を表すサブサーキットが1つのみ存在する。しかし、シミュレーション対象のネットリストに抵抗変化メモリ素子を表すサブサーキットが多数存在する場合でもこのサブサーキットを使ったシミュレーションは可能であり、このような場合により威力を発揮する。実際のメモリ製品や製品に近いCTEGでは、シミュレーション対象のネットリストに抵抗変化メモリ素子を表すサブサーキットが多数存在する。尚、シミュレーション対象のネットリストに抵抗変化メモリ素子を表すサブサーキットが多数とは、ネットリスト上で、抵抗変化メモリ素子を表すサブサーキットは1箇所のみに記述されていても、そのサブサーキットが多数の箇所で呼び出されている場合を含む。
ここで、仮に、2回目のリセットにおいて、高抵抗状態が書込まれることを期待したとする。その場合、ここで示したシミュレーション結果の例では、期待した結果と異なることになる。つまり、電圧、電位、電流信号のシミュレーション値と期待値が一致しなかった部分が存在する。この場合、素子属性、ネットリスト等を修正する必要がある。ここで、さらに、抵抗変化メモリ素子の特性は、図26〜図29を用いて説明した特性であることが明らかであったものとする。このような場合、シミュレーション対象のネットリストを修正する必要があると判断することができる。2回目のリセット動作においては、抵抗変化メモリ素子43がリセットの電圧条件を満たす状態と満たさない状態を10ns程度の比較的短い時間ごとに繰返す断続モードであったが、これでは抵抗変化メモリ素子はリセットしない。この断続モードを連続モードとする、つまり、2回目のリセット動作において、1回目のリセット動作と同様になるように、XWEの信号を修正するようにする。このように修正した後に、再度シミュレーションを行う。
本実施例による発明の効果は、以下の通りである。記憶部を表すサブサーキットに記憶状態を示す記憶ノードを設けて、記憶部を表すサブサーキットはその記憶ノードに応じて動作をする。そのため、記憶部を表すサブサーキットの動作後の状態が保持され、その状態に基づいて、さらに、記憶部を表すサブサーキットは次の動作を連続して行える効果がある。この効果は、書込みと読出しを複雑に組合せたシミュレーションにおいて、抵抗変化メモリ素子を表すサブサーキットが多数ある場合に、特に威力を発揮する。
また、遅延素子の導入により、セット後にリセットが起きやすいという、本来の抵抗変化メモリ素子と異なった振る舞いをすることを回避できる。加えて、サブサーキット中の抵抗値や容量値等を調整することにより、リセット時間、セット電圧、リセット電圧、高抵抗状態または低抵抗状態における抵抗値等のパラメータを自由に設定できる。ここで、リセット時間には、リセットの電圧条件を満たしている時間の連続時間が適用される。
以上により、抵抗変化メモリ素子を含む記憶部を用いた記憶装置のアナログシミュレーションを連続して行えるため、上記の記憶部を含む、メモリ回路のシミュレーションを容易に行える抵抗変化メモリのシミュレーション装置、抵抗変化メモリのシミュレーション方法、及び回路設計支援方法を提供することができる。
(第4の実施の形態)
第4の実施の形態は、第1〜3の実施の形態の抵抗変化メモリの回路設計の支援方法に用いる、回路設計支援装置に関するものである。
図33は回路設計支援装置を説明する図である。この装置は、抵抗変化メモリ素子を含む記憶部を用いた記憶装置の回路設計を支援する回路設計支援装置である。この回路設計支援装置によって、図9に示すフローチャートが確実に実行される。
回路設計支援装置は、シミュレーション部106、変更部107、動作確認部108及び入出力部109を含む構成をしている。
回路設計支援装置は、シミュレーション部106によって、抵抗変化メモリ回路のシミュレーションが行われる。具体的には、シミュレーション部106は、ライブラリ100、記憶部を表すサブサーキット101、ネットリスト102、初期設定電圧103及び期待電圧104からのデータを、入出力部109から受け取り、記憶装置を構成する回路部品間の接続ノードの電圧の時間変化を求める。
ここで、記憶部を表すサブサーキット101は、サブサーキットを構成する回路部品を接続する接続ノードの内の一つ(例えば、記憶ノードrin)が、記憶部の記憶状態に対応する電圧を保持する記憶ノードとなっているサブサーキットのデータである。
ネットリスト102は、記憶装置を構成する回路部品間の接続関係が記載されているネットリストのデータである。例えば、図11に示すネットリストが相当する。
そして、動作確認部108によって、期待値のデータと接続ノードの電圧が比較され、比較結果が出力される。具体的には、期待電圧104からのデータを、入出力部109から受け取り、図8のフローチャートを実行する。また、動作確認部108は、指定時刻における期待値と各ノード電圧を比較した結果、ノード電圧と期待電圧の比較が一致したかの判断結果、及び変更されたネットリストまたは素子属性等が含まれる結果を結果105として出力部109を介して出力する。
また、変更部107によって、ネットリストの変更または素子属性の変更が行われる。具体的には、ネットリスト102及びライブラリ100から、入出力部109を介して受け取ったネットリストを変更または素子属性を変更する。
尚、回路設計支援装置は、ワークステーション等の適切なハードウェア資源と共に実現される。また、回路設計支援装置のハードウェア資源以外の部分は、磁気媒体、光学媒体、電気信号または光学信号を介して配布可能である。
このような回路設計支援装置によれば、第1〜3の実施の形態の回路設計支援方法を容易に行える効果がある。
(付記1) 抵抗変化メモリ素子の動作検証を行うシミュレーション装置において、
第1の電位に保持された第1の電源ノードと、
前記第1の電源ノードに接続された第1の抵抗と、
前記第1の抵抗に第2の抵抗を介して直列に接続され、第2の電位に保持された第2の電源ノードと、
前記第1の抵抗と前記第2の抵抗との間に位置する記憶ノードと、
前記記憶ノードと前記第2の電源ノードとの間に前記第2の抵抗に並列に接続されたキャパシタと、を備え、
前記第1の抵抗の抵抗値及び前記第2の抵抗の抵抗値を前記シミュレーション装置に設けた可変抵抗部に印加される電圧によって変化させ、前記記憶ノードの電位が前記第1の電源ノードまたは前記第2の電源ノードのいずれかの電位に制御されることを特徴とするシミュレーション装置。
(付記2) 前記可変抵抗部の抵抗値が前記記憶ノードの電位によって制御されることを特徴とする付記1記載のシミュレーション装置。
(付記3) 前記可変抵抗部においては、
高抵抗状態を表す第3の抵抗と、
低抵抗状態を表す第4の抵抗と、
前記第3の抵抗に接続された第5の抵抗と、
前記第4の抵抗に接続された第6の抵抗と、を有し、
前記第5の抵抗の抵抗値と前記第6の抵抗の抵抗値が前記記憶ノードの電位によって制御されることを特徴とする付記1または2記載のシミュレーション装置。
(付記4) 前記第1の抵抗の抵抗値及び前記第2の抵抗の抵抗値が前記可変抵抗部に印加される電圧を遅延させた電圧によって制御されることを特徴とする付記1乃至3のいずれか一項に記載のシミュレーション装置。
(付記5) 前記第1の抵抗の抵抗値及び前記第2の抵抗の抵抗値が前記可変抵抗部に印加される電圧を遅延させた電圧によって変化することにおいては、前記シミュレーション装置が第1の遅延電位発生部を備え、前記第1の遅延電位発生部が前記可変抵抗部の両端にかかる電圧を遅延させて出力し、前記第1の抵抗及び前記第2の抵抗の抵抗値が前記第1の遅延電位発生部から出力される電位によって変化することを特徴とする付記1乃至4のいずれか一項に記載のシミュレーション装置。
(付記6) 前記可変抵抗部の抵抗値が前記記憶ノードの電位を遅延させた電位によって変化することを特徴とする付記1乃至3のいずれか一項に記載のシミュレーション装置。
(付記7) 前記第5の抵抗及び前記第6の抵抗の抵抗値が前記記憶ノードの電位を遅延させた電位によって変化することにおいては、前記シミュレーション装置が第2の遅延電位発生部を備え、前記第2の遅延電位発生部が前記記憶ノードの電位を遅延させて出力し、前記第5の抵抗及び前記第6の抵抗の抵抗値が前記第2の遅延電位発生部の出力によって変化することを特徴とする付記1、2、3、6のいずれか一項に記載のシミュレーション装置。
(付記8) 前記記憶ノードと前記第2の電源ノードの間に第7の抵抗及び第8の抵抗が直列に接続され、前記第7の抵抗の抵抗値は前記可変抵抗部に印加される電圧によって変化し、前記第8の抵抗の抵抗値は前記記憶ノードの電位によって変化することを特徴とする付記1乃至7のいずれか一項に記載のシミュレーション装置。
(付記9) 前記第1の抵抗または前記第2の抵抗の一方の抵抗は、前記可変抵抗部の両端に印加される電圧が第3の電位以上であり、且つ第4の電位以下の場合に第1の抵抗値となり、前記可変抵抗部の両端に印加される電圧がそれ以外の電位の場合には第2の抵抗値となり、
他方の抵抗は、前記可変抵抗部の両端にかかる電圧が前記第4の電位以上の場合に第3の抵抗値となり、前記可変抵抗部の両端に印加される電圧がそれ以外の電位の場合には第4の抵抗値となることを特徴とする付記1乃至8のいずれか一項に記載のシミュレーション装置。
(付記10) 前記第5の抵抗と前記第6の抵抗の一方の抵抗は、前記記憶ノードの電位が第5の電位以上の場合に第5の抵抗値となり、前記記憶ノードの電位が前記第5の電位以下の場合に第6の抵抗値となり、
他方の抵抗は、前記記憶ノードの電位が前記第5の電位以下の場合に第7の抵抗値となり、前記記憶ノードの電位が前記第5の電位以上の場合に第8の抵抗値となることを特徴とする付記1乃至9のいずれか一項に記載のシミュレーション装置。
(付記11) 前記第7の抵抗の抵抗値は、前記可変抵抗部の両端に印加される電圧が前記第3の電位以下の場合に第9の抵抗値となり、前記可変抵抗部の両端に印加される電圧が前記第3の電位以上の場合に第10の抵抗値となり、
前記第8の抵抗の抵抗値は、前記記憶ノードの電位が前記第5の電位以上の場合に第11の抵抗値となり、前記記憶ノードの電位が前記第5の電位以下の場合に第12の抵抗値となることを特徴とする付記1乃至10のいずれか一項に記載のシミュレーション装置。
(付記12) 前記第1の抵抗値は、前記第2の抵抗値より低く、前記第3の抵抗値は、前記第4の抵抗値より低いことを特徴とする付記1乃至11のいずれか一項に記載のシミュレーション装置。
(付記13) 前記第3の抵抗の抵抗値は前記第4の抵抗の抵抗値より高く、前記第5の抵抗値と前記第6の抵抗値のうち一方は、前記第3の抵抗の抵抗値より1桁以上低く、前記第5の抵抗値と前記第6の抵抗値のうち他方は、第4の抵抗の抵抗値より1桁以上高く、
前記第7の抵抗値と前記第8の抵抗値のうち一方は、前記第3の抵抗の抵抗値より1桁以上低く、他方は、第4の抵抗の抵抗値より1桁以上高いことを特徴とする付記1乃至12のいずれか一項に記載のシミュレーション装置。
(付記14) 前記第1の抵抗値と前記キャパシタの容量の積を第1の時定数とし、前記第3の抵抗値と前記キャパシタの積を第2の時定数とし、前記遅延電位発生部が与える遅延時間を第1の遅延時間とするとき、前記第2の時定数より前記第1の遅延時間が長く、前記第1の遅延時間より前記第1の時定数のほうが長いことを特徴とする付記1乃至13のいずれか一項に記載のシミュレーション装置。
(付記15) 定数の値がloge((前記第1の電位−前記第2の電位)/(前記第5の電位−前記第2の電位))である場合に、前記抵抗変化メモリ素子のリセットに要する時間が(前記第1の時定数)×(前記定数)+(前記遅延時間)となるように、前記第1の抵抗値及び前記キャパシタの容量値が決定されていることを特徴とする付記1乃至14のいずれか一項に記載のシミュレーション装置。
(付記16) 前記第9の抵抗値が前記第10の抵抗値より低いことを特徴とする付記11記載のシミュレーション装置。
(付記17) 前記第3の抵抗は、自分自身或いは前記可変抵抗部の両端に印加される電圧によって抵抗値が変化することを特徴とする付記1乃至16のいずれか一項に記載のシミュレーション装置。
(付記18) 前記可変抵抗部に寄生容量を表すキャパシタが備えられていることを特徴とする付記1乃至17のいずれか一項に記載のシミュレーション装置。
(付記19) 抵抗変化メモリ素子の記憶状態を出力するノードを含むサブサーキットを入力するステップと、
記憶装置を構成する回路部品間の接続関係を入力するステップと、
前記回路部品間における電圧条件を入力するステップと、
前記電圧条件における前記回路部品間の電圧変化を取得するステップと、
を有することを特徴とする回路設計支援方法。
(付記20) 抵抗変化メモリ素子を含む記憶部を用いた記憶装置の回路設計を、アナログシミュレータを用いて支援する回路設計支援方法であって、
サブサーキットを構成する回路部品を接続する接続ノードの内の一つが、前記記憶部の記憶状態に対応する電圧を保持するノードを備えた前記サブサーキットを前記アナログシミュレータに入力するステップと、
前記記憶装置を構成する回路部品間の接続関係が記載されているネットリストを前記アナログシミュレータに入力するステップと、
アナログシミュレーションを行ない、前記記憶装置を構成する前記回路部品間の前記接続ノードの電圧の時間変化を求めるステップと、
を有することを特徴とする回路設計支援方法。
(付記21) 前記記憶装置を構成する前記回路部品間の接続ノードの電圧の期待値を入力するステップと、
前記アナログシミュレータで求めた、前記記憶装置を構成する前記回路部品間の接続ノードの電圧と、前記記憶装置を構成する前記回路部品間の接続ノードの電圧の期待値を比較し、比較結果を出力するステップと、
前記比較結果から前記記憶装置の動作が正常に動作しているか否かを判断するステップと、
を有することを特徴とする付記20記載の回路設計支援方法。
(付記22) 前記記憶装置の動作が正常に動作していない場合には、前記ネットリストの変更または回路部品の素子属性の変更を支援するステップを有することを特徴とする付記20または21記載の回路設計支援方法。
(付記23) 抵抗変化メモリ素子を含む記憶部を用いた記憶装置の回路設計を支援する回路設計支援装置であって、
サブサーキットを構成する回路部品を接続する接続ノードの内の一つが、前記記憶部の記憶状態に対応する電圧を保持するノードを備えた前記サブサーキットのデータ、前記記憶装置を構成する回路部品間の接続関係が記載されているネットリストのデータ及び期待値のデータを受け取る入出力部と、
前記サブサーキットのデータ及び前記ネットリストのデータを使用してアナログシミュレーションを行ない、前記記憶装置を構成する回路部品間の接続ノードの電圧の時間変化を求める、シミュレーション部と、
前記期待値のデータと前記接続ノードの電圧を比較し、比較結果を出力する動作確認部と、
前記比較結果に基づいて、ネットリスト変更または素子属性の変更を行う変更部と、
を備えた回路設計支援装置。