以下、図面を参照して、この発明の実施の形態を説明する。
<実施の形態1>
図1は、この発明の第1の実施の形態に係る多値記憶NAND型EEPROMの構成を示す構成図である。
図1に示すように、第1の実施の形態に係る多値記憶NAND型EEPROMは、オープンビット型と呼ばれる構成を有している。オープンビット型の多値記憶NAND型EEPROMは、メモリセルがマトリクス状に配置されて構成されるメモリセルアレイ1A、1Bそれぞれに対して設けられたロウ系回路2A、2Bと、メモリセルアレイ1A、1Bそれぞれで共通に使用されるカラム系回路3**とを有している。
ロウ系回路2A、2Bには、アドレス入力回路(アドレスバッファ)4から出力されたアドレス信号を受け、受けたアドレス信号に基いて、メモリセルアレイのロウを選択するロウデコーダと、ロウデコーダの出力に基いて、メモリセルアレイのワード線を駆動するワード線駆動回路が含まれている。NAND型EEPROMの場合、ワード線は、選択ゲートSG(SGA、SGB)および制御ゲートCG(CGA、CGB)を指す。そして、ワード線駆動回路は、制御ゲート/選択ゲート駆動回路と読み替えられる。
また、メモリセルアレイ1A、1Bそれぞれで共通に使用されるカラム系回路3**には、アドレスバッファ4から出力されたアドレス信号を受け、受けたアドレス信号に基いて、メモリセルアレイのカラムを選択するカラムデコーダと、カラムデコーダの出力に基いて、メモリセルアレイのカラムを選択するカラム選択線を駆動するカラム選択線駆動回路とが含まれている。
さらに、カラム系回路3**には、メモリセルへの書き込みデータを一時的に保持したり、メモリセルのデータを読み出したりするためのデータ回路(ビット線制御回路)が含まれている。
ビット線制御回路は、データ入出力線IOを介して、データ入出力回路(データ入出力バッファ)5に接続されている。また、ビット線制御回路は、ビット線BLaを介して、メモリセルアレイ1Aのメモリセルに、ビット線BLbを介して、メモリセルアレイ1Bのメモリセルにそれぞれ接続されている。
ビット線制御回路は、データを書き込むとき、書き込みデータを、データ入出力バッファ5から受け、受けた書き込みデータをメモリセルへ入力する。また、ビット線制御回路は、データを読み出すとき、読み出しデータを、メモリセルから受け、受けた読み出しデータをデータ入出力バッファ5へ出力する。
データ入出力バッファ5は、データ入出力制御を行うもので、EEPROMの外部から入力された書き込みデータをメモリコアへ導いたり、メモリコアから読み出された読み出しデータを、EEPROMの外部へ出力したりする。
書き込み終了検知回路18は、ビット線制御回路の出力に基いて、データ書き込みが終了したか否かを検知する。
図2は、図1に示すメモリセルアレイ、およびカラム系回路の構成を示す構成図である。図3は、図2に示すメモリセルからデータを読み出すときを示す図で、(a)図は電圧の入力状態を示す図、(b)図は電圧の入力波形と、ビット線に現れる出力波形とを示す図である。
図2に示すように、メモリセルアレイ1A、1Bにはそれぞれ、メモリセルMCがマトリクス状に配置されている。
また、カラム系回路3**には、m個のデータ回路(ビット線制御回路)6**が含まれている。ビット線制御回路6**は、1本のビット線BLa、および1本のビット線BLbに接続されている。
また、図3(a)に示すように、NAND型EEPROMでは、1つのセルMCには、互いに直列に接続された複数のメモリセルトランジスタM1〜M4が含まれ、NAND型のセルMCを構成している。セルMCの一端は、選択トランジスタS1を介してビット線BLに接続され、その他端は、選択トランジスタS2を介して、ソース線Vsに接続される。制御ゲートCGを共有するメモリセルトランジスタMのグループは、“ページ”と呼ばれる単位を形成する。データの書き込みおよび読み出しは、“ページ”で同時に行われる。また、4本の制御ゲートCG1〜CG4に接続されるメモリセルトランジスタMのグループは、“ブロック”と呼ばれる単位を形成する。“ページ”、および“ブロック”はそれぞれ、制御ゲート/選択ゲート駆動回路によって選択される。
メモリセルトランジスタMは、多値のデータは、しきい値のレベルにより記憶する。そして、この発明に係る装置では、しきい値のレベルを、図3(a)および(b)に示されるようにして読み出す。ここでは制御ゲートCG2を有するメモリセルトランジスタM2が選択されている。図3(a)に見られるように電圧を各部に印加し、ビット線BLはフローティングにする。ビット線BLを前もって0Vにリセットしておくと、ビット線BLは共通ソース線VsによってNANDセルを通して充電される。この充電されたビット線BLの電位が選択されたメモリセルM2のしきい値によって決まるように、各選択ゲート、制御ゲート電圧は制御される。
この例では、選択ゲートSG1、2、制御ゲートCG1、CG3〜4を6Vに、選択された制御ゲートCG2を2Vに、共通ソース線Vsを6Vにする。各部の電圧波形は図3(b)に示されている。例えばビット線BLの電位が0Vであればしきい値は2V以上、ビット線電位が3.5Vであればしきい値は−1.5V以下である。ただし以下の実施の形態では、説明を簡略化するため、しきい値という表現は、バックバイアスを考慮したものとする。
消去動作によってメモリセルの浮遊ゲートから電子が放出された後、書き込みデータに従う書き込み動作によって電子が浮遊ゲートに注入される。
図4は、ビット線に現れる出力電圧と、メモリセルの数とを関係を示す図である。
1つのメモリセルに3つの状態(データ”0”、”1”、”2”)を持たせる場合、例えば図4の様に読みだし時のビット線出力電圧が3.5〜4.5Vとなる状態(しきい値で約−2.5V〜−1.5V)をデータ”0”(消去状態)、ビット線出力電圧が1.5〜2.5Vとなる状態(しきい値で約−0.5V〜0.5V)をデータ”1”、ビット線出力電圧が0〜0.5Vとなる状態(しきい値で約1.5V〜2.5V)をデータ”2”とすればよい。
図5は、図2に示すデータ回路の回路図である。図5に示すデータ回路は、3値記憶を例に構成されている。
図5に示すように、nチャネルMOSトランジスタQn21、Qn22、Qn23とpチャネルMOSトランジスタQp9、Qp10、Qp11により構成されるフリップフロップFF1と、nチャネルMOSトランジスタQn29、Qn30、Qn31とpチャネルMOSトランジスタQp16、Qp17、Qp18により構成されるFF2とには、書き込み/読み出しデータがラッチされる。また、これらはセンスアンプとしても動作する。
フリップフロップFF1は「“0”書き込みをするか、あるいは“1”書き込みまたは“2”書き込みをするか」を書き込みデータ情報としてラッチし、メモリセルが「“0”の情報を保持しているか、あるいは“1”の情報を保持しているか、または“2”の情報を保持しているか」を読み出しデータ情報としてセンスしラッチする。フリップフロップFF2は「“1”書き込みをするか、または“2”書き込みをするか」を書き込みデータ情報としてラッチし、メモリセルが「“1”の情報を保持しているか、あるいは“2”の情報を保持しているか」を読み出しデータ情報としてセンスしラッチする。
データ入出力線IOA、IOBとフリップフロップFF1は、nチャネルMOSトランジスタQn28、Qn27を介して接続される。データ入出力線IOC、IODとフリップフロップFF2は、nチャネルMOSトランジスタQn35、Qn36を介して接続される。データ入出力線IOA、IOB、IOC、IODは、図1中のデータ入出力バッファ5にも接続される。
nチャネルMOSトランジスタQn27、Qn28、Qn35、Qn36のゲートは、NAND論理回路G2とインバータI4で構成されるカラムアドレスデコーダの出力に接続される。nチャネルMOSトランジスタQn26、Qn34は、それぞれフリップフロップFF1、FF2を信号ECH1、ECH2が“H”となってイコライズする。nチャネルMOSトランジスタQn24、Qn32は、フリップフロップFF1、FF2とMOSキャパシタQd1の接続を制御する。nチャネルMOSトランジスタQn25、Qn33は、フリップフロップFF1、FF2とMOSキャパシタQd2の接続を制御する。
pチャネルMOSトランジスタQp12、Qp13で構成される回路は、活性化信号VRFYBAによって、フリップフロップFF1のデータに応じて、MOSキャパシタQd1のゲート電圧を変更する。pチャネルMOSトランジスタQp14、Qp15で構成される回路は、活性化信号VRFYBBによって、フリップフロップFF1のデータに応じて、MOSキャパシタQd2のゲート電圧を変更する。nチャネルMOSトランジスタQn1、Qn2で構成される回路は、活性化信号VRFYBA1によって、フリップフロップFF2のデータに応じて、MOSキャパシタQd1のゲート電圧を変更する。nチャネルMOSトランジスタQn3、Qn4で構成される回路は、活性化信号VRFYBB1によって、フリップフロップFF2のデータに応じて、MOSキャパシタQd2のゲート電圧を変更する。
MOSキャパシタQd1、Qd2は、ディプリーション型nチャネルMOSトランジスタで構成され、ビット線容量より十分小さくされる。nチャネルMOSトランジスタQn37は、信号PREAによってMOSキャパシタQd1を電圧VAに充電する。nチャネルMOSトランジスタQn38は、信号PREBによってMOSキャパシタQd2を電圧VBに充電する。nチャネルMOSトランジスタQn39、Qn40は、信号BLCA、BLCBによって、データ回路3とビット線BLa、BLbの接続をそれぞれ制御する。nチャネルMOSトランジスタQn37、Qn38で構成される回路はビット線電圧制御回路を兼ねる。pチャネルMOSトランジスタQp12、Qp13で構成される回路、pチャネルMOSトランジスタQp14、Qp15で構成される回路、nチャネルMOSトランジスタQn1、Qn2で構成される回路、およびnチャネルMOSトランジスタQn3、Qn4で構成される回路は、ビット線電圧制御回路でもある。
次に、このように構成されたEEPROMの動作を、動作波形図に従って説明する。以下では制御ゲートCG2Aが選択されている場合を示す。
<読み出し動作>
図6は、読み出し動作を示す動作波形図である。
図6に示すように、まず、時刻t1Rに、制御ゲート・選択ゲート駆動回路によって選択されたブロックの選択された制御ゲートCG2Aは2V、非選択制御ゲートCG1A、CG3A、CG4Aと選択ゲートSG1A、SG2Aは6Vにされる。メモリセルのソース電位は6Vにされる。メモリセルが“0”の場合にはビット線BLaは3.5V以上に、“1”の場合にはビット線BLaは1.5V以上2.5V以下に、“2”の場合には0.5V以下になる。ダミービット線BLbはVBから3Vに充電される。nチャネルMOSトランジスタQn40のしきい値分の電圧降下分が問題になるときは、信号BLCAを昇圧すればよい。
時刻t2RにキャパシタQd1、Qd2のノードN1、N2が1.5Vにされた後フローティングにされる。時刻t3RにBLCA、BLCBがVCC(例えば5V)になり、ビット線BLa、BLbの電位がN1、N2に転送される。その後、再度、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。信号SAN1、SAP1がそれぞれ“L”、“H”となってフリップフロップFF1が非活性化され、信号ECH1が“H”となってイコライズされる。この後、信号RV1A、RV1Bが“H”となる。nチャネルMOSトランジスタQn24、Qn25のしきい値分の電圧降下分が問題になるときは、信号RV1A、RV1Bを昇圧すればよい。時刻t4Rに再度、信号SAN1、SAP1がそれぞれ“H”、“L”となることで、ノードN1、N2の電圧がセンスされラッチされる。これで、「メモリセルのデータが“0”或いは、“1”または“2”か」がフリップフロップFF1によってセンスされ、その情報はラッチされる。
次に、メモリセルが“1”であるかまたは“2”であるかがセンスされる。
時刻t5Rにダミービット線BLbがVBから1Vに充電される。時刻t6RにキャパシタQd1、Qd2のノードN1、N2が1.5Vにされた後フローティングにされる。再度、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。信号SAN2、SAP2がそれぞれ“L”、“H”となってフリップフロップFF2が非活性化され、信号ECH2が“H”となってイコライズされる。この後、信号RV2A、RV2Bが“H”となる。時刻t7Rに再度、信号SAN2、SAP2がそれぞれ“H”、“L”となることで、ノードN1の電圧がセンスされラッチされる。これで、メモリセルのデータが“1”であるか“2”であるかがフリップフロップFF2によってセンスされ、その情報はラッチされる。
図7は、フリップフロップFF1、FF2がセンスし、ラッチする読み出しデータを示す図である。
この時のフリップフロップFF1、FF2のデータは、図7のようになり、データ入出力線IOA、IOB、IOC、IODに読み出しデータが出力される。
チップ外部への出力データは、入出力バッファ5で、データ入力線IOA、IOB、IOC、IODに出力された信号をもとに変換したものもよい。
<書き込み動作>
書き込み動作前に、入力された2ビット分のデータは、データ入出力バッファ4で変換されて、データ回路6**に入力される。
図8は、データ回路6**に入力され、フリップフロップFF1、FF2がラッチする書き込みデータを示す図である。4値データとデータ入出力線IOA、IOB、IOC、IODの関係は図8のとおりである。
変換された3値データは、カラム活性化信号CENBが“H”で、アドレス信号で指定されたカラム番地のデータ回路に転送される。
図9は、書き込み動作を示す動作波形図である。
時刻t1wに、電圧VAがビット線書き込み制御電圧1Vとなってビット線BLaが1Vとされる。nチャネルMOSトランジスタQn39のしきい値分の電圧降下分が問題になるときは、信号BLCAを昇圧すればよい。続いて、信号PREが“L”となってビット線がフローティングにされる。次に、時刻t2wに信号RV2Aが1.5Vとされる。これによって、データ“2”が保持されているカラムではビット線制御電圧0Vがビット線に印加される。nチャネルMOSトランジスタQn32のしきい値を1Vとすると、“0”または“1”書き込み時にはnチャネルMOSトランジスタQn32は“OFF”、“2”書き込み時には“ON”となる。その後、時刻t3wにVRFYBAが0Vになり、データ“0”が保持されているデータ回路からはビット線書き込み制御電圧VCC(例えば5V)がビット線に出力される。
その結果、“0”書き込みするビット線はVCC、“1”書き込みするビット線は1V、“2”書き込みするビット線は0Vになる。
時刻t1wに制御ゲート・選択ゲート駆動回路によって、選択されたブロックの選択ゲートSG1A、制御ゲートCG1A〜CG4AがVCCとなる。選択ゲートSG2Aは0Vである。次に、選択された制御ゲートCG2Aが高電圧VPP(例えば20V)、非選択制御ゲートCG1A、CG3A、CG4AがVM(例えば10V)となる。データ“2”が保持されているデータ回路に対応するメモリセルでは、0Vのチャネル電位と制御ゲートのVPPの電位差によって、浮遊ゲートに電子が注入されしきい値が上昇する。データ“1”が保持されているデータ回路に対応するメモリセルでは、1Vのチャネル電位と制御ゲートのVPPの電位差によって、浮遊ゲートに電子が注入されしきい値が上昇する。チャネル電位を1Vにしているのは、“2”データ書き込みより電子の注入量が少なくてよいからである。データ“0”が保持されているデータ回路に対応するメモリセルでは、チャネル電位と制御ゲートのVPPの電位差が小さいため、実効的には浮遊ゲートに電子は注入されない。よって、メモリセルのしきい値は変動しない。書き込み動作中、信号SAN1、SAN2、VRFYBB、PREB、BLCBは“H”、信号SAP1、SAP2、RV1A、RV1B、RV2B、ECH1、ECH2は“L”、電圧VBは0Vである。
<ベリファイ読み出し動作>
図10は、ベリファイ読み出し動作を示す動作波形図である。
まず、時刻t1RVに、制御ゲート・選択ゲート駆動回路によって選択されたブロックの選択された制御ゲートCG2Aは2V、非選択制御ゲートCG1A、CG3A、CG4Aと選択ゲートSG1A、SG2Aは6Vにされる。メモリセルのソース電位は6Vにされる。“0”書き込みの場合にはビット線BLaは3.5V以上になる。“1”書き込み十分の場合にはビット線BLaは2.5V以下に、“1”書き込み不十分の場合には1.5V以上になる。“2”書き込み十分の場合には0.5V以下に、“2”書き込み不十分の場合には0.5V以上になる。ダミービット線BLbはVBから2.5Vに充電される。ダミービット線BLbの電位を“1”読み出し時の3Vよりも0.5Vだけ小さくしているのは、メモリセルを十分に書き込むためである。またnチャネルMOSトランジスタQn40のしきい値分の電圧降下分が問題になるときは、信号BLCAを昇圧すればよい。
時刻t2RVにキャパシタQd1、Qd2のノードN1、N2が1.5Vにされた後フローティングにされる。そして、時刻t3RVにVRFYBB1が“H”になる。この時、図7からわかるように、ノードN6が“H”なのは“2”書き込みの場合だけである。従って“2”書き込みするダミービット線BLbはVrefから0.5Vになる。“2”書き込みのダミービット線BLbの電位を“2”読み出し時の1Vよりも0.5Vだけ小さくしているのは、メモリセルを十分に書き込むためである。“0”または“1”書き込みの場合にはN6が“L”なのでnチャネルMOSトランジスタQn4はオフし、ダミービット線BLbは2.5Vを保つ。
時刻t4RVに、BLCA、BLCBがVCC(例えば5V)になり、ビット線BLa、BLbの電位がN1、N2に転送される。その後、再度、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。
時刻t5RVにRV1Aが1.5Vになる。これによって、データ“0”書き込みするカラムではN1が接地される。nチャネルMOSトランジスタQn24のしきい値を1Vとすると、“1”または“2”書き込み時にはnチャネルMOSトランジスタQn24は“OFF”、“0”書き込み時には“ON”となる。
信号SAN1、SAP1がそれぞれ“L”、“H”となってフリップフロップFF1が非活性化され、信号ECH1が“H”となってイコライズされる。この後、信号RV1A、RV1Bが“H”となる。nチャネルMOSトランジスタQn24、Qn25のしきい値分の電圧降下分が問題になるときは、信号RV1A、RV1Bを昇圧すればよい。時刻t4Rに再度、信号SAN1、SAP1がそれぞれ“H”、“L”となることで、ノードN1、N2の電圧がセンスされラッチされる。
以上のようにして、“1”書き込みデータを保持しているデータ回路では、対応するメモリセルのデータが十分“1”書き込み状態となったか否かを検出する。メモリセルのデータが“1”であれば、フリップフロップFF1でノードN1の電圧をセンスしラッチすることで書き込みデータは“1”に変更される。メモリセルのデータが“1”でなければ、フリップフロップFF1でノードN1の電圧をセンスしラッチすることで書き込みデータは“1”に保持される。また、“2”書き込みデータを保持しているデータ回路では、対応するメモリセルのデータが十分“2”書き込み状態となったか否かを検出する。メモリセルのデータが“2”であれば、フリップフロップFF1でノードN1の電圧をセンスしラッチすることで書き込みデータは“0”に変更される。メモリセルのデータが“2”でなければ、フリップフロップFF1でノードN1の電圧をセンスしラッチすることで書き込みデータは“2”に保持される。“0”書き込みデータを保持しているデータ回路の書き込みデータは変更されない。
書き込みベリファイ中、信号VRFYBBは“H”、電圧Vsは0Vとする。
“1”書き込みまたは“2”書き込みする全ての選択されたメモリセルが所望のしきい値に達していれば、データ回路のノードN4はすべて“L”になる。つまり“1”書き込みまたは“2”書き込みする選択されたすべてのメモリセルが十分に書き込まれると、すべてのデータ回路6**-0、6**-1、…、6**-m-1、6**-mのノードN3が“H”、N4が“L”になる。これを検出すると、“2”書き込みまたは“3”書き込みする全ての選択されたメモリセルが所望のしきい値に達したか否かがわかる。“2”書き込みおよび“3”書き込み終了の検出は例えば、図5のように“2”、“3”書き込み終了一括検知トランジスタQn5を用いればよい。ベリファイリード後、VRTを例えばVCCにプリチャージする。“1”または“2”書き込みが不十分なメモリセルが1つでもあると、そのデータ回路のノードN4は“H”なのでnチャネルMOSトランジスタQn5はオンし、VRTは接地される。すべての“1”または“2”書き込みするメモリセルが十分に書き込まれると、データ回路6**-0、6**-1、…、6**-m-1、6**-mのノードN4が“L”になる。その結果、全てのデータ回路内のnチャネルMOSトランジスタQn5がオフになるのでVRTはプリチャージ電位を保つ。
上記第1の実施の形態に係る多値記憶NAND型EEPROMでは、データの書き込みを行う際に、少なくとも1つのビット線電圧制御回路によって、ビット線を所望のビット線書き込み制御電圧に充電する。このような装置であると、簡単な回路構成を持つ、n(n≧2)値書き込みデータに応じたビット線書き込み制御電圧を、ビット線に印加するビット線電圧制御回路を実現することができる。
よって、カラム系回路3の回路規模が、特にセンスアンプ回路、データラッチ回路、ベリファイ回路の数が減ずることによって小さくなり、高集積化に適した不揮発性半導体記憶装置を得ることができる。
<実施の形態2>
次に、この発明の第2の実施の形態に係る多値記憶NAND型EEPROMを説明する。
第1の実施の形態に係るEEPROMは、多値のデータの数を、3値とした例を説明したが、第2の実施の形態に係るEEPROM以降は、多値のデータの数を4値とした例を説明する。
なお、第2の実施の形態に係るEEPROMは、図1、図2に示した構成と同様な構成を持つ。
図11は、4値記憶のときのメモリセルトランジスタのしきい値分布を示す図である。
EEPROMを4値記憶式とするときには、1つのメモリセルトランジスタMに、4つの書き込み状態を設ける。4つの書き込み状態はそれぞれ、メモリセルトランジスタMのしきい値電圧により、互いに区別される。
図11に示すように、電源電圧VCCが3VであるEEPROMでは、データ“0”の状態は、データ消去後の状態と同じとし、例えば負のしきい値を持たせる。また、データ“1”の状態には、例えば0.5Vから0.8Vの間のしきい値を持たせる。データ“2”の状態には、例えば1.5Vから1.8Vの間のしきい値を持たせる。データ“3”の状態には、例えば2.5Vから2.8Vの間のしきい値を持たせる。
メモリセルトランジスタMからデータを読み出すときには、制御ゲートCGに、3つの読み出し電圧VCG2R、VCG3R、VCG1Rの順で印加する。
まず、制御ゲートCGに、読み出し電圧VCG2Rを印加する。これにより、メモリセルトランジスタMが「ON」するか「OFF」するかで、記憶されているデータが「“0”、“1”」か、「“2”、“3”」かが検出される。続けて、読み出し電圧VCG3Rを印加すると、記憶されているデータが「“2”」か、「“3”」かが検出され、さらに、読み出し電圧VCG1Rを印加すると、データが「“0”」か、「“1”」かが検出される。読み出し電圧VCG1R、VCG2R、VCG3Rの一つの例は、それぞれ0V、1V、2Vである。
また、図11に示す電圧VCG1V、VCG2V、VCG3Vは、ベリファイ読み出し電圧と呼ばれるもので、データが十分に書き込まれたか否かをチェックするとき(ベリファイ動作)に使用される読み出し電圧である。ベリファイ読み出し電圧は、データを書き込んだ後に制御ゲートCGに印加される。ベリファイ読み出し電圧が制御ゲートCGに印加されたとき、メモリセルトランジスタMが「ON」するか「OFF」するかで、メモリセルトランジスタMのしきい値が、書き込まれたデータに応じた範囲までシフトされているか否かを知ることができる。これを利用して、十分な書き込みが行われたか否かをチェックする。ベリファイ読み出し電圧VCG1V、VCG2V、VCG3Vの一つの例は、それぞれ0.5V、1.5V、2.5Vである。
図12は、この発明の第2の実施の形態に係るEEPROMが有するデータ回路の回路図である。図12に示すデータ回路は、4値記憶を例に構成されている。
図12に示すように、nチャネルMOSトランジスタQn21、Qn22、Qn23とpチャネルMOSトランジスタQp9、Qp10、Qp11により構成されるフリップフロップFF1と、nチャネルMOSトランジスタQn29、Qn30、Qn31とpチャネルMOSトランジスタQp16、Qp17、Qp18により構成されるFF2とには、書き込み/読み出しデータがラッチされる。また、これらはセンスアンプとしても動作する。
フリップフロップFF1、FF2は、「“0”書き込みをするか、“1”書き込みをするか、“2”書き込みをするか、“3”書き込みをするか」を書き込みデータ情報としてラッチし、メモリセルが「“0”の情報を保持しているか、“1”の情報を保持しているか、“2”の情報を保持しているか、“3”の情報を保持しているか」を読み出しデータ情報としてセンスしラッチする。
データ入出力線IOA、IOBとフリップフロップFF1は、nチャネルMOSトランジスタQn28、Qn27を介して接続される。データ入出力線IOC、IODとフリップフロップFF2は、nチャネルMOSトランジスタQn35、Qn36を介して接続される。データ入出力線IOA、IOB、IOC、IODは、図1に示したデータ入出力バッファ5にも接続される。
nチャネルMOSトランジスタQn27、Qn28、Qn35、Qn36のゲートは、NAND論理回路G2とインバータI4で構成されるカラムアドレスデコーダの出力に接続される。nチャネルMOSトランジスタQn26、Qn34は、それぞれフリップフロップFF1、FF2を信号ECH1、ECH2が“H”となってイコライズする。nチャネルMOSトランジスタQn24、Qn32は、フリップフロップFF1、FF2とMOSキャパシタQd1の接続を制御する。nチャネルMOSトランジスタQn25、Qn33は、フリップフロップFF1、FF2とMOSキャパシタQd2の接続を制御する。
pチャネルMOSトランジスタQp12、Qp13で構成される回路は、活性化信号VRFYBAによって、フリップフロップFF1のデータに応じて、MOSキャパシタQd1のゲート電圧を変更する。pチャネルMOSトランジスタQp14、Qp15で構成される回路は、活性化信号VRFYBBによって、フリップフロップFF1のデータに応じて、MOSキャパシタQd2のゲート電圧を変更する。nチャネルMOSトランジスタQn1、Qn2で構成される回路は、活性化信号VRFYBA1によって、フリップフロップFF2のデータに応じて、MOSキャパシタQd1のゲート電圧を変更する。nチャネルMOSトランジスタQn3、Qn4で構成される回路は、活性化信号VRFYBB1によって、フリップフロップFF2のデータに応じて、MOSキャパシタQd2のゲート電圧を変更する。
MOSキャパシタQd1、Qd2は、ディプリーション型nチャネルMOSトランジスタで構成され、ビット線容量より十分小さくされる。nチャネルMOSトランジスタQn37は、信号PREAによってMOSキャパシタQd1を電圧VAに充電する。nチャネルMOSトランジスタQn38は、信号PREBによってMOSキャパシタQd2を電圧VBに充電する。nチャネルMOSトランジスタQn39、Qn40は、信号BLCA、BLCBによって、データ回路3とビット線BLa、BLbの接続をそれぞれ制御する。nチャネルMOSトランジスタQn37、Qn38で構成される回路はビット線電圧制御回路を兼ねる。pチャネルMOSトランジスタQp12、Qp13で構成される回路、pチャネルMOSトランジスタQp14、Qp15で構成される回路、nチャネルMOSトランジスタQn1、Qn2で構成される回路、およびnチャネルMOSトランジスタQn3、Qn4で構成される回路は、ビット線電圧制御回路でもある。また、フリップフロップFF2とnチャネルMOSトランジスタQn32、Qn33で構成される回路もビット線電圧制御回路を兼ねる。
次に、このように構成されたEEPROMの動作を、動作波形図に従って説明する。以下では制御ゲートCG2Aが選択されている場合を示す。
<読み出し動作>
図13は、読み出し動作を示す動作波形図である。
図13に示すように、まず、時刻t1Rに、電圧VA、VBがそれぞれ1.8V、1.5Vとなって、ビット線BLa、BLbはそれぞれ1.8V、1.5Vになる。信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離され、ビット線BLa、BLbはフローティングとなる。信号PREA、PREBが“L”となって、MOSキャパシタQd1、Qd2のゲート電極であるノードN1、N2はフローティング状態になる。続いて、時刻t2Rに制御ゲート・選択ゲート駆動回路によって選択されたブロックの選択された制御ゲートCG2Aは1V、非選択制御ゲートCG1A、CG3A、CG4Aと選択ゲートSG1A、SG2AはVCCにされる。選択されたメモリセルのしきい値が1V以下なら、ビット線電圧は1.5Vより低くなる。選択されたメモリセルのしきい値が1V以上なら、ビット線電圧は1.8Vのままとなる。この後、時刻t3Rに信号BLCA、BLCBが“H”となりビット線のデータがMOSキャパシタQd1、Qd2に転送される。その後、再度、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。この後、選択された制御ゲートが2Vにされる。信号SAN1、SAP1がそれぞれ“L”、“H”となってフリップフロップFF1が非活性化され、信号ECH1が“H”となってイコライズされる。この後、信号RV1A、RV1Bが“H”となる。時刻t4Rに再度、信号SAN1、SAP1がそれぞれ“H”、“L”となることで、ノードN1、N2の電圧がセンスされラッチされる。これで、「メモリセルのデータが“0”または“1”か、或いは“2”または“3”か」がフリップフロップFF1によってセンスされ、その情報はラッチされる。
次に、時刻t5Rに信号PREA、PREBが“H”となって、MOSキャパシタQd1、Qd2のゲート電極であるノードN1、N2はそれぞれ1.8V、1.5Vになる。信号PREA、PREBが“L”となって、MOSキャパシタQd1、Qd2のゲート電極であるノードN1、N2はフローティング状態になる。選択されたメモリセルのしきい値が2V以下なら、ビット線電圧は1.5Vより低くなる。選択されたメモリセルのしきい値が2V以上なら、ビット線電圧は1.8Vのままとなる。この後、時刻t6Rに信号BLCA、BLCBが“H”とされる。再度、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。信号SAN2、SAP2がそれぞれ“L”、“H”となってフリップフロップFF2が非活性化され、信号ECH2が“H”となってイコライズされる。この後、信号RV2A、RV2Bが“H”となる。時刻t7Rに再度、信号SAN2、SAP2がそれぞれ“H”、“L”となることで、ノードN1の電圧がセンスされラッチされる。これで、メモリセルのデータが“3”か否かがフリップフロップFF2によってセンスされ、その情報はラッチされる。
図14は、時刻t7RのときにフリップフロップFF1、FF2がセンスし、ラッチしている読み出しデータを示す図である。
最後にメモリセルに書き込まれたデータが「“0”か否か」がセンスされる。まず時刻t8Rに、ビット線BLa、BLbはそれぞれ1.8V、1.5Vに充電された後、フローティングになる。また、MOSキャパシタQd1、Qd2のゲート電極であるノードN1、N2もフローティング状態になる。続いて、時刻t9Rに制御ゲート・選択ゲート駆動回路によって選択されたブロックの選択された制御ゲートCG2Aは0V、非選択制御ゲートCG1A、CG3A、CG4Aと選択ゲートSG1A、SG2AはVCCにされる。選択されたメモリセルのしきい値が0V以下なら、ビット線電圧は1.5Vより低くなる。選択されたメモリセルのしきい値が0V以上なら、ビット線電圧は1.8Vのままとなる。この後、時刻t10Rに信号BLCA、BLCBが“H”となりビット線のデータがMOSキャパシタQd1、Qd2に転送される。その後、再度、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。MOSキャパシタのデータをセンスするに先立ち、時刻t11RにVRFYBA1がVCCになる。図14からわかるように、ノードN5が“high level”なのは“3”データの場合のみである。従って“3”データの場合のみnチャネルMOSトランジスタQn2がオンし、ノードN1は接地される。そして、信号SAN2、SAP2がそれぞれ“L”、“H”となってフリップフロップFF2が非活性化され、信号ECH2が“H”となってイコライズされる。この後、信号RV2A、RV2Bが“H”となる。時刻t12Rに再度、信号SAN2、SAP2がそれぞれ“H”、“L”となることで、ノードN1の電圧がセンスされラッチされる。これで、「メモリセルのデータが“0”か否か」がフリップフロップFF2によってセンスされ、その情報はラッチされる。
図15は、フリップフロップFF1、FF2がセンスし、ラッチする読み出しデータを示す図である。
以上の読み出し動作の結果、4値のデータが図15のようにフリップフロップFF1、FF2にラッチされる。
図中の各データのしきい値分布は次のとおりである。
データ“0”・・・しきい値:0V以下
データ“1”・・・しきい値0.5V以上0.8V以下
データ“2”・・・しきい値1.5V以上1.8V以下
データ“3”・・・しきい値2.5V以上2.8V以下
読み出し中、信号VRFYBA、VRFYBBは“H”である。また、電圧Vs(Vsa、Vsb)は0Vとする。
カラムアドレスデコーダに入力されるカラム活性化信号CENBが“H”となると、アドレス信号によって選択されたデータ回路に保持されているデータがデータ入出力線IOA、IOB、IOC、IODに出力され、データ入出力バッファ5を介してEEPROM外部へ出力される。
メモリセルに記憶されているデータ、しきい値、データ入出力線IOA、IOB、IOC、IODに読み出し後に出力されるレベルの関係は、図15のとおりである。
チップ外部への出力データは、データ入出力バッファ5でデータ入力線IOA、IOB、IOC、IODに出力された信号をもとに変換したものもよい。
<書き込み動作>
図16は、書き込み動作の概略を示す概略図である。
図16に示すように、まず、書き込みデータがフリップフロップFF1、FF2にロードされる。その後、プログラム第1サイクルで“2”データおよび“3”データがほぼ同時に書き込まれる。そして“2”データ、“3”データが十分書き込まれたかを調べるベリファイリード第1サイクルが行われ、書き込み不十分のメモリセルがある場合には、再書き込みが行われる。“2”書き込みおよび“3”書き込みするメモリセルがすべて十分に書き込まれると、次に“1”書き込みするメモリセルにほぼ同時に書き込みが行われる(プログラム第2サイクル)。そして“1”書き込みが十分に行われたかを調べるベリファイリード第2サイクルが行われる。“1”書き込み不十分のメモリセルには再書き込みが行われ、またすべてのメモリセルが十分に書き込まれると書き込みが終了する。
以下、プログラム第1サイクル、ベリファイリード第1サイクル、プログラム第2サイクル、ベリファイリード第2サイクルの順に詳細に説明する。
(1)プログラム第1サイクル
書き込み動作前に、入力された2ビット分のデータは、データ入出力バッファ4で変換されて、データ回路6**に入力される。
図17は、データ回路6**に入力され、フリップフロップFF1、FF2がラッチする書き込みデータを示す図である。4値データとデータ入出力線IOA、IOB、IOC、IODの関係は図17のとおりである。
変換された4値データは、カラム活性化信号CENBが“H”で、アドレス信号で指定されたカラム番地のデータ回路に転送される。
図18は、書き込み動作(プログラム第1サイクル)を示す動作波形図である。
時刻t1wに、電圧VAがビット線書き込み制御電圧1Vとなってビット線BLaが1Vとされる。nチャネルMOSトランジスタQn39のしきい値分の電圧降下分が問題になるときは、信号BLCAを昇圧すればよい。続いて、信号PREが“L”となってビット線がフローティングにされる。次に、時刻t2wに信号RV2Aが1.5Vとされる。これによって、データ“1”または“3”が保持されているカラムではビット線制御電圧0Vがビット線に印加される。nチャネルMOSトランジスタQn32のしきい値を1Vとすると、“0”または“2”書き込み時にはnチャネルMOSトランジスタQn32は“OFF”、“1”または“3”書き込み時には“ON”となる。その後、時刻t3wにVRFYBAが0Vになり、データ“0”またはデータ“1”が保持されているデータ回路からはビット線書き込み制御電圧VCCがビット線に出力される。
その結果、“0”書き込みまたは“1”書き込みするビット線はVCC、“2”書き込みするビット線は1V、“3”書き込みするビット線は0Vになる。
時刻t1wに制御ゲート・選択ゲート駆動回路によって、選択されたブロックの選択ゲートSG1A、制御ゲートCG1A〜CG4AがVCCとなる。選択ゲートSG2Aは0Vである。次に、選択された制御ゲートCG2Aが高電圧VPP(例えば20V)、非選択制御ゲートCG1A、CG3A、CG4AがVM(例えば10V)となる。データ“3”が保持されているデータ回路に対応するメモリセルでは、0Vのチャネル電位と制御ゲートのVPPの電位差によって、浮遊ゲートに電子が注入されしきい値が上昇する。データ“2”が保持されているデータ回路に対応するメモリセルでは、1Vのチャネル電位と制御ゲートのVPPの電位差によって、浮遊ゲートに電子が注入されしきい値が上昇する。チャネル電位を1Vにしているのは、“3”データ書き込みより電子の注入量が少なくてよいからである。データ“0”またはデータ“1”が保持されているデータ回路に対応するメモリセルでは、チャネル電位と制御ゲートのVPPの電位差が小さいため、実効的には浮遊ゲートに電子は注入されない。よって、メモリセルのしきい値は変動しない。書き込み動作中、信号SAN1、SAN2、VRFYBB、PREB、BLCBは“H”、信号SAP1、SAP2、RV1A、RV1B、RV2B、ECH1、ECH2は“L”、電圧VBは0Vである。
(2)ベリファイ読み出し第1サイクル
書き込み動作後、“2”書き込みするメモリセルと“3”書き込みするメモリセルのしきい値を検出する(書き込みベリファイ)。もし、所望のしきい値に達していれば、データ回路のデータを“0”に変更する。もし、所望のしきい値に達していなければ、データ回路のデータを保持して再度書き込み動作を行う。書き込み第1サイクルと書き込みベリファイ第1サイクルは全ての“2”書き込みするメモリセルおよび“3”書き込みするメモリセルが所望のしきい値に達するまで繰り返される。
図19は、ベリファイ読み出し動作(ベリファイ読み出し第1サイクル)を示す動作波形図である。
まず、時刻t1vに、電圧VA、VBがそれぞれ1.8V、1.5Vとなって、ビット線BLa、BLbはそれぞれ1.8V、1.5Vになる。信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離され、ビット線BLa、BLbはフローティングとなる。信号PREA、PREBが“L”となって、MOSキャパシタQd1、Qd2のゲート電極であるノードN1、N2はフローティング状態になる。続いて時刻t2vに、制御ゲート・選択ゲート駆動回路によって選択されたブロックの選択された制御ゲートCG2Aは1.5V、非選択制御ゲートCG1A、CG3A、CG4Aと選択ゲートSG1A、SG2AはVCCにされる。選択されたメモリセルのしきい値が1.5V以下なら、ビット線電圧は1.5Vより低くなる。選択されたメモリセルのしきい値が1.5V以上なら、ビット線電圧は1.8Vのままとなる。時刻t3vに、信号BLCA、BLCBが“H”とされ、ビット線の電位がN1、N2に転送される。その後、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。この後時刻t4vに、信号RV2Aが例えばVCC以下の1.5Vとされる。nチャネルMOSトランジスタQn32のしきい値が1Vの場合、“3”書き込みデータが保持されているデータ回路ではnチャネルMOSトランジスタQn32は“ON”で、ノードN1は0Vとなる。“2”書き込みデータが保持されているデータ回路で、メモリセルが十分に“2”書き込みされている場合にはnチャネルMOSトランジスタQn32は“OFF”で、ノードN1は1.5V以上に保たれる。“2”書き込み不十分の場合には、ノードN1は1.5V以下である。なお、この間に、選択された制御ゲートは2.5Vとされる。時刻t5vに信号VRFYBAが“L”となると、“0”または“1”書き込みデータが保持されているデータ回路では、pチャネルMOSトランジスタQp13が“ON”であり、ノードN1はVCCとなる。信号SAN1、SAP1がそれぞれ“L”、“H”となってフリップフロップFF1が非活性化され、信号ECH1が“H”となってイコライズされる。この後、信号RV1A、RV1Bが“H”となる。再度、信号SAN1、SAP1がそれぞれ“H”、“L”となることで、時刻t6vにノードN1の電圧がセンスされラッチされる。これで、“2”書き込みデータを保持しているデータ回路のみ、対応するメモリセルのデータが十分“2”書き込み状態となったか否かを検出する。メモリセルのデータが“2”であれば、フリップフロップFF1でノードN1の電圧をセンスしラッチすることで書き込みデータは“0”に変更される。メモリセルのデータが“2”でなければ、フリップフロップFF1でノードN1の電圧をセンスしラッチすることで書き込みデータは“2”に保持される。“0”または“1”または“3”書き込みデータを保持しているデータ回路の書き込みデータは変更されない。
次に、選択された制御ゲートが2.5Vになっているので、選択されたメモリセルのしきい値が2.5V以下なら、ビット線電圧は1.5Vより低くなる。選択されたメモリセルのしきい値が2.5V以上なら、ビット線電圧は1.8Vのままとなる。この後時刻t7vに、信号BLCA、BLCBが“H”とされ、ビット線の電位がN1、N2に転送される。再度、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。この後、信号VRFYBCが“L”となると、“0”または“1”書き込みデータが保持されているデータ回路、および“2”書き込みが十分に行われたデータ回路では、pチャネルMOSトランジスタQp12Cが“ON”であり、ノードN1はVCCとなる。信号SAN1、SAP1がそれぞれ“L”、“H”となってフリップフロップFF1が非活性化され、信号ECH1が“H”となってイコライズされる。この後、信号RV1A、RV1Bが“H”となる。その後時刻t8vに、信号SAN1、SAP1がそれぞれ“H”、“L”となることで、ノードN1の電圧がセンスされラッチされる。
この後、図19に示されるように、書き込みデータの変換が更に行われる。時刻t9vに、信号BLCA、BLCBが“H”とされ、ビット線の電位がN1、N2に転送される。再度、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。この後時刻t10vに、信号VRFYBA1が“H”となると、“0”または“2”書き込みデータが保持されているデータ回路では、nチャネルMOSトランジスタQn2が“ON”であり、ノードN1はVCCとなる。信号SAN2、SAP2がそれぞれ“L”、“H”となってフリップフロップFF2が非活性化され、信号ECH2が“H”となってイコライズされる。この後、信号RV2A、RV2Bが“H”となる。その後時刻t11vに、信号SAN2、SAP2がそれぞれ“H”、“L”となることで、ノードN1の電圧がセンスされラッチされる。
上記第2の実施の形態では、時刻t10vにVRFYBA1をVCCにすることにより、“0”書き込みおよび“2”書き込みする場合のMOSキャパシタQd1のノードN1を、ノードN2の電位(1.5V)よりも高くなるように充電している。t10vにRV2Bを例えば1.5Vにしても良い。この場合、“0”書き込みまたは“2”書き込みの場合には、ノードN6が0VなのでnチャネルMOSトランジスタQn33がオンし、N2は0Vになる。一方、“1”または“3”書き込みの場合には、ノードN6がVCC、N2が1.5VなのでnチャネルMOSトランジスタQn33はオフし、N2は1.5Vを保たれる。時刻t10vにVRFYBA1をVCCにして行う、“0”書き込みおよび“2”書き込みする場合のN1への充電はN2の電位(0V)よりも大きければよいので、N1の充電は例えば0.5V程度の低い電圧でよい。
以上のようにして、“3”書き込みデータを保持しているデータ回路のみ、対応するメモリセルのデータが十分“3”書き込み状態となったか否かを検出する。メモリセルのデータが“3”であれば、フリップフロップFF1、FF2でノードN1の電圧をセンスしラッチすることで書き込みデータは“0”に変更される。メモリセルのデータが“3”でなければ、フリップフロップFF1、FF2でノードN1の電圧をセンスしラッチすることで書き込みデータは“3”に保持される。“0”または“1”または“2”書き込みデータを保持しているデータ回路の書き込みデータは変更されない。
書き込みベリファイ中、信号VRFYBBは“H”、電圧Vsは0Vとする。
図20は、“2”または“3”書き込みが充分に行われた後、フリップフロップFF1、FF2が、ラッチしているデータを示す図である。
“2”書き込みまたは“3”書き込みする全ての選択されたメモリセルが所望のしきい値に達していれば、データ回路のデータは図20のようになる。つまり“2”書き込みまたは“3”書き込みする選択されたすべてのメモリセルが十分に書き込まれると、すべてのデータ回路6**-0、6**-1、…、6**-m-1、6**-mのノードN3が“H”、N4が“L”になる。これを検出すると、“2”書き込みまたは“3”書き込みする全ての選択されたメモリセルが所望のしきい値に達したか否かがわかる。
図21は、書き込み終了一括検知トランジスタを有したデータ回路の回路図である。
“2”書き込みおよび“3”書き込み終了の検出は、例えば図21に示されるような“2”、“3”書き込み終了一括検知トランジスタQn5を用いればよい。VRTは、ベリファイリード第1サイクル後、例えばVCCにプリチャージされる。“2”または“3”書き込みが不十分なメモリセルが1つでもあると、そのデータ回路のノードN4は“H”なのでnチャネルMOSトランジスタQn5はオンし、VRTは接地される。すべての“2”または“3”書き込みするメモリセルが十分に書き込まれると、データ回路6**-0、6**-1、…、6**-m-1、6**-mのノードN4が“L”になる。その結果、全てのデータ回路内のnチャネルMOSトランジスタQn5がオフし、VRTはプリチャージ電位を保つ。
(3)プログラム第2サイクル
“2”および“3”書き込みがすべて終了した後は、“1”書き込み(プログラム第2サイクル)が行われる。“1”書き込み時のフリップフロップのノード電位は図20である。つまり“1”書き込みの場合には、ノードN5が“L”になりビット線に書き込み電位が印加され、“1”書き込み以外ではノードN5が“H”になり、ビット線に書き込み非選択電位が印加される。
図22は、書き込み動作(プログラム第2サイクル)を示す動作波形図である。
時刻t1pに、電圧VRFYBA1が“H”になり、“0”または“2”または“3”書き込みするビット線BLaが書き込み非選択電圧VCCに充電される。nチャネルMOSトランジスタQn39のしきい値分の電圧降下分が問題になるときは、信号BLCAを昇圧すればよい。続いて、信号RV2AがVCCとされる。これによって、データ“0”または“2”または“3”が保持されているデータ回路からは書き込み非選択電圧VCCがビット線BLaに印加される。データ“1”が保持されているデータ回路からはビット線BLaに書き込みビット線電位0Vが印加される。
制御ゲート・選択ゲート駆動回路によって、選択されたブロックの選択ゲートSG1A、制御ゲートCG1A〜CG4AがVCCとなる。選択ゲートSG2Aは0Vである。次に、時刻t2pに選択された制御ゲートCG2Aが高電圧VPP(例えば20V)、非選択制御ゲートCG1A、CG3A、CG4AがVM(例えば10V)となる。データ“1”が保持されているデータ回路に対応するメモリセルでは、0Vのチャネル電位と制御ゲートのVPPの電位差によって、浮遊ゲートに電子が注入されしきい値が上昇する。データ“0”または“2”または“3”が保持されているデータ回路に対応するメモリセルでは、チャネル電位と制御ゲートのVPPの電位差が小さいため、実効的には浮遊ゲートに電子は注入されない。よって、メモリセルのしきい値は変動しない。書き込み動作中、信号SAN1、SAN2、VRFYBB、PREB、BLCBは“H”、信号SAP1、SAP2、RV1A、RV1B、ECH1、ECH2は“L”、電圧VBは0Vである。
(4)ベリファイ読み出し第2サイクル
書き込み第2サイクル終了後、“1”書き込みするメモリセルのしきい値を検出する(書き込みベリファイ第2サイクル)。もし、所望のしきい値に達していれば、データ回路のデータを“0”に変更する。もし、所望のしきい値に達していなければ、データ回路のデータを保持して再度書き込み動作を行う。書き込み動作と書き込みベリファイは全ての“1”書き込みするメモリセルが所望のしきい値に達するまで繰り返される。
図23は、ベリファイ読み出し動作(ベリファイ読み出し第2サイクル)を示す動作波形図である。
まず、時刻、t1yに、電圧VA、VBがそれぞれ1.8V、1.5Vとなって、ビット線BLa、BLbはそれぞれ1.8V、1.5Vになる。信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離され、ビット線BLa、BLbはフローティングとなる。信号PREA、PREBが“L”となって、MOSキャパシタQd1、Qd2のゲート電極であるノードN1、N2はフローティング状態になる。続いて時刻t2yに、制御ゲート・選択ゲート駆動回路によって選択されたブロックの選択された制御ゲートCG2Aは0.5V、非選択制御ゲートCG1A、CG3A、CG4Aと選択ゲートSG1A、SG2AはVCCにされる。選択されたメモリセルのしきい値が0.5V以下なら、ビット線電圧は1.5Vより低くなる。選択されたメモリセルのしきい値が0.5V以上なら、ビット線電圧は1.8Vのままとなる。時刻t3yに、信号BLCA、BLCBが“H”とされ、ビット線の電位がN1、N2に転送される。その後、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。この後、時刻t4yに信号VRFYBA1が“H”となると、“0”または“2”または“3”書き込みデータが保持されているデータ回路では、nチャネルMOSトランジスタQn2が“ON”であり、ノードN1はVCCとなる。
信号SAN2、SAP2がそれぞれ“L”、“H”となってフリップフロップFF2が非活性化され、信号ECH2が“H”となってイコライズされる。この後、信号RV2A、RV2Bが“H”となる。再度、信号SAN2、SAP2がそれぞれ“H”、“L”となることで、時刻t5yにノードN1の電圧がセンスされラッチされる。これで、“1”書き込みデータを保持しているデータ回路のみ、対応するメモリセルのデータが十分“1”書き込み状態となったか否かを検出する。メモリセルのデータが“1”であれば、フリップフロップFF2でノードN1の電圧をセンスしラッチすることで書き込みデータは“0”に変更される。メモリセルのデータが“1”でなければ、フリップフロップFF1でノードN2の電圧をセンスしラッチすることで書き込みデータは“1”に保持される。“0”または“2”または“3”書き込みデータを保持しているデータ回路の書き込みデータは変更されない。
図24は、“1”書き込みが充分に行われた後、フリップフロップFF1、FF2が、ラッチしているデータを示す図である。
“1”書き込みする全ての選択されたメモリセルが所望のしきい値に達していれば、データ回路のデータは図24のようになる。つまり“1”書き込みするすべてのメモリセルが十分に書き込まれると、すべてのデータ回路6**-0、6**-1、…、6**-m-1、6**-mのノードN5が“H”、N6が“L”になる。これを検出すると、全ての選択されたメモリセルが所望のしきい値に達したか否かがわかる。
プログラムサイクル2の書き込み終了の検出は、例えば図21に示されるような書き込み終了一括検知トランジスタQn6を用いればよい。VREDは、ベリファイリード第2サイクル後、例えばVCCにプリチャージされる。“1”書き込みが不十分なメモリセルが1つでもあると、そのデータ回路のノードN6は“H”なのでnチャネルMOSトランジスタQn6はオンし、VREDは接地される。すべてのメモリセルが十分に書き込まれると、データ回路6**-0、6**-1、…、6**-m-1、6**-mのノードN6が“L”になる。その結果、全てのデータ回路内のnチャネルMOSトランジスタQn6がオフし、VREDはプリチャージ電位を保つ。
以上、第2の実施の形態に係るEEPROMを説明したが、ベリファイ読み出し、書き込み、通常の読み出し等は、他の動作が可能である。
図25は、他のベリファイ読み出し動作(ベリファイ読み出し第1サイクル)を示す動作波形図である。
例えばベリファイ読み出し第1サイクルは、図25の動作波形図のように動作させても良い。
図25に示すベリファイ読み出し第1サイクルでは、時刻t7vまでの動作は、図19に示すベリファイ読み出し第1サイクルと同様であり、時刻t7v以降の動作が異なっている。
時刻t7vに信号BLCA、BLCBが“H”とされ、ビット線の電位がN1、N2に転送される。メモリセルのしきい値が2.5V以上である場合にはビット線BLaは1.5V以上、2.5V以下である場合にはビット線BLbは1.5V以下である。その後、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。この後、時刻t8zに信号VRFYBA1が“H”となると、“0”または“2”書き込みデータが保持されているデータ回路では、nチャネルMOSトランジスタQn2が“ON”であり、ノードN1は1.5V以上となる。信号SAN2、SAP2がそれぞれ“L”、“H”となってフリップフロップFF2が非活性化され、信号ECH2が“H”となってイコライズされる。この後、信号RV2A、RV2Bが“H”となる。その後時刻t9zに、信号SAN2、SAP2がそれぞれ“H”、“L”となることで、ノードN1の電圧がセンスされラッチされる。
この後、図25に示されるように、書き込みデータの変換が更に行われる。時刻t10zに、信号BLCA、BLCBが“H”とされ、ビット線の電位がN1、N2に転送される。再度、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。この後時刻t11zに、信号VRFYBAが“L”となると、“0”または“1”書き込みデータが保持されているデータ回路、および“2”書き込みが十分におこなわれたデータ回路では、pチャネルMOSトランジスタQp13が“ON”であり、ノードN1はVCCとなる。信号SAN1、SAP1がそれぞれ“L”、“H”となってフリップフロップFF1が非活性化され、信号ECH1が“H”となってイコライズされる。この後、信号RV1A、RV1Bが“H”となる。その後、時刻t12zに、信号SAN1、SAP1がそれぞれ“H”、“L”となることで、ノードN1の電圧がセンスされラッチされる。
以上のように、“3”書き込みデータを保持しているデータ回路のみ、対応するメモリセルのデータが十分“3”書き込み状態となったか否かを検出できる。メモリセルのデータが“3”であれば、フリップフロップFF1、FF2でノードN1の電圧をセンスしラッチすることで書き込みデータは“0”に変更される。メモリセルのデータが“3”でなければ、フリップフロップFF1、FF2でノードN1の電圧をセンスしラッチすることで書き込みデータは“3”に保持される。“0”または“1”または“2”書き込みデータを保持しているデータ回路の書き込みデータは変更されない。“2”書き込みまたは“3”書き込みする全ての選択されたメモリセルが所望のしきい値に達していれば、データ回路のデータは図20のようになる。つまり、“2”書き込みまたは“3”書き込みする選択されたすべてのメモリセルが十分に書き込まれると、すべてのデータ回路6**-0、6**-1、…、6**-m-1、6**-mのノードN3が“H”、N4が“L”になる。これを検出することにより、“2”書き込みまたは“3”書き込みする全ての選択されたメモリセルが所望のしきい値に達したか否かがわかる。
また、データ回路の回路構成も、図12、図21に示す回路構成に限られるものではなく、他の回路構成であっても良い。
図26および図27はそれぞれ、データ回路の他の回路図である。
図26に示すデータ回路の、VRFYBA1、VRFYBB1の動作タイミングは、図12、図21のデータ回路と同様の動作タイミングを用いた場合(動作波形図;図13、図18、図19、図22、図23、図25)、VCCを0V、0VをVCCにすればよい。なお、VRFYBA、VRFYBBの動作タイミングは、図12、図21のデータ回路を用いた場合と同様である。
また、図27に示すデータ回路の、VRFYBA、VRFYBBの動作タイミングは、図12、図21のデータ回路と同様な動作タイミングを用いた場合(動作波形図;図13、図18、図19、図22、図23、図25)、VCCを0V、0VをVCCにすればよい。なお、VRFYBA1、VRFYBB1の動作タイミングは、図12、図21のデータ回路を用いた場合と同様である。
上記第2の実施の形態では、まず“2”、“3”データを同時に書いてから、次に“1”データの書き込みを行ったが、書き込む順番は大いに任意性を有する。例えば“1”、“2”を書き込んでから、次に“3”を書き込んでも良いし、“1”、“3”を書き込んでから“2”を書き込んでも良い。
<実施の形態3>
次に、この発明の第3の実施の形態に係る多値記憶NAND型EEPROMを説明する。
上記第2の実施の形態では、まず、“2”状態および“3”状態をほぼ同時に書き込んでから、“1”状態を書き込むものを例示したが、この第3の実施の形態では、“1”状態、“2”状態、および“3”状態をほぼ同時に書き込むものである。
なお、第3の実施の形態に係るEEPROMは、第2の実施の形態に係るEEPROMと同様に、図1、図2に示した構成と同様な構成を持つ。
図28は、この発明の第3の実施の形態に係るEEPROMが有するデータ回路の回路図である。図28に示すデータ回路は、4値記憶を例に構成されている。
図28に示すように、メモリセルM1〜M4が直列に接続され、NAND型セルを構成している。その両端は、選択トランジスタS1、S2を介して、それぞれビット線BL、ソース線Vsに接続される。制御ゲートCGを共有するメモリセルM群は、“ページ”と呼ばれる単位を形成し、同時にデータ書き込み・読み出しされる。また、4本の制御ゲートCG1〜CG4に繋がるメモリセル群でブロックを形成する。“ページ”、“ブロック”は制御ゲート・選択ゲート駆動回路によって選択される。各ビット線BL0〜BLmには、データ回路6**-0、6**-1、…、6**-m-1、6**-mが接続され、対応するメモリセルへの書き込みデータを一時的に記憶したりする。
メモリセルの書き込み状態としきい値との関係は、第1の実施の形態と同様であり、例えば図11に示すとおりである。
図28に示すように、nチャネルMOSトランジスタQn21、Qn22、Qn23とpチャネルMOSトランジスタQp9、Qp10、Qp11により構成されるフリップフロップFF1と、nチャネルMOSトランジスタQn29、Qn30、Qn31とpチャネルMOSトランジスタQp16、Qp17、Qp18により構成されるFF2とには、書き込み/読み出しデータがラッチされる。また、これらはセンスアンプとしても動作する。
フリップフロップFF1、FF2は、「“0”書き込みをするか、“1”書き込みをするか、“2”書き込みをするか、“3”書き込みをするか」を書き込みデータ情報としてラッチし、メモリセルが「“0”の情報を保持しているか、“1”の情報を保持しているか、“2”の情報を保持しているか、“3”の情報を保持しているか」を読み出しデータ情報としてセンスしラッチする。
データ入出力線IOA、IOBとフリップフロップFF1は、nチャネルMOSトランジスタQn28、Qn27を介して接続される。データ入出力線IOC、IODとフリップフロップFF2は、nチャネルMOSトランジスタQn35、Qn36を介して接続される。データ入出力線IOA、IOB、IOC、IODは、図1中のデータ入出力バッファ4にも接続される。
nチャネルMOSトランジスタQn27、Qn28、Qn35、Qn36のゲートは、NAND論理回路G2とインバータI4で構成されるカラムアドレスデコーダの出力に接続される。nチャネルMOSトランジスタQn26、Qn34は、それぞれフリップフロップFF1、FF2を信号ECH1、ECH2が“H”となってイコライズする。nチャネルMOSトランジスタQn24、Qn32は、フリップフロップFF1、FF2とMOSキャパシタQd1の接続を制御する。nチャネルMOSトランジスタQn25、Qn33は、フリップフロップFF1、FF2とMOSキャパシタQd2の接続を制御する。
pチャネルMOSトランジスタQp12C、Qp13Cで構成される回路は、活性化信号VRFYBACによって、フリップフロップFF1のデータに応じて、MOSキャパシタQd1のゲート電圧を変更する。pチャネルMOSトランジスタQp14C、Qp15Cで構成される回路は、活性化信号VRFYBBCによって、フリップフロップFF1のデータに応じて、MOSキャパシタQd2のゲート電圧を変更する。pチャネルMOSトランジスタQp12C、Qp19C、Qp20Cで構成される回路は、活性化信号VRFYBA2Cによって、フリップフロップFF1およびFF2のデータに応じて、MOSキャパシタQd1のゲート電圧を変更する。pチャネルMOSトランジスタQp14C、Qp21C、Qp22Cで構成される回路は、活性化信号VRFYBB2Cによって、フリップフロップFF1およびFF2のデータに応じて、MOSキャパシタQd2のゲート電圧を変更する。nチャネルMOSトランジスタQn1C、Qn2Cで構成される回路は、活性化信号VRFYBA1Cによって、フリップフロップFF2のデータに応じて、MOSキャパシタQd1のゲート電圧を変更する。nチャネルMOSトランジスタQn3C、Qn4Cで構成される回路は、活性化信号VRFYBB1Cによって、フリップフロップFF2のデータに応じて、MOSキャパシタQd2のゲート電圧を変更する。
MOSキャパシタQd1、Qd2は、ディプリーション型nチャネルMOSトランジスタで構成され、ビット線容量より十分小さくされる。nチャネルMOSトランジスタQn37は、信号PREAによってMOSキャパシタQd1を電圧VAに充電する。nチャネルMOSトランジスタQn38は、信号PREBによってMOSキャパシタQd2を電圧VBに充電する。nチャネルMOSトランジスタQn39、Qn40は、信号BLCA、BLCBによって、データ回路3とビット線BLa、BLbの接続をそれぞれ制御する。nチャネルMOSトランジスタQn37、Qn38で構成される回路はビット線電圧制御回路を兼ねる。
次に、このように構成されたEEPROMの動作を、動作波形図に従って説明する。以下では制御ゲートCG2Aが選択されている場合を示す。
<読み出し動作>
図29は、読み出し動作を示す動作波形図である。
図29に示すように、まず、電圧VA、VBがそれぞれ1.8V、1.5Vとなって、ビット線BLa、BLbはそれぞれ1.8V、1.5Vになる。時刻t1RCに信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離され、ビット線BLa、BLbはフローティングとなる。信号PREA、PREBが“L”となって、MOSキャパシタQd1、Qd2のゲート電極であるノードN1、N2はフローティング状態になる。続いて、時刻t2RCに制御ゲート・選択ゲート駆動回路によって選択されたブロックの選択された制御ゲートCG2Aは0V、非選択制御ゲートCG1A、CG3A、CG4Aと選択ゲートSG1A、SG2AはVCCにされる。選択されたメモリセルのしきい値が0V以下なら、ビット線電圧は1.5Vより低くなる。選択されたメモリセルのしきい値が0V以上なら、ビット線電圧は1.8Vのままとなる。この後、時刻t3RCに信号BLCA、BLCBが“H”となり、ビット線のデータがMOSキャパシタQd1、Qd2に転送される。その後、再度、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。この後、選択された制御ゲートが1Vにされる。信号SAN1、SAP1がそれぞれ“L”、“H”となってフリップフロップFF1が非活性化され、信号ECH1が“H”となってイコライズされる。この後、信号RV1A、RV1Bが“H”となる。時刻t4RCに再度、信号SAN1、SAP1がそれぞれ“H”、“L”となることで、ノードN1の電圧がセンスされラッチされる。これで、「メモリセルのデータが“0”か、或いは“1”または“2”または“3”か」がフリップフロップFF1によってセンスされ、その情報はラッチされる。
次に、選択された制御ゲートが1Vになっているので、選択されたメモリセルのしきい値が1V以下なら、ビット線電圧は1.5Vより低くなる。選択されたメモリセルのしきい値が1V以上なら、ビット線電圧は1.8Vのままとなる。時刻t5RCに信号PREA、PREBが“H”となって、MOSキャパシタQd1、Qd2のゲート電極であるノードN1、N2はそれぞれ1.8V、1.5Vになる。信号PREA、PREBが“L”となって、MOSキャパシタQd1、Qd2のゲート電極であるノードN1、N2はフローティング状態になる。この後、時刻t6RCに信号BLCA、BLCBが“H”とされる。再度、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。信号SAN2、SAP2がそれぞれ“L”、“H”となってフリップフロップFF2が非活性化され、信号ECH2が“H”となってイコライズされる。この後、信号RV2A、RV2Bが“H”となる。時刻t7RCに再度、信号SAN2、SAP2がそれぞれ“H”、“L”となることで、ノードN1の電圧がセンスされラッチされる。これで、「メモリセルのデータが“0”または“1”か、或いは“2”または“3”か」がフリップフロップFF2によってセンスされ、その情報はラッチされる。
図30は、時刻t7RCのときにフリップフロップFF1、FF2がセンスし、ラッチしている読み出しデータを示す図である。この時のフリップフロップFF1、FF2のノードN3C、N5Cの電位は図30のようになる。
最後にメモリセルに書き込まれたデータが「“2”または“3”か」がセンスされる。選択された制御ゲートが2Vにされる。選択されたメモリセルのしきい値が2V以下なら、ビット線電圧は1.5Vより低くなる。選択されたメモリセルのしきい値が2V以上なら、ビット線電圧は1.8Vのままとなる。時刻t8RCに信号PREA、PREBが“H”となって、MOSキャパシタQd1、Qd2のゲート電極であるノードN1、N2はそれぞれ1.8V、1.5Vになる。信号PREA、PREBが“L”となって、MOSキャパシタQd1、Qd2のゲート電極であるノードN1、N2はフローティング状態になる。この後、時刻t10RCに信号BLCA、BLCBが“H”とされる。その後、再度、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。MOSキャパシタのデータをセンスするに先立ち、時刻t11RCにVRFYBA2Cが0Vになる。図22からわかるように、ノードN5Cが“Low level”およびノードN3Cが“high level”(つまりノードN4Cが“Low level”)になるのは“1”データの場合のみである。従って“1”データの場合のみpチャネルMOSトランジスタQp12C、Qp19C、Qp20Cがオンし、ノードN1がVCCになる。その後、信号SAN1、SAP1がそれぞれ“L”、“H”となってフリップフロップFF1が非活性化され、信号ECH1が“H”となってイコライズされる。この後、信号RV1A、RV1Bが“H”となる。時刻t12RCに再度、信号SAN1、SAP1がそれぞれ“H”、“L”となることで、ノードN1の電圧がセンスされラッチされる。これで、「メモリセルのデータが“2”か“3”か」がフリップフロップFF1によってセンスされ、その情報はラッチされる。
図31は、フリップフロップFF1、FF2がセンスし、ラッチする読み出しデータを示す図である。
以上の読み出し動作の結果、4値のデータが、図31のようにフリップフロップFF1、FF2にラッチされる。図中の各データのしきい値分布は次のとおりである。
データ“0”・・・しきい値:0V以下
データ“1”・・・しきい値0.5V以上0.8V以下
データ“2”・・・しきい値1.5V以上1.8V以下
データ“3”・・・しきい値2.5V以上2.8V以下
読み出し中、信号VRFYBAC、VRFYBBCは“H”、信号VRFYBA1C、VRFYBB1Cは“L”である。また、電圧Vsは0Vとする。
カラムアドレスデコーダに入力されるカラム活性化信号CENBが“H”となると、アドレス信号によって選択されたデータ回路に保持されているデータがデータ入出力線IOA、IOB、IOC、IODに出力され、データ入出力バッファ4を介してEEPROM外部へ出力される。
メモリセルに記憶されているデータ、しきい値、データ入出力線IOA、IOB、IOC、IODに読み出し後に出力されるレベルの関係は図31のとおりである。
チップ外部への出力データは、データ入出力バッファ5でデータ入力線IOA、IOB、IOC、IODに出力された信号をもとに変換したものもよい。
<書き込み動作>
まず、書き込みデータがフリップフロップFF1、FF2にロードされる。その後、“1”データ、“2”データおよび“3”データがほぼ同時に書き込まれる。そして“1”データ、“2”データ、“3”データが十分書き込まれたかを調べるベリファイリードが行われ、書き込み不十分のメモリセルがある場合には、再書き込みが行われる。すべてのメモリセルが十分に書き込まれることを、書き込み終了検知回路が検知することにより書き込みが終了する。
以下では、まず、プログラムについて説明し、次にベリファイリードについて説明する。
(1)プログラム
書き込み動作前に、入力された2ビット分のデータは、データ入出力バッファ5で変換されて、データ回路6**に入力される。
図32は、データ回路6**に入力され、フリップフロップFF1、FF2がラッチする書き込みデータを示す図である。4値データとデータ入出力線IOA、IOB、IOC、IODの関係は図32のとおりである。
変換された4値データは、カラム活性化信号CENBが“H”で、アドレス信号で指定されたカラム番地のデータ回路に転送される。
図33は、書き込み動作を示す動作波形図である。
まず、時刻t1sに、電圧VAがビット線書き込み制御電圧1Vとなってビット線BLaが1Vとされる。nチャネルMOSトランジスタQn39のしきい値分の電圧降下分が問題になるときは、信号BLCAを昇圧すればよい。続いて、信号PREが“L”となってビット線がフローティングにされる。次に、時刻t2sに信号RV2Aが1.5Vとされる。これによって、データ“1”または“3”が保持されているからはビット線制御電圧0Vがビット線に印加される。nチャネルMOSトランジスタQn32のしきい値を1Vとすると、“0”または“2”書き込み時にはnチャネルMOSトランジスタQn32は“OFF”、“1”または“3”書き込み時には“ON”となる。その後、時刻t3sにVRFYBACが0Vになり、データ“0”またはデータ“1”が保持されているデータ回路からはビット線書き込み制御電圧VCCがビット線に出力される。
そして、時刻t4sにVRFYBA2Cが0Vになり、データ“1”が保持されているデータ回路からはV1を介してビット線“1”書き込み電位2Vがビット線に出力される。
その結果、“0”書き込みするビット線はVCC、“1”書き込みするビット線は2V、“2”書き込みするビット線は1V、“3”書き込みするビット線は0Vになる。
時刻t1sに制御ゲート・選択ゲート駆動回路によって、選択されたブロックの選択ゲートSG1A、制御ゲートCG1A〜CG4AがVCCとなる。選択ゲートSG2Aは0Vである。次に、選択された制御ゲートCG2Aが高電圧VPP(例えば20V)、非選択制御ゲートCG1A、CG3A、CG4AがVM(例えば10V)となる。データ“3”が保持されているデータ回路に対応するメモリセルでは、0Vのチャネル電位と制御ゲートのVPPの電位差によって、浮遊ゲートに電子が注入されしきい値が上昇する。データ“2”が保持されているデータ回路に対応するメモリセルでは、1Vのチャネル電位と制御ゲートのVPPの電位差によって、浮遊ゲートに電子が注入されしきい値が上昇する。データ“1”が保持されているデータ回路に対応するメモリセルでは、2Vのチャネル電位と制御ゲートのVPPの電位差によって、浮遊ゲートに電子が注入されしきい値が上昇する。“2”書き込みの場合のチャネル電位を1V、“1”書き込みの場合のチャネル電位を2Vにしているのは、電子の注入量を“3”データ書き込みの場合、“2”書き込みの場合、“1”書き込みの場合の順番で少なくするためある。データ“0”が保持されているデータ回路に対応するメモリセルでは、チャネル電位と制御ゲートのVPPの電位差が小さいため、実効的には浮遊ゲートに電子は注入されない。よって、メモリセルのしきい値は変動しない。書き込み動作中、信号SAN1、SAN2、PREB、BLCBは“H”、信号SAP1、SAP2、VRFYBA1C、RV1A、RV1B、RV2B、ECH1、ECH2は“L”、電圧VBは0Vである。
(2)ベリファイ読み出し
書き込み動作後、書き込みが充分に行われたかを検出する(書き込みベリファイ)。もし、所望のしきい値に達していれば、データ回路のデータを“0”に変更する。もし、所望のしきい値に達していなければ、データ回路のデータを保持して再度書き込み動作を行う。書き込み動作と書き込みベリファイは全ての“1”書き込みするメモリセル、“2”書き込みするメモリセルおよび“3”書き込みするメモリセルが所望のしきい値に達するまで繰り返される。
図34および図35はそれぞれ、ベリファイ読み出し動作を示す動作波形図である。
以下、図34および図35を参照し、書き込みベリファイ動作を説明する。
はじめに、“1”書き込みするメモリセルが所定のしきい値に達しているかを検出する。
まず、図34に示すように、時刻t1ycに、電圧VA、VBがそれぞれ1.8V、1.5Vとなって、ビット線BLa、BLbはそれぞれ1.8V、1.5Vになる。信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離され、ビット線BLa、BLbはフローティングとなる。信号PREA、PREBが“L”となって、MOSキャパシタQd1、Qd2のゲート電極であるノードN1、N2はフローティング状態になる。続いて時刻t2ycに、制御ゲート・選択ゲート駆動回路によって選択されたブロックの選択された制御ゲートCG2Aは0.5V、非選択制御ゲートCG1A、CG3A、CG4Aと選択ゲートSG1A、SG2AはVCCにされる。選択されたメモリセルのしきい値が0.5V以下なら、ビット線電圧は1.5Vより低くなる。選択されたメモリセルのしきい値が0.5V以上なら、ビット線電圧は1.8Vのままとなる。時刻t3ycに、信号BLCA、BLCBが“H”とされ、ビット線の電位がN1、N2に転送される。その後、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。この後時刻t4ycにRV1Aが1.5Vになり、“2”書き込みの場合および“3”書き込みの場合には、ノードN1が0Vに放電される。この後、選択された制御ゲートが1.5Vにされる。時刻t5ycに信号VRFYBA1Cが“H”となると、“0”または“2”書き込みデータが保持されているデータ回路では、nチャネルMOSトランジスタQn2が“ON”であり、ノードN1はVCCとなる。その結果、ノードN1は“0”書き込みまたは“2”書き込みの場合にはVCC、“3”書き込みの場合には0Vになる。
信号SAN2、SAP2がそれぞれ“L”、“H”となってフリップフロップFF2が非活性化され、信号ECH2が“H”となってイコライズされる。この後、信号RV2A、RV2Bが“H”となる。再度、信号SAN2、SAP2がそれぞれ“H”、“L”となることで、時刻t6ycにノードN1の電圧がセンスされラッチされる。これで、“1”書き込みデータを保持しているデータ回路のみ、対応するメモリセルのデータが十分“1”書き込み状態となったか否かを検出する。メモリセルのデータが“1”であれば、フリップフロップFF2でノードN1の電圧をセンスしラッチすることで書き込みデータは“0”に変更される。メモリセルのデータが“1”でなければ、フリップフロップFF1でノードN2の電圧をセンスしラッチすることで書き込みデータは“1”に保持される。“0”または“2”または“3”書き込みデータを保持しているデータ回路の書き込みデータは変更されない。
次に、選択された制御ゲートが1.5Vになっているので、選択されたメモリセルのしきい値が1.5V以下なら、ビット線電圧は1.5Vより低くなる。選択されたメモリセルのしきい値が1.5V以上なら、ビット線電圧は1.8Vのままとなる。時刻t7ycにPREA、PREBがVCCになりノードN1、N2が1.8V、1.5Vになった後、フローティングになる。この後、図35に示すように、時刻t8ycに、信号BLCA、BLCBが“H”とされ、ビット線の電位がN1、N2に転送される。その後、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。この後、時刻t9ycに、信号RV2Aが例えばVCC以下の1.5Vとされる。nチャネルMOSトランジスタQn32のしきい値が1Vの場合、“3”書き込みデータが保持されているデータ回路ではnチャネルMOSトランジスタQn32は“ON”で、ノードN1は0Vとなる。“2”書き込みデータが保持されているデータ回路で、メモリセルが十分に“2”書き込みされている場合にはnチャネルMOSトランジスタQn32は“OFF”で、ノードN1は1.5V以上に保たれる。“2”書き込み不十分の場合には、ノードN1は1.5V以下である。なお、この間に、選択された制御ゲートは2.5Vとされる。時刻t10ycに信号VRFYBACが“L”となると、“0”または“1”書き込みデータが保持されているデータ回路では、pチャネルMOSトランジスタQp13が“ON”であり、ノードN1はVCCとなる。
信号SAN1、SAP1がそれぞれ“L”、“H”となってフリップフロップFF1が非活性化され、信号ECH1が“H”となってイコライズされる。この後、信号RV1A、RV1Bが“H”となる。再度、信号SAN1、SAP1がそれぞれ“H”、“L”となることで、時刻t11ycにノードN1の電圧がセンスされラッチされる。これで、“2”書き込みデータを保持しているデータ回路のみ、対応するメモリセルのデータが十分“2”書き込み状態となったか否かを検出する。メモリセルのデータが“2”であれば、フリップフロップFF1でノードN1の電圧をセンスしラッチすることで書き込みデータは“0”に変更される。メモリセルのデータが“2”でなければ、フリップフロップFF1でノードN1の電圧をセンスしラッチすることで書き込みデータは“2”に保持される。“0”または“1”または“3”書き込みデータを保持しているデータ回路の書き込みデータは変更されない。
次に、選択された制御ゲートが2.5Vになっているので、選択されたメモリセルのしきい値が2.5V以下なら、ビット線電圧は1.5Vより低くなる。選択されたメモリセルのしきい値が2.5V以上なら、ビット線電圧は1.8Vのままとなる。この後、時刻t12ycに、信号BLCA、BLCBが“H”とされ、ビット線の電位がN1、N2に転送される。再度、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。この後時刻t13ycに、信号VRFYBACが“L”となると、“0”または“1”書き込みデータが保持されているデータ回路および、“2”書き込みが十分に行われたデータ回路では、pチャネルMOSトランジスタQp13Cが“ON”であり、ノードN1はVCCとなる。信号SAN1、SAP1がそれぞれ“L”、“H”となってフリップフロップFF1が非活性化され、信号ECH1が“H”となってイコライズされる。この後、信号RV1A、RV1Bが“H”となる。その後時刻t14ycに、信号SAN1、SAP1がそれぞれ“H”、“L”となることで、ノードN1の電圧がセンスされラッチされる。
この後、図35に示すように、書き込みデータの変換が更に行われる。時刻t15ycに、信号BLCA、BLCBが“H”とされ、ビット線の電位がN1、N2に転送される。再度、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。この後時刻t16ycに、信号VRFYBA1Cが“H”となると、“0”または“2”書き込みデータが保持されているデータ回路および“1”書き込み十分のデータ回路では、nチャネルMOSトランジスタQn2Cが“ON”であり、ノードN1はVCCとなる。信号SAN2、SAP2がそれぞれ“L”、“H”となってフリップフロップFF2が非活性化され、信号ECH2が“H”となってイコライズされる。この後、信号RV2A、RV2Bが“H”となる。その後時刻t17ycに、信号SAN2、SAP2がそれぞれ“H”、“L”となることで、ノードN1の電圧がセンスされラッチされる。
上記実施の形態では時刻t16ycにVRFYBA1CをVCCにすることにより、“0”書き込みおよび“2”書き込みする場合のMOSキャパシタQd1のノードN1を、ノードN2の電位(1.5V)よりも高くなるように充電している。t16ycにRV2Bを例えば1.5Vにしても良い。この場合、“0”書き込みまたは“2”書き込みの場合には、ノードN6Cが0VなのでnチャネルMOSトランジスタQn33がオンしN2は0Vになる。一方、“1”または“3”書き込みの場合には、ノードN6CがVCC、N2が1.5VなのでnチャネルMOSトランジスタQn33はオフし、N2は1.5Vを保たれる。時刻t16ycにVRFYBA1CをVCCにして行う、“0”書き込みおよび“2”書き込みする場合のN1への充電はN2の電位(0V)よりも大きければよいので、N1の充電は例えば0.5V程度の低い電圧でよい。
以上のようにして、“3”書き込みデータを保持しているデータ回路のみ、対応するメモリセルのデータが十分“3”書き込み状態となったか否かを検出する。メモリセルのデータが“3”であれば、フリップフロップFF1、FF2でノードN1の電圧をセンスしラッチすることで書き込みデータは“0”に変更される。メモリセルのデータが“3”でなければ、フリップフロップFF1、FF2でノードN1の電圧をセンスしラッチすることで書き込みデータは“3”に保持される。“0”または“1”または“2”書き込みデータを保持しているデータ回路の書き込みデータは変更されない。
書き込みベリファイ中、信号VRFYBBCは“H”、信号VRFYBB1Cは“L”、電圧Vsは0Vとする。
全ての選択されたメモリセルが所望のしきい値に達していれば、データ回路のデータは“0”データになる。つまり書き込みが終了すると、ノードN4C、N6Cが“L”になる。これを検出することにより、全ての選択されたメモリセルが所望のしきい値に達したか否かがわかる。
図28は、書き込み終了一括検知トランジスタを有したデータ回路の回路図である。
書き込み終了の検出は例えば、図28に示すように書き込み終了一括検知トランジスタQn5C、およびQn6Cを用いればよい。ベリファイ読み出し後、まず、VRTCを、例えばVCCにプリチャージする。書き込みが不十分なメモリセルが1つでもあると、そのデータ回路のノードN4CまたはN6Cの少なくとも一方は“H”なのでnチャネルMOSトランジスタQn5CとQn6Cの少なくとも1つはオンし、VRTCはプリチャージ電位から低下する。すべてのメモリセルが十分に書き込まれると、データ回路6**-0、6**-1、…、6**-m-1のノードN4C、N6Cが“L”になる。その結果、全てのデータ回路内のnチャネルMOSトランジスタQn5CおよびQn6CがオフになるのでVRTCはプリチャージ電位を保つ。
以上、第3の実施の形態に係るEEPROMを説明したが、ベリファイ読み出し、書き込み、通常の読み出し等は、他の動作が可能である。
図36は、他のベリファイ読み出し動作を示す動作波形図である。
例えばベリファイ読み出しは、図36の動作波形図のように動作させても良い。
図36に示すベリファイ読み出しでは、時刻t12ycまでの動作は、図35に示すベリファイ読み出しと同様であり、時刻t12yc以降の動作が異なっている。
時刻t12ycに信号BLCA、BLCBが“H”とされ、ビット線の電位がN1、N2に転送される。メモリセルのしきい値が2.5V以上である場合にはビット線BLaは1.5V以上、2.5V以下である場合にはビット線BLbは1.5V以下である。その後、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。この後、時刻t13zcに信号VRFYBA1Cが“H”となると、“0”または“2”書き込みデータが保持されているデータ回路及び“1”書き込み十分のデータ回路では、nチャネルMOSトランジスタQn2が“ON”であり、ノードN1は1.5V以上となる。信号SAN2、SAP2がそれぞれ“L”、“H”となってフリップフロップFF2が非活性化され、信号ECH2が“H”となってイコライズされる。この後、信号RV2A、RV2Bが“H”となる。その後時刻t14zcに、信号SAN2、SAP2がそれぞれ“H”、“L”となることで、ノードN1の電圧がセンスされラッチされる。
この後、図36に示されるように、書き込みデータの変換が更に行われる。時刻t15zcに、信号BLCA、BLCBが“H”とされ、ビット線の電位がN1、N2に転送される。再度、信号BLCA、BLCBが“L”となって、ビット線BLaとMOSキャパシタQd1、ビット線BLbとMOSキャパシタQd2は切り離される。この後時刻t16zcに、信号VRFYBACが“L”となると、“0”または“1”書き込みデータが保持されているデータ回路、および“2”書き込みが十分におこなわれたデータ回路では、pチャネルMOSトランジスタQp13が“ON”であり、ノードN1はVCCとなる。信号SAN1、SAP1がそれぞれ“L”、“H”となってフリップフロップFF1が非活性化され、信号ECH1が“H”となってイコライズされる。この後、信号RV1A、RV1Bが“H”となる。その後、時刻t17zcに、信号SAN1、SAP1がそれぞれ“H”、“L”となることで、ノードN1の電圧がセンスされラッチされる。また、データ回路の回路構成も、図20に示す回路構成に限られるものではなく、他の回路構成であっても良い。
図37、図38、図39および図40はそれぞれ、データ回路の他の回路図である。
図37に示すデータ回路の、VRFYBA1C、VRFYBB1Cの動作タイミングは、図28のデータ回路と同様の動作タイミングを用いた場合(動作波形図:図29、図33、図34、図35、図36)、VCCを0V、0VをVCCにすればよい。なお、VRFYBAC、VRFYBBC、VRFYBA2C、VRFYBB2Cのタイミングは、図28のデータ回路を用いた場合と同様である。
また、図38に示すデータ回路の、VRFYBAC、VRFYBBC、VRFYBA2C、VRFYBB2Cの動作タイミングは、図28のデータ回路を用いた場合(動作波形図;図29、図33、図34、図3535、図36)、VCCを0V、0VをVCCにすればよい。なお、VRFYBA1C、VRFYBB1Cの動作タイミングは、図28のデータ回路を用いた場合と同様である。
また、図39に示すデータ回路の、VRFYBAC、VRFYBBCの動作タイミングは、図28のデータ回路を用いた場合(動作波形図:図29、図33、図34、図35、図36)、VCCを0V、0VをVCCにすればよい。なお、VRFYBA1C、VRFYBB1C、VRFYBA2C、VRFYBB2Cの動作タイミングは、図28のデータ回路を用いた場合と同様である。
また、図40に示すデータ回路の、VRFYBA2C、VRFYBB2Cの動作タイミングは、図28のデータ回路を用いた場合(動作波形図:図29、図33、図34、図35、図36)、VCCを0V、0VをVCCにすればよい。なお、VRFYBA1C、VRFYBB1C、VRFYBAC、VRFYBBCの動作タイミングは、図28のデータ回路を用いた場合と同様である。さらに、VRFYBA2C、VRFYBB2C、VRFYBA1C、VRFYBB1CをVCCにする場合に、VCCの代わりに、VCC+Vth(VthはnチャネルMOSトランジスタのしきい値電圧)、あるいはVCC+2Vthにしても良い。この場合、nチャネルMOSトランジスタは、実質的な“しきい値落ち”を発生させずに、電位を転送できる。
また、上記第3の実施の形態では、読み出しおよびベリファイ読み出し時に、ビット線をプリチャージした後、非選択コントロールゲートCG1A、CG3A、CG4AをVCCにすることにより、CG1A、CG3A、CG4Aをゲート電極とするメモリセルをオンさせている。
これを、例えば非選択コントロールゲートCG1A、CG3A、CG4AはVCCにした後、フローティングにし、その後、ビット線をプリチャージしても良い。あるいは、ビット線をプリチャージした後、非選択コントロールゲートをVCCにし、その後、非選択コントロールゲートをフローティングにしても良い。この場合、メモリセルを通じて、ビット線からソース線に読み出し電流が流れる間に非選択コントロールゲートはフローティング状態である。読み出し電流が流れる間は、非選択コントロールゲートをゲート電極とするメモリセルのチャネルは0Vから大きくなり、その結果、チャネルと非選択コントロールゲート間の容量結合によって非選択コントロールゲートの電位はVCCよりも大きくなる。このように非選択コントロールゲートの電位がVCCよりも大きくなると、非選択コントロールゲートをゲート電極とするメモリセルの抵抗が小さくなり、その結果読み出し電流が大きくなり、読み出しが高速化される。
<実施の形態4>
次に、この発明の第4の実施の形態に係る多値記憶NAND型EEPROMを説明する。
なお、第4の実施の形態に係るEEPROMは、第2の実施の形態に係るEEPROMなどと同様に、図1、図2に示した構成と同様な構成を持つ。
図41は、この発明の第4の実施の形態に係るEEPROMが有するデータ回路の回路図である。図41に示すデータ回路は、4値記憶を例に構成されている。
図41に示すデータ回路は、2つのラッチ回路(第1のラッチ回路及び第2のラッチ回路)を含む。書き込みの際には、2ビットの書き込みデータはこの2つのラッチ回路に蓄えられる。読み出しの際には、読み出した4値データはこの2つのラッチ回路に蓄えられ、その後IOA〜IODを介してチップの外部へ出力される。
図41に示すように、nチャネルMOSトランジスタQn21、Qn22、Qn23とpチャネルMOSトランジスタQp9、Qp10、Qp11により構成されるフリップフロップFF1とnチャネルMOSトランジスタQn29、Qn30、Qn31とpチャネルMOSトランジスタQp16、Qp17、Qp18により構成されるFF2に、書き込み/読み出しデータをラッチする。また、これらはセンスアンプとしても動作する。
フリップフロップFF1、FF2は、「“0”書き込みをするか、“1”書き込みをするか、“2”書き込みをするか、“3”書き込みをするか」を書き込みデータ情報としてラッチし、メモリセルが「“0”の情報を保持しているか、“1”の情報を保持しているか、“2”の情報を保持しているか、“3”の情報を保持しているか」を読み出しデータ情報としてセンスしラッチする。
データ入出力線IOA、IOBとフリップフロップFF1は、nチャネルMOSトランジスタQn28、Qn27を介して接続される。データ入出力線IOC、IODとフリップフロップFF2は、nチャネルMOSトランジスタQn35、Qn36を介して接続される。データ入出力線IOA、IOB、IOC、IODは、図1に示されたデータ入出力バッファ5にも接続される。nチャネルMOSトランジスタQn27、Qn28のゲートは、NAND論理回路G3とインバータI5で構成されるカラムアドレスデコーダの出力に接続される。
nチャネルMOSトランジスタQn26、Qn34は、それぞれフリップフロップFF1、FF2を信号ECH1、ECH2が“H”となってイコライズする。nチャネルMOSトランジスタQn24、Qn32は、フリップフロップFF1、FF2とMOSキャパシタQd1の接続を制御する。nチャネルMOSトランジスタQn25、Qn33は、フリップフロップFF1、FF2とMOSキャパシタQd2の接続を制御する。
nチャネルMOSトランジスタQn50C、Qn51Cで構成される回路は、活性化信号VRFYBACによって、フリップフロップFF1のデータに応じて、MOSキャパシタQd1のゲート電圧を変更する。nチャネルMOSトランジスタQn52C、Qn53Dで構成される回路は、活性化信号VRFYBBCによって、フリップフロップFF1のデータに応じて、MOSキャパシタQd2のゲート電圧を変更する。nチャネルMOSトランジスタQn53C、Qn54C、Qn55Cで構成される回路は、活性化信号VRFYBA2Cによって、フリップフロップFF1およびFF2のデータに応じて、MOSキャパシタQd1のゲート電圧を変更する。nチャネルMOSトランジスタQn56C、Qn57C、Qn58Cで構成される回路は、活性化信号VRFYBB2Cによって、フリップフロップFF1およびFF2のデータに応じて、MOSキャパシタQd2のゲート電圧を変更する。nチャネルMOSトランジスタQn1C、Qn2Cで構成される回路は、活性化信号VRFYBA1Cによって、フリップフロップFF2のデータに応じて、MOSキャパシタQd1のゲート電圧を変更する。nチャネルMOSトランジスタQn3C、Qn4Cで構成される回路は、活性化信号VRFYBB1Cによって、フリップフロップFF2のデータに応じて、MOSキャパシタQd2のゲート電圧を変更する。
MOSキャパシタQd1、Qd2は、ディプリーション型nチャネルMOSトランジスタで構成され、ビット線容量より十分小さくされる。nチャネルMOSトランジスタQn37は、信号PREAによってMOSキャパシタQd1を電圧VAに充電する。nチャネルMOSトランジスタQn38は、信号PREBによってMOSキャパシタQd2を電圧VBに充電する。nチャネルMOSトランジスタQn39、Qn40は、信号BLCA、BLCBによって、データ回路3とビット線BLa、BLbの接続をそれぞれ制御する。nチャネルMOSトランジスタQn37、Qn38で構成される回路はビット線電圧制御回路を兼ねる。
次に、このように構成されたEEPROMの動作を、動作波形図に従って説明する。以下では制御ゲートCG2Aが選択されている場合を示す。
<読み出し動作>
図42は、読み出し動作を示す動作波形図である。
図42に示すように、まず、時刻tw1、電圧VA、VBがそれぞれ1.8V、1.5Vとなって、ビット線BLa、BLbはそれぞれ1.8V、1.5Vになる。次に、信号PREA、PREBが“L”となって、ビット線BLa、BLbはフローティングとなる。続いて、時刻tw2に、制御ゲート・選択ゲート駆動回路によって選択されたブロックの選択された制御ゲートCG2Aは1V、非選択制御ゲートCG1A、CG3A、CG4Aと選択ゲートSG1A、SG2AはVCCにされる。選択されたメモリセルのしきい値が1V以下なら、ビット線電圧は1.5Vより低くなる。選択されたメモリセルのしきい値が1V以上なら、ビット線電圧は1.8Vのままとなる。その後、信号SAN1、SAP1がそれぞれ“L”、“H”となってフリップフロップFF1が非活性化され、信号ECH1が“H”となってイコライズされる。この後、時刻t3wに、信号RV1A、RV1Bが“H”となる。時刻tw4に、再度、信号SAN1、SAP1がそれぞれ“H”、“L”となることで、ノードN1の電圧がセンスされラッチされる。これで、「メモリセルのデータが“0”または“1”か、或いは“2”または“3”か」がフリップフロップFF1によってセンスされ、その情報はラッチされる。
次に、メモリセルのしきい値が0V以上か或いは、0V以下かが判定される。時刻tw5に、ビット線BLaが1.8Vに、ダミービット線BLbが1.5Vにプリチャージされ、その後フローティングにされる。その後、時刻tw6に選択された制御ゲートが0Vにされる。選択されたメモリセルのしきい値が0V以下なら、ビット線電圧は1.5Vより低くなる。選択されたメモリセルのしきい値が0V以上なら、ビット線電圧は1.8Vのままとなる。信号SAN2、SAP2がそれぞれ“L”、“H”となってフリップフロップFF2が非活性化され、信号ECH2が“H”となってイコライズされる。この後、時刻tw7に信号RV2A、RV2Bが“H”となる。時刻tw8に、信号SAN2、SAP2がそれぞれ“H”、“L”となることで、ノードN1の電圧がセンスされラッチされる。これで、「メモリセルのデータが“0”か、或いは“1”または“2”または“3”か」がフリップフロップFF2によってセンスされ、その情報はラッチされる。
図43は、時刻tw8のときにフリップフロップFF1、FF2がセンスし、ラッチしている読み出しデータを示す図である。この時のフリップフロップFF1、FF2のノードN3C、N5Cの電位は図43のようになる。
最後に、メモリセルに書き込まれたデータが「“0”または“1”または“2”か、あるいは“3”か」がセンスされる。時刻tw9にビット線BLaが1.8Vに、ダミービット線BLbが1.5Vにプリチャージされ、その後フローティングにされる。その後、時刻tw10に選択された制御ゲートが2Vにされる。選択されたメモリセルのしきい値が2V以下なら、ビット線電圧は1.5Vより低くなる。選択されたメモリセルのしきい値が2V以上なら、ビット線電圧は1.8Vのままとなる。時刻tw11にVRFYBA2CがVCCになる。
図43からわかるように、ノードN5Cが“high level”およびノードN3Cが“Low level”(つまりノードN4Cが“high level”)になるのは“1”データの場合のみである。従って“1”データの場合のみnチャネルMOSトランジスタQn54C、Qn55C、Qn53Cがオンし、ノードN1がVCCになる。その後、信号SAN2、SAP2がそれぞれ“L”、“H”となってフリップフロップFF2が非活性化され、信号ECH2が“H”となってイコライズされる。この後、時刻tw12に、信号RV2A、RV2Bが“H”となる。時刻tw13に、再度、信号SAN2、SAP2がそれぞれ“H”、“L”となることで、ノードN1の電圧がセンスされラッチされる。これで、「メモリセルのデータが“0”または“1”または“2”であるか、あるいは“3”か」がフリップフロップFF2によってセンスされ、その情報はラッチされる。
図44は、フリップフロップFF1、FF2がセンスし、ラッチする読み出しデータを示す図である。
フリップフロップFF1およびFF2に保持された2ビットのデータは時刻tw14にCENBが活性化されることにより、チップ外部に出力される。
書き込み動作、および書き込みベリファイ読み出し動作はそれぞれ、第3の実施の形態と、ほぼ同様に行えばよい。
また、第4の実施の形態では、ワード線に所定の読み出し電圧(例えば0V、1V、2V)を印加する前に、毎回ビット線及びダミービット線をプリチャージしている。
これに対し、第3の実施の形態では、読み出し及びベリファイ読み出し時に、最初にビット線及びダミービット線をプリチャージし、その後はプリチャージせず、ワード線の読み出し電圧を変化(例えば0Vから1V、2V)させている。このような第3の実施の形態においても、読み出し、あるいはベリファイ読み出し時に、ワード線に読み出し電圧(例えば0V、1V、2V)を印加する毎に、上記第4の実施の形態のようにビット線及びダミービット線をプリチャージするようにしても良い。
以上、この発明を第1〜第4の実施の形態により説明したが、これら第1〜第4の実施の形態において、下記のような、さらなる変形が可能である。
図45は、変形されたカラム構成を有するEEPROMの構成図である。
上記第1〜第4の実施の形態では、左右一つずつのビット線BLに、一つのデータ回路6**が対応したものを説明したが、左右複数ずつビット線BLに、一つのデータ回路6**が対応した形に変更することができる。
図45に示すように、変形されたカラム構成を有するEEPROMでは、4本のビット線BLai-1〜BLai-4、またはBLbi-1〜BLbi-4(iは0〜3)に対して、データ回路6**-0〜6**-mのうちの一つが設けられている。
以下、メモリセルアレイ1A側を例にとり説明する。
4本のビット線BLai-1〜BLai-4のうち、例えばBLai-1を選択するときには、データ回路側のトランスファゲート回路7*Aを駆動する駆動信号BLC1〜BLC4のうち、信号BLC1を“H”レベルとし、他の信号BLC2〜4をそれぞれ、“L”レベルとする。
また、同時に、非選択ビット線制御回路側のトランスファゲート回路7**Aを駆動する駆動信号BLC1D〜BLC4Dのうち、信号BLC1Dを“L”レベルとし、他の信号BLC2D〜4Dをそれぞれ、“H”レベルとする。これにより、選択されたビット線BLi-1だけがデータ回路6**-0〜6**-mに接続される。
これにより、選択されたビット線BLai-1だけがデータ回路6**-0〜6**-mに接続され、選択されていないビット線BLai-2〜BLai-4はそれぞれ、非選択ビット線制御回路20-0A〜20-mAに接続される。非選択ビット線制御回路20-0A〜20-mAは、選択されていないビット線BLai-2〜BLai-4の電位を制御する。
また、メモリセルアレイ1A、1Bに集積されるメモリセルは、NAND型のセルに限られることはなく、以下に説明するようなセルでも、この発明の実施が可能である。
図46は、NOR型のセルが集積されたメモリセルアレイを示す図である。図46に示すNOR型のセルは、ビット線BLに、選択ゲートを介して接続されている。
図47は、他のNOR型のセルが集積されたメモリセルアレイを示す図である。図47に示すNOR型のセルは、ビット線BLに、直接に接続されている。
図48は、グランドアレイ型のセルが集積されたメモリセルアレイを示す図である。図48に示すように、グランドアレイ型のセルは、ビット線BLとソース線Vsとを並行に配置したものである。グランドアレイ型のセルは、NOR型のメモリの一つである。
図49は、他のグランドアレイ型のセルが集積されたメモリセルアレイを示す図である。図49に示すグランドアレイ型のセルは、データを消去するときに使用される消去ゲートEGを有している。また、制御ゲートCGの一部を、メモリセルトランジスタのチャネルにオーバーラップさせた、いわゆるスプリットチャネル型になっている。
図50は、交互グランドアレイ型のセルが集積されたメモリセルアレイを示す図である。図50に示すように、交互グランドアレイ型のセルは、ビット線BLとソース線Vsとを並行に配置した点でグランドアレイ型のセルと一致するが、ビット線BLとソース線Vsとを交互に切り替えることが可能な点が相違している。
図51は、他の交互グランドアレイ型のセルが集積されたメモリセルアレイを示す図である。図51に示す交互グランドアレイ型のセルは、図50に示したグランドアレイ型のセルと同様な構成を有している。
図52は、DINOR(DIvided NOR)型のセルが集積されたメモリセルアレイを示す図である。図52に示すように、DINOR型のセルは、ビット線BLとソース線Vsとの間に、ビット線側選択トランジスタを介して、例えば4つのメモリセルトランジスタが並列に接続されて構成される。
図53は、AND型のセルが集積されたメモリセルアレイを示す図である。図53に示すように、AND型のセルは、ビット線BLとソース線Vsとの間に、ビット線側選択トランジスタおよびソース線側選択トランジスタを介して、例えば4つのメモリセルトランジスタが並列に接続されて構成される。
上記第1〜第4の実施の形態によれば、データ書き込みを行う際に、少なくとも1つのビット線電圧制御回路によって、ビット線を所望のビット線書き込み制御電圧に充電する。これにより、簡単な回路構成で、n値書き込みデータに応じたビット線書き込み制御電圧をビット線に印加するビット線電圧制御回路を実現できる。よって、カラム系回路の規模が小さくなり、チップサイズを小さくでき、低コストのn値記憶EEPROMを得ることができる。
例えばメモリセルへの書き込みデータをラッチ、およびメモリセルからの読み出しデータをセンス・ラッチする、多値のデータの数を2m(mは2以上の自然数)=n値としたとき、フリップフロップ回路の数をm個にできるので、カラム系回路の回路規模を小さくできる。そして、ベリファイ中、再度、書き込みを行うか否かを判断する判断回路とを具備するが、この判断回路を、前記ベリファイ中に、データラッチ・センスアンプ回路に、ベリファイ読み出し結果に応じて、更新されていく書き込みデータによって制御するように構成している。
なお、上記多値のデータの数nは、2(m−1)<n≦2mを満たす自然数であれば良い。