(57)【要約】【課題】動作信頼性を向上できる半導体記憶装置を提供する。【解決手段】半導体記憶装置は、第１メモリセルと、第２メモリセルと、第１メモリセルに接続された第１ワード線と、第２メモリセルに接続された第２ワード線と、を具備し、第１ワード線に第１プログラム電圧を印加し、第１プログラム電圧の印加の後、第２ワード線に、第１プログラム電圧よりも小さい第２プログラム電圧を印加し、第２プログラム電圧の印加の後、第１ワード線に第１ベリファイ電圧を印加し、第１ベリファイ電圧の印加の後、第２ワード線に、第１ベリファイ電圧よりも小さい第２ベリファイ電圧を印加する。【選択図】図１７
2018055736.tif 000002
【特許請求の範囲】
【請求項１】
第１メモリセルと、
第２メモリセルと、
前記第１メモリセルに接続された第１ワード線と、
前記第２メモリセルに接続された第２ワード線と、
を具備し、
前記第１ワード線に第１プログラム電圧を印加し、前記第１プログラム電圧の印加の後、前記第２ワード線に、前記第１プログラム電圧よりも小さい第２プログラム電圧を印加し、
前記第２プログラム電圧の印加の後、前記第１ワード線に第１ベリファイ電圧を印加し、
前記第１ベリファイ電圧の印加の後、前記第２ワード線に、前記第１ベリファイ電圧よりも小さい第２ベリファイ電圧を印加する、半導体記憶装置。
【請求項２】
第１メモリセルと、
第２メモリセルと、
前記第１メモリセルに接続された第１ワード線と、
前記第２メモリセルに接続された第２ワード線と、
を具備し、
前記第２ワード線に第１プログラム電圧を印加し、前記第１プログラム電圧の印加の後、前記第１ワード線に、前記第１プログラム電圧よりも大きい第２プログラム電圧を印加し、
前記第２プログラム電圧の印加の後、前記第２ワード線に第１ベリファイ電圧を印加し、
前記第１ベリファイ電圧の印加の後、前記第１ワード線に、前記第１ベリファイ電圧よりも大きい第２ベリファイ電圧を印加する、半導体記憶装置。
【請求項３】
前記第１ワード線及び前記第２ワード線は同一のワード線である請求項１または２に記載の半導体記憶装置。
【請求項４】
前記第１ワード線及び前記第２ワード線は互いに異なるワード線である請求項１または２に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、半導体記憶装置に関する。
【背景技術】
【０００２】
メモリセルが三次元に配列されたＮＡＮＤ型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０‐１２９１０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
動作信頼性を向上できる半導体記憶装置を提供する。
【課題を解決するための手段】
【０００５】
実施形態の半導体記憶装置は、第１メモリセルと、第２メモリセルと、第１メモリセルに接続された第１ワード線と、第２メモリセルに接続された第２ワード線と、を具備し、第１ワード線に第１プログラム電圧を印加し、第１プログラム電圧の印加の後、第２ワード線に、第１プログラム電圧よりも小さい第２プログラム電圧を印加し、第２プログラム電圧の印加の後、第１ワード線に第１ベリファイ電圧を印加し、第１ベリファイ電圧の印加の後、第２ワード線に、第１ベリファイ電圧よりも小さい第２ベリファイ電圧を印加する。
【図面の簡単な説明】
【０００６】
【図１】図１は、メモリシステムのブロック図である。
【図２】図２は、ＮＡＮＤ型フラッシュメモリのブロック図である。
【図３】図３は、メモリセルアレイの回路図である。
【図４】図４は、メモリセルアレイの断面図である。
【図５】図５は、センスアンプユニットの概要を示すブロック図である。
【図６】図６は、センスアンプの回路図である。
【図７】図７は、メモリセルトランジスタの取り得る閾値分布を示す図である。
【図８】図８は、メモリセルトランジスタの取り得る閾値分布を示す図である。
【図９】図９は、書込み動作時におけるワード線に印加される電圧と、メモリセルトランジスタの閾値電圧と、の関係を示した図である。
【図１０】図１０は、書込み動作時におけるメモリセルトランジスタの状態を示す概要図である。
【図１１】図１１は、書込み動作時におけるメモリセルトランジスタの状態を示す概要図である。
【図１２】図１２は、書込み動作時におけるメモリセルトランジスタの状態を示す概要図である。
【図１３】図１３は、書込み動作時におけるメモリセルトランジスタの状態を示す概要図である。
【図１４】図１４は、書込み動作時におけるワード線に印加される電圧と、メモリセルトランジスタの閾値電圧と、の関係を示した図である。
【図１５】図１５は、プログラム動作時において各配線に印加される電圧を示す波形図である。
【図１６】図１６は、プログラムベリファイ動作時において各配線に印加される電圧を示す波形図である。
【図１７】図１７は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図１８】図１８は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１９】図１９は、書き込み動作が実行されるメモリセルトランジスタを模式的に示した図である。
【図２０】図２０は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図２１】図２１は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図２２】図２２は、センスアンプユニットの概要を示すブロック図である。
【図２３】図２３は、センスアンプの回路図である。
【図２４】図２４は、信号ＳＴＢの概念図である。
【図２５】図２５は、ＳＴＢ生成回路の回路図である。
【図２６】図２６は、読み出し動作時におけるワード線電圧の変化と信号ＳＴＢのタイミングチャートである。
【図２７】図２７は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図２８】図２８は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図２９】図２９は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図３０】図３０は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図３１】図３１は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図３２】図３２は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図３３】図３３は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図３４】図３４は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図３５】図３５は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図３６】図３６は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図３７】図３７は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図３８】図３８は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図３９】図３９は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図４０】図４０は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図４１】図４１は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図４２】図４２は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図４３】図４３は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図４４】図４４は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図４５】図４５は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図４６】図４６は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図４７】図４７は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図４８】図４８は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図４９】図４９は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図５０】図５０は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図５１】図５１は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図５２】図５２は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図５３】図５３は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図５４】図５４は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図５５】図５５は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図５６】図５６は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図５７】図５７は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図５８】図５８は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図５９】図５９は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図６０】図６０は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図６１】図６１は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図６２】図６２は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図６３】図６３は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図６４】図６４は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図６５】図６５は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図６６】図６６は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図６７】図６７は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図６８】図６８は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図６９】図６９は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図７０】図７０は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図７１】図７１は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図７２】図７２は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図７３】図７３は、メモリセルトランジスタの取り得る閾値分布を示す図である。
【図７４】図７４は、メモリセルトランジスタの取り得る閾値分布を示す図である。
【図７５】図７５は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図７６】図７６は、書き込み動作が実行されるメモリセルトランジスタを模式的に示した図である。
【図７７】図７７は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図７８】図７８は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図７９】図７９は、読み出し動作時におけるワード線電圧の変化と信号ＳＴＢのタイミングチャートである。
【図８０】図８０は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図８１】図８１は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図８２】図８２は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図８３】図８３は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図８４】図８４は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図８５】図８５は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図８６】図８６は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図８７】図８７は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図８８】図８８は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図８９】図８９は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図９０】図９０は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図９１】図９１は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図９２】図９２は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図９３】図９３は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図９４】図９４は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図９５】図９５は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図９６】図９６は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図９７】図９７は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図９８】図９８は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図９９】図９９は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図１００】図１００は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１０１】図１０１は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図１０２】図１０２は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１０３】図１０３は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図１０４】図１０４は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１０５】図１０５は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図１０６】図１０６は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１０７】図１０７は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図１０８】図１０８は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図１０９】図１０９は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１１０】図１１０は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図１１１】図１１１は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図１１２】図１１２は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１１３】図１１３は、メモリセルトランジスタの取り得る閾値分布を示す図である。
【図１１４】図１１４は、メモリセルトランジスタの取り得る閾値分布を示す図である。
【図１１５】図１１５は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図１１６】図１１６は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１１７】図１１７は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１１８】図１１８は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１１９】図１１９は、書き込み動作が実行されるメモリセルトランジスタを模式的に示した図である。
【図１２０】図１２０は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図１２１】図１２１は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１２２】図１２２は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１２３】図１２３は、読み出し動作時におけるワード線電圧の変化と信号ＳＴＢのタイミングチャートである。
【図１２４】図１２４は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図１２５】図１２５は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１２６】図１２６は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図１２７】図１２７は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１２８】図１２８は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１２９】図１２９は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図１３０】図１３０は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１３１】図１３１は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１３２】図１３２は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１３３】図１３３は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１３４】図１３４は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１３５】図１３５は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１３６】図１３６は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１３７】図１３７は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１３８】図１３８は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１３９】図１３９は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１４０】図１４０は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１４１】図１４１は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１４２】図１４２は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１４３】図１４３は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１４４】図１４４は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図１４５】図１４５は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１４６】図１４６は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１４７】図１４７は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１４８】図１４８は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図１４９】図１４９は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１５０】図１５０は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１５１】図１５１は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図１５２】図１５２は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１５３】図１５３は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図１５４】図１５４は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１５５】図１５５は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１５６】図１５６は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１５７】図１５７は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図１５８】図１５８は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１５９】図１５９は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図１６０】図１６０は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１６１】図１６１は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図１６２】図１６２は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１６３】図１６３は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図１６４】図１６４は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１６５】図１６５は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１６６】図１６６は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１６７】図１６７は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図１６８】図１６８は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１６９】図１６９は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図１７０】図１７０は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１７１】図１７１は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１７２】図１７２は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１７３】図１７３は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１７４】図１７４は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図１７５】図１７５は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１７６】図１７６は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図１７７】図１７７は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１７８】図１７８は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図１７９】図１７９は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１８０】図１８０は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１８１】図１８１は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１８２】図１８２は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図１８３】図１８３は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１８４】図１８４は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図１８５】図１８５は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１８６】図１８６は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１８７】図１８７は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１８８】図１８８は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１８９】図１８９は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図１９０】図１９０は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１９１】図１９１は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図１９２】図１９２は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１９３】図１９３は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１９４】図１９４は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１９５】図１９５は、書き込み動作時のワード線の波形を模式的に示した波形図である。
【図１９６】図１９６は、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法を示すフローチャートである。
【図１９７】図１９７は、書き込み動作時においてワード線及びビット線に印加される電圧の一例を示す波形図である。
【図１９８】図１９８は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図１９９】図１９９は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【図２００】図２００は、プログラム動作時にワード線に印加されるプログラムパルスのループ数と、プログラムベリファイ時のベリファイレベルと、を示す表である。
【発明を実施するための形態】
【０００７】
以下、実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。以下では半導体記憶装置として、メモリセルトランジスタが半導体基板の上方に積層された三次元積層型ＮＡＮＤ型フラッシュメモリを例に挙げて説明する。
【０００８】
＜１＞第１実施形態    
第１実施形態に係る半導体記憶装置について説明する。
【０００９】
＜１−１＞構成
＜１−１−１＞メモリシステムの構成について  
まず、本実施形態に係る半導体記憶装置を含むメモリシステムの構成について、図１を用いて説明する。
【００１０】
図１に示すようにメモリシステム１は、ＮＡＮＤ型フラッシュメモリ（NAND flash memory）１００及びメモリコントローラ２００を備えている。メモリコントローラ２００とＮＡＮＤ型フラッシュメモリ１００は、例えばそれらの組み合わせにより一つの半導体装置を構成しても良い。その例としてはＳＤＴＭカードのようなメモリカードや、ＳＳＤ（solid state drive）等が挙げられる。なお、メモリシステム１は、ホストデバイス３００を更に備える構成であっても良い。
【００１１】
ＮＡＮＤ型フラッシュメモリ１００は、複数のメモリセルトランジスタを備え、データを不揮発に記憶する。ＮＡＮＤ型フラッシュメモリ１００の構成の詳細は後述する。
【００１２】
メモリコントローラ２００は、ホストデバイス３００からの命令に応答して、ＮＡＮＤ型フラッシュメモリ１００に対して読み出し、書き込み、消去等を命令する。
【００１３】
メモリコントローラ２００は、ホストインターフェイス回路（Host I/F）２０１、内蔵メモリ（ＲＡＭ: Random access memory）２０２、プロセッサ（ＣＰＵ:Central processing unit）２０３、バッファメモリ２０４、ＮＡＮＤインターフェイス回路（NAND I/F）２０５、及びＥＣＣ回路（エラー訂正回路またはＥＣＣ）２０６を備えている。
【００１４】
ホストインターフェイス回路２０１は、コントローラバスを介してホストデバイス３００と接続され、メモリコントローラ２００と、ホストデバイス３００との通信を司る。そして、ホストインターフェイス回路２０１は、ホストデバイス３００から受信した命令及びデータを、それぞれＣＰＵ２０３及びバッファメモリ２０４に転送する。ホストインターフェイス回路２０１は、ＣＰＵ２０３の命令に応答して、バッファメモリ２０４内のデータをホストデバイス３００へ転送する。
【００１５】
ＮＡＮＤインターフェイス回路２０５は、ＮＡＮＤバスを介してＮＡＮＤ型フラッシュメモリ１００と接続される。そして、ＮＡＮＤインターフェイス回路２０５は、ＮＡＮＤ型フラッシュメモリ１００とメモリコントローラ２００の通信を司る。そして、ＮＡＮＤインターフェイス回路２０５は、ＣＰＵ２０３から受信した命令をＮＡＮＤ型フラッシュメモリ１００に転送する。更に、ＮＡＮＤインターフェイス回路２０５は、データの書き込み時にはバッファメモリ２０４内の書き込みデータをＮＡＮＤ型フラッシュメモリ１００へ転送する。更に、ＮＡＮＤインターフェイス回路２０５は、データの読み出し時には、ＮＡＮＤ型フラッシュメモリ１００から読み出されたデータをバッファメモリ２０４へ転送する。
【００１６】
ＮＡＮＤバスは、ＮＡＮＤインターフェイスに従った信号の送受信を実行する。この信号の具体例は、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、ライトイネーブル信号ＷＥｎ、リードイネーブル信号ＲＥｎ、レディ・ビジー信号ＲＢｎ、及び入出力信号Ｉ／Ｏである。
【００１７】
信号ＣＬＥ及びＡＬＥは、ＮＡＮＤ型フラッシュメモリ１００への入力信号Ｉ／Ｏがそれぞれコマンド及びアドレスであることをＮＡＮＤ型フラッシュメモリ１００に通知する信号である。信号ＷＥｎはlowレベルでアサートされ、入力信号Ｉ／ＯをＮＡＮＤ型フラッシュメモリ１００に取り込ませるための信号である。「アサート」とは、信号（または論理）が有効（アクティブ）な状態とされていることを意味し、これに相対する用語として「ネゲート」は信号（または論理が無効（インアクティブ）な状態とされていることを意味する。信号ＲＥｎもlowレベルでアサートされ、ＮＡＮＤ型フラッシュメモリ１００から出力信号Ｉ／Ｏを読み出すための信号である。レディ・ビジー信号ＲＢｎは、ＮＡＮＤ型フラッシュメモリ１００がレディ状態（メモリコントローラ２００からの命令を受信出来る状態）であるか、それともビジー状態（メモリコントローラ２００からの命令を受信出来ない状態）であるかを示す信号であり、lowレベルがビジー状態を示す。入出力信号Ｉ／Ｏは、例えば８ビットの信号である。そして入出力信号Ｉ／Ｏは、ＮＡＮＤ型フラッシュメモリ１００とメモリコントローラ２００との間で送受信されるデータの実体であり、コマンド、アドレス、書き込みデータ、及び読み出しデータ等である。
【００１８】
ＣＰＵ２０３は、メモリコントローラ２００全体の動作を制御する。例えば、ＣＰＵ２０３は、ホストデバイス３００から書き込み命令を受信した際には、ＮＡＮＤインターフェイス回路２０５に基づく書き込み命令を発行する。読み出し及び消去の際も同様である。ＣＰＵ２０３は、ウェアレベリング等、ＮＡＮＤ型フラッシュメモリ１００を管理するための様々な処理を実行する。更にＣＰＵ２０３は、各種の演算を実行する。例えば、データの暗号化処理やランダマイズ処理等を実行する。尚、上述したように、ホストデバイス３００が、メモリシステム１に含まれる場合においても、ＣＰＵ２０３は、メモリシステム１全体の動作を司る。
【００１９】
ＥＣＣ回路２０６は、データの誤り訂正（ＥＣＣ：Error Checking and Correcting）処理を実行する。すなわちＥＣＣ回路２０６は、データの書き込み時には書き込みデータに基づいてパリティを生成する。そして、ＥＣＣ回路２０６は、データの読み出し時には前記パリティからシンドロームを生成して誤りを検出し、誤りを訂正する。なお、ＣＰＵ２０３がＥＣＣ回路２０６の機能を有していても良い。
【００２０】
内蔵メモリ２０２は、例えばＤＲＡＭ等の半導体メモリであり、ＣＰＵ２０３の作業領域として使用される。そして内蔵メモリ２０２は、ＮＡＮＤ型フラッシュメモリ１００を管理するためのファームウェアや、各種の管理テーブル等を記憶する。
【００２１】
＜１−１−２＞ＮＡＮＤ型フラッシュメモリの構成について  
次に、図２を用いてＮＡＮＤ型フラッシュメモリ１００の構成について説明する。
【００２２】
図２に示すようにＮＡＮＤ型フラッシュメモリ１００は、周辺回路１１０及びコア部１２０を備えている。
【００２３】
コア部１２０は、メモリセルアレイ１３０、センスアンプユニット１４０、及びロウデコーダ（R/D）１５０を備えている。
【００２４】
メモリセルアレイ１３０は、複数の不揮発性メモリセルトランジスタを備えており、複数の不揮発性メモリセルトランジスタのそれぞれがワード線及びビット線に関連付けられている。そして、メモリセルアレイ１３０は、複数の不揮発性メモリセルトランジスタの集合である複数（図２の例では３個）のブロックＢＬＫ（ＢＬＫ０、ＢＬＫ１、ＢＬＫ２、…）を備えている。
【００２５】
データの消去は、ブロックＢＬＫ単位、またはブロックＢＬＫよりも小さい単位で実行することが出来る。消去方法に関しては、例えば“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE”という２０１１年９月１８日に出願された米国特許出願１３／２３５，３８９号に記載されている。また、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE”という２０１０年１月２７日に出願された米国特許出願１２／６９４，６９０号に記載されている。更に、“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE AND DATA ERASE METHOD THEREOF”という２０１２年５月３０日に出願された米国特許出願１３／４８３，６１０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００２６】
ブロックＢＬＫの各々は、メモリセルトランジスタが直列接続されたＮＡＮＤストリング１３１の集合である複数（図２の例では４個）のストリングユニットＳＵ（ＳＵ０、ＳＵ１、ＳＵ２、ＳＵ３）を備えている。もちろん、メモリセルアレイ１３０内のブロック数や、１ブロックＢＬＫ内のストリングユニット数は任意である。メモリセルアレイ１３０内のブロックの物理的な位置を示すものをブロックアドレスと呼ぶ。
【００２７】
ロウデコーダ１５０は、ブロックアドレスに対応するブロックを選択状態にし、選択されたブロックのワード線を所望の電圧状態にする。
【００２８】
センスアンプユニット１４０は、データの読み出し時には、メモリセルトランジスタからビット線に読み出されたデータをセンスする。
【００２９】
周辺回路１１０は、シーケンサ１１１、レジスタ１１２、及びドライバ１１３を備える。
【００３０】
シーケンサ１１１は、ＮＡＮＤ型フラッシュメモリ１００全体の動作を制御する。
【００３１】
レジスタ１１２は、種々の信号を記憶する。例えば、レジスタ１１２は、データの書き込みや消去動作のステータスを記憶し、これによってコントローラに動作が正常に完了したか否かを通知する。なお、レジスタ１１２は、種々のテーブルを記憶することも可能である。
【００３２】
ドライバ１１３は、データの書き込み、読み出し、及び消去に必要な電圧を、ロウデコーダ１５０、センスアンプユニット１４０、及び図示せぬソース線ドライバに供給する。
【００３３】
＜１−１−３＞メモリセルアレイ
図３を用いてメモリセルアレイの構成について説明する。図３では、あるブロックＢＬＫを示している。図３に示すように、本実施形態のブロックＢＬＫは例えば４つのストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を含む。また各々のストリングユニットＳＵは、複数のＮＡＮＤストリング１３１を含む。
【００３４】
ＮＡＮＤストリング１３１の各々は、選択トランジスタＳＴ１、ＳＴ２及び複数（図３では一例として４８個）のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ４７）を含んでいる。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。そして複数のメモリセルトランジスタＭＴ（メモリセルトランジスタ群）は、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に直列接続されている。もちろん、メモリセルトランジスタの数は任意である。
【００３５】
ストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ１のゲートは、それぞれセレクトゲート線ＳＧＤ０〜ＳＧＤ３に接続される。これに対してストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ２のゲートは、例えばセレクトゲート線ＳＧＳに接続される。もちろん、ストリングユニット毎に異なるセレクトゲート線ＳＧＳ０〜ＳＧＳ３に接続されても良い。また、同一のブロックＢＬＫ内にあるメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ４７）の制御ゲートは、それぞれワード線ＷＬ（ＷＬ０〜ＷＬ４７）に接続される。
【００３６】
また、メモリセルアレイ１３０内において同一列にあるＮＡＮＤストリング１３１の選択トランジスタＳＴ１のドレインは、ビット線ＢＬ（ＢＬ０〜ＢＬ（Ｌ−１）：Ｌは２以上の自然数）に接続される。すなわちビット線ＢＬは、複数のブロックＢＬＫのＮＡＮＤストリング１３１に接続される。更に、複数の選択トランジスタＳＴ２のソースは、ソース線ＳＬに接続されている。
【００３７】
図４を用いて、ブロックＢＬＫの一部領域の断面について説明する。図４は、ブロックＢＬＫの一部領域の断面図である。図示するように、ｐ型ウェル領域２０上に、複数のＮＡＮＤストリング１３１が形成されている。すなわち、ウェル領域２０上には、セレクトゲート線ＳＧＳとして機能する例えば４層の配線層２７、ワード線ＷＬ０〜ＷＬ４７として機能する４８層の配線層２３、及びセレクトゲート線ＳＧＤとして機能する例えば４層の配線層２５が、順次積層されている。積層された配線層間には、図示せぬ絶縁膜が形成されている。
【００３８】
そして、これらの配線層２５、２３、２７を貫通してウェル領域２０に達するピラー状の半導体３１が形成されている。半導体３１の側面には、ゲート絶縁膜３０、電荷蓄積層（絶縁膜）２９、及びブロック絶縁膜２８が順次形成され、これらによってメモリセルトランジスタＭＴ、並びに選択トランジスタＳＴ１及びＳＴ２が形成されている。半導体３１は、ＮＡＮＤストリング１３１の電流経路として機能し、各トランジスタのチャネルが形成される領域となる。そして半導体３１の上端は、ビット線ＢＬとして機能する金属配線層３２に接続される。
【００３９】
ウェル領域２０の表面領域内には、ｎ＋型不純物拡散層３３が形成されている。拡散層３３上にはコンタクトプラグ３５が形成され、コンタクトプラグ３５は、ソース線ＳＬとして機能する金属配線層３６に接続される。更に、ウェル領域２０の表面領域内には、ｐ＋型不純物拡散層３４が形成されている。拡散層３４上にはコンタクトプラグ３７が形成され、コンタクトプラグ３７は、ウェル配線ＣＰＷＥＬＬとして機能する金属配線層３８に接続される。ウェル配線ＣＰＷＥＬＬは、ウェル領域２０を介して半導体３１に電位を印加するための配線である。
【００４０】
以上の構成が、図４を記載した紙面の奥行き方向に複数配列されており、奥行き方向に並ぶ複数のＮＡＮＤストリング１３１の集合によってストリングユニットＳＵが形成される。
【００４１】
更に、メモリセルアレイ１３０の構成についてはその他の構成であっても良い。すなわちメモリセルアレイ１３０の構成については、例えば、“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号に記載されている。また、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００４２】
＜１−１−４＞センスアンプユニット
＜１−１−４−１＞センスアンプユニットの概要
次に、センスアンプユニット１４０の構成について説明する。本例で説明するセンスアンプユニット１４０として、以下ではビット線に流れる電流をセンスすることによってデータを判別する場合を例に挙げるが、電圧をセンスする構成であっても良い。
【００４３】
図５に示すように、本例に係るメモリセルアレイ１３０は４８本のビット線ＢＬ０〜ＢＬ４７を含む。センスアンプユニット１４０は、ビット線ＢＬ毎に設けられたセンスアンプ１４を備えている。図５では、各ビット線ＢＬ０〜ＢＬ４７に対応するセンスアンプ１４を、それぞれＳＡ０〜ＳＡ４７と表記する。
【００４４】
＜１−１−４−２＞センスアンプ
図６を用いてセンスアンプ１４について説明する。図６に示すようにセンスアンプ１４は、接続部１５、センス部１６、及びラッチ回路１７を備えている。なお、個々のメモリセルトランジスタが２ビット以上のデータを保持する際等には、ラッチ回路は２つ以上設けられる。
【００４５】
接続部１５は、対応するビット線ＢＬとセンス部１６とを接続し、ビット線ＢＬの電位を制御する。具体的には、接続部１５は、ｎチャネルＭＯＳトランジスタ１５ａ及び１５ｂを備えている。トランジスタ１５ａは、ゲートに信号ＢＬＳが印加され、ソースが、対応するビット線ＢＬに接続される。トランジスタ１５ｂは、ソースがトランジスタ１５ａのドレインに接続され、ゲートに信号ＢＬＣが印加され、ドレインがノードＳＣＯＭに接続される。トランジスタ１５ｂは、対応するビット線ＢＬを、信号ＢＬＣに応じた電位にクランプするためのものである。
【００４６】
センス部１６は、ビット線ＢＬに読み出されたデータをセンスする。センス部１６は、ｎチャネルＭＯＳトランジスタ１６ａ〜１６ｇ、ｐチャネルＭＯＳトランジスタ１６ｈ、及び容量素子１６ｉを備えている。
【００４７】
トランジスタ１６ｈは、ゲートにノードＩＮＶ＿Ｓが接続され、ドレインがノードＳＳＲＣに接続され、ソースに電源電圧ＶＤＤが与えられる。トランジスタ１６ｈは、ビット線ＢＬ及び容量素子１６ｉを充電するためのものである。トランジスタ１６ａは、ゲートに信号ＢＬＸが与えられ、ドレインがノードＳＳＲＣに接続され、ソースがノードＳＣＯＭに接続される。トランジスタ１６ａは、ビット線ＢＬをプリチャージするためのものである。トランジスタ１６ｃは、ゲートに信号ＨＬＬが与えられ、ドレインがノードＳＳＲＣに接続され、ソースがノードＳＥＮに接続される。トランジスタ１６ｃは、容量素子１６ｉを充電するためのものである。トランジスタ１６ｂは、ゲートに信号ＸＸＬが与えられ、ドレインがノードＳＥＮに接続され、ソースがノードＳＣＯＭに接続される。トランジスタ１６ｂは、データセンスの際にノードＳＥＮをディスチャージするためのものである。トランジスタ１６ｇは、ゲートがノードＩＮＶ＿Ｓに接続され、ドレインがノードＳＣＯＭに接続され、ソースがノードＳＲＣＧＮＤに接続される。トランジスタ１６ｇは、ビット線ＢＬを一定電位に固定するためのものである。
【００４８】
容量素子１６ｉは、ビット線ＢＬのプリチャージの際に充電され、一方電極がノードＳＥＮに接続され、他方電極には信号ＣＬＫが与えられる。
【００４９】
トランジスタ１６ｄは、ゲートに信号ＢＬＱが与えられ、ソースがノードＳＥＮに接続され、ドレインがノードＬＢＵＳに接続される。ノードＬＢＵＳは、センス部１６とラッチ回路１７とを接続するための信号経路である。トランジスタ１６ｅは、ゲートに信号ＳＴＢが与えられ、ドレインがノードＬＢＵＳに接続される。トランジスタ１６ｅは、データのセンスタイミングを決定すると共に、読み出しデータをラッチ回路１７に記憶するためのものである。
【００５０】
トランジスタ１６ｆは、ゲートがノードＳＥＮに接続され、ドレインがトランジスタ１６ｅのソースに接続され、ソースが接地される。トランジスタ１６ｆは、読み出しデータが“０”であるか“１”であるかをセンスするためのものである。
【００５１】
ノードＩＮＶ＿Ｓは、ラッチ回路１７内のノードであり、ラッチ回路１７の記憶データに応じたレベルを取り得る。例えば、データの読み出し時に選択メモリセルがオン状態となり、ノードＳＥＮが十分に低下すれば、ノードＩＮＶ＿Ｓは“Ｈ”レベルとなる。他方、選択メモリセルがオフ状態であり、ノードＳＥＮが一定電位を保持していれば、ノードＩＮＶ＿Ｓは“Ｌ”レベルとなる。
【００５２】
以上の構成において、信号ＳＴＢがアサートされるタイミングで、トランジスタ１６ｆがノードＳＥＮの電位に基づいて読み出しデータをセンスし、トランジスタ１６ｅは読み出しデータをラッチ回路１７に転送する。信号ＳＴＢを含め、各種の制御信号は、例えばシーケンサ１１１によって与えられる。
【００５３】
なお、センスアンプ１４としては種々の構成が適用出来、例えば“THRESHOLD DETECTING METHOD AND VERIFY METHOD OF MEMORY CELL”と表題され、２０１１年３月２１日に出願された米国特許出願１３／０５２，１４８に記載された構成が適用出来る。この特許出願の内容は、その全体が本願明細書において参照により援用されている。
【００５４】
＜１−１−５＞メモリセルトランジスタの閾値分布
＜１−１−５−１＞メモリセルトランジスタの閾値分布及びデータの関係
図７を用いて、メモリセルトランジスタの閾値分布及びデータの関係について説明する。
【００５５】
図７に示すように、各々のメモリセルトランジスタＭＴは、その閾値に応じて例えば２ビットのデータを保持可能である。この２ビットデータは、閾値の低いものから順番に、例えば“１１”、“０１”、“００”、“１０”である。
【００５６】
“１１”データを保持するメモリセルトランジスタＭＴの閾値は、ある一定の分布内にあり、この“１１”データに対応する閾値分布を“Ｅｒ”レベルと呼ぶ。Ｅｒレベルは、電荷蓄積層内の電荷が引き抜かれて、データが消去された状態における閾値分布であり、正または負の値である（例えば電圧ＶＡ未満）。
【００５７】
“０１”、“００”、及び“１０”も、電荷蓄積層内に電荷が注入されて、データが書き込まれた状態の閾値分布である。
【００５８】
“０１”データを保持するメモリセルトランジスタＭＴの閾値は“Ａ”レベルの分布内にあり、Ｅｒレベル内の閾値よりも高い（例えば電圧ＶＡ以上、ＶＢ未満であり、ＶＡ＜ＶＢ）。
【００５９】
“００”データを保持するメモリセルトランジスタＭＴの閾値は“Ｂ”レベルの分布内にあり、Ａレベル内の閾値よりも高い（例えば電圧ＶＢ以上、ＶＣ未満であり、ＶＢ＜ＶＣ）。
【００６０】
“１０”データを保持するメモリセルトランジスタＭＴの閾値は“Ｃ”レベルの分布内にあり、Ｂレベル内の閾値よりも高い（例えば電圧ＶＣ以上）。
【００６１】
もちろん、２ビットデータと閾値との関係はこの関係に限定されるものでは無く、例えば“１１”データが“Ｃ”レベルに対応するような場合であっても良く、両者の関係については適宜選択出来る。
【００６２】
＜１―１―５−２＞書込み動作時のメモリセルトランジスタの閾値分布の変化
次に図８を用いて、書込み動作時のメモリセルトランジスタの閾値分布の変化について説明する。
【００６３】
書込み動作が行われる前において、予めブロック消去によってブロック内の全てのメモリセルＭＣの閾値は、に示す消去状態（“Ｅｒ”レベル）の閾値分布となる（第１状態）。
【００６４】
書込み動作が行われると、消去状態（“Ｅｒ”レベル）の閾値分布が、第２状態のような閾値分布に変化していく。第２状態の時点では、Ｅｒレベル、Ａレベル、Ｂレベル、およびＣレベルの閾値分布はそれぞれ、隣り合う閾値分布と重なりあった分布となっており、まだ書込み動作は完了しない。そして、更に書込み動作が行われると、第２状態の閾値分布が、第３状態のように、４値の閾値分布に変化する。以上のように、第３状態のような４値の閾値分布になるまで、書込み動作を繰り返す必要がある。
【００６５】
なお、図８では、書き込み動作時に、第１状態から第２状態に遷移させ、更に第２状態から第３状態に遷移させるように説明したが、これに限らない。具体的には、第１状態から第３状態に遷移させるような書き込み方法でも良い。
【００６６】
＜１−２＞動作
＜１−２−１＞比較例に係る書込み動作
本実施形態に係る書込み動作の理解を容易にするために、図９を用いて、比較例に係る書込み動作の概要について説明する。図９を用いて、ワード線ＷＬに印加される電圧と、書込み対象のメモリセルトランジスタ（選択メモリセルトランジスタ）の閾値（図中Ｖｔｈ）との関係を説明する。
【００６７】
ところで書込み動作は、プログラム動作とプログラムベリファイ動作とを含んでいる。プログラム動作とは、選択メモリセルトランジスタの電荷蓄積層に電子を注入する動作である。プログラムベリファイ動作とは、プログラム動作が完了したか否かを確認する動作である。
【００６８】
以下では、比較例に係るプログラム動作とプログラムベリファイ動作とについて説明する。
【００６９】
[時刻Ｔ０]〜[時刻Ｔ１]
まずプログラム動作が行われる。時刻Ｔ０から時刻Ｔ１にかけて、シーケンサ１１１は、ワード線ＷＬ（Ｓｅｌｅｃｔ及びＵｎ  ｓｅｌｅｃｔ）を電圧ＶＰＡＳＳになるまで昇圧する。電圧ＶＰＡＳＳは保持データに関わらずメモリセルトランジスタをオン状態にする電圧である。
【００７０】
[時刻Ｔ１]〜[時刻Ｔ２]
時刻Ｔ１から時刻Ｔ２にかけて、シーケンサ１１１は、選択メモリセルトランジスタのゲートに接続される選択ワード線ＷＬ（Ｓｅｌｅｃｔ）を電圧ＶＰＧＭ（ＶＰＧＭ＞ＶＰＡＳＳ）になるまで昇圧する。電圧ＶＰＧＭは、ＦＮトンネリングによりの電荷蓄積層２９に電子を注入可能な高電圧である。
【００７１】
図１０に示すように、選択ワード線ＷＬに電圧ＶＰＧＭが印加されると、半導体３１を介して選択メモリセルトランジスタＭＴ（Ｓｅｌｅｃｔ）の電荷蓄積層２９及びゲート絶縁膜３０に電子が注入される。選択メモリセルトランジスタの閾値は、電荷蓄積層２９及びゲート絶縁膜３０に蓄積された電子の数によって変動する。つまり電子の注入に伴い、選択メモリセルトランジスタの閾値が上昇する（図９の“Ｖｔｈ”参照）。
【００７２】
[時刻Ｔ２]〜[時刻Ｔ３]
図９に戻って、プログラム動作の続きを説明する。時刻Ｔ２から時刻Ｔ３において、シーケンサ１１１は、ワード線ＷＬ（Ｓｅｌｅｃｔ及びＵｎ  ｓｅｌｅｃｔ）を電圧ＶＳＳまで降圧する。これによりプログラム動作が終了する。
【００７３】
ゲート絶縁膜３０の近傍の電荷蓄積層２９やゲート絶縁膜３０に蓄積された電子は、不安定な状態で蓄積されていることがある。そのため選択ワード線ＷＬへの電圧ＶＰＧＭの印加が終了した時点から、選択メモリセルトランジスタＭＴ（Ｓｅｌｅｃｔ）の電荷蓄積層２９及びゲート絶縁膜３０に蓄積された電子が半導体３１に抜けて行くことがある。この場合、選択メモリセルトランジスタの閾値が下がる。
【００７４】
[時刻Ｔ４]〜[時刻Ｔ５]
プログラム動作に続いて、プログラムベリファイ動作が行われる。具体的には時刻Ｔ４〜時刻Ｔ５において、シーケンサ１１１は、選択ワード線ＷＬをプログラムベリファイ用の電圧ＶＰＶＦＹになるまで昇圧し、非選択ワード線ＷＬ（Ｕｎ  ｓｅｌｅｃｔ）を電圧ＶＲＥＡＤ（ＶＲＥＡＤ＞ＶＰＶＦＹ）になるまで昇圧する。電圧ＶＲＥＡＤは、保持データに関わらずメモリセルトランジスタＭＴをオン状態にする電圧である。
【００７５】
[時刻Ｔ５]〜[時刻Ｔ６]
時刻Ｔ５〜時刻Ｔ６において、シーケンサ１１１は、選択ワード線ＷＬを電圧ＶＰＶＦＹに維持し、非選択ワード線ＷＬを電圧ＶＲＥＡＤに維持する。
【００７６】
[時刻Ｔ６]
時刻Ｔ６において、シーケンサ１１１は、信号ＳＴＢをセンスアンプ１４に供給する。これにより、センスアンプ１４は、選択メモリセルトランジスタのデータを読み出す。この結果、選択ワード線ＷＬに接続された選択メモリセルトランジスタＭＴがオフ状態となれば、ビット線ＢＬにセル電流は流れず、当該ビット線ＢＬはプログラムベリファイにパスする。他方で選択メモリセルトランジスタＭＴがオン状態となれば、ビット線ＢＬにセル電流が流れ、当該ビット線ＢＬはプログラムベリファイにフェイルする。この読み出し時には、選択メモリセルトランジスタＭＴの電荷蓄積層２９及びゲート絶縁膜３０に蓄積された電子の数に基づいて閾値が判定される。
【００７７】
データが読み出される時刻Ｔ６の時点において、図１１に示すように、選択メモリセルトランジスタＭＴの電荷蓄積層２９及びゲート絶縁膜３０に例えば２０個の電子が蓄積されている（図中３０ａ参照）。
【００７８】
図１２に示すように、時刻Ｔ６以降、選択メモリセルトランジスタＭＴの電荷蓄積層２９及びゲート絶縁膜３０に蓄積された電子が半導体３１に抜けて行くことがある。
【００７９】
[時刻Ｔ７]
図９に戻って、プログラムベリファイ動作の続きを説明する。時刻Ｔ７において、シーケンサ１１１は、ワード線ＷＬ（Ｓｅｌｅｃｔ及びＵｎ  ｓｅｌｅｃｔ）を電圧ＶＳＳまで降圧する。これによりプログラムベリファイ動作が終了する。
【００８０】
[時刻Ｔ８]
時刻Ｔ６から期間ｄＴ１経過後の時刻Ｔ８において、電荷蓄積層２９及びゲート絶縁膜３０に蓄積された２０個の電子が９個に減少していることがある（図１３の３０ｂ参照）。その結果、選択メモリセルトランジスタの閾値は電圧ｄＶｔｈ１程低下することがある。
【００８１】
このように、比較例においては、データの読み出し時の閾値と、期間ｄＴ１経過後の閾値と、の間で電圧ｄＶｔｈ１程低の差が出てしまう。そのため、例えばプログラムベリファイ時にパスしていたとしても、データの読み出し動作時においては、データが変わってしまっている可能性がある。
【００８２】
＜１−２−２＞実施形態に係る書込み動作
本実施形態では、上述したような閾値の変動を考慮した書込み動作を提案する。図１４を用いて、本実施形態に係る書込み動作の概要について説明する。
【００８３】
ところで、選択メモリセルトランジスタＭＴからの電子抜けは、時間経過とともに収束していく。そのため、本実施形態では、プログラム動作後、十分に時間が経過してから、プログラムベリファイ動作を実行する。
【００８４】
[時刻Ｔ０]〜[時刻Ｔ３]
上述した時刻Ｔ０〜時刻Ｔ３における動作と同様の動作を実行する。
【００８５】
[時刻Ｔ９]〜[時刻Ｔ１０]
本例では、比較例のように、プログラム動作の直後にプログラムベリファイ動作を行わず、ある程度放置した後、プログラムベリファイ動作を実行する。具体的な放置の方法などに関しては、後述する。
【００８６】
時刻Ｔ９（時刻Ｔ４＜時刻Ｔ９）〜時刻Ｔ１０において、シーケンサ１１１は、上述した時刻Ｔ４〜時刻Ｔ５における動作と同様の動作を実行する。
【００８７】
[時刻Ｔ１０]〜[時刻Ｔ１１]
時刻Ｔ１０〜時刻Ｔ１１において、シーケンサ１１１は、上述した時刻Ｔ５〜時刻Ｔ６における動作と同様の動作を実行する。
【００８８】
[時刻Ｔ１１]
時刻Ｔ１１において、シーケンサ１１１は、信号ＳＴＢをセンスアンプ１４に供給する。これにより、センスアンプ１４は、選択メモリセルトランジスタのデータを読み出す。
【００８９】
[時刻Ｔ１２]
時刻Ｔ１２において、シーケンサ１１１は、ワード線ＷＬを電圧ＶＳＳまで降圧する。これにより、プログラムベリファイ動作が完了する。
【００９０】
[時刻Ｔ１３]
時刻Ｔ１１から期間ｄＴ１経過後の時刻Ｔ１３において、選択メモリセルトランジスタの閾値はｄＶｔｈ２（ｄＶｔｈ２＜ｄＶｔｈ１）程低下する。つまり、本実施例における、データを読み出してから期間ｄＴ１経過後の選択メモリセルトランジスタの閾値の低下は、比較例に比べて抑制されている。
【００９１】
本実施形態では、選択メモリセルトランジスタからの電子抜けが落ち着いた時刻Ｔ１１において、データを読み出している。そのため、データを読み出した後の閾値落ちが抑制される。
【００９２】
その結果、データの読み出し動作時におけるデータの変化を抑制し、精度良くプログラムベリファイを実行する事が可能となる。
【００９３】
以下に、本実施形態に係る書込み動作に関して詳細に説明する。
【００９４】
＜１−３＞第１実施形態に係る書込み動作例
第１実施形態に係る書込み動作例について説明する。まず、第１実施形態に係る書込み動作例を説明するにあたり、プログラム動作及びプログラムベリファイ動作の基本的な動作波形について説明する。
【００９５】
＜１−３−１＞プログラム動作
図１５を用いて、プログラム動作の基本的な動作波形について説明する。
【００９６】
［時刻Ｔ０］〜［時刻Ｔ１］
時刻Ｔ０においてロウデコーダ１５０は、レジスタ１１２から与えられるロウアドレスＲＡに従って、ブロックを選択する。そしてロウデコーダ１５０は、選択セレクトゲート線ＳＧＤ（Ｓｅｌｅｃｔ）に、電圧ＶＳＧＤ_ＰＲＯＧ（例えば、ＶＳＧＤ_ＰＲＯＧ＞ＶＳＳ）を印加し、選択セレクトゲート線ＳＧＳ（Ｓｅｌｅｃｔ）、非選択セレクトゲート線ＳＧＤ（Ｕｎ  ｓｅｌｅｃｔ）、ＳＧＳ（Ｕｎ  ｓｅｌｅｃｔ）に電圧ＶＳＳを印加する。電圧ＶＳＧＤ_ＰＲＯＧは、選択トランジスタＳＴ１をオン状態にする電圧である。
【００９７】
時刻Ｔ０においてセンスアンプユニット１４０は、メモリセルトランジスタＭＴの電荷蓄積層２９に電子を注入する書込みビット線ＢＬ（Ｐｒｏｇ）に例えば電圧ＶＳＳを印加し、メモリセルトランジスタＭＴの電荷蓄積層への電子の注入を抑制する非書込みビット線ＢＬ（Ｉｎｈｉｂｉｔ）に正電圧ＶＤＤ（ＶＤＤ＞ＶＳＳ）を印加する。
【００９８】
［時刻Ｔ１］〜［時刻Ｔ２］
引き続き時刻Ｔ１においてロウデコーダ１５０は、選択セレクトゲート線ＳＧＤに電圧ＶＳＧＤを印加する（例えば、ＶＳＧＤ_ＰＲＯＧ＞ＶＳＧＤ＞ＶＳＳ）。電圧ＶＳＧＤは、選択トランジスタＳＴ１に対して電圧ＶＳＳの転送を可能とさせるが、電圧ＶＤＤの転送は不能とさせる電圧である。従って、非書込みビット線ＢＬ（Ｉｎｈｉｂｉｔ）に対応する選択トランジスタＳＴ１は、カットオフ状態となる。
【００９９】
［時刻Ｔ２］〜［時刻Ｔ３］
次に、時刻Ｔ２においてロウデコーダ１５０は、ワード線ＷＬ（Ｓｅｌｅｃｔ及びＵｎ  ｓｅｌｅｃｔ）に電圧ＶＰＡＳＳを印加する。
【０１００】
［時刻Ｔ３］〜［時刻Ｔ４］
引き続きロウデコーダ１５０は、複数の選択ワード線ＷＬ（Ｓｅｌｅｃｔ）に印加する電圧を電圧ＶＰＡＳＳから電圧ＶＰＧＭに昇圧する。これにより、選択ワード線ＷＬに接続された選択メモリセルトランジスタに電子が注入される。電圧ＶＰＧＭは、書込むレベルや、プログラム回数に応じて適宜変更される。電圧ＶＰＧＭの具体的な変更方法は後述する。
【０１０１】
［時刻Ｔ４］〜［時刻Ｔ５］
時刻Ｔ３〜時刻Ｔ４の期間でプログラムされた後、時刻Ｔ３〜時刻Ｔ４においてロウデコーダ１５０は、ワード線ＷＬ、選択セレクトゲート線ＳＧＤを電圧ＶＳＳにし、センスアンプユニット１４０は、非書込みビット線ＢＬを電圧ＶＳＳにする。
これによりプログラム動作が終了する。
【０１０２】
＜１−３−２＞プログラムベリファイ動作
図１６を用いて、プログラムベリファイ動作の基本的な動作波形について説明する。
【０１０３】
［時刻Ｔ６］〜［時刻Ｔ７］
時刻Ｔ６においてロウデコーダ１５０は、選択セレクトゲート線ＳＧＤ、ＳＧＳに、電圧ＶＳＧ（例えば、ＶＳＧ＞ＶＳＳ）を印加し、非選択セレクトゲート線ＳＧＤ、ＳＧＳに電圧ＶＳＳを印加し、非選択ワード線ＷＬ（Ｕｎ  Ｓｅｌｅｃｔ）に電圧“ＶＲＥＡＤ”を印加する。電圧ＶＳＧは、選択トランジスタＳＴ１をオン状態にする電圧である。
【０１０４】
時刻Ｔ６においてセンスアンプユニット１４０は、ビット線ＢＬ（Ｐｒｏｇ及びＩｎｈｉｂｉｔ）に例えば電圧“ＶＢＬ”を印加する。
【０１０５】
［時刻Ｔ７］〜［時刻Ｔ８］
時刻Ｔ７においてロウデコーダ１５０は、選択ワード線ＷＬ（Ｓｅｌｅｃｔ）に電圧ＶＰＶＦＹを印加する。
【０１０６】
[時刻Ｔ８]
時刻Ｔ８において、シーケンサ１１１は、信号ＳＴＢをセンスアンプ１４に供給する。そして、センスアンプ１４は、選択メモリセルトランジスタのデータを読み出す。これにより、選択メモリセルトランジスタはプログラムベリファイにパスしているかフェイルしているかが判定される。
【０１０７】
[時刻Ｔ９]
続いて、ロウデコーダ１５０は、ワード線ＷＬ、選択セレクトゲート線ＳＧＤ、及びＳＧＳを電圧ＶＳＳにし、センスアンプユニット１４０は、ビット線ＢＬを電圧ＶＳＳにする。これによりプログラムベリファイ動作が終了する。
【０１０８】
＜１−３−３＞プログラム動作及びプログラムベリファイ動作の実行順序例
上記では、プログラム動作及びプログラムベリファイ動作の基本的な動作について説明した。以下では、図１７を用いて、プログラム動作及びプログラムベリファイ動作の実行順序（パルス順序と称しても良い）について説明する。
【０１０９】
簡単のため図１７では、プログラム動作に関しては、図１５の時刻Ｔ２〜時刻Ｔ４までの間に選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。プログラムベリファイ動作に関しては、図１６の時刻Ｔ７〜時刻Ｔ９までの間に選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。換言すると、プログラム動作時における“パルス”とは、図１５の時刻Ｔ２〜時刻Ｔ４までの間に選択ワード線ＷＬに印加される電圧ＶＰＧＭを意味する。同様に、プログラムベリファイ動作時における“パルス”とは、図１６の時刻Ｔ７〜時刻Ｔ９までの間に選択ワード線ＷＬに印加される電圧ＶＰＶＦＹを意味する。
【０１１０】
図１７に示すように、第１実施形態に係る書込み動作は、第１書込み動作と第２書込み動作に分けられる。
【０１１１】
第１書込み動作は、“Ａ”及び“Ｂ”レベルに関する書込み動作である。第２書込み動作は、“Ｃ”レベルに関する書込み動作である。
【０１１２】
第１書込み動作は、“Ａ”及び“Ｂ”レベルの書込みに関する第１プログラム動作（Ｐ＿Ｉ）と、第１プログラム動作がパスしたか否かを判定する第１プログラムベリファイ動作（Ｖ＿Ｉ）と、を含んでいる。
【０１１３】
第２書込み動作は、“Ｃ”レベルの書込みに関する第２プログラム動作（Ｐ＿ＩＩ）と、第２プログラム動作がパスしたか否かを判定する第２プログラムベリファイ動作（Ｖ＿ＩＩ）と、を含んでいる。
【０１１４】
また、“Ｐ＿Ｘ（Ｘ：任意のレベル）”は、Ｘレベルのプログラムに関するパルスを意味する。また、“Ｖ＿Ｘ”は、Ｘレベルのプログラムベリファイに関するパルスを意味する。
【０１１５】
第１プログラム動作において、選択ワード線ＷＬに印加される電圧ＶＰＧＭを電圧ＶＰＧＭ＿Ｉ（ｎ）と表記する。同様に、第２プログラム動作において、選択ワード線ＷＬに印加される電圧ＶＰＧＭを電圧ＶＰＧＭ＿ＩI（ｎ）と表記する。ｎは、第１プログラム動作または第２プログラム動作の回数に相当する。
【０１１６】
また、Ｘレベルのプログラムに関する電圧ＶＰＧＭは“ＶＰＧＭ＿Ｘ”と表記する。
【０１１７】
シーケンサ１１１は、第１プログラム動作を実行するたびに、電圧ＶＰＧＭ＿Ｉ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。同様にシーケンサ１１１は、第２プログラム動作を実行するたびに、電圧ＶＰＧＭ＿ＩＩ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。電圧ＶＰＧＭ＿Ｉ（ｎ）または電圧ＶＰＧＭ＿ＩI（ｎ）が電圧ＤＶＰＧＭずつインクリメントされる度に、ｎもインクリメントされる。
【０１１８】
第１プログラムベリファイ動作において、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹを電圧ＶＰＶＦＹ＿Ｉと表記する。第２プログラムベリファイ動作において、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹを電圧ＶＰＶＦＹ＿ＩＩと表記する。
【０１１９】
また、Ｘレベルのプログラムベリファイに関する電圧ＶＰＶＦＹは“ＶＰＶＦＹ＿Ｘ”と表記する。この表記方法は、他の実施例でも同様である。
【０１２０】
図１７に示すように、本例では、基本的に第１プログラム動作の直後に第１プログラムベリファイ動作が行われないように制御され、第２プログラム動作の直後に第２プログラムベリファイ動作が行われないように制御される。しかし、第１プログラム動作が終了し、第２プログラム動作を継続する場合は、この限りではない。同様に、第２プログラム動作が終了し、第１プログラム動作を継続する場合は、この限りではない。
【０１２１】
＜１−３−４＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図１８を用いて、本実施形態に係るプログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法について説明する。このパルス順序は、書込み動作時に、メモリシステム１によってリアルタイムに生成されても良い。このパルス順序は、テスト動作時に、ホストデバイス３００等の外部機器によって生成されても良い。テスト動作時にパルス順序が生成される場合は、例えばパルス順序はメモリセルアレイ１３０に記憶され、ＮＡＮＤ型フラッシュメモリ１００の動作時にレジスタ１１２に読み出される。以下の各実施例では、一例として、リアルタイムにパルス順序を生成する場合について説明する。
【０１２２】
[ステップＳ１８０１]
まずシーケンサ１１１は、電圧ＶＰＧＭ＿ＩＩを用いて第２プログラム動作（Ｐ＿ＩＩ）を実行する。
【０１２３】
[ステップＳ１８０２]
シーケンサ１１１は、電圧ＶＰＧＭ＿Ｉを用いて第１プログラム動作（Ｐ＿Ｉ）を実行する。
【０１２４】
[ステップＳ１８０３]
シーケンサ１１１は、第１プログラム動作を実行した後、第２プログラム動作に関する第２プログラムベリファイ動作を実行する。具体的にはシーケンサ１１１は、電圧ＶＰＶＦＹ＿ＩＩを用いて第２プログラムベリファイ動作（Ｖ＿ＩＩ）を実行する。
【０１２５】
このように、シーケンサ１１１は、第２プログラム動作と、第２プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、第２プログラム動作が行われたメモリセルトランジスタは、第２プログラム動作の直後に第２プログラムベリファイ動作を実行するよりも、第１プログラム動作の時間だけ長く放置されることになる。その結果、本例では、図１４を用いて説明したように、第２プログラム動作の直後に第２プログラムベリファイ動作を実行するよりも、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０１２６】
[ステップＳ１８０４]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。より具体的にはシーケンサ１１１は、第２プログラムベリファイ動作によってフェイルビットと判定されたフェイルビット数が設定値（FValue_II）以上であるか否かを判定する。フェイルビット数が設定値（FValue_II）未満である場合、シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスであると判定する。この設定値（FValue_II）は、例えばＥＣＣ回路２０６で救済できないフェイルビット数である。この設定値（FValue_II）は、例えばレジスタ１１２に記憶されている。より具体的には、この設定値（FValue_II）は、例えば、メモリセルアレイ１３０に記憶されており、ＮＡＮＤ型フラッシュメモリ１００を起動させたときに、レジスタ１１２に読み出されるような構成でも良い。つまり、シーケンサ１１１は、レジスタ１１２に記憶された設定値（FValue_II）と、フェイルビット数と、を比較する。
【０１２７】
[ステップＳ１８０５]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１８０４、Ｎｏ）、第２プログラム動作の繰り返し回数（ループ数）をカウントアップする。例えば、第２プログラム動作のループ数は、レジスタ１１２等に記憶される。そして、第２プログラム動作のループ数のカウントは、シーケンサ１１１が行っても良いし、それ以外の構成で行っても良い。
【０１２８】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。この設定値（LValue_II）は、例えばレジスタ１１２に記憶されている。より具体的には、この設定値（LValue_II）は、例えば、メモリセルアレイ１３０に記憶されており、ＮＡＮＤ型フラッシュメモリ１００を起動させたときに、レジスタ１１２に読み出されるような構成でも良い。つまり、シーケンサ１１１は、レジスタ１１２に記憶された設定値（LValue_II）と、第２プログラム動作のループ数と、を比較する。
【０１２９】
例えば、何回プログラムを行っても、データが正しく書き込めないメモリセルトランジスタが存在する場合がある。そのようなメモリセルトランジスタがベリファイをパスするまでプログラム動作を繰り返すことは望ましくない。そのため、本ステップにより、プログラム動作のループ数を設定しておくことにより、不要なプログラム動作のループを抑制することができる。
【０１３０】
[ステップＳ１８０６]
シーケンサ１１１は、ループ数が設定値（LValue_II）でないと判定する場合（ステップＳ１８０５、Ｎｏ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０１３１】
[ステップＳ１８０７]
シーケンサ１１１は、電圧ＶＰＧＭ＿ＩＩを用いて第２プログラム動作を実行する。
【０１３２】
[ステップＳ１８０８]
シーケンサ１１１は、第２プログラム動作を実行した後、第１プログラム動作に関する第１プログラムベリファイ動作を実行する。具体的にはシーケンサ１１１は、電圧ＶＰＶＦＹ＿Ｉを用いて第１プログラムベリファイ動作を実行する。
【０１３３】
このように、シーケンサ１１１は、第１プログラム動作と、第１プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、図１４を用いて説明したように、第１プログラム動作の直後に第１プログラムベリファイ動作を実行するよりも、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０１３４】
[ステップＳ１８０９]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。より具体的にはシーケンサ１１１は、第１プログラムベリファイ動作によってフェイルビットと判定されたフェイルビット数が設定値（FValue_I）以上であるか否かを判定する。フェイルビット数が設定値（FValue_I）未満である場合、シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスであると判定する。この設定値（FValue_I）は、例えばＥＣＣ回路２０６で救済できないフェイルビット数である。この設定値（FValue_I）は、例えば、レジスタ１１２に記憶されている。つまり、シーケンサ１１１は、レジスタ１１２に記憶された設定値（FValue_I）と、第１プログラムベリファイ動作によってフェイルビットと判定されたフェイルビット数と、を比較する。
[ステップＳ１８１０]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１８０９、Ｎｏ）、第１プログラム動作の繰り返し回数（ループ数）をカウントアップする。例えば、第１プログラム動作のループ数は、レジスタ１１２等に記憶される。そして、第１プログラム動作のループ数のカウントは、シーケンサ１１１が行っても良いし、それ以外の構成で行っても良い。
【０１３５】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。この設定値（LValue_I）は、例えばレジスタ１１２に記憶されている。より具体的には、この設定値（LValue_I）は、例えば、メモリセルアレイ１３０に記憶されており、ＮＡＮＤ型フラッシュメモリ１００を起動させたときに、レジスタ１１２に読み出されるような構成でも良い。つまり、シーケンサ１１１は、レジスタ１１２に記憶された設定値（LValue_I）と、第１プログラム動作のループ数と、を比較する。
【０１３６】
[ステップＳ１８１１]
シーケンサ１１１は、ループ数が設定値（LValue_I）でないと判定する場合（ステップＳ１８１０、Ｎｏ）、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる。そして、その後ステップＳ１８０２を実行する。
【０１３７】
[ステップＳ１８１２]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１８０４、Ｙｅｓ）、または、ループ数が設定値（LValue_II）であると判定する場合（ステップＳ１８０５、Ｙｅｓ）、ステップＳ１８０８と同様の動作を実行する。
【０１３８】
[ステップＳ１８１３]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１８１３、Ｙｅｓ）、書込み動作を終了する。
【０１３９】
[ステップＳ１８１４]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスでないと判定する場合（ステップＳ１８１３、Ｎｏ）、第１プログラム動作に係るループ数をカウントアップする。そして、シーケンサ１１１は、第１プログラム動作に係るループ数が設定値（LValue_I）であるか否かを判定する。シーケンサ１１１は、第１プログラム動作に係るループ数が設定値（LValue_I）であると判定する場合（ステップＳ１８１４、Ｙｅｓ）、書込み動作を終了する。
【０１４０】
[ステップＳ１８１５]
シーケンサ１１１は、第１プログラム動作に係るループ数が設定値（LValue_I）でないと判定する場合（ステップＳ１８１４、Ｎｏ）、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる。
【０１４１】
[ステップＳ１８１６]
シーケンサ１１１は、ステップＳ１８０２と同様の動作を実行する。
【０１４２】
[ステップＳ１８１７]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１８０９、Ｙｅｓ）、または、ループ数が設定値（LValue_I）であると判定する場合（ステップＳ１８１０、Ｙｅｓ）、ステップＳ１８０３と同様の動作を実行する。
【０１４３】
[ステップＳ１８１８]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１８１８、Ｙｅｓ）、書込み動作を終了する。
【０１４４】
[ステップＳ１８１９]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスでないと判定する場合（ステップＳ１８１８、Ｎｏ）、第２プログラム動作に係るループ数をカウントアップする。そして、シーケンサ１１１は、第２プログラム動作に係るループ数が設定値（LValue_II）であるか否かを判定する。シーケンサ１１１は、第２プログラム動作に係るループ数が設定値（LValue_II）であると判定する場合（ステップＳ１８１９、Ｙｅｓ）、書込み動作を終了する。
【０１４５】
[ステップＳ１８２０]
シーケンサ１１１は、ステップＳ１８０６と同様の動作を実行する。
【０１４６】
[ステップＳ１８２１]
シーケンサ１１１は、ステップＳ１８０７と同様の動作を実行する。
【０１４７】
メモリシステム１は、以上のようにして、パルス順序を生成する。
【０１４８】
＜１−４＞具体例
次に、第１の実施形態のメモリシステムに係る書込み動作の具体例について説明する。
【０１４９】
＜１−４−１＞書込み対象のメモリセルトランジスタ例
本具体例では、簡単のため、１つのワード線ＷＬに共通接続された複数のメモリセルトランジスタＭＴのそれぞれに、Ｅｒレベル、Ａレベル、Ｂレベル、およびＣレベルのいずれかが書き込まれる場合について説明する。ここで、ビット線ＢＬ（Ｅｒ）は、Ｅｒレベルのデータが書き込まれるメモリセルトランジスタＭＴ（Ｅｒ）に接続され、ビット線ＢＬ（Ａ）は、Ａレベルのデータが書き込まれるメモリセルトランジスタＭＴ（Ａ）に接続され、ビット線ＢＬ（Ｂ）は、Ｂレベルのデータが書き込まれるメモリセルトランジスタＭＴ（Ｂ）に接続され、ビット線ＢＬ（Ｃ）は、Ｃレベルのデータが書き込まれるメモリセルトランジスタＭＴ（Ｃ）に接続される。
【０１５０】
なお、本例は、必ずしも複数のメモリセルトランジスタが１つのワード線ＷＬに共通接続されてなくても良い。つまり、複数のメモリセルトランジスタが異なるワード線ＷＬに接続されている場合でも、同様の動作を適用することができる。
【０１５１】
＜１−４−２＞パルスの具体例
続いて、図２０及び図２１を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。図２０では、簡単のため、選択ワード線ＷＬ及びビット線ＢＬの波形のみを図示している。そして、図２０及び図２１では、プログラムまたはプログラムベリファイに係るパルス毎に番号を付している。
【０１５２】
図２１では、具体的なパルスの印加タイミング例を示している。プログラム動作に係る行（Ｐ＿Ｘ）には、プログラム動作のループ回数が表記されている。“Ｘ”が複数のレベルである場合、単にプログラムベリファイ動作のループ回数を示すと、どのレベルをベリファイしているのか不明瞭である。そこで、図２１では、プログラムベリファイ動作に係る行（Ｖ＿Ｘ）には、ベリファイ対象となるベリファイレベルが表記されている。なお、この表記方法は、他の表でも同様である。
【０１５３】
図２０及び図２１では、大きく分けて（ｉ）設定によって決定されるパルスと、（ｉｉ）書込み動作時における状況によって決定されるパルスと、が示されている。
【０１５４】
本例における（ｉ）のパルスの例としては、プログラム動作及びプログラムベリファイ動作の開始パルスである。例えばＡ、及びＢレベルのプログラム動作を３回程度実行すると、メモリセルトランジスタの閾値がＢレベルに到達することがある。そこで、Ａ、及びＢレベルのプログラム動作を３回程度行った後、Ｂレベルに関するプログラムベリファイ動作を開始する必要がある。そこで、本例では、第１プログラム動作（Ｐ＿Ａ−Ｂ）を３回行った後の１４回目のパルス（Pulse no=14）において、Ｂレベルに関するプログラムベリファイ動作を開始するように設定されている。つまり、第１プログラム動作（Ｐ＿Ａ−Ｂ）を何回行った後にＢレベルに関するプログラムベリファイ動作を開始するかは、設定によって決められている。このように、どのタイミングで、プログラム動作及びプログラムベリファイ動作を開始するか予め設定されている。図２０及び図２１の例では、パルス番号１、２、３、５、１４に対応するパルスが（ｉ）のパルスに相当する。
【０１５５】
本例における（ｉｉ）のパルスの例としては、（ｉ）以外のパルスである。例えば、５回目の第１プログラム動作（Pulse no=19）の結果、Ａレベルのプログラムベリファイ動作（Pulse no=20）がパス（または、ループ数が設定値）となると、Ａレベルに関する書込み動作は終了となる。そのため、Ａレベルのプログラムベリファイ動作（Pulse no=20）以降は、Ａレベルのプログラムベリファイ動作が行われない。
【０１５６】
更に例えば、４回目の第２プログラム動作（Pulse no=12）の結果、Ｃレベルのプログラムベリファイ動作（Pulse no=16）がパス（または、ループ数が設定値）となると、Ｃレベルに関する書込み動作は終了となる。そのため、Ｃレベルのプログラムベリファイ動作（Pulse no=16）以降は、Ｃレベルのプログラム動作及びプログラムベリファイ動作は行われない。
【０１５７】
このように、ベリファイ動作でパスと判定される場合（または、ループ数が設定値であると判定される場合）、書込み動作を実行する必要がない。そのため、パルスの終了タイミングは予め決めるのではなく、動作中に決める必要がある。
【０１５８】
図２０及び図２１の例では、パルス番号１、２、３、５、１４以外に対応するパルスが（ｉｉ）のパルスに相当する。
【０１５９】
[パルス番号１（Pulse no=1）]
図２０及び図２１に示すように、シーケンサ１１１は、まずメモリセルトランジスタＭＴ（Ｃ）に対して１回目の第２プログラム動作（Ｐ＿Ｃ）を実行する。
【０１６０】
シーケンサ１１１は、ワード線ＷＬにＣレベル用のプログラム電圧ＶＰＧＭ＿Ｃ（１）を印加する。このとき、シーケンサ１１１は、ビット線ＢＬ（Ｃ）を電圧ＶＳＳにし、ビット線ＢＬ（Ｅｒ）、（Ａ）、（Ｂ）に、電圧ＶＤＤを印加する。
【０１６１】
これにより、メモリセルトランジスタＭＴ（Ｃ）のチャネルは電圧ＶＳＳとなり、ワード線ＷＬにプログラム電圧ＶＰＧＭ＿Ｃ（１）が印加されることでメモリセルトランジスタＭＴ（Ｃ）に対してプログラムが行われる。一方、ビット線ＢＬ（Ｅｒ）、（Ａ）、（Ｂ）に電圧ＶＤＤが印加されることで、メモリセルトランジスタＭＴ（Ｅｒ）、（Ａ）、（Ｂ）に接続される選択トランジスタＳＴ１はカットオフされる。これにより、メモリセルトランジスタＭＴ（Ｅｒ）、（Ａ）、（Ｂ）のチャネルは、フローティング状態となり、ブーストされる。このため、ワード線ＷＬにプログラム電圧ＶＰＧＭ＿Ｃ（１）が印加されても、メモリセルトランジスタＭＴ（Ｅｒ）、（Ａ）、（Ｂ）に対してプログラムは行われない。
【０１６２】
[パルス番号２（Pulse no=2）]
引き続き、シーケンサ１１１は、メモリセルトランジスタＭＴ（Ａ）、（Ｂ）に対して１回目の第１プログラム動作（Ｐ＿Ａ−Ｂ）を実行する。
【０１６３】
シーケンサ１１１は、ワード線ＷＬにＡ、Ｂレベル用のプログラム電圧ＶＰＧＭ＿Ａ−Ｂ（１）（ＶＰＧＭ＿Ａ−Ｂ（１）＜ＶＰＧＭ＿Ｃ（１））を印加する。このとき、シーケンサ１１１は、ビット線ＢＬ（Ａ）、（Ｂ）を電圧ＶＳＳにし、ビット線ＢＬ（Ｅｒ）、（Ｃ）に、電圧ＶＤＤを印加する。これにより、上述した原理と同様の原理により、メモリセルトランジスタＭＴ（Ａ）、（Ｂ）に対してプログラムが行われ、メモリセルトランジスタＭＴ（Ｅｒ）、（Ｃ）に対してプログラムは行われない。
【０１６４】
[パルス番号３（Pulse no=3）]
次に、シーケンサ１１１は、第２プログラムベリファイ動作を実行する。より具体的には、シーケンサ１１１はワード線ＷＬにＣレベル用のベリファイ電圧を印加することで、メモリセルトランジスタＭＴ（Ｃ）に対してプログラムベリファイを実行する。
【０１６５】
このように、シーケンサ１１１は、第２プログラム動作と、第２プログラムベリファイ動作と、の間に、第１プログラム動作を実行することで、電子抜けが落ち着いた状態で第２プログラムベリファイ動作を実行することができる。
【０１６６】
[パルス番号４（Pulse no=4）]
次に、シーケンサ１１１は、第２プログラムベリファイ動作にて所望の電圧レベルに達していないメモリセルトランジスタＭＴ（Ｃ）に対して第２プログラム動作を実行する。
【０１６７】
具体的には、シーケンサ１１１は、ワード線ＷＬにプログラム電圧ＶＰＧＭ＿Ｃ（２）（ＶＰＧＭ＿Ｃ（２）＝ＶＰＧＭ＿Ｃ（１）＋ＤＶＰＧＭ）を印加する。このように、本例では、第２プログラム動作が繰り返される度に電圧ＤＶＰＧＭずつインクリメントされる。このとき、ビット線ＢＬ（Ｃ）は電圧ＶＳＳとなる。一方、ビット線ＢＬ（Ｅｒ）、（Ａ）、（Ｂ）には、電圧ＶＤＤが印加される。これにより、メモリセルトランジスタＭＴ（Ｃ）に対してプログラムが行われ、メモリセルトランジスタＭＴ（Ｅｒ）、（Ａ）、（Ｂ）に対してプログラムは行われない。
【０１６８】
[パルス番号５（Pulse no=5）]
次に、シーケンサ１１１は、Ａレベルに関する第１プログラムベリファイ動作を実行する。より具体的には、シーケンサ１１１はワード線ＷＬにＡレベル用のベリファイ電圧を印加することで、メモリセルトランジスタＭＴ（Ａ）に対してプログラムベリファイを実行する。
【０１６９】
このように、シーケンサ１１１は、第１プログラム動作と、第１プログラムベリファイ動作と、の間に、他の動作を実行することで、電子抜けが落ち着いた状態で第１プログラムベリファイ動作を実行することができる。
【０１７０】
ところで、１回目の第１プログラム動作の時点では、Ｂレベルに達するメモリセルトランジスタは存在しないと考えられる。そのため、１回目の第１プログラム動作の後の第１プログラムベリファイ動作においては、Ｂレベルに対して第１プログラムベリファイ動作は行わない。これにより、第１プログラムベリファイ動作において、Ｂレベルに対して第１プログラムベリファイ動作を実行する場合に比べて、処理時間が抑制される。
【０１７１】
[パルス番号６（Pulse no=6）]
次に、シーケンサ１１１は、メモリセルトランジスタＭＴ（Ｂ）と、第１プログラムベリファイ動作にて所望の電圧レベルに達していないメモリセルトランジスタＭＴ（Ａ）と、に対して２回目の第１プログラム動作を実行する。
【０１７２】
具体的には、シーケンサ１１１は、ワード線ＷＬにプログラム電圧ＶＰＧＭ＿Ａ−Ｂ（２）（ＶＰＧＭ＿Ａ−Ｂ（２）＝ＶＰＧＭ＿Ａ−Ｂ（１）＋ＤＶＰＧＭ）を印加する。このとき、ビット線ＢＬ（Ａ）、（Ｂ）は電圧ＶＳＳとなる。一方、ビット線ＢＬ（Ｅｒ）、（Ｃ）には、電圧ＶＤＤが印加される。これにより、メモリセルトランジスタＭＴ（Ａ）、（Ｂ）に対してプログラムが行われ、メモリセルトランジスタＭＴ（Ｅｒ）、（Ｃ）に対してプログラムは行われない。
【０１７３】
[パルス番号７（Pulse no=7）]
シーケンサ１１１は、第２プログラムベリファイ動作を実行する。
【０１７４】
[パルス番号８（Pulse no=8）]
シーケンサ１１１は、第２プログラムベリファイ動作にて所望の電圧レベルに達していないメモリセルトランジスタＭＴ（Ｃ）に対して２回目の第２プログラム動作を実行する。
【０１７５】
[パルス番号９（Pulse no=9）]
シーケンサ１１１は、Ａレベルに関する第１プログラムベリファイ動作を実行する。
【０１７６】
[パルス番号１０（Pulse no=10）]
シーケンサ１１１は、メモリセルトランジスタＭＴ（Ｂ）と、第１プログラムベリファイ動作にて所望の電圧レベルに達していないメモリセルトランジスタＭＴ（Ａ）と、に対して３回目の第１プログラム動作を実行する。
【０１７７】
[パルス番号１１（Pulse no=11）]
シーケンサ１１１は、第２プログラムベリファイ動作を実行する。
【０１７８】
[パルス番号１２（Pulse no=12）]
シーケンサ１１１は、第２プログラムベリファイ動作にて所望の電圧レベルに達していないメモリセルトランジスタＭＴ（Ｃ）に対して３回目の第２プログラム動作を実行する。
【０１７９】
[パルス番号１３（Pulse no=13）]
シーケンサ１１１は、Ａレベルに関する第１プログラムベリファイ動作を実行する。
【０１８０】
[パルス番号１４（Pulse no=14）]
ところで、３回目の第１プログラム動作の時点で、Ｂレベルに達するメモリセルトランジスタが出てくると考えられる。
【０１８１】
そのため、シーケンサ１１１は、Ｂレベルに対する第１プログラムベリファイ動作を実行する。より具体的には、シーケンサ１１１はワード線ＷＬにＢレベル用のベリファイ電圧を印加することで、メモリセルトランジスタＭＴ（Ｂ）に対してプログラムベリファイを実行する。
【０１８２】
[パルス番号１５（Pulse no=15）]
シーケンサ１１１は、第１プログラムベリファイ動作にて所望の電圧レベルに達していないメモリセルトランジスタＭＴ（Ａ）、（Ｂ）に対して４回目の第１プログラム動作を実行する。
【０１８３】
[パルス番号１６（Pulse no=16）]
シーケンサ１１１は、第２プログラムベリファイ動作を実行する。
【０１８４】
そして、本例ではシーケンサ１１１は、対象のメモリセルトランジスタＭＴ（Ｃ）がパスであると判定する。そのため、シーケンサ１１１は、４回目以降の第２プログラム動作を行わない。
【０１８５】
[パルス番号１７（Pulse no=17）]
シーケンサ１１１は、Ａレベルに関する第１プログラムベリファイ動作を実行する。
【０１８６】
[パルス番号１８（Pulse no=18）]
シーケンサ１１１は、Ｂレベルに対する第１プログラムベリファイ動作を実行する。
【０１８７】
[パルス番号１９（Pulse no=19）]
シーケンサ１１１は、第１プログラムベリファイ動作にて所望の電圧レベルに達していないメモリセルトランジスタＭＴ（Ａ）、（Ｂ）に対して５回目の第１プログラム動作を実行する。
【０１８８】
[パルス番号２０（Pulse no=20）]
シーケンサ１１１は、Ａレベルに関する第１プログラムベリファイ動作を実行する。
【０１８９】
そして、本例ではシーケンサ１１１は、対象のメモリセルトランジスタＭＴ（Ａ）がパスであると判定する。そのため、シーケンサ１１１は、６回目以降のＡレベルに関する第１プログラム動作を行わない。
【０１９０】
[パルス番号２１（Pulse no=21）]
シーケンサ１１１は、Ｂレベルに対する第１プログラムベリファイ動作を実行する。
【０１９１】
[パルス番号２２（Pulse no=22）]
上述したように、メモリセルトランジスタＭＴ（Ａ）はプログラムベリファイをパスしている。そのため、シーケンサ１１１は、メモリセルトランジスタＭＴ（Ｂ）に対してのみ第１プログラム動作を実行する。
【０１９２】
具体的には、シーケンサ１１１は、ワード線ＷＬにプログラム電圧ＶＰＧＭ＿Ａ−Ｂ（６）（ＶＰＧＭ＿Ａ−Ｂ（６）＝ＶＰＧＭ＿Ａ−Ｂ（１）＋５＊ＤＶＰＧＭ）を印加する。このとき、ビット線ＢＬ（Ｂ）は電圧ＶＳＳとなる。一方、ビット線ＢＬ（Ｅｒ）、（Ａ）、（Ｃ）には、電圧ＶＤＤが印加される。これにより、メモリセルトランジスタＭＴ（Ｂ）に対してプログラムが行われ、メモリセルトランジスタＭＴ（Ｅｒ）、（Ａ）、（Ｃ）に対してプログラムは行われない。
【０１９３】
[パルス番号２３（Pulse no=23）]
シーケンサ１１１は、Ｂレベルに対する第１プログラムベリファイ動作を実行する。
【０１９４】
[パルス番号２４（Pulse no=24）]
シーケンサ１１１は、メモリセルトランジスタＭＴ（Ｂ）に対してのみ第１プログラム動作を実行する。
【０１９５】
[パルス番号２５（Pulse no=25）]
シーケンサ１１１は、Ｂレベルに対する第１プログラムベリファイ動作を実行する。
【０１９６】
[パルス番号２６（Pulse no=26）]
シーケンサ１１１は、メモリセルトランジスタＭＴ（Ｂ）に対してのみ第１プログラム動作を実行する。
【０１９７】
[パルス番号２７（Pulse no=27）]
シーケンサ１１１は、Ｂレベルに対する第１プログラムベリファイ動作を実行する。
【０１９８】
そして、本例では、シーケンサ１１１は、対象のメモリセルトランジスタＭＴ（Ｂ）がパスであると判定する。そのため、シーケンサ１１１は、Ｂレベルに関する第１プログラム動作を完了する。
【０１９９】
＜１−５＞効果
上述した実施形態によれば、メモリシステム１は、例外（例えば図２１のパルス番号１９以降等のプログラムベリファイ動作が連続する場合）を除いて第１プログラム動作の直後に第１プログラムベリファイ動作を行わず、第２プログラム動作の直後に第２プログラムベリファイ動作を行わない。つまり、本実施形態によれば、メモリシステム１は、選択メモリセルトランジスタからの電子抜けが落ち着いてから、データを読み出している。そのため、データを読み出した後の閾値落ちが抑制される。その結果、データの読み出し動作時におけるデータの変化を抑制し、精度良くプログラムベリファイを実行する事が可能となる。
【０２００】
＜１−６＞第１実施形態の変形例１
第１実施形態の変形例１について説明する。第１実施形態の変形例１では、上述したデータの読み出し方法と異なる読み出し方法を第１実施形態に採用した場合について説明する。
【０２０１】
＜１−６−１＞構成
＜１−６−１−１＞センスアンプユニットの概要
次に、第１実施形態の変形例１に係るセンスアンプユニット１４０の構成について説明する。
【０２０２】
ビット線ＢＬに接続されるメモリセルトランジスタＭＴとロウデコーダ１５０との間の電流経路の距離は、ビット線ＢＬ順に大きくなる。つまり、ロウデコーダ１５０によってワード線ＷＬに印加される電圧は、初めにビット線ＢＬ０に対応するメモリセルトランジスタＭＴのゲートに達し、次にビット線ＢＬ１に対応するメモリセルトランジスタＭＴのゲートに達し、最後にビット線ＢＬｃ（ｃ：任意の整数）に対応するメモリセルトランジスタＭＴのゲートに達する。
【０２０３】
以下、ビット線ＢＬ０〜ＢＬａ（ａ：任意の整数）に対応するワード線ＷＬ及びメモリセルトランジスタＭＴをグループＧＰ１と呼び、ビット線ＢＬａ＋１〜ＢＬｂ（ｂ：任意の整数）に対応するワード線ＷＬ及びメモリセルトランジスタＭＴをグループＧＰ２と呼び、ビット線ＢＬｂ＋１〜ＢＬｃ（ｃ：任意の整数）に対応するワード線ＷＬ及びメモリセルトランジスタＭＴをグループＧＰ３と呼ぶことがある。
【０２０４】
図２２に示すように、センスアンプ１４（ＳＡ０〜ＳＡａ）に、信号ＳＴＢ＿ＮＥＡＲが与えられ、センスアンプ１４（ＳＡａ＋１〜ＳＡｂ）に、信号ＳＴＢ＿ＭＩＤが与えられ、センスアンプ１４（ＳＡｂ＋１〜ＳＡｃ）に、信号ＳＴＢ＿ＦＡＲが与えられる。
【０２０５】
信号ＳＴＢ＿ＮＥＡＲ、ＳＴＢ＿ＭＩＤ、及びＳＴＢ＿ＦＡＲは、互いに異なる信号であり、データのストローブ時には、まず信号ＳＴＢ＿ＮＥＡＲがアサートされ、次にＳＴＢ＿ＭＩＤがアサートされ、最後に信号ＳＴＢ＿ＦＡＲがアサートされる。
【０２０６】
＜１−６−１−２＞センスアンプの概要
図２３を用いてセンスアンプ１４の概要について説明する。
【０２０７】
センスアンプ１４（ＳＡ０〜ＳＡａ）に属するセンスアンプ１４のトランジスタ１６ｅは、ゲートに信号ＳＴＢ＿ＮＥＡＲが与えられる。センスアンプ１４（ＳＡａ＋１〜ＳＡｂ）に属するセンスアンプ１４のトランジスタ１６ｅは、ゲートに信号ＳＴＢ＿ＭＩＤが与えられる。センスアンプ１４（ＳＡｂ＋１〜ＳＡｃ）に属するセンスアンプ１４のトランジスタ１６ｅは、ゲートに信号ＳＴＢ＿ＦＡＲが与えられる。
【０２０８】
信号ＳＴＢ＿ＮＥＡＲ、ＳＴＢ＿ＭＩＤ、またはＳＴＢ＿ＦＡＲがアサートされるタイミングで、トランジスタ１６ｆがノードＳＥＮの電位に基づいて読み出しデータをセンスし、トランジスタ１６ｅは読み出しデータをラッチ回路１７に転送する。
【０２０９】
＜１−６−１−３＞信号生成に関する構成
図２４及び図２５は、信号ＳＴＢ＿ＮＥＡＲ、ＳＴＢ＿ＭＩＤ、及びＳＴＢ＿ＦＡＲの生成方法の概念図である。図２４に示すように、シーケンサ１１１が３つの信号ＳＴＢ＿ＮＥＡＲ、ＳＴＢ＿ＭＩＤ、及びＳＴＢ＿ＦＡＲの全てを生成しても良い。あるいは、図２５に示すように、シーケンサ１１１は信号ＳＴＢ＿ＮＥＡＲのみを生成しても良い。この場合、遅延回路１１１ａにより信号ＳＴＢ＿ＮＥＡＲを遅延させることにより信号ＳＴＢ＿ＭＩＤが生成される。また、遅延回路１１１ｂにより信号ＳＴＢ＿ＭＩＤを遅延させることにより信号ＳＴＢ＿ＦＡＲが生成される。
【０２１０】
＜１−６−２＞読み出し動作
次に、第１実施形態の変形例１に係るデータの読み出し動作について、図２６を用いて説明する。
【０２１１】
読み出し時には、シーケンサ１１１により、非選択ワード線ＷＬに、保持データに関わらずメモリセルトランジスタＭＴをオンさせる電圧ＶＲＥＡＤが印加される。更に、セレクトゲート線ＳＧＤ及びＳＧＳには、選択トランジスタＳＴ１及びＳＴ２をオンさせる電圧ＶＳＧが印加される。そして選択ワード線の電圧は、図２６に示すように連続的に上昇される。
【０２１２】
そして、選択ワード線ＷＬの電圧がＶＡに達した時点で、データが読み出される。すなわち、図２６に示すように、メモリセルトランジスタＭＴの閾値が“Ｅｒ”レベルに含まれるか、それとも“Ａ”レベル以上の分布に含まれるかの判定がなされる（これを読み出し動作ＡＲと呼ぶ）。このように、選択ワード線ＷＬの電圧がある電位に達した時点において、ノードＳＥＮの電位に応じて保持データを判別し、その結果をラッチ回路１７へ転送する。以下では、読み出し動作ＡＲに関する本動作を“ＡＲストローブ”と呼ぶ。
【０２１３】
引き続き、選択ワード線ＷＬの電圧がＶＢに達した時点で、メモリセルトランジスタＭＴの閾値が“Ａ”レベル以下の分布内にあるか、それとも“Ｂ”レベル以上の分布内にあるかの判定がなされる（これを読み出し動作ＢＲと呼ぶ）。そして、判定結果がラッチ回路１７に転送される（ＢＲストローブ）。
【０２１４】
更に、選択ワード線ＷＬの電圧がＶＣに達した時点で、メモリセルトランジスタＭＴの閾値が“Ｃ”レベルに含まれるか、それとも“Ｂ”レベル以下の分布内にあるかの判定がなされる（これを読み出し動作ＣＲと呼ぶ）。そして、判定結果がラッチ回路１７に転送される（ＣＲストローブ）。
【０２１５】
上記のように、ロウデコーダ１５０を介して選択ワード線ＷＬを駆動する場合、メモリセルトランジスタＭＴの位置によって、その電位変動の仕方が異なる。
【０２１６】
すなわち、図２６に示すように、選択ワード線ＷＬにおいて、ロウデコーダ１５０に最も近い領域（グループＧＰ１）に対応する領域ＷＬ＿ＮＥＡＲの電位は、ほぼ遅延無く上昇する。すなわち、読み出し動作期間中、（ｄＶ／ｄＴ）はほぼ一定である（但しＶはワード線電圧であり、Ｔは時間）。これに対して、グループＧＰ２に対応する領域ＷＬ＿ＭＩＤの電位は、領域ＷＬ＿ＮＥＡＲの電位に比べて、電圧立ち上がり時に遅延し、ロウデコーダ１５０から最も遠い領域ＷＬ＿ＦＡＲの電位は更に遅延する。
【０２１７】
つまり、読み出し動作ＡＲにおいて、グループＧＰ１に対応するメモリセルトランジスタＭＴのゲート電圧はほぼ時刻Ｔ０前後に電圧ＶＡに達するが、グループＧＰ２に対応するメモリセルトランジスタＭＴのゲート電圧が電圧ＶＡに達するのは、時刻Ｔ０より遅い時刻Ｔ１前後であり、グループＧＰ３に対応するメモリセルトランジスタＭＴのゲート電圧が電圧ＶＡに達するのは、更に遅い時刻Ｔ２前後である。
【０２１８】
そこで図２６に示すように、信号ＳＴＢ＿ＮＥＡＲは時刻Ｔ０でアサート（“Ｈ”レベル）される。従って、グループＧＰ１に対応するメモリセルトランジスタＭＴから読み出されたデータは、時刻Ｔ０でストローブされる。また、信号ＳＴＢ＿ＭＩＤは時刻Ｔ１でアサートされる。従って、グループＧＰ２に対応するメモリセルトランジスタＭＴから読み出されたデータは、時刻Ｔ１でストローブされる。引き続き、信号ＳＴＢ＿ＦＡＲは時刻Ｔ２でアサートされる。従って、グループＧＰ３に対応するメモリセルトランジスタＭＴから読み出されたデータは、時刻Ｔ２でストローブされる。
【０２１９】
以上のように、メモリセルトランジスタＭＴの位置に応じて、時刻Ｔ０、Ｔ１、Ｔ２のタイミングでＡＲストローブが実行される。以下、読み出し動作ＢＲ及びＣＲについても同様である。
【０２２０】
本例は、第１実施形態に係る実施例に適用することが可能である。
【０２２１】
＜１−７＞第１実施形態の変形例２
第１実施形態の変形例２について説明する。第１実施形態の変形例２では、上述したデータの書込み方法と異なる書込み方法を第１実施形態に採用した場合について説明する。
【０２２２】
＜１−７−１＞動作
＜１−７−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図２７を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０２２３】
簡単のため図２７では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０２２４】
図１７で説明した書込み動作と同様に、第１実施形態の変形例２に係る書込み動作は、第１書込み動作と第２書込み動作に分けられる。第１実施形態の変形例２に係る第１書込み動作と第２書込み動作は、図１７で説明した第１書込み動作と第２書込み動作と同様である。
【０２２５】
第１実施形態では、まず第２プログラム動作を行い、次いで第１プログラム動作を行った。しかし、図２７に示すように、第１実施形態の変形例２では、まず第１プログラム動作を行い、次いで第２プログラム動作を実行する。このように、第１実施形態の変形例２では、第１書込み動作と第２書き込み動作との実行順序を入れ替えた動作を実行する。
【０２２６】
本例では、第１実施形態と同様に、基本的に第１プログラム動作の直後に第１プログラムベリファイ動作が行われないように制御され、第２プログラム動作の直後に第２プログラムベリファイ動作が行われないように制御される。
【０２２７】
＜１−７−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図２８を用いて、本実施形態に係るプログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法について説明する。
【０２２８】
[ステップＳ２８０１]
まずシーケンサ１１１は、第１プログラム動作（Ｐ＿Ｉ）を実行する。
【０２２９】
[ステップＳ２８０２]
シーケンサ１１１は、第２プログラム動作（Ｐ＿ＩＩ）を実行する。
【０２３０】
[ステップＳ２８０３]
シーケンサ１１１は、第２プログラム動作を実行した後、第１プログラムベリファイ動作（Ｖ＿Ｉ）を実行する。
【０２３１】
このように、シーケンサ１１１は、第１プログラム動作と、第１プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０２３２】
[ステップＳ２８０４]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。
【０２３３】
[ステップＳ２８０５]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ２８０４、ＮＯ）、第１プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。
【０２３４】
[ステップＳ２８０６]
シーケンサ１１１は、ループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ２８０５、ＮＯ）、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる。
【０２３５】
[ステップＳ２８０７]
シーケンサ１１１は、第１プログラム動作（Ｐ＿Ｉ）を実行する。
【０２３６】
[ステップＳ２８０８]
シーケンサ１１１は、第１プログラム動作を実行した後、第２プログラムベリファイ動作（Ｖ＿ＩＩ）を実行する。
【０２３７】
このように、シーケンサ１１１は、第２プログラム動作と、第２プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０２３８】
[ステップＳ２８０９]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。
【０２３９】
[ステップＳ２８１０]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ２８０９、ＮＯ）、第２プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。
【０２４０】
[ステップＳ２８１１]
シーケンサ１１１は、ループ数が設定値（LValue_II）ではないと判定する場合（ステップＳ２８１０、ＮＯ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０２４１】
[ステップＳ２８１２]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ２８０４、ＹＥＳ）、または、ループ数が設定値（LValue_I）であると判定する場合（ステップＳ２８０５、ＹＥＳ）、第２プログラムベリファイ動作（Ｖ＿ＩＩ）を実行する。
【０２４２】
[ステップＳ２８１３]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。
【０２４３】
シーケンサ１１１は、シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ２８１３、Ｙｅｓ）、書込み動作を終了する。
【０２４４】
[ステップＳ２８１４]
シーケンサ１１１は、シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ２８１３、ＮＯ）、第２プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。
【０２４５】
シーケンサ１１１は、第２プログラム動作に係るループ数が設定値（LValue_II）であると判定する場合（ステップＳ２８１４、Ｙｅｓ）、書込み動作を終了する。
【０２４６】
[ステップＳ２８１５]
シーケンサ１１１は、第２プログラム動作に係るループ数が設定値（LValue_II）ではないと判定する場合（ステップＳ２８１４、ＮＯ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０２４７】
[ステップＳ２８１６]
シーケンサ１１１は、第２プログラム動作（Ｐ＿ＩＩ）を実行する。
【０２４８】
[ステップＳ２８１７]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ２８０９、ＹＥＳ）、または、ループ数が設定値（LValue_II）であると判定する場合（ステップＳ２８１０、ＹＥＳ）、第１プログラムベリファイ動作（Ｖ＿Ｉ）を実行する。
【０２４９】
[ステップＳ２８１８]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。
【０２５０】
シーケンサ１１１は、シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ２８１８、Ｙｅｓ）、書込み動作を終了する。
【０２５１】
[ステップＳ２８１９]
シーケンサ１１１は、シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ２８１８、ＮＯ）、第１プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。
【０２５２】
シーケンサ１１１は、第１プログラム動作に係るループ数が設定値（LValue_I）であると判定する場合（ステップＳ２８１９、Ｙｅｓ）、書込み動作を終了する。
【０２５３】
[ステップＳ２８２０]
シーケンサ１１１は、第１プログラム動作に係るループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ２８１９、ＮＯ）、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる。
【０２５４】
[ステップＳ２８２１]
シーケンサ１１１は、第１プログラム動作（Ｐ＿Ｉ）を実行する。
【０２５５】
＜１−７−２＞パルスの具体例
次に、第１の実施形態の変形例２のメモリシステムに係る書込み動作の具体例について説明する。
【０２５６】
続いて、図２９及び図３０を用いて、上述したメモリセルトランジスタＭＴに対して、本変形例２の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【０２５７】
図２９及び図３０では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【０２５８】
図２９及び図３０の例では、パルス番号１、２、３、５、１２に対応するパルスが（ｉ）のパルスに相当する。尚、パルス番号１２は、図２０、図２１で説明したパルス番号１４に相当する。
【０２５９】
図２９及び図３０の例では、パルス番号１、２、３、５、１２以外に対応するパルスが（ｉｉ）のパルスに相当する。
【０２６０】
＜１−８＞第１実施形態の変形例３
次に、第１の実施形態の変形例３のメモリシステムに係る書込み動作の具体例について説明する。
【０２６１】
続いて、図３１及び図３２を用いて、上述したメモリセルトランジスタＭＴに対して、本変形例３の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【０２６２】
図３１及び図３２では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
図３１及び図３２の例では、パルス番号１〜５、７、１２に対応するパルスが（ｉ）のパルスに相当する。尚、図３１及び図３２に示すように、シーケンサ１１１は、パルス番号１（Pulse no=1）に対応するパルスを、メモリセルトランジスタＭＴ（Ｂ）に対して印加する。このパルス番号１に対応するパルスは、例えば、１回目の第１プログラム動作時のパルスよりも大きい。このように、本例では、最初に、メモリセルトランジスタＭＴ（Ｂ）に対して、１回目の第１プログラム動作時のパルスよりも大きい電圧を印加する例である。
【０２６３】
図３１及び図３２の例では、パルス番号１〜５、７、１２以外に対応するパルスが（ｉｉ）のパルスに相当する。
【０２６４】
＜１−９＞第１実施形態の変形例４
第１実施形態の変形例４について説明する。第１実施形態の変形例４では、上述したデータの書込み方法と異なる書込み方法を第１実施形態に採用した場合について説明する。
【０２６５】
＜１−９−１＞動作
＜１−９−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図３３を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０２６６】
簡単のため図３３では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０２６７】
第１実施形態の変形例４に係る書込み動作は、第１〜第３書込み動作に分けられる。
【０２６８】
第１書込み動作は、“Ｂ”レベルに関する書込み動作である。第２書込み動作は、“Ｃ”レベルに関する書込み動作である。第３書込み動作は、“Ａ”レベルに関する書込み動作である。
【０２６９】
第１書込み動作は、“Ｂ”レベルの書込みに関する第１プログラム動作（Ｐ＿Ｉ）と、第１プログラム動作がパスしたか否かを判定する第１プログラムベリファイ動作（Ｖ＿Ｉ）と、を含んでいる。
【０２７０】
第２書込み動作は、“Ｃ”レベルの書込みに関する第２プログラム動作（Ｐ＿ＩＩ）と、第２プログラム動作がパスしたか否かを判定する第２プログラムベリファイ動作（Ｖ＿ＩＩ）と、を含んでいる。
【０２７１】
第３書込み動作は、“Ａ”レベルの書込みに関する第３プログラム動作（Ｐ＿ＩＩＩ）と、第３プログラム動作がパスしたか否かを判定する第３プログラムベリファイ動作（Ｖ＿ＩＩＩ）と、を含んでいる。
【０２７２】
第１プログラム動作において、選択ワード線ＷＬに印加される電圧ＶＰＧＭを電圧ＶＰＧＭ＿Ｉ（ｎ）と表記する。同様に、第２プログラム動作において、選択ワード線ＷＬに印加される電圧ＶＰＧＭを電圧ＶＰＧＭ＿ＩI（ｎ）と表記する。同様に、第３プログラム動作において、選択ワード線ＷＬに印加される電圧ＶＰＧＭを電圧ＶＰＧＭ＿ＩＩI（ｎ）と表記する。
【０２７３】
シーケンサ１１１は、第１プログラム動作を実行するたびに、電圧ＶＰＧＭ＿Ｉ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。同様にシーケンサ１１１は、第２プログラム動作を実行するたびに、電圧ＶＰＧＭ＿ＩＩ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。同様にシーケンサ１１１は、第３プログラム動作を実行するたびに、電圧ＶＰＧＭ＿ＩＩＩ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。電圧ＶＰＧＭ＿Ｉ（ｎ）、電圧ＶＰＧＭ＿ＩI（ｎ）、または電圧ＶＰＧＭ＿ＩＩＩ（ｎ）が電圧ＤＶＰＧＭずつインクリメントされる度に、ｎもインクリメントされる。
【０２７４】
第１プログラムベリファイ動作において、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹを電圧ＶＰＶＦＹ＿Ｉと表記する。第２プログラムベリファイ動作において、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹを電圧ＶＰＶＦＹ＿ＩＩと表記する。同様に第３プログラムベリファイ動作において、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹを電圧ＶＰＶＦＹ＿ＩＩＩと表記する。
【０２７５】
図３３に示すように、本例では、基本的に第１プログラム動作の直後に第１プログラムベリファイ動作が行われないように制御され、第２プログラム動作の直後に第２プログラムベリファイ動作が行われないように制御され、第３プログラム動作の直後に第３プログラムベリファイ動作が行われないように制御される。また、第３プログラム動作は、条件を満たした後に行われる。
【０２７６】
＜１−９−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図３４〜図４９を用いて、第１実施形態の変形例４に係るプログラム動作及びプログラムベリファイ動作の実行順序の生成方法について説明する。
【０２７７】
[ステップＳ３４０１]
まずシーケンサ１１１は、第２プログラム動作を実行する（図３４参照）。
【０２７８】
[ステップＳ３４０２]
シーケンサ１１１は、第１プログラム動作を実行する。
【０２７９】
[ステップＳ３４０３]
シーケンサ１１１は、第１プログラム動作を実行した後、第２プログラムベリファイ動作を実行する。
【０２８０】
このように、シーケンサ１１１は、第２プログラム動作と、第２プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０２８１】
[ステップＳ３４０４]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。
【０２８２】
[ステップＳ３４０５]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ３４０４、ＮＯ）、第２プログラム動作のループ数をカウントアップする。
【０２８３】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。
【０２８４】
[ステップＳ３４０６]
シーケンサ１１１は、ループ数が設定値（LValue_II）ではないと判定する場合（ステップＳ３４０５、ＮＯ）、条件を満たしているか否かを判定する。
【０２８５】
上記条件について説明する。上記条件とは、例えば「第１プログラム動作のループ数」、「第２プログラム動作のループ数」、「第１プログラムベリファイ動作のループ数」、「第２プログラムベリファイ動作のループ数」、のいずれか、または「種々のループ数の合計回数（組み合わせは任意）」が「設定値」に達すること等である。また、上記条件は、「所定のレベルの書込み動作が完了すること」でも良い。また、上述した上記条件は、一例であり上述以外の条件でも良い。
【０２８６】
例えば、「第１プログラム動作のループ数が設定値に達すること」が条件となる場合、シーケンサ１１１は、第１プログラム動作のループ数が設定値（JValue_I）であるか否かを判定する。
【０２８７】
更に例えば、「Ａレベルの書込み動作が完了すること」が条件となる場合、シーケンサ１１１は、Ａレベルの書込み動作が完了しているか否かを判定する。
【０２８８】
上記条件に係る情報は、例えばレジスタ１１２に記憶されている。より具体的には、この条件に係る情報は、例えば、メモリセルアレイ１３０に記憶されており、ＮＡＮＤ型フラッシュメモリ１００を起動させたときに、レジスタ１１２に読み出されるような構成でも良い。
【０２８９】
なお、以下に登場する各「条件」はそれぞれ異なる条件であっても良い。このことは、他の実施形態でも同様である。
【０２９０】
[ステップＳ３４０７]
シーケンサ１１１は、条件を満たさないと判定する場合（ステップＳ３４０６、ＮＯ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０２９１】
[ステップＳ３４０８]
シーケンサ１１１は、第２プログラム動作を実行する。
【０２９２】
[ステップＳ３４０９]
シーケンサ１１１は、第２プログラム動作を実行した後、第１プログラムベリファイ動作を実行する。
【０２９３】
このように、シーケンサ１１１は、第１プログラム動作と、第１プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０２９４】
[ステップＳ３４１０]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。 [ステップＳ３４１１]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ３４１０、ＮＯ）、第１プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。
【０２９５】
[ステップＳ３４１２]
シーケンサ１１１は、ループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ３４１１、ＮＯ）、条件を満たしているか否かを判定する。ところで、ステップ３４１２における「条件」は、ステップＳ３４０６における「条件」と異なっていても良い。
【０２９６】
[ステップＳ３４１３]
シーケンサ１１１は、条件を満たしていないと判定する場合（ステップＳ３４１２、ＮＯ）、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる。そして、シーケンサ１１１は、その後ステップＳ３４０２を実行する。
【０２９７】
[ステップＳ３５０１]
シーケンサ１１１は、ステップＳ３４０６において「条件を満たしている」と判定する場合（ステップＳ３４０６、Ｙｅｓ）、第３プログラム動作を実行する（図３５参照）。
【０２９８】
[ステップＳ３５０２]
シーケンサ１１１は、第３プログラム動作を実行した後、第１プログラムベリファイ動作を実行する。
【０２９９】
このように、シーケンサ１１１は、第１プログラム動作と、第１プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０３００】
[ステップＳ３５０３]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。 
[ステップＳ３５０４]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ３５０３、ＮＯ）、第１プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。
【０３０１】
[ステップＳ３５０５]
シーケンサ１１１は、ループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ３５０４、ＮＯ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０３０２】
[ステップＳ３５０６]
シーケンサ１１１は、第２プログラム動作を実行する。
【０３０３】
[ステップＳ３５０７]
シーケンサ１１１は、第２プログラム動作を実行した後、第３プログラムベリファイ動作を実行する。
【０３０４】
このように、シーケンサ１１１は、第３プログラム動作と、第３プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０３０５】
[ステップＳ３５０８]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスか否かを判定する。より具体的にはシーケンサ１１１は、第３プログラムベリファイ動作によってフェイルビットと判定されたフェイルビット数が設定値（FValue_III）以上であるか否かを判定する。フェイルビット数が設定値（FValue_III）未満である場合、シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスであると判定する。この設定値（FValue_III）は、例えばＥＣＣ回路２０６で救済できないフェイルビット数である。この設定値（FValue_III）は、例えばレジスタ１１２に記憶されている。より具体的には、この設定値（FValue_III）は、例えば、メモリセルアレイ１３０に記憶されており、ＮＡＮＤ型フラッシュメモリ１００を起動させたときに、レジスタ１１２に読み出されるような構成でも良い。つまり、シーケンサ１１１は、レジスタ１１２に記憶された設定値（FValue_III）と、フェイルビット数と、を比較する。
【０３０６】
[ステップＳ３５０９]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ３５０８、ＮＯ）、第３プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第３プログラム動作のループ数が設定値（LValue_III）であるか否かを判定する。例えば、第３プログラム動作のループ数は、レジスタ１１２等に記憶される。そして、第３プログラム動作のループ数のカウントは、シーケンサ１１１が行っても良いし、それ以外の構成で行っても良い。
【０３０７】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第３プログラム動作のループ数が設定値（LValue_III）であるか否かを判定する。この設定値（LValue_III）は、例えばレジスタ１１２に記憶されている。より具体的には、この設定値（LValue_III）は、例えば、メモリセルアレイ１３０に記憶されており、ＮＡＮＤ型フラッシュメモリ１００を起動させたときに、レジスタ１１２に読み出されるような構成でも良い。つまり、シーケンサ１１１は、レジスタ１１２に記憶された設定値（LValue_III）と、第３プログラム動作のループ数と、を比較する。
【０３０８】
[ステップＳ３５１０]
シーケンサ１１１は、ループ数が設定値（LValue_III）ではないと判定する場合（ステップＳ３５０９、ＮＯ）、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる。
【０３０９】
[ステップＳ３５１１]
シーケンサ１１１は、第１プログラム動作を実行する。
【０３１０】
[ステップＳ３５１２]
シーケンサ１１１は、第１プログラム動作を実行した後、第２プログラムベリファイ動作を実行する。
【０３１１】
このように、シーケンサ１１１は、第２プログラム動作と、第２プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０３１２】
[ステップＳ３５１３]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。 
[ステップＳ３５１４]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ３５１３、ＮＯ）、第２プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。
【０３１３】
[ステップＳ３５１５]
シーケンサ１１１は、ループ数が設定値（LValue_II）ではないと判定する場合（ステップＳ３５１４、ＮＯ）、第３プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。その後、シーケンサ１１１は、ステップＳ３５０１を実行する。
【０３１４】
[ステップＳ３６０１]
シーケンサ１１１は、ステップＳ３５０３において「第１プログラムベリファイ動作の結果がパスある」と判定する場合（ステップＳ３５０３、ＹＥＳ）、またはステップＳ３５０４において「ループ数は設定値（LValue_I）である」と判定する場合（ステップＳ３５０４、Ｙｅｓ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる（図３６参照）。
【０３１５】
[ステップＳ３６０２]
シーケンサ１１１は、第２プログラム動作を実行する。
【０３１６】
[ステップＳ３６０３]
シーケンサ１１１は、第２プログラム動作を実行した後、第３プログラムベリファイ動作を実行する。
【０３１７】
このように、シーケンサ１１１は、第３プログラム動作と、第＃プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０３１８】
[ステップＳ３６０４]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスか否かを判定する。
【０３１９】
[ステップＳ３６０５]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ３６０４、Ｎｏ）、第３プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第３プログラム動作のループ数が設定値（LValue_III）であるか否かを判定する。
【０３２０】
[ステップＳ３６０６]
シーケンサ１１１は、ループ数が設定値（LValue_III）ではないと判定する場合（ステップＳ３６０５、ＮＯ）、第３プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０３２１】
[ステップＳ３６０７]
シーケンサ１１１は、第３プログラム動作を実行する。
【０３２２】
[ステップＳ３６０８]
シーケンサ１１１は、第３プログラム動作を実行した後、第２プログラムベリファイ動作を実行する。
【０３２３】
このように、シーケンサ１１１は、第２プログラム動作と、第２プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０３２４】
[ステップＳ３６０９]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。 
[ステップＳ３６１０]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ３６０９、Ｎｏ）、第２プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。
【０３２５】
シーケンサ１１１は、ループ数が設定値（LValue_II）ではないと判定する場合（ステップＳ３６１０、Ｎｏ）、ステップＳ３６０１を繰り返す。
【０３２６】
[ステップＳ３７０１]
シーケンサ１１１は、ステップＳ３６０４において「第３プログラムベリファイ動作の結果がパスある」と判定する場合（ステップＳ３６０４、Ｙｅｓ）、またはステップＳ３６０５において「ループ数は設定値（LValue_III）である」と判定する場合（ステップＳ３６０５、Ｙｅｓ）、第２プログラムベリファイ動作を実行する（図３７参照）。
【０３２７】
[ステップＳ３７０２]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。
【０３２８】
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ３７０２、Ｙｅｓ）、書込み動作を終了する。
【０３２９】
[ステップＳ３７０３]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ３７０２、Ｎｏ）、第２プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。
【０３３０】
シーケンサ１１１は、ループ数が設定値（LValue_II）であると判定する場合（ステップＳ３７０３、Ｙｅｓ）、書込み動作を終了する。
【０３３１】
[ステップＳ３７０４]
シーケンサ１１１は、ループ数が設定値（LValue_II）ではないと判定する場合（ステップＳ３７０３、Ｎｏ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０３３２】
[ステップＳ３７０５]
シーケンサ１１１は、第２プログラム動作を実行する。
【０３３３】
[ステップＳ３８０１]
シーケンサ１１１は、ステップＳ３６０９において「第２プログラムベリファイ動作の結果がパスある」と判定する場合（ステップＳ３６０９、ＹＥＳ）、またはステップＳ３６１０において「ループ数は設定値（LValue_II）である」と判定する場合（ステップＳ３６１０、Ｙｅｓ）、第３プログラムベリファイ動作を実行する（図３８参照）。
【０３３４】
[ステップＳ３８０２]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスか否かを判定する。
【０３３５】
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ３８０２、Ｙｅｓ）、書込み動作を終了する。
【０３３６】
[ステップＳ３８０３]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ３８０２、ＮＯ）、第３プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第３プログラム動作のループ数が設定値（LValue_III）であるか否かを判定する。
【０３３７】
シーケンサ１１１は、ループ数が設定値（LValue_III）であると判定する場合（ステップＳ３８０３、Ｙｅｓ）、書込み動作を終了する。
【０３３８】
[ステップＳ３８０４]
シーケンサ１１１は、ループ数が設定値（LValue_III）ではないと判定する場合（ステップＳ３８０３、Ｎｏ）、第３プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０３３９】
[ステップＳ３８０５]
シーケンサ１１１は、第３プログラム動作を実行する。
【０３４０】
[ステップＳ３９０１]
シーケンサ１１１は、ステップＳ３５０８において「第３プログラムベリファイ動作の結果がパスある」と判定する場合（ステップＳ３５０８、Ｙｅｓ）、またはステップＳ３５０９において「ループ数は設定値（LValue_III）である」と判定する場合（ステップＳ３５０９、Ｙｅｓ）、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる（図３９参照）。
【０３４１】
[ステップＳ３９０２]
シーケンサ１１１は、第１プログラム動作を実行する。
【０３４２】
[ステップＳ３９０３]
シーケンサ１１１は、第２プログラムベリファイ動作を実行する。
【０３４３】
このように、シーケンサ１１１は、第２プログラム動作と、第２プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０３４４】
[ステップＳ３９０４]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。
【０３４５】
[ステップＳ３９０５]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ３９０４、Ｎｏ）、第２プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。
【０３４６】
[ステップＳ３９０６]
シーケンサ１１１は、ループ数が設定値（LValue_II）ではないと判定する場合（ステップＳ３９０５、Ｎｏ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０３４７】
[ステップＳ３９０７]
シーケンサ１１１は、第２プログラム動作を実行する。
【０３４８】
[ステップＳ３９０８]
シーケンサ１１１は、第１プログラムベリファイ動作を実行する。
【０３４９】
このように、シーケンサ１１１は、第１プログラム動作と、第１プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０３５０】
[ステップＳ３９０９]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。
【０３５１】
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ３９０９、Ｙｅｓ）、ステップＳ３７０１を実行する。
【０３５２】
[ステップＳ３９１０]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ３９０９、Ｎｏ）、第１プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。
【０３５３】
シーケンサ１１１は、ループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ３９１０、Ｎｏ）、ステップＳ３９０１を繰り返す。
【０３５４】
シーケンサ１１１は、ループ数が設定値（LValue_I）であると判定する場合（ステップＳ３９１０、Ｙｅｓ）、ステップＳ３７０１を実行する。
【０３５５】
[ステップＳ４００１]
シーケンサ１１１は、ステップＳ３９０４において「第２プログラムベリファイ動作の結果がパスある」と判定する場合（ステップＳ３９０４、Ｙｅｓ）、またはステップＳ３９０５において「ループ数は設定値（LValue_II）である」と判定する場合（ステップＳ３９０５、Ｙｅｓ）、第１プログラムベリファイ動作を実行する（図４０参照）。
【０３５６】
[ステップＳ４００２]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。
【０３５７】
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ４００２、Ｙｅｓ）、書込み動作を終了する。
【０３５８】
[ステップＳ４００３]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ４００２、Ｎｏ）、第１プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。
【０３５９】
シーケンサ１１１は、ループ数が設定値（LValue_I）であると判定する場合（ステップＳ４００３、Ｙｅｓ）、書込み動作を終了する。
【０３６０】
[ステップＳ４００４]
シーケンサ１１１は、ループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ４００３、Ｎｏ）、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる。
【０３６１】
[ステップＳ４００５]
シーケンサ１１１は、第１プログラム動作を実行する。
【０３６２】
[ステップＳ４１０１]
シーケンサ１１１は、ステップＳ３５１３において「第２プログラムベリファイ動作の結果がパスある」と判定する場合（ステップＳ３５１３、ＹＥＳ）、またはステップＳ３５１４において「ループ数は設定値（LValue_II）である」と判定する場合（ステップＳ３５１４、Ｙｅｓ）、第３プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩを電圧ＤＶＰＧＭだけインクリメントさせる（図４１参照）。
【０３６３】
[ステップＳ４１０２]
シーケンサ１１１は、第３プログラム動作を実行する。
【０３６４】
[ステップＳ４１０３]
シーケンサ１１１は、第１プログラムベリファイ動作を実行する。
【０３６５】
このように、シーケンサ１１１は、第１プログラム動作と、第１プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０３６６】
[ステップＳ４１０４]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。
【０３６７】
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ４１０４、Ｙｅｓ）、ステップＳ３８０１を実行する。
【０３６８】
[ステップＳ４１０５]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ４１０４、Ｎｏ）、第１プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。
【０３６９】
シーケンサ１１１は、ループ数が設定値（LValue_I）であると判定する場合（ステップＳ４１０５、Ｙｅｓ）、ステップＳ３８０１を実行する。
【０３７０】
[ステップＳ４１０６]
シーケンサ１１１は、ループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ４１０５、Ｎｏ）、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる。
【０３７１】
[ステップＳ４１０７]
シーケンサ１１１は、第１プログラム動作を実行する。
【０３７２】
[ステップＳ４１０８]
シーケンサ１１１は、第３プログラムベリファイ動作を実行する。
【０３７３】
このように、シーケンサ１１１は、第３プログラム動作と、第３プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０３７４】
[ステップＳ４１０９]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスか否かを判定する。
【０３７５】
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ４１０９、Ｙｅｓ）、ステップＳ４００１を実行する。
【０３７６】
[ステップＳ４１１０]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ４１０９、Ｎｏ）、第３プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第３プログラム動作のループ数が設定値（LValue_III）であるか否かを判定する。
【０３７７】
シーケンサ１１１は、ループ数が設定値（LValue_III）ではないと判定する場合（ステップＳ４１１０、Ｎｏ）、ステップＳ４１０１を繰り返す。
【０３７８】
シーケンサ１１１は、ループ数が設定値（LValue_III）であると判定する場合（ステップＳ４１１０、Ｙｅｓ）、ステップＳ４００１を実行する。
【０３７９】
[ステップＳ４２０１]
シーケンサ１１１は、ステップＳ３４１２において「条件を満たしている」と判定する場合（ステップＳ３４１２、Ｙｅｓ）、第３プログラム動作を実行する（図４２参照）。
【０３８０】
[ステップＳ４２０２]
シーケンサ１１１は、第３プログラム動作を実行した後、第２プログラムベリファイ動作を実行する。
【０３８１】
このように、シーケンサ１１１は、第２プログラム動作と、第２プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０３８２】
[ステップＳ４２０３]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。 
[ステップＳ４２０４]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ４２０３、Ｎｏ）、第２プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。
【０３８３】
[ステップＳ４２０５]
シーケンサ１１１は、ループ数が設定値（LValue_II）ではないと判定する場合（ステップＳ４２０４、Ｎｏ）、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる。
【０３８４】
[ステップＳ４２０６]
シーケンサ１１１は、第１プログラム動作を実行する。
【０３８５】
[ステップＳ４２０７]
シーケンサ１１１は、第１プログラム動作を実行した後、第３プログラムベリファイ動作を実行する。
【０３８６】
このように、シーケンサ１１１は、第３プログラム動作と、第３プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０３８７】
[ステップＳ４２０８]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスか否かを判定する。
【０３８８】
[ステップＳ４２０９]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ４２０８、Ｎｏ）、第３プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第３プログラム動作のループ数が設定値（LValue_III）であるか否かを判定する。
【０３８９】
[ステップＳ４２１０]
シーケンサ１１１は、ループ数が設定値（LValue_III）ではないと判定する場合（ステップＳ４２０９、Ｎｏ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０３９０】
[ステップＳ４２１１]
シーケンサ１１１は、第２プログラム動作を実行する。
【０３９１】
[ステップＳ４２１２]
シーケンサ１１１は、第２プログラム動作を実行した後、第１プログラムベリファイ動作を実行する。
【０３９２】
このように、シーケンサ１１１は、第１プログラム動作と、第１プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０３９３】
[ステップＳ４２１３]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。 
[ステップＳ４２１４]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ４２１３、Ｎｏ）、第１プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。
【０３９４】
[ステップＳ４２１５]
シーケンサ１１１は、ループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ４２１４、Ｎｏ）、第３プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０３９５】
[ステップＳ４３０１]
シーケンサ１１１は、ステップＳ４２０３において「第２プログラムベリファイ動作の結果がパスある」と判定する場合（ステップＳ４２０３、Ｙｅｓ）、またはステップＳ４２０４において「ループ数は設定値（LValue_II）である」と判定する場合（ステップＳ４２０４、Ｙｅｓ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる（図４３参照）。
【０３９６】
[ステップＳ４３０２]
シーケンサ１１１は、第１プログラム動作を実行する。
【０３９７】
[ステップＳ４３０３]
シーケンサ１１１は、第１プログラム動作を実行した後、第３プログラムベリファイ動作を実行する。
【０３９８】
このように、シーケンサ１１１は、第３プログラム動作と、第３プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０３９９】
[ステップＳ４３０４]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスか否かを判定する。
【０４００】
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ４３０４、Ｙｅｓ）、ステップＳ４００１を実行する。
【０４０１】
[ステップＳ４３０５]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ４３０４、Ｎｏ）、第３プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第３プログラム動作のループ数が設定値（LValue_III）であるか否かを判定する。
【０４０２】
シーケンサ１１１は、ループ数が設定値（LValue_III）であると判定する場合（ステップＳ４３０５、Ｙｅｓ）、ステップＳ４００１を実行する。
【０４０３】
[ステップＳ４３０６]
シーケンサ１１１は、ループ数が設定値（LValue_III）ではないと判定する場合（ステップＳ４３０５、Ｎｏ）、第３プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０４０４】
[ステップＳ４３０７]
シーケンサ１１１は、第３プログラム動作を実行する。
【０４０５】
[ステップＳ４３０８]
シーケンサ１１１は、第３プログラム動作を実行した後、第１プログラムベリファイ動作を実行する。
【０４０６】
このように、シーケンサ１１１は、第１プログラム動作と、第１プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０４０７】
[ステップＳ４３０９]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。 
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ４３０９、Ｙｅｓ）、ステップＳ３８０１を実行する。
【０４０８】
[ステップＳ４３１０]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ４３０９、Ｎｏ）、第２プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。
【０４０９】
シーケンサ１１１は、ループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ４３１０、Ｎｏ）、ステップＳ４３０１を繰り返す。
【０４１０】
シーケンサ１１１は、ループ数が設定値（LValue_I）であると判定する場合（ステップＳ４３１０、Ｙｅｓ）、ステップＳ３８０１を実行する。
【０４１１】
[ステップＳ４４０１]
シーケンサ１１１は、ステップＳ４２０８において「第３プログラムベリファイ動作の結果がパスある」と判定する場合（ステップＳ４２０８、ＹＥＳ）、またはステップＳ４２０９において「ループ数は設定値（LValue_III）である」と判定する場合（ステップＳ４２０９、Ｙｅｓ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる（図４４参照）。
【０４１２】
[ステップＳ４４０２]
シーケンサ１１１は、第２プログラム動作を実行する。
【０４１３】
[ステップＳ４４０３]
シーケンサ１１１は、第１プログラムベリファイ動作を実行する。
【０４１４】
このように、シーケンサ１１１は、第１プログラム動作と、第１プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０４１５】
[ステップＳ４４０４]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。
【０４１６】
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ４４０４、Ｙｅｓ）、ステップＳ３７０１を実行する。
【０４１７】
[ステップＳ４４０５]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ４４０４、Ｎｏ）、第１プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。
【０４１８】
シーケンサ１１１は、ループ数が設定値（LValue_I）であると判定する場合（ステップＳ４４０５、Ｙｅｓ）、ステップＳ３７０１を実行する。
【０４１９】
[ステップＳ４４０６]
シーケンサ１１１は、ループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ４４０５、Ｎｏ）、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる。
【０４２０】
[ステップＳ４４０７]
シーケンサ１１１は、第１プログラム動作を実行する。
【０４２１】
[ステップＳ４４０８]
シーケンサ１１１は、第２プログラムベリファイ動作を実行する。
【０４２２】
このように、シーケンサ１１１は、第２プログラム動作と、第２プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０４２３】
[ステップＳ４４０９]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。
【０４２４】
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ４４０９、Ｙｅｓ）、ステップＳ４００１を実行する。
【０４２５】
[ステップＳ４４１０]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ４４０９、Ｎｏ）、第２プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。
【０４２６】
シーケンサ１１１は、ループ数が設定値（LValue_II）ではないと判定する場合（ステップＳ４４１０、Ｎｏ）、ステップＳ４４０１を繰り返す。
【０４２７】
シーケンサ１１１は、ループ数が設定値（LValue_II）であると判定する場合（ステップＳ４４１０、Ｙｅｓ）、ステップＳ４００１を実行する。
【０４２８】
[ステップＳ４５０１]
シーケンサ１１１は、ステップＳ４２１３において「第１プログラムベリファイ動作の結果がパスある」と判定する場合（ステップＳ４２１３、Ｙｅｓ）、またはステップＳ４２１４において「ループ数は設定値（LValue_I）である」と判定する場合（ステップＳ４２１４、Ｙｅｓ）、第３プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩを電圧ＤＶＰＧＭだけインクリメントさせる（図４５参照）。
【０４２９】
[ステップＳ４５０２]
シーケンサ１１１は、第３プログラム動作を実行する。
【０４３０】
[ステップＳ４５０３]
シーケンサ１１１は、第２プログラムベリファイ動作を実行する。
【０４３１】
このように、シーケンサ１１１は、第２プログラム動作と、第２プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０４３２】
[ステップＳ４５０４]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。
【０４３３】
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ４５０４、Ｙｅｓ）、ステップＳ３８０１を実行する。
【０４３４】
[ステップＳ４５０５]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ４５０４、ＮＯ）、第２プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。
【０４３５】
シーケンサ１１１は、ループ数が設定値（LValue_II）であると判定する場合（ステップＳ４５０５、Ｙｅｓ）、ステップＳ３８０１を実行する。
【０４３６】
[ステップＳ４５０６]
シーケンサ１１１は、ループ数が設定値（LValue_II）ではないと判定する場合（ステップＳ４５０５、Ｎｏ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０４３７】
[ステップＳ４５０７]
シーケンサ１１１は、第２プログラム動作を実行する。
【０４３８】
[ステップＳ４５０８]
シーケンサ１１１は、第３プログラムベリファイ動作を実行する。
【０４３９】
このように、シーケンサ１１１は、第３プログラム動作と、第３プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０４４０】
[ステップＳ４５０９]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスか否かを判定する。
【０４４１】
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ４５０９、Ｙｅｓ）、ステップＳ３７０１を実行する。
【０４４２】
[ステップＳ４５１０]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ４５０９、Ｎｏ）、第３プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第３プログラム動作のループ数が設定値（LValue_III）であるか否かを判定する。
【０４４３】
シーケンサ１１１は、ループ数が設定値（LValue_III）ではないと判定する場合（ステップＳ４５１０、Ｎｏ）、ステップＳ４５０１を繰り返す。
【０４４４】
シーケンサ１１１は、ループ数が設定値（LValue_III）であると判定する場合（ステップＳ４５１０、Ｙｅｓ）、ステップＳ３７０１を実行する。
【０４４５】
[ステップＳ４６０１]
シーケンサ１１１は、ステップＳ３４０４において「第２プログラムベリファイ動作の結果がパスある」と判定する場合（ステップＳ３４０４、Ｙｅｓ）、またはステップＳ３４０５において「ループ数は設定値（LValue_II）である」と判定する場合（ステップＳ３４０５、Ｙｅｓ）、条件を満たしているか否かを判定する（図４６参照）。ところで、ステップＳ４６０１における「条件」は、ステップＳ３４０６、Ｓ３４１２における「条件」と異なっていても良い。
【０４４６】
[ステップＳ４６０２]
シーケンサ１１１は、条件を満たさないと判定する場合（ステップＳ４６０１、Ｎｏ）、第１プログラムベリファイ動作を実行する。
【０４４７】
[ステップＳ４６０３]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。
【０４４８】
[ステップＳ４６０４]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ４６０３、Ｎｏ）、第１プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。
【０４４９】
[ステップＳ４６０５]
シーケンサ１１１は、ループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ４６０４、Ｎｏ）、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる。
【０４５０】
[ステップＳ４６０６]
シーケンサ１１１は、第１プログラム動作を実行する。そして、シーケンサ１１１は、ステップＳ４６０１を実行する。
【０４５１】
[ステップＳ４６０７]
ステップＳ４６０３においてシーケンサ１１１が第１プログラムベリファイ動作の結果がパスあると判定する場合（ステップＳ４６０３、Ｙｅｓ）、またはステップＳ４６０４においてシーケンサ１１１がループ数は設定値（LValue_I）であると判定する場合（ステップＳ４６０４、Ｙｅｓ）、シーケンサ１１１は、第３プログラム動作を実行する。その後、シーケンサ１１１は、ステップＳ３８０１を実行する。
【０４５２】
[ステップＳ４７０１]
シーケンサ１１１は、ステップＳ４６０１において「条件を満たしている」と判定する場合（ステップＳ４６０１、Ｙｅｓ）、第３プログラム動作を実行する（図４７参照）。
【０４５３】
[ステップＳ４７０２]
シーケンサ１１１は、第１プログラムベリファイ動作を実行する。
【０４５４】
このように、シーケンサ１１１は、第１プログラム動作と、第１プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０４５５】
[ステップＳ４７０３]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。
【０４５６】
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ４７０４、Ｙｅｓ）、ステップＳ３８０１を実行する。
【０４５７】
[ステップＳ４７０４]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ４７０４、Ｎｏ）、第１プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。
【０４５８】
シーケンサ１１１は、ループ数が設定値（LValue_I）であると判定する場合（ステップＳ４７０５、Ｙｅｓ）、ステップＳ３８０１を実行する。
【０４５９】
[ステップＳ４７０５]
シーケンサ１１１は、ループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ４７０５、Ｎｏ）、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる。
【０４６０】
[ステップＳ４７０６]
シーケンサ１１１は、第１プログラム動作を実行する。
【０４６１】
[ステップＳ４７０７]
シーケンサ１１１は、第３プログラムベリファイ動作を実行する。
【０４６２】
このように、シーケンサ１１１は、第３プログラム動作と、第３プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０４６３】
[ステップＳ４７０８]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスか否かを判定する。
【０４６４】
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ４７０８、Ｙｅｓ）、ステップＳ４００１を実行する。
【０４６５】
[ステップＳ４７０９]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ４７０８、Ｎｏ）、第３プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第３プログラム動作のループ数が設定値（LValue_III）であるか否かを判定する。
【０４６６】
シーケンサ１１１は、ループ数が設定値（LValue_III）であると判定する場合（ステップＳ４７０９、Ｙｅｓ）、ステップＳ４００１を実行する。
【０４６７】
[ステップＳ４７１０]
シーケンサ１１１は、ループ数が設定値（LValue_III）ではないと判定する場合（ステップＳ４７０９、Ｎｏ）、第３プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。そして、シーケンサ１１１は、ステップＳ４７０１を繰り返す。
【０４６８】
[ステップＳ４８０１]
シーケンサ１１１は、ステップＳ３４１０において「第１プログラムベリファイ動作の結果がパスある」と判定する場合（ステップＳ３４１０、Ｙｅｓ）、またはステップＳ３４１１において「ループ数は設定値（LValue_I）である」と判定する場合（ステップＳ３４１１、Ｙｅｓ）、条件を満たしているか否かを判定する（図４８参照）。ところで、ステップＳ４８０１における「条件」は、ステップＳ３４０６、Ｓ３４１２、Ｓ４６０１における「条件」と異なっていても良い。
【０４６９】
[ステップＳ４８０２]
シーケンサ１１１は、条件を満たさないと判定する場合（ステップＳ４８０１、Ｎｏ）、第２プログラムベリファイ動作を実行する。
【０４７０】
[ステップＳ４８０３]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。
【０４７１】
[ステップＳ４８０４]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ４８０３、Ｎｏ）、第２プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。
【０４７２】
[ステップＳ４８０５]
シーケンサ１１１は、ループ数が設定値（LValue_II）ではないと判定する場合（ステップＳ４８０４、Ｎｏ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０４７３】
[ステップＳ４８０６]
シーケンサ１１１は、第２プログラム動作を実行する。そして、シーケンサ１１１は、ステップＳ４８０１を実行する。
【０４７４】
[ステップＳ４８０７]
ステップＳ４８０３においてシーケンサ１１１が第２プログラムベリファイ動作の結果がパスあると判定する場合（ステップＳ４８０３、Ｙｅｓ）、またはステップＳ４８０４においてシーケンサ１１１がループ数は設定値（LValue_II）であると判定する場合（ステップＳ４８０４、Ｙｅｓ）、シーケンサ１１１は、第３プログラム動作を実行する。そして、シーケンサ１１１は、ステップＳ３８０１を実行する。
【０４７５】
[ステップＳ４９０１]
シーケンサ１１１は、ステップＳ４８０１において「条件を満たしている」と判定する場合（ステップＳ４８０１、Ｙｅｓ）、第３プログラム動作を実行する（図４９参照）。
【０４７６】
[ステップＳ４９０２]
シーケンサ１１１は、第２プログラムベリファイ動作を実行する。
【０４７７】
このように、シーケンサ１１１は、第２プログラム動作と、第２プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０４７８】
[ステップＳ４９０３]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。
【０４７９】
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ４９０３、Ｙｅｓ）、ステップＳ３８０１を実行する。
【０４８０】
[ステップＳ４９０４]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ４９０３、Ｎｏ）、第２プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。
【０４８１】
シーケンサ１１１は、ループ数が設定値（LValue_II）であると判定する場合（ステップＳ４９０４、Ｙｅｓ）、ステップＳ３８０１を実行する。
【０４８２】
[ステップＳ４９０５]
シーケンサ１１１は、ループ数が設定値（LValue_II）ではないと判定する場合（ステップＳ４９０４、Ｎｏ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０４８３】
[ステップＳ４９０６]
シーケンサ１１１は、第２プログラム動作を実行する。
【０４８４】
[ステップＳ４９０７]
シーケンサ１１１は、第３プログラムベリファイ動作を実行する。
【０４８５】
このように、シーケンサ１１１は、第３プログラム動作と、第３プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０４８６】
[ステップＳ４９０８]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスか否かを判定する。
【０４８７】
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ４９０８、Ｙｅｓ）、ステップＳ３７０１を実行する。
【０４８８】
[ステップＳ４９０９]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ４９０８、Ｎｏ）、第３プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第３プログラム動作のループ数が設定値（LValue_III）であるか否かを判定する。
【０４８９】
シーケンサ１１１は、ループ数が設定値（LValue_III）であると判定する場合（ステップＳ４９０９、Ｙｅｓ）、ステップＳ３７０１を実行する。
【０４９０】
[ステップＳ４９１０]
シーケンサ１１１は、ループ数が設定値（LValue_III）でないと判定する場合（ステップＳ４９０９、Ｎｏ）、第３プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。そして、シーケンサ１１１は、ステップＳ４９０１を繰り返す。
【０４９１】
＜１−９−２＞パルスの具体例
次に、第１の実施形態の変形例４のメモリシステムに係る書込み動作の具体例について説明する。
【０４９２】
続いて、図５０及び図５１を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【０４９３】
図５０及び図５１では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【０４９４】
図５０及び図５１の例では、パルス番号１〜３、５に対応するパルスが（ｉ）のパルスに相当する。
【０４９５】
図５０及び図５１の例では、パルス番号１〜３、５以外に対応するパルスが（ｉｉ）のパルスに相当する。
【０４９６】
上述したように、シーケンサ１１１は、書き込み動作中に条件を満たしているか否かを判定する。そして、シーケンサ１１１は、条件を満たしていると判定する場合、第３プログラム動作を実行する。具体的には、シーケンサ１１１は、例えばパルス番号１７（Pulse no=17）のパルスを印加した後、条件を満たしていると判定するため、パルス番号１８（Pulse no=18）にて、第３のプログラム動作を開始する。
【０４９７】
＜１−１０＞第１実施形態の変形例５
第１実施形態の変形例５について説明する。第１実施形態の変形例５では、上述したデータの書込み方法と異なる書込み方法を第１実施形態に採用した場合について説明する。
【０４９８】
＜１−１０−１＞動作
＜１−１０−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図５２を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０４９９】
簡単のため図５２では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０５００】
第１実施形態の変形例５に係る書込み動作は、第１実施形態の変形例４と同様に第１〜第３書込み動作に分けられる。
【０５０１】
第１実施形態の変形例５と第１実施形態の変形例４とで異なる点は、第３プログラム動作の直後に第１プログラム動作を行っている点である。
【０５０２】
＜１−１０−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図５３、図５４を用いて、第１実施形態の変形例５に係るプログラム動作及びプログラムベリファイ動作の実行順序の生成方法について説明する。
【０５０３】
ステップＳ５３０１〜ステップＳ５３１１（図５３参照）は、図３４のステップＳ３４０１〜ステップＳ３４１１に対応する。
【０５０４】
[ステップＳ５３１２]
シーケンサ１１１は、ループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ５３１１、Ｎｏ）、条件を満たしているか否かを判定する。ところで、ステップＳ５３１２における「条件」は、ステップＳ５３０６における「条件」と異なっていても良い。
【０５０５】
シーケンサ１１１は、条件を満たすと判定する場合（ステップＳ５３１２、Ｙｅｓ）、図５４に示す動作を実行する。
【０５０６】
[ステップＳ５３１３]
シーケンサ１１１は、ステップＳ３４１３と同様の動作を実行する。
【０５０７】
[ステップＳ５４０１]
シーケンサ１１１は、ステップＳ５３１２において「条件を満たしている」と判定する場合、第３プログラムを実行する（図５４参照）。
【０５０８】
[ステップＳ５４０２]
シーケンサ１１１は、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる。
【０５０９】
[ステップＳ５４０３]
シーケンサ１１１は、第１プログラム動作を実行する。
【０５１０】
[ステップＳ５４０４]
シーケンサ１１１は、第１プログラム動作を実行した後、第２プログラムベリファイ動作を実行する。
【０５１１】
このように、シーケンサ１１１は、第２プログラム動作と、第２プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０５１２】
[ステップＳ５４０５]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。 シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ５４０５、Ｙｅｓ）、ステップＳ４３０１を実行する。
【０５１３】
[ステップＳ５４０６]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ５４０５、Ｎｏ）、第２プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。シーケンサ１１１は、ループ数が設定値（LValue_II）であると判定する場合（ステップＳ５４０６、Ｙｅｓ）、ステップＳ４３０１を実行する。
【０５１４】
[ステップＳ５４０７]
シーケンサ１１１は、ループ数が設定値（LValue_II）ではないと判定する場合（ステップＳ５４０６、Ｎｏ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０５１５】
[ステップＳ５４０８]
シーケンサ１１１は、第２プログラム動作を実行する。
【０５１６】
[ステップＳ５４０９]
シーケンサ１１１は、第２プログラム動作を実行した後、第３プログラムベリファイ動作を実行する。
【０５１７】
このように、シーケンサ１１１は、第３プログラム動作と、第３プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０５１８】
[ステップＳ５４１０]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスか否かを判定する。シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ５４１０、Ｙｅｓ）、ステップＳ４４０１を実行する。
【０５１９】
[ステップＳ５４１１]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ５４１０、Ｎｏ）、第３プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第３プログラム動作のループ数が設定値（LValue_III）であるか否かを判定する。シーケンサ１１１は、ループ数が設定値（LValue_III）であると判定する場合（ステップＳ５４１１、Ｙｅｓ）、ステップＳ４４０１を実行する。
【０５２０】
[ステップＳ５４１２]
シーケンサ１１１は、ループ数が設定値（LValue_III）ではないと判定する場合（ステップＳ５４１１、Ｎｏ）、第１プログラムベリファイ動作（Ｖ＿Ｉ）を実行する。
【０５２１】
このように、シーケンサ１１１は、第１プログラム動作と、第１プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０５２２】
[ステップＳ５４１３]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。 シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ５４１３、Ｙｅｓ）、ステップＳ４５０１を実行する。
【０５２３】
[ステップＳ５４１４]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ５４１３、Ｎｏ）、第１プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。シーケンサ１１１は、ループ数が設定値（LValue_I）であると判定する場合（ステップＳ５４１４、Ｙｅｓ）、ステップＳ４５０１を実行する。
【０５２４】
[ステップＳ５４１５]
シーケンサ１１１は、ループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ５４１４、Ｎｏ）、第３プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０５２５】
＜１−１０−２＞パルスの具体例
次に、第１の実施形態の変形例５のメモリシステムに係る書込み動作の具体例について説明する。
【０５２６】
続いて、図５５及び図５６を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図５０、図５１を用いて説明した動作と同様である。
【０５２７】
図５５及び図５６では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【０５２８】
図５５及び図５６の例では、パルス番号１〜３、５に対応するパルスが（ｉ）のパルスに相当する。
【０５２９】
図５５及び図５６の例では、パルス番号１〜３、５以外に対応するパルスが（ｉｉ）のパルスに相当する。
【０５３０】
上述したように、シーケンサ１１１は、書き込み動作中に条件を満たしているか否かを判定する。具体的には、シーケンサ１１１は、例えばパルス番号１７（Pulse no=17）のパルスを印加した後、条件を満たしていると判定するため、パルス番号１８（Pulse no=18）にて、第３のプログラム動作を開始する。
【０５３１】
＜１−１１＞第１実施形態の変形例６
第１実施形態の変形例６について説明する。第１実施形態の変形例６では、上述したデータの書込み方法と異なる書込み方法を第１実施形態に採用した場合について説明する。
【０５３２】
＜１−１１−１＞動作
＜１−１１−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図５７を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０５３３】
簡単のため図５７では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０５３４】
第１実施形態の変形例６に係る書込み動作は、第１実施形態の変形例４と同様に第１〜第３書込み動作に分けられる。
【０５３５】
第１実施形態の変形例６と第１実施形態の変形例４とで異なる点は、第１書込み動作と第２書込み動作の順序が入れ替わっている点である。
【０５３６】
＜１−１１−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図５８を用いて、第１実施形態の変形例６に係るプログラム動作及びプログラムベリファイ動作の実行順序の生成方法について説明する。
【０５３７】
[ステップＳ５８０１]
まずシーケンサ１１１は、第１プログラム動作を実行する。
【０５３８】
[ステップＳ５８０２]
シーケンサ１１１は、第２プログラム動作を実行する。
【０５３９】
[ステップＳ５８０３]
シーケンサ１１１は、第２プログラム動作を実行した後、第１プログラムベリファイ動作（Ｖ＿Ｉ）を実行する。
【０５４０】
このように、シーケンサ１１１は、第１プログラム動作と、第１プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０５４１】
[ステップＳ５８０４]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。
【０５４２】
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ５８０４、Ｙｅｓ）、ステップＳ４８０１を実行する。
【０５４３】
[ステップＳ５８０５]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ５８０４、Ｎｏ）、第１プログラム動作のループ数をカウントアップする。
【０５４４】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。
【０５４５】
シーケンサ１１１は、ループ数が設定値（LValue_I）であると判定する場合（ステップＳ５８０５、Ｙｅｓ）、ステップＳ４８０１を実行する。
【０５４６】
[ステップＳ５８０６]
シーケンサ１１１は、ループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ５８０５、Ｎｏ）、条件を満たしているか否かを判定する。
【０５４７】
シーケンサ１１１は、条件を満たすと判定する場合（ステップＳ５８０６、Ｙｅｓ）、ステップＳ４２０１を実行する。
【０５４８】
[ステップＳ５８０７]
シーケンサ１１１は、条件を満たさないと判定する場合（ステップＳ５８０６、Ｎｏ）、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる。
【０５４９】
[ステップＳ５８０８]
シーケンサ１１１は、第１プログラム動作を実行する。
【０５５０】
[ステップＳ５８０９]
シーケンサ１１１は、第１プログラム動作を実行した後、第２プログラムベリファイ動作を実行する。
【０５５１】
このように、シーケンサ１１１は、第２プログラム動作と、第２プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０５５２】
[ステップＳ５８１０]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。 
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ５８１０、Ｙｅｓ）、ステップＳ４６０１を実行する。
【０５５３】
[ステップＳ５８１１]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ５８１０、Ｎｏ）、第２プログラム動作のループ数をカウントアップする。そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。
【０５５４】
シーケンサ１１１は、ループ数が設定値（LValue_II）であると判定する場合（ステップＳ５８１１、Ｙｅｓ）、ステップＳ４６０１を実行する。
【０５５５】
[ステップＳ５８１２]
シーケンサ１１１は、ループ数が設定値（LValue_II）ではないと判定する場合（ステップＳ５８１１、Ｎｏ）、条件を満たしているか否かを判定する。ところで、ステップＳ５８１２における「条件」は、ステップＳ５８０６における「条件」と異なっていても良い。
【０５５６】
シーケンサ１１１は、条件を満たすと判定する場合（ステップＳ５８１２、Ｙｅｓ）、ステップＳ３５０１を実行する。
【０５５７】
[ステップＳ５８１３]
シーケンサ１１１は、条件を満たしていないと判定する場合（ステップＳ５８１２、Ｎｏ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。そして、その後ステップＳ５８０２を実行する。
【０５５８】
＜１−１２＞第１実施形態の変形例７
第１実施形態の変形例７について説明する。第１実施形態の変形例７では、上述したデータの書込み方法と異なる書込み方法を第１実施形態に採用した場合について説明する。
【０５５９】
＜１−１２−１＞動作
＜１−１２−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図５９を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０５６０】
簡単のため図５９では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０５６１】
第１実施形態の変形例７に係る書込み動作は、第１実施形態の変形例４と同様に第１〜第３書込み動作に分けられる。
【０５６２】
第１実施形態の変形例７と第１実施形態の変形例６とで異なる点は、第３プログラム動作の直後に第１プログラム動作を行っている点である。
【０５６３】
＜１−１２−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図６０を用いて、第１実施形態の変形例７に係るプログラム動作及びプログラムベリファイ動作の実行順序の生成方法について説明する。
【０５６４】
ステップＳ６００１〜ステップＳ６００５は、図５８のステップＳ５８０１〜ステップＳ５８０５に対応する。
【０５６５】
[ステップＳ６００６]
シーケンサ１１１は、ループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ６００５、Ｎｏ）、条件を満たしているか否かを判定する。ところで、ステップＳ６００６における「条件」は、ステップＳ６０１２における「条件」と異なっていても良い。
【０５６６】
シーケンサ１１１は、条件を満たすと判定する場合（ステップＳ６００６、Ｙｅｓ）、ステップＳ５４０１を実行する。
【０５６７】
ステップＳ６００７〜ステップＳ６０１３は、図５８のステップＳ５８０７〜ステップＳ５８１３に対応する。
【０５６８】
＜１−１３＞第１実施形態の変形例８
第１実施形態の変形例８について説明する。第１実施形態の変形例８では、上述したデータの書込み方法と異なる書込み方法を第１実施形態に採用した場合について説明する。
【０５６９】
＜１−１３−１＞動作
＜１−１３−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図６１を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０５７０】
簡単のため図６１では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０５７１】
第１実施形態の変形例８に係る書込み動作は、第１実施形態と同様に第１、第２書込み動作に分けられる。
【０５７２】
第１実施形態の変形例８と第１実施形態とで異なる点は、書込み動作開始時において第２プログラム動作を所定回数繰り返す点である。
【０５７３】
例えば図６１に示す例では、シーケンサ１１１は第２プログラム動作をＢ回（Ｂは任意の整数）繰り返し、その後第１プログラム動作を行っている。
【０５７４】
＜１−１３−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図６２を用いて、第１実施形態の変形例８に係るプログラム動作及びプログラムベリファイ動作の実行順序の生成方法について説明する。
【０５７５】
[ステップＳ６２０１]
シーケンサ１１１は、第２プログラム動作を実行する。
【０５７６】
[ステップＳ６２０２]
シーケンサ１１１は、条件を満たすか否かを判定する。例えばステップＳ６２０２における「条件」とは、第２プログラム動作のループ数である。つまり、シーケンサ１１１は、第２プログラム動作のループ数が設定値に達したか否かを判定する。
【０５７７】
上記条件に係る情報は、他の例で説明した「条件」と同様、例えばレジスタ１１２に記憶されている。
【０５７８】
[ステップＳ６２０３]
シーケンサ１１１は、条件を満たさないと判定する場合（ステップＳ６２０２、Ｎｏ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。そして、その後ステップＳ６２０１を実行する。
【０５７９】
[ステップＳ６２０４]
シーケンサ１１１は、条件を満たすと判定する場合（ステップＳ６２０２、Ｙｅｓ）、第１プログラム動作を実行する。
【０５８０】
[ステップＳ６２０５]
シーケンサ１１１は、第１プログラム動作を実行した後、第２プログラムベリファイ動作を実行する。
【０５８１】
このように、シーケンサ１１１は、第２プログラム動作と、第２プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０５８２】
[ステップＳ６２０６]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。
【０５８３】
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ６２０６、Ｙｅｓ）、ステップＳ４００１を実行する。
【０５８４】
[ステップＳ６２０７]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ６２０６、Ｎｏ）、第２プログラム動作のループ数をカウントアップする。
【０５８５】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。
【０５８６】
シーケンサ１１１は、ループ数が設定値（LValue_II）であると判定する場合（ステップＳ６２０７、Ｙｅｓ）、ステップＳ４００１を実行する。
【０５８７】
[ステップＳ６２０８]
シーケンサ１１１は、ループ数が設定値（LValue_II）でないと判定する場合（ステップＳ６２０７、Ｎｏ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０５８８】
[ステップＳ６２０９]
シーケンサ１１１は、第２プログラム動作を実行する。
【０５８９】
[ステップＳ６２１０]
シーケンサ１１１は、第２プログラム動作を実行した後、第１プログラムベリファイ動作を実行する。
【０５９０】
このように、シーケンサ１１１は、第１プログラム動作と、第１プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０５９１】
[ステップＳ６２１１]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。
【０５９２】
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ６２１１、Ｙｅｓ）、ステップＳ３７０１を実行する。
[ステップＳ６２１２]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ６２１１、Ｎｏ）、第１プログラム動作のループ数をカウントアップする。
【０５９３】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。
【０５９４】
シーケンサ１１１は、ループ数が設定値（LValue_I）であると判定する場合（ステップＳ６２１２、Ｙｅｓ）、ステップＳ３７０１を実行する。
【０５９５】
[ステップＳ６２１３]
シーケンサ１１１は、ループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ６２１２、Ｎｏ）、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる。そして、その後ステップＳ６２０４を実行する。
【０５９６】
＜１−１３−２−１＞パルスの具体例
次に、第１の実施形態の変形例８のメモリシステムに係る書込み動作の具体例について説明する。
【０５９７】
続いて、図６３及び図６４を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【０５９８】
図６３及び図６４では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【０５９９】
図６３及び図６４の例では、パルス番号１、５、６、８、１７に対応するパルスが（ｉ）のパルスに相当する。
【０６００】
図６３及び図６４の例では、パルス番号１、５、６、８、１７以外に対応するパルスが（ｉｉ）のパルスに相当する。
【０６０１】
＜１−１４＞第１実施形態の変形例９
第１実施形態の変形例９について説明する。第１実施形態の変形例９では、上述したデータの書込み方法と異なる書込み方法を第１実施形態に採用した場合について説明する。
【０６０２】
＜１−１４−１＞動作
＜１−１４−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図６５を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０６０３】
簡単のため図６５では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０６０４】
第１実施形態の変形例９に係る書込み動作は、第１実施形態と同様に第１、第２書込み動作に分けられる。
【０６０５】
第１実施形態の変形例９と第１実施形態の変形例８とで異なる点は、第２プログラム動作を所定回数繰り返し、その後第１プログラム動作を実行し、更にその後第２プログラム動作を実行する点である。
【０６０６】
＜１−１４−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図６６を用いて、第１実施形態の変形例９に係るプログラム動作及びプログラムベリファイ動作の実行順序の生成方法について説明する。
【０６０７】
ステップＳ６６０１〜Ｓ６６０４は、図６２のステップＳ６２０１〜Ｓ６２０４に対応する。
【０６０８】
[ステップＳ６６０５]
第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０６０９】
[ステップＳ６６０６]
シーケンサ１１１は、第２プログラム動作を実行する。
【０６１０】
[ステップＳ６６０７]
シーケンサ１１１は、第２プログラム動作を実行した後、第１プログラムベリファイ動作を実行する。
【０６１１】
このように、シーケンサ１１１は、第１プログラム動作と、第１プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０６１２】
[ステップＳ６６０８]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。
【０６１３】
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ６６０８、Ｙｅｓ）、ステップＳ３７０１を実行する。
[ステップＳ６６０９]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ６６０８、Ｎｏ）、第１プログラム動作のループ数をカウントアップする。
【０６１４】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。
【０６１５】
シーケンサ１１１は、ループ数が設定値（LValue_I）であると判定する場合（ステップＳ６６０９、Ｙｅｓ）、ステップＳ３７０１を実行する。
【０６１６】
[ステップＳ６６１０]
シーケンサ１１１は、ループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ６６０９、Ｎｏ）、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる。
【０６１７】
[ステップＳ６６１１]
シーケンサ１１１は、第１プログラム動作を実行する。
【０６１８】
[ステップＳ６６１２]
シーケンサ１１１は、第１プログラム動作を実行した後、第２プログラムベリファイ動作を実行する。
【０６１９】
このように、シーケンサ１１１は、第２プログラム動作と、第２プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０６２０】
[ステップＳ６６１３]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。
【０６２１】
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ６６１３、Ｙｅｓ）、ステップＳ４００１を実行する。
【０６２２】
[ステップＳ６６１４]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ６６１３、Ｎｏ）、第２プログラム動作のループ数をカウントアップする。
【０６２３】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。
【０６２４】
シーケンサ１１１は、ループ数が設定値（LValue_II）ではないと判定する場合（ステップＳ６６１４、Ｎｏ）、ステップＳ６６０５を実行する。
【０６２５】
シーケンサ１１１は、ループ数が設定値（LValue_II）であると判定する場合（ステップＳ６６１４、Ｙｅｓ）、ステップＳ４００１を実行する。
【０６２６】
＜１−１５＞第１実施形態の変形例１０
第１実施形態の変形例１０について説明する。第１実施形態の変形例１０では、上述したデータの書込み方法と異なる書込み方法を第１実施形態に採用した場合について説明する。
【０６２７】
＜１−１５−１＞動作
＜１−１５−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図６７を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０６２８】
簡単のため図６７では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０６２９】
第１実施形態の変形例１０に係る書込み動作は、第１〜第３書込み動作に分けられる。第１書込み動作及び第２書込み動作については、図１７で説明したものと同様である。
【０６３０】
第３書込み動作は、“Ｃ”レベルに関する書込み動作である。
【０６３１】
第３書込み動作は、“Ｃ”レベルの書込みに関する第３プログラム動作（Ｐ＿ＩＩＩ）を含んでいる。
【０６３２】
第３プログラム動作において、選択ワード線ＷＬに印加される電圧ＶＰＧＭを電圧ＶＰＧＭ＿ＩIＩと表記する。この電圧ＶＰＧＭ＿ＩIＩは、例えば、電圧ＶＰＧＭ＿ＩI（２）よりも大きい。
【０６３３】
第１実施形態の変形例１０と、第１実施形態との異なる点は、まず第３プログラム動作を実行する点である。
【０６３４】
＜１−１５−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図６８を用いて、第１実施形態の変形例１０に係るプログラム動作及びプログラムベリファイ動作の実行順序の生成方法について説明する。
【０６３５】
[ステップＳ６８０１]
シーケンサ１１１は、第３プログラム動作を実行する。
【０６３６】
[ステップＳ６８０２]
シーケンサ１１１は、第２プログラム動作を実行する。
【０６３７】
ステップＳ６８０３〜Ｓ６８１２は、図６２のステップＳ６２０４〜Ｓ６２１３に対応する。
【０６３８】
＜１−１５−２−１＞パルスの具体例
続いて、図６９及び図７０を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【０６３９】
図６９及び図７０では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【０６４０】
図６９及び図７０の例では、パルス番号１〜３、５、１８に対応するパルスが（ｉ）のパルスに相当する。
【０６４１】
図６９及び図７０の例では、パルス番号１〜３、５、１４以外に対応するパルスが（ｉｉ）のパルスに相当する。
【０６４２】
＜１−１６＞第１実施形態の変形例１１
第１実施形態の変形例１１について説明する。第１実施形態の変形例１１では、上述したデータの書込み方法と異なる書込み方法を第１実施形態に採用した場合について説明する。
【０６４３】
＜１−１６−１＞動作
＜１−１６−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図７１を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０６４４】
簡単のため図７１では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０６４５】
第１実施形態の変形例１１に係る書込み動作は、第１実施形態の変形例１０と同様に第１〜第３書込み動作に分けられる。
【０６４６】
第１実施形態の変形例１１と、第１実施形態の変形例１０との異なる点は、第１書込み動作と第２書込み動作を入れ替えた点である。
【０６４７】
＜１−１６−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図７２を用いて、第１実施形態の変形例１１に係るプログラム動作及びプログラムベリファイ動作の実行順序の生成方法について説明する。
【０６４８】
[ステップＳ７２０１]
シーケンサ１１１は第３プログラム動作（Ｐ＿ＩＩＩ）を実行する。
【０６４９】
[ステップＳ７２０２]
シーケンサ１１１は第１プログラム動作（Ｐ＿Ｉ）を実行する。
【０６５０】
[ステップＳ７２０３]
シーケンサ１１１は第２プログラム動作（Ｐ＿ＩＩ）を実行する。
【０６５１】
[ステップＳ７２０４]
シーケンサ１１１は、第２プログラム動作を実行した後、第１プログラムベリファイ動作を実行する。
【０６５２】
このように、シーケンサ１１１は、第１プログラム動作と、第１プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０６５３】
[ステップＳ７２０５]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。
【０６５４】
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ７２０５、Ｙｅｓ）、ステップＳ３７０１を実行する。
[ステップＳ７２０６]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ７２０５、ＮＯ）、第１プログラム動作のループ数をカウントアップする。
【０６５５】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。
【０６５６】
シーケンサ１１１は、ループ数が設定値（LValue_I）であると判定する場合（ステップＳ７２０６、Ｙｅｓ）、ステップＳ３７０１を実行する。
【０６５７】
[ステップＳ７２０７]
シーケンサ１１１は、ループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ７２０６、ＮＯ）、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる。
【０６５８】
[ステップＳ７２０８]
シーケンサ１１１は、第１プログラム動作を実行する。
【０６５９】
[ステップＳ７２０９]
シーケンサ１１１は、第１プログラム動作を実行した後、第２プログラムベリファイ動作（Ｖ＿ＩＩ）を実行する。
【０６６０】
このように、シーケンサ１１１は、第２プログラム動作と、第２プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０６６１】
[ステップＳ７２１０]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。
【０６６２】
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ７２１０、Ｙｅｓ）、ステップＳ４００１を実行する。
【０６６３】
[ステップＳ７２１１]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ７２１０、ＮＯ）、第２プログラム動作のループ数をカウントアップする。
【０６６４】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。
【０６６５】
シーケンサ１１１は、ループ数が設定値（LValue_II）であると判定する場合（ステップＳ７２１１、Ｙｅｓ）、ステップＳ４００１を実行する。
【０６６６】
[ステップＳ７２１２]
シーケンサ１１１は、ループ数が設定値（LValue_II）ではないと判定する場合（ステップＳ７２１１、Ｎｏ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０６６７】
＜２＞第２実施形態
第２実施形態について説明する。第２実施形態では、メモリセルトランジスタが８値のデータを記憶する場合について説明する。尚、第２実施形態に係る記憶装置の基本的な構成及び基本的な動作は、上述した第１実施形態に係る記憶装置と同様である。従って、上述した第１実施形態で説明した事項及び上述した第１実施形態から容易に類推可能な事項についての説明は省略する。
【０６６８】
＜２−１＞メモリセルトランジスタの閾値分布
＜２−１−１＞メモリセルトランジスタの閾値分布及びデータの関係
図７３を用いて、メモリセルトランジスタの閾値分布及びデータの関係について説明する。
【０６６９】
図７３に示すように、各々のメモリセルトランジスタＭＴは、その閾値に応じて例えば３ビットのデータを保持可能である。この３ビットデータは、閾値の低いものから順番に、例えば“１１１”、“０１１”、“００１”、“０００”、“０１０”、“１１０”、“１００”、“１０１”である。
【０６７０】
“１１１”データを保持するメモリセルトランジスタＭＴの閾値は、ある一定の分布内にあり、この“１１１”データに対応する閾値分布を“Ｅｒ”レベルと呼ぶ。Ｅｒレベルは、電荷蓄積層内の電荷が引き抜かれて、データが消去された状態における閾値分布であり、正または負の値である（例えば電圧ＶＡ未満）。
【０６７１】
“０１１”、“００１”、“０００”、“０１０”、“１１０”、“１００”、“１０１”は、電荷蓄積層内に電荷が注入されて、データが書き込まれた状態の閾値分布である。
【０６７２】
“０１１”データを保持するメモリセルトランジスタＭＴの閾値は“Ａ”レベルの分布内にあり、Ｅｒレベル内の閾値よりも高い（例えば電圧ＶＡ以上、ＶＢ未満であり、ＶＡ＜ＶＢ）。
【０６７３】
“００１”データを保持するメモリセルトランジスタＭＴの閾値は“Ｂ”レベルの分布内にあり、Ａレベル内の閾値よりも高い（例えば電圧ＶＢ以上、ＶＣ未満であり、ＶＢ＜ＶＣ）。
【０６７４】
“０００”データを保持するメモリセルトランジスタＭＴの閾値は“Ｃ”レベルの分布内にあり、Ｂレベル内の閾値よりも高い（例えば電圧ＶＣ以上、ＶＤ未満であり、ＶＣ＜ＶＤ）。
【０６７５】
“０１０”データを保持するメモリセルトランジスタＭＴの閾値は“Ｄ”レベルの分布内にあり、Ｃレベル内の閾値よりも高い（例えば電圧ＶＤ以上、ＶＥ未満であり、ＶＤ＜ＶＥ）。
【０６７６】
“１１０”データを保持するメモリセルトランジスタＭＴの閾値は“Ｅ”レベルの分布内にあり、Ｄレベル内の閾値よりも高い（例えば電圧ＶＥ以上、ＶＦ未満であり、ＶＥ＜ＶＦ）。
【０６７７】
“１００”データを保持するメモリセルトランジスタＭＴの閾値は“Ｆ”レベルの分布内にあり、Ｅレベル内の閾値よりも高い（例えば電圧ＶＦ以上、ＶＧ未満であり、ＶＦ＜ＶＧ以上）。
【０６７８】
“１０１”データを保持するメモリセルトランジスタＭＴの閾値は“Ｇ”レベルの分布内にあり、Ｆレベル内の閾値よりも高い（例えば電圧ＶＧ以上）。
【０６７９】
もちろん、３ビットデータと閾値との関係はこの関係に限定されるものでは無く、例えば“１１１”データが“Ｇ”レベルに対応するような場合であっても良く、両者の関係については適宜選択出来る。
【０６８０】
＜２―１―２＞書込み動作時のメモリセルトランジスタの閾値分布の変化
次に図７４を用いて、書込み動作時のメモリセルトランジスタの閾値分布の変化について説明する。
【０６８１】
書込み動作が行われる前において、予めブロック消去によってブロック内の全てのメモリセルＭＣの閾値は、に示す消去状態（“Ｅｒ”レベル）の閾値分布となる（第１状態）。
【０６８２】
書込み動作が行われると、消去状態（“Ｅｒ”レベル）の閾値分布が、第２状態のような閾値分布に変化していく。第２状態の時点では、Ｅｒレベル、Ａレベル、Ｂレベル、Ｃレベル、Ｄレベル、Ｅレベル、Ｆレベル、Ｇレベル、の閾値分布はそれぞれ、隣り合う閾値分布と重なりあった分布となっており、まだ書込み動作は完了しない。そして、更に書込み動作が行われると、第２状態の閾値分布が、第３状態のように、８値の閾値分布に変化する。以上のように、第３状態のような８値の閾値分布になるまで、書込み動作を繰り返す必要がある。
【０６８３】
なお、図７４では、書き込み動作時に、第１状態から第２状態に遷移させ、更に第２状態から第３状態に遷移させるように説明したが、これに限らない。具体的には、第１状態から第３状態に遷移させるような書き込み方法でも良い。
【０６８４】
＜２−２＞動作
＜２−２−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図７５を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０６８５】
簡単のため図７５では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０６８６】
第２実施形態に係る書込み動作は、第１、第２書込み動作に分けられる。なお、第１、第２書込み動作の分け方は種々あるが、本例では例えば一例を提示する。
【０６８７】
第１書込み動作は、“Ａ”、“Ｂ”、“Ｃ”、“Ｄ”レベルに関する書込み動作である。第２書込み動作は、“Ｅ”、“Ｆ”、“Ｇ”、“Ｈ”レベルに関する書込み動作である。
【０６８８】
第１書込み動作は、“Ａ”、“Ｂ”、“Ｃ”、“Ｄ”レベルの書込みに関する第１プログラム動作（Ｐ＿Ｉ）と、第１プログラム動作がパスしたか否かを判定する第１プログラムベリファイ動作（Ｖ＿Ｉ）と、を含んでいる。
【０６８９】
第２書込み動作は、“Ｅ”、“Ｆ”、“Ｇ”、“Ｈ”レベルの書込みに関する第２プログラム動作（Ｐ＿ＩＩ）と、第２プログラム動作がパスしたか否かを判定する第２プログラムベリファイ動作（Ｖ＿ＩＩ）と、を含んでいる。
【０６９０】
シーケンサ１１１は、第１プログラム動作を実行するたびに、電圧ＶＰＧＭ＿Ｉ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。同様にシーケンサ１１１は、第２プログラム動作を実行するたびに、電圧ＶＰＧＭ＿ＩＩ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。
【０６９１】
図７５に示すプログラム動作及びプログラムベリファイ動作の実行順序は、基本的には図１７で説明したプログラム動作及びプログラムベリファイ動作の実行順序と同様である。
【０６９２】
尚、図７５に示すプログラム動作及びプログラムベリファイ動作の実行順序の生成方法は、図１８を用いて説明した方法と同様である。
【０６９３】
＜２−３＞具体例
次に、第２の実施形態のメモリシステムに係る書込み動作の具体例について説明する。
【０６９４】
＜２−３−１＞書込み対象のメモリセルトランジスタ例
図７６に示すように、本具体例では、簡単のため、１つのワード線ＷＬに共通接続された複数のメモリセルトランジスタＭＴのそれぞれに、Ｅｒレベル、Ａレベル、Ｂレベル、Ｃレベル、Ｄレベル、Ｅレベル、Ｆレベル、及びＧレベルのいずれかが書き込まれる場合について説明する。ここで、ビット線ＢＬ（Ｅｒ）は、Ｅｒレベルのデータが書き込まれるメモリセルトランジスタＭＴ（Ｅｒ）に接続され、ビット線ＢＬ（Ａ）は、Ａレベルのデータが書き込まれるメモリセルトランジスタＭＴ（Ａ）に接続され、ビット線ＢＬ（Ｂ）は、Ｂレベルのデータが書き込まれるメモリセルトランジスタＭＴ（Ｂ）に接続され、ビット線ＢＬ（Ｃ）は、Ｃレベルのデータが書き込まれるメモリセルトランジスタＭＴ（Ｃ）に接続される。同様に、ビット線ＢＬ（Ｄ）は、Ｄレベルのデータが書き込まれるメモリセルトランジスタＭＴ（Ｄ）に接続され、ビット線ＢＬ（Ｅ）は、Ｅレベルのデータが書き込まれるメモリセルトランジスタＭＴ（Ｅ）に接続され、ビット線ＢＬ（Ｆ）は、Ｆレベルのデータが書き込まれるメモリセルトランジスタＭＴ（Ｆ）に接続され、ビット線ＢＬ（Ｇ）は、Ｇレベルのデータが書き込まれるメモリセルトランジスタＭＴ（Ｇ）に接続される。
【０６９５】
なお、本例は、必ずしも複数のメモリセルトランジスタが１つのワード線ＷＬに共通接続されてなくても良い。つまり、複数のメモリセルトランジスタが異なるワード線ＷＬに接続されている場合でも、同様の動作を適用することができる。
【０６９６】
＜２−３−２＞パルスの具体例
続いて、図７７及び図７８を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【０６９７】
図７７及び図７８では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【０６９８】
図７７及び図７８の例では、パルス番号１〜３、５、８、１１、１５、１９、２６に対応するパルスが（ｉ）のパルスに相当する。
【０６９９】
図７７及び図７８の例では、パルス番号１〜３、５、８、１１、１５、１９、２６以外に対応するパルスが（ｉｉ）のパルスに相当する。
【０７００】
＜２−４＞効果
上述した実施形態によれば、メモリシステム１は、第１プログラム動作の直後に第１プログラムベリファイ動作を行わず、第２プログラム動作の直後に第２プログラムベリファイ動作を行わない。その結果、第１実施形態と同様の効果を得ることができる。
【０７０１】
＜２−５＞第２実施形態の変形例１
第２実施形態の変形例１について説明する。第２実施形態の変形例１では、上述したデータの読み出し方法と異なる読み出し方法を第２実施形態に採用した場合について説明する。
【０７０２】
＜２−５−１＞読み出し動作
次に、第２実施形態の変形例１に係るデータの読み出し動作について、図７９を用いて説明する。
【０７０３】
読み出し時には、シーケンサ１１１により、非選択ワード線ＷＬに、保持データに関わらずメモリセルトランジスタＭＴをオンさせる電圧ＶＲＥＡＤが印加される。更に、セレクトゲート線ＳＧＤ及びＳＧＳには、選択トランジスタＳＴ１及びＳＴ２をオンさせる電圧ＶＳＧが印加される。そして選択ワード線の電圧は、図７９に示すように連続的に上昇される。
【０７０４】
そして、選択ワード線ＷＬの電圧がＶＡに達した時点で、データが読み出される。すなわち、図７９に示すように、メモリセルトランジスタＭＴの閾値が“Ｅｒ”レベルに含まれるか、それとも“Ａ”レベル以上の分布に含まれるかの判定がなされる（これを読み出し動作ＡＲと呼ぶ）。そして、判定結果がラッチ回路１７に転送される（ＡＲストローブ）。
【０７０５】
引き続き、選択ワード線ＷＬの電圧がＶＢに達した時点で、メモリセルトランジスタＭＴの閾値が“Ａ”レベル以下の分布内にあるか、それとも“Ｂ”レベル以上の分布内にあるかの判定がなされる（これを読み出し動作ＢＲと呼ぶ）。そして、判定結果がラッチ回路１７に転送される（ＢＲストローブ）。
【０７０６】
更に、選択ワード線ＷＬの電圧がＶＣに達した時点で、メモリセルトランジスタＭＴの閾値が“Ｃ”レベルに含まれるか、それとも“Ｄ”レベル以上の分布内にあるかの判定がなされる（これを読み出し動作ＣＲと呼ぶ）。そして、判定結果がラッチ回路１７に転送される（ＣＲストローブ）。
【０７０７】
選択ワード線ＷＬの電圧がＶＤに達した時点で、メモリセルトランジスタＭＴの閾値が“Ｄ”レベル以下の分布内にあるか、それとも“Ｅ”レベル以上の分布内にあるかの判定がなされる（これを読み出し動作ＤＲと呼ぶ）。そして、判定結果がラッチ回路１７に転送される（ＤＲストローブ）。
【０７０８】
選択ワード線ＷＬの電圧がＶＥに達した時点で、メモリセルトランジスタＭＴの閾値が“Ｅ”レベルに含まれるか、それとも“Ｆ”レベル以上の分布内にあるかの判定がなされる（これを読み出し動作ＥＲと呼ぶ）。そして、判定結果がラッチ回路１７に転送される（ＥＲストローブ）。
【０７０９】
選択ワード線ＷＬの電圧がＶＦに達した時点で、メモリセルトランジスタＭＴの閾値が“Ｆ”レベル以下の分布内にあるか、それとも“Ｇ”レベル以上の分布内にあるかの判定がなされる（これを読み出し動作ＦＲと呼ぶ）。そして、判定結果がラッチ回路１７に転送される（ＦＲストローブ）。
【０７１０】
選択ワード線ＷＬの電圧がＶＧに達した時点で、メモリセルトランジスタＭＴの閾値が“Ｇ”レベルに含まれるか、それとも“Ｆ”レベル以下の分布内にあるかの判定がなされる（これを読み出し動作ＣＧと呼ぶ）。そして、判定結果がラッチ回路１７に転送される（ＧＲストローブ）。
【０７１１】
第１実施形態の変形例１でも説明したように、ロウデコーダ１５０を介して選択ワード線ＷＬを駆動する場合、メモリセルトランジスタＭＴの位置によって、その電位変動の仕方が異なる。
【０７１２】
そこで、図７９に示すように、信号ＳＴＢ＿ＮＥＡＲは時刻Ｔ０でアサート（“Ｈ”レベル）される。従って、グループＧＰ１に対応するメモリセルトランジスタＭＴから読み出されたデータは、時刻Ｔ０でストローブされる。また、信号ＳＴＢ＿ＭＩＤは時刻Ｔ１でアサートされる。従って、グループＧＰ２に対応するメモリセルトランジスタＭＴから読み出されたデータは、時刻Ｔ１でストローブされる。引き続き、信号ＳＴＢ＿ＦＡＲは時刻Ｔ２でアサートされる。従って、グループＧＰ３に対応するメモリセルトランジスタＭＴから読み出されたデータは、時刻Ｔ２でストローブされる。
【０７１３】
以上のように、メモリセルトランジスタＭＴの位置に応じて、時刻Ｔ０、Ｔ１、Ｔ２のタイミングでＡＲストローブが実行される。以下、読み出し動作ＢＲ、ＣＲ、ＤＲ、ＥＲ、ＦＲ、及びＧＲについても同様である。
【０７１４】
本例は、第２実施形態に係る実施例に適用することが可能である。
【０７１５】
＜２−６＞第２実施形態の変形例２
第２実施形態の変形例２について説明する。第２実施形態の変形例２では、上述したデータの書込み方法と異なる書込み方法を第２実施形態に採用した場合について説明する。
【０７１６】
＜２−６−１＞動作
＜２−６−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図８０を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０７１７】
簡単のため図８０では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０７１８】
第２実施形態の変形例２に係る書込み動作は、第２実施形態と同様に第１、第２書込み動作に分けられる。
【０７１９】
第２実施形態では、まず第２プログラム動作を行い、次いで第１プログラム動作を行った。しかし、図８０に示すように、第２実施形態の変形例２では、まず第１プログラム動作を行い、次いで第２プログラム動作を実行する。このように、第２実施形態の変形例２では、第１書込み動作と第２書込み動作との実行順序を入れ替えた動作を実行する。
【０７２０】
尚、プログラム動作及びプログラムベリファイ動作の実行順序の生成方法は、図２８を用いて説明した方法と同様である。
【０７２１】
＜２−６−２＞パルスの具体例
続いて、図８１及び図８２を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【０７２２】
図８１及び図８２では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【０７２３】
図８１及び図８２の例では、パルス番号１〜３、５、８、１１、１５、１９、２３に対応するパルスが（ｉ）のパルスに相当する。
【０７２４】
図８１及び図８２の例では、パルス番号１〜３、５、８、１１、１５、１９、２３以外に対応するパルスが（ｉｉ）のパルスに相当する。
【０７２５】
＜２−７＞第２実施形態の変形例３
第２実施形態の変形例３について説明する。第２実施形態の変形例３では、上述したデータの書込み方法と異なる書込み方法を第２実施形態に採用した場合について説明する。
【０７２６】
＜２−７−１＞動作
＜２−７−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図８３を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０７２７】
簡単のため図８３では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０７２８】
第２実施形態の変形例３に係る書込み動作は、第１〜第３書込み動作に分けられる。
【０７２９】
第１書込み動作は、“Ｂ”、“Ｃ”、及び“Ｄ”レベルに関する書込み動作である。第２書込み動作は、“Ｅ”、“Ｆ”、及び“Ｇ”レベルに関する書込み動作である。第３書込み動作は、“Ａ”レベルに関する書込み動作である。
【０７３０】
第１書込み動作は、“Ｂ”、“Ｃ”、及び“Ｄ”レベルの書込みに関する第１プログラム動作（Ｐ＿Ｉ）と、第１プログラム動作がパスしたか否かを判定する第１プログラムベリファイ動作（Ｖ＿Ｉ）と、を含んでいる。
【０７３１】
第２書込み動作は、“Ｅ”、“Ｆ”、及び“Ｇ”レベルの書込みに関する第２プログラム動作（Ｐ＿ＩＩ）と、第２プログラム動作がパスしたか否かを判定する第２プログラムベリファイ動作（Ｖ＿ＩＩ）と、を含んでいる。
【０７３２】
第３書込み動作は、“Ａ”レベルの書込みに関する第３プログラム動作（Ｐ＿ＩＩＩ）と、第３プログラム動作がパスしたか否かを判定する第３プログラムベリファイ動作（Ｖ＿ＩＩＩ）と、を含んでいる。
【０７３３】
シーケンサ１１１は、第１プログラム動作を実行するたびに、電圧ＶＰＧＭ＿Ｉ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。同様にシーケンサ１１１は、第２プログラム動作を実行するたびに、電圧ＶＰＧＭ＿ＩＩ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。同様にシーケンサ１１１は、第３プログラム動作を実行するたびに、電圧ＶＰＧＭ＿ＩＩＩ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。
【０７３４】
第１プログラムベリファイ動作において、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹを電圧ＶＰＶＦＹ＿Ｉと表記する。第２プログラムベリファイ動作において、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹを電圧ＶＰＶＦＹ＿ＩＩと表記する。同様に第３プログラムベリファイ動作において、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹを電圧ＶＰＶＦＹ＿ＩＩＩと表記する。
【０７３５】
図８３に示すように、本例では、基本的に第１プログラム動作の直後に第１プログラムベリファイ動作が行われないように制御され、第２プログラム動作の直後に第２プログラムベリファイ動作が行われないように制御され、第３プログラム動作の直後に第３プログラムベリファイ動作が行われないように制御される。また、第３プログラム動作は、条件を満たした後に行われる。
【０７３６】
尚、プログラム動作及びプログラムベリファイ動作の実行順序の生成方法は、図３４〜図４９を用いて説明した方法と同様である。
【０７３７】
＜２−７−２＞パルスの具体例
続いて、図８４及び図８５を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【０７３８】
図８４及び図８５では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【０７３９】
図８４及び図８５の例では、パルス番号１〜３、５、８、１１、１５、１９に対応するパルスが（ｉ）のパルスに相当する。
【０７４０】
図８４及び図８５の例では、パルス番号１〜３、５、８、１１、１５、１９以外に対応するパルスが（ｉｉ）のパルスに相当する。
【０７４１】
上述したように、シーケンサ１１１は、書き込み動作中に条件を満たしているか否かを判定する。そして、シーケンサ１１１は、条件を満たしていると判定する場合、第３プログラム動作を実行する。具体的には、シーケンサ１１１は、例えばパルス番号２８（Pulse no=28）のパルスを印加した後、条件を満たしていると判定するため、パルス番号２９（Pulse no=29）にて、第３のプログラム動作を開始する。
【０７４２】
＜２−８＞第２実施形態の変形例４
第２実施形態の変形例４について説明する。第２実施形態の変形例４では、上述したデータの書込み方法と異なる書込み方法を第２実施形態に採用した場合について説明する。
【０７４３】
＜２−８−１＞動作
＜２−８−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図８６を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０７４４】
簡単のため図８６では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０７４５】
第２実施形態の変形例４に係る書込み動作は、第２実施形態の変形例３と同様に第１〜第３書込み動作に分けられる。
【０７４６】
第２実施形態の変形例４と第２実施形態の変形例３とで異なる点は、第３プログラム動作の直後に第１プログラム動作を行っている点である。
【０７４７】
尚、プログラム動作及びプログラムベリファイ動作の実行順序の生成方法は、図５３〜図５４を用いて説明した方法と同様である。
【０７４８】
＜２−８−２＞パルスの具体例
続いて、図８７及び図８８を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【０７４９】
図８７及び図８８では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【０７５０】
図８７及び図８８の例では、パルス番号１〜３、５、８、１１、１５、１９に対応するパルスが（ｉ）のパルスに相当する。
【０７５１】
図８７及び図８８の例では、パルス番号１〜３、５、８、１１、１５、１９以外に対応するパルスが（ｉｉ）のパルスに相当する。
【０７５２】
上述したように、シーケンサ１１１は、書き込み動作中に条件を満たしているか否かを判定する。そして、シーケンサ１１１は、条件を満たしていると判定する場合、第３プログラム動作を実行する。具体的には、シーケンサ１１１は、例えばパルス番号１９（Pulse no=19）のパルスを印加した後、条件を満たしていると判定するため、パルス番号２０（Pulse no=20）にて、第３のプログラム動作を開始する。
【０７５３】
＜２−９＞第２実施形態の変形例５
第２実施形態の変形例５について説明する。第２実施形態の変形例５では、上述したデータの書込み方法と異なる書込み方法を第２実施形態に採用した場合について説明する。
【０７５４】
＜２−９−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図８９を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０７５５】
簡単のため図８９では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０７５６】
第２実施形態の変形例５に係る書込み動作は、第２実施形態の変形例３と同様に第１〜第３書込み動作に分けられる。
【０７５７】
第２実施形態の変形例５と第２実施形態の変形例３とで異なる点は、第１書込み動作と第２書込み動作の順序が入れ替わっている点である。
【０７５８】
尚、プログラム動作及びプログラムベリファイ動作の実行順序の生成方法は、図５８を用いて説明した方法と同様である。
【０７５９】
＜２−１０＞第２実施形態の変形例６
第２実施形態の変形例６について説明する。第２実施形態の変形例６では、上述したデータの書込み方法と異なる書込み方法を第２実施形態に採用した場合について説明する。
【０７６０】
＜２−１０−１＞動作
＜２−１０−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図９０を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０７６１】
簡単のため図９０では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０７６２】
第２実施形態の変形例６に係る書込み動作は、第２実施形態の変形例３と同様に第１〜第３書込み動作に分けられる。
【０７６３】
第２実施形態の変形例６と第２実施形態の変形例５とで異なる点は、第３プログラム動作の直後に第１プログラム動作を行っている点である。
【０７６４】
尚、プログラム動作及びプログラムベリファイ動作の実行順序の生成方法は、図６０を用いて説明した方法と同様である。
【０７６５】
＜２−１１＞第２実施形態の変形例７
第２実施形態の変形例７について説明する。第２実施形態の変形例７では、上述したデータの書込み方法と異なる書込み方法を第２実施形態に採用した場合について説明する。
【０７６６】
＜２−１１−１＞動作
＜２−１１−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図９１を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０７６７】
簡単のため図９１では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０７６８】
第２実施形態の変形例７に係る書込み動作は、第１〜第３書込み動作に分けられる。
【０７６９】
第１書込み動作は、“Ａ”、“Ｂ”、“Ｃ”、及び“Ｄ”レベルに関する書込み動作である。第２書込み動作は、“Ｅ”、“Ｆ”、及び“Ｇ”レベルに関する書込み動作である。第３書込み動作は、“Ｇ”レベルに関する書込み動作である。
【０７７０】
第１書込み動作は、“Ａ”、“Ｂ”、“Ｃ”、及び“Ｄ”レベルの書込みに関する第１プログラム動作（Ｐ＿Ｉ）と、第１プログラム動作がパスしたか否かを判定する第１プログラムベリファイ動作（Ｖ＿Ｉ）と、を含んでいる。
【０７７１】
第２書込み動作は、“Ｅ”、“Ｆ”、及び“Ｇ”レベルの書込みに関する第２プログラム動作（Ｐ＿ＩＩ）と、第２プログラム動作がパスしたか否かを判定する第２プログラムベリファイ動作（Ｖ＿ＩＩ）と、を含んでいる。
【０７７２】
第３書込み動作は、“Ｇ”レベルの書込みに関する第３プログラム動作（Ｐ＿ＩＩＩ）を含んでいる。
【０７７３】
シーケンサ１１１は、第１プログラム動作を実行するたびに、電圧ＶＰＧＭ＿Ｉ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。同様にシーケンサ１１１は、第２プログラム動作を実行するたびに、電圧ＶＰＧＭ＿ＩＩ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。
【０７７４】
第２実施形態の変形例７と第２実施形態とで異なる点は、書込み動作開始時において第３プログラム動作を所定回数繰り返す点である。
【０７７５】
例えば図９１に示す例では、シーケンサ１１１は第３プログラム動作をＢ回（Ｂは任意の整数）繰り返し、その後第２プログラム動作及び第１を行っている。
【０７７６】
＜２−１１−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図９２を用いて、第２実施形態の変形例７に係るプログラム動作及びプログラムベリファイ動作の実行順序の生成方法について説明する。
【０７７７】
[ステップＳ９２０１]
シーケンサ１１１は、第３プログラム動作を実行する。
【０７７８】
[ステップＳ９２０２]
シーケンサ１１１は、条件を満たすか否かを判定する。例えばステップＳ９２０２における「条件」とは、第３プログラム動作のループ数である。つまり、シーケンサ１１１は、第３プログラム動作のループ数が設定値に達したか否かを判定する。
【０７７９】
[ステップＳ９２０３]
シーケンサ１１１は、条件を満たさないと判定する場合（ステップＳ９２０２、Ｎｏ）、第３プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。そして、その後ステップＳ９２０１を実行する。
【０７８０】
[ステップＳ９２０４]
シーケンサ１１１は、条件を満たすと判定する場合（ステップＳ９２０２、Ｙｅｓ）、第２プログラム動作を実行する。
【０７８１】
[ステップＳ９２０５]
シーケンサ１１１は、第１プログラム動作を実行する。
【０７８２】
[ステップＳ９２０６]
シーケンサ１１１は、第１プログラム動作を実行した後、第２プログラムベリファイ動作を実行する。
【０７８３】
このように、シーケンサ１１１は、第２プログラム動作と、第２プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０７８４】
[ステップＳ９２０７]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。
【０７８５】
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ９２０７、Ｙｅｓ）、ステップＳ４００１を実行する。
【０７８６】
[ステップＳ９２０８]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ９２０７、Ｎｏ）、第２プログラム動作のループ数をカウントアップする。
【０７８７】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。
【０７８８】
シーケンサ１１１は、ループ数が設定値（LValue_II）であると判定する場合（ステップＳ９２０８、Ｙｅｓ）、ステップＳ４００１を実行する。
【０７８９】
[ステップＳ９２０９]
シーケンサ１１１は、ループ数が設定値（LValue_II）でないと判定する場合（ステップＳ９２０８、ＮＯ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。
【０７９０】
[ステップＳ９２１０]
シーケンサ１１１は、第２プログラム動作を実行する。
【０７９１】
[ステップＳ９２１１]
シーケンサ１１１は、第２プログラム動作を実行した後、第１プログラムベリファイ動作を実行する。
【０７９２】
このように、シーケンサ１１１は、第１プログラム動作と、第１プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０７９３】
[ステップＳ９２１２]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。
【０７９４】
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ９２１２、Ｙｅｓ）、ステップＳ３７０１を実行する。
[ステップＳ９２１３]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ９２１２、Ｎｏ）、第１プログラム動作のループ数をカウントアップする。
【０７９５】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。
【０７９６】
シーケンサ１１１は、ループ数が設定値（LValue_I）であると判定する場合（ステップＳ９２１３、Ｙｅｓ）、ステップＳ３７０１を実行する。
【０７９７】
[ステップＳ９２１４]
シーケンサ１１１は、ループ数が設定値（LValue_I）ではないと判定する場合（ステップＳ９２１３、Ｎｏ）、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる。そして、その後ステップＳ９２０５を実行する。
【０７９８】
＜２−１１−２＞パルスの具体例
続いて、図９３及び図９４を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【０７９９】
図９３及び図９４では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【０８００】
図９３及び図９４の例では、パルス番号１、４〜６、８、１１、１４、１８、２２、２９に対応するパルスが（ｉ）のパルスに相当する。
【０８０１】
図９３及び図９４の例では、パルス番号１、４〜６、８、１１、１４、１８、２２、２９以外に対応するパルスが（ｉｉ）のパルスに相当する。
【０８０２】
＜２−１２＞第２実施形態の変形例８
第２実施形態の変形例８について説明する。第２実施形態の変形例８では、上述したデータの書込み方法と異なる書込み方法を第２実施形態に採用した場合について説明する。
【０８０３】
＜２−１２−１＞動作
＜２−１２−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図９５を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０８０４】
簡単のため図９５では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０８０５】
第２実施形態の変形例８に係る書込み動作は、第１〜第６書込み動作に分けられる。
【０８０６】
第１書込み動作は、“Ａ”、“Ｂ”、“Ｃ”、及び“Ｄ”レベルに関する書込み動作である。第２書込み動作は、“Ｅ”、“Ｆ”、及び“Ｇ”レベルに関する書込み動作である。第３書込み動作は、“Ａ”、“Ｂ”レベルに関する書込み動作である。第４書込み動作は、“Ｃ”、“Ｄ”レベルに関する書込み動作である。第５書込み動作は、“Ｅ”、“Ｆ”レベルに関する書込み動作である。第６書込み動作は、“Ｇ”レベルに関する書込み動作である。
【０８０７】
第１書込み動作は、“Ａ”、“Ｂ”、“Ｃ”、及び“Ｄ”レベルの書込みに関する第１プログラム動作（Ｐ＿Ｉ）と、第１プログラム動作がパスしたか否かを判定する第１プログラムベリファイ動作（Ｖ＿Ｉ）と、を含んでいる。
【０８０８】
第２書込み動作は、“Ｅ”、“Ｆ”、及び“Ｇ”レベルの書込みに関する第２プログラム動作（Ｐ＿ＩＩ）と、第２プログラム動作がパスしたか否かを判定する第２プログラムベリファイ動作（Ｖ＿ＩＩ）と、を含んでいる。
【０８０９】
第３書込み動作は、“Ａ”、“Ｂ”レベルの書込みに関する第３プログラム動作（Ｐ＿ＩＩＩ）を含んでいる。
【０８１０】
第４書込み動作は、“Ｃ”、“Ｄ”レベルの書込みに関する第４プログラム動作（Ｐ＿ＩＶ）を含んでいる。
【０８１１】
第５書込み動作は、“Ｅ”、“Ｆ”レベルの書込みに関する第５プログラム動作（Ｐ＿Ｖ）を含んでいる。
【０８１２】
第６書込み動作は、“Ｇ”レベルの書込みに関する第６プログラム動作（Ｐ＿ＶＩ）を含んでいる。
【０８１３】
シーケンサ１１１は、第１プログラム動作を実行するたびに、電圧ＶＰＧＭ＿Ｉ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。同様にシーケンサ１１１は、第２プログラム動作を実行するたびに、電圧ＶＰＧＭ＿ＩＩ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。
【０８１４】
第２実施形態の変形例８と第２実施形態とで異なる点は、書込み動作開始時において第３〜第６プログラム動作を実行する点である。
【０８１５】
＜２−１２−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図９６を用いて、第２実施形態の変形例８に係るプログラム動作及びプログラムベリファイ動作の実行順序の生成方法について説明する。
【０８１６】
[ステップＳ９６０１]
シーケンサ１１１は、第３プログラム動作、第４プログラム動作、第５プログラム動作、第６プログラム動作を順に実行する。
【０８１７】
ステップＳ９６０２〜ステップＳ９６１２は、図９２のステップＳ９２０４〜ステップＳ９２１４に対応する。
【０８１８】
＜２−１２−２＞パルスの具体例
続いて、図９７及び図９８を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【０８１９】
図９７及び図９８では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【０８２０】
図９７及び図９８の例では、パルス番号１〜７、９、１２、１５、１９、２３、３０に対応するパルスが（ｉ）のパルスに相当する。
【０８２１】
図９７及び図９８の例では、パルス番号１〜７、９、１２、１５、１９、２３、３０以外に対応するパルスが（ｉｉ）のパルスに相当する。
【０８２２】
＜２−１３＞第２実施形態の変形例９
第２実施形態の変形例９について説明する。第２実施形態の変形例９では、上述したデータの書込み方法と異なる書込み方法を第２実施形態に採用した場合について説明する。
【０８２３】
＜２−１３−１＞動作
＜２−１３−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図９９を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０８２４】
簡単のため図９９では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０８２５】
第２実施形態の変形例９に係る書込み動作は、第２実施形態の変形例７と同様に第１〜第３書込み動作に分けられる。
【０８２６】
第２実施形態の変形例９と第２実施形態の変形例７とで異なる点は、第１書込み動作と第２書込み動作との実行順序が入れ替わっている点である。
【０８２７】
＜２−１３−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図１００を用いて、第２実施形態の変形例９に係るプログラム動作及びプログラムベリファイ動作の実行順序の生成方法について説明する。
【０８２８】
ステップＳ１０００１〜ステップＳ１０００３は、図９２のステップＳ９２０１〜ステップＳ９２０３に対応する。
【０８２９】
[ステップＳ１０００４]
シーケンサ１１１は、条件を満たすと判定する場合（ステップＳ１０００２、Ｙｅｓ）、第１プログラム動作を実行する。
【０８３０】
[ステップＳ１０００５]
シーケンサ１１１は、第２プログラム動作を実行する。
【０８３１】
[ステップＳ１０００６]
シーケンサ１１１は、第２プログラム動作を実行した後、第１プログラムベリファイ動作を実行する。
【０８３２】
このように、シーケンサ１１１は、第１プログラム動作と、第１プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０８３３】
[ステップＳ１０００７]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスか否かを判定する。
【０８３４】
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１０００７、Ｙｅｓ）、ステップＳ３７０１を実行する。
【０８３５】
[ステップＳ１０００８]
シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１０００７、Ｎｏ）、第１プログラム動作のループ数をカウントアップする。
【０８３６】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１プログラム動作のループ数が設定値（LValue_I）であるか否かを判定する。
【０８３７】
シーケンサ１１１は、ループ数が設定値（LValue_I）であると判定する場合（ステップＳ１０００８、Ｙｅｓ）、ステップＳ３７０１を実行する。
【０８３８】
[ステップＳ１０００９]
シーケンサ１１１は、ループ数が設定値（LValue_I）でないと判定する場合（ステップＳ１０００８、Ｎｏ）、第１プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉを電圧ＤＶＰＧＭだけインクリメントさせる。
【０８３９】
[ステップＳ１００１０]
シーケンサ１１１は、第１プログラム動作を実行する。
【０８４０】
[ステップＳ１００１１]
シーケンサ１１１は、第１プログラム動作を実行した後、第２プログラムベリファイ動作を実行する。
【０８４１】
このように、シーケンサ１１１は、第２プログラム動作と、第２プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０８４２】
[ステップＳ１００１２]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスか否かを判定する。
【０８４３】
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１００１２、Ｙｅｓ）、ステップＳ４００１を実行する。
[ステップＳ１００１３]
シーケンサ１１１は、第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１００１２、Ｎｏ）、第２プログラム動作のループ数をカウントアップする。
【０８４４】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第２プログラム動作のループ数が設定値（LValue_II）であるか否かを判定する。
【０８４５】
シーケンサ１１１は、ループ数が設定値（LValue_II）であると判定する場合（ステップＳ１００１３、Ｙｅｓ）、ステップＳ４００１を実行する。
【０８４６】
[ステップＳ１００１４]
シーケンサ１１１は、ループ数が設定値（LValue_II）ではないと判定する場合（ステップＳ１００１３、Ｎｏ）、第２プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。そして、その後ステップＳ１０００５を実行する。
【０８４７】
＜２−１３−２＞パルスの具体例
続いて、図１０１及び図１０２を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【０８４８】
図１０１及び図１０２では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【０８４９】
図１０１及び図１０２の例では、パルス番号１〜６、８、１１、１４、１８、２２、２６に対応するパルスが（ｉ）のパルスに相当する。
【０８５０】
図１０１及び図１０２の例では、パルス番号１〜６、８、１１、１４、１８、２２、２６以外に対応するパルスが（ｉｉ）のパルスに相当する。
【０８５１】
＜２−１４＞第２実施形態の変形例１０
第２実施形態の変形例１０について説明する。第２実施形態の変形例１０では、上述したデータの書込み方法と異なる書込み方法を第２実施形態に採用した場合について説明する。
【０８５２】
＜２−１４−１＞動作
＜２−１４−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図１０３を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０８５３】
簡単のため図１０３では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０８５４】
第２実施形態の変形例１０に係る書込み動作は、第２実施形態の変形例８と同様に第１〜第６書込み動作に分けられる。
【０８５５】
第２実施形態の変形例１０と第２実施形態の変形例８とで異なる点は、第１書込み動作と第２書込み動作の実行順序が入れ替わっている点である。
【０８５６】
＜２−１４−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図１０４を用いて、第２実施形態の変形例１０に係るプログラム動作及びプログラムベリファイ動作の実行順序の生成方法について説明する。
【０８５７】
[ステップＳ１０４０１]
シーケンサ１１１は、第３プログラム動作、第４プログラム動作、第５プログラム動作、第６プログラム動作を順に実行する。
【０８５８】
ステップＳ１０４０２〜ステップＳ１０４１２は、図１００のステップＳ１０００４〜ステップＳ１００１４に対応する。
【０８５９】
＜２−１４−２＞パルスの具体例
続いて、図１０５及び図１０６を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【０８６０】
図１０５及び図１０６では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【０８６１】
図１０５及び図１０６の例では、パルス番号１〜７、９、１２、１５、１９、２３、２７に対応するパルスが（ｉ）のパルスに相当する。
【０８６２】
図１０５及び図１０６の例では、パルス番号１〜７、９、１２、１５、１９、２３、２７以外に対応するパルスが（ｉｉ）のパルスに相当する。
【０８６３】
＜２−１５＞第２実施形態の変形例１１
第２実施形態の変形例１１について説明する。第２実施形態の変形例１１では、上述したデータの書込み方法と異なる書込み方法を第２実施形態に採用した場合について説明する。
【０８６４】
＜２−１５−１＞動作
＜２−１５−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図１０７を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０８６５】
簡単のため図１０７では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０８６６】
第２実施形態の変形例１１に係る書込み動作は、第２実施形態の変形例７と同様に第１〜第３書込み動作に分けられる。
【０８６７】
第２実施形態の変形例１１と第２実施形態の変形例７とで異なる点は、第３プログラム動作時の電圧が異なる点と、第３プログラム動作を一回しか実行しない点である。
【０８６８】
より具体的には、第３プログラム動作において、選択ワード線ＷＬに印加される電圧ＶＰＧＭ＿ＩIＩは、例えば、電圧ＶＰＧＭ＿ＩI（２）よりも大きい。
【０８６９】
尚、プログラム動作及びプログラムベリファイ動作の実行順序の生成方法は、図９２を用いて説明した方法と同様である。具体的には、ステップＳ９２０２における「条件」が「設定値＝１」と設定されていれば良い。
【０８７０】
＜２−１５−２＞パルスの具体例
続いて、図１０８及び図１０９を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【０８７１】
図１０８及び図１０９では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【０８７２】
図１０８及び図１０９の例では、パルス番号１〜４、６、９、１２、１６、２０、２７に対応するパルスが（ｉ）のパルスに相当する。
【０８７３】
図１０８及び図１０９の例では、パルス番号１〜４、６、９、１２、１６、２０、２７以外に対応するパルスが（ｉｉ）のパルスに相当する。
【０８７４】
＜２−１６＞第２実施形態の変形例１２
第２実施形態の変形例１２について説明する。第２実施形態の変形例１２では、上述したデータの書込み方法と異なる書込み方法を第２実施形態に採用した場合について説明する。
【０８７５】
＜２−１６−１＞動作
＜２−１６−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図１１０を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０８７６】
簡単のため図１１０では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０８７７】
第２実施形態の変形例１２に係る書込み動作は、第２実施形態の変形例１１と同様に第１〜第３書込み動作に分けられる。
【０８７８】
第２実施形態の変形例１２と第２実施形態の変形例１１とで異なる点は、第１書込動作と第２書込み動作の実行順序が入れ替わっている点である。
【０８７９】
尚、プログラム動作及びプログラムベリファイ動作の実行順序の生成方法は、図１００を用いて説明した方法と同様である。具体的には、ステップＳ１０００２における「条件」が「設定値＝１」と設定されていれば良い。
【０８８０】
＜２−１６−２＞パルスの具体例
続いて、図１１１及び図１１２を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【０８８１】
図１１１及び図１１２では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【０８８２】
図１１１及び図１１２の例では、パルス番号１〜４、６、９、１２、１６、２０、２４に対応するパルスが（ｉ）のパルスに相当する。
【０８８３】
図１１１及び図１１２の例では、パルス番号１〜４、６、９、１２、１６、２０、２４以外に対応するパルスが（ｉｉ）のパルスに相当する。
【０８８４】
＜３＞第３実施形態
第３実施形態について説明する。第３実施形態では、メモリセルトランジスタが１６値のデータを記憶する場合について説明する。尚、第３実施形態に係る記憶装置の基本的な構成及び基本的な動作は、上述した第１実施形態に係る記憶装置と同様である。従って、上述した第１実施形態で説明した事項及び上述した第１実施形態から容易に類推可能な事項についての説明は省略する。
【０８８５】
＜３−１＞メモリセルトランジスタの閾値分布
＜３−１−１＞メモリセルトランジスタの閾値分布及びデータの関係
図１１３を用いて、メモリセルトランジスタの閾値分布及びデータの関係について説明する。
【０８８６】
図１１３に示すように、各々のメモリセルトランジスタＭＴは、その閾値に応じて例えば４ビットのデータを保持可能である。この４ビットデータは、閾値の低いものから順番に、例えば“１１１１”“１０１１”、“０１０１”、“１０００”、“１００１”、“０００１”、“００１１”、“０１１１”、“０１０１”、“１１０１”“１１００”、“０１００”、“００００”、“００１０”、“０１１０”、“１１１０”である。
【０８８７】
“１１１１”データを保持するメモリセルトランジスタＭＴの閾値は、ある一定の分布内にあり、この“１１１１”データに対応する閾値分布を“Ｅｒ”レベルと呼ぶ。Ｅｒレベルは、電荷蓄積層内の電荷が引き抜かれて、データが消去された状態における閾値分布であり、正または負の値である（例えば電圧Ｖ１未満）。
【０８８８】
“１０１１”、“０１０１”、“１０００”、“１００１”、“０００１”、“００１１”、“０１１１”、“０１０１”、“１１０１”“１１００”、“０１００”、“００００”、“００１０”、“０１１０”、“１１１０”は、電荷蓄積層内に電荷が注入されて、データが書き込まれた状態の閾値分布である。
【０８８９】
“１０１１”データを保持するメモリセルトランジスタＭＴの閾値は“１”レベルの分布内にあり、０レベル内の閾値よりも高い（例えば電圧Ｖ１以上、Ｖ２未満であり、Ｖ１＜Ｖ２）。
【０８９０】
“０１０１”データを保持するメモリセルトランジスタＭＴの閾値は“２”レベルの分布内にあり、１レベル内の閾値よりも高い（例えば電圧Ｖ２以上、Ｖ３未満であり、Ｖ２＜Ｖ３）。
【０８９１】
“１０００”データを保持するメモリセルトランジスタＭＴの閾値は“３”レベルの分布内にあり、２レベル内の閾値よりも高い（例えば電圧Ｖ３以上、Ｖ４未満であり、Ｖ３＜Ｖ４）。
【０８９２】
“１００１”データを保持するメモリセルトランジスタＭＴの閾値は“４”レベルの分布内にあり、３レベル内の閾値よりも高い（例えば電圧Ｖ４以上、Ｖ５未満であり、Ｖ４＜Ｖ５）。
【０８９３】
“０００１”データを保持するメモリセルトランジスタＭＴの閾値は“５”レベルの分布内にあり、４レベル内の閾値よりも高い（例えば電圧Ｖ５以上、Ｖ６未満であり、Ｖ５＜Ｖ６）。
【０８９４】
“００１１”データを保持するメモリセルトランジスタＭＴの閾値は“６”レベルの分布内にあり、５レベル内の閾値よりも高い（例えば電圧Ｖ６以上、Ｖ７未満であり、Ｖ６＜Ｖ７）。
【０８９５】
“０１１１”データを保持するメモリセルトランジスタＭＴの閾値は“７”レベルの分布内にあり、６レベル内の閾値よりも高い（例えば電圧Ｖ７以上、Ｖ８未満であり、Ｖ７＜Ｖ８）。
【０８９６】
“０１０１”データを保持するメモリセルトランジスタＭＴの閾値は“８”レベルの分布内にあり、７レベル内の閾値よりも高い（例えば電圧Ｖ８以上、Ｖ９未満であり、Ｖ８＜Ｖ９）。
【０８９７】
“１１０１”データを保持するメモリセルトランジスタＭＴの閾値は“９”レベルの分布内にあり、８レベル内の閾値よりも高い（例えば電圧Ｖ９以上、Ｖ１０未満であり、Ｖ９＜Ｖ１０）。
【０８９８】
“１１００”データを保持するメモリセルトランジスタＭＴの閾値は“Ａ”レベルの分布内にあり、９レベル内の閾値よりも高い（例えば電圧ＶＡ以上、ＶＢ未満であり、ＶＡ＜ＶＢ）。
【０８９９】
“０１００”データを保持するメモリセルトランジスタＭＴの閾値は“Ｂ”レベルの分布内にあり、Ａレベル内の閾値よりも高い（例えば電圧ＶＢ以上、ＶＣ未満であり、ＶＢ＜ＶＣ）。
【０９００】
“００００”データを保持するメモリセルトランジスタＭＴの閾値は“Ｃ”レベルの分布内にあり、Ｂレベル内の閾値よりも高い（例えば電圧ＶＣ以上、ＶＤ未満であり、ＶＣ＜ＶＤ）。
【０９０１】
“００１０”データを保持するメモリセルトランジスタＭＴの閾値は“Ｄ”レベルの分布内にあり、Ｃレベル内の閾値よりも高い（例えば電圧ＶＤ以上、ＶＥ未満であり、ＶＤ＜ＶＥ）。
【０９０２】
“０１１０”データを保持するメモリセルトランジスタＭＴの閾値は“Ｅ”レベルの分布内にあり、Ｄレベル内の閾値よりも高い（例えば電圧ＶＥ以上、ＶＦ未満であり、ＶＥ＜ＶＦ）。
【０９０３】
“１１１０”データを保持するメモリセルトランジスタＭＴの閾値は“Ｆ”レベルの分布内にあり、Ｅレベル内の閾値よりも高い（例えば電圧ＶＦ以上）。
【０９０４】
もちろん、４ビットデータと閾値との関係はこの関係に限定されるものでは無く、例えば“１１１１”データが“Ｇ”レベルに対応するような場合であっても良く、両者の関係については適宜選択出来る。
【０９０５】
＜３―１―２＞書込み動作時のメモリセルトランジスタの閾値分布の変化
次に図１１４を用いて、書込み動作時のメモリセルトランジスタの閾値分布の変化について説明する。
【０９０６】
書込み動作が行われる前において、予めブロック消去によってブロック内の全てのメモリセルＭＣの閾値は、に示す消去状態（“０”レベル）の閾値分布となる（第１状態）。
【０９０７】
書込み動作が行われると、消去状態（“０”レベル）の閾値分布が、第２状態のような閾値分布に変化していく。第２状態の時点では、０レベル、１レベル、２レベル、３レベル、４レベル、５レベル、６レベル、７レベル、８レベル、９レベル、Ａレベル、Ｂレベル、Ｃレベル、Ｄレベル、Ｅレベル、及びＦレベルの閾値分布はそれぞれ、隣り合う閾値分布と重なりあった分布となっており、まだ書込み動作は完了しない。そして、更に書込み動作が行われると、第２状態の閾値分布が、第３状態のように、１６値の閾値分布に変化する。以上のように、第３状態のような１６値の閾値分布になるまで、書込み動作を繰り返す必要がある。
【０９０８】
なお、図１１４では、書き込み動作時に、第１状態から第２状態に遷移させ、更に第２状態から第３状態に遷移させるように説明したが、これに限らない。具体的には、第１状態から第３状態に遷移させるような書き込み方法でも良い。
【０９０９】
＜３−２＞動作
＜３−２−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図１１５を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０９１０】
簡単のため図１１５では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０９１１】
第３実施形態に係る書込み動作は、第１〜第４書込み動作に分けられる。なお、第１〜第４書込み動作の分け方は種々あるが、本例では例えば一例を提示する。
【０９１２】
第１書込み動作は、“１”、“２”、“３”、“４”レベルに関する書込み動作である。第２書込み動作は、“５”、“６”、“７”、“８”レベルに関する書込み動作である。第３書込み動作は、“９”、“Ａ”、“Ｂ”、“Ｃ”レベルに関する書込み動作である。第４書込み動作は、“Ｄ”、“Ｅ”、“Ｆ”レベルに関する書込み動作である。
【０９１３】
第１書込み動作は、“１”、“２”、“３”、“４”レベルの書込みに関する第１プログラム動作（Ｐ＿Ｉ）と、第１プログラム動作がパスしたか否かを判定する第１プログラムベリファイ動作（Ｖ＿Ｉ）と、を含んでいる。
【０９１４】
第２書込み動作は、“５”、“６”、“７”、“８”レベルの書込みに関する第２プログラム動作（Ｐ＿ＩＩ）と、第２プログラム動作がパスしたか否かを判定する第２プログラムベリファイ動作（Ｖ＿ＩＩ）と、を含んでいる。
【０９１５】
第３書込み動作は、“９”、“Ａ”、“Ｂ”、“Ｃ”レベルの書込みに関する第３プログラム動作（Ｐ＿ＩＩＩ）と、第３プログラム動作がパスしたか否かを判定する第３プログラムベリファイ動作（Ｖ＿ＩＩＩ）と、を含んでいる。
【０９１６】
第４書込み動作は、“Ｄ”、“Ｅ”、“Ｆ”レベルの書込みに関する第４プログラム動作（Ｐ＿ＩＶ）と、第４プログラム動作がパスしたか否かを判定する第４プログラムベリファイ動作（Ｖ＿ＩＶ）と、を含んでいる。
【０９１７】
第１プログラム動作において、選択ワード線ＷＬに印加される電圧ＶＰＧＭを電圧ＶＰＧＭ＿Ｉ（ｎ）と表記する。同様に、第２プログラム動作において、選択ワード線ＷＬに印加される電圧ＶＰＧＭを電圧ＶＰＧＭ＿ＩI（ｎ）と表記する。同様に、第３プログラム動作において、選択ワード線ＷＬに印加される電圧ＶＰＧＭを電圧ＶＰＧＭ＿ＩＩI（ｎ）と表記する。同様に、第４プログラム動作において、選択ワード線ＷＬに印加される電圧ＶＰＧＭを電圧ＶＰＧＭ＿ＩＶ（ｎ）と表記する。ｎは、第１プログラム動作または第２プログラム動作の回数に相当する。
【０９１８】
シーケンサ１１１は、第１プログラム動作を実行するたびに、電圧ＶＰＧＭ＿Ｉ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。同様にシーケンサ１１１は、第２プログラム動作を実行するたびに、電圧ＶＰＧＭ＿ＩＩ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。同様にシーケンサ１１１は、第３プログラム動作を実行するたびに、電圧ＶＰＧＭ＿ＩＩＩ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。同様にシーケンサ１１１は、第４プログラム動作を実行するたびに、電圧ＶＰＧＭ＿ＩＶ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。電圧ＶＰＧＭ＿Ｉ（ｎ）〜電圧ＶＰＧＭ＿ＩＶ（ｎ）が電圧ＤＶＰＧＭずつインクリメントされる度に、ｎもインクリメントされる。
【０９１９】
第１プログラムベリファイ動作において、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹを電圧ＶＰＶＦＹ＿Ｉと表記する。第２プログラムベリファイ動作において、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹを電圧ＶＰＶＦＹ＿ＩＩと表記する。第３プログラムベリファイ動作において、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹを電圧ＶＰＶＦＹ＿ＩＩＩと表記する。第４プログラムベリファイ動作において、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹを電圧ＶＰＶＦＹ＿ＩＶと表記する。
【０９２０】
図１１５に示すように、本例では、基本的に第１プログラム動作の直後に第１プログラムベリファイ動作が行われないように制御され、第２プログラム動作の直後に第２プログラムベリファイ動作が行われないように制御され、第３プログラム動作の直後に第３プログラムベリファイ動作が行われないように制御され、第４プログラム動作の直後に第４プログラムベリファイ動作が行われないように制御される。しかし、例えば、第１プログラム動作〜第４プログラム動作のいずれかのみを継続する場合は、この限りではない。
【０９２１】
また、図１１５に示す例では、一例として、第１書込み動作及び第２書込み動作をセットで実行し、第３書込み動作及び第４書込み動作をセットで実行する。
【０９２２】
＜３−２−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図１１６〜図１１８を用いて、本実施形態に係るプログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法について説明する。
【０９２３】
[ステップＳ１１６０１]
まずシーケンサ１１１は、電圧ＶＰＧＭ＿ＩＩＩ及びＶＰＧＭ＿ＩＶを用いて第３及び第４プログラム動作を実行する（図１１６参照）。なお、「第３及び第４プログラム動作を実行する」と記載しているが、第３書き込み動作が完了している場合は、第３プログラムを行う必要はない。同様に第４書き込み動作が完了している場合は、第４プログラムを行う必要はない。これは、他の実施例でも同様である。
【０９２４】
[ステップＳ１１６０２]
シーケンサ１１１は、電圧ＶＰＧＭ＿Ｉ及びＶＰＧＭ＿ＩＩを用いて第１及び第２プログラム動作を実行する。なお、「第１及び第２プログラム動作を実行する」と記載しているが、第１書き込み動作が完了している場合は、第１プログラムを行う必要はない。同様に第２書き込み動作が完了している場合は、第２プログラムを行う必要はない。これは、他の実施例でも同様である。
【０９２５】
[ステップＳ１１６０３]
シーケンサ１１１は、第１及び第２プログラム動作を実行した後、第３及び第４プログラム動作に関する第３及び第４プログラムベリファイ動作を実行する。具体的にはシーケンサ１１１は、電圧ＶＰＶＦＹ＿ＩＩＩ及びＶＰＶＦＹ＿ＩＶを用いて第３及び第４プログラムベリファイ動作を実行する。
【０９２６】
このように、シーケンサ１１１は、第３及び第４プログラム動作と、第３及び第４プログラムベリファイ動作との間に、他の動作を実行する。これにより、第３及び第４プログラム動作が行われたメモリセルトランジスタは、第３及び第４プログラム動作の直後に第３及び第４プログラムベリファイ動作を実行するよりも、第１及び第２プログラム動作の時間だけ長く放置されることになる。その結果、シーケンサ１１１は、図１４を用いて説明したように、第３及び第４プログラム動作の直後に第３及び第４プログラムベリファイ動作を実行するよりも、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０９２７】
[ステップＳ１１６０４]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスか否かを判定する。より具体的にはシーケンサ１１１は、第３及び第４プログラムベリファイ動作によってフェイルビットと判定されたフェイルビット数が設定値（FValue_III&IV）以上であるか否かを判定する。フェイルビット数が設定値（FValue_III&IV）未満である場合、シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスであると判定する。この設定値（FValue_III&IV）は、例えばＥＣＣ回路２０６で救済できないフェイルビット数である。この設定値（FValue_III&IV）は、例えばレジスタ１１２に記憶されている。シーケンサ１１１は、レジスタ１１２に記憶された設定値（FValue_III&IV）と、フェイルビット数と、を比較する。
【０９２８】
[ステップＳ１１６０５]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１１６０４、Ｎｏ）、第３及び第４プログラム動作の繰り返し回数（ループ数）をカウントアップする。例えば、第３及び第４プログラム動作のループ数は、レジスタ１１２等に記憶される。そして、第３及び第４プログラム動作のループ数のカウントは、シーケンサ１１１が行っても良いし、それ以外の構成で行っても良い。
【０９２９】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であるか否かを判定する。この設定値（LValue_III&IV）は、例えばレジスタ１１２に記憶されている。シーケンサ１１１は、レジスタ１１２に記憶された設定値（LValue_III&IV）と、第３及び第４プログラム動作のループ数と、を比較する。
【０９３０】
[ステップＳ１１６０６]
シーケンサ１１１は、ループ数が設定値（LValue_III&IV）でないと判定する場合（ステップＳ１１６０５、Ｎｏ）、第３及び第４プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩ及びＶＰＧＭ＿ＩＶをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【０９３１】
[ステップＳ１１６０７]
シーケンサ１１１は、電圧ＶＰＧＭ＿ＩＩＩ及びＶＰＧＭ＿ＩＶを用いて第３及び第４プログラム動作を実行する。
【０９３２】
[ステップＳ１１６０８]
シーケンサ１１１は、第３及び第４プログラム動作を実行した後、第１及び第２プログラム動作に関する第１及び第２プログラムベリファイ動作を実行する。具体的にはシーケンサ１１１は、電圧ＶＰＶＦＹ＿Ｉ及びＶＰＶＦＹ＿ＩＩを用いて第１及び第２プログラムベリファイ動作を実行する。
【０９３３】
このように、シーケンサ１１１は、第１及び第２プログラム動作と、第１及び第２プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、図１４を用いて説明したように、第１及び第２プログラム動作の直後に第１及び第２プログラムベリファイ動作を実行するよりも、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０９３４】
[ステップＳ１１６０９]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスか否かを判定する。より具体的にはシーケンサ１１１は、第１及び第２プログラムベリファイ動作によってフェイルビットと判定されたフェイルビット数が設定値（FValue_I&II）以上であるか否かを判定する。フェイルビット数が設定値（FValue_I&II）未満である場合、シーケンサ１１１は、第１プログラムベリファイ動作の結果がパスであると判定する。この設定値（FValue_I&II）は、例えばＥＣＣ回路２０６で救済できないフェイルビット数である。この設定値（FValue_I&II）は、例えば、レジスタ１１２に記憶されている。つまり、シーケンサ１１１は、レジスタ１１２に記憶された設定値（FValue_I&II）と、第１及び第２プログラムベリファイ動作によってフェイルビットと判定されたフェイルビット数と、を比較する。
[ステップＳ１１６１０]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１１６０９、Ｎｏ）、第１及び第２プログラム動作の繰り返し回数（ループ数）をカウントアップする。例えば、第１及び第２プログラム動作のループ数は、レジスタ１１２等に記憶される。そして、第１及び第２プログラム動作のループ数のカウントは、シーケンサ１１１が行っても良いし、それ以外の構成で行っても良い。
【０９３５】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であるか否かを判定する。この設定値（LValue_I&II）は、例えばレジスタ１１２に記憶されている。シーケンサ１１１は、レジスタ１１２に記憶された設定値（LValue_I&II）と、第１及び第２プログラム動作のループ数と、を比較する。
【０９３６】
[ステップＳ１１６１１]
シーケンサ１１１は、ループ数が設定値（LValue_I&II）でないと判定する場合（ステップＳ１１６１０、Ｎｏ）、第１及び第２プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉ及びＶＰＧＭ＿ＩＩをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。そして、その後ステップＳ１１６０２を実行する。
【０９３７】
[ステップＳ１１７０１]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１１６０４、Ｙｅｓ）、または、ループ数が設定値（LValue_III&IV）であると判定する場合（ステップＳ１１６０５、Ｙｅｓ）、ステップＳ１１６０８と同様の動作を実行する（図１１７参照）。
【０９３８】
[ステップＳ１１７０２]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスか否かを判定する。シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１１７０２、Ｙｅｓ）、書込み動作を終了する。
【０９３９】
[ステップＳ１１７０３]
シーケンサ１１１は、第１及びお第２プログラムベリファイ動作の結果がパスでないと判定する場合（ステップＳ１１７０２、Ｎｏ）、第１及び第２プログラム動作に係るループ数をカウントアップする。そして、シーケンサ１１１は、第１及び第２プログラム動作に係るループ数が設定値（LValue_I&II）であるか否かを判定する。シーケンサ１１１は、第１及び第２プログラム動作に係るループ数が設定値（LValue_I&II）であると判定する場合（ステップＳ１１７０３、Ｙｅｓ）、書込み動作を終了する。
【０９４０】
[ステップＳ１１７０４]
シーケンサ１１１は、第１及び第２プログラム動作に係るループ数が設定値（LValue_I&II）でないと判定する場合（ステップＳ１１７０３、Ｎｏ）、第１及び第２プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉ及びＶＰＧＭ＿ＩＩをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【０９４１】
[ステップＳ１１７０５]
シーケンサ１１１は、ステップＳ１１６０２と同様の動作を実行する。
【０９４２】
[ステップＳ１１８０１]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１１６０９、Ｙｅｓ）、または、ループ数が設定値（LValue_I&II）であると判定する場合（ステップＳ１１６１０、Ｙｅｓ）、ステップＳ１１６０３と同様の動作を実行する（図１１８参照）。
【０９４３】
[ステップＳ１１８０２]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスか否かを判定する。シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１１８０２、Ｙｅｓ）、書込み動作を終了する。
【０９４４】
[ステップＳ１１８０３]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスでないと判定する場合（ステップＳ１１８０２、Ｎｏ）、第３及び第４プログラム動作に係るループ数をカウントアップする。そして、シーケンサ１１１は、第３及び第４プログラム動作に係るループ数が設定値（LValue_III&IV）であるか否かを判定する。シーケンサ１１１は、第３及び第４プログラム動作に係るループ数が設定値（LValue_III&IV）であると判定する場合（ステップＳ１１８０３、Ｙｅｓ）、書込み動作を終了する。
【０９４５】
[ステップＳ１１８０４]
シーケンサ１１１は、ステップＳ１１６０６と同様の動作を実行する。
【０９４６】
[ステップＳ１１８０５]
シーケンサ１１１は、ステップＳ１１６０７と同様の動作を実行する。
【０９４７】
メモリシステム１は、以上のようにして、パルス順序を生成する。
【０９４８】
＜３−３＞具体例
次に、第３の実施形態のメモリシステムに係る書込み動作の具体例について説明する。
【０９４９】
＜３−３−１＞書込み対象のメモリセルトランジスタ例
図１１９に示すように、本具体例では、簡単のため、１つのワード線ＷＬに共通接続された複数のメモリセルトランジスタＭＴのそれぞれに、０レベル〜Ｆレベルのいずれかが書き込まれる場合について説明する。ここで、ビット線ＢＬ（０）は、０レベルのデータが書き込まれるメモリセルトランジスタＭＴ（０）に接続される。同様にビット線ＢＬ（Ｙ（Ｙ：任意のレベル））は、Ｙレベルのデータが書き込まれるメモリセルトランジスタＭＴ（Ｙ）に接続される。
【０９５０】
なお、本例は、必ずしも複数のメモリセルトランジスタが１つのワード線ＷＬに共通接続されてなくても良い。つまり、複数のメモリセルトランジスタが異なるワード線ＷＬに接続されている場合でも、同様の動作を適用することができる。
【０９５１】
＜３−３−２＞パルスの具体例
続いて、図１２０〜図１２２を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【０９５２】
図１２０〜図１２２では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【０９５３】
図１２０〜図１２２の例では、パルス番号１〜６、９、１０、１４、１６、２０、２２、２７、３０、３５，３８、４３、５０、５３に対応するパルスが（ｉ）のパルスに相当する。
【０９５４】
図１２０〜図１２２の例では、パルス番号１〜６、９、１０、１４、１６、２０、２２、２７、３０、３５，３８、４３、５０、５３以外に対応するパルスが（ｉｉ）のパルスに相当する。
【０９５５】
＜３−４＞効果
上述した実施形態によれば、メモリシステム１は、第１及び第２プログラム動作の直後に第１及び第２プログラムベリファイ動作を行わず、第３及び第４プログラム動作の直後に第３及び第４プログラムベリファイ動作を行わない。その結果、第１実施形態と同様の効果を得ることができる。
【０９５６】
＜３−５＞第３実施形態の変形例１
第３実施形態の変形例１について説明する。第３実施形態の変形例１では、上述したデータの読み出し方法と異なる読み出し方法を第３実施形態に採用した場合について説明する。
【０９５７】
＜３−５−１＞読み出し動作
次に、第３実施形態の変形例１に係るデータの読み出し動作について、図１２３を用いて説明する。
【０９５８】
読み出し時には、シーケンサ１１１により、非選択ワード線ＷＬに、保持データに関わらずメモリセルトランジスタＭＴをオンさせる電圧ＶＲＥＡＤが印加される。更に、セレクトゲート線ＳＧＤ及びＳＧＳには、選択トランジスタＳＴ１及びＳＴ２をオンさせる電圧ＶＳＧが印加される。そして選択ワード線の電圧は、図１２３に示すように連続的に上昇される。
【０９５９】
そして、選択ワード線ＷＬの電圧がＶＺ（Ｚ：任意のレベル）に達した時点で、メモリセルトランジスタＭＴの閾値が“Ｚ”レベルに含まれるか、それとも“Ｚ＋１”レベル以上の分布内にあるかの判定がなされる（これを読み出し動作ＺＲと呼ぶ）。そして、判定結果がラッチ回路１７に転送される（ＺＲストローブ）。
【０９６０】
具体的には、選択ワード線ＷＬの電圧がＶ１に達した時点で、データが読み出される。すなわち、図１２３に示すように、メモリセルトランジスタＭＴの閾値が“０”レベルに含まれるか、それとも“１”レベル以上の分布に含まれるかの判定がなされる（これを読み出し動作１Ｒと呼ぶ）。そして、判定結果がラッチ回路１７に転送される（１Ｒストローブ）。
【０９６１】
引き続き、選択ワード線ＷＬの電圧がＶ２に達した時点で、メモリセルトランジスタＭＴの閾値が“１”レベル以下の分布内にあるか、それとも“２”レベル以上の分布内にあるかの判定がなされる（これを読み出し動作２Ｒと呼ぶ）。そして、判定結果がラッチ回路１７に転送される（２Ｒストローブ）。
【０９６２】
更に、選択ワード線ＷＬの電圧がＶ３に達した時点で、メモリセルトランジスタＭＴの閾値が“２”レベルに含まれるか、それとも“３”レベル以上の分布内にあるかの判定がなされる（これを読み出し動作３Ｒと呼ぶ）。そして、判定結果がラッチ回路１７に転送される（３Ｒストローブ）。
【０９６３】
同様にして、ＦＲストローブまで行われる。
【０９６４】
第１実施形態の変形例１でも説明したように、ロウデコーダ１５０を介して選択ワード線ＷＬを駆動する場合、メモリセルトランジスタＭＴの位置によって、その電位変動の仕方が異なる。
【０９６５】
そこで、図１２３に示すように、信号ＳＴＢ＿ＮＥＡＲは時刻Ｔ０でアサート（“Ｈ”レベル）される。従って、グループＧＰ１に対応するメモリセルトランジスタＭＴから読み出されたデータは、時刻Ｔ０でストローブされる。また、信号ＳＴＢ＿ＭＩＤは時刻Ｔ１でアサートされる。従って、グループＧＰ２に対応するメモリセルトランジスタＭＴから読み出されたデータは、時刻Ｔ１でストローブされる。引き続き、信号ＳＴＢ＿ＦＡＲは時刻Ｔ２でアサートされる。従って、グループＧＰ３に対応するメモリセルトランジスタＭＴから読み出されたデータは、時刻Ｔ２でストローブされる。
【０９６６】
以上のように、メモリセルトランジスタＭＴの位置に応じて、時刻Ｔ０、Ｔ１、Ｔ２のタイミングでＡＲストローブが実行される。以下、読み出し動作２Ｒ〜ＦＲについても同様である。
【０９６７】
本例は、第３実施形態に係る実施例に適用することが可能である。
【０９６８】
＜３−６＞第３実施形態の変形例２
第３実施形態の変形例２について説明する。第３実施形態の変形例２では、上述したデータの書込み方法と異なる書込み方法を第３実施形態に採用した場合について説明する。
【０９６９】
＜３−６−１＞動作
＜３−６−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図１２４を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【０９７０】
簡単のため図１２４では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【０９７１】
第３実施形態の変形例２に係る書込み動作は、第３実施形態と同様に第１〜第４書込み動作に分けられる。
【０９７２】
第３実施形態では、まず第３及び第４プログラム動作を行い、次いで第１及び第２プログラム動作を行った。しかし、図１２４に示すように、第３実施形態の変形例２では、まず第１及び第２プログラム動作を行い、次いで第３及び第４プログラム動作を実行する。このように、第３実施形態の変形例２では、第１及び第２書込み動作と第３及び第４書込み動作との実行順序を入れ替えた動作を実行する。
【０９７３】
＜３−６−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図１２５を用いて、本実施形態に係るプログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法について説明する。
【０９７４】
[ステップＳ１２５０１]
シーケンサ１１１は、ステップＳ１１６０２と同様の動作を実行する。
【０９７５】
[ステップＳ１２５０２]
シーケンサ１１１は、ステップＳ１１６０１と同様の動作を実行する。
【０９７６】
[ステップＳ１２５０３]
シーケンサ１１１は、ステップＳ１１６０８と同様の動作を実行する。
【０９７７】
このように、シーケンサ１１１は、第１及び第２プログラム動作と、第１及び第２プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０９７８】
[ステップＳ１２５０４]
シーケンサ１１１は、ステップＳ１１６０９と同様の動作を実行する。
【０９７９】
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１２５０４、Ｙｅｓ）、ステップＳ１１８０１を実行する。
【０９８０】
[ステップＳ１２５０５]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１２５０４、Ｎｏ）、第１及び第２プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【０９８１】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であるか否かを判定する。
【０９８２】
シーケンサ１１１は、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であると判定する場合（ステップＳ１２５０５、Ｙｅｓ）、ステップＳ１１８０１を実行する。
【０９８３】
[ステップＳ１２５０６]
シーケンサ１１１は、ループ数が設定値（LValue_I&II）でないと判定する場合（ステップＳ１２５０５、Ｎｏ）、第１及び第２プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉ及びＶＰＧＭ＿ＩＩをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【０９８４】
[ステップＳ１２５０７]
シーケンサ１１１は、ステップＳ１１６０２と同様の動作を実行する。
【０９８５】
[ステップＳ１２５０８]
シーケンサ１１１は、ステップＳ１１６０３と同様の動作を実行する。
【０９８６】
このように、シーケンサ１１１は、第３及び第４プログラム動作と、第３及び第４プログラムベリファイ動作との間に、他の動作を実行する。これにより、シーケンサ１１１は、電子抜けが落ち着いた状態でプログラムベリファイを実行することができる。
【０９８７】
[ステップＳ１２５０９]
シーケンサ１１１は、ステップＳ１１６０４と同様の動作を実行する。
【０９８８】
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１２５０９、Ｙｅｓ）、ステップＳ１１７０１を実行する。
【０９８９】
[ステップＳ１２５１０]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１２５０９、Ｎｏ）、第３及び第４プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【０９９０】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であるか否かを判定する。
【０９９１】
シーケンサ１１１は、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であると判定する場合（ステップＳ１２５１０、Ｙｅｓ）、ステップＳ１１７０１を実行する。
【０９９２】
[ステップＳ１２５１１]
シーケンサ１１１は、ループ数が設定値（LValue_III&IV）でないと判定する場合（ステップＳ１２５１０、Ｎｏ）、第３及び第４プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩ及びＶＰＧＭ＿ＩＶをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【０９９３】
その後、シーケンサ１１１は、ステップＳ１２５０２を実行する。
【０９９４】
＜３−６−２＞パルスの具体例
続いて、図１２６〜図１２８を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【０９９５】
図１２６〜図１２８では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【０９９６】
図１２６〜図１２８の例では、パルス番号１〜６、９、１０、１４、１６、２０、２２、２７、３０、３５、３８、４３、４６、５１に対応するパルスが（ｉ）のパルスに相当する。
【０９９７】
図１２６〜図１２８の例では、パルス番号１〜６、９、１０、１４、１６、２０、２２、２７、３０、３５、３８、４３、４６、５１以外に対応するパルスが（ｉｉ）のパルスに相当する。
【０９９８】
＜３−７＞第３実施形態の変形例３
第３実施形態の変形例３について説明する。第３実施形態の変形例３では、上述したデータの書込み方法と異なる書込み方法を第３実施形態に採用した場合について説明する。
【０９９９】
＜３−７−１＞動作
＜３−７−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図１２９を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【１０００】
簡単のため図１２９では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【１００１】
第３実施形態の変形例３に係る書込み動作は、第１〜第５書込み動作に分けられる。なお、第１〜第５書込み動作の分け方は種々あるが、本例では例えば二通り提示する。
【１００２】
一例として、第１書込み動作は、“２”〜“４”レベルに関する書込み動作である。第２書込み動作は、“５”〜“８”レベルに関する書込み動作である。第３書込み動作は、“９”〜“Ｃ”レベルに関する書込み動作である。第４書込み動作は、“Ｄ”〜“Ｆ”レベルに関する書込み動作である。第５書込み動作は、“１”レベルに関する書込み動作である。
【１００３】
他の例として、第１書込み動作は、“２”〜“５”レベルに関する書込み動作である。第２書込み動作は、“６”〜“９”レベルに関する書込み動作である。第３書込み動作は、“Ａ”〜“Ｄ”レベルに関する書込み動作である。第４書込み動作は、“Ｅ”、“Ｆ”レベルに関する書込み動作である。第５書込み動作は、“１”レベルに関する書込み動作である。
【１００４】
第１書込み動作は、“２”〜“４”（または“２”〜“５”）レベルの書込みに関する第１プログラム動作（Ｐ＿Ｉ）と、第１プログラム動作がパスしたか否かを判定する第１プログラムベリファイ動作（Ｖ＿Ｉ）と、を含んでいる。
【１００５】
第２書込み動作は、“５”〜“８”（または“６”〜“９”）レベルの書込みに関する第２プログラム動作（Ｐ＿ＩＩ）と、第２プログラム動作がパスしたか否かを判定する第２プログラムベリファイ動作（Ｖ＿ＩＩ）と、を含んでいる。
【１００６】
第３書込み動作は、“９”〜“Ｃ”（または“Ａ”〜“Ｄ”）レベルの書込みに関する第３プログラム動作（Ｐ＿ＩＩＩ）と、第３プログラム動作がパスしたか否かを判定する第３プログラムベリファイ動作（Ｖ＿ＩＩＩ）と、を含んでいる。
【１００７】
第４書込み動作は、“Ｄ”〜“Ｆ”（または“Ｅ”、“Ｆ”）レベルの書込みに関する第４プログラム動作（Ｐ＿ＩＶ）と、第４プログラム動作がパスしたか否かを判定する第４プログラムベリファイ動作（Ｖ＿ＩＶ）と、を含んでいる。
【１００８】
第５書込み動作は、“１”レベルの書込みに関する第５プログラム動作（Ｐ＿Ｖ）と、第５プログラム動作がパスしたか否かを判定する第５プログラムベリファイ動作（Ｖ＿Ｖ）と、を含んでいる。
【１００９】
シーケンサ１１１は、第１〜第５プログラム動作を実行するたびに、電圧ＶＰＧＭ＿Ｉ（ｎ）〜ＶＰＧＭ＿Ｖ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。
【１０１０】
第１〜第５プログラムベリファイ動作において、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹをそれぞれ電圧ＶＰＶＦＹ＿Ｉ〜ＶＰＶＦＹ＿Ｖと表記する。
【１０１１】
図１２９に示すように、本例では、基本的に第１プログラム動作の直後に第１プログラムベリファイ動作が行われないように制御され、第２プログラム動作の直後に第２プログラムベリファイ動作が行われないように制御され、第３プログラム動作の直後に第３プログラムベリファイ動作が行われないように制御され、第４プログラム動作の直後に第４プログラムベリファイ動作が行われないように制御され、第５プログラム動作の直後に第５プログラムベリファイ動作が行われないように制御される。また、第５プログラム動作は、条件を満たした後に行われる。
【１０１２】
＜３−７−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図１３０〜図１４３を用いて、第３実施形態の変形例３に係るプログラム動作及びプログラムベリファイ動作の実行順序の生成方法について説明する。
【１０１３】
[ステップＳ１３００１]
シーケンサ１１１は、ステップＳ１１６０１と同様の動作を実行する（図１３０参照）。
【１０１４】
[ステップＳ１３００２]
シーケンサ１１１は、ステップＳ１１６０２と同様の動作を実行する。
【１０１５】
[ステップＳ１３００３]
シーケンサ１１１は、ステップＳ１１６０３と同様の動作を実行する。
【１０１６】
[ステップＳ１３００４]
シーケンサ１１１は、ステップＳ１１６０４と同様の動作を実行する。
【１０１７】
[ステップＳ１３００５]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３００４、Ｎｏ）、第３及び第４プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１０１８】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であるか否かを判定する。
【１０１９】
[ステップＳ１３００６]
シーケンサ１１１は、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）ではないと判定する場合（ステップＳ１３００５、Ｎｏ）、条件を満たしているか否かを判定する。
【１０２０】
[ステップＳ１３００７]
シーケンサ１１１は、条件を満たしていないと判定する場合（ステップＳ１３００６、Ｎｏ）、第３及び第４プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩ及びＶＰＧＭ＿ＩＶをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１０２１】
[ステップＳ１３００８]
シーケンサ１１１は、ステップＳ１１６０１と同様の動作を実行する。
【１０２２】
[ステップＳ１３００９]
シーケンサ１１１は、ステップＳ１１６０８と同様の動作を実行する。
【１０２３】
[ステップＳ１３０１０]
シーケンサ１１１は、ステップＳ１１６０９と同様の動作を実行する。
【１０２４】
[ステップＳ１３０１１]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３０１０、Ｎｏ）、第１及び第２プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１０２５】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であるか否かを判定する。
【１０２６】
[ステップＳ１３０１２]
シーケンサ１１１は、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）ではないと判定する場合（ステップＳ１３０１１、Ｎｏ）、条件を満たしているか否かを判定する。
【１０２７】
[ステップＳ１３０１３]
シーケンサ１１１は、条件をみたしていないと判定する場合（ステップＳ１３０１２、Ｎｏ）、第１及び第２プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉ及びＶＰＧＭ＿ＩＩをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１０２８】
その後シーケンサ１１１は、ステップＳ１３００２を実行する。
【１０２９】
[ステップＳ１３１０１]
シーケンサ１１１は、条件を満たしていると判定する場合（ステップＳ１３００６、Ｙｅｓ）、電圧ＶＰＧＭ＿Ｖを用いて第５プログラム動作を実行する（図１３１参照）。
【１０３０】
[ステップＳ１３１０２]
シーケンサ１１１は、ステップＳ１１６０８と同様の動作を実行する。
【１０３１】
[ステップＳ１３１０３]
シーケンサ１１１は、ステップＳ１１６０９と同様の動作を実行する。
【１０３２】
[ステップＳ１３１０４]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３１０３、Ｎｏ）、第１及び第２プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１０３３】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であるか否かを判定する。
【１０３４】
[ステップＳ１３１０５]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３１０４、Ｎｏ）、第３及び第４プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１０３５】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であるか否かを判定する。
【１０３６】
[ステップＳ１３１０６]
シーケンサ１１１は、ステップＳ１１６０１と同様の動作を実行する。
【１０３７】
[ステップＳ１３１０７]
シーケンサ１１１は、第３及び第４プログラム動作を実行した後、第５プログラム動作に関する第５プログラムベリファイ動作を実行する。具体的にはシーケンサ１１１は、電圧ＶＰＶＦＹ＿Ｖを用いて第５プログラムベリファイ動作を実行する。
【１０３８】
[ステップＳ１３１０８]
シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスか否かを判定する。より具体的にはシーケンサ１１１は、第５プログラムベリファイ動作によってフェイルビットと判定されたフェイルビット数が設定値（FValue_ V）以上であるか否かを判定する。フェイルビット数が設定値（FValue_ V）未満である場合、シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスであると判定する。この設定値（FValue_ V）は、例えばＥＣＣ回路２０６で救済できないフェイルビット数である。この設定値（FValue_V）は、例えばレジスタ１１２に記憶されている。シーケンサ１１１は、レジスタ１１２に記憶された設定値（FValue_V）と、フェイルビット数と、を比較する。
【１０３９】
[ステップＳ１３１０９]
シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３１０８、Ｎｏ）、第５プログラム動作の繰り返し回数（ループ数）をカウントアップする。例えば、第５プログラム動作のループ数は、レジスタ１１２等に記憶される。そして、第５プログラム動作のループ数のカウントは、シーケンサ１１１が行っても良いし、それ以外の構成で行っても良い。
【１０４０】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第５プログラム動作のループ数が設定値（LValue_V）であるか否かを判定する。この設定値（LValue_V）は、例えばレジスタ１１２に記憶されている。シーケンサ１１１は、レジスタ１１２に記憶された設定値（LValue_V）と、第５プログラム動作のループ数と、を比較する。
【１０４１】
[ステップＳ１３１１０]
シーケンサ１１１は、ループ数が設定値（LValue_V）でないと判定する場合（ステップＳ１３１０９、Ｎｏ）、第１及び第２プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉ及びＶＰＧＭ＿ＩＩをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１０４２】
[ステップＳ１３１１１]
シーケンサ１１１は、ステップＳ１１６０２と同様の動作を実行する。
【１０４３】
[ステップＳ１３１１２]
シーケンサ１１１は、ステップＳ１１６０３と同様の動作を実行する。
【１０４４】
[ステップＳ１３１１３]
シーケンサ１１１は、ステップＳ１１６０４と同様の動作を実行する。
【１０４５】
[ステップＳ１３１１４]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３１１３、Ｎｏ）、第３及び第４プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１０４６】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であるか否かを判定する。
【１０４７】
[ステップＳ１３１１５]
シーケンサ１１１は、ループ数が設定値（LValue_III&IV）でないと判定する場合（ステップＳ１３１１４、Ｎｏ）、第５プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｖを電圧ＤＶＰＧＭだけインクリメントさせる。
【１０４８】
そして、シーケンサ１１１は、ステップＳ１３１０１を実行する。
【１０４９】
[ステップＳ１３２０１]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３１０３、Ｙｅｓ）、または第１及び第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３１０４、Ｙｅｓ）、第３及び第４プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩ及びＶＰＧＭ＿ＩＶをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる（図１３２参照）。
【１０５０】
[ステップＳ１３２０２]
シーケンサ１１１は、ステップＳ１１６０１と同様の動作を実行する。
【１０５１】
[ステップＳ１３２０３]
シーケンサ１１１は、ステップＳ１３１０７と同様の動作を実行する。
【１０５２】
[ステップＳ１３２０４]
シーケンサ１１１は、ステップＳ１３１０８と同様の動作を実行する。
【１０５３】
シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３２０４、Ｙｅｓ）、ステップＳ１１８０１を実行する。
【１０５４】
[ステップＳ１３２０５]
シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３２０４、Ｎｏ）、第５プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１０５５】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第５プログラム動作のループ数が設定値（LValue_V）であるか否かを判定する。
【１０５６】
シーケンサ１１１は、第５プログラム動作のループ数が設定値（LValue_V）であると判定する場合（ステップＳ１３２０５、Ｙｅｓ）、ステップＳ１１８０１を実行する。
【１０５７】
[ステップＳ１３２０６]
シーケンサ１１１は、ループ数が設定値（LValue_V）でないと判定する場合（ステップＳ１３２０５、Ｎｏ）、第５プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｖを電圧ＤＶＰＧＭだけインクリメントさせる。
【１０５８】
[ステップＳ１３２０７]
シーケンサ１１１は、ステップＳ１３１０１と同様の動作を実行する。
【１０５９】
[ステップＳ１３２０８]
シーケンサ１１１は、ステップＳ１１６０３と同様の動作を実行する。
【１０６０】
[ステップＳ１３２０９]
シーケンサ１１１は、ステップＳ１１６０４と同様の動作を実行する。
【１０６１】
[ステップＳ１３２１０]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３２０９、Ｎｏ）、第３及び第４プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１０６２】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であるか否かを判定する。
【１０６３】
シーケンサ１１１は、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）ではないと判定する場合（ステップＳ１３２１０、Ｎｏ）、ステップＳ１３２０１を実行する。
【１０６４】
[ステップＳ１３３０１]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３２０９、Ｙｅｓ）、または第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であると判定する場合（ステップＳ１３２１０、Ｙｅｓ）、ステップＳ１３１０７と同様の動作を実行する（図１３３参照）。
【１０６５】
[ステップＳ１３３０２]
シーケンサ１１１は、ステップＳ１３１０８と同様の動作を実行する。
【１０６６】
シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３３０２、Ｙｅｓ）、書き込み動作を終了する。
【１０６７】
[ステップＳ１３３０３]
シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスはないと判定する場合（ステップＳ１３３０２、Ｎｏ）、第５プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１０６８】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第５プログラム動作のループ数が設定値（LValue_V）であるか否かを判定する。
【１０６９】
シーケンサ１１１は、第５プログラム動作のループ数が設定値（LValue_V）であると判定する場合（ステップＳ１３３０３、Ｙｅｓ）、書き込み動作を終了する。
【１０７０】
[ステップＳ１３３０４]
シーケンサ１１１は、第５プログラム動作のループ数が設定値（LValue_V）ではないと判定する場合（ステップＳ１３３０３、Ｎｏ）、第５プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｖを電圧ＤＶＰＧＭだけインクリメントさせる。
【１０７１】
[ステップＳ１３３０５]
シーケンサ１１１は、ステップＳ１３１０７と同様の動作を実行する。
【１０７２】
そして、シーケンサ１１１は、ステップＳ１３３０１を実行する。
【１０７３】
[ステップＳ１３４０１]
シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３１０８、Ｙｅｓ）、またはシーケンサ１１１は、ループ数が設定値（LValue_V）であると判定する場合（ステップＳ１３１０９、Ｙｅｓ）、第１及び第２プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉ及びＶＰＧＭ＿ＩＩをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる（図１３４参照）。
【１０７４】
[ステップＳ１３４０２]
シーケンサ１１１は、ステップＳ１１６０２と同様の動作を実行する。
【１０７５】
[ステップＳ１３４０３]
シーケンサ１１１は、ステップＳ１１６０３と同様の動作を実行する。
【１０７６】
[ステップＳ１３４０４]
シーケンサ１１１は、ステップＳ１１６０４と同様の動作を実行する。
【１０７７】
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３４０４、Ｙｅｓ）、ステップＳ１１７０１を実行する。
【１０７８】
[ステップＳ１３４０５]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３４０４、Ｎｏ）、第３及び第４プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１０７９】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であるか否かを判定する。
【１０８０】
シーケンサ１１１は、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であると判定する場合（ステップＳ１３４０５、Ｙｅｓ）、ステップＳ１１７０１を実行する。
【１０８１】
[ステップＳ１３４０６]
シーケンサ１１１は、ループ数が設定値（LValue_III&IV）でないと判定する場合（ステップＳ１３４０５、Ｎｏ）、第３及び第４プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩ及びＶＰＧＭ＿ＩＶをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１０８２】
[ステップＳ１３４０７]
シーケンサ１１１は、ステップＳ１１６０１と同様の動作を実行する。
【１０８３】
[ステップＳ１３４０８]
シーケンサ１１１は、ステップＳ１１６０８と同様の動作を実行する。
【１０８４】
[ステップＳ１３４０９]
シーケンサ１１１は、ステップＳ１１６０９と同様の動作を実行する。
【１０８５】
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３４０９、Ｙｅｓ）、ステップＳ１１８０１を実行する。
【１０８６】
[ステップＳ１３４１０]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３４０９、Ｎｏ）、第１及び第２プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１０８７】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であるか否かを判定する。
【１０８８】
シーケンサ１１１は、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であると判定する場合（ステップＳ１３４１０、Ｙｅｓ）、ステップＳ１１８０１を実行する。
【１０８９】
シーケンサ１１１は、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）ではないと判定する場合（ステップＳ１３４１０、Ｎｏ）、ステップＳ１３４０１を実行する。
【１０９０】
[ステップＳ１３５０１]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３１１３、Ｙｅｓ）、またはループ数が設定値（LValue_III&IV）であると判定する場合（ステップＳ１３１１４、Ｙｅｓ）、第５プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｖを電圧ＤＶＰＧＭだけインクリメントさせる（図１３５参照）。
【１０９１】
[ステップＳ１３５０２]
シーケンサ１１１は、ステップＳ１３１０１と同様の動作を実行する。
【１０９２】
[ステップＳ１３５０３]
シーケンサ１１１は、ステップＳ１１６０８と同様の動作を実行する。
【１０９３】
[ステップＳ１３５０４]
シーケンサ１１１は、ステップＳ１１６０９と同様の動作を実行する。
【１０９４】
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３５０４、Ｙｅｓ）、ステップＳ１３３０１を実行する。
【１０９５】
[ステップＳ１３５０５]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３５０４、Ｎｏ）、第１及び第２プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１０９６】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であるか否かを判定する。
【１０９７】
シーケンサ１１１は、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であると判定する場合（ステップＳ１３５０５、Ｙｅｓ）、ステップＳ１３３０１を実行する。
【１０９８】
[ステップＳ１３５０６]
シーケンサ１１１は、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）ではないと判定する場合（ステップＳ１３５０５、Ｎｏ）、第１及び第２プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉ及びＶＰＧＭ＿ＩＩをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１０９９】
[ステップＳ１３５０７]
シーケンサ１１１は、ステップＳ１１６０２と同様の動作を実行する。
【１１００】
[ステップＳ１３５０８]
シーケンサ１１１は、ステップＳ１３１０７と同様の動作を実行する。
【１１０１】
[ステップＳ１３５０９]
シーケンサ１１１は、ステップＳ１３１０８と同様の動作を実行する。
【１１０２】
シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３５０９、Ｙｅｓ）、ステップＳ１１７０１を実行する。
【１１０３】
[ステップＳ１３５１０]
シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３５０９、Ｎｏ）、第５プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１１０４】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第５プログラム動作のループ数が設定値（LValue_V）であるか否かを判定する。
【１１０５】
シーケンサ１１１は、第５プログラム動作のループ数が設定値（LValue_V）であると判定する場合、（ステップＳ１３５１０、Ｙｅｓ）、ステップＳ１１７０１を実行する。
【１１０６】
シーケンサ１１１は、第５プログラム動作のループ数が設定値（LValue_V）ではないと判定する場合、（ステップＳ１３５１０、Ｎｏ）、ステップＳ１３５０１を実行する。
【１１０７】
[ステップＳ１３６０１]
シーケンサ１１１は、条件をみたしていると判定する場合（ステップＳ１３０１２、Ｙｅｓ）、ステップＳ１３１０１と同様の動作を実行する（図１３６参照）。
【１１０８】
[ステップＳ１３６０２]
シーケンサ１１１は、ステップＳ１１６０３と同様の動作を実行する。
【１１０９】
[ステップＳ１３６０３]
シーケンサ１１１は、ステップＳ１１６０４と同様の動作を実行する。
【１１１０】
[ステップＳ１３６０４]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３６０３、Ｎｏ）、第３及び第４プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１１１１】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であるか否かを判定する。
【１１１２】
[ステップＳ１３６０５]
シーケンサ１１１は、ループ数が設定値（LValue_III&IV）でないと判定する場合（ステップＳ１３６０４、Ｎｏ）、第１及び第２プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉ及びＶＰＧＭ＿ＩＩをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１１１３】
[ステップＳ１３６０６]
シーケンサ１１１は、ステップＳ１１６０２と同様の動作を実行する。
【１１１４】
[ステップＳ１３６０７]
シーケンサ１１１は、ステップＳ１３１０７と同様の動作を実行する。
【１１１５】
[ステップＳ１３６０８]
シーケンサ１１１は、ステップＳ１３１０８と同様の動作を実行する。
【１１１６】
[ステップＳ１３６０９]
シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３６０８、Ｎｏ）、第５プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１１１７】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第５プログラム動作のループ数が設定値（LValue_V）であるか否かを判定する。
【１１１８】
[ステップＳ１３６１０]
シーケンサ１１１は、ループ数が設定値（LValue_V）でないと判定する場合（ステップＳ１３６０９、Ｎｏ）、第３及び第４プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩ及びＶＰＧＭ＿ＩＶをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１１１９】
[ステップＳ１３６１１]
シーケンサ１１１は、ステップＳ１１６０１と同様の動作を実行する。
【１１２０】
[ステップＳ１３６１２]
シーケンサ１１１は、ステップＳ１１６０８と同様の動作を実行する。
【１１２１】
[ステップＳ１３６１３]
シーケンサ１１１は、ステップＳ１１６０９と同様の動作を実行する。
【１１２２】
[ステップＳ１３６１４]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３６１３、Ｎｏ）、第１及び第２プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１１２３】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であるか否かを判定する。
【１１２４】
[ステップＳ１３６１５]
シーケンサ１１１は、ループ数が設定値（LValue_I&II）でないと判定する場合（ステップＳ１３６１４、Ｎｏ）、第５プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｖを電圧ＤＶＰＧＭだけインクリメントさせる。
【１１２５】
そして、シーケンサ１１１は、ステップＳ１３６０１を実行する。
【１１２６】
[ステップＳ１３７０１]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３６０３、Ｙｅｓ）、シーケンサ１１１は、ループ数が設定値（LValue_III&IV）であると判定する場合（ステップＳ１３６０４、Ｙｅｓ）、第１及び第２プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉ及びＶＰＧＭ＿ＩＩをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる（図１３７参照）。
【１１２７】
[ステップＳ１３７０２]
シーケンサ１１１は、ステップＳ１１６０２と同様の動作を実行する。
【１１２８】
[ステップＳ１３７０３]
シーケンサ１１１は、ステップＳ１３１０７と同様の動作を実行する。
【１１２９】
[ステップＳ１３７０４]
シーケンサ１１１は、ステップＳ１３１０８と同様の動作を実行する。
【１１３０】
シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３７０４、Ｙｅｓ）、ステップＳ１１７０１を実行する。
【１１３１】
[ステップＳ１３７０５]
シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３７０４、Ｎｏ）、第５プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１１３２】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第５プログラム動作のループ数が設定値（LValue_V）であるか否かを判定する。
【１１３３】
シーケンサ１１１は、第５プログラム動作のループ数が設定値（LValue_V）であると判定する場合（ステップＳ１３７０５、Ｙｅｓ）、ステップＳ１１７０１を実行する。
【１１３４】
[ステップＳ１３７０６]
シーケンサ１１１は、第５プログラム動作のループ数が設定値（LValue_V）ではないと判定する場合（ステップＳ１３７０５、Ｎｏ）、第５プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｖを電圧ＤＶＰＧＭだけインクリメントさせる。
【１１３５】
[ステップＳ１３７０７]
シーケンサ１１１は、ステップＳ１３１０１と同様の動作を実行する。
【１１３６】
[ステップＳ１３７０８]
シーケンサ１１１は、ステップＳ１１６０８と同様の動作を実行する。
【１１３７】
[ステップＳ１３７０９]
シーケンサ１１１は、ステップＳ１１６０９と同様の動作を実行する。
【１１３８】
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３７０９、Ｙｅｓ）、ステップＳ１３３０１を実行する。
【１１３９】
[ステップＳ１３７１０]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３７０９、Ｎｏ）、第１及び第２プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１１４０】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であるか否かを判定する。
【１１４１】
シーケンサ１１１は、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であると判定する場合（ステップＳ１３７１０、Ｙｅｓ）、ステップＳ１３３０１を実行する。
【１１４２】
シーケンサ１１１は、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）ではないと判定する場合（ステップＳ１３７１０、Ｎｏ）、ステップＳ１３７０１を実行する。
【１１４３】
[ステップＳ１３８０１]
シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３６０８、Ｙｅｓ）、またはループ数が設定値（LValue_V）であると判定する場合（ステップＳ１３６０９、Ｙｅｓ）、第３及び第４プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩ及びＶＰＧＭ＿ＩＶをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる（図１３８参照）。
【１１４４】
[ステップＳ１３８０２]
シーケンサ１１１は、ステップＳ１１６０１と同様の動作を実行する。
【１１４５】
[ステップＳ１３８０３]
シーケンサ１１１は、ステップＳ１１６０８と同様の動作を実行する。
【１１４６】
[ステップＳ１３８０４]
シーケンサ１１１は、ステップＳ１１６０９と同様の動作を実行する。
【１１４７】
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３８０４、Ｙｅｓ）、ステップＳ１１８０１を実行する。
【１１４８】
[ステップＳ１３８０５]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３８０４、Ｎｏ）、第１及び第２プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１１４９】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であるか否かを判定する。
【１１５０】
シーケンサ１１１は、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であると判定する（ステップＳ１３８０５、Ｙｅｓ）、ステップＳ１１８０１を実行する。
【１１５１】
[ステップＳ１３８０６]
シーケンサ１１１は、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）ではないと判定する（ステップＳ１３８０５、Ｎｏ）、第１及び第２プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉ及びＶＰＧＭ＿ＩＩをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１１５２】
[ステップＳ１３８０７]
シーケンサ１１１は、ステップＳ１１６０２と同様の動作を実行する。
【１１５３】
[ステップＳ１３８０８]
シーケンサ１１１は、ステップＳ１１６０３と同様の動作を実行する。
【１１５４】
[ステップＳ１３８０９]
シーケンサ１１１は、ステップＳ１１６０４と同様の動作を実行する。
【１１５５】
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３８０９、Ｙｅｓ）、ステップＳ１１７０１を実行する。
【１１５６】
[ステップＳ１３８１０]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３８０９、Ｎｏ）、第３及び第４プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１１５７】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であるか否かを判定する。
【１１５８】
シーケンサ１１１は、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であると判定する場合（ステップＳ１３８１０、Ｙｅｓ）、ステップＳ１１７０１を実行する。
【１１５９】
シーケンサ１１１は、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）ではないと判定する場合（ステップＳ１３８１０、Ｎｏ）、ステップＳ１３８０１を実行する。
【１１６０】
[ステップＳ１３９０１]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３６１３、Ｙｅｓ）、またはループ数が設定値（LValue_I&II）でないと判定する場合（ステップＳ１３６１４、Ｙｅｓ）、第５プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｖを電圧ＤＶＰＧＭだけインクリメントさせる（図１３９参照）。
【１１６１】
[ステップＳ１３９０２]
シーケンサ１１１は、ステップＳ１３１０１と同様の動作を実行する。
【１１６２】
[ステップＳ１３９０３]
シーケンサ１１１は、ステップＳ１１６０３と同様の動作を実行する。
【１１６３】
[ステップＳ１３９０４]
シーケンサ１１１は、ステップＳ１１６０４と同様の動作を実行する。
【１１６４】
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３９０４、Ｙｅｓ）、ステップＳ１３３０１を実行する。
【１１６５】
[ステップＳ１３９０５]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３９０４、Ｎｏ）、第３及び第４プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１１６６】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であるか否かを判定する。
【１１６７】
シーケンサ１１１は、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であると判定する場合（ステップＳ１３９０５、Ｙｅｓ）、ステップＳ１３３０１を実行する。
【１１６８】
[ステップＳ１３９０６]
シーケンサ１１１は、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）ではないと判定する場合（ステップＳ１３９０５、Ｎｏ）、第３及び第４プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩ及びＶＰＧＭ＿ＩＶをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１１６９】
[ステップＳ１３９０７]
シーケンサ１１１は、ステップＳ１１６０１と同様の動作を実行する。
【１１７０】
[ステップＳ１３９０８]
シーケンサ１１１は、ステップＳ１３１０７と同様の動作を実行する。
【１１７１】
[ステップＳ１３９０９]
シーケンサ１１１は、ステップＳ１３１０８と同様の動作を実行する。
【１１７２】
シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３９０９、Ｙｅｓ）、ステップＳ１１８０１を実行する。
【１１７３】
[ステップＳ１３９１０]
シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１３９０９、Ｎｏ）、第５プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１１７４】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第５プログラム動作のループ数が設定値（LValue_V）であるか否かを判定する。
【１１７５】
シーケンサ１１１は、第５プログラム動作のループ数が設定値（LValue_V）であると判定する場合（ステップＳ１３９１０、Ｙｅｓ）、ステップＳ１１８０１を実行する。
【１１７６】
シーケンサ１１１は、第５プログラム動作のループ数が設定値（LValue_V）ではないと判定する場合（ステップＳ１３９１０、Ｎｏ）、ステップＳ１３９０１を実行する。
【１１７７】
[ステップＳ１４００１]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３００４、Ｙｅｓ）、または第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であると判定する場合（ステップＳ１３００５、Ｙｅｓ）、条件を満たしているか否かを判定する（図１４０参照）。
【１１７８】
[ステップＳ１４００２]
シーケンサ１１１は、条件を満たしていないと判定する場合（ステップＳ１４００１、Ｎｏ）、ステップＳ１１６０８と同様の動作を実行する。
【１１７９】
[ステップＳ１４００３]
シーケンサ１１１は、ステップＳ１１６０９と同様の動作を実行する。
【１１８０】
[ステップＳ１４００４]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１４００３、Ｎｏ）、第１及び第２プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１１８１】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であるか否かを判定する。
【１１８２】
[ステップＳ１４００５]
シーケンサ１１１は、ループ数が設定値（LValue_I&II）でないと判定する場合（ステップＳ１４００４、Ｎｏ）、第１及び第２プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉ及びＶＰＧＭ＿ＩＩをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１１８３】
[ステップＳ１４００６]
シーケンサ１１１は、ステップＳ１１６０２と同様の動作を実行する。
【１１８４】
[ステップＳ１４００７]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１４００３、Ｙｅｓ）、またはループ数が設定値（LValue_I&II）であると判定する場合（ステップＳ１４００４、Ｙｅｓ）、ステップＳ１３１０１と同様の動作を実行する。そして、その後シーケンサ１１１は、ステップＳ１３３０１を実行する。
【１１８５】
[ステップＳ１４１０１]
シーケンサ１１１は、条件を満たしていると判定する場合（ステップＳ１４００１、Ｙｅｓ）、ステップＳ１３１０１と同様の動作を実行する（図１４１参照）。
【１１８６】
[ステップＳ１４１０２]
シーケンサ１１１は、ステップＳ１１６０８と同様の動作を実行する。
【１１８７】
[ステップＳ１４１０３]
シーケンサ１１１は、ステップＳ１１６０９と同様の動作を実行する。
【１１８８】
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１４１０３、Ｙｅｓ）、ステップＳ１３３０１を実行する。
【１１８９】
[ステップＳ１４１０４]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１４１０３、Ｎｏ）、第１及び第２プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１１９０】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であるか否かを判定する。
【１１９１】
シーケンサ１１１は、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であると判定する（ステップＳ１４１０４、Ｙｅｓ）、ステップＳ１３３０１を実行する。
【１１９２】
[ステップＳ１４１０５]
シーケンサ１１１は、ループ数が設定値（LValue_I&II）でないと判定する場合（ステップＳ１４１０４、Ｎｏ）、第１及び第２プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉ及びＶＰＧＭ＿ＩＩをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１１９３】
[ステップＳ１４１０６]
シーケンサ１１１は、ステップＳ１１６０２と同様の動作を実行する。
【１１９４】
[ステップＳ１４１０７]
シーケンサ１１１は、ステップＳ１３１０７と同様の動作を実行する。
【１１９５】
[ステップＳ１４１０８]
シーケンサ１１１は、ステップＳ１３１０８と同様の動作を実行する。
【１１９６】
シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１４１０８、Ｙｅｓ）、ステップＳ１１７０１を実行する。
【１１９７】
[ステップＳ１４１０９]
シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１４１０８、Ｎｏ）、第５プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１１９８】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第５プログラム動作のループ数が設定値（LValue_V）であるか否かを判定する。
【１１９９】
シーケンサ１１１は、第５プログラム動作のループ数が設定値（LValue_V）であると判定する場合（ステップＳ１４１０９、Ｙｅｓ）、ステップＳ１１７０１を実行する。
【１２００】
[ステップＳ１４１１０]
シーケンサ１１１は、ループ数が設定値（LValue_V）でないと判定する場合（ステップＳ１４１０９、Ｎｏ）、第５プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｖを電圧ＤＶＰＧＭだけインクリメントさせる。
【１２０１】
そして、シーケンサ１１１は、ステップＳ１４１０１を実行する。
【１２０２】
[ステップＳ１４２０１]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１３０１０、Ｙｅｓ）、または第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であると判定する場合（ステップＳ１３０１１、Ｙｅｓ）、条件を満たしているか否かを判定する（図１４２参照）。
【１２０３】
[ステップＳ１４２０２]
シーケンサ１１１は、条件を満たしていないと判定する場合（ステップＳ１４２０１、Ｎｏ）、ステップＳ１１６０３と同様の動作を実行する。
【１２０４】
[ステップＳ１４２０３]
シーケンサ１１１は、ステップＳ１１６０４と同様の動作を実行する。
【１２０５】
[ステップＳ１４２０４]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１４２０３、Ｎｏ）、第３及び第４プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１２０６】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であるか否かを判定する。
【１２０７】
[ステップＳ１４２０５]
シーケンサ１１１は、ループ数が設定値（LValue_III&IV）でないと判定する場合（ステップＳ１４２０４、Ｎｏ）、第３及び第４プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩ及びＶＰＧＭ＿ＩＶをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１２０８】
[ステップＳ１４２０６]
シーケンサ１１１は、ステップＳ１１６０１と同様の動作を実行する。
【１２０９】
[ステップＳ１４２０７]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１４２０３、Ｙｅｓ）、またはループ数が設定値（LValue_III&IV）であると判定する場合（ステップＳ１４２０４、Ｙｅｓ）、ステップＳ１３１０１と同様の動作を実行する。そして、その後シーケンサ１１１は、ステップＳ１３３０１を実行する。
【１２１０】
[ステップＳ１４３０１]
シーケンサ１１１は、条件を満たしていると判定する場合（ステップＳ１４２０１、Ｎｏ）、ステップＳ１３１０１と同様の動作を実行する（図１４３参照）。
【１２１１】
[ステップＳ１４３０２]
シーケンサ１１１は、ステップＳ１１６０３と同様の動作を実行する。
【１２１２】
[ステップＳ１４３０３]
シーケンサ１１１は、ステップＳ１１６０４と同様の動作を実行する。
【１２１３】
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１４３０３、Ｙｅｓ）、ステップＳ１３３０１を実行する。
【１２１４】
[ステップＳ１４３０４]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１４３０３、Ｎｏ）、第３及び第４プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１２１５】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であるか否かを判定する。
【１２１６】
シーケンサ１１１は、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であると判定する場合（ステップＳ１４３０４、Ｙｅｓ）、ステップＳ１３３０１を実行する。
【１２１７】
[ステップＳ１４３０５]
シーケンサ１１１は、ループ数が設定値（LValue_III&IV）でないと判定する場合（ステップＳ１４３０４、Ｎｏ）、第３及び第４プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩ及びＶＰＧＭ＿ＩＶをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１２１８】
[ステップＳ１４３０６]
シーケンサ１１１は、ステップＳ１１６０１と同様の動作を実行する。
【１２１９】
[ステップＳ１４３０７]
シーケンサ１１１は、ステップＳ１３１０７と同様の動作を実行する。
【１２２０】
[ステップＳ１４３０８]
シーケンサ１１１は、ステップＳ１３１０８と同様の動作を実行する。
【１２２１】
シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳＳ１４３０８、Ｙｅｓ）、ステップＳ１１８０１を実行する。
【１２２２】
[ステップＳ１４３０９]
シーケンサ１１１は、第５プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳＳ１４３０８、Ｎｏ）、第５プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１２２３】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第５プログラム動作のループ数が設定値（LValue_V）であるか否かを判定する。
【１２２４】
シーケンサ１１１は、第５プログラム動作のループ数が設定値（LValue_V）であると判定する場合（ステップＳＳ１４３０９、Ｙｅｓ）、ステップＳ１１８０１を実行する。
【１２２５】
[ステップＳ１４３１０]
シーケンサ１１１は、ループ数が設定値（LValue_V）でないと判定する場合（ステップＳ１４３０９、Ｎｏ）、第５プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｖを電圧ＤＶＰＧＭだけインクリメントさせる。
【１２２６】
そして、シーケンサ１１１は、ステップＳ１４３０１を実行する。
【１２２７】
＜３−７−２＞パルスの具体例
続いて、図１４４〜図１４７を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【１２２８】
図１４４〜図１４７では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【１２２９】
図１４４〜図１４７の例では、パルス番号１〜６、９、１０、１４、１６、２０、２２、２７、３０、３５、３８、４３、５２に対応するパルスが（ｉ）のパルスに相当する。
【１２３０】
図１４４〜図１４７の例では、パルス番号１〜６、９、１０、１４、１６、２０、２２、２７、３０、３５、３８、４３、５２以外に対応するパルスが（ｉｉ）のパルスに相当する。
【１２３１】
＜３−８＞第３実施形態の変形例４
第３実施形態の変形例４について説明する。第３実施形態の変形例４では、上述したデータの書込み方法と異なる書込み方法を第３実施形態に採用した場合について説明する。
【１２３２】
＜３−８−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図１４８を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【１２３３】
簡単のため図１４８では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【１２３４】
第３実施形態の変形例４に係る書込み動作は、第３実施形態の変形例３と同様に第１〜第５書込み動作に分けられる。
【１２３５】
第３実施形態の変形例４と第３実施形態の変形例３とで異なる点は、第３、及び第４プログラム動作の直後に第１、及び第２プログラム動作を行っている点である。
【１２３６】
＜３−８−２＞プログラム動作及びプログラムベリファイ動作の実行順序例
図１４９及び図１５０を用いて、本実施形態に係るプログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法について説明する。
【１２３７】
[ステップＳ１４９０１]
シーケンサ１１１は、ステップＳ１１６０１と同様の動作を実行する（図１４９参照）。
【１２３８】
[ステップＳ１４９０２]
シーケンサ１１１は、ステップＳ１１６０２と同様の動作を実行する。
【１２３９】
[ステップＳ１４９０３]
シーケンサ１１１は、ステップＳ１１６０３と同様の動作を実行する。
【１２４０】
[ステップＳ１４９０４]
シーケンサ１１１は、ステップＳ１１６０４と同様の動作を実行する。シーケンサ１１１は、ベリファイ動作の結果がパスであると判定する場合（ステップＳ１４９０４、Ｙｅｓ）、ステップＳ１４００１を実行する。
【１２４１】
[ステップＳ１４９０５]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１４９０４、Ｎｏ）、第３及び第４プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１２４２】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であるか否かを判定する。
【１２４３】
シーケンサ１１１は、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）である場合（ステップＳ１４９０５、Ｙｅｓ）、ステップＳ１４００１を実行する。
【１２４４】
[ステップＳ１４９０６]
シーケンサ１１１は、ループ数が設定値（LValue_III&IV）でないと判定する場合（ステップＳ１４９０５、Ｎｏ）、条件を満たしているか否かを判定する。
【１２４５】
シーケンサ１１１は、条件を満たしていると判定する場合（ステップＳ１４９０６、Ｙｅｓ）、ステップＳ１３１０１を実行する。
【１２４６】
[ステップＳ１４９０７]
シーケンサ１１１は、条件を満たしていないと判定する場合（ステップＳ１４９０６、Ｎｏ）、第３及び第４プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩ及びＶＰＧＭ＿ＩＶをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１２４７】
[ステップＳ１４９０８]
シーケンサ１１１は、ステップＳ１１６０１と同様の動作を実行する。
【１２４８】
[ステップＳ１４９０９]
シーケンサ１１１は、ステップＳ１１６０８と同様の動作を実行する。
【１２４９】
[ステップＳ１４９１０]
シーケンサ１１１は、ステップＳ１１６０９と同様の動作を実行する。シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１４９１０、Ｙｅｓ）、ステップＳ１４２０１を実行する。
【１２５０】
[ステップＳ１４９１１]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１４９１０、Ｎｏ）、第１及び第２プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１２５１】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であるか否かを判定する。
【１２５２】
シーケンサ１１１は、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であると判定する場合、ステップＳ１４２０１を実行する。
【１２５３】
[ステップＳ１４９１２]
シーケンサ１１１は、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）でないと判定する場合、条件を満たしているか否かを判定する。
【１２５４】
[ステップＳ１４９１３]
シーケンサ１１１は、ループ数が設定値（LValue_I&II）でないと判定する場合（ステップＳ１４９１２、Ｎｏ）、第１及び第２プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉ及びＶＰＧＭ＿ＩＩをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。シーケンサ１１１は、ステップＳ１４９１３の後、ステップＳ１４９０２を実行する。
【１２５５】
[ステップＳ１５００１]
シーケンサ１１１は、ループ数が設定値（LValue_I&II）であると判定する場合（ステップＳ１４９１２、Ｙｅｓ）、電圧ＶＰＧＭ＿ＩＩＩを用いて第３プログラム動作を実行する（図１５０参照）。
【１２５６】
[ステップＳ１５００２]
シーケンサ１１１は、第１及び第２プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉ及びＶＰＧＭ＿ＩＩをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１２５７】
[ステップＳ１５００３]
シーケンサ１１１は、ステップＳ１１６０２と同様の動作を実行する。
【１２５８】
[ステップＳ１５００４]
シーケンサ１１１は、ステップＳ１１６０３と同様の動作を実行する。
【１２５９】
[ステップＳ１５００５]
シーケンサ１１１は、ステップＳ１１６０４と同様の動作を実行する。シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１５００５、Ｙｅｓ）、ステップＳ１３７０１を実行する。
【１２６０】
[ステップＳ１５００６]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１５００５、Ｎｏ）、第３及び第４プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１２６１】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であるか否かを判定する。シーケンサ１１１は、ループ数が設定値（LValue_III&IV）であると判定する場合、ステップＳ１３７０１を実行する。
【１２６２】
[ステップＳ１５００７]
シーケンサ１１１は、ループ数が設定値（LValue_III&IV）でないと判定する場合（ステップＳ１５００６、Ｎｏ）、第３及び第４プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩ及びＶＰＧＭ＿ＩＶをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１２６３】
[ステップＳ１５００８]
シーケンサ１１１は、ステップＳ１１６０１と同様の動作を実行する。
【１２６４】
[ステップＳ１５００９]
シーケンサ１１１は、第３プログラム動作に関する第３プログラムベリファイ動作を実行する。
【１２６５】
[ステップＳ１５０１０]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスか否かを判定する。シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１５０１０、Ｙｅｓ）、ステップＳ１３８０１を実行する。
【１２６６】
[ステップＳ１５０１１]
シーケンサ１１１は、第３プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１５０１０、Ｎｏ）、第３プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１２６７】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第３プログラム動作のループ数が設定値（LValue_III）であるか否かを判定する。シーケンサ１１１は、ループ数が設定値（LValue_III）であると判定する場合、ステップＳ１３８０１を実行する。
【１２６８】
[ステップＳ１５０１２]
シーケンサ１１１は、ループ数が設定値（LValue_III）でないと判定する場合、ステップＳ１１６０８と同様の動作を実行する。
【１２６９】
[ステップＳ１５０１３]
シーケンサ１１１は、ステップＳ１１６０９と同様の動作を実行する。シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１５０１３、Ｙｅｓ）、ステップＳ１３９０１を実行する。
【１２７０】
[ステップＳ１５０１４]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１５０１３、Ｎｏ）、第１及び第２プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１２７１】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であるか否かを判定する。シーケンサ１１１は、ループ数が設定値（LValue_I&II）であると判定する場合、ステップＳ１３９０１を実行する。
【１２７２】
[ステップＳ１５０１５]
シーケンサ１１１は、ループ数が設定値（LValue_I&II）でないと判定する場合（ステップＳ１５０１４、Ｎｏ）、第３プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩを電圧ＤＶＰＧＭだけインクリメントさせる。シーケンサ１１１は、ステップＳ１５０１５の後、ステップＳ１５００１を実行する。
【１２７３】
＜３−９＞第３実施形態の変形例５
第３実施形態の変形例５について説明する。第３実施形態の変形例５では、上述したデータの書込み方法と異なる書込み方法を第３実施形態に採用した場合について説明する。
【１２７４】
＜３−９−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図１５１を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【１２７５】
簡単のため図１５１では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【１２７６】
第３実施形態の変形例５に係る書込み動作は、第３実施形態の変形例３と同様に第１〜第５書込み動作に分けられる。
【１２７７】
第３実施形態の変形例５と第３実施形態の変形例３とで異なる点は、第５プログラム動作の開始タイミングである。
【１２７８】
＜３−９−２＞プログラム動作及びプログラムベリファイ動作の実行順序例
図１５２を用いて、本実施形態に係るプログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法について説明する。
【１２７９】
[ステップＳ１５２０１]
シーケンサ１１１は、ステップＳ１１６０２と同様の動作を実行する。
【１２８０】
[ステップＳ１５２０２]
シーケンサ１１１は、ステップＳ１１６０１と同様の動作を実行する。
【１２８１】
[ステップＳ１５２０３]
シーケンサ１１１は、ステップＳ１１６０８と同様の動作を実行する。
【１２８２】
[ステップＳ１５２０４]
シーケンサ１１１は、ステップＳ１１６０９と同様の動作を実行する。シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１５２０４、Ｙｅｓ）、ステップＳ１４２０１を実行する。
【１２８３】
[ステップＳ１５２０５]
シーケンサ１１１は、第１及び第２プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１５２０４、Ｎｏ）、第１及び第２プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１２８４】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第１及び第２プログラム動作のループ数が設定値（LValue_I&II）であるか否かを判定する。シーケンサ１１１は、ループ数が設定値（LValue_I&II）であると判定する場合（ステップＳ１５２０５、Ｙｅｓ）、ステップＳ１４２０１を実行する。
【１２８５】
[ステップＳ１５２０６]
シーケンサ１１１は、ループ数が設定値（LValue_I&II）でないと判定する場合（ステップＳ１５２０５、Ｎｏ）、条件を満たしているか否かを判定する。シーケンサ１１１は、条件を満たすと判定する場合（ステップＳ１５２０６、Ｙｅｓ）、ステップＳ１３６０１を実行する。
【１２８６】
[ステップＳ１５２０７]
シーケンサ１１１は、条件を満たしていないと判定する場合（ステップＳ１５２０７、Ｎｏ）、第１及び第２プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｉ及びＶＰＧＭ＿ＩＩをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１２８７】
[ステップＳ１５２０８]
シーケンサ１１１は、ステップＳ１１６０２と同様の動作を実行する。
【１２８８】
[ステップＳ１５２０９]
シーケンサ１１１は、ステップＳ１１６０３と同様の動作を実行する。
【１２８９】
[ステップＳ１５２１０]
シーケンサ１１１は、ステップＳ１１６０４と同様の動作を実行する。シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１５２１０、Ｙｅｓ）、ステップＳ１４００１を実行する。
【１２９０】
[ステップＳ１５２１１]
シーケンサ１１１は、第３及び第４プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１５２１０、Ｎｏ）、第３及び第４プログラム動作の繰り返し回数（ループ数）をカウントアップする。
【１２９１】
そして、シーケンサ１１１は、ループ数をカウントアップした後、第３及び第４プログラム動作のループ数が設定値（LValue_III&IV）であるか否かを判定する。シーケンサ１１１は、ループ数が設定値（LValue_III&IV）であると判定する場合（ステップＳ１５２１１、Ｙｅｓ）、ステップＳ１４００１を実行する。
【１２９２】
[ステップＳ１５２１２]
シーケンサ１１１は、ループ数が設定値（LValue_III&IV）でないと判定する場合（ステップＳ１５２１１、Ｎｏ）、条件を満たしているか否かを判定する。シーケンサ１１１は、条件を満たすと判定する場合（ステップＳ１５２１２、Ｙｅｓ）、ステップＳ１３１０１を実行する。
【１２９３】
[ステップＳ１５２１３]
シーケンサ１１１は、条件を満たさないと判定する場合（ステップＳ１５２１２、Ｎｏ）、第３及び第４プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩ及びＶＰＧＭ＿ＩＶをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。シーケンサ１１１は、ステップＳ１５２１３の後、ステップＳ１５２０１を実行する。
【１２９４】
＜３−９−３＞パルスの具体例
続いて、図１５３〜図１５６を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【１２９５】
図１５３〜図１５６では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【１２９６】
図１５３〜図１５６の例では、パルス番号１〜６、９、１０、１４、１６、２０、２２、２７、３０、３５、３８、４５、５０、に対応するパルスが（ｉ）のパルスに相当する。
【１２９７】
図１５３〜図１５６の例では、パルス番号１〜６、９、１０、１４、１６、２０、２２、２７、３０、３５、３８、４５、５０、以外に対応するパルスが（ｉｉ）のパルスに相当する。
【１２９８】
＜３−１０＞第３実施形態の変形例６
第３実施形態の変形例６について説明する。第３実施形態の変形例６では、上述したデータの書込み方法と異なる書込み方法を第３実施形態に採用した場合について説明する。
【１２９９】
＜３−１０−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図１５７を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【１３００】
簡単のため図１５７では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【１３０１】
第３実施形態の変形例６に係る書込み動作は、第３実施形態の変形例３と同様に第１〜第５書込み動作に分けられる。
【１３０２】
第３実施形態の変形例６と第３実施形態の変形例３とで異なる点は、第５プログラム動作の開始タイミングである。
【１３０３】
＜３−１０−２＞プログラム動作及びプログラムベリファイ動作の実行順序例
図１５８を用いて、本実施形態に係るプログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法について説明する。
【１３０４】
ステップＳ１５８０１〜Ｓ１５８１３は、図１５２のステップＳ１５２０１〜Ｓ１５２１３に対応する。また、シーケンサ１１１は、条件を満たすと判定する場合（ステップＳ１５８０６、Ｙｅｓ）、ステップＳ１５００１を実行する。
【１３０５】
＜３−１１＞第３実施形態の変形例７
第３実施形態の変形例７について説明する。第３実施形態の変形例７では、上述したデータの書込み方法と異なる書込み方法を第３実施形態に採用した場合について説明する。
【１３０６】
＜３−１１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図１５９を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【１３０７】
簡単のため図１５９では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【１３０８】
第３実施形態の変形例７に係る書込み動作は、第３実施形態と同様に第１〜第４書込み動作に分けられる。
【１３０９】
第３実施形態の変形例７と第３実施形態とで異なる点は、最初に第３及び第４プログラム動作を複数回実行する点である。
【１３１０】
＜３−１１−２＞プログラム動作及びプログラムベリファイ動作の実行順序例
図１６０を用いて、本実施形態に係るプログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法について説明する。
【１３１１】
[ステップＳ１６００１]
シーケンサ１１１は、ステップＳ１１６０１と同様の動作を実行する。
【１３１２】
[ステップＳ１６００２]
シーケンサ１１１は、条件を満たしているか否かを判定する。
【１３１３】
[ステップＳ１６００３]
シーケンサ１１１は、ループ数が設定値（LValue_III&IV）でないと判定する場合（ステップＳ１６００２、Ｎｏ）、第３及び第４プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩ及びＶＰＧＭ＿ＩＶをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１３１４】
ステップＳ１６００４〜Ｓ１６０１３は、図１１６のステップＳ１１６０２〜Ｓ１１６１１に対応する。
【１３１５】
＜３−１２＞第３実施形態の変形例８
第３実施形態の変形例８について説明する。第３実施形態の変形例８では、上述したデータの書込み方法と異なる書込み方法を第３実施形態に採用した場合について説明する。
【１３１６】
＜３−１２−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図１６１を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【１３１７】
簡単のため図１６１では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【１３１８】
第３実施形態の変形例８に係る書込み動作は、第３実施形態の変形例３と同様に第１〜第５書込み動作に分けられる。
第３実施形態の変形例８と第３実施形態とで異なる点は、最初に第５プログラムを複数回実行する点である。
【１３１９】
＜３−１２−２＞プログラム動作及びプログラムベリファイ動作の実行順序例
図１６２を用いて、本実施形態に係るプログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法について説明する。
【１３２０】
[ステップＳ１６２０１]
シーケンサ１１１は、ステップＳ１３１０１と同様の動作を実行する。
【１３２１】
[ステップＳ１６２０２]
シーケンサ１１１は、条件を満たしているか否かを判定する。
【１３２２】
[ステップＳ１６２０３]
シーケンサ１１１は、ループ数が設定値（LValue_V）でないと判定する場合（ステップＳ１６２０２、Ｎｏ）、第５プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｖを電圧ＤＶＰＧＭだけインクリメントさせる。
【１３２３】
[ステップＳ１６２０４]
シーケンサ１１１は、ステップＳ１１６０１と同様の動作を実行する。
【１３２４】
ステップＳ１６２０５〜Ｓ１６２１４は、図１１６のステップＳ１１６０２〜Ｓ１１６１１に対応する。
【１３２５】
＜３−１２−３＞パルスの具体例
続いて、図１６３〜図１６６を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【１３２６】
図１６３〜図１６６では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【１３２７】
図１６３〜図１６６の例では、パルス番号１、４〜９、１２、１３、１７、１９、２３、２５、３０、３３、３８、４１、４６、５３、５６に対応するパルスが（ｉ）のパルスに相当する。
【１３２８】
図１６３〜図１６６の例では、パルス番号１、４〜９、１２、１３、１７、１９、２３、２５、３０、３３、３８、４１、４６、５３、５６以外に対応するパルスが（ｉｉ）のパルスに相当する。
【１３２９】
＜３−１３＞第３実施形態の変形例９
第３実施形態の変形例９について説明する。第３実施形態の変形例９では、上述したデータの書込み方法と異なる書込み方法を第３実施形態に採用した場合について説明する。
【１３３０】
＜３−１３−１＞動作
＜３−１３−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図１６７を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【１３３１】
簡単のため図１６７では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【１３３２】
第３実施形態の変形例９に係る書込み動作は、第１〜第１２書込み動作に分けられる。
【１３３３】
第１書込み動作は、“１”〜“４”レベルに関する書込み動作である。第２書込み動作は、“５”〜“８”レベルに関する書込み動作である。第３書込み動作は、“９”〜“Ｃ”レベルに関する書込み動作である。第４書込み動作は、“Ｄ”〜“Ｆ”レベルに関する書込み動作である。第５書込み動作は、“１”、“２”レベルに関する書込み動作である。第６書込み動作は、“３”、“４”レベルに関する書込み動作である。第７書込み動作は、“５”、“６”レベルに関する書込み動作である。第８書込み動作は、“７”、“８”レベルに関する書込み動作である。第９書込み動作は、“９”、“Ａ”レベルに関する書込み動作である。第１０書込み動作は、“Ｂ”、“Ｃ”レベルに関する書込み動作である。第１１書込み動作は、“Ｄ”、“Ｅ”レベルに関する書込み動作である。第１２書込み動作は、“Ｆ”レベルに関する書込み動作である。
【１３３４】
第１書込み動作は、“１”〜“４”レベルの書込みに関する第１プログラム動作（Ｐ＿Ｉ）と、第１プログラム動作がパスしたか否かを判定する第１プログラムベリファイ動作（Ｖ＿Ｉ）と、を含んでいる。
【１３３５】
第２書込み動作は、“５”〜“８”レベルの書込みに関する第２プログラム動作（Ｐ＿ＩＩ）と、第２プログラム動作がパスしたか否かを判定する第２プログラムベリファイ動作（Ｖ＿ＩＩ）と、を含んでいる。
【１３３６】
第３書込み動作は、“９”〜“Ｃ”レベルの書込みに関する第３プログラム動作（Ｐ＿ＩＩＩ）を含んでいる。
【１３３７】
第４書込み動作は、“Ｄ”〜“Ｆ”レベルの書込みに関する第４プログラム動作（Ｐ＿ＩＶ）を含んでいる。
【１３３８】
第５書込み動作は、“１”、“２”レベルの書込みに関する第５プログラム動作（Ｐ＿Ｖ）を含んでいる。
【１３３９】
第６書込み動作は、“３”、“４”レベルの書込みに関する第６プログラム動作（Ｐ＿ＶＩ）を含んでいる。
【１３４０】
第７書込み動作は、“５”、“６”レベルの書込みに関する第７プログラム動作（Ｐ＿ＶＩＩ）を含んでいる。
【１３４１】
第８書込み動作は、“７”、“８”レベルの書込みに関する第８プログラム動作（Ｐ＿ＶＩＩＩ）を含んでいる。
【１３４２】
第９書込み動作は、“９”、“Ａ”レベルの書込みに関する第９プログラム動作（Ｐ＿ＩＸ）を含んでいる。
【１３４３】
第１０書込み動作は、“Ｂ”、“Ｃ”レベルの書込みに関する第１０プログラム動作（Ｐ＿Ｘ）を含んでいる。
【１３４４】
第１１書込み動作は、“Ｄ”、“Ｅ”レベルの書込みに関する第１１プログラム動作（Ｐ＿ＸＩ）を含んでいる。
【１３４５】
第１２書込み動作は、“Ｆ”レベルの書込みに関する第１２プログラム動作（Ｐ＿ＸＩＩ）を含んでいる。
【１３４６】
シーケンサ１１１は、第１〜第４プログラム動作を実行するたびに、電圧ＶＰＧＭ＿Ｉ（ｎ）〜ＶＰＧＭ＿ＩＶ（ｎ）を電圧ＤＶＰＧＭずつインクリメントする。
【１３４７】
第３実施形態の変形例９と第３実施形態とで異なる点は、書込み動作開始時において第５〜第１２プログラム動作を実行する点である。
【１３４８】
＜３−１３−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図１６８を用いて、本実施形態に係るプログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法について説明する。
【１３４９】
[ステップＳ１６８０１]
まずシーケンサ１１１は、ＶＰＧＭ＿Ｖ〜ＶＰＧＭ＿ＸＩＩをそれぞれ用いて、第５〜第１２プログラム動作を順に実行する。
【１３５０】
ステップＳ１６８０２〜Ｓ１６８１２は、図１１６のステップＳ１１６０１〜Ｓ１１６１１に対応する。
【１３５１】
＜３−１３−２＞パルスの具体例
続いて、図１６９〜図１７３を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【１３５２】
図１６９〜図１７３では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【１３５３】
図１６９〜図１７３の例では、パルス番号１〜１４、１７、１８、２２、２４、２８、３０、３５、３８、４３、４６、５１、５８、６１に対応するパルスが（ｉ）のパルスに相当する。
【１３５４】
図１６９〜図１７３の例では、パルス番号１〜１４、１７、１８、２２、２４、２８、３０、３５、３８、４３、４６、５１、５８、６１以外に対応するパルスが（ｉｉ）のパルスに相当する。
【１３５５】
＜３−１４＞第３実施形態の変形例１０
第３実施形態の変形例１０について説明する。第３実施形態の変形例１０では、上述したデータの書込み方法と異なる書込み方法を第３実施形態に採用した場合について説明する。
【１３５６】
＜３−１４−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図１７４を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【１３５７】
簡単のため図１７４では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【１３５８】
第３実施形態の変形例１０に係る書込み動作は、第３実施形態と同様に第１〜第４書込み動作に分けられる。
【１３５９】
第３実施形態の変形例１０と第３実施形態とで異なる点は、最初に第３及び第書き込み動作を複数回実行する点である。
【１３６０】
＜３−１４−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図１７５を用いて、本実施形態に係るプログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法について説明する。
【１３６１】
[ステップＳ１７５０１]
シーケンサ１１１は、ステップＳ１１６０１と同様の動作を実行する。
【１３６２】
[ステップＳ１７５０２]
シーケンサ１１１は、条件を満たしているか否かを判定する。
【１３６３】
[ステップＳ１７５０３]
シーケンサ１１１は、ループ数が設定値（LValue_III&IV）でないと判定する場合（ステップＳ１７５０２、Ｎｏ）、第３及び第４プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩ及びＶＰＧＭ＿ＩＶをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１３６４】
[ステップＳ１７５０４]
シーケンサ１１１は、ステップＳ１１６０２と同様の動作を実行する。
【１３６５】
[ステップＳ１７５０５]
シーケンサ１１１は、第３及び第４プログラム動作の際に用いる電圧ＶＰＧＭ＿ＩＩＩ及びＶＰＧＭ＿ＩＶをそれぞれ電圧ＤＶＰＧＭだけインクリメントさせる。
【１３６６】
ステップＳ１７５０６〜Ｓ１７５１４は、図１２５のステップＳ１２５０２〜Ｓ１２５１０に対応する。
【１３６７】
＜３−１５＞第３実施形態の変形例１１
第３実施形態の変形例１１について説明する。第３実施形態の変形例１１では、上述したデータの書込み方法と異なる書込み方法を第３実施形態に採用した場合について説明する。
【１３６８】
＜３−１５−１＞動作
＜３−１５−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図１７６を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【１３６９】
簡単のため図１７６では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【１３７０】
第３実施形態の変形例１１に係る書込み動作は、第３実施形態の変形例３と同様に第１〜第５書込み動作に分けられる。
【１３７１】
第３実施形態の変形例１１と第３実施形態の変形例８とで異なる点は、第１及び第２書込み動作と、第３及び第４書込み動作と、の実行順序が入れ替わっている点である。
【１３７２】
＜３−１５−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序例
図１７７を用いて、本実施形態に係るプログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法について説明する。
【１３７３】
[ステップＳ１７７０１]
シーケンサ１１１は、ステップＳ１３１０１と同様の動作を実行する。
【１３７４】
[ステップＳ１７７０２]
シーケンサ１１１は、条件を満たしているか否かを判定する。
【１３７５】
[ステップＳ１７７０３]
シーケンサ１１１は、ループ数が設定値（LValue_V）でないと判定する場合（ステップＳ１７７０２、Ｎｏ）、第５プログラム動作の際に用いる電圧ＶＰＧＭ＿Ｖを電圧ＤＶＰＧＭだけインクリメントさせる。
【１３７６】
ステップＳ１７７０４〜Ｓ１７７１４は、図１２５のステップＳ１２５０１〜Ｓ１２５１１に対応する。
【１３７７】
＜３−１５−２＞パルスの具体例
続いて、図１７８〜図１８１を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【１３７８】
図１７８〜図１８１では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【１３７９】
図１７８〜図１８１の例では、パルス番号１、４〜９、１２、１３、１７、１９、２３、２５、３０、３３、３８、４１、４６、４９、５４に対応するパルスが（ｉ）のパルスに相当する。
【１３８０】
図１７８〜図１８１の例では、パルス番号１、４〜９、１２、１３、１７、１９、２３、２５、３０、３３、３８、４１、４６、４９、５４以外に対応するパルスが（ｉｉ）のパルスに相当する。
【１３８１】
＜３−１６＞第３実施形態の変形例１２
第３実施形態の変形例１２について説明する。第３実施形態の変形例１２では、上述したデータの書込み方法と異なる書込み方法を第３実施形態に採用した場合について説明する。
【１３８２】
＜３−１６−１＞動作
＜３−１６−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図１８２を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【１３８３】
簡単のため図１８２では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【１３８４】
第３実施形態の変形例１２に係る書込み動作は、第３実施形態の変形例９と同様に第１〜第１２書込み動作に分けられる。
【１３８５】
第３実施形態の変形例１２と第３実施形態の変形例９とで異なる点は、第１及び第２書込み動作と、第３及び第４書込み動作と、の実行順序が入れ替わっている点である。
【１３８６】
＜３−１６−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図１８３を用いて、本実施形態に係るプログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法について説明する。
【１３８７】
[ステップＳ１８３０１]
シーケンサ１１１は、ステップＳ１６８０１と同様の動作を実行する。
【１３８８】
ステップＳ１８３０２〜Ｓ１８３１２は、図１２５のステップＳ１２５０１〜Ｓ１２５１１に対応する。
【１３８９】
＜３−１６−２＞パルスの具体例
続いて、図１８４〜図１８８を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【１３９０】
図１８４〜図１８８では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【１３９１】
図１８４〜図１８８の例では、パルス番号１〜１４、１７、１８、２２、２４、２８、３０、３５、３８、４３、４６、５１、５４、５９に対応するパルスが（ｉ）のパルスに相当する。
【１３９２】
図１８４〜図１８８の例では、パルス番号１〜１４、１７、１８、２２、２４、２８、３０、３５、３８、４３、４６、５１、５４、５９以外に対応するパルスが（ｉｉ）のパルスに相当する。
【１３９３】
＜３−１７＞第３実施形態の変形例１３
第３実施形態の変形例１３について説明する。第３実施形態の変形例１３では、上述したデータの書込み方法と異なる書込み方法を第３実施形態に採用した場合について説明する。
【１３９４】
＜３−１７−１＞動作
＜３−１７−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図１８９を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【１３９５】
簡単のため図１８９では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【１３９６】
第３実施形態の変形例１３に係る書込み動作は、第３実施形態の変形例３と同様に第１〜第５書込み動作に分けられる。なお、第５プログラムで用いられる電圧ＶＰＧＭ＿Ｖは、初回の電圧ＶＰＧＭ＿ＩＶよりも大きい。
【１３９７】
第３実施形態の変形例１３と第３実施形態とで異なる点は、最初に第５プログラムを１回実行する点である。
【１３９８】
＜３−１７−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図１９０を用いて、本実施形態に係るプログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法について説明する。
【１３９９】
[ステップＳ１９００１]
シーケンサ１１１は、ステップＳ１３１０１と同様の動作を実行する。
【１４００】
ステップＳ１９００２〜Ｓ１９０１２は、図１１６のステップＳ１１６０１〜Ｓ１１６１１に対応する。
【１４０１】
＜３−１７−２＞パルスの具体例
続いて、図１９１〜図１９４を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【１４０２】
図１９１〜図１９４では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【１４０３】
図１９１〜図１９４の例では、パルス番号１〜７、１０、１１、１５、１７、２１、２８、３１、３６、３８、３９、４４、５１、５４に対応するパルスが（ｉ）のパルスに相当する。
【１４０４】
図１９１〜図１９４の例では、パルス番号１〜７、１０、１１、１５、１７、２１、２８、３１、３６、３８、３９、４４、５１、５４以外に対応するパルスが（ｉｉ）のパルスに相当する。
【１４０５】
＜３−１８＞第３実施形態の変形例１４
第３実施形態の変形例１４について説明する。第３実施形態の変形例１４では、上述したデータの書込み方法と異なる書込み方法を第３実施形態に採用した場合について説明する。
【１４０６】
＜３−１８−１＞動作
＜３−１８−１−１＞プログラム動作及びプログラムベリファイ動作の実行順序例
以下では、図１９５を用いて、プログラム動作及びプログラムベリファイ動作の実行順序について説明する。
【１４０７】
簡単のため図１９５では、図１７と同様に、プログラム動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＧＭのみをパルスとして図示している。同様にプログラムベリファイ動作に関しては、選択ワード線ＷＬに印加される電圧ＶＰＶＦＹのみをパルスとして図示している。
【１４０８】
第３実施形態の変形例１４に係る書込み動作は、第３実施形態の変形例３と同様に第１〜第５書込み動作に分けられる。なお、第５プログラムで用いられる電圧ＶＰＧＭ＿Ｖは、初回の電圧ＶＰＧＭ＿ＩＶよりも大きい。
【１４０９】
第３実施形態の変形例１４と第３実施形態の変形例２とで異なる点は、最初に第５プログラムを１回実行する点である。
【１４１０】
＜３−１８−１−２＞プログラム動作及びプログラムベリファイ動作の実行順序の生成方法
図１９６を用いて、本実施形態に係るプログラム動作及びプログラムベリファイ動作の実行順序（パルス順序）の生成方法について説明する。
【１４１１】
[ステップＳ１９６０１]
シーケンサ１１１は、ステップＳ１３１０１と同様の動作を実行する。
【１４１２】
ステップＳ１９６０２〜Ｓ１９６１２は、図１２５のステップＳ１２５０１〜Ｓ１２５１１に対応する。
【１４１３】
＜３−１８−２＞パルスの具体例
続いて、図１９７〜図２００を用いて、上述したメモリセルトランジスタＭＴに対して、本実施形態の書込み動作を適用する際の具体的なパルス例について説明する。基本的な動作は、図２０、図２１を用いて説明した動作と同様である。
【１４１４】
図１９７〜図２００では、図２０及び図２１で説明したように、大きく分けて（ｉ）のパルスと、（ｉｉ）のパルスと、が示されている。
【１４１５】
図１９７〜図２００の例では、パルス番号１〜７、１０、１１、１５、１７、２１、２３、２８、３１、３６、３９、４４、４７、５２に対応するパルスが（ｉ）のパルスに相当する。
【１４１６】
図１９７〜図２００の例では、パルス番号１〜７、１０、１１、１５、１７、２１、２８、３１、３６、３８、３９、４４、５１、５４以外に対応するパルスが（ｉｉ）のパルスに相当する。
【１４１７】
また、上述した各実施形態において、
（１）読み出し動作では、
Aレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば０V〜0.55Vの間である。これに限定されることなく、0.1V〜0.24V, 0.21V〜0.31V, 0.31V〜0.4V, 0.4V〜0.5V, 0.5V〜0.55Vいずれかの間にしてもよい。
【１４１８】
Bレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば1.5V〜2.3Vの間である。これに限定されることなく、1.65V〜1.8V, 1.8V〜1.95V, 1.95V〜2.1V,  2.1V〜2.3Vいずれかの間にしてもよい。
【１４１９】
Cレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば3.0V〜4.0Vの間である。これに限定されることなく、3.0V〜3.2V, 3.2V〜3.4V, 3.4V〜3.5V, 3.5V〜3.6V, 3.6V〜4.0Vいずれかの間にしてもよい。
【１４２０】
読み出し動作の時間（tR）としては、例えば25μs〜38μs, 38μs〜70μs, 70μs〜80μsの間にしてもよい。
【１４２１】
（２）書き込み動作は、上述したとおりプログラム動作とベリファイ動作を含む。書き込み動作では、
プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば13.7V〜14.3Vの間である。これに限定されることなく、例えば13.7V〜14.0V, 14.0V〜14.6Vいずれかの間としてもよい。
【１４２２】
奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧を変えてもよい。
【１４２３】
プログラム動作をISPP方式（Ｉｎｃｒｅｍｅｎｔａｌ Ｓｔｅｐ Ｐｕｌｓｅ Ｐｒｏｇｒａｍ）としたとき、ステップアップの電圧として、例えば0.5V程度が挙げられる。
【１４２４】
非選択のワード線に印加される電圧としては、例えば6.0V〜7.3Vの間としてもよい。この場合に限定されることなく、例えば7.3V〜8.4Vの間としてもよく、6.0V以下としてもよい。
非選択のワード線が奇数番目のワード線であるか、偶数番目のワード線であるかで、印加するパス電圧を変えてもよい。
書き込み動作の時間（tProg）としては、例えば1700μs〜1800μs, 1800μs〜1900μs, 1900μs〜2000μsの間にしてもよい。
（３）消去動作では、
半導体基板上部に形成され、かつ、上記メモリセルが上方に配置されたウェルに最初に印加する電圧は、例えば12V〜13.6Vの間である。この場合に限定されることなく、例えば13.6V〜14.8V, 14.8V〜19.0V, 19.0〜19.8V, 19.8V〜21Vの間であってもよい。
消去動作の時間（tErase）としては、例えば3000μs〜4000μs, 4000μs〜5000μs, 4000μs〜9000μsの間にしてもよい。
（４）メモリセルの構造は、
半導体基板（シリコン基板）上に膜厚が４〜１０ｎｍのトンネル絶縁膜を介して配置された電荷蓄積層を有している。この電荷蓄積層は膜厚が２〜３ｎｍのＳｉＮ、またはＳｉＯＮなどの絶縁膜と膜厚が３〜８ｎｍのポリシリコンとの積層構造にすることができる。また、ポリシリコンにはＲｕなどの金属が添加されていても良い。電荷蓄積層の上には絶縁膜を有している。この絶縁膜は、例えば、膜厚が３〜１０ｎｍの下層Ｈｉｇｈ−ｋ膜と膜厚が３〜１０ｎｍの上層Ｈｉｇｈ−ｋ膜に挟まれた膜厚が４〜１０ｎｍのシリコン酸化膜を有している。Ｈｉｇｈ−ｋ膜はＨｆＯなどが挙げられる。また、シリコン酸化膜の膜厚はＨｉｇｈ−ｋ膜の膜厚よりも厚くすることができる。絶縁膜上には膜厚が３〜１０ｎｍの仕事関数調整用の材料を介して膜厚が３０ｎｍ〜７０ｎｍの制御電極が形成されている。ここで仕事関数調整用の材料はＴａＯなどの金属酸化膜、ＴａＮなどの金属窒化膜である。制御電極にはＷなどを用いることができる。
【１４２５】
また、メモリセル間にはエアギャップを形成することができる。
【１４２６】
以上、本発明の実施形態を説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない範囲内において種々変形して実施することが可能である。さらに、上記実施形態には種々の段階の発明が含まれており、開示された構成要件を適宜組み合わせることによって種々の発明が抽出される。例えば、開示された構成要件からいくつかの構成要件が削除されても、所定の効果が得られるものであれば、発明として抽出され得る。
【符号の説明】
【１４２７】
１…メモリシステム
１４…センスアンプ
１００…ＮＡＮＤ型フラッシュメモリ
１１１…シーケンサ
１１２…レジスタ
１１３…ドライバ
１３０…メモリセルアレイ
１３１…ＮＡＮＤストリング
１４０…センスアンプユニット
１５０…ロウデコーダ
２００…メモリコントローラ
３００…ホストデバイス
【図１】
2018055736.tif 000003
【図２】
2018055736.tif 000004
【図３】
2018055736.tif 000005
【図４】
2018055736.tif 000006
【図５】
2018055736.tif 000007
【図６】
2018055736.tif 000008
【図７】
2018055736.tif 000009
【図８】
2018055736.tif 000010
【図９】
2018055736.tif 000011
【図１０】
2018055736.tif 000012
【図１１】
2018055736.tif 000013
【図１２】
2018055736.tif 000014
【図１３】
2018055736.tif 000015
【図１４】
2018055736.tif 000016
【図１５】
2018055736.tif 000017
【図１６】
2018055736.tif 000018
【図１７】
2018055736.tif 000019
【図１８】
2018055736.tif 000020
【図１９】
2018055736.tif 000021
【図２０】
2018055736.tif 000022
【図２１】
2018055736.tif 000023
【図２２】
2018055736.tif 000024
【図２３】
2018055736.tif 000025
【図２４】
2018055736.tif 000026
【図２５】
2018055736.tif 000027
【図２６】
2018055736.tif 000028
【図２７】
2018055736.tif 000029
【図２８】
2018055736.tif 000030
【図２９】
2018055736.tif 000031
【図３０】
2018055736.tif 000032
【図３１】
2018055736.tif 000033
【図３２】
2018055736.tif 000034
【図３３】
2018055736.tif 000035
【図３４】
2018055736.tif 000036
【図３５】
2018055736.tif 000037
【図３６】
2018055736.tif 000038
【図３７】
2018055736.tif 000039
【図３８】
2018055736.tif 000040
【図３９】
2018055736.tif 000041
【図４０】
2018055736.tif 000042
【図４１】
2018055736.tif 000043
【図４２】
2018055736.tif 000044
【図４３】
2018055736.tif 000045
【図４４】
2018055736.tif 000046
【図４５】
2018055736.tif 000047
【図４６】
2018055736.tif 000048
【図４７】
2018055736.tif 000049
【図４８】
2018055736.tif 000050
【図４９】
2018055736.tif 000051
【図５０】
2018055736.tif 000052
【図５１】
2018055736.tif 000053
【図５２】
2018055736.tif 000054
【図５３】
2018055736.tif 000055
【図５４】
2018055736.tif 000056
【図５５】
2018055736.tif 000057
【図５６】
2018055736.tif 000058
【図５７】
2018055736.tif 000059
【図５８】
2018055736.tif 000060
【図５９】
2018055736.tif 000061
【図６０】
2018055736.tif 000062
【図６１】
2018055736.tif 000063
【図６２】
2018055736.tif 000064
【図６３】
2018055736.tif 000065
【図６４】
2018055736.tif 000066
【図６５】
2018055736.tif 000067
【図６６】
2018055736.tif 000068
【図６７】
2018055736.tif 000069
【図６８】
2018055736.tif 000070
【図６９】
2018055736.tif 000071
【図７０】
2018055736.tif 000072
【図７１】
2018055736.tif 000073
【図７２】
2018055736.tif 000074
【図７３】
2018055736.tif 000075
【図７４】
2018055736.tif 000076
【図７５】
2018055736.tif 000077
【図７６】
2018055736.tif 000078
【図７７】
2018055736.tif 000079
【図７８】
2018055736.tif 000080
【図７９】
2018055736.tif 000081
【図８０】
2018055736.tif 000082
【図８１】
2018055736.tif 000083
【図８２】
2018055736.tif 000084
【図８３】
2018055736.tif 000085
【図８４】
2018055736.tif 000086
【図８５】
2018055736.tif 000087
【図８６】
2018055736.tif 000088
【図８７】
2018055736.tif 000089
【図８８】
2018055736.tif 000090
【図８９】
2018055736.tif 000091
【図９０】
2018055736.tif 000092
【図９１】
2018055736.tif 000093
【図９２】
2018055736.tif 000094
【図９３】
2018055736.tif 000095
【図９４】
2018055736.tif 000096
【図９５】
2018055736.tif 000097
【図９６】
2018055736.tif 000098
【図９７】
2018055736.tif 000099
【図９８】
2018055736.tif 000100
【図９９】
2018055736.tif 000101
【図１００】
2018055736.tif 000102
【図１０１】
2018055736.tif 000103
【図１０２】
2018055736.tif 000104
【図１０３】
2018055736.tif 000105
【図１０４】
2018055736.tif 000106
【図１０５】
2018055736.tif 000107
【図１０６】
2018055736.tif 000108
【図１０７】
2018055736.tif 000109
【図１０８】
2018055736.tif 000110
【図１０９】
2018055736.tif 000111
【図１１０】
2018055736.tif 000112
【図１１１】
2018055736.tif 000113
【図１１２】
2018055736.tif 000114
【図１１３】
2018055736.tif 000115
【図１１４】
2018055736.tif 000116
【図１１５】
2018055736.tif 000117
【図１１６】
2018055736.tif 000118
【図１１７】
2018055736.tif 000119
【図１１８】
2018055736.tif 000120
【図１１９】
2018055736.tif 000121
【図１２０】
2018055736.tif 000122
【図１２１】
2018055736.tif 000123
【図１２２】
2018055736.tif 000124
【図１２３】
2018055736.tif 000125
【図１２４】
2018055736.tif 000126
【図１２５】
2018055736.tif 000127
【図１２６】
2018055736.tif 000128
【図１２７】
2018055736.tif 000129
【図１２８】
2018055736.tif 000130
【図１２９】
2018055736.tif 000131
【図１３０】
2018055736.tif 000132
【図１３１】
2018055736.tif 000133
【図１３２】
2018055736.tif 000134
【図１３３】
2018055736.tif 000135
【図１３４】
2018055736.tif 000136
【図１３５】
2018055736.tif 000137
【図１３６】
2018055736.tif 000138
【図１３７】
2018055736.tif 000139
【図１３８】
2018055736.tif 000140
【図１３９】
2018055736.tif 000141
【図１４０】
2018055736.tif 000142
【図１４１】
2018055736.tif 000143
【図１４２】
2018055736.tif 000144
【図１４３】
2018055736.tif 000145
【図１４４】
2018055736.tif 000146
【図１４５】
2018055736.tif 000147
【図１４６】
2018055736.tif 000148
【図１４７】
2018055736.tif 000149
【図１４８】
2018055736.tif 000150
【図１４９】
2018055736.tif 000151
【図１５０】
2018055736.tif 000152
【図１５１】
2018055736.tif 000153
【図１５２】
2018055736.tif 000154
【図１５３】
2018055736.tif 000155
【図１５４】
2018055736.tif 000156
【図１５５】
2018055736.tif 000157
【図１５６】
2018055736.tif 000158
【図１５７】
2018055736.tif 000159
【図１５８】
2018055736.tif 000160
【図１５９】
2018055736.tif 000161
【図１６０】
2018055736.tif 000162
【図１６１】
2018055736.tif 000163
【図１６２】
2018055736.tif 000164
【図１６３】
2018055736.tif 000165
【図１６４】
2018055736.tif 000166
【図１６５】
2018055736.tif 000167
【図１６６】
2018055736.tif 000168
【図１６７】
2018055736.tif 000169
【図１６８】
2018055736.tif 000170
【図１６９】
2018055736.tif 000171
【図１７０】
2018055736.tif 000172
【図１７１】
2018055736.tif 000173
【図１７２】
2018055736.tif 000174
【図１７３】
2018055736.tif 000175
【図１７４】
2018055736.tif 000176
【図１７５】
2018055736.tif 000177
【図１７６】
2018055736.tif 000178
【図１７７】
2018055736.tif 000179
【図１７８】
2018055736.tif 000180
【図１７９】
2018055736.tif 000181
【図１８０】
2018055736.tif 000182
【図１８１】
2018055736.tif 000183
【図１８２】
2018055736.tif 000184
【図１８３】
2018055736.tif 000185
【図１８４】
2018055736.tif 000186
【図１８５】
2018055736.tif 000187
【図１８６】
2018055736.tif 000188
【図１８７】
2018055736.tif 000189
【図１８８】
2018055736.tif 000190
【図１８９】
2018055736.tif 000191
【図１９０】
2018055736.tif 000192
【図１９１】
2018055736.tif 000193
【図１９２】
2018055736.tif 000194
【図１９３】
2018055736.tif 000195
【図１９４】
2018055736.tif 000196
【図１９５】
2018055736.tif 000197
【図１９６】
2018055736.tif 000198
【図１９７】
2018055736.tif 000199
【図１９８】
2018055736.tif 000200
【図１９９】
2018055736.tif 000201
【図２００】
2018055736.tif 000202