(57)【要約】      （修正有）【課題】メモリ素子が低抵抗状態または高抵抗状態に固定されてしまうことを抑制する集積回路を提供する。【解決手段】複数の第１配線ＢＬｎと、複数の第１配線と交差する複数の第２配線ＷＬｎと、複数の第１配線と複数の第２配線との交差領域に設けられた、第１抵抗状態および第１抵抗状態よりも抵抗値が大きい第２抵抗状態のうち一方から他方にプログラム可能である複数の抵抗変化メモリ素子１０ｍｎと、複数の第１配線および複数の第２配線を駆動するドライバと、を備える。ドライバは、抵抗変化メモリに流れる電流を、第１制限電流値および第１制限電流値よりも大きい第２制限電流値のいずれかを用いて制限するとともに前記抵抗変化メモリ素子の抵抗状態を第１抵抗状態から第２抵抗状態へと変化させる。【選択図】図１３
2017168173.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１配線と、
前記複数の第１配線と交差する複数の第２配線と、
前記複数の第１配線と前記複数の第２配線との交差領域に設けられた複数の抵抗変化メモリ素子であって、各抵抗変化メモリ素子は、対応する前記第１配線に接続された第１電極と、対応する前記第２配線に接続された第２電極と、前記第１電極と前記第２電極との間に設けられた抵抗変化層と、を含み、前記第１電極と前記第２電極との間の抵抗状態は、第１抵抗状態および前記第１抵抗状態よりも抵抗値が大きい第２抵抗状態のうち一方から他方にプログラム可能である複数の抵抗変化メモリ素子と、
前記複数の第１配線および前記複数の第２配線を駆動するドライバと、
を備え、
前記ドライバは、前記抵抗変化メモリに流れる電流を、第１制限電流値および前記第１制限電流値よりも大きい第２制限電流値のいずれかを用いて制限するとともに前記抵抗変化メモリ素子の抵抗状態を前記第１抵抗状態から前記第２抵抗状態へと変化させる、集積回路。
【請求項２】
前記複数の第１配線または前記複数の第２配線に接続され、前記抵抗変化メモリ素子の抵抗と第１判定値とを比較するベリファイ回路を更に備えた請求項１記載の集積回路。
【請求項３】
前記ドライバは、前記抵抗変化メモリ素子に流れる電流を前記第１制限電流値以下に制限し、前記ベリファイ回路が前記抵抗変化メモリ素子の抵抗を前記第１判定値以下と判定した後、前記抵抗変化メモリ素子に流れる電流を前記第２制限電流値以下に制限するとともに前記抵抗変化メモリ素子の抵抗状態を前記第１抵抗状態から前記第２抵抗状態へと変化させる、請求項１または２記載の集積回路。
【請求項４】
前記第２制限電流値は前記第１制限電流値の２倍以上である、請求項１乃至３のいずれかに記載の集積回路。
【請求項５】
前記ドライバは、ソースおよびドレインの一方が前記抵抗変化メモリ素子の前記第１および第２電極の一方に接続される第１トランジスタと、第１電源端子および第２電源端子のいずれかに接続される入力端子および前記第１トランジスタのゲートに接続される出力端子を含む選択回路と、備える、請求項１乃至４のいずれかに記載の集積回路。
【請求項６】
前記ドライバは、ソースが第１電源端子に接続される第１トランジスタと、ソースが第２電源端子に接続される第２トランジスタと、前記第１トランジスタおよび前記第２トランジスタのドレインと前記抵抗変化メモリ素子の前記第１電極および第２電極の一方との間に接続され、前記第１トランジスタのドレインと前記第２トランジスタのドレインの少なくとも１つを前記抵抗変化メモリ素子の前記第１および第２電極の一方に接続する選択回路と、を備える、請求項１乃至４のいずれかに記載の集積回路。
【請求項７】
前記複数の第１配線は、信号が入力される複数の入力配線に接続され、前記複数の第２配線は、信号が出力される複数の出力配線に接続され、前記複数の入力配線に入力された信号は、前記複数の第１抵抗変化メモリ素子のうち第１抵抗状態にあるものを介して前記複数の出力配線の少なくとも１つから出力される、請求項１乃至６のいずれかに記載の集積回路。
【請求項８】
複数の第１配線と、
前記複数の第１配線と交差する複数の第２配線と、
前記複数の第１配線と前記複数の第２配線との交差領域に設けられた複数の抵抗変化メモリ素子であって、各抵抗変化メモリ素子は、対応する前記第１配線に接続された第１電極と、対応する前記第２配線に接続された第２電極と、前記第１電極と前記第２電極との間に設けられた第１抵抗変化層と、を含み、前記第１電極と前記第２電極との間の抵抗状態は、第１抵抗状態および前記第１抵抗状態よりも抵抗値が大きい第２抵抗状態のうち一方から他方にプログラム可能である複数の抵抗変化メモリ素子と、
前記複数の第２配線よりも少ない数の複数の第３配線と、
前記複数の第２配線と前記複数の第３配線との間に接続される切り替え回路と、
前記複数の第１配線および前記複数の第２配線を駆動するドライバと、
を備え、
前記ドライバは、前記抵抗変化メモリ素子に流れる電流を、第１制限電流値および前記第１制限電流値よりも大きい第２制限電流値のいずれかを用いて制限するとともに前記抵抗変化メモリ素子の抵抗状態を前記第１抵抗状態から前記第２抵抗状態へと変化させる、集積回路。
【請求項９】
前記複数の第１配線または前記複数の第２配線に接続され、前記抵抗変化メモリ素子の抵抗と第１判定値とを比較するベリファイ回路を更に備えた請求項８記載の集積回路。
【請求項１０】
前記ドライバは、前記複数の抵抗変化メモリ素子から抵抗変化メモリ素子を選択し前記選択された抵抗変化メモリ素子に流れる電流を前記第１制限電流値以下に制限し、前記ベリファイ回路が前記選択された抵抗変化メモリ素子の抵抗を前記第１判定値以下と判定した後、前記選択された抵抗変化メモリ素子に流れる電流を前記第２制限電流値以下に制限するとともに前記選択された抵抗変化メモリ素子の抵抗状態を前記第１抵抗状態から前記第２抵抗状態へと変化させた後に、前記切り替え回路は前記複数の第２配線の中から前記選択された抵抗変化メモリ素子が接続されている配線以外の配線を選択し、選択された配線を前記複数の第３配線と接続する、請求項９記載の集積回路。
【請求項１１】
前記第２制限電流値は前記第１制限電流値の２倍以上である、請求項８乃至１０のいずれかに記載の集積回路。
【請求項１２】
前記ドライバは、前記ドライバは、ソースおよびドレインの一方が前記抵抗変化メモリ素子の前記第１および第２電極の一方に接続される第１トランジスタと、第１電源端子および第２電源端子のいずれかに接続される入力端子および前記第１トランジスタのゲートに接続される出力端子を含む選択回路と、備える、請求項８乃至１１のいずれかに記載の集積回路。
【請求項１３】
前記ドライバは、ソースが第１電圧に接続される第１トランジスタと、ソースが前記第１電圧に接続される第２トランジスタと、前記第１トランジスタおよび前記第２トランジスタのドレインと前記抵抗変化メモリ素子の前記第１電極および第２電極の一方との間に接続され、前記第１トランジスタのドレインと前記第２トランジスタのドレインの少なくとも１つを前記抵抗変化メモリ素子の前記第１および第２電極の一方に接続する選択回路と、を備える、請求項８乃至１１のいずれかに記載の集積回路。
【請求項１４】
前記複数の第１配線は、信号が入力される複数の入力配線に接続され、前記複数の第２配線は前記切り替え回路の入力端子に接続され、前記切り替え回路の出力端子は前記複数の第３配線に接続される、請求項８乃至１３のいずれかに記載の集積回路。
【請求項１５】
前記複数の抵抗変化メモリ素子は、前記第１電極に前記第２電極よりも大きい電圧を印加することによって前記第１電極と前記第２電極との間の抵抗が前記第１抵抗状態から前記第２抵抗状態に変化し、前記第１電極に前記第２電極よりも大きい電圧を印加することによって前記第１電極と前記第２電極との間の抵抗が前記第２抵抗状態から前記第１抵抗状態に変化する、請求項１乃至１４のいずれかに記載の集積回路。
【請求項１６】
前記複数の抵抗変化メモリ素子は、前記第１電極に前記第２電極よりも小さい電圧を印加することによって前記第１電極と前記第２電極との間の抵抗が前記第１抵抗状態から前記第２抵抗状態に変化し、前記第１電極に前記第２電極よりも小さい電圧を印加することによって前記第１電極と前記第２電極との間の抵抗が前記第２抵抗状態から前記第１抵抗状態に変化する、請求項１乃至１４のいずれかに記載の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、集積回路に関する。
【背景技術】
【０００２】
抵抗変化メモリ素子は、２つの電極と、これら２つの電極の間に設けられた抵抗変化層を有する不揮発メモリである。上記２つの電極間に所定の電圧を印加することにより、電極間の抵抗が低い状態（低抵抗状態）から高い状態（高抵抗状態）に、あるいは逆に高抵抗状態から低抵抗状態にプログラムすることができる。抵抗変化メモリ素子の抵抗状態は、電源の供給がない状態でも保持される。抵抗変化メモリは、複数のワード線と、それに交差する複数のビット線との交点に配置することができる。このように交差する配線の交点にメモリ素子が配置されたメモリセルアレイは、クロスポイント構造と呼ばれる。
【０００３】
抵抗変化メモリ素子にプログラム電圧を印加するとき、抵抗変化メモリ素子に流れる電流をある特定の電流値以下に制限する手法が知られている。その目的の１つは、プログラム後の抵抗変化メモリ素子の抵抗値が所望の値になるように制御することである。また他の目的は、抵抗変化メモリ素子に過剰な電流が流れて抵抗変化メモリ素子が破壊されることを防ぐことである。
【０００４】
しかし、上記のように抵抗変化メモリに流れる電流を制限する手法を用いた場合でも、抵抗変化メモリ素子がプログラム中に破壊されてしまう可能性は無視できない。抵抗変化メモリ素子が破壊されると、その抵抗変化メモリ素子の抵抗状態は低抵抗状態に固定されてしまい、高抵抗状態に遷移させることができなくなる。このような抵抗変化メモリ素子は不良ビットとなり、不良ビットの存在は回路の動作不良の原因となる。
【０００５】
不良ビットを含む回路を救済する手法として、予め冗長ビットを用意し、不良ビットを冗長ビットで置き換える技術が知られている。しかし、上記のクロスポイント構造の抵抗変化メモリ素子のセルアレイにおいて不良ビットが一定量以上存在するとき、その存在する箇所によっては、冗長ビットでも置き換えを行っても回路を救済できないことがある。
【０００６】
上記のように冗長ビットによる置き換えを用いても回路が救済できなくなる事態を防ぐには、不良ビットを高抵抗状態に遷移させる技術が必要である。しかし、このようなプログラム方法については、今までに知られていない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−２０３９６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本実施形態は、メモリ素子が低抵抗状態または高抵抗状態に固定されてしまうことを抑制することのできる集積回路を提供する。
【課題を解決するための手段】
【０００９】
本実施形態による集積回路は、複数の第１配線と、前記複数の第１配線と交差する複数の第２配線と、前記複数の第１配線と前記複数の第２配線との交差領域に設けられた複数の抵抗変化メモリ素子であって、各抵抗変化メモリ素子は、対応する前記第１配線に接続された第１電極と、対応する前記第２配線に接続された第２電極と、前記第１電極と前記第２電極との間に設けられた抵抗変化層と、を含み、前記第１電極と前記第２電極との間の抵抗状態は、第１抵抗状態および前記第１抵抗状態よりも抵抗値が大きい第２抵抗状態のうち一方から他方にプログラム可能である複数の抵抗変化メモリ素子と、前記複数の第１配線および前記複数の第２配線を駆動するドライバと、を備え、前記ドライバは、前記抵抗変化メモリに流れる電流を、第１制限電流値および前記第１制限電流値よりも大きい第２制限電流値のいずれかを用いて制限するとともに前記抵抗変化メモリ素子の抵抗状態を前記第１抵抗状態から前記第２抵抗状態へと変化させる。
【図面の簡単な説明】
【００１０】
【図１】抵抗変化メモリ素子を示す断面図。
【図２】メモリ回路を示すブロック図。
【図３】図３（ａ）、３（ｂ）は、電流制限回路を示す回路図。
【図４】図４（ａ）、４（ｂ）は、電流制限回路を示す回路図。
【図５】ユニポーラ型メモリ素子のセット動作の様子を示す図。
【図６】ユニポーラ型メモリ素子のリセット動作の様子を示す図。
【図７】ユニポーラ型メモリ素子がリセット動作する際に誤セットが発生する様子を示す図。
【図８】冗長メモリ回路を示すブロック図。
【図９】比較例によるメモリ素子のリセット動作を示すフローチャート。
【図１０】第１実施形態におけるメモリ素子のリセット動作を示すフローチャート。
【図１１】第２実施形態におけるメモリ素子のリセット動作を示すフローチャート。
【図１２】図１２（ａ）、１２（ｂ）は、各実施形態における電流制限回路を示す回路図。
【図１３】第１実施形態による集積回路を示す回路図。
【図１４】第２実施形態による集積回路を示す回路図。
【発明を実施するための形態】
【００１１】
一実施形態による集積回路を説明する前に集積回路に含まれるメモリ回路について説明する。
【００１２】
まず、抵抗変化メモリ素子（以下、メモリ素子とも云う）について説明する。図１にメモリ素子の構造を示す。メモリ素子１０は電極１１、１３と、これらの電極１１、１３間に挟まれた抵抗変化層１２とを有する。抵抗変化層１２は、例えばチタン酸化物、ハフニウム酸化物、タンタル酸化物、アルミ酸化物といった金属酸化物の層、シリコン酸化物などの半導体酸化物の層、アモルファスシリコンなどの半導体層、あるいはこれらの複数の層からなる積層膜であってもよい。
【００１３】
電極１１、１３間に所定の電圧を印加することによって、メモリ素子を低抵抗状態（電極間の抵抗が低い状態）から高抵抗状態（電極間の抵抗が高い状態）に、あるいは高抵抗状態から低抵抗状態に変化させることができる。ここでは、メモリ素子の抵抗を高抵抗状態から低抵抗状態に変化させることをセットと称し、メモリ素子の抵抗を低抵抗状態から高抵抗状態に変化させることをリセットと称する。また、メモリ素子をセットするために必要な電圧をセット電圧と称し、メモリ素子をリセットするために必要な電圧をリセット電圧と称する。すなわち、メモリ素子の抵抗状態は、低抵抗状態および高抵抗状態のうちの一方から他方にプログラム可能である。
【００１４】
メモリ素子には、ユニポーラ型のメモリ素子とバイポーラ型のメモリ素子がある。ユニポーラ型のメモリ素子では、セット電圧とリセット電圧の極性が同じである。例えば、メモリ素子をセットするために電極１１に印加する電圧よりも大きい電圧を電極１３に印加する場合、同様にリセットする場合にも電極１１に印加する電圧よりも大きい電圧を電極１３に印加する。一方、バイポーラ型のメモリ素子では、セット電圧とリセット電圧の極性が逆である。例えば、メモリ素子をセットするために電極１１に印加する電圧よりも大きい電圧を電極１３に印加する場合、リセットする場合には電極１１に印加する電圧よりも小さい電圧を電極１３に印加する。
【００１５】
メモリ素子をプログラムする際に必要となるメモリ回路の構成の一例を図２に示す。メモリセルアレイ２３は配列状に並べられた複数のメモリ素子を有し、ドライバ２１に接続されている。制御回路２０は、プログラムを命令する信号およびメモリ素子のアドレス信号といった制御信号をドライバ２１に与える。ドライバ２１はこの制御信号に基づいて、選択したメモリ素子にプログラム電圧を印加する。同様にドライバ２１は上記制御信号に基づいて、選択していないメモリ素子に所定の電圧を与えることもあるし、特定のメモリ素子の電極の電位を浮遊状態にすることもある。ベリファイ回路２２はメモリ素子の抵抗値が所望の値になっているか（プログラムが完了しているか）を判定し、その情報を制御回路２０に与える。制御回路２０はベリファイ回路２２からの情報に基づき、必要であればドライバ２１に制御信号を送る。
【００１６】
ところで、メモリ素子をプログラムする際に、メモリ素子に過剰な電流が流れることは好ましくない。したがって、メモリ素子にセット電圧やリセット電圧を印加するとき、ドライバ２１はメモリ素子に流れる電流をある特定の電流値以下に制限していることが好ましい。以下ではこの電流値を制限電流値と称する。
【００１７】
制限電流値を設ける目的の１つは、プログラム後のメモリ素子の抵抗値を所望の値に制御することである。例えば、メモリ素子をセットする場合を例にとって説明する。高抵抗状態にあるメモリ素子にセット電圧を印加した場合、初めはメモリ素子の抵抗が大きいため、メモリ素子を流れる電流は小さい。しかし、メモリ素子の抵抗が徐々に小さくなると、それに従ってメモリ素子を流れる電流も大きくなり、この電流によってメモリ素子の抵抗低下はさらに加速される。この加速効果により、メモリ素子は急激に低抵抗状態へと変化し、しばしば、所望の抵抗値よりも小さくなってしまう。
【００１８】
そこで、セット動作後のメモリ素子の抵抗を所望の値に制御するために、抵抗やトランジスタなどの電流制限素子をメモリ素子と直列に接続し、この電流制限素子を介してメモリ素子に電圧を印加する手法を用いる。こうすれば、セット電圧の印加中にメモリ素子を流れる電流は電流制限素子によって制限電流値以下に抑えられるため、上記のようにメモリ素子の抵抗低下が加速されることを止めることができる。セット動作時の制限電流値を大きくすれば大きくするほど、すなわち電流制限素子の抵抗を小さくすれば小さくするほど、セット動作後のメモリ素子の抵抗値は小さくなる。
【００１９】
一方、メモリをリセットする際には、上記の制限電流値はセット動作時のそれよりも大きくする。別の言い方をすれば、リセット電圧の印加時に用いる電流制限素子の抵抗は、セット電圧の印加時に用いる電流制限素子の抵抗よりも小さくする。その理由は、メモリ素子がリセットするためには、メモリ素子に十分な電流が流れることが必要だからである。
【００２０】
プログラム電圧の印加中にメモリ素子に流れる電流を制限する電流制限回路の具体例を図３（ａ）乃至図４（ｂ）に示す。例えば図３（ａ）に示す電流制限回路は、メモリ素子１０の一方の電極に電流制限素子３０の一端が接続され、メモリ素子１０の他方の電極にプログラム電圧Ｖｐｇｍが印加され、電流制限素子３０の他端に０Ｖが印加される。電流制限素子３０はメモリ素子１０を流れる電流を所定の値（Ｉｃｏｍｐ）以下に抑える役割を果たしている。
【００２１】
図３（ｂ）は電流制限回路の別の例であり、メモリ素子１０の一方の電極に電流制限素子３０の一端が接続され、メモリ素子１０の他方の電極に０Ｖが印加され、電流制限素子３０の他端にプログラム電圧Ｖｐｇｍが印加される。この例の電流制限回路も図３（ａ）の例と同様に、電流制限素子３０はメモリ素子１０を流れる電流を所定の値（Ｉｃｏｍｐ）以下に抑える役割を果たす。
【００２２】
図４（ａ）、４（ｂ）は、図３における電流制限素子３０として、トランジスタを用いた場合の電流制限回路の例である。図４（ａ）に示す電流制限回路の例では、メモリ素子１０の一方の電極にｎ型トランジスタ３１のドレインが接続され、メモリ素子１０の他方の電極にプログラム電圧Ｖｐｇｍが印加され、トランジスタ３１のソースに０Ｖが印加される。トランジスタ３１のゲートには電圧Ｖｃｏｍｐが印加される。電圧Ｖｃｏｍｐの大きさを制御することによって、制限電流値を制御することができる。図４（ｂ）に示す電流制限回路の例では、メモリ素子１０の一方の電極にｐ型トランジスタ３２のドレインが接続され、メモリ素子１０の他方の電極に０Ｖが印加され、トランジスタ３２のソースにプログラム電圧Ｖｐｇｍが印加される。この例も図４（ａ）の例と同様に、トランジスタ３２のゲートに印加する電圧Ｖｃｏｍｐの大きさを制御することによって、制限電流値を制御することができる。
【００２３】
図５はユニポーラ型メモリ素子のセット動作の様子を示している。このときメモリ素子には電流制限素子を介して電圧を印加しているため、メモリ素子に流れる電流はＩｃｏｍｐ＿ｓｅｔ以下に抑えられている。
【００２４】
図６はユニポーラ型メモリ素子のリセット動作の様子を示している。このとき、メモリ素子には最大でＩｃｏｍｐ＿ｒｅｓｅｔの電流が流れるように電流制限素子の抵抗を設定している。ここでＩｃｏｍｐ＿ｒｅｓｅｔの値は、上記のＩｃｏｍｐ＿ｓｅｔの値よりも大きくする。
【００２５】
ところで、メモリ素子をプログラムする際に制限電流値を設ける別の目的は、メモリ素子に過剰な電流が流れてメモリ素子が破壊してしまうのを防ぐことである。もしメモリ素子をセットする際に制限電流値を設けず、メモリ素子に十分大きな電流が流れることを許容してしまうと、セット動作後のメモリ素子の抵抗は極めて低い値となる。このように極めて低い抵抗値を持つメモリ素子をリセットするためには、非常に大きな電流をメモリ素子に流す必要がある。しかし、メモリ素子に流すことができる最大の電流は書き込み回路によって決まっており、この最大の電流を流してもメモリ素子をリセットできない場合、そのメモリ素子は抵抗状態が低抵抗状態に固定された不良ビットになる。ここでは低抵抗状態に固定された状態を、ショート不良状態と称する。
【００２６】
上記の例では、セット動作時に制限電流値を設けないことによってメモリ素子がショート不良状態になる場合について述べた。しかし、一般的には、セット動作時には制限電流値をある程度小さく設定したうえでプログラム電圧を印加するため、セット動作によってメモリ素子がショート不良状態になることはほとんどない。一方、リセット動作時には制限電流値を大きく設定したうえでプログラム電圧を印加するため、リセット動作中にメモリ素子が誤セットしてしまうことによってショート不良状態になる確率は比較的大きい。
【００２７】
図７は、ユニポーラ型メモリ素子がリセット動作する際に、誤セットが発生する様子を示している。メモリ素子の電極に印加する電圧を大きくすると、メモリ素子を流れる電流はリセットによって減少するが、さらに電圧が大きくなると、電流は誤セットによって急激に増加する。このとき、上記の制限電流値は十分大きいＩｃｏｍｐ＿ｒｅｓｅｔに設定しているため、誤セット後のメモリ素子の抵抗は非常に小さい値となってしまう。このようなメモリ素子は、その後のリセット動作を行っても高抵抗状態に戻すことができない。すなわち、ショート不良状態になってしまう。
【００２８】
不良状態のメモリ素子が発生すると、そのメモリ素子が使用できなくなるため、予備のメモリ素子で置き換える技術が用いられることがある。すなわち、予め冗長メモリ素子を用意しておき、不良状態のメモリ素子を冗長メモリ素子で置き換える。図８はその概念を示した図である。メモリセルアレイ２４は図２に示したメモリセルアレイ２３と、冗長メモリセルアレイ２５とを有しており、もしメモリセルアレイ２３の中に不良状態のメモリ素子が存在した場合、切り替え回路２６はその部分を冗長メモリセルアレイ２５の中のメモリ素子と入れ替える。
【００２９】
このような冗長メモリ素子を用いた不良救済手法は、高抵抗状態に固定されてしまった不良ビットに対しては有効であるが、ショート不良状態のメモリに対しては有効でない場合がある。なぜならば、ショート不良状態のメモリ素子が存在すると、意図しない経路で電流が流れてしまうため、その電流の影響で、正常なメモリに流れる電流を正しく読み出すことができないためである。この誤読み出しの問題は、たとえ冗長メモリ素子によって不良状態のメモリ素子を置き換えても、解決されることはない。
【００３０】
したがって、冗長メモリ素子を用意しているかまたは用意していないかにかかわらず、メモリ素子がショート不良状態になることは出来るだけ避けるべきである。
【００３１】
以下では、メモリ素子がショート不良状態になることを防ぐ方法について一実施形態として説明する。
【００３２】
図９は比較例のリセット方法によってメモリ素子をリセットする手順を示す流れ図である。まず制限電流値を第１の制限電流値Ｉｃｏｍｐ１に設定した状態で、選択したメモリ素子にリセット電圧を印加する（図９のＳ１）。次にメモリ素子の抵抗値を読み出し、それが第１判定値以上かどうか判定する（図９のＳ２、Ｓ３）。もしメモリ素子の抵抗値が第１判定値以上の場合、リセット動作は完了する（図９のＳ４）。
【００３３】
一方、もしメモリ素子の抵抗値が第１判定値より小さい場合、ステップＳ１に戻り、再度メモリ素子にリセット電圧を印加する。このとき、印加する電圧の大きさを大きくしてもよいし、電圧を印加する時間を長くしてもよい。その後、再度メモリ素子の抵抗値を読み出し、それが第１判定値以上になるまで上記の手順を繰り返す。図９に示す方法では、メモリ素子をリセットさせる際に、誤セットによってメモリ素子がショート不良状態になる可能性がある。
【００３４】
次に、後述する第１実施形態による集積回路に用いられるセット方法を図１０に示す。図１０に示したリセット方法は、リセット動作中に誤セットされたメモリ素子を高抵抗状態に戻す手順を加えたものである。図１０の手順の最初のステップは図９の比較例のリセット方法と同じである。まず制限電流値を第１の制限電流値Ｉｃｏｍｐ１に設定した状態で、メモリ素子にリセット電圧を印加する（図１０のＳ１）。次にメモリ素子の抵抗値を読み出し、それが第１判定値以上かどうかを図２に示すベリファイ回路２２によって判定する（図１０のＳ２、Ｓ３）。もしメモリ素子の抵抗が第１判定値以上の場合、リセット動作は完了する（図１０のＳ４）。
【００３５】
一方、もしメモリ素子の抵抗が第１判定値より小さい場合、さらにメモリ素子の抵抗値が第２判定値以下かどうかをベリファイ回路２２によって判定する（図１０のＳ５）。ここで用いる第２判定値は前記の第１判定値よりも小さい値である。もしメモリ素子の抵抗値が第２判定値より大きければ、最初のステップＳ１に戻り、制限電流値を第１の制限電流値Ｉｃｏｍｐ１に設定した状態でメモリ素子にリセット電圧を印加する。
【００３６】
一方、メモリ素子の抵抗値が第２判定値以下の場合は、メモリ素子が誤セットされたとみなし、制限電流値を第２の制限電流値Ｉｃｏｍｐ２に設定した状態でメモリ素子にリセット電圧を印加する（図１０のＳ６）。ここで用いる制限電流値Ｉｃｏｍｐ２は制限電流値Ｉｃｏｍｐ１よりも大きい値であり、好ましくは電流制限値Ｉｃｏｍｐ２は電流制限値Ｉｃｏｍｐ１の２倍かそれよりも大きい値である。
【００３７】
その後、メモリ素子の抵抗値を読み出し、それが第３判定値以上かどうかベリファイ回路２２によって判定する（図１０のＳ７、Ｓ８）。もしメモリ素子の抵抗が第３判定値以上の場合、リセット動作は完了する。一方、もしメモリ素子の抵抗が第３判定値より小さい場合、ステップＳ６に戻り、再度メモリ素子にリセット電圧を印加する。このとき、印加する電圧の大きさを大きくしてもよいし、電圧を印加する時間を長くしてもよい。その後、再度メモリの抵抗値を読み出し、それが第３判定値以上になるまで上記の手順を繰り返す。ここで用いる第３判定値は前記第２判定値よりも大きい値である。また第３判定値と第１判定値は同じ値でもよいし、異なる値でもよい。
【００３８】
図１０に示したリセット方法の第１の特徴は、リセット時に大きさの異なる２つの制限電流値Ｉｃｏｍｐ１、Ｉｃｏｍｐ２（ここではＩｃｏｍｐ２＞Ｉｃｏｍｐ１）を用いることができることである。すなわち、図２に示したドライバ２１は、リセット時に制限電流値をＩｃｏｍｐ１に設定してリセット電圧を印加することもできるし、制限電流値をＩｃｏｍｐ２に設定してリセット電圧を印加することもできる。また図１０に示した方法の第２の特徴は、初めは比較的小さい制限電流値Ｉｃｏｍｐ１を用いてリセット動作を行うが、誤セットされたと判定されたメモリ素子に対しては、比較的大きい制限電流値Ｉｃｏｍｐ２を用いてリセット動作を行うことである。すなわち、ドライバ２１は、初めはリセット時に制限電流値をＩｃｏｍｐ１に設定してメモリ素子にリセット電圧を印加するが、ベリファイ回路２２によってメモリ素子が誤セットされたと判定されると、制限電流値Ｉｃｏｍｐ２に設定してメモリ素子にリセット電圧を印加する。
【００３９】
制限電流値をＩｃｏｍｐ１に設定した状態で上記の誤セットが起こった際には、メモリ素子には最大でＩｃｏｍｐ１の電流が流れる。一旦、メモリ素子にＩｃｏｍｐ１の電流が流れてしまうと、そのメモリ素子を高抵抗状態に戻すためにはＩｃｏｍｐ１よりも大きい電流をメモリ素子に流す必要がある。しかし図９に示した比較例のリセット方法では、制限電流値をＩｃｏｍｐ１よりも大きく設定することができないため、一度誤セットしたメモリ素子を再度高抵抗状態に戻すことはできない。
【００４０】
しかし図１０に示すリセット方法では、制限電流値としてＩｃｏｍｐ１よりも大きいＩｃｏｍｐ２を用いることができるため、メモリ素子がリセット動作中に誤セットした場合でも、そのメモリ素子を再び高抵抗状態に戻すことができる。
【００４１】
図１０に示すリセット方法を用いると、リセット動作中に誤セットしたメモリ素子を、再び高抵抗状態に戻すことができる。しかし、一旦メモリ素子が誤セットされてしまうと、メモリ素子を構成する抵抗変化層の内部における欠陥の数が、誤セットを起こす前に比べて著しく増加している可能性がある。このように欠陥の数が多く有するメモリ素子では、欠陥の数が比較的小さいメモリ素子に比べて、セット動作やリセット動作に必要な電圧、あるいはセット動作後やリセット動作後の抵抗値が異なることが考えられる。また、いったん誤セットしたメモリ素子は、その後、高抵抗状態に戻したとしても、その後にそのメモリ素子を使い続けると再び誤セットを起こす可能性が高い。
【００４２】
したがって、回路の信頼性を上げるためには、一度誤セットされたメモリ素子は、まず図１０に示すリセット方法を用いてそれを高抵抗状態に戻し、その後は使用しないのが好ましい。
【００４３】
図１１はその方法、すなわちメモリ素子がショート不良状態になることを防ぐ方法を示すフローチャートである。図１１に示す方法は、後述する第２実施形態による集積回路に用いられ、図１０に示すリセット方法に対して、誤セットが起きたメモリ素子を冗長メモリセル内のメモリと入れ替えるステップ（図１１のＳ１０）を加えたものである。すなわち、ベリファイ回路２２によってメモリ素子が誤セットされたと判定された場合、ドライバ２１は制限電流値をＩｃｏｍｐ２に設定してリセット電圧を印加する（図１１のＳ５、Ｓ６）。その後、選択したメモリ素子の抵抗値を読み出す（図１１のＳ７）。選択したメモリ素子の読み出した抵抗値と第３判定値をベリファイ回路２２によって比較し、メモリ素子の抵抗値が第３判定値より小さい場合は、図１０に示すリセット方法と同様に、ステップＳ６に戻り、再度メモリ素子にリセット電圧を印加する（図１１のＳ８）。
【００４４】
図１０のリセット方法と異なり、メモリ素子の抵抗値が第３判定値以上の場合、リセット動作を終了し、図８に示す切り替え回路２６はそのメモリ素子を冗長メモリセルアレイ２５中のメモリ素子と入れ替える（図１１のＳ９、Ｓ１０）。
【００４５】
図１１の方法を用いれば、一度誤セットが起きたメモリ素子は、それを高抵抗状態に戻した後は使用されることがないので、メモリ回路の動作信頼性を上げることができる。
【００４６】
（電流制限素子）
次に、本実施形態に用いられ、リセット動作時に複数の制限電流値を設定することのできる電流制限素子の例について説明する。
【００４７】
図１２（ａ）は、リセット動作時に複数の制限電流値を設定することができる電流制限素子３０の一例である。メモリ素子１０の一方の電極にプログラム電圧Ｖｐｇｍが印加され、他方の電極にはトランジスタ３５を介して０Ｖが印加される。トランジスタ３５のゲートは、選択回路３４を介して少なくとも２種類の電圧Ｖｃｏｍｐ１、Ｖｃｏｍｐ２に接続される。選択回路３４はＶｃｏｍｐ１、Ｖｃｏｍｐ２のいずれかを選択し、その電圧をトランジスタ３５のゲートに伝える。
【００４８】
図１２（ｂ）はリセット動作時に複数の制限電流値を設定することができる電流制限素子３０の他の例である。メモリ素子１０の一方の電極にプログラム電圧Ｖｐｇｍが印加され、他方の電極にはトランジスタ３７と選択回路３６を介して、あるいはトランジスタ３８と選択回路３６を介して、あるいはトランジスタ３７、３８の両方と選択回路３６を介して０Ｖが印加される。トランジスタ３７、３８のゲートは共通の電圧Ｖｃｏｍｐに接続される。選択回路３６はトランジスタ３７、３８のいずれか、あるいは両方を選択する。トランジスタ３７、３８はサイズが異なってもよいし、同じでもよい。なお、トランジスタ３７、３８のゲートは異なる電圧が印加されてもよい。すなわち、トランジスタ３７、３８のゲートは異なる電源端子に接続されてもよい。
【００４９】
また、図１２（ａ）および図１２（ｂ）に示す例では、図３（ａ）と同様に、電流制限素子３０を介してメモリ素子に０Ｖを印加するが、図３（ｂ）のように電流制限素子３０を介してメモリ素子にＶｐｇｍを印加してもよい。もし電流制限素子３０を介してメモリにＶｐｇｍを印加する場合は、用いるトランジスタ、例えば図１２（ａ）、１２（ｂ）に示すトランジスタ３５、３７、３８はｐ型トランジスタであるほうが好ましい。
【００５０】
（第１実施形態）
これまでに説明した方法を用いると、従来よりも信頼性の高いプログラマブルロジック回路を含む集積回路を実現することができる。プログラマブルロジック回路は、複数の入力配線とそれに交差する複数の出力配線と、これら入力配線と出力配線との交点にメモリ素子を有する。
【００５１】
第１実施形態による集積回路を図１３に示す。この実施形態の集積回路は、プログラマブルロジック回路を含み、このプログラマブルロジック回路の構成を図１３に示す。図１３に示すプログラマブルロジック回路は、クロスポイント構造のメモリセルアレイ２３を有し、メモリセルアレイ２３は、ビット線ＢＬ１〜ＢＬｎ（ｎ≧１）と、ワード線ＷＬ１〜ＷＬｍと（ｍ≧１）と、それらの交差領域に配置されたメモリ素子１０１１〜１０ｍｎを有する。
【００５２】
ビット線ＢＬｊ（ｊ＝１，・・・，ｎ）は、トランジスタ４２ｊを介してインバータ等のバッファ４３ｊの出力端子に接続され、これらのバッファ４３ｊの入力端子は入力線ＩＮｊに接続される。同様にワード線ＷＬｉ（ｉ＝１，・・・，ｍ）はトランジスタ４６ｉを介してインバータ等のバッファ４７ｉの入力端子に接続され、これらのバッファ４７ｉの出力端子は出力線ＯＵＴｉに接続される。
【００５３】
入力線ＩＮｊ（ｊ＝１，・・・，ｎ）に入力された信号は低抵抗状態にあるメモリ素子を介して出力線ＯＵＴｉ（ｉ＝１，・・・，ｍ）へと伝達される。なお、ここでビット線ＢＬｊ（ｊ＝１，・・・，ｎ）とバッファ４３ｊとの間のトランジスタ４２ｊ、あるいはワード線ＷＬｉ（ｉ＝１，・・・，ｍ）とバッファ４７ｉとの間のトランジスタ４６ｉは、なくてもよい。ただし、これらのトランジスタを設けることで、メモリ素子のプログラムを行う際にセット電圧あるいはリセット電圧によってバッファ等の周辺回路がダメージを受けることを防ぐことができる。
【００５４】
入力線ＩＮ１〜ＩＮｎに入力された信号は、低抵抗状態にあるメモリ素子を介して出力線ＯＵＴ１〜ＯＵＴｍのいずれかから出力される。もしビット線ＢＬ１とワード線ＷＬ１との交差領域のメモリ素子１０１１が低抵抗状態ならば、入力線ＩＮ１に入力された信号は出力線ＯＵＴ１から出力される。同様に、もしビット線ＢＬ１とワード線ＷＬ１との交差領域のメモリ素子１０１１が低抵抗状態で、かつビット線ＢＬ１とワード線ＷＬ２との交差領域のメモリ素子１０２１も低抵抗状態ならば、入力線ＩＮ１に入力された信号は出力線ＯＵＴ１、ＯＵＴ２の両方から出力される。１つの入力線に入力した信号を複数の出力線から出力するためには、１つのビット線に接続された複数のメモリ素子を低抵抗状態にする必要がある。一方、プログラマブルロジック回路においては、複数の入力線に入力した信号を１つの出力線から出力することはないので、１つのワード線に接続された複数のメモリ素子を低抵抗状態にする必要はない。
【００５５】
ワード線ＷＬｉ（ｉ＝１，・・・，ｍ）はドライバ２１ａに接続され、ビット線ＢＬｊ（ｊ＝１，・・・，ｎ）はドライバ２１ｂに接続される。選択したメモリ素子をプログラムする際には、ドライバ２１ａは選択されたメモリ素子に接続するワード線に所定の電圧を与え、ドライバ２２ｂは上記選択されたメモリに接続するビット線に所定の電圧を与える。またドライバ２１ａは、電流制限素子を有し、選択したメモリ素子をプログラムする際に、選択したメモリ素子に流れる電流を制限する。
【００５６】
図１３に示すプログラマブルロジック回路において、ドライバ２１ａは選択したメモリ素子をリセットする際に、複数の制限電流値Ｉｃｏｍｐ１、Ｉｃｏｍｐ２を設定することができる。ここでは、Ｉｃｏｍｐ２＞Ｉｃｏｍｐ１とし、好ましくはＩｃｏｍｐ２をＩｃｏｍｐ１の２倍かそれよりも大きい値にする。したがって、メモリ素子を流れる電流をＩｃｏｍｐ１以下に制限した状態でリセット電圧を印加することもできるし、メモリ素子を流れる電流をＩｃｏｍｐ２以下に設定してリセット電圧を印加することもできる。
【００５７】
図１３には図示していないが、選択したメモリ素子の抵抗は、図２に示すベリファイ回路２２によって読み出すことができる。またベリファイ回路２２は、読み出されたメモリ素子の抵抗と、予め決められた判定値との大小関係を判定することができる。図１０に示したように、初めはドライバ２１ａは制限電流値をＩｃｏｍｐ１に設定した状態でメモリ素子のリセットを行うが、メモリ素子の抵抗値が第２判定値以下になった場合、ドライバ２１ａは制限電流値をＩｃｏｍｐ２に設定した状態でメモリ素子のリセットを行う。
【００５８】
上記の方法を用いると、もしメモリ素子がリセット動作中に誤セットされた場合でも、そのメモリ素子を再び高抵抗状態に戻すことができる。すなわち、メモリ素子がショート不良状態になることを防ぐことができる。
【００５９】
第１実施形態によれば、メモリ素子が低抵抗状態に固定されてしまうことを抑制することができる。
【００６０】
（第２実施形態）
第２実施形態による集積回路について図１４を参照して説明する。この第２実施形態の集積回路はプログラマブルロジック回路を有し、このプログラマブルロジック回路を図１４に示す。この図１４に示すプログラマブルロジック回路は、クロスポイント構造のメモリアレイ２４を有し、メモリアレイ２４は、図８に示した回路と同様に、メモリセルアレイ２３と、冗長メモリセルアレイ２５とを有している。メモリセルアレイ２３は、第１実施形態と同様に、ビット線ＢＬ１〜ＢＬｎ（ｎ≧１）と、ワード線ＷＬ１〜ＷＬｍと（ｍ≧１）と、それらの交差領域に配置されたメモリ素子１０１１〜１０ｍｎを有する。冗長メモリセルアレイ２５は、ビット線ＢＬ１〜ＢＬｎ（ｎ≧１）と、ワード線ＷＬｍ＋１〜ＷＬｐと（ｐ＞ｍ）と、それらの交差領域に配置されたメモリ素子１０ｍ＋１１〜１０ｐｎを有する。
【００６１】
ビット線ＢＬｊ（ｊ＝１，・・・，ｎ）は、トランジスタ４２ｊを介してインバータ等のバッファ４３ｊの出力端子に接続され、これらのバッファ４３ｊの入力端子は入力線ＩＮｊに接続される。同様にワード線ＷＬｉ（ｉ＝１，・・・，ｐ）はトランジスタ４６ｉを介して切り替え回路２６に接続される。インバータ等のバッファ４７ｉ（ｉ＝１，・・・、ｍ）の入力端子が切り替え回路２６に接続され、これらのバッファ４７ｉの出力端子は出力線ＯＵＴｉに接続される。すなわち、切り替え回路２６は、ワード線ＷＬ１〜ＷＬｐに対応した入力端子を有するとともに、出力線ＯＵＴ１〜ＯＵＴｍに対応する出力端子を有する。
【００６２】
また、ワード線ＷＬｉ（ｉ＝１，・・・，ｐ）はドライバ２１ａによって駆動され、ビット線ＢＬｊ（ｊ＝１，・・・，ｎ）はドライバ２１ｂによって駆動される。
【００６３】
入力線ＩＮｊ（ｊ＝１，・・・，ｎ）に入力された信号は低抵抗状態にあるメモリ素子を介して出力線ＯＵＴｉ（ｉ＝１，・・・，ｍ）へと伝達される。なお、ここでビット線ＢＬｊ（ｊ＝１，・・・，ｎ）とバッファ４３ｊとの間のトランジスタ４２ｊ、あるいはワード線ＷＬｉ（ｉ＝１，・・・，ｐ）と切り替え回路２６との間のトランジスタ４６ｉは、なくてもよい。ただし、これらのトランジスタを設けることで、メモリ素子のプログラムを行う際にセット電圧あるいはリセット電圧によってバッファ等の周辺回路がダメージを受けることを防ぐことができる。
【００６４】
切り替え回路２６は、複数のワード線ＷＬ１〜ＷＬｐ（１≦ｍ＜ｐ）の中からｍ本のワード線を選択し、それを出力線ＯＵＴ１〜ＯＵＴｍに接続する。
【００６５】
もしメモリセルアレイ２４の中に、リセット動作中に誤セットしたメモリ素子があった場合、上記のリセット方法を用いてそれを高抵抗状態にした後は、そのメモリ素子は使用しない。すなわち、誤セットしたメモリ素子を高抵抗状態にした後は、切り替え回路２６は、そのメモリ素子に接続されているワード線以外のワード線を選択する。
【００６６】
この第２実施形態も第１実施形態と同様に、メモリ素子が低抵抗状態に固定されてしまうことを抑制することができる。
【００６７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００６８】
１０，１０１１〜１０ｍｎ・・・抵抗変化メモリ素子（メモリ素子）、１１・・・電極、１２・・・抵抗変化層、１３・・・電極、２０・・・制御回路、２１，２１ａ，２１ｂ・・・ドライバ、２２・・・ベリファイ回路、２３・・・メモリセルアレイ、２４・・・メモリセルアレイ、２５・・・冗長メモリセルアレイ、２６・・・切り替え回路、３０・・・電流制限素子、３１・・・ｎチャネルトランジスタ、３２・・・ｐチャネルトランジスタ、３４・・・選択回路、３５・・・ｎチャネルトランジスタ、３６・・・選択回路、３７・・・ｎチャネルトランジスタ、３８・・・ｎチャネルトランジスタ、４２１〜４２ｎ・・・トランジスタ、４３１〜４３ｎ・・・バッファ、４６１〜４６ｐ・・・トランジスタ、４７１〜４７ｎ・・・バッファ
【図１】
2017168173.tif 000003
【図２】
2017168173.tif 000004
【図３】
2017168173.tif 000005
【図４】
2017168173.tif 000006
【図５】
2017168173.tif 000007
【図６】
2017168173.tif 000008
【図７】
2017168173.tif 000009
【図８】
2017168173.tif 000010
【図９】
2017168173.tif 000011
【図１０】
2017168173.tif 000012
【図１１】
2017168173.tif 000013
【図１２】
2017168173.tif 000014
【図１３】
2017168173.tif 000015
【図１４】
2017168173.tif 000016