"複数のワード線及び複数のビット線に接続され、n値nは3以上の自然数を記憶可能な複数のメモリセルを有するメモリセルアレイと、書き込みデータに応じてワード線及びビット線の電圧を制御し、メモリセルにデータを書き込む書き込み動作と、前記メモリセルの閾値電圧を判定するベリファイ動作とを行う制御回路と、を具備し、前記制御回路は、第1のメモリセルを第1の閾値電圧に書き込む場合に、第1の判定電圧及び第2の判定電圧第1の判定電圧<第2の判定電圧を用いてベリファイ動作を行い、前記第1のメモリセルの閾値電圧が前記第1の判定電圧以上かつ前記第2の判定電圧未満である場合に、前記第1のメモリセルに隣接する第2のメモリセルの書き込みデータに基づいて前記第1のメモリセルの書き込みを完了するか、書き込みを継続するかを判断する、ことを特徴とする不揮発性半導体記憶装置。前記制御回路は、前記第1のメモリセルの閾値電圧が前記第1の判定電圧以上かつ前記第2の判定電圧未満であり、かつ前記第2のメモリセルが前記第1の閾値電圧より高い第2の閾値電圧に書き込まれる場合に、前記第1のメモリセルの書き込みを完了することを特徴とする請求項1に記載の不揮発性半導体記憶装置。前記制御回路は、前記第1のメモリセルの閾値電圧が前記第1の判定電圧以上かつ前記第2の判定電圧未満であり、かつ前記第2のメモリセルが前記第1の閾値電圧以下の第3の閾値電圧に書き込まれる場合に、前記第1のメモリセルに接続されるビット線に中間電圧を印加して前記第1のメモリセルの書き込みを継続し、前記中間電圧は、前記第1の判定電圧未満の閾値電圧を有するメモリセルを書き込む際に用いる第1のビット線電圧と、メモリセルを書き込み禁止にする際に用いる第2のビット線電圧第1のビット線電圧<第2のビット線電圧との間に設定されることを特徴とする請求項1又は2に記載の不揮発性半導体記憶装置。前記制御回路は、前記第2の判定電圧以上の閾値電圧を有する第3のメモリセルを書き込み禁止にし、前記書き込みが完了した第1のメモリセルを前記第3のメモリセルと同じバイアスに設定することを特徴とする請求項1乃至3のいずれかに記載の不揮発性半導体記憶装置。メモリセルの書き込みデータ及びベリファイの結果を格納するラッチ回路をさらに具備し、前記第1のメモリセルに接続される第1のラッチ回路は、前記第2のメモリセルに接続されるラッチ回路との間にデータパスを有することを特徴とする請求項1乃至4のいずれかに記載の不揮発性半導体記憶装置。実施形態は、誤読み出しの確率を小さくすることが可能な不揮発性半導体記憶装置を提供する。実施形態に係る不揮発性半導体記憶装置は、複数のワード線及び複数のビット線に接続され、n値nは3以上の自然数を記憶可能な複数のメモリセルを有するメモリセルアレイと、書き込みデータに応じてワード線及びビット線の電圧を制御し、メモリセルにデータを書き込む書き込み動作と、前記メモリセルの閾値電圧を判定するベリファイ動作とを行う制御回路とを具備する。前記制御回路は、第1のメモリセルを第1の閾値電圧に書き込む場合に、第1の判定電圧及び第2の判定電圧第1の判定電圧<第2の判定電圧を用いてベリファイ動作を行い、前記第1のメモリセルの閾値電圧が前記第1の判定電圧以上かつ前記第2の判定電圧未満である場合に、前記第1のメモリセルに隣接する第2のメモリセルの書き込みデータに基づいて前記第1のメモリセルの書き込みを完了するか、書き込みを継続するかを判断する。以下、実施形態について図面を参照して説明する。ただし、図面は模式的または概念的なものであり、各図面の寸法および比率などは必ずしも現実のものと同一とは限らない。以下に示す幾つかの実施形態は、本発明の技術思想を具体化するための装置および方法を例示したものであって、構成部品の形状、構造、配置などによって、本発明の技術思想が特定されるものではない。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。[第1の実施形態][1.不揮発性半導体記憶装置の構成]図1は、第1の実施形態に係る不揮発性半導体記憶装置1の構成を示すブロック図である。本実施形態では、不揮発性半導体記憶装置1として、NAND型フラッシュメモリを例に挙げて説明する。図1において、メモリセルアレイ2は、複数のメモリセルがマトリクス状に配置されて構成されている。メモリセルは、電気的に書き換え可能なEEPROMセルから構成される。メモリセルアレイ2には、メモリセルの電圧を制御するために、複数のビット線、複数のワード線、及びソース線が配設されている。ロウデコーダとしてのワード線制御回路3は、複数のワード線に接続され、データの読み出し、書き込み、及び消去時に、ワード線の選択及び駆動を行う。センスアンプ回路4は、複数のビット線に接続され、データの読み出し、書き込み、及び消去時に、ビット線の電圧を制御する。また、センスアンプ回路4は、データの読み出し時にビット線のデータを検知し、データの書き込み時に書き込みデータに応じた電圧をビット線に印加する。カラムデコーダ5は、アドレスデコーダ8の出力信号に応じて、ビット線を選択するためのカラム選択信号を生成し、このカラム選択信号をセンスアンプ回路4に送る。入出力制御回路6は、外部から供給される各種コマンドCMD、アドレス信号ADD、及びデータDT書き込みデータを含むを受ける。データの書き込み時、書き込みデータは、入出力制御回路6からデータ入出力バッファ7を介してセンスアンプ回路4に送られる。データの読み出し時、センスアンプ回路4に読み出された読み出しデータは、データ入出力バッファ7を介して入出力制御回路6に送られ、入出力制御回路6から外部HM例えば、メモリコントローラ、または、ホストに出力される。入出力制御回路6からデータ入出力バッファ7に送られたアドレス信号ADDは、アドレスデコーダ8に送られる。アドレスデコーダ8は、アドレス信号ADDをデコードし、ロウアドレスをワード線制御回路3に送り、カラムアドレスをカラムデコーダ5に送る。入出力制御回路6からデータ入出力バッファ7に送られたコマンドCMDは、制御回路コントローラ9に送られる。制御回路9には、外部HMから、チップイネーブル信号/CE、書き込みイネーブル信号/WE、読み出しイネーブル信号/RE、アドレスラッチイネーブル信号ALE、コマンドラッチイネーブル信号CLE等の外部制御信号が供給される。制御回路9は、動作モードに応じて供給される外部制御信号及びコマンドCMDに基づいて、データの書き込み及び消去のシーケンスを制御する制御信号、及びデータの読み出しを制御する制御信号を発生する。この制御信号は、ワード線制御回路3、センスアンプ回路4、及び制御電圧発生回路10等に送られる。制御回路9は、この制御信号を用いて、不揮発性半導体記憶装置1の各種動作を統括的に制御する。また、制御回路9は不揮発性半導体記憶装置1の中に配置されていなくても良い。すなわち、不揮発性半導体記憶装置1とは別の半導体装置に配置されていても良いし、外部HM内に配置されていても良い。制御電圧発生回路10は、制御回路9から送られる各種制御信号に応じて、読み出し電圧、書き込み電圧、ベリファイ電圧、及び消去電圧等、メモリセルアレイ2、ワード線制御回路3、及びセンスアンプ回路4の各種動作に必要な電圧を発生する。パラメータ記憶部11は、入出力制御回路6、及び制御回路9に接続され、テスト工程で決定されたチップの品質に適したパラメータを記憶する。図2は、図1に示したメモリセルアレイ2及びセンスアンプ回路4の構成を示す回路図である。メモリセルアレイ2は、複数のブロックBLKを備えている。各ブロックBLKは、データの消去単位である。各ブロックBLKは、複数のNANDストリングNSを備えている。各NANDストリングNSは、複数のメモリセルMCメモリセルトランジスタともいうと、2個の選択ゲートトランジスタST1及びST2とから構成されている。図2では、NANDストリングNSが32個のメモリセルMCを備えている構成を一例として示している。選択ゲートトランジスタST1及びST2としては、例えばNチャネルMOSFETMetalOxideSemiconductorFieldEffectTransistorが用いられる。メモリセルMCは、半導体基板ウェル上にゲート絶縁膜を介在して形成された電荷蓄積層例えば、浮遊ゲート電極、トラップを有する絶縁膜、または、これらを積層した膜と、電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極とを有する積層ゲート構造を備えている。メモリセルMCは、電荷蓄積層に注入された電子の多寡による閾値電圧の変化に応じて、例えば1つのメモリセルMCに複数ビット又は、3値以上のデータを記憶することが可能である。NANDストリングNS内で隣接するメモリセルMC同士の電流経路は直列接続されている。直列接続されたメモリセルMCの一端は選択ゲートトランジスタST1のソースに接続され、他端は選択ゲートトランジスタST2のドレインに接続されている。同一行にあるメモリセルMCの制御ゲート電極は、1本のワード線WLに共通接続されている。同一行にある選択ゲートトランジスタST1又はST2のゲート電極は、選択ゲート線SGD又はSGSに共通接続されている。選択ゲートトランジスタST1のドレインは、ビット線BLに接続されている。選択ゲートトランジスタST2のソースは、ソース線SRCに接続されている。同一のワード線WLに接続された複数のメモリセルMCはページを構成する。データの書き込み及び読み出しは、1つのページ内のメモリセルMCに対して一括して行なわれる。また、メモリセルアレイ2は、複数のページのデータが一括して消去されるように構成されており、この消去の単位がブロックBLKである。ビット線BLは、ブロックBLK間で、選択ゲートトランジスタST1のドレインを共通接続している。つまり、複数のブロックBLK内の同一列にあるNANDストリングNSは、同一のビット線BLに接続される。センスアンプ回路4は、複数のセンスアンプユニットSAU4aと、複数のデータ制御ユニットDCU4bとを備えている。複数のセンスアンプユニット4aはそれぞれ、複数のビット線BL0~BLnに接続されている。複数のデータ制御ユニット4bはそれぞれ対応する複数のセンスアンプユニット4aに接続されている。複数のセンスアンプユニット4aで1つのセンスアンプユニット群4-1aを構成し、複数のデータ制御ユニット4bで1つのデータ制御ユニット群4-1bを構成している。各センスアンプユニット4aは、データの読み出し時、メモリセルからビット線に読み出されたデータを検知し、保持する。複数のデータ制御ユニット4bはそれぞれ、カラム選択信号SEL0~SELnに従って動作するカラム選択トランジスタCT0~CTnを介してデータ入出力バッファ7に接続されている。また、任意のデータ制御ユニット4bは、行方向において隣接するデータ制御ユニットに接続されており、当該データ制御ユニット4bに隣接するデータ制御ユニットとの間でデータの受け渡しが可能なように構成されている。行方向において隣接するデータ制御ユニット同士は、2本の信号線で接続されており、そのうちの1本の信号線は、一方が他方にデータを送るために使用され、もう1本の信号線は、一方が他方からデータを受けるために使用される。書き込み動作プログラム動作とも呼ぶ、読み出し動作、及びプログラムベリファイ動作ベリファイ動作とも呼ぶにおいて、センスアンプユニット4aに接続されているビット線が選択されるとともに、1本のワード線が選択される。この選択されたワード線に接続されている全てのメモリセルに、書き込み、又は読み出し電圧を印加することにより一斉に書き込み、又は読み出し動作が行われる。[1-1.センスアンプユニット4aの構成]図3は、センスアンプユニットSAU4aの一例を示す回路図である。センスアンプユニット4aは、複数のPチャネルMOSトランジスタ以下、PMOSと称す20、21、22、23と、複数のNチャネルMOSトランジスタ以下、NMOSと称す31、32、33、34、35、36、37と、例えば2個のクロックドインバータ回路により構成されたラッチ回路LAT1とにより構成されている。PMOS20のソースは電源電圧Vddが供給されるノードに接続され、ドレインはPMOS21、NMOS31、32を介してデータ制御ユニットDCU4bに接続される。PMOS20のゲートは、ラッチ回路LAT1のノードINVに接続されている。PMOS21のゲートには信号BLC1が供給され、NMOS31、32のゲートには信号BLC2、BLC3がそれぞれ供給されている。NMOS31とNMOS32との接続ノードは、ビット線BLに接続されるとともに、NMOS33、34を介して接地されている。NMOS33のゲートは、ラッチ回路LAT1のノードINVに接続され、NMOS33は、ラッチ回路LAT1に保持されたデータにより制御される。さらに、NMOS34のゲートには、信号DISが供給されている。また、PMOS22のソースは電源電圧Vddが供給されるノードに接続され、ドレインはPMOS23、NMOS36、NMOS37を介してデータ制御ユニット4bに接続される。PMOS22のゲートには信号BLC4が供給され、PMOS23のゲートはNMOS35を介してPMOS21とNMOS31との接続ノードに接続されている。NMOS35のゲートには信号XXLが供給され、NMOS36のゲートにはリセット信号RSTが供給されている。NMOS37のゲートには信号BLC5が供給されている。ラッチ回路LAT1は、NMOS36に並列接続されている。このように構成されたセンスアンプユニット4aの動作について概略的に説明する。書き込み動作メモリセルにデータを書き込む場合、先ず、リセット信号RSTが一旦ハイレベル以下、Hレベルと記すとされ、ラッチ回路LAT1がリセットされる。すなわち、ラッチ回路LAT1のノードINVがLレベルに設定される。この後、信号BLC1、BLC4、DISがローレベル以下、Lレベルと記すとされる。この後、信号BLC2、BLC3、XXLがHレベルとされ、信号BLC4がLレベルとされて、データ制御ユニット4bからデータが取り込まれる。このデータが書き込みを示すLレベル0である場合、PMOS23のゲートがLレベルとなり、PMOS23はオン状態となる。このため、ラッチ回路LAT1にはHレベル1がセットされる。また、データが非書き込みを示すHレベル1である場合、PMOS23がオフ状態となる。このため、ラッチ回路LAT1にはLレベル0がセットされる。すなわち、データを書き込む場合、ラッチ回路LAT1のノードINVはHレベルに設定され、非書き込みの場合、ノードINVはLレベルに設定される。次いで、信号BLC1、BLC3、DIS、XXLがLレベル、信号BLC2がHレベルとされ、ビット線BLがHレベルに充電される。この後、信号DISがHレベルに設定される。すると、ラッチ回路LAT1のノードINVが書き込みを示すHレベルの場合、NMOS33がオンし、NMOS33、34を介してビット線の電荷が放電される。また、ラッチ回路LAT1のノードINVが非書き込みを示すLレベルの場合、NMOS33がオフするため、ビット線の電位はHレベルに保持される。この後、図2に示すビット線とNANDストリングとを接続する選択ゲートトランジスタST1の選択ゲート線SGDがHレベルとされると、ビット線の電位がメモリセルのチャネルに転送される。これと同時に選択されたメモリセルのワード線に書き込み電圧Vpgmが印加される。このため、書き込みセルの場合、チャネルがLレベルVss、ワード線が書き込み電圧Vpgmとなり、書き込みが行われる。また、非書き込みセルの場合、チャネルがHレベル=Vdd-Vt:Vtは選択ゲートトランジスタの閾値電圧、ワード線がVpgmとなり、ワード線-チャネル間の電位差が十分大きくならず、書き込みが行われない書き込み禁止。読み出し動作メモリセルからデータを読み出す場合、先ず、リセット信号RSTが一旦Hレベルとされ、ラッチ回路LAT1がリセットされる。この後、信号BLC1、BLC3、DIS、XXLがLレベル、信号BLC2がHレベルとされ、ビット線がHレベルに充電される。この後、信号BLC2をLレベルとして選択ワード線に読み出し電圧が印加される。メモリセルの閾値電圧が読み出し電圧より高い場合、メモリセルはオフ状態となり、ビット線はHレベルに保持される。また、メモリセルの閾値電圧が読み出し電圧より低い場合、メモリセルはオン状態となり、ビット線の電荷が放電される。このため、ビット線はLレベルとなる。次いで、信号BLC3がHレベルとされ、ビット線の電位がデータ制御ユニット4bに読み出される。プログラムベリファイ動作書き込み動作後、メモリセルの閾値電圧を検証するプログラムベリファイ動作が行われる。プログラムベリファイ動作は、読み出し動作とほぼ同様である。プログラムベリファイ動作では、ビット線をHレベルに充電した後、選択ワード線に所定のベリファイ電圧が印加される。メモリセルの閾値電圧がベリファイ電圧に達している場合、メモリセルはオフ状態となる。このため、ビット線の電位はHレベルに保持される。また、メモリセルの閾値電圧がベリファイ電圧に達していない場合、メモリセルはオン状態となる。このため、ビット線の電位はLレベルとなる。この状態において、信号BLC1、BLC2、XXLがHレベル、信号BLC4、BLC3、DIS、RSTがLレベルとされ、ビット線BLの電位がラッチ回路LAT1に保持される。すなわち、メモリセルの閾値電圧がベリファイ電圧に達しており、ビット線BLの電位がHレベルの場合、PMOS23がオフ状態となる。このため、ラッチ回路LAT1にはLレベルが保持される。また、メモリセルの閾値電圧がベリファイ電圧に達しておらず、ビット線BLの電位がLレベルの場合、PMOS23がオン状態となる。このため、ラッチ回路LAT1にはHレベルが保持される。すなわち、ベリファイをパスした場合、ラッチ回路LAT1のノードINVの電位はLレベルとなり、ベリファイをパスしない場合、ノードINVの電位はHレベルとなる。また、ラッチ回路LAT1の反転ノードINVnのデータは、信号BLC5をHレベルとして、NMOS37をオンした状態において、データ制御ユニット4bに転送される。[1-2.データ制御ユニット4bの構成]図4は、データ制御ユニットDCU4bの一例を示す回路図である。このデータ制御ユニット4bは、例えば4個のデータラッチ回路DL0~DL3と、バス41と、データ形成回路42とを備えている。バス41の一端は、対応するセンスアンプユニット4aに接続され、他端はデータ入出力バッファ7に接続されている。データラッチ回路DL0は、ラッチ回路LAT2と、トランスファーゲート43とにより構成されている。ラッチ回路LAT2は、トランスファーゲート43を介してバス41に接続される。トランスファーゲート43は信号φ及びその反転信号φnにより制御される。データラッチ回路DL1~DL3は、データラッチ回路DL0と同一構成であり、トランスファーゲートに供給される信号がそれぞれ相違している。従って、データラッチ回路DL0~DL3は、選択的にバス41に接続可能とされている。データ形成回路42は、ラッチ回路LAT3、PMOS52~56、NMOS61~70、インバータ回路71、及びNMOS72~75により構成されている。PMOS51のソースは電源電圧Vddが供給されるノードに接続されている。このPMOS51のゲートにはセット信号SET1が供給され、ドレインはラッチ回路LAT3に接続されている。さらに、PMOS51のドレインはNMOS61を介して接地されるとともに、NMOS62、63を介して接地されている。NMOS61のゲートにはリセット信号RST2が供給され、NMOS62のゲートには信号LATHが供給されている。NMOS63のゲートは、入力端子がバス41に接続されたインバータ回路71の出力端子に接続されている。さらに、PMOS51のドレインは、NMOS64、65を介して接地されている。NMOS64のゲートには信号LATLが供給され、NMOS65のゲートは、バス41に接続されている。電源電圧Vddが供給されるノードとバス41との間には、PMOS52、53の直列回路と、PMOS54、55の直列回路と、PMOS56が接続されている。PMOS52のゲートには、信号BUSH2が供給され、PMOS53のゲートはLAT3のノードLATnに接続されている。PMOS52、53は、信号BUSH2とLAT3のノードLATnの電位とに応じてバス41をHレベルに充電する回路である。PMOS54のゲートには、信号BUSL2が供給され、PMOS55のゲートはLAT3のノードLATに接続されている。PMOS54、55は、信号BUSL2とLAT3のノードLATの電位とに応じてバス41をHレベルに充電する回路である。PMOS56のゲートには、セット信号SET2が供給されている。PMOS56は、セット信号SET2に応じてバス41をHレベルに充電する回路である。バス41と接地間には、NMOS66、67の直列回路と、NMOS68、69の直列回路と、NMOS70が接続されている。NMOS66のゲートには、信号BUSH1が供給され、NMOS67のゲートはLAT3のノードLATnに接続されている。NMOS66、67は、信号BUSH1とLAT3のノードLATnの電位とに応じてバス41をLレベルに放電する回路である。NMOS68のゲートには、信号BUSL1が供給され、NMOS69のゲートはLAT3のノードLATに接続されている。NMOS68、69は、信号BUSL1とLAT3のノードLATの電位とに応じてバス41をLレベルに放電する回路である。NMOS70のゲートには、リセット信号RST2が供給されている。NMOS70は、リセット信号RST2に応じてバス41をLレベルに放電する回路である。バス41と接地間には、NMOS72、73の直列回路と、NMOS74、75の直列回路とが接続されている。NMOS72のゲートには、信号BUSLPが供給され、NMOS73のゲートは、LATP当該データ制御ユニットの行方向において左側に隣接するデータ制御ユニットに含まれるラッチ回路LAT3のノードLATに接続されている。NMOS72、73は、信号BUSLPとノードLATPの電位とに応じてバス41をLレベルに放電する回路である。NMOS74のゲートには、信号BUSLNが供給され、NMOS75のゲートは、ノードLATN当該データ制御ユニットの行方向において右側に隣接するデータ制御ユニットに含まれるラッチ回路LAT3のノードLATに接続されている。NMOS74、75は、信号BUSLNとノードLATNの電位とに応じてバス41をLレベルに放電する回路である。データ制御ユニット4bは、データラッチ回路DL0~DL3にデータを保持するとともに、保持したデータを加工することが可能である。つまり、データ制御ユニット4bは、後述するように、保持したデータの例えば論理積AND、NAND、論理和OR、反転に相当する動作が可能なように構成されている。データ制御ユニットの基本動作データ制御ユニット4bの基本動作について説明する。データ入出力バッファ7から供給された2ビットの書き込みデータは、データラッチ回路DL0、DL1に1ビットずつラッチされる。ここで、データラッチ回路DL0、DL1は、例えば下位ページ、上位ページのデータをそれぞれ保持する。データラッチ回路DL2は、ベリファイがパスしたことを示すフラグデータを保持するために用いられる。データラッチ回路DL3は、隣接するデータ制御ユニットから転送されたデータを保持するために用いられる。データラッチ回路DL0~DL3のデータは、トランスファーゲート43を介してバス41に転送可能とされている。バス41のデータをラッチ回路LAT3に取り込む場合、リセット信号RST2をHレベルとしてNMOS61、70をオンさせ、バス41、及びラッチ回路LAT3をLレベルにリセットする。次いで、セット信号SET1をLレベルとしてPMOS51をオンさせ、ラッチ回路LAT3をHレベルにセットする。このように、ラッチ回路LAT3にデータを取り込む場合、ラッチ回路LAT3は、先ず、Hレベルにセットされる。この後、例えばデータラッチ回路DL0~DL3の何れかより、バス41にデータを転送する。この状態において、信号LATHをHレベルとする。バス41のデータがHレベルの場合、インバータ回路71の出力信号がLレベルとなり、NMOS63はオフ状態のままである。このため、ラッチ回路LAT3はHレベルのままである。また、バス41がLレベルの場合、インバータ回路71の出力信号がHレベルとなり、NMOS63がオンとなる。このため、ラッチ回路LAT3は、NMOS62、63を介して放電され、Lレベルとなる。次に、バス41のデータを反転してラッチ回路LAT3に取り込む場合の動作について説明する。上記のようにして、ラッチ回路LAT3をHレベルにセットした状態において、バス41にデータを転送する。この後、信号LATLをHレベル、信号LATHをLレベルとする。バス41のデータがHレベルの場合、NMOS65はオンとなる。このため、ラッチ回路LAT3は、NMOS64、65を介して放電され、Lレベルとなる。また、バス41がLレベルの場合、NMOS65はオフ状態のままである。このため、ラッチ回路LAT3はHレベルのままである。このようにして、ラッチ回路LAT3に保持されたデータを、データラッチ回路DL0~DL3に転送することにより、データラッチ回路DL0~DL3のデータを操作することができる。データラッチ回路に記憶されたデータの反転動作データラッチ回路DL0~DL3のデータを反転させる反転動作について説明する。先ず、前述した動作によりバス41を充電し、データラッチ回路DL0~DL3のいずれかのトランスファーゲート43が開けられる。例えばデータラッチ回路DL0のトランスファーゲート43が開けられた場合において、データラッチ回路DL0のノードDTがHレベルである場合、データラッチ回路DL0のクロックドインバータ回路を介してバス41が放電され、ノードDTの反転データがバス41へ転送されたことになる。次に、上記のようにして、LAT3をリセットした後、信号SET1をLレベルとしてLAT3のノードLATをHレベルとする。次に、信号LATLをHレベルとすると、バス41がデータラッチ回路DL0のデータによって放電されている場合、ノードLATはHレベルとなり、バス41が充電状態を維持したままの場合、NMOS65がオンするため、ノードLATはLレベルに放電される。次に、上述したようにバス41を充電し、信号BUSH1をHレベルにすると、ノードLATがHレベルLAT3のノードLATnがLレベルの場合、バス41はHレベルを維持し、ノードLATがLレベルLAT3のノードLATnがHレベルの場合、バス41はLレベルとなる。最後に、データラッチ回路DL0のラッチ回路LAT2をリセットした後、トランスファーゲート43を開けることにより、バス41のデータがトランスファーゲート43を介してラッチ回路LAT2に取り込まれる。この結果、バス41のデータがHレベルの場合、ノードDTはLレベルとなり、バス41のデータがLレベルの場合、ノードDTはHレベルとなる。上記一連の動作を纏めると、ラッチ回路LAT2のノードDTの反転データがバス41へ転送され、この反転データのさらに反転データがラッチ回路LAT3へ転送される。ラッチ回路LAT3のデータがバス41に転送され、バス41の反転データがラッチ回路LTA2のノードDTに保持される。このようにして、データラッチ回路DL0~DL3のノードDTが反転される。なお、データ制御ユニット4bの基本動作は、これに限定されるものではなく、他の動作によっても可能である。この動作を基本としてデータのAND、NAND、OR動作を行うことが可能である。隣接するデータ制御ユニット間のデータ転送動作図2に示すように、データ制御ユニット4bは、行方向に隣接するデータ制御ユニットに接続されており、当該データ制御ユニット4bの行方向に隣接するデータ制御ユニットとの間でデータの受け渡しが可能なように構成されている。このデータ転送動作を行うために、データ制御ユニット4b具体的には、データ形成回路42は、NMOS72~75を備えている。上述したようにバス41を充電し、信号BUSLPをHレベルにすると、ノードLATPがLレベルの場合、バス41はHレベルを維持し、ノードLATPがHレベルの場合、バス41はLレベルとなる。この動作により、当該データ制御ユニットの左側に隣接するデータ制御ユニットに含まれるラッチ回路LAT3の反転データをバス41に転送することができる。その後、データラッチ回路DL3は、バス41のデータを保持する。同様に、上述したようにバス41を充電し、信号BUSLNをHレベルにすると、ノードLATNがLレベルの場合、バス41はHレベルを維持し、ノードLATNがHレベルの場合、バス41はLレベルとなる。この動作により、当該データ制御ユニットの右側に隣接するデータ制御ユニットに含まれるラッチ回路LAT3の反転データをバス41に転送することができる。その後、データラッチ回路DL3は、バス41のデータを保持する。[2.不揮発性半導体記憶装置の動作]次に、上記のように構成された不揮発性半導体記憶装置1の動作について説明する。本実施形態のメモリセルMCは、1つのメモリセルMCに2ビット以上又は、3値、例えば、閾値分布の数が3つ以上のデータを記憶することが可能である。以下に、メモリセルMCが2ビットデータを記憶する場合を例に挙げて説明する。図5は、メモリセルMCの閾値電圧とデータとの関係を説明する図である。2ビットデータは、上位ページデータxと下位ページデータyとによりxyで表され、ここでは、例えば、閾値分布に応じてErレベル=11、Aレベル=01,Bレベル=00,Cレベル=10のようにデータが割り付けられる。2ビットデータ記憶方式の場合、データの書き込みプログラムは、下位ページプログラムと上位ページプログラムとの2回の書き込み動作を必要とする。Erレベルは、メモリセルの閾値電圧の最も低い消去状態例えば、負の閾値電圧である。図5aは、下位ページをプログラムした場合のメモリセルの閾値分布であり、メモリセルの閾値電圧Vthは、Erレベル及びLMLowerMiddleレベルのいずれかに設定される。下位ページプログラムは、Erレベルのメモリセルを選択的にLMレベルにする動作である。LMレベルのメモリセルは、下位ページデータが0データのメモリセルである。図5bは、上位ページをプログラムした場合の閾値分布である。上位ページプログラムは、Erレベルのメモリセルを選択的にAレベルにする第1の上位ページプログラムと、LMレベルのメモリセルを選択的にBレベル及びCレベルにする第2の上位ページプログラムとを含む。これら2種類の上位ページプログラムは、1つの書き込みシーケンス内で、選択ページに対して、選択的に0,1データを与えて同時にプログラム電圧の印加が行われる。図6は、書き込み動作の一例を説明する模式図である。書き込み動作では、ワード線に書き込み電圧を印加してメモリセルの閾値電圧を上昇させるステップと、メモリセルの閾値電圧を確認するベリファイするステップとが繰り返し実行され、当該ワード線に接続された選択ページの全てのメモリセル又は所定数以上のメモリセルのベリファイがパスした場合に、当該ワード線の書き込みが完了し、次のワード線の書き込みが行われる。また、ブロックBLK内の書き込み動作は、例えばソース線SRCに近いワード線WLから順に行われる。図6aに示すように、メモリセルをAレベルに書き込む場合、Aレベルのベリファイがパスする判定電圧AVと、判定電圧AVより若干低い判定電圧AVLErレベルより高いとの2の判定電圧を用意して2回に分けてベリファイ動作を行う。このベリファイ動作で判定電圧AVL以上かつ判定電圧AV未満の閾値電圧を持つメモリセルは、次の書き込み電圧印加動作においてビット線に0VとVddとの間の中間電圧を印加する。これにより、ビット線に0Vを印加する場合に比べて、閾値電圧の変動量上昇量を小さくすることができる。この結果、図6bに示すように、閾値電圧の分布を細くすることが可能となる。しかしながら、この方法で得られた細い分布も、隣接セルがAレベルよりも高い閾値電圧への書き込みであった場合、その書き込みの過程で容量結合の影響を受け、結果として図6bの破線のように分布が広がってしまう。そこで、本実施形態では、Aレベルに書き込まれる着目セルの行方向に隣接する隣接セルの書き込みデータがAレベルより高い閾値電圧B及びCレベルである場合に、着目セルの判定電圧を判定電圧AV以上かつ判定電圧AV未満に設定するようにする。これにより、隣接セルとの容量結合により着目セルの閾値電圧がシフトした場合でも、Aレベルのメモリセルの閾値分布が広がるのを抑制することができる。図7は、本実施形態に係る書き込み動作を説明する模式図である。図7aに示すように、判定電圧AVL及びAVの2つのベリファイ電圧を用いてベリファイを行い、判定電圧AVL以上かつ判定電圧AV未満の閾値電圧を持つメモリセルのグループ第1のグループに着目する。そして、着目セルに隣接する隣接セルのデータ隣接データに基づいて、さらに上記第1のグループを2つのグループに分ける。つまり、AVLレベル以上かつAVレベル未満の閾値電圧を持つ着目セルが、隣接データにB又はCレベルB/Cレベルを含むか、隣接データにB又はCレベルを含まないかどうかを調べる。書き込み電圧が印加された後のベリファイ動作において、判定電圧AVL以上かつ判定電圧AV未満の閾値電圧を持つ着目セルが、隣接データにB又はCレベルを含む場合、この着目セルに関しては書き込み完了書き込み禁止とする。一方、判定電圧AVL以上かつ判定電圧AV未満の閾値電圧を持つ着目セルが、隣接データにB又はCレベルを含まない場合、この着目セルに関しては次の書き込み電圧の印加動作からビット線に中間電位を印加する。このような方法により書き込みが完了したAレベルの閾値分布は、図7bの実線のようになる。この後、B及びCレベルのメモリセルが書き込まれていくため、判定電圧AVL以上かつ判定電圧AV未満の閾値電圧を持つメモリセルは、容量結合の影響を受けて破線のような分布になる。結果的に、Aレベルのメモリセルの閾値分布は、Aレベルの書き込み完了時よりも細くなる。次に、着目セルが判定電圧AVL以上かつ判定電圧AV未満の閾値電圧を有し、かつ隣接データにB又はCレベルを含むメモリセルであるか否かを判定するための制御方法について説明する。図8は、データラッチ回路DL0~DL2のデータ割り付けを説明する図である。データラッチ回路DL0は、2ビットの書き込みデータのうち下位ページデータを格納する。データラッチ回路DL1は、2ビットの書き込みデータのうち上位ページデータを格納する。データラッチ回路DL2は、ベリファイ電圧が低い方Aレベルの場合は判定電圧AVLに相当のベリファイの結果としてのパス/フェイルデータを格納する。ベリファイパスの場合が1データ、ベリファイフェイルが0データとする。書き込みが完了したメモリセル判定電圧AVのベリファイがパスしたメモリセルを含むでは、データラッチ回路DL1~DL2のデータは、111に設定される。図9は、着目セル及び隣接セルに関するデータラッチ回路DL0~DL2のデータの様子を示している。着目セルは、選択ワード線WLnに接続された選択ページに含まれる任意のメモリセルであり、かつAレベルに書き込まれるメモリセルである。隣接セル1は、選択ワード線WLnに接続され、かつ着目セルの左側に隣接するメモリセルである。隣接セル2は、選択ワード線WLnに接続され、かつ着目セルの右側に隣接するメモリセルである。隣接セル1、着目セル、及び隣接セル2はそれぞれ、ビット線BLm-1、BLm、及びBLm1に接続されている。なお、図9の例では、着目セルが1つであるが、実際には隣接セル自身も着目セルとして扱う場合、偶数evenセルと奇数oddセルとの2回に分けて演算を実行する。まず、奇数oddセルの演算について説明する。奇数oddセルの演算は、下記の式のように行われる。なお、oddが着目セルのデータラッチ回路、even1が隣接セル1のデータラッチ回路、even2が隣接セル2のデータラッチ回路である。~は反転を意味し、|は論理和ORを意味し、は論理積ANDを意味し、→はデータを格納する動作を意味する。|~DL0DL0~DL1DL2|DL1→DL1具体的には、隣接セル隣接セル1又は隣接セル2の書き込みデータがB又はCレベルであることを判定するには、隣接セルのデータラッチ回路DL0の反転データを使用する。隣接セル1及び隣接セル2のデータラッチ回路DL0の反転データの論理和が1である場合、隣接セル1及び隣接セル2の少なくとも一方がB又はCレベルであることが分かる。続いて、着目セルが、Aレベルに書き込まれるメモリセルであり、かつベリファイの結果として判定電圧AVL以上かつ判定電圧AV未満の閾値電圧を有することを判定するために、DL0~DL1DL2という演算を着目セルに対して行う。前述の演算との論理積を取った結果が1である場合、着目セルが、Aレベルに書き込まれるメモリセルであり、かつ判定電圧AVL以上かつ判定電圧AV未満の閾値電圧を有し、かつ隣接セル1又は隣接セル2がB又はCレベルであると判断できる。この時、着目セルのベリファイをパスとするため、着目セルのデータラッチ回路DL1との論理和を取った結果を、同じく着目セルのデータラッチ回路DL1に代入する。これにより、着目セルのデータラッチ回路DL0~DL2が111となり、着目セルの書き込みが完了し、その後の書き込み動作では、着目セルは書き込み禁止に設定される。続いて、奇数oddセルと同じ演算を偶数evenセルに対して実行する。偶数evenセルの演算は、下記の式のように行われる。|~DL0DL0~DL1DL2|DL1→DL1この演算により、次回の書き込みの準備が完了する。この後、データラッチ回路のデータに基づいて、書き込み動作書き込み電圧の印加が行われる。上記演算の結果が1になる状態、すなわち着目セルがAレベル、かつ隣接セル1及び隣接セル2の少なくとも一方がB又はCレベルという条件を満たす状態は、着目セル、隣接セル1及び隣接セル2が以下のデータパターンとなる。なお、隣接セル1-着目セル-隣接セル2という表記で書き込みデータEr、A、B、Cを表している。隣接セルにCレベルを含むデータパターンC-A-C、C-A-B、C-A-A、C-A-Er、B-A-C、A-A-C、Er-A-Cの7つのデータパターン隣接セルにBレベル以下を含むデータパターンB-A-B、B-A-A、B-A-Er、A-A-B、Er-A-Bの5つのデータパターン上記のようなデータパターンの場合、かつ着目セルの判定電圧が判定電圧AVL以上かつ判定電圧AV未満である場合に、着目セルは、書き込み完了とされる。図10は、本実施形態に係る書き込み動作を示すフローチャートである。なお、図10は、着目セルにおける書き込み動作を示しており、よって、図10の書き込み動作は、選択ページ内の全てのメモリセルに対して実行される。まず、センスアンプ回路4が書き込みデータ及び前回のベリファイ結果に応じてビット線の電圧を設定した後、ワード線制御回路3は、Aレベルを書き込むための書き込み電圧を選択ワード線に印加するステップS100。続いて、センスアンプ回路4及びワード線制御回路3は、判定電圧AVL及びAVを用いたベリファイ動作を実行するステップS101。続いて、ステップS102において判定電圧AVLのベリファイがフェイルである場合、着目セルは書き込みが継続されるステップS103。すなわち、センスアンプ回路4は、着目セルに対してビット線の電圧を0Vとする書き込みを継続するようにデータラッチ回路のデータを設定する。ステップS102において判定電圧AVLのベリファイがパスである場合、制御回路9は、着目セルの両側に隣接する隣接セル1及び隣接セル2のうち少なくとも一方の隣接データがB又はCレベルであるか否かを判定するステップS104。ステップS104において隣接データがB又はCレベルである場合、着目セルは書き込み完了とされるステップS105。すなわち、センスアンプ回路4は、着目セルに対して書き込み禁止となるようにデータラッチ回路のデータを設定する。ステップS104において隣接データがB又はCレベルでない場合、制御回路9は、AVレベルのベリファイがパスしたか否かを判定するステップS106。ステップS106においてAVレベルのベリファイがパスである場合、着目セルは書き込み完了とされるステップS105。すなわち、センスアンプ回路4は、着目セルに対して書き込み禁止となるようにデータラッチ回路のデータを設定する。ステップS106においてAVレベルのベリファイがフェイルである場合、隣接データがB又はCレベルでないので、着目セルは書き込みが継続されるステップS107。すなわち、センスアンプ回路4は、着目セルに対してビット線の電圧を中間電圧とする書き込みを継続するようにデータラッチ回路のデータを設定する。以上の制御を選択ページに含まれる全てのメモリセルに対して実行した後、今回の書き込みステージ書き込み電圧の印加及びベリファイが終了する。その後、ステップアップ電圧を加えた書き込み電圧を用いて、次回の書き込みステージが実行される。図11は、Aレベルの書き込みベリファイ後におけるメモリセルの閾値電圧とデータラッチ回路のデータとの関係を示す図である。本実施形態では、Aレベルの書き込みベリファイ後、すなわち判定電圧AVL及びAVのベリファイ動作後に、メモリセルの書き込み状態は4つのパターンに分類される。第1のパターンとして、AVLレベル及びAVレベルの両方のベリファイがパスしていない、すなわちメモリセルの閾値電圧VthがAVLレベル未満である場合は、ビット線を0Vとする通常の書き込み動作が引き続き行われる。この時のデータラッチ回路DL0~DL2のデータは、100となる。AVLレベルのベリファイがパスして、AVレベルのベリファイがフェイル、すなわちメモリセルの閾値電圧VthがAVLレベル以上かつAVレベル未満である場合は、隣接セルのデータを調べた上で書き込み状態が決定される。具体的には、メモリセルの閾値電圧Vthが判定電圧AVL以上かつ判定電圧AV未満であり、かつ隣接セルの書き込みデータがEr又はAレベルである場合は、ビット線を中間電圧とする書き込み動作が引き続き行われる第2のパターン。この時のデータラッチ回路DL0~DL2のデータは、101となる。一方、メモリセルの閾値電圧Vthが判定電圧AVL以上かつ判定電圧AV未満であり、かつ隣接セルの書き込みデータがB又はCレベルである場合は、メモリセルは書き込み禁止にされる第3のパターン。この時のデータラッチ回路DL0~DL2のデータは、111となる。第4のパターンとして、判定電圧AVL及び判定電圧AVの両方のベリファイがパスした、すなわちメモリセルの閾値電圧VthがAVレベル以上である場合は、メモリセルは書き込み禁止にされる。この時のデータラッチ回路DL0~DL2のデータは、111となる。[3.効果]以上詳述したように第1の実施形態では、不揮発性半導体記憶装置1は、複数のワード線及び複数のビット線に接続され、n値nは3以上の自然数を記憶可能な複数のメモリセルを有するメモリセルアレイ2と、書き込みデータに応じてワード線及びビット線の電圧を制御し、メモリセルにデータを書き込む書き込み動作と、上記メモリセルの閾値電圧を判定するベリファイ動作とを行う制御回路9とを具備する。制御回路9は、着目セルをAレベルに書き込む場合に、判定電圧AVL及びAVAVL<AVを用いてベリファイ動作を行う。そして、制御回路9は、着目セルの閾値電圧がAVLレベル以上かつAVレベル未満であり、かつ着目セルに隣接する隣接セルがAレベルより高い閾値電圧B又はCレベルに書き込まれる場合に、着目セルの書き込みを完了するようにしている。従って第1の実施形態によれば、隣接セルとの容量結合により着目セルの閾値電圧が書き込み完了直後の閾値電圧からシフトした場合でも、Aレベルのメモリセルの閾値分布が広がるのを抑制することができる。これにより、メモリセルの閾値分布を狭くすることが可能となる。この結果、メモリセルのデータを正確に読み出すことが可能となるため、誤読み出しを低減可能な不揮発性半導体記憶装置1を実現できる。また、本実施形態では、隣接セル同士のデータパターンに応じて閾値変動を補償することができるため、メモリセルがより微細化された場合でも、メモリセルの閾値分布を狭くすることが可能となる。また、着目セルがAレベルに書き込まれるメモリセルであり、かつ着目セルの閾値電圧が判定電圧AVL以上かつ判定電圧AV未満であり、かつ着目セルに隣接する隣接セルがAレベル以下の閾値電圧Er又はAレベルに書き込まれる場合に、制御回路9は、ビット線に接地電圧Vssと電源電圧Vddとの間の中間電圧を印加して書き込みを行うようにしている。これにより、当該着目セルの閾値電圧の上昇量を小さくすることができるため、メモリセルの閾値分布を狭くすることが可能となる。[第2の実施形態]メモリセル着目セルの閾値電圧は、着目セルと隣接セルとの閾値電圧の差が大きくなるほど、そのシフト量が大きくなる。すなわち、着目セルがAレベルに書き込まれ、かつ隣接セルがCレベルである場合には、隣接セルがBレベルである場合に比べて、着目セルの閾値電圧のシフト量が大きい。そこで、第2の実施形態は、着目セルの閾値電圧Vthが判定電圧AVL以上かつ判定電圧AV未満であり、かつ隣接セルがCレベル閾値電圧が最も高い状態である場合に、着目セルの書き込みを完了するようにしている。図12は、着目セル及び隣接セルに関するデータラッチ回路DL0~DL2のデータの様子を示している。図12の例では、着目セルが1つであるが、実際には隣接セル自身も着目セルとして扱う場合、偶数evenセルと奇数oddセルとの2回に分けて演算を実行する。まず、奇数oddセルの演算について説明する。奇数oddセルの演算は、下記の式のように行われる。なお、oddが着目セルのデータラッチ回路、even1が隣接セル1のデータラッチ回路、even2が隣接セル2のデータラッチ回路である。DL1|~DL0DL1DL0~DL1DL2|DL1→DL1具体的には、隣接セル隣接セル1又は隣接セル2の書き込みデータがCレベルであることを判定するには、隣接セルのデータラッチ回路DL0及びDL1のデータを使用する。隣接セル1のデータラッチ回路DL0の反転データと隣接セル1のデータラッチ回路DL1のデータとの論理積が1である場合、隣接セル1がCレベルであることが分かる。隣接セル2についても同様であるため、隣接セル1の演算結果と隣接セル2の演算結果との論理和が1である場合、隣接セル1及び隣接セル2の少なくとも一方がCレベルであることが分かる。続いて、着目セルが、Aレベルに書き込まれるメモリセルであり、かつベリファイの結果として判定電圧AVL以上かつ判定電圧AV未満の閾値電圧を有することを判定するために、DL0~DL1DL2という演算を着目セルに対して行う。前述の演算との論理積を取った結果が1である場合、着目セルが、Aレベルに書き込まれるメモリセルであり、かつ判定電圧AVL以上かつ判定電圧AV未満の閾値電圧を有し、かつ隣接セル1又は隣接セル2がCレベルであると判断できる。この時、着目セルのベリファイをパスとするため、着目セルのデータラッチ回路DL1との論理和を取った結果を、同じく着目セルのデータラッチ回路DL1に代入する。これにより、着目セルのデータラッチ回路DL0~DL2が111となり、着目セルの書き込みが完了し、その後の書き込み動作では、着目セルは書き込み禁止に設定される。続いて、奇数oddセルと同じ演算を偶数evenセルに対して実行する。偶数evenセルの演算は、下記の式のように行われる。DL1|~DL0DL1DL0~DL1DL2|DL1→DL1この演算により、次回の書き込みの準備が完了する。この後、データラッチ回路のデータに基づいて、書き込み動作書き込み電圧の印加が行われる。上記演算の結果が1になる状態、すなわち着目セルがAレベル、かつ隣接セル1及び隣接セル2の少なくとも一方がCレベルという条件を満たす状態は、着目セル、隣接セル1及び隣接セル2が以下のデータパターンとなる。なお、隣接セル1-着目セル-隣接セル2という表記で書き込みデータEr、A、B、Cを表している。C-A-C、C-A-B、C-A-A、C-A-Er、B-A-C、A-A-C、Er-A-Cの7つのデータパターン上記のようなデータパターンの場合、かつ着目セルの閾値電圧が判定電圧AVL以上かつ判定電圧AV未満である場合に、着目セルは、書き込み完了とされる。図13は、本実施形態に係る書き込み動作を示すフローチャートである。なお、図13は、着目セルにおける書き込み動作を示しており、よって、図13の書き込み動作は、選択ページ内の全てのメモリセルに対して実行される。本実施形態の書き込み動作では、ステップS202において判定電圧AVLのベリファイがパスである場合、制御回路9は、着目セルの両側に隣接する隣接セル1及び隣接セル2のうち少なくとも一方の隣接データCレベルであるか否かを判定するステップS204。そして、ステップS204において隣接データがCレベルである場合、着目セルは書き込み完了とされるステップS205。すなわち、センスアンプ回路4は、着目セルに対して書き込み禁止となるようにデータラッチ回路のデータを設定する。それ以外のステップは、第1の実施形態で説明した図10のフローチャートと同じである。効果以上詳述したように第2の実施形態によれば、メモリセル着目セルの閾値電圧Vthが判定電圧AVL以上かつ判定電圧AV未満であり、かつ隣接セルがCレベル閾値電圧が最も高い状態である場合に、着目セルの書き込みを完了するように制御することができる。これにより、Aレベルに書き込まれる着目セルに隣接する隣接セルがCレベル最も高い閾値電圧に書き込まれる場合に、着目セルの閾値電圧のシフト量を低減することが可能となる。その他の効果は、第1の実施形態と同じである。なお、上記各実施形態では、1個のメモリセルが2ビットを記憶する場合の構成について示しているが、1個のメモリセルが3ビット以上を記憶する場合も同様に適用可能である。さらに、上記各実施形態では、着目セルがAレベルに書き込まれる場合を説明しているが、着目セルがAレベル以外の閾値電圧に書き込まれる場合にも同様に適用可能である。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。"