(57)【特許請求の範囲】
【請求項１】
ｎ値（ｎは、３以上の自然数）のデータを記憶できる複数の不揮発性半導体メモリセルと、
前記複数の不揮発性半導体メモリセルに対して書き込み電圧を同時に印加する書き込み動作と前記書き込み動作後に十分に書き込みが行われたか否かを確認する書き込みベリファイ動作を繰り返し行うデータ書き込み手段と、
１回の書き込み動作時に前記書き込み電圧を各不揮発性半導体メモリセルに与える時間を、各不揮発性半導体メモリセルに書き込むデータの値によって異ならしめる時間設定手段と、
を具備することを特徴とする不揮発性半導体記憶装置。
【請求項２】
前記複数の不揮発性半導体メモリセルのうち前記書き込みベリファイ動作で十分に書き込みが行われたことが確認されたメモリセルについては、前記確認が行われた後の前記書き込み動作で前記書き込み電圧が印加されないことを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項３】
前記複数の不揮発性半導体メモリセルの全てに対して、前記書き込みベリファイ動作で十分に書き込みが行われたことが確認された場合には、前記複数の不揮発性半導体メモリセルに対する前記書き込み動作を終了させることを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項４】
前記書き込み動作と前記書き込みベリファイ動作の繰り返し回数が所定の回数に達したときに、前記複数の不揮発性半導体メモリセルのうち十分に書き込みが行われていないメモリセルが１つでも存在する場合には、前記書き込み動作を終了させる制御回路をさらに具備することを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項５】
前記複数の不揮発性半導体メモリセルは、同一のワード線に接続されるものであることを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項６】
直列接続された複数の不揮発性半導体メモリから構成されるＮＡＮＤセルユニットを具備し、
前記データ書き込み手段は、前記ＮＡＮＤセルユニット内の選択された不揮発性半導体メモリセルに前記書き込み電圧を印加し、前記選択された不揮発性半導体メモリセルの隣に存在する不揮発性半導体メモリセルに第１の電圧を印加し、残りの不揮発性半導体メモリセルの制御ゲートに第２の電圧を印加することを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項７】
前記書き込み電圧は、第１及び第２の電圧よりも高く、前記第２の電圧は、前記第１の電圧よりも高いことを特徴とする請求項６記載の不揮発性半導体記憶装置。
【請求項８】
前記第１の電圧は、０Ｖであることを特徴とする請求項７記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、不揮発性半導体記憶装置に関し、特に、電気的書き込み可能なＥＥＰＲＯＭ、フラッシュメモリに関する。
【０００２】
【従来の技術】
フラッシュメモリのメモリセルの１つとして、半導体基板上に電荷蓄積層（浮遊ゲート）と制御ゲートが積層形成されたＭＯＳＦＥＴ構造を有するものが知られている。通常、浮遊ゲートに蓄えられた電荷量によって、データ“０”または“１”を記憶し１つのセルに１ビットのデータを記憶する。
【０００３】
これに対して、より高密度なフラッシュメモリを実現させるため、１つのセルに多ビット分のデータを記憶させる多値記憶方式も知られている。例えば、４値記憶方式では、データ“０”、“１”、“２”、“３”を１つのセルに記憶させるため、データに対応した４つの電荷量を浮遊ゲートに蓄える。
【０００４】
４値方式を例にデータの記憶状態の一例を説明する。
【０００５】
浮遊ゲートの電荷量が零の状態を中性状態とし、中性状態より正の電荷を蓄えた状態を消去状態とする。また、消去状態をデータ“０”に対応させる。例えば、基板に高電圧（〜２０Ｖ）を印加し、制御ゲートを０Ｖとすることで消去が行われる。しかし、セルのしきい値のバラツキ等により、印加電圧が高すぎて浮遊ゲートの電荷量が高か過ぎる正レベルの電荷量になることがある（これを、過消去と称する）。この過消去状態のセルは、通常の書き込みパルス電圧を印加しても、浮遊ゲートの電荷が所定の負のレベルにならず、書き込み、特に“０”データの書き込みが失敗するおそれがある。
【０００６】
中性状態より負の電荷を蓄えた状態をデータ“１”の状態とする。データ“２”の状態も中性状態より負の電荷を蓄えた状態であるが、負の電荷量がデータ“１”の状態の負の電荷量より多くされる。データ“３”の状態はさらに負の電荷量が多くされる。
【０００７】
例えば、書き込み動作中、基板、ソース、ドレインを０Ｖ、制御ゲートを高電圧（〜２０Ｖ）として、負の電荷を浮遊ゲートに蓄え、データ“１”、“２”、“３”を書き込む。また、書き込み動作中、制御ゲートを高電圧（〜２０Ｖ）、基板を０Ｖ、ソース、ドレイン、チャネルを正の電位として、浮遊ゲート中の電荷を保持し、データ“０”をメモリセルに記憶する。
【０００８】
これによって、４つの書き込み状態（“０”、“１”、“２”、“３”）がメモリセルにおいて実現される。
【０００９】
フラッシュメモリの中で、高集積度を実現するために、複数のメモリセルが直列に接続され、一端が第１の選択トランジスタを介してビット線に接続され、他端がもう１つの選択トランジスタを介して共通ソース線に接続されて、ＮＡＮＤ型メモリセルユニットを構成するものが知られている。
【００１０】
このＮＡＮＤ型セルユニットでは、“０”書き込み時に、ビット線を電源電圧ＶＣＣ（例えば３Ｖ）、第１の選択トランジスタのゲートをＶＣＣ、選択メモリセルの制御ゲートを２０Ｖ、選択されたメモリセルの両隣のメモリセルの制御ゲートを０Ｖ、残りの非選択メモリセルの制御ゲートを１１Ｖとする。
【００１１】
第１の選択トランジスタを介してＮＡＮＤ型メモリセルユニット内のメモリセルのチャネルに転送される電圧はＶＣＣ以下である。しかし、第１の選択トランジスタが非導通となって以降、メモリセルの制御ゲートとメモリセルのチャネルの静電容量結合によってチャネル電圧は上昇する。
【００１２】
これによって、選択されたメモリセルの両隣のメモリセルも非導通になる。例えば、結合比が５０％であれば、選択されたメモリセルのチャネル電位は、単純計算で１０Ｖとなる。また、非選択メモリセルのチャネル電位は、５．５Ｖになる。
【００１３】
非選択メモリセルのチャネル電位が５．５Ｖになれば、選択されたメモリセルの両隣のメモリセルのしきい値が−５．５Ｖ以上の場合、選択されたメモリセルの両隣のメモリセルは非導通になる。逆にいえば、−５．５Ｖ以上にデータ“０”の状態を制御しなければならない。
【００１４】
“１”、“２”、“３”書き込み時は、ビット線を０Ｖとする。書き込み後、メモリセルの状態を確認（書き込みベリファイ）するが、もし、書き込みが完全に行われてないメモリセルがあれば、その書き込み不完全のメモリセルについてのみ再書き込みを行う。
【００１５】
これによって、メモリセルのしきい値が精度よく制御される。全ての選択されたメモリセルがベリファイされれば、書き込みを終了する。１回の“１”、“２”、“３”書き込み時間は同じに設定される。このため、書き込み時間を浮遊ゲートに貯める電荷が最も少ない“１”書き込みに合せ、書き込み回数により全てのデータ“１”、“２”、“３”の書き込みを可能にする。
【００１６】
このような場合、先ず、“１”書き込みするメモリセルに“１”が書けて、次に、“２”書き込みするメモリセルに“２”が書けて、最後に、“３”書き込みするメモリセルに“３”が書ける。
【００１７】
また、フラッシュメモリの書き込み方法として、“１”、“２”、“３”書き込み時間を同じに、つまり、書き込み速度を等しくするように、ビット線電圧を書き込みデータに応じて変える方法がある。
【００１８】
しかし、この方法の場合、上述のようなＮＡＮＤ型メモリセルユニットでは、選択されたメモリセルの両隣のメモリセルのしきい値が０Ｖに近いため、制御ゲートが０Ｖであると、ビット線の０Ｖより大きい電圧を、選択されたメモリセルに転送することができない。
【００１９】
また、多値記憶するためには、２値記憶に比べ、より多くの量の電荷を浮遊ゲートに蓄える必要がある。しかし、浮遊ゲートに蓄えた電荷量が多いほど、浮遊ゲートから自己電界によって単位時間当たりに浮遊ゲートから抜ける電荷の量は増加する。よって、多値記憶システムでは、データ保持時間が２値記憶システムに比べて短くなる。
【００２０】
【発明が解決しようとする課題】
このように従来の多値記憶システムの不揮発性半導体記憶装置においては、“０”データ書き込み時の選択メモリセルのチャネル電位が、他のメモリセルのチャネル電圧と分離されているので、選択メモリセルのチャネル電圧は十分に上昇する。ところが、過消去などでメモリセルのしきい値が負の方向へ深くなりすぎると、選択されたメモリセルの両隣のメモリセルが非導通にならず、選択されたメモリセルのチャネル電位が十分に上昇せず、“０”データを正しく書き込めないという問題がある。過消去は、何回も消去を実行したり、消去電圧が高すぎると起こる。
【００２１】
また、“１”、“２”、“３”書き込み時に、１回の書き込み時間を示す書き込みパルスの長さが“１”、“２”、“３”書き込みにかかわらず全て等しいため、“１”、“２”、“３”書き込みの書き込み速度が等しくならない。即ち、１回の書き込み時間を“１”書き込みに合せ、“１”、“２”、“３”書き込みは、書き込み回数により制御しているため、小刻みに書き込みパルスを印加しなければならず、データ書き換えが遅くなるという問題がある。
【００２２】
また、データ保持時間が２値記憶システムに比べて短くなるという問題があった。
【００２３】
本発明は、上記事情を考慮してなされたもので、その目的とするところは、“０”データ書き込み時において、選択されたメモリセルに印加される電圧を十分に低くし、過消去があったとしても確実に“０”書き込みができる不揮発性半導体記憶装置を提供することである。
【００２４】
本発明の他の目的は、高速にメモリセルに多値レベルのデータを書き込むことができる不揮発性半導体記憶装置を提供することである。
【００２５】
本発明の別の目的は、データ保持時間が短くなることを補償し、高信頼性を実現できる多値記憶の不揮発性半導体メモリシステムを提供することである。
【００２６】
【課題を解決するための手段】
前記課題を解決し目的を達成するために、本発明は以下に示す手段を用いている。
【００２７】
（１）本発明の一態様による不揮発性半導体記憶装置は、ｎ値（ｎは、３以上の自然数）のデータを記憶できる複数の不揮発性半導体メモリセルと、前記複数の不揮発性半導体メモリセルに対して書き込み電圧を同時に印加する書き込み動作と前記書き込み動作後に十分に書き込みが行われたか否かを確認する書き込みベリファイ動作を繰り返し行うデータ書き込み手段と、１回の書き込み動作時に前記書き込み電圧を各不揮発性半導体メモリセルに与える時間を、各不揮発性半導体メモリセルに書き込むデータの値によって異ならしめる時間設定手段と、を具備するものである。
ことを特徴とする不揮発性半導体記憶装置。
（２）本発明の一態様による不揮発性半導体記憶装置は、上記（１）に記載した不揮発性半導体記憶装置であって、前記複数の不揮発性半導体メモリセルのうち前記書き込みベリファイ動作で十分に書き込みが行われたことが確認されたメモリセルについては、前記確認が行われた後の前記書き込み動作で前記書き込み電圧が印加されないものである。
（３）本発明の一態様による不揮発性半導体記憶装置は、上記（１）に記載した不揮発性半導体記憶装置であって、前記複数の不揮発性半導体メモリセルの全てに対して、前記書き込みベリファイ動作で十分に書き込みが行われたことが確認された場合には、前記複数の不揮発性半導体メモリセルに対する前記書き込み動作を終了させるものである。
（４）本発明の一態様による不揮発性半導体記憶装置は、上記（１）に記載した不揮発性半導体記憶装置であって、前記書き込み動作と前記書き込みベリファイ動作の繰り返し回数が所定の回数に達したときに、前記複数の不揮発性半導体メモリセルのうち十分に書き込みが行われていないメモリセルが１つでも存在する場合には、前記書き込み動作を終了させる制御回路をさらに具備するものである。
（５）本発明の一態様による不揮発性半導体記憶装置は、上記（１）に記載した不揮発性半導体記憶装置であって、前記複数の不揮発性半導体メモリセルは、同一のワード線に接続されるものである。
（６）本発明の一態様による不揮発性半導体記憶装置は、上記（１）に記載した不揮発性半導体記憶装置であって、直列接続された複数の不揮発性半導体メモリから構成されるＮＡＮＤセルユニットを具備し、前記データ書き込み手段は、前記ＮＡＮＤセルユニット内の選択された不揮発性半導体メモリセルに前記書き込み電圧を印加し、前記選択された不揮発性半導体メモリセルの隣に存在する不揮発性半導体メモリセルに第１の電圧を印加し、残りの不揮発性半導体メモリセルの制御ゲートに第２の電圧を印加するものである。
（７）本発明の一態様による不揮発性半導体記憶装置は、上記（６）に記載した不揮発性半導体記憶装置であって、前記書き込み電圧は、第１及び第２の電圧よりも高く、前記第２の電圧は、前記第１の電圧よりも高いものである。
（８）本発明の一態様による不揮発性半導体記憶装置は、上記（７）に記載した不揮発性半導体記憶装置であって、前記第１の電圧は、０Ｖであるものである。
【００４３】
上記構成の不揮発性半導体記憶装置では、書き込みデータが“１”か“２”か“３”かによって、１回の書き込みパルス長を制御する。これによって、“１”、“２”、“３”書き込みそれぞれの書き込み速度の差を補償でき、“１”書き込みにあわせて、小刻みに書き込みパルスを印加しなければならないということがなくなり、データの書き換えが高速に行える。
【００５６】
【発明の実施の形態】
（第１実施形態）
以下、図面を参照して本発明による不揮発性半導体記憶装置の第１の実施形態を説明する。
【００５７】
図１は、本発明の第１実施形態に関わる不揮発性半導体記憶装置、具体的には、４値記憶式ＮＡＮＤフラッシュメモリの構成を示している。
【００５８】
複数のビット線と複数のワード線と共通ソース線を含み、電気的にデータの書き換えが可能なメモリセルがマトリクス状に配置されたメモリセルアレイ１に対して、ビット線を制御するためのビット線制御回路２とワード線制御回路６が設けられる。
【００５９】
ビット線制御回路２は、ビット線を介してメモリセルアレイ１中のメモリセルのデータを読み出したり、ビット線を介してメモリセルアレイ１中のメモリセルの状態を検出したり、ビット線を介してメモリセルアレイ１中のメモリセルに書き込み制御電圧を印加して、メモリセルに対し書き込みを行う。
【００６０】
ビット線制御回路２は、複数のデータ記憶回路を含み、カラムデコーダ３によって選択されたデータ記憶回路によって読み出されたメモリセルのデータは、データ入出力バッファ４を介してデータ入出力端子５から外部へ出力される。また、外部からデータ入出力端子５に入力された書き込みデータは、データ入出力バッファ４を介して、カラムデコーダ３によって選択されたデータ記憶回路に初期的な制御データとして入力される。
【００６１】
ワード線制御回路６は、メモリセルアレイ１中のワード線を選択し、読み出しあるいは書き込みあるいは消去に必要な電圧を与える。
【００６２】
メモリセルアレイ１、ビット線制御回路２、カラムデコーダ３、データ入出力バッファ４、およびワード線制御回路６は、制御信号および制御電圧発生回路７によって制御される。制御信号および制御電圧発生回路７は、外部から制御信号入力端子８に入力される制御信号によって制御される。
【００６３】
図２は、図１のメモリセルアレイ１及びビット線制御回路２の構成を示している。
【００６４】
メモリセルＭが４個直列接続されたＮＡＮＤ型セルユニットの一端が選択トランジスタＳを介してビット線ＢＬに接続され、他端が選択トランジスタＳを介して共通ソース線ＳＲＣに接続される。メモリセルＭの制御ゲート電極はワード線ＷＬに接続され、２つの選択トランジスタＳはそれぞれ選択ゲート線ＳＧ１，ＳＧ２に接続される。
【００６５】
１本のワード線ＷＬを共有するメモリセルＭはページと言う単位を形成し、４ページで１ブロックを構成する。ここでは、２ブロック分が示されているが、任意の整数、例えば１０２４ブロックなどでもよい。ビット線ＢＬはＢＬ０〜ＢＬ４２２３の４，２２４本が示されているが、任意の整数、例えば２１１２本などでもよい。
【００６６】
ビット線制御回路２は、複数のデータ記憶回路１０を含む。ここでは、２本のビット線ＢＬに対して１つ設けられているが、任意の整数本、例えば１本や４本や６本や９本などでもよい。
【００６７】
カラム選択信号ＣＳＬは、カラムデコーダ３の出力信号であり、例えば、ビット線ＢＬ０とＢＬ１に接続されるデータ記憶回路１０は、カラム選択信号ＣＳＬ０，ＣＳＬ１によって選択され、メモリセルのデータはデータ入出力バッファ４に出力される。
【００６８】
また、例えば、カラム選択信号ＣＳＬ２，ＣＬＳ３によって選択されたビット線ＢＬ２，ＢＬ３に接続されるデータ記憶回路１０には、データ入出力バッファ４から制御データが初期的に転送される。
【００６９】
データ記憶回路１０は、読み出し時、２本のビット線のうちいずれか一方のビット線に接続されるメモリセルのデータを読み出す。また、データ記憶回路１０は、書き込み時も、２本のビット線のうちいずれか一方のビット線に接続されるメモリセルに対し、制御データに従って書き込み制御電圧を印加する。
【００７０】
また、データ記憶回路１０は、書き込み状態を検出（ベリファイ）する際にも、２本のビット線のうちいずれか一方のビット線に接続されるメモリセルの書き込み状態を検出する。
【００７１】
図３は、図２に示されたメモリセルＭと選択トランジスタＳの構造を示している。
【００７２】
ｐ型の半導体基板１１（あるいはｐ型ウェル）の表面にｎ型の拡散層１２が形成され、１方がドレイン、もう１方がソースとなる。
【００７３】
メモリセルＭでは、半導体基板１１（あるいはｐ型ウェル）上に絶縁膜１３を介して浮遊ゲート１４が形成され、さらにその上に絶縁膜１５を介してワード線ＷＬとなる制御ゲート１６が形成される。
【００７４】
選択トランジスタＳでは、半導体基板１１（あるいはｐ型ウェル）上に絶縁膜１７を介して選択ゲート線ＳＧとなる選択ゲート１８が形成される。
【００７５】
メモリセルＭの制御ゲート１６にしきい値以上の電圧を印加すると、浮遊ゲート１４下にチャネルが形成される。
【００７６】
例えば、制御ゲート１６と浮遊ゲート１４間の容量が１ｆＦ、浮遊ゲート１４とチャネルの容量が１ｆＦ、チャネルと基板１１間の容量が０．２５ｆＦ、ｎ型拡散層１２と基板１１間の容量が計０．２５ｆＦとすると、制御ゲート１６とチャネル（またはｎ型拡散層１２）との容量結合比は、５０％である。チャネルおよびｎ型拡散層１２が浮遊状態の時、制御ゲート１６が１Ｖ上昇すると、チャネルあるいはｎ型拡散層１２の電位は、０．５Ｖ上昇する。
【００７７】
図４は、図２に示されるＮＡＮＤ型セルユニットと２つの選択トランジスタの構造を示している。
【００７８】
メモリセルＭは、４つが直列接続され、ＮＡＮＤセル列を構成する。ＮＡＮＤセル列の一端は、選択トランジスタＳを介して共通ソース線ＳＲＣに接続され、その他端は、選択トランジスタＳを介してビット線ＢＬに接続される。
【００７９】
消去は、基板の電圧Ｖｓｕｂを消去電圧２０Ｖにする。また、選択ゲート線ＳＧ１，ＳＧ２、ソース線ＳＲＣ、ビット線ＢＬも２０Ｖにする。消去するブロックのワード線ＷＬ１〜ＷＬ４を０Ｖにすると、電子が浮遊ゲートから基板へ放出され、しきい値が負になる（データ“０”の状態）。消去しないブロックのワード線ＷＬ１〜ＷＬ４を２０Ｖにすると、そのブロックのメモリセルでは、電子が浮遊ゲートから基板へ放出されない。
【００８０】
選択されたブロックの選択されたワード線を例えばＷＬ２とすると、書き込み時は、選択されたワード線ＷＬ２に書き込み電圧２０Ｖが印加される。選択されたワード線ＷＬ２の両隣の非選択ワード線ＷＬ１、ＷＬ３には、０Ｖが与えられる。残りの非選択ワード線ＷＬ４には１１Ｖが与えられる。
【００８１】
また、選択ゲート線ＳＧ１には、電源電圧ＶＣＣが与えられる。選択ゲート線ＳＧ２は０Ｖである。非選択ブロックの全ワード線ＷＬと全選択ゲート線ＳＧは、０Ｖである。書き込みを行うメモリセルは、ワード線ＷＬ４に繋がるメモリセルからワード線ＷＬ１に繋がるメモリセルへ向かって順番に選択される。
【００８２】
図４の例では、４つのメモリセルでＮＡＮＤ型メモリセルユニットを構成しているが、例えば、８個や１６個のメモリセルから構成してもよい。１６個のメモリセルにより１つのユニットを構成する場合、書き込み時に、例えば、ビット線側から４つ目のメモリセルが選択されると、その制御ゲートに繋がるワード線には、書き込み電圧２０Ｖが与えられる。
【００８３】
選択されたメモリセルの両隣に存在するビット線側から３番目と５番目のメモリセルの制御ゲートに繋がる２本のワード線には、０Ｖが与えられる。残りの１３個のメモリセルの制御ゲートに繋がる１３本のワード線には、１１Ｖが与えられる。
【００８４】
また、書き込み時に、ビット線側から２つ目のメモリセルが選択されると、その制御ゲートに繋がるワード線に書き込み電圧２０Ｖが与えられる。選択されたメモリセルの両隣に存在するビット線側から１番目と３番目のメモリセルの制御ゲートに繋がる２本のワード線には、０Ｖが与えられる。残りの１３個のメモリセルの制御ゲートに繋がる１３本のワード線には、１１Ｖが与えられる。
【００８５】
また、書き込み時に、ビット線側から１つ目のメモリセルが選択されると、その制御ゲートに繋がるワード線に書き込み電圧２０Ｖが与えられる。選択されたメモリセルの隣に存在するビット線側から２番目のメモリセルの制御ゲートに繋がるワード線には、０Ｖが与えられる。残りの１４個のメモリセルの制御ゲートに繋がる１４本のワード線には、１１Ｖが与えられる。
【００８６】
書き込みは、選択ブロックについてメモリセルのデータの一括消去を行い、各メモリセルがデータ“０”を記憶している状態に揃えた後に例えばページ単位で行われる。
【００８７】
例えば、４値記憶の場合、データ“１”、“２”、“３”を書き込むときは、ビット線ＢＬを０Ｖの書き込み制御電圧にする。メモリセルは、ワード線ＷＬ４に繋がるものからワード線ＷＬ１に繋がるものへ順番に選択されるため、選択されたメモリセルよりもビット線側に存在するメモリセルは、常に消去状態にあることになる。
【００８８】
よって、選択されたメモリセルよりもビット線側に存在するメモリセルのワード線が０Ｖに設定されていても、ビット線の書き込み制御電圧（０Ｖ）は、選択されたメモリセルに転送される。
【００８９】
これによって、選択メモリセルでは、基板から浮遊ゲートへ電子が移動し、選択メモリセルのしきい値が正になる。
【００９０】
また、データ“０”を書き込む場合は、ビット線ＢＬを電源電圧ＶＣＣの書き込み制御電圧にする。選択ゲートＳＧ１が電源電圧ＶＣＣであるため、“０”書き込み時はビット線側の選択ゲートＳが非導通になり、各メモリセルのチャネルとｎ型拡散層１２は浮遊状態となる。
【００９１】
その結果、ワード線に書き込み電圧２０Ｖが与えられた選択メモリセルのチャネルの電位及びワード線に１１Ｖが与えられた非選択メモリセルのチャネルの電位は、それぞれ上昇する。そして、選択されたメモリセルの両隣に存在するメモリセルは、ワード線に０Ｖが与えられているため、チャネルの電位が所定値になると、非導通となる。
【００９２】
選択されたメモリセルのチャネル電位は、容量結合比が５０％の場合、書き込み電圧２０Ｖによって約１０Ｖまで上昇する。この場合、選択されたメモリセルの制御ゲートとチャネルの電位差が小さいため、選択メモリセルの浮遊ゲートには電子が注入されず、データ“０”書き込みが行える。
【００９３】
但し、選択されたメモリセルの両隣のメモリセルのしきい値が過度に負の方に深いと、書き込み時に、その制御ゲートに０Ｖを与えても非導通にならない。このため、後に詳しく説明するように、メモリセルのデータを一括消去（選択ブロックのみ）した後、いわゆる事前書き込みを行って、各メモリセルのしきい値を制御している。
【００９４】
また、データ“１”、“２”、“３”を書くときのビット線ＢＬの書き込み制御電圧は０Ｖであるが、後に詳しく説明するように、その０Ｖの書き込み制御電圧が印加される時間をデータに応じて調整する。
【００９５】
例えば、データ“１”書き込み時は、データ、“２”、“３”書き込み時よりも０Ｖの書き込み制御電圧がビット線に印加される時間を短くする。これは、データ“１”を記憶させるためにメモリセルＭの浮遊ゲートに注入する電子量は、データ、“２”、“３”を記憶させるために注入する電子より少なくてよいためである。
【００９６】
さらに、データ“１”、“２”、“３”をそれぞれ書き込むために、書き込みデータに応じてビット線に０Ｖの書き込み制御電圧を印加する時間を異ならしめてもよい。具体的には、データ“１”、“２”、“３”書き込みのための書き込み制御電圧の印加時間は、それぞれ１μｓｅｃ、５μｓｅｃ、２５μｓｅｃとなる。
【００９７】
例えば、４値記憶の場合、データ“０”に対応するメモリセルのしきい値は、０Ｖ以下に、データ“１”に対応するメモリセルのしきい値は、０．３Ｖ〜０．７Ｖの範囲に、データ“２”に対応するメモリセルのしきい値は、１．５Ｖ〜１．９Ｖの範囲に、データ“３”に対応するメモリセルのしきい値は、２．７Ｖ〜３．１Ｖの範囲に設定される。
【００９８】
読み出し時は、例えば、ワード線ＷＬ２に繋がるメモリセルが選択されているとすると、選択されたブロックの選択ワード線ＷＬ２をＶｃｇにする。選択されたブロックの非選択ワード線ＷＬ１、ＷＬ３とＷＬ４は、例えば、Ｖｒｅａｄ＝４．５Ｖにする。選択されたブロックの選択ゲート線ＳＧ１とＳＧ２も、Ｖｒｅａｄ＝４．５Ｖにする。非選択ブロックの全ワード線ＷＬ及び選択ゲート線ＳＧ１は、０Ｖである。ソース線ＳＲＣは、寄生抵抗を介して０Ｖに接地される。
【００９９】
共通ソース線の電位が寄生抵抗によって上昇しなければ、
（１）  Ｖｃｇを０Ｖにして、選択メモリセルがデータ“１”か“２”か“３”を記憶していれば、１Ｖに充電された浮遊状態のビット線の電圧は、１Ｖのままである。一方、選択メモリセルがデータ“０”を記憶していれば、１Ｖに充電された浮遊状態のビット線の電圧は、０．５Ｖに下がる。
【０１００】
（２）  Ｖｃｇを１．１Ｖにして、選択メモリセルがデータ“２”か“３”を記憶していれば、１Ｖに充電された浮遊状態のビット線の電圧は、１Ｖのままである。選択メモリセルがデータ“０”か“１”を記憶していれば、１Ｖに充電された浮遊状態のビット線の電圧は、０．５Ｖに下がる。
【０１０１】
（３）  Ｖｃｇを２．３Ｖにして、選択メモリセルがデータ“３”を記憶していれば、１Ｖに充電された浮遊状態のビット線の電圧は、１Ｖのままである。選択メモリセルがデータ“０”か“１”か“２”を記憶していれば、１Ｖに充電された浮遊状態のビット線の電圧は、０．５Ｖに下がる。
【０１０２】
以上の（１）〜（３）より、メモリセルＭに記憶されているデータを判定することができる。
【０１０３】
図５は、図２のデータ記憶回路１０の具体的な構成例を示している。
【０１０４】
クロック同期式インバータＣＩ１，ＣＩ２及びｎチャネルＭＯＳトランジスタＱｎ３，Ｑｎ４，Ｑｎ５で第１のサブデータ回路を構成する。また、クロック同期式インバータＣＩ３，ＣＩ４及びｎチャネルＭＯＳトランジスタのＱｎ１０，Ｑｎ１１，Ｑｎ１２で第２のサブデータ回路を構成する。
【０１０５】
第１及び第２のサブデータ回路は、それぞれ書き込み時に、第１及び第２のサブデータを記憶する。第１及び第２のサブデータ回路は、それぞれ読み出し時に、第１及び第２の読み出しサブデータを記憶する。
【０１０６】
第１のサブデータ回路内のノードＮａｉが“Ｈ”レベルである状態は、第１のサブデータ回路が“１”の第１の読み出しサブデータあるいは“１”の第１のサブデータを記憶している状態である。また、第２のサブデータ回路内のノードＮａｉ＋１が“Ｈ”レベルである状態は、第２のサブデータ回路が“１”の第２の読み出しサブデータあるいは“１”の第２のサブデータを記憶している状態である。
【０１０７】
第１のサブデータ回路内のノードＮａｉが“Ｌ”レベルの状態は、第１のサブデータ回路が“０”の第１の読み出しサブデータあるいは“０”の第１のサブデータを記憶している状態である。第２のサブデータ回路内のノードＮａｉ＋１が“Ｌ”レベルの状態は、第２のサブデータ回路が“０”の第２の読み出しサブデータあるいは“０”の第２のサブデータを記憶している状態である。
【０１０８】
ｐチャネルＭＯＳトランジスタＱｐ１及びＱｐ２は、信号ＰＲＳＴＢ１及びＰＲＳＴＢ２が“Ｌ”となって第１及び第２のサブデータ回路に“０”のサブデータを設定するものである。
【０１０９】
ｎチャネルＭＯＳトランジスタＱｎ１，Ｑｎ８は、第１及び第２のサブデータ回路とそれぞれ入出力線ＩＯＬ、ＩＯＵを電気的に接続するためのものである。それぞれのゲート電極には、カラムデコーダ３からの出力ＣＳＬｉ及びＣＳＬｉ＋１がそれぞれ与えられる。
【０１１０】
例えば、ＣＳＬｉが“Ｈ”になると、ビット線ＢＬｉとＢＬｉ＋１に設けられたデータ記憶回路１０の第１のサブデータ回路とデータ入出力線ＩＯＬが電気的に接続される。データ入出力線ＩＯＬ、ＩＯＵは、データ入出力バッファ４に接続されていて、この第１あるいは第２のサブデータ回路にサブデータを設定することができる。あるいは、この第１あるいは第２のサブデータ回路の読み出しサブデータをデータ入出力バッファ４に出力することができる。
【０１１１】
ｎチャネルＭＯＳトランジスタＱｎ２及びＱｎ９は、第１のサブデータ回路及び第２のサブデータ回路のサブデータが全て“０”か否かを検出する。データ記憶回路１０は、この例では２１１２個あるので、２１１２個の第１のサブデータと２１１２個の第２のサブデータが全て“０”であれば、共通信号線ＰＴと接地線が非導通となって検出される。
【０１１２】
ｎチャネルＭＯＳトランジスタＱｎ６，Ｑｎ７は、第１のサブデータ回路に記憶されているサブデータに応じて、ビット線ＢＬの電圧を下げるためのものである。また、ｎチャネルＭＯＳトランジスタＱｎ１３，Ｑｎ１４は、第２のサブデータ回路に記憶されているサブデータに応じて、ビット線ＢＬの電圧を下げるためのものである。ｎチャネルＭＯＳトランジスタＱｎ１５は、ビット線ＢＬを充電するためのものである。
【０１１３】
ｎチャネルＭＯＳトランジスタＱｎ１６，Ｑｎ１８は、第１及び第２のサブデータ回路とビット線ＢＬｉあるいはＢＬｉ＋１の電気的接続を制御する。信号ＢＬＣ１が“Ｈ”でＢＬＣ２が“Ｌ”であれば、第１及び第２のサブデータ回路とビット線ＢＬｉが電気的に接続される。
【０１１４】
信号ＢＬＣ１が“Ｌ”でＢＬＣ２が“Ｈ”であれば、第１及び第２のサブデータ回路とビット線ＢＬｉ＋１が電気的に接続される。ｎチャネルＭＯＳトランジスタＱｎ１７及びＱｎ１９は、ビット線ＢＬｉと電圧ＶＢＬ１の電気的接続、ビット線ＢＬｉ＋１と電圧ＢＬ２の電気的接続を制御する。
【０１１５】
信号ＰＲＥ１が“Ｈ”であれば、ビット線ＢＬｉと電圧ＶＢＬ１が電気的に接続される。信号ＰＲＥ２が“Ｈ”であれば、ビット線ＢＬｉ＋１と電圧ＶＢＬ２が電気的に接続される。
【０１１６】
ビット線ＢＬｉあるいはビット線ＢＬｉ＋１を介してメモリセルＭのデータあるいは書き込み状態を示す信号が転送される。第１のサブデータ回路ではクロック同期式インバータＣＩ１が、第２のサブデータ回路ではクロック同期式インバータＣＩ３が、ビット線ＢＬの信号の論理レベルをセンスするセンスアンプとしても働く。
【０１１７】
クロック同期式インバータＣＩの具体的な構成は、図６に示されている。
【０１１８】
ｎチャネルＭＯＳトランジスタＱｎ２０とｐチャネルＭＯＳトランジスタＱｐ４で構成されるインバータ回路の入力端子がＩＮで出力端子ＯＵＴである。このインバータ回路を信号ＣＬＯＣＫとその反転信号ＣＬＯＣＫＢによって活性化したり非活性化するためｎチャネルＭＯＳトランジスタＱｎ２１とｐチャネルＭＯＳトランジスタＱｐ３が設けられている。信号ＣＬＯＣＫが“Ｈ”、ＣＬＯＣＫＢが“Ｌ”で活性化され、信号ＣＬＯＣＫが“Ｌ”、ＣＬＯＣＫＢが“Ｈ”で非活性化される。
【０１１９】
信号ＳＥＮ１、ＬＡＴ１、ＳＥＮ２、ＬＡＴ２、ＰＲＯ１、ＰＲＯ２、ＢＬＣ１、ＢＬＣ２、ＰＲＥ１、ＰＲＥ２、ＶＲＦＹ１、ＶＲＦＹ２、ＶＲＦＹ３、ＰＲＯ１０、ＰＲＳＴＢ１、ＰＲＳＴＢ２、ＢＩＡＳ、ＶＢＬ１、ＶＢＬ２、ＶＲＥＧは、制御信号及び制御電圧発生回路７の出力信号で、図２にみられるデータ記憶回路１０の全てに共通である。信号ＰＴも制御信号及び制御電圧発生回路７に入力される。電圧ＶＣＣは電源電圧で例えば３Ｖである。
【０１２０】
第１及び第２のサブデータ回路は、“０”あるいは“１”のサブデータを記憶し、各々、ビット線信号の“Ｈ”レベルに応答して記憶されている“１”のサブデータを“０”のサブデータに変更し、“０”のサブデータを保持するよう構成されている。
【０１２１】
図５の回路の動作を説明する。信号ＰＲＯ１あるいはＰＲＯ２が“Ｈ”となってビット線ＢＬの電圧レベルがクロック同期式インバータＣＩ１あるいはＣＩ３でセンスされる前に、第１あるいは第２のサブデータに応じて、ビット線ＢＬの電圧レベルがｎチャネルＭＯＳトランジスタＱｎ４、５あるいはＱｎ１１、１２によって調整される。
【０１２２】
第１あるいは第２のサブデータが“０”の場合のみ、ビット線ＢＬの電圧レベルは“Ｈ”にされる。信号ＰＲＯ１あるいはＰＲＯ２が“Ｈ”となって、このときビット線の“Ｈ”レベルがクロック同期式インバータＣＩ１あるいはＣＩ３の入力端子に転送されると、ノードＮａｉあるいはＮａｉ＋１が“Ｌ”レベルにされる。
【０１２３】
さらに、クロック同期式インバータＣＩ２あるいはＣＩ４によって、“０”のサブデータが記憶される。よって、もともと記憶されている“０”のサブデータは変更されない。もともと記憶されているサブデータが“１”の場合は、ビット線ＢＬのレベルが“Ｈ”の時“０”のサブデータに変更され記憶され、ビット線ＢＬのレベルが“Ｌ”の時“１”のサブデータを保持する。
【０１２４】
なお、データ記憶回路１０の具体的な構成は図５に示した例に限定されず、種々様々な構成により実現できる。
【０１２５】
図７は、ワード線制御回路６の具体的な構成の一例を示している。なお、図２に示されるブロックごとに、図７に示される回路が設けられることになる。
【０１２６】
信号Ｐｉ（ｉ＝０〜Ｎｐ）、Ｑｉ（ｉ＝０〜Ｎｑ）、Ｒｉ（ｉ＝０〜Ｎｒ）は、ブロックアドレス信号である。Ｐｉのうち選択された１つだけがＶＣＣとなる。Ｑｉのうち選択された１つだけがＶＣＣとなる。Ｒｉのうち選択された１つだけがＶＣＣとなる。Ｎｐ＝７、Ｎｑ＝７、Ｎｒ＝１５で、Ｎｐ×Ｎｑ×Ｎｒ＝１０２４ブロックが選択可能である。
【０１２７】
ブロックに対応する信号Ｐｉ、Ｑｉ、Ｒｉの組み合わせが全て“Ｈ”になると、そのブロックは選択される。信号Ｐｉは、ｎチャネルＭＯＳトランジスタＱｎ２５とｐチャネルＭＯＳトランジスタＱｐ５に入力される。信号Ｑｉは、ｎチャネルＭＯＳトランジスタＱｎ２６とｐチャネルＭＯＳトランジスタＱｐ６に入力される。
【０１２８】
信号Ｒｉは、ｎチャネルＭＯＳトランジスタＱｎ２７とｐチャネルＭＯＳトランジスタＱｐ７に入力される。信号Ｐｉ、Ｑｉ、Ｒｉの組み合わせが全て“Ｈ”になると、インバータＩ２の入力が“Ｌ”となってこのブロックは選択される。このブロックが不良の場合、フューズＦ１は切断される。
【０１２９】
フューズＦ１が切断されると、信号Ｐｉ、Ｑｉ、Ｒｉの組み合わせが全て“Ｈ”になっても、インバータＩ２の入力は“Ｈ”のままである。インバータＩ２とｐチャネルＭＯＳトランジスタＱｐ８で、インバータＩ２の入力は“Ｈ”に固定されている。
【０１３０】
このブロックが選択されると、ディプレッションタイプｎチャネルＭＯＳトランジスタＱｎｄ１を介して、ｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートが“Ｈ”になる。また、信号ＳＧＤ１、ＷＬＤ１〜４、ＳＧＤ２がそれぞれ選択ゲート線ＳＧ１、ワード線ＷＬ１〜ＷＬ４、選択ゲート線ＳＧ２に転送される。
【０１３１】
このブロックが選択されてない場合、信号ＷＬＧＮＤＢが“Ｌ”であれば、ＮＯＲ論理回路Ｇ２の出力が“Ｈ”となり、ｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４が導通して、選択ゲート線ＳＧ１とワード線ＷＬ１〜ＷＬ４は接地される。
【０１３２】
ｎチャネルＭＯＳトランジスタＱｎ２２〜２４、キャパシタＣ１、Ｃ２、インバータＩ１、ＮＡＮＤ論理回路Ｇ１は、電源電圧ＶＣＣより高い電圧ＶＰＰＲＷを、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートに転送するための回路である。
【０１３３】
信号ＯＳＣは、一定の周期で“Ｌ”と“Ｈ”となる信号である。電圧ＶＰＰＲＷを転送する場合、信号ＢＷＬＨＢを０Ｖにする。なぜなら、ディプレッションタイプｎチャネルＭＯＳトランジスタＱｎｄ１は、そのゲートが電源電圧ＶＣＣのとき、ドレインからソースへ電源電圧ＶＣＣを転送できるようにされていて、そのゲートが０Ｖのとき、ドレインからソースへ電源電圧ＶＣＣを転送できないようにされているからである。
【０１３４】
信号ＯＳＣ、ＢＷＬＨＢ、ＷＬＧＮＤＢ、ＳＧＤ１、ＷＬＤ１〜４、ＳＧＤ２、ＶＰＰＲＷは、制御信号及び制御電圧発生回路７の出力信号で、各ブロックのワード線制御回路６全てに共通である。
【０１３５】
図８は、メモリセルに記憶されている４値データの読み出し動作を示す。
【０１３６】
ここでは、ビット線ＢＬ０、ＢＬ２、…、ＢＬｉ、…、ＢＬ４２２２が選択され（代表としてＢＬｉを示す）、ワード線ＷＬ２が選択されている場合を示す。また、信号ＶＢＬ１，ＶＢＬ２の電圧は０Ｖ、信号ＢＬＣ２の電圧は０Ｖ、信号ＰＲＥ２の電圧はＶＣＣ、ビット線ＢＬｉ＋１の電圧は０Ｖ、信号ＶＲＦＹ１の電圧は０Ｖ、信号ＶＲＦＹ３の電圧は０Ｖ、信号ＰＲＯ１０の電圧は０Ｖ、信号ＣＳＬｉ，ＣＳＬｉ＋１の電圧は０Ｖ、信号ＶＲＥＧの電圧は０Ｖのままなので、図８への表示を省略している。
【０１３７】
まず、選択されたブロックの選択ゲート線ＳＧ１が４．５Ｖになる。同時に、信号ＰＲＥ１がＶＣＣから０Ｖ、ＢＬＣ１が０Ｖから７Ｖとなってビット線ＢＬｉが選択される。信号ＢＩＡＳが０Ｖから１．８Ｖとなってビット線ＢＬｉが０．８Ｖに充電される。
【０１３８】
ｎチャネルＭＯＳトランジスタＱｎのしきい値は、断らない限り１Ｖとする。信号ＢＩＡＳが０Ｖとなってビット線ＢＬｉの充電は終了する。続いて、選択されたブロックの選択ゲート線ＳＧ２及び非選択ワード線ＷＬ１、ＷＬ３、ＷＬ４が０Ｖから４．５Ｖにされ、選択ワード線ＷＬ２が０Ｖから２．３Ｖにされる。
【０１３９】
なお、表１は、メモリセルＭに記憶されているデータと、そのメモリセルのしきい値の関係を示している。
【０１４０】
【表１】
0004157189.tif 000002
【０１４１】
選択ワード線ＷＬ２が２．３Ｖになると、メモリセルが“３”データを記憶している場合のみビット線ＢＬｉは、０．８Ｖのままである。それ以外の場合は、ビット線ＢＬｉは、０．５Ｖ以下となる。一定期間経った後、選択ゲート線ＳＧ２及び非選択ワード線ＷＬ１〜ＷＬ４が０．０Ｖにされる。
【０１４２】
選択ゲート線ＳＧ２が０Ｖにリセットされた後、信号ＳＥＮ２、ＬＡＴ２をＶＣＣから０Ｖにする。信号ＰＲＳＴＢ２をＶＣＣから０Ｖにすると、ノードＮｂｉ＋１がＶＣＣとなる。信号ＰＲＳＴＢ２をＶＣＣに戻した後、信号ＰＲＯ２を０Ｖから１．６Ｖにする。
【０１４３】
メモリセルが“３”データを記憶している場合、ビット線ＢＬｉは０．８Ｖをを維持しているので、ｎチャネルＭＯＳトランジスタＱｎ１０は、非導通で、ノードＮｂｉ＋１は、ＶＣＣを維持する。
【０１４４】
メモリセルが“３”以外のデータを記憶している場合、ビット線ＢＬｉは、０．５Ｖ以下で、ｎチャネルＭＯＳトランジスタＱｎ１０は、導通し、ノードＮｂｉ＋１の電位は、電源電圧ＶＣＣから下がる。
【０１４５】
例えば、１本のビット線ＢＬの容量が５ｐＦで、ノードＮｂｉ＋１の寄生容量が０．１ｐＦとすると、ＶＣＣ＝３Ｖのとき、ノードＮｂｉ＋１は、約０．５５Ｖ以下に下がる。
【０１４６】
信号ＳＥＮ２がＶＣＣに戻りクロック同期式インバータＣＩ３が活性化され、ノードＮｂｉ＋１の電圧がセンスされる。信号ＬＡＴ２がＶＣＣに戻ると、クロック同期式インバータＣＩ４が活性化され、センスされた信号の論理レベルが第２のサブデータ回路にラッチされる。
【０１４７】
再び、信号ＰＲＯ２が０Ｖとなって、ビット線ＢＬｉとノードＮｂｉ＋１が切り離された後、信号ＰＲＥ１がＶＣＣに戻って、ビット線ＢＬｉは、０Ｖにリセットされ、メモリセルＭのしきい値が２．３Ｖ以上かどうかを検出する動作が終わる。
【０１４８】
メモリセルが“３”データを記憶している場合のみ、第２のサブデータ回路の第２の読み出しサブデータは“０”となる。それ以外の場合は、第２の読み出しサブデータは“１”である。
【０１４９】
次に、メモリセルＭのしきい値が０．０Ｖ以上かどうかを検出する動作に入る。信号ＰＲＥ１がＶＣＣから０Ｖにされ、信号ＢＩＡＳが０Ｖから１．８Ｖとなってビット線ＢＬｉが０．８Ｖに充電される。信号ＢＩＡＳが０Ｖとなってビット線ＢＬｉの充電は終了する。
【０１５０】
続いて、選択されたブロックの選択ゲート線ＳＧ２及び非選択ワード線ＷＬ１，ＷＬ３，ＷＬ４が、０Ｖから４．５Ｖにされる。同時に、信号ＶＲＦＹ２が０ＶからＶＣＣにされ、第２のサブデータ回路の読み出しサブデータが“０”の場合（すなわちメモリセルＭが“３”のデータを記憶しているとき）、ｎチャネルＭＯＳトランジスタＱｎ１２が導通し、ビット線ＢＬｉの電位は０Ｖに下がる。
【０１５１】
選択ワード線ＷＬ２が０．０Ｖのままなので、メモリセルが“１”あるいは“２”のデータを記憶している場合は、ビット線ＢＬｉは、０．８Ｖのままである。メモリセルが“０”あるいは“３”のデータを記憶している場合は、ビット線ＢＬｉは、０．５Ｖ以下となる。
【０１５２】
一定期間経った後、選択ゲート線ＳＧ２及び非選択ワード線ＷＬ１，ＷＬ３，ＷＬ４が０．０Ｖにされる。また、信号ＶＲＦＹ２も、０Ｖに戻される。
【０１５３】
選択ゲート線ＳＧ２が０Ｖにリセットされた後、信号ＳＥＮ１、ＬＡＴ１をＶＣＣから０Ｖにする。信号ＰＲＳＴＢ１をＶＣＣから０Ｖにすると、ノードＮｂｉがＶＣＣとなる。信号ＰＲＳＴＢ１をＶＣＣに戻した後、信号ＰＲＯ１が０Ｖから１．６Ｖにする。
【０１５４】
メモリセルが“１”あるいは“２”データを記憶している場合、ビット線ＢＬｉは、０．８Ｖを維持しているので、ｎチャネルＭＯＳトランジスタＱｎ３は非導通で、ノードＮｂｉはＶＣＣを維持する。
【０１５５】
メモリセルが“０”あるいは“３”のデータを記憶している場合、ビット線ＢＬｉは、０．５Ｖ以下で、ｎチャネルＭＯＳトランジスタＱｎ３は、導通し、ノードＮｂｉの電位は、電源電圧ＶＣＣから下がる。
【０１５６】
例えば、１本のビット線ＢＬの容量が５ｐＦで、ノードＮｂｉの寄生容量が０．１ｐＦとすると、ＶＣＣ＝３Ｖのとき、ノードＮｂｉは、約０．５５Ｖ以下に下がる。
【０１５７】
信号ＳＥＮ１がＶＣＣに戻りクロック同期式インバータＣＩ１が活性化され、ノードＮｂｉの電圧がセンスされる。信号ＬＡＴ１がＶＣＣに戻るとクロック同期式インバータＣＩ２が活性化され、センスされた信号の論理レベルが第１のサブデータ回路にラッチされる。
【０１５８】
再び、信号ＰＲＯ１が０Ｖとなってビット線ＢＬｉとＮｂｉが切り離された後、信号ＰＲＥ１がＶＣＣに戻って、ビット線ＢＬｉは０Ｖにリセットされ、メモリセルＭのしきい値が０．０Ｖ以上かどうかを検出する動作が終わる。
【０１５９】
メモリセルが“１”あるいは“２”データを記憶している場合、第１のサブデータ回路の第１の読み出しサブデータは“０”となる。メモリセルが“０”あるいは“３”データを記憶している場合は、第１の読み出しサブデータは“１”である。
【０１６０】
次に、メモリセルＭのしきい値が１．１Ｖ以上かどうかを検出する動作に入る。信号ＰＲＥ１がＶＣＣから０Ｖにされ、信号ＢＩＡＳが０Ｖから１．８Ｖとなってビット線ＢＬｉが０．８Ｖに充電される。信号ＢＩＡＳが０Ｖとなってビット線ＢＬｉの充電は終了する。
【０１６１】
続いて、選択されたブロックの選択ゲート線ＳＧ２及び非選択ワード線ＷＬ１，ＷＬ３，ＷＬ４が０Ｖから４．５Ｖにされ、選択ワード線ＷＬ２が０Ｖから１．１Ｖにされる。
【０１６２】
選択ワード線ＷＬ２が１．１Ｖになると、メモリセルが“２”あるいは“３”データを記憶している場合、ビット線ＢＬｉは０．８Ｖのままである。メモリセルが“０”あるいは“１”データを記憶している場合、ビット線ＢＬｉは０．５Ｖ以下となる。一定期間経った後、選択ゲート線ＳＧ２及び非選択ワード線ＷＬ１〜ＷＬ４が０．０Ｖにされる。
【０１６３】
選択ゲート線ＳＧ２が０Ｖにリセットされた後、信号ＳＥＮ２、ＬＡＴ２をＶＣＣから０Ｖにすると、信号ＰＲＳＴＢ２をＶＣＣから０Ｖにすると、ノードＮｂｉ＋１がＶＣＣとなる。信号ＰＲＳＴＢ２をＶＣＣに戻した後、信号ＰＲＯ２を０Ｖから１．６Ｖにする。
【０１６４】
メモリセルが“２”あるいは“３”データを記憶している場合、ビット線ＢＬｉは０．８Ｖを維持しているので、ｎチャネルＭＯＳトランジスタＱｎ１０は、非導通で、ノードＮｂｉ＋１は、ＶＣＣを維持する。
【０１６５】
メモリセルが“０”あるいは“１”のデータを記憶している場合、ビット線ＢＬｉは、０．５Ｖ以下で、ｎチャネルＭＯＳトランジスタＱｎ１０は、導通し、ノードＮｂｉ＋１の電位は、ＶＣＣから約０．５５Ｖ以下に下がる。信号ＳＥＮ２がＶＣＣに戻りクロック同期式インバータＣＩ３が活性化され、ノードＮｂｉ＋１の電圧がセンスされる。
【０１６６】
信号ＬＡＴ２がＶＣＣに戻るとクロック同期式インバータＣＩ４が活性化され、センスされた信号の論理レベルが第２のサブデータ回路にラッチされる。再び、信号ＰＲＯ２が０Ｖとなってビット線ＢＬｉとＮｂｉ＋１が切り離された後、信号ＰＲＥ１がＶＣＣに戻って、ビット線ＢＬｉは０Ｖにリセットされ、メモリセルＭのしきい値が１．１Ｖ以上かどうかを検出する動作が終わる。
【０１６７】
メモリセルが“２”あるいは“３”データを記憶している場合、第２のサブデータ回路の第２の読み出しデータは“０”となる。メモリセルが“０”あるいは“１”データを記憶している場合、第２の読み出しサブデータは“１”である。最後に、選択ゲート線ＳＧ１が０Ｖに、信号ＢＬＣ１が０Ｖに戻り、読み出し動作が終了する。
【０１６８】
このように図８に示すように、メモリセルＭのデータが読み出しデータとしてデータ記憶回路１０へ記憶される動作が終わる。この後、信号ＣＳＬｉ、ＣＳＬｉ＋１が０ＶからＶＣＣになると、第１の読み出しサブデータは、データ入出力線ＩＯＬに出力され、第２の読み出しサブデータは、データ入出力線ＩＯＵに出力され、これらのデータは、データ出力バッファ４を介してデータ入出力端子５からＬＳＩ外部へ出力される。
【０１６９】
表２は、メモリセルの４値データと第１及び第２の読み出しサブデータの関係を示している。
【０１７０】
【表２】
0004157189.tif 000003
【０１７１】
図９は、図８に示した読み出し時におけるワード線制御回路６の動作を示す。
【０１７２】
選択されたブロックアドレス信号Ｐｉ、Ｑｉ、Ｒｉが０ＶからＶＣＣとなって、信号ＢＷＬＨＢがＶＣＣから０Ｖに、信号ＶＰＰＲＷがＶＣＣから４．５Ｖとなり、信号ＯＳＣが０ＶとＶＣＣの間で振動し始めると、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートが５．５Ｖになる。
【０１７３】
ｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートの電圧は、信号ＶＰＰＲＷにｎチャネルＭＯＳトランジスタＱｎ２４のしきい値を加えたものになる。また、信号ＷＬＧＮＤＢは０Ｖのままなので、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４のゲートは０Ｖで非導通である。
【０１７４】
逆に、非選択ブロックのｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートの電圧は０Ｖで、非導通である。また、非選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４のゲートはＶＣＣで導通する。
【０１７５】
信号ＳＧＤ１がＶＣＣから４．５Ｖに、ＷＬＤ２が０Ｖから２．３Ｖに、ＷＬＤ１，ＷＬＤ３，ＷＬＤ４が０Ｖから４．５Ｖに、ＳＧＤ２が０Ｖから４．５Ｖになって、選択されたブロックの選択ゲート線ＳＧ１が０Ｖから４．５Ｖに、ワード線ＷＬ２が０Ｖから２．３Ｖに、ワード線ＷＬ１、ＷＬ３、ＷＬ４が０Ｖから４．５Ｖに、ＳＧ２が０Ｖから４．５Ｖになる。
【０１７６】
一定期間経った後、信号ＷＬＤ２が２．３Ｖから０Ｖに、信号ＷＬＤ１，ＷＬＤ３，ＷＬＤ４が４．５Ｖから０Ｖに、ＳＧＤ２が４．５Ｖから０Ｖになって、選択されたブロックのワード線ＷＬ２が２．３Ｖから０Ｖに、ワード線ＷＬ１，ＷＬ３，ＷＬ４が４．５Ｖから０に、ＳＧ２が４．５Ｖから０Ｖにりセットされる。
【０１７７】
同様に、信号ＷＬＤ１，ＷＬＤ３，ＷＬＤ４が０Ｖから４．５Ｖに、ＳＧＤ２が０Ｖから４．５Ｖになって、選択されたブロックのワード線ＷＬ１，ＷＬ３，ＷＬ４が０Ｖから４．５Ｖに、ＳＧ２が０Ｖから４．５Ｖになる。
【０１７８】
一定期間経った後、信号ＷＬＤ１，ＷＬＤ３，ＷＬＤ４が４．５Ｖから０Ｖに、ＳＧＤ２が４．５Ｖから０Ｖになって、選択されたブロックのワード線ＷＬ１，ＷＬ３，ＷＬ４が４．５Ｖから０に、ＳＧ２が４．５Ｖから０Ｖにリセットされる。
【０１７９】
再度、同様に、信号ＷＬＤ２が０Ｖから１．１Ｖに、信号ＷＬＤ１，ＷＬＤ３，ＷＬＤ４が０Ｖから４．５Ｖに、ＳＧＤ２が０Ｖから４．５Ｖになって、選択されたブロックのワード線ＷＬ２が０Ｖから１．１Ｖに、ワード線ＷＬ１，ＷＬ３，ＷＬ４が０Ｖから４．５Ｖに、ＳＧ２が０Ｖから４．５Ｖになる。
【０１８０】
一定期間経った後、信号ＷＬＤ２が１．１Ｖから０Ｖに、信号ＷＬＤ１，ＷＬＤ３，ＷＬＤ４が４．５Ｖから０Ｖに、ＳＧＤ２が４．５Ｖから０Ｖになって、選択されたブロックのワード線ＷＬ２が１．１Ｖから０Ｖに、ワード線ＷＬ１，ＷＬ３，ＷＬ４が４．５Ｖから０に、ＳＧ２が４．５Ｖから０Ｖにリセットされる。
【０１８１】
非選択ブロックの選択ゲート線ＳＧ１とワード線ＷＬ１〜ＷＬ４は、ｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４によって０Ｖである。選択されたブロックアドレス信号Ｐｉ、Ｑｉ、ＰｉがＶＣＣから０Ｖとなって、信号ＢＷＬＨＢが０ＶからＶＣＣに、信号ＶＰＰＲＷが４．５ＶからＶＣＣとなり、信号ＯＳＣが０Ｖとなって、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートは、０Ｖにリセットされる。
【０１８２】
また、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４のゲートは、ＶＣＣにもどされ、導通する。これで非選択状態に戻り、選択ゲート線ＳＧ１が０Ｖに戻る。
【０１８３】
図１０は、書き込み（ページ書き込み）動作を示している。
【０１８４】
ここでは、ビット線ＢＬ０、ＢＬ２、…、ＢＬｉ、…、ＢＬ４２２２が選択され（代表としてＢＬｉを示す）、ワード線ＷＬ２が選択されている場合を示す。
【０１８５】
書き込みに先だって、データ記憶回路１０への制御データの初期設定が行われる。ビット線ＢＬｉに備えられたデータ記憶回路１０への制御データの初期設定は次のように行われる。
【０１８６】
第１のサブデータ回路の初期サブデータが入出力線ＩＯＬ、第２のサブデータ回路の初期サブデータが入出力線ＩＯＵに転送され、信号ＣＳＬｉとＣＳＬｉ＋１が０ＶからＶＣＣになって、第１及び第２のサブデータ回路に初期サブデータが記憶される。信号ＣＳＬの選択を変えて、任意の数の任意データ記憶回路１０に初期制御データは設定される。
【０１８７】
このとき、初期制御データと初期サブデータの関係は、以下の表３に示すようになる。
【０１８８】
【表３】
0004157189.tif 000004
【０１８９】
ここで、全ての初期制御データ設定以前に、信号ＰＲＳＴＢ１とＰＲＳＴＢ２をＶＣＣから０Ｖにし、再度ＶＣＣに戻して、全てのデータ記憶回路１０の制御データを“０”にリセットしておくことが望ましい。
【０１９０】
後で説明するように、制御データ“０”によってメモリセルＭの状態は変化させられないので、２１１２個のデータ記憶回路１０の内、所望のデータ記憶回路１０のみに外部から初期制御データを設定すればよい。もちろん２１１２個全部のデータ記憶回路１０の初期制御データを外部から設定してもよい。
【０１９１】
信号ＢＬＣ２は０Ｖ、ＢＩＡＳは０Ｖ、ＶＲＦＹ１〜３は０Ｖ、ＰＲＯ１は０Ｖ、ＳＥＮ１はＶＣＣ、ＬＡＴ１はＶＣＣ、ＳＥＮ２はＶＣＣ、ＬＡＴ２はＶＣＣ、ＰＲＳＴＢ１とＰＲＳＴＢ２はＶＣＣ、ＣＳＬｉとＣＳＬｉ＋１は０Ｖ、信号ＶＢＬ１とＶＲＥＧは０Ｖのままなので図１０への表示は省略してある。
【０１９２】
書き込み動作では、先ず、選択されたブロックの選択ゲート線ＳＧ１がＶＣＣになる。同時に、信号ＰＲＥ１がＶＣＣから０Ｖ、ＢＬＣ１が０Ｖから７Ｖとなってビット線ＢＬｉが選択される。信号ＰＲＯ２が７Ｖとなって、第２のサブデータが“０”の場合、ビット線ＢＬｉはＶＣＣの書き込み制御電圧にされる。
【０１９３】
第２のサブデータが“１”の場合、ビット線ＢＬｉは０Ｖのままで、０Ｖの書き込み制御電圧にされる。信号ＰＲＥ２がＶＣＣから７Ｖとなり、信号ＶＢＬ２が０ＶからＶＣＣになって、非選択のビット線ＢＬｉ＋１はＶＣＣの書き込み制御電圧にされる。共通ソース線ＳＲＣもＶＣＣにされる。これは、選択されたブロックの選択ゲート線ＳＧ２のパンチスル−を防ぐためである。
【０１９４】
その後、選択されたブロックのワード線ＷＬ２が書き込み電圧Ｖｐｇｍ（１６Ｖ〜２０Ｖ）となる。両隣のワード線ＷＬ１，ＷＬ３は０Ｖである。残りのワード線ＷＬ４は１１Ｖにされる。これで、“２”あるいは“３”の制御データを記憶しているデータ記憶回路１０に対応するメモリセルＭでは、そのしきい値が上昇していく。“０”あるいは“１”の制御データを記憶しているデータ記憶回路１０に対応するメモリセルＭでは、その状態は保持される。非選択ビット線ＢＬｉ＋１に繋がるメモリセルＭの状態も保持される。
【０１９５】
例えば、８μｓｅｃ後に選択されたワード線ＷＬ２がＶｐｇｍから０Ｖに、ワード線ＷＬ４が１１Ｖから０Ｖにリセットされる。同時に、信号ＰＲＯ２が７Ｖから０Ｖにリセットされる。
【０１９６】
この時点では、ビット線上の書き込み制御電圧は変化しない。信号ＰＲＯ１０が０ＶからＶＣＣとなって、第１のサブデータ回路のサブデータが“１”の場合、ビット線ＢＬｉは０Ｖの書き込み制御電圧となる。この時点で、ビット線ＢＬｉの書き込み制御電圧は、対応するデータ記憶回路１０に記憶されている制御データが“０”の場合にＶＣＣ、制御データが“１”あるいは“２”あるいは“３”の場合に０Ｖである。
【０１９７】
再度、選択されたブロックのワード線ＷＬ２が書き込み電圧Ｖｐｇｍ（１６Ｖ〜２０Ｖ）となり、ワード線ＷＬ４は１１Ｖにされる。
【０１９８】
例えば、２μｓｅｃ後に、再度、選択されたワード線ＷＬ２がＶｐｇｍから０Ｖに、ワード線ＷＬ４が１１Ｖから０Ｖにリセットされる。その後、信号ＰＲＯ１０はＶＣＣから０Ｖに、ＢＬＣ１は７Ｖから０Ｖに、ＰＲＥ１は０ＶからＶＣＣにリセットされ、ビット線ＢＬｉは０Ｖにリセットされる。
【０１９９】
また、信号ＶＢＬ２がＶＣＣから０Ｖとなって、ビット線ＢＬｉ＋１も０Ｖにリセットされる。信号ＰＲＥ２は７ＶからＶＣＣに、共通ソース線ＳＲＣはＶＣＣから０Ｖに、選択ゲート線ＳＧ１はＶＣＣから０Ｖにリセットされて、書き込みが終了する。
【０２００】
書き込み後、データがメモリセルに書き込めているか否かを確認する書き込みベリファイが後述のように行われる。全ての選択されたメモリセルに書き込めていると確認されるまで、書き込みと書き込みベリファイは繰り返される。
【０２０１】
図１０に示したように、“１”書き込み時のビット線上に０Ｖの書き込み制御電圧が与えられている時間は、“２”あるいは“３”書き込み時のビット線上に０Ｖの書き込み制御電圧が与えられている時間より短くされる。これによって、例えば、メモリセルに“１”を書き込むのに必要な書き込み回数と、“２”を書き込むのに必要な回数をほぼ等しくできる。１回の書き込み動作でメモリセルの浮遊ゲートに注入される電荷量が、“１”、“２”、“３”の順に少ないからである。
【０２０２】
例えば、一定の書き込み電圧を制御ゲートに印加して、ソースとドレインを０Ｖに固定する。メモリセルのしきい値の変化分ΔＶｔは書き込み時間をｔｐとすると、
ΔＶｔ  ｌｏｇ（ｔｐ）
なので、書き込み時間をα倍にしたメモリセルとのしきい値差ＤＶｔは、
ＤＶｔ  ｌｏｇ（α×ｔｐ）−ｌｏｇ（ｔｐ）＝ｌｏｇ（α）
となり、常に一定である。
【０２０３】
“１”書き込み状態にメモリセルが到達するまでの書き込み動作回数と、“２”書き込み状態にメモリセルが到達するまでの書き込み動作回数は、“１”書き込み時の一回の書き込み時間を“２”書き込み時の一回の書き込み時間より短くすることで、等しくできる。書き込み動作回数が等しければ、“１”書き込み終了時点で、“２”書き込みも同時に終了する。
【０２０４】
もし、１回の書き込み動作で注入される電荷量が等しいと、“１”書き込みが終了した時点で“２”書き込みや“３”書き込みはまだ終わってない。よって、複数のＮＡＮＤ型セルユニットに対して同時に書き込む場合は、書き込み時間が長くなる。
【０２０５】
図１１は、図１０に示した書き込み時におけるワード線制御回路６の動作を示す。
【０２０６】
選択されたブロックアドレス信号Ｐｉ、Ｑｉ、Ｒｉが０ＶからＶＣＣとなって、信号ＢＷＬＨＢがＶＣＣから０Ｖに、信号ＶＰＰＲＷがＶＣＣからＶｐｇｍとなり、信号ＯＳＣが０ＶとＶＣＣの間で振動し始めると、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートがＶｐｇｍ＋１Ｖになる。
【０２０７】
ｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートの電圧は、信号ＶＰＰＲＷにｎチャネルＭＯＳトランジスタＱｎ２４のしきい値を加えたものになる。また、信号ＷＬＧＮＤＢは０Ｖのままなので、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４のゲートは０Ｖで非導通である。
【０２０８】
よって、選択ブロックの選択ゲート線ＳＧ１はＶＣＣとなる。逆に、非選択ブロックのｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートの電圧は０Ｖで、非導通である。また、非選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４のゲートはＶＣＣで導通する。
【０２０９】
信号ＷＬＤ２が０ＶからＶｐｇｍに、ＷＬＤ４が０Ｖから１１Ｖになって、選択されたブロックのワード線ＷＬ２が０ＶからＶｐｇｍに、ＷＬ４が０Ｖから１１Ｖになる。
【０２１０】
続いて、信号ＷＬＤ２がＶｐｇｍから０Ｖに、ＷＬＤ４が１１Ｖから０Ｖになって、選択されたブロックのワード線ＷＬ２がＶｐｇｍから０Ｖに、ＷＬ４が１１Ｖから０にリセットされる。
【０２１１】
再度、信号ＷＬＤ２が０ＶからＶｐｇｍに、ＷＬＤ２が０Ｖから１１Ｖになって、選択されたブロックのワード線ＷＬ２が０ＶからＶｐｇｍに、ＷＬ４が０Ｖから１１Ｖになる。
【０２１２】
続いて、信号ＷＬＤ２がＶｐｇｍから０Ｖに、ＷＬＤ４が１１Ｖから０Ｖになって、選択されたブロックのワード線ＷＬ２がＶｐｇｍから０Ｖに、ＷＬ４が１１Ｖから０にリセットされる。
【０２１３】
非選択ブロックの選択ゲート線ＳＧ１とワード線ＷＬ１〜ＷＬ４はｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４によって０Ｖである。選択されたブロックアドレス信号Ｐｉ、Ｑｉ、ＲｉがＶＣＣから０Ｖとなって、信号ＢＷＬＨＢが０ＶからＶＣＣに、信号ＶＰＰＲＷがＶｐｇｍからＶＣＣとなり、信号ＯＳＣが０Ｖとなって、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートは０Ｖにリセットされる。
【０２１４】
また、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４のゲートはＶＣＣにもどされ、導通する。これで非選択状態に戻り、選択ゲート線ＳＧ１が０Ｖに戻る。
【０２１５】
図１２は、図１０あるいは図１１の書き込み動作後におけるメモリセルの書き込み状態を検出する書き込みベリファイ動作を示す。
【０２１６】
ここでは、ビット線ＢＬ０、ＢＬ２、…、ＢＬｉ、…、ＢＬ４２２２が選択され（代表としてＢＬｉを示す）、ワード線ＷＬ２が選択されている場合を示す。また、ここでは、信号ＶＢＬ１、ＶＢＬ２は０Ｖ、信号ＢＬＣ２は０Ｖ、ＰＲＥ２はＶＣＣのままで、ビット線ＢＬｉ＋１が０Ｖのままなので、図１２への表示を省略している。また、信号ＰＲＯ１０が０Ｖ、ＣＳＬｉが０Ｖ、ＣＳＬｉ＋１が０Ｖのままなので、図１２への表示を省略している。
【０２１７】
まず、選択されたブロックの選択ゲート線ＳＧ１が４．５Ｖになる。同時に、信号ＰＲＥ１がＶＣＣから０Ｖ、ＢＬＣ１が０Ｖから７Ｖとなってビット線ＢＬｉが選択される。信号ＢＩＡＳが０Ｖから１．８Ｖとなってビット線ＢＬｉが０．８Ｖに充電される。信号ＢＩＡＳが０Ｖとなってビット線ＢＬｉの充電は終了する。つづいて、選択されたブロックの選択ゲート線ＳＧ２、及び非選択ワード線ＷＬ１、ＷＬ３、ＷＬ４が０Ｖから４．５Ｖにされ、選択ワード線ＷＬ２が０Ｖから２．７Ｖにされる。
【０２１８】
選択ワード線ＷＬ２が２．７Ｖになると、“３”の制御データを記憶しているデータ記憶回路に対応するメモリセルが“３”データを記憶している状態に達していればビット線ＢＬｉは０．８Ｖのままである。“３”の制御データを記憶しているデータ記憶回路に対応するメモリセルが“３”データを記憶している状態に達していなければビット線ＢＬｉは０．５Ｖ以下になる。“２”あるいは“１”の制御データを記憶しているデータ記憶回路に対応するメモリセルは、“３”データを記憶している状態に達しないのでビット線ＢＬｉは０．５Ｖ以下になる。
【０２１９】
一定期間経った後、選択ゲート線ＳＧ２、及び非選択ワード線ＷＬ１〜ＷＬ４が０．０Ｖにされる。選択ゲート線ＳＧ２が０Ｖにリセットされた後、信号ＶＲＥＧを０ＶからＶＣＣに、信号ＶＲＦＹ２を０Ｖから２．５Ｖにする。第２のサブデータ回路に“０”の第２のサブデータが記憶されていれば、ビット線ＢＬｉは１．５Ｖにされる。信号ＶＲＦＹ２が２．５Ｖから０Ｖに戻って、次に信号ＶＲＥＧが０Ｖに戻る。
【０２２０】
信号ＳＥＮ２、ＬＡＴ２をＶＣＣから０Ｖにする。信号ＰＲＳＴＢ２をＶＣＣから０Ｖにすると、ノードＮｂｉ＋１がＶＣＣとなる。信号ＰＲＳＴＢ２をＶＣＣに戻した後、信号ＰＲＯ２を０Ｖから１．６Ｖにする。
【０２２１】
“３”の制御データを記憶しているデータ記憶回路に対応するメモリセルが“３”データを記憶している状態に達していれば、ビット線ＢＬｉは０．８Ｖを維持しているので、ｎチャネルＭＯＳトランジスタＱｎ１０は非導通で、ノードＮｂｉ＋１はＶＣＣを維持する。
【０２２２】
“３”の制御データを記憶しているデータ記憶回路に対応するメモリセルが“３”データを記憶している状態に達していなければ、ビット線ＢＬｉは０．５Ｖ以下なので、ｎチャネルＭＯＳトランジスタＱｎ１０は導通で、ノードＮｂｉ＋１はＶＣＣから下がる。
【０２２３】
“２”の制御データを記憶しているデータ記憶回路に対応するメモリセルは“３”データを記憶している状態に達しないのでビット線ＢＬｉは０．５Ｖ以下である。よって、ｎチャネルＭＯＳトランジスタＱｎ１０は導通し、ノードＮｂｉ＋１の電位はＶＣＣから下がる。
【０２２４】
データ記憶回路が“０”あるいは“１”の制御データを記憶している場合、第２のサブデータ回路の第２のサブデータは“０”なので、ビット線ＢＬｉの電圧は、１．５Ｖである。よって、ｎチャネルＭＯＳトランジスタＱｎ１０は非導通で、ノードＮｂｉ＋１はＶＣＣを維持する。
【０２２５】
信号ＳＥＮ２がＶＣＣに戻りクロック同期式インバータＣＩ３が活性化され、ノードＮｂｉ＋１の電圧がセンスされる。信号ＬＡＴ２がＶＣＣに戻るとクロック同期式インバータＣＩ４が活性化され、センスされた信号の論理レベルが第２のサブデータ回路にラッチされる。再び、信号ＰＲＯ２が０Ｖとなってビット線ＢＬｉとＮｂｉ＋１が切り離された後、信号ＰＲＥ１がＶＣＣに戻って、ビット線ＢＬｉは０Ｖにリセットされる。
【０２２６】
これで、“３”の制御データを記憶しているデータ記憶回路１０に対応するメモリセルが“３”データを記憶している状態に達しているか否かの検出（データ“３”のベリファイ読み出し）が終了する。
【０２２７】
この時点で、“３”の制御データを記憶していたデータ記憶回路に対応するメモリセルが“３”データを記憶している状態に達していると検出された場合のみ、“３”の制御データを記憶していたデータ記憶回路の制御データは“０”データに変更され、そのほかの場合、制御データは保持される（変更されない）。
【０２２８】
次に、“２”の制御データを記憶しているデータ記憶回路１０に対応するメモリセルが“２”データを記憶している状態に達しているか否かの検出（データ“２”のベリファイ読み出し）に入る。信号ＰＲＥ１がＶＣＣから０Ｖ、ＢＬＣ１が０Ｖから７Ｖとなってビット線ＢＬｉが選択される。信号ＢＩＡＳが０Ｖから１．８Ｖとなってビット線ＢＬｉが０．８Ｖに充電される。信号ＢＩＡＳが０Ｖとなってビット線ＢＬｉの充電は終了する。
【０２２９】
続いて、選択されたブロックの選択ゲート線ＳＧ２、及び非選択ワード線ＷＬ１、ＷＬ３、ＷＬ４が０Ｖから４．５Ｖにされ、選択ワード線ＷＬ２が０Ｖから１．５Ｖにされる。同時に信号ＶＲＦＹ１が０ＶからＶＣＣにされ、第１のサブデータ回路の第１のサブデータが“０”の場合、ｎチャネルＭＯＳトランジスタＱｎ５が導通し、ビット線ＢＬｉの電位は０Ｖに下がる。
【０２３０】
選択ワード線ＷＬ２が１．５Ｖになると、“２”の制御データを記憶しているデータ記憶回路に対応するメモリセルが“２”データを記憶している状態に達していればビット線ＢＬｉは０．８Ｖのままである。“２”の制御データを記憶しているデータ記憶回路に対応するメモリセルが“２”データを記憶している状態に達していなければビット線ＢＬｉは０．５Ｖ以下になる。
【０２３１】
“１”の制御データを記憶しているデータ記憶回路に対応するメモリセルは“２”データを記憶している状態に達しないのでビット線ＢＬｉは０．５Ｖ以下になる。“３”あるいは“０”を記憶しているデータ記憶回路に対応するビット線ＢＬｉは０Ｖである。
【０２３２】
一定期間経った後、選択ゲート線ＳＧ２、及び非選択ワード線ＷＬ１〜ＷＬ４が０．０Ｖにされる。信号ＶＲＦＹ１も０Ｖに戻される。選択ゲート線ＳＧ２が０Ｖにリセットされた後、信号ＶＲＥＧを０ＶからＶＣＣに、信号ＶＲＦＹ２を０Ｖから２．５Ｖにする。第２のサブデータ回路に“０”の第２のサブデータが記憶されていれば、ビット線ＢＬｉは１．５Ｖにされる。信号ＶＲＦＹ２が２．５Ｖから０Ｖに戻って、次に信号ＶＲＥＧが０Ｖに戻る。
【０２３３】
信号ＳＥＮ２、ＬＡＴ２をＶＣＣから０Ｖにする。信号ＰＲＳＴＢ２をＶＣＣから０Ｖにすると、ノードＮｂｉ＋１がＶＣＣとなる。信号ＰＲＳＴＢ２をＶＣＣに戻した後、信号ＰＲＯ２を０Ｖから１．６Ｖにする。“２”の制御データを記憶しているデータ記憶回路に対応するメモリセルが“２”データを記憶している状態に達していれば、ビット線ＢＬｉは０．８Ｖを維持しているので、ｎチャネルＭＯＳトランジスタＱｎ１０は非導通で、ノードＮｂｉ＋１はＶＣＣを維持する。
【０２３４】
“２”の制御データを記憶しているデータ記憶回路に対応するメモリセルが“２”データを記憶している状態に達していなければ、ビット線ＢＬｉは０．５Ｖ以下なので、ｎチャネルＭＯＳトランジスタＱｎ１０は導通で、ノードＮｂｉ＋１はＶＣＣから下がる。
【０２３５】
“３”の制御データを記憶しているデータ記憶回路に対応するビット線ＢＬｉは０．５Ｖ以下である。よって、ｎチャネルＭＯＳトランジスタＱｎ１０は導通し、ノードＮｂｉ＋１の電位はＶＣＣから下がる。データ記憶回路が“０”あるいは“１”の制御データを記憶している場合、第２のサブデータ回路の第２のサブデータは“０”なので、ビット線ＢＬｉの電圧は、１．５Ｖである。よって、ｎチャネルＭＯＳトランジスタＱｎ１０は非導通で、ノードＮｂｉ＋１はＶＣＣを維持する。
【０２３６】
信号ＳＥＮ２がＶＣＣに戻りクロック同期式インバータＣＩ３が活性化され、ノードＮｂｉ＋１の電圧がセンスされる。信号ＬＡＴ２がＶＣＣに戻るとクロック同期式インバータＣＩ４が活性化され、センスされた信号の論理レベルが第２のサブデータ回路にラッチされる。
【０２３７】
再び、信号ＰＲＯ２が０Ｖとなってビット線ＢＬｉとＮｂｉ＋１が切り離された後、信号ＰＲＥ１がＶＣＣに戻って、ビット線ＢＬｉは０Ｖにリセットされる。これで、“２”の制御データを記憶しているデータ記憶回路１０に対応するメモリセルが“２”データを記憶している状態に達しているか否かの検出（データ“２”のベリファイ読み出し）が終了する。
【０２３８】
この時点で、“３”の制御データを記憶していたデータ記憶回路に対応するメモリセルが“３”データを記憶している状態に達していると検出された場合、“３”の制御データを記憶していたデータ記憶回路の制御データは“０”データに変更されている。
【０２３９】
“２”の制御データを記憶していたデータ記憶回路に対応するメモリセルが“２”データを記憶している状態に達していると検出された場合、“２”の制御データを記憶していたデータ記憶回路の制御データは“１”データに変更されている。そのほかの場合は、制御データは保持される（変更されない）。
【０２４０】
次に、“１”の制御データを記憶しているデータ記憶回路１０に対応するメモリセルが“１”データを記憶している状態に達しているか否かの検出（データ“１”のベリファイ読み出し）に入る。信号ＰＲＥ１がＶＣＣから０Ｖ、ＢＬＣ１が０Ｖから７Ｖとなってビット線ＢＬｉが選択される。信号ＢＩＡＳが０Ｖから１．８Ｖとなってビット線ＢＬｉが０．８Ｖに充電される。信号ＢＩＡＳが０Ｖとなってビット線ＢＬｉの充電は終了する。
【０２４１】
続いて、選択されたブロックの選択ゲート線ＳＧ２、及び非選択ワード線ＷＬ１、ＷＬ３、ＷＬ４が０Ｖから４．５Ｖにされ、選択ワード線ＷＬ２が０Ｖから０．３Ｖにされる。同時に信号ＶＲＦＹ３が０ＶからＶＣＣにされ、第２のサブデータ回路の第２のサブデータが“１”の場合、ｎチャネルＭＯＳトランジスタＱｎ１３が導通し、ビット線ＢＬｉの電位は０Ｖに下がる。
【０２４２】
選択ワード線ＷＬ２が０．３Ｖになると、“１”の制御データを記憶しているデータ記憶回路に対応するメモリセルが“１”データを記憶している状態に達していれば、ビット線ＢＬｉは０．８Ｖのままである。“１”の制御データを記憶しているデータ記憶回路に対応するメモリセルが“１”データを記憶している状態に達していなければ、ビット線ＢＬｉは０．５Ｖ以下になる。“３”あるいは“２”を記憶しているデータ記憶回路に対応するビット線ＢＬｉは、０Ｖである。
【０２４３】
一定期間経った後、選択ゲート線ＳＧ２、および非選択ワード線ＷＬ１〜ＷＬ４が０．０Ｖにされる。信号ＶＲＦＹ３も０Ｖに戻される。選択ゲート線ＳＧ２が０Ｖにリセットされた後、信号ＶＲＥＧが０ＶからＶＣＣに、信号ＶＲＦＹ１を０Ｖから２．５Ｖにする。第１のサブデータ回路に“０”の第１のサブデータが記憶されていれば、ビット線ＢＬｉは１．５Ｖにされる。信号ＶＲＦＹ１が２．５Ｖから０Ｖに戻って、次に信号ＶＲＥＧが０Ｖに戻る。
【０２４４】
信号ＳＥＮ１、ＬＡＴ１をＶＣＣから０Ｖにする。信号ＰＲＳＴＢ１をＶＣＣから０Ｖにすると、ノードＮｂｉがＶＣＣとなる。信号ＰＲＳＴＢ１をＶＣＣに戻した後、信号ＰＲＯ１を０Ｖから１．６Ｖにする。“１”の制御データを記憶しているデータ記憶回路に対応するメモリセルが“１”データを記憶している状態に達していれば、ビット線ＢＬｉは０．８Ｖを維持しているので、ｎチャネルＭＯＳトランジスタＱｎ３は、非導通で、ノードＮｂｉは、ＶＣＣを維持する。
【０２４５】
“１”の制御データを記憶しているデータ記憶回路に対応するメモリセルが“１”データを記憶している状態に達していなければ、ビット線ＢＬｉは０．５Ｖ以下なので、ｎチャネルＭＯＳトランジスタＱｎ３は導通で、ノードＮｂｉはＶＣＣから下がる。“２”の制御データを記憶しているデータ記憶回路に対応するビット線ＢＬｉは、０．５Ｖ以下である。よって、ｎチャネルＭＯＳトランジスタＱｎ３は、導通し、ノードＮｂｉの電位はＶＣＣから下がる。
【０２４６】
データ記憶回路が“０”あるいは“３”の制御データを記憶している場合、第１のサブデータ回路の第１のサブデータは“０”なので、ビット線ＢＬｉの電圧は、１．５Ｖである。よって、ｎチャネルＭＯＳトランジスタＱｎ３は非導通で、ノードＮｂｉはＶＣＣを維持する。
【０２４７】
信号ＳＥＮ１がＶＣＣに戻りクロック同期式インバータＣＩ１が活性化され、ノードＮｂｉの電圧がセンスされる。信号ＬＡＴ１がＶＣＣに戻るとクロック同期式インバータＣＩ２が活性化され、センスされた信号の論理レベルが第１のサブデータ回路のラッチされる。
【０２４８】
再び、信号ＰＲＯ１が０Ｖとなってビット線ＢＬｉとノードＮｂｉが切り離された後、信号ＰＲＥ１がＶＣＣに戻って、ビット線ＢＬｉは、０Ｖにリセットされる。ここで、“１”の制御データを記憶しているデータ記憶回路１０に対応するメモリセルが“１”データを記憶している状態に達しているか否かの検出（データ“１”のベリファイ読み出し）が終了する。
【０２４９】
この時点で、“３”の制御データを記憶していたデータ記憶回路に対応するメモリセルが“３”データを記憶している状態に達していると検出された場合、“３”の制御データを記憶していたデータ記憶回路の制御データは“０”データに変更されている。
【０２５０】
“２”の制御データを記憶していたデータ記憶回路に対応するメモリセルが“２”データを記憶している状態に達していると検出された場合、“２”の制御データを記憶していたデータ記憶回路の制御データは“０”データに変更されている。
【０２５１】
“１”の制御データを記憶していたデータ記憶回路に対応するメモリセルが“１”データを記憶している状態に達していると検出された場合、“１”の制御データを記憶していたデータ記憶回路の制御データは“０”データに変更されている。そのほかの場合は、制御データは保持される（変更されない）。
【０２５２】
最後に、選択ゲート線ＳＧ１が０Ｖに、信号ＢＬＣ１が０Ｖに戻り、読み出し動作が終了する。
【０２５３】
図１３は、図１２の書き込みベリファイ時におけるワード線制御回路６の動作を示す。
【０２５４】
選択されたブロックアドレス信号Ｐｉ、Ｑｉ、Ｒｉが０ＶからＶＣＣとなって、信号ＢＷＬＨＢがＶＣＣから０Ｖに、ＶＰＰＲＷがＶＣＣから４．５Ｖとなり、信号ＯＳＣが０ＶとＶＣＣの間で振動し始めると、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートが５．５Ｖになる。
【０２５５】
ｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートの電圧は、信号ＶＰＰＲＷにｎチャネルＭＯＳトランジスタＱｎ２４のしきい値を加えたものになる。また、信号ＷＬＧＮＤＢは０Ｖのままなので、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４のゲートは０Ｖで非導通である。
【０２５６】
逆に、非選択のブロックのｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートの電圧は０Ｖで、非導通である。また、非選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４のゲートはＶＣＣで導通する。
【０２５７】
信号ＳＧＤ１がＶＣＣから４．５Ｖに、ＷＬＤ２が０Ｖから２．７Ｖに、ＷＬＤ１，ＷＬＤ３，ＷＬＤ４が０Ｖから４．５Ｖに、ＳＧＤ２が０Ｖから４．５Ｖになって、選択されたブロックの選択ゲート線ＳＧ１が０Ｖから４．５Ｖに、ワード線ＷＬ２が０Ｖから２．７Ｖに、ワード線ＷＬ１，ＷＬ３，ＷＬ４が０Ｖから４．５Ｖに、選択ゲート線ＳＧ２が０Ｖから４．５Ｖになる。
【０２５８】
一定期間経った後、信号ＷＬＤ２が２．７Ｖから０Ｖに、信号ＷＬＤ１，ＷＬＤ３，ＷＬＤ４が４．５Ｖから０Ｖに、信号ＳＧＤ２が４．５Ｖから０Ｖになって、選択されたブロックのワード線ＷＬ２が２．７Ｖから０Ｖに、ワード線ＷＬ１，ＷＬ３，ＷＬ４が４．５Ｖから０に、選択ゲート線ＳＧ２が４．５Ｖから０Ｖにリセットされる。
【０２５９】
同様に、信号ＷＬＤ２が０Ｖから１．５Ｖに、信号ＷＬＤ１，ＷＬＤ３，ＷＬＤ４が０Ｖから４．５Ｖに、信号ＳＧＤ２が０Ｖから４．５Ｖになって、選択されたブロックのワード線ＷＬ２が０Ｖから１．５Ｖに、ワード線ＷＬ１，ＷＬ３，ＷＬ４が０Ｖから４．５Ｖに、信号ＳＧ２が０Ｖから４．５Ｖになる。
【０２６０】
一定期間経った後、信号ＷＬＤ２が１．５Ｖから０Ｖに、ワード線ＷＬＤ１，ＷＬＤ３，ＷＬＤ４が４．５Ｖから０Ｖに、信号ＳＧＤ２が４．５Ｖから０Ｖになって、選択されたブロックのワード線ＷＬ２が１．５Ｖから０Ｖに、ワード線ＷＬ１，ＷＬ３，ＷＬ４が４．５Ｖから０に、信号ＳＧ２が４．５ｖから０Ｖにリセットされる。
【０２６１】
再度、同様に、信号ＷＬＤ２が０Ｖから０．３Ｖに、信号ＷＬＤ１，ＷＬＤ３，ＷＬＤ４が０Ｖから４．５Ｖに、ＳＧＤ２が０Ｖから４．５Ｖになって、選択されたブロックのワード線ＷＬ２が０Ｖから０．３Ｖに、ワード線ＷＬ１，ＷＬ３，ＷＬ４が０Ｖから４．５Ｖに、ＳＧ２が０Ｖから４．５Ｖになる。
【０２６２】
一定期間経った後、信号ＷＬＤ２が０．３Ｖから０Ｖに、ＷＬＤ１，ＷＬＤ３，ＷＬＤ４が４．５Ｖから０Ｖに、ＳＧＤ２が４．５Ｖから０Ｖになって、選択されたブロックのワード線ＷＬ２が０．３Ｖから０Ｖに、ワード線ＷＬ１，ＷＬ３，ＷＬ４が４．５Ｖから０に、ＳＧ２が４．５Ｖから０Ｖにリセットされる。
【０２６３】
非選択ブロックの選択ゲート線ＳＧ１とワード線ＷＬ１〜ＷＬ４は、ｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４によって０Ｖである。選択されたブロックアドレス信号Ｐｉ、Ｑｉ、ＲｉがＶＣＣから０Ｖとなって、信号ＢＷＬＨＢが０ＶからＶＣＣに、信号ＶＰＰＲＷが４．５ＶからＶＣＣとなり、信号ＯＳＣが０Ｖとなって、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートは０Ｖにリセットされる。
【０２６４】
また、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４のゲートは、ＶＣＣにもどされ、導通する。これで非選択状態に戻り、選択ゲート線ＳＧ１が０Ｖに戻る。
【０２６５】
書き込みベリファイ動作でメモリセルの書き込み状態に応じてデータ記憶回路１０に記憶されている制御データが表４のように変更される。
【０２６６】
【表４】
0004157189.tif 000005
【０２６７】
図１０及び図１１に示される書き込み動作と、図１２及び図１３に示される書き込みベリファイ動作を、全ての制御データが“０”になるまで繰り返し、メモリセルＭへのデータ書き込みは行われる。
【０２６８】
全ての制御データが“０”になったか否かは、信号ＰＴが接地レベルと導通しているか否かを検出すればわかる。接地されていれば、信号ＰＴは“Ｌ”となり、接地されてなければＰＴは“Ｈ”となるように、制御信号及び制御電圧発生回路７で制御されている。
【０２６９】
図１４は、この書き込みと書き込みベリファイを繰り返しながらデータ書き込みを行うアルゴリズムを示している。
【０２７０】
このアルゴリズムは、制御信号及び制御電圧発生回路７で制御されている。データ書き込み開始の命令が入って（ステップＳ１）、変数ＩＷＴが１にされる（ステップＳ２）。例えば、４，２２４ビット分のデータが入力され（ステップＳ３）、書き込み電圧Ｖｐｇｍの用意ができるまで、１０μｓｅｃ待機する（ステップＳ４）。
【０２７１】
図１０及び図１１に示すように、書き込みが行われ（ステップＳ５）、その後図１２、図１３に示したように書き込みベリファイが行われる（ステップＳ６）。信号ＰＴが“Ｈ”なら（ステップＳ７）、データ書き込みは正常に終了する（ステップＳ１１）。信号ＰＴが“Ｌ”なら（ステップＳ７）、ＩＷＴが２０か否かが調べられる（ステップＳ８）。
【０２７２】
また、ＩＷＴが２０より少なければ、ＩＷＴに１を加え（ステップＳ９）、書き込み電圧Ｖｐｇｍを０．２Ｖ増加させて（ステップＳ１０）、再度書き込みを行う（ステップＳ５）。このようにして、信号ＰＴが“Ｈ”になるまで、書き込みと書き込みベリファイを繰り返す。
【０２７３】
ステップＳ８において、ＩＷＴが２０となったら、データ書き込みが失敗したとして、データ書き込み異常であり、動作が終了となる（ステップＳ１２）。
【０２７４】
図１５は、消去動作を示している。
【０２７５】
消去は、選択されたブロックの全てのメモリセルに対して同時に行われる（ブロック消去）。信号ＢＬＣ１とＢＬＣ２は０Ｖのままで、信号ＶＢＬ１とＶＢＬ２は０Ｖのままである。選択されたブロックアドレス信号Ｐｉ、Ｑｉ、Ｒｉが０ＶからＶＣＣとなって、信号ＷＬＧＮＤＢが０ＶからＶＣＣとなる。信号ＢＷＬＨＢは、ＶＣＣ、ＶＰＰＲＷはＶＣＣ、信号ＯＳＣは０Ｖである。選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートはＶＣＣになる。
【０２７６】
また、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４のゲートは０Ｖで非導通である。非選択ブロックのｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートの電圧は０Ｖで、非導通である。また、信号ＷＬＧＮＤＢはＶＣＣなので、非選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４のゲートも０Ｖで非導通である。
【０２７７】
信号ＳＧＤ１はＶＣＣ、ＷＬＤ１〜４は０Ｖである。信号ＳＧＤ２が０ＶからＶＣＣとなる。共通ソース線ＳＲＣは浮遊状態にされる。信号ＰＲＥ１とＰＲＥ２がＶＣＣから０Ｖにされて、全ビット線ＢＬも浮遊状態にされる。ここでは、メモリセルアレイ１はｐ型ウェル１１上に形成されているとしている。ｐ型ウェル１１の電位でもある信号Ｃｅｌｌ  Ｗｅｌｌが０Ｖから消去電圧Ｖｅｒａとなる。
【０２７８】
共通ソース線ＳＲＣとビット線ＢＬの電位は、ｐ型ウェル１１とｎ型拡散層１２の順方向電流で、０Ｖからほぼ消去電圧Ｖｅｒａとなる。メモリセルアレイ１中の全選択ゲート線ＳＧ１とＳＧ２は、ｐ型ウェル１１との容量結合によって消去電圧Ｖｅｒａとなる。
【０２７９】
また、非選択のブロックのワード線ＷＬ１〜ＷＬ４も、ｐ型ウェル１１との容量結合によって消去電圧Ｖｅｒａとなる。選択されたブロックのワード線ＷＬ１〜ＷＬ４は、０Ｖのままである。
【０２８０】
よって、選択されたメモリセルでは、ｐ型ウェル１１と制御データ１６間に印加される消去電圧によって、消去される。非選択のメモリセルでは、ｐ型ウェル１１も制御データ１６も消去電圧となり、消去されない。
【０２８１】
共通ソース線ＳＲＣが浮遊状態から０Ｖに、信号ＰＲＥ１とＰＲＥ２が０ＶからＶＣＣとなってビット線ＢＬが０Ｖに、信号Ｃｅｌｌ  Ｗｅｌｌが消去電圧Ｖｅｒａから０Ｖになる。このため、全ワード線ＷＬは０Ｖに戻り、非選択のブロックの選択ゲート線ＳＧ１とＳＧ２も０Ｖに戻る。選択されたブロックの選択ゲート線ＳＧ１とＳＧ２はＶＣＣとなる。信号ＷＬＧＮＤＢがＶＣＣから０Ｖに戻り、信号ＳＧＤ２がＶＣＣから０Ｖに戻って、選択されたブロックのＳＧ２は０Ｖにリセットされる。
【０２８２】
最後に、選択されていたブロックアドレス信号Ｐｉ、Ｑｉ、ＲｉがＶＣＣから０Ｖとなって、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートは０Ｖにリセットされる。また、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４のゲートはＶＣＣにもどされ、導通する。これで非選択状態に戻り、選択ゲート線ＳＧ１が０Ｖに戻る。
【０２８３】
図１６は、消去後に行われる事前書き込み動作を示している。
【０２８４】
事前書き込みは選択されたブロックの全てのメモリセルに対して同時に行われる。信号ＢＬＣ１とＢＬＣ２、信号ＶＢＬ１とＶＢＬ２は０Ｖのままで、信号ＰＲＥ１とＰＲＥ２はＶＣＣのままである。よって、全ビット線ＢＬは０Ｖのままである。選択されたブロックアドレス信号Ｐｉ、Ｑｉ、Ｒｉが０ＶからＶＣＣとなって、信号ＢＷＬＨＢがＶＣＣから０Ｖに、ＶＰＰＲＷがＶＣＣから事前書き込み電圧Ｖｓｐｇｍとなり、信号ＯＳＣが０ＶとＶＣＣの間で振動し始めると、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートがＶｓｐｇｍ＋１Ｖになる。
【０２８５】
ｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートの電圧は、信号ＶＰＰＲＷにｎチャネルＭＯＳトランジスタＱｎ２４のしきい値を加えたものになる。また、信号ＷＬＧＮＤＢは０Ｖのままなので、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４のゲートは０Ｖで非導通である。よって、選択ブロックの選択ゲート線ＳＧ１は、ＶＣＣとなる。
【０２８６】
逆に、非選択ブロックのｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートの電圧は０Ｖで、非導通である。また、非選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４のゲートはＶＣＣで導通する。
【０２８７】
信号ＷＬＤ１〜ＷＬＤ４が０Ｖから事前書き込み電圧Ｖｓｐｇｍになって、選択されたブロックのワード線ＷＬ１〜ＷＬ４が０ＶからＶｓｐｇｍになる。一定期間の後、信号ＷＬＤ１〜ＷＬＤ４がＶｓｐｇｍから０Ｖ戻って、選択されたブロックのワード線ＷＬ１〜ＷＬ４がＶｓｐｇｍから０Ｖにリセットされる。
【０２８８】
非選択ブロックの選択ゲート線ＳＧ１とワード線ＷＬ１〜ＷＬ４は、ｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４によって０Ｖである。選択されたブロックアドレス信号Ｐｉ、Ｑｉ、ＲｉがＶＣＣから０Ｖとなって、信号ＢＷＬＨＢが０ＶからＶＣＣに、ＶＰＰＲＷがＶｐｇｍからＶＣＣとなり、信号ＯＳＣが０Ｖとなって、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートは０Ｖにリセットされる。
【０２８９】
また、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４のゲートはＶＣＣにもどされ、導通する。これで非選択状態に戻り、選択ゲート線ＳＧ１が０Ｖに戻る。
【０２９０】
図１７は、図１６の事前書き込み動作後におけるメモリセルの消去状態を検出する消去ベリファイ動作を示している。
【０２９１】
ここでは、信号ＶＲＥＧは０Ｖ、信号ＶＲＦＹ１、ＶＲＦＹ２、ＶＲＦＹ３、ＰＲＯ１０、ＢＩＡＳは０Ｖのままなので図１７への表示を省略している。また、ＣＳＬｉが０Ｖ、ＣＳＬｉ＋１が０Ｖのままなので、図１７への表示を省略している。
【０２９２】
まず、選択されたブロックの選択ゲート線ＳＧ１が４．５Ｖになる。同時に、信号ＰＲＥ２がＶＣＣから７Ｖ、信号ＶＢＬ２が０ＶからＶＣＣとなってビッド線ＢＬｉ＋１がＶＣＣに充電される。このとき共通ソース線ＳＲＣも０ＶからＶＣＣとなる。信号ＰＲＥ１がＶＣＣから０Ｖとなってビット線ＢＬｉは浮遊状態にされる。つづいて、選択されたブロックの選択ゲート線ＳＧ２が０Ｖから４．５Ｖにされ、ワード線ＷＬ１〜ＷＬ４は０Ｖのままである。
【０２９３】
選択ゲート線ＳＧ２が４．５Ｖになると、メモリセルのしきい値が−０．７Ｖ以上であればビット線ＢＬｉは０．７Ｖ以下である。一定期間経った後、選択ゲート線ＳＧ２が０．０Ｖにされる。選択ゲート線ＳＧ２が０Ｖにリセットされた後、信号ＳＥＮ１、ＬＡＴ１をＶＣＣから０Ｖにする。信号ＰＲＳＴＢ１をＶＣＣから０Ｖにすると、ノードＮｂｉがＶＣＣとなる。
【０２９４】
信号ＰＲＳＴＢ１をＶＣＣに戻した後、信号ＰＲＯ１を０Ｖから１．８Ｖにする。メモリセルのしきい値が−０．７Ｖ以上であればビット線ＢＬｉは０．７Ｖ以下であるので、ｎチャネルＭＯＳトランジスタＱｎ３は、導通で、ノードＮｂｉはＶＣＣから下がる。ビット線ＢＬｉの電圧が０．８Ｖ以上であれば、ｎチャネルＭＯＳトランジスタＱｎ３は非導通で、ノードＮｂｉはＶＣＣを維持する。信号ＳＥＮ１がＶＣＣに戻りクロック同期式インバータＣＩ１が活性化され、ノードＮｂｉの電圧がセンスされる。
【０２９５】
信号ＬＡＴ１がＶＣＣに戻るとクロック同期式インバータＣＩ２が活性化され、センスされた信号の論理レベルが第１のサブデータ回路にラッチされる。再び、信号ＰＲＯ１が０Ｖとなってビット線ＢＬｉとＮｂｉが切り離された後、信号ＢＬＣ１がＶＣＣから０Ｖに、信号ＰＲＥ１がＶＣＣに戻って、ビット線ＢＬｉは０Ｖにリセットされる。
【０２９６】
また、信号ＰＲＥ２が７ＶからＶＣＣへ、信号ＶＢＬ２がＶＣＣから０Ｖへ戻って、ビット線ＢＬｉ＋１は０Ｖにリセットされる。共通ソース線ＳＲＣもＶＣＣから０Ｖに戻る。これで、ビット線ＢＬｉに繋がる選択されたブロックの４つのメモリセルのうち、１つでもそのしきい値が−０．７Ｖ以上であれば、第１のサブデータ回路に“１”の読み出しサブデータが記憶される。
【０２９７】
続いて、信号ＰＲＥ１がＶＣＣから７Ｖ、信号ＶＢＬ１が０ＶからＶＣＣとなってビット線ＢＬｉがＶＣＣに充電される。このとき共通ソース線ＳＲＣも０ＶからＶＣＣとなる。信号ＰＲＥ２がＶＣＣから０Ｖとなってビット線ＢＬｉ＋１は浮遊状態にされる。つづいて、選択されたブロックの選択ゲート線ＳＧ２が０Ｖから４．５Ｖにされ、ワード線ＷＬ１〜ＷＬ４は０Ｖのままである。
【０２９８】
選択ゲート線ＳＧ２が４．５Ｖになると、メモリセルのしきい値が−０．７Ｖ以上であればビット線ＢＬｉ＋１は０．７Ｖ以下である。一定期間経った後、選択ゲート線ＳＧ２が０．０Ｖにされる。選択ゲート線ＳＧ２が０Ｖにリセットされた後、信号ＳＥＮ２、ＬＡＴ２をＶＣＣから０Ｖにする。
【０２９９】
信号ＰＲＳＴＢ２をＶＣＣから０Ｖにすると、ノードＮｂｉ＋１がＶＣＣとなる。信号ＰＲＳＴＢ２をＶＣＣに戻した後、信号ＰＲＯ２を０Ｖから１．８Ｖにする。メモリセルのしきい値が−０．７Ｖ以上であればビット線ＢＬｉ＋１は０．７Ｖ以下であるので、ｎチャネルＭＯＳトランジスタＱｎ１０は、導通で、ノードＮｂｉ＋１はＶＣＣから下がる。ビット線ＢＬｉ＋１の電圧が０．８Ｖ以上であれば、ｎチャネルＭＯＳトランジスタＱｎ１０は非導通で、ノードＮｂｉ＋１はＶＣＣを維持する。
【０３００】
信号ＳＥＮ２がＶＣＣに戻りクロック同期式インバータＣＩ３が活性化され、ノードＮｂｉ＋１の電圧がセンスされる。信号ＬＡＴ２がＶＣＣに戻るとクロック同期式インバータＣＩ４が活性化され、センスされた信号の論理レベルが第２のサブデータ回路にラッチされる。
【０３０１】
再び、信号ＰＲＯ２が０Ｖとなってビット線ＢＬｉ＋１とＮｂｉ＋１が切り離された後、信号ＢＬＣ２がＶＣＣから０Ｖに、信号ＰＲＥ２がＶＣＣに戻って、ビット線ＢＬｉ＋１は０Ｖにリセットされる。また、信号ＰＲＥ１が７ＶからＶＣＣへ、信号ＶＢＬ１がＶＣＣから０Ｖへ戻って、ビット線ＢＬｉは０Ｖにリセットされる。
【０３０２】
共通ソース線ＳＲＣも、ＶＣＣから０Ｖに戻る。これで、ビット線ＢＬｉ＋１に繋がる選択されたブロックの４つのメモリセルのうち、１つでもそのしきい値が−０．７Ｖ以上であれば、第２のサブデータ回路に“１”の読み出しサブデータが記憶される。選択ゲート線ＳＧ１が４．５Ｖから０Ｖに戻って、消去ベリファイは終了する。
【０３０３】
図１８は、図１７の消去ベリファイ時におけるワード線制御回路６の動作を示している。
【０３０４】
選択されたブロックアドレス信号Ｐｉ、Ｑｉ、Ｒｉが０ＶからＶＣＣになって、信号ＢＷＬＨＢがＶＣＣから０Ｖに、ＶＰＰＲＷがＶＣＣから４．５Ｖとなり、信号ＯＳＣが０ＶとＶＣＣの間で振動し始めると、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートが５．５Ｖになる。
【０３０５】
ｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートの電圧は、信号ＶＰＰＲＷにｎチャネルＭＯＳトランジスタＱｎ２４のしきい値を加えたものになる。また、信号ＷＬＧＮＤＢは０Ｖのままなので、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４のゲートは０Ｖで非導通である。逆に、非選択ブロックのｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートの電圧は０Ｖで、非導通である。また、非選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４のゲートはＶＣＣで導通する。
【０３０６】
信号ＳＧＤ１がＶＣＣから４．５Ｖになって、選択されたブロックの選択ゲート線ＳＧ１が０Ｖから４．５Ｖになる。また、信号ＳＧＤ２が０Ｖから４．５Ｖとなって、選択ゲート線ＳＧ２が０Ｖから４．５Ｖになる。一定期間経った後、信号ＳＧＤ２は４．５Ｖから０Ｖに戻り、選択ゲート線ＳＧ２も４．５Ｖから０Ｖに戻る。再度、信号ＳＧＤ２が０Ｖから４．５Ｖとなって、選択ゲート線ＳＧ２が０Ｖから４．５Ｖになる。一定期間経った後、信号ＳＧＤ２は４．５Ｖから０Ｖに戻り、選択ゲート線ＳＧ２も４．５Ｖから０Ｖに戻る。
【０３０７】
非選択ブロックの選択ゲート線ＳＧ１とワード線ＷＬ１〜ＷＬ４はｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４によって０Ｖである。選択されたブロックアドレス信号Ｐｉ、Ｑｉ、ＲｉがＶＣＣから０Ｖとなって、信号ＢＷＬＨＢが０ＶからＶＣＣに、ＶＰＰＲＷが４．５ＶからＶＣＣとなり、信号ＯＳＣが０Ｖとなって、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ２８〜Ｑｎ３１のゲートは０Ｖにリセットされる。また、選択されたブロックのｎチャネルＭＯＳトランジスタＱｎ３２〜Ｑｎ３４のゲートはＶＣＣにもどされ、導通する。これで非導通状態に戻り、選択ゲート線ＳＧ１が０Ｖに戻る。
【０３０８】
図１９は、図１５の消去と、図１６の事前書き込みと、図１７及び図１８の消去ベリファイとを用いて行われるデータ消去のアルゴリズムを示している。
【０３０９】
このアルゴリズムは、制御信号及び制御電圧発生回路７で制御されている。データ消去の命令が入って（ステップＳ１）、先ず、変数ｊが１にされる（ステップＳ２）。図１５に示した消去が行われ（ステップＳ３）、変数ｉが１にされる（ステップＳ４）。図１６に示した事前書き込みが行われ（ステップＳ５）、その後、図１７及び図１８に示した消去ベリファイが行われる（ステップＳ６）。選択されたブロックの全てのメモリセルのしきい値が−０．７Ｖ以下であるか判断される（ステップＳ７）。
【０３１０】
もし、選択されたブロックの全てのメモリセルのしきい値が−０．７Ｖ以下であれば、変数ｉが１６以下か否かが判断される（ステップＳ８）。変数ｉが１６以下であれば、ｉに１を加えて（ステップＳ９）、事前書き込み電圧Ｖｓｐｇｍを０．２Ｖ増加させ（ステップＳ１０）、再度事前書き込みする（ステップＳ５）。変数ｉが１６を越えると、データ消去が失敗したとして、データ消去異常終了となる（ステップＳ１７）。
【０３１１】
消去ベリファイ（ステップＳ６）後、選択されたブロックのメモリセルのうち１つでもそのしきい値が−０．７Ｖ以上であると判断されると、変数ｉが５以上か否かが判断される（ステップＳ１１）。変数ｉが５以上であると、データ消去終了となる（ステップＳ１５）。変数ｉが４以下であり、変数ｊが２以下であると判断されると（ステップＳ１２）、変数ｊに１を加え（ステップＳ１３）、消去電圧Ｖｅｒａを１Ｖ増加させて（ステップＳ１４）、前回の消去が十分でなかったとして再度消去（ステップＳ３）が行われる。変数ｊが３以上になると、データ消去が失敗したとして、データ消去以上終了となる（ステップＳ１６）。
【０３１２】
この図１９に示されるデータ消去によって、過消去されたメモリセルを無くすことができる。よって、書き込みが正常に行える。
【０３１３】
以上説明したように、第１実施形態に関わる不揮発性半導体記憶装置によれば、消去後に少しだけ書き込みを進める（事前書込み）ことによって、過消去したとしても、この事前書込みにより正常なメモリセルの“０”状態に戻すことができ、“０”書き込み時に選択されたメモリセルの隣のメモリセルを確実に非導通とし、確実に“０”データを書き込むことができる。
【０３１４】
また、書き込みデータが“１”か“２”か“３”かによって、１回の書き込みパルス長を制御することによって、“１”、“２”、“３”書き込みそれぞれの書き込み速度の差を補償でき、“１”書き込みにあわせて、小刻みに書き込みパルスを印加しなければならないということがなくなり、データの書き換えが高速に行える。
【０３１５】
以下、本発明による不揮発性半導体記憶装置の他の実施形態を説明する。他の実施形態の説明において第１の実施形態と同一部分は同一参照数字を付してその詳細な説明は省略する。
【０３１６】
（第２実施形態）
図２０は、第２実施形態に係る４値記憶式ＮＡＮＤフラッシュメモリの構成を示す。カラムデコーダ３は、カラム選択信号ＣＳＬを順に自動的に発生するためのＣＳＬ初期値記憶及ぴＣＳＬ自動発生回路３１と、カラム選択信号ＣＳＬを出力するＣＳＬ出力回路３２を備えている。データ入出力バッファ４は、データ入出力端子５１に入力されたアドレスデータを取り込むためのアドレスデータバッファ４１、ビット線制御回路２から出力される読み出しデータをデータ入出力端子５やデータ検出回路４３に転送するための読み出しデータバッファ４２、読み出しデータのデータに応じてフラグ信号を出力するデータ検出回路４３、データ入出力端子５に入力された書き込みデータを取り込むための書き込みデータバッファ４４、データ入出力端子５に入力されフラッシュメモリヘの命令であるコマンドデータを取り込むためのコマンドデータバッファ４５、データ入出力端子５に入力され内部で発生される電圧を制御するための電圧トリミングデータを取り込むための電圧トリミングデータバッファ４６を備えている。
【０３１７】
制御信号および制御電圧発生回路７は、消去電圧Ｖｅｒａ、書き込み電圧Ｖｐｇｍ、事前書き込み電圧Ｖｓｐｇｍの電圧値を制御するためのＶｅｒａ設定回路７１，Ｖｐｇｍ設定回路７２，Ｖｓｐｇｍ設定回路７３を備えている。これらは、図１４、図１９のアルゴリズムに見られるＶｅｒａ，Ｖｐｇｍ、Ｖｓｐｇｍの段階的な印加を制御する。Ｖｅｒａ，Ｖｐｇｍ、Ｖｓｐｇｍの初期値を電圧トリミングデータとして電圧トリミングデータバッファ４６から受け取り、自動的にアルゴリズムに従って電圧トリミングデータを変化させ、Ｖｅｒａ、Ｖｐｇｍ、Ｖｓｐｇｍの電圧を増加させる。また、消去や書き込み終了後のＶｅｒａ、Ｖｐｇｍ、Ｖｓｐｇｍの電圧値を電圧トリミングデータとして電圧トリミングデータバッファ４６に転送することができる。この電圧トリミングデータバッファ４６に転送された電圧トリミングデータは、データ入出力端子５から外部へ出力することができる。
【０３１８】
図２１は、段階的に印加される消去電圧Ｖｅｒａの初期値を決めるためのテストのアルゴリズムを示している。テストが開始され（ステップＳ１）、先ず、消去電圧Ｖｅｒａの初期値として十分低い電圧Ｖｅｒａ−ｉｎｉｔをセットする（ステップＳ２）。これは、電圧Ｖｅｒａ−ｉｎｉｔに対応する電圧トリミングデータをＶｅｒａ設定回路７１に入力することで行われる。また、事前書込み電圧Ｖｓｐｇｍとして十分高い電圧Ｖｓｐｇｍ−ｔｅｓｔをセットする（ステップＳ３）。これは、Ｖｓｐｇｍ−ｔｅｓｔに対応する電圧トリミングデータをＶｓｐｇｍ設定回路７３に入力することで行われる。変数ＩＰＡＳＳに０をセットし（ステップＳ４）、先頭のブロックを選択する（ステップＳ５）。事前書込み電圧Ｖｓｐｇｍ−ｔｅｓｔで事前書き込みを行う（ステップＳ６）。これは、消去前に一定の書き込み状態にセルをしておくことで、消去後のセルのしきい値を安定させるためである。その後、消去し（ステップＳ７）、続いて消去ベリファイを行う（ステップＳ８）。
【０３１９】
カラムデコーダ３で、カラム選択信号ＣＳＬを順に自動的に発生し、ビット線制御回路２から出力される読み出しデータをデータ検出回路４３で検出する。１６，８９６（＝４，２２４×４（図２参照））個のセルが消去され、消去ベリファイで４，２２４ビットのデータに圧縮されて読み出される。セルのしきい値が−０．７Ｖ以上であることを示すデータが、この４，２２４ビットのデータの中で複数ビット（例えば５ビット）以上あるか否かをデータ検出回路４３が判定する（ステップＳ９）。１ビットでもセルのしきい値が−０．７Ｖ以上であれば、消去電圧Ｖｅｒａが不足であるが、これでは、消去できない不良セルが１つでもあると常にセルのしきい値が−０．７Ｖ以上となる場合があり、正しく消去電圧Ｖｅｒａを求めることができな＜なる。このため、複数ビット分のデータを監視する。
【０３２０】
もし、５ビット以上であればｌＰＡＳＳを１だけ増加させる（ステップＳ１０）。ブロックアドレスが最終番地か否かを判定して（ステップＳ１１）、ブロックアドレスが最終番地でなければ次のブロックを選択して（ステップＳ１２）、ステップＳ６〜ステップＳ１２を繰り返す。
【０３２１】
全てのブロックに対してステップＳ６〜ステップＳ１２が実行されたら、ｌＰＡＳＳがＮｐａｓｓより大きいか否かを判定する（ステップＳ１３）。Ｎｐａｓｓはほぼ０に近い値、例えばブロックの数の１割程度にする。全ブロックが正常なブロックならｌＰＡＳＳが０か否かを判定すればよいが、ほぼ０に近い値にしているのは、不良ブロックがあると正しく消去電圧Ｖｅｒａを求めることができなくなるからである。つまり、平均的なブロックで消去できたか否かをステップＳ１３で判定するのである。もし、ｌＰＡＳＳがＮｐａｓｓより小ざければ、現在の消去電圧Ｖｅｒａで消去できることになり、マージンを例えば０．５Ｖ程度高めにとって、消去電圧の最適値として記憶し（ステップＳ１６）、テスト終了となる（ステップＳ１８）。もし、ｌＰＡＳＳがＮｐａｓｓよリ大きければ、現在の消去電圧Ｖｅｒａでは消去不足であることになる。よって、電圧Ｖｅｒａが限界値Ｖｅｒａ−ｍａｘに達したか否かを判定し（ステップＳ１４）、達していなければ、Ｖｅｒａを例えぱ０．５Ｖ増加させ（ステップＳ１５）、ステップＳ４〜ステップＳ１５を繰り返す。電圧Ｖｅｒａが限界値Ｖｅｒａ−ｍａｘに達していれば、消去電圧Ｖｅｒａの最適値が見つからなかったとして、不良品の判定が行われ（ステップＳ１７）、テスト終了となる（ステップＳ１８）。
【０３２２】
同様に、図２２は、事前書き込み電圧Ｖｓｐｇｍの初期値を決めるためのテストのアルゴリズムを示している。テストが開始され（ステップＳ１）、先ず、事前書込み電圧Ｖｓｐｇｍの初期値として十分高い電圧Ｖｓｐｇｍ−ｔｅｓｔをセットする（ステップＳ２）。これは、電圧Ｖｓｐｇｍ−ｔｅｓｔに対応する電圧トリミングデータをＶｓｐｇｍ設定回路７３に入力することで行われる。先頭のブロックを選択する（ステップＳ３）。事前書込み電圧Ｖｓｐｇｍ−ｔｅｓｔで事前書き込みを行う（ステップＳ４）。これは、消去前に一定の書き込み状態にセルをしておくことで、消去後のセルのしきい値を安定させるためである。ブロックアドレスが最終番地か否かを判定して（ステップＳ５）、ブロックアドレスが最終番地でなければ次のブロックを選択して（ステップＳ６）、ステップＳ３〜ステップＳ６を繰り返す。
【０３２３】
次に、消去電圧Ｖｅｒａとして、図２１に示したテストで求められた電圧Ｖｅｒａをセットし、事前書込み電圧Ｖｓｐｇｍの初期値として十分低い電圧Ｖｓｐｇｍ−ｉｎｉｔをセットする（ステップＳ７）。これは、電圧Ｖｅｒａと電圧Ｖｓｐｇｍ−ｉｎｉｔに対応する電圧トリミングデータをＶｅｒａ設定回路７１、Ｖｓｐｇｍ設定回路７３に入力することで行われる。変数Ｌｏｏｐ−ｓｕｍとｋを０にセットして（ステップＳ８）、先頭のブロックを選択する（ステップＳ９）。消去電圧Ｖｅｒａで消去し（ステップＳ１０）、変数Ｌｏｏｐに１をセットし（ステップＳ１１）、続いて、事前書き込み電圧Ｖｓｐｇｍで事前書き込みし（ステップＳ１２）、消去ベリファイを行う（ステップＳ１３）。
【０３２４】
カラムデコーダ３で、カラム選択信号ＣＳＬを順に自動的に発生し、ビット線制御回路２から出力される読み出しデータをデータ検出回路４３で検出する。１６，８９６個のセルが消去され、消去ベリファイで４，２２４ビットのデータに圧縮されて読み出される。セルのしきい値が−０．７Ｖ以上であることを示すデータが、この４，２２４ビットのデータの中で複数ビット（例えば５ビット）以上あるか否かをデータ検出回路４３が判定する（ステップＳ１４）。１ビットでもセルのしきい値が−０．７Ｖ以上であれば、事前書き込み終了であるが、これでは、不良セルが１つでもあると常にセルのしきい値が−０．７Ｖ以上となる場合があり、正しく事前書き込み電圧Ｖｓｐｇｍを求めることができな＜なる。このため、複数ビット分のデータを監視する。
【０３２５】
もし、５ビットより少なければ、変数Ｌｏｏｐが最大値Ｌｏｏｐ−ｍａｘに達しているか否かを判定し（ステップＳ１５）、達していなけれぱＬｏｏｐを１だけ増加させ（ステップＳ１６）、事前書込み電圧Ｖｓｐｇｍを例えば０．２Ｖだけ高めて（ステップＳ１７）、再度事前書き込みする（ステップＳ１２）。ＬｏｏｐがＬｏｏｐ−ｍａｘに達していれば、次のブロックを選択する（ステップＳ２０）。
【０３２６】
もし、５ビット以上であれば、変数Ｌｏｏｐ−ｓｕｍにＬｏｏｐを加え（ステップＳ１８）、ｋを１だけ増加させ（ステップＳ１９）、次のブロックを選択する（ステップＳ２０）。
【０３２７】
ブロックアドレスが最終番地でなければ次のブロックを選択して（ステップＳ２１）、ステップＳ１０〜ステップＳ２１を繰り返す。
【０３２８】
ブロックアドレスが最終番地であれば、平均ループ回数を求める（ステップＳ２２）。ループ回数は、ステップＳ１２〜ステップＳ１７で構成されるループを繰り返した数である。図１９に示したように、例えばループの数を５以上、かつ１６以下となるように、事前書込み電圧Ｖｓｐｇｍを算出し（ステップＳ２３）、テスト終了となる。平均ループ数が５より小さければ、事前書き込み電圧Ｖｓｐｇｍの初期値を低＜する。平均ループ数が１６より大きければ、事前書き込み電圧Ｖｓｐｇｍの初期値を高くする。
【０３２９】
さらに、図２３は、書き込み電圧Ｖｐｇｍの初期値を決めるためのテストのアルゴリズムを示している。テストが開始され（ステップＳ１）、先ず、事前書き込み電圧Ｖｓｐｇｍの初期値として十分高い電圧Ｖｓｐｇｍ−ｔｅｓｔをセットする（ステップＳ２）。これは、電圧Ｖｓｐｇｍ−ｔｅｓｔに対応する電圧トリミングデータをＶｓｐｇｍ設定回路７３に入力することで行われる。先頭のブロックを選択する（ステップＳ３）。事前書込み電圧Ｖｓｐｇｍ−ｔｅｓｔで事前書き込みを行う（ステップＳ４）。これは、消去前に一定の書き込み状態にセルをしてお＜ことで、消去後のセルのしきい値を安定させるためである。ブロックアドレスが最終番地か否かを判定して（ステップＳ５）、ブロックアドレスが最終番地でなければ次のブロックを選択して（ステップＳ６）、ステップＳ３〜ステップＳ６を繰り返す。
【０３３０】
次に、消去電圧Ｖｅｒａとして、図２１に示したテストで求められた電圧Ｖｅｒａをセットし、また、事前書込み電圧Ｖｓｐｇｍ−ｉｎｉｔの初期値として図２２に示したテストで求められた電圧Ｖｓｐｇｍをセットする（ステップＳ７）。これは、電圧Ｖｅｒａと電圧Ｖｓｐｇｍに対応する電圧トリミングデータをＶｅｒａ設定回路７１、Ｖｓｐｇｍ設定回路７３に入力することで行われる。変数Ｌｏｏｐ−ｓｕｍとｋを０にセットして（ステップＳ８）、先頭のブロックを選択する（ステップＳ９）。消去電圧Ｖｅｒａで消去し（ステップＳ１０）、変数Ｌｏｏｐに１をセットし（ステップＳ１１）、続いて、事前書き込み電圧Ｖｓｐｇｍで事前書き込みし（ステップＳ１２）、外部電圧制御消去ベリファイを行う（ステップＳ１３）。
【０３３１】
事前書込み動作後におけるメモリセルの消去状態を検出する外部電圧制御消去ベリファイ動作を図２４に、このベリファイ時におけるワード線制御回路６の動作を図２５に示す。この外部電圧制御消去ベリファイは、図１７、図１８を参照して説明した第１実施形態の消去ベリファイとよく似ているが、違いは、図２４、図２５に示したように、ワード線ＷＬ１〜ＷＬ４の電圧が制御信号入力端子８から入力されたＶｅｘｔとされることである。そのため、ここでは、セルのしきい値がＶｅｘｔ−０．７Ｖ（＝Ｖｔ−ｒｅｆ）であるか否かが検出される。例えば、Ｖｅｘｔ＝１Ｖとすると、セルのしきい値が０．３Ｖであるか否かが検出される。
【０３３２】
カラムデコーダ３で、カラム選択信号ＣＳＬを順に自動的に発生し、ビット線制御回路２から出力される読み出しデータをデータ検出回路４３で検出する。１６，８９６個のセルが消去され、消去ベリファイで４，２２４ビットのデータに圧縮されて読み出される。セルのしきい値がＶｔ−ｒｅｆ以上であることを示すデータが、この４，２２４ビットのデータの中で複数ビット（例えば５ビット）以上あるか否かをデータ検出回路４３が判定する（ステップＳ１４）。１ビットでもセルのしきい値がＶｔ−ｒｅｆ以上であれば、事前書き込み終了であるが、これでは、不良セルが１つでもあると常にセルのしきい値がＶｔ−ｒｅｆ以上となる場合があり、正しく書き込み電圧Ｖｐｇｍを求めることができな＜なる。このため、複数ビット分のテータを監視する。
【０３３３】
もし、５ビットより少なければ、変改Ｌｏｏｐが最大値Ｌｏｏｐ−ｍａｘに達しているか否かを判定して（ステップＳ１５）、達していなけれぱＬｏｏｐを１だけ増加させ（ステップＳ１６）、事前書込み電圧Ｖｓｐｇｍを例えば０．２Ｖだけ高めて（ステップＳ１７）、再度事前書き込みする（ステップＳ１２）。Ｌｏｏｐが最大値Ｌｏｏｐ−ｍａｘに達していれば、次のブロックを選択する（ステップＳ２０）。
【０３３４】
もし、５ビット以上であれば、変数Ｌｏｏｐ−ｓｕｍにＬｏｏｐを加え（ステップＳ１８）、ｋを１だけ増加させ（ステップＳ１９）、次のブロックを選択する（ステップＳ２０）。
【０３３５】
ブロックアドレスが最終番地でなければ次のブロックを選択して（ステップＳ２１）、ステップＳ１０〜ステップＳ２１を繰り返す。
【０３３６】
ブロックアドレスが最終番地であれば、平均ループ回数を求める（ステップＳ２２）。ループ回数は、ステップＳ１２〜ステップＳ１７で構成されるループを繰り返した数である。図１４に示したように、書き込み時にループの数が２０以下となるように、書き込み電圧Ｖｐｇｍを算出し（ステップＳ２３）、テスト終了となる。
【０３３７】
このように、事前書き込み動作を用いて書き込み電圧Ｖｐｇｍを算出するのは、テスト時間が短いからである。事前書き込み動作と消去ベリファイ動作はブロック一括で行われるので、書き込み動作や書き込みベリファイ動作のように１ぺージの半分づつ行うのに比べ、図２に示したアレイの場合、８分の１で済む。
【０３３８】
第２実施形態によれば、段階的に印加される消去電圧、事前書込み電圧、書き込み電圧の適切な初期値を求めることができ、消去、事前書込み、書き込みを短時間に終わらせることができる。
【０３３９】
（第３実施形態）
図２６は、第３実施形態に係る４値記憶式ＮＡＮＤフラッシュメモリの構成を示す。第３実施形態は第２実施形態の改良に関するものであり、消去電圧Ｖｅｒａ、書き込み電圧Ｖｐｇｍ、事前書き込み電圧Ｖｓｐｇｍの初期値を記憶するためのＲＯＭ１９をさらに備えている。そして、外部より電圧トリミングデータが入力されない場合は、ＲＯＭ１９に記憶されている電圧トリミングデータが自動的にＶｅｒａ設定回路７１，Ｖｐｇｍ設定回路７２，Ｖｓｐｇｍ設定回路７３に転送される。
【０３４０】
第３実施形態によれば、一度、消去電圧Ｖｅｒａ、書き込み電圧Ｖｐｇｍ、事前書き込み電圧Ｖｓｐｇｍの初期値を求めて、それを記憶しておくことができるので、毎回、初期値を求め直さなくても済む。
【０３４１】
（第４実施形態）
図２７は本発明の第４実施形態としてのフラッシュメモリシステムの構成図である。ここでは、フラッシュメモリ２０としては、図２０に示した第２実施形態の４値記憶式ＮＡＮＤフラッシュメモリでもよいし、図２６に示した第３実施形態の４値記憶式ＮＡＮＤフラッシュメモリでもよい。
【０３４２】
本メモリシステムでは、例えば図２０に示す４個のフラッシュメモリ２０をフラッシュシステムコントローラ２１が制御する。フラッシュシステムコントローラ２１は電圧トリミングデータＲＯＭ２４を備えていて、各フラッシュメモリ２０に最適な電圧トリミングデータを各フラッシュメモリ２０に入力する。また、フラッシュシステムコントローラ２１はファイル管理用メモリ２２を備え、フラッシュメモリ２０に書き込まれたデータファイルに関するデータ（書き込みを行った時刻など）を記憶する。ファイル管理用メモリ２２は、例えばＳＲＡＭである。さらに、フラッシュシステムコントローラ２１はタイマー２３を備え、各データファイルが書き込まれてからどのくらいの時間が経過したかを監視する。フラッシュシステムコントローラ２１はフラッシュメモリシステムインターフェイス２５と外部端子２６を介して外部と信号のやり取りをする。外部端子２６からは、信号のみならず、このフラッシュメモリシステムの電源電圧も供給される。本システムは、外部からの電源供給がない場合に備え、バックアップ用の電池２７を備えている。バックアップ電池２７はフラッシュシステムコントローラ２１の（タイマー２３の）電源となる。もし、あるデータファイルを書き込んでから所定の時間が経過したら、データ破壊の危険性があるとして、フラッシュシステムコントローラ２１はインジケータ２８に警告信号を出す。インジケータ２８はフラッシュメモリシステムの外部へこの警告信号を出す。インジケータ２８にもバックアップ電池２７から電源が供給される。例えば、フラッシュシステムコントローラ２１が、あるデータファイルを書き込んでから所定の時間が経過したことを検出し、データ破壊の危険性があると判断した場合は、自動的にそのデータファイルのデータのリフレッシュをする。これにより、より信頼性が向上する。
【０３４３】
外部からの電源供給がない場合、バックアップ電池２７からの電源供給はフラッシュシステムコントローラ２１に対して行われるが、フラッシュシステムコントローラ２１によってフラッシュメモリ２０には供給されず遮断される。データのリフレッシュをする場合のみ、フラッシュシステムコントローラ２１はフラッシュメモリ２０に電源を供給する。
【０３４４】
バックアップ電池２７は再充電可能で、外部よリ電源供給がある場合に、再充電される。外部よリ電源供給がある場合は、フラッシュシステムコントローラ２１は外部から供給される電源を優先的に使う。
【０３４５】
図２８は、図２７に示したフラッシュメモリシステムをメモリカード状に構成した例である。インジケータ２８は一部が外部に接している。例えば、もし、あるデータファイルを書き込んでから所定の時間が経過したら、データ破壊の危険性があるとして、フラッシュシステムコントローラ２１はインジケータ２８に警告信号を出す。インジケータはたとえばその色を変えて、外部にデータ破壊の危険性を知らせる。
【０３４６】
第４実施形態によれば、データ書き換え後、どれだけの時間が経ったかを監視し続け、データ保持が危ういことを検出すると、データリフレッシュなどを行い、データの消失を防ぎ、高信頼性を実現することができる。
【０３４７】
なお、本発明は、上述した実施形態に限定されるものではない。その他、本発明の要旨を逸脱しない範囲で、種々変形して実施することができる。メモリセルはＮＡＮＤ型メモリセルについて説明したが、ＮＯＲ型メモリセル等の他の型のメモリセルにも同様に適用可能である。また、多値記憶は４値記憶に限らず、３値、５値等でもよい。
【０３４８】
【発明の効果】
以上説明したように、本発明の不揮発性半導体記憶装置によれば、消去後に少しだけ書き込みを進める。これによって、過消去しても正常なメモリセルの“０”状態に戻すことができ、“０”書き込み時に選択されたメモリセルの隣のメモリセルが非導通となり、メモリセルのデータが書き変わらないようにさせることが実現できる。
【０３４９】
また、本発明の不揮発性半導体記憶装置によれば、書き込みデータが“１”か“２”か“３”かによって、１回の書き込みパルス長を制御する。これによって、“１”、“２”、“３”書き込みそれぞれの書き込み速度の差を補償でき、“１”書き込みにあわせて、小刻みに書き込みパルスを印加しなければならないということがなくなり、データの書き換えが高速に行える。
【０３５０】
また、本発明による不揮発性半導体メモリシステムによれば、データ書き換え後、どれだけの時間が経ったかを監視し続けるので、データ保持が危うい場合を検出することができる。この検出に応じて、データリフレッシュ等を行い、データの消失を防ぎ、高信頼性を実現する。
【図面の簡単な説明】
【図１】本発明による不揮発性半導体記憶装置の第１実施形態の構成を示す図。
【図２】メモリセルアレイとデータ記憶回路の構成を示す図。
【図３】メモリセル及び選択トランジスタの構造を示す図。
【図４】ＮＡＮＤセルの構造を示す図。
【図５】図２に示すデータ記憶回路の具体的な構成を示す図。
【図６】図５に示すクロック同期式インバータの具体的な構成を示す図。
【図７】図１に示すワード線制御回路の具体的な構成を示す図。
【図８】第１実施形態の不揮発性半導体記憶装置の読み出し動作を示す図。
【図９】第１実施形態の不揮発性半導体記憶装置の読み出し時のワード線制御回路の動作を示す図。
【図１０】第１実施形態の不揮発性半導体記憶装置の書き込み動作を示す図。
【図１１】第１実施形態の不揮発性半導体記憶装置の書き込み時のワード線制御回路の動作を示す図。
【図１２】第１実施形態の不揮発性半導体記憶装置の書き込みベリファイ動作を示す図。
【図１３】第１実施形態の不揮発性半導体記憶装置の書き込みベリファイ時のワード線制御回路の動作を示す図。
【図１４】第１実施形態の不揮発性半導体記憶装置の書き込みアルゴリズムを示す図。
【図１５】第１実施形態の不揮発性半導体記憶装置の消去動作を示す図。
【図１６】第１実施形態の不揮発性半導体記憶装置の事前書き込み動作を示す図。
【図１７】第１実施形態の不揮発性半導体記憶装置の消去ベリファイ動作を示す図。
【図１８】第１実施形態の不揮発性半導体記憶装置の消去ベリファイ時のワード線制御回路の動作を示す図。
【図１９】本発明の不揮発性半導体記憶装置のデータ消去アルゴリズムを示す図。
【図２０】本発明の不揮発性半導体記憶装置の第２実施形態の構成を示す図。
【図２１】第２実施形態の消去電圧テストアルゴリズムを示す図。
【図２２】第２実施形態の事前書き込み電圧テストアルゴリズムを示す図。
【図２３】第２実施形態の書き込み電圧テストアルゴリズムを示す図。
【図２４】第２実施形態の外部電圧制御消去ベリファイ動作を示す図。
【図２５】第２実施形態の外部電圧制御消去ベリファイ時のワード線制御回路の動作を示す図。
【図２６】本発明の不揮発性半導体記憶装置の第３実施形態の構成を示す図。
【図２７】本発明の不揮発性半導体記憶装置の第４実施形態の構成を示す図。
【図２８】第４実施形態の変形例としてのカード状に構成したフラッシュメモリシステムを示す図。
【符号の説明】
１…メモリセルアレイ
２…ビット線制御回路
３…カラムデコーダ
４…データ入出力バッファ
５…データ入出力端子
６…ワード線制御回路
７…制御信号および制御電圧発生回路
８…制御信号入出力端子
１０…データ記憶回路
１１…ｐ型半導体基板
１２…ｎ型の拡散層
１３…絶縁膜
１４…浮遊ゲート
１５…絶縁膜
１６…制御ゲート
１７…絶縁膜
１８…選択ゲート
１９…ＲＯＭ
２０…フラッシュメモリ
２１…フラッシュメモリコントローラ
２２…ファイル管理メモリ
２３…タイマー
２４…電圧トリミングデータＲＯＭ
２５…フラッシュメモリシステムインターフェース
２６…外部端子
２７…バックアップ電池
２８…インジケータ
２９…フラッシュメモリーカード
３１…ＣＳＬ初期値記憶及びＣＳＬ自動発生回路発
３２…ＣＳＬ出力回路
４１…アドレスデータバッファ
４２…読出しデータバッファ
４３…データ検出かいろ
４４…書き込みデータバッファ
４５…コマンドデータバッファ、
４６…電圧トリミングデータ
７１…Ｖｅｒａ設定回路
７２…Ｖｐｇｍ設定回路
７３…Ｖｓｐｇｍ設定回路
Ｍ…メモリセル
Ｓ…選択トランジスタ
ＷＬ…ワード線
ＢＬ…ビット線
ＳＧ…選択ゲート線
ＳＲＣ…ソース線
Ｑｎ…ｎチャネルＭＯＳトランジスタ
Ｑｎｄ…ディプレッション型ｎチャネルＭＯＳトランジスタ
Ｑｐ…ｐチャネルＭＯＳトランジスタ
ＶＣＣ…電源電圧
ＣＩ…クロック同期式インバータ。
【図１】
0004157189.tif 000006
【図２】
0004157189.tif 000007
【図３】
0004157189.tif 000008
【図４】
0004157189.tif 000009
【図５】
0004157189.tif 000010
【図６】
0004157189.tif 000011
【図７】
0004157189.tif 000012
【図８】
0004157189.tif 000013
【図９】
0004157189.tif 000014
【図１０】
0004157189.tif 000015
【図１１】
0004157189.tif 000016
【図１２】
0004157189.tif 000017
【図１３】
0004157189.tif 000018
【図１４】
0004157189.tif 000019
【図１５】
0004157189.tif 000020
【図１６】
0004157189.tif 000021
【図１７】
0004157189.tif 000022
【図１８】
0004157189.tif 000023
【図１９】
0004157189.tif 000024
【図２０】
0004157189.tif 000025
【図２１】
0004157189.tif 000026
【図２２】
0004157189.tif 000027
【図２３】
0004157189.tif 000028
【図２４】
0004157189.tif 000029
【図２５】
0004157189.tif 000030
【図２６】
0004157189.tif 000031
【図２７】
0004157189.tif 000032
【図２８】
0004157189.tif 000033