(57)【要約】【課題】ページバッファにおける専用トランジスタを不要とし、かつ、フェイルビット数だけでなく、パスビット数の変化を検出できる不揮発性半導体記憶装置を提供することにある。【解決手段】ベリファイ処理において、ビット線から読み出し、ページバッファ群１３のラッチに書き込まれたデータが読み出される一括判定信号線（共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦ）と、ページバッファにおけるラッチの出力に接続されるトランジスタと直列に接続されるトランジスタを制御して、当該トランジスタを介してラッチの出力に応じて一括判定信号線に単位電流を流すページバッファ電流制御回路２１と、一括判定信号線に流れる電流を単位電流で除算して、ページバッファに接続されるビット線にメモリセルから読み出したデータのフェイル状態の個数を検出するビット数判定用電流検出回路２２と、を備える。【選択図】図２
2013127827.tif 000002
【特許請求の範囲】
【請求項１】
複数のビット線と複数のワード線との各々が交差し、交差した部分に不揮発性のメモリセルが配置されたメモリセルアレイと、
前記ビット線毎に設けられ、前記ワード線により選択された当該メモリセルに書き込むデータまたは前記メモリセルから読み出したデータを記憶するラッチを含むページバッファと、
ベリファイ処理において、前記ページバッファの前記ラッチに書き込まれたデータが読み出される一括判定信号線と、
前記ページバッファにおける前記ラッチの出力に接続される第１トランジスタと直列に接続される第２トランジスタを制御して、当該第２トランジスタを介して前記ラッチの出力に応じて前記一括判定信号線に単位電流を流すページバッファ電流制御回路と、
前記ベリファイ処理において、前記一括判定信号線に流れる電流を前記単位電流で除算して、前記ページバッファに接続される前記ビット線に前記メモリセルから読み出したデータのフェイル状態の個数を検出するビット数判定用電流検出回路と、
を備えることを特徴とする不揮発性半導体記憶装置。
【請求項２】
前記ビット数判定用電流検出回路は、
前記ベリファイ処理においてカウントアップ動作を行う電流制御カウンタと、
前記電流制御カウンタの出力に応じて、前記単位電流の整数倍の基準電流を発生する基準電流発生回路と、
前記一括判定信号線に流れる電流と前記基準電流とを比較して、前記一括判定信号線に流れる電流が前記基準電流を超えると、出力である比較結果信号を活性レベルへ変化させる電流比較回路と、
前記比較結果信号が活性レベルになると、前記電流制御カウンタの出力をラッチするビット数保持ラッチと、
を有することを特徴とする請求項１に記載の不揮発性半導体記憶装置。
【請求項３】
前記ベリファイ処理がプログラムベリファイ処理の場合、
前記ビット数ラッチは、前記ページバッファにおける前記ラッチに最初に書き込まれたデータに基づいて、前記電流制御カウンタの出力をラッチし、
前記基準電流発生回路は、前記ビット数保持ラッチにラッチされた前記電流制御カウンタの出力に応じて、前記基準電流を発生し、
前記電流比較回路は、前記比較結果信号を活性レベルへ変化させる、
ことを特徴とする請求項２記載の不揮発性半導体記憶装置。
【請求項４】
前記ベリファイ処理がイレースベリファイ処理の場合、
前記ビット数ラッチは、前記ページバッファにおける前記ラッチの一回目のベリファイ結果に基づいて、前記電流制御カウンタの出力をラッチし、
前記基準電流発生回路は、前記ビット数保持ラッチにラッチされた前記電流制御カウンタの出力に応じて、前記基準電流を発生し、
前記電流比較回路は、前記比較結果信号を活性レベルへ変化させる、
ことを特徴とする請求項２記載の不揮発性半導体記憶装置。
【請求項５】
前記ビット数保持ラッチにラッチされた前記電流制御カウンタの出力から、予め設定されたパスビット数を減算する演算回路を備え、
前記基準電流発生回路は、前記演算回路の減算結果に応じて前記基準電流を発生する、
ことを特徴とする請求項３または請求項４いずれか一項に記載の不揮発性半導体記憶装置。
【請求項６】
前記基準電流発生回路は、前記ビット数保持ラッチにラッチされた前記電流制御カウンタの出力に対応する基準電流に、前記フェイル状態の個数に対するパスビットの比率を示す、予め設定された１／ｍ（ｍ≧１）を乗じた前記基準電流を発生し、
前記電流比較回路は、前記一括判定信号線に流れる電流のｎ（ｎ≧１）倍の電流を発生する回路であって、ｎ倍後の電流と前記基準電流とを比較する、
ことを特徴とする請求項３または請求項４いずれか一項に記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体記憶装置に関する。
【背景技術】
【０００２】
ＮＡＮＤ型ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）において、データの読み出しを行うとき、ページ単位でデータをメモリセルから同時に読み出してシリアル出力し、データの書き込み（プログラム）を行うとき、１ページ単位でデータをシリアル入力し、ページ単位でメモリセルに対してデータのプログラムを行う。
そして、正しくプログラムされたか否かを判定するためにデータを読み出すベリファイ読み出しの際、ページ単位でメモリセルへのプログラムが十分行われたか否かの判定を一括することが行われている。
【０００３】
例えば、特許文献１記載のＥＥＰＲＯＭは、書換／読出回路（ページバッファ）がカラム単位でビット線毎に共通に配設された一括判定信号線（共通ノード２６）に接続されている。
この一括判定信号線は、プログラム後のベリファイ読み出し動作において、プログラムが十分に行われたか否かの判定を、複数のカラムで一括して行うため、ページバッファにおけるラッチの出力に対して共通に接続される（ワイアードオア構成）。
【０００４】
この一括判定信号線を用いたベリファイ判定では、ページ内の全てのカラムが成功（パス）したことしか知ることができないという問題がある。そのため、特許文献１記載のＥＥＰＲＯＭでは、いくつのカラムがパスしなかったか、つまりいくつのカラムがフェイルしたかを示すフェイル数を検出するための回路を設けている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−１４０８９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１記載の不揮発性半導体記憶装置は、ページバッファの一定単位ごとに、ページバッファにおけるラッチのパス及びフェイルの状態に応じて、それぞれが異なる電流を流す複数のトランジスタから構成される許容フェイル数設定回路を備えている。特許文献１記載の不揮発性半導体記憶装置は、一括判定信号線に流れる電流（第１の電流）と、許容フェイル数設定回路に流れる電流（第２の電流）とを比較して、フェイルビット数を検出することを可能としている。
【０００７】
しかしながら、特許文献１記載の不揮発性半導体記憶装置の構成を用いて、フェイルビット数を検出する場合、カラムにより区別されるページバッファの個数を２ｎとすると、それぞれが異なる電流を流す複数のトランジスタが（ｎ＋１）個必要となる。そのため、フェイルビット数を±１の範囲内で精度よく検出するためには、互いにサイズの異なる、許容フェイル数設定回路用の専用トランジスタが必要となり、チップサイズが増大し、チップのコストが上がるという問題があった。
【０００８】
また、プログラム動作においては、プログラムを行わないセルに対しては、ページバッファのラッチにはインヒビットデータ（書き込み禁止データ）としてパスデータが予め格納されているため、プログラム前に比べて、変化したパスビット数を検出することが不可能であった。同様に、イレース動作においても、イレース前の状態が“１”のセルについては、すでにパスした状態のため、ページバッファのラッチにはパスデータが格納されてしまうため、イレース前から変化したパスビット数を検出することが不可能であった。
【０００９】
そこで本発明が解決しようとする課題は、ページバッファにおける専用トランジスタを不要とし、かつ、フェイルビット数だけでなく、パスビット数の変化を検出できる不揮発性半導体記憶装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の不揮発性半導体記憶装置は、複数のビット線と複数のワード線との各々が交差し、交差した部分に不揮発性のメモリセルが配置されたメモリセルアレイと、前記ビット線毎に設けられ、前記ワード線により選択された当該メモリセルに書き込むデータまたは前記メモリセルから読み出したデータを記憶するラッチを含むページバッファと、ベリファイ処理において、前記ページバッファの前記ラッチに書き込まれたデータが読み出される一括判定信号線と、前記ページバッファにおける前記ラッチの出力に接続される第１トランジスタと直列に接続される第２トランジスタを制御して、当該第２トランジスタを介して前記ラッチの出力に応じて前記一括判定信号線に単位電流を流すページバッファ電流制御回路と、前記ベリファイ処理において、前記一括判定信号線に流れる電流を前記単位電流で除算して、前記ページバッファに接続される前記ビット線に前記メモリセルから読み出したデータのフェイル状態の個数を検出するビット数判定用電流検出回路と、を備えることを特徴とする。
【００１１】
また、本発明の不揮発性半導体記憶装置において、前記ビット数判定用電流検出回路は、前記ベリファイ処理においてカウントアップ動作を行う電流制御カウンタと、前記電流制御カウンタの出力に応じて、前記単位電流の整数倍の基準電流を発生する基準電流発生回路と、前記一括判定信号線に流れる電流と前記基準電流とを比較して、前記一括判定信号線に流れる電流が前記基準電流を超えると、出力である比較結果信号を活性レベルへ変化させる電流比較回路と、前記比較結果信号が活性レベルになると、前記電流制御カウンタの出力をラッチするビット数保持ラッチと、を有することを特徴とする。
【００１２】
また、本発明の不揮発性半導体記憶装置において、前記ベリファイ処理がプログラムベリファイ処理の場合、前記ビット数ラッチは、前記ページバッファにおける前記ラッチに最初に書き込まれたデータに基づいて、前記電流制御カウンタの出力をラッチし、前記基準電流発生回路は、前記ビット数保持ラッチにラッチされた前記電流制御カウンタの出力に応じて、前記基準電流を発生し、前記電流比較回路は、前記比較結果信号を活性レベルへ変化させる、ことを特徴とする。
【００１３】
また、本発明の不揮発性半導体記憶装置において、前記ベリファイ処理がイレースベリファイ処理の場合、前記ビット数ラッチは、前記ページバッファにおける前記ラッチの一回目のベリファイ結果に基づいて、前記電流制御カウンタの出力をラッチし、前記基準電流発生回路は、前記ビット数保持ラッチにラッチされた前記電流制御カウンタの出力に応じて、前記基準電流を発生し、前記電流比較回路は、前記比較結果信号を活性レベルへ変化させる、ことを特徴とする。
【００１４】
また、本発明の不揮発性半導体記憶装置において、前記ビット数保持ラッチにラッチされた前記電流制御カウンタの出力から、予め設定されたパスビット数を減算する演算回路を備え、前記基準電流発生回路は、前記演算回路の減算結果に応じて前記基準電流を発生する、ことを特徴とする。
【００１５】
また、本発明の不揮発性半導体記憶装置において、前記基準電流発生回路は、前記ビット数保持ラッチにラッチされた前記電流制御カウンタの出力に対応する基準電流に、前記フェイル状態の個数に対するパスビットの比率を示す、予め設定された１／ｍ（ｍ≧１）を乗じた前記基準電流を発生し、前記電流比較回路は、前記一括判定信号線に流れる電流のｎ（ｎ≧１）倍の電流を発生する回路であって、ｎ倍後の電流と前記基準電流とを比較する、ことを特徴とする。
【発明の効果】
【００１６】
本発明の不揮発性半導体記憶装置は、ベリファイ動作において、ページバッファ電流制御回路が、ページバッファにおけるラッチの出力に接続される第１トランジスタと直列に接続される第２トランジスタを制御して、当該第２トランジスタを介してラッチの出力に応じて一括判定信号線に単位電流を流す。また、ビット数判定用電流検出回路は、一括判定信号線に流れる電流に応じて、ページバッファに接続されるビット線にメモリセルから読み出したデータのフェイル状態の個数を検出する。よって、本発明によれば、ページバッファに対して専用トランジスタを追加する必要がなく、容易に、フェイルビット数を検出することが可能となる。このため、フェイルビット数をカウントする機能を持ちつつ、チップサイズの増大を招くことはないので、従来例に比べ、チップコストを削減することが可能となる。
【００１７】
また、ベリファイ処理がプログラムベリファイ処理の場合、ビット数判定用電流検出回路が、プログラムデータに基づいて、最初のベリファイ動作の前のフェイルビット数の初期値を検出するので、パスビット数の変化を検出できる。
一方、ベリファイ処理がイレースベリファイ処理の場合、ビット数判定用電流検出回路が、最初のイレースベリファイ結果に基づいて、最初のベリファイ動作の前のフェイルビット数の初期値を検出するので、パスビット数の変化を検出できる。
これにより、ベリファイ処理（プログラムベリファイ、イレースベリファイ）において、パスビット数の変化を検出できる。
【図面の簡単な説明】
【００１８】
【図１】不揮発性半導体記憶装置１０であるＮＡＮＤ型ＥＥＰＲＯＭの構成例を示す概略ブロック図である。
【図２】制御回路２０の詳細な構成例を示す図である。
【図３】ページバッファＰＢの構成の一例を示す図である。
【図４】ページバッファ電流制御回路２１の構成を示す図である。
【図５】ビット数判定用電流検出回路２２の構成を示す図である。
【図６】ビット数判定用電流検出回路２２の動作を示す図である。
【図７】プログラム動作時とイレース動作時の処理のフローを示す。
【図８】ビット数判定動作における電流Ｉｔｏｔａｌの変化を示す図である。
【図９】ビット数判定用電流検出回路２２ａの構成を示す図である。
【図１０】ビット数判定用電流検出回路２２ｂの構成を示す図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して、本発明の実施の形態について説明する。図１は、この発明の一実施形態による不揮発性半導体記憶装置１０であるＮＡＮＤ型ＥＥＰＲＯＭの構成例を示す概略ブロック図である。
メモリセルアレイ１１は、複数のスタックゲート構造のトランジスタ、すなわち電気的書き換え可能な不揮発性メモリセルをカラム方向（列方向）に直列接続して、ビット線毎に設けられたＮＡＮＤセルストリングを、行方向（ビット線の配列方向）に複数個配置したブロックから構成される。このブロックは、ビット線の配線方向に複数個配置される。また、このブロックは、メモリセルのデータの消去単位で設けられている。各ブロックにおいては、同一行に配置された不揮発性メモリ各々のゲートには、ビット線に直行したワード線が接続される。
１本のワード線により選択される不揮発性メモリセルの範囲がプログラム及び読み出しの単位となる１ページである。
【００２０】
ページバッファ群１３は、ページ単位のデータのプログラム及び読み出しを行うため、ビット線毎に設けられたページバッファＰＢ（後述）の複数から構成されている。このページバッファ群１３におけるページバッファＰＢ各々は、それぞれのビット線に接続され、接続されたビット線の電位を増幅して判定するセンスアンプ回路として用いるラッチ回路を有する。
ロウデコーダ１４は、メモリセルアレイ１１のワード線の選択を行う。
カラムデコーダ１５は、メモリセルアレイ１１のビット線及びページバッファＰＢの選択を行う。
電圧生成回路１６は、不揮発性メモリセルに対するデータのプログラム、消去及び読み出しに用いられる各種電圧を電源電圧から昇圧動作等により生成する。
【００２１】
入出力回路１７は、外部から供給されるアドレスをアドレスレジスタ１９へ出力し、外部から供給されるコマンドを示すコマンドデータをコマンドレジスタ１８へ出力し、外部から入力される制御信号を制御回路２０へ出力する。
また、入出力回路１７は、外部から入力されるデータをページバッファ群１３のページバッファＰＢ各々へ出力、あるいはページバッファ群１３を介し、不揮発性メモリセルから読み出されたデータを外部に出力する。
アドレスレジスタ１９は、入出力回路１７から入力されるアドレスを保持し、保持したアドレスをロウデコーダ１４及びカラムデコーダ１５へ出力する。
コマンドレジスタ１８は、入出力回路１７から入力されるコマンドデータにより表されるコマンドデータを保持する。
【００２２】
制御回路２０は、入出力回路１７から入力する制御信号及びコマンドレジスタ１８から供給されるコマンドデータにより、不揮発性メモリセルに対するデータのプログラム、読み出し、消去などの動作、及びベリファイの動作の制御を行う。
例えば、制御信号は、外部クロック信号、チップイネーブル信号、コマンドラッチイネーブル信号、アドレスラッチイネーブル信号、プログラムイネーブル信号、読み出しイネーブル信号などである。制御回路２０は、これらの制御信号により、コマンドデータの示す動作モードに応じて、各回路に対して内部制御信号を出力する。
【００２３】
特に、制御回路２０は、不揮発性メモリセルからのデータ読み出し（データ読み出し動作）、不揮発性メモリセルへのデータ書き込み動作（プログラム動作及びプログラムベリファイ動作）、不揮発性メモリセルのデータ消去動作（イレース動作及びその後のイレースベリファイ動作）において、ページバッファを制御するための制御信号ページバッファＰＢに対して出力する。これらの制御信号は、詳細は後述するが、制御信号ＰＬＯＡＤ、制御信号ＰＤＩＳ、制御信号ＢＬＳＬＴ、制御信号ＰＢＲＳＴ、制御信号ＰＰＧＭ、制御信号ＰＶＴＲ、制御信号ＥＶＴＲ、制御信号ＶＥＲＩＦＹＢ、制御信号ＢＵＳＰＣ等である。
【００２４】
次に、図２は、制御回路２０の詳細な構成例を示す図である。
制御回路２０は、ページバッファ電流制御回路２１、ビット数判定用電流検出回路２２、及びベリファイコントローラー２３を含んで構成される。
ページバッファ電流制御回路２１は、ページバッファＰＢに供給する制御信号のうち、プログラムベリファイ動作において、ページバッファＰＢにおけるラッチ回路の判定結果を共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦ（一括判定信号線）に対して出力させる制御信号ＰＶＴＲを出力する。また、ページバッファ電流制御回路２１は、イレースベリファイ動作において、ページバッファＰＢにおけるラッチ回路の判定結果を共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに対して出力させる制御信号ＥＶＴＲを出力する。
【００２５】
ベリファイコントローラー２３は、ページバッファＰＢ各々におけるラッチ回路の判定結果を一括ベリファイ判定する場合と、判定結果をフェイルビット数判定する場合とで、制御信号ＷＯＲＥｎａｂｌｅ、制御信号ＰＦＢｉｔＣｏｕｎｔＥｎａｂｌｅのレベルを切り替えて、ページバッファ電流制御回路２１に対して出力する。
ここで、一括ベリファイ判定とは、複数あるページバッファＰＢ各々におけるラッチ回路の判定結果を一括でベリファイ判定をすることである。また、フェイルビット数判定とは、ページバッファＰＢ各々におけるラッチ回路の判定結果のうち何ビットがフェイル結果であるかを判定することである。
また、ベリファイコントローラー２３は、判定結果をフェイルビット数判定する場合、制御信号ＣＯＭＰＡＲＥＥＮ、制御信号ＣＯＵＮＴＥＮ、及び制御信号ＬＡＴＣＨＥＮをビット数判定用電流検出回路２２に対して出力する。
【００２６】
ビット数判定用電流検出回路２２は、ベリファイ動作において、フェイルビット数判定を実際に行なう回路である（詳細後述）。ビット数判定用電流検出回路２２は、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに流れる電流と基準電流Ｉｒｅｆとを比較し、基準電流Ｉｒｅｆを超えた場合は比較結果信号ＣＯＭＰＡＲＥＯＵＴを非活性レベル（「Ｈ」レベル）から活性レベル（「Ｌ」レベル）に変化させてベリファイコントローラー２３に対して出力する。
【００２７】
次に、図３は、ページバッファＰＢの構成の一例を示す図である。ページバッファ群１３におけるページバッファは、以下に説明するページバッファＰＢと同様の構成を有している。
ページバッファＰＢは、トランジスタ３１、トランジスタ３２、トランジスタ３３、トランジスタ３４、トランジスタ３５、トランジスタ３６、トランジスタ３７、トランジスタ３８、トランジスタ３９、トランジスタ４０、トランジスタ４１、トランジスタ４２、トランジスタ４３、及びトランジスタ４４と、ラッチＬＴとを含んで構成される。
ここで、トランジスタ３１及びトランジスタ３２は、Ｐチャネル型ＭＯＳ（Metal Oxide Semiconductor ）トランジスタである。一方、トランジスタ３３からトランジスタ４４は、Ｎチャネル型ＭＯＳトランジスタである。
また、ラッチＬＴは、インバータ回路ＩＶ１、及びインバータ回路ＩＶ２から構成される。ここで、インバータ回路ＩＶ１は、出力端子が接続点Ｎ２においてインバータ回路ＩＶ２の入力端子に接続され、入力端子が接続点Ｎ１においてインバータ回路ＩＶ２の出力端子に接続される。
【００２８】
トランジスタ３１は、ソースが電源配線に接続され、ゲートが制御信号ＰＬＯＡＤの配線に接続され、ドレインがトランジスタ３３のゲート、及び接続点ＳＯに接続される。
トランジスタ３２は、ソースが電源配線に接続され、ゲートが制御信号ＰＢＲＳＴの配線に接続され、ドレインがトランジスタ３３のドレイン、及び接続点Ｎ１に接続される。
トランジスタ３３は、ドレインが接続点Ｎ１に接続され、ゲートが接続点ＳＯに接続され、ソースがトランジスタ３４のドレインに接続される。
トランジスタ３４は、ドレインがトランジスタ３３に接続され、ゲートが制御信号ＰＢＬＣＨの配線に接続され、ソースが接地される。
【００２９】
トランジスタ３５は、ドレインが共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに接続され、ゲートが接続点Ｎ１に接続され、ソースがトランジスタ３６のドレインに接続される。
トランジスタ３６は、ドレインがトランジスタ３５のソースに接続され、ゲートが制御信号ＰＶＴＲの配線に接続され、ソースが接地される。
トランジスタ３７は、ドレインが共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに接続され、ゲートが接続点Ｎ２に接続され、ソースがトランジスタ３８のドレインに接続されている。
トランジスタ３８は、ドレインがトランジスタ３７のソースに接続され、ゲートが制御信号ＥＶＴＲの配線に接続され、ソースが接地される。
【００３０】
トランジスタ４１は、ドレインがビット線ＢＬに接続され、ゲートが制御信号ＢＬＳＬＴの配線に接続され、ソースがトランジスタ３１のドレイン、及び接続点ＳＯに接続される。
トランジスタ４２は、ドレインがビット線ＢＬに接続され、ゲートが制御信号ＰＤＩＳの配線に接続され、ソースが接地される。
トランジスタ４０は、ドレインがトランジスタ４１のソース、及び接続点ＳＯに接続され、ゲートが制御信号ＰＰＧＭの配線に接続され、ソースが接続点Ｎ２に接続される。
トランジスタ３９は、ドレインが接続点Ｎ２に接続され、ゲートがカラムアドレスＤＹＷの配線に接続され、ソースが書込線ＤＩＮＢＵＳに接続される。
トランジスタ４３は、ドレインが読出線ＤＯＵＴＢＵＳに接続され、ゲートがカラムアドレスＤＹＲの配線に接続され、ソースがトランジスタ４４のドレインに接続される。
トランジスタ４４は、ドレインがトランジスタ４３のソースに接続され、ゲートが接続点Ｎ２に接続され、ソースが接地される。
【００３１】
ベリファイ判定回路（チャージ回路２７）は、ｐチャネル型ＭＯＳトランジスタであるトランジスタ５３、及びトランジスタ５４から構成される。
トランジスタ５３は、ソースが電源配線に接続され、ゲートが制御信号ＶＥＲＩＦＹＢの配線に接続され、ドレインが共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに接続される。
トランジスタ５４は、ソースが電源配線に接続され、ゲートが制御信号ＢＵＳＰＣの配線に接続され、ドレインが読出線ＤＯＵＴＢＵＳに接続される。
【００３２】
次に、データ読み出し動作、プログラム動作、及びイレース動作各々の動作におけるページバッファＰＢの動作、及びラッチＬＴの出力レベル（接続点Ｎ１及び接続点Ｎ２の「Ｈ」レベルまたは「Ｌ」レベル）について、以下に説明する。
＜データ読み出し動作＞
読み出し時において、外部から読み出しを示すコマンドデータが入出力回路１７に入力され、コマンドレジスタ１８に読み出しモードとするデータが設定され、このデータに基づいて制御回路２０が各回路を制御する制御信号を出力する。初期状態においては、制御回路２０は、制御信号ＰＤＩＳ、制御信号ＢＬＳＬＴ、制御信号ＰＰＧＭ、制御信号ＰＢＬＣＨ、制御信号ＰＶＴＲ、及び制御信号ＥＶＴＲを「Ｌ」レベルとし、制御信号ＰＬＯＡＤ、ＰＢＲＳＴを「Ｈ」レベルとしている。
また、カラムデコーダ１５は、カラムアドレスＤＹＷ及びカラムアドレスＤＹＲを「Ｌ」レベルとしている。
【００３３】
制御回路２０は、制御信号ＰＢＲＳＴを「Ｌ」レベルに変化させ、強制的に接続点Ｎ１に「Ｈ」レベルのデータを与え、不揮発性メモリセルからビット線ＢＬへデータを読み出す前準備のリセット（ＲＥＳＥＴ）動作を行う。これにより、制御回路２０は、ラッチＬＴに、接続点Ｎ１が「Ｈ」レベル、接続点Ｎ２に「Ｌ」レベルのデータを書き込み、ラッチＬＴにリセット時のデータを記憶させる。
そして、制御回路２０は、制御信号ＰＢＲＳＴを「Ｈ」レベルに変化させ、トランジスタ３２をオフ状態とし、リセット処理を終了する。
【００３４】
不揮発性メモリセルからビット線ＢＬへデータを読み出す際、制御回路２０は、制御信号ＰＤＩＳを「Ｈ」レベルとして、トランジスタ４２をオン状態とし、ビット線ＢＬの電位を一旦接地レベルに変化させる。
そして、制御回路２０は、制御信号ＰＤＩＳ及び制御信号ＰＬＯＡＤを「Ｌ」レベルに変化させ、制御信号ＢＬＳＬＴを「Ｈ」レベルに変化させる。
これにより、トランジスタ４２はオフ状態となり、トランジスタ３１及びトランジスタ４１はオン状態となる。そして、トランジスタ３１及びトランジスタ４１を介してビット線ＢＬが所定の電位にプリチャージされる。
【００３５】
次に、制御回路２０は、制御信号ＰＬＯＡＤを「Ｈ」レベルとし、トランジスタ３１をオフ状態とする。
そして、制御回路２０は、制御信号ＰＢＲＳＴを「Ｌ」レベルに変化させ、制御信号ＰＢＬＣＨを「Ｈ」レベルに変化させる。
これにより、トランジスタ３２及びトランジスタ３３がオン状態となり、ロウデコーダ１４が選択したワード線がゲートに接続されている不揮発性メモリセルからビット線ＢＬへデータが読み出される。ここで、ロウデコーダ１４は、選択したワード線（以下、選択ワード線とする）を「Ｌ」レベルとし、選択されたワード線以外の全ての選択ワード線（以下、非選択ワード線とする）を、電圧生成回路１６が生成した電圧（例えば、５Ｖ）を印加し、選択ワード線以外の非選択ワード線がゲートに接続された不揮発性メモリセル（以下、非選択メモリセルとする）すべてをオン状態とする。
【００３６】
また、制御回路２０は、制御信号ＰＢＬＣＨを「Ｈ」レベルに変化させ、トランジスタ３４をオン状態とする。
この結果、選択ワード線に接続された不揮発性メモリセル（以下、選択メモリセルとする）に「０」データが書き込まれているとき、選択メモリセルがオフ状態であり、ビット線ＢＬが「Ｈ」レベルのままであり、トランジスタ３３がオン状態のままとなる。
このため、接続点Ｎ１の電位は、トランジスタ３３及びトランジスタ３４を介する電流により、「Ｌ」レベルに変化する。また、接続点Ｎ２の電位は、「Ｈ」レベルとなる。つまり、ラッチＬＴの接続点Ｎ１、及び接続点Ｎ２は、リセット状態と反対のデータが書き込まれる。
【００３７】
一方、選択メモリセルに「１」データが書き込まれているとき（つまり選択メモリセルが消去状態にあるとき）、選択メモリセルがオン状態となり、ビット線ＢＬが「Ｌ」レベルに変化し、トランジスタ３３がオフ状態となる。
このため、接続点Ｎ１の電位は、トランジスタ３３がオフ状態であるため、接地点に対して電流が流れず、「Ｈ」レベルのままである。同様に、接続点Ｎ２の電位も、「Ｌ」レベルのままである。つまり、ラッチＬＴの接続点Ｎ１、及び接続点Ｎ２は、リセット状態に書き込まれたデータをそのまま維持する。
【００３８】
次に、制御回路２０は、制御信号ＢＵＳＰＣを「Ｌ」レベルとし、トランジスタ５４をオン状態とし、読出線ＤＯＵＴＢＵＳを「Ｈ」レベルにプリチャージする。
そして、制御回路２０は、制御信号ＢＵＳＰＣを「Ｈ」レベルとし、トランジスタ５４をオフ状態として、プリチャージ処理を終了させる。
プリチャージが終了した後、カラムデコーダ１５は、入力されたアドレスに対応するページバッファＰＢを選択するため、カラムアドレスＤＹＲを「Ｈ」レベルとする。
【００３９】
これにより、不揮発性メモリセルに「０」データが書き込まれている場合、接続点Ｎ２が「Ｈ」レベルであり、トランジスタ４４がオン状態となるため、読出線ＤＯＵＴＢＵＳはトランジスタ４３、及びトランジスタ４４を介して接地され、「Ｌ」レベルとなる。この「Ｌ」レベルのデータが入出力回路１７を介して外部に「０」として出力される。
一方、不揮発性メモリセルに「１」のデータが書き込まれている場合、接続点Ｎ２が「Ｌ」レベルであり、トランジスタ４４がオフ状態となるため、読出線ＤＯＵＴＢＵＳは接地されずに、「Ｈ」レベルのままである。この「Ｈ」レベルのデータが入出力回路１７を介して外部に「１」として出力される。
【００４０】
＜プログラム動作、及びラッチＬＴの出力状態＞
不揮発性メモリセルに対してデータ「０」をプログラムし、データ「０」が正常に書き込まれるか否かの判定を行う。
プログラム動作において、外部からプログラムを示すコマンドデータが入出力回路１７に入力され、コマンドレジスタ１８にプログラムベリファイモードとするデータが設定され、このデータに基づいて制御回路２０が各回路を制御する制御信号を出力する。初期状態においては、制御回路２０は、制御信号ＰＤＩＳ、制御信号ＢＬＳＬＴ、制御信号ＰＰＧＭ、制御信号ＰＢＬＣＨ、制御信号ＰＶＴＲ、及び制御信号ＥＶＴＲを「Ｌ」レベルとし、制御信号ＰＬＯＡＤ、及び制御信号ＰＢＲＳＴを「Ｈ」レベルとしている。
また、カラムデコーダ１５は、カラムアドレスＤＹＷ、及びカラムアドレスＤＹＲを「Ｌ」レベルとしている。
【００４１】
（ラッチＬＴのリセット動作）
制御回路２０は、制御信号ＰＬＯＡＤを「Ｌ」レベルに変化させ、制御信号ＰＢＬＣＨを「Ｈ」レベルに変化させる。これにより、トランジスタ３１がオン状態となり、接続点ＳＯが「Ｈ」レベルとなり、トランジスタ３２がオン状態となる。また、トランジスタ３４がオン状態となることにより、強制的に接続点Ｎ１に「Ｌ」レベルのデータを与え、不揮発性メモリセルからデータを書き込む前準備のリセット（ＲＥＳＥＴ）動作を行う。
そして、制御回路２０は、制御信号ＰＬＯＡＤを「Ｈ」レベルに変化させ、制御信号ＰＢＬＣＨを「Ｌ」レベルに変化させ、トランジスタ３１及びトランジスタ３４をオフ状態とし、リセット処理を終了する。
これにより、ラッチＬＴの状態は、接続点Ｎ１に「Ｌ」レベル、接続点Ｎ２に「Ｈ」レベルのデータが書き込まれる状態、プログラム禁止（ＩＮＨＩＢＩＴ）状態、すなわちパス状態となる。
【００４２】
（書き込みデータ転送動作）
次に、制御回路２０は、不揮発性メモリセルに対してデータ「０」を書き込むため、入出力回路１７を制御して、書込線ＤＩＮＢＵＳに「Ｌ」レベルのデータを供給させる。なお、制御回路２０は、不揮発性メモリセルのデータ「１」を維持する場合（消去状態を維持する場合）、入出力回路１７を制御して、書込線ＤＩＮＢＵＳに「Ｈ」レベルのデータを供給させる。
そして、カラムデコーダ１５は、アドレスレジスタ１９が出力するカラムアドレスに対応するページバッファＰＢを選択するため、カラムアドレスＤＹＷを「Ｈ」レベルとする。これにより、トランジスタ３９がオン状態となる。
【００４３】
このように、トランジスタ３９を介して、書込線ＤＩＮＢＵＳから接続点Ｎ２に対して「Ｌ」レベルのデータが書き込まれることにより、「０」データを書き込む際における、ラッチＬＴの接続点Ｎ１が「Ｈ」レベルであり、接続点Ｎ２が「Ｌ」レベルの状態となる。すなわち、「０」データを書き込む場合、ラッチＬＴの状態は、接続点Ｎ１が「Ｈ」レベル、接続点Ｎ２が「Ｌ」レベルと、パス状態とは反対の状態であるフェイル状態となる。また、「０」データを書き込まない場合、ラッチＬＴの状態は、接続点Ｎ１が「Ｌ」レベル、接続点Ｎ２が「Ｈ」レベルと、パス状態のままとなる。
【００４４】
このラッチＬＴへのデータ書き込み処理において、カラムデコーダ１５は、カラムアドレスを順次変化させて行う。すなわち、カラムデコーダ１５は、トランジスタ３９を順次切り替えて、トランジスタ３９をオンさせる。全てのページバッファＰＢのラッチＬＴの状態は、書き込まれるデータ「０」または「１」に応じて、パス状態かフェイル状態のいずれかになる。
【００４５】
（プログラム動作）
制御回路２０は、制御信号ＰＰＧＭ及びＢＬＳＬＴを「Ｈ」レベルとする。
また、ロウデコーダ１４は、選択ワード線にプログラム電圧（高電圧）を供給し、非選択ワード線に対して「Ｈ（例えば、５Ｖ）」を供給する。
これにより、データ「０」を書き込むべきセルにおいて、選択ワード線に接続されている選択メモリセルのソース、ドレイン及びチャネル部分が「Ｌ」レベルとなり、選択メモリセルに対して電荷が書き込まれ、「０」データが記憶される。
一方、データ「０」を書き込まない、データ「１」を維持するセルにおいては、選択ワード線に接続されている選択メモリセルのソース、ドレイン及びチャネル部分が「Ｈ」レベルであるので、選択メモリセルに対して電荷が書き込まれず、「１」データが維持される。
そして、ロウデコーダ１４が、選択ワード線、及び非選択ワード線を「Ｌ」レベルに変化させることにより、プログラム動作が終了する。
【００４６】
（プログラムベリファイ動作）
次に、選択メモリセルに正常にデータ「０」が書き込まれたか否かの判定を行うため、ロウデコーダ１４は、選択メモリセルのデータをビット線ＢＬへ読み出し、制御回路２０は、ビット線ＢＬからページバッファＰＢに選択メモリセルのデータを読み出す。
すなわち、選択メモリセルからビット線ＢＬを介してページバッファＰＢにデータを読み出す際、制御回路２０は、制御信号ＰＤＩＳを「Ｈ」レベルとして、トランジスタ４２をオン状態とし、ビット線ＢＬの電位を一端接地レベルに変化させる。
そして、制御回路２０は、制御信号ＰＤＩＳ及び制御信号ＰＬＯＡＤを「Ｌ」レベルに変化させ、制御信号ＢＬＳＬＴを「Ｈ」レベルに変化させる。
これにより、トランジスタ４２はオフ状態となり、トランジスタ３１及び４１はオン状態となる。そして、トランジスタ３１及びトランジスタ４１を介してビット線が所定の電位にプリチャージされる。
【００４７】
次に、制御回路２０は、制御信号ＰＬＯＡＤを「Ｈ」レベルとし、トランジスタ３１をオフ状態とする。
そして、制御回路２０は、制御信号ＰＢＲＳＴを「Ｌ」レベルに変化させ、制御信号ＰＢＬＣＨを「Ｈ」レベルに変化させる。
これにより、トランジスタ３２及びトランジスタ３３がオン状態となり、ロウデコーダ１４が選択した選択ワード線がゲートに接続されている選択メモリセルからデータが接続点ＳＯへ読み出される。ここで、ロウデコーダ１４は、選択ワード線を「Ｌ」レベルとし、非選択ワード線に対して、電圧生成回路１６が生成したパス電圧である高電圧（例えば、１５Ｖ）を印加し、非選択ワード線がゲートに接続された非選択メモリセルすべてをオン状態とする。
また、制御回路２０は、制御信号ＰＢＬＣＨを「Ｈ」レベルに変化させ、トランジスタ３４をオン状態とする。
【００４８】
これにより、「０」データを書き込むべき選択メモリセルに「０」データが書き込まれている場合、接続点ＳＯが「Ｈ」レベルのままであるので、ラッチＬＴの接続点Ｎ１が「Ｌ」レベル、接続点Ｎ２が「Ｈ」レベルと、ラッチＬＴはパス状態となる。
一方、「０」データを書き込むべき選択メモリセルに「０」データが書き込まれていない場合、接続点ＳＯが「Ｌ」レベルとなり、ラッチＬＴを反転できず、ラッチＬＴの接続点Ｎ１が「Ｈ」レベル、接続点Ｎ２が「Ｌ」レベルと、ラッチＬＴは書き込んだ際の状態であるフェイル状態を維持する。
また、「０」データが書き込まれない、すなわち「１」データを維持する選択メモリセルの場合、接続点ＳＯが「Ｌ」レベルとなっても、ラッチＬＴは初期状態を維持するので、ラッチＬＴはパス状態のままである。
【００４９】
選択ワード線を共通とする不揮発性メモリセルのデータが、全てのページバッファＰＢのラッチＬＴに読み出された後、ページバッファＰＢは一括判定動作またはビット数判定動作へ移行する（詳細後述）。
【００５０】
＜イレース動作、及びラッチＬＴの出力状態＞
全不揮発性メモリセルに対して消去処理を行い、データが正常に消去されたか否かの判定を行う。
イレース動作において、外部からイレースを示すコマンドデータが入出力回路１７に入力され、コマンドレジスタ１８にイレースモードとするデータが設定され、このデータに基づいて制御回路２０が各回路を制御する制御信号を出力する。初期状態においては、制御回路２０は、制御信号ＰＤＩＳ、ＢＬＳＬＴ、ＰＰＧＭ、ＰＢＬＣＨ、ＰＶＴＲ、ＥＶＴＲを「Ｌ」レベルとし、制御信号ＰＬＯＡＤ、ＰＢＲＳＴ、ＶＥＲＩＦＹＢ、ＢＵＳＰＣを「Ｈ」レベルとしている。
また、カラムデコーダ１５は、カラムアドレスＤＹＷ及びカラムアドレスＤＹＲを「Ｌ」レベルとしている。
【００５１】
（ラッチＬＴのリセット動作）
制御回路２０は、電圧生成回路１６に不揮発性メモリセルのデータの消去に必要な消去電圧を発生させ、ブロック単位の不揮発性メモリセルに対して、この消去電圧を印加する（イレースのためのストレスの印加）。これにより、消去電圧が印加されたブロック全ての不揮発性メモリセルのデータのイレース処理が一括して行われる。
次に、制御回路２０は、制御信号ＰＢＲＳＴを「Ｌ」レベルに変化させ、トランジスタ３２をオン状態とし、ラッチＬＴの接続点Ｎ１に強制的に「Ｈ」レベルのデータを書き込むリセット動作を行う。これにより、ラッチＬＴの接続点Ｎ１が「Ｈ」レベル、接続点Ｎ２に「Ｌ」レベルのデータが書き込まれる。
そして、制御回路２０は、制御信号ＰＢＲＳＴを「Ｈ」レベルに変化させ、トランジスタ３２をオフ状態とし、リセット処理を終了する。
これにより、ラッチＬＴの状態は、接続点Ｎ１に「Ｈ」レベル、接続点Ｎ２に「Ｌ」レベルのデータが書き込まれる状態、すなわちパス状態となる。
【００５２】
（イレースベリファイ動作）
次に、制御回路２０は、制御信号ＰＤＩＳを「Ｈ」レベルに変化させ、一旦、ビット線ＢＬの電位を接地レベルとする。
そして、制御回路２０は、制御信号ＰＤＩＳを「Ｌ」レベルに変化させた後、制御信号ＰＬＯＡＤを「Ｌ」レベルとし、制御信号ＢＬＳＬＴを「Ｈ」レベルとして、トランジスタ３１及び４１をオン状態とする。
これにより、トランジスタ３１及びトランジスタ４１を介して、ビット線が所定の電圧にプリチャージされる。所定の時間経過後、制御回路２０は、制御信号ＰＬＯＡＤを「Ｈ」レベルに変化させ、トランジスタ３１をオフ状態とし、制御信号ＢＬＳＬＴを「Ｌ」レベルに変化させ、トランジスタ４１をオフ状態とし、接続点ＳＯ及びビット線のプリチャージを終了する。この所定の時間は、予め測定された接続点ＳＯ及びビット線の電位がプリチャージする電圧に安定するまでの時間である。
【００５３】
ロウデコーダ１４は、制御回路２０からの制御信号により全ワード線を「Ｌ」レベルに変化させる。そして、ロウデコーダ１４が全ワード線を「Ｌ」レベルとすることで、各ビット線に接続されたブロック内の全ての不揮発性メモリセルのデータが、消去電圧の印加により消去されている場合、ＮＡＮＤセルストリングは導通状態となり、そのうちのメモリセルのいずれか１つでもデータが消去されていない場合、ＮＡＮＤセルストリングは非導通となる。
【００５４】
これにより、ビット線ＢＬに接続されるＮＡＮＤセルストリングの不揮発性メモリセルが全てオン状態の場合、ＮＡＮＤセルストリングは導通状態となっており、ビット線ＢＬは接地レベル、すなわち「Ｌ」レベルとなる。
一方、ビット線ＢＬに接続されるＮＡＮＤセルストリングの不揮発性メモリセルのいずれか１つでも「０」データが消去されていない場合、その不揮発性メモリセルがオン状態とならず、ＮＡＮＤセルストリングが非導通状態となっており、ビット線ＢＬはプリチャージされた状態、すなわち「Ｈ」レベルのままとなる。
【００５５】
次に、制御回路２０は、制御信号ＢＬＳＬＴを「Ｈ」レベルに変化させ、トランジスタ４１をオン状態とする。
これにより、接続点ＳＯは、不揮発性メモリセルに「０」データが書き込まれており、ビット線ＢＬが「Ｈ」レベルの場合、「Ｈ」レベルのままであり、不揮発性メモリセルが消去され、ビット線ＢＬが「Ｌ」レベルの場合、「Ｈ」レベルから「Ｌ」レベルに変化する。ここで、接続点ＳＯの接地容量より、ビット線ＢＬの接地容量が大きいため、接続点ＳＯの電位は、トランジスタ４１がオン状態となった際、ビット線ＢＬの電位となる。
【００５６】
次に、制御回路２０は、制御信号ＰＢＬＣＨを「Ｈ」レベルに変化させ、トランジスタ３４をオン状態とする。
これにより、不揮発性メモリセルの「０」データが消去されて、接続点ＳＯの電位が「Ｌ」レベルの場合、ラッチＬＴの接続点Ｎ１が「Ｈ」レベルのままであり、不揮発性メモリセルの「０」データが消去されないと、接続点ＳＯの電位が「Ｈ」レベルの場合、ラッチＬＴの接続点Ｎ１が「Ｌ」レベルとなる。
すなわち、不揮発性メモリセルの「０」データの消去が行われた場合、ラッチＬＴの接続点Ｎ２は「Ｌ」レベルのままであり、不揮発性メモリセルの「０」データの消去が行われない場合、ラッチＬＴの接続点Ｎ２は「Ｈ」レベルに変化する。
【００５７】
つまり、ＮＡＮＤセルストリングにおける不揮発性メモリセルが全て消去された場合、ラッチＬＴはパス状態を維持する。一方、ＮＡＮＤセルストリングにおける不揮発性メモリセルの一つでも消去されない場合、ラッチＬＴはフェイル状態となる。
なお、上記実施形態の説明では、ブロック単位で消去し、ＮＡＮＤセルストリング単位でイレースベリファイを行っている。しかし、このうち、イレースベリファイをビット単位で行ってもよい。この場合、イレースベリファイ動作において、プログラム時のベリファイ動作と同様に、選択ワード線を「Ｌ」レベルとし、非選択ワード線に対して、パス電圧である高電圧を印加し、選択メモリセルがオン状態か否かを検出すればよい。
【００５８】
つまり、イレースベリファイのプログラムベリファイとの違いは、イレースベリファイでは、メモリセルがプログラムベリファイとは逆のオン状態であることを検出するため、接続点ＳＯのレベルが「Ｈ」レベルから「Ｌ」レベルに変化する。そのため、イレースベリファイでは、ラッチＬＴの状態の初期状態（パス状態）をプログラムベリファイとは反対の状態としている。
全てのページバッファＰＢのラッチＬＴに読み出された後、ページバッファＰＢは一括判定動作またはビット数判定動作へ移行する（詳細後述）。
なお、以下の説明では、イレースベリファイをビット単位で行うものとする。
【００５９】
次に、図４は、ページバッファ電流制御回路２１の構成を示す図である。ページバッファ電流制御回路２１は、上述したプログラムベリファイ処理及びイレースベリファイ処理において、一括判定動作またはビット数判定動作を行う場合に、ラッチＬＴの出力（接続点Ｎ１又は接続点Ｎ２）が入力されるトランジスタ３６及びトランジスタ３８の電流制御を行う回路である。なお、図４において、ページバッファＰＢについては、判定動作に係るトランジスタ３５またはトランジスタ３７、トランジスタ３４またはトランジスタ３８を、図３に示すページバッファＰＢから抜き出し、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦとともに示している。
【００６０】
ページバッファ電流制御回路２１は、ナンド回路６１、ノア回路６２、インバータ回路６３、トランジスタ６４〜トランジスタ６８、及び抵抗Ｒ１を含んで構成される。
ここで、トランジスタ６４、及びトランジスタ６６は、Ｐチャネル型ＭＯＳトランジスタであり、トランジスタ６５、トランジスタ６７、及びトランジスタ６８は、Ｎチャネル型ＭＯＳトランジスタである。
ナンド回路６１の一方の入力は、制御信号ＷＯＲＥｎａｂｌｅの配線に接続され、他方の入力はインバータ回路６３の出力に接続される。
ノア回路６２の一方の入力は、制御信号ＰＦＢｉｔＣｏｕｎｔＥｎａｂｌｅの配線に接続され、他方の入力は制御信号ＷＯＲＥｎａｂｌｅの配線に接続される。
インバータ回路６３の入力は、制御信号ＰＦＢｉｔＣｏｕｎｔＥｎａｂｌｅの配線に接続される。
【００６１】
トランジスタ６４は、ソースが電源配線に接続され、ゲートがナンド回路６１の出力に接続され、ドレインがトランジスタ６５のドレインに接続される。
トランジスタ６５は、ドレインがトランジスタ６４のドレインに接続され、ゲートがノア回路６２の出力に接続され、ソースが接地される。
ページバッファ電流制御回路２１は、プログラムベリファイ用とイレースベリファイ用に２組備えられる。この２組備えられたページバッファ電流制御回路２１は、それぞれの回路の入力に、制御信号ＷＯＲＥｎａｂｌｅ及び制御信号ＰＦＢｉｔＣｏｕｎｔＥｎａｂｌｅの配線が接続される。また、出力には、一方の組では制御信号ＰＶＴＲの配線が他方の組では制御信号ＥＶＴＲの配線がそれぞれ接続される。すなわち、制御信号ＷＯＲＥｎａｂｌｅ、制御信号ＰＦＢｉｔＣｏｕｎｔＥｎａｂｌｅ、制御信号ＰＶＴＲ、及び制御信号ＥＶＴＲは、上位階層で別の配線となっており、プログラムベリファイ用とイレーズベリファイ用とで異なる制御ができるように構成されている。
以下では、２組のページバッファ電流制御回路２１に含まれるトランジスタ６４、及びトランジスタ６５からなる組として、一方の組を（６４ａ、６５ａ）、他方の組を（６４ｂ、６５ｂ）とする
トランジスタ６４ａのドレイン、及びトランジスタ６５ａのドレインの共通接続点が、各ページバッファＰＢのトランジスタ３６のゲートに接続される。各ページバッファＰＢのトランジスタ３６のゲートには、プログラム動作における一括判定動作またはビット数判定動作時に制御信号ＰＶＴＲが入力される。
トランジスタ６４ｂのドレイン、及びトランジスタ６５ｂのドレインの共通接続点が、各ページバッファＰＢのトランジスタ３８のゲートに接続される。各ページバッファＰＢのトランジスタ３８のゲートには、データイレース動作の一括判定動作またはビット数判定動作時に制御信号ＥＶＴＲが入力される。
【００６２】
トランジスタ６６は、ソースが電源配線に接続され、ゲートがインバータ回路６３の出力に接続され、ドレインが抵抗Ｒ１の一端に接続される。
トランジスタ６７は、ドレイン及びゲートが抵抗Ｒ１の他端に接続され、ソースがトランジスタ６８のドレインに接続される。
トランジスタ６８は、ドレインがトランジスタ６７のソースに接続され、ゲートが制御信号ＰＦＢｉｔＣｏｕｎｔＥｎａｂｌｅの配線に接続され、ソースが接地される。
【００６３】
トランジスタ６７のドレイン及びゲート、及び抵抗Ｒ１の他端が、トランジスタ６４ａのドレイン、及びトランジスタ６５ａのドレインの共通接続点、トランジスタ６４ｂのドレイン、及びトランジスタ６５ｂのドレインの共通接続点にそれぞれ接続される。
【００６４】
（プログラム動作における一括判定動作）
制御回路２０は、制御信号ＶＥＲＩＦＹＢを「Ｌ」レベルに変化させ、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦを「Ｈ」レベルにプリチャージし、制御信号ＶＥＲＩＦＹＢを「Ｈ」レベルに変化させる。
そして、制御回路２０におけるベリファイコントローラー２３は、制御信号ＷＯＲＥｎａｂｌｅを「Ｈ」レベルとし、制御信号ＰＦＢｉｔＣｏｕｎｔＥｎａｂｌｅを「Ｌ」のままとする。
ページバッファ電流制御回路２１は、トランジスタ６４〜トランジスタ６８のうち、トランジスタ６４ａのみをオンさせて、制御信号ＰＶＴＲを電源電圧レベルの「Ｈ」レベルとし、全てのページバッファＰＢのトランジスタ３６をオン状態とする。
【００６５】
このとき、ページバッファ群１３の全てのページバッファＰＢにおける接続点Ｎ１が「Ｌ」レベルとなっている場合、全てのページバッファＰＢにおけるトランジスタ３５がオン状態とならない。
このため、全てのページバッファＰＢのトランジスタ３５がオフ状態である場合、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦが「Ｈ」レベルのままであり、データ「０」のプログラムが正常に行われたことが一括で検出できる。
【００６６】
一方、ページバッファ群１３のいずれかのページバッファＰＢにおける接続点Ｎ１が「Ｈ」レベルとなっている場合、この「Ｈ」レベルである接続点Ｎ１のページバッファＰＢにおけるトランジスタ３５がオン状態となる。
このため、ページバッファ群１３のいずれかのページバッファＰＢのトランジスタ３５がオン状態となった場合、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦが「Ｈ」レベルから「Ｌ」レベルに変化し、不揮発性メモリセルへのプログラムが正常に行わないことが検出される。
上述した動作は、ロウデコーダ１４が選択ワード線を変えながら、各ブロックにおいても同様に行われる。
【００６７】
（プログラム動作におけるビット数判定動作）
制御回路２０は、ビット数判定用電流検出回路２２を活性化する。そして、制御回路２０におけるベリファイコントローラー２３は、制御信号ＷＯＲＥｎａｂｌｅを「Ｌ」レベルのままとし、制御信号ＰＦＢｉｔＣｏｕｎｔＥｎａｂｌｅを「Ｈ」とする。
ページバッファ電流制御回路２１は、トランジスタ６４〜トランジスタ６８のうち、トランジスタ６６〜トランジスタ６８をオンさせて、抵抗Ｒ１に定電流Ｉｄｉｓを流す。
【００６８】
このとき、ページバッファＰＢにおける接続点Ｎ１が「Ｌ」レベルとなっている場合、トランジスタ３５（第１トランジスタ）がオン状態とならない。
このため、トランジスタ６７とミラー接続されるトランジスタ３６（第２トランジスタ）には、定電流Ｉｄｉｓが流れない。
一方、ページバッファＰＢにおける接続点Ｎ１が「Ｈ」レベルとなっている場合、トランジスタ３５がオン状態となる。
このため、トランジスタ６７とミラー接続されるトランジスタ３６には、定電流Ｉｄｉｓが流れ、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに接続されるトランジスタ３５にも定電流Ｉｄｉｓが流れる。
【００６９】
ここで、接続点Ｎ１が「Ｈ」レベルとは、ラッチＬＴの状態がフェイル状態であり、「０」データを書き込むべき選択メモリセルに「０」データが書き込まれなかったことを示すので、１ページのうちＮビットの不揮発性メモリセルに「０」データが書き込まれなかった場合、トランジスタ６７とカレントミラー接続されるＮ個のトランジスタ３６各々に定電流Ｉｄｉｓが流れ、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに接続されるトランジスタ５３にも定電流ＩｄｉｓのＮ倍の電流Ｉｔｏｔａｌ（＝Ｎ×Ｉｄｉs）が流れる。
従って、電流Ｉｔｏｔａｌを定電流Ｉｄｉｓで除算した数（フェイルビット数）を算出すれば、プログラムベリファイにおける１ページのフェイルビット数を算出することが可能となる。
上述した動作は、ロウデコーダ１４が選択ワード線を変えながら、各ブロックにおいても同様に行われる。
【００７０】
（イレース動作における一括判定動作）
制御回路２０は、制御信号ＶＥＲＩＦＹＢを「Ｌ」レベルに変化させ、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦを「Ｈ」レベルにプリチャージし、制御信号ＶＥＲＩＦＹＢを「Ｈ」レベルに変化させる。
そして、制御回路２０におけるベリファイコントローラー２３は、制御信号ＷＯＲＥｎａｂｌｅを「Ｈ」レベルとし、制御信号ＰＦＢｉｔＣｏｕｎｔＥｎａｂｌｅを「Ｌ」のままとする。
ページバッファ電流制御回路２１は、トランジスタ６４〜トランジスタ６８のうち、トランジスタ６４ｂのみをオンさせて、制御信号ＥＶＴＲを電源電圧レベルの「Ｈ」レベルとし、全てのページバッファＰＢのトランジスタ３７をオン状態とする。
【００７１】
このとき、ページバッファ群１３の全てのページバッファＰＢにおける接続点Ｎ２が「Ｌ」レベルとなっている場合、全てのページバッファＰＢにおけるトランジスタ３７がオン状態とならない。
このため、全てのページバッファＰＢのトランジスタ３７がオフ状態である場合、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦが「Ｈ」レベルのままであり、データの消去が正常に行われたことが一括で検出できる。
【００７２】
一方、ページバッファ群１３のいずれかのページバッファＰＢにおける接続点Ｎ２が「Ｈ」レベルとなっている場合、この「Ｈ」レベルである接続点Ｎ２のページバッファＰＢにおけるトランジスタ３７がオン状態となる。
このため、ページバッファ群１３のいずれかのページバッファＰＢのトランジスタ３７がオン状態となった場合、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦが「Ｈ」レベルから「Ｌ」レベルに変化し、不揮発性メモリセルのデータ消去が正常に行わないことが検出される。
上述した動作は、ロウデコーダ１４が選択ワード線を変えながら、各ブロックにおいても同様に行われる。
【００７３】
（イレース動作におけるビット数判定動作）
制御回路２０は、ビット数判定用電流検出回路２２を活性化する。そして、制御回路２０におけるベリファイコントローラー２３は、制御信号ＷＯＲＥｎａｂｌｅを「Ｌ」レベルのままとし、制御信号ＰＦＢｉｔＣｏｕｎｔＥｎａｂｌｅを「Ｈ」とする。
ページバッファ電流制御回路２１は、トランジスタ６４〜トランジスタ６８のうち、トランジスタ６６〜トランジスタ６８をオンさせて、抵抗Ｒ１に定電流Ｉｄｉｓを流す。
【００７４】
このとき、ページバッファＰＢにおける接続点Ｎ２が「Ｌ」レベルとなっている場合、トランジスタ３７（第１トランジスタ）がオン状態とならない。
このため、トランジスタ６７とカレントミラー接続されるトランジスタ３８（第２トランジスタ）には、定電流Ｉｄｉｓが流れない。
一方、ページバッファＰＢにおける接続点Ｎ１が「Ｈ」レベルとなっている場合、トランジスタ３７がオン状態となる。
このため、トランジスタ６７とカレントミラー接続されるトランジスタ３８には、定電流Ｉｄｉｓが流れ、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに接続されるトランジスタ３７にも定電流Ｉｄｉｓが流れる。
【００７５】
ここで、接続点Ｎ２が「Ｈ」レベルとは、ラッチＬＴの状態がフェイル状態であり、消去すべき選択メモリセルのデータが「１」データに消去されなかったことを示すので、１ページのうちＮビットの不揮発性メモリセルのデータが消去されなかった場合、トランジスタ６７とカレントミラー接続されるＮ個のトランジスタ３８各々に定電流Ｉｄｉｓが流れ、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに接続されるトランジスタ５３にも定電流ＩｄｉｓのＮ倍の電流Ｉｔｏｔａｌ（＝Ｎ×Ｉｄｉs）が流れる。
従って、電流Ｉｔｏｔａｌを定電流Ｉｄｉｓで除算した数（フェイルビット数）を算出すれば、イレースベリファイにおける１ページのフェイルビット数を算出することが可能となる。
上述した動作は、ロウデコーダ１４が選択ワード線を変えながら、各ブロックにおいても同様に行われる。
【００７６】
次に、図５は、ビット数判定用電流検出回路２２の構成を示す図である。ビット数判定用電流検出回路２２は、上述したプログラムベリファイ処理及びイレースベリファイ処理においてビット数判定動作を行う場合に、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに流れる電流Ｉｔｏｔａｌに基づいてフェイルビット数をカウントする回路である。
ビット数判定用電流検出回路２２は、電流比較回路７０、定電流発生回路７７、電流制御用カウンタ７８、ビット数保持ラッチ７９、及びマルチプレクサ８０を含んで構成される。
【００７７】
電流比較回路７０は、トランジスタ７１〜トランジスタ７３、インバータ回路７４〜インバータ回路７６を含んで構成される。ここで、トランジスタ７１〜トランジスタ７３は、Ｐチャネル型ＭＯＳトランジスタである。
トランジスタ７１は、ソースが電源配線に接続され、ゲートがインバータ回路７４の出力に接続され、ドレインがトランジスタ７２のソース、及びトランジスタ７３のソースに共通に接続される。
トランジスタ７２は、ソースがトランジスタ７１のドレインに接続され、ゲート及びドレインが共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに接続される。
トランジスタ７３は、ソースがトランジスタ７１のドレインに接続され、ゲートがトランジスタ７２のゲートに接続され、ドレインが定電流発生回路７７の出力に接続される。
ここで、トランジスタ７２とトランジスタ７３は同一サイズに設定されている。
インバータ回路７４の入力は、制御信号ＣＯＭＰＡＲＥＥＮの配線に接続され、出力がトランジスタ７１のゲートに接続される。
インバータ回路７５の入力は、トランジスタ７３のドレイン、及び定電流発生回路７７の出力に接続され、出力がインバータ回路７６の入力に接続される。
インバータ回路７６の入力は、インバータ回路７５の出力に接続され、出力が比較結果信号ＣＯＭＰＡＲＥＯＵＴの配線に接続される。
【００７８】
ビット数判定動作を行う場合、制御回路２０におけるベリファイコントローラー２３が制御信号ＣＯＭＰＡＲＥＥＮを「Ｌ」レベルから「Ｈ」レベルへ変化させる。これにより、トランジスタ７１がオン状態となり、トランジスタ７２とミラー接続されたトランジスタ７３にはトランジスタ７２に流れる電流と同じ電流が流れる。このとき、まだ基準電流Ｉｒｅｆは流れていないので、トランジスタ７３に流れる電流により、トランジスタ７３のドレインの電位は当初「Ｈ」レベルに維持される。このため、電流比較回路７０の出力である比較結果信号ＣＯＭＰＡＲＥＯＵＴは、「Ｈ」レベルとなっている。
その後、ビット数判定動作において、定電流発生回路７７が発生する基準電流Ｉｒｅｆが増加し、基準電流Ｉｒｅｆがトランジスタ７３に流れる電流、すなわちトランジスタ７２に流れる電流Ｉｔｏｔａｌを超えると、トランジスタ７３のドレインの電位が「Ｌ」レベルへと変化する。
【００７９】
以上の構成により、電流比較回路７０は、ベリファイコントローラー２３が制御信号ＣＯＭＰＡＲＥＥＮを「Ｈ」レベルにすると、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに流れる電流Ｉｔｏｔａｌと、定電流発生回路７７が流す基準電流Ｉｒｅｆとを比較し、電流Ｉｔｏｔａｌが基準電流Ｉｒｅｆより低くなると、比較結果信号ＣＯＭＰＡＲＥＯＵＴを「Ｈ」レベルから「Ｌ」レベルへと変化させる。
【００８０】
定電流発生回路７７は、ビット数判定動作前に行う事前ビット数カウント動作（後述）において、電流制御用カウンタ７８が出力するカウント信号ＣＯＵＮＴＯＵＴ＜ｎ：０＞がカウント信号ＩＲＥＦＣＮＴ＜ｎ：０＞として入力され、このカウント信号ＩＲＥＦＣＮＴ＜ｎ：０＞に応じて、定電流Ｉｄｉｓの整数倍の基準電流Ｉｒｅｆを階段状に発生する。なお、定電流Ｉｄｉｓの電流値は、誤差を含むものであるが、その誤差は、定電流Ｉｄｉｓの電流値をページバッファＰＢの個数で除した電流値に対して十分少ない。つまり、カウンタ信号が１ビット変化したときの基準電流Ｉｒｅｆの電流変化量は、定電流Ｉｄｉｓの電流値の誤差に対して、十分な余裕（マージン）を持っている。
【００８１】
また、定電流発生回路７７は、ビット数判定動作において、ビット数保持ラッチ７９が
出力するカウント信号ＰＦＢＩＴＮＵＭＢＥＲ＜ｎ：０＞（事前ビット数カウント動作において得られたカウント信号ＣＯＵＮＴＯＵＴ＜ｎ：０＞）がカウント信号ＩＲＥＦＣＮＴ＜ｎ：０＞として入力され、このカウント信号ＩＲＥＦＣＮＴ＜ｎ：０＞に応じて、基準電流Ｉｒｅｆを発生する。このとき、定電流発生回路７７は、事前ビット数カウント動作において得られたカウント信号ＣＯＵＮＴＯＵＴ＜ｎ：０＞に対応する基準電流を基準電流Ｉｒｅｆ０とすると、例えば、０．５×Ｉｒｅｆ０の関係を有する基準電流Ｉｒｅｆを発生する。
【００８２】
電流制御用カウンタ７８は、事前ビット数カウント動作において、ベリファイコントローラー２３が制御信号ＣＯＵＮＴＥＮを例えば「Ｌ」レベルから「Ｈ」レベルとすると、カントアップ動作を開始し、最小値０から最大値Ｎｍａｘまでカウントアップされたカウント信号ＩＲＥＦＣＮＴ＜ｎ：０＞をマルチプレクサ８０、及びビット数保持ラッチ７９に対して出力する。ここで、最大値Ｎｍａｘを、ページバッファ群１３におけるページバッファＰＢの個数とすることで、全てのラッチＬＴのフェイル状態を検出することができる。
【００８３】
ビット数保持ラッチ７９は、事前ビット数カウント動作において入力されるカウント信号ＣＯＵＮＴＯＵＴ＜ｎ：０＞を保持する。事前ビット数カウント動作の終了後において、ベリファイコントローラー２３は、入力される比較結果信号ＣＯＭＰＡＲＥＯＵＴが「Ｈ」レベルから「Ｌ」レベルへ変化すると、制御信号ＬＡＴＣＨＥＮを例えば「Ｌ」レベルから「Ｈ」レベルとする。これにより、ビット数保持ラッチ７９は、このときのカウント信号ＣＯＵＮＴＯＵＴ＜ｎ：０＞をラッチし、カウント信号ＰＦＢＩＴＮＵＭＢＥＲ＜ｎ：０＞としてマルチプレクサ８０に対して出力する。もちろん、このカウント信号ＰＦＢＩＴＮＵＭＢＥＲ＜ｎ：０＞を、入出力回路１７を介して不揮発性半導体記憶装置１０の外部へ出力してもよい。
【００８４】
マルチプレクサ８０は、事前ビット数カウント動作において、入力を電流制御用カウンタ７８の出力に、事前ビット数カウント動作の終了後には入力をビット数保持ラッチ７９の出力に切り替えて、それぞれをカウント信号ＩＲＥＦＣＮＴ＜ｎ：０＞として定電流発生回路７７に対して出力する。
【００８５】
次に、図６は、ビット数判定用電流検出回路２２の動作を示す図である。図６は、事前ビット数カウントにおけるビット数判定用電流検出回路２２の動作を示している。
事前ビット数カウント動作とは、プログラムベリファイ処理では、上述のデータ転送動作の結果、ラッチＬＴに書き込まれるデータに基づいて行うフェイル数のカウント動作をいう。つまり、ラッチＬＴのフェイル状態（接続点Ｎ１が「Ｈ」レベル、接続点Ｎ２が「Ｌ」レベル）であって、データ「０」を書き込むべき不揮発性メモリセルの個数を、フェイルビット数の初期値としてカウントすることをいう。
また、事前ビット数カウント動作とは、イレースベリファイ処理では、一回消去動作を行った後に、ラッチＬＴに書き込まれるデータに基づいて行うフェイル数のカウント動作をいう。つまり、ラッチＬＴのフェイル状態（接続点Ｎ１が「Ｌ」レベル、接続点Ｎ２が「Ｈ」レベル）であって、消去されずデータ「０」を保持する不揮発性メモリセルの個数を、フェイルビット数の初期値としてカウントすることをいう。
【００８６】
ここでは、プログラムベリファイ処理における事前ビット数カウント動作について説明する。書き込みデータ転送後のラッチＬＴのフェイル状態の個数の整数倍の電流Ｉｔｏｔａｌが共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに流れる。
電流制御用カウンタ７８は、最小値０から最大値Ｎｍａｘまでカウントアップされたカウント信号ＣＯＵＮＴＯＵＴ＜ｎ：０＞を、マルチプレクサ８０を介して、定電流発生回路７７に対して出力する。ここで、最大値Ｎｍａｘは、ページバッファ群１３におけるページバッファＰＢの総個数である。
定電流発生回路７７は、入力されるカウント信号ＣＯＵＮＴＯＵＴ＜ｎ：０＞に応じて、定電流Ｉｄｉｓに最小値０から最大値Ｎｍａｘに対応する整数を乗じた基準電流Ｉｒｅｆを、図６に示すように階段状に発生する。
【００８７】
電流比較回路７０は、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに流れる電流Ｉｔｏｔａｌと、基準電流Ｉｒｅｆとを比較し、基準電流Ｉｒｅｆが電流Ｉｔｏｔａｌを超えると、比較結果信号ＣＯＭＰＡＲＥＯＵＴを「Ｈ」レベルから「Ｌ」レベルへと変化させる。
ベリファイコントローラー２３は、比較結果信号ＣＯＭＰＡＲＥＯＵＴが「Ｈ」レベルから「Ｌ」レベルへと変化すると、制御信号ＬＡＴＣＨＥＮを「Ｌ」レベルから「Ｈ」レベルへと変化させる。
ビット数保持ラッチ７９は、制御信号ＬＡＴＣＨＥＮが「Ｌ」レベルから「Ｈ」レベルへ変化すると、そのとき電流制御用カウンタ７８が出力するカウント信号ＣＯＵＮＴＯＵＴ＜ｎ：０＞をラッチしてカウント信号ＰＦＢＩＴＮＵＭＢＥＲ＜ｎ：０＞を、マルチプレクサ８０に対して出力する。
【００８８】
このように、本発明によれば、ページバッファＰＢに対して専用トランジスタを追加する必要なく、一括判定に用いるトランジスタ３５（第１トランジスタ）及びトランジスタ３６（第２トランジスタ）、或いはトランジスタ３７及びトランジスタ３８を用いて、従来通り容易に、フェイルビット数を検出することが可能となる。このため、フェイルビット数をカウントする機能を持ちつつ、チップサイズの増大を招くことはなく、従来例に比べ、チップコストを削減することが可能となる。
【００８９】
続いて、本発明の他の一つの特徴であるベリファイ処理（プログラムベリファイ、イレースベリファイ）におけるパスビット数の変化の検出について説明する。
図７は、プログラム動作における処理のフロー、及びイレース動作における処理のフローを示す。なお、ここでは、図７（ａ）及び図８を用いてプログラム動作における処理について説明する。図８は、ビット数判定動作における電流Ｉｔｏｔａｌの変化を示す図である。
まず、書き込みデータ転送動作を行い、データ「０」を書き込むべき不揮発性メモリセルがビット線ＢＬを介して接続されるページバッファＰＢのラッチＬＴの状態を、フェイル状態に設定する。ページバッファ群１３のページバッファＰＢのラッチＬＴの状態は、接続点Ｎ１が「Ｌ」レベル、接続点Ｎ２が「Ｈ」レベルと、フェイル状態となる（ステップＳ７１）。
【００９０】
制御回路２０におけるベリファイコントローラー２３が、制御信号ＷＯＲＥｎａｂｌｅを「Ｌ」レベルのままとし、制御信号ＰＦＢｉｔＣｏｕｎｔＥｎａｂｌｅを「Ｈ」とする。
これにより、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに、定電流ＩｄｉｓにラッチＬＴのフェイル状態の個数（Ｎとする）を乗じた電流Ｉｔｏｔａｌ（＝Ｎ×Ｉｄｉs）が流れる。
定電流発生回路７７は、入力されるカウント信号ＣＯＵＮＴＯＵＴ＜ｎ：０＞に応じて、定電流Ｉｄｉｓに整数を乗じた基準電流Ｉｒｅｆを階段状に発生する。電流比較回路７０は、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに流れる電流Ｉｔｏｔａｌと、基準電流Ｉｒｅｆとを比較し、基準電流Ｉｒｅｆが電流Ｉｔｏｔａｌを超えると、比較結果信号ＣＯＭＰＡＲＥＯＵＴを「Ｈ」レベルから「Ｌ」レベルへと変化させる。
【００９１】
ビット数保持ラッチ７９は、制御信号ＬＡＴＣＨＥＮが「Ｌ」レベルから「Ｈ」レベルへと変化することにより、電流制御用カウンタ７８が出力するカウント信号ＣＯＵＮＴＯＵＴ＜ｎ：０＞、つまりＮをラッチする。そして、ビット数保持ラッチ７９は、カウント信号ＰＦＢＩＴＮＵＭＢＥＲ＜ｎ：０＞を、マルチプレクサ８０に対して出力する（ステップＳ７１）。
このように、ビット数判定用電流検出回路２２では、フェイル数の初期値がカウントされる。
【００９２】
例えば、１ページに接続される不揮発性メモリセルが４ｋビットであって、データ「０」を書き込むべきセルが４ｋビットである場合、電流Ｉｔｏｔａｌは定電流Ｉｄｉｓ×４ｋとなり、電流制御用カウンタ７８が出力するカウント信号ＰＦＢＩＴＮＵＭＢＥＲ＜ｎ：０＞は４ｋとなる。
或いは、１ページに接続される不揮発性メモリセルが４ｋビットであって、データ「０」を書き込むべきセルが２ｋビットである場合、電流Ｉｔｏｔａｌは定電流Ｉｄｉｓ×２ｋとなり、電流制御用カウンタ７８が出力するカウント信号ＰＦＢＩＴＮＵＭＢＥＲ＜ｎ：０＞は２ｋとなる。
【００９３】
事前ビット数カウント動作が終了すると、マルチプレクサ８０の入力が切り替わる。これにより、定電流発生回路７７は、カウント信号ＩＲＥＦＣＮＴ＜ｎ：０＞としてビット数保持ラッチ７９から入力されるカウント信号ＰＦＢＩＴＮＵＭＢＥＲ＜ｎ：０＞に応じて、例えば電流Ｉｔｏｔａｌ（Ｉｒｅｆ０とする）の半分の基準電流Ｉｒｅｆ（＝Ｉｒｅｆ０×１／２）を発生する。
【００９４】
次に、ページバッファ群１３の各ページバッファＰＢにおいて、不揮発性メモリセルへのプログラム動作が、ラッチＬＴに書き込まれた状態に基づいて実行される（ステップＳ７３）。
続いて、書き込まれたデータについての検証（ベリファイ）が行われる（ステップＳ７１）。ページバッファ群１３の各ページバッファＰＢにおいて、データ「０」を書き込むべきセルであってデータ「０」が書き込まれなかったセルに接続されるラッチＬＴの状態は、フェイル状態（接続点Ｎ１が「Ｈ」レベル、接続点Ｎ２が「Ｌ」レベル）を維持する。一方、データ「０」が正しく書き込まれたセルに接続されるラッチＬＴの状態は、パス状態（接続点Ｎ１が「Ｌ」レベル、接続点Ｎ２が「Ｈ」レベル）へと変化する。
【００９５】
ビット数判定用電流検出回路２２では、ビット数判定動作が実行される（ステップＳ７５）。
つまり、ステップＳ７４において正しく「０」データが書き込まれたセル（パスビット）が増えるにつれて、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに流れる電流Ｉｔｏｔａｌは、図８（ａ）、及び図８（ｂ）に示すように、事前ビット数カウントの際流れた電流Ｉｔｏｔａｌ、すなわち、基準電流Ｉｒｅｆに対して階段状に減少していく。
【００９６】
また、ビット数判定用電流検出回路２２では、ビット数判定動作において、基準電流Ｉｒｅｆが共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに流れる電流Ｉｔｏｔａｌを超えるか否かが判定される（ステップＳ７６）。
ビット数判定用電流検出回路２２における電流比較回路７０は、基準電流Ｉｒｅｆ（＝Ｉｒｅｆ×１／２）が電流Ｉｔｏｔａｌを超えると、比較結果信号ＣＯＭＰＡＲＥＯＵＴを「Ｈ」レベルから「Ｌ」レベルへと変化させる。ベリファイコントローラー２３は、ベリファイ動作がパスしたので、プログラム動作を終了する（ステップＳ７６−Ｐａｓｓ）。
一方、基準電流Ｉｒｅｆが電流Ｉｔｏｔａｌを超えない場合、図８（ａ）に示すように上記ステップＳ７３〜ステップＳ７５（プログラムループ）を，ベリファイ動作がパスするまで繰り返す（ステップＳ７６−Ｎｏ）。
【００９７】
つまり、プログラム動作では、１ページに接続される不揮発性メモリセルが４ｋビットであって、データ「０」を書き込むべきセルが４ｋビットである場合、図８（ａ）に示すように、２ｋビットがパスするまでのプログラムループ数を検出できる。また、１ページに接続される不揮発性メモリセルが４ｋビットであって、データ「０」を書き込むべきセルが２ｋビットである場合、図８（ｂ）に示すように、２ｋビットがパスするまでのプログラムループ数を検出できる。
【００９８】
このように、本実施形態では、パスビット数が１／２になるまでのプログラムループの回数が検出できるので、パスビット数の変化を検出できる。例えば、プログラム時間は、不揮発性メモリセルの劣化により一般的に短くなる傾向を持つが、本実施形態によれば、パスビット数が一定の割合（この場合１／２）になるまでの時間を検出できる。これにより、例えばパスビット数が一定の割合になるまでの時間が短くなっている場合、プログラム時の選択ワード線の電圧を下げる等の調整を行う。この結果、不揮発性メモリセルへのプログラムストレスを低減してメモリセルの劣化を防ぐことができ、不揮発性半導体装置の信頼性を向上することができる。
【００９９】
また、上述した実施形態はプログラム時の例であるが、イレース動作においても同様にパスビット数の遷移を検出することができる。
図７（ｂ）は、イレース動作における処理のフローを示す。イレース動作はプログラム動作と相違し、書き込みデータ転送（ステップＳ７１）がないため、事前ビット数カウント（ステップＳ８２）の前に、ベリファイ動作（ステップＳ８１）を行なう必要がある。すなわち、１回のイレースベリファイ動作の後にフェイル数をカウントし、これをビット数保持ラッチ７９にラッチする（ステップＳ８２）。その後、イレース動作（ステップＳ８３）、ベリファイ動作（ステップＳ８４）、ビット数判定動作（ステップＳ８５）、及びベリファイパス判定（ステップＳ８６）からなるイレースループを繰り返し、パスビット数の遷移を検出する。
【０１００】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
例えば、ビット数判定用電流検出回路２２を、図９に示す構成とすることができる。
図９は、ビット数判定用電流検出回路２２ａの構成を示す図である。図９において、図５と同一の部分には同一の符号を付し、その説明を省略する。
上記実施形態の説明において、ビット数判定用電流検出回路２２では、プログラムすべきセルの１／２のセルがパスしたということを判定した例について説明したが、ビット数保持ラッチ７９の出力に図９に示すように演算回路８１を接続する。これにより、ビット数判定時において、判定したいパスビット数を直接制御することも可能である。
例えば、１００ビットパスしたことを検出したい場合、ビット数判定動作時に、演算回路８１が、ＩＲＥＦＣＮＴ=ＰＦＢＩＴＮＵＭＢＥＲ−１００となる減算を行うことにより、プログラム開始後、１００ビットパスした時点を検出することが可能である。
このように、ビット数判定用電流検出回路２２ａは、ビット数保持ラッチ７９にラッチされた電流制御カウンタの出力から、予め設定されたパスビット数を減算する演算回路８１を備え、基準電流発生回路（定電流発生回路７７）は、演算回路８１の減算結果に応じて基準電流Ｉｒｅｆを発生する。
【０１０１】
また、ビット数判定用電流検出回路２２を、図１０に示す構成とすることができる。
図１０は、ビット数判定用電流検出回路２２ｂの構成を示す図である。図１０において、図５と同一の部分には同一の符号を付し、その説明を省略する。
図１０に示すビット数判定用電流検出回路２２ｂでは、定電流発生回路７７〜マルチプレクサ８０のビット数カウント時における動作は、図５に示すビット数判定用電流検出回路２２の動作と同じである。図１０に示すビット数判定用電流検出回路２２ｂでは、電流比較回路７０ａ内のカレントミラーの比を変更した場合の一例を示している。
電流比較回路７０ａにおいて、トランジスタ９２はトランジスタ７３と同じくトランジスタ７２にミラー接続される。
上記実施形態では、ビット数判定時において基準電流Ｉｒｅｆ（＝Ｉｒｅｆ０×１／２）で判定していたが、本構成では定電流発生回路７７が発生する基準電流が基準電流Ｉｒｅｆ０そのものであってよい。
【０１０２】
例えば、トランジスタ７３とトランジスタ９２とを同一のサイズにすれば、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに流れる電流Ｉｔｏｔａｌの２倍の電流がトランジスタ７３及びトランジスタ９２（Ｐチャネル型ＭＯＳトランジスタ）に流れる。そのため、定電流発生回路７７が発生する基準電流を半分にせずとも、プログラムすべきセルの１／２のセルがパスしたということを判定できる。なお、図１０において示す制御信号ＭＡＪＯＲＣＨＫは、制御信号ＣＯＭＰＡＲＥＥＮと同様に、ベリファイコントローラー２３が出力する構成としてよい。ベリファイコントローラー２３が、ビット数判定時において制御信号ＭＡＪＯＲＣＨＫを「Ｌ」レベルから「Ｈ」レベルへ変化させれば、ナンド回路９３によりトランジスタ９１（Ｐチャネル型ＭＯＳトランジスタ）がオンし、トランジスタ９２にはトランジスタ７３と同じドイレン電流が流れ、プログラムすべきセルの１／２のセルがパスしたということを判定できる。
このように、ビット数判定用電流検出回路２２ｂは、定電流発生回路７７（基準電流発生回路）と電流比較回路７０ａとを備える。定電流発生回路７７は、ビット数保持ラッチ７９にラッチされた電流制御用カウンタ７８の出力に対応する基準電流Ｉｒｅｆ０に、フェイル状態の個数に対するパスビットの比率を示す、予め設定された１／ｍ（ｍ≧１）を乗じた基準電流Ｉｒｅｆを発生する。また、電流比較回路７０ａは、共通ベリファイ判定信号線ＶＥＲＩＦＹＰＦに流れる電流のｎ（ｎ≧１）倍の電流を発生する回路であって、ｎ倍後の電流と基準電流Ｉｒｅｆとを比較する。
なお、図５に示すビット数判定用電流検出回路２２では、ｎ＝１、ｍ＝２の場合であり、ビット数判定用電流検出回路２２ｂでは、ｎ＝２、ｍ＝１の場合である。
ビット数判定用電流検出回路２２ｂでは、定電流発生回路７７が基準電流Ｉｒｅｆ０の（１／ｍ）の電流を発生する必要がなく、定電流発生回路７７の回路構成を簡易化することができる。
【符号の説明】
【０１０３】
１０…不揮発性半導体記憶装置、１１…メモリセルアレイ、１３…ページバッファ群、１４…ロウデコーダ、１５…カラムデコーダ、１６…電圧生成回路、１７…入出力回路、１８…コマンドレジスタ、１９…アドレスレジスタ、２０…制御回路、２１…ページバッファ電流制御回路、２２，２２ａ，２２ｂ…ビット数判定用電流検出回路、７０，７０ａ…電流比較回路、７７…定電流発生回路、７８…電流制御用カウンタ、７９…ビット数保持ラッチ、８０…マルチプレクサ、８１…演算回路、ＶＥＲＩＦＹＰＦ…共通ベリファイ判定信号線、ＷＯＲＥｎａｂｌｅ，ＰＦＢｉｔＣｏｕｎｔＥｎａｂｌｅ，ＣＯＭＰＡＲＥＥＮ，ＣＯＵＮＴＥＮ，ＬＡＴＣＨＥＮ，ＰＶＴＲ，ＥＶＴＲ，ＰＬＯＡＤ，ＢＬＳＬＴ，ＰＤＩＳ，ＰＢＲＳＴ，ＰＰＧＭ，ＰＢＬＣＨ，ＶＥＲＩＦＹＢ，ＢＵＳＰＣ，ＭＡＪＯＲＣＨＫ…制御信号、ＣＯＭＰＡＲＥＯＵＴ…比較結果信号、ＰＦＢＩＴＮＵＭＢＥＲ，ＣＯＵＮＴＯＵＴ，ＩＲＥＦＣＮＴ…カウント信号、ＤＹＲ，ＤＹＷ…カラムアドレス、ＰＢ…ページバッファ、ＬＴ…ラッチ、３１，３２，３３，３４，３５，３６，３７，３８，３９，４０，４１，４２，４３，４４，５３，５４，６４，６４ａ，６４ｂ，６５，６５ａ，６５ｂ，６６，６７，６８，７１，７２，７３，９１，９２…トランジスタ、Ｒ１…抵抗、Ｎ１，Ｎ２，ＳＯ…接続点、２７…チャージ回路、ＤＩＮＢＵＳ…書込線、ＤＯＵＴＢＵＳ…読出線、ＩＶ１，ＩＶ２，６３，７４，７５，７６…インバータ回路、６１，９３…ナンド回路、６２…ノア回路、ＢＬ…ビット線、Ｉｒｅｆ，Ｉｒｅｆ０…基準電流、Ｉｔｏｔａｌ…電流、Ｉｄｉｓ…定電流、２３…ベリファイコントローラー
【図１】
2013127827.tif 000003
【図２】
2013127827.tif 000004
【図３】
2013127827.tif 000005
【図４】
2013127827.tif 000006
【図５】
2013127827.tif 000007
【図６】
2013127827.tif 000008
【図７】
2013127827.tif 000009
【図８】
2013127827.tif 000010
【図９】
2013127827.tif 000011
【図１０】
2013127827.tif 000012