"半導体基板と、ワード線、及びビット線に接続され、直列接続された複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、前記ワード線を選択する選択トランジスタと、入力データに応じて前記ワード線、ビット線の電位を制御し、前記メモリセルに対するデータの書き込み、読み出し及び消去動作を制御する制御回路とを具備し、前記選択トランジスタは、前記半導体基板のウェル上に形成され、書き込み動作時に、前記ウェルには第2負電圧が入力され、所定の非選択ワード線には第3電圧第3電圧≧第2負電圧が入力されることを特徴とする半導体記憶装置。前記メモリセルアレイは、少なくとも1つの前記ワード線を含むブロックを少なくとも1つ有し、前記選択トランジスタは前記ブロック毎に同一のウェル上に形成され、選択ブロックのウェルには、前記第1負電圧又は第2負電圧が供給され、非選択ブロックのウェルには第4電圧、第1負電圧、第2負電圧のうちの1つが供給されることを特徴とする請求項1記載の半導体記憶装置。前記メモリセルは複数の負の閾値電圧のうちの1つが設定されることを特徴とする請求項1記載の半導体記憶装置。書き込み対象のメモリセルより少なくともソース線側に位置するメモリセルのゲート電極に前記第2負電圧を供給することを特徴とする請求項1記載の半導体記憶装置。前記制御回路は、負電圧発生回路を具備することを特徴とする請求項1記載の半導体記憶装置。前記半導体基板は第1導電型であり、前記ウェルは、前記第1導電型とは反対の型の第2導電型のウェル内に形成された第1導電型のウェルであることを特徴とする請求項1乃至5のいずれか1項に記載の半導体記憶装置。本発明は、書き込み速度を高速化することが可能な半導体記憶装置を提供しようとするものである。本発明の半導体記憶装置の第1の態様は、半導体基板と、ワード線、及びビット線に接続され、直列接続された複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、前記ワード線を選択する選択トランジスタと、入力データに応じて前記ワード線、ビット線の電位を制御し、前記メモリセルに対するデータの書き込み、読み出し及び消去動作を制御する制御回路とを具備し、前記選択トランジスタは、前記半導体基板のウェル上に形成され、書き込み動作時に、前記ウェルには第2負電圧が入力され、所定の非選択ワード線には第3電圧第3電圧≧第2負電圧が入力されることを特徴とする。図1abは、従来と本実施形態の閾値電圧の関係を示している。図1abは、2ビット、4値のデータを記憶する場合を示している。本実施形態は、図1bに示すように、例えば0V以下の負側にも複数の閾値電圧を設定している。このように、負側にも複数の閾値電圧を設定することにより、Vreadを変えることなく、1つ当りの閾値分布幅を広げることができる。このため、プログラム、ベリファイの回数を削減でき、書き込み速度を高速化することが可能となる。このような閾値電圧を設定するため、次のような構成が必要となる。すなわち、選択セルのゲート電極を負電圧とするため、ワード線を負電位に設定する必要がある。このため、ローデコーダを構成する高耐圧の例えばNチャネルMOSトランジスタをP型ウェルPウェルと称す領域内に形成し、このPウェル領域に負電圧を供給する。この時、選択ブロック内の非選択ワード線には、Vread例えば5Vを供給し、非選択セルを導通させる。また、1書き込み非書き込みにおいて、誤書き込みが生じないよう、RLSB、REASBと称する書き込み方式が考案されている。この書き込み方式は、NANDセルのうち、書き込みセルの近傍のセルのチャネル領域をオフに設定し、チャネル領域の電位がブートされ易くしている。このため、ワード線に接地電位を供給している。しかし、本実施形態の場合、セルが消去セルの場合、図1bにデータ0で示すように、その閾値電圧が従来に比べて負側に深くなっている。このため、書き込みセルの近傍のセルのチャネル領域をオフさせるため、ワード線に負電位を供給する必要がある。以下、本発明の実施の形態について、図面を参照して説明する。図2は、本実施形態に係る半導体記憶装置、具体的には例えば4値2ビットのデータを記憶するNAND型フラッシュメモリの構成を示している。メモリセルアレイ1は複数のビット線と複数のワード線と共通ソース線を含み、例えばEEPROMセルからなる電気的にデータを書き換え可能なメモリセルがマトリクス状に配置されている。このメモリセルアレイ1には、ビット線を制御するためのビット制御回路2とワード線制御回路6が接続されている。ビット線制御回路2は、ビット線を介してメモリセルアレイ1中のメモリセルのデータを読み出したり、ビット線を介してメモリセルアレイ1中のメモリセルの状態を検出したり、ビット線を介してメモリセルアレイ1中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行なう。ビット線制御回路2には、カラムデコーダ3、データ入出力バッファ4が接続されている。ビット線制御回路2内のデータ記憶回路はカラムデコーダ3によって選択される。データ記憶回路に読み出されたメモリセルのデータは、前記データ入出力バッファ4を介してデータ入出力端子5から外部へ出力される。また、外部からデータ入出力端子5に入力された書き込みデータは、データ入出力バッファ4を介して、カラムデコーダ3によって選択されたデータ記憶回路に入力される。ワード線制御回路6は、ローデコーダ6-1を含んでいる。ワード線制御回路6は、ローデコーダ6-1を介してメモリセルアレイ1中のワード線を選択し、選択されたワード線に読み出し、書き込みあるいは消去に必要な電圧を印加する。メモリセルアレイ1、ビット線制御回路2、カラムデコーダ3、データ入出力バッファ4、及びワード線制御回路6は、制御信号及び制御電圧発生回路7に接続され、この制御信号及び制御電圧発生回路7によって制御される。制御信号及び制御電圧発生回路7は、制御信号入力端子8に接続され、外部から制御信号入力端子8を介して入力される制御信号によって制御される。制御信号及び制御電圧発生回路7は、後述する負電圧発生回路7-1を含んでいる。この負電圧発生回路7-1はデータの書き込み、読み出し時に負電圧を発生する。前記ビット線制御回路2、カラムデコーダ3、ワード線制御回路6、制御信号及び制御電圧発生回路7は書き込み回路、及び読み出し回路を構成している。図3は、図2に示すメモリセルアレイ1及びビット線制御回路2の構成を示している。メモリセルアレイ1には複数のNANDセルが配置されている。1つのNANDセルは、直列接続された例えば32個のEEPROMからなるメモリセルMCと、選択ゲートS1、S2とにより構成されている。選択ゲートS2はビット線BL0eに接続され、選択ゲートS1はソース線SRCに接続されている。各ローに配置されたメモリセルMCの制御ゲートはワード線WL0~WL29、WL30、WL31に共通接続されている。また、選択ゲートS2はセレクト線SGDに共通接続され、選択ゲートS1はセレクト線SGSに共通接続されている。ビット線制御回路2は複数のデータ記憶回路10を有している。各データ記憶回路10には、一対のビット線BL0e、BL0o、BL1e、BL1o...BLie、BLio、BL8ke、BL8koが接続されている。メモリセルアレイ1は、破線で示すように、複数のブロックを含んでいる。各ブロックは、複数のNANDセルにより構成され、例えばこのブロック単位でデータが消去される。また、消去動作は、データ記憶回路10に接続されている2本のビット線について同時に行なわれる。また、ビット線の1つおきに配置され、1つのワード線に接続された複数のメモリセル破線で囲まれた範囲のメモリセルは、1セクタを構成する。このセクタ毎にデータが書き込まれ、読み出される。リード動作、プログラムベリファイ動作及びプログラム動作時において、データ記憶回路10に接続されている2本のビット線BLie、BLioのうち外部より供給されるアドレス信号YA0、YA1...YAi...YA8kに応じて1本のビット線が選択される。さらに、外部アドレスに応じて、1本のワード線が選択される。図4abはメモリセル及び選択トランジスタの断面図を示している。図4aはメモリセルを示している。基板51後述するPウェル領域55にはメモリセルのソース、ドレインとしてのn型拡散層42が形成されている。Pウェル領域55の上にはゲート絶縁膜43を介して浮遊ゲートFG44が形成され、この浮遊ゲート44の上には絶縁膜45を介して制御ゲートCG46が形成されている。図4bは選択ゲートを示している。Pウェル領域55にはソース、ドレインとしてのn型拡散層47が形成されている。Pウェル領域55の上にはゲート絶縁膜48を介して制御ゲート49が形成されている。図5は、半導体記憶装置の断面図を示している。例えばP型半導体基板51内には、N型ウェル以下、Nウェルと称す領域52、53、54、56、Pウェル領域57が形成されている。Nウェル領域52内にはPウェル領域55が形成され、このPウェル領域55内にメモリセルアレイ1を構成する低電圧NチャネルMOSトランジスタLVNTrが形成されている。さらに、前記Nウェル領域53、Pウェル領域57内に、データ記憶回路10を構成する低電圧PチャネルMOSトランジスタLVPTr、低電圧NチャネルMOSトランジスタLVNTrが形成されている。前記Nウェル領域56内には、Pウェル領域58が形成され、このPウェル領域58内にローデコーダ6-1を構成する高電圧NチャネルMOSトランジスタHVNTrが形成されている。また、前記Nウェル領域54内には例えばワード線駆動回路等を構成する高電圧PチャネルMOSトランジスタHVPTrが形成されている。高電圧トランジスタHVNTr、HVPTrは、低電圧トランジスタLVNTr、LVPTrに比べて例えば厚いゲート絶縁膜を有している。図6は、消去、プログラム、読み出し時における各ウェルに供給される電位を示している。ローデコーダ6-1を構成するNチャネルMOSトランジスタが形成されるPウェル58には、プログラム時及びデータの読み出し時に負電位、例えば-2Vが供給される。図7は、図3に示すデータ記憶回路10の一例を示す回路図である。このデータ記憶回路10は、プライマリデータキャッシュPDC、セコンダリデータキャッシュSDC、ダイナミックデータキャッシュDDC、テンポラリデータキャッシュTDCを有している。SDC、PDC、DDCは、書き込み時に入力データを保持し、読み出し時に読み出しデータを保持し、ベリファイ時に一時的にデータを保持し、多値データを記憶する際に内部データの操作に使用される。TDCは、データの読み出し時にビット線のデータを増幅し、一時的に保持するとともに、多値データを記憶する際に内部データの操作に使用される。SDCは、ラッチ回路を構成するクロックドインバータ回路61a、61b、及びトランジスタ61c、61dにより構成されている。トランジスタ61cはクロックドインバータ回路61aの入力端と、クロックドインバータ回路61bの入力端の間に接続されている。このトランジスタ61cのゲートには信号EQ2が供給されている。トランジスタ61dはクロックドインバータ回路61bの出力端と接地間に接続されている。このトランジスタ61dのゲートには信号PRSTが供給されている。SDCのノードN2aは、カラム選択トランジスタ61eを介して入出力データ線IOに接続され、ノードN2bは、カラム選択トランジスタ61fを介して入出力データ線IOnに接続される。これらトランジスタ61e、61fのゲートにはカラム選択信号CSLiが供給されている。SDCのノードN2aは、トランジスタ61g、61hを介してPDCのノードN1aに接続されている。トランジスタ61gのゲートには信号BLC2が供給され、トランジスタ61hのゲートには信号BLC1が供給されている。PDCは、クロックドインバータ回路61i、61j及びトランジスタ61kにより構成されている。トランジスタ61kは、クロックドインバータ回路61iの入力端とクロックドインバータ回路61jの入力端の相互間に接続されている。このトランジスタ61kのゲートには信号EQ1が供給されている。PDCのノードN1bはトランジスタ61lのゲートに接続されている。このトランジスタ61lの電流通路の一端はトランジスタ61mを介して接地されている。このトランジスタ61mのゲートには信号CHK1が供給されている。また、トランジスタ61lの電流通路の他端はトランスファーゲートを構成するトランジスタ61n、61oの電流通路の一端に接続されている。このトランジスタ61nのゲートには信号CHK2nが供給されている。また、トランジスタ61oのゲートはトランジスタ61g、61hの接続ノードN3に接続されている。トランジスタ61n、61oの電流通路の他端には、信号COMiが供給されている。この信号COMiは全データ記憶回路10に共通の信号であり、全データ記憶回路10のベリファイが完了したかどうかを示す信号である。すなわち、後述するように、ベリファイが完了すると、PDCのノードN1bがローレベルとなる。この状態において、信号CHK1、CHK2nをハイレベルとすると、ベリファイが完了している場合、信号COMiがハイレベルとなる。さらに、前記TDCは、例えばMOSキャパシタ61pにより構成されている。このキャパシタ61pは、前記トランジスタ61g、61hの接続ノードN3と接地間に接続されている。また、接続ノードN3には、トランジスタ61qを介してDDCが接続されている。トランジスタ61qのゲートには、信号REGが供給されている。DDCは、トランジスタ61r、61sにより構成されている。トランジスタ61rの電流通路の一端には信号VREGが供給され、他端は前記トランジスタ61qの電流通路に接続されている。このトランジスタ61rのゲートはトランジスタ61sを介して前記PDCのノードN1aに接続されている。このトランジスタ61sのゲートには信号DTGが供給されている。さらに、前記接続ノードN3にはトランジスタ61t、61uの電流通路の一端が接続されている。トランジスタ61uの電流通路の他端には信号VPREが供給され、ゲートには信号BLPREが供給されている。前記トランジスタ61tのゲートには信号BLCLAMPが供給されている。このトランジスタ61tの電流通路の他端はトランジスタ61vを介してビット線BLoの一端に接続され、トランジスタ61wを介してビット線BLeの一端に接続されている。ビット線BLoの他端はトランジスタ61xの電流通路の一端に接続されている。このトランジスタ61xのゲートには信号BlASoが供給されている。ビット線BLeの他端はトランジスタ61yの電流通路の一端に接続されている。このトランジスタ61yのゲートには信号BlASeが供給されている。これらトランジスタ61x、61yの電流通路の他端には、信号BLCRLが供給されている。トランジスタ61x、61yは、信号BlASo、BlASeに応じてトランジスタ61v、61wと相補的にオンとされ、非選択のビット線に信号BLCRLの電位を供給する。上記各信号及び電圧は、図2に示す制御信号及び制御電圧発生回路7により生成され、この制御信号及び制御電圧発生回路7の制御に基づき、以下の動作が制御される。図8は、負電圧発生回路7-1の一例を示している。負電圧発生回路7-1は、例えば4相のポンプ回路PMP、検出回路DT、制御部7d、発振回路7eにより構成されている。ポンプ回路PMPは、例えば複数のPチャネルMOSトランジスタPMOS、複数のキャパシタCpにより構成されている。各キャパシタCpの一端にクロック信号CLK1~CLK4が供給されている。これらクロック信号CLK1~CLK4により、PMOSが順次オンとされ、負電圧が発生される。検出回路DTは、ポンプ回路PMPの出力端に接続されている。この検出回路DTは、定電流源7a、抵抗7b、及び差動増幅器7cにより構成されている。定電流源7aと抵抗7bは、電源VDDが供給されるノードとポンプ回路PMPの出力端間に直列接続されている。差動増幅器7cの一方入力端は定電流源7aと抵抗7bの接続ノードに接続され、他端には基準電圧Vrefが供給されている。この基準電圧Vrefは、例えばバンドギャップリファレンス回路により生成された、1V程度の電圧である。この検出回路DTは、基準電圧Vrefに基づき、ポンプ回路PMPの出力電圧を検出する。この検出出力信号は制御部7dに供給される。制御部7bは、検出出力信号に応じて発振回路7eを制御する。発振回路7eは、制御部7bの制御に基づき、発振又は停止される。このようにして、ポンプ回路PMPにより、一定の負電圧が生成される。また、抵抗7bは、トリミング回路7fを構成している。このトリミング回路7fは、トリミング信号TMに応じて、抵抗7bの抵抗値を変化することにより、ポンプ回路PMPから出力される負電圧のレベルを切り替える。前記トリミング信号TMは、例えば制御信号及び制御電圧発生回路7により、データの読み出し時、プログラムベリファイ時に発生される。したがって、負電圧発生回路7-1は、データの読み出し時、プログラムベリファイ時に種々のレベルの負電圧を発生する。本メモリは、多値メモリであるため、1セルに2ビットのデータを記憶することができる。2ビットの切り替えはアドレス第1ページ、第2ページによって行なう。図9abcは、メモリセルのデータとメモリセルの閾値の関係を表している。図9cに示すように、消去動作を行なうとメモリセルのデータは0となる。データ0は、0V以下の負電圧である。後述するように、RLSB、REASB書き込み方式を適用するため、消去後、ベリファイ電圧zによりベリファイが行なわれる。閾値電圧がベリファイ電圧z以下である場合、閾値電圧がベリファイ電圧zとなるまで書き込み動作が行なわれる。図9aに示すように、第1ページの書き込みにより、メモリセルのデータはデータ0とデータ2になる。また、図9bに示すように、第2ページの書き込み後、メモリセルのデータはデータ0、1、2、3となる。本実施形態において、メモリセルのデータは閾値電圧の低い方から高い方へと定義されている。図10は、本実施形態における書き込み順序を概略的に示している。図10に示すように、ブロック内において、ソース線に近いメモリセルからページ毎に書き込み動作が行なわれる。この場合、先に書き込まれた隣接するメモリセルの閾値電圧の影響を除去するため、図9に示すように、メモリセルへの書き込み順序が定められている。図11は、ローデコーダ6-1の一部を構成するトランスファーゲートを示している。このトランスファーゲートは、前述した複数のNチャネルMOSトランジスタHVNTrにより構成されている。各トランジスタHVNTrの一端には電圧SGS_DRV、CG0~CG31、SGD_DRVが供給され、他端は、セレクト線SGS、ワード線WL0~WL31、セレクト線SGDに接続されている。各トランジスタHVNTrのゲートには、信号TGが供給される。各選択ブロックのトランジスタHVNTrが信号TGに応じてオンすることにより、セルのワード線WL0~WL31に所定の電圧が供給される。尚、ローデコーダ6-1が配置されるPウェル領域58は、ブロック毎に分離されていても良いし、1つのPウェル領域58に複数又は全ブロックのローデコーダが配置されていてもよい。読み出し動作図9aに示すように、第1ページ書き込み後、メモリセルのデータは、0又は2となっている。このため、これらデータの中間のレベルaをワード線に供給して読み出し動作を行なうことにより、これらデータを読み出すことができる。また、図9bに示すように、第2ページ書き込み後、メモリセルのデータは、0、1、2、3のいずれかとなっている。このため、これらデータの各中間のレベルb、c、dをワード線にそれぞれ供給して読み出し動作を行なうことにより、これらデータを読み出すことができる。本実施形態において、例えばレベルa及びbは、負電圧である。メモリセルのウェル図5、Pウェル領域55、ソース線及び非選択ビット線をVss接地電位=0Vにする。Pウェル領域58がブロック毎に分離されている場合、非選択ブロックのPウェル領域58はVss又は負電位例えば-2Vに設定され、非選択ブロックのトランスファーゲート図11に示すをオフとする。1つPウェル領域58に複数又は全ブロックのローデコーダが配置されている場合、Pウェル領域58は負電位例えば-2Vに設定され、非選択ブロックのトランスファーゲート図11に示すをオフとする。これにより、非選択ブロックのワード線はフローティング状態となり、選択ゲートはVssとなる。選択ブロックのローデコーダのPウェル領域58に負電位例えば-2Vを供給し、選択ブロックのトランスファーゲートをオンとすることにより、選択ブロックの選択ワード線にリードの時の電位例えば-2Vから3V、選択ブロックの非選択ワード線にVread例えば5V、選択ブロックの選択ゲートSG1にVsgVddVth、例えば2.5VVthとなる。ここで、読み出し時の電位が負でないとき、Pウェル領域はVssでも良い。次に、図7に示すデータ記憶回路10の信号VPREをVdd例えば2.5V、信号BLPREをVsgVddVth、信号BLCLAMPを例えば0.6VVthに設定し、ビット線を例えば0.6Vにプリチャージする。次に、セルのソース側のセレクト線SG2をVddに設定する。メモリセルの閾値電圧が読み出し時の電位より高い時、セルはオフするため、ビット線はハイレベルのままである。また、メモリセルの閾値電圧が読み出し時の電位より低い場合、セルはオンするため、ビット線の電位はVssとなる。この後、図7に示すデータ記憶回路10の信号BLPREを一旦VsgVddVthに設定して、TDCのノードN3をVddにプリチャージした後、信号BLCLAMPを例えば0.45VVthに設定する。TDCのノードN3は、ビット線の電位が0.45Vより低い場合、ローレベルとなり、ビット線の電位が0.45Vより高い場合、ハイレベルとなる。信号BLCLAMPをVssとした後、信号BLC1をVsgVddVthとして、TDCの電位をPDCに読み込む。したがって、セルの閾値電圧が、ワード線の電位より低い場合、PDCはローレベル、高い場合、PDCはハイレベルとなる。このようにして読み出し動作が行なわれる。プログラム第1ページ書き込み動作図12は、第1ページの書き込みシーケンスを示し、図13は、第2ページの書き込みシーケンスを示している。プログラム動作は、先ずアドレスを指定し、図3示すように、1本のワード線に接続された半数のメモリセル2ページが選択される。本メモリは、この2ページのうち、第1ページ、第2ページの順でしか、プログラム動作できない。したがって、初めにアドレスにより第1ページを選択する。図12に示す第1ページの書き込み動作において、先ず、書き込みデータを外部より入力し、全てのデータ記憶回路10内のSDCに記憶するS11。この後、書き込みコマンドが入力されると、全てのデータ記憶回路10内のSDCのデータがPDCに転送されるS12。外部よりデータ1書き込みを行なわないが入力された場合、PDCのノードN1aはハイレベルになり、データ0書き込みを行なうが入力された場合、PDCのノードN1aはローレベルとなる。以後、PDCのデータはノードN1aの電位、SDCのデータはノードN2aの電位とする。プログラム動作S13図7に示すデータ記憶回路10において、信号BLC1をVddVthとすると、トランジスタ61hが導通する。このため、PDCにデータ1書き込みを行なわないが記憶されている時、ビット線はVddとなり、データ0書き込みを行なうが記憶されている時、ビット線はVssとなる。また、選択されたワード線に接続され、非選択ページビット線が非選択のセルは書き込みが行なわれてはならない。このため、これらのセルに接続されたビット線もデータ1が供給されるビット線と同様、Vddに設定される。この状態において、Pウェル領域58がブロック毎に分離されている場合、非選択ブロックのPウェル領域58はVss又は負電位例えば-2Vに設定され、非選択ブロックのトランスファーゲート図11に示すをオフとする。1つPウェル領域58に複数又は全ブロックのローデコーダが配置されている場合、Pウェル領域58は負電位例えば-2Vに設定され、非選択ブロックのトランスファーゲート図11に示すをオフとする。これにより、非選択ブロックのワード線はフローティング状態となり、選択ゲートはVssとなる。また、選択ブロックのローデコーダのPウェル領域58は、負電位例えば-2Vに設定し、選択ブロックのトランスファーゲートを導通することにより、選択ブロックの選択ゲートSGDにVdd又はVddより若干低い電位が供給される。さらに、選択ブロックの選択ゲートSGSにVssを供給し、選択ワード線にVpgm20V、非選択ワード線にVpass10Vを供給すると、ビット線がVssになっている場合、セルのチャネルがVss、ワード線がVpgmとなるため、書き込みが行なわれる。一方、ビット線がVddになっている場合、セルのチャネルがVssではなく、カップリングによりチャネルがブートされる。このため、ゲートとチャネル間の電位差が小さくなり、書き込みが行われない。図10に示す順序により書き込みを行った場合、ソース線から離れるに従い、書き込まれたセルの数が多くなる。このため、チャネルがブートされにくくなり誤書き込みされる問題がある。これを解決するために、前述したRLSB書き込み方式、REASB書き込み方式が開発されている。RLSB書き込み方式は、選択ワード線の隣のワード線、又はそれより1つ離れた隣のワード線をVssに設定し、選択ワード線をVpgm、その他のワード線をVpass又は中間電位に設定する。また、REASB書き込み方式は、ソース側の選択ワード線の隣のワード線、又はそれより1つ離れた隣のワード線をVssに設定し、選択ワード線をVpgm、その他のワード線をVpass又は中間電位に設定する。このように選択ワード線の隣、又はそれより1つ離れた隣のワード線をVssに設定してメモリセルをオフさせ、選択セル直下のチャネルがブートされ易くしている。しかし、本実施形態において、ワード線がVssとなるセルが消去セルである場合、閾値が負電圧であるためオフしなくなってしまう。このため、本実施形態の場合、図14abに示すRLSB書き込み方式、図14cに示すREASB書き込み方式において、選択ワード線の隣、又はそれより1つ離れた隣のワード線をVssではなく、負電位、例えば-1.5Vに設定する。第1ページの書き込みにおいて、メモリセルのデータはデータ0とデータ2になる。プログラムベリファイリードS14プログラムベリファイリードは、読み出し動作と同じであるが、読み出しレベルより若干高いベリファイレベルa’をワード線に供給してリードする。このベリファイリードにより、メモリセルの閾値電圧がベリファイレベルa’に達している場合、PDCがデータ1となり、書き込みが行なわれなくなる。一方、メモリセルの閾値電圧がベリファイレベルa’に達していない場合、PDCがデータ0となる。各データ記憶回路10のPDCのデータが全て1でない場合S15、再度プログラムが行われるS13。各データ記憶回路10のPDCのデータが全て1になるまで、プログラム動作とベリファイ動作が繰り返される。第2ページ書き込み動作図13に示す第2ページの書き込み動作において、先ず、書き込みデータを外部より入力し、全てのデータ記憶回路10内のSDCに記憶するS21。この後、第1ページの書き込みにおいて、書き込まれたデータを確認するため、読み出しレベルa例えば負電圧をワード線に設定して、メモリセルのデータが読み出されるS22。この読み出し動作は、前述した通りである。セルの閾値電圧が、ワード線の電位aより低い場合、PDCはローレベル、高い場合、PDCはハイレベルとなる。この後、データキャッシュが設定されるS23。すなわち、第2ページの書き込みは、図9bに示すように行なわれる。第1ページの書き込みにおいて、データ1の場合で、第2ページの書き込みにおいて、データ1の場合、第2ページ書き込みが行なわれない。第1ページの書き込みにおいて、データ1の場合で、第2ページの書き込みにおいて、データ0の場合、第2ページ書き込みにより、メモリセルのデータが1に設定される。第1ページの書き込みにおいて、データ0の場合で、第2ページの書き込みにおいて、データ0の場合、第2ページ書き込みにより、メモリセルのデータが2に設定される。第1ページの書き込みにおいて、データ0の場合で、第2ページの書き込みにおいて、データ1の場合、第2ページ書き込みにより、セルのデータが3に設定される。この動作を行なうため、データキャッシュが設定される。すなわち、メモリセルのデータを0にする場合第1ページにおいてデータ1、第2ページはデータ1、PDCはハイレベル、DDCはローレベル、SDCはハイレベルに設定される。メモリセルのデータを1にする場合第1ページにおいてデータ1、第2ページはデータ0、PDCはローレベル、DDCはハイレベル、SDCはハイレベルに設定される。メモリセルのデータを2にする場合第1ページにおいてデータ0、第2ページはデータ0、PDCはローレベル、DDCはハイレベル、SDCはローレベルに設定される。メモリセルのデータを3にする場合第1ページではデータ0、第2ページはデータ1、PDCはローレベル、DDCはローレベル、SDCはローレベルに設定される。PDC,DDC,SDCの各データは、信号BLC1,BLC2,DTG,REG、VREGを所定の順序で供給し、PDC,DDC,SDC,TDCのデータを転送することにより設定される。尚、具体的な動作については省略する。プログラム動作S24プログラム動作は、第1ページのプログラム動作と全く同じである。PDCにデータ1が記憶されている場合、書き込みが行なわれず、データ0が記憶されている場合、書き込みが行なわれる。ベリファイ動作S25,S26,S27プログラムベリファイリードは、リード動作と同じである。しかし、ベリファイレベルb’、c’、d’は、リードレベルにマージンが付加され、リードレベルより若干高いレベルに設定されている。このベリファイレベルb’、c’、d’を用いてベリファイリードを行う。例えばベリファイレベルb’は、負電圧であり、ベリファイレベルc’、d’は、正の電圧である。ベリファイ動作は、例えばベリファイレベルb’、c’、d’の順に実行される。すなわち、先ず、ワード線にベリファイレベルb’が設定され、メモリセルの閾値電圧がベリファイレベルb’に達しているかどうか検証されるS25。この結果、メモリセルの閾値電圧がベリファイレベルに達している場合、PDCがハイレベルとなり、書き込みが行なわれなくなる。一方、ベリファイリードレベルに達していない場合、PDCがローレベルとなり、次回のプログラムで書き込みが行なわれる。この後、ワード線にベリファイレベルc’が設定され、メモリセルの閾値電圧がベリファイレベルc’に達しているかどうか検証されるS26。この結果、メモリセルの閾値電圧がベリファイレベルに達している場合、PDCがハイレベルとなり、書き込みが行なわれなくなる。一方、ベリファイリードレベルに達していない場合、PDCがローレベルとなり、次回のプログラムで書き込みが行なわれる。次いで、ワード線にベリファイレベルd’が設定され、メモリセルの閾値電圧がベリファイレベルd’に達しているかどうか検証されるS27。この結果、メモリセルの閾値電圧がベリファイレベルに達している場合、PDCがハイレベルとなり、書き込みが行なわれなくなる。一方、ベリファイリードレベルに達していない場合、PDCがローレベルとなり、次回のプログラムで書き込みが行なわれる。このようにして、全てのデータ記憶回路10のPDCがハイレベルになるまで、プログラム動作とベリファイ動作が繰り返される。以下に、具体的なベリファイ動作について説明する。ベリファイb’S25このプログラムベリファイ動作では、選択されているワード線にベリファイ電圧b’を与える。先ず、選択されているブロック内の非選択ワード線及びセレクト線SG1に読み出し電位Vreadを与える。データ記憶回路10の信号BLCLAMPを1VVth、BLC2をVddVthとしてビット線をプリチャージする。メモリセルのデータ2、3への書き込み時、SDCの記憶データは0である。このため、ビット線はプリチャージされず、メモリセルのデータ0、1への書き込み時のみ、ビット線がプリチャージされる。次に、セルのソース側のセレクト線SG2をハイレベルにする。閾値電圧が電位b’より高い時セルはオフするため、ビット線はハイレベルのままである。また、閾値電圧が電位b’より低いセルはオンするためビット線はVssとなる。このビット線放電中、TDCのノードN3を一旦Vssとし、信号REGをハイレベルとしてトランジスタ61qをオンさせ、DDCのデータをTDCに移す。次に、信号DTGをハイレベルとしてトランジスタ61sを一旦オンとし、PDCのデータをDDCに移す。この後、TDCのデータをPDCに移す。次に、データ記憶回路の信号BLPREに電圧VddVthとして、トランジスタ61uをオンとし、TDCのノードN3をVddにプリチャージする。この後、信号BLCLAMPを0.9VVthとし、トランジスタ61tをオンさせる。すると、TDCのノードN3はビット線がローレベルの場合ローレベルとなり、ビット線がハイレベルの場合ハイレベルとなる。ここで、書き込みを行なう場合、DDCにローレベルが記憶され、書き込みを行なわない場合、DDCにハイレベルが記憶されている。このため、信号VREGをVddとし、信号REGをハイレベルにすると、書き込みを行なわない場合のみTDCのノードN3が強制的にハイレベルとなる。この動作の後、PDCのデータをDDCに移し、TDCの電位をPDCに読み込む。PDCにハイレベルがラッチされるのは、書き込みを行なわない場合と、メモリセルにデータ1を書き込んでいて、セルの閾値電圧がベリファイ電圧b’に達した場合だけである。PDCにローレベルがラッチされる場合は、セルの閾値電圧が電位b’に達しない場合と、メモリセルのデータ2、3に書き込んでいる場合である。ベリファイc’S26データ2を書き込むセルは、第1ページで本来のベリファイ電圧c’より低いベリファイ電圧a’により、書き込みが行なわれている。その後、隣接セルの書き込みにより閾値電圧が上昇している場合もあり、本来のベリファイ電圧c’に達しているセルもある。このため、先ず、データ2のベリファイを行なう。このプログラムベリファイ動作では、選択されているワード線にベリファイ電圧c’を印加する。先ず、選択されているブロック内の非選択ワード線及びセレクト線SG1に電位Vreadを与え、図7に示すデータ記憶回路10の信号BLCLAMPを1VVthとし、信号REGをVddVthとしてビット線をプリチャージする。メモリセルにデータ0、3を書き込む場合、DDCがローレベルに設定されている。このため、ビット線はプリチャージされない。また、メモリセルにデータ1、2を書き込む場合、DDCがハイレベルに設定されている。このため、ビット線がプリチャージされる。次に、NANDセルのソース側のセレクト線SG2をハイレベルにする。セルの閾値電圧がc’より高い時、セルはオフする。このため、ビット線はハイレベルのままである。また、セルの閾値電圧がc’より低いセルはオンする。このため、ビット線はVssとなる。ビット線の放電中に、TDCのノードN3が一旦Vssとされる。この後、信号REGをハイレベルとしてトランジスタ61qをオンさせ、DDCのデータをTDCに転送する。次に、信号DTGをVddVthとしてトランジスタ61sを一旦オンさせ、PDCのデータをDDCに移す。この後、TDCのデータをPDCに移す。次に、信号VPREをVddとし、信号BLPREをVddVthとすることにより、TDCのノードN3をVddにプリチャージする。この後、信号BLCLAMPを0.9VVthとしてトランジスタ61tをオンさせる。TDCのノードN3はビット線がローレベルの場合、ローレベルとなり、ビット線がハイレベルの場合、ハイレベルとなる。ここで、書き込みを行なう場合、DDCにローレベル信号が記憶され、書き込みを行なわない場合、DDCにハイレベル信号が記憶されている。このため、信号VREGをVddとし、信号REGをVddVthにすると、書き込みを行なわない場合のみTDCのノードN3が強制的にハイレベルとなる。この後、PDCのデータをDDCに移し、TDCの電位をPDCに読み込む。PDCにハイレベル信号がラッチされるのは、書き込みを行なわない場合と、メモリセルにデータ2を書き込み、セルの閾値電圧がベリファイ電圧であるc’に達した場合だけである。PDCにローレベルがラッチされる場合は、セルの閾値電圧がc’に達しない場合と、メモリセルにデータ1、3を書き込んでいる場合である。ベリファイd’S27このプログラムベリファイ動作では、選択されているワード線にベリファイ電圧d’を供給する。この状態において、先ず、選択されているブロック内の非選択ワード線及びセレクト線SG1にVreadを供給し、信号BLCLAMPを1VVth、BLPREをVddVthとしてトランジスタ61t、61uをオンとしてビット線をプリチャージする。次に、セルのソース側のセレクト線SG2をハイレベルにする。閾値電圧が電位d’より高いセルはオフするため、ビット線はハイレベルのままである。また、閾値電圧が電位d’より低いセルはオンするため、ビット線はVssとなる。このビット線放電中、TDCのノードN3をVssとし、信号REGハイレベルとし、トランジスタ61qをオンとしてDDCのデータをTDCに移す。次に、信号DTGをハイレベルとし、トランジスタ61sをオンさせPDCのデータをDDCに移す。この後、TDCのデータをPDCに移す。次に、信号BLPREをVddVthとしてトランジスタ61uをオンさせ、TDCのノードN3をVddにプリチャージする。この後、信号BLCLAMPを0.9VVthとしてトランジスタ61tをオンとする。TDCのノードN3はビット線がローレベルの場合ローレベルとなり、ビット線がハイレベルの場合ハイレベルとなる。ここで、書き込みを行なう場合、DDCにローレベルが記憶され、書き込みを行なわない場合、DDCにハイレベルが記憶されている。このため、信号VREGをVddとし、信号REGをハイレベルとしてトランジスタ61qをオンとする。すると、書き込みを行なわない場合のみTDCのノードN3が強制的にハイレベルとなる。この動作の後、PDCのデータをDDCに移し、TDCの電位をPDCに読み込む。PDCにハイレベルがラッチされるのは、書き込みを行なわない場合と、メモリセルにデータ3を書き込んでいて、セルの閾値電圧がベリファイ電圧d’に達した場合だけである。PDCにローレベルがラッチされる場合は、セルの閾値電圧が電位d’に達しない場合とメモリセルのデータ1、2に書き込んでいる場合である。PDCがローレベルの場合は再び書き込み動作を行ない全てのデータ記憶回路のPDCのデータがハイレベルになるまでこのプログラム動作とベリファイ動作を繰り返すS28。上記プログラムベリファイにおいて、1回のプログラムの後、3つのベリファイを行なっていた。しかし、初期のプログラムループでは、閾値電圧が上がらない。このため、メモリセルデータ3のベリファイ、若しくはメモリセルデータ3のベリファイ及びメモリセルデータ2のベリファイを省略することもできる。また、終了近くのプログラムループでは、メモリセルデータ1への書き込み、若しくはメモリセルデータ2及びメモリセルデータ1の書き込みは終了している。このため、これらのベリファイ動作は省略することもできる。メモリセルデータ1のベリファイが不用になると、SDCで記憶しているデータを保持する必要がなくなる。このため、次のデータを書き込みのためのデータを外部より読み込んでおくことも可能である。消去動作消去動作は、図3の破線で示すブロック単位に実行される。また、各データ記憶回路10に接続されている2本のビット線BLie、BLioについて同時に実行する。消去後、セルの閾値は、図9cに示すように、メモリセルのデータ0となる。RLSB、REASB方法の場合、消去セルの閾値電圧を浅くする必要がある。したがって、消去動作後、ブロック内の全ワード線を選択して、プログラム及びプログラムベリファイリードを行ない、図9cに示すように、ベリファイレベルzまで書き込み動作を行なう。この時、プログラム及びプログラムベリファイリード動作は、全ワード線を選択状態とし、ベリファイ時の選択ワード線の電位をzVfix例えば0Vとし、他は、通常のプログラム及びプログラムベリファイリードと同じ動作により実行する。このようにして、消去後の閾値電圧を若干浅く設定する。上記実施形態によれば、0Vより低い負電圧側に、データ0を含む複数の閾値電圧を設定している。すなわち、データ01を負電圧側に設定している。このため、読み出し電圧Vreadの範囲内に、データ23の2つのデータを設定すればよい。したがって、従来と同様の読み出し電圧Vreadの範囲に設定するデータの数を削減することができるため、各データの閾値電圧分布を広くすることができる。よって、プログラム、ベリファイ回数を削減することができ、書き込み速度を高速化することが可能である。また、書き込み時には、前述したように、選択セルのワード線に書き込み電圧Vpgmが供給され、プログラムベリファイ時に、書き込み電圧Vpgmを少しずつ増加して選択セルの閾値電圧が所定の閾値電圧になるまで繰り返し書き込まれる。図1bに示すように、本実施形態の場合、ベリファイレベルVC,VDを図1aに示す従来に比べて若干低くすることができる。このため、書き込み電圧Vpgmを低くすることが可能であり、周辺回路の耐圧を低くすることができるとともに、書き込み電圧Vpgmを発生するポンプ回路を小型化できる利点を有している。尚、上記実施形態では、2ビット、4値の場合について説明した。しかし、これに限定されるものではなく、3ビット、8値、4ビット、16値以上の場合にも上記実施形態を適用することが可能である。このような多値データを記憶する場合において、例えば8値の場合であれば4値、16値の場合であれば8値のデータを負側に設定すればよい。また、上記実施形態において、多値データとしての複数の閾値電圧分布の中央部を0Vに設定した。しかし、これに限定されるものではなく、図15aに示すように、例えば多値データの中央部を中性閾値電圧浮遊ゲート内に電子が存在しない状態における閾値電圧に設定してもよい。さらに、図15bcは、各閾値電圧と中性閾値電圧との差分B、C、Dと、必要なデータリテンションとの関係を示している。図15bcに示すように、中性閾値電圧から離れるに従って、必要なデータリテンションのマージン、つまり、図1abに示すベリファイレベルVB、VC、VDと読み出しレベルRB、RC、RDの差分VB-RB、VC-RC、VD-RDを大きく設定する必要がある。図15bに示す従来の場合、中性閾値電圧との差分Bについて、VB-RBは0.1V、差分Cについて、VC-RCは0.2V、差分Dについて、VD-RDは0.3Vであり、差分の合計は0.6Vである。このため、従来は0.6Vのマージンを設定する必要がある。これに対して、図15cに示す本実施形態の場合、差分Bについて、VB-RBは0.2V、差分Cについて、VC-RCは0.1V、差分DについてVD-RDは0.2Vであり、差分の合計は0.5Vである。このため、0.5Vのマージンを設定すればよい。このように、トータルのマージンを少なくすることができるため、Vreadの範囲内において、より多くのデータを記憶することが可能となる。その他、本発明の要旨を変えない範囲において、種々変形実施可能なことは勿論である。"