"複数のビット線と複数のワード線との各々が交差し、交差した部分に不揮発性のメモリセルが配置されたメモリセルアレイと、前記ビット線毎に設けられ、前記ワード線により選択された当該メモリセルに書き込むデータまたは前記メモリセルから読み出したデータを記憶するラッチを含むページバッファと、ベリファイ処理において、前記ページバッファの前記ラッチに書き込まれたデータが読み出される一括判定信号線と、前記ページバッファにおける前記ラッチの出力に接続される第1トランジスタと直列に接続される第2トランジスタを制御して、当該第2トランジスタを介して前記ラッチの出力に応じて前記一括判定信号線に単位電流を流すページバッファ電流制御回路と、前記ベリファイ処理において、前記一括判定信号線に流れる電流を前記単位電流で除算して、前記ページバッファに接続される前記ビット線に前記メモリセルから読み出したデータのフェイル状態の個数を検出するビット数判定用電流検出回路と、を備えることを特徴とする不揮発性半導体記憶装置。前記ビット数判定用電流検出回路は、前記ベリファイ処理においてカウントアップ動作を行う電流制御カウンタと、前記電流制御カウンタの出力に応じて、前記単位電流の整数倍の基準電流を発生する基準電流発生回路と、前記一括判定信号線に流れる電流と前記基準電流とを比較して、前記一括判定信号線に流れる電流が前記基準電流を超えると、出力である比較結果信号を活性レベルへ変化させる電流比較回路と、前記比較結果信号が活性レベルになると、前記電流制御カウンタの出力をラッチするビット数保持ラッチと、を有することを特徴とする請求項1に記載の不揮発性半導体記憶装置。前記ベリファイ処理がプログラムベリファイ処理の場合、前記ビット数ラッチは、前記ページバッファにおける前記ラッチに最初に書き込まれたデータに基づいて、前記電流制御カウンタの出力をラッチし、前記基準電流発生回路は、前記ビット数保持ラッチにラッチされた前記電流制御カウンタの出力に応じて、前記基準電流を発生し、前記電流比較回路は、前記比較結果信号を活性レベルへ変化させる、ことを特徴とする請求項2記載の不揮発性半導体記憶装置。前記ベリファイ処理がイレースベリファイ処理の場合、前記ビット数ラッチは、前記ページバッファにおける前記ラッチの一回目のベリファイ結果に基づいて、前記電流制御カウンタの出力をラッチし、前記基準電流発生回路は、前記ビット数保持ラッチにラッチされた前記電流制御カウンタの出力に応じて、前記基準電流を発生し、前記電流比較回路は、前記比較結果信号を活性レベルへ変化させる、ことを特徴とする請求項2記載の不揮発性半導体記憶装置。前記ビット数保持ラッチにラッチされた前記電流制御カウンタの出力から、予め設定されたパスビット数を減算する演算回路を備え、前記基準電流発生回路は、前記演算回路の減算結果に応じて前記基準電流を発生する、ことを特徴とする請求項3または請求項4いずれか一項に記載の不揮発性半導体記憶装置。前記基準電流発生回路は、前記ビット数保持ラッチにラッチされた前記電流制御カウンタの出力に対応する基準電流に、前記フェイル状態の個数に対するパスビットの比率を示す、予め設定された1/mm≧1を乗じた前記基準電流を発生し、前記電流比較回路は、前記一括判定信号線に流れる電流のnn≧1倍の電流を発生する回路であって、n倍後の電流と前記基準電流とを比較する、ことを特徴とする請求項3または請求項4いずれか一項に記載の不揮発性半導体記憶装置。特許文献1記載の不揮発性半導体記憶装置は、ページバッファの一定単位ごとに、ページバッファにおけるラッチのパス及びフェイルの状態に応じて、それぞれが異なる電流を流す複数のトランジスタから構成される許容フェイル数設定回路を備えている。特許文献1記載の不揮発性半導体記憶装置は、一括判定信号線に流れる電流第1の電流と、許容フェイル数設定回路に流れる電流第2の電流とを比較して、フェイルビット数を検出することを可能としている。しかしながら、特許文献1記載の不揮発性半導体記憶装置の構成を用いて、フェイルビット数を検出する場合、カラムにより区別されるページバッファの個数を2nとすると、それぞれが異なる電流を流す複数のトランジスタがn1個必要となる。そのため、フェイルビット数を±1の範囲内で精度よく検出するためには、互いにサイズの異なる、許容フェイル数設定回路用の専用トランジスタが必要となり、チップサイズが増大し、チップのコストが上がるという問題があった。また、プログラム動作においては、プログラムを行わないセルに対しては、ページバッファのラッチにはインヒビットデータ書き込み禁止データとしてパスデータが予め格納されているため、プログラム前に比べて、変化したパスビット数を検出することが不可能であった。同様に、イレース動作においても、イレース前の状態が1のセルについては、すでにパスした状態のため、ページバッファのラッチにはパスデータが格納されてしまうため、イレース前から変化したパスビット数を検出することが不可能であった。そこで本発明が解決しようとする課題は、ページバッファにおける専用トランジスタを不要とし、かつ、フェイルビット数だけでなく、パスビット数の変化を検出できる不揮発性半導体記憶装置を提供することにある。本発明の不揮発性半導体記憶装置は、複数のビット線と複数のワード線との各々が交差し、交差した部分に不揮発性のメモリセルが配置されたメモリセルアレイと、前記ビット線毎に設けられ、前記ワード線により選択された当該メモリセルに書き込むデータまたは前記メモリセルから読み出したデータを記憶するラッチを含むページバッファと、ベリファイ処理において、前記ページバッファの前記ラッチに書き込まれたデータが読み出される一括判定信号線と、前記ページバッファにおける前記ラッチの出力に接続される第1トランジスタと直列に接続される第2トランジスタを制御して、当該第2トランジスタを介して前記ラッチの出力に応じて前記一括判定信号線に単位電流を流すページバッファ電流制御回路と、前記ベリファイ処理において、前記一括判定信号線に流れる電流を前記単位電流で除算して、前記ページバッファに接続される前記ビット線に前記メモリセルから読み出したデータのフェイル状態の個数を検出するビット数判定用電流検出回路と、を備えることを特徴とする。また、本発明の不揮発性半導体記憶装置において、前記ビット数判定用電流検出回路は、前記ベリファイ処理においてカウントアップ動作を行う電流制御カウンタと、前記電流制御カウンタの出力に応じて、前記単位電流の整数倍の基準電流を発生する基準電流発生回路と、前記一括判定信号線に流れる電流と前記基準電流とを比較して、前記一括判定信号線に流れる電流が前記基準電流を超えると、出力である比較結果信号を活性レベルへ変化させる電流比較回路と、前記比較結果信号が活性レベルになると、前記電流制御カウンタの出力をラッチするビット数保持ラッチと、を有することを特徴とする。また、本発明の不揮発性半導体記憶装置において、前記ベリファイ処理がプログラムベリファイ処理の場合、前記ビット数ラッチは、前記ページバッファにおける前記ラッチに最初に書き込まれたデータに基づいて、前記電流制御カウンタの出力をラッチし、前記基準電流発生回路は、前記ビット数保持ラッチにラッチされた前記電流制御カウンタの出力に応じて、前記基準電流を発生し、前記電流比較回路は、前記比較結果信号を活性レベルへ変化させる、ことを特徴とする。また、本発明の不揮発性半導体記憶装置において、前記ベリファイ処理がイレースベリファイ処理の場合、前記ビット数ラッチは、前記ページバッファにおける前記ラッチの一回目のベリファイ結果に基づいて、前記電流制御カウンタの出力をラッチし、前記基準電流発生回路は、前記ビット数保持ラッチにラッチされた前記電流制御カウンタの出力に応じて、前記基準電流を発生し、前記電流比較回路は、前記比較結果信号を活性レベルへ変化させる、ことを特徴とする。また、本発明の不揮発性半導体記憶装置において、前記ビット数保持ラッチにラッチされた前記電流制御カウンタの出力から、予め設定されたパスビット数を減算する演算回路を備え、前記基準電流発生回路は、前記演算回路の減算結果に応じて前記基準電流を発生する、ことを特徴とする。また、本発明の不揮発性半導体記憶装置において、前記基準電流発生回路は、前記ビット数保持ラッチにラッチされた前記電流制御カウンタの出力に対応する基準電流に、前記フェイル状態の個数に対するパスビットの比率を示す、予め設定された1/mm≧1を乗じた前記基準電流を発生し、前記電流比較回路は、前記一括判定信号線に流れる電流のnn≧1倍の電流を発生する回路であって、n倍後の電流と前記基準電流とを比較する、ことを特徴とする。本発明の不揮発性半導体記憶装置は、ベリファイ動作において、ページバッファ電流制御回路が、ページバッファにおけるラッチの出力に接続される第1トランジスタと直列に接続される第2トランジスタを制御して、当該第2トランジスタを介してラッチの出力に応じて一括判定信号線に単位電流を流す。また、ビット数判定用電流検出回路は、一括判定信号線に流れる電流に応じて、ページバッファに接続されるビット線にメモリセルから読み出したデータのフェイル状態の個数を検出する。よって、本発明によれば、ページバッファに対して専用トランジスタを追加する必要がなく、容易に、フェイルビット数を検出することが可能となる。このため、フェイルビット数をカウントする機能を持ちつつ、チップサイズの増大を招くことはないので、従来例に比べ、チップコストを削減することが可能となる。また、ベリファイ処理がプログラムベリファイ処理の場合、ビット数判定用電流検出回路が、プログラムデータに基づいて、最初のベリファイ動作の前のフェイルビット数の初期値を検出するので、パスビット数の変化を検出できる。一方、ベリファイ処理がイレースベリファイ処理の場合、ビット数判定用電流検出回路が、最初のイレースベリファイ結果に基づいて、最初のベリファイ動作の前のフェイルビット数の初期値を検出するので、パスビット数の変化を検出できる。これにより、ベリファイ処理プログラムベリファイ、イレースベリファイにおいて、パスビット数の変化を検出できる。以下、図面を参照して、本発明の実施の形態について説明する。図1は、この発明の一実施形態による不揮発性半導体記憶装置10であるNAND型EEPROMの構成例を示す概略ブロック図である。メモリセルアレイ11は、複数のスタックゲート構造のトランジスタ、すなわち電気的書き換え可能な不揮発性メモリセルをカラム方向列方向に直列接続して、ビット線毎に設けられたNANDセルストリングを、行方向ビット線の配列方向に複数個配置したブロックから構成される。このブロックは、ビット線の配線方向に複数個配置される。また、このブロックは、メモリセルのデータの消去単位で設けられている。各ブロックにおいては、同一行に配置された不揮発性メモリ各々のゲートには、ビット線に直行したワード線が接続される。1本のワード線により選択される不揮発性メモリセルの範囲がプログラム及び読み出しの単位となる1ページである。ページバッファ群13は、ページ単位のデータのプログラム及び読み出しを行うため、ビット線毎に設けられたページバッファPB後述の複数から構成されている。このページバッファ群13におけるページバッファPB各々は、それぞれのビット線に接続され、接続されたビット線の電位を増幅して判定するセンスアンプ回路として用いるラッチ回路を有する。ロウデコーダ14は、メモリセルアレイ11のワード線の選択を行う。カラムデコーダ15は、メモリセルアレイ11のビット線及びページバッファPBの選択を行う。電圧生成回路16は、不揮発性メモリセルに対するデータのプログラム、消去及び読み出しに用いられる各種電圧を電源電圧から昇圧動作等により生成する。入出力回路17は、外部から供給されるアドレスをアドレスレジスタ19へ出力し、外部から供給されるコマンドを示すコマンドデータをコマンドレジスタ18へ出力し、外部から入力される制御信号を制御回路20へ出力する。また、入出力回路17は、外部から入力されるデータをページバッファ群13のページバッファPB各々へ出力、あるいはページバッファ群13を介し、不揮発性メモリセルから読み出されたデータを外部に出力する。アドレスレジスタ19は、入出力回路17から入力されるアドレスを保持し、保持したアドレスをロウデコーダ14及びカラムデコーダ15へ出力する。コマンドレジスタ18は、入出力回路17から入力されるコマンドデータにより表されるコマンドデータを保持する。制御回路20は、入出力回路17から入力する制御信号及びコマンドレジスタ18から供給されるコマンドデータにより、不揮発性メモリセルに対するデータのプログラム、読み出し、消去などの動作、及びベリファイの動作の制御を行う。例えば、制御信号は、外部クロック信号、チップイネーブル信号、コマンドラッチイネーブル信号、アドレスラッチイネーブル信号、プログラムイネーブル信号、読み出しイネーブル信号などである。制御回路20は、これらの制御信号により、コマンドデータの示す動作モードに応じて、各回路に対して内部制御信号を出力する。特に、制御回路20は、不揮発性メモリセルからのデータ読み出しデータ読み出し動作、不揮発性メモリセルへのデータ書き込み動作プログラム動作及びプログラムベリファイ動作、不揮発性メモリセルのデータ消去動作イレース動作及びその後のイレースベリファイ動作において、ページバッファを制御するための制御信号ページバッファPBに対して出力する。これらの制御信号は、詳細は後述するが、制御信号PLOAD、制御信号PDIS、制御信号BLSLT、制御信号PBRST、制御信号PPGM、制御信号PVTR、制御信号EVTR、制御信号VERIFYB、制御信号BUSPC等である。次に、図2は、制御回路20の詳細な構成例を示す図である。制御回路20は、ページバッファ電流制御回路21、ビット数判定用電流検出回路22、及びベリファイコントローラー23を含んで構成される。ページバッファ電流制御回路21は、ページバッファPBに供給する制御信号のうち、プログラムベリファイ動作において、ページバッファPBにおけるラッチ回路の判定結果を共通ベリファイ判定信号線VERIFYPF一括判定信号線に対して出力させる制御信号PVTRを出力する。また、ページバッファ電流制御回路21は、イレースベリファイ動作において、ページバッファPBにおけるラッチ回路の判定結果を共通ベリファイ判定信号線VERIFYPFに対して出力させる制御信号EVTRを出力する。ベリファイコントローラー23は、ページバッファPB各々におけるラッチ回路の判定結果を一括ベリファイ判定する場合と、判定結果をフェイルビット数判定する場合とで、制御信号WOREnable、制御信号PFBitCountEnableのレベルを切り替えて、ページバッファ電流制御回路21に対して出力する。ここで、一括ベリファイ判定とは、複数あるページバッファPB各々におけるラッチ回路の判定結果を一括でベリファイ判定をすることである。また、フェイルビット数判定とは、ページバッファPB各々におけるラッチ回路の判定結果のうち何ビットがフェイル結果であるかを判定することである。また、ベリファイコントローラー23は、判定結果をフェイルビット数判定する場合、制御信号COMPAREEN、制御信号COUNTEN、及び制御信号LATCHENをビット数判定用電流検出回路22に対して出力する。ビット数判定用電流検出回路22は、ベリファイ動作において、フェイルビット数判定を実際に行なう回路である詳細後述。ビット数判定用電流検出回路22は、共通ベリファイ判定信号線VERIFYPFに流れる電流と基準電流Irefとを比較し、基準電流Irefを超えた場合は比較結果信号COMPAREOUTを非活性レベルHレベルから活性レベルLレベルに変化させてベリファイコントローラー23に対して出力する。次に、図3は、ページバッファPBの構成の一例を示す図である。ページバッファ群13におけるページバッファは、以下に説明するページバッファPBと同様の構成を有している。ページバッファPBは、トランジスタ31、トランジスタ32、トランジスタ33、トランジスタ34、トランジスタ35、トランジスタ36、トランジスタ37、トランジスタ38、トランジスタ39、トランジスタ40、トランジスタ41、トランジスタ42、トランジスタ43、及びトランジスタ44と、ラッチLTとを含んで構成される。ここで、トランジスタ31及びトランジスタ32は、Pチャネル型MOSMetalOxideSemiconductorトランジスタである。一方、トランジスタ33からトランジスタ44は、Nチャネル型MOSトランジスタである。また、ラッチLTは、インバータ回路IV1、及びインバータ回路IV2から構成される。ここで、インバータ回路IV1は、出力端子が接続点N2においてインバータ回路IV2の入力端子に接続され、入力端子が接続点N1においてインバータ回路IV2の出力端子に接続される。トランジスタ31は、ソースが電源配線に接続され、ゲートが制御信号PLOADの配線に接続され、ドレインがトランジスタ33のゲート、及び接続点SOに接続される。トランジスタ32は、ソースが電源配線に接続され、ゲートが制御信号PBRSTの配線に接続され、ドレインがトランジスタ33のドレイン、及び接続点N1に接続される。トランジスタ33は、ドレインが接続点N1に接続され、ゲートが接続点SOに接続され、ソースがトランジスタ34のドレインに接続される。トランジスタ34は、ドレインがトランジスタ33に接続され、ゲートが制御信号PBLCHの配線に接続され、ソースが接地される。トランジスタ35は、ドレインが共通ベリファイ判定信号線VERIFYPFに接続され、ゲートが接続点N1に接続され、ソースがトランジスタ36のドレインに接続される。トランジスタ36は、ドレインがトランジスタ35のソースに接続され、ゲートが制御信号PVTRの配線に接続され、ソースが接地される。トランジスタ37は、ドレインが共通ベリファイ判定信号線VERIFYPFに接続され、ゲートが接続点N2に接続され、ソースがトランジスタ38のドレインに接続されている。トランジスタ38は、ドレインがトランジスタ37のソースに接続され、ゲートが制御信号EVTRの配線に接続され、ソースが接地される。トランジスタ41は、ドレインがビット線BLに接続され、ゲートが制御信号BLSLTの配線に接続され、ソースがトランジスタ31のドレイン、及び接続点SOに接続される。トランジスタ42は、ドレインがビット線BLに接続され、ゲートが制御信号PDISの配線に接続され、ソースが接地される。トランジスタ40は、ドレインがトランジスタ41のソース、及び接続点SOに接続され、ゲートが制御信号PPGMの配線に接続され、ソースが接続点N2に接続される。トランジスタ39は、ドレインが接続点N2に接続され、ゲートがカラムアドレスDYWの配線に接続され、ソースが書込線DINBUSに接続される。トランジスタ43は、ドレインが読出線DOUTBUSに接続され、ゲートがカラムアドレスDYRの配線に接続され、ソースがトランジスタ44のドレインに接続される。トランジスタ44は、ドレインがトランジスタ43のソースに接続され、ゲートが接続点N2に接続され、ソースが接地される。ベリファイ判定回路チャージ回路27は、pチャネル型MOSトランジスタであるトランジスタ53、及びトランジスタ54から構成される。トランジスタ53は、ソースが電源配線に接続され、ゲートが制御信号VERIFYBの配線に接続され、ドレインが共通ベリファイ判定信号線VERIFYPFに接続される。トランジスタ54は、ソースが電源配線に接続され、ゲートが制御信号BUSPCの配線に接続され、ドレインが読出線DOUTBUSに接続される。次に、データ読み出し動作、プログラム動作、及びイレース動作各々の動作におけるページバッファPBの動作、及びラッチLTの出力レベル接続点N1及び接続点N2のHレベルまたはLレベルについて、以下に説明する。<データ読み出し動作>読み出し時において、外部から読み出しを示すコマンドデータが入出力回路17に入力され、コマンドレジスタ18に読み出しモードとするデータが設定され、このデータに基づいて制御回路20が各回路を制御する制御信号を出力する。初期状態においては、制御回路20は、制御信号PDIS、制御信号BLSLT、制御信号PPGM、制御信号PBLCH、制御信号PVTR、及び制御信号EVTRをLレベルとし、制御信号PLOAD、PBRSTをHレベルとしている。また、カラムデコーダ15は、カラムアドレスDYW及びカラムアドレスDYRをLレベルとしている。制御回路20は、制御信号PBRSTをLレベルに変化させ、強制的に接続点N1にHレベルのデータを与え、不揮発性メモリセルからビット線BLへデータを読み出す前準備のリセットRESET動作を行う。これにより、制御回路20は、ラッチLTに、接続点N1がHレベル、接続点N2にLレベルのデータを書き込み、ラッチLTにリセット時のデータを記憶させる。そして、制御回路20は、制御信号PBRSTをHレベルに変化させ、トランジスタ32をオフ状態とし、リセット処理を終了する。不揮発性メモリセルからビット線BLへデータを読み出す際、制御回路20は、制御信号PDISをHレベルとして、トランジスタ42をオン状態とし、ビット線BLの電位を一旦接地レベルに変化させる。そして、制御回路20は、制御信号PDIS及び制御信号PLOADをLレベルに変化させ、制御信号BLSLTをHレベルに変化させる。これにより、トランジスタ42はオフ状態となり、トランジスタ31及びトランジスタ41はオン状態となる。そして、トランジスタ31及びトランジスタ41を介してビット線BLが所定の電位にプリチャージされる。次に、制御回路20は、制御信号PLOADをHレベルとし、トランジスタ31をオフ状態とする。そして、制御回路20は、制御信号PBRSTをLレベルに変化させ、制御信号PBLCHをHレベルに変化させる。これにより、トランジスタ32及びトランジスタ33がオン状態となり、ロウデコーダ14が選択したワード線がゲートに接続されている不揮発性メモリセルからビット線BLへデータが読み出される。ここで、ロウデコーダ14は、選択したワード線以下、選択ワード線とするをLレベルとし、選択されたワード線以外の全ての選択ワード線以下、非選択ワード線とするを、電圧生成回路16が生成した電圧例えば、5Vを印加し、選択ワード線以外の非選択ワード線がゲートに接続された不揮発性メモリセル以下、非選択メモリセルとするすべてをオン状態とする。また、制御回路20は、制御信号PBLCHをHレベルに変化させ、トランジスタ34をオン状態とする。この結果、選択ワード線に接続された不揮発性メモリセル以下、選択メモリセルとするに0データが書き込まれているとき、選択メモリセルがオフ状態であり、ビット線BLがHレベルのままであり、トランジスタ33がオン状態のままとなる。このため、接続点N1の電位は、トランジスタ33及びトランジスタ34を介する電流により、Lレベルに変化する。また、接続点N2の電位は、Hレベルとなる。つまり、ラッチLTの接続点N1、及び接続点N2は、リセット状態と反対のデータが書き込まれる。一方、選択メモリセルに1データが書き込まれているときつまり選択メモリセルが消去状態にあるとき、選択メモリセルがオン状態となり、ビット線BLがLレベルに変化し、トランジスタ33がオフ状態となる。このため、接続点N1の電位は、トランジスタ33がオフ状態であるため、接地点に対して電流が流れず、Hレベルのままである。同様に、接続点N2の電位も、Lレベルのままである。つまり、ラッチLTの接続点N1、及び接続点N2は、リセット状態に書き込まれたデータをそのまま維持する。次に、制御回路20は、制御信号BUSPCをLレベルとし、トランジスタ54をオン状態とし、読出線DOUTBUSをHレベルにプリチャージする。そして、制御回路20は、制御信号BUSPCをHレベルとし、トランジスタ54をオフ状態として、プリチャージ処理を終了させる。プリチャージが終了した後、カラムデコーダ15は、入力されたアドレスに対応するページバッファPBを選択するため、カラムアドレスDYRをHレベルとする。これにより、不揮発性メモリセルに0データが書き込まれている場合、接続点N2がHレベルであり、トランジスタ44がオン状態となるため、読出線DOUTBUSはトランジスタ43、及びトランジスタ44を介して接地され、Lレベルとなる。このLレベルのデータが入出力回路17を介して外部に0として出力される。一方、不揮発性メモリセルに1のデータが書き込まれている場合、接続点N2がLレベルであり、トランジスタ44がオフ状態となるため、読出線DOUTBUSは接地されずに、Hレベルのままである。このHレベルのデータが入出力回路17を介して外部に1として出力される。<プログラム動作、及びラッチLTの出力状態>不揮発性メモリセルに対してデータ0をプログラムし、データ0が正常に書き込まれるか否かの判定を行う。プログラム動作において、外部からプログラムを示すコマンドデータが入出力回路17に入力され、コマンドレジスタ18にプログラムベリファイモードとするデータが設定され、このデータに基づいて制御回路20が各回路を制御する制御信号を出力する。初期状態においては、制御回路20は、制御信号PDIS、制御信号BLSLT、制御信号PPGM、制御信号PBLCH、制御信号PVTR、及び制御信号EVTRをLレベルとし、制御信号PLOAD、及び制御信号PBRSTをHレベルとしている。また、カラムデコーダ15は、カラムアドレスDYW、及びカラムアドレスDYRをLレベルとしている。ラッチLTのリセット動作制御回路20は、制御信号PLOADをLレベルに変化させ、制御信号PBLCHをHレベルに変化させる。これにより、トランジスタ31がオン状態となり、接続点SOがHレベルとなり、トランジスタ32がオン状態となる。また、トランジスタ34がオン状態となることにより、強制的に接続点N1にLレベルのデータを与え、不揮発性メモリセルからデータを書き込む前準備のリセットRESET動作を行う。そして、制御回路20は、制御信号PLOADをHレベルに変化させ、制御信号PBLCHをLレベルに変化させ、トランジスタ31及びトランジスタ34をオフ状態とし、リセット処理を終了する。これにより、ラッチLTの状態は、接続点N1にLレベル、接続点N2にHレベルのデータが書き込まれる状態、プログラム禁止INHIBIT状態、すなわちパス状態となる。書き込みデータ転送動作次に、制御回路20は、不揮発性メモリセルに対してデータ0を書き込むため、入出力回路17を制御して、書込線DINBUSにLレベルのデータを供給させる。なお、制御回路20は、不揮発性メモリセルのデータ1を維持する場合消去状態を維持する場合、入出力回路17を制御して、書込線DINBUSにHレベルのデータを供給させる。そして、カラムデコーダ15は、アドレスレジスタ19が出力するカラムアドレスに対応するページバッファPBを選択するため、カラムアドレスDYWをHレベルとする。これにより、トランジスタ39がオン状態となる。このように、トランジスタ39を介して、書込線DINBUSから接続点N2に対してLレベルのデータが書き込まれることにより、0データを書き込む際における、ラッチLTの接続点N1がHレベルであり、接続点N2がLレベルの状態となる。すなわち、0データを書き込む場合、ラッチLTの状態は、接続点N1がHレベル、接続点N2がLレベルと、パス状態とは反対の状態であるフェイル状態となる。また、0データを書き込まない場合、ラッチLTの状態は、接続点N1がLレベル、接続点N2がHレベルと、パス状態のままとなる。このラッチLTへのデータ書き込み処理において、カラムデコーダ15は、カラムアドレスを順次変化させて行う。すなわち、カラムデコーダ15は、トランジスタ39を順次切り替えて、トランジスタ39をオンさせる。全てのページバッファPBのラッチLTの状態は、書き込まれるデータ0または1に応じて、パス状態かフェイル状態のいずれかになる。プログラム動作制御回路20は、制御信号PPGM及びBLSLTをHレベルとする。また、ロウデコーダ14は、選択ワード線にプログラム電圧高電圧を供給し、非選択ワード線に対してH例えば、5Vを供給する。これにより、データ0を書き込むべきセルにおいて、選択ワード線に接続されている選択メモリセルのソース、ドレイン及びチャネル部分がLレベルとなり、選択メモリセルに対して電荷が書き込まれ、0データが記憶される。一方、データ0を書き込まない、データ1を維持するセルにおいては、選択ワード線に接続されている選択メモリセルのソース、ドレイン及びチャネル部分がHレベルであるので、選択メモリセルに対して電荷が書き込まれず、1データが維持される。そして、ロウデコーダ14が、選択ワード線、及び非選択ワード線をLレベルに変化させることにより、プログラム動作が終了する。プログラムベリファイ動作次に、選択メモリセルに正常にデータ0が書き込まれたか否かの判定を行うため、ロウデコーダ14は、選択メモリセルのデータをビット線BLへ読み出し、制御回路20は、ビット線BLからページバッファPBに選択メモリセルのデータを読み出す。すなわち、選択メモリセルからビット線BLを介してページバッファPBにデータを読み出す際、制御回路20は、制御信号PDISをHレベルとして、トランジスタ42をオン状態とし、ビット線BLの電位を一端接地レベルに変化させる。そして、制御回路20は、制御信号PDIS及び制御信号PLOADをLレベルに変化させ、制御信号BLSLTをHレベルに変化させる。これにより、トランジスタ42はオフ状態となり、トランジスタ31及び41はオン状態となる。そして、トランジスタ31及びトランジスタ41を介してビット線が所定の電位にプリチャージされる。次に、制御回路20は、制御信号PLOADをHレベルとし、トランジスタ31をオフ状態とする。そして、制御回路20は、制御信号PBRSTをLレベルに変化させ、制御信号PBLCHをHレベルに変化させる。これにより、トランジスタ32及びトランジスタ33がオン状態となり、ロウデコーダ14が選択した選択ワード線がゲートに接続されている選択メモリセルからデータが接続点SOへ読み出される。ここで、ロウデコーダ14は、選択ワード線をLレベルとし、非選択ワード線に対して、電圧生成回路16が生成したパス電圧である高電圧例えば、15Vを印加し、非選択ワード線がゲートに接続された非選択メモリセルすべてをオン状態とする。また、制御回路20は、制御信号PBLCHをHレベルに変化させ、トランジスタ34をオン状態とする。これにより、0データを書き込むべき選択メモリセルに0データが書き込まれている場合、接続点SOがHレベルのままであるので、ラッチLTの接続点N1がLレベル、接続点N2がHレベルと、ラッチLTはパス状態となる。一方、0データを書き込むべき選択メモリセルに0データが書き込まれていない場合、接続点SOがLレベルとなり、ラッチLTを反転できず、ラッチLTの接続点N1がHレベル、接続点N2がLレベルと、ラッチLTは書き込んだ際の状態であるフェイル状態を維持する。また、0データが書き込まれない、すなわち1データを維持する選択メモリセルの場合、接続点SOがLレベルとなっても、ラッチLTは初期状態を維持するので、ラッチLTはパス状態のままである。選択ワード線を共通とする不揮発性メモリセルのデータが、全てのページバッファPBのラッチLTに読み出された後、ページバッファPBは一括判定動作またはビット数判定動作へ移行する詳細後述。<イレース動作、及びラッチLTの出力状態>全不揮発性メモリセルに対して消去処理を行い、データが正常に消去されたか否かの判定を行う。イレース動作において、外部からイレースを示すコマンドデータが入出力回路17に入力され、コマンドレジスタ18にイレースモードとするデータが設定され、このデータに基づいて制御回路20が各回路を制御する制御信号を出力する。初期状態においては、制御回路20は、制御信号PDIS、BLSLT、PPGM、PBLCH、PVTR、EVTRをLレベルとし、制御信号PLOAD、PBRST、VERIFYB、BUSPCをHレベルとしている。また、カラムデコーダ15は、カラムアドレスDYW及びカラムアドレスDYRをLレベルとしている。ラッチLTのリセット動作制御回路20は、電圧生成回路16に不揮発性メモリセルのデータの消去に必要な消去電圧を発生させ、ブロック単位の不揮発性メモリセルに対して、この消去電圧を印加するイレースのためのストレスの印加。これにより、消去電圧が印加されたブロック全ての不揮発性メモリセルのデータのイレース処理が一括して行われる。次に、制御回路20は、制御信号PBRSTをLレベルに変化させ、トランジスタ32をオン状態とし、ラッチLTの接続点N1に強制的にHレベルのデータを書き込むリセット動作を行う。これにより、ラッチLTの接続点N1がHレベル、接続点N2にLレベルのデータが書き込まれる。そして、制御回路20は、制御信号PBRSTをHレベルに変化させ、トランジスタ32をオフ状態とし、リセット処理を終了する。これにより、ラッチLTの状態は、接続点N1にHレベル、接続点N2にLレベルのデータが書き込まれる状態、すなわちパス状態となる。イレースベリファイ動作次に、制御回路20は、制御信号PDISをHレベルに変化させ、一旦、ビット線BLの電位を接地レベルとする。そして、制御回路20は、制御信号PDISをLレベルに変化させた後、制御信号PLOADをLレベルとし、制御信号BLSLTをHレベルとして、トランジスタ31及び41をオン状態とする。これにより、トランジスタ31及びトランジスタ41を介して、ビット線が所定の電圧にプリチャージされる。所定の時間経過後、制御回路20は、制御信号PLOADをHレベルに変化させ、トランジスタ31をオフ状態とし、制御信号BLSLTをLレベルに変化させ、トランジスタ41をオフ状態とし、接続点SO及びビット線のプリチャージを終了する。この所定の時間は、予め測定された接続点SO及びビット線の電位がプリチャージする電圧に安定するまでの時間である。ロウデコーダ14は、制御回路20からの制御信号により全ワード線をLレベルに変化させる。そして、ロウデコーダ14が全ワード線をLレベルとすることで、各ビット線に接続されたブロック内の全ての不揮発性メモリセルのデータが、消去電圧の印加により消去されている場合、NANDセルストリングは導通状態となり、そのうちのメモリセルのいずれか1つでもデータが消去されていない場合、NANDセルストリングは非導通となる。これにより、ビット線BLに接続されるNANDセルストリングの不揮発性メモリセルが全てオン状態の場合、NANDセルストリングは導通状態となっており、ビット線BLは接地レベル、すなわちLレベルとなる。一方、ビット線BLに接続されるNANDセルストリングの不揮発性メモリセルのいずれか1つでも0データが消去されていない場合、その不揮発性メモリセルがオン状態とならず、NANDセルストリングが非導通状態となっており、ビット線BLはプリチャージされた状態、すなわちHレベルのままとなる。次に、制御回路20は、制御信号BLSLTをHレベルに変化させ、トランジスタ41をオン状態とする。これにより、接続点SOは、不揮発性メモリセルに0データが書き込まれており、ビット線BLがHレベルの場合、Hレベルのままであり、不揮発性メモリセルが消去され、ビット線BLがLレベルの場合、HレベルからLレベルに変化する。ここで、接続点SOの接地容量より、ビット線BLの接地容量が大きいため、接続点SOの電位は、トランジスタ41がオン状態となった際、ビット線BLの電位となる。次に、制御回路20は、制御信号PBLCHをHレベルに変化させ、トランジスタ34をオン状態とする。これにより、不揮発性メモリセルの0データが消去されて、接続点SOの電位がLレベルの場合、ラッチLTの接続点N1がHレベルのままであり、不揮発性メモリセルの0データが消去されないと、接続点SOの電位がHレベルの場合、ラッチLTの接続点N1がLレベルとなる。すなわち、不揮発性メモリセルの0データの消去が行われた場合、ラッチLTの接続点N2はLレベルのままであり、不揮発性メモリセルの0データの消去が行われない場合、ラッチLTの接続点N2はHレベルに変化する。つまり、NANDセルストリングにおける不揮発性メモリセルが全て消去された場合、ラッチLTはパス状態を維持する。一方、NANDセルストリングにおける不揮発性メモリセルの一つでも消去されない場合、ラッチLTはフェイル状態となる。なお、上記実施形態の説明では、ブロック単位で消去し、NANDセルストリング単位でイレースベリファイを行っている。しかし、このうち、イレースベリファイをビット単位で行ってもよい。この場合、イレースベリファイ動作において、プログラム時のベリファイ動作と同様に、選択ワード線をLレベルとし、非選択ワード線に対して、パス電圧である高電圧を印加し、選択メモリセルがオン状態か否かを検出すればよい。つまり、イレースベリファイのプログラムベリファイとの違いは、イレースベリファイでは、メモリセルがプログラムベリファイとは逆のオン状態であることを検出するため、接続点SOのレベルがHレベルからLレベルに変化する。そのため、イレースベリファイでは、ラッチLTの状態の初期状態パス状態をプログラムベリファイとは反対の状態としている。全てのページバッファPBのラッチLTに読み出された後、ページバッファPBは一括判定動作またはビット数判定動作へ移行する詳細後述。なお、以下の説明では、イレースベリファイをビット単位で行うものとする。次に、図4は、ページバッファ電流制御回路21の構成を示す図である。ページバッファ電流制御回路21は、上述したプログラムベリファイ処理及びイレースベリファイ処理において、一括判定動作またはビット数判定動作を行う場合に、ラッチLTの出力接続点N1又は接続点N2が入力されるトランジスタ36及びトランジスタ38の電流制御を行う回路である。なお、図4において、ページバッファPBについては、判定動作に係るトランジスタ35またはトランジスタ37、トランジスタ34またはトランジスタ38を、図3に示すページバッファPBから抜き出し、共通ベリファイ判定信号線VERIFYPFとともに示している。ページバッファ電流制御回路21は、ナンド回路61、ノア回路62、インバータ回路63、トランジスタ64~トランジスタ68、及び抵抗R1を含んで構成される。ここで、トランジスタ64、及びトランジスタ66は、Pチャネル型MOSトランジスタであり、トランジスタ65、トランジスタ67、及びトランジスタ68は、Nチャネル型MOSトランジスタである。ナンド回路61の一方の入力は、制御信号WOREnableの配線に接続され、他方の入力はインバータ回路63の出力に接続される。ノア回路62の一方の入力は、制御信号PFBitCountEnableの配線に接続され、他方の入力は制御信号WOREnableの配線に接続される。インバータ回路63の入力は、制御信号PFBitCountEnableの配線に接続される。トランジスタ64は、ソースが電源配線に接続され、ゲートがナンド回路61の出力に接続され、ドレインがトランジスタ65のドレインに接続される。トランジスタ65は、ドレインがトランジスタ64のドレインに接続され、ゲートがノア回路62の出力に接続され、ソースが接地される。ページバッファ電流制御回路21は、プログラムベリファイ用とイレースベリファイ用に2組備えられる。この2組備えられたページバッファ電流制御回路21は、それぞれの回路の入力に、制御信号WOREnable及び制御信号PFBitCountEnableの配線が接続される。また、出力には、一方の組では制御信号PVTRの配線が他方の組では制御信号EVTRの配線がそれぞれ接続される。すなわち、制御信号WOREnable、制御信号PFBitCountEnable、制御信号PVTR、及び制御信号EVTRは、上位階層で別の配線となっており、プログラムベリファイ用とイレーズベリファイ用とで異なる制御ができるように構成されている。以下では、2組のページバッファ電流制御回路21に含まれるトランジスタ64、及びトランジスタ65からなる組として、一方の組を64a、65a、他方の組を64b、65bとするトランジスタ64aのドレイン、及びトランジスタ65aのドレインの共通接続点が、各ページバッファPBのトランジスタ36のゲートに接続される。各ページバッファPBのトランジスタ36のゲートには、プログラム動作における一括判定動作またはビット数判定動作時に制御信号PVTRが入力される。トランジスタ64bのドレイン、及びトランジスタ65bのドレインの共通接続点が、各ページバッファPBのトランジスタ38のゲートに接続される。各ページバッファPBのトランジスタ38のゲートには、データイレース動作の一括判定動作またはビット数判定動作時に制御信号EVTRが入力される。トランジスタ66は、ソースが電源配線に接続され、ゲートがインバータ回路63の出力に接続され、ドレインが抵抗R1の一端に接続される。トランジスタ67は、ドレイン及びゲートが抵抗R1の他端に接続され、ソースがトランジスタ68のドレインに接続される。トランジスタ68は、ドレインがトランジスタ67のソースに接続され、ゲートが制御信号PFBitCountEnableの配線に接続され、ソースが接地される。トランジスタ67のドレイン及びゲート、及び抵抗R1の他端が、トランジスタ64aのドレイン、及びトランジスタ65aのドレインの共通接続点、トランジスタ64bのドレイン、及びトランジスタ65bのドレインの共通接続点にそれぞれ接続される。プログラム動作における一括判定動作制御回路20は、制御信号VERIFYBをLレベルに変化させ、共通ベリファイ判定信号線VERIFYPFをHレベルにプリチャージし、制御信号VERIFYBをHレベルに変化させる。そして、制御回路20におけるベリファイコントローラー23は、制御信号WOREnableをHレベルとし、制御信号PFBitCountEnableをLのままとする。ページバッファ電流制御回路21は、トランジスタ64~トランジスタ68のうち、トランジスタ64aのみをオンさせて、制御信号PVTRを電源電圧レベルのHレベルとし、全てのページバッファPBのトランジスタ36をオン状態とする。このとき、ページバッファ群13の全てのページバッファPBにおける接続点N1がLレベルとなっている場合、全てのページバッファPBにおけるトランジスタ35がオン状態とならない。このため、全てのページバッファPBのトランジスタ35がオフ状態である場合、共通ベリファイ判定信号線VERIFYPFがHレベルのままであり、データ0のプログラムが正常に行われたことが一括で検出できる。一方、ページバッファ群13のいずれかのページバッファPBにおける接続点N1がHレベルとなっている場合、このHレベルである接続点N1のページバッファPBにおけるトランジスタ35がオン状態となる。このため、ページバッファ群13のいずれかのページバッファPBのトランジスタ35がオン状態となった場合、共通ベリファイ判定信号線VERIFYPFがHレベルからLレベルに変化し、不揮発性メモリセルへのプログラムが正常に行わないことが検出される。上述した動作は、ロウデコーダ14が選択ワード線を変えながら、各ブロックにおいても同様に行われる。プログラム動作におけるビット数判定動作制御回路20は、ビット数判定用電流検出回路22を活性化する。そして、制御回路20におけるベリファイコントローラー23は、制御信号WOREnableをLレベルのままとし、制御信号PFBitCountEnableをHとする。ページバッファ電流制御回路21は、トランジスタ64~トランジスタ68のうち、トランジスタ66~トランジスタ68をオンさせて、抵抗R1に定電流Idisを流す。このとき、ページバッファPBにおける接続点N1がLレベルとなっている場合、トランジスタ35第1トランジスタがオン状態とならない。このため、トランジスタ67とミラー接続されるトランジスタ36第2トランジスタには、定電流Idisが流れない。一方、ページバッファPBにおける接続点N1がHレベルとなっている場合、トランジスタ35がオン状態となる。このため、トランジスタ67とミラー接続されるトランジスタ36には、定電流Idisが流れ、共通ベリファイ判定信号線VERIFYPFに接続されるトランジスタ35にも定電流Idisが流れる。ここで、接続点N1がHレベルとは、ラッチLTの状態がフェイル状態であり、0データを書き込むべき選択メモリセルに0データが書き込まれなかったことを示すので、1ページのうちNビットの不揮発性メモリセルに0データが書き込まれなかった場合、トランジスタ67とカレントミラー接続されるN個のトランジスタ36各々に定電流Idisが流れ、共通ベリファイ判定信号線VERIFYPFに接続されるトランジスタ53にも定電流IdisのN倍の電流Itotal=N×Idisが流れる。従って、電流Itotalを定電流Idisで除算した数フェイルビット数を算出すれば、プログラムベリファイにおける1ページのフェイルビット数を算出することが可能となる。上述した動作は、ロウデコーダ14が選択ワード線を変えながら、各ブロックにおいても同様に行われる。イレース動作における一括判定動作制御回路20は、制御信号VERIFYBをLレベルに変化させ、共通ベリファイ判定信号線VERIFYPFをHレベルにプリチャージし、制御信号VERIFYBをHレベルに変化させる。そして、制御回路20におけるベリファイコントローラー23は、制御信号WOREnableをHレベルとし、制御信号PFBitCountEnableをLのままとする。ページバッファ電流制御回路21は、トランジスタ64~トランジスタ68のうち、トランジスタ64bのみをオンさせて、制御信号EVTRを電源電圧レベルのHレベルとし、全てのページバッファPBのトランジスタ37をオン状態とする。このとき、ページバッファ群13の全てのページバッファPBにおける接続点N2がLレベルとなっている場合、全てのページバッファPBにおけるトランジスタ37がオン状態とならない。このため、全てのページバッファPBのトランジスタ37がオフ状態である場合、共通ベリファイ判定信号線VERIFYPFがHレベルのままであり、データの消去が正常に行われたことが一括で検出できる。一方、ページバッファ群13のいずれかのページバッファPBにおける接続点N2がHレベルとなっている場合、このHレベルである接続点N2のページバッファPBにおけるトランジスタ37がオン状態となる。このため、ページバッファ群13のいずれかのページバッファPBのトランジスタ37がオン状態となった場合、共通ベリファイ判定信号線VERIFYPFがHレベルからLレベルに変化し、不揮発性メモリセルのデータ消去が正常に行わないことが検出される。上述した動作は、ロウデコーダ14が選択ワード線を変えながら、各ブロックにおいても同様に行われる。イレース動作におけるビット数判定動作制御回路20は、ビット数判定用電流検出回路22を活性化する。そして、制御回路20におけるベリファイコントローラー23は、制御信号WOREnableをLレベルのままとし、制御信号PFBitCountEnableをHとする。ページバッファ電流制御回路21は、トランジスタ64~トランジスタ68のうち、トランジスタ66~トランジスタ68をオンさせて、抵抗R1に定電流Idisを流す。このとき、ページバッファPBにおける接続点N2がLレベルとなっている場合、トランジスタ37第1トランジスタがオン状態とならない。このため、トランジスタ67とカレントミラー接続されるトランジスタ38第2トランジスタには、定電流Idisが流れない。一方、ページバッファPBにおける接続点N1がHレベルとなっている場合、トランジスタ37がオン状態となる。このため、トランジスタ67とカレントミラー接続されるトランジスタ38には、定電流Idisが流れ、共通ベリファイ判定信号線VERIFYPFに接続されるトランジスタ37にも定電流Idisが流れる。ここで、接続点N2がHレベルとは、ラッチLTの状態がフェイル状態であり、消去すべき選択メモリセルのデータが1データに消去されなかったことを示すので、1ページのうちNビットの不揮発性メモリセルのデータが消去されなかった場合、トランジスタ67とカレントミラー接続されるN個のトランジスタ38各々に定電流Idisが流れ、共通ベリファイ判定信号線VERIFYPFに接続されるトランジスタ53にも定電流IdisのN倍の電流Itotal=N×Idisが流れる。従って、電流Itotalを定電流Idisで除算した数フェイルビット数を算出すれば、イレースベリファイにおける1ページのフェイルビット数を算出することが可能となる。上述した動作は、ロウデコーダ14が選択ワード線を変えながら、各ブロックにおいても同様に行われる。次に、図5は、ビット数判定用電流検出回路22の構成を示す図である。ビット数判定用電流検出回路22は、上述したプログラムベリファイ処理及びイレースベリファイ処理においてビット数判定動作を行う場合に、共通ベリファイ判定信号線VERIFYPFに流れる電流Itotalに基づいてフェイルビット数をカウントする回路である。ビット数判定用電流検出回路22は、電流比較回路70、定電流発生回路77、電流制御用カウンタ78、ビット数保持ラッチ79、及びマルチプレクサ80を含んで構成される。電流比較回路70は、トランジスタ71~トランジスタ73、インバータ回路74~インバータ回路76を含んで構成される。ここで、トランジスタ71~トランジスタ73は、Pチャネル型MOSトランジスタである。トランジスタ71は、ソースが電源配線に接続され、ゲートがインバータ回路74の出力に接続され、ドレインがトランジスタ72のソース、及びトランジスタ73のソースに共通に接続される。トランジスタ72は、ソースがトランジスタ71のドレインに接続され、ゲート及びドレインが共通ベリファイ判定信号線VERIFYPFに接続される。トランジスタ73は、ソースがトランジスタ71のドレインに接続され、ゲートがトランジスタ72のゲートに接続され、ドレインが定電流発生回路77の出力に接続される。ここで、トランジスタ72とトランジスタ73は同一サイズに設定されている。インバータ回路74の入力は、制御信号COMPAREENの配線に接続され、出力がトランジスタ71のゲートに接続される。インバータ回路75の入力は、トランジスタ73のドレイン、及び定電流発生回路77の出力に接続され、出力がインバータ回路76の入力に接続される。インバータ回路76の入力は、インバータ回路75の出力に接続され、出力が比較結果信号COMPAREOUTの配線に接続される。ビット数判定動作を行う場合、制御回路20におけるベリファイコントローラー23が制御信号COMPAREENをLレベルからHレベルへ変化させる。これにより、トランジスタ71がオン状態となり、トランジスタ72とミラー接続されたトランジスタ73にはトランジスタ72に流れる電流と同じ電流が流れる。このとき、まだ基準電流Irefは流れていないので、トランジスタ73に流れる電流により、トランジスタ73のドレインの電位は当初Hレベルに維持される。このため、電流比較回路70の出力である比較結果信号COMPAREOUTは、Hレベルとなっている。その後、ビット数判定動作において、定電流発生回路77が発生する基準電流Irefが増加し、基準電流Irefがトランジスタ73に流れる電流、すなわちトランジスタ72に流れる電流Itotalを超えると、トランジスタ73のドレインの電位がLレベルへと変化する。以上の構成により、電流比較回路70は、ベリファイコントローラー23が制御信号COMPAREENをHレベルにすると、共通ベリファイ判定信号線VERIFYPFに流れる電流Itotalと、定電流発生回路77が流す基準電流Irefとを比較し、電流Itotalが基準電流Irefより低くなると、比較結果信号COMPAREOUTをHレベルからLレベルへと変化させる。定電流発生回路77は、ビット数判定動作前に行う事前ビット数カウント動作後述において、電流制御用カウンタ78が出力するカウント信号COUNTOUT<n:0>がカウント信号IREFCNT<n:0>として入力され、このカウント信号IREFCNT<n:0>に応じて、定電流Idisの整数倍の基準電流Irefを階段状に発生する。なお、定電流Idisの電流値は、誤差を含むものであるが、その誤差は、定電流Idisの電流値をページバッファPBの個数で除した電流値に対して十分少ない。つまり、カウンタ信号が1ビット変化したときの基準電流Irefの電流変化量は、定電流Idisの電流値の誤差に対して、十分な余裕マージンを持っている。また、定電流発生回路77は、ビット数判定動作において、ビット数保持ラッチ79が出力するカウント信号PFBITNUMBER<n:0>事前ビット数カウント動作において得られたカウント信号COUNTOUT<n:0>がカウント信号IREFCNT<n:0>として入力され、このカウント信号IREFCNT<n:0>に応じて、基準電流Irefを発生する。このとき、定電流発生回路77は、事前ビット数カウント動作において得られたカウント信号COUNTOUT<n:0>に対応する基準電流を基準電流Iref0とすると、例えば、0.5×Iref0の関係を有する基準電流Irefを発生する。電流制御用カウンタ78は、事前ビット数カウント動作において、ベリファイコントローラー23が制御信号COUNTENを例えばLレベルからHレベルとすると、カントアップ動作を開始し、最小値0から最大値Nmaxまでカウントアップされたカウント信号IREFCNT<n:0>をマルチプレクサ80、及びビット数保持ラッチ79に対して出力する。ここで、最大値Nmaxを、ページバッファ群13におけるページバッファPBの個数とすることで、全てのラッチLTのフェイル状態を検出することができる。ビット数保持ラッチ79は、事前ビット数カウント動作において入力されるカウント信号COUNTOUT<n:0>を保持する。事前ビット数カウント動作の終了後において、ベリファイコントローラー23は、入力される比較結果信号COMPAREOUTがHレベルからLレベルへ変化すると、制御信号LATCHENを例えばLレベルからHレベルとする。これにより、ビット数保持ラッチ79は、このときのカウント信号COUNTOUT<n:0>をラッチし、カウント信号PFBITNUMBER<n:0>としてマルチプレクサ80に対して出力する。もちろん、このカウント信号PFBITNUMBER<n:0>を、入出力回路17を介して不揮発性半導体記憶装置10の外部へ出力してもよい。マルチプレクサ80は、事前ビット数カウント動作において、入力を電流制御用カウンタ78の出力に、事前ビット数カウント動作の終了後には入力をビット数保持ラッチ79の出力に切り替えて、それぞれをカウント信号IREFCNT<n:0>として定電流発生回路77に対して出力する。次に、図6は、ビット数判定用電流検出回路22の動作を示す図である。図6は、事前ビット数カウントにおけるビット数判定用電流検出回路22の動作を示している。事前ビット数カウント動作とは、プログラムベリファイ処理では、上述のデータ転送動作の結果、ラッチLTに書き込まれるデータに基づいて行うフェイル数のカウント動作をいう。つまり、ラッチLTのフェイル状態接続点N1がHレベル、接続点N2がLレベルであって、データ0を書き込むべき不揮発性メモリセルの個数を、フェイルビット数の初期値としてカウントすることをいう。また、事前ビット数カウント動作とは、イレースベリファイ処理では、一回消去動作を行った後に、ラッチLTに書き込まれるデータに基づいて行うフェイル数のカウント動作をいう。つまり、ラッチLTのフェイル状態接続点N1がLレベル、接続点N2がHレベルであって、消去されずデータ0を保持する不揮発性メモリセルの個数を、フェイルビット数の初期値としてカウントすることをいう。ここでは、プログラムベリファイ処理における事前ビット数カウント動作について説明する。書き込みデータ転送後のラッチLTのフェイル状態の個数の整数倍の電流Itotalが共通ベリファイ判定信号線VERIFYPFに流れる。電流制御用カウンタ78は、最小値0から最大値Nmaxまでカウントアップされたカウント信号COUNTOUT<n:0>を、マルチプレクサ80を介して、定電流発生回路77に対して出力する。ここで、最大値Nmaxは、ページバッファ群13におけるページバッファPBの総個数である。定電流発生回路77は、入力されるカウント信号COUNTOUT<n:0>に応じて、定電流Idisに最小値0から最大値Nmaxに対応する整数を乗じた基準電流Irefを、図6に示すように階段状に発生する。電流比較回路70は、共通ベリファイ判定信号線VERIFYPFに流れる電流Itotalと、基準電流Irefとを比較し、基準電流Irefが電流Itotalを超えると、比較結果信号COMPAREOUTをHレベルからLレベルへと変化させる。ベリファイコントローラー23は、比較結果信号COMPAREOUTがHレベルからLレベルへと変化すると、制御信号LATCHENをLレベルからHレベルへと変化させる。ビット数保持ラッチ79は、制御信号LATCHENがLレベルからHレベルへ変化すると、そのとき電流制御用カウンタ78が出力するカウント信号COUNTOUT<n:0>をラッチしてカウント信号PFBITNUMBER<n:0>を、マルチプレクサ80に対して出力する。このように、本発明によれば、ページバッファPBに対して専用トランジスタを追加する必要なく、一括判定に用いるトランジスタ35第1トランジスタ及びトランジスタ36第2トランジスタ、或いはトランジスタ37及びトランジスタ38を用いて、従来通り容易に、フェイルビット数を検出することが可能となる。このため、フェイルビット数をカウントする機能を持ちつつ、チップサイズの増大を招くことはなく、従来例に比べ、チップコストを削減することが可能となる。続いて、本発明の他の一つの特徴であるベリファイ処理プログラムベリファイ、イレースベリファイにおけるパスビット数の変化の検出について説明する。図7は、プログラム動作における処理のフロー、及びイレース動作における処理のフローを示す。なお、ここでは、図7a及び図8を用いてプログラム動作における処理について説明する。図8は、ビット数判定動作における電流Itotalの変化を示す図である。まず、書き込みデータ転送動作を行い、データ0を書き込むべき不揮発性メモリセルがビット線BLを介して接続されるページバッファPBのラッチLTの状態を、フェイル状態に設定する。ページバッファ群13のページバッファPBのラッチLTの状態は、接続点N1がLレベル、接続点N2がHレベルと、フェイル状態となるステップS71。制御回路20におけるベリファイコントローラー23が、制御信号WOREnableをLレベルのままとし、制御信号PFBitCountEnableをHとする。これにより、共通ベリファイ判定信号線VERIFYPFに、定電流IdisにラッチLTのフェイル状態の個数Nとするを乗じた電流Itotal=N×Idisが流れる。定電流発生回路77は、入力されるカウント信号COUNTOUT<n:0>に応じて、定電流Idisに整数を乗じた基準電流Irefを階段状に発生する。電流比較回路70は、共通ベリファイ判定信号線VERIFYPFに流れる電流Itotalと、基準電流Irefとを比較し、基準電流Irefが電流Itotalを超えると、比較結果信号COMPAREOUTをHレベルからLレベルへと変化させる。ビット数保持ラッチ79は、制御信号LATCHENがLレベルからHレベルへと変化することにより、電流制御用カウンタ78が出力するカウント信号COUNTOUT<n:0>、つまりNをラッチする。そして、ビット数保持ラッチ79は、カウント信号PFBITNUMBER<n:0>を、マルチプレクサ80に対して出力するステップS71。このように、ビット数判定用電流検出回路22では、フェイル数の初期値がカウントされる。例えば、1ページに接続される不揮発性メモリセルが4kビットであって、データ0を書き込むべきセルが4kビットである場合、電流Itotalは定電流Idis×4kとなり、電流制御用カウンタ78が出力するカウント信号PFBITNUMBER<n:0>は4kとなる。或いは、1ページに接続される不揮発性メモリセルが4kビットであって、データ0を書き込むべきセルが2kビットである場合、電流Itotalは定電流Idis×2kとなり、電流制御用カウンタ78が出力するカウント信号PFBITNUMBER<n:0>は2kとなる。事前ビット数カウント動作が終了すると、マルチプレクサ80の入力が切り替わる。これにより、定電流発生回路77は、カウント信号IREFCNT<n:0>としてビット数保持ラッチ79から入力されるカウント信号PFBITNUMBER<n:0>に応じて、例えば電流ItotalIref0とするの半分の基準電流Iref=Iref0×1/2を発生する。次に、ページバッファ群13の各ページバッファPBにおいて、不揮発性メモリセルへのプログラム動作が、ラッチLTに書き込まれた状態に基づいて実行されるステップS73。続いて、書き込まれたデータについての検証ベリファイが行われるステップS71。ページバッファ群13の各ページバッファPBにおいて、データ0を書き込むべきセルであってデータ0が書き込まれなかったセルに接続されるラッチLTの状態は、フェイル状態接続点N1がHレベル、接続点N2がLレベルを維持する。一方、データ0が正しく書き込まれたセルに接続されるラッチLTの状態は、パス状態接続点N1がLレベル、接続点N2がHレベルへと変化する。ビット数判定用電流検出回路22では、ビット数判定動作が実行されるステップS75。つまり、ステップS74において正しく0データが書き込まれたセルパスビットが増えるにつれて、共通ベリファイ判定信号線VERIFYPFに流れる電流Itotalは、図8a、及び図8bに示すように、事前ビット数カウントの際流れた電流Itotal、すなわち、基準電流Irefに対して階段状に減少していく。また、ビット数判定用電流検出回路22では、ビット数判定動作において、基準電流Irefが共通ベリファイ判定信号線VERIFYPFに流れる電流Itotalを超えるか否かが判定されるステップS76。ビット数判定用電流検出回路22における電流比較回路70は、基準電流Iref=Iref×1/2が電流Itotalを超えると、比較結果信号COMPAREOUTをHレベルからLレベルへと変化させる。ベリファイコントローラー23は、ベリファイ動作がパスしたので、プログラム動作を終了するステップS76-Pass。一方、基準電流Irefが電流Itotalを超えない場合、図8aに示すように上記ステップS73~ステップS75プログラムループを,ベリファイ動作がパスするまで繰り返すステップS76-No。つまり、プログラム動作では、1ページに接続される不揮発性メモリセルが4kビットであって、データ0を書き込むべきセルが4kビットである場合、図8aに示すように、2kビットがパスするまでのプログラムループ数を検出できる。また、1ページに接続される不揮発性メモリセルが4kビットであって、データ0を書き込むべきセルが2kビットである場合、図8bに示すように、2kビットがパスするまでのプログラムループ数を検出できる。このように、本実施形態では、パスビット数が1/2になるまでのプログラムループの回数が検出できるので、パスビット数の変化を検出できる。例えば、プログラム時間は、不揮発性メモリセルの劣化により一般的に短くなる傾向を持つが、本実施形態によれば、パスビット数が一定の割合この場合1/2になるまでの時間を検出できる。これにより、例えばパスビット数が一定の割合になるまでの時間が短くなっている場合、プログラム時の選択ワード線の電圧を下げる等の調整を行う。この結果、不揮発性メモリセルへのプログラムストレスを低減してメモリセルの劣化を防ぐことができ、不揮発性半導体装置の信頼性を向上することができる。また、上述した実施形態はプログラム時の例であるが、イレース動作においても同様にパスビット数の遷移を検出することができる。図7bは、イレース動作における処理のフローを示す。イレース動作はプログラム動作と相違し、書き込みデータ転送ステップS71がないため、事前ビット数カウントステップS82の前に、ベリファイ動作ステップS81を行なう必要がある。すなわち、1回のイレースベリファイ動作の後にフェイル数をカウントし、これをビット数保持ラッチ79にラッチするステップS82。その後、イレース動作ステップS83、ベリファイ動作ステップS84、ビット数判定動作ステップS85、及びベリファイパス判定ステップS86からなるイレースループを繰り返し、パスビット数の遷移を検出する。以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。例えば、ビット数判定用電流検出回路22を、図9に示す構成とすることができる。図9は、ビット数判定用電流検出回路22aの構成を示す図である。図9において、図5と同一の部分には同一の符号を付し、その説明を省略する。上記実施形態の説明において、ビット数判定用電流検出回路22では、プログラムすべきセルの1/2のセルがパスしたということを判定した例について説明したが、ビット数保持ラッチ79の出力に図9に示すように演算回路81を接続する。これにより、ビット数判定時において、判定したいパスビット数を直接制御することも可能である。例えば、100ビットパスしたことを検出したい場合、ビット数判定動作時に、演算回路81が、IREFCNTPFBITNUMBER-100となる減算を行うことにより、プログラム開始後、100ビットパスした時点を検出することが可能である。このように、ビット数判定用電流検出回路22aは、ビット数保持ラッチ79にラッチされた電流制御カウンタの出力から、予め設定されたパスビット数を減算する演算回路81を備え、基準電流発生回路定電流発生回路77は、演算回路81の減算結果に応じて基準電流Irefを発生する。また、ビット数判定用電流検出回路22を、図10に示す構成とすることができる。図10は、ビット数判定用電流検出回路22bの構成を示す図である。図10において、図5と同一の部分には同一の符号を付し、その説明を省略する。図10に示すビット数判定用電流検出回路22bでは、定電流発生回路77~マルチプレクサ80のビット数カウント時における動作は、図5に示すビット数判定用電流検出回路22の動作と同じである。図10に示すビット数判定用電流検出回路22bでは、電流比較回路70a内のカレントミラーの比を変更した場合の一例を示している。電流比較回路70aにおいて、トランジスタ92はトランジスタ73と同じくトランジスタ72にミラー接続される。上記実施形態では、ビット数判定時において基準電流Iref=Iref0×1/2で判定していたが、本構成では定電流発生回路77が発生する基準電流が基準電流Iref0そのものであってよい。例えば、トランジスタ73とトランジスタ92とを同一のサイズにすれば、共通ベリファイ判定信号線VERIFYPFに流れる電流Itotalの2倍の電流がトランジスタ73及びトランジスタ92Pチャネル型MOSトランジスタに流れる。そのため、定電流発生回路77が発生する基準電流を半分にせずとも、プログラムすべきセルの1/2のセルがパスしたということを判定できる。なお、図10において示す制御信号MAJORCHKは、制御信号COMPAREENと同様に、ベリファイコントローラー23が出力する構成としてよい。ベリファイコントローラー23が、ビット数判定時において制御信号MAJORCHKをLレベルからHレベルへ変化させれば、ナンド回路93によりトランジスタ91Pチャネル型MOSトランジスタがオンし、トランジスタ92にはトランジスタ73と同じドイレン電流が流れ、プログラムすべきセルの1/2のセルがパスしたということを判定できる。このように、ビット数判定用電流検出回路22bは、定電流発生回路77基準電流発生回路と電流比較回路70aとを備える。定電流発生回路77は、ビット数保持ラッチ79にラッチされた電流制御用カウンタ78の出力に対応する基準電流Iref0に、フェイル状態の個数に対するパスビットの比率を示す、予め設定された1/mm≧1を乗じた基準電流Irefを発生する。また、電流比較回路70aは、共通ベリファイ判定信号線VERIFYPFに流れる電流のnn≧1倍の電流を発生する回路であって、n倍後の電流と基準電流Irefとを比較する。なお、図5に示すビット数判定用電流検出回路22では、n=1、m=2の場合であり、ビット数判定用電流検出回路22bでは、n=2、m=1の場合である。ビット数判定用電流検出回路22bでは、定電流発生回路77が基準電流Iref0の1/mの電流を発生する必要がなく、定電流発生回路77の回路構成を簡易化することができる。"