(57)【要約】【課題】本発明は、短時間で書き込み動作を完了させ且つ狭い閾値電圧の分布を生成することが可能な不揮発性半導体記憶装置を提供することを目的とする。【解決手段】不揮発性半導体記憶装置は、不揮発性メモリセルを含むメモリセルアレイと、異なる複数のレベルのデータをメモリセルに書き込む書き込み回路と、書き込み回路を制御することにより、複数のレベルの１つのレベルを書き込み対象として書き込み電圧を第１のステップ電圧づつ増加させながら第１の書き込み動作を実行し、第１の書き込み動作を実行しながら所定のタイミングにおける書き込み電圧を記憶し、１つのレベルを書き込み対象として記憶された書き込み電圧に基づいて決定される電圧から開始して書き込み電圧を第１のステップ電圧より小さい第２のステップ電圧づつ増加させて第２の書き込み動作を実行する制御回路を含む。【選択図】　　　図１
2004094987.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリセルを含むメモリセルアレイと、
異なる複数のレベルのデータを該メモリセルに書き込む書き込み回路と、
該書き込み回路を制御することにより、該複数のレベルの１つのレベルを書き込み対象として書き込み電圧を第１のステップ電圧づつ増加させながら第１の書き込み動作を実行し、該第１の書き込み動作を実行しながら所定のタイミングにおける該書き込み電圧を記憶し、該１つのレベルを書き込み対象として該記憶された書き込み電圧に基づいて決定される電圧から開始して書き込み電圧を該第１のステップ電圧より小さい第２のステップ電圧づつ増加させて第２の書き込み動作を実行する制御回路
を含むことを特徴とする不揮発性半導体記憶装置。
【請求項２】
該所定のタイミングは、書き込み対象のメモリセルの少なくとも１つの閾値電圧が所定のベリファイ電圧を超えたタイミングであることを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項３】
該メモリセル毎に設けられ対応メモリセルの閾値電圧がベリファイ電圧を超えると電位が変化するノードと、
該ノード電位の変化を検出する電位変化検出回路
を更に含むことを特徴とする請求項２記載の不揮発性半導体記憶装置。
【請求項４】
該電位変化検出回路は、
該ノードに第１端が接続されるコンデンサと、
該コンデンサの第２端にゲートが接続されるトランジスタ
を含むことを特徴とする請求項３記載の不揮発性半導体記憶装置。
【請求項５】
該制御回路は、該第１の書き込み動作を該複数のレベルに対して順次実行し、その後該第２の書き込み動作を該複数のレベルに対して順次実行し、該記憶された書き込み電圧は該複数のレベルごとに異なることを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項６】
該制御回路は、該第２の書き込み動作を実行しながら所定のタイミングにおける該書き込み電圧を更に記憶し、該１つのレベルを書き込み対象として該更に記憶された書き込み電圧に基づいて決定される電圧から開始して書き込み電圧を該第２のステップ電圧より小さい第３のステップ電圧づつ増加させて第３の書き込み動作を実行することを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項７】
該制御回路は、書き込み対象のメモリセルの少なくとも１つの閾値電圧が所定のベリファイ電圧を超えると該第１の書き込み動作を終了させることを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項８】
該制御回路は、該第２の書き込み動作を該複数のレベルの高い方から低い方に順次実行することを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項９】
該制御回路は、書き込み対象のメモリセルの最初の１つが所定のベリファイ電圧を超える時点における書き込み電圧を基準として、該書き込み電圧を記憶することを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項１０】
異なる複数のレベルのデータを不揮発性メモリセルに書き込む方法であって、
該複数のレベルの１つのレベルを書き込み対象として書き込み電圧を第１のステップ電圧づつ増加させながら第１の書き込み動作を実行し、
該第１の書き込み動作を実行しながら所定のタイミングにおける該書き込み電圧を記憶し、
該第１の書き込み動作及び該書き込み電圧の記憶を該複数のレベルの各々に対して実行し、
ある１つのレベルを書き込み対象として該記憶された書き込み電圧に基づいて決定される電圧から開始して書き込み電圧を該第１のステップ電圧より小さい第２のステップ電圧づつ増加させて第２の書き込み動作を実行する
各段階を含むことを特徴とするデータ書き込み方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に不揮発性半導体記憶装置に関し、詳しくは複数のデータレベルを記憶する不揮発性半導体記憶装置に関する。
【従来の技術】
不揮発性半導体記憶装置において、書き込み対象であるメモリセルにプログラム動作により書き込みを行うと、メモリセルトランジスタのフローティングゲートに電荷が注入され閾値電圧が上昇する。これにより、ゲートに閾値以下の電圧を印加しても電流が流れなくなり、データ“０”を書き込んだ状態が達成される。一般に、消去状態のメモリセルの閾値電圧及び書き込みスピードにはバラツキがある。従って、所定の書き込み電圧を印加してプログラム動作を実行し、閾値電圧がベリファイレベル以上になるようにベリファイすると、書き込み後のメモリセルの閾値電圧はベリファイレベル以上である程度分布を有するものとなる。
【０００２】
一般には、プログラムは多数のメモリセル（例えば１０２４バイト分：２ビット／セルの４レベル多値では４０９６個）について同時に実行する。従って、ビット線４０９６本について、“書き込む／書き込まない”を示すデータを予めページバッファにロードしておく。ベリファイは、これらのセルの閾値がベリファイレベルの閾値よりも高くなったか否かを判定するものであり、ベリファイレベルの閾値よりも高くなった場合にベリファイＯＫとする。以後ビット線には“書き込まない”旨を示すデータを割り当てて、ベリファイＯＫでないメモリセルを続けて書き込むときにそれ以上閾値がシフトしないようにする。従って、ベリファイＯＫとなったセルにはその時点で閾値が固定される。
【０００３】
メモリセルを異なる閾値電圧に設定することで多値を表現する多値メモリセルの不揮発性半導体記憶装置の場合には、閾値電圧が広い分布を有すると、隣り合うレベル値の間の間隔が狭くなり確実なデータ記録を実行することが困難になる。従って、成るべく狭い閾値電圧の分布を達成することが望まれる。
【０００４】
例えばビット分布が４レベルである多値メモリセルにおいては、Ｅｒａｓｅ及びＬｅｖｅｌ０、Ｌｅｖｅｌ１、Ｌｅｖｅｌ２の４つの値のレベルが存在する。
【０００５】
４つのレベルのデータを書き込むには、例えば、まずページバッファに対してデータロードを行い、更にＬｅｖｅｌ０乃至Ｌｅｖｅｌ２の書き込み対象メモリセルについて、書き込みバッファＷＢにデータを格納する。書き込み対象メモリセルに対して、Ｌｅｖｅｌ０の電位パルスを用いてプログラム及びベリファイを実行し、Ｌｅｖｅｌ０の書き込みを実行する。次に、Ｌｅｖｅｌ１及びＬｅｖｅｌ２の書き込み対象メモリセルについて、Ｌｅｖｅｌ１の電位パルスを用いてプログラム及びベリファイを実行し、Ｌｅｖｅｌ１の書き込みを実行する。最後に、Ｌｅｖｅｌ２の書き込み対象メモリセルについて、Ｌｅｖｅｌ２の電位パルスを用いてプログラム及びベリファイを実行し、Ｌｅｖｅｌ２の書き込みを実行する。
【発明が解決しようとする課題】
上記書き込み動作においては、書き込み速度と閾値電圧の分布の広さが互いに相反する要求として存在する。
【０００６】
まず書き込み速度に関しては、書き込み動作を成るべく短時間で終了出来ることが好ましい。そのためには、書き込み動作においてプログラム電圧をステップ毎に増加していく際に、大きなステップ電圧を用いることが望ましい。しかし大きなステップ電圧を用いた場合には、小さいステップ電圧を使用して小刻みに閾値電圧を設定する場合と比較して、書き込み終了後の閾値電圧の分布が広くなってしまうという問題点がある。前述のように、閾値電圧が広い分布を有すると、隣り合うレベル値の間の間隔が狭くなり確実なデータ記録を実行することが困難になるという問題がある。逆に閾値電圧の分布を狭くするために小さなステップ電圧を使用した場合には、書き込み速度が遅くなり動作効率が悪くなるという問題がある。
【０００７】
以上を鑑みて本発明は、短時間で書き込み動作を完了することが可能であり且つ比較的狭い閾値電圧の分布を生成することが可能な不揮発性半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
本発明による不揮発性半導体記憶装置は、不揮発性メモリセルを含むメモリセルアレイと、異なる複数のレベルのデータを該メモリセルに書き込む書き込み回路と、該書き込み回路を制御することにより、該複数のレベルの１つのレベルを書き込み対象として書き込み電圧を第１のステップ電圧づつ増加させながら第１の書き込み動作を実行し、該第１の書き込み動作を実行しながら所定のタイミングにおける該書き込み電圧を記憶し、該１つのレベルを書き込み対象として該記憶された書き込み電圧に基づいて決定される電圧から開始して書き込み電圧を該第１のステップ電圧より小さい第２のステップ電圧づつ増加させて第２の書き込み動作を実行する制御回路を含むことを特徴とする。
【０００８】
上記不揮発性半導体記憶装置においては、まず大きなステップ電圧を用いて書き込み動作を実行することにより大まかな閾値分布を形成し、その後小さなステップ電圧を用いて書き込み動作を実行することにより閾値分布を所望の幅に整形することが可能となる。この際に大まかな閾値分布を形成した際の書き込み電圧を記憶しておくことで、小さなステップ電圧を用いてプログラムする際の書き込み開始電圧を適切な値に設定することが出来る。従って本発明においては、短時間で書き込み動作を完了し、且つ所望の幅の閾値分布を形成することが可能となる。
【発明の実施の形態】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【０００９】
図１は、本発明による多値メモリセルへの書き込み動作の第１実施例を示すフローチャートである。図１は、ビット分布が４レベルの場合に相当する。図２は、図１のフローチャートでメモリセルの書き込みを実行する際のビット分布を示す図である。
【００１０】
図２（ａ）は、メモリセルの書き込みを実行した後に達成されるべきビット分布を示す図である。ここで横軸はメモリセルトランジスタの閾値電圧を示し、縦軸はビット数（メモリセルの数）を示す。図２（ａ）に示されるように、書き込み後には、Ｅ（Ｅｒａｓｅ）、Ｌ０（Ｌｅｖｅｌ０）、Ｌ１（Ｌｅｖｅｌ１）、及びＬ２（Ｌｅｖｅｌ２）の４つの値のレベルが存在する。ここでレベルＬ０の分布の左端の閾値をＶ０＿２（例えば０．４Ｖ）、レベルＬ１の分布の左端の閾値をＶ１＿２（例えば１．３Ｖ）、レベルＬ２の分布の左端の閾値をＶ２＿２（例えば２．３Ｖ）とする。また各分布の広がりは０．３Ｖであるとする。
【００１１】
図１のフローチャートを参照し、ステップＳＴ１において、メモリセルトランジスタのセル書込み特性やワード線の書き込み特性から、プログラム時にワード線に印加する最初の電圧である初期電圧Ｖｓｔａｒｔを決定し、プログラム電圧Ｖｐｇを初期電圧Ｖｓｔａｒｔに設定する。またＮを０に初期設定する。
【００１２】
ステップＳＴ２において、ベリファイ電圧Ｖ０＿１（例えば０Ｖ）としてベリファイを実行する。ステップＳＴ３において、Ｎが１であるか否かを判定する。最初の状態では、Ｎが０であるのでステップＳＴ４に進み、書き込み対象セルの閾値が１つでもベリファイ電圧Ｖ０＿１を超えたか否かを判定する。超えていない場合には、ステップＳＴ５に進み、Ｌ０、Ｌ１、及びＬ２の書き込み対象セルを、プログラム電圧Ｖｐｇを用いてプログラムする。次にステップＳＴ６で、プログラム電圧ＶｐｇをＬ０用のステップ電圧Ｖｓｐ０だけ増加する。ここでＶｓｐ０は例えば０．５Ｖとする。これはレベルＬ０のターゲット閾値分布の最大値が０．７Ｖであるので、書き込み後の閾値電圧が０．７Ｖを超えないように設定するものであり、ベリファイ電圧０Ｖに対してステップ電圧０．５Ｖを設定すれば閾値電圧が０．７Ｖを超えることはない。
【００１３】
その後ステップＳＴ２に戻り、書き込み対象セルが１つでもベリファイ電圧Ｖ０＿１を超えるまで、即ちステップＳＴ４の判断がＹｅｓになるまで上記処理を繰り返す。図２（ｂ）は、書き込み対象セルがベリファイ電圧Ｖ０＿１を超える直前の状態を示す。
【００１４】
書き込み対象セルが１つでもベリファイ電圧Ｖ０＿１を超えると、ステップＳＴ７に進み、プログラム電圧Ｖｐｇからステップ電圧Ｖｓｐ０を減じた電圧を設定電圧ＶＳ０として記憶しておく。ここでステップ電圧Ｖｓｐ０を減じるのは、ステップＳＴ５のプログラム後にステップ電圧Ｖｓｐ０を加えているためである。従って、ここで記憶する設定電圧ＶＳ０は、最初のセルがベリファイ電圧Ｖ０＿１を超えたときのプログラム電圧である。なお実際には、最初の書き込み対象セルがベリファイをパスした時点において、それまでに印加したパルス数を記憶しておくことになる。またステップＳＴ７でＮ＝１とすることで、次回のループの実行時にステップＳＴ４及びＳＴ７をスキップするよう設定される。
【００１５】
次にステップＳＴ８において、全ての書き込み対象のセルがベリファイをパスしたか否かを判定する。パスしていない場合にはステップＳＴ５に戻りプログラム動作を実行し、更にそれ以降の動作を繰り返す。ステップＳＴ８において全セルがパスした場合には、次段に進む。図２（ｃ）は、全ての書き込み対象のセルがベリファイをパスした状態を示す。
【００１６】
なお図１において、ステップＳＴ１乃至ステップＳＴ８を纏めてステップ１とし、ステップＳＴ９乃至ステップＳＴ１２の４ステップを纏めてステップ２とし、更にステップＳＴ１３乃至ステップＳＴ２７を纏めてステップ３として表している。
【００１７】
ステップＳＴ９において、記憶した設定電圧ＶＳ０にＬ１用のステップ電圧Ｖｓｐ１を加え、プログラム電圧Ｖｐｇとして設定する。ここでＶｓｐ１は例えば１．０Ｖとする。次にステップＳＴ１０において、Ｌ１及びＬ２の書き込み対象セルを、プログラム電圧Ｖｐｇを用いてプログラムする。Ｖｓｐ１は１．０Ｖに設定してあるが、これは書き込み後の最大閾値が、Ｌ１のターゲット閾値分布の最大値を超えない程度に設定すればよい。設定電圧ＶＳ０は最初のセルがベリファイ電圧Ｖ０＿１（０Ｖ）を超えたときのプログラム電圧であるので、この電圧ＶＳ０にＶｓｐ１（１．０Ｖ）を加えてプログラムした場合、最も高い閾値を有するセルであっても０．５Ｖ＋１．０Ｖを超えることは無い。図２（ｄ）は、ステップＳＴ１０のプログラム動作を実行した直後の状態を示す。
【００１８】
ステップＳＴ１０のプログラム動作後にベリファイは不要であるが、実行しても構わない。またプログラム動作を２回以上実行してもよいが、その場合にベリファイ動作は必須である。ベリファイ電圧は、Ｌ１ターゲット閾値の最大値から１Ｖを減じた０．６Ｖとすればよい。
【００１９】
ステップＳＴ１１において、プログラム電圧ＶｐｇにＬ２用のステップ電圧Ｖｓｐ２を加え、プログラム電圧Ｖｐｇとして設定する。ここでＶｓｐ２は例えば１．０Ｖとする。次にステップＳＴ１２において、Ｌ２の書き込み対象セルを、プログラム電圧Ｖｐｇを用いてプログラムする。Ｖｓｐ２は１．０Ｖに設定してあるが、これは書き込み後の最大閾値が、Ｌ２のターゲット閾値分布の最大値を超えない程度に設定すればよい。Ｌ１の場合と同様に、ステップＳＴ１２のプログラム動作後にベリファイは不要であるが、実行しても構わない。図２（ｅ）は、ステップＳＴ１２のプログラム動作を実行した直後の状態を示す。
【００２０】
上記動作の後に最後のステップ３が実行される。このステップ３は、図２（ｅ）に示されるようにＬ０、Ｌ１、及びＬ２に対して大まかに設定された３つの広い分布を、小さなステップ電圧による細かいプログラム動作により、Ｌ０、Ｌ１、及びＬ２に対応する狭い分布に整形する段階である。
【００２１】
まずステップＳＴ１３において、ＶＳ０＋Ｖｓｐ１＋Ｖｓｐ２−Ｖｓｐ５をプログラム電圧Ｖｐｇとして設定する。なおこの際、ＶＳ０＋Ｖｓｐ１＋Ｖｓｐ２はステップＳＴ１２実行時のプログラム電圧であるので、この電圧（実際には印加したパルスの回数）を記憶しておき、ステップＳＴ１３における電圧設定に用いてもよい。ここでステップ電圧Ｖｓｐ５は例えば０．２Ｖとする。ステップ電圧Ｖｓｐ５は、ターゲット閾値分布の所望幅を達成可能な程度に小さい電圧に設定すればよい。
【００２２】
ステップＳＴ１４において、ベリファイ電圧Ｖ２＿２としてベリファイを実行し、ステップＳＴ１５において、ベリファイの結果がパスしたか否かを判断する。パスしていない場合には、ステップＳＴ１６に進み、Ｌ２の書き込み対象セルを、プログラム電圧Ｖｐｇを用いてプログラムする。次にステップＳＴ７で、プログラム電圧Ｖｐｇをステップ電圧Ｖｓｐ５だけ増加する。その後ステップＳＴ１４に戻り、ベリファイ処理を繰り返す。図２（ｆ）は、レベルＬ２に対する書き込み動作が終了した状態を示す図である。
【００２３】
ベリファイがパスしてレベルＬ２の書き込みが終了すると、ステップＳＴ１８乃至ステップＳＴ２２において、レベルＬ１の書き込みを実行する。書き込み動作はレベルＬ２の場合と同様である。但し、プログラム電圧Ｖｐｇの初期設定値としてはＶＳ０＋Ｖｓｐ１−Ｖｓｐ４を用い、Ｖｓｐ４を例えば０．２Ｖに設定する。図２（ｇ）は、レベルＬ１に対する書き込み動作が終了した状態を示す図である。
【００２４】
レベルＬ１の書き込みが終了すると、ステップＳＴ２３乃至ステップＳＴ２７において、レベルＬ０の書き込みを実行する。書き込み動作はレベルＬ２の場合と同様である。但し、プログラム電圧Ｖｐｇの初期設定値としてはＶＳ０−Ｖｓｐ３を用い、Ｖｓｐ３を例えば０．２Ｖに設定する。図２（ｈ）は、レベルＬ０に対する書き込み動作が終了した状態を示す図である。
【００２５】
以上でレベルＬ０乃至Ｌ２に対する書き込み動作が終了する。なお上記の動作とは逆に、Ｌ０から書き込みを始めてＬ２を後で書き込むと、Ｌ０側の方がプログラム・ディスターブを受けて閾値電圧が高い方にシフトしてしまう。上記動作のようにＬ２から書き込みを始めてＬ０を後で書き込むようにすれば、Ｌ２の書き込みの時点でＬ０及びＬ１のセルの閾値は少しシフトするが、その後にＬ０及びＬ１に対する書き込み動作を実行するのでシフトの影響は殆どなくなることになる。
【００２６】
またステップＳＴ１３の“−Ｖｓｐ５”、ステップＳＴ１８の“−Ｖｓｐ４”、及びステップＳＴ２３の“−Ｖｓｐ３”のように、プログラム開始電圧として最初にステップ電圧を減じているのは、最初から閾値電圧変化量を可能な限り０．２Ｖに近づけるためである。従って、閾値分布の最大値とプログラム時間とを考慮して、ステップ電圧の２倍を減じる或いは全く減じないといった調整をすればよい。
【００２７】
以上の動作により、まず大きなステップ電圧を用いてＬ０乃至Ｌ２に対する書き込み動作を実行することにより大まかな閾値分布を形成し、その後小さなステップ電圧を用いてＬ０乃至Ｌ２に対する書き込み動作を実行することにより閾値分布を所望の幅に整形することが可能となる。この際に大まかな閾値分布を形成した際のプログラム電圧を記憶しておくことで、小さなステップ電圧を用いてプログラムする際のプログラム開始電圧を適切な値に設定することが出来る。従って本発明においては、短時間で書き込み動作を完了し、且つ所望の幅の閾値分布を形成することが可能となる。
【００２８】
図３は、本発明による多値メモリセルへの書き込み動作の第２実施例を示すフローチャートである。図４は、図３のフローチャートでメモリセルの書き込みを実行する際のビット分布を示す図である。
【００２９】
図４（ａ）は、メモリセルの書き込みを実行した後に達成されるべきビット分布を示す図である。ここでレベルＬ０の分布の左端の閾値をＶ０＿２（例えば０．６Ｖ）、レベルＬ１の分布の左端の閾値をＶ１＿２（例えば１．８Ｖ）、レベルＬ２の分布の左端の閾値をＶ２＿２（例えば３．２Ｖ）とする。また各分布の広がりは０．４Ｖであるとする。
【００３０】
図３のフローチャートを参照し、ステップＳＴ１乃至ステップＳＴ８は、図１の第１実施例のステップＳＴ１乃至ステップＳＴ８と同一である。ベリファイ電圧Ｖ０＿１は例えば０Ｖとし、またステップ電圧Ｖｓｐ０は例えば０．７５Ｖとする。この処理により、Ｌ０乃至Ｌ２の書き込み対象セルについて、レベルＬ０に対応した大まかな閾値分布を形成する。図４（ｂ）は、書き込み対象セルがベリファイ電圧Ｖ０＿１を超える直前の状態を示し、図４（ｃ）は、レベルＬ０に対応した大まかな閾値分布が形成された状態を示す。
【００３１】
ステップＳＴ９乃至ステップＳＴ１６は、図１の第１実施例のステップＳＴ１乃至ステップＳＴ８と同様である。ステップ電圧Ｖｓｐ１は、Ｌ１の閾値電圧最大値２．２ＶとＬ０の閾値電圧最大値１．０Ｖとの差が１．２Ｖであることを考慮して、多少余裕をみて例えば１．０Ｖに設定する。またベリファイ電圧Ｖ１＿１は、Ｌ１の閾値電圧最大値２．２Ｖとステップ電圧１．２Ｖとを考慮して、例えば１．０Ｖとする。プログラム開始電圧は、ステップＳＴ７で記憶したＶＳ０にステップ電圧Ｖｓｐ１を加えた電圧である。この処理により、Ｌ１及びＬ２の書き込み対象セルについて、レベルＬ１に対応した大まかな閾値分布を形成する。図４（ｄ）は、レベルＬ１に対応した大まかな閾値分布が形成された状態を示す。
【００３２】
ステップＳＴ１７乃至ステップＳＴ２４は、図１の第１実施例のステップＳＴ１乃至ステップＳＴ８と同様である。ステップ電圧Ｖｓｐ２は、Ｌ２の閾値電圧最大値３．６ＶとＬ０の閾値電圧最大値２．２Ｖとの差が１．４Ｖであることを考慮して、多少余裕をみて例えば１．２５Ｖに設定する。またベリファイ電圧Ｖ２＿１は、Ｌ２の閾値電圧最大値３．６Ｖとステップ電圧１．２５Ｖとを考慮して、例えば２．２Ｖとする。プログラム開始電圧は、ステップＳＴ１５で記憶したＶＳ１にステップ電圧Ｖｓｐ２を加えた電圧である。この処理により、Ｌ２の書き込み対象セルについて、レベルＬ２に対応した大まかな閾値分布を形成する。図４（ｅ）は、レベルＬ２に対応した大まかな閾値分布が形成された状態を示す。
【００３３】
図３に示す第２実施例においては、以下に示すように、第２回目の大まかに閾値分布を形成する処理を実行し、所望の閾値分布を形成する最終的な書き込み動作の前に、ある程度閾値分布の幅を狭くしておく処理が行われる。図３では、この処理をステップ２としてある。
【００３４】
ステップＳＴ２５乃至ステップＳＴ３２は、レベルＬ１に対応する閾値分布の幅を狭くする処理である。ステップ電圧Ｖｓｐ１＿２は、例えば０．５Ｖに設定する。またベリファイ電圧Ｖ１＿２は、Ｌ１の閾値電圧最大値２．２Ｖとステップ電圧０．５Ｖとを考慮して、例えば１．５Ｖとする。プログラム開始電圧は、ステップＳＴ１５で記憶したＶＳ１にステップ電圧Ｖｓｐ１＿２を加えた電圧である。この処理により、Ｌ１の書き込み対象セルについて、レベルＬ１に対応した閾値分布を狭くする。図４（ｆ）は、レベルＬ１に対応した大まかな閾値分布が狭く形成された状態を示す。
【００３５】
ステップＳＴ３４乃至ステップＳＴ４０は、レベルＬ２に対応する閾値分布の幅を狭くする処理である。ステップ電圧Ｖｓｐ２＿２は、例えば０．５Ｖに設定する。またベリファイ電圧Ｖ２＿２は、Ｌ１の閾値電圧最大値３．６Ｖとステップ電圧０．５Ｖとを考慮して、例えば２．９Ｖとする。プログラム開始電圧は、ステップＳＴ２３で記憶したＶＳ２にステップ電圧Ｖｓｐ２＿２を加えた電圧である。この処理により、Ｌ２の書き込み対象セルについて、レベルＬ２に対応した閾値分布を狭くする。図４（ｇ）は、レベルＬ２に対応した大まかな閾値分布が狭く形成された状態を示す。
【００３６】
なおＬ０に対応する分布については、最初に使用したステップ電圧Ｖｓｐ０が０．７５Ｖとそれ程大きい電圧ではないので、更に狭くした大まかな閾値分布を形成する処理は省略している。
【００３７】
以上の処理の後、ステップ３において、図１のステップ３と同様の書き込み動作を実行する。即ち、Ｌ０、Ｌ１、及びＬ２に対して大まかに設定された３つの広い分布を、小さなステップ電圧による細かいプログラム動作により、Ｌ０、Ｌ１、及びＬ２に対応する狭い分布に整形する。
【００３８】
この書き込み処理において、使用するステップ電圧Ｖｓｐ３、Ｖｓｐ４、及びＶｓｐ５は０．２５Ｖとする。またベリファイ電圧は、Ｌ０については０．６Ｖ、Ｌ１については１．８Ｖ、Ｌ２については３．２Ｖである。またプログラム開始電圧は、Ｌ０、Ｌ１、Ｌ２に対して夫々、ステップＳＴ７で求めたＶＳ０、ステップＳＴ３１で求めたＶＳ１、ステップＳＴ３９で求めたＶＳ２を用いて設定している。
【００３９】
図４（ｈ）は、書き込み動作が終了した状態を示す図である。
【００４０】
以上の動作により、まず大きなステップ電圧を用いてＬ０乃至Ｌ２に対する書き込み動作を実行することにより大まかな閾値分布を形成し、その後中間のステップ電圧を用いて閾値分布を狭くし、最後に小さなステップ電圧を用いてＬ０乃至Ｌ２に対する書き込み動作を実行することにより閾値分布を所望の幅に整形することが可能となる。この際に大まかな閾値分布を形成した際のプログラム電圧を記憶しておくことで、小さなステップ電圧を用いてプログラムする際のプログラム開始電圧を適切な値に設定することが出来る。従って本発明においては、短時間で書き込み動作を完了し、且つ所望の幅の閾値分布を形成することが可能となる。
【００４１】
図５は、本発明による多値メモリセルへの書き込み動作の第３実施例を示すフローチャートである。図６は、図５のフローチャートでメモリセルの書き込みを実行する際のビット分布を示す図である。
【００４２】
図６（ａ）は、メモリセルの書き込みを実行した後に達成されるべきビット分布を示す図である。ここでレベルＬ０の分布の左端の閾値をＶ０＿２（例えば０．６Ｖ）、レベルＬ１の分布の左端の閾値をＶ１＿２（例えば１．８Ｖ）、レベルＬ２の分布の左端の閾値をＶ２＿２（例えば３．２Ｖ）とする。また各分布の広がりは０．４Ｖであるとする。
【００４３】
図５のフローチャートを参照し、ステップＳＴ１において、メモリセルトランジスタのセル書込み特性やワード線の書き込み特性から、プログラム時にワード線に印加する最初の電圧である初期電圧Ｖｓｔａｒｔを決定し、プログラム電圧Ｖｐｇを初期電圧Ｖｓｔａｒｔに設定する。
【００４４】
ステップＳＴ２において、ベリファイ電圧Ｖ０＿１（例えば０Ｖ）としてベリファイを実行する。ステップＳＴ３において、書き込み対象セルの閾値が１つでもベリファイ電圧Ｖ０＿１を超えたか否かを判定する。超えていない場合には、ステップＳＴ４に進み、Ｌ０、Ｌ１、及びＬ２の書き込み対象セルを、プログラム電圧Ｖｐｇを用いてプログラムする。次にステップＳＴ５で、プログラム電圧ＶｐｇをＬ０用のステップ電圧Ｖｓｐ０だけ増加する。ここでＶｓｐ０は例えば第２実施例と同様に０．７５Ｖとする。
【００４５】
その後ステップＳＴ２に戻り、書き込み対象セルが１つでもベリファイ電圧Ｖ０＿１を超えるまで、即ちステップＳＴ３の判断がＹｅｓになるまで上記処理を繰り返す。図６（ｂ）は、書き込み対象セルがベリファイ電圧Ｖ０＿１を超えた直後の状態を示す。書き込み対象セルが１つでもベリファイ電圧Ｖ０＿１を超えると、ステップＳＴ６に進み、プログラム電圧Ｖｐｇからステップ電圧Ｖｓｐ０を減じた電圧を設定電圧ＶＳ０として記憶しておく。
【００４６】
以上でＬ０に対する大まかな閾値分布を形成する処理を終了する。このように、書き込み対象セルが１つでもベリファイ電圧Ｖ０＿１を超えた状態で処理を終了するので、図６（ｂ）に示されるように、閾値がベリファイ電圧Ｖ０＿１よりも低いセルが多く存在する。
【００４７】
ステップＳＴ７乃至ステップＳＴ１２は、ステップＳＴ１乃至ステップＳＴ６と同様の処理である。第２実施例と同様に、ステップ電圧Ｖｓｐ１は例えば１．０Ｖに設定し、またベリファイ電圧Ｖ１＿１は例えば１．０Ｖとする。プログラム開始電圧は、ステップＳＴ６で記憶したＶＳ０にステップ電圧Ｖｓｐ１を加えた電圧である。図２（ｃ）は、ステップＳＴ７乃至ステップＳＴ１２を終了し、Ｌ１に対する大まかな閾値分布を形成した状態を示す。
【００４８】
ステップＳＴ１３乃至ステップＳＴ１８は、ステップＳＴ１乃至ステップＳＴ６と同様の処理である。第２実施例と同様に、ステップ電圧Ｖｓｐ２は例えば１．２５Ｖに設定し、またベリファイ電圧Ｖ２＿１は例えば２．２Ｖとする。プログラム開始電圧は、ステップＳＴ１２で記憶したＶＳ１にステップ電圧Ｖｓｐ２を加えた電圧である。図２（ｄ）は、ステップＳＴ１３乃至ステップＳＴ１８を終了し、Ｌ２に対する大まかな閾値分布を形成した状態を示す。
【００４９】
図５に示す第３実施例においては、以下に説明するように、第２回目の大まかに閾値分布を形成する処理を実行することで、閾値分布の位置を最終的な閾値分布の位置に更に近づけておく。図５では、この処理をステップ２としてある。
【００５０】
図５のステップ２の動作（ステップＳＴ１９乃至ステップＳＴ３６）は、図５のステップ１の動作（ステップＳＴ１乃至ステップＳＴ１８）と同様であり、詳細は省略する。なお使用する閾値電圧及びベリファイ電圧は、図３の第２実施例のステップ２において使用した閾値電圧及びベリファイ電圧と同一である。但し図５では、Ｌ０に対しても閾値分布の幅を狭くしておく処理を実行しているが、この場合のステップ電圧Ｖｓｐ０＿２は例えば０．５Ｖとし、ベリファイ電圧Ｖ０＿２は例えば０．３Ｖとする。この処理により閾値分布がシフトされていく様子を、図６（ｅ）乃至（ｇ）に示す。
【００５１】
以上の処理の後、ステップ３において、図３のステップ３と同様の書き込み動作を実行する。即ち、Ｌ０、Ｌ１、及びＬ２に対して大まかに設定された３つの広い分布を、小さなステップ電圧による細かいプログラム動作により、Ｌ０、Ｌ１、及びＬ２に対応する狭い分布に整形する。この際、使用するステップ電圧及びベリファイ電圧は、第２実施例の場合と同一である。またプログラム開始電圧は、Ｌ０、Ｌ１、Ｌ２に対して夫々、ステップＳＴ２４で求めたＶＳ０、ステップＳＴ３０で求めたＶＳ１、ステップＳＴ３６で求めたＶＳ２を用いて設定している。
【００５２】
図６（ｈ）は、書き込み動作が終了した状態を示す図である。
【００５３】
以上の動作により、まず大きなステップ電圧を用いてＬ０乃至Ｌ２に対する書き込み動作を２段階に分けて実行することにより大まかな閾値分布を形成し、その後小さなステップ電圧を用いてＬ０乃至Ｌ２に対する書き込み動作を実行することにより閾値分布を所望の幅に整形することが可能となる。この際に大まかな閾値分布を形成した際のプログラム電圧を記憶しておくことで、小さなステップ電圧を用いてプログラムする際のプログラム開始電圧を適切な値に設定することが出来る。従って本発明においては、短時間で書き込み動作を完了し、且つ所望の幅の閾値分布を形成することが可能となる。
【００５４】
図７は、本発明による多値メモリセルへの書き込み動作の第４実施例を示すフローチャートである。図８は、図７のフローチャートでメモリセルの書き込みを実行する際のビット分布を示す図である。
【００５５】
図８（ａ）は、メモリセルの書き込みを実行した後に達成されるべきビット分布を示す図である。ここでレベルＬ０の分布の左端の閾値をＶ０＿２（例えば０．６Ｖ）、レベルＬ１の分布の左端の閾値をＶ１＿２（例えば１．８Ｖ）、レベルＬ２の分布の左端の閾値をＶ２＿２（例えば３．２Ｖ）とする。また各分布の広がりは０．４Ｖであるとする。
【００５６】
図７のフローチャートを参照し、ステップＳＴ１において、メモリセルトランジスタのセル書込み特性やワード線の書き込み特性から、プログラム時にワード線に印加する最初の電圧である初期電圧Ｖｓｔａｒｔを決定し、プログラム電圧Ｖｐｇを初期電圧Ｖｓｔａｒｔに設定する。またＮ０、Ｎ１、及びＮ２を０に初期設定する。
【００５７】
ステップＳＴ２において、ベリファイ電圧Ｖ０＿１（例えば０Ｖ）としてベリファイを実行する。ステップＳＴ３において、Ｎ０が１であるか否かを判定する。最初の状態では、Ｎ０が０であるのでステップＳＴ４に進み、書き込み対象セルの閾値が１つでもベリファイ電圧Ｖ０＿１を超えたか否かを判定する。超えていない場合には、ステップＳＴ５に進み、Ｌ０、Ｌ１、及びＬ２の書き込み対象セルを、プログラム電圧Ｖｐｇを用いてプログラムする。次にステップＳＴ６で、プログラム電圧Ｖｐｇをステップ電圧Ｖｓｐ＿１だけ増加する。ここでＶｓｐ＿１は例えば０．７５Ｖとする。このステップ電圧Ｖｓｐ＿１は、レベルＬ０乃至Ｌ２のプログラム動作に共通に使用されるものであり、従ってレベルＬ０乃至Ｌ２の何れに対しても問題のないように適切な値が設定される。
【００５８】
その後ステップＳＴ２に戻り、書き込み対象セルが１つでもベリファイ電圧Ｖ０＿１を超えるまで、即ちステップＳＴ４の判断がＹｅｓになるまで上記処理を繰り返す。図８（ｂ）は、書き込み対象セルがベリファイ電圧Ｖ０＿１を超える直前の状態を示す。
【００５９】
書き込み対象セルが１つでもベリファイ電圧Ｖ０＿１を超えると、ステップＳＴ７に進み、プログラム電圧Ｖｐｇからステップ電圧Ｖｓｐ＿１を減じた電圧を設定電圧ＶＳ０として記憶しておく。またＮ０＝１とすることで、次回のループの実行時にステップＳＴ４及びＳＴ７をスキップするよう設定される。
【００６０】
次にステップＳＴ８において、ベリファイ電圧Ｖ１＿１（例えば１．２Ｖ）としてベリファイを実行する。ステップＳＴ９において、Ｎ１が１であるか否かを判定する。最初の状態では、Ｎ１が０であるのでステップＳＴ１０に進み、書き込み対象セルの閾値が１つでもベリファイ電圧Ｖ１＿１を超えたか否かを判定する。超えていない場合には、ステップＳＴ５に戻りＬ０、Ｌ１、及びＬ２の書き込み対象セルに対するプログラム動作を実行し、それ以降のステップを再度実行する。この動作を、書き込み対象セルが１つでもベリファイ電圧Ｖ１＿１を超えるまで、即ちステップＳＴ１０の判断がＹｅｓになるまで繰り返す。図８（ｃ）は、書き込み対象セルがベリファイ電圧Ｖ１＿１を超えた直後の状態を示す。
【００６１】
書き込み対象セルが１つでもベリファイ電圧Ｖ１＿１を超えると、ステップＳＴ１１に進み、プログラム電圧Ｖｐｇからステップ電圧Ｖｓｐ＿１を減じた電圧を設定電圧ＶＳ１として記憶しておく。またＮ１＝１とすることで、次回のループの実行時にステップＳＴ１０及びＳＴ１１をスキップするよう設定される。
【００６２】
次にステップＳＴ１２において、ベリファイ電圧Ｖ２＿１（例えば２．６Ｖ）としてベリファイを実行する。ステップＳＴ１３において、Ｎ２が１であるか否かを判定する。最初の状態では、Ｎ２が０であるのでステップＳＴ１４に進み、書き込み対象セルの閾値が１つでもベリファイ電圧Ｖ２＿１を超えたか否かを判定する。超えていない場合には、ステップＳＴ５に戻りＬ０、Ｌ１、及びＬ２の書き込み対象セルに対するプログラム動作を実行し、それ以降のステップを再度実行する。この動作を、書き込み対象セルが１つでもベリファイ電圧Ｖ２＿１を超えるまで、即ちステップＳＴ１４の判断がＹｅｓになるまで繰り返す。図８（ｄ）は、書き込み対象セルがベリファイ電圧Ｖ２＿１を超えた直後の状態を示す。
【００６３】
書き込み対象セルが１つでもベリファイ電圧Ｖ２＿１を超えると、ステップＳＴ１５に進み、プログラム電圧Ｖｐｇからステップ電圧Ｖｓｐ＿１を減じた電圧を設定電圧ＶＳ２として記憶しておく。またＮ２＝１とすることで、次回のループの実行時にステップＳＴ１４及びＳＴ１５をスキップするよう設定される。
【００６４】
次にステップＳＴ１６において、全ての書き込み対象のセルがベリファイをパスしたか否かを判定する。パスしていない場合にはステップＳＴ５に戻りプログラム動作を実行し、更にそれ以降の動作を繰り返す。ステップＳＴ１６において全セルがパスした場合には、次段に進む。図２（ｅ）は、全ての書き込み対象のセルがベリファイをパスした状態を示す。
【００６５】
以上の処理の後、ステップ２において、図３のステップ３と同様の書き込み動作を逆順に実行する。即ち、Ｌ０、Ｌ１、Ｌ２の順番で書き込み動作を実行し、小さなステップ電圧による細かいプログラム動作を実行することにより、大まかに設定された３つの広い分布を夫々対応する狭い分布に整形する。この際、使用するステップ電圧及びベリファイ電圧は、Ｌ０のベリファイ電圧を除いて第２実施例の場合と同一である。Ｌ０のベリファイ電圧は、プログラム・ディスターブの影響を考慮して０．０５Ｖ低く設定してある。またプログラム開始電圧は、Ｌ０、Ｌ１、Ｌ２に対して夫々、ステップＳＴ７で求めたＶＳ０、ステップＳＴ１１で求めたＶＳ１、ステップＳＴ１５で求めたＶＳ２を用いて設定している。
【００６６】
図８（ｆ）は、書き込み動作が終了した状態を示す図である。
【００６７】
以上の動作により、まず大きなステップ電圧を用いてＬ０乃至Ｌ２に対する書き込み動作を纏めて実行することにより大まかな閾値分布を形成し、その後小さなステップ電圧を用いてＬ０乃至Ｌ２に対する書き込み動作を実行することにより閾値分布を所望の幅に整形することが可能となる。この際に大まかな閾値分布を形成した際のプログラム電圧を記憶しておくことで、小さなステップ電圧を用いてプログラムする際のプログラム開始電圧を適切な値に設定することが出来る。従って本発明においては、短時間で書き込み動作を完了し、且つ所望の幅の閾値分布を形成することが可能となる。
【００６８】
図９は、本発明を適用する不揮発性半導体記憶装置の全体構成を示すブロック図である。
【００６９】
図９の不揮発性半導体記憶装置２０は、コントロール回路２１、コマンドレジスタ２２、Ｉ／Ｏコントロール回路２３、アドレスレジスタ２４、ステータスレジスタ２５、メモリセルアレイ２６、ローアドレスデコーダ２７、ローアドレスバッファ２８、コラムデコーダ２９、データレジスタ３０、センスアンプ３１、コラムアドレスバッファ３２、高電圧発生回路３３、ロジックコントロール３４、及びレディ／ビジーレジスタ３５を含む。
【００７０】
ロジックコントロール３４は、チップイネーブル／ＣＥ、コマンドラッチイネーブルＣＬＥ、アドレスラッチイネーブルＡＬＥ、ライトイネーブル／ＷＥ、リードイネーブル／ＲＥ、ライトプロテクト／ＷＰ、スペアエリアイネーブル／ＳＥ等の制御信号を外部から受け取り、これらの制御信号に基づいてロジックコントロール信号をコントロール回路２１に供給する。
【００７１】
Ｉ／Ｏコントロール回路２３は、入出力信号Ｉ／Ｏ０乃至Ｉ／Ｏ７を外部とやり取りする。Ｉ／Ｏコントロール回路２３は、アドレス信号、データ信号、コマンド信号を外部から受け取り、アドレス信号をアドレスレジスタ２４に、データ信号をデータレジスタ３０に、コマンド信号をコマンドレジスタ２２に供給する。アドレスレジスタ２４は、ローアドレスをローアドレスバッファ２８に供給し、コラムアドレスをコラムアドレスバッファ３２に供給する。
【００７２】
コントロール回路２１は、ロジックコントロール３４からのロジックコントロール信号を受け取ると共に、コマンドレジスタ２２からコマンドを受け取り、これらのロジックコントロール信号及びコマンドに基づいてステートマシンとして動作し、不揮発性半導体記憶装置２０の各部の動作を制御する。
【００７３】
コントロール回路２１は、アドレスレジスタ２４の指示するメモリセルアレイ２６のアドレスからデータを読み出すために、メモリセルアレイ２６、ローアドレスデコーダ２７、コラムデコーダ２９等を制御する。またコントロール回路２１は、メモリセルアレイ２６の書き込みアドレスにデータを書き込むために、メモリセルアレイ２６、ローアドレスデコーダ２７、コラムデコーダ２９等を制御する。またコントロール回路２１は、メモリセルアレイ２６の指定された領域を所定単位で一括消去するために、メモリセルアレイ２６、ローアドレスデコーダ２７、コラムデコーダ２９等を制御する。前述の第１乃至第４実施例の書き込み処理は、コントロール回路２１が各回路ユニットを制御することで実行される。
【００７４】
メモリセルアレイ２６はメモリセルトランジスタの配列、ワード線、ビット線等を含み、各メモリセルトランジスタにデータを記憶する。データ読み出し時には、活性化ワード線で指定されるメモリセルからのデータが、ビット線に読み出される。プログラム或いはイレーズ時には、ワード線及びビット線をそれぞれの動作に応じた適当な電位に設定することで、メモリセルに対する電荷注入或いは電荷抜き取りの動作を実行する。
【００７５】
センスアンプ３１はコントロール回路２１の制御の下で動作し、ローアドレスデコーダ２７及びコラムデコーダ２９による指定に応じてメモリセルアレイ２６から供給されるデータの電流を、基準電流と比較することでデータが０であるか１であるかの判定を行う。この判定結果は読み出しデータとしてデータレジスタ３０に格納され、更にデータレジスタ３０からＩ／Ｏコントロール回路２３に供給される。
【００７６】
またプログラム動作及びイレーズ動作に伴うベリファイ動作は、ローアドレスデコーダ２７及びコラムデコーダ２９による指定に応じてメモリセルアレイ２６から供給されるデータの電流を、プログラムベリファイ用及びイレーズベリファイ用の基準電流と比較することで行われる。プログラム動作においては、データレジスタ３０に書き込みデータが格納され、このデータに基づいてメモリセルアレイ２６のワード線及びビット線を適当な電位に設定することで、メモリセルに対する電荷注入を実行する。なお後述するように、本発明においては、書き込み対象セルが１つでもベリファイ電圧を超えたことを検出するための回路が、データレジスタ３０及びセンスアンプ３１周辺に設けられている。
【００７７】
ステータスレジスタ２５は、不揮発性半導体記憶装置２０の動作に関するステータス情報を格納するレジスタであり、このレジスタ内容をＩ／Ｏコントロール回路２３を介して外部から読み出すことで、デバイスがレディ状態であるか、書込み保護モードであるか、又はプログラム／消去動作中かを判断することが出来る。またレディ／ビジーレジスタ３５は、デバイスがレディ状態であるかビジー状態であるかを示すフラグを格納し、これに応じてレディ／ビジー信号が外部に出力される。高電圧発生回路３３は、プログラム動作及びイレーズ動作に用いられる高電位を発生する回路である。
【００７８】
図１０は、本発明に使用するページバッファ周辺の構成を示す図である。
【００７９】
図１０の回路は、図９に示されるメモリセルアレイ２６、センスアンプ３１、データレジスタ３０の一部に対応し、書込み／読出し回路４１、データラッチ４２、データラッチ４３、書込み／読出し用テンポラリラッチ４４、ベリファイ検出用トランジスタ４５、コンデンサ４６、トランジスタ４７及び４８、複数のスイッチ回路４９、メモリセル５０、ビット線ＢＬ、及びワード線ＷＬを含む。
【００８０】
データ書込み時には、データバスからスイッチ回路４９を介して、データラッチ４２及び４３に２ビットのデータが格納される。この２ビットデータによって、Ｅ、Ｌ０、Ｌ１、及びＬ２の４段階のレベルを表現する。また更に、データバスからスイッチ回路４９を介して、書込み／読出し用テンポラリラッチ４４に書き込み指示が格納される。即ち、書込み動作を実行する場合には、ノードＮＶｐがＨＩＧＨになるように書込み／読出し用テンポラリラッチ４４を設定する。
【００８１】
書き込みの有無に応じて、書込み／読出し回路４１がビット線ＢＬの電位を制御し、ワード線ＷＬにプログラム電圧Ｖｐｇを印加してプログラム動作を実行する。その後、ベリファイ電圧をワード線ＷＬに印加し、書込み／読出し回路４１がビット線ＢＬから読み出されたデータをチェックする。ベリファイをパスすると、書込み／読出し回路４１はノードＮＶｐをＬＯＷに引き下げ、これに応じてトランジスタ４５が非導通になる。このトランジスタ４５は、１ページのページバッファ分のメモリセルについてワイヤードＮＯＲされており、全てのメモリセルについてベリファイがパスすると全てのトランジスタ４５がオフとなり、端子ＶｅｒｉｆｙＯＫ／ＮＧがＨＩＧＨになる。
【００８２】
図１０のページバッファにおいては、前述の第１乃至第４実施例を実現するために、最初のセルがベリファイ電位を超えたことを検出する必要がある。ここで問題となるのは、書き込み対象でないセルに対してはノードＮＶｐがＬＯＷになるように書込み／読出し用テンポラリラッチ４４が設定されているので、この状態と、ベリファイがパスしてノードＮＶｐがＬＯＷになった状態とを区別する必要があることである。
【００８３】
図１０の回路においては、コンデンサ４６によってノードＮＶｎの直流成分を遮断し電位変化のみを検出することによって、ベリファイがパスしてノードＮＶｐがＬＯＷになった状態を検出する構成となっている。図１１は、図１０の回路においてノードＮＶｐのＬＯＷへの変化を検出する動作を示すタイミング波形図である。
【００８４】
図１１（ａ）に示すように、ワード線に所定の電圧Ｖｐｇｍを印加してプログラム動作を実行し、その後ベリファイ電圧Ｖ＿ｖｅｒｉｆｙを印加してベリファイ読み出し（図１１（ｂ））を実行する。このベリファイ動作において、読み出したデータがパスしてノードＮＶｐ（図１１（ｄ））がＬＯＷになるとノードＮＶｎ（図１１（ｅ））がＨＩＧＨとなり、コンデンサ４６を介した容量結合によって、ノードＮｇ（図１１（ｆ））の電位が上昇する。このノードＮｇの電位は、Ｓｅｔ＿Ｖ＿１ｓｔＰ（図１１（ｃ））をＨＩＧＨにしてトランジスタ４７を導通させることにより、予めＬＯＷに初期設定されている。従って、上記のようにしてノードＮｇの電位が上昇すると、それまでオフであったトランジスタ４８が導通し、端子Ｖｅｒｉｆｙ＿１ｓｔＰがＬＯＷとなる。
【００８５】
従って、Ｖｅｒｉｆｙ＿１ｓｔＰの電位をモニターしておくことで、一番最初のセルがベリファイ電位を超えたことを検出することが出来る。
【００８６】
以上のようにして、本発明においては図１０に示されるページバッファを使用することにより、１つでもセルがベリファイをパスした状態を検出することが出来る。従って、この検出に応じてその時点でのプログラム電圧（或いは印加パルス回数等のプログラム電圧を示す情報）をメモリに記憶し、この情報を用いて上記実施例の説明のように短時間で所望の幅を有する閾値分布を形成することが可能となる。
【００８７】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【００８８】
なお本発明は以下の内容を含むものである。
（付記１）不揮発性メモリセルを含むメモリセルアレイと、
異なる複数のレベルのデータを該メモリセルに書き込む書き込み回路と、
該書き込み回路を制御することにより、該複数のレベルの１つのレベルを書き込み対象として書き込み電圧を第１のステップ電圧づつ増加させながら第１の書き込み動作を実行し、該第１の書き込み動作を実行しながら所定のタイミングにおける該書き込み電圧を記憶し、該１つのレベルを書き込み対象として該記憶された書き込み電圧に基づいて決定される電圧から開始して書き込み電圧を該第１のステップ電圧より小さい第２のステップ電圧づつ増加させて第２の書き込み動作を実行する制御回路
を含むことを特徴とする不揮発性半導体記憶装置。
（付記２）該所定のタイミングは、書き込み対象のメモリセルの少なくとも１つの閾値電圧が所定のベリファイ電圧を超えたタイミングであることを特徴とする付記１記載の不揮発性半導体記憶装置。
（付記３）該メモリセル毎に設けられ対応メモリセルの閾値電圧がベリファイ電圧を超えると電位が変化するノードと、
該ノード電位の変化を検出する電位変化検出回路を更に含むことを特徴とする付記２記載の不揮発性半導体記憶装置。
（付記４）該電位変化検出回路は、
該ノードに第１端が接続されるコンデンサと、
該コンデンサの第２端にゲートが接続されるトランジスタを含むことを特徴とする付記３記載の不揮発性半導体記憶装置。
（付記５）該制御回路は、該第１の書き込み動作を該複数のレベルに対して順次実行し、その後該第２の書き込み動作を該複数のレベルに対して順次実行し、該記憶された書き込み電圧は該複数のレベルごとに異なることを特徴とする付記１記載の不揮発性半導体記憶装置。
（付記６）該制御回路は、該第２の書き込み動作を実行しながら所定のタイミングにおける該書き込み電圧を更に記憶し、該１つのレベルを書き込み対象として該更に記憶された書き込み電圧に基づいて決定される電圧から開始して書き込み電圧を該第２のステップ電圧より小さい第３のステップ電圧づつ増加させて第３の書き込み動作を実行することを特徴とする付記１記載の不揮発性半導体記憶装置。
（付記７）該制御回路は、書き込み対象のメモリセルの少なくとも１つの閾値電圧が所定のベリファイ電圧を超えると該第１の書き込み動作を終了させることを特徴とする付記１記載の不揮発性半導体記憶装置。
（付記８）該制御回路は、該第２の書き込み動作を該複数のレベルの高い方から低い方に順次実行することを特徴とする特徴とする付記１記載の不揮発性半導体記憶装置。
（付記９）該制御回路は、書き込み対象のメモリセルの最初の１つが所定のベリファイ電圧を超える時点における書き込み電圧を基準として、該書き込み電圧を記憶することを特徴とする付記１記載の不揮発性半導体記憶装置。
（付記１０）異なる複数のレベルのデータを不揮発性メモリセルに書き込む方法であって、
該複数のレベルの１つのレベルを書き込み対象として書き込み電圧を第１のステップ電圧づつ増加させながら第１の書き込み動作を実行し、
該第１の書き込み動作を実行しながら所定のタイミングにおける該書き込み電圧を記憶し、
該第１の書き込み動作及び該書き込み電圧の記憶を該複数のレベルの各々に対して実行し、
ある１つのレベルを書き込み対象として該記憶された書き込み電圧に基づいて決定される電圧から開始して書き込み電圧を該第１のステップ電圧より小さい第２のステップ電圧づつ増加させて第２の書き込み動作を実行する
各段階を含むことを特徴とするデータ書き込み方法。
（付記１１）該第１の書き込み動作を該複数のレベルに対して順次実行し、その後該第２の書き込み動作を該複数のレベルに対して順次実行し、該記憶された書き込み電圧は該複数のレベルごとに異なることを特徴とする付記１０記載のデータ書き込み方法。
（付記１２）該第２の書き込み動作を実行しながら所定のタイミングにおける該書き込み電圧を更に記憶し、該１つのレベルを書き込み対象として該更に記憶された書き込み電圧に基づいて決定される電圧から開始して書き込み電圧を該第２のステップ電圧より小さい第３のステップ電圧づつ増加させて第３の書き込み動作を実行することを特徴とする付記１０記載のデータ書き込み方法。
（付記１３）該第２の書き込み動作を該複数のレベルの高い方から低い方に順次実行することを特徴とする付記１０記載のデータ書き込み方法。
【発明の効果】
本発明による不揮発性半導体記憶装置においては、まず大きなステップ電圧を用いて書き込み動作を実行することにより大まかな閾値分布を形成し、その後小さなステップ電圧を用いて書き込み動作を実行することにより閾値分布を所望の幅に整形することが可能となる。この際に大まかな閾値分布を形成した際の書き込み電圧を記憶しておくことで、小さなステップ電圧を用いてプログラムする際の書き込み開始電圧を適切な値に設定することが出来る。従って本発明においては、短時間で書き込み動作を完了し、且つ所望の幅の閾値分布を形成することが可能となる。
【図面の簡単な説明】
【図１】本発明による多値メモリセルへの書き込み動作の第１実施例を示すフローチャートである。
【図２】図１のフローチャートでメモリセルの書き込みを実行する際のビット分布を示す図である。
【図３】本発明による多値メモリセルへの書き込み動作の第２実施例を示すフローチャートである。
【図４】図３のフローチャートでメモリセルの書き込みを実行する際のビット分布を示す図である。
【図５】本発明による多値メモリセルへの書き込み動作の第３実施例を示すフローチャートである。
【図６】図５のフローチャートでメモリセルの書き込みを実行する際のビット分布を示す図である。
【図７】本発明による多値メモリセルへの書き込み動作の第４実施例を示すフローチャートである。
【図８】図７のフローチャートでメモリセルの書き込みを実行する際のビット分布を示す図である。
【図９】本発明を適用する不揮発性半導体記憶装置の全体構成を示すブロック図である。
【図１０】本発明に使用するページバッファ周辺の構成を示す図である。
【図１１】図１０の回路においてノードＮＶｐのＬＯＷへの変化を検出する動作を示すタイミング波形図である。
【符号の説明】
２０　不揮発性半導体記憶装置
２１　コントロール回路
２２　コマンドレジスタ
２３　Ｉ／Ｏコントロール回路
２４　アドレスレジスタ
２５　ステータスレジスタ
２６　メモリセルアレイ
２７　ローアドレスデコーダ
２８　ローアドレスバッファ
２９　コラムデコーダ
３０　データレジスタ
３１　センスアンプ
３２　コラムアドレスバッファ
３３　高電圧発生回路
３４　ロジックコントロール
３５　レディ／ビジーレジスタ
【図１】
2004094987.tif 000003
【図２】
2004094987.tif 000004
【図３】
2004094987.tif 000005
【図４】
2004094987.tif 000006
【図５】
2004094987.tif 000007
【図６】
2004094987.tif 000008
【図７】
2004094987.tif 000009
【図８】
2004094987.tif 000010
【図９】
2004094987.tif 000011
【図１０】
2004094987.tif 000012
【図１１】
2004094987.tif 000013