(57)【要約】【課題】ＬＦＳＲを用いた擬似乱数発生回路に比較して予測可能性が低い乱数を発生できる乱数発生回路を提供する。【解決手段】本発明の乱数発生回路は、不揮発性メモリに搭載される乱数発生回路であって、複数の不揮発性メモリセルについての製造直後の閾値分布のばらつきの状態を検出し、該閾値分布のばらつきの状態に基づいて乱数を発生させる。【選択図】図３
2014021530.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリに搭載される乱数発生回路であって、複数の不揮発性メモリセルについての製造直後の閾値分布のばらつきの状態を検出し、該閾値分布のばらつきの状態に基づいて乱数を発生させることを特徴とする乱数発生回路。
【請求項２】
前記複数の不揮発性メモリセルについて製造直後のイレースセルとプログラムセルとの分布の情報を、ベリファイ動作を行って生成し、生成した分布の情報に基づいて乱数を発生させることを特徴とする請求項１に記載の乱数発生回路。
【請求項３】
ベリファイ動作において、複数の不揮発性メモリセルのワード線に印加するベリファイ電圧を、所定の初期電圧値から、予め設定された所定の割合以上の不揮発性メモリセルがベリファイパスする電圧値に向けて徐々に変更し、
前記ベリファイパスする不揮発性メモリセルが前記所定の割合以上になった時に、ベリファイパスする不揮発性メモリセルとベリファイフェイルする不揮発性メモリセルとの分布の状態に基いて乱数を発生させる
ことを特徴とする請求項２に記載の乱数発生回路。
【請求項４】
前記複数の不揮発性メモリセルは、１のページバッファに接続される１ページ分の不揮発性メモリセルであって、
前記１ページ分の不揮発性メモリセルについての前記ベリファイ動作により、ベリファイパスする不揮発性メモリセルが前記所定の割合を超えたと判定された時に、前記ページバッファに読み出されたデータを乱数として保持する
ことを特徴とする請求項３に記載の乱数発生回路。
【請求項５】
前記ベリファイ動作において、前記ワード線の電圧は、予め設定した初期電圧であってイレースセルと判定される不揮発性メモリセルが前記所定の割合以下となる第１レベルから、イレースセルと判定される不揮発性メモリセルが前記所定の割合以上となる第２レベルに向けて徐々に変更され、
前記ベリファイ動作において、イレースセルと判定される不揮発性メモリセルの割合が前記所定の割合を超えたと判定された場合に、前記ベリファイ動作を停止し、イレースセルとプログラムセルとの分布の情報を検出する。
ことを特徴とする請求項４に記載の乱数発生回路。
【請求項６】
前記ページバッファは、
前記ページバッファに読み出された前記不揮発性メモリセルのデータを保持する第１ラッチ回路と、
前記第１ラッチ回路のデータを退避して保持するための第２ラッチ回路と、
を備え、
前記ベリファイ動作においてイレースセルと判定される不揮発性メモリセルが前記所定の割合を超えたと判定された場合に、該ベリファイ動作を終了し、
前記ベリファイ動作の終了後に、前記第１ラッチ回路から前記第２ラッチ回路へデータを退避し、
前記データの退避後に前記不揮発性メモリセルをイレースし、
前記不揮発性メモリセルのイレース後に、前記第２ラッチに退避したデータを前記第１ラッチ回路に戻し、
前記第１ラッチ回路に戻されたデータを前記不揮発性メモリセルに書き戻す
ことを特徴とする請求項５に記載の乱数発生回路。
【請求項７】
請求項１から６のいずれか１項に記載の乱数発生回路を備える不揮発性半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、乱数発生回路に関し、特に、不揮発性半導体装置に搭載される乱数発生回路、及びこの乱数発生回路を備える不揮発性半導体装置に関する。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリにおいては、記憶するデータの暗号化のために乱数発生回路が使用されることがある。この乱数発生回路にはいくつかの種類があるが、その一例として、線形帰還シフトレジスタ（ｌｉｎｅａｒ  ｆｅｅｄｂａｃｋ  ｓｈｉｆｔ  ｒｅｇｉｓｔｅｒ；ＬＦＳＲ）を用いた乱数発生回路などがある。図９は、ＬＦＳＲを用いた擬似乱数発生回路の例を示す図である。従来の乱数発生回路としては、図９に示すようなタップシーケンスのＬＦＳＲを用いた擬似乱数発生回路がある。
【０００３】
なお、乱数発生回路に関連する半導体装置がある（特許文献１を参照）。この特許文献１に記載の半導体装置は、テスト時に、ＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋ  ａｎｄ  Ｃｏｒｒｅｃｔ）回路とＢＩＳＴ（Ｂｕｉｌｔ−Ｉｎ  Ｓｅｌｆ−Ｔｅｓｔ）回路とが活性化された状態で、ＥＣＣ回路によるエラー訂正が必ず行われるように構成されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−７８４３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の半導体装置には、ＬＦＳＲを搭載した擬似乱数発生回路が搭載されているが、発生結果の予測がつきやすいので、セキュリティ用途で使用できない。
しかしながら、ＬＦＳＲのような、擬似乱数発生回路で生成される乱数は、一見、乱数のように見えるが、実際には特定のアルゴリズムにより実現されており、生成される乱数の予測が可能である。また、一定の周期で同じ乱数が発生するため、固有ＩＤなどのセキュリティの用途には使用できないという問題がある。
【０００６】
本発明は、斯かる実情に鑑みなされたものであり、その目的は、ＬＦＳＲを用いた擬似乱数発生回路に比較して予測可能性が低い乱数を発生させることができる、乱数発生回路、及び不揮発性半導体装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明は、上記課題を解決するためになされたものであり、本発明の乱数発生回路は、不揮発性メモリに搭載される乱数発生回路であって、複数の不揮発性メモリセルについての製造直後の閾値分布のばらつきの状態を検出し、該閾値分布のばらつきの状態に基づいて乱数を発生させることを特徴とする。
このような構成の乱数発生回路では、複数の不揮発性メモリセルについての製造直後の閾値分布のばらつきを検出して、乱数を生成する。
これにより、本発明の乱数発生回路は、ＬＦＳＲを用いた擬似乱数発生回路に比較して予測可能性が低い乱数を発生することができる。
【０００８】
また、本発明の不揮発性半導体装置は、上記の乱数発生回路を備えることを特徴とする。これにより、本発明の不揮発性半導体装置は、不揮発性メモリセルの製造直後の閾値分布のばらつきを検出して、ＬＦＳＲを用いた擬似乱数発生回路に比較して予測可能性が低い乱数を発生することができる。
【発明の効果】
【０００９】
本発明によれば、不揮発性メモリセルの製造直後の閾値分布のばらつきを検出することにより、予測可能性が低い乱数を発生させることができる。
【図面の簡単な説明】
【００１０】
【図１】この発明の一実施形態による不揮発性半導体装置１の構成を示すブロック図である。
【図２】ＮＡＮＤ型フラシュメモリによるメモリセルアレイ１０の構成例を示す図である。
【図３】本実施形態の不揮発性半導体装置１における乱数発生動作について説明するための図である。
【図４】ページバッファ１４Ａの構成例を示す図である。
【図５】Ｓ−ラッチ２１のデータをＣ−ラッチ２２へ退避する動作を説明するためのタイミングチャートである。
【図６】Ｃ−ラッチ２２に退避したデータをＳ−ラッチ２１へ戻す際の動作を説明するためのタイミングチャートである。
【図７】本実施形態の不揮発性半導体装置１における応用例を示すフローチャートである。
【図８】ＬＦＳＲを用いた擬似乱数発生回路の例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本発明の実施の形態について説明する。
（不揮発性半導体装置１の全体構成の説明）
図１は、この発明の一実施形態による不揮発性半導体装置１の構成を示すブロック図である。この図１に示す不揮発性半導体装置１は、ＮＡＮＤ型フラッシュメモリで構成される半導体記憶装置の例である。図１に示す不揮発性半導体装置１は、後述するように、乱数発生回路１８Ａを備える点に特徴がある。
【００１２】
図１に示すように、本実施形態に係る不揮発性半導体装置１は、主要な構成要素として、メモリセルアレイ１０と、制御回路１１と、ロウデコーダ（Ｘデコーダ）１２と、ページバッファコントロール１３と、ページバッファ群１４と、パスビット数カウンタ１５と、ライトステートマシーン１６と、乱数生成部１８と、Ｉ／Ｏバッファ（入出力バッファ回路）１８と、入出力端子となるＩ／Ｏパッド（入出力端子）２０と、を有して構成される。
なお、図１に示す不揮発性半導体装置１において、乱数発生回路１８Ａ（点線で囲まれる部分）は、乱数の発生に関係する主要な構成として、ページバッファコントロール１３、ページバッファ群１４、パスビット数カウンタ１５、ライトステートマシーン１６、及び電圧生成回路１７における乱数発生に関係する部分と、乱数生成部１８とを代表して示したものである。
【００１３】
メモリセルアレイ１０は、複数のスタックゲート構造のトランジスタ、すなわち電気的書き換え可能な不揮発性メモリセル（以下、単に「メモリセル」とも呼ぶ）をカラム方向（列方向）に直列接続して、ビット線毎に設けられたＮＡＮＤセルストリングを、行方向（ビット線の配列方向）に複数個配置したブロックから構成される。このブロックは、ビット線の配線方向に複数個配置される。また、このブロックは、メモリセルのデータの消去単位で設けられている。各ブロックにおいては、同一行に配置された不揮発性メモリセル各々のゲートには、ビット線に直交したワード線が接続される。
【００１４】
図２は、ＮＡＮＤ型フラシュメモリによるメモリセルアレイ１０の構成例を示す図である。より具体的には、メモリセルアレイ１０は、図２に示すように、Ｎ＋１本のビット線ＢＬ０〜ＢＬＮ（ビット線ＢＬで総称）と、ｎ＋１本のワード線ＷＬ０〜ＷＬｎ（ワード線ＷＬで総称）と、共通ソース線ＣＳＬと、各ビット線ＢＬと共通ソース線ＣＳＬとの間にそれぞれ接続されたＮ＋１個のメモリストリングＳＴ０〜ＳＴＮ（メモリストリングＳＴで総称）と、を備える。各メモリストリングＳＴは、互いに直列接続されたｎ＋１個のフローティングゲート構造の電気的書き換え可能な不揮発性メモリセルＭＣ０〜ＭＣｎを備え、ドレイン側のメモリセルＭＣｎは選択トランジスタＳＳ１を介して対応するビット線ＢＬに接続され、ソース側のメモリセルＭＣ０は選択トランジスタＧＳ１を介して共通ソース線ＣＳＬに接続される。また、同一行のメモリセルの制御ゲートは、共通のワード線ＷＬに接続されている。
【００１５】
図２に示すメモリセルアレイにおいて、メモリセルのイレース（消去）は、例えば、Ｎチャネル型のメモリセルＭＣ０〜ＭＣｎが形成されるＰ型ウェル領域に高電圧を印加し、ワード線ＷＬ０〜ＷＬｎに０Ｖを印加することにより行われる。これにより、例えばポリシリコンなどからなる電荷蓄積層であるフローティングゲートより電子を引き抜いて、メモリセルＭＣの閾値電圧を消去閾値電圧ＶｔＬ（例えば、−１Ｖ）に設定する。一方、書き込み（プログラム）においては、例えば、メモリセルのソース、及びドレインに０Ｖを与え、制御ゲート（選択したワード線ＷＬ）に高電圧を印加することにより、半導体基板よりフローティングゲートに電子を注入し、閾値電圧を上昇させて書込閾値電圧ＶｔＨに設定する。そして、例えば、メモリセルＭＣ０〜ＭＣｎの閾値電圧を閾値電圧ＶｔＬのままに保持することにより当該メモリセルのデータ値を「１」とし、閾値電圧を閾値電圧ＶｔＨに設定することにより当該メモリセルのデータ値を「０」とする。
【００１６】
また、メモリセルからデータを読み出すときには、全てのビット線ＢＬを所定の電圧でプリチャージした後に、閾値ＶｔＬとＶｔＨ間の読み出し電圧を、読み出し対象のメモリセルＭＣに共通に接続されたワード線ＷＬを介して、選択メモリセルの各制御ゲートに印加する。また、高電圧を、上記選択メモリセル以外のメモリセルＭＣおよび選択トランジスタＳＳ１，ＧＳ１の各制御ゲートに印加して、上記選択メモリセル以外のメモリセルＭＣならびに選択トランジスタＳＳ１，ＧＳ１を導通させる。従って、選択メモリセルのデータ値が「１」のときには、当該選択メモリセルにセル電流が流れる一方、選択メモリセルのデータ値が「０」のときには、当該選択メモリセルにセル電流が流れないので、セル電流が流れるか否かに基づいて、各選択メモリセルに書き込まれているデータを読み出すことができる。
なお、以下では、１つのワード線により選択されるメモリセルを「ページ」と称する。
【００１７】
図１に戻り、制御回路１１は、ロウデコーダ（Ｘデコーダ）１２、ページバッファコントロール１３、ページバッファ群１４、パスビット数カウンタ１５、ライトステートマシーン１６、及び乱数生成部１８等の動作を統括して制御する制御部であり、メモリセルアレイ１０からのデータの読み出しと、メモリセルアレイ１０へのデータの書き込み及び消去と、ベリファイ動作と、乱数発生動作とを行う際に、不揮発性半導体装置１の全体の動作を制御する。
【００１８】
ロウデコーダ１２は、Ｉ／Ｏバッファ１９から制御回路１１を通してアドレス信号を入力し、入力したアドレス信号をデコードし、データの読み出しと、書き込み及び消去と、ベリファイの対象となるメモリセルに接続されるワード線ＷＬを選択する機能を有する。また、ロウデコーダ１２は、電圧生成回路１７から電圧信号ＶＷＬを入力し、データの読み出し、書き込み、消去、及びベリファイ動作に応じた電圧をワード線ＷＬに印加する機能を備える。
【００１９】
ページバッファ群１４は、ページ単位のデータのプログラム及び読み出しを行うため、ページ単位のビット線毎に設けられたページバッファ１４Ａの複数から構成されている。このページバッファ群１４におけるページバッファ１４Ａの各々は、ビット線に接続され、接続されたビット線の電位を増幅して判定するセンスアンプ回路として用いるラッチ回路を有する。このページバッファ群１４内のページバッファ１４Ａにより、メモリセルアレイ１０からデータを読み出すと共に、メモリセルアレイ１０へのデータの書込制御を行う。
【００２０】
また、ページバッファコントロール１３は、入力されたアドレス信号に基づき、指定されたページバッファ１４Ａを選択するカラムデコーダの機能を有する。ここでは、ページバッファ群１４の全てのページバッファ１４Ａを選択する、すなわち１ページ分のデータが図に示す出力データバスＤＯＵＴＢＵＳ［ｎ：０］に読み出される。また、各ページバッファ１４Ａは、ページバッファコントロール１３から制御指令及びプリチャージ電圧の信号を入力し、メモリセルアレイ１０のビット線ＢＬにプリチャージ電圧を印加するプリチャージ回路を備える。
【００２１】
また、ページバッファ１４Ａは、メモリセルから読み出したデータを、出力データバス（ＤＯＵＴＢＵＳ）を通して、Ｉ／Ｏバッファ１９に出力する。また、ページバッファ１４Ａは、Ｉ／Ｏバッファ１９からメモリセルへの書き込みデータを入力し、メモリセルへのデータ書き込みを行う。なお、メモリセルからのデータの読み出し、メモリセルへのデータの書き込み及び消去は、ページバッファ１４Ａや、ロウデコーダ１２や、ページバッファコントロール１３等により行われる。
【００２２】
ページバッファコントロール１３は、ページバッファ群１４内のページバッファ１４Ａの動作を制御するための回路である。このページバッファコントロール１３は、メモリセルアレイ１０内のメモリセルに対するデータのプログラム、読み出し、消去などの動作、及びベリファイの動作の制御を行う。特に、ページバッファコントロール１３は、不揮発性メモリセルからのデータ読み出し（データ読み出し動作）、不揮発性メモリセルへのデータ書き込み動作（プログラム動作及びプログラムベリファイ動作）、不揮発性メモリセルのデータ消去動作（イレース動作及びその後のイレースベリファイ動作）において、ページバッファを制御するための制御信号をページバッファ１４Ａに対して出力する。また、ページバッファコントロール１３は、電圧生成回路１７から、メモリセルへのデータの読み出し、書き込み、及び消去に応じたビット線ＢＬの電圧信号ＶＢが入力され、この電圧信号ＶＢに基づいて制御信号をページバッファ１４Ａに出力する。
【００２３】
パスビット数カウンタ１５は、ページバッファコントロール１３及びページバッファ１４Ａにより行われるベリファイ動作の結果を基に、全体のベリファイビット数の内、何ビットがベリファイパスしたかを判定する。すなわち、パスビット数カウンタ１５は、ベリファイ読み出し時において、ベリファイパスと判定されたメモリセルのビット数（「パスセル数」とも呼ぶ）をカウントする。パスビット数カウンタ１５は、パスセル数の情報を信号ＰＢＮとして、ライトステートマシーン１６に出力する
【００２４】
ライトステートマシーン１６は、パスビット数カウンタ１５のカウント結果（パスセル数の情報）を基に、メモリセルアレイ１０内の不揮発性メモリセルに対するデータの書込み、消去、及びベリファイ動作等を、ページバッファコントロール１３を介して制御する。また、ライトステートマシーン１６は、電圧生成回路１７を制御し、この電圧生成回路１７は、不揮発性メモリセルに対するデータの書込み、消去、及びベリファイ動作時に使用する各種電圧を電源電圧から昇圧動作等により生成する。
【００２５】
この電圧生成回路１７は、メモリセルへのデータの読み出し、書き込み、消去、及びベリファイ動作に応じたビット線ＢＬの電圧信号ＶＢを生成し、この電圧信号ＶＢをページバッファ１４Ａに出力する。また、電圧生成回路１７は、メモリセルへのデータの読み出し、書き込み、消去、及びベリファイ動作に応じたワード線ＷＬの電圧を制御する電圧信号ＶＷＬを生成する。
特に、電圧生成回路１７から出力される電圧信号ＶＷＬには、後述するベリファイ動作により乱数を発生させる際に、ワード線ＷＬの電圧を変化させるための電圧信号が含まれる。
【００２６】
乱数発生回路１８Ａは、乱数の発生に関係する主要な部分として、ページバッファコントロール１３、ページバッファ群１４、パスビット数カウンタ１５、及びライトステートマシーン１６における乱数発生に関係する部分と、乱数生成部１８とを代表して示したものである。
【００２７】
この乱数発生回路１８Ａは、後述するように、製造直後の不揮発性メモリセルの特性の差異を利用して乱数を発生させる。乱数発生回路１８Ａは、製造直後の不揮発性メモリにおける、メモリセルのベリファイ動作時においてベリファイパスするメモリセルの割合が１／２（５０％）になるように、メモリセルに印加する電圧を制御することにより、製造直後の不揮発性メモリセルの特性の差異を利用して乱数を発生させる。
【００２８】
なお、図１に示す乱数発生回路１８Ａは、１ページ分の不揮発性メモリセル及びページバッファ１４Ａを使用して、１ページ分のビット長に相当する乱数を生成する例であるが、２ページ分の不揮発性メモリセル及びページバッファ１４Ａを使用して、２ページ分のビット長に相当する乱数を生成するようにしてもよく、また、３ページ分以上のビット長の乱数を発生させるようにしてもよい。さらに、１ページ分のビット長に相当する乱数から、所望のビット長（例えば、１２８バイト）の乱数を１又は２以上抽出するようにしてもよい。すなわち、乱数発生回路１８Ａは、複数の乱数を１組のセットとして発生するようにしてもよい。
【００２９】
乱数生成部１８は、乱数発生回路１８Ａにより生成された乱数をページバッファ１４Ａから読み込んで保持し、乱数Ｒａｎｄとして出力する。
【００３０】
Ｉ／Ｏバッファ１９は、データの入出力、アドレス信号の入力、及び動作制御コマンド等の入力に使用されるバッファ回路であり、このＩ／Ｏバッファ１９は、外部回路との接続端子となるＩ／Ｏパッド２０に接続される。この入出力バッファ２３は、外部から供給されるアドレスをページバッファ群１４及びロウデコーダ１２へ出力し、外部から供給されるコマンドを示すコマンドデータをページバッファコントロール１３及び制御回路１１へ出力する。また、Ｉ／Ｏバッファ１９は、外部から入力されるデータをページバッファ群１４のページバッファ１４Ａの各々へ出力、あるいはページバッファ１４Ａを介し、メモリセルアレイ１０から読み出されたデータを外部に出力する。
【００３１】
（乱数発生動作についての説明）
図３は、本実施形態の不揮発性半導体装置１における乱数発生動作について説明するための図である。
【００３２】
図３（Ａ）は、通常のプログラム／イレース（書込／消去）時のメモリセルの閾値Ｖｔの分布を示す図であり、ＳＬＣ（Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）の閾値Ｖｔの分布を示す図である。また、図３（Ｂ）は、製造直後のメモリセルの閾値Ｖｔの初期分布の例を示す図である。
この図３（Ａ）及び図３（Ｂ）のそれぞれにおいて、横軸は閾値Ｖｔの電圧レベルを示し、縦軸はメモリセル数を示している。
【００３３】
図３（Ａ）に示すように、メモリセルは、通常は、閾値Ｖｔがイレース基準電圧ＥＶ以下になるようにイレース（消去）が行われ、閾値分布が分布曲線Ａに示す状態になり、この状態においてデータ値「１」になる。また、メモリセルは、通常は、閾値Ｖｔがプログラム基準電圧ＰＶ以上になるようにプログラム（書込み）が行われ、閾値分布が分布曲線Ｂに示す状態になり、この状態においてデータ値「０」になる。
【００３４】
一方、図３（Ｂ）に示すように、製造直後のメモリセルは、その閾値分布が、符号Ｃで示すような初期分布曲線になる。この初期分布曲線Ｃに示すように、製造直後のメモリセルの閾値は、−側の電圧値ＶＬから＋側の電圧値ＶＨまで、広い分布幅を示す。
ここで、分布の中心がどの閾値になるかは、製造プロセス条件などにより異なる。本実施形態では、製造直後のメモリセルに対して、ワード線ＷＬの電圧（ベリファイ電圧）を変化させながら、ベリファイ動作とベリファイ判定動作とを繰り返し、ベリファイ電圧を、イレースセルと判定されるメモリセルが全体のメモリセルのビット数の１／２（５０％）になるようにする。
図３（Ｂ）において、符号ｎはベリファイの回数を示しており、この例では、ベリファイ電圧を、低い電圧値Ｖ０から、ベリファイ回数が増える毎に、一定の電圧ΔＶずつ上昇させて高い電圧値に変化させていく。これにより、ベリファイ回数が増えるにつれてイレースセルと判定されるメモリセル数が増えていくことになる。
【００３５】
（ベリファイ動作による乱数発生）
以下、図３（Ｂ）を参照して、本実施形態の不揮発性半導体装置１（より正確には乱数発生回路１８Ａ）における、ベリファイ動作により乱数を発生させる場合の動作について説明する。
なお、図３（Ｂ）に示す例では、ベリファイ動作によりイレースセルと判定されるメモリセルを増加させるため、以下の説明において、イレースセルと判定されるメモリセルを「パスセル」と呼び、イレースセルと判定されないメモリセル（プログラムセル）を「フェイルセル」と呼ぶことがある。また、イレースセルと判定されたメモリセル数を「パスビット数」と呼ぶことがある。
【００３６】
最初に、不揮発性半導体装置１は、ベリファイ動作時のワード線ＷＬの電圧（ベリファイ電圧）を、イレース基準電圧ＥＶと同じかそれに近い電圧値Ｖ０に設定する（ｎ＝０）し、１回目（ｎ＝０）のベリファイ動作を行う。
続いて、不揮発性半導体装置１は、この１回目のベリファイ動作の結果から、パスビット数カウンタ１５によりイレースセルと判定されるメモリセル（パスビット数）が、全体のメモリセルのビット数の１／２（５０％）になったか否かを判定する。
【００３７】
不揮発性半導体装置１は、１回目のベリファイ動作においてパスビット数が全体のメモリセルのビット数の１／２（５０％）以下であると判定された場合は、続いて、ベリファイ電圧を、電圧値Ｖ０から一定値ΔＶだけ上昇させた電圧値Ｖ１とし、２回目（ｎ＝１）のベリファイ動作を行い、この２回目のベリファイ動作の結果から、パスビット数が、全体のメモリセルのビット数の１／２（５０％）になったか否かを判定する。
【００３８】
以降、不揮発性半導体装置１は、ベリファイ電圧を一定電圧ΔＶずつ上昇させながら、ベリファイ動作とパスビット数の判定とを繰り返して行い、ベリファイ電圧が電圧値ＶＭとなるＭ＋１回目（ｎ＝Ｍ）のベリファイ動作により、パスビット数が全体のメモリセルのビット数の予め設定された所定の割合を超えた時に、ベリファイ動作を停止する。所定の割合は、例えば、１／２、或いは１／２の近傍の値に設定される。
【００３９】
このＭ回目のベリファイ動作において、ページバッファ１４Ａ内のラッチ回路（図４のＳ−ラッチ２１を参照）に格納されているパスセル・フェイルセルの情報は、１／２がパスセルを示し、１／２がフェイルセルを示していることになる。すなわち、イレースセルと判定されるメモリセルが１／２（５０％）になり、プログラムセルと判定されるメモリセルが、全ビット数の１／２（５０％）になる。
【００４０】
ここで、製造直後のメモリセルの閾値分布は、製造時の特性のばらつきや、物理的なゆらぎなどにより決定され、製造者やユーザが容易に想像することは不可能である。このため、Ｍ回目（ｎ＝Ｍ）のベリファイ動作により、ページバッファ１４Ａに格納されているデータは、ＬＦＳＲで生成する乱数などとは異なり、予測可能性が極めて低い乱数となる。
【００４１】
なお、上述した図３（Ｂ）に示す例では、パスビット数が全体のメモリセルのビット数の１／２（５０％）を超えた時にベリファイ動作を停止し、この時のパスセルとフェイルセルの分布の情報を基に乱数を生成するようにしているが、これに限定されず、パスビット数の割合は、例えば、３０％、４０％、５０％、６０％、７０％など任意の割合に設定することができる。
【００４２】
さらに、図３（Ｂ）に示す例では、ベリファイ電圧を電圧が低い側（ＶＬ側）から次第に上昇させて、イレースセルと判定されるメモリセルの数を判定しているが、逆に、ベリファイ電圧を電圧が高い側（ＶＨ側）から次第に下降させて、プログラムセルと判定されるメモリセルが、全ビット数の１／２（５０％）以上になるようにベリファイ電圧を変化させるようにしてもよい。
【００４３】
ところで、上記乱数発生動作により、乱数を発生させてページバッファ１４Ａに格納することができるが、乱数の発生に使用したメモリセルは、その閾値分布が、例えば、図３（Ｂ）の初期分布曲線Ｃであり、図３（Ａ）に示すような正規の閾値分布曲線とは異なる。このため、メモリセルの１／２がベリファイパスした直後の状態で、再度メモリセルのデータの読み出しを行なっても、読み出しに必要なマージンが得られないため、同一のデータが読み出されるとは限らないことになる。従って、メモリセルの閾値分布を、図３（Ａ）に示すような正規の閾値分布になるように書き換える必要がある。このため、本実施形態の不揮発性半導体装置１では、ページバッファ１４Ａは、次に説明する構成を備えている。
【００４４】
［ページバッファの回路構成］
図４は、ページバッファ１４Ａの構成例を示す図である。図４では、１本のビット線（ＢＬｉ）に対応するページバッファ１４Ａの一例を示している。この図４に示すページバッファ１４Ａは、ＳＬＣのページバッファ回路として用いられる回路である。
【００４５】
ページバッファ１４Ａは、データ書き込み時のビット線ＢＬｉへの電位供給を制御するとともに、読み出し時のセンスデータをラッチするＳ−ラッチ２１（図上で左側のラッチ回路）と、キャッシュプログラム時に、キャッシュデータを格納するＣ−ラッチ２２（図上で右側のラッチ回路）とで構成される。また、他に、Ｓ−ラッチ２１とＣ−ラッチ２２との間でデータを転送するためのトランジスタ、メモリセルへのデータ書き込み時にＳ−ラッチ２１からビット線への電圧供給を行うトランジスタ、メモリセルからの読み出し時に、ビット線ＢＬｉの電圧を基にセンス動作を行い、Ｓ−ラッチ２１へデータを格納するためのトランジスタ、外部からＣ−ラッチ２２へデータを入出力するためのトランジスタなどで構成される。
【００４６】
より具体的には、この図４に示すページバッファ１４Ａは、トランジスタ３１〜５０と、Ｓ−ラッチ２１と、Ｃ−ラッチ２２と有して構成されている。
ここで、トランジスタ３１、トランジスタ３２、及びトランジスタ４３は、Ｐチャネル型ＭＯＳ（Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）トランジスタであり、それ以外のトランジスタは、Ｎチャネル型ＭＯＳトランジスタである。
【００４７】
また、Ｓ−ラッチ２１は、インバータ回路ＩＶＳ１、及びインバータ回路ＩＶＳ２から構成される。ここで、インバータ回路ＩＶＳ１は、出力端子が接続点（ノード）ＮＳ２においてインバータ回路ＩＶＳ２の入力端子に接続され、入力端子が接続点ＮＳ１においてインバータ回路ＩＶＳ２の出力端子に接続される。また、Ｃ−ラッチ２２は、インバータ回路ＩＶＣ１、及びインバータ回路ＩＶＣ２から構成される。ここで、インバータ回路ＩＶＣ１は、出力端子が接続点ＮＣ２においてインバータ回路ＩＶＣ２の入力端子に接続され、入力端子が接続点ＮＣ１においてインバータ回路ＩＶＣ２の出力端子に接続される。
【００４８】
トランジスタ３１は、ソースが電源配線に接続され、ゲートが接続点ＮＳ１に接続され、ドレインがトランジスタ３２のソースに接続される。
トランジスタ３２は、ソースがトランジスタ３１のドレインに接続され、ゲートが制御信号ＢＬＰＣの配線に接続され、ドレインがトランジスタ３３のドレイン、及び接続点ＳＯに接続される。
トランジスタ３３は、ドレインが接続点ＳＯに接続され、ゲートが制御信号ＳＯＧＮＤの配線に接続され、ソースがトランジスタ３４のドレインに接続される。
トランジスタ３４は、ドレインがトランジスタ３３のソースに接続され、ゲートが接続点ＮＳ１に接続され、ソースが接地される。
【００４９】
トランジスタ３５は、ドレインが接続点ＮＳ１に接続され、ゲートが制御信号ＳＥＴＳの配線に接続され、ソースが接続点ＸＳ１に接続される。
トランジスタ３７は、ドレインが接続点ＮＳ２に接続され、ゲートが制御信号ＲＳＴＳの配線に接続され、ソースが接続点ＸＳ１及びトランジスタ３８のドレインに接続される。
【００５０】
トランジスタ３８は、ドレインが接続点ＸＳ１及びトランジスタ３７のソースに接続され、ソースが接地される。
トランジスタ３９は、ドレインが接続点ＳＯに接続され、ゲートが制御信号ＴＲＡＮＳの配線に接続され、ソースがトランジスタ４０のドレインに接続される。
トランジスタ４０は、ドレインがトランジスタ３９のソースに接続され、ゲートが接続点ＮＳ２に接続され、ソースが接地される。
トランジスタ４１は、ドレインがビット線ＢＬｉに接続され、ゲートが制御信号ＢＬＳＬＴの配線に接続され、ソースが接続点ＳＯに接続される。トランジスタ４２は、ドレインがビット線ＢＬｉに接続され、ゲートが制御信号ＰＤＩＳの配線に接続され、ソースが接地される。
【００５１】
トランジスタ４３は、ソースが電源配線に接続され、ゲートが制御信号ＬＯＡＤの配線に接続され、ドレインが接続点ＳＯに接続される。
トランジスタ４４は、ドレインが接続点ＮＣ１に接続されゲートが制御信号ＳＥＴＣの配線に接続され、ソースが接続点ＸＣ１及びトランジスタ４５のドレインに接続される。
トランジスタ４５は、ドレインが接続点ＸＣ１及びトランジスタ４４のソースに接続され、ゲートが制御信号ＤＩＥＮの配線に接続され、ソースがデータ入力端子ＤＩＮに接続される。
トランジスタ４６は、ドレインが接続点ＮＣ２に接続され、ゲートが制御信号ＲＳＴＣの配線に接続され、ソースが接続点ＸＣ１及びトランジスタ４７のドレインに接続される。
トランジスタ４７は、ドレインが接続点ＸＣ１及びトランジスタ４６のソースに接続され、ゲートが接続点ＳＯに接続され、ソースが接地される。
【００５２】
トランジスタ４８は、ドレインが接続点ＳＯに接続され、ゲートが制御信号ＴＲＡＮＣの配線に接続され、ソースがトランジスタ４９のドレインに接続される。トランジスタ４９は、ドレインがトランジスタ４８のソース及びトランジスタ５０のドレインに接続され、ゲートが接続点ＮＣ２に接続される。
トランジスタ５０は、ドレインがトランジスタ４８のソース及びトランジスタ４９のドレインに接続され、ゲートが制御信号ＤＯＥＮの配線に接続され、ソースが出力信号線の端子ＤＯＵＴに接続される。
【００５３】
上記構成のページバッファ１４Ａは、Ｓ−ラッチ２１側の回路と、このＳ−ラッチ２１側の回路と類似するＣ−ラッチ２２側の回路との２つの回路を主要な要素として構成されている。以下では、ページバッファ１４Ａについて、メモリセルに対するデータ読み出し動作、プログラム動作、及びイレース動作等の各々の動作における通常の動作については、その説明を省略し、本発明に直接関係するＳ−ラッチ２１に保持されたデータのＣ−ラッチ２２へ退避する動作、及びＣ−ラッチ２２に退避したデータをＳ−ラッチ２１に戻す動作についてのみ説明する。
【００５４】
本実施形態の不揮発性半導体装置１においては、乱数発生回路１８Ａにより生成された乱数のデータは、図４に示すページバッファ１４Ａ内のＳ−ラッチ２１に保持される。ページバッファ１４Ａは、このＳ−ラッチ２１に保持したデータを、一旦、Ｃ−ラッチ２２に退避した後に、乱数発生に用いたメモリセルをイレースする。このメモリセルをイレースした後に、ページバッファ１４Ａは、Ｃ−ラッチ２２に退避したデータをＳ−ラッチ２１に戻し、このＳ−ラッチ２１に戻したデータを再びメモリセルに書き込む。これにより、メモリセルに乱数のデータが確実に保持される。
【００５５】
以下、図５及び図６を参照して、Ｓ−ラッチ２１からＣ−ラッチ２２へのデータの退避動作と、Ｃ−ラッチ２２からＳ−ラッチ２１へのデータの戻し動作について説明する。
【００５６】
図５は、Ｓ−ラッチ２１のデータをＣ−ラッチ２２へ退避する動作を説明するためのタイミングチャートである。この図５は、横方向に時間の経過を示し、縦方向に、制御信号ＬＯＡＤと、制御信号ＴＲＡＮＳと、接続点ＳＯのノード電位と、制御信号ＲＳＴＣと、制御信号ＳＥＴＣと、接続点ＮＣ１のノード電位と、接続点ＮＣ２のノード電位とを、並べて示したものである。また、それぞれの信号のレベルを、１（「Ｈ」レベル）または０（「Ｌ」レベル）で示したものである。
また、期間Ｔ１は、接続点ＳＯのプリチャージ期間を示し、期間Ｔ２は、Ｃ−ラッチ２２のリセット期間を示し、期間Ｔ３は、Ｓ−ラッチから接続点ＳＯへのデータ転送期間を示し、期間Ｔ４は、接続点ＳＯからＣ−ラッチへのデータ転送期間を示している。
【００５７】
図５を参照して、最初に、期間Ｔ１において、トランジスタ４３のゲートに印加される制御信号ＬＯＡＤが「Ｌ」レベルになることにより、トランジスタ４３がオンになり、接続点ＳＯが「Ｈ」レベルにプリチャージされる。
その後、期間Ｔ２に至り、Ｃ−ラッチ２２側のトランジスタ４６のゲートに印加される制御信号ＲＳＴＣが「Ｈ」レベルになることにより、接続点ＮＣ１が「Ｈ」レベルにセットされ、接続点ＮＣ２が「Ｌ」レベルにセットされる。
【００５８】
その後、期間Ｔ３に至り、トランジスタ３９のゲートに印加される制御信号ＴＲＡＮＳが「Ｈ」レベルになることにより、接続点ＳＯのノード電位が、接続点ＮＳ２のノード電位に応じて、「Ｈ」レベル（実線で示す波形）又は「Ｌ」レベル（点線で示す波形）に変化する。
より具体的には、接続点ＳＯは、接続点ＮＳ１のノード電位が「Ｈ」であり接続点ＮＳ２のノード電位が「Ｌ」レベルの場合（ＮＳ１／ＮＳ２＝１／０の場合）に、「Ｈ」レベルになる。また、接続点ＳＯは、接続点ＮＳ１のノード電位が「Ｌ」であり接続点ＮＳ２のノード電位が「Ｈ」レベルの場合（ＮＳ１／ＮＳ２＝０／１の場合）に、「Ｌ」レベルになる。
【００５９】
続いて、期間Ｔ４に至り、トランジスタ４４のゲートに印加される制御信号ＳＥＴＣが「Ｈ」レベルになり、トランジスタ４６のゲートに印加される制御信号ＲＳＴＣが「Ｌ」レベルであることにより、接続点ＳＯのノード電位（「Ｈ」レベル又は「Ｌ」レベル）に応じた電位が、Ｃ−ラッチ２２に設定される。
例えば、期間Ｔ４において、接続点ＳＯのノード電位が「Ｈ」レベルである場合は、実線で示すように、Ｃ−ラッチ２２の接続点ＮＣ１が「Ｌ」レベルとなり、接続点ＮＣ２が「Ｈ」レベルとなる。一方、期間Ｔ４において、接続点ＳＯのノード電位が「Ｌ」レベルである場合は、点線で示すように、Ｃ−ラッチ２２の接続点ＮＣ１が「Ｈ」レベルとなり、接続点ＮＣ２が「Ｌ」レベルとなる。
【００６０】
このように、接続点ＳＯのノード電位は、Ｓ−ラッチ２１の接続点ＮＳ２のノード電位により「Ｈ」レベル又は「Ｌ」レベルに変化し、また、接続点ＳＯのノード電位（「Ｈ」レベル又は「Ｌ」レベル）に応じて、Ｃ−ラッチ２２の接続点ＮＣ２のノード電位が変化する。これにより、Ｓ−ラッチ２１に保持されたデータを、Ｃ−ラッチ２２に退避することができる。
【００６１】
また、図６は、Ｃ−ラッチ２２に退避したデータをＳ−ラッチ２１へ戻す際の動作を説明するためのタイミングチャートである。この図６において、期間Ｔ１は、接続点ＳＯのプリチャージ期間を示し、期間Ｔ２は、Ｓ−ラッチ２１のリセット期間を示し、期間Ｔ３は、Ｃ−ラッチから接続点ＳＯへのデータ転送期間を示し、期間Ｔ４は、接続点ＳＯからＳ−ラッチへのデータ転送期間を示している。
【００６２】
図６を参照して、最初に、期間Ｔ１において、トランジスタ４３のゲートに印加される制御信号ＬＯＡＤが「Ｌ」レベルになることにより、トランジスタ４３がオンになり、接続点ＳＯが「Ｈ」レベルにプリチャージされる。
その後、期間Ｔ２に至り、Ｓ−ラッチ２１側のトランジスタ３７のゲートに印加される制御信号ＲＳＴＳが「Ｈ」レベルになることにより、接続点ＮＳ１が「Ｈ」レベルにセットされ、接続点ＮＳ２が「Ｌ」レベルにセットされる。
【００６３】
その後、期間Ｔ３に至り、トランジスタ４８のゲートに印加される制御信号ＴＲＡＮＣが「Ｈ」レベルになることにより、接続点ＳＯのノード電位が、接続点ＮＣ２のノード電位に応じて、「Ｈ」レベル（実線で示す波形）又は「Ｌ」レベル（点線で示す波形）に変化する。より具体的には、接続点ＳＯは、接続点ＮＣ２のノード電位が「Ｈ」レベルの場合に「Ｌ」レベルになり、接続点ＮＣ２のノード電位が「Ｌ」レベルの場合に「Ｈ」レベルなる。
【００６４】
続いて、期間Ｔ４に至り、トランジスタ３５ゲートに印加される制御信号ＳＥＴＳが「Ｈ」レベルになり、トランジスタ３７のゲートに印加される制御信号ＲＳＴＳが「Ｌ」レベルであることにより、接続点ＳＯのノード電位（「Ｈ」レベル又は「Ｌ」レベル）に応じた電位が、Ｓ−ラッチ２１に設定される。
【００６５】
例えば、期間Ｔ４において、接続点ＳＯのノード電位が「Ｈ」レベルである場合は、実線で示すように、Ｓ−ラッチ２１の接続点ＮＳ１が「Ｌ」レベルとなり、接続点ＮＳ２が「Ｈ」レベルとなる。
一方、期間Ｔ４において、接続点ＳＯのノード電位が「Ｌ」レベルである場合は、点線で示すように、Ｓ−ラッチ２１の接続点ＮＳ１が「Ｈ」レベルとなり、接続点ＮＳ２が「Ｌ」レベルとなる。
【００６６】
このように、接続点ＳＯのノード電位は、Ｃ−ラッチ２２の接続点ＮＣ２のノード電位により「Ｈ」レベル又は「Ｌ」レベルに変化し、また、接続点ＳＯのノード電位（「Ｈ」レベル又は「Ｌ」レベル）に応じて、Ｓ−ラッチ２１の接続点ＮＳ２のノード電位が変化する。これにより、Ｃ−ラッチ２２に退避したデータを、Ｓ−ラッチ２１側に戻すことができる。
【００６７】
［応用例］
次に、図４に示すページバッファ１４Ａを用いた応用例について説明する。図７は、本実施形態の不揮発性半導体装置１における応用例を示すフローチャートである。この応用例では、メモリセルのパス・フェイル情報（乱数のデータ）を、Ｓ−ラッチ２１からＣ−ラッチ２２に転送した後、一旦、イレース動作により、メモリセル（例えば、乱数発生に使用したメモリセル）を消去状態にした後、Ｃ−ラッチ２２のデータをＳ−ラッチ２１に再度転送し、その後、Ｓ−ラッチ２１のデータをメモリセルに書き込む。
これにより、メモリセルに書き込んだ乱数のデータについて、メモリセルの閾値の分布は、図３（Ａ）で示した通常の分布と同等となる。
【００６８】
すなわち、ベリファイ動作においてメモリセルの所定の割合、例えば５０％がパスセル（イレースセルと判定されたメモリセル）となり、ページバッファ１４Ａ内に乱数を生成した直後の状態において、再度、メモリセルのデータの読み出しを行っても、読み出しに必要なマージンが得られないため、同一のデータが読み出されるとは限らない。そこで、本応用例を用いることにより、発生させた乱数を確実にメモリセルに記憶させ、十分なマージンを持って乱数を読み出すことができる。
【００６９】
図７は、上述した応用例における処理の流れをフローチャートで示したものである。以下、図７のフローチャートを参照して、その処理の流れについて説明する。
乱数発生回路１８Ａは、ベリファイ電圧を１回目の電圧（例えば、図３に示す電圧値Ｖ１）に設定し、１ページ分のメモリセルに対してベリファイ動作を行う（ステップＳ１０１）。
このステップＳ１０１の処理に続いて、乱数発生回路１８Ａは、パスビット数カウンタ１５により、パスビット数の割合が全ビット数の５０％以上であるか否かを判定する（ステップＳ１０２）。すなわち、ベリファイ動作において、イレースセルと判定されるメモリセルが全ビット数の１／２（５０％）以上であるか否かを判定する。
【００７０】
そして、ステップＳ１０２の処理において、パスビット数（イレースセルと判定されるメモリセル数）が５０％以上でないと判定された場合に（ステップＳ１０２：Ｎｏ）、乱数発生回路１８Ａは、電圧生成回路１７によりベリファイ電圧を一定電圧ΔＶだけ増加させ（ステップＳ１０３）、ステップＳ１０１の処理に戻り、再度、メモリセルへのベリファイ動作を開始する。
【００７１】
一方、ステップＳ１０２の処理において、パスビット数が５０％以上であると判定された場合に（ステップＳ１０２：Ｙｅｓ）、乱数発生回路１８Ａは、メモリセルのベリファイ動作を停止し、ステップＳ１０４の処理に移行する。このステップＳ１０４の処理により、乱数発生回路１８Ａは、ページバッファ１４Ａにおいて、Ｓ−ラッチ２１に保持されたデータをＣ−ラッチ２２に転送（退避）する（ステップＳ１０４）。
なお、ステップＳ１０４の処理により、Ｓ−ラッチ２１に保持されたデータをＣ−ラッチ２２に転送（退避）するのは、次のステップＳ１０５及びＳ１０６のメモリセルのイレース（消去）動作において、Ｓ−ラッチ２１が使用され、このＳ−ラッチ２１に保持した乱数のデータが失われるためである。
【００７２】
ステップＳ１０５においてメモリセルのイレース動作（消去動作）が開始された後、乱数発生回路１８Ａは、このイレース動作（消去動作）を、メモリセルの全ビットパス、すなわち全ビットのイレースが完了するまで繰り返す（ステップＳ１０５，Ｓ１０６，Ｓ１０７）。なお、このステップＳ１０６のベリファイ動作において使用されるベリファイ電圧は、通常のイレース基準電圧ＥＶ(図３（Ａ）を参照)である。
【００７３】
そして、ステップＳ１０７の処理において、メモリセルの全ビットパスと判定された場合に（ステップＳ１０７：Ｙｅｓ）、乱数発生回路１８Ａは、ステップＳ１０８の処理に移行し、ページバッファ１４Ａにおいて、Ｃ−ラッチ２２に退避したデータをＳ−ラッチ２１に転送する（ステップＳ１０８）。
このステップＳ１０８の処理の終了後にステップＳ１０９の処理に移行し、乱数発生回路１８Ａは、ページバッファコントロール１３及びページバッファ１４Ａにより、Ｓ−ラッチ２１に保持されたデータのメモリセルへの書込み動作とベリファイ動作とを、全ビットの書込みが完了するまで行う（ステップＳ１０９，Ｓ１１０，Ｓ１１１）。
【００７４】
そして、乱数発生回路１８Ａは、Ｓ−ラッチ２１に保持されたデータのメモリセルへの書込みが完了した場合に（ステップＳ１１１：Ｙｅｓ）、メモリセルへの乱数データの格納処理を完了して終了する。
このように、図７に示す応用例では、メモリセルのベリファイ動作により乱数を発生させることができるとともに、発生させた乱数のデータをそのまま確実にメモリセルに記憶できる。また、乱数発生回路１８Ａは、十分なマージンを持ってメモリセルから乱数を読み出して、出力することができる。
【００７５】
以上、説明したように、本実施形態の不揮発性半導体装置１では、乱数発生回路１８Ａにより、メモリセルの閾値の初期分布のばらつきを検出して、予測可能性が極めて低い乱数を発生することが可能となる。このため、不揮発性半導体装置１では、この乱数を暗号演算などに利用することにより、セキュリティレベルを向上させることができる。さらに、不揮発性半導体装置１では、生成した乱数を、メモリセルアレイ１０にそのまま格納することができる。このため、本実施形態の不揮発性半導体装置１では、複雑な回路を用意することなく、予測可能性が極めて低い乱数を簡単に生成して保持することができる。
【００７６】
以上、本発明の実施の形態について説明したが、ここで、本発明と上述した実施形態との対応関係について補足して説明しておく。すなわち、上記実施形態において、本発明における不揮発性半導体装置は、不揮発性半導体装置１が対応し、また、本発明における乱数発生回路は、図１に示す不揮発性半導体装置１において、乱数発生回路１８Ａが対応する。
この乱数発生回路１８Ａは、乱数の発生に関係する主要な部分として、ページバッファコントロール１３、ページバッファ群１４、パスビット数カウンタ１５、ライトステートマシーン１６、及び電圧生成回路１７における乱数発生に関係する部分と、乱数生成部１８とを代表して示したものである。
また、本発明における不揮発性メモリセルは、メモリセルアレイ１０中の不揮発性メモリセルが対応し、本発明におけるページバッファは、ページバッファ１４Ａが対応する。また、本発明における第１ラッチ回路は、図４に示すＳ−ラッチ２１が対応し、本発明における第２ラッチ回路は、Ｃ−ラッチ２２が対応する。
【００７７】
そして、上記実施形態において、本発明の乱数発生回路１８Ａは、不揮発性メモリに搭載される乱数発生回路１８Ａであって、複数の不揮発性メモリセルについての製造直後の閾値分布のばらつきの状態を検出し、該閾値分布のばらつきの状態に基づいて乱数を発生させる。
このような構成の乱数発生回路１８Ａでは、複数の不揮発性メモリセルについての製造直後の閾値分布のばらつきの状態を検出して、乱数を生成する。
これにより、本発明の乱数発生回路１８Ａは、予測可能性が低い乱数を発生することができる。
【００７８】
また、上記実施形態において、本発明の乱数発生回路１８Ａは、複数の不揮発性メモリセルについて製造直後のイレースセルとプログラムセルとの分布の情報を、ベリファイ動作を行って生成し、生成した分布の情報に基づいて乱数を発生させる。
このような構成の乱数発生回路１８Ａでは、製造直後の不揮発性メモリセルに対してベリファイ動作を行い、イレースセルと判定されるメモリセルと、プログラムセルと判定されるメモリセルとの分布の状態を検出する。そして、このイレースセルとプログラムセルとの分布の状態の情報に基づいて乱数を生成する。
これにより、本発明の乱数発生回路１８Ａは、不揮発性メモリセルの製造直後の閾値分布のばらつきの状態を検出して、予測可能性が低い乱数を発生することができる。
【００７９】
また、上記実施形態において、本発明の乱数発生回路１８Ａは、ベリファイ動作において、複数の不揮発性メモリセルのワード線に印加するベリファイ電圧を、所定の初期電圧値から、予め設定された所定の割合以上の不揮発性メモリセルがベリファイパスする電圧値に向けて徐々に変更し、ベリファイパスする不揮発性メモリセルが所定の割合以上になった時に、ベリファイパスする不揮発性メモリセルとベリファイフェイルする不揮発性メモリセルとの分布の状態に基いて乱数を発生させる。
このような構成の乱数発生回路１８Ａでは、複数の不揮発性メモリセルのワード線に印加するベリファイ電圧を徐々に変化させ、例えば、イレースセルとしてベリファイパスするメモリセルの割合が所定の割合（例えば、５０％）以上になるようにする。そして、イレースセルが所定の割合以上（例えば、５０％以上）になった時に、この時のイレースセルとプログラムセルとの分布の状態を検出し、この分布の状態の情報を基に乱数を生成する。
これにより、例えば、所定の割合（例えば、５０％）のイレースセル（データ値「１」）を含む乱数を生成することができる。
【００８０】
また、上記実施形態において、本発明の乱数発生回路１８Ａは、複数の不揮発性メモリセルは、１ページ分の不揮発性メモリセルであって、それぞれのメモリセルに対応して１つのページバッファが設けられ、１ページ分の不揮発性メモリセルについてのベリファイ動作により、ベリファイパスする不揮発性メモリセルが所定の割合を超えたと判定された時に、ページバッファに読み出されたデータを乱数として保持する。
このような構成の乱数発生回路１８Ａでは、乱数を発生させるために使用する複数の不揮発性メモリセルとして、１ページ分の不揮発性メモリセルを使用する。
これにより、乱数発生回路１８Ａは、１ページのビット長に相当する乱数を生成することができる。
【００８１】
また、上記実施形態において、本発明の乱数発生回路１８Ａは、上記ベリファイ動作において、ワード線の電圧ＷＬは、予め設定した初期電圧であってイレースセルと判定される不揮発性メモリセルが所定の割合以下となる第１レベルから、イレースセルと判定される不揮発性メモリセルが所定の割合以上となる第２レベルに向けて徐々に変更され、上記ベリファイ動作において、イレースセルと判定される不揮発性メモリセルの割合が所定の割合を超えたと判定された場合に、イレースセルとプログラムセルとの分布の情報を検出する。
このような構成の乱数発生回路１８Ａでは、ベリファイ動作時のワード線ＷＬの電圧（ベリファイ電圧）を、所定の割合（例えば、５０％）以下の不揮発性メモリセルのみがイレースセルと判定される第１レベル（例えば、図３に示す電圧値Ｖ０）から、所定の割合（例えば、５０％）以上の不揮発性メモリセルがイレースセルと判定される第２レベル(例えば、図３に示す電圧値ＶＭ)に向けて徐々に変更する。そして、イレースセルと判定されるメモリセルの割合が所定の割合（例えば、５０％）に到達した場合に、ベリファイ動作を停止し、イレースセルとプログラムセルとの分布の情報を検出する。
これにより、乱数発生回路１８Ａは、ベリファイ動作時のワード線ＷＬの電圧を徐々に変更させながら、イレースセルと判定されるメモリセルの割合が所定の割合（例えば、５０％）になるようにして、乱数を生成することができる。このため、乱数発生回路１８Ａは、乱数発生のための特別な回路を用意することなく、簡易な方法により乱数を発生させることができる。
【００８２】
また、上記実施形態において、乱数発生回路１８Ａは、前記ページバッファが、ページバッファに読み出された不揮発性メモリセルのデータを保持する第１ラッチ回路（Ｓ−ラッチ２１）と、第１ラッチ回路（Ｓ−ラッチ２１）のデータを退避して保持するための第２ラッチ回路Ａ（Ｃ−ラッチ２２）と、を備え、ベリファイ動作においてイレースセルと判定される不揮発性メモリセルが所定の割合（例えば、５０％）を超えたと判定された場合に、該ベリファイ動作を終了し、ベリファイ動作の終了後に、第１ラッチ回路（Ｓ−ラッチ２１）から第２ラッチ回路（Ｃ−ラッチ２２）へデータを退避し、このデータの退避後に不揮発性メモリセルをイレースし、不揮発性メモリセルのイレース後に、第２ラッチ（Ｃ−ラッチ２２）に退避したデータを第１ラッチ回路（Ｓ−ラッチ２１）に戻し、第１ラッチ回路（Ｓ−ラッチ２１）に戻されたデータを不揮発性メモリセルに書き戻す。
このような構成の乱数発生回路１８Ａでは、生成した乱数を不揮発性メモリセルに再度書き込んで保持する。
これにより、乱数発生回路１８Ａでは、生成した乱数を、メモリセルアレイ１０にそのまま格納することができるとともに、生成した乱数を確実に保持して読み出すことができる。
【００８３】
以上、本発明の実施の形態について説明したが、本発明の乱数発生回路及び不揮発性半導体装置は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
例えば、上述した実施形態では、不揮発性メモリセルがＳＬＣである不揮発性半導体装置の例について説明したが、本発明の乱数発生回路は、不揮発性メモリセルがＭＬＣ（Ｍｕｌｔｉ  Ｌｅｖｅｌ  Ｃｅｌｌ）である不揮発性半導体装置においても実現可能である。
【符号の説明】
【００８４】
１…不揮発性半導体装置、１０…メモリセルアレイ、１１…制御回路、１２…ロウデコーダ、１３…ページバッファコントロール、１４…ページバッファ群、１４Ａ…ページバッファ、１５…パスビット数カウンタ、１６…ライトステートマシーン、１７…電圧生成回路、１８…乱数生成部、１８Ａ…乱数発生回路、１９…Ｉ／Ｏバッファ、２０…Ｉ／Ｏパッド
【図１】
2014021530.tif 000003
【図２】
2014021530.tif 000004
【図３】
2014021530.tif 000005
【図４】
2014021530.tif 000006
【図５】
2014021530.tif 000007
【図６】
2014021530.tif 000008
【図７】
2014021530.tif 000009
【図８】
2014021530.tif 000010