(57)【要約】 【課題】  記憶すべきデータの数を削減して複数の電圧を容易に発生することが可能な半導体記憶装置を提供しようとするものである。【解決手段】  メモリセルアレイ１には、ワード線、及びビット線に接続された複数のメモリセルがマトリックス状に配置されている。電圧発生回路７−２は、書き込み動作におけるワード線の書き込み電圧を発生する。電圧発生回路は、基準電圧を可変する可変回路７２ｅをさらに有し、可変回路は書き込み電圧の増加に伴い基準電圧を増加する。【選択図】図１
2011165312.tif 000002
【特許請求の範囲】
【請求項１】
ワード線、及びビット線に接続された複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、書き込み動作におけるワード線の書き込み電圧を発生する電圧発生回路とを具備し、
前記電圧発生回路は、基準電圧を可変する可変回路をさらに有し、前記可変回路は前記書き込み電圧の増加に伴い基準電圧を増加することを特徴とする半導体記憶装置。
【請求項２】
ワード線、及びビット線に接続された複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、
前記ワード線、及びビット線の電位を制御する制御回路と、
電圧発生回路とを有し、
前記電圧発生回路は、書き込み電圧を発生し、前記制御回路は前記電圧発生回路からの前記書き込み電圧に基づき第１回目の書込み動作を行い、
前記電圧発生回路は、第１書込み電圧より第１ステップ電圧分高い電圧を発生し、第２回目の書込み動作を行い、
前記電圧発生回路は、第（ｎ−１）書き込み電圧より第（ｎ−１）ステップ電圧分高い電圧を発生し、第ｎ回目の書込み動作を行い、
前記電圧発生回路は、第ｎ書き込み電圧より第ｎステップ電圧分高い電圧を発生し、第（ｎ＋１）回目の書込み動作を行い、前記第ｎステップ電圧は、第（ｎ−１）ステップ電圧≦第ｎステップ電圧であることを特徴とする半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＥＥＰＲＯＭを用いたＮＡＮＤ型フラッシュメモリに係り、特に、１つのメモリセルに多値データを記憶することが可能な半導体記憶装置に関する。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリは、カラム方向に配置された複数のメモリセルが直列接続されてＮＡＮＤセルを構成し、各ＮＡＮＤセルは選択ゲートを介して対応するビット線に接続される。各ビット線は、書き込みデータ、及び読み出しデータをラッチするラッチ回路に接続されている。ロウ方向に配置された複数のセルの全て、又は半数のセルは、同時に選択され、この同時に選択された全てのセル又は半数のセルに対して、一括して書き込み、又は読み出し動作が行なわれる（例えば特許文献１参照）。
【０００３】
ところで、近時、メモリの大容量化に伴い、１つのセルに２ビット以上を記憶する多値メモリが開発されている。例えば１つのセルに２ビットを記憶するためには、４つの閾値分布を設定する必要があり、３ビットを記憶するためには、８つの閾値電圧を設定する必要がある。これら閾値電圧は、読み出し電圧を超えない範囲に設定する必要がある。このため、データの書き込み時において、メモリセルの制御ゲートに書き込み電圧を供給して閾値電圧を変化させ、この閾値電圧が所定のデータに対応した閾値電圧に達しているかどうかをベリファイする。閾値電圧が所定の閾値電圧に達していない場合、ワード線に供給される書き込み電圧を僅かに増加して再度書き込み動作を繰り返す。このようにして、メモリセルの閾値電圧が設定される。このように、多値メモリは複数の閾値電圧を設定する必要がある。
【０００４】
書き込み電圧は、ポンプ回路とリミッタ回路を用いて発生される。このリミッタ回路は、入力信号に応じて抵抗比を変えることにより所定の電圧を発生し、この電圧によりポンプ回路が制御され、所定の電圧を発生する。このポンプ回路は、入力データに応じて最小発生電圧が複数数個設定可能されている。
【０００５】
しかし、多値メモリは、書き込み電圧の初期値を書き込みページに応じて変化させたり、既に書き込んだセルとそれに隣接するセルに応じて変化させたりする必要がある。さらに、再書き込み時における書き込み電圧の増加分（ステップ幅）を、書き込み電圧の初期値に応じて変化させたりする必要がある。したがって、多くの書き込み電圧を発生する必要がある。この書き込み電圧は、リミッタ回路に供給するデータにより設定されるが、多数の書き込み電圧に対応して多数のデータを記憶しておく必要がある。これらデータは半導体記憶装置のテスト時にトリミングして設定されるが、多くのデータをトリミングするために長時間を要していた。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−１９２７８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、記憶すべきデータの数を削減して複数の電圧を容易に発生することが可能な半導体記憶装置を提供しようとするものである。
【課題を解決するための手段】
【０００８】
本発明の半導体記憶装置の第１の態様は、ワード線、及びビット線に接続された複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、書き込み動作におけるワード線の書き込み電圧を発生する電圧発生回路とを具備し、前記電圧発生回路は、基準電圧を可変する可変回路をさらに有し、前記可変回路は前記書き込み電圧の増加に伴い基準電圧を増加することを特徴とする。
【０００９】
本発明の半導体記憶装置の第２の態様は、ワード線、及びビット線に接続された複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、前記ワード線、及びビット線の電位を制御する制御回路と、電圧発生回路とを有し、前記電圧発生回路は、書き込み電圧を発生し、前記制御回路は前記電圧発生回路からの前記書き込み電圧に基づき第１回目の書込み動作を行い、前記電圧発生回路は、第１書込み電圧より第１ステップ電圧分高い電圧を発生し、第２回目の書込み動作を行い、前記電圧発生回路は、第（ｎ−１）書き込み電圧より第（ｎ−１）ステップ電圧分高い電圧を発生し、第ｎ回目の書込み動作を行い、前記電圧発生回路は、第ｎ書き込み電圧より第ｎステップ電圧分高い電圧を発生し、第（ｎ＋１）回目の書込み動作を行い、前記第ｎステップ電圧は、第（ｎ−１）ステップ電圧≦第ｎステップ電圧であることを特徴とする。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係る半導体記憶装置を示す構成図。
【図２】図１に示すメモリセルアレイ１及びビット線制御回路２の構成を示す回路図。
【図３】図３（ａ）はメモリセルを示す断面図、図３（ｂ）は選択ゲートを示す断面図。
【図４】図２に示すデータ記憶回路の一例を示す回路図。
【図５】図１に示す演算回路の一例を示す構成図。
【図６】図１の制御信号及び制御電圧発生回路に含まれるＶｐｇｍ発生部の一例を示す回路図。
【図７】図７（ａ）（ｂ）は、メモリセルのデータとメモリセルの閾値電圧との関係を示す図。
【図８】第１の実施形態における書き込み順序を概略的に示す図。
【図９】第１ページのプログラムシーケンスを示すフローチャート。
【図１０】第２ページのプログラムシーケンスを示すフローチャート。
【図１１】図１１（ａ）（ｂ）（ｃ）は、異なる書き込み方式を示す図。
【図１２】書き込み対象ワード線のＶｐｇｍの計算方法を示すフローチャート。
【図１３】Ｖｐｇｍを２０ｍＶ毎にデータに変換した例を示す図。
【図１４】Ｖｐｇｍを２５ｍＶ毎にデータに変換した例を示す図。
【図１５】Ｖｐｇｍを３０ｍＶ毎にデータに変換した例を示す図。
【図１６】Ｖｐｇｍを５０ｍＶ毎にデータに変換した例を示す図。
【図１７】第２の実施形態の原理を示す図。
【図１８】第２の実施形態に係るＶｐｇｍ発生部の一例を示す回路図。
【発明を実施するための形態】
【００１１】
以下、実施の形態について、図面を参照して説明する。
【００１２】
先ず、本実施形態について概略的に説明する。
【００１３】
多値メモリにおいて、書き込み動作を高速化するためには、次のような点に留意する必要が有る。
【００１４】
（１）第１ページと第２ページ、及び隣接セルの第１ページと第２ページについて、書き込み時にワード線に供給される書き込み電圧Ｖｐｇｍの初期値、及び書き込み電圧の増加分（ステップ電圧ＤＶｐｇｍ）を最適化する。
【００１５】
（２）ワード線のソース側とドレイン側でブースト方式を変える。
【００１６】
（３）ワード線毎にＶｐｇｍに補正値を設定する。
【００１７】
しかし、（１）のように書き込み電圧Ｖｐｇｍ及びステップ電圧ＤＶｐｇｍをそれぞれ最適化したデータを記憶するとデータ数が増加する。また、ステップ電圧が（１）のように異なると、（２）のブースト方式を変える場合において、書き込み電圧Ｖｐｇｍの最小電圧が相違する。このため、ワード線毎に、ブースト方式の相違による差電圧ＥＡＳＢ−ＳＢ（Erase self boost-self boost）などの補正値が異なる。このため、ステップ電圧ＤＶｐｇｍ毎に全てのデータが必要となってしまう。
【００１８】
一方、書き込み電圧Ｖｐｇｍは、ポンプ回路をリミッタ回路に制御することにより生成される。リミッタ回路の最小ステップ電圧は、第１ページと第２ページ、及び隣接セルの第１ページと第２ページに対応して、例えば０．３Ｖ、０．２５０Ｖ、０．２００Ｖに設定可能とされている。しかし、上記のように多くの最小ステップ電圧を設けると、最小ステップ毎にブースト方式の相違による電位差などの補正値を設ける必要がある。また、リミッタ回路の最小ステップ電圧を、０．３Ｖ、０．２５Ｖ、０．２Ｖの最小公倍数である５０ｍＶとすると、リミッタ回路のステップ幅が一定でなくなるという問題が発生する。このため、リミッタ回路の最小ステップは、なるべく大きなステップ電圧である０．３Ｖ、０．２５Ｖ、０．２Ｖにする必要がある。
【００１９】
そこで、本実施形態において、書き込み電圧Ｖｐｇｍは、最小ステップ電圧毎に初期値を持たず、書き込み電圧Ｖｐｇｍの初期値は、トリミングにより設定された１つとする。書き込みの最初に、トリミングした初期Ｖｐｇｍを一旦、第１ページ、第２ページの奇数ビット線、偶数ビット線の最小ステップ電圧の最大公約数である５０ｍＶ（０．４Ｖ＝０．０５×８、０．５Ｖ＝０．０５×１０、０．９Ｖ＝０．０５×１８、１．２Ｖ＝０．０５×２４）毎の電圧に変換し、この電圧に書き込み対象のワード線とＶｐｇｍの初期値と他の差電圧、ワード線毎の補正値、ＥＡＳＢ−ＳＢ差分値などのパラメータを加算する。この後、割り算を行い、リミッタ回路の最小ステップ電圧（０．３Ｖ＝０．０５Ｖ×６、０．２５Ｖ＝０．０５Ｖ×５、０．２Ｖ＝０．０５Ｖ×４）に戻す。このようにすることで、リミッタ回路の最小ステップ電圧毎に、データを用意する必要がなく、複数の電圧を容易に発生することが可能となる。
【００２０】
以下、本発明の実施の形態について、図面を参照して説明する。
【００２１】
（第１の実施形態）
図１は、本実施形態に係る半導体記憶装置、具体的には例えば４値（２ビット）のデータを記憶するＮＡＮＤ型フラッシュメモリの構成を示している。
【００２２】
メモリセルアレイ１は複数のビット線と複数のワード線と共通ソース線を含み、例えばＥＥＰＲＯＭセルからなる電気的にデータを書き換え可能なメモリセルがマトリクス状に配置されている。
【００２３】
このメモリセルアレイ１は、ＲＯＭ部１−１を有している。このＲＯＭ部１−１は、所謂フューズとして機能し、出荷前のテスト時に例えばトリミングして得られた後述する各種電圧のデータを記憶している。
【００２４】
さらに、メモリセルアレイ１には、ビット線を制御するためのビット線制御回路２とワード線制御回路６が接続されている。  
ビット線制御回路２は、ビット線を介してメモリセルアレイ１中のメモリセルのデータを読み出したり、ビット線を介してメモリセルアレイ１中のメモリセルの状態を検出したり、ビット線を介してメモリセルアレイ１中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行なう。ビット線制御回路２には、カラムデコーダ３、データ入出力バッファ４が接続されている。ビット線制御回路２内のデータ記憶回路はカラムデコーダ３によって選択される。データ記憶回路に読み出されたメモリセルのデータは、前記データ入出力バッファ４を介してデータ入出力端子５から外部へ出力される。
【００２５】
また、外部からデータ入出力端子５に入力された書き込みデータは、データ入出力バッファ４を介して、カラムデコーダ３によって選択されたデータ記憶回路に入力される。
【００２６】
ワード線制御回路６は、メモリセルアレイ１中のワード線を選択し、選択されたワード線に読み出し、書き込みあるいは消去に必要な電圧を印加する。  
メモリセルアレイ１、ビット線制御回路２、カラムデコーダ３、データ入出力バッファ４、及びワード線制御回路６は、制御信号及び制御電圧発生回路７に接続され、この制御信号及び制御電圧発生回路７によって制御される。制御信号及び制御電圧発生回路７は、制御信号入力端子８に接続され、外部から制御信号入力端子８を介して入力される制御信号によって制御される。制御信号及び制御電圧発生回路７は、後述する演算回路７−１及びＶｐｇｍ発生部７−２を含んでいる。演算回路７−１はデータの書き込み時に、書き込み電圧を発生するために必要なデータを算出し、Ｖｐｇｍ発生部７−２は演算回路７−１から供給されるデータに応じて書き込み電圧Ｖｐｇｍを発生する。
【００２７】
前記ビット線制御回路２、カラムデコーダ３、ワード線制御回路６、制御信号及び制御電圧発生回路７は書き込み回路、及び読み出し回路を構成している。
【００２８】
図２は、図１に示すメモリセルアレイ１及びビット線制御回路２の構成を示している。メモリセルアレイ１には複数のＮＡＮＤセルが配置されている。１つのＮＡＮＤセルは、直列接続された例えば３２個のＥＥＰＲＯＭからなるメモリセルＭＣと、選択ゲートＳ１、Ｓ２とにより構成されている。選択ゲートＳ２はビット線ＢＬ０ｅに接続され、選択ゲートＳ１はソース線ＳＲＣに接続されている。各ロウに配置されたメモリセルＭＣの制御ゲートはワード線ＷＬ０〜ＷＬ２９、ＷＬ３０、ＷＬ３１に共通接続されている。また、選択ゲートＳ２はセレクト線ＳＧＤに共通接続され、選択ゲートＳ１はセレクト線ＳＧＳに共通接続されている。
【００２９】
ビット線制御回路２は複数のデータ記憶回路１０を有している。各データ記憶回路１０には、一対のビット線（ＢＬ０ｅ、ＢＬ０ｏ）、（ＢＬ１ｅ、ＢＬ１ｏ）…（ＢＬｉｅ、ＢＬｉｏ）、（ＢＬ８ｋｅ、ＢＬ８ｋｏ）が接続されている。
【００３０】
メモリセルアレイ１は、破線で示すように、複数のブロックを含んでいる。各ブロックは、複数のＮＡＮＤセルにより構成され、例えばこのブロック単位でデータが消去される。また、消去動作は、データ記憶回路１０に接続されている２本のビット線について同時に行なわれる。
【００３１】
また、ビット線の１つおきに配置され、１つのワード線に接続された複数のメモリセル（破線で囲まれた範囲のメモリセル）は、１セクタを構成する。このセクタ毎にデータが書き込まれ、読み出される。
【００３２】
リード動作、プログラムベリファイ動作及びプログラム動作時において、データ記憶回路１０に接続されている２本のビット線（ＢＬｉｅ、ＢＬｉｏ）のうち外部より供給されるアドレス信号（ＹＡ０、ＹＡ１…ＹＡｉ…ＹＡ８ｋ）に応じて１本のビット線が選択される。さらに、外部アドレスに応じて、１本のワード線が選択される。
【００３３】
図３（ａ）（ｂ）はメモリセル及び選択トランジスタの断面図を示している。図３（ａ）はメモリセルを示している。基板５１（後述するＰウェル領域５５）にはメモリセルのソース、ドレインとしてのｎ型拡散層４２が形成されている。Ｐウェル領域５５の上にはゲート絶縁膜４３を介して浮遊ゲート（ＦＧ）４４が形成され、この浮遊ゲート４４の上には絶縁膜４５を介して制御ゲート（ＣＧ）４６が形成されている。図３（ｂ）は選択ゲートを示している。Ｐウェル領域５５にはソース、ドレインとしてのｎ型拡散層４７が形成されている。Ｐウェル領域５５の上にはゲート絶縁膜４８を介して制御ゲート４９が形成されている。
【００３４】
図４は、図２に示すデータ記憶回路１０の一例を示す回路図である。
【００３５】
このデータ記憶回路１０は、プライマリデータキャッシュ（ＰＤＣ）、セコンダリデータキャッシュ（ＳＤＣ）、ダイナミックデータキャッシュ（ＤＤＣ）、テンポラリデータキャッシュ（ＴＤＣ）を有している。ＳＤＣ、ＰＤＣ、ＤＤＣは、書き込み時に入力データを保持し、読み出し時に読み出しデータを保持し、ベリファイ時に一時的にデータを保持し、多値データを記憶する際に内部データの操作に使用される。ＴＤＣは、データの読み出し時にビット線のデータを増幅し、一時的に保持するとともに、多値データを記憶する際に内部データの操作に使用される。
【００３６】
ＳＤＣは、ラッチ回路を構成するクロックドインバータ回路６１ａ、６１ｂ、及びトランジスタ６１ｃ、６１ｄにより構成されている。トランジスタ６１ｃはクロックドインバータ回路６１ａの入力端と、クロックドインバータ回路６１ｂの入力端の間に接続されている。このトランジスタ６１ｃのゲートには信号ＥＱ２が供給されている。トランジスタ６１ｄはクロックドインバータ回路６１ｂの出力端と接地間に接続されている。このトランジスタ６１ｄのゲートには信号ＰＲＳＴが供給されている。ＳＤＣのノードＮ２ａは、カラム選択トランジスタ６１ｅを介して入出力データ線ＩＯに接続され、ノードＮ２ｂは、カラム選択トランジスタ６１ｆを介して入出力データ線ＩＯｎに接続される。これらトランジスタ６１ｅ、６１ｆのゲートにはカラム選択信号ＣＳＬｉが供給されている。ＳＤＣのノードＮ２ａは、トランジスタ６１ｇ、６１ｈを介してＰＤＣのノードＮ１ａに接続されている。トランジスタ６１ｇのゲートには信号ＢＬＣ２が供給され、トランジスタ６１ｈのゲートには信号ＢＬＣ１が供給されている。
【００３７】
ＰＤＣは、クロックドインバータ回路６１ｉ、６１ｊ及びトランジスタ６１ｋにより構成されている。トランジスタ６１ｋは、クロックドインバータ回路６１ｉの入力端とクロックドインバータ回路６１ｊの入力端の相互間に接続されている。このトランジスタ６１ｋのゲートには信号ＥＱ１が供給されている。ＰＤＣのノードＮ１ｂはトランジスタ６１ｌのゲートに接続されている。このトランジスタ６１ｌの電流通路の一端はトランジスタ６１ｍを介して接地されている。このトランジスタ６１ｍのゲートには信号ＣＨＫ１が供給されている。また、トランジスタ６１ｌの電流通路の他端はトランスファーゲートを構成するトランジスタ６１ｎ、６１ｏの電流通路の一端に接続されている。このトランジスタ６１ｎのゲートには信号ＣＨＫ２ｎが供給されている。また、トランジスタ６１ｏのゲートはＳＤＣのノードＮ２ａに接続されている。トランジスタ６１ｎ、６１ｏの電流通路の他端には、信号ＣＯＭｉが供給されている。この信号ＣＯＭｉは全データ記憶回路１０に共通の信号であり、全データ記憶回路１０のベリファイが完了したかどうかを示す信号である。すなわち、後述するように、ベリファイが完了すると、ＰＤＣのノードＮ１ｂがローレベルとなる。この状態において、信号ＣＨＫ１、ＣＨＫ２ｎをハイレベルとすると、ベリファイが完了している場合、信号ＣＯＭｉがハイレベルとなる。
【００３８】
さらに、前記ＴＤＣは、例えばＭＯＳキャパシタ６１ｐにより構成されている。このキャパシタ６１ｐは、前記トランジスタ６１ｇ、６１ｈの接続ノードＮ３と接地間に接続されている。また、接続ノードＮ３には、トランジスタ６１ｑを介してＤＤＣが接続されている。トランジスタ６１ｑのゲートには、信号ＲＥＧが供給されている。
【００３９】
ＤＤＣは、トランジスタ６１ｒ、６１ｓにより構成されている。トランジスタ６１ｒの電流通路の一端には信号ＶＲＥＧが供給され、他端は前記トランジスタ６１ｑの電流通路に接続されている。このトランジスタ６１ｒのゲートはトランジスタ６１ｓを介して前記ＰＤＣのノードＮ１ａに接続されている。このトランジスタ６１ｓのゲートには信号ＤＴＧが供給されている。
【００４０】
さらに、前記接続ノードＮ３にはトランジスタ６１ｔ、６１ｕの電流通路の一端が接続されている。トランジスタ６１ｕの電流通路の他端には信号ＶＰＲＥが供給され、ゲートには信号ＢＬＰＲＥが供給されている。前記トランジスタ６１ｔのゲートには信号ＢＬＣＬＡＭＰが供給されている。このトランジスタ６１ｔの電流通路の他端はトランジスタ６１ｖを介してビット線ＢＬｏの一端に接続され、トランジスタ６１ｗを介してビット線ＢＬｅの一端に接続されている。これらトランジスタ６１ｖ、６１ｗのゲートには、信号ＢＬＳｏ、ＢＬＳｅがそれぞれ供給されている。ビット線ＢＬｏの他端はトランジスタ６１ｘの電流通路の一端に接続されている。このトランジスタ６１ｘのゲートには信号ＢＩＡＳｏが供給されている。ビット線ＢＬｅの他端はトランジスタ６１ｙの電流通路の一端に接続されている。このトランジスタ６１ｙのゲートには信号ＢＩＡＳｅが供給されている。これらトランジスタ６１ｘ、６１ｙの電流通路の他端には、信号ＢＬＣＲＬが供給されている。トランジスタ６１ｘ、６１ｙは、信号ＢＩＡＳｏ、ＢＩＡＳｅに応じて相補的にオンとされ、非選択のビット線に信号ＢＬＣＲＬの電位を供給する。
【００４１】
上記各信号及び電圧は、図１に示す制御信号及び制御電圧発生回路７により生成され、この制御信号及び制御電圧発生回路７の制御に基づき、以下の動作が制御される。
【００４２】
本ＮＡＮＤ型フラッシュメモリは、例えば４値のメモリであり、１つのセルに２ビットのデータを記憶することができる。２ビットの切り替えはアドレス（第１ページ、第２ページ）によって行なう。
【００４３】
図５は、図１に示す演算回路７−１の一例を示している。
【００４４】
図５において、演算回路７−１は、ラッチ回路７１ａ、７１ｂ、７１ｃ、セレクタ回路７１ｄ、７１ｅ、加算回路７１ｆ、レジスタ７１ｇ、７１ｈ、７１ｉ、比較器７１ｊ、アンド回路７１ｋ、７１ｌ、オア回路７１ｍにより構成されている。
【００４５】
ＲＯＭ部１−１から読み出されたデータは、ラッチ回路７１ａ、７１ｂ、７１ｃに保持される。ラッチ回路７１ａ、７１ｂ、７１ｃの出力端及びレジスタ７１ｇの出力端は、セレクタ回路７１ｄの入力端に接続されている。このセレクタ回路７１ｄは、制御信号に応じて入力信号を選択するとともに、入力されたデータをＬＳＢ（Least Significant Bit）又はＭＳＢ（Most Significant Bit）方向にシフトして出力する機能を有している。このため、データのシフト方向により、入力データが除算、又は乗算される。
【００４６】
また、セレクタ回路７１ｅもセレクタ回路７１ｄと同様の機能を有しており、制御信号に応じて、レジスタ７１ｇから供給されたデータを除算、又は乗算して出力する。これらセレクタ回路７１ｄ、７１ｅの出力データは加算回路７１ｆに供給され加算される。この加算回路７１ｆの出力データはレジスタ７１ｇにより保持される。
【００４７】
また、レジスタ７１ｈは、セレクタ７１ｄ、７１ｅ、加算回路７１ｆにより予め計算された書き込み電圧Ｖｐｇｍの最大値Ｖｐｇｍｍａｘを保持する。比較器７１ｊは、加算回路７１ｆから出力されるＶｐｇｍと、レジスタ７１ｈに保持された最大値Ｖｐｇｍｍａｘを比較する。アンド回路７１ｋ、７１ｌ、オア回路７１ｍは、セレクタ７１ｎを構成しており、比較器７１ｊの出力信号に応じて、加算回路７１ｆの出力データとレジスタ７１ｈの出力データのうちの一方を選択する。すなわち、比較器７１ｊにより、加算回路７１ｆの出力データが最大値Ｖｐｇｍｍａｘより小さい場合、セレクタ７１ｎは、加算回路７１ｆの出力データを出力し、加算回路７１ｆの出力データが最大値Ｖｐｇｍｍａｘより大きい場合、セレクタ７１ｎは、最大値Ｖｐｇｍｍａｘを出力する。レジスタ７１ｉは、セレクタ７１ｎの出力データを保持し、このデータを後述するリミッタ回路の制御信号ＲＶ０〜ＲＶ５として出力する。尚、レジスタ７１ｇ、７１ｉは、出力データの衝突を防止するため、図示せぬ制御信号に応じてデータの出力タイミングが切り替えられる。
【００４８】
図６は、図１の制御信号及び制御電圧発生回路７に含まれるＶｐｇｍ発生部７−２を示している。このＶｐｇｍ発生部７−２は、制御部７２ａ、発振器７２ｂ、ポンプ回路７２ｃ、及びリミッタ回路７２ｄを示している。制御部７２ａは、リミッタ回路７２ｄの出力電圧に応じて発振器７２ｂを制御する。ポンプ回路７２ｃは、発振器７２ｂから供給されるクロック信号に応じて書き込み電圧Ｖｐｇｍを発生する。この書き込み電圧Ｖｐｇｍは、ワード線制御回路６に供給されるとともに、リミッタ回路７２ｄに供給される。
【００４９】
リミッタ回路７２ｄは、抵抗ＲＬ、ＲＢと、複数のＮチャネルトランジスタＮ０１、Ｎ０２、Ｎ１１、Ｎ１２、Ｎ２１、Ｎ２２、Ｎ３１、Ｎ３２、Ｎ４１、Ｎ４２、Ｎ５１、Ｎ５２と、複数の抵抗Ｒと、抵抗ＲＤと、差動増幅器ＤＡ１、ＤＡ２と、ＰチャネルトランジスタＰ１とを有している。
【００５０】
直列接続された抵抗ＲＬ、ＲＢは、書き込み電圧Ｖｐｇｍを分圧する。複数のＮチャネルトランジスタＮ０１、Ｎ１１、Ｎ２１、Ｎ３１、Ｎ４１、Ｎ５１の電流通路の一端は、抵抗ＲＬ、ＲＢの接続ノードに接続され、複数のＮチャネルトランジスタＮ０２、Ｎ１２、Ｎ２２、Ｎ３２、Ｎ４２、Ｎ５２の電流通路の一端は、差動増幅器ＤＡ２の一方入力端に接続されている。複数の抵抗Ｒは、トランジスタＮ０１〜Ｎ５１、Ｎ０２〜５２の電流通路の他端と差動増幅器ＤＡ２の一方入力端との間に略梯子状に接続されている。さらに、抵抗ＲＤは、トランジスタＮ５１，Ｎ５２の電流通路の他端と接地間に接続されている。
【００５１】
ＰチャネルトランジスタＰ１は差動増幅器ＤＡ２の一方入力端と電源Ｖｄｄが供給される端子との間に接続されている。このＰチャネルトランジスタＰ１のゲートは差動増幅器ＤＡ２の出力端に接続されている。差動増幅器ＤＡ２の他方入力端には、図示せぬバンドギャップリファレンス回路により発生された基準電圧Ｖｒｅｆが供給されている。
【００５２】
差動増幅器ＤＡ１の一方入力端には、基準電圧Ｖｒｅｆが供給され、他方入力端は抵抗ＲＬとＲＢの接続ノードに接続されている。差動増幅器ＤＡ１の出力端は、制御部７２ａに接続されている。
【００５３】
リミッタ回路７２ｄは、演算回路７−１から供給される信号に応じて書き込み電圧Ｖｐｇｍを制御する。すなわち、演算回路７−１から供給される信号ＲＶ０〜ＲＶ５は、トランジスタＮ０１〜Ｎ５１のゲートに供給され、信号ＲＶ０〜ＲＶ５の反転信号ＲＶ０ｎ〜ＲＶ５ｎは、トランジスタＮ０２〜５２のゲートに供給される。リミッタ回路７２ｄの出力電圧は、差動増幅器ＤＡ１により基準電圧Ｖｒｅｆと比較される。差動増幅器ＤＡ１の出力信号は、制御部７２ａに供給される。
【００５４】
書き込み電圧Ｖｐｇｍ、書き込み電圧Ｖｐｇｍの最小値Ｖｐｇｍ＿ｍｉｎ、ステップ電圧ＤＶｐｇｍの関係は、次式で表される。
【００５５】
Ｖｐｇｍ＝Ｖｐｇｍ＿ｍｉｎ＋ＤＶｐｇｍ×（３２ＲＶ５＋１６ＲＶ４＋８ＲＶ３＋
４ＲＶ２＋２ＲＶ１＋ＲＶ０）
Ｖｐｇｍ＿ｍｉｎ＝Ｖｒｅｆ×（１＋ＲＬ／ＲＢ）
ＤＶｐｇｍ＝Ｖｒｅｆ×ＲＬ／（Ｒ＋ＲＤ）／６４
したがって、最小Ｖｐｇｍとして０．３Ｖ、０．２５Ｖ、０．２Ｖを必要とする場合、上記抵抗値ＲＤを３個別々に用意し、これらを切り替えて使用する。
【００５６】
図７（ａ）（ｂ）は、メモリセルのデータとメモリセルの閾値電圧との関係を表している。図７（ａ）に示すように、消去動作を行なうとメモリセルのデータは“０”となる。第１ページの書き込みにおいて、メモリセルのデータはデータ“０”とデータ“２”になる。すなわち、書き込みデータが“１”である場合、データ“０”のままであり、書き込みデータが“０”である場合、データ“２”となる。第２ページの書き込み後、メモリセルのデータはデータ“０”、“１”、“２”、“３”となる。すなわち、第１ページの書き込みデータが“１”で、第２ページの書き込みデータが“１”である場合、メモリセルのデータは“０”のままであり、第１ページの書き込みデータが“１”で、第２ページの書き込みデータが“０”である場合、メモリセルのデータは“１”となる。第１ページの書き込みデータが“０”で、第２ページの書き込みデータが“０”である場合、メモリセルのデータは“２”となり、第１ページの書き込みデータが“０”で、第２ページの書き込みデータが“１”である場合、メモリセルのデータは“３”となる。本実施形態において、メモリセルのデータは閾値電圧の低い方から高い方へと、定義されている。
【００５７】
図８は、本実施形態における書き込み順序を概略的に示している。図８は説明を簡略化するため、１つのＮＡＮＤセルが４つのメモリセルにより構成されている場合を示している。図８に示すように、ブロック内において、ソース線に近いメモリセルからページ毎に書き込み動作が行なわれる。すなわち、
（１）メモリセル１の第１ページが書き込まれる。
【００５８】
（２）メモリセル１のワード線方向に隣接するメモリセル２の第１ページが書き込まれる。
【００５９】
（３）メモリセル１の第２ページが書き込まれる。
【００６０】
（４）メモリセル２の第２ページが書き込まれる。
【００６１】
（５）メモリセル１のビット線方向に隣接するメモリセル３の第１ページが書き込まれる。
【００６２】
（６）メモリセル３のワード線方向に隣接するメモリセル４の第１ページが書き込まれる。
【００６３】
（７）メモリセル３の第２ページが書き込まれる。
【００６４】
（８）メモリセル４の第２ページが書き込まれる。
【００６５】
以下同様にして順次書き込まれる。
【００６６】
図９は、第１ページのプログラムシーケンスを示し、図１０は、第２ページのプログラムシーケンスを示している。
【００６７】
プログラム（書き込み）動作は、まずアドレスを指定し、図２に示す２ページが選択する。
【００６８】
本メモリは、この２ページのうち、第１ページ、第２ページの順でしか、プログラム動作はできない。したがって、初めにアドレスで第１ページを選択する。
【００６９】
図９に示す第１ページプログラムにおいて、先ず、書き込むべきデータを外部より入力し、全てのデータ記憶回路内のＳＤＣに記憶する（Ｓ１１）。書き込みコマンドが入力されると、全てのデータ記憶回路内のＳＤＣのデータがＰＤＣに転送される（Ｓ１２）。外部よりデータ“１”（書き込みを行なわない）が入力された場合、図４に示すデータ記憶回路のＰＤＣのノードＮ１ａはハイレベルとなり、データ“０”（書き込みを行なう）が入力された場合、ローレベルとなる。以後、ＰＤＣのデータは、ノードＮ１ａの電位、ＳＤＣのデータはノードＮ２ａの電位とする。
【００７０】
この後、制御信号及び制御電圧発生回路７の後述するポンプ回路により、書き込み電圧Ｖｐｇｍをある特定の電圧に昇圧している間に、演算回路７−１により、初期Ｖｐｇｍが計算される（Ｓ１３）。この計算については後述する。
【００７１】
（プログラム動作）（Ｓ１４）
図４に示す信号ＢＬＣ１、及び信号ＢＬＣＬＡＭＰをＶｄｄ＋Ｖｔｈ（Ｎチャネルトランジスタの閾値電圧）とすると、トランジスタ６１ｈ、６１ｔがオンとされる。このため、ＰＤＣにデータ“１”（書き込みを行なわない）が記憶されている時、ビット線がＶｄｄとなり、データ“０”（書き込みを行なう）が記憶されている時は、ビット線がＶｓｓとなる。また、選択されたワード線に接続され、非選択ページの（ビット線が非選択である）セルは書き込みが行なわれてはならない。このため、これらのセルに接続されているビット線にも電圧Ｖｄｄが供給される。
【００７２】
次に、非選択ブロックの選択ゲートをオフとすることにより、非選択ブロックのワード線はフローティング状態、選択ゲートはＶｓｓとなる。
【００７３】
選択ブロックの図示せぬローデコーダの転送ゲートをオンとすることにより、選択ブロックのセレクト線ＳＧＤにＶｄｄ（又はＶｄｄより若干低い電位）、選択ブロックのセレクト線ＳＧＳはＶｓｓ、選択ワード線にＶｐｇｍ（２０Ｖ）、非選択ワード線にＶｐａｓｓ（１０Ｖ）を印加すると、ビット線がＶｓｓとなっている場合、セルのチャネルがＶｓｓ、ワード線がＶｐｇｍとなるので書き込みが行なわれる。一方、ビット線がＶｄｄになっている場合、セルのチャネルがＶｓｓでなくＶｐｇｍを上げることにより、カップリングでチャネルがブートされる。このため、浮遊ゲートとチャネル間の電位差が大きくならないため書き込みが行われない。
【００７４】
図８に示す順序で書き込みを行うと、ソース線から離れるに従い、書き込まれたセルの数が多くなる。このため、チャネルがブートされにくくなり誤書き込みされてしまう問題がある。これを解決するため、図１１（ａ）に示すＳＢ（Self Boost）書き込み方式に替えて、図１１（ｂ）に示すＲＬＳＢ（Revised Local Self Boost）書き込み方式や、図１１（ｃ）に示すＲＥＡＳＢ（Revised Erased Area Self Boost）書き込み方式に切り替える。ＲＬＳＢ書き込み方式は、選択ワード線の隣、又は選択ワード線から２つ離れたワード線をＶｓｓ、選択ワード線をＶｐｇｍ、その他のワード線をＶｐａｓｓ又は中間電位にする。ＲＥＡＳＢ書き込み方式は、ソース側の選択ワード線の隣、又は選択ワード線から２つ離れたワード線をＶｓｓ、選択ワード線をＶｐｇｍ、その他のワード線をＶｐａｓｓ又は中間電位にする。このように選択ワード線の隣、又は選択ワード線から２つ離れたワード線を接地電位Ｖｓｓとしてオフさせ、選択セル直下のチャネルの電位が昇圧され易くする。
【００７５】
第１ページの書き込みにより、メモリセルのデータはデータ“０”又はデータ“２”になる。第２ページの書き込み後、メモリセルのデータはデータ“０”、“１”、“２”、“３”のいずれかとなる。
【００７６】
（プログラムベリファイリード）（Ｓ１５）
プログラムベリファイリードは、リード動作と同じである。しかし、本来のリード電位より若干高い電位“ａ’”、“ｂ’”、“ｃ’”、“ｄ’”でリードする。第１ページのベリファイリードの場合、電位“ａ’”でベリファイリードを行う。メモリセルのデータがベリファイリード電位“ａ’”に達していると、ＰＤＣはデータ“１”となり、書き込みが行なわれなくなる。
【００７７】
一方、メモリセルの閾値電圧がベリファイリード電位“ａ’”に達していない場合、ＰＤＣはデータ“０”となり、次回のプログラムで書き込みが行なわれる。
【００７８】
（Ｖｐｇｍステップアップ）（Ｓ１６、１７）
全てのデータ記憶回路のＰＤＣがハイレベルとなるまで、プログラム動作とベリファイ動作が繰り返される（Ｓ１６）。このとき、プログラム電圧Ｖｐｇｍを僅かずつ増加させて書き込みを行う（Ｓ１７）。
【００７９】
次に、図１０に示す第２ページの書き込み動作において、先ず、書き込みデータを外部より入力し、全てのデータ記憶回路１０内のＳＤＣに記憶する（Ｓ２１）。この後、第１ページの書き込みにおいて、書き込まれたデータを確認するため、読み出しレベル“ａ”（例えば負電圧）をワード線に設定して、メモリセルのデータが読み出される（Ｓ２２）。この読み出し動作は、前述した通りである。セルの閾値電圧が、ワード線の電位“ａ”より低い場合、ＰＤＣはローレベル、高い場合、ＰＤＣはハイレベルとなる。
【００８０】
この後、ポンプ回路７２ｃにおいて、書き込み電圧Ｖｐｇｍを特定の電圧に昇圧している間に、演算回路７−１により書き込み電圧Ｖｐｇｍが計算される（Ｓ２３）。
【００８１】
次いで、データキャッシュが設定される（Ｓ２４）。すなわち、第２ページの書き込みは、図７（ｂ）に示すように行なわれる。
【００８２】
第１ページの書き込みにおいて、データ“１”の場合で、第２ページの書き込みにおいて、データ“１”の場合、第２ページ書き込みが行なわれない。
【００８３】
第１ページの書き込みにおいて、データ“１”の場合で、第２ページの書き込みにおいて、データ“０”の場合、第２ページ書き込みにより、メモリセルのデータが“１”に設定される。
【００８４】
第１ページの書き込みにおいて、データ“０”の場合で、第２ページの書き込みにおいて、データ“０”の場合、第２ページ書き込みにより、メモリセルのデータが“２”に設定される。
【００８５】
第１ページの書き込みにおいて、データ“０”の場合で、第２ページの書き込みにおいて、データ“１”の場合、第２ページ書き込みにより、セルのデータが“３”に設定される。
【００８６】
この動作を行なうため、データキャッシュが設定される。
【００８７】
すなわち、メモリセルのデータを“０”にする場合（第１ページにおいてデータ“１”、第２ページはデータ“１”）、ＰＤＣはハイレベル、ＤＤＣはローレベル、ＳＤＣはハイレベルに設定される。
【００８８】
メモリセルのデータを“１”にする場合（第１ページにおいてデータ“１”、第２ページはデータ“０”）、ＰＤＣはローレベル、ＤＤＣはハイレベル、ＳＤＣはハイレベルに設定される。
【００８９】
メモリセルのデータを“２”にする場合（第１ページにおいてデータ“０”、第２ページはデータ“０”）、ＰＤＣはローレベル、ＤＤＣはハイレベル、ＳＤＣはローレベルに設定される。
【００９０】
メモリセルのデータを“３”にする場合（第１ページではデータ“０”、第２ページはデータ“１”）、ＰＤＣはローレベル、ＤＤＣはローレベル、ＳＤＣはローレベルに設定される。
【００９１】
ＰＤＣ，ＤＤＣ，ＳＤＣの各データは、信号ＢＬＣ１，ＢＬＣ２，ＤＴＧ，ＲＥＧ、ＶＲＥＧを所定の順序で供給し、ＰＤＣ，ＤＤＣ，ＳＤＣ，ＴＤＣのデータを転送することにより設定される。尚、具体的な動作については省略する。
【００９２】
（プログラム動作）（Ｓ２５）
プログラム動作は、第１ページのプログラム動作と全く同じである。ＰＤＣにデータ“１”が記憶されている場合、書き込みが行なわれず、データ“０”が記憶されている場合、書き込みが行なわれる。
【００９３】
（ベリファイ動作）（Ｓ２６，Ｓ２７，Ｓ２８）
プログラムベリファイリードは、リード動作と同じである。しかし、ベリファイレベル“ｂ’”、“ｃ’”、“ｄ’”は、リードレベルにマージンが付加され、リードレベルより若干高いレベルに設定されている。このベリファイレベル“ｂ’”、“ｃ’”、“ｄ’”を用いてベリファイリードを行う。
【００９４】
ベリファイ動作は、例えばベリファイレベル“ｂ’”、“ｃ’”、“ｄ’”の順に実行される。
【００９５】
すなわち、先ず、ワード線にベリファイレベル“ｂ’”が設定され、メモリセルの閾値電圧がベリファイレベル“ｂ’”に達しているかどうか検証される（Ｓ２６）。この結果、メモリセルの閾値電圧がベリファイレベルに達している場合、ＰＤＣがハイレベルとなり、書き込みが行なわれなくなる。一方、ベリファイリードレベルに達していない場合、ＰＤＣがローレベルとなり、次回のプログラムで書き込みが行なわれる。
【００９６】
この後、ワード線にベリファイレベル“ｃ’”が設定され、メモリセルの閾値電圧がベリファイレベル“ｃ’”に達しているかどうか検証される（Ｓ２７）。この結果、メモリセルの閾値電圧がベリファイレベルに達している場合、ＰＤＣがハイレベルとなり、書き込みが行なわれなくなる。一方、ベリファイリードレベルに達していない場合、ＰＤＣがローレベルとなり、次回のプログラムで書き込みが行なわれる。
【００９７】
次いで、ワード線にベリファイレベル“ｄ’”が設定され、メモリセルの閾値電圧がベリファイレベル“ｄ’”に達しているかどうか検証される（Ｓ２８）。この結果、メモリセルの閾値電圧がベリファイレベルに達している場合、ＰＤＣがハイレベルとなり、書き込みが行なわれなくなる。一方、ベリファイリードレベルに達していない場合、ＰＤＣがローレベルとなり、次回のプログラムで書き込みが行なわれる。
【００９８】
このようにして、全てのデータ記憶回路１０のＰＤＣがハイレベルになるまで、Ｖｐｇｍをステップ電圧ＤＶｐｇｍ分増加して、プログラム動作とベリファイ動作が繰り返される（Ｓ２９，Ｓ３０）。
【００９９】
上記ステップ電圧ＤＶｐｇｍは、次のようになる。
【０１００】
（ＤＶｐｇｍ電圧値）
図８に示すように、奇数番目のビット線ＢＬｏのセルは、偶数番目のビット線ＢＬｅのセルの後に書かれる。このため、図７（ａ）（ｂ）に示す閾値分布幅はＶｐｇｍが同じであると狭くなる。しかし、分布幅は同じでよいため、奇数番目側のＤＶｐｇｍを偶数番目側のＤＶｐｇｍより大きくすることにより、高速な書き込みが可能である。
【０１０１】
また、図７（ａ）（ｂ）に示すように、第１ページ書き込み後の閾値分布幅は、第２ページ書き込み後の閾値分布幅より広くてよいため、第１ページのＤＶｐｇｍは、第２ページのＤＶｐｇｍより大きくてよい。
【０１０２】
書き込み開始時における初期Ｖｐｇｍは、第１ページにおいて電位“ａ’”に書き込むが、第２ページにおいて、先ず、電位“ｂ’”に書き込む。電位“ｂ’”は電位“ａ’”より低いため、第２ページの書き込み開始時における初期Ｖｐｇｍは、第１ページより低い必要がある。
【０１０３】
また、図１１（ａ）に示すＳＢにおいて、書き込みセルの両隣のセルは、ワード線（ＷＬ４、ＷＬ６）の電位がＶｐａｓｓとされている。これに対して、図１１（ｃ）に示すＲＥＡＳＢは、書き込みセルの片側のセルのみしかワード線（図示せぬＷＬ８）の電位がＶｐａｓｓとなっていない。このため、相対的に浮遊ゲートの電圧が下がる。したがって、ＳＢからＲＥＡＳＢに切り替えたとき、浮遊ゲートの電圧低下分（約１Ｖ程度）をＶｐｇｍを加える。
【０１０４】
さらに、最近では、ＳＧＤ及びＳＧＳの隣のセル（ワード線ＷＬ０、ＷＬ３１に接続されたセル）、又はＳＧＤ及びＳＧＳから１つ飛ばした隣のセル（ワード線ＷＬ１、ＷＬ３０に接続されたセル）の書き込み特性が、加工上の原因により他のセルに比べて異なる。このため、これらのセルにデータを書き込むとき、書き込み開始時の初期Ｖｐｇｍを増加又は低下させる。したがって、第１ページ、第２ページの偶数ビット線、奇数ビット線にそれぞれ対応したステップ電圧ＤＶｐｇｍｅ、ＤＶｐｇｍｏ、初期Ｖｐｇｍの関係、ＳＢとＲＥＡＳＢの差電圧（ＳＢ−ＲＥＡＳＢ）、ＷＬ０，ＷＬ１，ＷＬ３０，ＷＬ３１の補正電圧は、例えば下記表１に示すようになる。
【０１０５】
（表１）
ＤＶｐｇｍｅ：ＤＶｐｇｍｏ：初期Ｖｐｇｍ  
第１ページ：  ０．９Ｖ  ：  １．２Ｖ  ：  １７Ｖ
第２ページ：  ０．４Ｖ  ：  ０．５Ｖ  ：  １６Ｖ
ＳＢ−ＥＡＳＢの差電圧  ：  １Ｖ  
ＷＬ０の補正電圧        ：  ０．８Ｖ
ＷＬ１の補正電圧        ：  ０．４Ｖ
ＷＬ３０の補正電圧      ：  −０．５Ｖ
ＷＬ３１の補正電圧      ：  −０．３Ｖ
リミッタ回路の最小ステップアップサイズを、０．３Ｖ、０．２５Ｖ、０．２Ｖとすると、ステップアップサイズは、
ＤＶｐｇｍｅ  ：  ＤＶｐｇｍｏ
第１ページ：  ０．３Ｖ×３  ：  ０．２Ｖ×４
第２ページ：  ０．２Ｖ×２  ：  ０．２５Ｖ×２
したがって、第１ページ、偶数ビット線、奇数ビット線、第２ページ、偶数ビット線、奇数ビット線の初期Ｖｐｇｍ＝１７Ｖと１６Ｖは、図１３、図１４、図１５より次のようになる。
【０１０６】
Ｖｐｇｍｅ             ：        Ｖｐｇｍｏ
第１ページ：  １７．１Ｖ（図１５、１８段目）：  １７．０Ｖ（図１３、２６段目）
第２ページ：  １６．０Ｖ（図１３、２１段目）：  １６．０Ｖ（図１４、１７段目）
また、ＳＢ−ＥＡＳＢの差電圧、ワード線ＷＬ０、ＷＬ１、ＷＬ３０、ＷＬ３１の補正値は、それぞれの最小ステップサイズの整数倍とならなくてはならない。このため、これら補正値の関係は次のようになる。
【０１０７】
（ＳＢ−ＥＡＳＢの差電圧）
奇数                    偶数
第１ｐａｇｅ    ０．９Ｖ（＋３段）    １．０Ｖ（＋５段）
第２ｐａｇｅ    １．０Ｖ（＋５段）    １．０Ｖ（＋４段）      
ＷＬ０              奇数                    偶数
第１ｐａｇｅ    ０．９Ｖ（＋３段）    ０．８Ｖ（＋４段）
第２ｐａｇｅ    ０．８Ｖ（＋４段）    ０．７５Ｖ（＋３段）    
ＷＬ１              奇数                    偶数
第１ｐａｇｅ    ０．３Ｖ（＋１段）    ０．４Ｖ（＋２段）
第２ｐａｇｅ    ０．４Ｖ（＋２段）    ０．５Ｖ（＋２段）    
ＷＬ３０            奇数                    偶数
第１ｐａｇｅ    −０．６Ｖ（−２段）    −０．４Ｖ（−２段）
第２ｐａｇｅ    −０．４Ｖ（−２段）    −０．５Ｖ（−２段）    
ＷＬ３１            奇数                    偶数
第１ｐａｇｅ    −０．３Ｖ（−１段）    −０．４Ｖ（−２段）
第２ｐａｇｅ    −０．４Ｖ（−２段）    −０．２５Ｖ（−１段）  
これらの電圧を例えば６ビット乃至８ビットのデータとしてメモリセルアレイ１のＲＯＭ部１−１に記憶する必要がある。しかし、これらデータの数は、後に書き込んだ隣のセルの閾値電圧の変動により、先に書き込んだ閾値電圧がＦＧ−ＦＧ（浮遊ゲート）間のカップリングにより変化してしまう問題を抑え、狭い閾値分布を得るために、複数回の書き込み動作によりメモリセルに書き込みを行う場合、この書き込み回数と同じだけ記憶すべき初期値のデータが増加する。
【０１０８】
例えば２ビットを記憶するメモリの場合、ページ数は２ページであるため、２回の書き込み動作により書き込むことができる。しかし、４ビットを記憶するメモリの場合、ページ数は４ページであるため、２回、３回、４回の書き込み動作により書き込むことができる。
【０１０９】
また、これらのデータを得るために、出荷前のダイソートテスト時にトリミング作業をする必要がある。しかし、この作業は煩雑である。すなわち、例えば初期Ｖｐｇｍはダイソートテストにおいて、先ず、低い電圧値に設定され、規定の書き込みループで書き込みが完了するか検証される。未完了の場合、初期Ｖｐｇｍを少しずつ上げ、規定の書き込みループで書き込みが完了したときのＶｐｇｍを初期Ｖｐｇｍとする。初期Ｖｐｇｍが上記のようにある場合、各初期Ｖｐｇｍ毎にこのようなトリミング作業をする必要があるため、トリミングに長時間を必要とする。
【０１１０】
上記例では、第１ページ、偶数ビット線、第１ページ、奇数ビット線、第２ページ、偶数ビット線、第２ページ、奇数ビット線の４つの初期Ｖｐｇｍについてそれぞれトリミングする必要がある。
【０１１１】
そこで、本実施形態は、表１に示す奇数番目／偶数番目／第１ページ／第２ページの内、どれか１つのＶｐｇｍを代表としてトリミングし、この１つのＶｐｇｍの値をＲＯＭ部１−１に記憶する。この場合、例えば第２ページ、奇数番目のＶｐｇｍ＝１６Ｖを代表値とし、この代表値をトリミングしてＲＯＭ部１−１に記憶する。この場合、第２ページ、奇数番目はステップアップサイズが０．５Ｖであるため、最小ステップサイズは０．２５Ｖ（ステップサイズ０．５Ｖ＝０．２５Ｖ×２）となる。したがって、図１４に示す２５ｍＶのテーブルにおいて、１６Ｖは１７段目のデータに相当する。
【０１１２】
さらに、ＳＢ−ＥＡＳＢの差電圧＝１Ｖ（この場合、Ｖｐｇｍ＝１６ＶとＶｐｇｍ＝１７Ｖとの差に相当する）、
ＷＬ０の補正値＝０．８Ｖ、
ＷＬ１の補正値＝０．４Ｖ、
ＷＬ３０の補正値＝−０．５Ｖ、
ＷＬ３１の補正値＝−０．３Ｖ
のデータが５０ｍＶ毎のデータとしてそれぞれ１つのみがＲＯＭ部１−１に記憶される。ＳＢ−ＥＡＳＢの差電圧、ＷＬ０，１，３０，３１の補正値は、例えばトリミングされたＶｐｇｍから予め計算して求められる。すなわち、Ｖｐｇｍのデータを５０ｍＶ毎のデータに変換し、このデータに基づきＳＢ−ＥＡＳＢの差電圧、ＷＬ０，１，３０，３１の補正値が計算される。
【０１１３】
上記ＲＯＭ１−１に記憶された初期Ｖｐｇｍ、及び補正値等を用いて、書き込み対象ワード線のＶｐｇｍが計算される。
【０１１４】
図１２は、書き込み対象ワード線のＶｐｇｍの計算方法を示すものであり、第２ページ、奇数番目の初期Ｖｐｇｍから第１ページの奇数ページのＶｐｇｍを生成する場合の例を示している。
【０１１５】
前述した通り、書き込み電圧の最小ステップ電圧ＤＶｐｇｍは、０．４Ｖ、０．５Ｖ、０．９Ｖ、１．２Ｖであり、これらＤＶｐｇｍの最大公約数は、０．０５Ｖ（＝５０ｍＶ）である。このため、ＲＯＭ部１−１に記憶された第２ページ偶数ページの初期Ｖｐｇｍ（＝１６Ｖ）のデータを５０ｍＶ毎のデータに変換し、この変換されたデータに基づき、書き込み対象のワード線のＶｐｇｍが計算される。
【０１１６】
先ず、ＲＯＭ部１−１に記憶された第２ページ偶数ページの初期Ｖｐｇｍ（＝１６Ｖ）のデータが、図５に示す例えばラッチ回路７１ａにロードされる（Ｓ３１）。
【０１１７】
次に、初期Ｖｐｇｍが、５０ｍＶ毎のデータに変換される。すなわち、ラッチ回路７１ａのデータが５倍される（Ｓ３２）。
【０１１８】
２進数において、２ｎを乗算する場合、データをＭＳＢ側にｎビットシフトし、２ｎを除算する場合、データをＬＳＢ側にｎビットシフトすればよい。５倍の演算は、例えば２２＋２０である。このため、先ず、ラッチ回路７１ａのデータをセレクタ回路７１ｄにより、ＭＳＢ側に２ビットシフトして出力し、このデータを加算回路７１ｆを介してレジスタ７１ｇに保持させる。次に、セレクタ７１ｅによりシフトせずにレジスタ７１ｇに保持されたデータを加算回路７１ｆに供給するとともに、ラッチ回路７１ａのデータをセレクタ回路７１ｄによりシフトせずに加算回路７１ｆに供給する。この加算回路７１ｆにより加算されたデータはレジスタ７１ｇに保持される。このとき、セレクタ７１ｎは加算回路７１ｆの出力データを選択しているため、レジスタ７１ｉにもレジスタ７１ｇと同様のデータが保持されている。
【０１１９】
図１６は、Ｖｐｇｍを５０ｍＶ毎にデータに変換した例を示している。ＲＯＭ部１−１からラッチ回路７１ａにロードされた初期Ｖｐｇｍ＝１６Ｖのデータは、図１４に示す０．２５Ｖのステップにおいて、“０１００００”である。これらが変換され、図１４に示す２５ｍＶ毎のテーブルにおいて、１６．０Ｖのデータは、“００１０１００００”となる。
【０１２０】
この後、第１ページ奇数ページの初期Ｖｐｇｍ（＝１７Ｖ）と、第２ページ偶数ページの初期Ｖｐｇｍ（例えば１６Ｖ）との初期値の差電圧（＝１Ｖ）が、第２ページ偶数ページの初期Ｖｐｇｍに加算される（Ｓ３３）。すなわち、ＲＯＭ部１−１に記憶されたＳＢ−ＥＡＳＢの差電圧（＝１Ｖ）が読み出されてラッチ回路７１ｂに保持される。このラッチ回路７１ｂのデータは、セレクタ７１ｄにより選択されて加算回路７１ｆに供給される。これとともに、レジスタ７１ｇに保持されたデータがセレクタ７１ｅを介して加算回路７１ｆに供給される。加算回路７１ｆは、これらのデータを加算する。この加算結果は、レジスタ７１ｇ、７１ｉに保持される。この結果、レジスタには、図１６に示す５０ｍＶ毎のテーブルにおいて、１７．０Ｖ、“００１１００１００”となる。
【０１２１】
次に、選択されたワード線が例えばＷＬ３０であり、ＲＥＡＳＢ書き込み方式である場合、ラッチ回路７１ｂに保持されたＳＢ−ＥＡＳＢの差電圧（＝１Ｖ）と、フューズに記憶されているワード線ＷＬ３０の補正電圧（＝−０．３Ｖ）が、レジスタ７１ｇに記憶されたデータにさらに加えられる（Ｓ３４）。すなわち、ＲＯＭ部１−１からワード線ＷＬ３０の補正電圧が読み出され、ラッチ回路７１ｃに保持される。このラッチ回路７１ｂ、７１ｃに保持されたデータは、セレクタ回路７１ｄにより順次選択され、セレクタ回路７１ｅにより選択されたデータとともに加算回路７１ｆに供給される。この加算回路７１ｆにより加算されたデータはレジスタ７１ｇ、７１ｉに保持される。この結果、レジスタには、図１６に示す５０ｍＶ毎のテーブルにおいて、１７．７Ｖ、“００１１１００１０”となる。
【０１２２】
続いて、第１ページの奇数ページは、ステップ電圧ＤＶｐｇｍが０．９Ｖであるため、リミッタ回路７２ｄの仕様に合わせた０．３Ｖ毎の電圧のデータに変換される（Ｓ３５）。すなわち、レジスタ７１ｇに保持されたデータが６で割り算される。具体的には、レジスタ７１ｇ、セレクタ回路７１ｅ、加算回路７１ｆを用いて、例えば
１／６＝１／２３＋１／２５＋１／２７＋１／２９＋１／２１１
の演算が行なわれる。この結果、レジスタには、図１５に示す０．３Ｖ毎のテーブルにおいて、１７．７Ｖ、“０１００１１”となる。
【０１２３】
この後、上記演算されたデータがリミッタ回路７―５のトランジスタＮ０１〜Ｎ５１、Ｎ０２〜Ｎ５２に供給される（Ｓ３６）。リミッタ回路７２ｄは、このデータに従って、ポンプ回路７２ｃから出力されるＶｐｇｍを制御する。
【０１２４】
上記第１の実施形態によれば、初期Ｖｐｇｍとしての１つのＶｐｇｍのデータと、書き込み方式（ＳＢ−ＥＡＳＢ）の差電圧やワード線毎の補正値のデータを１組だけＲＯＭ１−１に記憶し、この記憶したデータに基づきページ毎の書き込み電圧を生成している。このため、ページ毎にステップ電圧ＤＶｐｇｍが異なる場合においても、複数の初期ＶｐｇｍをＲＯＭ１−１に記憶する必要がない。したがって、製品出荷前のテスト時において、１つのＶｐｇｍのみをトリミングすればよいため、トリミングに要する時間を大幅に短縮することができる。
【０１２５】
さらに、書き込み方式の差電圧や、ワード線毎の補正電圧のデータを、第１、第２ページ毎、偶数、奇数毎に記憶する必要がないため、ＲＯＭ部１−１の記憶容量を低減できる利点を有している。
【０１２６】
尚、第１の実施形態において、リミッタ回路の制御データは、図６に示す回路により生成したが、例えばソフトウェア処理により生成することも可能である。
【０１２７】
（第２の実施形態）
図７（ｂ）に示すワード線の電位“ｄ”と“ｃ”の差は、“ｃ”と“ｂ”の差より大きく設定する必要がある。これは中性閾値電圧（浮遊ゲート内に電子が存在しない状態における閾値電圧）が電位“ｂ”と“ｃ”の間にあり、中性閾値電圧から離れるに従って、データリテンションが悪くなるため、マージンを確保するためである。したがって、第１の実施形態に示すように、ステップ電圧ＤＶｐｇｍが一定である場合、閾値電圧が高くなるに従って、書き込みスピードが遅くなるという問題がある。
【０１２８】
そこで、第２の実施形態は、図１７に示すように、書き込み電圧Ｖｐｇｍの値が増加するに従い、基準電圧Ｖｒｅｆを徐々に増加させる。このようにすると、書き込み電圧Ｖｐｇｍの増加に従ってステップ電圧ＤＶｐｇｍを大きくすることができる。
【０１２９】
図１８は、第２の実施形態を示すものであり、基準電圧可変回路７２ｅを含むＶｐｇｍ発生部の一例を示している。図１８において、図６と同一部分には同一符号を付す。
【０１３０】
図１８において、図６と異なるのは、差動増幅器ＤＡ１に供給される基準電圧Ｖｒｅｆが可変される点である。すなわち、基準電圧可変回路７２ｅにおいて、図示せぬバンドギャップリファレンス回路により生成された基準電圧Ｖｒｅｆは、差動増幅器ＤＡ３の一方入力端に供給される。差動増幅器ＤＡ３の出力端はＰチャネルトランジスタＰ２のゲートに接続されている。このトランジスタＰ２の電流通路の一端は、電源Ｖｄｄが供給される端子に接続され、他端は、差動増幅器ＤＦ２の一方入力端に接続されるとともに、可変抵抗Ｒ２の一端に接続されている。この可変抵抗Ｒ２の他端は、差動増幅器ＤＡ３の他方入力端に接続されるとともに、抵抗Ｒ１を介して接地されている。
【０１３１】
上記構成において、可変抵抗Ｒ２の抵抗値を書き込み電圧Ｖｐｇｍの増加に従って増加させることにより、基準電圧Ｖｒｅｆを増加することができる。したがって、ステップ電圧ＤＶｐｇｍを基準電圧Ｖｒｅｆの増加に伴って増加させることができる。
【０１３２】
このように、第２の実施形態によれば、書き込み電圧Ｖｐｇｍが高くなり、高い閾値電圧を書き込む時のステップ電圧を大きくすることができるため、書き込みスピードを高速化することができる。
【０１３３】
尚、上記各実施形態は、多値データを記憶する半導体記憶装置に本発明を適用した場合について説明した。しかし、これに限らず、２値データを記憶する半導体記憶装置に本発明を適用することも可能である。
【０１３４】
その他、本発明の要旨を変えない範囲において変形実施可能なことは勿論である。
【符号の説明】
【０１３５】
１…メモリセルアレイ、１−１…ＲＯＭ部、７…制御信号及び制御電圧発生回路、７−１…演算回路、７−２…Ｖｐｇｍ発生部、７２ｃ…ポンプ回路、７２ｄ…リミッタ回路、７２ｅ…基準電圧可変回路。
【図１】
2011165312.tif 000003
【図２】
2011165312.tif 000004
【図３】
2011165312.tif 000005
【図４】
2011165312.tif 000006
【図５】
2011165312.tif 000007
【図６】
2011165312.tif 000008
【図７】
2011165312.tif 000009
【図８】
2011165312.tif 000010
【図９】
2011165312.tif 000011
【図１０】
2011165312.tif 000012
【図１１】
2011165312.tif 000013
【図１２】
2011165312.tif 000014
【図１３】
2011165312.tif 000015
【図１４】
2011165312.tif 000016
【図１５】
2011165312.tif 000017
【図１６】
2011165312.tif 000018
【図１７】
2011165312.tif 000019
【図１８】
2011165312.tif 000020