(57)【特許請求の範囲】
【請求項１】
複数のワード線、複数のビット線、および前記ビット線の電位をドレインに受け、前記ワード線の電位をゲートに受けるスレシホールド電圧を可変に設定可能な複数のメモリセルを有するメモリセルアレイと、
前記複数のメモリセルのスレシホールド電圧を、第１のレベルを上限および下限の一方としたある範囲に一括してシフトさせる第１の制御、
前記ある範囲に一括してシフトされたスレシホールド電圧の上限および下限の他方を、前記第１のレベルに近い第２のレベルに、第２のレベルを逸脱するメモリセルを含む複数のメモリセルを第一のバイアス条件で一括してシフトさせる第２の制御、及び
前記第２のレベルにシフトされたスレシホールド電圧の上限および下限の他方を、前記第２のレベルよりも前記第１のレベルにさらに近い第３のレベルに、第一のバイアス条件とは異なる第二のバイアス条件でシフトさせる第３の制御を行う制御回路と
を具備することを特徴とする不揮発性半導体メモリ。
【請求項２】
前記第３の制御は、スレシホールド電圧が前記前記第２のレベルと前記第３のレベルとの間にあるメモリセルを検知し、検知されたメモリセルに対して選択的に行われることを特徴とする請求項１に記載の不揮発性半導体メモリ。
【請求項３】
前記第３の制御に用いられる第二のバイアス条件の選択セルのワード線に印加される電圧は、第２の制御に用いられる第一のバイアス条件のワード線に印加される電圧よりも高いことを特徴とする請求項１に記載の不揮発性半導体メモリ。
【請求項４】
前記第３の制御は、選択されたメモリセルに接続されたワード線とビット線に、通常のプログラムより弱いバイアスの電圧を印加する制御であることを特徴とする請求項１に記載の不揮発性半導体メモリ。
【請求項５】
前記通常のプログラムより弱いバイアスの電圧は、前記スレシホールド電圧が少なくとも前記第２のレベルと前記第３のレベルとの間にある、と検知されたメモリセルに接続されたワード線およびビット線に対して選択的に印加されることを特徴とする請求項４に記載の不揮発性半導体メモリ。
【請求項６】
前記通常のプログラムより弱いバイアスの電圧を印加する時、非選択ワード線の電圧は、前記第２のレベルの電圧以下とすることを特徴とする請求項４に記載の不揮発性半導体メモリ。
【請求項７】
前記通常のプログラムより弱いバイアスの電圧を印加する時、選択ワード線の電圧は、選択されたメモリセルに対する弱プログラム電圧の印加回数に応じて、メモリセルのスレシホールド電圧が第三のレベルに入るまで、ステップアップされることを特徴とする請求項４に記載の不揮発性半導体メモリ。
【請求項８】
前記第２の制御は、前記複数のビット線に、自己収束電圧を印加する制御であることを特徴とする請求項１に記載の不揮発性半導体メモリ。
【請求項９】
前記自己収束電圧は、ビット線に流れる電流が既定値を超えている、と検知されたビット線に対して選択的に印加されることを特徴とする請求項８に記載の不揮発性半導体メモリ。
【請求項１０】
前記自己収束電圧は、前記複数のビット線全てに対して順次印加されることを特徴とする請求項８に記載の不揮発性半導体メモリ。
【請求項１１】
前記複数のワード線の電圧を少なくとも１本ずつ順次、さらに上昇させることを特徴とする請求項１０に記載の不揮発性半導体メモリ。
【請求項１２】
前記第２の制御は、前記複数のビット線に、自己収束電圧を印加する制御であることを特徴とする請求項４に記載の不揮発性半導体メモリ。
【請求項１３】
前記自己収束電圧は、ビット線に流れたリーク電流が既定値を超えている、と検知されたビット線に対して選択的に印加されることを特徴とする請求項１２に記載の不揮発性半導体メモリ。
【請求項１４】
前記自己収束電圧は、前記複数のビット線全てに対して順次印加されることを特徴とする請求項１２に記載の不揮発性半導体メモリ。
【請求項１５】
前記自己収束電圧は、前記スレシホールド電圧が少なくとも前記第２のレベルと前記第３のレベルとの間にある、と検知されたメモリセルに接続された選択ビット線に対して印加されることを特徴とする請求項１２に記載の不揮発性半導体メモリ。
【請求項１６】
前記自己収束電圧は各ビット線に対する最初のスレシホールド電圧検知時に印加され、前記弱プログラム電圧は前記最初のスレシホールド電圧検知時を除いて印加されることを特徴とする請求項１５に記載の不揮発性半導体メモリ。
【請求項１７】
前記自己収束電圧印加時、前記複数のワード線の電圧は、スレシホールド電圧検知時と同じ電圧にされることを特徴とする請求項１２に記載の不揮発性半導体メモリ。
【請求項１８】
前記複数のワード線の電圧を少なくとも１本ずつ、さらに上昇させることを特徴とする請求項１７に記載の不揮発性半導体メモリ。
【請求項１９】
前記第２の制御は、前記ワード線に、前記第１の制御とは逆方向の電界がメモリセルにかかるような電圧を印加し、トンネル電流によりスレシホールド電圧をシフトする制御であることを特徴とする請求項１に記載の不揮発性半導体メモリ。
【請求項２０】
前記第３のレベルは、前記データ消去が完全に終了した後のスレシホールド電圧分布の下限であることを特徴とする請求項１に記載の不揮発性半導体メモリ。
【請求項２１】
複数のメモリセルのスレシホールド電圧を、第１のレベルを上限および下限の一方としたある範囲に一括してシフトさせ、
前記ある範囲に一括してシフトされたスレシホールド電圧の上限および下限の他方を、前記第１のレベルに近い第２のレベルに、第２のレベルを逸脱するセルを含む複数のセルを第一のバイアス条件で一括してシフトさせ、
前記第２のレベルにシフトされたスレシホールド電圧の上限および下限の他方を、前記第２のレベルよりも前記第１のレベルにさらに近い第３のレベルに第一のバイアスとは異なる第二のバイアス条件でシフトさせることを特徴とする不揮発性半導体メモリのスレシホールド電圧制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は不揮発性半導体メモリのスレシホールド電圧を制御する技術に係わり、特に過消去セルのスレシホールド電圧を、適正なスレシホールド電圧の範囲にシフトする技術に関する。
【０００２】
【従来の技術】
従来、不揮発性半導体メモリ（フラッシュメモリ）では、選択されたメモリセル（以下単にセルという）に対し、ホットエレクトロンをドレイン側から浮遊ゲートに注入してデータを書き込み、ファウラー−ノルドハイム（Fowler-Nordheim）トンネル電流のメカニズムにより、エレクトロンを浮遊ゲートからソース拡散層に、あるいはチャネル全面を介して基板に引き抜いてデータを消去する方式が用いられてきた。セルは、たとえば６４ｋバイト（５１２ｋビット）といった単位で、一つのブロックを構成している。消去時には、データを、たとえばブロック単位で一括消去する。この一括消去時のセルのスレシホールド電圧の分布について、図２２を参照して説明する。
【０００３】
図２２に示すように、消去動作は、最も消去が遅いビットが、所望のスレシホールド電圧ＶTHとなるまで繰り返し行われる。この電圧を消去ベリファイ電圧ＶEVと呼ぶ。消去ベリファイ電圧ＶEVの値は、できる限り低くすることが望まれる。データ読み出し時に選択ワード線に与える電圧と、消去ベリファイ電圧ＶEVの値との差ΔＶを大きくするためである。この電圧差ΔＶが大きい程、データ読み出し時、セルが流すオン電流が大きくなり、データを、より高速に読み出すことができ、不揮発性半導体メモリの性能が向上する。
【０００４】
ところで、ブロック単位で一括消去を行った場合、消去速度がセル毎にばらついているため、一括消去後のスレシホールド電圧ＶTHは、図２２に示すように、ある分布幅Ｄを有してばらつく。このようなスレシホールド電圧ＶTHのばらつきは、いろいろな要因で起こるが、ゲート酸化膜中へのトラップの発生や、その消滅も関係する。このため、書き換えを繰り返すと、突然、あるセルの消去速度が速くなったり、それがまた元に戻ったりする現象が起こる。
【０００５】
消去速度が速くて、スレシホールド電圧ＶTHが下がり過ぎたセル、たとえばスレシホールド電圧ＶTHが、データ読み出し時に非選択ワード線に与える電圧以下に下がったセル（以下過消去セルと呼ぶ）が発生すると、その後の書き込み動作時や、読み出し動作時に、いくつかの問題が発生する。
【０００６】
図２３は、不揮発性半導体メモリ（フラッシュメモリ）のセルアレイを示す回路図である。
【０００７】
図２３に示すように、セルＭＣは、セルアレイ中にマトリクス状に配置され、そのドレイン端子Ｄは、図中横方向に走るビット線ＢＬ（ＢＬ１、ＢＬ２、ＢＬ３、ＢＬ４、…）に接続され、その制御ゲートＣＧは、図中縦方向に走るワード線ＷＬ（ＷＬ１、ＷＬ２、ＷＬ３、ＷＬ４、…）に接続されている。また、そのソース端子は、図中縦方向に走るソース線ＳＬに接続されている。
【０００８】
ここで、過消去セルがセルアレイ中に発生した場合の問題を、図２４を参照して説明する。なお、図２４は、書き込み動作時のセルアレイのバイアス状態を示している。
【０００９】
図２４に示すように、過消去セル（たとえば図２４中のセルＭＣ32）がセルアレイ中に発生しているとする。過消去セルＭＣ32は、過大なリーク電流ＩLEAKを、そのドレイン端子Ｄからそのソース端子Ｓに向けて流す。このため、過消去セルＭＣ32が接続されているビット線ＢＬ２には、その後の動作において、過大なリーク電流ＩLEAKが流れることになる。たとえばこの過大なリーク電流ＩLEAKは、一般的に消去動作の次に行われる書き込み動作において、ビット線ＢＬ２の電圧を降下させる。このため、ビット線ＢＬ２に接続されている、あるセル（たとえば図２４中のセルＭＣ12）にデータを書き込もうとしたとき、書き込み時間の増大や、場合によっては書き込み不可能等の問題を発生させる。
【００１０】
また、最近の不揮発性半導体メモリでは、書き込み動作時にビット線ＢＬに与えるバイアス電圧を、チャージポンプ回路を用いて、低い電源電圧から昇圧して発生させている。このような不揮発性半導体メモリでは、リーク電流ＩLEAKに起因したビット線ＢＬの電圧の降下が、特に発生しやすい。
【００１１】
また、書き込みができたとしても、読み出し動作時にビット線ＢＬにリーク電流ＩLEAKが流れると、そのビット線ＢＬにドレイン端子を接続した全てのセルのデータが、データ“１”と誤検知されたりする。あるいはデータ“１”と誤検知される程ひどくなくても、リーク電流ＩLEAKによって、データ“０”のセルからの読み出し速度が遅くなったりする問題が発生する。
【００１２】
このような過消去セルの発生頻度は、消去ベリファイ電圧ＶEVを下げる程、高まる。
【００１３】
しかし、その一方で、上述したように、消去ベリファイ電圧ＶEVを下げる程、不揮発性半導体メモリの性能を向上できるために、できる限り消去ベリファイ電圧ＶEVは下げたい、という要求がある。
【００１４】
そこで、不揮発性半導体メモリに、一括消去の後、下がり過ぎたスレシホールド電圧ＶTHを、所望の値まで回復させる機能を搭載することが提案されている。
【００１５】
その一つは、スレシホールド電圧ＶTHが下がり過ぎたセルが接続されているビット線ＢＬを検知して、ワード線ＷＬの電圧を例えば０Ｖ近辺の電位に固定しつつ、そのビット線ＢＬに高い電圧を印加する。これにより、下がり過ぎたスレシホールド電圧ＶTHを、所望の値に上昇させる、という方法である。この方法は、S.Yamadaらにより、IEDM Tech. Dig. pp307-310(1991)に開示されており、現在では、自己収束（Self-convergence）法と呼ばれている。自己収束動作時のセルのバイアス状態の一例を図２５に示しておく。
【００１６】
しかし、自己収束法では、スレシホールド電圧ＶTHを所望の値に上昇させるのに、その所望のスレシホールド電圧が比較的高い値にある場合、たとえば通常の書き込み動作に比較し、非常に時間がかかる。上記文献に開示されているデータからも判るように、スレシホールド電圧ＶTHを０Ｖ以上に上昇させるのには数ｍｓ以下の時間で良いが、１Ｖ以上に上昇させるためには数十ｍｓ以上といった時間がかかる事になっている。メモリセルのチャネル長が短い最近のセルでは、−１V〜０V付近までは、さらに短い時間で上昇し、例えば1ms程度で０V付近まで上昇し、−１Vであればずっと短い時間で上昇するが、それ以上のスレシホールド電圧に上昇させるのは、上昇速度が飽和するので、微細化しても長い時間がかかってしまう場合が多い。このため、スレシホールド電圧ＶTHを上昇させなくてはいけないセルの数が多いと、この方法のみを用いて、これら全てのセルのスレシホールド電圧ＶTHを所望の、例えば１Vあるいはそれ以上といった値に上昇させるのには、チップ全体で、非現実的な時間がかかることになる。
【００１７】
また、一つのビット線ＢＬに、複数の過消去セルが接続されていた場合、複数の過消去セルを介してリーク電流が流れる。このため、自己収束動作時にビット線ＢＬの電圧が降下し、それだけで、スレシホールド電圧ＶTHを所望の値に上昇させるまでの時間が非常に長くなってしまうこともある。
【００１８】
また、他の方法として、過消去セルを、ワード線ＷＬの電圧を一定電圧でスキャンして検知し、検知した過消去セルを選択し、選択した過消去セルに接続されているワード線ＷＬとビット線ＢＬとにそれぞれ所望の電圧を与えて、過消去セルのスレシホールド電圧ＶTHを所望の値になるまでデータを書き込む、という方法がある。この方法は、S.Atsumiらにより、U.S. Patent No.5,568,419（対応日本出願特許公開番号：特開平８−４５２８４号）に開示されており、一般に弱プログラム（Weak-program）法と呼ばれている。弱プログラム動作時の選択セルのバイアス状態の一例を図２６Ａに示しておく。
【００１９】
この弱プログラム法では、過消去セルに接続されているワード線ＷＬとビット線ＢＬとにそれぞれ所望の電圧を積極的に与えることで、ドレインから電子を浮遊ゲートに注入する。このため、通常の書き込み動作と同様に、たとえばμｓ単位の書き込みパルスを、選択ワード線およびビット線に対して与えることで、スレシホールド電圧ＶTHを高速に所望の値に上昇させることができる。
【００２０】
また、弱プログラム法では、自己収束法と異なり、過消去セルを選択して弱い書き込みを行う。このため、図２６Ｂに示すように、非選択セルにおいては、そのワード線ＷＬ（非選択ワード線）の電圧を、たとえば−１Ｖといった電圧に設定でき、同一ビット線ＢＬに存在する他の過消去セルが流す電流を最小限に抑えることができる。
【００２１】
しかし、弱プログラム法では、スレシホールド電圧ＶTHが、非常に低い値まで低下したセルが発生した場合、実際に過消去セルの検知がうまくいかずに、誤動作を引き起こす可能性がある。これについて、図２７を参照して説明する。
【００２２】
図２７に示すように、まず、非選択ワード線（図２７ではＷＬ２、ＷＬ３、ＷＬ４、…）は、たとえば−１Ｖといった電圧にされる。これにより、非選択ワード線に接続されているセルはそれぞれ、そのスレシホールド電圧ＶTHが−１Ｖを超えていれば、カットオフされる。
【００２３】
一方、選択ワード線（図２７ではＷＬ１）の電圧は、たとえば検知したいスレシホールド電圧ＶTHより一定量高い値に設定し、選択ビット線（図２７ではＢＬ２）に読み出し用バイアス電圧、たとえば０．５Ｖを与えて読み出し動作をさせる。たとえばスレシホールド電圧ＶTHが１Ｖ以下のセルを検知したいのであれば、選択ワード線ＷＬ１には、たとえば２Ｖの電圧を与える。また、選択ビット線ＢＬ２には、０．５Ｖの電圧を与える。非選択ビット線（図２７ではＢＬ１、ＢＬ３、ＢＬ４、…）は、たとえば開放する（OPEN）。
【００２４】
このようなバイアス状態により、検知しようとするセル（図２７ではセルＭＣ12）が選択され、ビット線ＢＬ２に規定値以上のオン電流ＩONが流れるか否かを検知する。流れなければスレシホールド電圧ＶTHは“１Ｖを超える”と判断され、“弱プログラムの必要無し”と判断される。
【００２５】
規定値以上のオン電流ＩONが流れれば、スレシホールド電圧ＶTHは“１Ｖ以下”と判断され、“弱プログラムの必要有り”と判断される。
【００２６】
このようにして選択セルＭＣ12が過消去か否かが検知され、もし過消去であれば、選択セルＭＣ12に対して弱プログラムが行われる。
【００２７】
ところが、同じビット線ＢＬ２に、スレシホールド電圧ＶTHが−２Ｖ未満のセルが接続されていたとする（たとえば図２７中のセルＭＣ42）。この場合、非選択ワード線ＷＬ４の電圧は−１Ｖであるため、非選択セルＭＣ42は、規定値以上のオン電流ＩONを流す。この結果、検知しようとしているセルＭＣ12のスレシホールド電圧ＶTHの状態に係わらず、そのスレシホールド電圧ＶTHは“１Ｖ以下”と判断されてしまう。
【００２８】
もし、選択セルＭＣ12のスレシホールド電圧ＶTHが１Ｖを超え、適正値であった場合、これは、選択セルＭＣ12のスレシホールド電圧ＶTHを誤検知したことになる。このため、適正なスレシホールド電圧ＶTHである選択セルＭＣ12に対して、弱プログラムが行われてしまう。
【００２９】
上記誤検知に起因した弱プログラム動作は、非選択セルＭＣ42が規定値以上のオン電流ＩONを流す限り、繰り返し続けられる。この結果、選択セルＭＣ12のスレシホールド電圧ＶTHは、どんどん上昇し、消去ベリファイ電圧ＶEVを超え、やがて、そのスレシホールド電圧ＶTHは、データ読み出し時に“１”読み出しとなる値を超えてしまう可能性がある。
【００３０】
スレシホールド電圧ＶTHが、“１”読み出しとなる値を超えてしまえば、データを消去したにも関わらず（データ読み出し時に“１”読み出しとなる）、データが消去されていないこと（データ読み出し時に“０”読み出しとなる）を意味する。このような現象が起きてしまったチップは“不良”である。
【００３１】
また、図２８に示すように、同じビット線ＢＬ２に、スレシホールド電圧ＶTHが−２Ｖ以上ではあるが、−１Ｖ未満のセル（たとえば図２８中のセルＭＣ32）が接続されていた、とする。この場合、図２７を参照して説明したような誤検知とはならないが、非選択セルＭＣ32は、リーク電流ＩLEAKを流す。このリーク電流ＩLEAKは、検知しようとしている選択セルＭＣ12が流す電流に加算されることになる。これもまた、選択ＭＣ12への書き込み過ぎの原因となる。
【００３２】
たとえば選択ワード線ＷＬ１の電圧を２Ｖとし、選択ビット線ＢＬ２に流れるオン電流ＩONが、たとえば１０μＡ以下になれば、選択セルＭＣ12のスレシホールド電圧ＶTHが１Ｖを越えたとして、弱プログラム動作を終了する設計になっていたとする。
【００３３】
ところが、非選択セルＭＣ32が５μＡのリーク電流ＩLEAKを流していたとすると、選択セルＭＣ12のオン電流ＩONが５μＡ以下にならないと、弱プログラム動作は終了しない。これは、選択セルＭＣ12のスレシホールド電圧ＶTHが、既に１Ｖを越え、適正値になっているのに、弱プログラム動作が終了しないことを意味する。これは、選択セルＭＣ12に対して、書き込み過ぎを発生させる可能性がある。
【００３４】
もし、書き込み過ぎが発生してしまうと、上記データを消去したにも関わらず、データが消去されていないという現象を起こす。
【００３５】
また、“１”読み出しとなるスレシホールド電圧ＶTHの値を超えないまでも、スレシホールド電圧ＶTHが消去ベリファイ電圧ＶEV以上になってしまうと、それは電圧差ΔＶの不足、即ち読み出し電流のマージン不足を招く。マージン不足は、読み出し動作を遅くさせる。
【００３６】
また、非選択セルＭＣ32がリーク電流ＩLEAKを流していた場合、このリーク電流ＩLEAKによってビット線ＢＬ２の電圧は、元の設定値より下がってしまう。
【００３７】
弱プログラム動作時、非選択ワード線はそれぞれ−１Ｖに固定されているが、ビット線ＢＬ２を、選択セルＭＣ12と共有する非選択セルＭＣ22、ＭＣ32、ＭＣ42、…はそれぞれ、そのドレインに電圧がかかっている。このため、これら非選択セルにおいては、そのスレシホールド電圧ＶTHが、たとえば自己収束と同じメカニズムによって上昇する。非選択セルＭＣ32のスレシホールド電圧ＶTHが上昇し、−１Ｖを超えると、非選択セルＭＣ32は“カットオフ状態”となり、リーク電流ＩLEAKは突然減る。この結果、元の設定値より下がっていたビット線ＢＬ２の電圧は、元の設定値に突然回復する（突然上昇する）といった現象が起きる。
【００３８】
このようにスレシホールド電圧ＶTHが−１Ｖ未満の非選択セルＭＣ32が接続されているビット線ＢＬ２では、その電圧が突然上昇することがあり、弱プログラムの書き込み速度や、書き込み量の制御が、設計通りにいかなくなる。ビット線ＢＬ２の電圧が突然上昇した結果、選択セルＭＣ12には、データが所望のスレシホールド電圧ＶTHを超えて書き込まれる、といった現象が起きることもある。
【００３９】
この現象は、弱プログラム動作に、ステップアップ（Step-up）法を併用していた場合に、特に顕著である。ステップアップ法とは、選択セルＭＣ12に対して弱プログラムを繰り返すごとに、ワード線ＷＬ１の電圧をステップアップする、という方法である。ステップアップ法は、たとえばH. Shigaらにより、Symposium of VLSI Circuit Technical digest pp33-36(1999)に開示されている。
【００４０】
ステップアップ法は、選択ワード線ＷＬ１の電圧を一定としたまま弱プログラムを繰り返す方法に比べて、スレシホールド電圧ＶTHを、ずっと高速に所望の値まで上昇させることができる。
【００４１】
しかし、スレシホールド電圧ＶTHが−１Ｖ未満のセルＭＣ32が接続されたビット線ＢＬ２では、リーク電流ＩLEAKが流れるために、その電圧が元の設定値よりも下がってしまい、弱プログラムの速度が低下する。このため、弱プログラム動作の繰り返し回数が増え、選択ワード線ＷＬ１の電圧のステップアップ回数は増加する。この結果、選択ワード線ＷＬ１の電圧は、非常に高い値まで上昇してしまうことになる。
【００４２】
このようなステップアップ法を用いていた場合、ビット線ＢＬ２の電圧が、上記メカニズムによって突然上昇すると、非常に大きな書き込みが行われることになる。よって、データが所望のスレシホールド電圧ＶTHを超えて書き込まれる、といった現象が特に顕著である。
【００４３】
同様の現象は、複数のビット線に対して、同時にデータを読み書きする不揮発性半導体メモリの場合に、特に起き易い。このような不揮発性半導体メモリのブロック図を図２９に示す。
【００４４】
図２９に示すように、複数のビット線に対して、同時にデータを読み書きする不揮発性半導体メモリは、１ブロック内に複数のＩ／Ｏ回路１０９を持つ。これらＩ／Ｏ回路１０９にはそれぞれ、カラムセレクタ１０７を介して何本かずつのビット線、たとえば１６本ずつのビット線ＢＬ１〜ＢＬ１６、ＢＬ１７〜ＢＬ３２、…が接続されている。カラムデコーダ１０８は、カラムアドレスに応じたカラム選択信号を、カラム選択線（ＣＳＬ１〜ＣＳＬ１６）を介して、複数のカラムセレクタ１０７それぞれに供給する。複数のカラムセレクタ１０７はそれぞれ、たとえば１６本のビット線のうちの１本を、カラム選択信号に応じて選択し、選択したビット線をＩ／Ｏ回路１０９に接続する。Ｉ／Ｏ回路１０９とカラムセレクタ１０７とを接続する接続経路にはそれぞれ、一つのチャージポンプ回路１０４の出力が接続されている。弱プログラム時、書き込み用ビット線バイアス電圧は、一つのチャージポンプ回路１０４から、複数のビット線に対して同時に供給される。
【００４５】
このような不揮発性半導体メモリでは、選択された複数のビット線のうちの一本にでも過大なリーク経路があれば、チャージポンプ回路１０４から出力された電圧が低下する。この結果、選択された複数のビット線全てにおいて、その電圧は元の設定値よりも下がってしまう。
【００４６】
また、図２９に示す不揮発性半導体メモリにおいては、自己収束法を用いた場合においても、自己収束に要する時間の増大を招く。つまり、上述したように選択された複数のビット線のうちの一本にでも過大なリーク経路があれば、選択された複数のビット線全てにおいて、その電圧は元の設定値よりも下がってしまうからである。
【００４７】
また、上記説明は全て、説明を簡単にするために、同一ビット線に、非常にスレシホールド電圧の低いセルが１個存在した場合について説明しているが、実際にはスレシホールド電圧が低めのセルが多数存在する場合でも、そのリーク電流の総和が大きくなると、同様の誤動作問題が起きることになる。
【００４８】
これらに対して、Weak-programの時の誤動作を対策する方法として、リークのあるビット線を検知後、まず、そのビット線の全セルにWeak-program動作を行ない、リークがなくなった後に、所望のスレシホールド電圧より低いセルを検知して、最初のWeak-programと同一のバイアス条件で、Weak−programを行なう方法が特開平８−１０６７９３号公報に高橋らにより開示されている。しかしながら、この方法も２つの大きな問題がある。一つには、Weak-programと同一のバイアス条件で、全セルに書き込みを行なうと、もともとスレシホールド電圧が消去verify電圧に近い、スレシホールドの高いセルにも書き込み動作が行なわれる為に、そのセルもさらに書き込みをされて、消去Verifyレベルを超えてしまう事である。特開平８−１０６７９３号公報の図１７には、高いスレシホールド電圧のセルのスレシホールド電圧はWeak-program動作で低下していくと示されているが、実際のデバイスの例えば2.5V以下の消去verify電圧と、Weak-program時のワード線電圧４Vの条件では通常上昇してしまう場合が多い。その実際の特性は、例えば、H. ShigaらによるSymposium of VLSI Circuit Technical digest pp33-36(1999)にも示されている。また全セルに順次、Weak-program動作をかけると長い時間がかかってしまう問題も発生する。１つのセルへの書き込み時間を短くできたとしても、同一ビット線に接続されるセルは、1K〜2K個あり、どのセルに書き込みが必要かは判別できないので、そのビット線上の全セルのワード線を順次上げて書き込みを行なう必要がある為である。実際のメモリセルへの印加時間に加えて、ワード線をスイッチングして上げ下げするにも時間を要する。従って、例えば最初は同一ビット線上の全てのセル、次に必要なセルの２段階でスレシホールド電圧を一定範囲に入れようとする場合も、従来開示されている両段階を同様の電位で実行するのは、誤動作の発生の危険性及び動作速度の両面から、望ましくないものであった。
【００４９】
【発明が解決しようとする課題】
この発明は、上記の事情に鑑み為されたもので、その主要な目的は、所望の範囲を逸脱したメモリセルのスレシホールド電圧を、誤動作や誤検知の発生を抑制しつつ、かつ動作の高速性を損なわずに、所望の範囲に回復させることが可能な不揮発性半導体メモリおよびそのスレシホールド電圧制御方法を提供することにある。
【００５０】
【課題を解決するための手段】
上記目的を達成するために、この発明では、複数のメモリセルのスレシホールド電圧を、第１のレベルを上限および下限の一方としたある範囲に一括してシフトさせた後、シフトされたスレシホールド電圧の上限および下限の他方を、前記第１のレベルに近い第２のレベルに、第２のレベルを逸脱するメモリセルを含む複数のメモリセルを第一のバイアス条件で一括してまずシフトさせる。この時のバイアス条件は、実際には第二のレベルを逸脱していないセルに印加されても問題を引き起こさず、さらに第二のレベルを逸脱しているセルは高速に第二のレベルに到達する適切なバイアス条件を印加する。具体的にはワード線を０〜―１Vといった低い電圧に設定し、第二の範囲を逸脱したセルが含まれると検知されたビット線には４〜５V等の電圧を印加する、いわゆる自己収束法を用いる。
【００５１】
なお、この動作において、回路動作を簡略にする為、第二のレベルを逸脱するメモリセルを含まないビット線にもバイアスが印加される事があっても構わない。
【００５２】
この後、前記第２のレベルにシフトされたスレシホールド電圧の上限および下限の他方を、前記第２のレベルよりもさらに第１のレベルに近い第３のレベルに第一のバイアス条件とは異なる第二のバイアス条件でシフトさせる。例えば、第三のレベルを逸脱したセルのみを選択し、そのセルのワード線に２V、ドレインに４〜５Vを印加する。このように第二のバイアス条件では、第一と第二で同様の電荷注入メカニズムを用いる場合は、第一のバイアス条件よりもワード線の電圧を高く設定する。ワード線電圧は、セルの書き込み速度をモニタしつつ順次上昇させていくステップアップ法を用いると、さらに短時間に所望の第三のレベルに入れる事ができる。なお、非選択ワード線には、第二のレベルに入っているメモリセルであれば問題になるようなリーク電流を発生させない電圧に固定する。例えば、−１V〜０Vといった電圧である。
【００５３】
このような不揮発性半導体メモリであると、複数のメモリセルのスレシホールド電圧の上限および下限の他方を、まず、第２のレベルに短時間で一括にシフトさせる。このため、スレシホールド電圧の上限および下限の他方を、第３のレベルにシフトさせる際、複数のメモリセルを上記第２のレベルに基いて、非選択ワード線に適切なバイアスを印加する事で確実にカットオフさせることが可能となる。このため、スレシホールド電圧の上限および下限の他方を、第３のレベルにシフトさせる際、たとえば弱プログラム法を用いたとしても、たとえば誤動作や、誤検知の発生を抑制しつつ、所望の範囲にシフトさせることができる。
【００５４】
また、スレシホールド電圧の上限および下限の他方を、段階的にシフトさせ、かつそれぞれのシフトに最適なバイアス条件を用いるため、一度に第３のレベルまで上昇させる場合に比べて、それぞれのシフト量は僅かで済む。このため、第２のレベルにシフトさせる際、たとえば全ワード線を全て０Vあるいはその前後の電位とし、同一ビット線上の全セルのビット線に一括して電圧をかける自己収束法を用いたとしても、スレシホールド電圧をシフトさせる動作の高速性が損なわれ難い。さらに第三のレベルから逸脱したセルを確実に検知できる状態にした後に、第三のレベルから逸脱したメモリセルを検知して、このメモリセルに対しては、第二のレベルに入れる場合とは異なったバイアス条件を設定して、短時間に所望の値にスレシホールド電圧をもっていくものである。
【００５５】
【発明の実施の形態】
以下、この発明の実施形態を、図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【００５６】
以下の説明では、データを読み出したとき、ビット線に流れた電流が既定値以上（即ちセルが“オン”）の場合をデータ“１”、あるいは“１”読み出し、反対に既定値未満（即ちセルが“オフ”）の場合をデータ“０”、あるいは“０”読み出しとする。なお、データ“１”か“０”かを記憶する二値メモリを例示するが、この発明は、多値メモリにも当然適用できる。
【００５７】
［第１の実施形態］
図１Ａは、この発明が適用される不揮発性半導体メモリの一例を概略的に示すブロック図である。
【００５８】
図１Ａに示すように、不揮発性半導体メモリは、メモリセルアレイ１（以下、単にセルアレイという）を有する。セルアレイ１には、複数のメモリセル（以下単にセルという）ＭＣがマトリクス状に配置されている。図１Ｂにセルアレイ１の等価回路図を示す。図１Ｂには、一例としてＮＯＲ型フラッシュメモリのセルアレイ１が示されている。
【００５９】
図１Ｂに示すように、セルＭＣのドレイン端子Ｄはビット線ＢＬに接続され、そのソース端子Ｓはソース線ＳＬに接続され、そのゲート（制御ゲートＣＧ）はワード線ＷＬに接続されている。セルＭＣは、チャネルと制御ゲートＣＧとの間に、電子を蓄積する浮遊ゲートＦＧを有する。セルＭＣは、浮遊ゲートに蓄積する電子の量を変えることで、スレシホールド電圧ＶTHを可変に設定できる。データが“１”か“０”かは、スレシホールド電圧ＶTHに応じて設定され、セルＭＣに記憶される。
【００６０】
制御回路２は、外部から供給されたコマンドＣＭＤに基づいて、データ書き込み時、またはデータ消去時にセルＭＣのスレシホールド電圧を制御する。たとえば制御回路２は、特にビット線バイアス回路３、ソース線制御回路４，およびワード線バイアス回路５などを制御し、セルアレイ１のバイアス状態を変える。セルアレイ１のバイアス状態を変えることで、セルＭＣのスレシホールド電圧ＶTHが制御される。
【００６１】
ビット線バイアス回路３は、ビット線ＢＬに対してビット線バイアス電圧を供給する。ビット線バイアス回路３は、たとえば制御回路２からの制御信号に基づいて、ビット線バイアス電圧を、データ読み出し時とデータ書き込み時とで互いに切り替える。
【００６２】
ソース線バイアス回路４は、ソース線ＳＬに対してソース線バイアス電圧を供給する。ソース線バイアス電圧は、通常“０Ｖ”である。ただし、電子をソース線ＳＬに対して放出させてデータ消去を行う方式の場合、たとえば制御回路２からの制御信号に基づいて、データ消去時、ソース線バイアス電圧ＶSLを“０Ｖ”より高い電圧とする。
【００６３】
ワード線バイアス回路５は、ローデコーダ６によって選択されたワード線ＷＬ、あるいは全てのワード線ＷＬに対してワード線バイアス電圧を供給する。ワード線バイアス回路５は、データ読み出し時、データ書き込み時、データ消去時、たとえば制御回路２からの制御信号に基づいて、ワード線バイアス電圧を、それぞれ切り替える。
【００６４】
カラムセレクタ７は、カラムデコーダ８によって選択されたビット線ＢＬを、Ｉ／Ｏ回路９に接続する。
【００６５】
Ｉ／Ｏ回路９は、たとえばデータ読み出し時、選択されたビット線ＢＬに流れた電流を既定値ＩREFと比較し、データ“０”かデータ“１”かの判断を行う。
【００６６】
アドレスバッファ１０は、ローアドレスをローデコーダ６に供給するとともに、カラムアドレスをカラムデコーダ８に供給する。
【００６７】
アドレスカウンタ１１は、通常、外部から供給されるアドレスを、チップ内部で発生させる必要があるとき、たとえば制御回路２からの制御信号に基づいて、アドレスをチップ内部で発生させる。アドレスカウンタ１１は、アドレスをインクリメントし、異なるアドレスを順次発生させてアドレスバッファ１０に供給する。
【００６８】
ベリファイ回路１２は、データ書き込み時、データ消去時に、スレシホールド電圧ＶTHが所望のレベルであるか否かを検知する回路である。たとえばベリファイ回路１２は、データ書き込み後、またはデータ消去後にベリファイを行った際、Ｉ／Ｏ回路９がデータ“０”と判断したかデータ“１”と判断したかに基づいて、スレシホールド電圧ＶTHが所望のレベルであるか否かを検知する。
【００６９】
図２は、この発明の第１の実施形態に係る不揮発性半導体メモリのスレシホールド電圧制御方法を示す流れ図で、特にデータ消去シークエンスに適用した例を示している。
【００７０】
まず、図２中のＳＴ．１に示すように、データ消去に先立ち、消去前プログラムを行う。消去前プログラムでは、データを消去するブロック内の全て、もしくは一部のワード線およびビット線に対して書き込みパルスを与え、全てのセルにデータ“０”かデータ“１”かのいずれかに揃える。図３Ａは、消去前プログラム終了後のスレシホールド電圧ＶTHの分布を示している。
【００７１】
図３Ａに示すように、本例では、全てのセルのスレシホールド電圧ＶTHが、スレシホールド電圧ＶTHの分布がデータ消去後とは逆の分布となるようにデータ“０”の方向にシフトされる。
【００７２】
次に、ＳＴ．２に示すように、データ消去（ERASE）を行う。これにより、全てのセルのスレシホールド電圧は、データ“０”からデータ“１”の方向にシフトされる。
【００７３】
本例では、データ消去に自動消去（AUTO-ERASE）と呼ばれる方式を採用している。自動消去では、データを消去した後（ＳＴ．２１）、消去ベリファイを行い（ＳＴ．２２）、セルのスレシホールド電圧ＶTHが消去ベリファイ電圧ＶEV未満か否かを判断する（ＳＴ．２３）。スレシホールド電圧ＶTHが消去ベリファイ電圧ＶEV以上である場合（ＮＯ．）には、データ消去を繰り返す。図３Ｂは自動消去中のスレシホールド電圧ＶTHの分布を示し、図３Ｃは自動消去終了後のスレシホールド電圧ＶTHの分布を示している。
【００７４】
このように消去ベリファイとデータ消去とを繰り返すことで、図３Ｃに示すように、全てのセルのスレシホールド電圧ＶTHは、まず、“ＶTH＜ＶEV”に規定される。
【００７５】
ここまでの工程は、周知の方法を使用することが可能である。
【００７６】
また、消去前プログラムについては必ずしも行う必要は無いので、必要に応じて行われれば良い。
【００７７】
次に、ＳＴ．３に示すように、スレシホールド電圧ＶTHの分布幅を縮小化する。ここで、第１の実施形態では、スレシホールド電圧ＶTHの下限値ＶTHMINを、少なくとも２段階以上に分けて段階的に上昇させ、その分布幅を縮小化していく。
【００７８】
その一例として本例では、図２に示すように、下限値ＶTHMINを第一のバイアス条件で第１の下限値に上昇させる第１の工程（ＳＴ．３１）と、この第１の下限値を、第二のバイアス条件でさらに消去ベリファイ電圧ＶEVに近い、第２の下限値に上昇させる第２の工程（ＳＴ．３２）とを具備している。
【００７９】
以下、第１の工程（ＳＴ．３１）、および第２の工程（ＳＴ．３２）の具体例を説明する。
【００８０】
第１の工程（ＳＴ．３１）では、スレシホールド電圧ＶTHの下限値ＶTHMINを、第１の過消去ベリファイ電圧ＶOEV1以上に規定する。これにより、全てのセルのスレシホールド電圧ＶTHは“ＶOEV1＜ＶTH＜ＶEV”に規定される。
【００８１】
このように規定するための一例は、データが消去されるブロック内の全てのワード線に、ある一定のバイアス電圧を印加した状態で、ビット線に流れるビット線電流を、既定値ＩREF-LEAK以下に減らすことである。
【００８２】
全てのワード線に印加する、ある一定のバイアス電圧の例は、第１の過消去ベリファイ電圧ＶOEV1であり、その数値例は“−１Ｖ”である。このとき、スレシホールド電圧ＶTHを“−１Ｖ”以上にするためには、既定値ＩREF-LEAKを、データ読み出し時の既定値ＩREFより小さく設定すると良い。
【００８３】
たとえばワード線の電圧がセルのスレシホールド電圧ＶTHより“１Ｖ”以上高くなったとき、ビット線に“１０μＡ”以上の電流が流れる、とする。この“１０μＡ”を、データ読み出し時に、“０”読み出しか“１”読み出しかを区別するための既定値ＩREFとする。この場合、ビット線電流が“１０μＡ”以上の電流が流れれば“１”読み出しとなり、反対に“１０μＡ”未満ならば“０”読み出しとなる。
【００８４】
このように読み出し時の既定値ＩREFを“１０μＡ”としたとき、リーク電流検知時（以下リークビット線チェックという）の既定値ＩREF-LEAKを“１０μＡ”未満、たとえば“１μＡ”に設定される。即ち、リークビット線チェック時、ビット線に“１μＡ”以上の電流が流れれば“１”読み出しとなり、反対に“１μＡ”未満であれば“０”読み出しとなる。この状態を目視化したものが図４Ａであり、これを実現するための一回路構成例が図４Ｂである。
【００８５】
図４Ｂに示すように、既定値発生回路１３は、たとえばＩ／Ｏ回路９に対して既定値を供給する。既定値発生回路１３には、たとえば制御回路２から出力されたリークビット線チェックを制御する信号ＳLEAKを受けたとき、既定値を“１０μＡ”から“１μＡ”に切り替える。
【００８６】
いま、ワード線に印加される、ある一定のバイアス電圧は“−１Ｖ”であるから、ビット線電流Ｉが“Ｉ≧１０μＡ”であれば、セルのスレシホールド電圧ＶTHは“ＶTH≦−２Ｖ”である、と想定できる。
【００８７】
また、ビット線に流れる電流Ｉが“１０μＡ＞Ｉ≧１μＡ”であれば、セルのスレシホールド電圧ＶTHは“−２Ｖ＜ＶTH≦−１Ｖ”である、と想定できる。
【００８８】
よって、ビット線に流れる電流Ｉを“Ｉ＜１μＡ”とすれば、セルのスレシホールド電圧ＶTHは“ＶTH＞−１Ｖ”にできる。
【００８９】
このように“０”読み出しか“１”読み出しかを区別するための既定値を、リークビット線チェック時に、読み出し時よりも厳しくし、たとえばビット線に流れる電流を“１μＡ”未満とする。これにより、スレシホールド電圧ＶTHを、たとえば第１の過消去ベリファイ電圧ＶOEV1以上にすることができる。
【００９０】
なお、既定値ＩREF-LEAKは“１μＡ”に設定したが、この値は、ビット線の容量等、いくつかの要素を勘案して適切に設定されればよい。
【００９１】
ビット線に流れる電流を“１μＡ”未満とする方法としては、自己収束法を好ましく用いることができる。以下、ＳＴ．３１に自己収束法を用いた場合の一例を説明する。
【００９２】
図２中のＳＴ．３１-1において、まず、カラムアドレスを初期化する。
【００９３】
次に、ＳＴ．３１-2において、リークビット線チェックを行う。これは、初期化されたカラムアドレスによってビット線ＢＬ１を選択し、この選択ビット線ＢＬ１のリーク電流を検知する。このときの既定値ＩREF-LEAKは、読み出し時の既定値ＩREF未満の、たとえば“１μＡ”とする。図５Ａに、リーク電流検知時のセルアレイ１のバイアス状態を示す。
【００９４】
図５Ａに示すように、データが消去されるブロック内の全てのワード線ＷＬ１、ＷＬ２、ＷＬ３、ＷＬ４、…は非選択とされ、たとえば非選択バイアス電圧が印加されている。非選択バイアス電圧の数値例は“−１Ｖ”である。選択ビット線ＢＬ１には、読み出し用バイアス電圧が印加されている。読み出し用バイアス電圧の数値例は“０．５Ｖ”である。非選択ビット線ＢＬ２、ＢＬ３、ＢＬ４、…は開放状態（OPEN）か、あるいは“０Ｖ”とする。また、ソース線ＳＬは“０Ｖ”とする。
【００９５】
次に、ＳＴ．３１-3において、図５Ａに示すバイアス状態で、選択ビット線ＢＬ１に流れたリーク電流が“１μＡ”未満か否かを判断する。これは、選択ビット線ＢＬ１に流れたリーク電流を、既定値ＩREF-LEAKと比較して、“０”読み出しか“１”読み出しかで判断する。
【００９６】
この判断の結果、“０”読み出し、即ちリーク電流は“１μＡ”未満と判断された場合（ＹＥＳ．）、ＳＴ．３１-4に進む。
【００９７】
ＳＴ．３１-4では、カラムアドレスが最終カラムアドレスであるか否かが判断される。ＳＴ．３１-4において、“最終カラムアドレスではない”と判断された場合（ＮＯ．）、ＳＴ．３１-5に進む。
【００９８】
ＳＴ．３１-5では、カラムアドレスがインクリメントされる。これは、たとえば現在のカラムアドレスに“＋１”すれば良い。カラムアドレスをインクリメントした後、再度、ＳＴ．３１-2に戻る。
【００９９】
ＳＴ．３１-2では、図５Ｂに示すように、ビット線ＢＬ１に代わって、ビット線ＢＬ２が、インクリメントされたカラムアドレスによって選択され、選択ビット線ＢＬ２には読み出し用バイアス電圧（０．５Ｖ）が印加される。
【０１００】
次に、ＳＴ．３１-3において、図５Ｂに示すバイアス状態で、選択ビット線ＢＬ２に流れたリーク電流が、“１μＡ”未満か否かを判断する。
【０１０１】
この判断の結果、“１”読み出し、即ちリーク電流が“１μＡ”以上と判断された場合（ＮＯ．）、ビット線ＢＬ２には、図５Ｂに示すようにスレシホールド電圧ＶTHが“−１Ｖ”以下のセル（図５ＢではＭＣ32）が接続されている、と想定することができる。
【０１０２】
よって、リーク電流は“１μＡ”以上と判断された場合（ＮＯ．）、ＳＴ．３１-6に進む。
【０１０３】
ＳＴ．３１-6では、自己収束動作を行う。図５Ｃに、自己収束動作時のセルアレイ１のバイアス状態を示す。
【０１０４】
図５Ｃに示すように、ビット線ＢＬ２に、読み出し用バイアス電圧よりも高い自己収束用バイアス電圧（自己収束パルス）を印加する。自己収束用バイアス電圧の例は、たとえば書き込み用バイアス電圧と同じ電圧であり、その数値例は“５Ｖ”である。
【０１０５】
なお、ワード線ＷＬ１、ＷＬ２、ＷＬ３、ＷＬ４、…には、自己収束に最適なバイアス電圧、たとえば実際には“０Ｖ〜−１Ｖ”といった電圧を印加し、非選択ビット線ＢＬ１、ＢＬ３、ＢＬ４、…は開放状態（OPEN）か、あるいは“０Ｖ”、ソース線ＳＬは“０Ｖ”とする。
【０１０６】
図５Ｃに示すバイアス状態とすることで、セルＭＣ32に対して自己収束がかかり、そのスレシホールド電圧ＶTHは、一般に自己収束スレシホールド電圧ＶTH*と呼ばれる値に向かって上昇していく。
【０１０７】
ここで、自己収束スレシホールド電圧ＶTH*について説明しておく。この自己収束スレシホールド電圧ＶTH*は、たとえば紫外線消去後のセルのスレシホールド電圧ＶTH-UVに比例する。つまり、自己収束スレシホールド電圧ＶTH*は、たとえばセルのチャネルの不純物濃度を調節することで制御することが可能である（参考文献： S.Yamada et al,“A SELF-CONVERGENCE ERASING SCHEME FOR A SINPLE STACKED GATE FLASH EEPROM”, IEDM Tech. Dig. pp307-310(1991)）。
【０１０８】
この第１の実施形態では、セルの自己収束スレシホールド電圧ＶTH*が、第１の過消去ベリファイ電圧ＶOEV1以上になるように、チャネルの不純物濃度が調節されることが好ましい。これにより、スレシホールド電圧VTHが“−１Ｖ”以下であるセルについては、自己収束のメカニズムによって、第１の過消去ベリファイ電圧ＶOEV1を上回る値に上昇する。
【０１０９】
なお、自己収束スレシホールド電圧ＶTH*は、第１の過消去ベリファイ電圧ＶOEV1以上、かつ消去ベリファイ電圧ＶEV未満の範囲内に設定されるのが好ましい。自己収束のメカニズムによって、セルのスレシホールド電圧ＶTHが、消去ベリファイ電圧ＶEV以上になってしまうことを防ぐ観点からである。
【０１１０】
自己収束動作を終えた後、再度、ＳＴ．３１-2に進み、再度、図５Ｂに示すバイアス状態とする。
【０１１１】
次に、ＳＴ．３１-3において、図５Ｂに示すバイアス状態で、選択ビット線ＢＬ１に流れたリーク電流が、“１μＡ”未満か否かを判断する。
【０１１２】
この判断の結果、再度“１”読み出し、即ちリーク電流が“１μＡ”以上と判断された場合（ＮＯ．）には、再度、自己収束動作を繰り返す。
【０１１３】
また、反対に“０”読み出し、即ちリーク電流は“１μＡ”未満と判断された場合（ＹＥＳ．）には、ＳＴ．３１-4に進む。
【０１１４】
ＳＴ．３１-4では、最終カラムアドレスか否かが判断される。“最終カラムアドレスではない”（ＮＯ．）と判断されたとき、ＳＴ．３１-5に進み、カラムアドレスをインクリメントしたうえで、ＳＴ．３１-2以降の動作を繰り返す。
【０１１５】
また、反対に“最終カラムアドレスである”（ＹＥＳ．）と判断されたとき、第１の工程（ＳＴ．３１）が終了する。図３Ｄに第１の工程（ＳＴ．３１）終了後のスレシホールド電圧ＶTHの分布を示す。
【０１１６】
図３Ｄに示すように、第１の工程（ＳＴ．３１）終了後、全てのセルのスレシホールド電圧ＶTHは“ＶOEV1＜ＶTH＜ＶEV”に規定される。
【０１１７】
次に、第２の工程（ＳＴ．３２）に進む。
【０１１８】
この第２の工程（ＳＴ．３２）には、弱プログラム法を好ましく用いることができる。以下、第２の工程（ＳＴ．３２）に、弱プログラム法を用いた場合の一例を説明する。
【０１１９】
まず、図２に示すＳＴ．３２-1において、アドレスを初期化する。
【０１２０】
次に、ＳＴ．３２-2において、過消去ベリファイを行う。図６Ａに、リーク電流検知時のセルアレイ１のバイアス状態を示す。
【０１２１】
これには、まず、図６Ａに示すように、初期化されたアドレスによって選択されたワード線ＷＬ１に、過消去ベリファイ用バイアス電圧を印加する。過消去ベリファイ用バイアス電圧の数値例は、第２の過消去ベリファイ電位ＶOEV2を“１．５Ｖ”としたとき、これに“１Ｖ”を付加した“２．５Ｖ”である。“１Ｖ”を付加する理由は、ワード線の電圧がセルのスレシホールド電圧ＶTHよりも“１Ｖ”以上高くなったときに、ビット線に流れる電流を“１０μＡ”とし、これを過消去ベリファイ時の既定値ＩREFとするからである。この既定値ＩREFは、読み出し時と同じである。
【０１２２】
なお、非選択ワード線ＷＬ２、ＷＬ３、ＷＬ４、…には非選択バイアス電圧を印加しておく。非選択バイアス電圧の数値例は、たとえば“−１Ｖ”である。
【０１２３】
次に、初期化されたアドレスによって選択されたビット線ＢＬ１に、読み出し用バイアス電圧（０．５Ｖ）を印加する。これにより、セルＭＣ11は、過消去ベリファイの対象セルとして選択される。
【０１２４】
なお、非選択ビット線ＢＬ２、ＢＬ３、ＢＬ４、…は開放状態（OPEN）か、あるいは“０Ｖ”とし、ソース線は“０Ｖ”とする。
【０１２５】
次に、ＳＴ．３２-3において、図６Ａに示すバイアス状態で、選択ビット線ＢＬ１に流れるオン電流が、たとえば“１０μＡ”未満か否かを判断する。これは、選択ビット線ＢＬ１のオン電流を、既定値ＩREFと比較して、“０”読み出しか“１”読み出しかで判断する。
【０１２６】
この判断の結果、“０”読み出し、即ちオン電流は“１０μＡ”未満と判断された場合（ＹＥＳ．）、ＳＴ．３２-4に進む。
【０１２７】
ＳＴ．３２-4では、アドレスが最終アドレスであるか否かが判断される。“最終アドレスではない”と判断された場合（ＮＯ．）、ＳＴ．３２-5に進む。
【０１２８】
ＳＴ．３２-5では、アドレスがインクリメントされる。これは、たとえば現在のアドレスに“＋１”すれば良い。アドレスをインクリメントした後、再度、ＳＴ．３２-2に戻る。
【０１２９】
このＳＴ．３２-2では、図６Ｂに示すように、ビット線ＢＬ１に代わって、インクリメントされたアドレスによって選ばれた選択ビット線ＢＬ２に、読み出し用バイアス電圧（０．５Ｖ）を印加する。これにより、セルＭＣ12が、過消去ベリファイの対象セルとして選択される。
【０１３０】
次に、ＳＴ．３２-3において、図６Ｂに示すバイアス状態で、ビット線ＢＬ２に流れたオン電流が、“１０μＡ”未満か否かを判断する。
【０１３１】
この判断の結果、“１”読み出し、即ちオン電流が“１０μＡ”以上と判断された場合（ＮＯ．）、選択セルＭＣ12のスレシホールド電圧ＶTHが“１．５Ｖ”以下である、と想定することができる。
【０１３２】
したがって、オン電流は“１０μＡ”以上と判断された場合（ＮＯ．）、ＳＴ．３２-6に進む。
【０１３３】
ＳＴ．３２-6では、弱プログラム動作が行われる。図６Ｃに、弱プログラム動作時のセルアレイ１のバイアス状態を示す。
【０１３４】
図６Ｃに示すように、選択ワード線ＷＬ１に、弱プログラム用ワード線バイアス電圧（弱プログラムパルス）を印加する。弱プログラム用バイアス電圧の数値例は“３Ｖ”である。
【０１３５】
また、選択ビット線ＢＬ２には弱プログラム用ビット線バイアス電圧（弱プログラムパルス）を印加する。弱プログラム用ビット線バイアス電圧の例は、書き込み用バイアス電圧と同じであり、その数値例は５Ｖである。また、非選択ワード線ＷＬ２、ＷＬ３、ＷＬ４、…には非選択バイアス電圧（−１Ｖ）を印加し、非選択ビット線ＢＬ１、ＢＬ３、ＢＬ４、…は、開放状態（OPEN）か、あるいは“０Ｖ”とし、ソース線ＳＬは“０Ｖ”とする。
【０１３６】
図６Ｃに示すバイアス状態とすることで、選択セルＭＣ12に対して弱プログラムが行われ、そのスレシホールド電圧ＶTHが上昇する。このような弱プログラム動作では、選択セルＭＣ12に接続されたワード線ＷＬ１とビット線ＢＬ２とに積極的に電圧を加えて、そのドレインから電子を書き込む。このため、選択ワード線ＷＬ１に印加される弱プログラム用バイアス電圧、および選択ビット線ＢＬ２に印加される書き込み用バイアス電圧はそれぞれ、通常の書き込み動作と同様にμｓ単位のパルスで与えられれば良い。
【０１３７】
なお、弱プログラム用バイアス電圧は、通常のプログラム用バイアス電圧未満の値とされる。たとえば通常のプログラム用バイアス電圧の数値例は“９Ｖ”である。これにより、弱プログラム時、選択セルＭＣ12の浮遊ゲートに対して、たとえば単位時間当たりに注入される電子の量は、通常のプログラム時よりも少なくなる。よって、選択セルＭＣ12のスレシホールド電圧ＶTHの上昇量は、通常のプログラム時に比べて小さくなり、スレシホールド電圧ＶTHを、わずかな量上昇させることができる。
【０１３８】
弱プログラム動作を終えた後、再度、ＳＴ．３２-2に進み、再度、図６Ｂに示すバイアス状態として、ビット線ＢＬ２に流れたオン電流が、“１０μＡ”未満か否かを判断する。
【０１３９】
この判断の結果、再度“１”読み出し、即ちオン電流が“１０μＡ”以上と判断された場合（ＮＯ．）には、再度、弱プログラム動作を繰り返す。
【０１４０】
また、反対に“０”読み出し、即ちオン電流は“１０μＡ”未満と判断された場合（ＹＥＳ．）には、ＳＴ．３２-4に進む。
【０１４１】
ＳＴ．３２-4では、最終アドレスか否かが判断される。“最終アドレスではない”（ＮＯ．）と判断されたとき、ＳＴ．３２-5に進み、アドレスをインクリメントしたうえで、ＳＴ３２-2以降の動作を繰り返す。
【０１４２】
ここで、アドレスのうち、カラムアドレスが最終までインクリメントされた後は、カラムアドレスは初期値に戻り、続いてローアドレスがインクリメントされ、ワード線ＷＬ１に代わって、ワード線ＷＬ２が選択される。このようにして、データが消去されるブロック内の全てのセルに対して一つ一つ、弱プログラム動作が必要か否かが判断され、必要ならば弱プログラム動作が行われる。そして、最後のセルである、即ち“最終アドレスである”（ＹＥＳ．）と判断されたとき、第２の工程（ＳＴ．３２）が終了する。図３Ｅに第２の工程（ＳＴ．３２）終了後のスレシホールド電圧ＶTHの分布を示す。
【０１４３】
図３Ｅに示すように、第２の工程（ＳＴ．３２）終了後、全てのセルのスレシホールド電圧ＶTHは、“ＶOEV2＜ＶTH＜ＶEV”に規定される。
【０１４４】
このように第２の工程（ＳＴ．３２）が終了することで、この発明の第１の実施形態を用いたデータ消去シークエンスが終了する。
【０１４５】
このような第１の実施形態であると、第１の工程（ＳＴ．３１）において、全てのセルのスレシホールド電圧ＶTHが、たとえば“−１Ｖ”以上にシフトされる。
【０１４６】
このため、第２の工程（ＳＴ．３２）において、弱プログラム法を用いた場合、非選択ワード線に印加する電圧を“−１Ｖ”とすれば、これら非選択ワード線に接続される非選択セルは、全て十分にカットオフすることができる。
【０１４７】
したがって、非選択セルが選択ビット線に対して、既定値ＩREF以上のリーク電流を流してしまう事情を抑制でき、これに起因した、選択セルのスレシホールド電圧ＶTHの誤検知を抑制することができる。
【０１４８】
また、非選択セルが選択ビット線に対して流すリーク電流が減るので、選択ビット線に流れる電流は、ほぼ選択セルが流す電流に対応するように規定できる。このため、非選択セルが流す電流が、選択セルが流す電流に加算されることに起因した選択セルに対する書き込み過ぎの発生を抑制することができる。
【０１４９】
さらに、非選択セルが選択ビット線に対して流すリーク電流が減るので、選択ビット線の電圧が、元の設定値よりも低くなる事情も抑制できる。このため、低下した選択ビット線の電圧が、突然元の設定値に上昇する、という現象に起因した、選択セルに対する書き込み過ぎの発生についても抑制することができる。
【０１５０】
また、第１の工程（ＳＴ．３１）において、スレシホールド電圧ＶTHの上昇量は、わずかで済む。このため、自己収束法を第１の工程（ＳＴ．３１）に用いた場合でも、第１の工程（ＳＴ．３１）に要する時間は、わずかで済む。さらには、非選択セルが流すリーク電流に起因した選択ビット線の電圧の低下を抑制でき、たとえば弱プログラム動作の繰り返し回数の減少を図れる。
【０１５１】
したがって、第１の実施形態によれば、動作の高速性を損なうことなく、所望の範囲を逸脱したスレシホールド電圧を、誤動作や誤検知の発生を抑制しつつ、かつ動作の高速性を損なわずに、所望の範囲に回復できる。
【０１５２】
このような第１の実施形態に係るスレシホールド電圧制御方法を、データ消去シークエンスとして、図１に示すような不揮発性半導体メモリの、たとえば制御回路２に組み込む。
【０１５３】
このような不揮発性半導体メモリによれば、データ消去時、所望の範囲を逸脱したスレシホールド電圧を、誤動作や誤検知の発生を抑制しつつ、かつ動作の高速性を損なわずに、所望の範囲に回復できる。
【０１５４】
また、この発明は、図７に示すように、１ブロック内に複数のＩ／Ｏ回路９を持ち、複数のビット線に対して同時にデータを読み書きする不揮発性半導体メモリに、特に有効である。
【０１５５】
図７に示す不揮発性半導体メモリでは、複数の選択ビット線のうちの一本にでも過大なリーク電流が流れれば、ビット線バイアス回路３から出力された書き込み用バイアス電圧が低下する。
【０１５６】
また、図７に示すように、特に書き込み用バイアス電圧を、たとえばチャージポンプ回路１４を用い、電源電圧を昇圧して得ている場合には、上記書き込み用バイアス電圧の低下はさらに顕著である。
【０１５７】
この発明では、たとえば第２の工程（ＳＴ．３２）において、非選択セルが選択ビット線に流すリーク電流を低下できるので、この発明は、図７に示すような１ブロック内に複数のＩ／Ｏ回路９を持ち、複数のビット線に対して同時にデータを読み書きする不揮発性半導体メモリに、特に有効である。
【０１５８】
また、図７に示すように、書き込み用バイアス電圧を、チャージポンプ回路１４を用い、たとえば電源電圧を昇圧して得ている不揮発性半導体メモリにも、有効である。
【０１５９】
なお、後で変形例としても一部記述されるが、メモリセルのスレシホールド電圧の検知方法は一例を示しているので、バイアス条件や検知方法に多くの変形例がある事は勿論である。また、スレシホールド電圧をシフトさせる２段階でのセルに対するバイアス条件についても、セルの特性に応じて、その最適な絶対値は変化する事は勿論である。
【０１６０】
［第１の実施形態の第１の変形例］
上記第１の実施形態では、まず、自己収束を全カラムに対して実行した後、先頭カラムに戻ってから弱プログラムシークエンスに入っている。
【０１６１】
しかし、カラム毎に自己収束を終了したら、引き続いて弱プログラムを行い、最終的にセルＭＣのスレシホールド電圧ＶTHを第２の過消去ベリファイ電圧ＶOEV2を上回るようにした後に、カラムアドレスをインクリメントしても良い。
【０１６２】
この第１の変形例は、そのようにシークエンスを変形したものである。
【０１６３】
図８は、第１の実施形態の第１の変形例を示す流れ図である。
【０１６４】
図８に示すように、第１の変形例に係るシークエンスは、ＳＴ．３１-3までは図１に示すシークエンスと同様であるが、ＳＴ．３１-3において、“０”読み出し、即ちリーク電流が“１μＡ”未満と判断された場合（ＹＥＳ．）以降のシークエンスが異なる。
【０１６５】
即ち、図８に示すように、ＳＴ．３１-3において、選択ビット線に流れるリーク電流が“１μＡ”未満と判断された場合（ＹＥＳ．）、最終カラムアドレスか否かを判断せずに、第２の工程（ＳＴ．３２）のＳＴ．３２-2に進むようにしている。そして、選択セルに対して過消去ベリファイを行う。
【０１６６】
過消去ベリファイの後、ＳＴ．３２-3において、選択セルがビット線に流すオン電流が“１０μＡ”未満か否かを判断する。
【０１６７】
この判断の結果、選択セルが流すオン電流が“１０μＡ”未満と判断された場合（ＮＯ．）、第１の実施形態と同様にＳＴ．３２-6に進み、弱プログラムを行った後、ＳＴ．３２-2に戻る。反対に、オン電流が“１０μＡ”以上と判断された場合（ＹＥＳ．）、ＳＴ．３２-4’に進み、最終ローアドレスか否かを判断する。
【０１６８】
この判断の結果、“最終ローアドレスではない”と判断された場合（ＮＯ．）、ＳＴ３２-5'に進み、ローアドレスをインクリメントした後、ＳＴ．３２-2に戻る。
【０１６９】
反対に“最終ローアドレスである”と判断された場合（ＹＥＳ．）、ＳＴ．３２-7に進み、最終カラムアドレスか否かを判断する。
【０１７０】
この判断の結果、“最終カラムアドレスではない”と判断された場合（ＮＯ．）、ＳＴ３２-8に進み、ローアドレスを初期化するとともに、カラムアドレスをインクメントする。この後、第１の工程（ＳＴ．３１）のＳＴ．３１-2に戻り、インクリメントされたカラムアドレスによって選択されたビット線に対し、リークビット線チェックを行う。
【０１７１】
反対に“最終カラムアドレスである”と判断された場合（ＹＥＳ．）には、消去終了となる。
【０１７２】
このような第１の変形例であると、カラムアドレスをスキャン（インクリメント）していくシークエンスを、第１の実施形態の２回から１回に減らすことができ、消去シークエンスの簡単化を図ることができる。
【０１７３】
［第１の実施形態の第２の変形例］
次に、第１の実施形態の第２の変形例を説明する。
【０１７４】
この第２の変形例は、リークビット線チェック時（ＳＴ．３１-2）におけるバイアス状態の変形に関する。
【０１７５】
図９は、第２の変形例に係るリークビット線チェック時のセルアレイのバイアス状態を示す図である。
【０１７６】
図９に示すように、データが消去されるブロック内の全てのワード線ＷＬ１、ＷＬ２、ＷＬ３、ＷＬ４、…に対して印加する非選択バイアス電圧を、第１の過消去ベリファイ電圧ＶOEV1よりも高い電圧としても良い。その数値例は、第１の過消去ベリファイ電圧ＶOEV1を“−１Ｖ”としたとき、それよりも“１Ｖ”高い“０Ｖ”とすることである。
【０１７７】
このような第１の変形例では、リークビット線チェック時にワード線に与える非選択バイアス電圧を、第１の過消去ベリファイ電圧ＶOEV1よりも“１Ｖ”高くする。
【０１７８】
このため、リークビット線チェック時の既定値ＩREF-LEAKを、通常の読み出し既定値ＩREFと同じ、たとえば“１０μＡ”としても、スレシホールド電圧ＶTHが“−１Ｖ”以下のセルを検知することができる。ワード線のバイアス電圧が“０Ｖ”のとき、ビット線に“１０μＡ”の電流が流れれば、セルのスレシホールド電圧ＶTHは“−１Ｖ”以下である、と想定できるからである。
【０１７９】
このような第２の変形例による利点は、リークビット線チェック時と、読み出し時とで、“０”読み出しか“１”読み出しかを区別するための既定値を切り替える必要がないことである。このため、たとえば図４Ｂに示すような、既定値発生回路１３から、リークビット線チェック時とデータ読み出し時とで既定値を切り替える回路や、この既定値切り替えを制御する信号ＳLEAKを発生する回路等を省略することができる。
【０１８０】
よって、第２の変形例によれば、第１の実施形態から得られる効果に加えて、回路の簡素化を図れ、集積度の向上や、歩留りの向上に有利である、という効果を得ることができる。
【０１８１】
［第１の実施形態の第３の変形例］
次に、第１の実施形態の第３の変形例を説明する。
【０１８２】
第１の工程（ＳＴ．３１）における過消去ビットの検知シークエンス（ＳＴ．３１-1〜ＳＴ．３１-6）は、第２の工程（ＳＴ．３２）における過消去セルの検知シークエンス（ＳＴ．３２-1〜ＳＴ．３２-6）と可能な限り合わせられるのが好ましい。制御の煩雑さを解消して、素子数の削減、および動作の高速化等を図る観点からである。
【０１８３】
図１０は、第１の実施形態の第３の変形例に係るリークビット線チェック時のセルアレイ１のバイアス状態を示す図である。
【０１８４】
図１０に示すように、リークビット線チェック時、たとえば先頭のワード線ＷＬ１の電圧を過消去ベリファイ電圧、たとえば“２．５Ｖ”とし、他のワード線ＷＬ２、ＷＬ３、ＷＬ４、…、の電圧をそれぞれ非選択電圧、たとえば“−１Ｖ”としておく。このバイアス状態は、第１の実施形態で説明した過消去ベリファイ時のバイアス状態（たとえば図６Ａ）と同じバイアス状態と同じである。
【０１８５】
図１０に示すバイアス状態で、たとえば第１の実施形態と同様に、選択ビット線ＢＬ１に流れたリーク電流が、“１μＡ”未満か否かを判断する。
【０１８６】
この判断の結果、“１”読み出し、即ちリーク電流が“１μＡ”以上と判断された場合、少なくとも次の２つのケースが考えられる。
【０１８７】
［ケース１］
先頭のワード線ＷＬ１に接続されたセルＭＣ11のスレシホールド電圧ＶTHが“２．５Ｖ”以下である。
【０１８８】
［ケース２］
非選択ワード線ＷＬ２、ＷＬ３、ＷＬ４、…に接続されたセルＭＣ21、ＭＣ31、ＭＣ41、…の少なくとも一つに、スレシホールド電圧ＶTHが“−１Ｖ”以下のものが存在する。
【０１８９】
“ケース１”の場合には、セルＭＣ11のスレシホールド電圧ＶTHが“−１Ｖ”以下であれば、そのスレシホールド電圧ＶTHを上昇させる必要がある。
【０１９０】
“ケース２”の場合には、セルＭＣ21、ＭＣ31、ＭＣ41、…の少なくとも一つのスレシホールド電圧ＶTHを上昇させる必要がある。
【０１９１】
したがって、第１の実施形態と同様に、“１”読み出し、即ちリーク電流が“１μＡ”以上と判断された場合には、自己収束動作を行えば良い。
【０１９２】
なお、セルＭＣ12のスレシホールド電圧ＶTHが“−１Ｖ”を上回っていれば、“２．５Ｖ”以下であっても、この段階でスレシホールド電圧ＶTHを上昇させる必要はない。しかしながら、上昇動作を行ったとしても、それによって不良が発生することはない。
【０１９３】
ただし、セルＭＣ12のスレシホールド電圧ＶTHが、“２．５Ｖ”を上回るまで、自己収束動作を行うと、非常に長い時間がかかってしまう場合が起こり得る。
【０１９４】
このため、第３の変形例においては、たとえば自己収束動作を、セルＭＣのスレシホールド電圧ＶTHが“−１Ｖ”を上回るレベルまで上昇するであろう条件にて行い、自己収束動作後の再チェックでは、リーク電流が、たとえ既定値以上であったとしても、そのビット線の自己収束動作は、強制的に終了させてしまうようにしても良い。このようなシークエンスの一例を、図１１に示す。
【０１９５】
図１１に示すように、第３の変形例に好ましいシークエンスは、ＳＴ．３１-3までは図１に示すシークエンスと同様であるが、ＳＴ．３１-3において、“１”読み出し、即ちリーク電流が“１μＡ”以上と判断された場合（ＮＯ．）以降のシークエンスが異なる。
【０１９６】
即ち、図１１に示すように、ＳＴ．３１-3において、リーク電流が“１μＡ”以上と判断された場合（ＮＯ．）、ＳＴ．３１-7に進み、サイクルが“０”か否かを判断する。なお、ここでいうサイクルとは、選択されたビット線の自己収束動作の履歴を示すもので、“サイクル＝０”ならば履歴無し、“サイクル＝０”以外ならば履歴有りを表す。
【０１９７】
ＳＴ．３１-7において、“サイクル＝０である”と判断された場合（ＹＥＳ）、ＳＴ．３１-6に進み、自己収束動作を行う。
【０１９８】
次に、ＳＴ．３１-8に進み、サイクルに“＋１”した後、再度ＳＴ．３１-2に進み、リーク電流を再度チェックする。再度のチェックにおいて、リーク電流が“１μＡ”以上と判断された場合（ＮＯ．）、ＳＴ．３１-7に進む。このときのＳＴ．３１-7では、“サイクル＝１”となっている。このため、ＳＴ．３１-7では“サイクル＝０ではない”と判断され、ＳＴ．３１-9に進み、たとえばＳＴ．３１-9においてサイクルを“０”に戻した後、ＳＴ．３１-4に進む。
【０１９９】
以降は、図１に示すシークエンスと同様である。
【０２００】
このようなシークエンスであると、たとえば２．５Ｖにバイアスされた先頭ワード線ＷＬ１に接続されているセルＭＣのスレシホールド電圧が２．５Ｖを上回るまで、自己収束動作を繰り返さずに済む。このため、特に第２の変形例において、第１の工程（ＳＴ．３１）に要する時間を短縮することが可能となる。
【０２０１】
以上のような第３の変形例においても、選択ビット線ＢＬ１中のどのセルが過消去セルであるかを特定せずに収束動作をかける、ということで、第１の実施形態と基本的には同じ考え方である。
【０２０２】
このような第３の変形例によれば、第１の実施形態に比較して、リークビット線チェック時、全てのワード線を、たとえば“−１Ｖ”とする制御が必要ない。よって、全てのワード線を、たとえば“−１Ｖ”とするような回路等を省略でき、素子数の削減、および動作の高速化等を図ることができる。
【０２０３】
［第１の実施形態の第４の変形例］
次に、第１の実施形態の第４の変形例を説明する。
【０２０４】
上記第３の変形例では、リーク電流検知時のバイアス状態を、過消去ベリファイ時のバイアス状態と同じとすることで、制御の煩雑さを解消した。
【０２０５】
この第４の変形例は、バイアス状態ばかりでなく、さらにリークビット線チェック時の検知方法を、過消去ベリファイ時の検知方法と同じとし、制御の煩雑さを、さらに解消しようとするものである。
【０２０６】
図１２は、第４の変形例に係るリークビット線検知時のバイアス状態を示す図である。
【０２０７】
図１２に示すバイアス状態は、図１０に示したバイアス状態と同じである。ただし、“０”読み出しか“１”読み出しかを区別する既定値は、たとえば“１μＡ”に代えて、過消去ベリファイ時の既定値と同じ、たとえば“１０μＡ”とする。
【０２０８】
図１２に示すバイアス状態で、たとえば選択ビット線ＢＬ１に流れたリーク電流が、通常の読み出し時と同じ“１０μＡ”未満か否かを判断する。
【０２０９】
この判断の結果、“１”読み出し、即ちリーク電流が“１０μＡ”以上と判断された場合、少なくとも次の２つのケースが考えられる。
【０２１０】
［ケース１］
先頭のワード線ＷＬ１に接続されたセルＭＣ11のスレシホールド電圧ＶTHが“１．５Ｖ”以下である。
【０２１１】
［ケース２］
非選択ワード線ＷＬ２、ＷＬ３、ＷＬ４、…に接続されたセルＭＣ21、ＭＣ31、ＭＣ41、…の少なくとも一つに、スレシホールド電圧ＶTHが“−２Ｖ”以下のものが存在する。
【０２１２】
第４の変形例の場合、第３の変形例と異なり、非選択ワード線ＷＬ２、ＷＬ３、ＷＬ４、…に接続されたセルＭＣ21、ＭＣ31、ＭＣ41、…のスレシホールド電圧ＶTHが“−２Ｖ”を上回り“−１Ｖ”以下のものは検知できない。
【０２１３】
しかし、スレシホールド電圧ＶTHが“−２Ｖ”以下、即ち過消去セルの検知シークエンス（ＳＴ．３２-1〜ＳＴ．３２-6）において、過消去ベリファイ時に、既定値以上の電流を流してしまうようなセルの発生は抑制できる。
【０２１４】
また、スレシホールド電圧ＶTHが“−２Ｖ”を上回り“−１Ｖ”以下のセルが存在することによる誤動作の確率が少なくなるように配慮すれば、何等問題はない。
【０２１５】
あるいは、第３、第４の変形例の図１０、２０の場合共に、過消去ベリファイ時も含めて非選択ワード線の電位を−１Vではなく０Vに設定したり、あるいは、多少の回路の複雑さは許容して、リークビット線チェック時のみ非選択ワード線電位を０Vとする等のバイアス条件の変形例がある事は勿論である。これらは各動作のマージンをどの程度確保するかにも依存する。
【０２１６】
このような第４の変形例においても、選択ビット線ＢＬ１中のどのセルが過消去セルであるかを特定せずに収束動作をかける、ということで、第１の実施形態と基本的には同じ考え方である。
【０２１７】
このような第４の変形例によれば、第３の変形例と比較して、リークビット線検知時の既定値を、過消去ベリファイ時の既定値と同じとすることで、さらに制御の煩雑さを抑制することができる。よって、リークビット線チェックの制御に必要な回路をさらに省略でき、素子数の削減、および動作の高速化等を、より図ることができる。
【０２１８】
なお、第１の過消去ベリファイ電圧ＶOEV1は当然、第２の過消去ベリファイ電圧ＶOEV2より低い値に設定されるが、その設定にあたっては、設定が高すぎたり、低すぎたりすると以下の問題が発生するので、セルＭＣの特性を見極めて適正な値に設定する。
【０２１９】
まず、設定を低くする場合には、次の弱プログラムシークエンスでの誤動作を避けるため、弱プログラム時に非選択ワード線に印加する負の電圧をより低くしなければならない。
【０２２０】
しかし、設定が低すぎると、負電圧を発生させるチャージポンプ回路の必要能力を高めなければならないので、チャージポンプ回路の面積増を招く。また、負電圧切り替え回路で高い耐圧が必要な場所ができてしまう場合もある。
【０２２１】
したがって、不必要に設定を低くすることは望ましくない。
【０２２２】
また、反対に設定が高すぎると、そこまで自己収束でスレシホールド電圧ＶTHが上昇するのに、非常に時間がかかってしまったり、逆に消去ベリファイ電圧ＶEVとの差が少ないと、消去ベリファイ電圧ＶEVを飛び越えてしまう恐れがでてくる。
【０２２３】
したがって、第１の過消去ベリファイ電圧ＶOEV1は、セルＭＣの特性をチェックして、第２の過消去ベリファイ電圧ＶOEV2より低い最適な値を設定するようにする。
【０２２４】
［第２の実施形態］
上記第１の実施形態の第１の工程（ＳＴ．３１）では、リーク電流が比較的大きいビット線を検知する。そして、検知されたビット線に、たとえば自己収束用バイアス電圧を印加することで、検知されたビット線に接続されたセルに対して自己収束動作を行っている。
【０２２５】
しかし、この発明のように第１の工程（ＳＴ．３１）の後に、第２の工程（ＳＴ．３２）を行う場合には、第１の工程（ＳＴ．３１）では、スレシホールド電圧ＶTHは、たとえば“−１Ｖ”程度といった、比較的低いレベルまで回復させれば良い。このため、短時間のパルス（書き込み用バイアス電圧）をビット線に与えるだけで、スレシホールド電圧ＶTHは所望のレベルまで、確実に回復できる場合が多い。
【０２２６】
この場合には、たとえばリークビット線チェックは行わずに、全ビット線に、電圧をスキャンしながら加えて回復させてしまう方法がある。いちいちリークビット線チェックを行う場合に比較して、第１の工程（ＳＴ．３１）を制御するための回路を簡単にできる利点がある。
【０２２７】
このような第１の工程（ＳＴ．３１）の流れ図を図１３に示す。
【０２２８】
まず、図１３に示すＳＴ．３１-1において、カラムアドレスを初期化する。
【０２２９】
次に、ＳＴ．３１-6に進み、初期化されたカラムアドレスによって選択されたビット線に、自己収束用バイアス電圧、たとえば５Ｖを印加する。これにより、選択ビット線に接続されたセルに対して自己収束がかかり、これらセルのスレシホールド電圧ＶTHは、たとえば“−１Ｖ”以上に上昇される。
【０２３０】
次に、ＳＴ．３１-4に進み、カラムアドレスが最終カラムアドレスであるか否かを判断する。ＳＴ．３１-4において、“最終カラムアドレスではない”と判断された場合（ＮＯ．）、ＳＴ．３１-5に進む。
【０２３１】
ＳＴ．３１-5では、カラムアドレスをインクリメントする。カラムアドレスをインクリメントした後、再度、ＳＴ．３１-6に戻る。
【０２３２】
ＳＴ．３１-6では、インクリメントされたカラムアドレスによって選択されたビット線に対して、自己収束用バイアス電圧、たとえば５Ｖを印加する。これにより、次に選択されたビット線に接続されたセルに対して自己収束がかかり、これらセルのスレシホールド電圧ＶTHは、たとえば“−１Ｖ”以上に上昇される。
【０２３３】
次に、ＳＴ．３１-4に進み、カラムアドレスが最終カラムアドレスであるか否かを判断する。ＳＴ．３１-4において、“最終カラムアドレスではない”と判断された場合（ＮＯ．）、ＳＴ．３１-5に進む。
【０２３４】
また、反対に“最終カラムアドレスである”（ＹＥＳ．）と判断されたとき、第１の工程（ＳＴ．３１）が終了し、第２の工程（ＳＴ．３２）に進む。
【０２３５】
このような第２の実施形態によれば、いちいちリークビット線チェックを行わないので、第１の実施形態に比べて、第１の工程（ＳＴ．３１）を制御するための回路を簡単にできる、という利点を得ることができる。
【０２３６】
［第２の実施形態の第１の変形例］
また、リーク電流検知は行うが、自己収束動作の後の判断を省略することも可能である。
【０２３７】
この場合には、第１の工程（ＳＴ．３１）に要する時間を短縮できる、という利点がある。
【０２３８】
以下、これを第２の実施形態の第１の変形例として説明する。
【０２３９】
図１４は、第２の実施形態の第１の変形例を示す流れ図である。
【０２４０】
まず、図１４に示すＳＴ．３１-1において、カラムアドレスを初期化する。
【０２４１】
次に、ＳＴ．３１-2に進み、リークビット線チェックを行い、初期化されたカラムアドレスによって選択されたビット線に、読み出し用バイアス電圧（０．５Ｖ）を印加する。
【０２４２】
次に、ＳＴ．３１-3に進み、選択ビット線に流れた電流が既定値未満か否かを判断する。
【０２４３】
この判断の結果、“０”読み出し、即ちビット線に流れた電流が既定値未満と判断された場合（ＹＥＳ．）、ＳＴ．３１-4に進み、カラムアドレスが最終カラムアドレスであるか否かを判断する。
【０２４４】
ＳＴ．３１-4において、“最終カラムアドレスではない”と判断された場合（ＮＯ．）、ＳＴ．３１-5に進み、カラムアドレスをインクリメントする。
【０２４５】
次に、再度、ＳＴ．３１-2に戻り、インクリメントされたカラムアドレスによって選択されたビット線に、読み出し用バイアス電圧（０．５Ｖ）を印加する。
【０２４６】
次に、ＳＴ．３１-3に進み、ビット線に流れた電流が既定値未満か否かを判断する。
【０２４７】
この判断の結果、“１”読み出し、即ちビット線に流れた電流が既定値以上判断された場合（ＮＯ．）、ＳＴ．３１-6に進む。
【０２４８】
ＳＴ．３１-6では、インクリメントされたカラムアドレスによって選択されたビット線に対して、自己収束用バイアス電圧、たとえば５Ｖを印加する。これにより、選択ビット線に接続されたセルに対して自己収束がかかり、これらセルのスレシホールド電圧ＶTHは、たとえば“−１Ｖ”以上に上昇される。
【０２４９】
次に、ＳＴ．３１-4に進み、カラムアドレスが最終カラムアドレスであるか否かを判断する。ＳＴ．３１-4において、“最終カラムアドレスではない”と判断された場合（ＮＯ．）、ＳＴ．３１-5に進む。
【０２５０】
また、反対に“最終カラムアドレスである”（ＹＥＳ．）と判断されたとき、第１の工程（ＳＴ．３１）が終了し、第２の工程（ＳＴ．３２）に進む。
【０２５１】
このような第２の実施形態の第１の変形例によれば、リークビット線チェックは行うが、自己収束動作の後の判断を省略するので、第１の実施形態に比べて、第１の工程（ＳＴ．３１）に要する時間を短縮できる、という利点を得ることができる。
【０２５２】
［第３の実施形態］
第１、第２の実施形態における第１の工程（ＳＴ．３１）では、既定値以上の電流が流れたビット線を検知し、検知されたビット線に自己収束用バイアス電圧（自己収束パルス）を印加して、検知されたビット線に接続されているセルに対して、自己収束をかける。
【０２５３】
このとき、検知されたビット線の電圧が、セルが流すリーク電流によって低下することを抑制するために、全てのワード線をたとえば“−１Ｖ”等、負のバイアス電圧としておくと、セルのスレシホールド電圧ＶTHの上昇速度が低下することがある。
【０２５４】
第３の実施形態は、自己収束動作時におけるスレシホールド電圧ＶTHの上昇速度の低下を抑制することを目的とする。
【０２５５】
図１５Ａ、図１５Ｂはそれぞれ、第３の実施形態に係る自己収束動作時のセルアレイ１のバイアス状態を示す図である。
【０２５６】
図１５Ａおよび図１５Ｂにはそれぞれ、１０２４本のワード線ＷＬ１〜ＷＬ１０２４が示されている。リークビット線チェック（ＳＴ．３１-2）後の判定（ＳＴ．３１-3）において、既定値以上の電流が流れたビット線（図示せず）が検知した後、自己収束動作（ＳＴ．３１-6）を行う。
【０２５７】
このとき、図１５Ａに示すように、ワード線ＷＬ１を“−１Ｖ”から、それよりも高い電圧、たとえば“０Ｖ”とする。
【０２５８】
次いで、所定時間、たとえば１００μｓ経過後、図１５（Ｂ）に示すように、ワード線ＷＬ１に代えて、ワード線ＷＬ２を“−１Ｖ”から、それよりも高い電圧、たとえば“０Ｖ”とする。
【０２５９】
このような動作をワード線ＷＬ１０２４まで順次行う。
【０２６０】
たとえばセル１個当たり、１００μｓ程度で自己収束がかかる、とすると、図１５Ａ、図１５Ｂに示すように、ワード線が１０２４本あるブロックでも、ビット線１本当たりの自己収束動作は、１００μｓ×１０２４本≒１００ｍｓ程度で終了することができる。
【０２６１】
このような第３の実施形態によれば、ワード線に印加するバイアス電圧を１本ずつ、たとえば“−１Ｖ”より高いバイアス電圧、好ましくは０Ｖ以上のバイアス電圧とする。このため、全てのワード線をたとえば“−１Ｖ”等、負のバイアス電圧としておく場合に比べて、セルのスレシホールド電圧ＶTHの上昇速度の低下を抑制することができる。
【０２６２】
なお、第３の実施形態に係る動作は、第１の工程（ＳＴ．３１）において、軽い弱プログラム動作を行っている、とも言える。第２の工程（ＳＴ．３１）における弱プログラム動作との違いは、ワード線に印加するバイアス電圧が小さいこと、およびセルのアドレスを特定せず、流れた電流が既定値以上と検知されたビット線に接続されている全てのセルに対して、軽く弱プログラムを行うことである。
【０２６３】
［第４の実施形態］
上記第３の実施形態では、セルのスレシホールド電圧ＶTH上昇速度の低下を抑制することができる例を説明した。しかし、ワード線が１０２４本あるブロックの場合、ビット線１本当たりの自己収束動作に要する時間は、ほぼ１００ｍｓであり、自己収束動作を行うビット線の数が多いと、第１の工程（ＳＴ．３１）にかなりの時間を要することがある。
【０２６４】
第４の実施形態は、スレシホールド電圧の上昇速度の低下の抑制しつつ、かつ第１の工程（ＳＴ．３１）に要する時間を短縮することを目的としている。
【０２６５】
図１６Ａ、図１６Ｂはそれぞれ、第４の実施形態に係る自己収束動作時のセルアレイ１のバイアス状態を示す図である。
【０２６６】
図１６Ａおよび図１６Ｂにはそれぞれ、１０２４本のワード線ＷＬ１〜ＷＬ１０２４が示されている。リークビット線チェック（ＳＴ．３１-2）後の判定（ＳＴ．３１-3）において、既定値以上の電流が流れたビット線（図示せず）が検知した後、自己収束動作（ＳＴ．３１-6）を行う。
【０２６７】
このとき、図１６Ａに示すように、１０２４本のワード線のうちの１／８本のワード線ＷＬ１〜ＷＬ１２８を“−１Ｖ”から、それよりも高い電圧、たとえば“０Ｖ”とする。
【０２６８】
次いで、所定時間、たとえば１００μｓ経過後、図１６Ｂに示すように、ワード線ＷＬ１〜ＷＬ１２８に代えて、ワード線ＷＬ１２９〜ＷＬ２５６を“−１Ｖ”から、それよりも高い電圧、たとえば“０Ｖ”とする。
【０２６９】
このような動作をワード線ＷＬ８９７〜ＷＬ１０２４からなるグループまで順次行う。
【０２７０】
このような第４の実施形態によれば、ワード線の電圧を１本ずつではなく、複数本ずつ“−１”Ｖよりも高くする。たとえば図１６Ａ、図１６Ｂに示すように１２８本ずつ高くした場合、たとえばセル１個当たり、１００μｓ程度で自己収束がかかる、とすると、ワード線が１０２４本あるブロックでも、ビット線１本当たりの自己収束動作は、１００μｓ×８個≒８００μｓ程度で終了することができる。
【０２７１】
このように第４の実施形態では、第３の実施形態のようにスレシホールド電圧ＶTHの上昇速度の低下を、ワード線の電圧をたとえば“−１”Ｖよりも高くすることで抑制できる。かつワード線の電圧を複数本ずつ高くしていくので、たとえば第３の実施形態に比べて、第１の工程（ＳＴ．３１）に要する時間を短縮することができる、という利点を得ることができる。
【０２７２】
［第５の実施形態］
弱プログラム動作においては、その動作を高速に行うための方法が提案されている。たとえばH.Shigaらにより、Symposium of VLSI Circuit Technical digest pp33-36(1999)に開示されたステップアップ法である。
【０２７３】
ステップアップ法とは、選択セルに対して弱プログラムを繰り返すごとに、選択ワード線の電圧をステップアップするものである。
【０２７４】
ステップアップ法では、選択ビット線、および選択ワード線に弱プログラムパルスを印加し、その後、過消去ベリファイを行ってセルのスレシホールド電圧ＶTHが所望のレベルに回復しているかチェックする。この後、弱プログラムしたにも係わらず、スレシホールド電圧ＶTHが所望のレベルになっていない場合には、次のパルスを印加する時に、ワード線の電圧を一定量づつ上げる。
【０２７５】
このステップアップ法の場合、ビット線の電圧が安定していないと、書き込み量がステップアップの前後で急に変わってしまうことがある。ステップアップ法は、基本的には、ドレイン電圧が一定の場合に、ワード線をステップアップしていった時、書き込み量がいつも同じ量増加していくことを利用して、スレシホールド電圧ＶTHを所望の範囲内に入れるものである。リーク電流がビット線に流れていると、選択セルのドレイン電圧が不安定になる。選択セルへの書き込み量は、そのドレイン電圧に依存する。このため、ドレイン電圧が不安定であると、選択セルへの書き込み量が一定にならず、例えば突然、書き込み量が増大して、スレシホールド電圧ＶTHが所望の値をオーバーしたりする。
【０２７６】
この発明では、非選択セルがビット線に対して流すリーク電流を減らすことができる。このため、上記リーク電流に起因したビット線の電圧変動を抑制でき、選択セルのドレインに対して非常に安定した電圧を供給できる。
【０２７７】
よって、第２の工程（ＳＴ．３２）に、弱プログラム法を用いた場合、ステップアップ法を好ましく併用することができる。
【０２７８】
図１７は、第５の実施形態に係る制御方法を示す流れ図である。
【０２７９】
まず、図１７に示すＳＴ．３２-10において、アドレスを初期化するとともに、弱プログラム繰り返し回数（サイクル）を“０”とする。
【０２８０】
次に、ＳＴ．３２-2に進み、過消去ベリファイを行う。まず、初期化されたアドレスによって選択されたワード線に、過消去ベリファイ用バイアス電圧、たとえば３Ｖを印加する。次に、初期化されたアドレスによって選択されたビット線に、読み出し用バイアス電圧（０．５Ｖ）を印加する。
【０２８１】
次に、ＳＴ．３２-3に進み、選択ビット線に流れた電流が既定値未満か否かを判断する。
【０２８２】
この判断の結果、“０”読み出し、即ちビット線に流れた電流が既定値未満と判断された場合（ＹＥＳ．）、ＳＴ．３２-11に進む。
【０２８３】
ＳＴ．３２-11では、サイクルが“０”とされる。
【０２８４】
次に、ＳＴ．３２-4に進み、アドレスが最終アドレスであるか否かを判断する。
【０２８５】
ＳＴ．３２-4において、“最終アドレスではない”と判断された場合（ＮＯ．）、ＳＴ．３２-5に進む。
【０２８６】
ＳＴ．３２-5では、アドレスをインクリメントする。
【０２８７】
次に、再度、ＳＴ．３１-2に戻り、過消去ベリファイを行う。このＳＴ．３２-2では、インクリメントされたアドレスによって選ばれた選択ビット線、選択ワード線に接続されたセルが、過消去ベリファイの対象となる。
【０２８８】
次に、ＳＴ．３２-3に進み、選択ビット線に流れた電流が既定値未満か否かを判断する。
【０２８９】
この判断の結果、“１”読み出し、即ちビット線に流れた電流が既定値以上と判断された場合（ＮＯ．）、ＳＴ．３２-12に進む。
【０２９０】
ＳＴ．３２-12では、サイクルが“０”か否かを判断する。
【０２９１】
この判断の結果、サイクルが“０”である、と判断された場合（ＹＥＳ．）、ＳＴ．３２-6に進む。また、サイクルが“０”ではない、と判断された場合（ＮＯ．）、ＳＴ．３２-13に進み、選択ワード線のバイアス電圧をステップアップした後、ＳＴ．３２-6に進む。
【０２９２】
ＳＴ．３２-6では、選択セルに対して弱プログラムを行う。
【０２９３】
次に、ＳＴ３２-14に進み、サイクルを“＋１”する。
【０２９４】
次に、再度、ＳＴ．３１-2に戻り、過消去ベリファイを行う。
【０２９５】
次に、ＳＴ．３２-3に進み、選択ビット線に流れた電流が既定値未満か否かを判断する。
【０２９６】
この判断の結果、再度“１”読み出し、即ち選択ビット線に流れた電流が既定値以上と判断された場合（ＮＯ．）には、再度、ＳＴ．３２-12、ＳＴ．３２-13、ＳＴ．３２-6、ＳＴ３２-14の工程を繰り返す。
【０２９７】
また、反対に“０”読み出し、即ち選択ビット線に流れた電流が既定値未満と判断された場合（ＹＥＳ．）には、ＳＴ．３２-11に進み、サイクルを“０”に戻した後、ＳＴ．３２-4に進み、最終アドレスか否かを判断する。
【０２９８】
この判断の結果、“最終アドレスである”（ＹＥＳ．）と判断されたとき、第２の工程（ＳＴ．３２）が終了する。
【０２９９】
この発明は、非選択セルがビット線に対して流すリーク電流を減らすことができるので、図１７に示すように、第２の工程に、弱プログラム法を用いた場合には、この弱プログラム法に、ステップアップ法を好ましく併用することができる。
【０３００】
［第６の実施形態］
第１の実施形態の、たとえば第３の変形例において、第１の工程（ＳＴ．３１）における過消去ビットの検知シークエンス（ＳＴ．３１-1〜ＳＴ．３１-6）を、第２の工程（ＳＴ．３２）における過消去セルの検知シークエンス（ＳＴ．３２-1〜ＳＴ．３２-6）と可能な限り合わせることで、制御回路を簡単に構成できることを説明した。
【０３０１】
第６の実施形態は、過消去ビット線の検知と自己収束シークエンスを過消去セルの検知を弱プログラムシークエンスに組み込んでしまうことで、制御回路を、さらに簡単に構成することを目的とする。
【０３０２】
第６の実施形態では、過消去セルの検知シークエンスにおいて、先頭ワード線、かつ最初の弱プログラムパルスである場合に限り、自己収束パルスに切り替える。これにより、弱プログラムを制御する回路に対して、最小限の機能追加で、この発明に係る制御方法を実現できる。
【０３０３】
図１８は、第６の実施形態に係る過消去ベリファイ時のセルアレイ１へのバイアス状態を示す図である。
【０３０４】
図１８に示すように、まず、先頭のワード線ＷＬ１を“２．５Ｖ”に設定、非選択ワード線を“−１Ｖ”として、“１”読み出しチェックを行う。既定値ＩREFは、たとえば１０μＡである。
【０３０５】
この“１”読み出しチェックで、“１”読み出しとなる条件は、少なくとも次の２つのケースが考えられる。
【０３０６】
［ケース１］
選択セルＭＣ11のスレシホールド電圧ＶTHが“１．５Ｖ”以下である。
【０３０７】
［ケース２］
非選択セルＭＣ21、ＭＣ31、ＭＣ41、…の少なくとも一つに、スレシホールド電圧ＶTHが“−２Ｖ”以下のものが存在する。
【０３０８】
“１”読み出しとなった場合、弱プログラムが必要である、との判定になる。
【０３０９】
このまま、弱プログラムを行ってしまうと、“ケース１”の場合なら問題ないが、もし“ケース２”の場合ならば、選択セルＭＣ11が過消去セルであると誤検知され、選択セルＭＣ11に弱プログラムが行われる、という誤動作を招く。
【０３１０】
したがって、先頭のワード線ＷＬ１、かつ最初の弱プログラムパルスである場合に限り、自己収束のバイアス条件、つまり全ワード線を０〜−１Ｖといった電圧でビット線ＢＬ１に比較的高い電圧をパルス状に印加する。その条件は、非選択ワード線に存在するセルのスレシホールド電圧が、例えば“−１Ｖ”以上に達する条件であり、その電圧例は“５Ｖ”である。次に、この電圧（パルス）印加後に、再度“１”読み出しチェックを行う。
【０３１１】
この時点で、非選択セルＭＣ21、ＭＣ31、ＭＣ41、…のスレシホールド電圧はそれぞれ−１Ｖ以上になる、とすれば、再度の“１”読み出しチェックでは、上記“ケース２”の条件が含まれなくなる。このため、再度の“１”読み出しチェックで“２”読み出しされた場合には、“ケース１”となる。そこで、今度は、選択セルＭＣ11に対して、通常の弱プログラムを行えば良い。
【０３１２】
このシークエンスだと、通常の弱プログラムのシークエンスと同一で、最初の弱プログラム電圧（パルス）印加時のバイアス条件を、自己収束プログラム電圧（パルス）に変更するだけでよい。
【０３１３】
よって、弱プログラムを制御する回路に対して、最小限の機能追加で、この発明に係る制御方法を実現できる。
【０３１４】
図１９は、第６の実施形態に係る制御方法の一例を示す流れ図であり、特にステップアップ法を併用した例を示している。
【０３１５】
まず、図１９に示すＳＴ．３２-10において、アドレスを初期化するとともに、弱プログラム繰り返し回数（サイクル）を“０”とする。
【０３１６】
次に、ＳＴ．３２-2に進み、過消去ベリファイを行う。初期化されたアドレスによって選択されたワード線に、過消去ベリファイ用バイアス電圧、たとえば２．５Ｖを印加する。次に、初期化されたアドレスによって選択されたビット線に、読み出し用バイアス電圧（０．５Ｖ）を印加する。このとき、非選択ワード線のバイアスは、例えば−１Ｖである。
【０３１７】
次に、ＳＴ．３２-3に進み、選択ビット線に流れた電流が既定値未満か否かを判断する。
【０３１８】
この判断の結果、“１”読み出し、即ちビット線に流れた電流が既定値以上と判断された場合（ＮＯ．）、ＳＴ．３２-20に進む。
【０３１９】
ＳＴ．３２-20では、ローアドレスが“０”か否かが判断される。ここで、ローアドレス“０”とは、先頭のワード線のローアドレスに対応する。
【０３２０】
この判断の結果、ローアドレスは“０”である、と判断された場合（ＹＥＳ．）、ＳＴ．３２-21に進む。
【０３２１】
ＳＴ．３２-21では、サイクルが“０”か否かを判断する。
【０３２２】
この判断の結果、サイクルが“０”である、と判断された場合（ＹＥＳ．）、ＳＴ．３２-6に進み、選択ビット線に対して自己収束動作を行う。
【０３２３】
次に、ＳＴ．３２-14に進み、サイクルを“＋１”する。
【０３２４】
次に、ＳＴ．３２-2に戻り、過消去ベリファイを行った後、ＳＴ．３２-3に進み、再度、選択ビット線に流れた電流が既定値未満か否かを判断する。
【０３２５】
ＳＴ．３２-3における判断の結果、“１”読み出し、即ちビット線に流れた電流が既定値以上と判断された場合（ＮＯ．）、ＳＴ．３２-20に進み、ローアドレスが“０”か否かを判断する。
【０３２６】
ＳＴ．３２-20における判断の結果、ローアドレスは“０”である、と判断された場合（ＹＥＳ．）、ＳＴ．３２-21に進み、サイクルが“０”か否かを判断する。
【０３２７】
ＳＴ．３２-21における判断の結果、サイクルが“０”ではない、と判断された場合（ＮＯ．）、ＳＴ．３２-13に進み、選択ワード線を自己収束ではなく弱プログラム用の電圧に設定する。図ではこれを“ステップアップ”と表現している。
【０３２８】
次に、ＳＴ．３２-6に進み、選択セルに対して弱プログラムを行う。
【０３２９】
次に、ＳＴ３２-14に進み、サイクルを“＋１”する。
【０３３０】
次に、再度、ＳＴ．３２-2に戻り、過消去ベリファイを行った後、ＳＴ．３２-3に進み、再度、選択ビット線に流れた電流が既定値未満か否かを判断する。
【０３３１】
ＳＴ．３２-3における判断の結果、“０”読み出し、即ちビット線に流れた電流が既定値未満と判断された場合（ＹＥＳ．）、ＳＴ．３２-11に進み、サイクルを“０”とする。
【０３３２】
次に、ＳＴ．３２-4に進み、アドレスが最終アドレスであるか否かを判断する。
【０３３３】
ＳＴ．３２-4において、“最終アドレスではない”と判断された場合（ＮＯ．）、ＳＴ．３２-5に進む。
【０３３４】
ＳＴ．３２-5では、アドレスをインクリメントする。
【０３３５】
次に、再度、ＳＴ．３２-2に戻り、過消去ベリファイを行う。このＳＴ．３２-2では、インクリメントされたアドレスによって選ばれた選択ビット線、選択ワード線に接続されたセルが過消去ベリファイの対象となる。
【０３３６】
次に、ＳＴ．３２-3に進み、選択ビット線に流れた電流が既定値未満か否かを判断する。
【０３３７】
この判断の結果、“１”読み出し、即ちビット線に流れた電流が既定値以上と判断された場合（ＮＯ．）、ＳＴ．３２-20に進む。
【０３３８】
ＳＴ．３２-20における判断の結果、ローアドレスは“０”ではない、と判断された場合（ＮＯ．）、ＳＴ．３２-22に進み、サイクルが“０”か否かを判断する。
【０３３９】
ＳＴ．３２-22における判断の結果、サイクルが“０”である、と判断された場合（ＹＥＳ．）、ＳＴ．３２-6に進む。また、サイクルが“０”ではない、と判断された場合（ＮＯ．）、ＳＴ．３２-13に進み、選択ワード線をステップアップした後、ＳＴ．３２-6に進む。
【０３４０】
以下、ＳＴ．３２-6で、選択セルに対して弱プログラムを行った後、ＳＴ３２-14に進み、サイクルを“＋１”して、再度、ＳＴ．３２-2に戻り、過消去ベリファイを行う。
【０３４１】
次に、ＳＴ．３２-3に進み、選択ビット線に流れた電流が既定値未満か否かを判断する。
【０３４２】
この判断の結果、“０”読み出し、即ち選択ビット線に流れた電流が既定値未満と判断された場合（ＹＥＳ．）、ＳＴ．３２-11に進み、サイクルを“０”とした後、ＳＴ．３２-4に進み、最終アドレスか否かを判断する。
【０３４３】
この判断の結果、“最終アドレスである”（ＹＥＳ．）と判断されたとき、スレシホールド電圧ＶTHの分布幅を縮小する工程（ＳＴ．３）が終了する。
【０３４４】
このような第６の実施形態であると、過消去ビットの検知シークエンスを、過消去セルの検知シークエンスに組み込むので、制御回路を、さらに簡単に構成することができる。
【０３４５】
［第６の実施形態の第１の変形例］
上記第６の実施形態では、一例として、ステップアップを併用した例を説明した。しかし、ステップアップ法を併用しなくても良いことはもちろんである。
【０３４６】
以下、そのような一例を第６の実施形態の第１の変形例として説明する。
【０３４７】
図２０は、第６の実施形態の第１の変形例を示す流れ図である。
【０３４８】
図２０に示すように、第１の変形例に係るシークエンスは、図１９に示したシークエンスと、サイクルを加算するステップが無いことが異なり、これ以外は、ほぼ同様である。
【０３４９】
即ち、図２０に示すように、ＳＴ．３２-2において、過消去ベリファイを行った後、ＳＴ．３２-3において、選択セルがビット線に流すオン電流が“１０μＡ”未満か否かを判断する。
【０３５０】
この判断の結果、選択セルが流すオン電流が“１０μＡ”未満と判断された場合（ＮＯ．）、第６の実施形態と同様にＳＴ．３２-20に進み、ローアドレス＝０で、サイクル＝０かどうかを判断する。
【０３５１】
この判断の結果、“ローアドレス＝０で、かつサイクル＝０である”と判断された場合（ＹＥＳ．）ＳＴ．３１-6に進み、自己収束動作を行った後、ＳＴ．３２-2に戻る。
【０３５２】
反対に、“ローアドレス＝０ではない”と判断された場合（ＮＯ．）ＳＴ．３２-6に進み、弱プログラム動作を行った後、ＳＴ．３２-2に戻る。
【０３５３】
このような第１の変形例においても、先頭ワード線、かつ最初の弱プログラムパルスである場合に限り、自己収束パルスに切り替えられるので、第６の実施形態と同様の効果を得ることができる。
【０３５４】
［第７の実施形態］
第１〜第６の実施形態では、特にＳＴ．３１-6（自己収束）に対応する制御として、ドレインからのキャリア注入による自己収束法を用いた。
【０３５５】
しかし、ＳＴ．３１-6に対応する制御には、たとえばＳＴ．２（消去）でセルＭＣに与えられる電界とは逆向きの電界をトンネル絶縁膜に印加し、浮遊ゲートからソース、あるいはドレイン、あるいは基板の少なくともいずれかに向かってトンネル電流を流し、それによってキャリア（電子）を浮遊ゲートに注入する。このような方法を用いて、スレシホールド電圧ＶTHを収束させることもできる。
【０３５６】
つまり、ＳＴ．３１-6において、消去時にトンネル絶縁膜に流れるトンネル電流とは逆向きのトンネル電流を流して、スレシホールド電圧ＶTHを、所望の範囲に収束させる。このような方法は、たとえばK.Oyamaらにより、IEDM Digest of Technical Papers, pp607-610(1992),“A Novel Erasing Technology for 3.3V Flash Memory with 64Mb Capacity and Beyond”に開示されている。以下、この種を、トンネル電流収束法と呼ぶ。トンネル電流収束動作時のセルのバイアス状態の一例を図２１に示しておく。
【０３５７】
トンネル電流収束法では、ホットキャリア注入電流に比較して、流れる電流が非常に少ない。このため、消去しているブロック全体のワード線に、同時にたとえば正の比較的高い電圧を印加することが可能、という利点がある。
【０３５８】
この反面、単独で短時間にスレシホールド電圧ＶTHを大きくシフトさせ、狭い範囲に収束させようとすると、より高い電圧を必要とし、さらにはホットキャリア注入による自己収束と異なり、電圧印加時間とともにスレシホールド電圧ＶTHが飽和せずに上昇していくため、過消去されたセルＭＣだけでなく、正常なセルＭＣのスレシホールド電圧ＶTHも上昇してしまう、という事情がある。
【０３５９】
しかしながら、トンネル電流収束法は、最適なストレス条件を設定すれば、この発明の、たとえばＳＴ．３１-6のように、大きく過消去されたセルＭＣのスレシホールド電圧ＶTHを、ある範囲まで戻すことに適した方法の一つである。
【０３６０】
このようなトンネル電流収束法を、第１〜第６の実施形態のＳＴ．３１-6において、自己収束法に代えて用いても良い。
【０３６１】
ＳＴ．３１-6にトンネル電流収束法を用いた場合には、まず、消去ブロック内において、ビット線リークチェックを行う。次に、リーク電流がたとえば既定値以上のビット線が見つかった段階で、たとえば消去ブロックのセルＭＣの全てを、浮遊ゲートからソース、あるいはドレイン、あるいは基板の少なくともいずれか一つに向かってトンネル電流が流れるバイアス状態（トンネル注入バイアス状態と呼ぶ）とする。これにより、浮遊にキャリア（電子）が注入され、そのスレシホールド電圧ＶTHが上昇する。
【０３６２】
この後、再度ビット線リークチェックを行い、リーク電流がたとえば既定値未満となれば、次のビット線に対してリークチェックを行う。
【０３６３】
このような動作を繰り返し、最後のビット線まで、リーク電流がたとえば既定値未満となった段階で、第１の工程（ＳＴ．３１）を終了するようにすれば良い。
【０３６４】
また、トンネル電流収束法は、全てのビット線のリークチェックを行った後に行い、再度全ビット線のリークチェックを行う、というシークエンスを繰り返す方法に適用されても構わない。
【０３６５】
また、トンネル電流収束法は、自己収束法の場合と同様に、そのトンネル注入バイアス状態の電圧条件や、印加時間を最適化することで、再度のリークチェックを省略することも可能である。
【０３６６】
本発明は２段階で、それぞれを異なったバイアス条件でメモリセルのスレシホールド電圧を狭い範囲に入れていくものである。第一の段階と第二の段階で同様の例えばホットエレクトロン注入を用いる場合は、ワード線のバイアス電位を、第二段階で第一段階より高くするという方法が有効である。しかしながら、第七の実施形態のように第一と第二の段階で違うメカニズムを用いる場合は、当然の事ではあるが、必ずしも第二のバイアス条件の電圧の絶対値が高くなるとは限らない。第七の実施形態では、第一の段階でのワード線は例えば15Vといった値になる場合があり第二の段階のワード線電圧より高くなる。
【０３６７】
以上、この発明を第１〜第７の実施形態により説明した。これら全ての実施形態を通じて、ワード線の電圧が“０Ｖ”、“−１Ｖ”等の表記をしているが、これは、基本的にセルの存在する基板（あるいはウェル）の電位を“０Ｖ”とした場合のワード線の電位を示している。動作上、セルの基板（あるいはウェル）の電位が変わる場合においては、その変わった電位を基準に、ワード線の電位をシフトさせて適用しても良いことは勿論である。
【０３６８】
また、Ｎチャネル型のセルで説明したが、セルはＰチャネル型であっても良い。この場合には、適宜、電圧の極性を変えれば良い。
【０３６９】
また、全ての実施形態を通じて、たとえば“ＶOEV1＜ＶTH＜ＶEV”等の表記をしているが、これは“ＶOEV1≦ＶTH≦ＶEV”、あるいは“ＶOEV1＜ＶTH≦ＶEV”、あるいは“ＶOEV1≦ＶTH＜ＶEV”等に変更されても良い。
【０３７０】
また、実施形態としていくつかのシークエンスの組み合わせ例を示したが、本願の主旨を変えない範囲で適宜、組み合わせを変更したり、バイアス電位のかけ方等を変更しても良いことはもちろんである。例えば、本願の実施例では消去ベリファイレベルまで消去動作を行った後に、過消去セルの救済を行っている。しかしながら例えば、消去パルス印加後、消去ベリファイレベルに達していない状態においてもリーク電流のチェックを行い、既定値以上の電流が流れた場合には消去動作を一旦中止して過消去状態にあるセルに書き込みを行い、再度、消去を開始するといった方法により、消去ベリファイレベルまで消去した場合の過消去セルの発生頻度を下げる方法があり、それらを適宜、組み合わせる事も可能である。
【０３７１】
以上述べてきた全発明は、消去シークエンスに特に有効なものであるが、書き込みシークエンスに用いても良い。たとえば多値メモリのように、書き込み後のスレシホールド電圧ＶTHを、ある所定の範囲内にシフトさせる必要が場合に、この発明と類似の動作を用いて狭い範囲にスレシホールド電圧を制御する事が可能な場合もある。
【０３７２】
また、この発明は、類似の動作を行う他の種類のフラッシュメモリにも、必要に応じて適用できることはもちろんである。
【０３７３】
【発明の効果】
以上説明したように、この発明によれば、所望の範囲を逸脱したメモリセルのスレシホールド電圧を、誤動作や誤検知の発生を抑制しつつ、かつ動作の高速性を損なわずに、所望の範囲に回復させることが可能な不揮発性半導体メモリおよびそのスレシホールド電圧制御方法を提供できる。
【図面の簡単な説明】
【図１】図１Ａはこの発明が適用される不揮発性半導体メモリのブロック図、図１Ｂはそのセルアレイの等価回路図。
【図２】図２はこの発明の第１の実施形態に係る不揮発性半導体メモリのスレシホールド電圧制御方法を示す流れ図。
【図３】図３Ａ〜図３Ｅはそれぞれスレシホールド電圧の分布の変化を示す図。
【図４】図４Ａは既定値と“０”／“１”読み出しとの関係を示す図、図４Ｂは既定値切り替えを示すブロック図。
【図５】図５Ａ、図５Ｂはリークビット線チェック時のセルアレイのバイアス状態を示す図、図５Ｃは自己収束時のセルアレイのバイアス状態を示す図。
【図６】図６Ａ、図６Ｂは過消去ベリファイ時のセルアレイのバイアス状態を示す図、図６Ｃは弱プログラム時のセルアレイのバイアス状態を示す図。
【図７】図７はこの発明が適用される他の不揮発性半導体メモリのブロック図。
【図８】図８は第１の実施形態の第１の変形例に係る制御方法を示す流れ図。
【図９】図９は第１の実施形態の第２の変形例に係るリークビット線チェック時のセルアレイのバイアス状態を示す図。
【図１０】図１０は第１の実施形態の第３の変形例に係るリークビット線チェック時のセルアレイのバイアス状態を示す図。
【図１１】図１１は第１の実施形態の第３の変形例に好適な制御方法を示す流れ図。
【図１２】図１２は第１の実施形態の第４の変形例に係るリークビット線チェック時のセルアレイのバイアス状態を示す図。
【図１３】図１３はこの発明の第２の実施形態に係る制御方法を示す流れ図。
【図１４】図１４は第２の実施形態の第１の変形例に係る制御方法を示す流れ図。
【図１５】図１５Ａ、図１５Ｂはそれぞれこの発明の第３の実施形態に係る自己収束時のワード線のバイアス状態を示す図。
【図１６】図１６Ａ、図１６Ｂはそれぞれこの発明の第４の実施形態に係る自己収束時のワード線のバイアス状態を示す図。
【図１７】図１７はこの発明の第５の実施形態に係る制御方法を示す流れ図。
【図１８】図１８はこの発明の第６の実施形態に係る過消去ベリファイ時のセルアレイのバイアス状態を示す図。
【図１９】図１９は第６の実施形態に係る制御方法を示す流れ図。
【図２０】図２０は第６の実施形態の第１の変形例に係る制御方法を示す流れ図。
【図２１】図２１はトンネル電流収束動作時のセルのバイアス状態を示す図。
【図２２】図２２はデータ消去のスレシホールド電圧の分布を示す図。
【図２３】図２３は不揮発性半導体メモリのセルアレイの等価回路図。
【図２４】図２４は書き込み時のセルアレイのバイアス状態を示す図。
【図２５】図２５は自己収束動作時のセルのバイアス状態を示す図。
【図２６】図２６Ａは弱プログラム動作時の選択セルのバイアス状態を示す図、図２６Ｂは弱プログラム動作時の非選択セルのバイアス状態を示す図。
【図２７】図２７は従来の問題点を説明するための図。
【図２８】図２８は従来の問題点を説明するための図。
【図２９】図２９は不揮発性半導体メモリのブロック図。
【符号の説明】
１…メモリセルアレイ、
２…制御回路、
３…ビット線バイアス回路、
４…ソース線バイアス回路、
５…ワード線バイアス回路、
６…ローデコーダ、
７…カラムセレクタ、
８…カラムデコーダ、
９…Ｉ／Ｏ回路、
１０…アドレスバッファ、
１１…アドレスカウンタ、
１２…ベリファイ回路、
１３…規定値発生回路、
１４…チャージポンプ回路。
【図１】
0004131902.tif 000002
【図２】
0004131902.tif 000003
【図３】
0004131902.tif 000004
【図４】
0004131902.tif 000005
【図５】
0004131902.tif 000006
【図６】
0004131902.tif 000007
【図７】
0004131902.tif 000008
【図８】
0004131902.tif 000009
【図９】
0004131902.tif 000010
【図１０】
0004131902.tif 000011
【図１１】
0004131902.tif 000012
【図１２】
0004131902.tif 000013
【図１３】
0004131902.tif 000014
【図１４】
0004131902.tif 000015
【図１５】
0004131902.tif 000016
【図１６】
0004131902.tif 000017
【図１７】
0004131902.tif 000018
【図１８】
0004131902.tif 000019
【図１９】
0004131902.tif 000020
【図２０】
0004131902.tif 000021
【図２１】
0004131902.tif 000022
【図２２】
0004131902.tif 000023
【図２３】
0004131902.tif 000024
【図２４】
0004131902.tif 000025
【図２５】
0004131902.tif 000026
【図２６】
0004131902.tif 000027
【図２７】
0004131902.tif 000028
【図２８】
0004131902.tif 000029
【図２９】
0004131902.tif 000030