(57)【特許請求の範囲】
【請求項１】
閾値電圧が可変のトランジスタを有するメモリセルが複数配列されたメモリアレイを備え、
前記メモリアレイに含まれる複数のメモリセルは、各々が２個のメモリセルを有する複数のツインセルにグループ化され、
前記複数のツインセルの各々は、一方のメモリセルの閾値電圧が他方のメモリセルの閾値電圧よりも高い状態に設定されることによって相補データを記憶し、
さらに、前記複数のツインセルの一部である複数の選択ツインセルを選択する選択回路と、
前記複数の選択ツインセルの各々について、一方のメモリセルの閾値電圧が前記複数の選択ツインセルに対して共通に設定された基準値より高く、他方のメモリセルの閾値電圧が前記基準値より低いという第１の条件が成立するか否かを判定する第１の判定部と、
前記複数の選択ツインセルの全てが前記第１の条件を満たすという第２の条件が成立するか否かを判定する第２の判定部と、
前記第２の判定部の判定結果に基づいて、前記複数の選択ツインセルの各々が相補データを記憶していないブランク状態であるか否かを判定する第３の判定部とを備える、半導体装置。
【請求項２】
前記第３の判定部は、前記基準値を所定の範囲内で連続的または離散的に変化させ、いずれの大きさの前記基準値についても前記第２の条件が不成立の場合に、前記複数の選択ツインセルの各々はブランク状態であると判定する、請求項１に記載の半導体装置。
【請求項３】
前記トランジスタは、
半導体基板に設けられたチャネル領域と、
前記チャネル領域上に絶縁膜を介して形成された電荷蓄積部と、
前記電荷蓄積部上に絶縁膜を介して形成されたゲート電極とを有し、
前記トランジスタの閾値電圧は、前記電荷蓄積部に蓄積された電荷に応じて変化し、
前記半導体装置は、
前記基準値に対応して変化する制御電圧を生成して前記複数の選択ツインセルに含まれる各メモリセルの前記ゲート電極に供給する内部電圧生成部と、
前記複数の選択ツインセルに含まれる各メモリセルについて、前記制御電圧が前記ゲート電極に印加されたとき、前記トランジスタを流れる電流と所定の参照電流とを比較する電圧比較部とをさらに備え、
前記第１の判定部は、前記電圧比較部の比較結果に基づいて前記第１の条件の成否を判定する、請求項２に記載の半導体装置。
【請求項４】
前記トランジスタは、
半導体基板に設けられたチャネル領域と、
前記チャネル領域上に絶縁膜を介して形成された電荷蓄積部と、
前記電荷蓄積部上に絶縁膜を介して形成されたゲート電極とを有し、
前記トランジスタの閾値電圧は、前記電荷蓄積部に蓄積された電荷に応じて変化し、
前記半導体装置は、
所定の制御電圧を生成して前記複数の選択ツインセルに含まれる各メモリセルの前記ゲート電極に供給する内部電圧生成部と、
前記複数の選択ツインセルに含まれる各メモリセルについて、前記制御電圧が前記ゲート電極に印加されたとき、前記トランジスタと流れる電流と前記基準値に対応して変化する参照電流とを比較する電圧比較部とをさらに備え、
前記第１の判定部は、前記電圧比較部の比較結果に基づいて前記第１の条件の成否を判定する、請求項２に記載の半導体装置。
【請求項５】
前記トランジスタは、Ｎチャネルトランジスタであり、
前記第３の判定部は、前記基準値を所定の範囲内で連続的または離散的に変化させ、いずれの大きさの前記基準値についても前記第２の条件が不成立であり、かつ、少なくとも１つの前記基準値について、前記複数の選択ツインセルに含まれる全てのメモリセルの閾値電圧が前記基準値よりも低い場合に、前記複数の選択ツインセルの各々はブランク状態であると判定する、請求項１に記載の半導体装置。
【請求項６】
前記トランジスタは、Ｐチャネルトランジスタであり、
前記第３の判定部は、前記基準値を所定の範囲内で連続的または離散的に変化させ、いずれの大きさの前記基準値についても前記第２の条件が不成立であり、かつ、少なくとも１つの前記基準値について、前記複数の選択ツインセルに含まれる全てのメモリセルの閾値電圧が前記基準値よりも高い場合に、前記複数の選択ツインセルの各々はブランク状態であると判定する、請求項１に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体装置に関し、特に電気的にプログラム可能な不揮発性メモリを備えた半導体装置に関する。
【背景技術】
【０００２】
フラッシュメモリなど、電気的にプログラム可能な不揮発性メモリのリテンション特性を向上させるために、２個のメモリセルを１組として相補データを記憶する方式がある。たとえば、特開２００８−１１７５１０号公報は、第１記憶素子と第２記憶素子とを１ビットのツインセルとして複数個備えたメモリアレイを含む半導体装置について開示する。ツインセルの記憶状態を判定する読出回路は、選択されたツインセルの第１記憶素子と第２記憶素子とから出力される相補データを差動増幅する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１１７５１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
フラッシュメモリなどの不揮発性メモリでは、データが書込まれた領域に別のデータを書込むことは禁止されているので、データ書込前にはこれからデータを書込む領域のブランクチェックを必ず行なう必要がある。ところが、従来のブランクチェックでは、各メモリセルの絶対的な閾値電圧に基づいて消去状態か否かを判定するので、個々のメモリセルの特性のばらつきを考慮してベリファイレベルを設定する必要があった。このため、相補データ方式を用いているにも拘らず、ブランクチェックで誤判定を起こさないようにするために、リテンションの保証期間を制限せざるを得なかった。今後、半導体プロセスの微細化の進展に伴ってリテンションの保証期間が短くなることが予測されるので、リテンション期間の向上は重要な課題である。
【０００５】
この発明の目的は、相補データを記憶する方式で、従来よりも正確なブランクチェックを行なうことができる不揮発性メモリを備えた半導体装置を提供することである。
【課題を解決するための手段】
【０００６】
この発明の実施の一形態による半導体装置は、メモリアレイと、選択回路と、第１〜第３の判定部とを備える。メモリアレイには、閾値電圧が可変のトランジスタを有するメモリセルが複数配列される。メモリアレイに含まれる複数のメモリセルは、各々が２個のメモリセルを有する複数のツインセルにグループ化される。複数のツインセルの各々は、一方のメモリセルの閾値電圧が他方のメモリセルの閾値電圧よりも高い状態に設定されることによって相補データを記憶する。選択回路は、複数のツインセルの一部である複数の選択ツインセルを選択する。第１の判定部は、複数の選択ツインセルの各々について、一方のメモリセルの閾値電圧が複数の選択ツインセルに対して共通に設定された基準値より高く、他方のメモリセルの閾値電圧が基準値より低いという第１の条件が成立するか否かを判定する。第２の判定部は、複数の選択ツインセルの全てが第１の条件を満たすという第２の条件が成立するか否かを判定する。第３の判定部は、第２の判定部の判定結果に基づいて、複数の選択ツインセルの各々が相補データを記憶していないブランク状態であるか否かを判定する。
【発明の効果】
【０００７】
この実施の形態の半導体装置によれば、ブランクチェックの判定のために第１〜第３の判定部を備えることによって従来よりも正確にブランクチェックを行なうことができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１に従う半導体装置の一例であるシングルチップのマイクロコンピュータ１の構成を概略的に示すブロック図である。
【図２】フラッシュメモリ用のメモリセルの代表的な構成を模式的に示す図である。
【図３】図１のフラッシュメモリ７の全体構成を概略的に示すブロック図である。
【図４】図３のメモリブロック４１、サブビット線選択部４２、およびセンスアンプ部４４の内部構成を模式的に示す図である。
【図５】図３のフラッシュメモリ７において、ベリファイ動作およびブランクチェックを行なうための回路部分５０を取出して示したものである。
【図６】図５のベリファイ用センスアンプ部２４の構成を概略的に示す回路図である。
【図７】図３、図５に示す書込状態判定回路５６の具体的な構成例を示す回路図である。
【図８】図３の制御論理部２０がブランクチェック命令を受けたときに実行する手順を示すフローチャートである。
【図９】半導体チップ内のメモリセルの閾値電圧の分布を模式的に示すグラフである。
【図１０】図９において、ベリファイレベルＬＶ１〜ＬＶ３に対する書込状態判定回路５６の判定結果と最終的なベリファイチェックの結果とを説明するための図である。
【図１１】書込状態判定回路５６を用いずに、データ消去時のベリファイ動作と同様の手順によってブランクチェックを行なった場合の判定結果を説明するための図である。
【図１２】この発明の実施の形態２に従う半導体装置によって実行されるメモリアレイのブランクチェックの手順を示すフローチャートである。
【図１３】この発明の実施の形態３に従う半導体装置に実装されるベリファイ動作用およびブランクチェック用の回路５０Ａの構成を示すブロック図である。
【図１４】実施の形態３に従う半導体装置によって実行されるメモリアレイのブランクチェックの手順を示すフローチャートである。
【図１５】この発明の実施の形態４に従う半導体装置によって実行されるメモリアレイのブランクチェックの手順を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、この発明の実施の形態について図面を参照して詳しく説明する。なお、同一または相当する部分には同一の参照符号を付して、その説明を繰返さない。
【００１０】
＜実施の形態１＞
［マイクロコンピュータ］
図１は、この発明の実施の形態１に従う半導体装置の一例であるシングルチップのマイクロコンピュータ１の構成を概略的に示すブロック図である。図１のマイクロコンピュータ１は、公知の半導体集積回路製造技術を用いて、たとえば単結晶シリコンのような１個の半導体基板（チップ）に形成される。
【００１１】
マイクロコンピュータ１は、内部バス２に接続された回路モジュールとして、中央処理装置（ＣＰＵ：Central  Processing  Unit）３と、ＲＡＭ（Random  Access  Memory）４と、バスコントローラ５と、クロック生成回路６と、電気的にプログラム可能な不揮発性半導体記憶装置の一例としてのフラッシュメモリ７と、電源回路８と、入出力ポート（Ｉ／Ｏ）９と、タイマカウンタなどのその他の周辺回路１０とを含む。
【００１２】
内部バス２は、アドレスバス、データバスおよびコントロールバスを含む。ＣＰＵ３は、プログラムに従ってマイクロコンピュータ１の内部を制御する。ＲＡＭ４は、ＣＰＵ３のワーク領域などに利用される。バスコントローラ５は、アドレスバスおよびデータバスを介したＣＰＵ３とその他のデバイスとの間の通信を制御する。クロック生成回路６は、動作基準クロック信号やその他内部クロック信号を生成する。フラッシュメモリ７は、ＣＰＵ３の動作プログラムもしくはデータを格納する。電源回路８は、マイクロコンピュータ１内で使用される電源電圧を生成する。
【００１３】
マイクロコンピュータ１がシステムに実装された状態ではＣＰＵ３がフラッシュメモリ７に対する消去および書込の命令を発行する。デバイステストまたは製造段階では外部の書込装置（図示せず）が入出力ポート９を介して直接、フラッシュメモリ７に対する消去および書込制御を行なうことができる。
【００１４】
［不揮発性メモリセルの構成］
図２は、フラッシュメモリ用のメモリセルの代表的な構成を模式的に示す図である。図２（Ａ）は、スプリットゲート（split  gate）型のメモリセルを示し、図２（Ｂ）は、スタックト・ゲート（stacked  gate）型のメモリセルを示す。この実施の形態のフラッシュメモリ７では、図２（Ａ）に示すスプリットゲート型のメモリセルが用いられる。
【００１５】
図２（Ａ）に示すメモリセルは、ビット線ＢＬに接続された第１の不純物領域と、ソース線ＳＬに接続された第２の不純物領域と、第１および第２の不純物領域間のチャネル領域と、コントロールゲートＣＧと、メモリゲートＭＧと、電荷蓄積部としての窒化シリコン層ＳｉＮとを含む。コントロールゲートＣＧおよびメモリゲートＭＧは、チャネル領域上にゲート絶縁膜を介して形成され、ワード線ＷＬおよびメモリゲート線ＭＧＬにそれぞれ接続される。窒化シリコン層ＳｉＮはメモリゲートＭＧとチャネル領域との間のゲート絶縁膜中に形成され、多くのトラップ準位を有する。図２（Ａ）のように窒化シリコン層を有するタイプをＭＯＮＯＳ（Metal  Oxide  Nitride  Oxide  Silicon）型と称する。なお、窒化シリコン層に代えて多結晶シリコンによって形成されたフローティングゲートを電荷蓄積部として用いることによってスプリットゲート型のメモリセルを構成することもできる。
【００１６】
図２（Ａ）の構造のメモリセルは、アクセストランジスタＡＴＲとメモリトランジスタＭＴＲとが直列接続された構造と考えることができる。アクセストランジスタＡＴＲの閾値電圧は一定（Ｎチャネルの場合、正の閾値電圧）である。一方、メモリトランジスタＭＴＲの閾値電圧は、窒化シリコン層ＳｉＮにトラップされた電荷量に応じて変化する。チェネル領域がＮ（negative）チャネルの場合には、窒化シリコン層ＳｉＮ中に電子が注入されるとメモリトランジスタＭＴＲの閾値電圧が上昇し、窒化シリコン層ＳｉＮ中から電子が引き出されると（もしくは、正孔が注入されると）メモリトランジスタＭＴＲの閾値電圧が低下する。閾値電圧が相対的に低い状態（通常、負の閾値電圧）がセルデータ「１」（消去状態）に対応付けられ、閾値電圧が相対的に高い状態（通常、正の閾値電圧）がセルデータ「０」（書込状態、プログラム状態）に対応付けられる。
【００１７】
メモリトランジスタＭＴＲの閾値電圧を上昇させるには、たとえば、ビット線ＢＬ＝０Ｖ、コントロールゲートＣＧ＝１．５Ｖ、メモリゲートＭＧ＝１０Ｖ、ソース線ＳＬ＝６Ｖ、ウェル領域ＷＥＬＬ（半導体基板）＝０Ｖに設定される。これによって、コントロールゲートＣＧとメモリゲートＭＧとの境界付近のチャネル領域に生成されたホットエレクトロンが窒化シリコン層ＳｉＮ中に注入される、いわゆるソースサイド注入（ＳＳＩ：Source  Side  Injection）が生じる。所望の閾値電圧にするために、メモリゲートＭＧおよびソース線ＳＬには、上記の設定電圧のパルス電圧（以下、書込パルスと称する）が複数回印加される。
【００１８】
メモリトランジスタＭＴＲの閾値電圧を低下させるには、たとえば、ビット線ＢＬ＝Ｈｉ−Ｚ（高インピーダンス状態）、コントロールゲートＣＧ＝１．５Ｖ、メモリゲートＭＧ＝−１０Ｖ、ソース線ＳＬ＝６Ｖ、ウェル領域ＷＥＬＬ（半導体基板）＝０Ｖに設定される。これによって、チャネル領域とソース線ＳＬに接続される第２の不純物領域との間が逆バイアス状態となり、バンド間トンネリング（ＢＴＢＴ：Band-To-Band  Tunneling）によってホットホールが窒化シリコン層ＳｉＮ中に注入される。所望の閾値電圧にするために、メモリゲートＭＧおよびソース線ＳＬには、上記の設定電圧のパルス電圧（以下、消去パルスと称する）が複数回印加される。
【００１９】
データ読出時には、たとえば、ビット線ＢＬ＝１．５Ｖ、コントロールゲートＣＧ＝１．５Ｖ、メモリゲートＭＧ＝０Ｖ、ソース線ＳＬ＝０Ｖ、ウェル領域ＷＥＬＬ（半導体基板）＝０Ｖに設定される。コントロールゲートＣＧが１．５Ｖに設定されることによってアクセストランジスタＡＴＲは導通し、メモリトランジスタＭＴＲはセルデータ「１」のの場合に導通し、セルデータ「０」の場合に非導通となる。
【００２０】
メモリトランジスタＭＴＲの閾値電圧は、長期間放置すると徐々に変化するため読出エラーが生じる場合がある。後述するように、実施の形態１のフラッシュメモリ７では、２個のメモリセルごとにツインセルが構成され、各ツインセルが相補データを記憶することによってリテンション特性を向上させている。
【００２１】
フラッシュメモリ７に使用されるメモリセルの構造は、この実施の形態の場合とは異なるが、図２（Ｂ）で示されるスタックト・ゲート型であってもよい。図２（Ｂ）のメモリセルは、ビット線ＢＬに接続された第１の不純物領域と、ソース線に接続された第２の不純物領域と、第１および第２の不純物領域間のチャネル領域と、チャネル領域に絶縁層を介して積層されたフローティングゲートＦＧと、フローティングゲートＦＧに絶縁層を介して積層されたコントロールゲートＣＧ０とを含む。Ｎチャネルの場合は、電荷蓄積層としてのフローティングゲートＦＧに電子が注入されることによってトランジスタＭＴＲの閾値電圧が上昇し、フローティングゲートＦＧから電子が引き抜かれると閾値電圧が低下する。フローティングゲートＦＧに代えて窒化シリコン層ＳｉＮを電荷蓄積層として用いることもできる。スタックト・ゲート型のメモリセルは、スプリットゲート型のメモリセルに設けられたアクセストランジスタＡＴＲを含まない構成と考えることができる。
【００２２】
［フラッシュメモリの全体構成］
図３は、図１のフラッシュメモリ７の全体構成を概略的に示すブロック図である。
【００２３】
図３を参照して、フラッシュメモリ７は、メモリマット４０と、アドレスバッファ１２と、Ｘデコーダ１４と、Ｙデコーダ１６と、ＣＰＵリード用Ｙデコーダ１５と、Ｙゲート１８と、制御論理部２０と、ライトドライバ２２と、Ｉ／Ｏバッファ２６と、内部電圧発生回路３０とを含む。Ｘデコーダ１４、Ｙデコーダ１６、およびＣＰＵリード用Ｙデコーダ１５によって選択回路１３が構成される。
【００２４】
メモリマット４０は、複数のメモリブロック（ＭＢ）４１と、複数のサブビット線選択部４２（サブビット線（ＳＢＬ）選択トランジスタ）と、複数のＣＰＵリード用のＹゲート４３と、複数のＣＰＵリード用センスアンプ部４４とを含む。センスアンプ部４４は、２個のメモリブロック４１ごとに１個ずつ設けられ、対応する２個のメモリブロック４１に挟まれた領域に配置される。センスアンプ部４４と対応のメモリブロック４１との間には、サブビット線選択部４２およびＣＰＵリード用Ｙゲート４３が設けられる。
【００２５】
図４は、図３のメモリブロック４１、サブビット線選択部４２、およびセンスアンプ部４４の内部構成を模式的に示す図である。
【００２６】
図３、図４を参照して、各メモリブロック４１には、複数のメモリセルが行列状に配列される（図４に示すように行方向をＸとし、列方向をＹとする。）。ビット線ＢＬは、メインビット線ＷＭＢＬおよびサブビット線ＳＢＬに階層化されている。メモリブロック４１の各行に対応してワード線ＷＬ、メモリゲート線ＭＧＬ、およびソース線ＳＬが設けられ、メモリブロック４１の各列に対応してサブビット線ＳＢＬが設けられる。サブビット線ＳＢＬは、サブビット線選択部４２に設けられたサブビット線選択トランジスタ４５を介して、列方向Ｙに延在する共通のメインビット線ＷＭＢＬに接続される。サブビット線選択トランジスタ４５のゲートは、信号線４６を介してＸデコーダ１４に接続される。Ｘデコーダ１４は、書込、消去、およびブランクチェック時にサブビット線選択トランジスタ４５を活性化する。
【００２７】
各メモリブロック４１に含まれる複数のメモリセルは、２個のメモリセルＭＣ１，ＭＣ２からなるツインセルＴＭＣにグループ化される。各ツインセルを構成する第１のメモリセルＭＣ１をポジ（ｐｏｓｉ）側メモリセルと称し、第２のメモリセルＭＣ２をネガ（ｎｅｇａ）側メモリセルと称する。各ツインセルは相補データを記憶する。ツインセルデータが「１」の場合、ポジ側メモリセルＭＣ１がセルデータ「１」（Ｎチャネルの場合、低閾値電圧状態）になり、ネガ側メモリセルＭＣ２がセルデータ「０」（高閾値電圧状態）になる。ツインセルデータが「０」の場合、ポジ側メモリセルＭＣ１がセルデータ「０」（Ｎチャネルの場合、高閾値電圧状態）になり、ネガ側メモリセルＭＣ２がセルデータ「１」（低閾値電圧状態）になる。ツインセルが相補データを記憶していないブランク状態の場合、ポジおよびネガのメモリセルＭＣ１，ＭＣ２のセルデータは「１」（Ｎチャネルの場合、低閾値電圧状態）になる。各ツインセルを構成するメモリセルＭＣ１，ＭＣ２は、通常、同一行に配置されて同一のワード線ＷＬおよび同一のメモリゲート線ＭＧＬに接続される。
【００２８】
ツインセルへのデータ書込時には、格納する相補データに応じて、ポジ側およびネガ側のいずれか一方メモリセルにのみ書込電流が流れるようにする。たとえば、ツインセルデータ「０」を格納する場合、ポジ側メモリセルのビット線を０Ｖ（コントロールゲートＣＧの設定電圧である１．５Ｖより低い値）に設定し、ネガ側メモリセルのビット線を１．５Ｖ（コントロールゲートＣＧの設定電圧である１．５Ｖに等しい値）に設定する。メモリゲート電圧およびソース線電圧はポジ側およびネガ側とも等しい。この結果、ポジ側メモリセルのセルデータが「０」（Ｎチャネルの場合、高閾値状態）になり、ネガ側メモリセルのセルデータが「１」（低閾値電圧状態）になる。書込パルスの印加後にベリファイ動作を行なう。ベリファイ動作では、ベリファイ用のセンスアンプを用いて、書込パルスを印加したほうのメモリセルの閾値電圧が所定の値以上になっているかどうか確認する。
【００２９】
ツインセルのデータ消去は、相補データ方式と異なる通常の場合と同じ手順である。消去対象の複数のメモリセルに対して消去パルスを所定回数印加する。消去パルスの印加後にベリファイ動作を行なう。ベリファイ動作では、ベリファイ用のセンスアンプを用いて、消去対象のメモリセルの閾値電圧が所定の値まで低下しているかどうかを確認する。
【００３０】
ＣＰＵリード用センスアンプ部４４は、Ｘデコーダ１４およびＹデコーダ１６によって選択されたツインセル（選択ツインセルと称する）の記憶データを読み出す。ＣＰＵリード用センスアンプ部４４は、複数のセンスアンプＳＡ（図４では１個のセンスアンプＳＡが代表で図示されている）で構成される。各センスアンプＳＡの差動入力端子は、ＣＰＵリード用Ｙゲート４３を介して選択ツインセルを構成するポジ側およびネガ側のメモリセルＭＣ１，ＭＣ２と接続される。ＣＰＵリード用Ｙゲート４３は、ＣＰＵリード用Ｙデコーダ１５の選択信号に従い、複数のサブビット線ＳＢＬのうち選択ツインセルに対応する２本のサブビット線ＳＢＬとセンスアンプＳＡの差動入力端子とを接続する。センスアンプＳＡの出力端子は読出用のメインビット線ＲＭＢＬを介してＩ／Ｏバッファ２６と接続される。各センスアンプＳＡは、ペアとなるメモリセルＭＣ１，ＭＣ２のコントロールゲートＣＧおよびメモリゲートＭＧに同一の電圧を印加したとき（たとえば、ＣＧ＝１．５Ｖ，ＭＧ＝０Ｖ）、メモリセルＭＣ１，ＭＣ２に流れる電流の差を増幅する。センスアンプＳＡは、高速センスアンプとも呼ばれ、高速読出動作用に最適化されている。センスアンプＳＡは、ツインセルを構成するメモリセルＭＣ１，ＭＣ２の相対的な電流差を検知するので、時間経過によって各メモリセルの閾値電圧が変化しても正確にデータを読み出すことができる。
【００３１】
アドレスバッファ１２は、メモリセルのアクセス時（データ書込時、データ消去時、データ読出時、およびベリファイ動作時）に外部のＣＰＵ３などからアドレス信号ＡＤを受けて内部アドレスを生成する。Ｘデコーダ１４は、内部アドレスに従ってワード線ＷＬ、メモリゲート線ＭＧＬ、およびソース線ＳＬに所定の電圧を与え、サブビット線選択トランジスタ４５を活性化する。Ｙデコーダ１６は、内部アドレスに従って列選択信号を生成し、生成した列選択信号によってＹゲート１８を制御する。これによって、メモリマット４０のうちでアドレス信号ＡＤによってアドレス指定されたメモリセルが選択される。
【００３２】
Ｘデコーダ１４およびＹデコーダ１６は、ブランクチェック時には、制御論理部２０からの制御信号φＸ，φＹに従って、ワード線ＷＬ、メモリゲート線ＭＧＬ、およびソース線ＳＬに所定の電圧を与え、サブビット線選択トランジスタ４５を活性化し、列選択信号によってＹゲート１８を制御する。これによって、メモリマット４０のブランクチェック対象の複数のメモリセルが選択される。
【００３３】
Ｙゲート１８は、メインビット線ＷＭＢＬと接続される。Ｙゲート１８は、データ書込時には、ライトドライバ２２からのセル書込データＤｍに応じて、選択列のメインビット線ＷＭＢＬをコントロールゲート電圧よりも低い電圧（たとえば、０Ｖ）またはコントロールゲート電圧に等しい電圧（たとえば、１．５Ｖ）に設定する。セルデータ「０」の場合が０Ｖに対応し、セルデータ「１」の場合が１．５Ｖに対応する。Ｙゲート１８は、データ消去時には、Ｙデコーダ１６からの列選択信号に従って選択列のメインビット線ＷＭＢＬを高インピーダンス状態に設定する。Ｙゲート１８は、ベリファイ動作時およびブランクチェック時には、Ｙデコーダ１６からの列選択信号に従って、メインビット線ＷＭＢＬの信号Ｑｍを後述するベリファイ用センスアンプ部２４に出力する。
【００３４】
制御論理部２０は、たとえば、シーケンスコントローラによって構成され、ＣＰＵ３などからの書込命令、読出命令、消去命令、およびブランクチェック命令などの各コマンドＣＭＤを受け、各コマンドＣＭＤを実行するのに必要な内部制御信号を出力する。
【００３５】
ライトドライバ２２は、制御論理部２０からの内部書込データＷＤＩに従って、メモリセルに対するセル書込データＤｍを生成する。ライトドライバ２２からのセル書込データＤｍがＹゲート１８に出力される。
【００３６】
Ｉ／Ｏバッファ２６は、データ読出時、ＣＰＵリード用のセンスアンプ部４４から出力された内部読出データＱＩ２に従って読出データＤＱを生成し、図１のＣＰＵ３などに出力する。Ｉ／Ｏバッファ２６は、データ書込時、ＣＰＵ３２から受けた書込データＤＱに従って、内部書込データＤＩを生成して制御論理部２０へ出力する。Ｉ／Ｏバッファ２６は、ベリファイ時にベリファイ用センスアンプ部２４から出力された内部読出データＱＩ１に従って読出データＤＱを生成し、図１のＣＰＵ３などに出力する。
【００３７】
内部電圧発生回路３０は、制御論理部２０から与えられた制御信号ＣＴＬに従って、図１の電源回路８から供給される電源電圧ＶＤＤおよび接地電圧に基づいて内部電圧を生成する。内部電圧は、メインビット線ＷＭＢＬに伝達されるビット線電圧Ｖｂｌ、ワード線ＷＬに伝達されるコントロールゲート電圧Ｖｃｇ、メモリゲート線ＭＧＬに伝達されるメモリゲート電圧Ｖｍｇ、ソース線ＳＬに伝達されるソース線電圧Ｖｓｌ、ベリファイ用センスアンプ部２４に伝達される参照電圧Ｖｒｅｆ１，Ｖｒｅｆ２、およびプリチャージ電圧Ｖｐｒｅを含む。
【００３８】
フラッシュメモリ７は、さらに、ベリファイ用のセンスアンプ部２４と、期待値格納レジスタ５２と、期待値比較回路５４と、書込状態判定回路５６とを含む。これらの回路５０は、ベリファイ動作時およびブランクチェック時に用いられる。ベリファイ動作とは、データ書込時およびデータ消去時にデータ書込状態およびデータ消去状態の検証を行なうことをいう。ブランクチェックとは、データ書込前にメモリアレイが消去状態であるかを確認することをいう。
【００３９】
［従来のブランクチェックの問題点］
相補データを書込む場合に限らず一般のフラッシュメモリでは、データが書込まれた領域に別のデータを書込むことは禁止されている。この理由は、書込み動作時には、メモリセルの閾値電圧を書き込む方向（Ｎチャネルの場合、上昇させる方向）にしか変化させることができないためである。たとえば、「ＡＡｈ」（ｈは１６進数を表わす）のセルデータが書き込まれた領域に「５５ｈ」のセルデータを書込んだ場合、セルデータは「００ｈ」となり「５５ｈ」とはならない。このような不都合が生じないようにするため、データ書込前にはこれからデータを書込む領域のブランクチェックを必ず行なう。従来のブランクチェックは、消去後のベリファイの場合と同様に、ベリファイセンスアンプを用いて各メモリセルの閾値電圧が所定の値以下であるか否かを判定していた。
【００４０】
特に相補データを用いる場合には、ＣＰＵリード用のセンスアンプ部４４を用いてブランクチェックを行なうことができない点に留意する必要がある。ＣＰＵリード用のセンスアンプ部４４は、ポジ側メモリセルとネガ側メモリセルの閾値電圧の相違による相対的な電流差を検出する。このため、センスアンプ部４４の検出結果が、消去状態のメモリセルの閾値電圧のランダムな差に起因するものなのか、相補データの書込によるものなのかを区別することができない。したがって、相補データを読み出す場合にはポジ側メモリセルとネガ側メモリセルとの相対的な閾値電圧の差を検出すれば十分なのに対して、ブランクチェックの場合には各メモリセルの絶対的な閾値電圧に基づいて消去状態か否かの判定を行なう必要がある。
【００４１】
ここで問題となるのは、書込後および消去後のメモリセルを長期間放置した場合、メモリセルの閾値電圧がシフトする点である。閾値電圧がシフトする理由は、メモリセルの閾値電圧には、窒化シリコン層に電荷が保持されていない状態（以下、初期状態という）の閾値電圧に近付こうとする性質があるためである。初期状態の閾値電圧はプロセスのばらつきに依存し、書込直後および消去直後からの閾値電圧の変化量は温度やメモリセルへの印加電圧の大きさなどに依存する。閾値電圧がある程度シフトしたとしても、相補データを用いたデータ記憶を用いることによってセンスアンプでのデータ読出は可能である。ところが、ブランクチェックでは各メモリセルの絶対的な閾値電圧に基づいて消去状態か否かを判定する必要があるため、閾値電圧がシフトすると誤判定となる可能性がある。すなわち、従来、相補データ方式を用いているにも拘らず、ブランクチェックで誤判定を起こさないようにするために、リテンションの保証期間を制限せざるを得なかった。
【００４２】
この実施の形態のフラッシュメモリ７では、ブランクチェック用の専用回路として書込状態判定回路５６が設けられている。この回路を用いることによって、従来のブランクチェックの方法ではブランクチェックで誤判定を起こす場合でも正確な判定を行なえるようになり、リテンションの保証期間を従来よりも延ばすことができる。以下、具体的に説明する。
【００４３】
［ベリファイ動作およびブランクチェックの詳細］
図５は、図３のフラッシュメモリ７において、ベリファイ動作およびブランクチェックを行なうための回路部分５０を取出して示したものである。図５には、メモリマット４０、Ｙゲート１８、および内部電圧発生回路３０も併せて示されている。図３、図５を参照して、ベリファイ用のセンスアンプ部２４は、コントロールゲートＣＧおよびメモリゲートＭＧに所定の電圧を印加したとき、メモリセルを流れる読出電流と所定の参照電流とを比較し、比較結果ＯＵＴ１を出力する。
【００４４】
図６は、図５のベリファイ用センスアンプ部２４の構成を概略的に示す回路図である。図６には、Ｙゲート１８と、Ｙゲート１８を介して接続されるメモリセルＭＣの構成も併せて示される。図６を参照して、ベリファイ用センスアンプ部２４は、複数（この実施の形態の場合は１２８個）のセンスアンプＶＳＡと、プリチャージ回路６６とを含む。
【００４５】
各センスアンプＶＳＡは、電源電圧ＶＤＤを与える電源ノードと接続ノード６４との間に設けられた電流源用のＰＭＯＳ（Positive-channel  Metal  Oxide  Semiconductor）トランジスタ６２と、接続ノード６４の電圧と参照電圧Ｖｒｅｆ２とを比較する比較回路６０とを含む。ＰＭＯＳトランジスタ６２のゲートには参照電圧Ｖｒｅｆ１が印加される。参照電圧Ｖｒｅｆ１，Ｖｒｅｆ２は、図３、図５に示す内部電圧発生回路３０から与えられる。比較回路６０は、接続ノード６４の電圧が参照電圧Ｖｒｅｆ２を超えているとき、ロー（Ｌ）レベル（データ「０」）の信号を出力する。
【００４６】
ベリファイ対象のメモリセルＭＣのビット線ＢＬ（ＷＭＢＬおよびＳＢＬ）は、Ｙゲート１８に設けられた列選択トランジスタ１９を介して接続ノード６４に接続される。メモリセルＭＣのソース線は接地電圧を与える電源ノードＶＳＳに接続される。プリチャージ回路６６は、図３の制御論理部２０から出力された制御信号ＰＣＧが活性化されたとき、内部電圧発生回路３０で生成されたプリチャージ電圧Ｖｐｒｅを接続ノード６４に出力する。実施の形態１の場合、プリチャージ電圧Ｖｐｒｅは参照電圧Ｖｒｅｆ２よりも高い値に設定される。
【００４７】
接続ノード６４の電圧は、ＰＭＯＳトランジスタ６２を流れる参照電流Ｉｒｅｆと、メモリセルＭＣを流れる読出電流Ｉｃｅｌｌとの大小関係によって決まる。たとえば、メモリセルＭＣに格納されるセルデータが「１」（低閾値電圧状態）のとき、読出電流Ｉｃｅｌｌが参照電流Ｉｒｅｆよりも大きくなるため、接続ノード６４の電圧が参照電圧Ｖｒｅｆ２よりも小さくなる。この結果、比較回路６０の出力がＨレベル（データ「１」）となる。メモリセルＭＣに格納されるセルデータが「０」（高閾値電圧状態）のとき、読出電流Ｉｃｅｌｌが参照電流Ｉｒｅｆよりも小さくなるため（ほとんど０）、接続ノード６４の電圧が参照電圧Ｖｒｅｆ２よりも大きくなる。この結果、比較回路６０の出力がＬレベル（データ「０」）となる。
【００４８】
ベリファイ用センスアンプＶＳＡの出力結果は、参照電圧Ｖｒｅｆ１，Ｖｒｅｆ２およびゲート電圧Ｖｃｇ，Ｖｍｇに依存するが、この値は全てのセンスアンプＶＳＡで共通の値となっている。すなわち、複数のメモリセルについてベリファイを行なう場合、これらのメモリセルの閾値電圧と比較される基準値（ベリファイレベルとも称する）は共通の値に設定される。
【００４９】
再び、図３、図５を参照して、期待値格納レジスタ５２および期待値比較回路５４は、データ書込直後およびデータ消去直後のベリファイに利用される。期待値格納レジスタ５２は、データ書込時に書込データＤＩを期待値として格納し、データ消去時に消去対象の各メモリセルに対してデータ「１」を期待値として格納する。期待値比較回路５４は、データ書込後およびデータ消去後のベリファイ動作時にベリファイ用センスアンプ部２４の出力ＯＵＴ１と期待値格納レジスタ５２に格納された期待値とを比較し、比較結果ＯＵＴ３を制御論理部２０へ出力する。制御論理部２０は、比較結果ＯＵＴ３を受けて、ベリファイ用センスアンプ部２４の出力ＯＵＴ１が期待値に一致するときには、書込および消去終了信号ＰＥＥＮＮＤを外部のＣＰＵ３などに出力する。制御論理部２０は、ベリファイ用センスアンプ部２４の出力ＯＵＴ１が書込データＤＩに一致しないときには、Ｘデコーダ１４およびＹデコーダ１６で指定されたメモリセルに対して追加の書込パルスまたは消去パルスを印加するように制御する。
【００５０】
書込状態判定回路５６は、ブランクチェック用の専用回路である。書込状態判定回路５６は、制御論理部２０によって指定された複数のツインセル（選択ツインセルと称する）に対するベリファイ用センスアンプ部２４による判定結果ＯＵＴ１を受ける。書込状態判定回路５６は、この判定結果ＯＵＴ１に基づいて、複数の選択ツインセルがブランク状態であるか否かを判定し、判定結果ＯＵＴ２を制御論理部２０に出力する。
【００５１】
図７は、図３、図５に示す書込状態判定回路５６の具体的な構成例を示す回路図である。書込状態判定回路５６は、１個ではなく複数のツインセルを単位としてブランクチェックを行なう点に特徴がある。図７の場合には、１２８個のメモリセル（６４組の選択ツインセル）に対してブランクチェックを行なう回路の構成例が示される。実施の形態１のフラッシュメモリの場合には、ブランクチェック対象の６４組の選択ツインセルは、同時にデータが書込まれる書込単位となっている。図７において、Ｄ０（ｐｏｓｉ），Ｄ０（ｎｅｇａ）〜Ｄ６３（ｐｏｓｉ），Ｄ６３（ｎｅｇａ）は、６４組の選択ツインセルのポジ側およびネガ側のメモリセルに対するベリファイ用センスアンプ（図６の参照符号ＶＳＡ）の出力データを示す。
【００５２】
書込状態判定回路５６は、６４組の選択ツインセルにそれぞれ対応して設けられた排他的論理和回路ＬＧ０〜ＬＧ６３（第１の判定部７０）と、ＮＡＮＤ回路７２（第２の判定部）とを含む。各排他的論理和回路は、対応のツインセルのポジ側のメモリセルに対するベリファイ用センスアンプの出力データとネガ側のメモリセルに対するベリファイ用センスアンプの出力データとの排他的論理和を求める。ＮＡＮＤ回路７２は、排他的論理和回路ＬＧ０〜ＬＧ６３の出力の論理積を反転して出力する。６４組の全てのツインセルについてポジ側およびネガ側のいずれか一方のメモリセルのベリファイ結果が「１」（低閾値電圧状態）であり、他方のメモリセルのベリファイ結果が「０」（高閾値電圧状態）の場合に、ＮＡＮＤ回路７２の出力ＯＵＴ２は「０」（ブランク状態でない）になる。少なくとも１つのツインセルについてポジ側およびネガ側の両方のメモリセルのベリファイ結果が「１」または「０」のとき、ＮＡＮＤ回路７２の出力ＯＵＴ２は「１」（ブランク状態）になる。
【００５３】
次に、メモリセルの書込状態と書込状態判定回路５６の判定結果との関係を説明する。以下の説明では各メモリセルはＮチャネルであるとする。
【００５４】
（ｉ）ブランクチェック対象の６４組の選択ツインセルが消去状態の場合
この場合、いずれのツインセルについてもポジ側およびネガ側のメモリセルは低閾値電圧状態であるので、書込状態判定回路５６の出力ＯＵＴ２は基本的に「１」となり、ブランク状態であると判定される。データ消去後に長期間放置したことによって各メモリセルの閾値電圧がシフトした場合、一部のツインセルに対応する排他的論理和回路の出力が「１」となる可能性はあるが、ブラックチェック対象のツインセル数（この実施の形態の場合には書込単位に等しい）が適当な大きさであれば、書込状態判定回路５６の出力ＯＵＴ２が「０」（書込状態）になる確率は極めて低い。書込状態判定回路５６が消去状態のメモリアレイを書込状態であると最も誤判定しやすいケースは、半導体チップ内のメモリセルの閾値電圧の分布の平均値にベリファイレベルが等しい場合である。しかし、このケースにおいても、ブランクチェック対象のツインセル数が６４の場合は、書込状態と誤判定する確率は０．５の６４乗であり、ほぼ０になる。
【００５５】
（ｉｉ）ブランクチェック対象の選択ツインセルが書込状態の場合
この場合、いずれのツインセルについてもポジ側およびネガ側のメモリセルは一方が高閾値電圧状態であり、他方が低閾値電圧状態であるので、書込状態判定回路５６の出力ＯＵＴ２は基本的に「０」となり、書込状態であると判定される。データ書込後に長期間放置したことによって各メモリセルの閾値電圧がシフトした場合、一部のツインセルに対応する排他的論理和回路の出力が「０」となる可能性はある。この結果、書込状態判定回路５６の出力ＯＵＴ２が書込状態であるにも拘らず「１」となって、書込状態判定回路５６回路は書込状態でないと判定することになる。そこで、実施の形態１のフラッシュメモリでは、センスアンプＶＳＡのベリファイレベルを所定の範囲内で変化させ、少なくとも１つのベリファイレベルに対して、書込状態判定回路５６の出力ＯＵＴ２が「０」となった場合に、書込状態であると判定する。
【００５６】
（ｉｉｉ）ブランクチェック対象の選択ツインセルの閾値電圧が、ポジ側およびネガ側共に高い状態である場合、各排他論理和回路の出力は「０」となり、書込状態判定回路５６の出力ＯＵＴ２は「１」となり、書込状態でないと判定される。したがって、この場合には、追加書込みされる可能性がある。しかし、ポジ側およびネガ側のメモリセルの閾値電圧が共に高い状態は、フラッシュメモリ書き換え中に強制的に電源が遮断されるなど、不正に制御された場合にしか発生しないので、その確率は低い。
【００５７】
以上の点を踏まえて、図３の制御論理部２０は、図１のＣＰＵ３などからブランクチェック命令を受けたとき、以下の手順に従ってブランクチェックを行なう。
【００５８】
図８は、図３の制御論理部２０（第３の判定部）がブランクチェック命令を受けたときに実行する手順を示すフローチャートである。
【００５９】
図３、図８を参照して、ステップＳ１で、制御論理部２０は、図１のＣＰＵ３などからブランクチェック命令を受けると、まずセットアップを行う。セットアップでは、ブランクチェック時にメモリマット４０およびベリファイ用センスアンプ部２４に出力する内部電圧を発生する内部電圧発生回路３０を立上げる。制御論理部２０は、さらに、ベリファイ回数を０に初期化するとともに、ブランクチェック対象のメモリセルのメモリゲートＭＧに印加する電圧Ｖｍｇを初期値に設定する。
【００６０】
次のステップＳ２で、制御論理部２０は、ブランクチェックを行うアドレスを確定し、ブランクチェック対象の複数のツインセルを指定する制御信号φＸ，φＹを、Ｘデコーダ１４およびＹデコーダ１６に出力する。
【００６１】
次のステップＳ３で、ベリファイ用センスアンプ部２４は、ブランクチェック対象のメモリセルに対してベリファイを行なう。ベリファイセンスアンプの出力結果ＯＵＴ１に応じて、書込状態判定回路５６の判定結果ＯＵＴ２が決定する。
【００６２】
次のステップＳ４で、制御論理部２０は、書込状態判定回路５６の出力ＯＵＴ２が「１」（ブランク状態）であるか否かを判定する。書込状態判定回路５６の判定結果が「０」の場合（ステップＳ４でＮＯ）、制御論理部２０は、複数の選択ツインセルは書込状態（判定結果ＮＧ）と判定し（ステップＳ５）、判定結果ＢＬＣＨＫを図１のＣＰＵ３などに出力する。この後、内部電圧発生回路３０を立下げて（ステップＳ９）、ブランクチェックを完了する。
【００６３】
書込状態判定回路５６の出力ＯＵＴ２が「１」の場合（ステップＳ４でＹＥＳ）、制御論理部２０は、複数の選択ツインセルは書込状態でないと判定し、ステップＳ６に処理を移す。
【００６４】
ステップＳ６で、制御論理部２０は、ベリファイ回数が所定の終了回数に達したか否かを判定する。ベリファイ回数が所定の終了回数に達している場合は（ステップＳ６でＹＥＳ）、制御論理部２０は、メモリアレイの状態をブランク状態（判定結果ＯＫ）と判定し（ステップＳ８）、判定結果ＢＬＫＣＨＫをＣＰＵ３などに出力する。この後、内部電圧発生回路３０を立下げて（ステップＳ９）、ブランクチェックを完了する。
【００６５】
ベリファイ回数が所定の終了回数に達していない場合は（ステップＳ６でＮＯ）、制御論理部２０は、ステップＳ７に処理を移す。ステップＳ７で、制御論理部２０は、ブランクチェック対象のメモリセルのメモリゲートＭＧに印加する電圧Ｖｍｇを変更する。この後、ステップＳ３以降の処理が再び実行される。
【００６６】
以下、上記のブランクチェックの手順の効果について説明する。
図９は、半導体チップ内のメモリセルの閾値電圧の分布を模式的に示すグラフである。図９（Ａ）はデータ消去直後の閾値電圧の分布を示し、図９（Ｂ）は図９（Ａ）の状態から長期間放置したことによってシフトした閾値電圧の分布を示す。図９（Ｃ）はデータ書込直後の閾値電圧の分布を示し、図９（Ｄ）は図９（Ｃ）の状態から長期間放置したことによってシフトした閾値電圧の分布を示す。図９（Ａ）〜（Ｄ）において、横軸は閾値電圧を表わし、縦軸は累積度数を示す。ただし、縦軸の目盛は累積度数が直線で表わされるように正規化されている。図９（Ｃ）および（Ｄ）において、ＰＲＧ状態と記載された閾値電圧分布は、データ書込時、書込パルスが印加されたメモリセル群の閾値電圧分布であり、ＥＲＳ状態と記載された閾値電圧分布は、データ書込時、書込パルスが印加されず消去状態となっているメモリセル群の閾値電圧分布である。ツインセル方式の場合には、ポジ側およびネガ側のいずれか一方にデータ書込が行なわれるので、ＰＲＧ状態のメモリセル群とＥＲＳ状態のメモリセル群とは同数になる。
【００６７】
長期間の放置によってメモリセルの閾値電圧がシフトする理由は、メモリセルの閾値電圧が、窒化シリコン層に電荷が保持されていない状態（初期状態）の閾値電圧に近付こうとする性質があるためである。初期状態の閾値電圧はプロセスのばらつきに依存するので、初期状態の閾値電圧が高い（閾値電圧が浅い（shallow）と称する）場合と、初期状態の閾値電圧が低い（閾値電圧が深い（deep）と称する）場合とが存在する。図９（Ａ）〜（Ｄ）において、閾値電圧が浅い場合の分布を破線（参照符号ＳＨ）で示し、閾値電圧が深い場合の分布を実践（参照符号ＤＰ）で示している。長期間放置後の閾値電圧の分布は、閾値電圧が深いと相対的に閾値電圧が低くなり、閾値電圧が浅いと相対的に閾値電圧が高くなる。
【００６８】
図９の参照符号ＶＬ１〜ＶＬ３は、図３のベリファイ用センスアンプ部２４においてベリファイ動作を行なう際、メモリセルの閾値電圧と比較する基準値（ベリファイレベル）を表わす。図９では、ベリファイレベルを変更しながら、合計３回ベリファイ動作を行なう場合が示されている。図３の書込状態判定回路５６が、書込状態の選択ツインセルが書込状態であると正しく判定するためには、ベリファイレベルを、ＥＲＳ状態のメモリセルの閾値電圧の分布の最大値とＰＲＧ状態のメモリセルの閾値電圧の分布の最小値との間に設定する必要がある。初期状態の閾値電圧のばらつきによって長期間放置後の閾値電圧はばらつくので、正常判定するためのベリファイレベルの設定値は、プロセスや放置時間によって異なることになる。このため、ベリファイレベルを変更しながら複数回ベリファイ動作を行なっている。
【００６９】
図１０は、図９において、ベリファイレベルＬＶ１〜ＬＶ３に対する書込状態判定回路５６の判定結果と最終的なベリファイチェックの結果とを説明するための図である。図１０の（Ａ）〜（Ｄ）の表は、図９の（Ａ）〜（Ｄ）にそれぞれ対応する。
【００７０】
図９（Ａ）および図１０（Ａ）を参照して、データ消去直後の場合には、いずれのベリファイレベルＬＶ１〜ＬＶ３に対しても、書込状態判定回路５６は選択ツインセルが消去状態であると判定する。したがって、最終的なブランクチェックの判定結果は消去状態となる。
【００７１】
図９（Ｂ）および図１０（Ｂ）を参照して、データ消去直後の状態から閾値電圧がシフトした場合には、書込状態判定回路５６は複数のツインセルのうち少なくとも１つのツインセルが消去状態であれば消去状態と判定するので、いずれのベリファイレベルＬＶ１〜ＬＶ３に対しても、書込状態判定回路５６は選択ツインセルが消去状態であると判定する。したがって、最終的なブランクチェックの判定結果は消去状態となる。
【００７２】
図９（Ｃ）および図１０（Ｃ）を参照して、データ書込直後の場合には、いずれのベリファイレベルＬＶ１〜ＬＶ３に対しても、書込状態判定回路５６は選択ツインセルが書込状態であると判定する。したがって、最終的なブランクチェックの判定結果は書込状態となる。
【００７３】
図９（Ｄ）および図１０（Ｄ）を参照して、データ書込直後の状態から閾値電圧がシフトした場合には、ベリファイレベルおよび初期状態の閾値電圧に応じて書込状態判定回路５６の判定が異なる。具体的には、浅い閾値電圧（ＳＨ）の場合、ベリファイレベルＬＶ２のとき書込状態判定回路５６は書込状態と判定するが、その他のベリファイレベルＬＶ１，ＬＶ３のときには書込状態判定回路５６は消去状態と判定する。しかし、書込状態判定回路５６の判定結果が一度でも書込状態であれば、最終的なブランクチェックの判定結果は書込状態となる。深い閾値電圧（ＤＰ）の場合、ベリファイレベルＬＶ３のとき書込状態判定回路５６は書込状態と判定するが、その他のベリファイレベルＬＶ１，ＬＶ２のときには書込状態判定回路５６は消去状態と判定する。しかし、書込状態判定回路５６の判定結果が一度でも書込状態であれば、最終的なブランクチェックの判定結果は書込状態となる。このように、書込状態判定回路５６の判定結果を用いた実施の形態１のブランクチェックの手順によれば、誤判定が生じる可能性は極めて低い。
【００７４】
図１１は、書込状態判定回路５６を用いずに、データ消去直後のベリファイ動作と同様の手順によってブランクチェックを行なった場合の判定結果を説明するための図である。図１１の（Ａ）〜（Ｄ）の表は、図９の（Ａ）〜（Ｄ）にそれぞれ対応する。
【００７５】
図９（Ａ）および図１１（Ａ）を参照して、データ消去直後の場合には、いずれのベリファイレベルＬＶ１〜ＬＶ３に対しても各メモリセルは消去状態と判定される。したがって、最終的なブランクチェックの判定結果は消去状態となる。
【００７６】
図９（Ｂ）および図１１（Ｂ）を参照して、データ消去直後の状態から閾値電圧がシフトした場合には、深い閾値電圧（ＳＨ）のメモリセルに対しては、いずれのベリファイレベルＬＶ１〜ＬＶ３に対しても消去状態と判定される。したがって、最終的なブランクチェックの判定結果は消去状態となる。しかしながら、浅い閾値電圧（ＤＰ）のメモリセルに対しては、ベリファイレベルＬＶ３のとき、ベリファイレベルＬＶ３よりも高い閾値電圧を有するメモリセルが存在するので、書込状態と誤判定する場合が生じ得る。したがって、最終的に書込状態かブランク状態かを判定することができない。
【００７７】
図９（Ｃ）および図１１（Ｃ）を参照して、データ書込直後の場合には、いずれのベリファイレベルＬＶ１〜ＬＶ３に対しても書込状態と判定される。したがって、最終的なブランクチェックの判定結果は書込状態となる。
【００７８】
図９（Ｄ）および図１１（Ｄ）を参照して、データ書込直後の状態から閾値電圧がシフトした場合には、浅い閾値電圧（ＳＨ）のメモリセルに対しては、ベリファイレベルＬＶ１のとき消去状態と判定されるが、ベリファイレベルＬＶ２，ＬＶ３のとき書込状態と判定される。深い閾値電圧（ＤＰ）のメモリセルに対しては、ベリファイレベルＬＶ１，ＬＶ２のとき消去状態と判定されるが、ベリファイレベルＬＶ３のとき書込状態と判定される。したがって、最終的に書込状態かブランク状態かを判定することができない。
【００７９】
上記の結果から明らかなように、図９（Ｂ）の浅い閾値電圧（ＳＨ）のメモリセル群に対する判定結果と、図９（Ｄ）の深い閾値電圧（ＤＰ）のメモリセル群に対する判定結果とが同じになる。すなわち、消去状態と書込状態の区別がつかない場合が生じる。
【００８０】
このように書込状態判定回路５６を用いずに、データ消去時のベリファイ動作と同様の手順によってブランクチェックを行なう場合、（ｉ）データを消去したメモリアレイを、長時間放置後も書込状態と誤判定しない、（ｉｉ）書込みしたメモリアレイを、長時間放置後も消去状態と誤判定しない、という２条件を満たす必要がある。（ｉ）の条件を満たすには、データ消去後に長時間放置した後の閾値電圧分布の最大値よりも、ベリファイレベルを高く設定する必要がある。（ｉｉ）の条件を満たすには、データ書込後に長時間放置した後のＰＲＧ状態のメモリセルの閾値電圧分布の最大値よりも、ベリファイレベルを低く設定する必要がある。図９（Ｂ）において（ｉ）の条件を満たすには、ベリファイレベルをＬＶ１またはＬＶ２に設定する必要がある。図９（Ｄ）において（ｉｉ）の条件を満たすには、ベリファイレベルをＬＶ３に設定する必要がある。このように、図９に示すベリファイレベルＬＶ１〜ＬＶ３では上記の条件（ｉ）および（ｉｉ）を両立できない。したがって、従来の場合、リテンション期間を制限して閾値電圧のシフト量を減らすことによって、上記（ｉ）および（ｉｉ）の条件を両立させる必要があった。
【００８１】
実施の形態１のフラッシュメモリでは、図７に示す書込状態判定回路５６を実装するとともに、図８に示すブランクチェックのシーケンスを採用することによって、ツインセルを構成するポジ側のメモリセルとネガ側のメモリセルに適切な閾値電圧の差があれば、正確にブランクチェックの判定を行なうことができる。ブランクチェックの判定を、メモリセルの絶対的な閾値電圧で判定する必要がないので、ブランクチェックのためにリテンション特性が制限されることはない。
【００８２】
上記の実施の形態では、図３の制御論理部２０が図８のブランクチェックの判定手順を実行していたが、図１のＣＰＵ３が第３の判定部としてブランクチェック手順を実行してもよい。この場合、図３の書込状態判定回路５６の出力ＯＵＴ２および期待値比較回路５４の出力ＯＵＴ３は、Ｉ／Ｏバッファ２６を介して図１のＣＰＵ３に出力される。
【００８３】
＜実施の形態２＞
図１２は、この発明の実施の形態２に従う半導体装置によって実行されるメモリアレイのブランクチェックの手順を示すフローチャートである。図１２のフローチャートは、ステップＳ７に代えてステップＳ７Ａを含む点で図８のフローチャートと異なる。その他の点は図８のフローチャートと同様であるので、同一または相当するステップには同一の参照符号を付して説明を繰返さない。
【００８４】
ステップＳ７Ａにおいて、制御論理部２０は、図６の電流源用のトランジスタ６２のゲートに供給する電圧Ｖｒｅｆ１を変化させることによって参照電流Ｉｒｅｆを変化させる。この場合、ブランクチェック対象のメモリセルのメモリゲートＭＧには一定電圧が供給される。このように参照電流Ｉｒｅｆを変化させることによって等価的にベリファイレベルを変化させることができるので、実施の形態１の場合と同様の手順でブランクチェックを行なうことができる。
【００８５】
＜実施の形態３＞
実施の形態３では、ベリファイ用のセンスアンプによってベリファイを行なうときに、各メモリセルのメモリゲートＭＧに印加する電圧を所定の範囲内で連続的に変化させる点が実施の形態１の場合と異なる。メモリゲートＭＧの電圧を連続的に変化させることによって、ベリファイレベルを連続的に変化させることができるので、ブランクチェック時間を短縮することができる。以下、具体的に説明する。
【００８６】
図１３は、この発明の実施の形態３に従う半導体装置に実装されるベリファイ動作用およびブランクチェック用の回路５０Ａの構成を示すブロック図である。図１３の回路５０Ａは、ＲＳラッチ回路５８をさらに含む点で図６の回路５０と異なる。ＲＳラッチ回路５８は、書込状態判定回路５６の出力が「１」から「０」となったときにその出力を保持する。ＲＳラッチ回路５８の出力ＯＵＴ２は図３の制御論理部２０に与えられる。図１３のその他の点は図５の場合と同じであるので、同一または相当する部分には同一の参照符号を付して説明を繰返さない。
【００８７】
図１４は、実施の形態３に従う半導体装置によって実行されるメモリアレイのブランクチェックの手順を示すフローチャートである。
【００８８】
図１３、図１４を参照して、ステップＳ１１で、図３の制御論理部２０は、ＣＰＵ３などからブランクチェック命令を受けると、まずセットアップを行う。セットアップでは、ブランクチェック時にメモリマット４０およびベリファイ用センスアンプ部２４に出力する内部電圧を発生する内部電圧発生回路３０を立上げる。制御論理部２０は、さらに、ベリファイ回数を０に初期化するとともに、ブランクチェック対象のメモリセルのメモリゲートＭＧに印加する電圧Ｖｍｇを初期値に設定する。
【００８９】
次のステップＳ１２で、制御論理部２０は、ブランクチェックを行うアドレスを確定し、ブランクチェック対象の複数のツインセルを指定する制御信号φＸ，φＹを、図３のＸデコーダ１４およびＹデコーダ１６に出力する。
【００９０】
次のステップＳ１３で、メモリゲートＭＧに印加する電圧Ｖｍｇの変化を開始する。
次のステップＳ１４で、ベリファイ用センスアンプ部２４は、ブランクチェック対象のメモリセルに対してベリファイを行なう。ベリファイ用のセンスアンプの出力結果に応じて、書込状態判定回路５６の出力が変化する。ＲＳラッチ回路５８は、書込状態判定回路５６の出力が「１」から「０」となったときにその出力を保持する。このステップＳ１４は、メモリゲートＭＧの電圧変化が終了する（ステップＳ１５でＹＥＳ）まで繰返される。
【００９１】
次のステップＳ１６で、制御論理部２０は、ＲＳラッチ回路５８の出力ＯＵＴ２が「１」であるか否かを判定する。ＲＳラッチ回路５８の出力ＯＵＴ２が「１」のとき（ステップＳ１６でＹＥＳ）、制御論理部２０は、メモリアレイの状態をブランク状態（判定結果ＯＫ）と判定し（ステップＳ１８）、判定結果ＢＬＫＣＨＫをＣＰＵ３などに出力する。この後、内部電圧発生回路３０を立下げて（ステップＳ１９）、ブランクチェックを完了する。
【００９２】
ＲＳラッチ回路５８の出力ＯＵＴ２が「０」のとき（ステップＳ１６でＮＯ）、制御論理部２０は、メモリアレイの状態を書込状態（判定結果ＮＧ）と判定し（ステップＳ１７）、判定結果ＢＬＫＣＨＫをＣＰＵ３などに出力する。この後、内部電圧発生回路３０を立下げて（ステップＳ１９）、ブランクチェックを完了する。
【００９３】
＜実施の形態４＞
図１５は、この発明の実施の形態４に従う半導体装置によって実行されるメモリアレイのブランクチェックの手順を示すフローチャートである。図１５のブランクチェクの手順は、図３の期待値比較回路５４による判定結果ＯＵＴ３と書込状態判定回路５６による判定結果ＯＵＴ２とを組合わせてブランクチェックを行なっている点で図８のブランチェックの手順と異なる。これによって、ツインセルを構成するメモリセルの閾値電圧がポジ側およびネガ側のいずれも高い場合でも、ブランクチェック結果が消去状態と誤判定されなくなる。以下、具体的に説明する。
【００９４】
図３、図１５を参照して、ステップＳ２１で、制御論理部２０は、図１のＣＰＵ３などからブランクチェック命令を受けると、まずセットアップを行う。セットアップでは、ブランクチェック時にメモリマット４０およびベリファイ用センスアンプ部２４に出力する内部電圧を発生する内部電圧発生回路３０を立上げる。制御論理部２０は、さらに、ベリファイ回数を０に初期化するとともに、ブランクチェック対象のメモリセルのメモリゲートＭＧに印加する電圧Ｖｍｇを初期値に設定する。
【００９５】
次のステップＳ２２で、制御論理部２０は、ブランクチェックを行うアドレスを確定し、ブランクチェック対象の複数のツインセルを指定する制御信号φＸ，φＹを、Ｘデコーダ１４およびＹデコーダ１６に出力する。
【００９６】
次のステップＳ２３で、制御論理部２０は、期待値格納レジスタ５２に格納する期待値を「ＦＦｈ」（ｈは１６進数を表わす）に設定する。すなわち、ブランクチェク対象の１２８個のメモリセルの全ての期待値が「１」（Ｎチャネルの場合、低閾値電圧状態）になる。
【００９７】
次のステップＳ２４で、ベリファイ用センスアンプ部２４は、ブランクチェック対象のメモリセルに対してベリファイを行なう。ベリファイセンスアンプの出力結果に応じて、期待値比較回路５４の判定結果ＯＵＴ３が決定する。
【００９８】
次のステップＳ２５で、制御論理部２０は、ベリファイセンスアンプの出力結果が期待値「ＦＦｈ」に一致しているか、すなわち、ブランクチェック対象の全てのメモリセルがブランク状態であるか否かを判定する。ブランク状態の場合（ステップＳ２５でＹＥＳ）の場合は処理がステップＳ２７に進む。少なくとも１つもメモリセルが書込状態の場合（ステップＳ２５でＮＯ）、制御論理部２０は、複数の選択ツインセルは書込状態（判定結果ＮＧ）と判定し（ステップＳ２６）、判定結果ＢＬＣＨＫを図１のＣＰＵ３などに出力する。この後、内部電圧発生回路３０を立下げて（ステップＳ３２）、ブランクチェックを完了する。
【００９９】
ステップＳ２７で、ブランクチェック対象のメモリセルのメモリゲートＭＧに印加する電圧Ｖｍｇを変更する。
【０１００】
次のステップＳ２８で、ベリファイ用センスアンプ部２４は、ブランクチェック対象のメモリセルに対してベリファイを行なう。ベリファイセンスアンプの出力結果に応じて、書込状態判定回路５６の判定結果ＯＵＴ２が決定する。
【０１０１】
次のステップＳ２９で、制御論理部２０は、書込状態判定回路５６の出力ＯＵＴ２が「１」（ブランク状態）であるか否かを判定する。書込状態判定回路５６の判定結果が「０」の場合（ステップＳ２９でＮＯ）、制御論理部２０は、複数の選択ツインセルは書込状態（判定結果ＮＧ）と判定し（ステップＳ２６）、判定結果ＢＬＣＨＫを図１のＣＰＵ３などに出力する。この後、内部電圧発生回路３０を立下げて（ステップＳ３２）、ブランクチェックを完了する。
【０１０２】
ステップＳ２９で、書込状態判定回路５６の出力ＯＵＴ２が「１」の場合（ステップＳ２９でＹＥＳ）、制御論理部２０は、複数の選択ツインセルは書込状態でないと判定し、ステップＳ３０に処理を移す。
【０１０３】
ステップＳ３０で、制御論理部２０は、ベリファイ回数が所定の終了回数に達したか否かを判定する。ベリファイ回数が所定の終了回数に達している場合は（ステップＳ３０でＹＥＳ）、制御論理部２０は、メモリアレイの状態をブランク状態（判定結果ＯＫ）と判定し（ステップＳ３１）、判定結果ＢＬＫＣＨＫをＣＰＵ３などに出力する。この後、内部電圧発生回路を立下げて（ステップＳ３２）、ブランクチェックを完了する。
【０１０４】
ステップＳ３０で、ベリファイ回数が所定の終了回数に達していない場合は（ステップＳ３０でＮＯ）、制御論理部２０は、ステップＳ２７に処理を移し、ステップＳ２７以降の手順が繰返される。
【０１０５】
上記の各実施の形態では、メモリセルはＮチャネルであるとしたが、Ｐチャネルであってもよい。この場合、閾値電圧の符号や、ビット線ＢＬ、ワード線ＷＬ、メモリゲート線ＭＧＬ、およびソース線ＳＬに印加する電圧の符号が、Ｎチャネルの場合と逆になる。
【０１０６】
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１０７】
１  マイクロコンピュータ、３  ＣＰＵ、７  フラッシュメモリ、１３  選択回路、１４  Ｘデコーダ、１５  ＣＰＵリード用Ｙデコーダ、１６  Ｙデコーダ、１８  Ｙゲート、２０  制御論理部（第３の判定部）、２４  ベリファイ用センスアンプ部、３０  内部電圧発生回路、４０  メモリマット、４１  メモリブロック、４４  ＣＰＵリード用センスアンプ部、５２  期待値格納レジスタ、５４  期待値比較回路、５６  書込状態判定回路、５８  ＲＳラッチ回路、６０  比較回路、７０  第１の判定部、７２  ＮＡＮＤ回路（第２の判定部）、ＢＬ  ビット線、ＣＧ，ＣＧ０  コントロールゲート、ＦＧ  フローティングゲート、Ｉｃｅｌｌ  読出電流、Ｉｒｅｆ  参照電流、ＬＧ０〜ＬＧ６３  排他的論理和回路、ＭＢＬ，ＲＭＢＬ，ＷＭＢＬ  メインビット線、ＭＣ  メモリセル、ＭＣ１  ポジ側メモリセル、ＭＣ２  ネガ側メモリセル、ＭＧ  メモリゲート、ＭＧＬ  メモリゲート線、ＭＴＲ  メモリトランジスタ、ＳＡ  相補データ読出用センスアンプ、ＳＢＬ  サブビット線、ＳＬ  ソース線、ＴＭＣ  ツインセル、ＶＤＤ  電源電圧、ＶＳＡ  ベリファイ用センスアンプ、ＷＬ  ワード線。
【図１】
0005328732.tif 000002
【図２】
0005328732.tif 000003
【図３】
0005328732.tif 000004
【図４】
0005328732.tif 000005
【図５】
0005328732.tif 000006
【図６】
0005328732.tif 000007
【図７】
0005328732.tif 000008
【図８】
0005328732.tif 000009
【図９】
0005328732.tif 000010
【図１０】
0005328732.tif 000011
【図１１】
0005328732.tif 000012
【図１２】
0005328732.tif 000013
【図１３】
0005328732.tif 000014
【図１４】
0005328732.tif 000015
【図１５】
0005328732.tif 000016