(57)【特許請求の範囲】
【請求項１】
電気的に書き換え可能な不揮発性の多値メモリセルと、
書き込みデータの論理に応じて前記各メモリセルの閾値電圧を変更するために、複数のプログラム電圧を生成するプログラム電圧生成回路と、
前記メモリセルの閾値電圧を判定するための、前記メモリセルの閾値電圧分布の測定結果から算出された複数の参照電圧を示す複数の参照値を個別に記憶するとともに、該参照値の少なくとも一つを書き換え可能な第１記憶部と、
前記メモリセルからのデータの読み出し時に、前記第１記憶部に記憶された前記複数の参照値のいずれかに応じて前記参照電圧を生成する参照電圧生成回路とを備えていることを特徴とする不揮発性多値半導体メモリ。
【請求項２】
電気的書き換え可能な不揮発性の多値メモリセルと、
書き込みデータの論理に応じて前記各メモリセルの閾値電圧を変更するために、複数のプログラム電圧を生成するプログラム電圧生成回路と、
前記メモリセルの閾値電圧の分布を検証するための、前記メモリセルの閾値電圧分布の測定結果から算出された複数の検証電圧を示す複数の検証値を個別に記憶するとともに、該検証値の少なくとも一つを書き換え可能な第２記憶部と、
前記メモリセルへのデータの書き込み時に、前記第２記憶部に記憶された前記複数の検証値のいずれかに応じて前記検証電圧を生成する検証電圧生成回路とを備えていることを特徴とする不揮発性多値半導体メモリ。
【請求項３】
請求項１または請求項２記載の不揮発性多値半導体メモリにおいて、
直列に接続された複数の前記メモリセルを含む複数のメモリセル列と、
前記メモリセルのアクセス時に、メモリセル列の非選択のメモリセルに印加する導通電圧を生成する導通電圧生成回路と、
前記メモリセルの閾値電圧分布の測定結果から算出された前記導通電圧を導通値として記憶するとともに、書き換え可能な第３記憶部を備え、
前記導通電圧生成回路は、前記第３記憶部に記憶された前記導通値に応じて前記導通電圧を生成することを特徴とする不揮発性多値半導体メモリ。
【請求項４】
電気的書き換え可能な不揮発性の多値メモリセルと、
書き込みデータの論理に応じて前記各メモリセルの閾値電圧を変更するために、複数のプログラム電圧を生成するプログラム電圧生成回路と、
前記メモリセルからのデータの読み出し時に、前記メモリセルの閾値電圧を判定するための複数の参照電圧を生成する参照電圧生成回路と、
前記メモリセルへのデータの書き込み時に、前記メモリセルの閾値電圧が該データに対応する値を超えたことを検証するための複数の検証電圧を生成する検証電圧生成回路と、
試験モード時に動作し、前記メモリセルを前記書き込みデータの論理に応じてそれぞれプログラムし、プログラムされたメモリセルの閾値電圧の分布の測定結果に基づいて前記参照電圧の少なくとも一つおよび前記検証電圧の少なくとも一つを算出するプログラム試験回路と、
前記プログラム試験回路が算出した参照電圧を含む前記複数の参照電圧を示す複数の参照値を個別に記憶するとともに、該参照値の少なくとも一つを書き換え可能な第１記憶部とを備え、
前記参照電圧生成回路は、前記参照電圧を、前記第１記憶部に記憶された前記複数の参照値のいずれかに応じて生成し、
前記検証電圧生成回路は、前記検証電圧の少なくとも一つを、前記プログラム試験回路が算出した値に応じて生成することを特徴とする不揮発性多値半導体メモリ。
【請求項５】
請求項４記載の不揮発性多値半導体メモリにおいて、
前記プログラム試験回路が算出した検出電圧を含む前記複数の検証電圧を示す複数の検証値を個別に記憶するとともに、該検証値の少なくとも一つを書き換え可能な第２記憶部を備え、
前記検証電圧生成回路は、前記検証電圧を、前記第２記憶部に記憶された前記複数の検証値のいずれかに応じて生成することを特徴とする不揮発性多値半導体メモリ。
【請求項６】
請求項４記載の不揮発性多値半導体メモリにおいて、
前記参照電圧のうち最も低い参照電圧および前記検証電圧のうち最も低い検証電圧は、固定値であり、
前記プログラム試験回路は、前記最も低い参照電圧を除く参照電圧の少なくとも一つを算出するとともに、前記最も低い検証電圧を除く検証電圧の少なくとも一つを算出することを特徴とする不揮発性多値半導体メモリ。
【請求項７】
請求項６記載の不揮発性多値半導体メモリにおいて、
前記プログラム試験回路は、前記検証電圧の一つを用いて前記メモリセルをプログラムする動作、プログラムされた複数の前記メモリセルの閾値電圧の最大値を測定する動作、測定された閾値電圧の最大値に第１マージンを加えて前記参照電圧の一つを算出する動作、および算出された参照電圧に第２マージンを加えて次の前記検証電圧の一つを算出する動作を繰り返して、前記参照電圧および前記検証電圧を算出することを特徴とする不揮発性多値半導体メモリ。
【請求項８】
請求項４記載の不揮発性多値半導体メモリにおいて、
前記参照電圧のうち最も低い参照電圧は、固定値であり、
前記プログラム試験回路は、前記最も低い参照電圧を除く参照電圧の少なくとも一つを算出するとともに、前記検証電圧の少なくとも一つを算出することを特徴とする不揮発性多値半導体メモリ。
【請求項９】
請求項８記載の不揮発性多値半導体メモリにおいて、
前記プログラム試験回路は、前記参照電圧の一つに第２マージンを加えて前記検証電圧の一つを算出する動作、算出された検証電圧を用いてプログラムされた複数の前記メモリセルの閾値電圧の最大値を測定する動作、および測定された閾値電圧の最大値に第１マージンを加えて次の前記参照電圧の一つを算出する動作を繰り返して、前記参照電圧および前記検証電圧を算出することを特徴とする不揮発性多値半導体メモリ。
【請求項１０】
請求項４記載の不揮発性多値半導体メモリにおいて、
直列に接続された複数の前記メモリセルを含む複数のメモリセル列と、
前記メモリセルのアクセス時に、メモリセル列の非選択のメモリセルに印加する導通電圧を生成する導通電圧生成回路と、
前記メモリセルの閾値電圧分布の測定結果から算出された前記導通電圧を導通値として記憶するとともに、書き換え可能な第３記憶部を備え、
前記導通電圧生成回路は、前記第３記憶部に記憶された前記導通値に応じて前記導通電圧を生成することを特徴とする不揮発性多値半導体メモリ。
【請求項１１】
請求項１０記載の不揮発性多値半導体メモリにおいて、
前記プログラム試験回路は、前記導通電圧を、前記論理値にそれぞれ対応する閾値電圧の複数の分布うち最も閾値電圧の高い分布の最大値に第３マージンを加えることで算出し、算出した前記導通電圧を前記第３記憶部に記憶するために前記導通値として出力することを特徴とする不揮発性多値半導体メモリ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、不揮発性多値半導体メモリに関し、特に、読み出し動作および書き込み動作を確実に実行するための技術に関する。
【０００２】
【従来の技術】
フラッシュメモリ等の不揮発性半導体メモリは、メモリセルのフローティングゲート（またはトラップゲート）に電子を注入してメモリセルの閾値電圧を変えることで、データを記憶する。メモリセルの閾値電圧は、電子がフローティングゲート中に存在すると高くなり、電子がフローティングゲート中に存在しないと低くなる。
近時、記憶容量を大きくするため、１つのメモリセルに複数ビットのデータを記憶するフラッシュメモリが開発されている。
【０００３】
図１４は、４値NAND型フラッシュメモリにおけるメモリセルの閾値電圧の分布を示している。各メモリセルの閾値電圧は、プログラムされたデータに応じて、領域L0、L1、L2、L3のいずれかに分布する。領域L0、L1、L2、L3は、２ビットデータの"11"、"10"、"01"、"00"にそれぞれ対応している。領域L0のメモリセルは、閾値電圧が負であり、ディプレッショントランジスタとして動作する。領域L1-L3のメモリセルは、閾値電圧が正であり、エンハンスメントトランジスタとして動作する。
【０００４】
データの書き込み（プログラム）は、各メモリセルについて、閾値電圧が検証電圧VV（VV1，VV2、VV3）を超えるまで行われる。例えば、メモリセルに論理"10"を書き込む場合、そのメモリセルの閾値電圧が検証電圧VV1を超えるまで、プログラム動作が繰り返される。そして、各メモリセルの閾値電圧は、領域L0-L3のいずれかに設定される。
【０００５】
データの読み出しは、メモリセルの閾値電圧を参照電圧VR（VR1、VR2、VR3）と比較することで行われる。メモリセルの閾値電圧が参照電圧VR1より低いとき、メモリセルに保持されているデータは、"11"と判定される。メモリセルの閾値電圧が参照電圧VR1、VR2の間にあるとき、メモリセルに保持されているデータは、"10"と判定される。メモリセルの閾値電圧が参照電圧VR2、VR3の間にあるとき、メモリセルに保持されているデータは、"01"と判定される。メモリセルの閾値電圧が参照電圧VR3より高いとき、メモリセルに保持されているデータは、"00"と判定される。
【０００６】
参照電圧（導通電圧）VR4は、後述する非選択のメモリセルおよび選択トランジスタに与えられる。参照電圧VR4は、領域L3に対して十分余裕をもって設定される。
図１５は、４値NAND型フラッシュメモリのメモリセルアレイの概要を示している。
【０００７】
メモリセルアレイは、複数のブロックBLK（BLK0、BLK1、...）およびセンスアンプSAを有するページバッファで構成されている。各ブロックBLKは、複数のメモリセル列STRを有している。メモリセル列STRは、選択トランジスタの間に、複数のメモリセルを直列に接続して構成されている。メモリセルは、制御ゲートおよびフローティングゲートを有している。各メモリセルの制御ゲートは、ワード線WLにそれぞれ接続されている。選択トランジスタのゲートは、選択線SGにそれぞれ接続されている。メモリセル列STRの両端は、ビット線BLおよび制御線ARVSSにそれぞれ接続されている。
【０００８】
メモリセルの書き込み動作は、書き込むメモリセルに対応するワード線WLに高電圧を供給し、ビット線BLに低電圧を供給し、メモリセルのチャネルからフローティングゲートに電子を注入することで実行される。
メモリセルの読み出し動作は、読み出すメモリセル（例えば図中の丸印）に対応するワード線WL（例えばWL10、WL11）に参照電圧VR（VR1、VR2、VR3のいずれか）を供給し、それ以外のワード線WLおよび選択線SGに参照電圧VR4を供給し、制御線ARVSSに接地電圧を供給することで実行される。読み出すメモリセルの閾値電圧が参照電圧VRより高いときには、メモリセルにチャネルが形成されず、ビット線BLから制御線ARVSSに電流は流れない。読み出すメモリセルの閾値電圧が参照電圧VRより低いときには、メモリセルにチャネルが形成され、ビット線BLから制御線ARVSSに電流は流れる。センスアンプSAは、ビット線BLに流れる電流と参照電流とを比較し、閾値電圧が各参照電圧VRに対して大きいか否かを判定する。そして、メモリセルに記憶されているデータの論理値が判定される。
【０００９】
メモリセルの消去動作は、消去するメモリセルの制御ゲートに低電圧を供給し、メモリセルのウエル領域に高電圧を供給し、フローティングゲートに蓄積されている電子を放出することで行う。このとき、消去しないメモリセルの制御ゲートは、例えば、フローティング状態にされる。
【００１０】
【発明が解決しようとする課題】
一つの不揮発性メモリセルに多値データを記憶する場合、図１４に示したように、複数の参照電圧VR（VR1-VR3）を閾値電圧の分布（L0-L3）の間にそれぞれ位置させる必要がある。このため、多値メモリセルの読み出しマージンは、参照電圧が一つの２値メモリセルに比べて大幅に小さくなる。したがって、半導体製造プロセスの変動によりメモリセルの書き込み特性が変化し、分布L1-L3がシフトした場合、読み出しマージンが不足し、不良を引き起こす可能性がある。
【００１１】
図１６は、メモリセルの書き込み特性が変化した場合の閾値電圧の分布を示している。図中、破線で示した分布は、図１４に示した正常な分布である。
例えば、製造プロセスの変動により、書き込み電圧に対する閾値電圧の変化率が大きくなった場合、分布L1-L3の広がりは大きくなる。この結果、論理"10"に対応する閾値電圧の分布L1の最大値と参照電圧VR2との差（論理"10"の読み出しマージン）は、小さくなる。同様に、論理"01"に対応する閾値電圧の分布L2の最大値と参照電圧VR3との差（論理"01"の読み出しマージン）は、小さくなる。特に、図に示したように分布L2の広がりが大きくなった場合、論理"01"の読み出しマージンがほとんどなくなる可能性がある。
【００１２】
一般に、半導体製品は、ウエハ上でのチップの位置、製造ロット内でのウエハの位置、および製造ロットに依存してチップの特性がばらつく。このため、読み出しマージンの減少は、歩留の低下を招く。さらに、歩留の低下により製造コストが増加する。
本発明の別の目的は、不揮発性多値半導体メモリの動作マージンを確保し、製造歩留を向上することにある。
【００１３】
【課題を解決するための手段】
請求項１の不揮発性多値半導体メモリは、電気的に書き換え可能な不揮発性の多値メモリセルを有している。プログラム電圧生成回路は、書き込みデータの論理に応じて各メモリセルの閾値電圧を変更するために、複数のプログラム電圧を生成する。第１記憶部は、メモリセルの閾値電圧を判定するための複数の参照電圧にそれぞれ対応する複数の参照値を記憶する。第１記憶部に記憶された参照値の少なくとも一つは書き換え可能である。参照電圧生成回路は、メモリセルからのデータの読み出し時に、第１記憶部に記憶された参照値に応じて参照電圧をそれぞれ生成する。
【００１４】
参照電圧を生成するための参照値が書き換えできるため、予め評価されたメモリセルの特性に応じて、参照値を変更できる。すなわち、参照電圧を半導体メモリの製造後に変更できる。製造プロセスの変動により変化するメモリセルの特性に応じて参照電圧を変更できるため、メモリセルからのデータの読み出しマージンを向上できる。この結果、製造歩留を向上できる。
【００１５】
請求項２の不揮発性多値半導体メモリは、電気的に書き換え可能な不揮発性の多値メモリセルを有している。プログラム電圧生成回路は、書き込みデータの論理に応じて各メモリセルの閾値電圧を変更するために、複数のプログラム電圧を生成する。第２記憶部は、メモリセルの閾値電圧の分布を検証するための複数の検証電圧にそれぞれ対応する複数の検証値を記憶する。第２記憶部に記憶された検証値の少なくとも一つは書き換え可能である。検証電圧生成回路は、メモリセルへのデータの書き込み時に、第２記憶部に記憶された検証値に応じて検証電圧をそれぞれ生成する。
【００１６】
検証電圧を生成するための検証値が書き換えできるため、予め評価されたメモリセルの特性に応じて、検証値を変更できる。すなわち、検証電圧を半導体メモリの製造後に変更できる。製造プロセスの変動により変化するメモリセルの特性に応じて検証電圧を変更できるため、書き込みデータの論理値に対応する閾値電圧の分布を、メモリセルの書き込み特性に応じて最適に設定できる。この結果、メモリセルの読み出しマージンを向上でき、製造歩留を向上できる。
【００１７】
請求項４の不揮発性多値半導体メモリは、電気的に書き換え可能な不揮発性の多値メモリセルを有している。プログラム電圧生成回路は、書き込みデータの論理に応じて各メモリセルの閾値電圧を変更するために、複数のプログラム電圧を生成する。プログラム試験回路は、試験モード時に動作し、書き込みデータの論理に応じてメモリセルをそれぞれプログラムし、プログラムされたメモリセルの閾値電圧の分布に基づいて参照電圧の少なくとも一つおよび検証電圧の少なくとも一つを算出する。
【００１８】
参照電圧生成回路は、メモリセルからのデータの読み出し時に、メモリセルの閾値電圧を判定するための複数の参照電圧を生成する。参照電圧生成回路は、参照電圧の少なくとも一つを、プログラム試験回路が算出した値に応じて生成する。検証電圧生成回路は、メモリセルへのデータの書き込み時に、メモリセルの閾値電圧がデータに対応する値を超えたことを検証するための複数の検証電圧を生成する。検証電圧生成回路は、検証電圧の少なくとも一つを、プログラム試験回路が算出した値に応じて生成する。
【００１９】
このため、半導体メモリの製造後に、プログラム試験回路によりメモリセルの特性を直接評価し、チップ内部で参照電圧および検証電圧を設定できる。製造プロセスの変動により変化するメモリセルの特性に応じて参照電圧および検証電圧を設定できるため、メモリセルからのデータの読み出しマージンを向上できる。また、書き込みデータの論理値に対応する閾値電圧の分布を、メモリセルの書き込み特性に応じて最適に設定できる。この結果、製造歩留を向上できる。
【００２０】
さらに、半導体メモリが内蔵するプログラム試験回路により、参照電圧および検証電圧を設定できるため、試験時間を短縮でき、製造コストを削減できる。
また、第１記憶部は、参照電圧にそれぞれ対応する複数の参照値を記憶する。第１記憶部に記憶された参照値の少なくとも一つは書き換え可能である。参照電圧生成回路は、参照電圧を、第１記憶部に記憶された参照値に応じて生成する。
【００２１】
参照電圧を外部からも設定可能なため、例えば、半導体メモリの開発時、量産開始時に、メモリセルの特性を容易に評価できる。
請求項５の不揮発性多値半導体メモリでは、第２記憶部は、検証電圧にそれぞれ対応する複数の検証値を記憶する。第２記憶部に記憶された検証値の少なくとも一つは書き換え可能である。検証電圧生成回路は、検証電圧を、第２記憶部に記憶された検証値に応じて生成する。
【００２２】
検証電圧を外部からも設定可能なため、例えば、半導体メモリの開発時、量産開始時に、メモリセルの特性を容易に評価できる。
請求項６の不揮発性多値半導体メモリでは、参照電圧のうち最も低い参照電圧および検証電圧のうち最も低い検証電圧は、固定値である。プログラム試験回路は、最も低い参照電圧を除く参照電圧の少なくとも一つを算出するとともに、最も低い検証電圧を除く検証電圧の少なくとも一つを算出する。
【００２３】
製造プロセスの変動の影響が少ないメモリセルの特性に対応する参照電圧および検証電圧を固定することで、プログラム試験回路の論理を簡易にできる。この結果、半導体メモリのチップサイズを小さくでき、製造コストを削減できる。
例えば、最も低い参照電圧を接地電圧に固定することで、この参照電圧を容易に生成できる。
【００２４】
請求項７の不揮発性多値半導体メモリでは、プログラム試験回路は、固定電圧である最も低い検証電圧を用いてメモリセルをプログラムする。次に、プログラム試験回路は、プログラムされた複数のメモリセルの閾値電圧の最大値を測定し、測定された閾値電圧の最大値に第１マージンを加えて参照電圧の一つを算出する。次に、プログラム試験回路は、算出された参照電圧に第２マージンを加えて次の検証電圧の一つを算出する。この後、プログラム試験回路は、上記動作を繰り返して、参照電圧および検証電圧を算出する。
【００２５】
すなわち、プログラム試験回路は、固定電圧である検証電圧から次の参照電圧および検証電圧を順次算出する。このため、簡単な動作フローを繰り返すことで参照電圧および検証電圧を順次算出できる。この結果、プログラム試験回路の論理を簡易にでき、チップサイズを小さくできる。
例えば、メモリセルは、フローティングゲートを有している。第１マージンは、フローティングゲート中の電子数が増加するチャージゲイン特性に応じて設定される。第２マージンは、フローティングゲート中の電子数が減少するチャージロス特性に応じて設定される。
【００２６】
請求項８の不揮発性多値半導体メモリでは、参照電圧のうち最も低い参照電圧は、固定値である。プログラム試験回路は、最も低い参照電圧を除く参照電圧の少なくとも一つを算出するとともに、検証電圧の少なくとも一つを算出する。
製造プロセスの変動の影響が少ないメモリセルの特性に対応する参照電圧を固定することで、プログラム試験回路の論理を簡易にできる。この結果、半導体メモリのチップサイズを小さくでき、製造コストを削減できる。
【００２７】
例えば、最も低い参照電圧を接地電圧に固定することで、この参照電圧を容易に生成できる。
請求項９の不揮発性多値半導体メモリでは、プログラム試験回路は、固定電圧である最も低い参照電圧に第２マージンを加えて検証電圧の一つを算出する。次に、プログラム試験回路は、算出された検証電圧を用いてプログラムされた複数のメモリセルの閾値電圧の最大値を測定し、測定された閾値電圧の最大値に第１マージンを加えて次の参照電圧の一つを算出する。次に、プログラム試験回路は、算出された参照電圧に第２マージンを加えて検証電圧の別の一つを算出する。この後、プログラム試験回路は、上記動作を繰り返して、参照電圧および検証電圧を算出する。
【００２８】
すなわち、プログラム試験回路は、固定電圧である参照電圧から次の検証電圧および参照電圧を順次算出する。このため、簡単な動作フローを繰り返すことで参照電圧および検証電圧を順次算出できる。この結果、プログラム試験回路の論理を簡易にでき、チップサイズを小さくできる。
例えば、メモリセルは、フローティングゲートを有している。第１マージンは、フローティングゲート中の電子数が増加するチャージゲイン特性に応じて設定される。第２マージンは、フローティングゲート中の電子数が減少するチャージロス特性に応じて設定される。
【００２９】
請求項１０の不揮発性多値半導体メモリでは、導通電圧生成回路は、メモリセルのアクセス時に、メモリセル列の非選択のメモリセルに印加する導通電圧を、論理値にそれぞれ対応する閾値電圧の複数の分布うち、最も閾値電圧の高い分布の最大値に第３マージンを加えることで生成する。メモリセル列は、直列に接続された複数のメモリセルを有している。
【００３０】
製造プロセスの変動により変化するメモリセルの閾値電圧の分布に合わせて導通電圧を変更できるため、メモリセルの動作マージンを向上でき、製造歩留を向上できる。
【００３１】
【発明の実施の形態】
以下、本発明の実施形態を図面を用いて説明する。
図１は、本発明の不揮発性多値半導体メモリの第１の実施形態を示している。不揮発性多値半導体メモリは、シリコン基板上に、CMOSプロセスを使用して、６４メガビットのNAND型フラッシュメモリとして形成されている。図中、太線で示した信号線は、複数本で構成されている。図中の二重丸は、外部端子を示している。
【００３２】
フラッシュメモリは、内部電圧生成回路１０、高電圧生成回路１２、状態制御回路１４、コマンドレジスタ１６、アドレスレジスタ１８、ステータスレジスタ２０、内部電圧記憶部２２、ロウアドレスデコーダ２４、コラムアドレスデコーダ２６、ページバッファ２８、メモリセルアレイ３０、およびI/Oバッファ３２を有している。
【００３３】
内部電圧生成回路１０は、参照電圧VR1（0V固定）、参照電圧VR4（導通電圧；4V固定）、および検証電圧VV1（0.3V固定）を生成するとともに、内部電圧記憶部２２からの参照値VLR（VLR2、VLR3）および検証値VLV（VLV2、VLV3）に応じて、参照電圧VR2、VR3および検証電圧VV2、VV3を生成する。内部電圧生成回路１０は、生成した参照電圧VRおよび検証電圧VVをロウデコーダ２４に供給する。すなわち、内部電圧生成回路１０は、参照電圧VRを生成する参照電圧生成回路および検証電圧VVを生成する検証電圧生成回路として動作する。参照電圧VR4は、メモリセル列の非選択のメモリセルおよび選択トランジスタに与えられる電圧である。
【００３４】
高電圧発生回路１２は、状態制御回路１４からの制御信号を受け、プログラム電圧等の高電圧を生成し、生成した電圧をロウデコーダ２４およびメモリセルアレイ３０に供給する。すなわち、高電圧発生回路１２は、プログラム電圧生成回路として動作する。
状態制御回路１４は、外部端子を介して供給されるコマンド信号CMD1（アドレスラッチイネーブル信号、コマンドラッチイネーブル信号、スペアエリアイネーブル信号、ライトプロテクト信号等）、コマンド信号CMD2（チップイネーブル信号、リードイネーブル信号、ライトイネーブル信号等）、およびコマンドレジスタ１６からの制御信号を受け、読み出し動作、書き込み動作（プログラム動作）、および消去動作を実行するためのタイミング信号を生成する。また、状態制御回路１４は、チップの状態に応じて、レディー／ビジー信号R/Bを出力する。
【００３５】
コマンドレジスタ１６は、入出力端子I/Oに供給されるコマンド信号を、I/Oバッファ３２を介して受け、受けた信号を状態制御回路１４に出力する。アドレスレジスタ１８は、入出力端子I/Oに供給されるアドレス信号を、I/Oバッファ３２を介して受け、受けた信号をロウアドレスデコーダ２４およびコラムウアドレスデコーダ２６に出力する。I/Oバッファ３２は、入出力端子I/Oを介してコマンド信号、アドレス信号、およびデータ信号を受ける。データ信号は、ページバッファ２６に入出力される。
【００３６】
内部電圧記憶部２２は、後述する試験モード時に、入出力端子I/Oに供給される参照電圧VR2、VR3に対応する参照値VLR2、VLR3および検証電圧VV2、VV3に対応する検証値VLV2、VLV3をI/Oバッファ３２を介して受け、受けた値を記憶する。記憶している参照値VLR2-3および検証値VLV2-3は、内部電圧生成回路１０に出力される。すなわち、内部電圧記憶部２２は、参照値VLRを記憶する第１記憶部および検証値VLVを記憶する第２記憶部として動作する。
【００３７】
ロウアドレスデコーダ２４は、アドレスレジスタ１８からのアドレス信号に応じて所定のワード線を選択する。ロウアドレスデコーダ２４は、選択したワード線に参照電圧VR、検証電圧VV、プログラム電圧等を供給する。コラムアドレスデコーダ２６は、アドレスレジスタ１８からのアドレス信号に応じて所定のビット線を選択する。
【００３８】
ページバッファ２８は、複数のセンスアンプを有している。ページバッファは、書き込み動作時に、I/Oバッファ３２を介して入出力端子I/Oから順次供給される書き込みデータを保持し、保持したデータに応じてビット線の電圧を設定する。また、ページバッファ２８は、読み出し動作時に、メモリセルアレイ３０からの読み出しデータをセンスアンプで増幅し、増幅したデータをI/Oバッファ３２を介して入出力端子I/Oに順次出力する。
【００３９】
メモリセルアレイ３０は、従来（図１５）と同様に構成されている。すなわち、メモリセルアレイ３０は、複数のブロックBLK（BLK0、BLK1、...）で構成されている。各ブロックBLKは、複数のメモリセル列STRを有している。メモリセル列STRは、選択トランジスタの間に、複数のメモリセルを直列に接続して構成されている。メモリセルは、制御ゲートおよびフローティングゲートを有している。メモリセルは、電気的書き換え可能な不揮発性の４値メモリセルとして動作する。各メモリセルの制御ゲートは、ワード線WLにそれぞれ接続されている。選択トランジスタのゲートは、選択線SGにそれぞれ接続されている。メモリセル列STRの両端は、ビット線BLおよび制御線ARVSSにそれぞれ接続されている。
【００４０】
図２は、第１の実施形態における参照電圧VR2、VR3および検証電圧VV2、VV3の設定の概要を示している。この例では、枠で囲った参照電圧VR2、VR3および検証電圧VV2、VV3は、フラッシュメモリの外部から設定される。参照電圧VR1（0V）、VR4（4V）および検証電圧VV1（0.3V）は、図１に示した内部電圧生成回路１０が生成する固定値である。
【００４１】
フラッシュメモリは、試験工程において、通常動作では使用されないコマンドにより試験モードに移行された後、LSIテスタを使用して参照電圧VR2、VR3および検証電圧VV2、VV3が設定される。
まず、内部電圧生成回路１０が生成する参照電圧VR1および検証電圧VV1を利用して、複数のブロックBLKに論理"10"が書き込まれ、分布L1の特性が測定される（この例では分布L1の幅は0.2V）。複数のブロックBLKの閾値電圧をモニタすることでブロックBLK間のばらつきを考慮して参照電圧および検証電圧を設定できる。
【００４２】
次に、メモリセルのチャージゲイン特性を考慮して、分布L1の最大値VT1に第１マージン（0.3V）を加えて参照電圧VR2（0.8V）が算出される。第１マージンは、チャージゲイン特性による閾値電圧の最大変化量（0.2V）に、所定のマージン（設計・製造マージン；0.1V）を加えて算出される。チャージゲイン特性とは、フラッシュメモリの動作により、メモリセルのフローティングゲートに予期せぬ電子が注入されたときの閾値電圧の変化特性である。
【００４３】
次に、メモリセルのチャージロス特性を考慮して、参照電圧VR2に第２マージン（0.3V）を加えて、メモリセルに論理"01"を書き込むための検証電圧VV2（1.1V）が算出される。第２マージンは、チャージロス特性による閾値電圧の最大変化量（0.2V）に、所定のマージン（設計・製造マージン；0.1V）を加えて算出される。チャージロス特性とは、フラッシュメモリの動作により、メモリセルのフローティングゲートから予期せぬ電子が放出されたときの閾値電圧の変化特性である。
【００４４】
なお、検証電圧VV2は、分布L1の最大値VT1に、第１および第２マージンを加えて算出してもよく、参照電圧VR2に第２マージンを加えて算出してもよい。あるいは、まず、最大値VT1に第１および第２マージンを加えて検証電圧VV2を算出し、参照電圧VR2は、検証電圧VV2から第２マージンを引いて算出してもよい。
【００４５】
次に、算出した検証電圧VV2を利用して、複数のブロックBLKに論理"01"が書き込まれ、分布L2の特性が測定される（この例では分布L2の幅は0.2V）。
次に、上述と同様に、メモリセルのチャージゲイン特性を考慮して、分布L2の最大値VT2に第１マージンを加えて参照電圧VR3（1.6V）が算出される。また、メモリセルのチャージロス特性を考慮して、参照電圧VR3に第２マージンを加えて、メモリセルに論理"00"を書き込むための検証電圧VV3（2.0V）が算出される。ここで、分布L3に対するチャージロス特性による閾値電圧の最大変化量は、0.3Vに設定されている。このため、分布L3に対応する第２マージンは、0.4Vになる。
【００４６】
そして、LSIテスタにより算出された参照電圧VR2-3に対応する参照値VLR2-3および算出された検証電圧VV2-3に対応する検証値VLV2-3は、試験モード中に、図１に示した内部電圧記憶部２２に書き込まれる。このように、メモリセルの特性を直接測定して、参照電圧VR2-3（参照値VLR2-3）および検証電圧VV2-3（検証値VLV2-3）を設定することで、製造プロセスの変動に影響することなく所定の読み出しマージン（この例では、0.3Vまたは0.4V）を常に確保できる。
【００４７】
なお、第１マージンおよび第２マージンは、フラッシュメモリを製造する半導体プロセスの開発時またはフラッシュメモリの試作時に決められる。また、参照電圧VR2-3および検証電圧VV2-3は、例えば、各ロット毎に１回算出される。そして、同じ参照電圧VR2-3および検証電圧VV2-3が、ロット内の全てのチップに書き込まれる。
【００４８】
参照電圧VR2-3および検証電圧VV2-3は、同一チップ内の複数のブロックBLKの分布L1、L2を測定して算出してもよく、同一ウエハ内の複数のチップの分布L1、L2を測定して算出してもよい。
図３は、製造プロセスの変動により、閾値電圧の分布L1-L3がシフトした場合の参照電圧VR2-3および検証電圧VV2-3の設定の概要を示している。製造プロセスが変動した場合にも、分布L1-L3間の中央に参照電圧VR2-3をそれぞれ設定できる。すなわち、常に所定の読み出しマージンを確保できる。
【００４９】
以上、第１の実施形態では、フラッシュメモリの外部から書き換え可能な内部電圧記憶部２２を形成した。内部電圧生成回路１０は、内部電圧記憶部２２に記憶されている参照値VLR2-3および検証値VLV2-3に応じて、参照電圧VR2-3および検証電圧VV2-3を生成した。このため、フラッシュメモリのメモリセルの特性をLSIテスタ等で評価した後に、評価結果に応じて参照電圧VR2-3および検証電圧VV2-3を設定できる。したがって、製造プロセスの変動により変化するメモリセルの特性に応じて参照電圧VR2-3および検証電圧VV2-3を変更できる。書き込みデータの論理値に対応する閾値電圧の分布を、メモリセルの書き込み特性に応じて最適に設定できる。この結果、メモリセルからのデータの読み出しマージンを向上でき、製造歩留を向上できる。
【００５０】
図４は、本発明の不揮発性多値半導体メモリの第２の実施形態を示している。第１の実施形態と同じ要素には同じ符号を付け、詳細な説明を省略する。
不揮発性多値半導体メモリは、シリコン基板上に、CMOSプロセスを使用して、６４メガビットのNAND型フラッシュメモリとして形成されている。この実施形態では、第１の実施形態の内部電圧生成回路１０および内部電圧記憶部２２の代わりに、内部電圧生成回路１０Ｂおよび内部電圧記憶部２２Ｂが形成されている。その他の構成は、第１の実施形態と同じである。
【００５１】
内部電圧生成回路１０Ｂは、内部電圧記憶部２２からの参照値VLR1、VLR2、VLR3、VLR4および検証値VLV1、VLV2、VLV3に応じて、参照電圧VR1、VR2、VR3、VR4および検証電圧VV1、VV2、VV3をそれぞれ生成する。内部電圧生成回路１０Ｂは、生成した参照電圧VRおよび検証電圧VVをロウデコーダ２４に供給する。すなわち、内部電圧生成回路１０Ｂは、参照電圧VR1-3を生成する参照電圧生成回路、検証電圧VV1-3を生成する検証電圧生成回路、および参照電圧（導通電圧）VR4を生成する導通電圧生成回路として動作する。
【００５２】
内部電圧記憶部２２Ｂは、試験モード時に、入出力端子I/Oに供給される参照電圧VR1、VR2、VR3、VR4に対応する参照値VLR1、VLR2、VLR3、VLR4および検証電圧VV1、VV2、VV3に対応する検証値VLV1、VLV2、VLV3をI/Oバッファ３２を介して受け、受けた値を記憶する。記憶している参照値VLR1-4および検証値VLV1-3は、内部電圧生成回路１０Ｂに出力される。すなわち、内部電圧記憶部２２は、参照値VLR1-3を記憶する第１記憶部、検証値VLV1-3を記憶する第２記憶部、および参照値（導通値）VLR4を記憶する第３記憶部として動作する。
【００５３】
図５は、第２の実施形態における参照電圧VR1-4および検証電圧VV1-3の設定の概要を示している。この例では、枠で囲った全ての参照電圧VR1-4および検証電圧VV1-3は、試験工程においてLSIテスタを使用して、フラッシュメモリの外部から設定される。
まず、フラッシュメモリは、通常動作では使用されないコマンドにより試験モードに移行される。そして、予め評価されたメモリセルの特性に基づいて、参照電圧VR1に対応する参照値VLR1および検証電圧VV1に対応する検証値VLV1が、内部電圧記憶部２２Ｂに書き込まれる。
【００５４】
次に、第１の実施形態と同様にして、複数のブロックBLKにおいて、メモリセルの特性が測定され、最適な参照電圧VR2-3および検証電圧VV2-3が算出され、これ等参照電圧VR2-3および検証電圧VV2-3に対応する参照値VLR2-3および検証値VLV2-3が、内部電圧記憶部２２Ｂに書き込まれる。
次に、検証電圧VV3にマージン2.0Vを加えて参照電圧VR4が算出される。そして、参照電圧VR4に対応する参照値VLR4が、内部電圧記憶部２２Ｂに書き込まれる。
【００５５】
以上、第２の実施形態においても第１の実施形態と同様の効果を得ることができる。さらに、この実施形態では、全ての参照電圧VR1-4および検証電圧VV1-3を外部から設定できるため、メモリセルの特性に合わせて常に最適な読み出しマージンを確保できる。
内部電圧記憶部２２Ｂに、導通電圧を導通値として記憶する書き換え可能な領域を形成した。このため、製造プロセスの変動により変化するメモリセルの特性に応じて導通電圧を変更できる。したがって、メモリセルからのデータを確実に読み出すことができる。読み出しマージンが向上するため、製造歩留を向上できる。
【００５６】
図６は、本発明の不揮発性多値半導体メモリの第３の実施形態を示している。第１の実施形態と同じ要素には同じ符号を付け、詳細な説明を省略する。
不揮発性多値半導体メモリは、シリコン基板上に、CMOSプロセスを使用して、６４メガビットのNAND型フラッシュメモリとして形成されている。この実施形態では、第１の実施形態の内部電圧生成回路１０、状態制御回路１４、コマンドレジスタ１６、および内部電圧記憶部２２の代わりに、内部電圧生成回路１０Ｃ、状態制御回路１４Ｃ、コマンドレジスタ１６Ｃ、および内部電圧記憶部２２Ｃが形成されている。また、新たにプログラム試験回路３４Ｃおよび判定回路３６Ｃが形成されている。その他の構成は、第１の実施形態と同じである。
【００５７】
プログラム試験回路３４Ｃは、試験モード時に動作し、メモリセルの特性に合わせて参照電圧VR2、VR3、VR4および検証電圧VV2、VV3を設定する機能を有している。プログラム試験回路３４Ｃは、試験パターンを生成し、生成した試験パターンを試験コマンド信号TCMD1、TCMD2として、状態制御回路１４Ｃおよびコマンドレジスタ１６Ｃに出力する。プログラム試験回路３４Ｃは、判定回路３６Ｃから出力される試験の結果を示す判定信号JDGに応じて、参照値設定信号SVR2、SVR3および検証値設定信号SVV2、SVV3を出力する。
【００５８】
内部電圧生成回路１０Ｃは、参照値VLR2-4および検証値VLV2-3に応じて参照電圧VR2-4、検証電圧VV2-3を生成する。また、内部電圧生成回路１０Ｃは、参照電圧VR1（接地電圧；0V固定）および検証電圧VV1（0.3V固定）を生成する。
状態制御回路１４Ｃおよびコマンドレジスタ１６Ｃは、試験モード時に試験コマンド信号TCMD1、TCMD2を受信し、外部からのコマンド信号CMD1、CMD2の受信を禁止する。すなわち、フラッシュメモリは、試験モード時にプログラム試験回路３４Ｃが生成する試験コマンド信号TCMD1、TCMD2に応じて動作する。
【００５９】
判定回路３６Ｃは、プログラム試験回路３４Ｃが閾値電圧の分布（後述する図７に示すL1またはL2）の最大値を求めるときに、ページバッファ２８からの読み出しデータに応じて判定信号JDGを出力する。
内部電圧記憶部２２Ｃは、試験モード時に、参照値設定信号SVR2-3および検証値設定信号SVV2-3、または入出力端子I/Oに供給される参照値VLR2-3および検証値VLV2-3を受け、受けた値を記憶する。すなわち、内部電圧記憶部２２Ｃは、プログラム試験回路３４Ｃにより参照値VLR2-3および検証値VLV2-3が設定された後にも、外部から参照値VLR2-3および検証値VLV2-3を書き換え可能である。記憶された参照値VLR2-3および検証値VLV2-3は、内部電圧生成回路１０Ｃに出力される。すなわち、内部電圧記憶部２２Ｃは、参照値VLRを記憶する第１記憶部および検証値VLVを記憶する第２記憶部として動作する。
【００６０】
図７は、第３の実施形態における参照電圧VR2-4および検証電圧VV2-3の設定の概要を示している。この例では、枠で囲った参照電圧VR2-4および検証電圧VV2-3は、プログラム試験回路３４Ｃにより設定される。あるいは、参照電圧VR2-4および検証電圧VV2-3は、外部から設定可能である。参照電圧VR1（接地電圧；0V）および検証電圧VV1（0.3V）は、図６に示した内部電圧生成回路１０Ｃが生成する固定値である。
【００６１】
図８は、図６に示したプログラム試験回路３４Ｃの動作の概要を示している。フラッシュメモリは、試験工程において、通常動作では使用されないコマンドにより試験モードに移行される。試験モード中に供給された試験コマンドが内部電圧設定コマンドの場合、フラッシュメモリは、プログラム試験回路３４Ｃを動作させる。
【００６２】
まず、ステップS10において、プログラム試験回路３４Ｃは、図６に示した状態制御回路１４Ｃおよびコマンドレジスタ１６Ｃに試験コマンド信号TCMD1、TCMD2を出力し、複数のブロックBLKに対して論理"10"を書き込む。メモリセルの閾値電圧は、図７に示した領域L1に分布する。
ステップS20において、プログラム試験回路３４Ｃは、領域L1中で最も高い閾値電圧VT1を見つける。次に、ステップS30において、プログラム試験回路３４Ｃは、閾値電圧VT1から参照電圧VR2および検証電圧VV2を算出する。
【００６３】
ステップS40において、プログラム試験回路３４Ｃは、複数のブロックBLKに対して論理"01"を書き込む。メモリセルの閾値電圧は、領域L2に分布する。
ステップS50において、プログラム試験回路３４Ｃは、領域L2中で最も閾値電圧VT2を見つける。次に、ステップS60において、プログラム試験回路３４Ｃは、閾値電圧VT2から参照電圧VR3および検証電圧VV3を算出する。さらに、プログラム試験回路３４Ｃは、算出した検証電圧VV3から参照電圧VR4を算出する。
【００６４】
図９は、図８に示したステップS10、S20、S30の詳細を示している。
まず、ステップS11において、ブロックBLKの番号を示すカウンタ値ｍが"0"にリセットされる。また、検証電圧VV1が0.3Vに設定される。ステップS12において、ブロックBLKmに論理"10"がプログラムされる。
ステップS13において、各メモリセルの閾値電圧が検証電圧VV1を超えたか否かが判定される。閾値電圧が検証電圧VV1を超えたメモリセルについては、論理"10"のプログラムは終了し、処理はステップS14に移行する。閾値電圧が検証電圧VV1以下のメモリセルについては、ステップS12の処理が再び実行される。
【００６５】
次に、ステップS14において、カウンタ値ｍが最大値か否かが判定される。カウンタ値ｍが最大値でない場合、処理はステップS15に移行する。カウンタ値ｍが最大値の場合、試験の対象となる全てのブロックBLKに論理"10"がプログラムされたと判定され、処理はステップS21に移行する。ステップS15では、カウンタ値ｍが"1"増加され、処理は再びステップS12に移行する。
【００６６】
ステップS21において、カウンタ値ｍが"0"にリセットされる。また、分布L1中の閾値電圧の最大値VT1がVVER1（1.5V）に設定される。VVER1は、分布L1の閾値電圧としてあり得ない値である。
ステップS22において、ブロックBLKmの実際のメモリセルにおける分布L1の閾値電圧の最大値L1(max)が、最大値VT1より小さいか否かが判定される。最大値L1(max)が最大値VT1より小さい場合、処理はステップS23に移行する。最大値L1(max)が最大値VT1以上の場合、最大値VT1は実際の最大値L1(max)と等しいと判定され、処理はステップS31に移行する。詳細には、図６に示した判定回路３６Ｃがメモリセルアレイ３０からの読み出しデータを期待値と比較する。判定回路３６Ｃは、読み出しデータが期待値と相違したとき（すなわち、フェイルしたとき）、判定信号JDGを出力する。プログラム試験回路３４Ｃは、判定信号JDGを受信したとき、最大値VT1は実際の最大値L1(max)と等しいと判定する。
【００６７】
ステップS23において、カウンタ値ｍが最大値か否かが判定される。カウンタ値ｍが最大値でない場合、処理はステップS25に移行する。カウンタ値ｍが最大値の場合、処理はステップS24に移行する。ステップS25では、カウンタ値ｍが"1"増加され、処理は再びステップS22に移行する。ステップS24では、最大値VT1が0.1V減らされ、処理は再びステップS22に移行する。
【００６８】
なお、上述したステップS22-S25は、メモリセルの閾値電圧の最大値L1(max)をブロックBLKm毎に求めるフローを示している。実際には、評価する全てのブロックBLK中の最大の閾値電圧が最大値VT1になる。
ステップS31において、閾値電圧の最大値VT1に0.3Vが加えられ、参照電圧VR2が算出される。同様に、最大値VT1に0.6Vが加えられ、検証電圧VV2が算出される。算出された参照電圧VR2および検証電圧VV2は、それぞれ参照値設定信号SVR2および検証値設定信号SVV2として、内部電圧記憶部２２Ｃに書き込まれる。この後、処理はステップS41に移行する。
【００６９】
図１０に示したステップS41において、カウンタ値ｍが"0"にリセットされる。ステップS42におて、ブロックBLKmに論理"10"がプログラムされる。
ステップS43において、各メモリセルの閾値電圧が検証電圧VV2を超えたか否かが判定される。閾値電圧が検証電圧VV2を超えたメモリセルについては、論理"10"のプログラムは終了し、処理はステップS44に移行する。閾値電圧が検証電圧VV2以下のメモリセルについては、ステップS42の処理が再び実行される。
【００７０】
次に、ステップS44において、カウンタ値ｍが最大値か否かが判定される。カウンタ値ｍが最大値でない場合、処理はステップS45に移行する。カウンタ値ｍが最大値の場合、試験の対象となる全てのブロックBLKに論理"10"がプログラムされたと判定され、処理はステップS51に移行する。ステップS45では、カウンタ値ｍが"1"増加され、処理は再びステップS42に移行する。
【００７１】
ステップS51において、カウンタ値ｍが"0"にリセットされる。また、分布L2中の閾値電圧の最大値VT2がVVER2（2.1V）に設定される。VVER2は、分布L2の閾値電圧としてあり得ない値である。
ステップS52において、ブロックBLKmの実際のメモリセルにおける分布L2の閾値電圧の最大値L2(max)が、最大値VT2より小さいか否かが判定される。最大値L2(max)が最大値VT2より小さい場合、処理はステップS53に移行する。最大値L2(max)が最大値VT2以上の場合、最大値VT2は実際の最大値L2(max)と等しいと判定され、処理はステップS61に移行する。なお、ステップS52の判定も、ステップS22と同様に判定回路３６Ｃを用いて行われる。
【００７２】
ステップS53において、カウンタ値ｍが最大値か否かが判定される。カウンタ値ｍが最大値でない場合、処理はステップS55に移行する。カウンタ値ｍが最大値の場合、処理はステップS54に移行する。ステップS55では、カウンタ値ｍが"1"増加され、処理は再びステップS52に移行する。ステップS54では、最大値VT2が0.1V減らされ、処理は再びステップS52に移行する。
【００７３】
なお、上述したステップS52-S55は、メモリセルの閾値電圧の最大値L2(max)をブロックBLKm毎に求めるフローを示している。実際には、評価する全てのブロックBLK中の最大の閾値電圧が最大値VT2になる。
ステップS61において、閾値電圧の最大値VT2に0.3Vが加えられ、参照電圧VR3が算出される。同様に、最大値VT2に0.7Vが加えられ、検証電圧VV3が算出される。さらに、検証電圧VV3に2Vが加えられ、参照電圧VR4（導通電圧）が算出される。算出された参照電圧VR3、VR4および検証電圧VV3は、それぞれ参照値設定信号SVR3、SVR4および検証値設定信号SVV3として、内部電圧記憶部２２Ｃに書き込まれる。
【００７４】
そして、試験モードにおいて、参照電圧VR2-4および検証電圧VV2-3が設定される。
以上、第３の実施形態においても、第１および第２の実施形態と同様の効果を得ることができる。さらに、試験モード時に動作し、メモリセルの閾値電圧の分布L1、L2に基づいて参照電圧VR2-4および検証電圧VV2-3を算出するプログラム試験回路３４Ｃを形成した。このため、製造プロセスの変動により変化するメモリセルの特性に応じて、フラッシュメモリの製造後に参照電圧VR2-4および検証電圧VV2-3を設定できる。したがって、メモリセルからのデータの読み出しマージンを向上できる。また、書き込みデータの論理値に対応する閾値電圧の分布を、メモリセルの書き込み特性に応じて最適に設定できる。この結果、製造歩留を向上できる。
【００７５】
さらに、参照電圧VR2-4および検証電圧VV2-3を設定するプログラム試験回路３４Ｃをフラッシュメモリに内蔵したので、例えば、簡易なLSIテスタによりフラッシュメモリを試験モードに移行させるだけで、参照電圧VR2-4および検証電圧VV2-3を設定できる。このため、一度に多数のフラッシュメモリの参照電圧VR2-4および検証電圧VV2-3を設定できる。この結果、試験時間を短縮でき、製造コストを削減できる。
【００７６】
内部電圧記憶部２２Ｃはフラッシュメモリの外部から書き換え可能なため、例えば、半導体メモリの開発時、量産開始時に、メモリセルの特性を容易に評価できる。
製造プロセスの変動の影響が少ないメモリセルの特性に対応する参照電圧VR1および検証電圧VV1を接地電圧と、0.3Vに固定した。このため、プログラム試験回路３４Ｃの論理を簡易にできる。この結果、フラッシュメモリのチップサイズを小さくでき、製造コストを削減できる。
【００７７】
プログラム試験回路３４Ｃを動作させて、固定電圧である検証電圧VV1から次の参照電圧VR2-4および検証電圧VV2-3を順次算出した。このため、簡単な動作フローを繰り返すことで参照電圧VR2-4および検証電圧VV2-3を順次算出できる。この結果、プログラム試験回路３４Ｃの論理を簡易にでき、チップサイズを小さくできる。
【００７８】
図１１は、本発明の不揮発性多値半導体メモリの第４の実施形態を示している。第１および第３の実施形態と同じ要素には同じ符号を付け、詳細な説明を省略する。
不揮発性多値半導体メモリは、シリコン基板上に、CMOSプロセスを使用して、６４メガビットのNAND型フラッシュメモリとして形成されている。この実施形態では、第３の実施形態のプログラム試験回路３４Ｃ、内部電圧生成回路１０Ｃ、および内部電圧記憶部２２Ｃの代わりに、プログラム試験回路３４Ｄ、内部電圧生成回路１０Ｄ、および内部電圧記憶部２２Ｄが形成されている。また、新たにマージン記憶部３８Ｄが形成されている。その他の構成は、第３の実施形態と同じである。
【００７９】
プログラム試験回路３４Ｄは、試験モード時に動作し、メモリセルの特性およびマージン記憶部３８Ｄからの第１マージンVCG1、VCG2、第２マージンVCL1、VCL2、VCL3および第３マージンVGBに応じて、参照電圧VR2-3、検証電圧VV1-3および参照電圧VR4を設定する機能を有している。第１マージンVCG1、VCG2は、チャージゲイン特性による閾値電圧の最大変化量（0.2V）に、所定のマージン（設計・製造マージン；0.1V）を加えた値である。第２マージンVCL1、VCL2、VCL3は、チャージロス特性による閾値電圧の最大変化量（0.2Vまたは0.3V）に、所定のマージン（設計・製造マージン；0.1V）を加えた値である。第３マージンVGBは、プログラム可能な最大の閾値電圧と参照電圧VR4との差に対応する値であり、例えば2Vに設定されている。
【００８０】
また、プログラム試験回路３４Ｄは、試験の結果を示す判定回路３６Ｃからの判定信号JDGに応じて、参照値設定信号SVR2-4および検証値設定信号SVV1-3を出力する。その他の機能は、第３の実施形態のプログラム試験回路３４Ｃとほぼ同じである。
内部電圧生成回路１０Ｄは、参照値VLR2-4および検証値VLV1-3に応じて参照電圧VR1-4、検証電圧VV1-3を生成する。また、内部電圧生成回路１０Ｄは、参照電圧（導通電圧）VR4を生成する導通電圧生成回路として動作する。
【００８１】
マージン記憶部３８Ｄは、フローティングゲートを有する複数の不揮発性メモリセルを有している。マージン記憶部３８Ｄは、試験モード時に、入出力端子I/Oに供給される第１マージンVCG1-2、第２マージンVCL1-3および第３マージンVGBをI/Oバッファ３２を介して受け、受けた値を不揮発性メモリセルに記憶する。記憶しているマージンVCG1-2、VCL1-3、VGBは、プログラム試験回路３４Ｄに出力される。すなわち、マージン記憶部３８Ｄは、第１マージンVCG1-2を記憶する第１マージン記憶部、第２マージンVCL1-3を記憶する第２マージン記憶部および第３マージンVGBを記憶する第３マージン記憶部として動作する。
【００８２】
図１２は、第４の実施形態における参照電圧VR2-4および検証電圧VV1-3の設定の概要を示している。この例では、枠で囲った参照電圧VR2-4および検証電圧VV1-3は、プログラム試験回路３４Ｄにより設定される。参照電圧VR1（接地電圧；0V）は、図１１に示した内部電圧生成回路１０Ｄが生成する固定値である。
図１３は、図１１に示したプログラム試験回路３４Ｄの動作の概要を示すフローチャートである。この実施形態では、プログラム試験回路３４Ｄは、ステップS1、S2を行った後、ステップS10、S20、S30D、S40、S50、S60D、S70Dを行う。ステップS10、S20、S40、S50は、第３の実施形態（図８）と同一である。
【００８３】
フラッシュメモリは、試験工程において、通常動作では使用されないコマンドにより試験モードに移行される。試験モード中に供給された試験コマンドが内部電圧設定コマンドの場合、フラッシュメモリは、プログラム試験回路３４Ｄを動作させる。
まず、ステップS1において、プログラム試験回路３４Ｄは、マージン記憶部３８Ｄから第１マージンVCG1-2、第２マージンVCL1-3および第３マージンVGBを読み込む。
【００８４】
次に、ステップS2において、プログラム試験回路３４Ｄは、固定値である参照電圧VR1に第２マージンVCL1を加えて、検証電圧VV1を算出する。次に、ステップS10-S20が行われる。
この後、ステップS30Dにおいて、プログラム試験回路３４Ｄは、領域L1中で最も高い閾値電圧VT1および第１マージンVCG1、第２マージンVCL2から参照電圧VR2および検証電圧VV2を算出する。次に、ステップS40-S50が行われる。
【００８５】
次に、ステップS60Dにおいて、プログラム試験回路３４Ｄは、領域L2中で最も高い閾値電圧VT2および第１マージンVCG2、第２マージンVCL3から参照電圧VR3および検証電圧VV3を算出する。
次に、ステップS70Dにおいて、プログラム試験回路３４Ｄは、領域L3中で最も高い閾値電圧VT3に第３マージンVGBを加えて、参照電圧VR4を算出する。
【００８６】
算出された参照電圧VR2-4および検証電圧VV1-3は、参照値VLR2-4（参照値設定信号SVR2-4）および検証値VLV1-3（検証値設定信号SVV1-3）として内部電圧記憶部２２Ｄに書き込まれる。その後、通常動作モードにおいて、内部電圧生成回路１０Ｄは、内部電圧記憶部２２Ｄに記憶されている参照値VLR2-4および検証値VLV1-3に応じて、参照電圧VR2-4および検証電圧VV1-3を生成する。
【００８７】
以上、第４の実施形態においても、第３の実施形態と同様の効果を得ることができる。さらに、フラッシュメモリの外部から書き換え可能なマージン記憶部３８Ｄを形成したので、メモリセルのチャージゲイン特性およびチャージロス特性に応じて、参照電圧VRおよび検証電圧VVを調整できる。
なお、上述した実施形態では、本発明を４値を記憶する不揮発性メモリセルを有するフラッシュメモリに適用した例について述べた。本発明はこれに限定されるものではない。例えば、８値以上を記憶する不揮発性メモリセルを有するフラッシュメモリに適用してもよい。
【００８８】
上述した実施形態では、本発明をフラッシュメモリに適用した例について述べた。本発明はこれに限定されるものではない。例えば、システムLSIに搭載されるフラッシュメモリコアに適用してもよい。
上述した実施形態では、本発明をNAND型のフラッシュメモリに適用した例について述べた。本発明はこれに限定されるものではない。例えば、NOR型のフラッシュメモリに適用してもよい。さらに、フラッシュメモリ以外の不揮発性半導体メモリに適用してもよい。
【００８９】
以上、本発明について詳細に説明してきたが、上記の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）  電気的に書き換え可能な不揮発性の多値メモリセルと、
書き込みデータの論理に応じて前記各メモリセルの閾値電圧を変更するために、複数のプログラム電圧を生成するプログラム電圧生成回路と、
前記メモリセルの閾値電圧を判定するための複数の参照電圧にそれぞれ対応する複数の参照値を記憶するとともに、該参照値の少なくとも一つを書き換え可能な第１記憶部と、
前記メモリセルからのデータの読み出し時に、前記第１記憶部に記憶された前記参照値に応じて前記参照電圧をそれぞれ生成する参照電圧生成回路とを備えていることを特徴とする不揮発性多値半導体メモリ。
（付記２）  電気的書き換え可能な不揮発性の多値メモリセルと、
書き込みデータの論理に応じて前記各メモリセルの閾値電圧を変更するために、複数のプログラム電圧を生成するプログラム電圧生成回路と、
前記メモリセルの閾値電圧の分布を検証するための複数の検証電圧にそれぞれ対応する複数の検証値を記憶するとともに、該検証値の少なくとも一つを書き換え可能な第２記憶部と、
前記メモリセルへのデータの書き込み時に、前記第２記憶部に記憶された前記検証値に応じて前記検証電圧をそれぞれ生成する検証電圧生成回路とを備えていることを特徴とする不揮発性多値半導体メモリ。
（付記３）  電気的書き換え可能な不揮発性の多値メモリセルと、
書き込みデータの論理に応じて前記各メモリセルの閾値電圧を変更するために、複数のプログラム電圧を生成するプログラム電圧生成回路と、
前記メモリセルからのデータの読み出し時に、前記メモリセルの閾値電圧を判定するための複数の参照電圧を生成する参照電圧生成回路と、
前記メモリセルへのデータの書き込み時に、前記メモリセルの閾値電圧が該データに対応する値を超えたことを検証するための複数の検証電圧を生成する検証電圧生成回路と、
試験モード時に動作し、前記メモリセルを前記書き込みデータの論理に応じてそれぞれプログラムし、プログラムされたメモリセルの閾値電圧の分布に基づいて前記参照電圧の少なくとも一つおよび前記検証電圧の少なくとも一つを算出するプログラム試験回路とを備え、
前記参照電圧生成回路は、前記参照電圧の少なくとも一つを、前記プログラム試験回路が算出した値に応じて生成し、
前記検証電圧生成回路は、前記検証電圧の少なくとも一つを、前記プログラム試験回路が算出した値に応じて生成することを特徴とする不揮発性多値半導体メモリ。
（付記４）  付記３記載の不揮発性多値半導体メモリにおいて、
前記参照電圧にそれぞれ対応する複数の参照値を記憶するとともに、該参照値の少なくとも一つを書き換え可能な第１記憶部を備え、
前記参照電圧生成回路は、前記参照電圧を、前記第１記憶部に記憶された前記参照値に応じて生成することを特徴とする不揮発性多値半導体メモリ。
（付記５）  付記３記載の不揮発性多値半導体メモリにおいて、
前記検証電圧にそれぞれ対応する複数の検証値を記憶するするとともに、該検証値の少なくとも一つを書き換え可能な第２記憶部を備え、
前記検証電圧生成回路は、前記検証電圧を、前記第２記憶部に記憶された前記検証値に応じて生成することを特徴とする不揮発性多値半導体メモリ。
（付記６）  付記３記載の不揮発性多値半導体メモリにおいて、
前記参照電圧のうち最も低い参照電圧および前記検証電圧のうち最も低い検証電圧は、固定値であり、
前記プログラム試験回路は、前記最も低い参照電圧を除く参照電圧の少なくとも一つを算出するとともに、前記最も低い検証電圧を除く検証電圧の少なくとも一つを算出することを特徴とする不揮発性多値半導体メモリ。
（付記７）  付記６記載の不揮発性多値半導体メモリにおいて、
前記プログラム試験回路は、前記検証電圧の一つを用いて前記メモリセルをプログラムする動作、プログラムされた複数の前記メモリセルの閾値電圧の最大値を測定する動作、測定された閾値電圧の最大値に第１マージンを加えて前記参照電圧の一つを算出する動作、および算出された参照電圧に第２マージンを加えて次の前記検証電圧の一つを算出する動作を繰り返して、前記参照電圧および前記検証電圧を算出することを特徴とする不揮発性多値半導体メモリ。
（付記８）  付記３記載の不揮発性多値半導体メモリにおいて、
前記参照電圧のうち最も低い参照電圧は、固定値であり、
前記プログラム試験回路は、前記最も低い参照電圧を除く参照電圧の少なくとも一つを算出するとともに、前記検証電圧の少なくとも一つを算出することを特徴とする不揮発性多値半導体メモリ。
（付記９）  付記８記載の不揮発性多値半導体メモリにおいて、
前記プログラム試験回路は、前記参照電圧の一つに第２マージンを加えて前記検証電圧の一つを算出する動作、算出された検証電圧を用いてプログラムされた複数の前記メモリセルの閾値電圧の最大値を測定する動作、および測定された閾値電圧の最大値に第１マージンを加えて次の前記参照電圧の一つを算出する動作を繰り返して、前記参照電圧および前記検証電圧を算出することを特徴とする不揮発性多値半導体メモリ。
（付記１０）  付記６または付記８記載の不揮発性多値半導体メモリにおいて、前記最も低い参照電圧は、接地電圧に固定されていることを特徴とする不揮発性多値半導体メモリ。
【００９０】
（付記１１）  付記７または付記９記載の不揮発性多値半導体メモリにおいて、
前記メモリセルは、フローティングゲートを有し、
前記第１マージンは、前記フローティングゲート中の電子数が増加するチャージゲイン特性に応じて設定されることを特徴とする不揮発性多値半導体メモリ。（付記１２）  付記７または付記９記載の不揮発性多値半導体メモリにおいて、
前記メモリセルは、フローティングゲートを有し、
前記第２マージンは、前記フローティングゲート中の電子数が減少するチャージロス特性に応じて設定されることを特徴とする不揮発性多値半導体メモリ。
【００９１】
（付記１３）  付記３記載の不揮発性多値半導体メモリにおいて、
直列に接続された複数の前記メモリセルを含む複数のメモリセル列と、
前記メモリセルのアクセス時にメモリセル列の非選択のメモリセルに印加する導通電圧を、前記論理値にそれぞれ対応する閾値電圧の複数の分布うち最も閾値電圧の高い分布の最大値に第３マージンを加えることで生成する導通電圧生成回路とを備えていることを特徴とする不揮発性多値半導体メモリ。
（付記１４）  付記１ないし付記３のいずれか１項記載の不揮発性多値半導体メモリにおいて、
直列に接続された複数の前記メモリセルを含む複数のメモリセル列と、
前記メモリセルのアクセス時に、メモリセル列の非選択のメモリセルに印加する導通電圧を生成する導通電圧生成回路と、
前記導通電圧を導通値として記憶するとともに、書き換え可能な第３記憶部を備え、
前記導通電圧生成回路は、前記第３記憶部に記憶された前記導通値に応じて前記導通電圧を生成することを特徴とする不揮発性多値半導体メモリ。
【００９２】
付記１４の不揮発性多値半導体メモリでは、第３記憶部は、導通電圧を導通値として記憶する。第３記憶部に記憶された導通値は、書き換え可能である。導通電圧生成回路は、直列に接続された複数のメモリセルを有するメモリセル列のアクセス時に、メモリセル列の非選択のメモリセルに印加する導通電圧を第３記憶部に記憶された導通値に応じて生成する。このため、非選択のメモリセルに印加する導通電圧を半導体メモリの製造後に変更できる。製造プロセスの変動により変化するメモリセルの特性に応じて導通電圧を変更できるため、メモリセルからのデータを確実に読み出すことができる。読み出しマージンが向上するため、製造歩留を向上できる。
【００９３】
【発明の効果】
請求項１の不揮発性多値半導体メモリでは、製造プロセスの変動により変化するメモリセルの特性に応じて参照電圧を変更できるため、メモリセルからのデータの読み出しマージンを向上できる。この結果、製造歩留を向上できる。
請求項２の不揮発性多値半導体メモリでは、製造プロセスの変動により変化するメモリセルの特性に応じて検証電圧を変更できるため、書き込みデータの論理値に対応する閾値電圧の分布を、メモリセルの書き込み特性に応じて最適に設定できる。この結果、メモリセルの読み出しマージンを向上でき、製造歩留を向上できる。
【００９４】
請求項４の不揮発性多値半導体メモリでは、半導体メモリの製造後に、プログラム試験回路によりメモリセルの特性を直接評価し、参照電圧および検証電圧を設定できる。製造プロセスの変動により変化するメモリセルの特性に応じて参照電圧および検証電圧を設定できるため、メモリセルからのデータの読み出しマージンを向上できる。また、書き込みデータの論理値に対応する閾値電圧の分布を、メモリセルの書き込み特性に応じて最適に設定できる。この結果、製造歩留を向上できる。さらに、半導体メモリが内蔵するプログラム試験回路により、参照電圧および検証電圧を設定できるため、試験時間を短縮でき、製造コストを削減できる。
【００９５】
また、参照電圧を外部からも設定可能なため、例えば、半導体メモリの開発時、量産開始時に、メモリセルの特性を容易に評価できる。
請求項５の不揮発性多値半導体メモリでは、検証電圧を外部からも設定可能なため、例えば、半導体メモリの開発時、量産開始時に、メモリセルの特性を容易に評価できる。
【００９６】
請求項６の不揮発性多値半導体メモリでは、プログラム試験回路の論理を簡易にできる。この結果、半導体メモリのチップサイズを小さくでき、製造コストを削減できる。
請求項７の不揮発性多値半導体メモリでは、簡単な動作フローを繰り返すことで参照電圧および検証電圧を順次算出できる。この結果、プログラム試験回路の論理を簡易にでき、チップサイズを小さくできる。
【００９７】
請求項８の不揮発性多値半導体メモリでは、プログラム試験回路の論理を簡易にできる。この結果、半導体メモリのチップサイズを小さくでき、製造コストを削減できる。
請求項９の不揮発性多値半導体メモリでは、簡単な動作フローを繰り返すことで参照電圧および検証電圧を順次算出できる。この結果、プログラム試験回路の論理を簡易にでき、チップサイズを小さくできる。
【００９８】
請求項１０の不揮発性多値半導体メモリでは、製造プロセスの変動により変化するメモリセルの閾値電圧の分布に合わせて導通電圧を変更できるため、メモリセルの動作マージンを向上でき、製造歩留を向上できる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態を示すブロック図である。
【図２】第１の実施形態における参照電圧および検証電圧の設定の概要を示す説明図である。
【図３】第１の実施形態における参照電圧および検証電圧の設定の別の例を示す説明図である。
【図４】本発明の第２の実施形態を示すブロック図である。
【図５】第２の実施形態における参照電圧および検証電圧の設定の概要を示す説明図である。
【図６】本発明の第３の実施形態を示すブロック図である。
【図７】第３の実施形態における参照電圧および検証電圧の設定の概要を示す説明図である。
【図８】第３の実施形態におけるプログラム試験回路の動作の概要を示すフローチャートである。
【図９】第３の実施形態におけるプログラム試験回路の動作の詳細を示すフローチャートである。
【図１０】第３の実施形態におけるプログラム試験回路の動作の詳細を示すフローチャートである。
【図１１】本発明の第３の実施形態を示すブロック図である。
【図１２】第３の実施形態における参照電圧および検証電圧の設定の概要を示す説明図である。
【図１３】第４の実施形態におけるプログラム試験回路の動作の概要を示すフローチャートである。
【図１４】従来の４値NAND型フラッシュメモリにおけるメモリセルの閾値電圧の分布を示す説明図である。
【図１５】従来のNAND型フラッシュメモリのメモリセルアレイの概要を示す回路図である。
【図１６】図１４において、メモリセルの書き込み特性が変化したときの閾値電圧の分布を示す説明図である。
【符号の説明】
１０、１０Ｂ、１０Ｃ、１０Ｄ  内部電圧生成回路
１２  高電圧生成回路
１４、１４Ｃ  状態制御回路
１６、１６Ｃ  コマンドレジスタ
１８  アドレスレジスタ
２０  ステータスレジスタ
２２、２２Ｂ、２２Ｃ、２２Ｄ  内部電圧記憶部
２４  ロウアドレスデコーダ
２６  コラムアドレスデコーダ
２８  ページバッファ
３０  メモリセルアレイ
３２  I/Oバッファ
３４Ｃ、３４Ｄ  プログラム試験回路
３６Ｃ  判定回路
３８Ｄ  マージン記憶部
BLK（BLK0、BLK1、...）  ブロック
JDG  判定信号
L1、L2、L3  分布
STR  メモリセル列
SVR2、SVR3  参照値設定信号
SVV2、SVV3  検証値設定信号
TCMD1、TCMD2  試験コマンド信号
VCG1、VCG2  第１マージン
VCL1、VCL2、VCL3  第２マージン
VGB  第３マージン
VLR（VLR1、VLR2、VLR3、VLR4）  参照値
VLV（VLV1、VLV2、VLV3）  検証値
VR（VR1、VR2、VR3）  参照電圧
VR4  参照電圧（導通電圧）
VT1、VT2  最大値
VV（VV1、VV2、VV3）  検証電圧
【図１】
0004068863.tif 000002
【図２】
0004068863.tif 000003
【図３】
0004068863.tif 000004
【図４】
0004068863.tif 000005
【図５】
0004068863.tif 000006
【図６】
0004068863.tif 000007
【図７】
0004068863.tif 000008
【図８】
0004068863.tif 000009
【図９】
0004068863.tif 000010
【図１０】
0004068863.tif 000011
【図１１】
0004068863.tif 000012
【図１２】
0004068863.tif 000013
【図１３】
0004068863.tif 000014
【図１４】
0004068863.tif 000015
【図１５】
0004068863.tif 000016
【図１６】
0004068863.tif 000017