(57)【要約】【課題】　プログラムベリファイやイレーズベリファイに要する時間を短縮する。再書き込みや再イレーズしても、しきい値電圧が変化しすぎないようにする。【解決手段】　電気的に書き替え可能な複数の不揮発性半導体メモリセルと、前記複数のメモリセルに共通に接続されるワード線と、前記複数のメモリセルに共通に接続されるソース線と、前記ワード線に書き込みベリファイ電圧を供給するロウデコーダと、それぞれ対応する前記メモリセルに繋がる複数のビット線と、それぞれ対応する前記ビット線に設けられる複数の書き込みベリファイ回路と、を備えた不揮発性半導体記憶装置であって、　前記書き込みベリファイ回路のそれぞれは、第１あるいは第２の論理レベルのデータを記憶し、前記第１の論理レベルのデータを記憶している場合は予め対応するビット線を充電して所定の期間後に対応する前記メモリセルの書き込み状態を検出し、前記第２の論理レベルのデータを記憶している場合は少なくとも前記所定の期間は対応するビット線を所定の電源に接続する、ことを特徴とする不揮発性半導体記憶装置。【選択図】　図５７
2004095168.tif 000002
【特許請求の範囲】
【請求項１】
　電気的に書き替え可能な複数の不揮発性半導体メモリセルと、
　前記複数のメモリセルに共通に接続されるワード線と、
　前記複数のメモリセルに共通に接続されるソース線と、
　前記ワード線に書き込みベリファイ電圧を供給するロウデコーダと、
　それぞれ対応する前記メモリセルに繋がる複数のビット線と、
　それぞれ対応する前記ビット線に設けられる複数の書き込みベリファイ回路と、
　を備えた不揮発性半導体記憶装置であって、
　前記書き込みベリファイ回路のそれぞれは、第１あるいは第２の論理レベルのデータを記憶し、前記第１の論理レベルのデータを記憶している場合は予め対応するビット線を充電して所定の期間後に対応する前記メモリセルの書き込み状態を検出し、前記第２の論理レベルのデータを記憶している場合は少なくとも前記所定の期間は対応するビット線を所定の電源に接続する、ことを特徴とする不揮発性半導体記憶装置。
【請求項２】
　前記ソース線の電圧と前記所定の電源の電圧レベルは異なることを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項３】
　前記書き込みベリファイ回路に記憶されているデータの論理レベルは、書き込み状態を検出する前のメモリセルの状態によって決められることを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項４】
　前記書き込みベリファイ回路に記憶されているデータの論理レベルは、書き込み状態を検出した後に行われる前記メモリセルへの書き込み動作時に対応するビット線の電圧を制御することを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項５】
　複数の消去ブロックを有し、前記各消去ブロックは所定のビット数を有する複数のメモリセルを含み且つ前記所定のビット数のすべてが消去されたときには消去ベリファイ信号を出力する、メインメモリと、
　キャッシュメモリと、
　前記メインメモリと前記キャッシュメモリとの間のデータ転送動作を制御する、制御回路と、
を備え、
　キャッシュミスヒットにより、前記キャッシュメモリ内にアクセスしたデータが存在しないときには、前記制御回路は前記複数の消去ブロックの内１つのデータを消去し、前記データが完全に消去され、それにより前記消去ベリファイ信号が出力された後、前記制御回路は前記キャッシュメモリのデータを前記複数の消去ブロックの１つに再書き込みするデータ再書き込み動作を実行する、
ことを特徴とする、キャッシュメモリシステム。
【請求項６】
　第１のデータを格納するための第１メモリセルと、
　第２のデータを格納するための第２メモリセルと、
　第３のデータを格納するためのデータラッチ回路と、
　前記第１のデータと前記第２のデータを比較し、比較結果に応じた第１の出力データを生成する、第１コンパレータ回路と、
　前記第３のデータと前記第１の出力データを比較し、比較結果に応じた第２の出力データを生成する、第２コンパレータ回路と、
を備えることを特徴とする、半導体記憶装置。
【請求項７】
　前記第１コンパレータ回路はカレントミラー型差動アンプによる線形コンパレータであり、前記第２コンパレータ回路はデジタルコンパレータであることを特徴とする、請求項６に記載の半導体記憶装置。
【請求項８】
　前記第１メモリセルおよび前記第２メモリセルは、浮遊ゲート型ＭＯＳトランジスタであることを特徴とする、請求項６に記載の半導体記憶装置。
【請求項９】
　前記データラッチ回路に格納されている前記第３のデータは、外部から供給されることを特徴とする、請求項６に記載の半導体記憶装置。
【請求項１０】
　前記第３のデータは、前記第１メモリセルに対して行われるプログラム動作を制御するために使用されることを特徴とする、請求項６に記載の半導体記憶装置。
【請求項１１】
　前記第２の出力データを出力するための出力回路をさらに備えることを特徴とする、請求項６に記載の半導体記憶装置。
【請求項１２】
　前記出力回路は、前記第１の出力データおよび前記第２の出力データの内の１つを選択的に出力することを特徴とする、請求項１１に記載の半導体記憶装置。
【請求項１３】
　前記第２コンパレータ回路における比較を禁止し、前記第１の出力データを前記第２の出力データとする禁止回路をさらに備えることを特徴とする、請求項６に記載の半導体記憶装置。
【請求項１４】
　前記第１メモリセルは、浮遊ゲート型のＭＯＳトランジスタであり、
　浮遊ゲート型のＭＯＳトランジスタである複数の第３メモリセルをさらに備え、
　前記第１メモリセルと前記複数の第３メモリセルのドレインは、ビット線に共通に接続されており、
　前記第１メモリセルと前記複数の第３メモリセルのそれぞれのソースは、共通に接続されており、
　前記ビット線と前記第１コンパレータ回路との間に接続されているブロック選択ＭＯＳトランジスタをさらに備えることを特徴とする、
請求項６に記載の半導体記憶装置。
【請求項１５】
　前記ブロック選択ＭＯＳトランジスタと前記第１コンパレータ回路との間に接続されている、列選択ＭＯＳトランジスタをさらに備えることを特徴とする、請求項１４に記載の半導体記憶装置。
【請求項１６】
　内部的にブースト処理された、ブースト電圧を供給されるビット線電圧制御端子と、
　ビット線と、
　前記ビット線と前記ビット線電圧制御端子との間に接続されているヒューズと、
　前記ビット線に接続され、内部にデータを格納し、前記ブースト電圧を入力されることによりプログラムされる、メモリセルと、
を備えることを特徴とする、半導体記憶装置。
【請求項１７】
　ビット線電圧制御端子と、
　ビット線と、
　前記ビット線と、前記ビット線電圧制御端子との間に接続されているヒューズと、
　前記ビット線に接続され、内部にデータを格納し、電荷を蓄える浮遊ゲートとワード線に接続されている制御ゲートを有し、前記浮遊ゲートに電荷を注入されることによってプログラムされる不揮発性半導体メモリセルと、
を有することを特徴とする不揮発性半導体記憶装置。
【請求項１８】
　前記不揮発性半導体メモリセルは、ＮＡＮＤ型ＥＥＰＲＯＭセルであることを特徴とする、請求項１７に記載の不揮発性半導体記憶装置。
【請求項１９】
　リセット信号に応答して、前記ビット線を放電させるリセットトランジスタをさらに備えることを特徴とする、請求項１７に記載の不揮発性半導体記憶装置。
【請求項２０】
　内部的にブースト処理された、ブースト電圧を供給されるビット線電圧制御端子と、
　複数のビット線と、
　一端が対応する前記ビット線にそれぞれ接続され、他端同士が共通に接続され、プリチャージ信号を入力されて同時に導通される、複数のスイッチと、
　それぞれ前記ビット線電圧制御端子と前記複数のスイッチの前記他端との間に接続されているヒューズと、
　前記複数のビット線に接続され、内部にデータを格納し、前記ブースト電圧を入力されることによってプログラムされる、複数のメモリセルと、
を有することを特徴とする半導体記憶装置。
【請求項２１】
　前記メモリセルは、ＮＡＮＤ型ＥＥＰＲＯＭセルであることを特徴とする、請求項１６又は２０に記載の半導体記憶装置。
【請求項２２】
　リセット信号に応答して、前記複数のビット線を放電させる複数のリセットトランジスタをさらに備えることを特徴とする、請求項１６又は２０に記載の半導体記憶装置。
【請求項２３】
　ビット線電圧制御端子と、
　複数のビット線と、
　一端が対応する前記ビット線にそれぞれ接続され、他端が共通に接続され、プリチャージ信号を入力されて同時に導通される、複数のスイッチと、
　それぞれ前記ビット線電圧制御端子と前記複数のスイッチの前記他端との間に接続されているヒューズと、
　前記複数のビット線に接続され、内部にデータを格納し、電荷を蓄える浮遊ゲートとワード線に接続されている制御ゲートを有し、前記浮遊ゲートに電荷を注入されることによってプログラムされる、不揮発性半導体メモリセルと、
を備えることを特徴とする、不揮発性半導体記憶装置。
【請求項２４】
　前記不揮発性半導体メモリセルは、ＮＡＮＤ型ＥＥＰＲＯＭセルであることを特徴とする、請求項２３に記載の不揮発性半導体記憶装置。
【請求項２５】
　リセット信号に応答して、前記複数のビット線を放電させる複数のリセットトランジスタをさらに備えることを特徴とする、請求項２３に記載の不揮発性半導体記憶装置。
【請求項２６】
　複数のビット線と、
　複数のワード線と、
　それぞれが浮遊ゲート型ＭＯＳトランジスタである複数の不揮発性半導体メモリセルを有する、不揮発性半導体メモリセルアレイと、
　それぞれが前記複数のビット線の内の対応する１つに接続され、前記複数のメモリセルから読み出されたデータを格納する、複数のデータラッチ回路と、
　前記データラッチ回路に格納されている前記データのエラー修正を行い、且つ修正データを生成し出力するエラーコレクト回路（ＥＣＣ）と、
を備えることを特徴とする、半導体記憶システム。
【請求項２７】
　前記エラーコレクト回路（ＥＣＣ）は、前記データラッチ回路に格納されている前記データ内の故障ビット数をカウントし、前記故障ビット数が所定の数より小さいときには前記コレクトデータを生成し出力することを特徴とする、請求項２６に記載の半導体記憶システム。
【請求項２８】
　前記エラーコレクト回路（ＥＣＣ）は、前記データラッチ回路に格納されている前記データ内の故障ビット数をカウントし、前記故障ビット数が所定の数より大きいときにはアラーム信号を出力することを特徴とする、請求項２６に記載の半導体記憶システム。
【請求項２９】
　前記エラーコレクト回路（ＥＣＣ）は、前記データラッチ回路に格納されている前記データ内の故障ビット数をカウントすることを特徴とする、請求項２６に記載の半導体記憶システム。
【請求項３０】
　前記複数のビット線と、前記複数のワード線と、前記不揮発性半導体メモリセルアレイと、前記複数のデータラッチ回路と、前記エラーコレクト回路（ＥＣＣ）とにより、チップを構成することを特徴とする、請求項２６に記載の半導体記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、不揮発性半導体記憶装置、キャッシュメモリシステム、半導体記憶装置、および半導体記憶システムに関する。
【背景技術】
【０００２】
　従来、コンピュータシステムの記憶装置として磁気ディスク装置が広く用いられてきた。しかし、磁気ディスク装置には、以下のような短所、即ち、高度に精密な機械的駆動機構を有するため衝撃に弱い、重量があるため可搬性に乏しい、消費電力が大きく電池駆動が容易でない、及び高速アクセスができない等の短所があった。
【０００３】
　このような欠点に着目して、近年、ＥＥＰＲＯＭを用いた半導体メモリ装置の開発が進められている。半導体メモリ装置には、一般に、そのような長所、即ち、機械的駆動部分を有しないため衝撃に強い、軽量のため可搬性に富む、消費電力が小さいため電池駆動が容易である、高速アクセスが可能である等の長所を有している。
【０００４】
　ＥＥＰＲＯＭの一つとして、高集積化が可能なＮＡＮＤセル型ＥＥＰＲＯＭが知られている。これは、次のような構造を有する。即ち、複数のメモリセルは例えばカラム方向に並べる。これらのセルのうちの互いに隣りあうセル同士のソースとドレインを順次直列に接続する。このような接続により、複数のメモリセルが直列接続された単位セル群（ＮＡＤＡセル）を構成する。このような単位セル群を一単位としてビット線に接続する。
【０００５】
　メモリセルは、通常、電荷蓄積層と制御ゲートとが積層されたＦＥＴＭＯＳ構造を有する。メモリセルは、ｐ型基板又はｎ型基板に形成されたｐ型ウエル内にアレイ状に集積形成される。ＮＡＮＤセルのドレイン側は、選択ゲートを介して、ビット線に接続される。ＮＡＮＤセルのソース側は、選択ゲートを介して、ソース線（基準電位配線）に接続される。各メモリセルの制御ゲートは、行方向に配設されたワード線に接続されている。
【０００６】
　このＮＡＮＤ型ＥＥＰＲＯＭの書込み動作は、次の通りである。先の消去動作によって、ＮＡＮＤセル内の全てのメモリセルのしきい値が負にされている。この後、データ書込みは、ビット線から最も離れた位置のメモリセルから順に行われる。選択されたメモリセルの制御ゲートには高電圧Ｖpp（＝２０Ｖ程度）を印加し、それよりビット線側にあるメモリセルの制御ゲート及び選択ゲートに中間電位ＶM （＝１０Ｖ程度）を印加する。ビット線に書込みデータに応じて０Ｖ又は中間電位を与える。ビット線に０Ｖが与えられた時、その電位は選択メモリセルのドレインまで伝達されて、ドレインから浮遊ゲートに電子注入が生じる。これにより、選択されたメモリセルのしきい値は正方向にシフトする。この状態を、例えば“０”とする。ビット線に中間電位が与えられたときは電子注入が起こらない。従って、このときにはメモリセルのしきい値は変化しない。つまり、しきい値は負の値をとる。この状態を“１”とする。
【０００７】
　データ消去は、ＮＡＮＤセル内の全てメモリセルに対して同時に行われる。即ち、全ての制御ゲート及び選択ゲートを０Ｖとし、ビット線及びソース線を浮遊状態とし、ｐ型ウェル及びｎ型基板に高電圧２０Ｖを印加する。これにより、全てのメモリセルで浮遊ゲート中の電子がｐ型ウェルに抜き取られ、メモリセルのしきい値は負方向にシフトとする。
【０００８】
　データ読出し動作は、次のようにして行われる。即ち、選択されたメモリセルの制御ゲートを０Ｖとし、非選択メモリセルの制御ゲート及び選択ゲートを電源電位Ｖcc（＝５Ｖ）とする。この状態で、選択メモリセルに電流が流れるか否かを検出する。流れれば“１”のデータが、流れなければ“０”のデータがそれぞれ格納されているのがわかる。
【０００９】
　以上の動作説明から明らかなように、ＮＡＮＤセル型ＥＥＰＲＯＭでは、書込み及び読出し動作時には、非選択メモリセルは、転送ゲートとして作用する。このため、書込みがなされたメモリセルのしきい値電圧には制限がある。例えば“０”書込みされたメモリセルのしきい値の好ましい範囲は、０．５〜３．５Ｖ程度でなければならない。データ書込み後の経時変化、メモリセルの製造パラメータのばらつき及び電源電位のばらつきを考慮すると、データ書込み後のしきい値分布は上記範囲よりも小さい範囲である必要がある。
【００１０】
　しかしながら、従来のように、書込み電位及び書込み時間を固定し、全メモリセルについて同一条件でデータ書込みする方式では、“０”書込み後のしきい値範囲を許容範囲に収めることが難しい。例えば、メモリセルには、製造プロセスのばらつきから、セルの特性にばらつきが生じる。このため、書込まれやすいメモリセルと書込まれにくいメモリセルが生じる。このような書込み特性差に着目し、各々のメモリセルのしきい値が所望の範囲に収まるような書込みが行われるようにするため、書込み時間の長さを調節し、且つベリファイを行いながら書込む、という方法も提案されている。
【００１１】
　しかしながら、このような方法を採用した場合には、書込みが十分に行われたかを判断するためにメモリセルのデータを装置外部に出力しなければならない。このため全書込み時間が長くなるという難点があった。
【００１２】
　消去ベリファイに関しては、特開平３−２５９４９９に開示されているように、複数のセンスアンプの出力をＡＮＤゲートに入力してそれらの論理をとって、一括消去ベリファイ信号を生成するという技術が知られている、しかし、この回路構成は、ＮＯＲ型の消去ベリファイのみにしか用いることが出来ず、書込みベリファイには適用できない。その理由は、書込みデータの値は、“１”と“０”の両方の値をとり、センスアンプ出力の論理をとることによっては一括ベリファイが行えないためである。このように、書込みベリファイを一括して行うことができないため、データ書込みの際には、書込みとベリファイ読出しとを繰り返し行って、各メモリセルのデータをその都度１つ１つチップ外部に出力しなければならなかった。このことが、書込み動作の高速化を妨げる要因となっていた。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
　本発明は、上記高速化達成の困難さに着目してなされたもので、その目的は、制御回路の面積を増大させることなく、書込み動作及び書き込みベリファイ並びに消去動作及び消去ベリファイを高速化可能なＥＥＰＲＯＭ及びそれを用いたシステムを提供することにある。
【課題を解決するための手段】
【００１４】
　本発明は、電気的に書き替え可能な複数の不揮発性半導体メモリセルと、前記複数のメモリセルに共通に接続されるワード線と、前記複数のメモリセルに共通に接続されるソース線と、前記ワード線に書き込みベリファイ電圧を供給するロウデコーダと、それぞれ対応する前記メモリセルに繋がる複数のビット線と、それぞれ対応する前記ビット線に設けられる複数の書き込みベリファイ回路と、を備えた不揮発性半導体記憶装置であって、前記書き込みベリファイ回路のそれぞれは、第１あるいは第２の論理レベルのデータを記憶し、前記第１の論理レベルのデータを記憶している場合は予め対応するビット線を充電して所定の期間後に対応する前記メモリセルの書き込み状態を検出し、前記第２の論理レベルのデータを記憶している場合は少なくとも前記所定の期間は対応するビット線を所定の電源に接続するものとして構成される。
【発明の効果】
【００１５】
　本発明によれば、複数のメモリセルのそれぞれに関しての書き込み、消去が適正に行われたか否かを迅速に検知して、対象とする全てのメモリセルに関しての書き込み、消去を迅速に行うことができ、しかも書き込み、消去を繰り返してもメモリセルにおけるしきい値の変動しすぎを防止することができる。
【実施例】
【００１６】
　以下、本発明の実施例を図面を参照して説明する。　
　図１は、本発明の第１実施例のＮＡＮＤ型ＥＥＰＲＯＭを示すブロック図である。メモリセルアレイ１に対して、データ書込み、読出し、再書込み及びベリファイ読出しを行うために、ビット線制御回路２が設けられている。このビット線制御回路２は、データ入出力バッファ６につながっている。アドレスバッファ４からのアドレス信号は、カラムデコーダ３を介して、ビット線制御回路２に加えられる。メモリセルアレイ１における制御ゲート及び選択ゲートを制御するため、ロウデコーダ５が設けられている。メモリセルアレイ１が形成されるｐ型領域（ｐ基板又はｐ型ウェル）の電位を制御するため、基板電位制御回路７が設けられている。
【００１７】
　プログラム終了検出回路８は、ビット線制御回路２にラッチされているデータを検知し、書込み終了信号を出力する。書込み終了信号は、データ入出力バッファ６から外部へ出力される。
【００１８】
　ビット線制御回路２は、主にＣＭＯＳフリップフロップ（ＦＦ）を有する。これらのＦＦは、書込むためのデータのラッチ、ビット線の電位を検知するためのセンス動作、書込み後のベリファイ読出しのためのセンス動作、さらに再書込みデータのラッチを行う。
【００１９】
　図２（ａ）、（ｂ）は、それぞれ、メモリセルアレイの一つのＮＡＮＤ部分の平面図及び等価回路図である。図３（ａ）、（ｂ）は、それぞれ、図２（ａ）のＡ−Ａ′線断面図及びＢ−Ｂ′断面図である。素子分離酸化膜１２で囲まれたｐ型領域１１に、複数のメモリセル、つまり複数のＮＡＮＤセルを有するメモリセルアレイが形成されている。以下には一つのＮＡＮＤセルに着目して説明する。この実施例では、８個のメモリセルＭ1 〜Ｍ8 が直列に接続されて一つのＮＡＮＤセルを構成している。各メモリセルは基板１１の上方に、ゲート絶縁膜１３を介して浮遊ゲート１４（１４1 ，１４2 ，…，１４8 ）が形成されている。これらの浮遊ゲート１４の上方に、層間絶縁膜１５を介して、制御ゲート１６（１６1 ，１６2 ，…，１６8 ）が形成されている。各ｎ型拡散層１９は、隣接する２つのメモリセルの一方においては、ソースとして、他方においてはドレインとして共用される。これにより、各メモリセルは、直列に接続されることになる。
【００２０】
　ＮＡＤＡセルのドレイン側とソース側には、それぞれ、メモリセルの浮遊ゲート及び制御ゲートと同じプロセスによって形成された選択ゲート１４9 ，１９9 及び１４10，１６10が設けられている。このように素子形成された基板の上方は、ＣＶＤ酸化膜１７により覆われている。この酸化膜１７の上にビット線１８が配設されている。ビット線１８は、ＮＡＮＤセルの一端のドレイン側拡散層１９にコンタクトさせられている。行方向に並ぶ複数のＮＡＮＤセルの同一行の制御ゲート１４は、共通に接続され、行方向に走る制御ゲート線ＣＧ1 ，ＣＤ2 ，…，ＣＧ8 として配設されている。これら制御ゲート線はいわゆるワード線となっている。選択ゲート１４9 ，１６9 及び１４10，１６10も、それぞれ、行方向に走る選択ゲート線ＳＧ1 ，ＳＧ2 として配設されている。選択ゲート１４10，１６10と基板１１との間のゲート絶縁膜１３をメモリセルのゲート絶縁膜より厚くすることもできる。このように厚くすれば、信頼性を高めることができる。
【００２１】
　図４は、上記複数のＮＡＮＤセルをマトリックス配列したメモリセルアレイの等価回路を示している。
【００２２】
　図５は、図１中のビット線制御回路２の具体的な構成例を示す。データラッチ兼センスアップとしてのＣＭＯＳフリップフロップＦＦは、第１、第２の２つの信号同期式ＣＭＯＳインバータＩＶ1 ，ＩＶ2 を有する。第１の信号同期式ＣＭＯＳインバータＩＶ1 は、Ｅタイプ、ｐチャンネルＭＯＳトランジスタＱp1，Ｑp2と、Ｅタイプ、ｎチャンネルＭＯＳトランジスタＱn3，Ｑn4とを有する。第２の同期式ＣＭＯＳインバータＩＶ2 は、Ｅタイプ、ｐチャンネルＭＯＳトランジスタＱp3，Ｑp4と、Ｅタイプ、ｎチャンネルＭＯＳトランジスタＱn5，Ｑn6とを有する。
【００２３】
　このＣＭＯＳフリップフロップＦＦの出力ノードと、ビット線ＢＬi とは、信号φF により制御されるＥタイプ、ｎチャンネルＭＯＳトランジスタＱn7を介して、接続されている。
【００２４】
　ビット線ＢＬi とＶccの間には、フリップフロップＦＦの出力ノードにより制御されるＥタイプ、ｎチャンネルＭＯＳトランジスタＱn8と、信号φV により制御されるＥタイプ、ｎチャンネルＭＯＳトランジスタＱn9とが、直列に接続されている。これらのトランジスタにより、ベリファイ読出し時に、ＣＭＯＳフリップフロップＦＦのデータに応じて、ビット線ＢＬi が（Ｖcc−Ｖth）に充電される。
【００２５】
　Ｅタイプ、ｐチャンネルＭＯＳトランジスタＱp5とＤタイプ、ｎチャンネルＭＯＳトランジスタＱD1の直列回路は、ビット線ＢＬi をＶccにプリチャージする回路である。トランジスタＱD1は、消去時や書込み時にトランジスタＱp5に高電圧が印加されるのを防止するために設けられている。Ｅタイプ、ｎチャンネルＭＯＳトランジスタＱn10 は、ビット線ＢＬi を０Ｖにリセットするためのリセットトランジスタである。
【００２６】
　ＣＭＯＳフリップフロップＦＦの二つのノードＮ11，Ｎ12は、カラム選択信号ＣＳＬi により共に制御される２つのトランスファゲート（Ｅタイプ、ｎチャンネルＭＯＳトランジスタＱn1とＱn2）を介して入出力線／ＩＯ，ＩＯにそれぞれ接続されている。
【００２７】
　また、ＣＭＯＳフリップフロップＦＦのノードＮ11は、Ｅタイプ、ｎチャンネルＭＯＳトランジスタＱn11 のゲートに接続されている。このトランジスタＱn11 の出力は、書込み終了検出信号ＶDTC として用いられる。
【００２８】
　図６に、ビット線制御回路２と、メモリセルアレイ１及びプログラム終了検出回路８との、接続関係を示す。
【００２９】
　プログラム終了検出回路８におけるＥタイプ、ｐチャンネルＭＯＳトランジスタＱp6は、書込み終了検出信号ＶDTC を出力する。図６中に破線で囲って汎例として示すように、ＦＦは便宜上記号化してある。
【００３０】
　この実施例の書込み時及び確認時の回路動作を次に説明する。なお、以下の説明では、上述のように、１つのＮＡＮＤセルは８個のメモリセルの直列回路で構成したものとする。
【００３１】
　書込みに先立って、メモリセル中のデータは、ｐ型領域（ｐ基板又はｐウェル）に約２０Ｖ（Ｖpp）を印加し、制御ゲートＣＧ1 〜ＣＧ8 を０Ｖとして、消去される。この消去により、メモリセルのしきい値は０Ｖ以下となる。
【００３２】
　図７は、書込み時／書込み確認時の動作を示している。図５において、書込みデータは、出力線ＩＯ．／ＩＯから、ＣＭＯＳフリップフロップＦＦにラッチされる。この後、プリチャージ信号φP が“Ｈ”、／φP が“Ｌ”となって、ビット線ＢＬi がＶccにプリチャージされる。また、電圧ＶMBとφF は、Ｖccから中間電位ＶM （〜１０Ｖ）となる。ラッチしたデータによって、ビット線ＢＬi は、“０”書込みの場合は０Ｖとなり、“１”書込みの場合はＶM となる。このとき、図４において、選択ゲートＳＧ1 はＶM 、ＳＧ2 は０Ｖであり、制御ゲートとしてはＣＧ2 が選択されている場合、ＣＧ1 がＶM ，ＣＧ2 が高電圧Ｖpp（〜２０Ｖ）で、ＣＧ3 〜ＣＧ8 はＶM である。
【００３３】
　選択ゲートＳＧ1 ，ＳＧ2 、制御ゲートＣＧ1 〜ＣＧ8 が０Ｖにリセットされた時、信号φF が“Ｌ”、リセット信号φR が“Ｈ”となって、ビット線ＢＬi は０Ｖにリセットされる。続いて書込み確認動作となる。
【００３４】
　書込み確認動作は、まずプリチャージ信号φp が“Ｈ”、／φp が“Ｌ”となって、ビット線ＢＬi がＶccにプリチャージされる。この後、ロウデコーダ５により選択ゲート、制御ゲートが駆動される。メモリセルのデータがビット線に読み出された後、選択ゲートＳＧ1 ，ＳＧ2 、制御ゲートＣＧ1 〜ＣＧ8 がリセットされる。この後、ベリファイ信号φV が“Ｈ”となり、“１”書込みをしたビット線ＢＬi にのみ（Ｖcc−Ｖth）が出力される。
【００３５】
　この後、φSP，φRPが“Ｈ”となり、φSN，φRNが“Ｌ”となり、φF が“Ｈ”となる。信号φSPが“Ｌ”となり、φSNが“Ｈ”となってビット線電位がセンスされる。この後、信号φRPが“Ｌ”となり、φRNが“Ｈ”となって、再書込みデータがラッチされる。このとき、書込みデータ、メモリセルのデータ、再書込みデータの関係は、下記の表１に示される。
【００３６】
　　　　　　　　　　　　表　１　　　　　　　　　　　　
　　　書込みデータ　　　　　　０　　０　　１　　１
　　　メモリセルのデータ　　　０　　１　　０　　１
　　　再書込みデータ　　　　　１　　０　　１　　１　　
　この後、書込み終了検知信号／φDVが“Ｌ”となる。もし全ての再書込みデータが“１”であれば、書込み終了検出信号ＶDTC が“Ｈ”となる。１つでも、“０”があれば、ＶDTC は“Ｌ”である。書込み・書込み確認動作は、ＶDTC が“Ｈ”となるまで繰り返される。そして、検出結果は、データ入出力ピン或いはＲＥＡＤＹ／ＢＵＳＹピンから外部に出力される。
【００３７】
　この実施例では、消去、書込み、読出し、書込み確認時におけるビット線ＢＬi 、選択ゲートＳＧ1 ，ＳＧ2 、制御ゲートＣＧ1 〜ＣＧ8 の電位は表２に示される。ここでは、ＣＧ2 が選択された場合を示している。
【００３８】
　　　　　　　　　　　　　　　表　２　　　　　　　　　　　　　　　　　
　　　　　　　　　　　　消　去　　　　　書込み　　　読出し　書込み
　　　　　　　　　　　　　　　　　　“０”　“１”　　　　　確認　　　
　ビット線ＢＬi　　 フローティング　　０Ｖ　１０Ｖ　　５Ｖ　　５Ｖ
　選択ゲートＳＧ1　　　　 ０Ｖ　　　１０Ｖ　１０Ｖ　　５Ｖ　　５Ｖ
　制御ゲートＣＧ1　　　　 ０Ｖ　　　１０Ｖ　１０Ｖ　　５Ｖ　　５Ｖ
　　〃　　　ＣＧ2　　　　 ０Ｖ　　　２０Ｖ　２０Ｖ　　０Ｖ　０．　５Ｖ
　　〃　　　ＣＧ3　　　　 ０Ｖ　　　１０Ｖ　１０Ｖ　　５Ｖ　　５Ｖ
　　〃　　　ＣＧ4　　　　 ０Ｖ　　　１０Ｖ　１０Ｖ　　５Ｖ　　５Ｖ
　　〃　　　ＣＧ5　　　　 ０Ｖ　　　１０Ｖ　１０Ｖ　　５Ｖ　　５Ｖ
　　〃　　　ＣＧ6　　　　 ０Ｖ　　　１０Ｖ　１０Ｖ　　５Ｖ　　５Ｖ
　　〃　　　ＣＧ7　　　　 ０Ｖ　　　１０Ｖ　１０Ｖ　　５Ｖ　　５Ｖ
　　〃　　　ＣＧ8　　　　 ０Ｖ　　　１０Ｖ　１０Ｖ　　５Ｖ　　５Ｖ
　選択ゲートＳＧ2　　　　 ０Ｖ　　　　０Ｖ　　０Ｖ　　５Ｖ　　５Ｖ
　ソース線　　　　　フローティング　　０Ｖ　　０Ｖ　　０Ｖ　　０Ｖ
　基　　板　　　　　　　２０Ｖ　　　　０Ｖ　　０Ｖ　　０Ｖ　　０Ｖ　　
　　図８は、本発明の第２の実施例のＮＡＮＤ型ＥＥＰＲＯＭを示すブロック図である。基本的な構成は図１と同様である。第２実施例が第１と異なる点は、セルアレイ１を二つのブロック１Ａ，１Ｂに分け、これらのセルブロック１Ａ，１Ｂに共通にビット線制御回路２を設けた点にある。
【００３９】
　図９及び図１０は、ビット線制御回路２及びプログラム終了検知回路８を示す。図９において、Ｅタイプ、ｎチャンネルＭＯＳトランジスタＱn16 ，Ｑn17 とＥタイプ、ｐチャンネルＭＯＳトランジスタＱp7，Ｑp9とによってＦＦを構成している。Ｅタイプ、ｎチャンネルＭＯＳトランジスタＱn14 ，Ｑn15 は、ＦＦのイコライズ用トランジスタである。Ｅタイプ、ｎチャンネルＭＯＳトランジスタＱn27 ，Ｑn28 は、データ検出用トランジスタである。
【００４０】
　Ｅタイプ、ｎチャンネルＭＯＳトランジスタＱn18 とＥタイプ、ｐチャンネルＭＯＳトランジスタＱp8は、ＦＦ活性化用トランジスタである。Ｅタイプ、ｎチャンネルＭＯＳトランジスタＱn19 とＱn20 は、ＦＦの２つのノードＮ1 ，Ｎ2 とセルアレイブロック１Ａ，１Ｂ内のビット線ＢＬai（ｉ＝０，１，…）、ＢＬbi（ｉ＝０，１，…）との接続用トランジスタである。Ｅタイプ、ｎチャンネルＭＯＳトランジスタＱn21 〜Ｑn24 は、データに応じてビット線をＶcc−ＶTHに充電するためのトランジスタである。Ｑn25 ，Ｑn26 は、ビット線プリチャージ兼リセット用トランジスタである。図１０において、Ｅタイプ、ｐチャンネルＭＯＳトランジスタＱp10 ，Ｑp11 は、プログラム終了検知用トランジスタである。／φDVA ，／φDVB はプログラム終了検知信号であり、φVEA ，φVEB はプログラム終了検出信号である。
【００４１】
　次に、このように構成されたＥＥＰＲＯＭへの書込みの確認動作を図１１に従って説明する。ここでは、メモリセルアレイ１Ａのビット線ＢＬaiが選択されているものとする。
【００４２】
　先の実施例と同様に選択された制御ゲートに、０Ｖに代えて例えば０．５Ｖを印加し、ベリファイ信号φAVが出力される。まず、ビット線ＢＬaiが３Ｖにプリチャージされ、ＢＬbiが２Ｖにプリチャージされる。その後プリチャージ信号φPAとφPBが“Ｌ”レベルになって、ビット線ＢＬai，ＢＬbiはフローティングとなる。制御ゲートと選択ゲートはロウデコーダ５に選択されて、ＳＧ1 ，ＣＧ1 ，ＣＧ3 〜ＣＧ8 はＶcc、ＣＧ2 は例えば０．５Ｖとされる。通常の読出しでは、メモリセルのしきい値が０Ｖ以上であれば“０”として読出されるが、ベリファイ読出しでは０．５Ｖ以上でないと“０”と読めないことになる。
【００４３】
　この後、ビット線ＢＬaiは、もし“１”書込みをした後であれば、ベリファイ信号φAVにより（Ｖcc−Ｖth）に充電される。ここで、ベリファイ信号によって行われるプリチャージの電圧レベルは、選択ビット線のプリチャージ電圧以上であればよい。イコライズ信号φE が出力されてＣＭＯＳフリップフロップがリセットされる。この後、φA ，φB が“Ｈ”となって、ノードＮ1 ，Ｎ2 がそれぞれビット線ＢＬai，ＢＬbiと接続される。φP が“Ｌ”レベル、φN が“Ｈ”レベルとなって、ビット線ＢＬaiのデータが読出される。読出されたデータはラッチされ、次の再書込みのデータとなる。このとき再書込みデータは、前回の書込みデータによって、ベリファイ読出し時のメモリセルのデータから変換される。このデータ変換は、先の実施例の表１と同じである。
【００４４】
　この後、／φDVA が“Ｌ”となり、先の実施例と同様に、書込み終了であれば、ＶDTCAが“Ｈ”となり、プログラム終了検出信号φVEA が“Ｌ”となり、書込み動作は終了する。このとき、検出結果は、データ入出力ピン或いはＲＥＡＤＹ／ＢＵＳＹピンから、外部へ出力される。
【００４５】
　この実施例のベリファイ読出し／再書込みによっても、先の実施例と同様に、“０”書込みされるメモリセルの不必要なしきい値の上昇は抑えられる。
【００４６】
　この実施例では消去、書込み、ベリファイ読出し、読出し時の制御ゲートＣＧ1 〜ＣＧ8 及び選択ゲートＳＧ1 ，ＳＧ2 の電位は、表３に示される通りである。表３では、制御ゲートＣＧ2 が選択され、ビット線ＢＬaiが選択された場合の電位関係を示している。
【００４７】
　　　　　　　　　　　　　　表　３　　　　　　　　　　　　　　　　　　
　　　　　　　　　　　　消　去　　　　　書込み　　　読出し　書込み
　　　　　　　　　　　　　　　　　　“０”　“１”　　　　　確認　　　
　ビット線ＢＬai　　フローティング　　０Ｖ　１０Ｖ　　３Ｖ　　３Ｖ
　ビット線ＢＬbi　　　　〃　　　　　　０Ｖ　　０Ｖ　　２Ｖ　　２Ｖ
　選択ゲートＳＧ1　　　　 ０Ｖ　　　１０Ｖ　１０Ｖ　　５Ｖ　　５Ｖ
　制御ゲートＣＧ1　　　　 ０Ｖ　　　１０Ｖ　１０Ｖ　　５Ｖ　　５Ｖ
　　〃　　　ＣＧ2　　　　 ０Ｖ　　　２０Ｖ　２０Ｖ　　５Ｖ　０．　５Ｖ
　　〃　　　ＣＧ3　　　　 ０Ｖ　　　１０Ｖ　１０Ｖ　　５Ｖ　　５Ｖ
　　〃　　　ＣＧ4　　　　 ０Ｖ　　　１０Ｖ　１０Ｖ　　５Ｖ　　５Ｖ
　　〃　　　ＣＧ5　　　　 ０Ｖ　　　１０Ｖ　１０Ｖ　　５Ｖ　　５Ｖ
　　〃　　　ＣＧ6　　　　 ０Ｖ　　　１０Ｖ　１０Ｖ　　５Ｖ　　５Ｖ
　　〃　　　ＣＧ7　　　　 ０Ｖ　　　１０Ｖ　１０Ｖ　　５Ｖ　　５Ｖ
　　〃　　　ＣＧ8　　　　 ０Ｖ　　　１０Ｖ　１０Ｖ　　５Ｖ　　５Ｖ
　選択ゲートＳＧ2　　　　 ０Ｖ　　　　０Ｖ　　０Ｖ　　５Ｖ　　５Ｖ
　ソース線　　　　　フローティング　　０Ｖ　　０Ｖ　　０Ｖ　　０Ｖ
　基　　板　　　　　　　２０Ｖ　　　　０Ｖ　　０Ｖ　　０Ｖ　　０Ｖ　　
　図１２は、本発明におけるビット線制御回路２内のデータラッチ部と、プログラム終了検知回路８とを、選択ビット線との関係で模式的に示したものである。同図（ａ）は、先の第１の実施例で示したものである。Ｅタイプ、ｎチャンネルＭＯＳトランジスタＱnD0 〜ＱnDm は図５のトランジスタＱn11 に相当する。Ｅタイプ、ｐチャンネルＭＯＳトランジスタＱp12 は図６のプログラム終了検知回路８のトランジスタＱp6に相当している。
【００４８】
　同図（ｂ）は、データ検出用Ｅタイプ、ｎチャンネルＭＯＳトランジスタを直列にしたものである。データ検出用トランジスタＱnD0 〜ＱnDm のゲートが全て“Ｈ”ならばプログラムは終了で、Ｖx は“Ｌ”となる。
【００４９】
　また、同図（ｃ），（ｄ）では、データ検出用トランジスタとしてＥタイプ、ｐチャンネルＭＯＳトランジスタＱpD0 〜ＱpDm を用い、プログラム終了検知回路８にＥタイプ、ｎチャンネルＭＯＳトランジスタＱn29 を用いている。このような構成においても、（ａ）と同様に、書込みを終了するか否かを検出することができる。
【００５０】
　上記した図１２（ａ）のように、検出用トランジスタＱn ＤＯ〜Ｑn Ｄｍを並列に接続した場合には、ビット線の数１０００ビットになっても、適正な検出が可能である。同図（ｂ）のように、それらのトランジスタを直列に接続した場合には、隣接するトランジスタのソースとドレインを共通化できることから、パターン面積を小さなものとすることができる。
【００５１】
　図１３は、図１２の回路を、１トランジスタ型（ＮＯＲ型）のフラッシュＥＥＰＲＯＭに適用した場合を示す実施例である。ＮＯＲ型のフラッシュＥＥＰＲＯＭでは、書込み終了時にデータが反転する。このため、図１３に示すように、ＦＦにおける図１２とは逆の端子をデータ検出用のトランジスタに接続すればよい。
【００５２】
　次に、ＮＯＲ型のフラッシュＥＥＰＲＯＭについての実施例について説明する。　
　特開平３−２５０４９５号公報の第６図に、ＮＯＲ型のメモリセル構造を採用しつつ、ＮＡＮＤ型のものと同程度の高集積度を達成したメモリが記載されている。このメモリにおいては、書き込み、消去動作をともにＦ‐Ｎトンネル電流で行うことができる。このメモリに、前述のような、本発明の実施例における一括ベリファイ回路を適用することにより、書き込みベリファイ時間を大幅に短縮可能である。
【００５３】
　このようにした実施例を、図１４、１５を参照して説明する。　
　この実施例の回路構成は、図１４に示される。この装置が、ＮＡＮＤ型Ｅ2 ＰＲＯＭと異なる点は、以下の点にある。即ち、メモリセルブロックＭＣＢ中のメモリセルＭＣに書き込むデータはデータラッチＤＲにラッチされる。このデータラッチＤＲの反対側のノードから、検出トランジスタへ信号を出力するようにしている。
【００５４】
　図１５に、データを書き込み済のセルと消去済のセルのしきい値Ｖthの分布を示す。
【００５５】
　消去（イレーズ）、書き込み（ライト）及び読み出し（リード）の多動作における、各部位への印加電圧は表４に示される。
【００５６】
　　　　　　　　　　　　　　　　　表　４
　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　
　　　　　　　　　　　　ＢＳＬ　　　　ＢＬ　　　ＷＬ　　　　ＶSS
　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　
　イレーズ　　　　　　　　０ｖ　フローティング　２０ｖ　　　０ｖ
　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　
　ライト
　“０”ライト(Vth>5)　 ２２ｖ　　　　０ｖ　　　　０ｖ　フローティング
　“１”ライト(Vth<5)　 ２２ｖ　　　２０ｖ　　　　０ｖ　フローティング
　非選択セル　　　　　　２２ｖ　０ｖ／２０ｖ　　１０ｖ　フローティング
　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　
　リード　　　　　　　　　５ｖ　０ｖ／５ｖ　　　　５ｖ　　　０ｖ　　　
　次に、消去動作について説明する。　
　データ書き換え対象としてのブロックを、そのブロックのローデコーダによって選択する。且つ、選択メモリセルに対応するビット線をフローティング状態とし、ワード線を２０ｖとする。これにより、選択メモリセルのフローティングゲートへ電子を注入する。この注入は、Ｆ‐Ｎ電流により行われる。このため、電流量は極めて少ない。よって、数１０００ビット分のメモリセルに対して同時にイレーズすることができる。
【００５７】
　イレーズ後のベリファイ動作は、一括ベリファイ動作により行われる。即ち、ワードラインに例えば５ｖを加える。このとき、イレーズ対象としたメモリセルは、イレーズ動作によって、そのしきい値が十分に正方向へシフトしているか否かによって、オフ／オンする。つまり、オフであれば、イレーズＯＫであることがわかる。
【００５８】
　より詳しくは、ベリファイ動作は次のようにして行われる。信号ＰＲＥが“Ｌ”レベルとなり、トランジスタＴPRE がオンする。これにより、このトランジスタＴPRE を介して、プリチャージ線ＰＲＥＣＬはＶccによってプリチャージされる。このとき、セレクト線ＢＳＬを５ｖとして、セレクトゲートＳＧをオンする。これにより、ビット線ＢＬもプリチャージされる。ワードラインＷＬのうちの選択対象とするものを５ｖとする。このとき、メモリセルのうち十分にイレーズがなされた／なされないメモリセルはオフ／オンする。メモリセルがオフ／オンすれば、ビット線ＢＬ即ちプリチャージ線ＰＲＥＣＬのプリチャージ電位は保持／放電される。このときのプリチャージ線ＰＲＥＣＬの電位をセンスアンプで検知し、データラッチＤＲにラッチしておく。この後、信号ＥＲＶを“Ｈ”として、データラッチＤＲの内容をノードＮＡに読み出す。ノードＮＡの電位は、そのノードＮＡに対応するカラムにおける複数のメモリセルの全てがイレーズＯＫの場合には“Ｌ”となり、メモリセルの１つにでもイレーズＮＧがあれば“Ｈ”となる。ノードＮＡの電位はベリファイトランジスタＴVEのゲートに加えられる。このトランジスタＴVEはノードＮＡの“Ｌ／Ｈ”によってオフ／オンする。オフ／オンによって、一括ベリファイセンス線ＬVEの電位はＶSSレベルにならない／なる。以上の動作は、各カラム毎に行われる。従って、一括ベリファイセンス線ＬVEのレベルは、全カラムの全セルについてベリファイＯＫの場合には“Ｈ”となり、どこかのカラムのどこかのセルが１つでもベリファイＮＧの場合には“Ｌ”となる。
【００５９】
　次に、書き込み動作（プログラム動作）について説明する。　
　プログラム対象としてのブロックのワード線を０ｖとする。その他のブロックのワード線は１０ｖとし、各メモリセルにおけるドレイン‐ゲート間の電界ストレスを緩和しておく。プログラム対象ブロックにおいて、フローティングゲートから電子を引き抜きたいメモリセルにつながるビット線を選択的に２０ｖとし、プログラムする。
【００６０】
　プログラムベリファイは、ベリファイ読み出し時におけるプリチャージ線ＰＲＥＣＬの電位の“Ｈ／Ｌ”レベルと、プログラムデータの“０／１”とによって判断される。ただし、一括ベリファイは、信号ＰＲＶを“Ｈ”とすることにより行う。そして、プログラムＮＧの場合には再書き込みを行う。この再書き込みにおいて、“０”ライトＯＫのセルにつながるプリチャージ線ＰＲＥＣＬは、“Ｌ”レベルに放電される。そのため、再書き込み時に、ビット線が“Ｌ”レベルにあることから、フローティングゲートからの電子の放出は起らない。これに対し、“１”ライトＯＫのセルにおいては、しきい値が十分に下っている。このため、再プログラム時、プリチャージ電位は、“１”ライトＯＫのセルを介して放電され、“Ｌ”レベルになる。よって、再プログラムしても、“１”ライトＯＫのセルのしきい値は変化しない。これに対し、プログラムＮＧつまり“１”ライトＮＧの場合は、プリチャージ電位の放電による低下はない。このため、“Ｈ”レベルが再びラッチされ、再びプログラムされることになる。
【００６１】
　以上説明したような実施例には、次のような効果が得られる。　
　セル構造がＮＡＮＤ型セルと同一であるため、微細化可能であり、チップを小形化できる。さらに、セル自体はＮＯＲ型であるため、動作電流Ｉcellが大きく、高速でのランダムアクセスが可能である。さらに、ページライト／ページリードが可能である。
【００６２】
　図１２（ｂ），（ｃ）の実施例においては、データ検出用トランジスタのゲートを直接ビット線ＢＬｉに接続しても同様な作用が実現できる。このような例を、図１６（ａ），（ｂ）にそれぞれ示す。同様に、図１３（ａ），（ｄ）の実施例においては、データ検出用トランジスタのゲートを直接ビット線ＢＬｉに接続しても同様な作用が実現できる。これを、図１７（ａ），（ｂ）にそれぞれ示す。
【００６３】
　また、図１２，１３，１６，１７では、シングルビットライン方式を採用しているが、オープン或いはフォールデッドビットライン方式とすることもできる。データ検出用トランジスタと、ＣＯＭＳフリップフロップＦＦと、選択ビット線の構成を、本実施例と同様とすればよい。
【００６４】
　図１２，１３，１６，１７は、データ検出用トランジスタとＣＭＯＳフリップフロップＦＦと選択ビット線の構成を模式的に示すものであり、種々のビットライン方式においても同様に実施することができる。
【００６５】
　続いて、本発明のさらに別の実施例について説明する。以上に説明した各実施例では、ビット線の一端に設けられたＣＭＯＳフリップ・フロップ（データラッチ兼センスアンプ回路）の一端を検知用トランジスタのゲート電極に接続している。そしてアドレス信号によらず、全てのデータラッチ内の内容が“１”書込みデータであるか否かを検知して、書込み状態が十分であるか否かを検知している。
【００６６】
　このため、不良カラム番地や救済用に設けられた未使用冗長カラム番地のデータラッチ回路のデータも検知してしまう。本来なら書込み状態は十分であるのに、不十分であるが如くに検知してしまい、書込みが終了しないという問題が生じる原因となる。つまり、データ書込み後の書込み状態確認動作が、不良カラム番地或いは未使用カラム番地の影響で、誤動作してしまう虞れがある。
【００６７】
　そこで本実施例では、再書込みデータを検知する検知回路の誤動作を救済する手段を設けている。これによって、不良カラム番地或いは未使用カラム番地の書込み状態の影響を受けることなく、本来使用しているカラム番地についてのみの書込み状態の検知を可能にしている。
【００６８】
　基本的な構成は図１〜図７に示す第１実施例と同様である。第１実施例に加えて、本実施例では、書込み終了検知回路の誤動作の救済のために、後述するように、書込み終了検知用ＭＯＳトランジスタにヒューズ及び不揮発性メモリを接続している。
【００６９】
　図１８（ａ）は、書込み／書込み確認時のアルゴリズムを示している。プログラム・コマンドが入力されると、冗長カラムを含む全てのカラム番地のデータラッチ回路に“１”プログラム・データが自動的にラッチされる。ここで、全てのカラム番地とは、セルアレイが分割され且つデータラッチ回路も分割されている場合には、選択された分割部分の全てのカラム番地を指す。
【００７０】
　書込み動作は第１実施例と全く同様であり、書込み確認動作についても第１実施例と略同様である。但し、前掲の表１において、不良カラム番地及び未使用カラム番地のメモリセルは、データ入力前に“１”にリセットされている。このため、書込みデータやメモリセルのデータに拘らず、再書き込みデータは常に“１”となる。
【００７１】
　図１８（ａ）に示されるアルゴリズムに従って書込み／書込み確認動作を行えば、例えば不良カラム番地に“０”が書込めないメモリセルがあっても、このメモリセルに影響されて書込み終了検知動作が誤動作することはない。より具体的にいえば、書込み状態は十分であるにも拘らず、不良カラム番地や未使用カラム番地のメモリセルの影響を受けて、書き込み不十分であると誤って検知して書込みが終了しない、という問題を未然に防止することができる。
【００７２】
　図１８（ｂ）は別のアルゴリズムを示す。例えば、ある不良カラム番地のビット線が接地電位とショートしているとする。この場合、図１８（ａ）のように、“１”プログラム・データをセットすると、中間電位ＶＭがこのビット線に印加されることになる。これにより、中間電位ＶＭが接地電位とショートする。これにより、昇圧回路で発生されるＶＭが所定の電圧まで昇圧されない場合がある。
【００７３】
　このため、図１８（ｂ）に示されるアルゴリズムでは、外部からのデータ入力後、未使用カラム番地（含む不良番地）にのみ“０”プログラム・データを自動的にセットする。また、ベリファイ読出し後に未使用カラム番地に“１”プログラム・データを自動的にセットする。このようにすれば、ビット線のリークという不良にも影響されず、信頼性の高いＮＡＮＤセル型ＥＥＰＲＯＭが実現される。なお図１８（ａ），（ｂ）のいずれにおいても、破線内の部分は自動的にＥＥＰＲＯＭ内部で行われることを示している。
【００７４】
　図１９（ａ）に、図６に示されるＣＭＯＳフリップ・フロップのデータラッチ兼センスアンプと書込み終了検知用トランジスタを模式的に示す。また、図１７（ｂ），（ｃ）に、書込み終了検知回路の誤動作救済のために、書込み終了検知用ＭＯＳトランジスタにヒューズＦｕ１，Ｆｕ２を接続した例を示す。図１７（ｂ）は書込み終了検知用ＭＯＳトランジスタのソースと接地線の間に、ポリＳｉ線やＡｌ線からなるヒューズＦｕ１を設けている。ＥＥＰＲＯＭテスト後にこれらのヒューズＦｕ１のうち、不良カラム番地や未使用カラム番地におけるヒューズＦｕ１はレーザ光などで切断される。これによってヒューズＦｕ１が切断されたカラム番地に関しては、書込み終了検知動作は行われなくなる。
【００７５】
　図１９（ｃ）は、ヒューズＦｕ２として、不揮発性メモリセルを用いたものである。この不揮発性メモリセルをヒューズとして用いるために、まず紫外線を当て、ヒューズデータを消去（初期化）する。つまり、例えば、メモリセルＦｕ２のＶthを負とし、又は０＜Ｖth＜Ｖccとする。ヒューズデータをプログラムするために、ＶＦ１を例えばＶcc以上のＶＭ程度に印加し、ＶＦ２を０ｖにし、さらにＶＤＴＣをＶccとする。書込み終了検知用ＭＯＳトランジスタのソースと接地電位との間を切断しようとするカラム番地につながるラッチに“０”プログラム・データをラッチさせる。切断しようとしないカラム番地につながるラッチには“１”プログラム・データをラッチさせる。“０”データをラッチしているカラム番地におけるメモリセル（ヒューズＦｕ２）には電流が流れ、ホットエレクトロン注入によってそのＶthが上昇していく。“１”データをラッチしているカラム番地におけるセル（ヒューズＦｕ２）には電流が流れないのでそのＶthは上昇しない。この場合、ＶＦ２をＶccとし、ＶＤＴＣを０ｖとしてもよい。
【００７６】
　通常動作時には、各部の電位を次のようにする。即ち、ヒューズデータの消去時のメモリセルのＶthが負となった場合には、メモリセルのＶthを正とし、ＶＦ１を接地電位として、メモリセル（ヒューズＦｕ２）を切断状態とする。メモリセルのＶthが、データ消去時に、０＜Ｖth＜Ｖccの範囲にある場合には、そのメモリセルのＶthをＶth＞Ｖccとし、ＶＦ１＝Ｖccとし、ＶＦ２を接地して、メモリセルの切断状態を得る。
【００７７】
　ヒューズ用メモリＦｕ２のデータ消去に当り、ＶＦ１を接地電位とし、ＶＦ２をＶcc以上のＶＭ程度とし、トンネル電流によって、ヒューズのＶthを、Ｖth＜０ｖ或いは０ｖ＜Ｖth＜Ｖccとしてもよい。
【００７８】
　図２０（ａ）は、図１９（ｃ）に示される回路中のある１つのカラムに着目したものである。図２０（ｂ）は、図２０（ａ）の書込み終了検知用ＭＯＳトランジスタとヒューズ用不揮発性メモリの平面図である。図２０（ｃ）は、同図（ｂ）のＸ−Ｘ′断面図である。書込み終了検知用ＭＯＳトランジスタとヒューズ用不揮発性メモリは、ＮＡＮＤ型メモリセルの形成時にそれらと同時に形成される。書込み終了検知用ＭＯＳトランジスタのゲート電極は、ＮＡＮＤセルの選択ゲートと同様に、２層の構造を有し、素子分離用絶縁膜１２上で、これらの２層のゲートは互いに接続される。
【００７９】
　書込み終了検知用ＭＯＳトランジスタ及びヒューズ用不揮発性メモリセル等の第１の素子は、ＮＡＮＤセルにおける選択トランジスタ及びメモリセル等の第２の素子と同様に形成される。例えば、第１の素子のｎ型拡散層の濃度は、ホットエレクトロンの注入により、プログラムしやすいように多少濃くしてもよい。例えば、第１の素子のｎ型拡散層の濃度を、第２の素子より濃いｎ型拡散層を持つ周辺トランジスタのｎ型拡散層の濃度とする。そして、第２の素子を、周辺トランジスタのｎ型拡散層と同時に形成してもよい。
【００８０】
　図２１は、書込み終了検知用ＭＯＳトランジスタとヒューズ用不揮発性メモリセルの他の例を示している。同図（ａ）は素子構造断面図、（ｂ），（ｃ）は（ａ）の等価回路図である。ヒューズ用不揮発性メモリセルへのプログラムは、図２０のものと同様にして行われる。ＶＦ２を接地してプログラムする場合は、図２１（ｂ）に示すようになる。ＶＤＴＣを接地してプログラムする場合は、図２１（ｃ）のようになる。また、この構造は、図２０に示されるトランジスタと同様にして形成される。
【００８１】
　また、図２０、図２１に示される不揮発性メモリセルにプログラムする場合には、電源電位Ｖccを通常動作時よりも高くして行うと効率が良い。また、さらに、ＣＭＯＳフリップ・フロップの電源ＶＭＢを、例えば、Ｖcc以上のＶＭにしてプログラムすると効率が良い。
【００８２】
　図２２は、図１９（ｂ），（ｃ）に示されるヒューズを有する回路において、ＮＡＮＤセル型ＥＥＰＲＯＭに対するプログラムアルゴリズムを示している。
【００８３】
　プログラム・コマンド投入（Ｓ１）後、自動的に未使用カラム（不良カラムを含むものとする）番地を含む全カラム番地に“０”プログラムデータがセットされる（Ｓ２）。その後、ページモードでプログラムデータが入力され（Ｓ３）、自動的に書込み／書込み確認／書込み終了検出が行われる（Ｓ４〜Ｓ７）。未使用カラムに“０”プログラムデータをセットするのは、プログラム時に未使用ビット線に中間電位ＶＭが印加されないようにするためである。且つ、ＶＭが昇圧回路の出力であり、未使用ビット線が例えば接地電位とショートしているとすると、ＶＭが所定の電位に昇圧されないからである。
【００８４】
　図２３は図１９（ｂ）の他の例を示している。同じカラムアドレス選択信号ＣＳＬｉを共有するビット線に書込み終了検知用ＭＯＳトランジスタが接続されている。これらのトランジスタに対するヒューズは共有してもよい。この方がレイアウト面積が小さくなる。当然このヒューズは不揮発性メモリで代用してもよい。
【００８５】
　次に、上述した救済手段を図８〜１１に示される第２実施例に適用した実施例について説明する。　
　基本的な動作は第２実施例と同様である。この実施例でも、図１８に示すアルゴリズムでプログラムすれば、未使用カラム番地の影響による書込み終了検知回路の誤動作を可及的に少なくすることができる。
【００８６】
　また、図２４に示すように、ヒューズを用いて図２２のアルゴリズムに従ってプログラムしてもよい。図２４（ａ）の場合、１つのデータラッチ兼センスアンプには、２つの書込み検知用ＭＯＳトランジスタが接続されている。これらの２つのトランジスタには、それぞれ、１つずつヒューズが接続されている。プログラム時のヒューズ切断は、２つのヒューズについて同時に行われる。よって、図２４（ｂ）のように、１つのヒューズを用いるようにしてもよい。また、図２４（ａ），（ｂ）において、ヒューズとして不揮発性メモリを用いることもできる。
【００８７】
　図１９（ｂ），（ｃ）の回路を、図２５（ａ），（ｂ）のようにそれぞれ変更しても、同様の機能を持たせることができる。また、図２６（ａ），（ｂ）のように、検知用ＭＯＳトランジスタとして、ｐチャネルＥタイプＭＯＳトランジスタを用いてもよい。図２７は、ビット線に直接検知用ＭＯＳトランジスタを接続した場合の例を示す。この例においてもヒューズに不揮発性メモリを用いることができる。
【００８８】
　図２８は第３実施例を説明するためのタイムチャートである。全カラム番地におけるデータラッチ兼センスアンプ回路に、それぞれ“０”，“１”プログラムデータを一括してラッチさせる動作を説明するためのものである。
【００８９】
　図６（ａ）において、φＦは“Ｌ”を維持し、Ｉ／Ｏが“Ｈ”となり、／Ｉ／Ｏが“Ｌ”となり、φＳＰ＝“Ｌ”，φＳＮ＝“Ｈ”となる。続いて、φＲＰ＝“Ｌ”，φＲＮ＝“Ｈ”となって“１”ラッチが終了する。
【００９０】
　“０”ラッチの場合は、同図（ｂ）のように、Ｉ／Ｏ＝“Ｌ”，／Ｉ／Ｏ＝“Ｈ”となる。ＦＦが非活性となった後、先ずφＲＰ＝“Ｌ”，φＲＮ＝“Ｈ”となる。続いて、φＳＰ＝“Ｌ”，φＳＮ＝“Ｈ”となる。
【００９１】
　図２９は第４実施例を説明するためのタイムチャートである。このチャートは、全カラム番地におけるデータラッチ兼センスアンプに、“０”又は“１”プログラムデータをラッチさせるときの動作を示している。φＡ，φＢは“Ｌ”のまま、Ｉ／Ｏ，／Ｉ／Ｏはデータ“０”又は“１”に合わせて電位が決まる。φＰ＝“Ｈ”，φＮ＝“Ｌ”となってＦＦが非活性化される。この後、φＥが“Ｈ”となって、イコライズされる。イコライズ終了後、全カラム選択信号ＣＳＬが“Ｈ”となり、φＰ＝“Ｌ”，φＮ＝“Ｈ”となり、ラッチされる。
【００９２】
　なお、図２８及び図２９でいうところの全カラムとは、例えばセルアレイが分割されており、それに応じてデータラッチ兼センスアンプも分割されている場合には、選択された部分についての全カラムをいう。また、図８では、オープンビットライン方式をとっているが、フォールデッドビットライン方式についても同様に適用できる。
【００９３】
　図３０は、第３実施例の変形例であり、１つのＣＭＯＳフリップ・フロップＦＦを隣り合う２本のビット線で共有する場合を示している。ビット線ＢＬのうちの、フリップ・フロップＦＦと反対側端にｐチャネルＥタイプの書込み検知用ＭＯＳトランジスタＴ１，Ｔ２のゲートを接続している。同じカラム選択信号ＣＳＬｉで選択されるビット線にゲートが接続される書込み検知用トランジスタＴ１，Ｔ１；Ｔ２，Ｔ２のヒューズＦ１，Ｆ２は図３０に示すように共有できる。また、ヒューズＦ１，Ｆ２を電源電位Ｖccと書込み検知用トランジスタＴ１，Ｔ２のソースとの間に入れることもできる（図３１（ａ））。この場合には、２つのヒューズを１つのヒューズＦで共有化することができる（図３１（ｂ））。
【００９４】
　このように第３及び第４実施例によれば、先に説明した第１及び第２実施例と同様の効果のほか、次のような効果も得られる。すなわち、書込みベリファイ読出しの結果を検知する際に、未使用カラム番地或いは不良カラム番地の影響を受けることなく、書込み状態確認を行うことができる。これにより誤動作の極めて少ない書込み終了検知回路を備えたＥＥＰＲＯＭを得ることができる。
【００９５】
　次に、本発明の第５実施例について説明する。　
　図３２は、第５実施例のＮＡＮＤセル型ＥＥＰＲＯＭのブロック図である。メモリセルアレイ１に対して、データ書込み、読出し、再書込み及びベリファイ読出しを行うためのビット線制御回路２が設けられている。このビット線制御回路２は、データ入出力バッファ６につながっている。カラムデコーダ３の出力は、ビット線制御回路２を介して、メモリセルアレイ１に加えられる。カラムデコーダ３は、アドレスバッファ４からのアドレス信号と、カラム・リダンダンシー回路１０の出力である冗長アドレス信号とを受ける。アドレスバッファ４からのアドレス信号は、カラムリダンダンシー回路１０に加えられる。また、メモリセルアレイ１における制御ゲート及び選択ゲートを制御するために、ロウ・デコーダ５が設けられている。メモリセルアレイ１が形成されるｐ基板又はｎ基板の電位を制御するため、基板電位制御回路７が設けられている。
【００９６】
　プログラム終了検出回路８は、ビット線制御回路２にラッチされているデータを検知し、書込み終了信号を出力する。書込み終了信号は、データ入出力バッファ６を介して外部へ出力される。また、アドレス信号とは無関係にビット線を所定の電圧に充電するため、ビット線充電回路９が設けられている。メモリセルアレイ２の等価回路は図２に示される。
【００９７】
　図３３は、メモリセルアレイ１と、ビット線制御回路２と、ビット線充電回路９の具体的な構成を示す。図２に示すＮＡＮＤセルＮＣがマトリックス状に配置されている。ＮＣｉｊｒ（ｉ＝０〜ｋ，ｊ＝０〜ｎ）は冗長部である。データラッチ兼センスアンプＲ／Ｗ０〜Ｒ／Ｗｍ，Ｒ／Ｗ０ｒ〜Ｒ／Ｗｋｒは、それぞれｎチャネル、ＥタイプＭＯＳトランジスタのデータ転送用トランジスタＱＦｎ０〜ＱＦｎｍ，ＱＦｎ０ｒ〜ＱＦｎｋｒを介して、ビット線ＢＬ０〜ＢＬｍ，ＢＬ０ｒ〜ＢＬｋｒに接続されている。データラッチ兼センスアンプＲ／Ｗの入力であるカラム選択信号ＣＳＬ０〜ＣＳＬｍ，ＣＳＬ０ｒ〜ＣＳＬｋｒは、カラム・デコーダ４の出力ＣＳＬ０〜ＣＳＬｍとリダンダンシー回路１０の出力（ＣＳＬ０ｒ〜ＣＳＬｋｒ）である。ビット線ＢＬ０〜ＢＬｍのうち、（ｋ＋１）本までは冗長部のビット線ＢＬ０ｒ〜ＢＬｋｒで置き換えることができる。
【００９８】
　ｎチャネルＥタイプＭＯＳトランジスタＱＲｎ０〜ＱＲｎｍ，ＱＲｎ０ｒ〜ＱＲｎｋｒはリセット用トランジスタであり、ビット線を接地電位にリセットするためのものである。ｎチャネルＥタイプＭＯＳトランジスタＱＰｎ０〜ＱＰｎｍ，ＱＰｎ０ｒ〜ＱＰｎｋｒは充電用トランジスタで、必要に応じてビット線充電電圧ＶＢＬをビット線に転送する。
【００９９】
　ヒューズＦ０〜Ｆｍ，Ｆ０ｒ〜Ｆｋｒは、充電用トランジスタとＶＢＬとの間を切断するためのもので、不良ビット線を含む未使用ビット線に接続されているものは全て切断される。例えば、ビット線ＢＬ２を冗長ビット線ＢＬ０ｒに置き換えた場合には、ヒューズＦ２を切断する。残りの冗長ビット線ＢＬ１ｒ〜ＢＬｋｒを使わない時には、ヒューズＦ１ｒ〜Ｆｋｒは全て切断される。
【０１００】
　図３４は書込み時の動作を示す。書込み動作に先立って、全てのデータラッチ兼センスアンプＲ／Ｗは、“０”プログラムデータにリセットされる。その後、データ線Ｉ／Ｏ，／Ｉ／ＯからプログラムデータがＲ／Ｗに転送され、ラッチされる。全Ｒ／Ｗにデータがラッチされる間、ビット線と制御ゲートと選択ゲートのブリチャージが行われる。ビット線リセット信号φＲが“Ｌ”となった後、ビット線プリチャージ信号φＰと充電電圧ＶＢＬとが電源電圧Ｖccとなる。使っていないビット線以外のビット線、つまり使用されるビット線はＶccに充電される。ＮＡＮＤセルの制御ゲートＣＧ１〜ＣＧ８と選択ゲートＳＧ１とがＶccに充電される。選択ゲートＳＧ２は書込み動作中、接地電位とされる。この後、ビット線プリチャージ信号φＰと充電電圧ＶＢＬとが中間電位ＶＭ（１０ｖ程度）に昇圧され、ビット線ＢＬと制御ゲートＣＧ１〜ＣＧ８と選択ゲートＳＧ１もＶＭに昇圧される。
【０１０１】
　データラッチが終了した後、プリチャージ信号φＰは“Ｌ”となり、データ転送信号φＦがＶccとなりその後ＶＭまで昇圧される。ラッチされたプログラムデータによって、“０”データがラッチされているビット線のみが接地電位にされる。また、選択された制御ゲート（ここではＣＧ２）が高電圧Ｖpp（２０ｖ程度）まで昇圧される。不良ビット線を含む使用していないビット線は、データラッチ動作前に、対応するＲ／Ｗが“０”プログラムデータにリセットされていることから、接地電位のままである。Ｒ／Ｗに“０”プログラムデータがラッチされているビット線に接続されるメモリセルでは、しきい値が上がる。Ｒ／Ｗに“１”がラッチされているビット線に接続されるメモリセルでは、しきい値は変化せず、消去時のしきい値を保持する。
【０１０２】
　制御ゲートＣＧ１〜ＣＧ８と、選択ゲートＳＧ１が接地電位にリセットされた後、データ転送信号φＦが接地され、リセット信号φＲが“Ｈ”となってビット線は接地電位にリセットされる。
【０１０３】
　この書込み動作中、データロードに先立って行われる、全Ｒ／Ｗを“０”プログラムデータにリセットする動作と、ビット線充電回路のヒューズ切断動作とによって、使用していないビット線に中間電位ＶＭが印加されることはない。
【０１０４】
　図３５は読出し動作を示している。リセット信号φＲが“Ｌ”となってプリチャージ信号φＰが“Ｈ”となる。これによって、使用していないビット線以外の全ビット線はＶＢＬ（典型的にはＶcc）に充電される。選択された制御ゲート（ここではＣＧ２）を接地し、残りの制御ゲートＣＧ１，ＣＧ３〜ＣＧ８を“Ｈ”（典型的にはＶcc）とする。“０”データが書込まれたメモリセルのしきい値が高いため（Ｖth＞０ｖ）、ビット線電位は“Ｈ”のままである。“１”データが書込まれたメモリセルのしきい値が低い（Ｖth＜０ｖ）ことから、ビット線電位は“Ｌ”となる。メモリセルのデータが、ビット線電圧として、ビット線に出力された後、データ転送信号φＦが“Ｈ”となって、データラッチ兼センスアンプＲ／Ｗでビット線電圧はセンスされる。なお、メモリセルの各部の電位は表２と同様になる。
【０１０５】
　このように本実施例によれば、ビット線充電回路のヒューズ切断によって、不良ビットを救済することができ、先に説明した第３及び第４の実施例と同様の効果が得られる。
【０１０６】
　図３６は第６の実施例を示す図で、図３３と同様、メモリセルアレイ１とビット線制御回路２とビット線充電回路９の具体的な構成を示している。
【０１０７】
　隣り合う２本のビット線ＢＬａｉとＢＬｂｉ，ＢＬａｊｒとＢＬｂｊｒ（ｉ＝０…ｍ，ｊ＝０…ｋ）に対してそれぞれデータラッチ兼センスアンプＲ／Ｗｉ，Ｒ／Ｗｊｒ（ｉ＝０…ｍ，ｊ＝０…ｋ）が１つずつ配置される。ビット線ＢＬａｉに対してデータ転送信号φＦａ、リセット信号φＲａ、プリチャージ信号φＰａが用意される。ビット線ＢＬｂｉに対してφＦｂ，φＲｂ，φＰｂが用意される。また、ビット線充電電圧電源ＶＢＬはＢＬａｉ，ＢＬｂｉに対して共通に用意される。
【０１０８】
　図３７、図３８はそれぞれ書込み、読出し動作を示している。ＢＬａｉが選択された場合、ＢＬａｉに関しては図３３の実施例と同様に動作する。非選択ビット線ＢＬｂｉは、書込み動作中、中間電位ＶＭに充電されたままでＢＬｂｉに接続されるメモリセルへの誤書込みを防止する。また、ＢＬｂｉは読出し動作中は接地された状態を保ち、ビット線間のカップリングノイズを抑制する働きをする。メモリセルの各部の電位を表５に示す。
【０１０９】
　　　　　　　　　　　　　　　　　表　５
　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　
　　　　　　　　　　　　　　　消　去　　　　書　込　み　　読出し
　　　　　　　　　　　　　　　　　　　　　“０”　“１”
　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　
　　　　ビット線ＢＬａｉ　フローティング　　０ｖ　１０ｖ　　５ｖ
　　　　ビット線ＢＬｂｉ　　　　　　　　　１０ｖ　１０ｖ　　０ｖ
　　　　選択ゲートＳＧ１　　　　０ｖ　　　１０ｖ　１０ｖ　　５ｖ
　　　　制御ゲートＣＧ１　　　　０ｖ　　　１０ｖ　１０ｖ　　５ｖ
　　　　制御ゲートＣＧ２　　　　０ｖ　　　２０ｖ　２０ｖ　　０ｖ
　　　　制御ゲートＣＧ３　　　　０ｖ　　　１０ｖ　１０ｖ　　５ｖ
　　　　制御ゲートＣＧ４　　　　０ｖ　　　１０ｖ　１０ｖ　　５ｖ
　　　　制御ゲートＣＧ５　　　　０ｖ　　　１０ｖ　１０ｖ　　５ｖ
　　　　制御ゲートＣＧ６　　　　０ｖ　　　１０ｖ　１０ｖ　　５ｖ
　　　　制御ゲートＣＧ７　　　　０ｖ　　　１０ｖ　１０ｖ　　５ｖ
　　　　制御ゲートＣＧ８　　　　０ｖ　　　１０ｖ　１０ｖ　　５ｖ
　　　　選択ゲートＳＧ２　　　　０ｖ　　　　０ｖ　　０ｖ　　５
　　　　ソース線　　　　　フローティング　　０ｖ　　０ｖ　　０
　　　　基　　板　　　　　　　２０ｖ　　　　０ｖ　　０ｖ　　０
　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　
　図３９は、図３３の実施例の変形例である。ここでは、４種類のデータＩ／Ｏ線Ｉ／Ｏ０〜Ｉ／Ｏ３を用いており、且つ４つのデータラッチ兼センスアンプＲ／Ｗに共通のカラム選択信号ＣＳＬｉが入力される。ＣＳＬｉが共有に入力される４つのビット線のうちの１本にでもリーク不良があると、４本まとめて救済しなければならない。このため、この実施例ではヒューズは４本分を１本にまとめてある。図３６に示される実施例でもこれと同様に、図４０に示すようにＣＳＬｉを共有に入力する複数本のビット線のヒューズを１本にまとめることができる。
【０１１０】
　図４１は図３６に示される実施例の変形例である。図４１の例が図４０に示される実施例と違う点は、ヒューズをＢＬａｉ用のヒューズＦａとＢＬｂｉ用のヒューズＦｂに別けた点にある。この場合、２つのヒューズＦａ，Ｆｂを設けることから回路面積が大きくなるのが避けられない。しかし、ＢＬａｉとＢＬｂｉに関して別々に救済できることから、救済効率は高くなる。この救済方法について図４２、図４３を参照して詳しく説明する。
【０１１１】
　図４２は図３６の実施例を模式的に示すものである。カラム選択信号ＣＳＬｉのみで救済を行うと、図４２（ａ）に示すように、ＢＬａｉとＢＬｂｉとを同時に置き換えることになる。図４０の場合も同様に、ＢＬａｉ０〜ＢＬａｉ３とＢＬｂｉ０〜ＢＬｂｉ３とを同時に置き換えることになる。これに対し、図３６の実施例では、図４２（ｂ）に示すように、ＢＬａｉのみ或いはＢＬｂｉのみを、冗長部ＢＬａｊｒ又はＢＬｂｊｒに動作上問題なく置き換えることができる。このためには、カラム選択信号ＣＳＬｉとデータ転送信号φＦａ（又はφＦｂ）との論理積で救済を行うことになる。
【０１１２】
　図４３は図４１を模式的に示すもので、図４２（ｂ）と同様、ＢＬａｉ０〜ＢＬａｉ３のみをＢＬａｊｒ０〜ＢＬａｊｒ３に、又はＢＬｂｉ０〜ＢＬｂｉ３のみをＢＬｂｊｒ０〜ＢＬｂｊｒ３に置き換えることができる。この場合、ヒューズは図４１のように接続しておけばよい。図４２、図４３から明らかなように、ＢＬａとＢＬｂの配置関係さえ守って救済すればよい。
【０１１３】
　図４４は、１つのデータラッチ兼センスアンプＲ／Ｗを、４本のビット線で共有している実施例を示す。ＢＬａ１ｉとＢＬｂｌｉは隣合う関係にある。Ｒ／Ｗを挟んで対称に、ＢＬａ２ｉとＢＬｂ２ｉとが配置される。このような場合にあっても、ＢＬａとＢＬｂの配置関係を守って、ＣＳＬｉとφＦａ１，φＦａ２，φＦｂ１，φＦｂ２との論理をとって、図４５、図４６のように様々な救済方法が実施できる。
【０１１４】
　具体的には、図４５（ａ）では、同一のＲ／Ｗに接続された４本のビット線ＢＬａ１ｉ，ＢＬａ２ｉ，ＢＬｂ１ｉ，ＢＬｂ２ｉを同時に置き換える。図４５（ｂ）では、２本のビット線ＢＬａ１ｉ，ＢＬａ２ｉ又はＢＬｂ１ｉ，ＢＬｂ２ｉを単位として置き換える。図４６（ａ）では、２本のビット線ＢＬａ１ｉ，ＢＬｂ１ｉ又はＢＬａ２ｉ，ＢＬｂ２ｉを単位として置き換える。また、図４６（ｂ）では、１本のビット線毎に冗長部のビット線と置き換えることになる。
【０１１５】
　図３９、図４０及び図４１の実施例において、それぞれ図４７、図４８、図４９のように、プリチャージ用ＭＯＳトランジスタやリセット用のＭＯＳトランジスタを、カラム選択信号ＣＳＬｉを強要するビット線について共用化させてもよい。ビット線をプリチャージ又はリセットするとき、つまりφＲ又はφＰが“Ｈ”となるとき、φＰＲを“Ｈ”とする。この例では信号φＰＲが別に必要となるが、リセット用又はプリチャージ用のＭＯＳトランジスタの数を減少させることができる。
【０１１６】
　また、第５の実施例以降ではビット線充電回路と終電電圧電源線との間に不良ビット救済のためのヒューズを設けたが、これらの実施例と第３、第５の実施例とを併用して用いることも可能である。
【０１１７】
　以上、第１〜第６の実施例を用いて、書き込みベリファイの時間を短縮するための種々の回路構成を説明してきた。続いて、消去ベリファイに本発明を用いた実施例を説明する。
【０１１８】
　図５０は本発明の第７実施例に係るＮＡＮＤ型ＥＥＰＲＯＭを用いた不揮発性半導体メモリ装置を示すブロック図である。メモリセルアレイ１に、データ書き込み、読み出し、書き込み及び消去ベリファイを行うためのセンスアンプ兼ラッチ回路２が接続されている。メモリセルアレイ１は、複数個のページからなるブロックに分割されている。このブロックが最小消去単位となるものである。センスアンプ兼ラッチ回路２は、データ入出力バッファ６につながっている。アドレスバッファ４からのアドレス信号がカラムデコーダ３に入力される。カラムデコーダ３からの出力がセンスアンプ兼ラッチ回路２に入力される。メモリセルアレイ１に、制御ゲート及び選択ゲートを制御するためにロウデコーダ５が接続されている。メモリセルアレイ１が形成されるｐ型領域（ｐ型基板またはｐ型ウェル）の電位を制御するための基板電位制御回路７が、メモリセルアレイ１に接続されている。
【０１１９】
　ベリファイ終了検知回路８は、センスアンプ兼ラッチ回路２にラッチされているデータを検知し、ベリファイ終了信号を出力する。ベリファイ終了信号は、データ入出力バッファ６を通じて、外部に出力される。
【０１２０】
　図５１にセンスアンプ兼ラッチ回路２と、メモリセルアレイ１及びベリファイ終了検出回路８との、接続関係を示す。図５１の回路では、センスアンプ兼ラッチ回路ＦＦの第１の出力により制御される検知手段（検知用トランジスタＱｎ１２）が設けられている。検知用トランジスタＱｎ１２としてはＥタイプｎチャネルＭＯＳトランジスタが用いられている。このトランジスタＱｎ１２は、各ビット線ＢＬｉに接続された各センスアンプ兼ラッチ回路ＦＦにそれぞれ設けられている。各検知用トランジスタＱｎ１２は、図５１に示すように、そのドレインをセンスラインＶＤＴＣＥに共通に接続することにより、並列に設けられる。
【０１２１】
　次に、図５２のフローチャートを用いて先ず消去動作を説明する。消去のコマンドが入力されると、消去ベリファイサイクルにはいる。もし消去状態にあることが検出されると、その時点で消去終了となる（ステップ１０１のＹＥＳ）。ステップ１０１でメモリセルが消去されていないことが検知されると、消去動作にはいり（ステップ１０２）、その後ベリファイ動作を行う（ステップ１０３）。ベリファイＮＧであれば、所定の回数消去及びベリファイを繰り返す（ステップ１０４）。
【０１２２】
　次に、消去の確認動作について説明する。　
(1)　消去動作では、メモリセルが形成されるｐ型領域（ｐ型基板又はｐウェル）に高電圧（例えば２０ｖ）を与え、制御ゲートにＶＳＳを与える。これによって、メモリセルのしきい値は負の方向にシフトする。
(2)　次にメモリセルのデータを読み出す。ΦＦの“Ｈ”の状態で、まずΦｓｐを“Ｈ”、Φｓｎを“Ｌ”、Φｒｐを“Ｈ”、Φｒｎを“Ｌ”として、Ｃ2 ＭＯＳインバータを非活性とする。この後、／ΦＰを“Ｌ”としてビット線をＶＣＣにプリチャージする。次に、選択された制御ゲートをＶＳＳに、非選択の制御ゲートをＶＣＣに、選択された選択ゲートをＶＣＣに、一定時間保持する。このとき、選択されたメモリセルが消去されて負のしきい値を持っていれば、セル電流が流れ、ビット線はＶＳＳになるまで放電される。
(3)　次に、Φｓｐを“Ｌ”、Φｓｎを“Ｈ”とし、ビット線電位を検知する。そして、Φｒｐを“Ｌ”、Φｒｎを“Ｈ”とすることによってデータをラッチする。
(4)　その後検知用トランジスタを用いて、ベリファイが完了したか確認する。センスラインＶＤＴＣＥは、前述のように、複数個のセンスアンプ兼ラッチ回路の検知用トランジスタのドレインに、共通に接続されている。もし全てのメモリセルが負のしきい値を持つならば、センスラインＶＤＴＣＥは“Ｈ”になる。この場合は次のページの確認をする。１つでも正のしきい値のセルが残っていれば、ＶＤＴＣＥは“Ｌ”状態になる。その場合は、ＶＤＴＣＥが“Ｈ”であると検出されるまで、消去を繰り返し行う。検出結果は、データ入出力ピンまたはＲＥＡＤＹ／ＢＵＳＹピンから、外部に出力される。
【０１２３】
　本実施例では、データは１ページずつ確認された。しかしながら、１ＮＡＮＤブロック内の全ページに対して、１度に確認動作を行ってもよい。この場合には、選択されたブロック内の全制御ゲートにＶＳＳを与え、この状態で読み出し動作を行う。このとき１つのメモリセルでも正のしきい値のものが残っていれば、そのビット線は放電されないことから、上記実施例と同じ方法で、検知可能である。
【０１２４】
　また、制御ゲートに与える電圧は、必ずしも、ＶＳＳレベルである必要はない。マージンを含める意味で、負の電圧を与えてもよい。また、制御ゲートにはＶＳＳを与えて、ソースまたはソースとｐ型基板またはｐウェルとに正の電圧を印加して、疑似的に、制御ゲートに負の電圧が印加された状態を作り出してもよい。また、検知用トランジスタのソースとＶＳＳとの間にヒューズを設けても良い。不良ビット線に対応する、あるいはリダンダンシー用ビット線のうちの使用されないものに対応する、センスアンプ兼ラッチ回路のヒューズを切断しておけば、動作上問題ない。以上のようにして、消去の状態を検知することができる。
【０１２５】
　また、これらの動作をシステム的に制御することもできる。この場合システムは、ＮＡＮＤ型ＥＥＰＲＯＭのブロックごとに、そのブロックが消去状態にあるか否かを記憶した管理テーブルを有する。ホストシステム、又は、不揮発性半導体メモリ装置の制御を行うコントローラは、消去を行う際、ＮＡＮＤ型ＥＥＰＲＯＭの消去対象のブロックが、消去状態にあるかどうかを検知するため、まず管理テーブルを参照する。参照結果が、未消去であれば消去を行う。消去済を示す場合にはさらなる消去動作を行わないようにしてもよい。
【０１２６】
　また、消去の確認は書き込み動作前にも有効である。書き込み動作の前に、これから書き込もうとする領域が消去されているかどうか確認してもよい。この場合には、ブロック単位に行ってもよいし、ページ単位で行ってもよい。
【０１２７】
　図５１において、書き込みベリファイ動作は、従来のものとほぼ同様であるので、詳しい説明は省略する。
【０１２８】
　図５３に、本発明の第８実施例を示す。　
　基本構成は図５０と同じである。この第８実施例では、セルアレイが２個のブロック１Ａ，１Ｂに分けられ、これらのセルアレイブロック１Ａ，１Ｂに共通のセンスアンプ兼ラッチ回路２が設けられている。図５４はそのセンスアンプ兼ラッチ回路の構成を示している。ＥタイプｎチャネルＭＯＳトランジスタＱｎ１６，Ｑｎ１７と、ＥタイプｐチャネルＭＯＳトランジスタＱｐ７，Ｑｐ９とで、フリップフロップＦＦを構成している。ＥタイプｎチャネルＭＯＳトランジスタＱｎ１４，Ｑｎ１５は、ＦＦのイコライズ用トランジスタである。Ｑｎ２７，Ｑｎ２８は検知用トランジスタである。
【０１２９】
　ＥタイプｎチャネルＭＯＳトランジスタＱｎ１８と、ＥタイプｐチャネルＭＯＳトランジスタＱｐ８とは、ＦＦ活性化用トランジスタである。ＥタイプｎチャネルＭＯＳトランジスタＱｎ１９とＱｎ２０は、ＦＦの２個のノードＮ１，Ｎ２とセルアレイブロック１Ａ，１Ｂ内のビット線との接続用トランジスタである。Ｑｎ２５，Ｑｎ２６はビット線のプリチャージ、リセット用のトランジスタである。Ｑｎ２１〜Ｑｎ２４はビット線とＶＣＣ配線との接続用トランジスタである。
【０１３０】
　このような構成の消去後のベリファイ動作について説明する。　
　ここでは、メモリセルアレイ１Ａのビット線ＢＬａｉが選択されている場合について説明する。
【０１３１】
　まず、ビット線ＢＬａｉが３ｖに、ＢＬｂｉが２ｖ（リファレンス電位）にプリチャージされる。その後、プリチャージ信号ΦＰＡとΦＰＢとが“Ｌ”となって、ビット線ＢＬａｉとＢＬｂｉがフローティング状態になる。次に、選択された制御ゲートをＶＳＳに、非選択の制御ゲートをＶＣＣに、選択された選択ゲートをＶＣＣにして、一定時間保持する。イコライズ信号によってＣＭＯＳフリップフロップがリセットされた後、ΦＡ，ΦＢが“Ｈ”となって、ノードＮ１，Ｎ２がそれぞれビット線ＢＬａｉ，ＢＬｂｉに接続される。ΦＰが“Ｌ”、ΦＮが“Ｈ”となってビット線ＢＬａｉが読み出される。読みだしたデータはラッチされる。その後、検知用トランジスタＱｎ２７によって、一括検知される。
【０１３２】
　次に、メモリセルアレイ１Ｂのビット線ＢＬｂｉが選択されているとする。
　まず、ビット線ＢＬｂｉが３ｖに、ＢＬａｉが２ｖ（リファレンス電位）にプリチャージされる。その後、プリチャージ信号ΦＰＡとΦＰＢが“Ｌ”となって、ビット線ＢＬａｉとＢＬｂｉはフローティング状態になる。次に、選択された制御ゲートをＶＳＳに、非選択の制御ゲートをＶＣＣに、選択された選択ゲートをＶＣＣにして、一定時間保持する。イコライズ信号によってＣＭＯＳフリップフロップがリセットされる。この後、ΦＡ，ΦＢが“Ｈ”となって、ノードＮ１，Ｎ２がそれぞれビット線ＢＬａｉ，ＢＬｂｉが接続される。ΦＰが“Ｌ”、ΦＮが“Ｈ”となって、ビット線ＢＬｂｉが読み出される。読み出したデータはラッチされる。その後、検知トランジスタＱｎ２８によって一括検知される。
【０１３３】
　メモリセルアレイ１Ａの書き込みベリファイ時には、Ｑｎ２８を、検知トランジスタとして用いる。メモリセルアレイ１Ｂの書き込みベリファイ時には、Ｑｎ２７を検知トランジスタとして用いる。この様に、メモリアドレスと消去・書き込みのモードに応じて、そのベリファイ動作時に、いずれの検知トランジスタを用いるかを制御する。これによって、ベリファイ動作を、１個の検知トランジスタによって、行うことができる。
【０１３４】
　図５５は、本発明の第９実施例を示す。図５１の第７実施例では、センスアンプ兼ラッチ回路の両方のノードに、各々検知用トランジスタを接続していた。これに対し、第９実施例では、その回路の片方のノードにｐ型検知用トランジスタとｎ型検知用トランジスタを接続している。書き込みベリファイ時には、従来どうり、ｎ型検知用トランジスタを用いる。消去ベリファイ時には、ｐ型検知用トランジスタを用いる。消去後、読みだし動作を行う。もし消去不十分のメモリセルがあれば、センスアンプ兼ラッチ回路のビット線側ノードに“Ｈ”がラッチされ、ビット線と反対側のノードには“Ｌ”がラッチされる。これにより、ｐ型検知用トランジスタはＯＮ状態になり、ＶＤＴＣＥは“Ｈ”レベルとなる。この電位を検知し、再び消去動作を行う。
【０１３５】
　図５６には、本発明の第１０実施例を示す。図５４の第８実施例では、センスアンプ兼ラッチ回路の両方のノードに各々検知用トランジスタを接続していた。これに対し、実施例では、その回路の片方のノードにｐ型検知用トランジスタとｎ型検知用トランジスタを接続している。メモリセルアレイ１Ａの書き込みベリファイには、Ｑｎ２８のｎ型検知用トランジスタを用いる。メモリセルアレイ１Ａの消去ベリファイには、Ｑｐ２９のｐ型検知用トランジスタを使用する。メモリセルアレイ２Ａの書き込みベリファイには、Ｑｐ２９のｐ型検知用トランジスタを用いる。メモリセルアレイ２Ａの消去ベリファイには、Ｑｎ２８のｎ型検知用トランジスタを用いる。
【０１３６】
　以上、消去ベリファイに本発明を用いた実施例を説明した。この構成も上述の書き込みベリファイと同様に、ＮＯＲ型のセルに対しても適用可能であることは言うまでもない。
【０１３７】
　このように、本発明を消去ベリファイに用いることにより、以下のような効果が得られる。すなわち、消去ベリファイ動作を、データを外部に読み出すことなく高速に行うことが出来る。さらに、セルアレイが２個のブロックからなる場合には、一つの検知手段を、一方のメモリセルアレイブロックの消去ベリファイと、他方のメモリセルアレイブロックの書き込みベリファイとに用いることが出来る。これにより、一括ベリファイ回路の面積を縮小化することができる。さらに、消去動作に先立ち、選択されたブロックが消去状態にあるか否かを検出する手段を設けた。このため、書き換え処理等の際に不要な消去動作を行わなくても済む。これにより、高速化とともに信頼性を高めることができる。
【０１３８】
　続いて、一つの一括ベリファイ手段で、消去ベリファイと書き込みベリファイとを兼用される第１１実施例を説明する。
【０１３９】
　この実施例の特徴は、以下の点にある。即ち、プログラムベリファイ及びイレーズベリファイを、２５６バイト分について同時に一括でリードして、ＯＫかＮＧかを判定するために、一括ベリファイ制御回路ＢＢＣを設けた。さらに、データレジスタ回路ＤＲを、一括ベリファイを可能なものに構成すると共に、プログラムベリファイ後にプログラムベリファイＮＧとなって再プログラムを行うとき、プログラム完了ビットには再び書き込まないような構成とした。さらに、データレジスタ回路ＤＲを上記の如くに制御するための再プログラム制御回路ＲＰＣを設けている。
【０１４０】
　以下に、図５７のＥＥＰＲＯＭについて全般的に説明する。　
　図５７のＥＥＰＲＯＭは、８ビット分の出力を有するバイト構成かつ１ページ２５６バイトの構成のものを示している。メモリセルは、メモリセルアレイＭＣＡの中にｍ行×２５６バイトのマトリクス状に配置されている。つまり、ローデコーダＲＤからはｍ本のワードラインがでている。さらに、各バイトにおいては、８行のメモリセルを縦につないだ８ＮＡＮＤセルＢＣの８個を行方向に並べて１つのＮＡＮＤセル行ユニットＲＵを構成し、この行ユニットＲＵの（ｍ／８）個をカラム方向に並べている。各ユニットＲＵにおいて、各８ＮＡＮＤセルＢＣのドレインは対応するビット線ＢＬに接続され、ソースは全て共通にＶSSに接続されている。
【０１４１】
　また、各ユニットにおいて、縦に並ぶ８個のメモリセルの制御ゲート及び２つのセレクトゲートは、８本のワードラインＷＬ及びＳＧＤ，ＳＧＳを介してローデコーダＲＤに接続される。
【０１４２】
　各ビットラインＢＬ′ＯＯはリード時及び書き込み時にデータをラッチするためのデータレジスタ回路ＤＲへ接続されている。このデータレジスタ回路ＤＲからは、ビット線ＢＬ′ＯＯの電位が高いか低いかに対応して増幅した出力ＩＯとその反転信号ＮＩＯの２種類の信号が出力される。このＩＯ，ＮＩＯの信号は、カラムデコーダＣＤＩ，ＣＤＩＩの出力信号によってオン、オフさせられるカラムゲートトランジスタＣＧＴを介して、共通ＩＯバスラインＩ／ＯＢＵＳへ入力される。また、各共通ＩＯバスラインＩ／ＯＢＵＳから、信号ＩＯ，ＮＩＯはセンスアンプ回路Ｓ／Ａへ入力されている。センスアンプ回路の出力信号ｄ* は、出力バッファ回路Ｉ／ＯＢＵＦへ入力される。
【０１４３】
　また、各ビット線ＢＬには、書き込みの時にビット線ＢＬを高電位にするための書き込みプリチャージ回路ＷＰＣ、リード時にビット線ＢＬをプリチャージするためのリードプリチャージ回路ＲＰＣが接続されている。書き込みプリチャージ回路ＷＰＣは、ドレインに信号ＢＬＣＲＬが、ゲートに信号ＢＬＣＤが、他の一端（ソース）にビットラインが接続された、ｎチャネルタイプのトランジスタＴＷ1 で構成されている。また、リードプリチャージ回路ＲＰＣは、一端に電源ＶDDが、ゲートに信号ＰＲＥが他端にビットラインが接続されたトランジスタＴＲ1 と、一端にビット線が、ゲートに信号ＲＳＴが、他端にＶSSが接続されトランジスタＴＲ2 で構成されている。
【０１４４】
　データレジスタ回路ＤＲは、２つのインバータＩＶ１，ＩＶ２で構成されるラッチ回路と、信号ＢＬＣＤがゲートに入力されると共にメモリセルのビット線に接続されているトランジスタＴＴとを有する。さらに、２つのインバータＩＶ１，ＩＶ２の各々の出力端子に接続される２つのトランジスタＴPV，ＴEVを有する。トランジスタＴPVの一端には信号ＩＯが加えられ、ゲートには信号ＰＲＯＶＥＲＩが入力されている。トランジスタＴEVの一端はＮＩＯに接続され、ゲートには信号ＥＲＡＶＥＲＩが入力されている。これらのトランジスタＴPV，ＴEVの各他端は互いに共通にトランジスタＴ14のゲートに接続されている。このトランジスタＴ14の一端はＶSSに接続され、他端は一括ベリファイ制御回路ＢＢＣへ入力されている。また、トランジスタＴ11，Ｔ12を有する。トランジスタＴ11はｎタイプで、その一端は電源ＢＬＣＲＬに接続され、ゲートには信号ＮＩＯが入力され、他端はトランジスタＴ12の一端に接続されている。トランジスタＴ12のゲートには、再プログラム制御回路ＲＰＣＣの出力信号ＰＶが入力される。トランジスタＴ12他端はビットラインＢＬ′００に接続される。
【０１４５】
　一括ベリファイ制御回路ＢＢＣは、信号ＰＲＯＶＥＲＩ及び信号ＥＲＡＶＥＲＩが入力される２入力ＮＯＲ回路ＮＯＲ１を有する。そのＮＯＲ回路ＮＯＲ１の出力信号はトランジスタＴＰ1 ，ＴＮ1 のそれぞれのゲートに入力される。トランジスタＴＰ1 の一端は電源ＶCCへ、他端はトランジスタＴＮ1 の一端へ接続される。トランジスタＴＮ1 の他端はＶSSに接続されている。トランジスタＴＰ1 ，ＴＮ1 の中点は、各データレジスタ回路ＤＲ内のトランジスタＴ14にそれぞれ接続され且つインバータＩＶ３の入力側に接続されている。このインバータＩＶ３の出力信号ＰＥＯＫは、ベリファイ時にＯＫか否かの判定信号として、ＩＯバッファ回路（図示せず）を介して外部へ出力される。
【０１４６】
　再プログラム制御回路ＲＰＣＣは、インバータＩＶRPとフリップフロップ回路ＦＦRPとを有する。インバータＩＶRPには信号ＰＲＯＶＥＲＩが入力される。インバータＩＶRPの出力信号と反転信号がフリップフロップ回路ＦＦRP内の２つのＮＯＲ回路のそれぞれに入力される。フリップフロップ回路ＦＦRPの出力信号ＰＶは、データレジスタ回路ＤＲ内のｎチャネルトランジスタＴ12のゲートに制御信号として入力される。
【０１４７】
　次に、このように構成されるＥＥＰＲＯＭの動作を説明する。　
　消去時には、イレーズ用の昇圧回路ＳＵ６により昇圧した高電圧（２０Ｖ程度）をメモリセルが形成されている基板（ｐ−ｗｅｌｌ）へ印加する。これと共に、ローデコーダＲＤにより制御してワードラインＷＬ１〜ＷＬｍ及びセレクトゲートＳＧＤ，ＳＧＳを“０”Ｖにして、浮遊ゲートから基板へ電子を抜くことにより消去する。
【０１４８】
　次に、リード動作について説明する。　
　ローデコーダＲＤにより、選択対象のセルを有する行ユニットＲＵのセレクトゲートＳＧＤ，ＳＧＳを“Ｈ”レベルにして選択する。さらに、対象とするセルを、そのワードラインＷＬを“０”Ｖにすることにより、選択する。この状態とした後、信号ＰＲＥとして所定のパルス信号を加え、トランジスタＴＲ1 をオンして、ビット線ＢＬを“Ｈ”レベルにプリチャージする。この時、読み出すべきメモリセルに“０”データが書かれているときには、そのメモリセルはオフして電流を流さない。このため、ビット線ＢＬのレベルは“Ｈ”レベルを維持し、そのレベルＨはデータレジスタ回路ＤＲにラッチされる。一方、選択セルに“１”データが書かれているときには、メモリセルはオンする。このために、ビット線ＢＬのレベルは“１”レベルになり、そのレベルがデータレジスタ回路ＤＲにラッチされる。このとき、選択された（Ｌレベルとされた）ワードラインに接続される２５６バイト分のすべてのデータが、各々のビットラインに接続されたデータレジスタ回路ＤＲによりラッチされる。そして、カラムアドレスバッファＣＡＢへ加えるカラムアドレスＡc を“００”から“ＦＦ”までシリアルに変化させることにより、バイト１〜２５６中のカラムゲートトランジスタＣＧＴが順次にオンして、共通バスラインＩＯバスを介してデータが順次リードされる。
【０１４９】
　この時、ＮＡＮＤセルの構造上、メモリセルのオン電流は数μＡ程度と非常に少なく、その充放電には数μsec 程度の時間がかかる。しかしながら、一旦データを読み出し、データレジスタ回路ＤＲに取り込んでしまえば、共通バス線Ｉ／ＯＢＵＳを介してデータを出力するだけであるので、百nsec程度の高速アクセスが可能となる。
【０１５０】
　次に書き込み動作を説明する。　
　書き込み動作を説明するためのタイミングチャートを図５８に示した。
【０１５１】
　プログラムコマンドＰＣが入力されるとプログラムモードになる。このとき、データレジスタ回路ＤＲのトランスミッショントランジスタＴＴを制御する信号ＢＬＣＤが“Ｌ”レベルとなり、トランジスタＴＴがオフする。また、これとともに、昇圧回路ＳＵが動作し初め、次第に書き込みプリチャージ回路ＷＰＣに入力される信号ＢＬＣＲＬ，ＢＬＣＵが昇圧していき、１０Ｖ程度まで上昇する。このとき、メモリセルアレイ群の中のビット線ＢＬ′ＯＯも、ＢＬＣＲＬの上昇とともに、電位上昇する。このとき、選択されたＷＬは２０Ｖ程度の高電位に、ＮＡＮＤセル群のソース側のセレクトゲートトランジスタのゲートは０Ｖに、他のゲートは１０Ｖ程度の中間レベルにそれぞれ設定される。
【０１５２】
　この状態で、カラムアドレスＡc を順次変化させ、書き込みデータをデータレジスタ回路ＤＲへ入力していく。このとき、データレジスタ回路ＤＲへ入力された書き込みデータはそこにラッチされる。２５６バイト分の書き込みデータがそれぞれデータレジスタ回路ＤＲへラッチされると、信号ＢＬＣＵが“Ｌ”レベルとなって書き込みプリチャージ回路ＷＰＣはオフする。これとともに、信号ＢＬＣＤが１０Ｖ程度に迄上昇してトランジスタＴＴがオンし、ビットラインＢＬ′ＯＯとデータレジスタ回路ＤＲが接続される。このとき、データレジスタ回路ＤＲに供給される電源ＶＢＩＴも１０Ｖ程度に迄上昇する。この回路ＤＲに“１”レベルがラッチされていれば、ビット線ＢＬの高レベルがそのまま維持される。また、この回路ＤＲに“０”レベルがラッチされていれば、プリチャージしたビット線ＢＬのレベルは放電されて“Ｌ”レベルになり、浮遊ゲートへの電子の注入が起る。このようにして、２５６バイト分の書き込みが同時に行われる。
【０１５３】
　以下に、プログラム→プログラムベリファイ→再プログラムの各動作を、図５９に示すタイミングチャートを参照しながら説明する。
【０１５４】
　第１回目のプログラム動作は、図５８と同様である。即ち、プログラムコマンドＰＣが入力されてプログラムモードになると、制御信号ＢＬＣＤが“Ｌ”レベルとなり、データレジスタ回路ＤＲ中のトランスミッショントランジスタＴＴがオフして、データレジスタ回路ＤＲがビット線と切り離される。また、これとともに、昇圧回路ＳＵ１〜ＳＵ６が動作し始め、書き込みプリチャージ回路ＷＰＣに入力される信号ＢＬＣＲＬ，ＢＬＣＵが次第に昇圧して１０Ｖ程度に達する。このとき、メモリセルアレイＭＣＡ中のビット線の電位も信号ＢＬＣＲＬの上昇とともに高電位まで上昇する。このとき、選択されたＷＬは２０Ｖ程度の高電位に、ＮＡＮＤセル群内のソース側のセレクトゲートトランジスタＴ2 のゲート（セレクトラインＳＬ２）は“０”Ｖに、他のトランジスタＴ1 のゲート（セレクトラインＳＬ１）は１０Ｖ程度の中間レベルに設定される。
【０１５５】
　この状態においてカラムアドレスＡc を順次変化させ、あるバイトｎについて８ビットの書き込みデータを８つのデータレジスタ回路ＤＲへ入力し、ラッチする。これを２５６回繰り返して、２５６バイト分の書き込みデータを全てのレジスタ回路ＤＲにラッチする。この後、信号ＢＬＣＵが“Ｌ”レベルとなり、書き込みプリチャージ回路ＷＰＣがオフする。これとともに、信号ＢＬＣＤが１０Ｖ程度にまで上昇することによりトランジスタＴＴがオンしてビットラインとデータレジスタ回路ＤＲが接続される。このとき、データレジスタ回路ＤＲに供給される電源ＶＢＩＴも１０Ｖ程度にまで上昇する。データレジスタ回路ＤＲに“１”レベルのデータがラッチされていれば、ビット線のレベルは高レベルのままに維持される。また、データレジスタ回路ＤＲに“０”レベルがラッチされていれば、プリチャージ済のビット線の高レベルは放電により低下して“Ｌ”レベルになり、選択したメモリセルにおいて浮遊ゲートへ電子の注入、つまり“０”データの書き込みが起る。このような書き込みは、２５６バイト分について同時に行われる。ここまでの書き込み動作は図５８の場合と同じである。
【０１５６】
　次に、上記の書き込みが終了すると、ベリファイコマンドＶＣが入力されて、プログラムモードが解除される。信号ＢＬＣＤは“０”Ｖとなり、ＢＬＣＲＬは“５”Ｖに、信号ＶＢＩＴは５Ｖになるとともに、リセット信号ＲＳＴによりビット線が放電される。このとき、本実施例ではデータレジスタ回路ＤＲ内のラッチデータはリセットしないようにしている。即ち、書き込みデータはデータレジスタ回路ＤＲ内にラッチされたままの状態となる。この状態で、リードプリチャージ回路ＲＰＣにＨレベルの制御信号ＰＲＥが加えられ、ビット線がプリチャージされる。今、“０”データをライトした場合を考える。データレジスタ回路ＤＲ内のラッチ回路により、信号ＩＯは“１”レベルとなり、その反転信号ＮＩＯは“０”レベルとなっている。このとき、プログラムベリファイモードになると、データレジスタ回路ＤＲ内のトランジスタＴ12はオン状態となるが、トランジスタＴ11は、それのゲート信号のレベルが“０”レベルのためオフしており、このパスからのビット線への充電は行われない。
【０１５７】
　このような“０”ライト動作後に、書き込みＮＧとなった場合と、ＯＫとなった場合の２通りが存在する。即ち、ＯＫとなった場合は、メモリセルのしきい値電圧は正方向へシフトしており、このためプリチャージされた電位はそのまま保持される。そして、トランスミッショントランジスタＴＴを制御する信号ＢＬＣＤが“１”レベルとなることによりデータレジスタ回路ＤＲとビット線が接続され、今迄“０”レベルであったＮＩＯの電位が、高電位に充電されたビット線により、“１”レベルに充電される。従って、信号ＰＲＯＶＥＲＩが入力されるトランスミッショントランジスタＴＴを介して“０”レベルがトランジスタＴ14のゲートに入力され、トランジスタＴ14はオフ状態となる。
【０１５８】
　これに対して、書き込みＮＧとなった場合を考える。即ち、“０”ライトしたにもかかわらず、メモリセルのしきい値電圧は負方向に存在し、このためプリチャージされつつ、電位は“０”レベルへ放電されてしまう。そして、トランスミッショントランジスタＴＴを制御する信号ＢＬＣＤが“１”レベルとなることによりトランジスタＴＴがオンして、データレジスタ回路ＤＲとビット線とが接続される。しかしながらこのときは、ＮＩＯの電位は“０”レベルのままとなり、トランジスタＴ14のゲートには“１”レベルの信号が入力され、トランジスタＴ14はオン状態となる。
【０１５９】
　次に“１”データをライトした場合を考える。　
　“１”ライト時は、データレジスタ回路ＤＲ内のラッチ回路により、信号ＩＯは“０”レベル、信号ＮＩＯは“１”レベルとなっている。
【０１６０】
　この状態でベリファイ動作を行うと、データレジスタ回路ＤＲ内のトランジスタＴ11はオン状態となる。このため、トランジスタＴ11，Ｔ12を介してビット線はベリファイ動作中充電され続ける。リードプリチャージ用のトランジスタＴＲ2 は、リード時にメモリセルがオンした時のオン電流により“０”レベルに放電されるように小さいコンダクタンスｇｍに設定される。しかし、トランジスタＴ11，Ｔ12のコンダクタンスｇｍは、“１”ライト後のベリファイ動作によって、常にビット線を“１”レベルに充電するように、大きな値に設定されている。即ち、トランジスタＴ14のゲートには“０”レベルの信号が入力されることになる。
【０１６１】
　また、“１”ライトしているにもかかわらず、メモリセルのしきい値が誤書き込みにより高くなってしまうというケースも考えられる。このような場合には、ベリファイ動作を行っても、やはりトランジスタＴ14のゲートには“０”レベルの信号が入力される。このため、上記の場合と区別がつかないという問題がある。しかしながら、このような誤書き込みの有無は、製品出荷時のテストにより選別される。このため、このような誤書き込みについては、実使用上は、ほとんど考えなくていいことになる。
【０１６２】
　このようにして、各ビット線ごとに接続されるデータレジスタ回路ＤＲ内のトランジスタＴ14のゲートには、ベリファイ動作を行って読み出したデータに対応して“０”レベルもしくは“１”レベルが入力される。即ち、プログラムＮＧのビットが１つでも存在すると、トランジスタＴ14のゲートへの入力信号は“１”レベルとなる。このため、トランジスタＴ14はオン状態となり、信号ＰＥＯＫは“１”レベルとなり、ベリファイＮＧを示す。
【０１６３】
　この時には新たにプログラムコマンドＰＣＩＩを入力して、再プログラムを行う。この再プログラムの時は、第１回目のプログラム時と異なり、データレジスタ回路ＤＲ内のラッチデータのうち、プログラムＯＫのビットのデータは“１”ライトデータに変わっている。従って、ＮＧのビットについてのみ、“０”ライトが行われる。即ち、プログラムを行った結果プログラムＯＫとなったビットに対しては、それ以上の追加書き込みは行わず、よってそれ以上のしきい値電圧の上昇も起らないことになる。このようにして、再プログラムを何回か行い、すべてのビットがプログラムＯＫとなると、トランジスタのゲート信号はすべて“０”レベルとなる。このとき初めて信号ＰＥＯＫは“０”レベルとなり、プログラムは終了する。
【０１６４】
　上記の本発明の方法を用いると、ベリファイ時に、カラムアドレスを順次変化させることなしに、一括してベリファイ動作を行える。このため、ベリファイ時間を短くでき、ひいては、プログラム時間の短縮につながる。また、ベリファイＮＧのとき再プログラムを行うに当り、プログラム完了ビットに対しては再びプログラムしないようにしている。このため、しきい値電圧の分布を小さくでき、リードマージンの向上が図れる。図６０は本発明を用いた時の書き込み動作時のＶth分布を示したものである。消去した状態から書き込みを行うに当り、書き込みの速いメモリセルＦＭＣはベリファイＯＫとなっても、遅いセルＳＭＣはＮＧとなる。この状態で再プログラムを行うとき、ベリファイＯＫのメモリセルにはそれ以上追加書き込みは行わない。このため、しきい値の上昇は起らない。即ち、書き込みの遅いセルＳＭＣがベリファイＯＫとなった時点でのしきい値電圧の分布幅はＶthＤＢせまくできる。これにより、リードマージンＲＭも充分に確保できることになる。
【０１６５】
　上記説明は、プログラム動作をベースに説明したが、消去動作のときも、消去ＯＫか否かの読み出し動作も、プログラムベリファイの時と同じように、一括で行うことができる。即ち、消去ベリファイ時は、信号ＮＩＯをトランジスタＴ14に入力するようにしている。このため、消去ＯＫのときに信号ＰＥＯＫが“０”レベルとなり、一括ベリファイが可能となる。
【０１６６】
　図６１にイレーズモードでのフローチャートを示す。この図６１からわかるように、イレーズモードにおいて、イレーズ動作自身は従来と同一であるが、ベリファイ動作が一括でできる。このため、ベリファイ時間の短縮が可能となる。
【０１６７】
　なお、図５７中、Ｉ／Ｏ　ＢＵＦは出力回路であり、その詳細は、例えば、図６２に示される。
【０１６８】
　従来例を示す図６３は、複数のメモリセルが、メモリセルアレイとして、ｍ行×２５６バイトのマトリクス状に配置されているアレイの一部を示している。
【０１６９】
　ビット線は、通常、数１０００オングストロームの厚さのＡｌ膜で形成され、そのピッチは数μｍピッチで配列される。このため、隣接するビット線とビット線との間にも層間容量が存在する。同図に、ビット線ＢＬ１とビット線ＢＬ２の層間容量をＣ12、ビット線ＢＬ２とビット線ＢＬ３の層間容量をＣ23として示す。また、ビット線はメモリセル上に配線されるため、対基板容量も、存在することになる。これをＣ1 ，Ｃ2 ，Ｃ3 として表わしている。また、メモリセルは、選択トランジスタを介して、ビット線に接続されている。そのため、選択トランジスタのジャンクション部分にも容量が存在する。これをＣ1j，Ｃ2j，Ｃ3jとして表わす。
【０１７０】
　例えば、８１９２×２５６バイトのメモリセルで構成される、１６Ｍ　ＮＡＮＤ　Ｅ2 ＰＲＯＭを例にとると、　
　　　ビット線と基板との間の容量Ｃ1 ＝Ｃ2 ＝Ｃ3 ＝０．３９ｐＦ、　
　　　ビット線とビット線との間の層間容量Ｃ12＝Ｃ23＝０．１４ｐＦ、　
　　　ジャンクション部の容量Ｃ1j＝Ｃ2j＝Ｃ3j＝０．１１ｐＦ　
となる。
【０１７１】
　メモリセルのデータを読み出す時は、ビット線を電源電圧Ｖccレベル迄プリチャージを行ない、プリチャージした電位が放電するか否かでなされることを前に説明した。即ち、“１”セルの場合、メモリセルがオンしてプリチャージした電位の放電を行なう。また、“０”セルの場合は、メモリセルはオフしたままのため、プリチャージした電位はそのまま保持される。今、隣接する３本のビット線を考える。ビット線ＢＬ１とＢＬ３は“１”セル、ビット線ＢＬ２のみ“０”セルに接続されているとする。読み出す時は、ビット線ＢＬ２の放電はなされず、ビット線ＢＬ１とＢＬ３が放電されることになる。この時、前記したような容量が存在するため、ビット線ＢＬ２は電位変動の影響を受ける。即ち、その影響により変位する電圧をΔＶとすると、　
　　　　　　　　　　２Ｃ12　
　　　ΔＶ＝　　　　　　　　　　　Ｖcc　
　　　　　　　Ｃ2 ＋２Ｃ12＋Ｃ2j　
　　　　　　　　　　　　２・０．１４　
　　　　　＝　　　　　　　　　　　　　　　　　　・５　
　　　　　　　０．３９＋２・０．１４＋０．１１　
　　　　　＝　１．７９　
となる。
【０１７２】
　このように、約１．８Ｖの電位ドロップをおこすことになる。このことは、読み出し動作に限らず、プログラム時のベリファイ動作時でも同じことがあてはまる。プログラムベリファイ時の方が充分に書き込みがなされていないメモリセルが存在し得るため、動作マージンはさらに厳しくなる。
【０１７３】
　以下に、その説明を行なう。　
　図６４にプログラムベリファイ時のタイミングチャートを示す。
【０１７４】
　プログラムコマンドＰＣ（図示せず）が入力されるとプログラムモードになる。このとき、データレジスタ回路ＤＲのトランスミッショントランジスタＴＴを制御する信号ＢＬＣＤが“Ｌ”となり、トランジスタＴＴがオフする。また、これと共に、昇圧回路ＳＵが動作し始め、次第に書込みプリチャージ回路ＷＰＣ（図５５参照）に入力される信号ＢＬＣＲＬ、ＢＬＣＵが昇圧してゆき、１０Ｖ程度まで上昇する。このとき、メモリセルアレイ群の中のビット線ＢＬも、ＢＬＣＲＬの上昇と共に、電位が上昇する。このとき、選択されたＷＬは２０Ｖ程度の高電位に、ＮＡＮＤセル群のソース側のセレクトゲートトランジスタのゲートは０Ｖに、他のゲートは１０Ｖ程度の中間レベルにそれぞれ設定される。
【０１７５】
　この状態で、カラムアドレスＡＣを順次変化させ、書込みデータをデータレジスタ回路ＤＲへ入力していく。このとき、データレジスタ回路ＤＲへ入力された書込みデータはそこにラッチされる。２５６バイト分の書込みデータがそれぞれデータレジスタ回路ＤＲにラッチされると、信号ＢＬＣＵが“Ｌ”となって書込みプリチャージ回路ＷＰＣはオフする。これと共に、信号ＢＬＣＤが１０Ｖ程度にまで上昇してトランジスタＴＴがオンし、ビットラインＢＬとデータレジスタ回路ＤＲが接続される。このとき、データレジスタ回路ＤＲに供給される電源ＶＢＩＴも１０Ｖ程度にまで上昇する。この回路ＤＲに“１”がラッチされていれば、ビット線ＢＬの“Ｈ”がそのまま維持される。また、このデータレジスタ回路ＤＲに“０”がラッチされていれば、プリチャージされたビット線のレベルは“Ｌ”になり、浮遊ゲートへの電子の注入が起る。このようにして、２５６バイト分の書込みが同時に行われる。
【０１７６】
　書込みが終了すると、ベリファイコマンドＶＣ（図示せず）が入力されて、プログラムモードが解除される。信号ＢＬＣＤは５Ｖになり、ＢＬＣＲＬは０Ｖになり、信号ＶＢＩＴが５Ｖになり、これとともに、リセット信号ＲＳＴによりビット線ＢＬが放電される。このとき、同時にデータレジスタＤＲ内で書込みデータもリセットされる。
【０１７７】
　この状態で、リードプリチャージ回路ＲＰＣ内のトランジスタＴＲ１が制御信号ＰＲＥによりオンして、ビット線がプリチャージされる。そしてメモリセルのデータを前記したように読み出し、書込みデータのベリファイを行う。
【０１７８】
　即ち、ビット線の放電が十分になされた時期を見計らって、信号Ｐv ，ＢＬＣＤを“Ｈ”レベルにすることにより、ビット線の“Ｌ”及び“Ｈ”レベルをデータラッチ回路ＤＲへ転送し、再プログラムデータをラッチしなおす。もし、ベリファイＮＧのとき、すなわち“０”書き込んだにも拘らず“１”が読み出されたときは、ビット線は“Ｌ”レベルになっている。このため、そのまま“Ｌ”レベルがラッチされることになる。再書き込みの時は、再び“０”ライトする。これに対して、ベリファイＯＫのときは、ビット線は“Ｈ”レベルになっている。このとき、信号Ｐv ，ＢＬＣＤが“Ｈ”レベルとなると、ビット線の“Ｈ”レベルがデータラッチ回路ＤＲへ転送され、ラッチデータを“０”データから“１”データへ反転させる。即ち、再プログラムする時は、“１”ライトするためしきい値電圧の上昇はおこらない。また、“１”ライトしているビット線は、ベリファイ時“Ｌ”レベルへ放電される。信号Ｐv が“Ｈ”レベルになった時、トランジスタＴ11はデータレジスタＤＲの中に“１”がラッチされているためそのゲートが“Ｈ”レベルとなる。これにより、トランジスタＴ11，Ｔ12を介してビット線が再び“Ｈ”レベルとなる。そして、信号ＢＬＣＤが“Ｈ”となると、ビット線の“Ｈ”レベルが再びデータラッチ回路ＤＲにラッチされる。このようにして、“０”ライトしているビット線のうちＮＧのビットについてのみ再プログラムを行なう。
【０１７９】
　しかしながら、このようなプログラムベリファイ動作を行うとき、以下のような問題点がある。次にその問題点について説明する。
【０１８０】
　図６５は、隣接する３本のビット線に対する書き込みデータＷＤとベリファイデータＶＤの組み合わせを示した図である。
【０１８１】
　(1)は、ビットラインＢＬ１，ＢＬ３に“１”ライト、ビットラインＢＬ２に“０”ライトを行ない、“０”ライトしたビットが、ベリファイＮＧの場合を示している。即ち、ベリファイ動作において、プリチャージした電位は、３本のビット線とも“Ｌ”レベルに放電される。十分にビット線が放電されたころに、信号Ｐv が“Ｈ”レベルとなり、再プログラムデータの設定を行なう。即ち、ビット線ＢＬ１とＢＬ３は“１”ライトしているため、前記説明の様に、トランジスタＴ11，Ｔ12からの充電により“Ｈ”レベルとなる。このとき、トランジスタＴ11，Ｔ12から、メモリセルを介して、電源ＶccからＶssへ向う電流の直流パスが存在する。従って、メモリセルのｇｍに対して、トランジスタＴ11，Ｔ12のｇｍを充分に大きく設定し、その“Ｈ”レベルが充分に保証されるよう設定している。
【０１８２】
　また、ビット線ＢＬ２は“０”ライトＮＧのため、やはり“Ｌ”レベルに放電され、信号ＣＯＮが“Ｈ”レベルとなっても、ビット線ＢＬ２は“Ｌ”レベルのままである。この時に、問題となるのは、“１”ライトしているビット線において、再プログラムデータ設定時、ビット線の電位を“Ｌ”レベルから“Ｈ”レベルへ再充電するところにある。即ち、前述の説明のように、やはり、隣接ビット線間のカップリングの影響により、ビット線ＢＬ２のレベルも持ち上がることになる（Ｔｕｐ）。例えば、トランジスタＴ11によるしきい値のドロップを考慮すると、電源電圧Ｖccが５Ｖのとき、０Ｖから４Ｖ迄、持ち上がる。このとき、ビット線ＢＬ２のレベルは、　
　　　ΔＶ＝０．３５８×４＝１．４Ｖ　
だけ変化することになる。
【０１８３】
　また、“０”ライトしているメモリセルのしきい値分布のばらつきに起因して、所定のベリファイ後の電位レベルの分布もばらつくことになる。この様子を図６６に示す。ベリファイ後のレベルは、“０”Ｖ迄完全に放電される場合と、１Ｖ程度迄しか放電されない場合がある。このとき、前述のカップリングの影響を受けると、２．４Ｖ迄電位が変動し、センスレベルをこえることになる。即ち、“０”ライトＮＧとなるべきメモリセルが、“０”ライトＯＫと誤って検知されることになり、メモリセルの動作マージンを減らすことになる。図６５に示す(2)〜(8)の組み合わせの例は、カップリングにより誤動作する様な組み合わせはない。
【０１８４】
　上記問題点を解決するための方法を以下に説明する。　
　プログラムコマンドが入力された後に、メモリセルにデータが書き込まれる動作は、図６４で説明した動作と同一のため説明を省略する。異なるのは、プログラムベリファイ時の動作である。プログラムベリファイモードとなると、信号ＰＲＥによってビット線がプリチャージされる。ビット線のプリチャージが終了すると、ベリファイリード動作を行なう。このとき、同時に信号Ｐv も“Ｈ”レベルとする。これにより、“１”ライトしているビット線については、トランジスタＴ11，Ｔ12がオンするため、充電されることになる。従って、“Ｌ”レベルに放電されることなく、“Ｈ”レベルを保持することになる。そして、所定の時間の後、信号ＢＬＣＤを“Ｈ”レベルとすることにより、ビット線の電位レベルをデータラッチ回路ＤＲへ転送し、検知、ラッチする。即ち、“１”ライトしているビット線は常に“Ｈ”レベルであり、“０”ライトしてベリファイＯＫのビット線も“Ｈ”レベルとなる。また、ベリファイＮＧのビット線は放電されることとなる。このようにすると、前述のように、“１”ライトのビット線が放電されることがない。このため、再書き込みデータを設定するときに、“Ｌ”レベルから“Ｈ”レベルという、前述のような電位変化はおこらないことになる。
【０１８５】
　従って、カップリングの影響を受けることなくデータを検知できる。このため、データの検知を誤ることもなくなる。このことは図６８に示されている。図６８の(1)の組み合わせにおいて、図６５で説明した(1)の場合と比較して、改善されていることが分かる。このことを、図６９に、図６６と対比させて図示する。前述のように、再書き込み設定時に、ビット線のカップリングの影響による持ち上がりがなくなるため、正しくデータを読み出すことができる。
【０１８６】
　図７０は、再書き込み設定トランジスタＴ11，Ｔ12の他の例を示す。（ａ）は前述迄の説明に用いた例で、（ｂ）は他の例である。トランジスタＴ11として、０Ｖ付近にしきい値電圧を持つトランジスタを用いることにより、ベリファイ時のビット線の“Ｈ”レベルを、Ｖccに近く設定できる。また、トランジスタＴ12のゲートに、昇圧した電位を入力することにより、さらに効果は上がる。
即ち、電源電圧Ｖccに対し、電位ドロップ（しきい値ドロップ）する分が少なくなり、これにより読み出し動作により大きなマージンがでる。
【０１８７】
　図７１〜図７７は、上記方法の実施に使用される一般的な回路図であるため説明は省略する。
【０１８８】
　このような方法で、ベリファイ動作を行なうことにより、ビット線のカップリングの影響を無視できる。
【０１８９】
　上記説明では特に触れなかったが、プログラムベリファイ時には、“０”セルに対してマージンを得るために、０．５Ｖ程度メモリセルのゲートを持ち上げている。
【０１９０】
　前述のように、“１”ライトしているセルに対しては、ベリファイ動作のとき、常にトランジスタＴ11，Ｔ12がオンして、電流を、メモリセルを介して、流していることになる。
【０１９１】
　メモリセルのソースは、メモリセルアレイの外で共通に接続され、消去時には２０Ｖ程度の高電圧が印加され、プログラム時、リード時には、ＧＮＤレベルに設定するためのＶwell回路に接続される。即ち、ソースラインの配線抵抗が存在することになる。ベリファイ時、１セル当たり、１０μＡ程度の電流を流したとする。約１ページについて“１”ライトしている時は、２５６バイト分のメモリセルについて電流が常時流れることになる。即ち、２５６×８×１０μ＝２０ｍＡとなる。
【０１９２】
　今、ソースラインに２０Ω程度の抵抗が存在したとすると、ソースラインの電圧は、０．４Ｖ浮くことになる。これに対して、１ページのほとんどについて“０”ライトしている時は、常時流れる電流はほとんど存在しない。従って、ソースの電位はほとんど上昇せず、ＧＮＤレベルとなる。即ち、書き込みパターンに起因して、プログラムベリファイ時のソースの電位が変わるという問題がある。
【０１９３】
　また、リード時は、常時流れる電流の経路は存在しないため、ソースのレベルはほとんどＧＮＤレベルとなる。従って、書き込みパターンによりメモリセルの分布が異なり、メモリセルの動作マージンが異なることになる。また、１ページ分のセルのほとんどについて“１”パターンを書く場合、プログラムベリファイ時とリード時のソースの電位が異なるため、ベリファイはＯＫとなっても、実際にリードするとＮＧということになる。
【０１９４】
　図７８にチップの構成を示す。プログラムベリファイ時、メモリセルのゲートを０．５Ｖ程度浮かす回路のグランドは、周辺回路のＶssラインに接続されている。また、メモリセルのソースラインは、Ｖwell回路へ接続される。従って、書き込みパターンによりメモリセルのソースラインが浮いたとしても、ベリファイレベル設定回路のソースは浮かないために、ソースラインの電位に差がでることになる。このため、ベリファイレベルの設定を、ソースの浮きを見込み、１．０Ｖに設定したとする。書き込んだメモリセルのしきい値分布を２．５Ｖとすると、１ページのほとんどのセルについて“０”ライトしている場合、書き込んだメモリセルの上限は（１Ｖ＋２．５Ｖ＝）３．５Ｖとなる。これに対して、ほとんど“１”ライトしている場合は、ソースの電位も０．５Ｖ程度持ち上がるため、メモリセルのゲートは０．５Ｖと等価になり、０．５Ｖ＋２．５Ｖで、上限のしきい値は３．０Ｖとなる。この違いは、ＡＣ特性の違い、信頼性の違いとなる。
【０１９５】
　この点を解決するため図７９に示すように、ベリファイレベル設定回路のソースを、トランジスタＴA を介して、メモリセルのソースと共通に接続する。トランジスタＴA のゲートには、プログラムベリファイ時“Ｈ”レベルとなる信号“ＰＲＯＶＥＲＩ”が加えられる。このようにすると、プログラムベリファイ時に、ベリファイレベル設定回路のソースはメモリセルのソースと共通になり、そのため、メモリセルのソース電位の変化をそのまま反映することができる。
【０１９６】
　従って、ソースが０．５Ｖ浮けば、出力電位も設定値に対して０．５Ｖ高くなり、このため常にメモリセルのソースとゲート間には、一定の電圧が印加されることになる。即ち、いかなるパターンを書いても、同一の分布を得られることになり、より高い信頼性を得ることができる。
【０１９７】
　図８０はベリファイレベル設定回路を示し、図８１はＶwell回路を示す。　
　次に、別の回路構成で第１１の実施例（図５５）と同様の効果を得られる、第１１の実施例の変形例を説明する。この変形例を示す図８２においては、第１１実施例（図５５）と同等の回路には同一の符号を付している。図８２には、１列分のメモリセルアレイとそれに対する周辺回路を示している。
【０１９８】
　この変形例においては、第１１実施例と異なり、データラッチ回路ＤＲを２つのデータラッチ回路ＤＲ１，ＤＲ２を有するものとしている。第１のデータラッチ回路ＤＲ１は、ＩＯとＮＩＯとの間に直接逆並列に接続された２つのインバータを有する。第２のデータラッチ回路ＤＲ２は、トランジスタＴ31，Ｔ32を介して、ＩＯとＮＩＯとの間に接続された２つのインバータを有する。トランジスタＴ31，Ｔ32は信号ＳＤＩＣによって制御される。さらに、第１、第２のデータラッチ回路ＤＲ１，ＤＲ２の出力信号がイクスクルーシブノア回路ＸＮＯＲに加えられている。すなわち、２つの入力信号の論理レベルが一致している場合のみ“Ｈ”レベルとなる。このイクスクルーシブノア回路ＸＮＯＲの出力は、信号ＶＲＥＡＤによって制御されるトランジスタＴ21を介してＩＯに加えられる。この回路ＸＮＯＲの出力の反転信号は、信号ＶＲＥＡＤによって制御されるトランジスタＴ22を介して、ＮＩＯに加えられる。図８２では、図５５におけるトランジスタＴ11、トランジスタＴ12は必要ないので除去している。
【０１９９】
　図８２の装置の読み出し動作及び消去動作は、第１１実施例と同様なので、説明を省略する。
【０２００】
　以下、書込み動作を説明する。　
　プログラム動作は、前述したものと同様である。プログラムコマンドＰＣが入力されてプログラムモードになる。外部からは、コラムアドレスとページを示すページアドレスが入力される。このとき、信号ＢＬＣＤが“Ｌ”となり、トランジスタＴＴがオフする。また、これと共に、昇圧回路ＳＵが動作し始め、次第に書込みプリチャージ回路ＷＰＣに入力される信号ＢＬＣＲＬ、ＢＬＣＵが昇圧してゆき、１０Ｖ程度まで上昇する。このとき、メモリセルアレイ群の中のビット線ＢＬの電位も、ＢＬＣＲＬの上昇と共に上昇する。このとき、選択されたＷＬは２０Ｖ程度の高電位に、ＮＡＮＤセル群のソース側のセレクトゲートトランジスタのゲートは０Ｖに、他のゲートは１０Ｖ程度の中間レベルにそれぞれ設定される。
【０２０１】
　この状態で、カラムアドレスＡＣを順次変化させ、書込みデータをデータレジスタ回路ＤＲへ入力していく。このとき、データレジスタ回路ＤＲへ入力された書込みデータは第１のデータラッチ回路ＤＲ１にラッチされる。２５６バイト分の書込みデータがそれぞれ第１データ回路ＤＲ１にラッチされた後、信号ＢＬＣＵが“Ｌ”となって、書込みプリチャージ回路ＷＰＣはオフする。さらに、信号ＳＤＩＣが“Ｈ”になるとトランジスタＴ31、Ｔ32がオンし、第２のデータラッチ回路ＤＲ２に書込みデータがラッチされる。続いて、信号ＳＤＩＣが“Ｌ”になりトランジスタＴ31、Ｔ32がオフになる。信号ＳＤＩＣを書き込みデータ入力と同時に“Ｈ”レベルとして、第１、第２のデータラッチ回路に同時にラッチ動作をおこなってもよい。このとき、ＶＲＥＡＤは“Ｌ”であるためトランジスタＴ21、Ｔ22はオフしている。これと共に、信号ＢＬＣＤが１０Ｖ程度まで上昇してトランジスタＴＴがオンし、ビットラインＢＬとデータレジスタ回路ＤＲが接続される。
【０２０２】
　このとき、データレジスタ回路ＤＲに供給される電源ＶＢＩＴも１０Ｖ程度にまで上昇する。第１のデータラッチ回路ＤＲ１に“１”がラッチされていれば、ビット線ＢＬの“Ｈ”がそのまま維持される。また、この第１のデータラッチ回路ＤＲ１に“０”がラッチされていれば、プリチャージされたビット線のレベルは“Ｌ”になり、浮遊ゲートへ電子の注入が起る。このようにして、２５６バイト分の書込みが同時に行われる。
【０２０３】
　続いて、前述のように、プログラム動作が終了した後ベリファイコマンドＣＦが入力される。これにより、信号ＢＬＣＤは０Ｖとなり、ＢＬＣＲＬは５Ｖに、信号ＶＢＩＴは５Ｖとなるとともに、リセット信号ＲＳＴによりビット線が放電される。このとき、書込みデータはデータレジスタ回路ＤＲ内の第２のラッチ回路ＤＲ２にラッチされたままの状態となる。この状態で、リードプリチャージ回路ＲＰＣに“Ｈ”の制御信号ＲＰＣが加えられ、ビット線がプリチャージされる。
【０２０４】
　続いて、信号ＢＬＣＤが５Ｖになり、これにともない、リードデータが第１のラッチ回路にラッチされる。この時、第２のラッチ回路ＤＲ２にラッチされたデータとコンパレートを行う。続いて、信号ＢＬＣＤは０Ｖとなり、データラッチ回路がメモリセルと切離される。続いて、信号ＶＲＥＡＤが５Ｖとなり、トランジスタＴ21、Ｔ22がオンし、第１のラッチ回路ＤＲ１にコンパレート結果がラッチされる。このレベルは、図８３に破線で囲んだ、書込みデータが“１”、ベリファイデータが“０”という条件でもエラー判定がされる。つまり、書込みデータが“１”、ベリファイデータが“０”という、第１１の実施例では無視していた条件でも、ベリファイＮＧ信号が出力される。
【０２０５】
　ベリファイリード動作は、第１１実施例と同様である。すなわち、プログラム動作から所定時間経過後、ベリファイリードコマンドＣＦを入力すると、ベリファイ出力モードに入る。すると、／ＲＥを“Ｈ”→“Ｌ”→“Ｈ”→“Ｌ”と順次に変化させることによって、カラムアドレスＡＣが次々にインクリメントし、順次にラッチデータの内容を２５６バイト分（２５６回）出力する。図８２の回路構成では、図８３において説明した、コンパレートした結果が出力される。すなわち、ベリファイＮＧのビットに対しては“１”データが、それ以外のビットに対しては“０”データがパラレルに出力される。
【０２０６】
　以上には、コマンド入力により、プログラム、ベリファイ、再プログラムを行う方式で説明したが、プログラムコマンドを入力することにより、内部オート動作によりベリファイ動作、再プログラム動作を行い、ＰＡＳＳ、ＦＡＩＬ判定を行うようにすることもでき、このようにすれば、さらに使いやすくなる。
【０２０７】
　図８４、図８５の基本概念ブロック図を示す。　
　プログラムオートコマンドはコマンドレジスタ回路ＣＲにより解読される。この回路ＣＲの出力に基づいて、論理回路ＬＯＧ１がパルス信号ＡＵＴＯｐｕｌｅｓを出力する。信号ＡＵＴＯｐｕｌｅｓは、フリップフロップＦＦ１に入力され、プログラムモード信号ＰＲＯが“Ｈ”レベルの状態でラッチされる。
【０２０８】
　次にＰＲＯの信号が“Ｈ”レベルになることによりプログラムが開始される。所定のプログラム時間後、論理回路２からのプログラム終了信号ＰＲＯＥにより、フリップフロップＦＦ１及びコマンドレジスタ回路ＣＲをリセットする。プログラム終了信号ＰＲＯＥは、フリップフロップＦＦ１に入力するとともにフリップフロップＦＦ１１にも入力され、ベリファイモードとなる。所定のベリファイ時間は、バイナリカウンターＢＣ１１によりカウントされる。
【０２０９】
　このとき、前記説明のようなベリファイ動作を行い、ベリファイＯＫか否かを判定する。もし、ＮＧの場合は、プログラム回数をカウントするカウンタＰＮＣのカウント値を１つ進めるとともに再プログラムを行う。ＯＫの場合はｐａｓｓとする。
【０２１０】
　このようにすることにより、オートプログラムコマンドを入力するだけでＰＡＳＳ、ＦＡＩＬの判定が可能となり、使いやすくなる。
【０２１１】
　上記説明はプログラム動作をベースに説明したが、消去動作についてもまったく同様に考えることが可能である。
【０２１２】
　次に、ベリファイリードとオートプログラムの組み合わせについて説明する。
　再プログラムを所定の回数行っても、ベリファイがＮＧのままであると、そのページ（２５６バイト）はエラーとして扱われる。ここで、何ビットのセルがベリファイＮＧとなっているかを外部から識別することができる。ここではこれをベリファイリードモードと呼ぶことにする。以下、プログラム→ベリファイリードの動作を図８６のタイムチャートを用いて説明する。
【０２１３】
　プログラム動作は、前述したものと同様である。プログラムコマンドＰＣが入力されるとプログラムモードになる。外部からは、カラムアドレスとページを示すページアドレスが入力される。このとき、データレジスタ回路ＤＲのトランスミッショントランジスタＴＴを制御する信号ＢＬＣＤが“Ｌ”となり、トランジスタＴＴがオフする（図５５参照）。また、これと共に、昇圧回路ＳＵが動作し始め、次第に書込みプリチャージ回路ＷＰＣに入力される信号ＢＬＣＲＬ、ＢＬＣＵが昇圧してゆき、１０Ｖ程度まで上昇する。このとき、メモリセルアレイ群の中のビット線ＢＬの電位も、ＢＬＣＲＬの電位上昇と共に上昇する。このとき、選択されたＷＬは２０Ｖ程度の高電位に、ＮＡＮＤセル群のソース側のセレクトゲートトランジスタのゲートは０Ｖに、他のゲートは１０Ｖ程度の中間レベルにそれぞれ設定される。
【０２１４】
　この状態で、カラムアドレスＡＣを順次変化させ、書込みデータをデータレジスタ回路ＤＲへ入力していく。図では／ＷＥが入力データのラッチ信号として働いている。このとき、データレジスタ回路ＤＲへ入力された書込みデータはそこにラッチされる。２５６バイト分の書込みデータがそれぞれデータレジスタ回路ＤＲにラッチされると、信号ＢＬＣＵが“Ｌ”となって書込みプリチャージ回路ＷＰＣはオフする。これと共に、信号ＢＬＣＤが１０Ｖ程度にまで上昇してトランジスタＴＴがオンし、ビットラインＢＬとデータレジスタ回路ＤＲが接続される。このとき、データレジスタ回路ＤＲに供給される電源ＶＢＩＴも１０Ｖ程度にまで上昇する。この回路ＤＲに“１”がラッチされていれば、ビット線ＢＬの“Ｈ”がそのまま維持される。また、このデータレジスタ回路ＤＲに“０”がラッチされていれば、プリチャージされたビット線のレベルは“Ｌ”になり、浮遊ゲートへの電子の注入が起る。このようにして、２５６バイト分の書込みが同時に行われる。
【０２１５】
　続いて、所定時間経過後、一括ベリファイコマンドＶＣではなく、ベリファイリードコマンドＣＦを入力するとベリファイ出力モードに入る。カラムアドレスＡＣを次々にインクリメントさせ、順次ラッチデータの内容を２５６バイト分（２５６回）出力する。ベリファイＮＧのビットに対しては“１”が、それ以外のビットに対しては“０”がパラレルに出力される。
【０２１６】
　このように、一括ベリファイ回路を用いた構成で、ベリファイＮＧかどうかをチップ外部に出力することができる。ここで、出力データは従来のような実際にセルに書込まれたデータではなくて、再書込みをすべきかどうかを示すベリファイＮＧ信号である。従って、外部にコンパレート回路などを持つ必要なしに、書込みエラーのおきたセル数をカウントすることができる。ベリファイリードで“０”が出力されたセルの合計が“１”ページ分でのベリファイＮＧの合計である。また、当然ではあるが、どこの番地でベリファイＮＧがあったかを特定することができる。
【０２１７】
　次に、ベリファイＮＧのカウントとＥＣＣ（エラーコレクト回路）と組合わせた実施例を説明する。　
　一般に、記憶データの信頼性を高めるため冗長セルを付加してエラーセルを補償する手法が使われている。例えば、２５６バイト（２Ｋビット）のページに対して６４ビットの冗長ビットを設ける。これに冗長ビットのデータとしてハミングの距離を用いたハミング符号化を行うと、６ビットまでのデータ誤りを修正することができる。さらに一般的に、Ｍビットのデータ列に対してＮビットの冗長ビットを追加すると、
　　　 T
　　　Σ　N+M Ｃi ＋１　≦　２N 
　　　i=1 
を満たすＴビットの誤りを修正できる。
【０２１８】
　ＥＣＣ回路を有する実施例のフローチャートを図８７に示す。　
　書込み動作に入り、プログラムを開始すると、１ページ（２５６バイト）分のデータが書込まれる。さらに、エラーコレクト回路の６４ビットの冗長セルに冗長データが書込まれる。続いて、ベリファイ動作に入り、ベリファイＯＫならば書込みが異常なく終了したことになり、書込み動作が終了する。ベリファイがＮＧであれば、次に、再プログラムが何回目かを示すカウンターと比較して、これが３回目以下であれば再プログラムを行う。再プログラムの設定回数（この場合３回）を越えた場合、ベリファイリードを行う。ここで、前述したように、１ページ分のＮＧビットの個数をカウントする。続いて、このカウント結果が所定の冗長ビット数（この場合６４ビット）で修正することができるかを比較し、これが出来れば、書込みＯＫとなり、書込み動作が終了する。また、ＮＧビット数が冗長ビットでさえも救えないほど大きければ書込みエラーとなる。
【０２１９】
　このようにすると、書込みＮＧビットが生じたとしてもＥＣＣで救済できる範囲内であれば書込みエラーとならない。従って、このように記憶装置を構成した場合、外部からみた書込みエラー数が従来と比較して大幅に低下する。とくに、経時劣化のあるＥＥＰＲＯＭでは効果が顕著である。
【０２２０】
　また、上記のような構成でＥＣＣ回路を付加した場合、ＮＧビットがあるにも拘わらず書込みエラーとならないことがある。しかし、ＮＧビットがＥＣＣで救済出来る範囲であるかを判定しながら、ＥＣＣの救済限界にどれほど近づいているかを知ることができる。例として、ＥＣＣの救済限界の８割がＮＧビットとなったとき、警告を発するようにすれば良い。とくに、経時劣化のあるＥＥＰＲＯＭではチップの寿命を判定する手段となる。
【０２２１】
　さらに図５５、図６に示した実施例に説明したようにベリファイ動作は一括で行える。従って、ベリファイ、を含めた書込み時間はそれほど長くならない。
【０２２２】
　以上、ＥＣＣを付加した実施例を説明したが、これは、ワンチップで構成しても良いし、複数のＥＥＰＲＯＭチップからなる記憶システムとして構成しても良い。効果はまったく変らない。また、冗長コードの生成法としてハミング方式を用いたが、これに限る必要はなく、リードソロモン式符号化法、ＨＶ符号化法、ファイアー符号化法、サイクリック符号化法等、種々の符号化法を用いても良い。
【０２２３】
　以上、アドレス制御を外部入力で行う方法で説明をおこなってきたが、以下にアドレスピンとデータ入力ピンを共通にした例を説明する。
【０２２４】
　図８８にその一例を示す。ここで、ＡＬＥ，ＮＷＰ，ＣＥ，ＮＷＥ，ＲＥは外部制御信号である。これらの信号はそれぞれ対応する入力ピンから入力され、チップの動作モードが決定される。また、制御回路からは、チップがアクセス可能か、不可能かを示す信号が、Ready ／Busyピンを介して、外部に出力される。外部信号ＣＬＥはコマンド入力モードを決定する。外部制御信号ＡＬＥはアドレス入力モードを決定する。外部制御信号ＣＥはチップセレクト信号である。外部制御信号ＮＷＥは、コマンド入力モード、アドレス入力モード及びデータ入力で、それぞれの入力データを取り込むクロック信号の働きをする。外部制御信号ＲＥは、データ読み出し時に入力されたアドレスから連続したアドレスを読みだす際の、アドレスインクリメントと、出力バッファのイネーブル機能を持つクロック信号である。
【０２２５】
　図８８は書き込みを行う場合の外部制御モードを示すタイミングチャートである。ここで、まず、コマンド入力モードで、シリアルデータ入力コマンド８０Ｈが入力される。これにより、チップは、プログラム開始番地を入力するため、アドレス入力モードとなる。アドレス入力モードでは、外部制御信号ＮＷＥの３ステップのクロックで、カラムアドレス及びページアドレスを、アドレスバッファに取り込み、各内部アドレス信号を入力アドレスデータに対応した所定の論理レベルに決定する。このときReady ／Busy出力端子にReady 信号が保持されるように構成されている。アドレス入力動作が終了すると、信号ＳＤＩＣが“Ｌ”→“Ｈ”レベルに変化する。このため、共通バスラインＩＯｉ／ＩＯｉＢに、書き込みデータ及びその反転データが、Ｉ／Ｏ入力端子より、転送される。次に、外部制御信号ＮＷＥが“Ｌ”レベルとなっている間、入力されたカラムアドレスに対応するカラムデコーダ出力信号ＣＳＬｎが“Ｈ”レベルとなる。このようにしてデータレジスタ内にデータが転送される。
【０２２６】
　その結果、０番地からＮ−１番地までのデータレジスタの内容は、イニシャライズされた時のデータ“１”となっている。Ｎ番地からＮ＋ｊ番地までのデータレジスタには、Ｉ／Ｏ入出力端子から入力された、データがラッチされている。
【０２２７】
　このデータ入力モード後、コマンド入力モードで、オートプログラムコマンド１０Ｈを入力すると、チップはメモリセルへの書き込みを行う。
【０２２８】
　この後は、前記説明の動作（プログラム→ベリファイ→再プログラム）が自動的に行われる。
【０２２９】
　上記書き込み動作中は、Ready ／Busy出力端子よりBusy信号が出力される。所定の書き込み時間が経過すると、自動的にＲＥＡＤＹ信号が出力されるように設定されている。この書き込みモードが正常に終了したかの検知は、コマンド入力モードで７０Ｈのフラグリードコマンドを入力して、ベリファイの結果（信号ＰＥＯＫ）をＩ／Ｏ入出力端子より読み出すことにより可能である。
【０２３０】
　図８９は、前述した半導体メモリに、オートコマンドを用いずに書き込みを行う場合における外部制御信号の入力波形と、データ入力タイミングを示す。コマンド入力モードで、シリアルデータ入力コマンド８０Ｈが入力される。これにより、チップはプログラム開始番地を入力するため、アドレス入力モードとなる。アドレス入力モードでは、前述の読みだしモードと同様に、外部制御信号ＷＥが“Ｌ”レベルとなっている間に入力された、カラムアドレスに対応するカラムデータ出力信号が“Ｈ”レベルとなる。これにより、データレジスタのラッチ内容は、共通バスライン上の書き込みデータラッチに書き込まれる。このようにして順次、書き込みデータがラッチされる。ラッチが終わると、プログラムコマンド“４０Ｈ”が入力され、プログラムモードへ移行する。
【０２３１】
　次に、ベリファイコマンドを入力すると、ロウアドレスに応じたアドレスバッファ回路内の内部アドレス信号に対応したワード線が選択される。更に、所定のディレイ時間の後、選択されたワード線にコントロールゲートが接続された１ページ分のメモリセルデータが、ビット線を介して読み出され、データレジスタにラッチされる。次に、このデータレジスタの内容ＰＥを、“Ｈ”→“Ｌ”→“Ｈ”と変化させ、カラムアドレスをインクリメントさせ、順次、データをチップ外部に呼び出す。読みだしたデータを、チップで、外部記憶書き込みデータとコンパレートする。これにより、どの番地で、何ビットがエラーとなったかを判定することができる。
【０２３２】
　図９０にその書き込み、ベリファイ動作を行う場合の、外部制御信号の入力波形とデータ入力タイミングを示す。まず、コマンド入力モードで、シリアルデータ入力コマンド８０Ｈが入力される。これにより、チップはプログラム開始番地を入力するため、アドレス入力モードとなる。アドレス入力モードでは、前述の読みだしモードと同様に、外部制御信号ＷＥの３ステップのクロックで、カラムアドレス及びページアドレスを、各々のアドレスバッファ回路に取り込み、各内部アドレス信号を入力アドレスデータに対応した所定の論理レベルに設定する。その後、外部制御信号ＷＥが“Ｌ”レベルとなっている間に入力された、カラムアドレスに対応するカラムデータ出力データが“Ｈ”レベルとなる。これにより、データレジスタのラッチ内容は、共通バスライン上の書き込みデータに書き込まれる。このようにして、順次、書き込みデータをラッチする。このラッチが終わると、プログラムコマンド“４０Ｈ”が入力され、プログラムモードへ移行する。このデータ書き込み時は、次のベリファイリードコマンドが入力されるまでの間、書き込みを行う。
【０２３３】
　次に、ベリファイコマンド（一括ベリファイ）を入力すると、前述の説明のように、一括ベリファイが行われる。次に、この状態で先述と同じように、ＲＥを“Ｈ”→“Ｌ”→“Ｈ”と変化させ、カラムアドレスをインクリメントさせ、順次、データをチップ外部に読み出す。
【０２３４】
　このようにすると、書き込みＮＧとなったビットからは、“０”データが、ＯＫとなったビットからは“１”データが出力される。このため、疑似的ではあるが、不良ビット数を判定することができる。図９１は図９０に示したシステムの他の例である。ここでは、ベリファイリードコマンドの入力後に、ＲＥを動かし、カラムアドレスをインクリメントすることなく、フラグリードコマンド“７０Ｈ”を入力し、プログラムＯＫか否かを出力する例を示した。このようにシステムを構成しても、Fail／Passの判定は可能である。
【０２３５】
　周知のようにＮＯＲ型のメモリセルへのデータの書き込みは、フローティングゲートへのホットエレクトロンの注入によりなされる。故に、書き込み時、１つのメモリセル当たり１〜２ｍＡ程度の書き込み電流を消費する。このため、ＮＡＮＤ　Ｅ2 型では可能であるが、ＮＯＲ型では２５６バイト等のページ書き込みが行なえない。しかしながら、ＮＯＲ型は、読み出しスピードが速い等のメリットを有することから利用されている。
【０２３６】
　ＮＯＲ型は、Ｅ2 故に、オンボード上でのデータの書き換えが可能である。まず、アドレス指定を行ない、書き込みデータを入力し、メモリセルへ書き込みを行ない、次に書き込んだアドレスのデータを読みだし、データの比較を行ない、書き込みがなされたか否かを判定する。
【０２３７】
　ボード上でこのような動作を行わせる場合には、ＣＰＵが、データの書き込み、ベリファイ動作に必要な信号を作ることになる。このため、この間、ＣＰＵが専有されてしまうという問題がある。
【０２３８】
　従って、書き込み、ベリファイ動作を、チップ内部でオート化をすることにより、ＣＰＵを開放する方法が一般的となっている。
【０２３９】
　この時、書き込みデータをラッチする回路と、読み出したデータをラッチする回路と、このデータを比較する回路とを設けた例もある（特願平３−１２５３９９）。この例ではパターンエリアが比較的大きくなり、チップサイズが大きくなるという問題がある。
【０２４０】
　以下に説明する実施例は、比較的小さなパターンエリアで、書き込みだけでなく、消去時にも使えるようにしたものである。
【０２４１】
　即ち、これまでに述べた実施例は、ＮＡＮＤ構造のメモリセルを例にしたものであるが、以下には、２層構造のＮＯＲ型のセルを用いた場合の一括ベリファイ方式について述べる。即ち、図９２〜図９４に２層構造のメモリセル（ＥＥＰＲＯＭ）の一例を示す。
【０２４２】
　図９２はパターン平面図、図９３は図９２のＢ−Ｂ′線断面図、図９４は図９２のＣ−Ｃ′線断面図である。これらの図において、２１１は第１層目の多結晶シリコンからなる浮游ゲート（ＦＧ）である。２１２は第２層目の多結晶シリコンからなる制御ゲート（ＣＧ）である。この制御ゲート２１２はメモリセルのワード線として使用される。
【０２４３】
　また、２１３は、Ｐ型の基板である。２１４および２１５は、この基板２１４上に形成されたＮ+ 型拡散層からなるソース（Ｓ）及びドレイン（Ｄ）である。２１６は、コンタクトホールである。２１７は、このコンタクトホール２１７を介して、上記ドレイン２１６と接続されるアルミニウム層（ビット線ＢＬ）である。さらに、２１８は浮游ゲートトランジスタ分のゲート絶縁膜であり、厚さは１００オングストロームである。２１９は、浮游ゲート２１１と制御ゲート１２との間に設けられた絶縁膜であり、例えばＯ−Ｎ−Ｏ構造（Oxide-Nitride-Oxide ）の３層構造膜で構成されており、厚さは酸化膜換算で約２００オングストロームである。２２０はフィールド絶縁膜であり、２２１は層間絶縁膜である。
【０２４４】
　次に、動作原理を説明する。　
　消去時には、ソース２１４に消去電圧１２Ｖを印加し、ドレイン２１５をフローティング状態とし、制御ゲート２１３を０Ｖとする。これにより、薄いゲート絶縁膜１８を介して、浮游ゲート２１１とソース２１４との間に、高電圧が印加される。これによりファウラー・ノルトハイムのトンネル効果により、浮游ゲート２１１中の電子が、ソース２１４に放出され、消去が行われる。
【０２４５】
　書き込み時には、ドレイン２１５に約６Ｖを、ソース２１４に０Ｖを、制御ゲート２１３に１２Ｖをそれぞれ印加する。これにより、ドレイン近傍で、インパクト・アイオナイゼーションが起こり、電子が浮游ゲート１１に注入され、書き込みが行なわれる。
【０２４６】
　読み出し時には、ドレイン２１５に１Ｖを、ソース２１４に０Ｖを、制御ゲート２１３に５Ｖを加える。このとき、浮游ゲート２１１中に電子が有るか否かによりオフ／オンし、それぞれ、データ“０”又は“１”を示すことになる。
【０２４７】
　このようなメモリセルを用いた半導体集積回路、例えば４ビット構成でのフラッシュ型ＥＥＰＲＯＭは、図９５に示すように構成される。
【０２４８】
　図９５において、Ａ0 〜Ａi はローアドレス入力信号であり、ローアドレス・バッファ回路１により増幅・整形されたのち、ローデコーダ回路２に入力する。Ｂi+1 〜Ｂj はカラムアドレス入力信号であり、カラムアドレス・バッファ回路３により増幅・整形されたのち、カラムデコーダ回路４に入力する。ローデコーダ回路２は、複数のワード線ＷＬのうちの１本だけを選択する。カラムデコーダ回路４は、各カラム選択ゲート回路６中の１本のゲート６Ａを選択的にオンして、ビット線ＢＬを各Ｉ／Ｏ毎に１本、都合４本だけ選択する。これによって、メモリセルアレイ５の中から、各Ｉ／Ｏ毎に１個、都合４個のメモリセルＭＣが選択される。選択された各メモリセルＭＣの情報が、それぞれセンスアンプ回路７で検知・増幅される。各センスアンプ回路７の出力が、各出力バッファ回路８を経て、チップ外部へ読出される。つまり、４つの情報が同時に外部に出力される。
【０２４９】
　図９５においては、メモリセルアレイ５は４つのメモリセルアレイユニット（ＭＣＡＵ）５Ａから構成される。各ユニット５Ａは、説明を簡単にするため、４本のワード線ＷＬと、４本のビット線ＢＬと、１６個のメモリセルＭＣと、４つのリファレンスメモリセルＲＭＣとを有するものとしている。４本のビット線ＢＬに対応させて、カラム選択ゲート回路６中のゲート６Ａも、４つとしている。これらのゲート６Ａのうちの１つが、カラムデコーダ回路４によって、オンさせられる。リファレンスメモリセルＲＭＣは、途中にリファレンスゲートＲＢＴを有するリファレンスビット線ＲＢＬによって、センスアンプ回路（ＳＡ）７に接続されている。
【０２５０】
　このような構成のＥＥＰＲＯＭに対する４ビットデータの書き込みは次のようにして行われる。即ち、４つの入出力兼用パッド（図示せず）から、４つのデータを、各Ｉ／Ｏ毎に、読み込む。読み込んだデータに応じて、書き込み回路１０が、ビット線ＢＬの電位を設定する。つまり、書き込み回路１０は、書き込みデータが“０”のときは高電位を、“１”のときには低電位を、入力アドレス信号により選択されるビット線ＢＬにそれぞれ供給する。このとき、入力アドレス信号により選択されるワード線ＷＬにも高電位が出力される。
【０２５１】
　即ち、“０”データ書き込みのときは、選択されたワード線ＷＬと、データを書き込むべきビット線ＢＬとが高電位となる。これにより、メモリセルＭＣのドレインＤ近傍で発生したホットエレクトロンが、メモリセルＭＣの浮游ゲートＦＧに注入される。これにより、メモリセルＭＣのしきい値電圧が正方向へシフトされ、“０”データがメモリされる。
【０２５２】
　一方、“１”データを書き込む時は、ビット線ＢＬは低電位となる。これにより、浮游ゲートＦＧへ電子が注入されることはなく、メモリセルＭＣのしきい値電圧もシフトしない。これにより、“１”データが記憶される。
【０２５３】
　一方、データを消去する時は、メモリセルのソースを高電圧にする。これにより、浮游ゲートＦＧに注入されている電子が、Ｆ−Ｎ（ファウラーノルドハイム）のトンネル効果により、放出させられる。
【０２５４】
　図９６は、図９５の一部を具体的に表わしたものであり、これらの図において同一の符号は同一の回路を示している。図９６は、特にセンスアンプ回路（ＳＡ）７及びコンパレート回路９を具体的に示している。さらに、コンパレート回路９に比較対象としての一方の信号を入力する回路ＩＮＣＩＲと、コンパレート回路９の出力を受ける一括ベリファイ回路ＶＥＣＩＲを示している。
【０２５５】
　前にも述べたように、ＭＣは浮游ゲート型ＭＯＳトランジスタからなるメモリセル、ＲＭＣは浮游ゲート型ＭＯＳトランジスタからなるリファレンスメモリセル（ダミーセル）、ＢＬはビット線、ＲＢＬはリファレンスビット線、ＲＢＴはカラム選択ゲート用トランジスタ６Ａの１個と等価なダミービット線選択用トランジスタである。このトランジスタＲＢＴは、そのゲートにＶCC電位が与えられ、リファレンスビット線ＲＢＬに挿入されている。ＢＡＳは複数のカラム選択ゲート用トランジスタ６Ａ，６Ａ，…が並列に接続されているバス線、ＬＤ１はこのバス線ＢＡＳに接続されている第１の負荷回路（バイアス回路）、ＬＤ２はこのリファレンスビット線ＲＢＬに接続されている第２の負荷回路（バイアス回路）である。第１の負荷回路ＬＤ１の出力側のビット線ＢＬ′の電位Ｖinと、第２の負荷回路ＬＤ２の出力側のリファレンスビット線ＲＢＬ′の電位（基準電位）Ｖref とは、データ検知回路２８（例えばＣＭＯＳカレントミラーによって構成される）に加えられる。
【０２５６】
　上記センスアンプ回路（ＳＡ）７において、ＶCC電源とデータ検知回路部２８との間には、活性化制御用のＰチャネルトランジスタＰ４が接続されている。このトランジスタＰ４のゲートには反転信号／ＣＥ＊１が与えられる。このトランジスタＰ４がオフの時には、データ検知回路部２８が非動作状態となって、電流消費が低減される。また、データ検知回路部２８の出力端ＤＳＯと接地端との間には、ゲートに反転信号／ＣＥ＊１が与えられるＮチャネルトランジスタＮ７が接続されている。
【０２５７】
　センスアンプ回路７において、リファレンスメモリセルＲＭＣのデータに基づいて生成されるリファレンスビット線ＲＢＬの基準電位Ｖref と、選択されたメモリセルから読出されたデータに基づいて生成されるビット線ＢＬの電位Ｖinとが、比較される。この比較結果に基づいて、メモリセル中の記憶データを検知し、３つのインバータを介して出力バッファ回路８へ出力する。
【０２５８】
　センスアンプ回路７の出力は、コンパレート回路９の一方の入力端へも入力される。コンパレート回路９の他方の入力端へは、Ｉ／Ｏ　pad へ加えられた信号（書き込みデータ）が加えられる。コンパレート回路９においては、これらの２つの入力信号を比較して、その結果（ＶＲ０）を一括ベリファイ回路ＶＥＣＩＲに加える。一括ベリファイ回路ＶＥＣＩＲには、これ以外の３ビットにおけるコンパレート回路９，からの出力ＶＲ１，ＶＲ２，ＶＲ３も加えられる。一括ベリファイ回路ＶＥＣＩＲは、これらの出力ＶＲ０，ＶＲ１，ＶＲ２，ＶＲ３の全てが書き込みＯＫを示すときにのみ出力回路Ｄout からの出力を許容する。これ以外の場合、つまり、出力ＶＲ０〜ＶＲ３のうちの１つでも、書き込みＮＧを示す場合には、出力回路Ｄout からの出力を阻止する。
【０２５９】
　図９７及び図９８は、それぞれ、プログラムベリファイ時及びイレーズベリファイ時におけるコンパレート回路９からの出力ＶＲ０を示す。図９７（ａ）は、“１”ライトの場合を示している。プログラムＯＫの場合は、センスアンプ出力ＤＳ０が“１”となる。これにより、コンパレート出力ＶＲ０も“１”、即ち、プログラムＯＫを示す。図９７（ｂ）は、“０”ライトの場合を示す。“０”ライトＮＧの場合にはセンスアンプ出力ＤＳ０が“１”を示す。このため、コンパレート回路出力ＶＲ０は“０”、即ち、プログラムＮＧを示す。図９７（ｃ）は、“０”ライトの場合を示す。“０”ライトＯＫの場合には、センスアンプ出力ＤＳ０が“０”を示す。このため、コンパレート回路出力ＶＲ０は“Ｈ”、即ち、プログラムＯＫを示す。なお、コンパレート回路出力ＶＲ０〜ＶＲ３の全てが“Ｈ（プログラムＯＫ）”を示すときには、一括ベリファイ回路出力ＰＶＦＹは“Ｈ”を示す。図９８からわかるように、イレーズＯＫ／ＮＧの場合は、センスアンプ出力ＤＳ０は“１／Ｏ”を示す。これに応じて、コンパレータ回路出力ＶＲ０は、“１／Ｏ”を示す。コンパレート回路出力ＶＲ０〜ＶＲ３の全てがイレーズＯＫを示すときには、一括ベリファイ回路出力ＥＶＦＹは“１”となる。コンパレート回路出力ＶＲ０〜ＶＲ３の１つでもイレーズＮＧを示すときには、前記出力ＥＶＦＹは“０”となる。
【０２６０】
　次に、図９９にさらに異なる実施例を示す。この実施例は、特開平３−２５０４９５号公報の図６に示されるメモリセルに一括ベリファイ回路を組み込んだものである。この図９９において、図９６と同様の回路にはそれと同一の符号を付している。
【０２６１】
　この図９９の装置における、イレーズ、ライト、及びリード時における各部位への印加電圧は、表６に示される。
【０２６２】
　　　　　　　　　　　　　　　表　　６
　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　
　　　　　　　　　　　 I/Oパッド　ＢＳＬ　　ＢＬ　　ＷＬ　　Ｖss　　　
　イレーズ　　　　　　　　　−　　　0 V　 フロー　 20 V　　 0 V 
（電子注入）　　　　　　　　　　　　　　　ティング　　　　　　　　　　
　ライト
"0"ライト（電子抜かず)　　0 V　　 22 V　　　0 V　　0 V フローティング
"1"ライト（電子抜き）　　 5 V　　 22 V　　 20 V　　0 V フローティング
　非選択セル　　　　　　　　−　　 22 V 　 0V/20V　10 V フローティング
　リード　　　　　　　　　　−　　　5 V　　　1 V　　5 V　　 0 V 
　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　
　この図９９における装置におけるプログラムベリファイ及びイレーズベリファイの動作は、前述の図９０における動作と同様であるため、説明を省略する。
【０２６３】
　次に、上述したような一括ベリファイ機能を有する不揮発性半導体記憶装置を用いた記憶システムの例を説明する。
【０２６４】
　通常、記憶システムは、最小限のコストで最大限の能力を引き出すために、階層的に構成されている。それらの１つとしてのキャッシュシステムは、メモリアクセスの局所性を利用したものである。通常のキャッシュシステムを用いた計算機は、ＣＰＵに加え、高速で小容量のＳＲＡＭと低速で大容量のＤＲＡＭとを具備している。このようなキャッシュシステムでは、アクセス時間の長いＤＲＡＭ等で構成された主記憶の一部を、アクセス時間の短いＳＲＡＭ等で置き換え、これにより実効的なアクセス時間を短縮している。つまり、ＣＰＵなどからアクセスする際に、ＳＲＡＭ内にデータがあれば（すなわちキャッシュがヒットしたときは）高速動作可能なＳＲＡＭからデータを読み出し、ヒットしない場合（ミスヒットの場合）はＤＲＡＭ等の主記憶からデータを読み出す。キャッシュ容量及び置き換え方式が適当であれば、ヒット率が９５％を越え、平均的なアクセスは非常に高速化される。
【０２６５】
　上述したようなＮＡＮＤ型ＥＥＰＲＯＭ等では、書き込み及び消去をページ単位（たとえば２Ｋビット）で行うことが可能である。ページ単位での処理により、書き込み及び消去が非常に高速になる。しかしながら、このような装置では、ランダムアクセスを犠牲にしているため、ＳＲＡＭやＤＲＡＭ等のＲＡＭから構成されるキャッシュメモリが必須である。ＮＡＮＤ型ＥＥＰＲＯＭ等の不揮発性記憶装置にキャッシュシステムを適用すると、書き込み回数が減り、その結果としてチップの寿命が延びる。
【０２６６】
　不揮発性半導体記憶装置を用いたメモリシステムの第１の実施例を説明する。図１００はその回路構成を示している。このシステムは、ＲＯＭ１２１と制御回路１２２を有する。ＲＯＭ１２１は、一括ベリファイ機能を有する。制御回路１２２は、ＲＯＭ１２１の書き込みを制御するもので、少なくとも内部に書き込みデータレジスタを有する。この書き込み制御回路１２２は、ＲＯＭ１２１が出力する一括ベリファイ信号に応答して、次に書き込むべきページデータを出力する。この制御回路は、ＣＰＵを用いて構成しても良いし、ゲートアレーやＳＲＡＭを含む複数チップで構成しても良い。
【０２６７】
　上述したようなＮＡＮＤ型ＥＥＰＲＯＭでは、一括消去ブロックは通常数ページにわたる。従って、キャッシュメモリなどのシステムを構成したときには、一括消去ブロック毎に書き込みを行う。例えば、上述の８ＮＡＮＤ型のメモリセルを有するＮＡＮＤ型ＥＥＰＲＯＭでは、２Ｋビット（１ページ）×８＝１６Ｋビット（８ページ）で１つの一括消去ブロックを構成しており、書き込みもこのブロック単位で行う。従って、書き込み動作には常に８ページの書き込みが伴う。
【０２６８】
　図１００に示した回路では、ＲＯＭ１２１が出力する一括ベリファイ信号ＶＦＹを用いて次のページの書き込み動作を行う。すなわち、１ページ目のデータをラッチした後はＲＯＭ内部で書き込み及びベリファイが繰り返えされる。１ページ分のすべてのデータの書き込みが完了すると、１ページ目についての一括ベリファイ信号ＶＦＹが出力される。この一括ベリファイ信号ＶＦＹを制御回路１２２が検知し、２ページ目のデータをＲＯＭ１２１にラッチする。続いて、ＲＯＭ内部で２ページ目についての書き込み及びベリファイが繰り返され、１ページ分のすべてのデータの書き込みが完了すると、２ページ目についての一括ベリファイ信号ＶＦＹが出力される。３ページ目以降についても上記と同様にして書き込まれる。
【０２６９】
　例えば、上述のような８ＮＡＮＤ型のメモリセルを有するＮＡＮＤ型ＥＥＰＲＯＭでは、一回の書き込み動作において、制御回路１２２は８ページ分のデータ転送を行い、２ページ目以降は前ページにおける一括ベリファイ信号を検知した後ページデータの転送を行う。
【０２７０】
　以上に説明したように、本実施例によると、制御回路１２２からＲＯＭ１２１への書き込みページデータの転送を、一括ベリファイ信号に基づいて行うことができる。従来は、外部に比較回路やベリファイ読み出し用の大容量のレジスタを設けていたが、本実施例ではそのようにする必要がない。これにより、制御回路１２２の構成は非常に簡単になる。
【０２７１】
　上述の実施例は、制御回路１２２に対してＲＯＭ１２１が一つである構成を示す。これに対し、一括ベリファイ信号を出力するＲＯＭを複数個有するメモリシステムを構成することもできる。図１０１は、この一例を示す。このシステムは、上述したような一括ベリファイ機能を有する。このシステムは、ＲＯＭ１０１〜１０３とＲＡＭ１０４と制御回路１０５とを有する。ＲＯＭ１０１〜１０３は、書き込みが終了すると一括ベリファイ信号を出力する。ＲＡＭ１０４は、図示しないＣＰＵからのアクセスに対してキャッシュメモリとして用いられる。制御回路１０５は、ＲＡＭ１０４とＲＯＭ１０１〜１０３との間のデータ転送の制御を行う。ＲＡＭ１０４とＲＯＭ１０１〜１０３との間におけるデータ転送は、データバス１０６を介して行われる。ＲＯＭ１０１〜１０３が主記憶を構成し、キャッシュメモリとして用いられるＲＡＭ１０４よりははるかに大容量である。マッピング方法は、一般的な４ウェイが望ましいが、ダイレクトマッピングやフルアソシェイティブ等、既存の種々の態様のマッピングが可能である。キャッシュメモリにおけるブロックは、一括消去ブロックと同じ容量とする。
【０２７２】
　次に、一括消去ブロックが１６Ｋで、マッピング方法が４ウェイの時を説明する。この時、ＳＲＡＭは６４Ｋビットであり、４個の１６Ｋのブロックを有する。これらのブロックは、ＲＯＭ内の一括消去ブロックのコピーデータを一時的に保持している。例えば、ＲＯＭ内の２、３、４、５番目の一括消去ブロック中のデータについてアクセスが行われているとする。このときには、これらのデータのコピーデータが、ＳＲＡＭ内の４個のブロックに、一時的に、保持されている。
【０２７３】
　図示しないＣＰＵから、例えば３番目の一括消去ブロックに対して書き込み及び消去動作が行われるとする。この際には、すでにそのデータのコピーがＳＲＡＭ内に存在する（ヒットする）ため、ＲＯＭに対して直接アクセスすることはなく、高速なＳＲＡＭのみを介してデータのやりとりが行われる。
【０２７４】
　図示しないＣＰＵから、例えば６番目の一括消去ブロックに対して読み出しが行われるとする。この際には、当該一括消去ブロックのデータのコピーは、ＳＲＡＭには存在しない（ミスヒットする）ため、ＲＯＭから読み出したデータをＳＲＡＭに転送する必要がある。しかし、これに先立って、ＳＲＡＭ内のブロックの一つをＲＯＭに書き戻しておく必要がある。例えば、２番目の一括消去ブロックのデータをＳＲＡＭからＲＯＭに書き戻す際には、ＲＯＭの当該一括消去ブロックの全データを消去し、引き続いてＳＲＡＭのブロックデータを順次転送して書き込みを行う。この書き戻し動作において、消去ベリフィイ信号を用いることができる。この消去ベリファイ信号（消去動作が完了したことを示す）に応答して、ＳＲＡＭから、１ページ目のデータが転送される。続いて、２ページ目以降のデータの転送は、上述したように、前ページの一括ベリファイ信号を検知することにより行うことができる。上述した８ＮＡＮＤ型ＥＥＰＲＯＭでは、８ページ分のデータ転送が必要である。続いて、６番目の一括消去ブロックの全データを、ＳＲＡＭの空いたブロックにコピーし、当該アドレスにおけるデータをＳＲＡＭがＣＰＵに出力する。
【０２７５】
　図示しないＣＰＵから、例えば７番目の一括消去ブロックに対して書き込みが行われるとする。この際には、当該一括消去ブロックのデータのコピーは、ＳＲＡＭには存在しない（ミスヒットする）。従って、上述の書き戻し動作と読み出し動作を、ＳＲＡＭへの書き込み動作に先立って、行う必要がある。例えば、３番目の一括消去ブロックのデータを、ＳＲＡＭからＲＯＭに書き戻す際には、ＲＯＭの当該一括消去ブロックの全データを消去し、引き続いてＳＲＡＭのブロックデータを順次転送して書き込みを行う。この書き戻し動作において、消去ベリファイ信号を用いることができる。この消去ベリファイ信号（消去動作が完了したことを示す）に応答して、ＳＲＡＭから、１ページ目のデータが転送される。続いて、２ページ目以降のデータの転送は、上述したように、前ページの一括ベリファイ信号を検知することにより行うことができる。上述した８ＮＡＮＤ型ＥＥＰＲＯＭでは、８ページ分のデータ転送が必要である。続いて、７番目の一括消去ブロックの全データをＳＲＡＭの空いたブロックにコピーし、さらに、ＣＰＵから書き込みの要求があったデータをＳＲＡＭ中の対応する領域に書き込む。
【０２７６】
　このように、一括ベリファイ信号を出力するＲＯＭは、ＳＲＡＭ等と組み合わせて容易にキャッシュシステムを構成することができる。ミスヒット時のデータ書き戻しに一括ベリファイ信号を用いるためである。
【０２７７】
　続いて、一括ベリファイ機能を有するメモリシステムの第３の実施例を説明する。図１０２はその回路例を示している。すなわち、一括ベリファイ機能を有するＲＯＭ１１１、１１２と、書き込みを制御し少なくとも内部に書き込みデータレジスタを有する制御回路１１３とを有する。この制御回路１１３は、ＣＰＵを用いて構成しても良いし、ゲートアレーやＳＲＡＭを含む複数チップで構成しても良い。また、ＲＯＭ１１１及びＲＯＭ１１２は１チップ上に混載しても良いし、複数チップで構成しても良い。
【０２７８】
　連続したページデータはＲＯＭ１１１とＲＯＭ１１２とに交互に格納される。例えば１、３、５、…、（２Ｎ−１）ページ目は、ＲＯＭ１１１に、２、４、６、…、（２Ｎ）ページ目はＲＯＭ１１２に格納される。上述したように、書き込みモードにおける動作は、チップ内部の書き込みデータラッチにページデータを転送する動作と、これに続く書き込み及びベリファイ動作とからなる。このシステムでは、書き込みデータをＲＯＭ１１１に転送している間に、ＲＯＭ１１２の書き込み及びベリファイを行う。さらに、複数のページにわたるデータを書き込む際は、ＲＯＭ１１１とＲＯＭ１１２とに、交互にデータ転送を行う。
【０２７９】
　図１０１に示した回路構成においても、書き込みデータ転送の制御はＲＯＭが出力する一括ベリファイ信号を用いる。はじめに、１ページ目のデータがＲＯＭ１１１に転送され、続いてＲＯＭ１１１について書き込み及びベリファイ動作が行われる。ＲＯＭ１１１に書き込み及びベリファイ動作が行われている間に、制御回路１１３は、ＲＯＭ１１２に２ページ目のデータを転送し引き続いて書き込み及びベリファイ動作を行う。ＲＯＭ１１１について１ページ目の書き込みが終了すると一括ベリファイ信号が出力される。これに応じて、制御回路１１３は、３ページ目のデータをＲＯＭ１１１に転送し引き続いて書き込み及びベリファイ動作を行う。４ページ目以降のページ書き込みについても、上記と同様である。
【０２８０】
　以上説明したように、第３の実施例によると、制御回路１１３からＲＯＭ１１１、１１２への書き込みページデータの転送を、一括ベリファイ信号をもとに行うことができる。本実施例は、従来と異なり、外部に比較回路やベリファイ読み出し用の大容量のレジスタを設ける必要がなく、制御回路１１２の構成は非常に簡単になる。また、書き込みを交互に行うため、書き込み時間が高速になる。ただし、一括消去ブロックの大きさは２倍になる。
【図面の簡単な説明】
【０２８１】
【図１】第１の実施例に係わるＮＡＮＤセル型ＥＥＰＲＯＭの構成を示すブロック図。
【図２】第１の実施例におけるＮＡＮＤセル構成を示す平面図と等価回路図。
【図３】図２（ａ）のＡ−Ａ′及びＢ−Ｂ′断面図。
【図４】第１の実施例におけるメモリセルアレイの等価回路図。
【図５】第１の実施例におけるビット線制御回路部の構成を示す図。
【図６】第１の実施例におけるビット線制御回路部と他の回路との接続関係を示す図。
【図７】第１の実施例におけるデータ書込み／書込み確認動作を示すタイミング図。
【図８】第２の実施例に係わるＮＡＮＤセル型ＥＥＰＲＯＭの構成を示すブロック図。
【図９】第２の実施例におけるビット線制御回路の構成を示す図。
【図１０】第２の実施例におけるプログラム終了検知回路の構成を示す図。
【図１１】第２の実施例における書込み確認動作を示すタイミング図。
【図１２】データラッチ部とプログラム終了検知回路の別の実施例を示す図。
【図１３】データラッチ部とプログラム終了検知回路の別の実施例を示す図。
【図１４】ＮＯＲ型フラッシュＥＥＰＲＯＭについての実施例の回路図。
【図１５】しきい値分布図。
【図１６】データラッチ部とプログラム終了検知回路の別の実施例を示す図。
【図１７】データラッチ部とプログラム終了検知回路の別の実施例を示す図。
【図１８】第３の実施例における書込み／書込み確認時のアルゴリズムを示す図。
【図１９】データラッチ兼センスアンプと書込み終了検知用トランジスタを模式的に示す図。
【図２０】図１９の書込み終了検知用トランジスタとヒューズ用不揮発性メモリの構成を示す図。
【図２１】図２０の構成とは別の構成例を示す図。
【図２２】図１９の回路を用いた場合のプログラムアルゴリズムを示す図。
【図２３】図１９とは別の回路構成を示す図。
【図２４】第４の実施例におけるビット線制御回路の構成を示す図。
【図２５】第３，４の実施例におけるビット線制御回路の他の構成例を示す図。
【図２６】３，４の実施例におけるビット線制御回路の他の構成例を示す図。
【図２７】３，４の実施例におけるビット線制御回路の他の構成例を示す図。
【図２８】第３の実施例におけるビット線制御回路のデータラッチ部に一括して同一のデータをラッチさせる動作のタイミングを示す図。
【図２９】第４の実施例におけるビット線制御回路のデータラッチ部に一括して同一のデータをラッチさせる動作のタイミングを示す図。
【図３０】第３の実施例の変形例で、１つのＣＭＯＳＦＦを隣り合う２本のビット線で共有した回路構成を示す図。
【図３１】図３０の構成の他の例を示す図。
【図３２】第５の実施例に係わるＮＡＮＤセル型ＥＥＰＲＯＭの構成を示す図。
【図３３】メモリセルアイレイ及びその周辺回路の具体的な構成を示す図。
【図３４】第５の実施例における書込み時の動作を示すタイミング図。
【図３５】第５の実施例における読出し動作を示すタイミング図。
【図３６】第６の実施例でのメモリセルアレイ及びその周辺回路の具体的構成を示す図。
【図３７】第６の実施例のおける書込み動作を示すタイミング図。
【図３８】第６の実施例における読出し動作を示すタイミング図。
【図３９】第３３に示される実施例の変形例を示す図。
【図４０】図３６に示される実施例の変形例を示す図。
【図４１】図３６に示される実施例の変形例を示す図。
【図４２】図３６に示される実施例におけるビット線の置き換えを模式的に示す図。
【図４３】図３６に示される実施例におけるビット線の置き換えを模式的に示す図。
【図４４】データラッチ兼センスアンプを４本のビット線で共有した実施例を示す図。
【図４５】図４４の実施例におけるビット線の置き換えを模式的に示す図。
【図４６】図４４の実施例におけるビット線の置き換えを模式的に示す図。
【図４７】図３９に示される実施例の変形例を示す図。
【図４８】図４０に示される実施例の変形例を示す図。
【図４９】図４１に示される実施例の変形例を示す図。
【図５０】本発明に係る不揮発性半導体メモリ装置の第７実施例を示すブロック図である。
【図５１】第７実施例におけるセンスアンプ兼ランチ回路の回路図である。
【図５２】第７実施例における消去動作を説明するためのフローチャートである。
【図５３】本発明の第８実施例を示すブロック図である。
【図５４】第８実施例におけるセンスアンプ兼ラッチ回路の回路図である。
【図５５】本発明の第９実施例におけるセンスアンプ兼ラッチ回路の回路図である。
【図５６】本発明の第１０実施例におけるセンスアンプ兼ラッチ回路の回路図である。
【図５７】本発明の第１１実施例の全体構成図。
【図５８】図５７のタイミングチャート。
【図５９】図５７のリードマージンの説明図。
【図６０】図５７の消去（イレーズ）フローチャート。
【図６１】イレーズフローチャート。
【図６２】図５７の出力回路の詳細例。
【図６３】従来のメモリの部分図。
【図６４】プログラムベリファイ時のタイミングチャート。
【図６５】書き込みデータＷＤとベリファイデータＶＤの組み合わせを示す図。
【図６６】ベリファイ後の電位レベルの分布及びビットラインのしきい値依存性を示す図。
【図６７】プログラムベリファイのタイミングチャート。
【図６８】書き込みデータＷＤとベリファイデータＶＤの組み合わせを示す図。
【図６９】ベリファイ後の電位レベルの分布及びビットラインのしきい値依存性を示す図。
【図７０】再書き込みトランジスタの他の例。
【図７１】本発明の実施に使用される一般的回路図。
【図７２】本発明の実施に使用される一般的回路図。
【図７３】本発明の実施に使用される一般的回路図。
【図７４】本発明の実施に使用される一般的回路図。
【図７５】本発明の実施に使用される一般的回路図。
【図７６】本発明の実施に使用される一般的回路図。
【図７７】本発明の実施に使用される一般的回路図。
【図７８】実施例としてのチップ回路図及びしきい値分布図。
【図７９】実施例としてのチップの他の回路図。
【図８０】ベリファイレベル設回路。
【図８１】Ｖwell回路の詳細例。
【図８２】第１１実施例（図５５）の変形例。
【図８３】図８２の動作説明のための図表。
【図８４】オートプログラムの概念図。
【図８５】図８４のフローチャート。
【図８６】プログラム動作後のベリファイ動作のタイミングチャート。
【図８７】ＥＣＣ回路を有する実施例のフローチャート。
【図８８】外部制御モードのタイミングチャート１。
【図８９】外部制御モードのタイミングチャート２。
【図９０】外部制御モードのタイミングチャート３。
【図９１】外部制御モードのタイミングチャート４。
【図９２】ＥＥＦＲＯＭの平面パターン図。
【図９３】図９２のＢ−Ｂ線断面図。
【図９４】図９２のＣ−Ｃ線断面図。
【図９５】４ビットフラッシュＥＥＰＲＯＭのブロック図。
【図９６】図９５の一部詳細図。
【図９７】プログラムベリファイ時のタイミングチャート。
【図９８】イレーズベリファイ時のタイミングチャート。
【図９９】さらに異なる実施例の回路図。
【図１００】実施例としての記憶システム。
【図１０１】異なる実施例としての記憶システム。
【図１０２】さらに異なる実施例としての記憶システム。
【図１】
2004095168.tif 000003
【図２】
2004095168.tif 000004
【図３】
2004095168.tif 000005
【図４】
2004095168.tif 000006
【図５】
2004095168.tif 000007
【図６】
2004095168.tif 000008
【図７】
2004095168.tif 000009
【図８】
2004095168.tif 000010
【図９】
2004095168.tif 000011
【図１０】
2004095168.tif 000012
【図１１】
2004095168.tif 000013
【図１２】
2004095168.tif 000014
【図１３】
2004095168.tif 000015
【図１４】
2004095168.tif 000016
【図１５】
2004095168.tif 000017
【図１６】
2004095168.tif 000018
【図１７】
2004095168.tif 000019
【図１８】
2004095168.tif 000020
【図１９】
2004095168.tif 000021
【図２０】
2004095168.tif 000022
【図２１】
2004095168.tif 000023
【図２２】
2004095168.tif 000024
【図２３】
2004095168.tif 000025
【図２４】
2004095168.tif 000026
【図２５】
2004095168.tif 000027
【図２６】
2004095168.tif 000028
【図２７】
2004095168.tif 000029
【図２８】
2004095168.tif 000030
【図２９】
2004095168.tif 000031
【図３０】
2004095168.tif 000032
【図３１】
2004095168.tif 000033
【図３２】
2004095168.tif 000034
【図３３】
2004095168.tif 000035
【図３４】
2004095168.tif 000036
【図３５】
2004095168.tif 000037
【図３６】
2004095168.tif 000038
【図３７】
2004095168.tif 000039
【図３８】
2004095168.tif 000040
【図３９】
2004095168.tif 000041
【図４０】
2004095168.tif 000042
【図４１】
2004095168.tif 000043
【図４２】
2004095168.tif 000044
【図４３】
2004095168.tif 000045
【図４４】
2004095168.tif 000046
【図４５】
2004095168.tif 000047
【図４６】
2004095168.tif 000048
【図４７】
2004095168.tif 000049
【図４８】
2004095168.tif 000050
【図４９】
2004095168.tif 000051
【図５０】
2004095168.tif 000052
【図５１】
2004095168.tif 000053
【図５２】
2004095168.tif 000054
【図５３】
2004095168.tif 000055
【図５４】
2004095168.tif 000056
【図５５】
2004095168.tif 000057
【図５６】
2004095168.tif 000058
【図５７】
2004095168.tif 000059
【図５８】
2004095168.tif 000060
【図５９】
2004095168.tif 000061
【図６０】
2004095168.tif 000062
【図６１】
2004095168.tif 000063
【図６２】
2004095168.tif 000064
【図６３】
2004095168.tif 000065
【図６４】
2004095168.tif 000066
【図６５】
2004095168.tif 000067
【図６６】
2004095168.tif 000068
【図６７】
2004095168.tif 000069
【図６８】
2004095168.tif 000070
【図６９】
2004095168.tif 000071
【図７０】
2004095168.tif 000072
【図７１】
2004095168.tif 000073
【図７２】
2004095168.tif 000074
【図７３】
2004095168.tif 000075
【図７４】
2004095168.tif 000076
【図７５】
2004095168.tif 000077
【図７６】
2004095168.tif 000078
【図７７】
2004095168.tif 000079
【図７８】
2004095168.tif 000080
【図７９】
2004095168.tif 000081
【図８０】
2004095168.tif 000082
【図８１】
2004095168.tif 000083
【図８２】
2004095168.tif 000084
【図８３】
2004095168.tif 000085
【図８４】
2004095168.tif 000086
【図８５】
2004095168.tif 000087
【図８６】
2004095168.tif 000088
【図８７】
2004095168.tif 000089
【図８８】
2004095168.tif 000090
【図８９】
2004095168.tif 000091
【図９０】
2004095168.tif 000092
【図９１】
2004095168.tif 000093
【図９２】
2004095168.tif 000094
【図９３】
2004095168.tif 000095
【図９４】
2004095168.tif 000096
【図９５】
2004095168.tif 000097
【図９６】
2004095168.tif 000098
【図９７】
2004095168.tif 000099
【図９８】
2004095168.tif 000100
【図９９】
2004095168.tif 000101
【図１００】
2004095168.tif 000102
【図１０１】
2004095168.tif 000103
【図１０２】
2004095168.tif 000104