以下、本発明の実施の形態について図面を用いて説明する。
[第1の実施形態]
本実施の形態は、複数のメモリアレイのテストを効率的に行なう半導体記憶装置に関する。
(半導体記憶装置の構成)
図1は、本実施の形態に係る半導体記憶装置の構成を示すブロック図である。この半導体記憶装置は、WEST側専用の構成として、メモリアレイ10aと、Xデコーダ20aと、Yデコーダ21aと、Yゲート11aと、センスアンプ12aと、ライトドライバ13aとを含む。EAST側専用の構成として、メモリアレイ10bと、Xデコーダ20bと、Yデコーダ21bと、Yゲート11bと、センスアンプ12bと、ライトドライバ13bとを含む。
EAST側とWEST側に共通の構成として、アドレスバッファ14と、I/Oバッファ15と、ベリファイ回路16と、ページバッファ17と、スワップ回路18と、CPU19と、アドレス変換回路22と、制御信号生成回路23と、テストモード制御回路24とを含む。
メモリアレイ10a,10bは、行列状に配置された複数のフラッシュメモリ用のメモリセルを含む。メモリアレイ10aは、バンク4〜バンク6に分割され、メモリアレイ10bは、バンク1〜バンク3に分割される。また、メモリアレイ10a,10bは、総計512個のブロックを有する。メモリアレイ10a,10bは、それぞれ正規列およびスペア列と、正規ブロックとスペアブロックとを有する。内部アドレスAO<23>が「1」のときには、WEST側のメモリアレイ10aが選択され、内部アドレスAO<23>が「0」のときには、EAST側のメモリアレイ10bが選択される。また、内部アドレスAO<23:19>で、6個のバンクの中の1個のバンクが選択される。内部アドレスAO<23:13>で、512個のブロックの中の1個が選択される。
Xデコーダ20aは、バンク4、5、6ごとに設けられる。バンク4用のXデコーダ20aは、WESTバンク制御信号OBP_W<4>が「H」のときに活性化され、バンク5用のXデコーダ20aは、WESTバンク制御信号OBP_W<5>が「H」のときに活性化され、バンク6用のXデコーダ20aは、WESTバンク制御信号OBP_W<6>が「H」のときに活性化される。活性化されたXデコーダ20aは、内部アドレスAP<23:13>に基づき、メモリアレイ10aのブロックを選択する。活性化されたXデコーダ20aは、バンク制御信号生成回路23からWEST側のスペアブロックのアドレスを受けたときには、選択したブロックに代えて、スペアブロックを選択する。活性化されたXデコーダ20aは、内部アドレスAP<12:0>に基づき、選択したブロックの中の1つの行を選択する。
Yデコーダ21aは、内部アドレスAP<23:0>を受けて、メモリアレイ10aの列を選択するための列選択信号を生成する。Yデコーダ21a内のスペアデコーダは、WESTバンク制御信号OBP_W<6>、OBP_W<5>、およびOBP_W<4>のいずれかが「H」のとき(つまり、WEST側が選択されているとき)に活性化し、選択された列に欠陥があるときに、1個のスペア列を選択するとともに、欠陥のある列のアドレスであるスペア列アドレス情報EAをスワップ回路18に送る。
Yゲート11aは、Yデコーダ21aからの列選択信号にしたがって選択されるメモリアレイ10aの列を内部データ線に接続する。
Xデコーダ20bは、バンク1、2、3ごとに設けられる。バンク1用のXデコーダ20bは、EASTバンク制御信号OBP_E<1>が「H」のときに活性化され、バンク2用のXデコーダ20bは、EASTバンク制御信号OBP_E<2>が「H」のときに、活性化され、バンク3用のXデコーダ20bは、EASTバンク制御信号OBP_E<3>が「H」のときに活性化される。活性化されたXデコーダ20bは、内部アドレスAP<23:13>に基づき、メモリアレイ10bのブロックを選択する。活性化されたXデコーダ20bは、バンク制御信号生成回路23からEAST側のスペアブロックのアドレスを受けたときには、選択したブロックに代えて、スペアブロックを選択する。活性化されたXデコーダ20bは、内部アドレスAP<12:0>に基づき、選択したブロックの中の1つの行を選択する。
Yデコーダ21bは、内部アドレスAP<23:0>を受けて、メモリアレイ10bの列を選択するための列選択信号を生成する。Yデコーダ21b内のスペアデコーダは、EASTバンク制御信号OBP_E<1>、OBP_E<2>、およびOBP_E<3>のいずれかが「H」のとき(つまり、EAST側が選択されているとき)に活性化し、選択された列に欠陥があるときに、1個のスペア列を選択するとともに、欠陥のある列のアドレスであるスペア列アドレス情報EAをスワップ回路18に送る。
Yゲート11bは、Yデコーダ21bからの列選択信号にしたがって選択されるメモリアレイ10bの列を内部データ線に接続する。
ページバッファ17は、緩衝記憶部であり、一時的にデータを保存する。ページバッファには、書込み時にベリファイ回路16を経由して、最初に書込みデータがセットされ、その後引き続いてベリファイ回路16によって比較された結果が書込まれる。図2は、ページバッファ17に記憶される書込みデータの例を示す。同図に示すように、ページバッファ17は、128ワードの容量を有し、WEST側のメモリアレイの64ワードのメモリセルの書込みデータと、EAST側のメモリアレイの64ワードのメモリセルの書込みデータとを保持する。書込みデータは、内部アドレスAO<6:0>によって16ビットが選択される。内部アドレスAO<6>が「L」のときには、ページの前半の書込みデータが選択され、内部アドレスAO<6>が「H」のときには、ページの後半の書込みデータが選択される。また、内部アドレスAO<5>が「L」のときには、EAST側のメモリセルの書込みデータが選択され、内部アドレスAO<5>が「H」のときには、WEST側のメモリセルの書込みデータが選択される。
アドレスバッファ14は、外部アドレスAA<23:0>をラッチして内部アドレスAE<23:0>および内部アドレスAO<23:0>を生成する。
CPU19は、半導体記憶装置の全体制御を行なう。また、CPU19は、アドレスバッファ14から内部アドレスAO<23:0>の初期値を受け、内部動作時には、内部アドレスAO<23:0>を更新する。
アドレス変換回路22は、CPU19から内部アドレスAO<23:0>と、アドレスバッファ14から内部アドレスAE<23:0>とを受けて、メモリアレイ用アドレスAP<23:0>を生成する。メモリアレイ用アドレスAP<23:0>は、第5ビット目が内部アドレスAE<5>であり、それ以外のビットiは、内部アドレスAO<i>である。すなわち、AP<23:6>=AO<23:6>、AP<5>=AE<5>、AP<4:0>=AO<4:0>となる。このように、メモリアレイ用アドレスAP<5>を内部アドレスAE<5>としたのは、内部アドレスAO<5>は、ページバッファ17内のEAST側のデータと、WEST側のデータの選択を切替えるためのものであり、内部アドレスAO<5>の切替えによって、メモリアレイ10a,10bの指定アドレスが変化しないようにしたものである。
WEST側のセンスアンプ12aは、WESTバンク制御信号OBP_W<4>〜OBP_W<6>のいずれかが「H」のときに活性化される。センスアンプ12aは、活性化されたときに、選択された16個の正規列の選択された行のメモリセルの記憶データ(16ビット)と、欠陥があったときには、選択されたスペア列の選択された行のメモリセルの記憶データ(1ビット)とを増幅した後、スワップ回路18に送る。
EAST側のセンスアンプ12bは、EASTバンク制御信号OBP_E<1>〜OBP_E<3>のいずれかが「H」のときに活性化される。センスアンプ12bは、活性化されたときに、選択された16個の正規列の選択された行のメモリセルの記憶データ(16ビット)と、欠陥があったときには、選択されたスペア列の選択された行のメモリセルの記憶データ(1ビット)とを増幅した後、スワップ回路18に送る。
スワップ回路18は、スペアアドレス保持回路を含み、スペアドレス保持回路は活性化された側のスペアデコーダから送られるスペア列アドレス情報EAをラッチする。図3は、スワップ回路18が備えるスペアドレス保持回路を示す。同図に示すように、スペアアドレス情報EAは、フリップフロップL1にラッチされる。WEST選択信号OBPEN_Wが「L」、かつEAST選択信号OBPEN_Eが「L」となると、フリップフロップL1がリセットされる。
スワップ回路18は、ベリファイ時に、センスアンプ12aまたはセンスアンプ12bのうちの活性化された方のセンスアンプから選択された16個の正規列と1個のスペア列の記憶データを受けて、スペア列アドレス情報EAをラッチしているときには、スペア列アドレス情報EAに基づき、欠陥のある列を特定し、欠陥のある列のメモリセルの記憶データとスペア列のメモリセルの記憶データとを入れ替える。スワップ回路18は、16ビットの正規列の記憶データを共通バス90を通じてベリファイ回路16に送る。
スワップ回路18は、書込みデータの転送時に、ベリファイ回路16から共通バス90を通じて書込みデータを受ける。スワップ回路18は、スペア列アドレス情報EAをラッチしているときには、スペア列アドレス情報EAに基づき、欠陥のある列を特定し、ベリファイ回路16から送られた欠陥のある列の書込みデータとスペア列の書込みデータ(デフォルト値)とを入れ替える。スワップ回路18は、スペア列アドレス情報EAをラッチしていないときには、スペア列への書込みデータをデフォルト値のままとする。スワップ回路18は、選択された16個の正規列およびスペア列に書込む17ビットの書込みデータをライトドライバ13aおよびライトドライバ13bに送る。この書込みデータは、ライトドライバ13aおよびライトドライバ13bのうち、活性化された方で受け取られて保持される。
EAST側のライトドライバ13bは、EASTバンク制御信号OBP_E<1>〜OBP_E<3>のいずれかが「H」のときに活性化される。
ライトドライバ13bは、活性化されているときに、スワップ回路18から17ビットの書込みデータを受けたときには、それを保持する。また、ライトドライバ13bは、書込みパルスの印加時に活性化され、保持している書込みデータに基づき、EAST側のメモリアレイ10bの中の選択された行と、選択された正規列および選択されたスペア列とで指定されるメモリセルに、図示しない電源制御回路で生成された書込みパルスを印加する。
WEST側のライトドライバ13aは、WESTバンク制御信号OBP_W<4>〜OBP_W<6>のいずれかが「H」のときに活性化される。
ライトドライバ13aは、活性化されているときに、スワップ回路18から17ビットの書込みデータを受けたときには、それを保持する。また、ライトドライバ13aは、書込みパルスの印加時に活性化され、保持している書込みデータに基づき、WEST側のメモリアレイ10aの中の選択された行と、選択された正規列および選択されたスペア列とで指定されるメモリセルに、図示しない電源制御回路で生成された書込みパルスを印加する。
ベリファイ回路16は、ページバッファ17から送られた書込みデータと、スワップ回路18から共通バス90を通じて送られた記憶データとが一致するか否かを調べ、その結果をCPU19に送る。また、ベリファイ回路16は、ページバッファ17から出力された書込みデータを共通バス90を通じてスワップ回路18に送る。
I/Oバッファ15は、外部からデータ入出力端子DQを通じて入力される書込みデータを受けて、ページバッファ17に出力する。また、I/Oバッファ15は、ベリファイ時に、CPU19からベリファイ結果を示すデータを受けて、データ入出力端子DQを通じて外部に出力する。また、I/Oバッファ15は、読出し時にセンスアンプ12a,12bから読出しデータを受けて、データ入出力端子DQを通じて外部に出力する。
テストモード制御回路24は、マルチプログラムテストモードに移行すると、マルチプログラム信号MLTIPGMを「H」とし、両バンクセレクト信号BSEL2を「H」とする。
図4は、制御信号生成回路23の詳細な構成を示す。同図を参照して、制御信号生成回路23は、動作バンク制御回路31と、WEST用OBPデコーダ32と、EAST用OBPデコーダ33と、EAST用BLKスペア判定回路34と、EXNOR回路35と、WEST用BLKスペア判定回路36とを含む。
動作バンク制御回路31は、CPU19から内部アドレスAO<23:19>を受け、テストモード制御回路24から両バンクセレクト信号BSEL2を受けて、バンク選択信号OBP<6:1>を出力する。バンク選択信号OBP<k>(k=1〜3)が「H」となると、EAST側のメモリアレイ10bのバンクkが選択される。バンク選択信号OBP<k>(k=4〜6)が「H」となると、WEST側のメモリアレイ10aのバンクkが選択される。
動作バンク制御回路31は、内部アドレスAO<23:19>と両バンク選択信号BSEL2をと受ける論理回路を含む。
通常動作時には、両バンクセレクト信号BSLE2が「L」となり、EAST側のバンクとWEST側のバンクのうち、1つが選択される。つまり、論理回路は、両バンク選択信号BSEL2が「L」のときには、内部アドレスAO<23:19>と同一のアドレスを生成する。そして、内部アドレスAO<23:19>の値に応じて、バンク選択信号OBP<1>〜OBP<6>のいずれかが「H」となる。内部アドレスAO<23>が「H」は、WEST側のメモリアレイ10aを指定するので、内部アドレスAO<23>が「H」で、バンク選択信号OBP<4>〜OBP<6>のいずれかが「H」となる。また、内部アドレスAO<23>が「L」は、EAST側のメモリアレイ10bを指定するので、内部アドレスAO<23>=「L」で、バンク選択信号OBP<1>〜OBP<3>のいずれかが「H」となる。
一方、テストモード時には、両バンクセレクト信号BSLE2が「H」となり、EAST側の1つのバンクとWEST側の1つのバンクの両方が選択される。つまり、論理回路は、両バンク選択信号BSEL2が「H」のときには、内部アドレスAO<23:19>の各ビットの論理を反転したアドレスIAO<23:19>を生成する。内部アドレスAO<23:19>と反転した内部アドレスIAO<23:19>の値に応じて、バンク選択信号OBP<1>〜OBP<3>のいずれかが「H」となり、バンク選択信号OBP<4>〜OBP<6>のいずれかが「H」となる。この場合、バンク選択信号OBP<1>とバンク選択信号OBP<6>のペアが「H」となるか、バンク選択信号OBP<2>とバンク選択信号OBP<5>のペアが「H」となるか、またはバンク選択信号OBP<3>とバンク選択信号OBP<4>のペアが「H」となる。
切替え制御回路38は、CPU19から内部アドレスAO<5>を受けて、WEST選択信号OBPEN_Wと、EAST選択信号OBPEN_Eを出力する。
切替え制御回路38は、メモリアレイ10a,10bのメモリセルへの書込みパルスの印加時には、WEST選択信号OBPEN_W=「H」、およびEAST選択信号OBPEN_E=「H」にする。切替え制御回路38は、スワップ回路のリセット時には、WEST選択信号OBPEN_W=「L」、およびEAST選択信号OBPEN_E=「L」にする。切替え制御回路38は、ベリファイ時およびページバッファの書込みデータのライトドライバへの転送時において、内部アドレスAO<5>=「L」のときに、WEST選択信号OBPEN_W=「L」、およびEAST選択信号OBPEN_E=「H」にし、内部アドレスAO<5>=「H」のときに、WEST選択信号OBPEN_W=「H」、およびEAST選択信号OBPEN_E=「L」にする。
WEST用OBPデコーダ32は、WEST選択信号OBPEN_Wと、マルチプログラム信号MLTIPGMと、バンク選択信号OBP<6:4>とを受けて、WESTバンク制御信号OBP_W<6:4>を出力する。マルチプログラム信号MULTIPGMが「H」(テストモード時)、かつWEST選択信号OBPEN_Wが「H」(書込みパルスの印加時と、ベリファイ時およびページバッファ内の書込みデータの転送時において内部アドレスAO<5>=「H」のとき)のとき、WESTバンク制御信号OBP_W<6:4>の値は、バンク選択信号OBP<6:4>の値と同一となる。すなわち、OBP_W<6:4>のいずれか1つが「H」となる。
一方、マルチプログラム信号MULTIPGMが「H」(テストモード時)、かつWEST選択信号OBPEN_Wが「L」(スワップ回路のリセット時と、ベリファイ時およびページバッファ内の書込みデータの転送時において内部アドレスAO<5>=「L」のとき)のとき、WESTバンク制御信号OBP_W<6:4>の値は「L」となる。
WESTバンク制御信号OBP_W<k>(k=4〜6)は、WEST側のライトドライバ13a、センスアンプ12a、WEST側のバンク(k)用のXデコーダ20a、および図示しないWEST側のスペア回路に送られる。
EAST用OBPデコーダ33は、EAST選択信号OBPEN_Eと、マルチプログラム信号MLTIPGMと、バンク選択信号OBP<3:1>とを受けて、EASTバンク制御信号OBP_E<3:1>を出力する。マルチプログラム信号MULTIPGMが「H」(テストモード時)、かつEAST選択信号OBPEN_Eが「H」(書込みパルスの印加時と、ベリファイ時およびページバッファ内の書込みデータの転送時において内部アドレスAO<5>=「L」のとき)のとき、EASTバンク制御信号OBP_E<3:1>の値は、バンク選択信号OBP<3:1>の値と同一となる。すなわち、OBP_E<3:1>のいずれか1つが「H」となる。
一方、マルチプログラム信号MULTIPGMが「H」(テストモード時)、かつEAST選択信号OBPEN_Eが「L」(スワップ回路のリセット時と、ベリファイ時およびページバッファ内の書込みデータの転送時において内部アドレスAO<5>=「H」のとき)のとき、EASTバンク制御信号OBP_E<3:1>の値は「L」となる。
EASTバンク制御信号OBP_E<k>(k=4〜6)は、EAST側のライトドライバ13b、センスアンプ12b、EAST側のバンク(k)用のXデコーダ20b、および図示しないEAST側のスペア回路に送られる。
EAST用BLKスペア判定回路34は、EAST側のスペアブロックアドレス情報をラッチする。EAST側のスペアブロックアドレス情報とは、欠陥のあるEAST側のブロックのアドレスと、それに置き換えるべきEAST側のスペアブロックのアドレスとの対応関係を定めた情報である。EAST用BLKスペア判定回路34は、内部アドレスAO<23:13>を受けると、内部アドレスAO<23:13>に基づいて、ブロックのアドレスを特定し、ラッチしているEAST側のスペアブロックアドレス情報に基づき、特定したブロックのアドレスが欠陥のあるEAST側のブロックのアドレスと同一のときには、欠陥のあるEAST側のブロックのアドレスに置き換えるべきEAST側のスペアブロックのアドレスを特定する。EAST用BLKスペア判定回路34は、特定したEAST側のスペアブロックのアドレスをEAST側のバンク用のXデコーダ20bに送る。
内部アドレスAO<23>=「L」がEAST側のメモリアレイ10bを指定するので、EAST用BLKスペアブロック判定回路34は、内部アドレスAO<23>が「L」の「場合に、該当するスペアブロック情報をラッチしているときに、EAST側のスペアブロックのアドレスを出力し、内部アドレスAO<23>が「H」のときには、EAST側のスペアブロックのアドレスを出力することはない。
EXNOR回路35は、マルチプログラムMULTIPGMと、内部アドレスAO<23:13>とを受ける。EXNOR回路35は、マルチプログラムMULTIPGMが「L」のときには、内部アドレスAO<23:13>をWEST用BLKスペア判定回路36に出力し、マルチプログラムMULTIPGMが「H」のときには、内部アドレスAO<23:13>の各ビットの論理を反転した内部アドレスIAO<23:13>をWEST用BLKスペア判定回路36に出力する。
WEST用BLKスペア判定回路36は、WEST側のスペアブロックアドレス情報をラッチする。WEST側のスペアブロックアドレス情報とは、欠陥のあるWEST側のブロックのアドレスと、それに置き換えるべきWEST側のスペアブロックのアドレスとの対応関係を定めた情報である。WEST用BLKスペア判定回路36は、内部アドレスAO<23:13>または反転内部アドレスIAO<23:13>を受けると、内部アドレスAO<23:13>または反転内部アドレスIAO<23:13>に基づいて、ブロックのアドレスを特定し、ラッチしているWEST側のスペアブロックアドレス情報に基づき、特定したブロックのアドレスが欠陥のあるWEST側のブロックのアドレスと同一のときには、欠陥のあるWEST側のブロックのアドレスに置き換えるべきWEST側のスペアブロックのアドレスを特定する。WEST用BLKスペア判定回路36は、特定したWEST側のスペアブロックのアドレスをWEST側のバンク用のXデコーダ20aに送る。
内部アドレスAO<23>が「H」がWEST側のメモリアレイ10aを指定するので、WEST用BLKスペアブロック判定回路36に内部アドレスAO<23:13>が入力された場合には、内部アドレスAO<23>が「H」の場合に、該当するスペアブロック情報をラッチしているときに、WEST側のスペアブロックのアドレスを出力し、内部アドレスAO<23>が「L」のときには、WEST側のスペアブロックのアドレスを出力することはない。したがって、EAST用BLKスペア判定回路34からEAST側のスペアブロックのアドレスが出力されるときには、WEST用BLKスペアブロック判定回路36からWEST側のスペアブロックのアドレスが出力されることはない。また、WES用BLKスペア判定回路36からWEST側のスペアブロックのアドレスが出力されるときには、EAST用BLKスペアブロック判定回路34からEAST側のスペアブロックのアドレスが出力されることはない。
一方、WEST用BLKスペアブロック判定回路36に反転内部アドレスIAO<23:13>が入力された場合(すなわち、マルチプログラムが「H」のとき)には、反転内部アドレスIAO<23>が「H」の場合に、該当するスペアブロック情報をラッチしているときに、WEST側のスペアブロックのアドレスを出力し、反転内部アドレスIAO<23>が「L」のときには、WEST側のスペアブロックのアドレスを出力することはない。したがって、EAST用BLKスペア判定回路34からEAST側のスペアブロックのアドレスが出力されるときに、同時にWEST用BLKスペアブロック判定回路36からWEST側のスペアブロックのアドレスが出力されることもありうる。
図5は、制御信号の論理値の組合せ、およびその組合せで実行される機能を示す図である。同図は、マルチプログラム信号MULTIPGM、EAST選択信号OBPEN_E、およびWEST選択信号OBPEN_Wの論理値の組合せに対応する、バンク選択信号OBP<*>(*=1〜6)の論理値と、EASTバンク制御信号OBP_E<*>(*=1〜3)の論理値と、WESTバンク制御信号OBP_W<*>(*=4〜6)の論理値と、機能をまとめたものである。
同図に示すように、マルチプログラム信号MULTIPGMが「1」のときの、バンク選択信号OBP<n、7−n>は、バンク選択信号OBP<n>(n=1〜3のいずれか)とOBP<7−n>とが「1」となることを示す。つまり、EAST側のバンクと、対となるWEST側のバンクが選択されることを表わしている。
一方、マルチプログラム信号MULTIPGMが「0」のときの、バンク選択信号OBP<n>は、バンク選択信号OBP<n>(n=1〜6のいずれか)が「H」となることを示す。つまり、EAST側およびWEST側のバンクのうちの1つが選択されることを表わしている。
マルチプログラム信号MULTIPGMが「1」の場合に、EAST選択信号OPEN_Eが「0」、かつWEST選択信号OPEN_Wが「0」のときには、EASTバンク制御信号OBP_E<3:1>が「0」となり、WESTバンク制御信号OBP_W<6:4>が「0」となる。このときには、スワップ回路のリセットが行なわれる。
また、マルチプログラム信号MULTIPGMが「1」の場合に、EAST選択信号OPEN_Eが「0」、かつWEST選択信号OPEN_Wが「1」のときには、EASTバンク制御信号OBP_E<3:1>が「0」となり、WESTバンク制御信号OBP_W<7−n>が「1」となる。このときには、WEST側のベリファイまたはWEST側の書込みデータの転送が行なわれる。
また、マルチプログラム信号MULTIPGMが「1」の場合に、EAST選択信号OPEN_Eが「1」、かつWEST選択信号OPEN_Wが「0」のときには、EASTバンク制御信号OBP_E<n>が「0」となり、WESTバンク制御信号OBP_W<6:4>が「0」となる。このときには、EAST側のベリファイまたはEAST側の書込みデータの転送が行なわれる。
また、マルチプログラム信号MULTIPGMが「1」の場合に、EAST選択信号OPEN_Eが「1」、かつWEST選択信号OPEN_Wが「1」のときには、EASTバンク制御信号OBP_E<n>が「1」となり、WESTバンク制御信号OBP_W<7−n>が「1」となる。このときには、書込みパルスの印加が行なわれる。
また、マルチプログラム信号MULTIPGMが「0」の場合には、バンク選択信号OBP<n>(n=1〜3のいずれか)が「H」のときには、EASTバンク制御信号OBP_E<n>が「1」となり、バンク選択信号OBP<n>(n=4〜6のいずれか)が「H」のときには、WESTバンク制御信号OBP_W<n>が「1」となり。このときには、通常動作が行なわれる。
(書込みシーケンス)
図6は、本実施の形態に係る半導体記憶装置のマルチプログラムテストの書込みシーケンスのフローチャートである。同図を参照して、マルチプログラムテストモードに移行すると、テストモード制御回路24は、マルチプログラム信号MLTIPGMを「H」とし、両バンクセレクト信号BSEL2を「H」とする。
動作バンク制御回路31は、内部アドレスAO<23:19>に基づいて、バンク選択信号OBP<k>(k=1〜3のいずれか)およびバンク選択信号OBP<7−k>を「H」とし、OBP<i>(iは、1〜6で、kおよび(7−k)以外のすべての数)を「L」とする。これにより、EAST側のバンクkとWEST側のバンク(7−k)が選択される。CPU19は、ステップS201〜216において、EAST側とWEST側を交互に行なうため内部アドレスAO<23:0>のうち、第5ビットの値AO<5>のみを切替え、その他のビットは固定する。
ステップS201において、CPU19は、各回路にEAST側の下裾ベリファイの実行を指示する。
まず、CPU19は、ページバッファ17内に保持されているEAST側の書込みデータを選択するために内部アドレスAO<5>を「L」にする。
切替え制御回路38は、下裾ベリファイの実行の指示、および内部アドレスAO<5>=「L」を受けて、EAST選択信号OBPEN_E=「H」、かつWEST選択信号OBPEN_Wを「L」とする。
WEST用OBPデコーダ32は、WEST選択信号OBPEN_W=「L」により、WESTバンク制御信号OBP_W<6:4>を「L」にする。WESTバンク制御信号OBP_W<6:4>が「L」となると、WEST側のセンスアンプ12a、WEST側のバンク用のXデコーダ20a、図示しないWEST側のスペア回路、およびWEST側のライトドライバ13aが非活性化される。
一方、EAST用OBPデコーダ33は、マルチプログラムMULTIPGM=「H」、EAST選択信号OBPEN_E=「H」、およびバンク選択信号OBP<k>=「H」により、EASTバンク制御信号OBP_E<k>を「H」とし、OBP_E<j>(jは1〜3で、k以外の数)を「L」とする。EASTバンク制御信号OBP_E<k>が「H」となると、EAST側のセンスアンプ12b、EAST側のバンク(k)用のXデコーダ20b、図示しないEAST側のスペア回路、およびEAST側のライトドライバ13bが活性化される。
また、EAST用BLKスペア判定回路34は、内部アドレスAO<23:13>に基づき、EAST側のブロックのアドレスを特定し、ラッチしているスペアブロックアドレス情報に基づき、特定したEAST側のブロックのアドレスが欠陥のあるブロックのアドレスと同一のときには、欠陥のあるEAST側のブロックのアドレスに置き換えるEAST側のスペアブロックのアドレスを特定する。EAST用BLKスペア判定回路34は、特定したEAST側のスペアブロックのアドレスをEAST側のバンク用のXデコーダ20bに送る。
また、WEST用BLKスペア判定回路36は、マルチプログラムMULTIPGM=「H」によって、EXNOR回路35で反転された内部アドレスIAO<23:13>に基づき、WEST側のブロックのアドレスを特定し、ラッチしているスペアブロックアドレス情報に基づき、特定したWEST側のブロックのアドレスが欠陥のあるブロックのアドレスと同一のときには、欠陥のあるWEST側のブロックのアドレスに置き換えるWEST側のスペアブロックのアドレスを特定する。WEST用BLKスペア判定回路36は、特定したWEST側のスペアブロックのアドレスをWEST側のバンク用のXデコーダ20aに送る。
活性化されたEAST側のバンク(k)用のXデコーダ20bは、バンク(k)のうちの内部アドレスAP<12:0>で指定されるブロックを選択する。そして、活性化されたEAST側のバンク(k)用のXデコーダ20bは、スペアブロックのアドレスを受けたときには、選択したブロックに代えて、スペアブロックを選択する。また、活性化されたEAST側のバンク(k)用のXデコーダ20bは、内部アドレスAP<12:0>に基づき、選択したブロックの中の1つの行を選択し、EAST側のYデコーダ21bは、内部アドレスAP<12:0>に基づき、16個の列を選択する。
また、活性化されたEAST側のスペアデコーダは、選択された列に欠陥があるときに、1個のスペア列を選択するとともに、欠陥のある列のアドレスであるスペア列アドレス情報EAをスワップ回路18に送り、スワップ回路18は、スペア列アドレス情報EAをラッチする。
活性化されたEAST側のセンスアンプ12bは、選択された16個の正規列の選択された行のメモリセルの記憶データ(16ビット)と、欠陥があったときには、選択されたスペア列の選択された行のメモリセルの記憶データ(1ビット)とを増幅した後、スワップ回路18に送る。
スワップ回路18は、スペア列アドレス情報EAをラッチしているときには、スペア列アドレス情報EAに基づき、欠陥のある列を特定し、欠陥のある列のメモリセルの記憶データとスペア列のメモリセルの記憶データとを入れ替える。スワップ回路18は、16ビットの正規列の記憶データを共通バス90を通じてベリファイ回路16に送る。
CPU19は、内部アドレスAO<6:0>に基づき、AO<5>=「L」により、ページバッファ17の16ビットのEAST側のメモリセルの書込みデータを選択して、ベリファイ回路16に出力させる。
ベリファイ回路16は、ページバッファ17から出力された書込みデータと、スワップ回路18から出力された記憶データとが一致するか否かを調べ、その結果をCPU19に送る。
ステップS202において、CPU19は、各回路にスワップ回路18のリセットを指示する。
切替え制御回路38は、スワップ回路18のリセットの指示を受けて、EAST選択信号OBPEN_E=「L」、かつWEST選択信号OBPEN_Wを「L」とする。WEST用OBPデコーダ32は、WEST選択信号OBPEN_W=「L」により、WESTバンク制御信号OBP_W<6:4>を「L」にする。WESTバンク制御信号OBP_W<6:4>が「L」となると、WEST側のセンスアンプ12a、WEST側のバンク用のXデコーダ20a、図示しないWEST側のスペア回路、およびWEST側のライトドライバ13aが非活性化される。
一方、EAST用OBPデコーダ33は、EAST選択信号OBPEN_E=「L」により、EASTバンク制御信号OBP_E<3:1>を「L」にする。EASTバンク制御信号OBP_E<3:1>が「L」となると、EAST側のセンスアンプ12b、EAST側のバンク用のXデコーダ20b、図示しないEAST側のスペア回路、およびEAST側のライトドライバ13bが非活性化される。
スワップ回路18は、EAST選択信号OBPEN_E=「L」、かつWEST選択信号OBPEN_W=「L」となると、ラッチしているスペアアドレス情報EAをリセットする。これにより、次に、WEST側のスペアデコーダから送られるスペアアドレス情報EAの取込みに備える。
ステップS203において、CPU19は、各回路にWEST側の下裾ベリファイの実行を指示する。
まず、CPU19は、ページバッファ17内に保持されているWEST側の書込みデータを選択するために内部アドレスAO<5>を「H」にする。
切替え制御回路38は、下裾ベリファイの実行の指示、および内部アドレスAO<5>=「H」を受けて、EAST選択信号OBPEN_E=「L」、かつWEST選択信号OBPEN_Wを「H」とする。
EAST用OBPデコーダ33は、EAST選択信号OBPEN_E=「L」により、EASTバンク制御信号OBP_E<3:1>を「L」にする。EASTバンク制御信号OBP_E<3:1>が「L」となると、EAST側のセンスアンプ12b、EAST側のバンク用のXデコーダ20b、図示しないEAST側のスペア回路、およびEAST側のライトドライバ13bが非活性化される。
一方、WEST用OBPデコーダ32は、マルチプログラムMULTIPGM=「H」、WEST選択信号OBPEN_W=「H」、およびバンク選択信号OBP<7−k>=「H」により、WESTバンク制御信号OBP_W<7−k>を「H」とし、OBP_W<j>(jは4〜6で、(7−k)以外の数)を「L」とする。WESTバンク制御信号OBP_W<7−k>が「H」となると、WEST側のセンスアンプ12a、WEST側のバンク(7−k)用のXデコーダ20a、図示しないWEST側のスペア回路、およびWEST側のライトドライバ13aが活性化される。
活性化されたWEST側のバンク(7−k)用のXデコーダ20aは、バンク(7−k)のうちの内部アドレスAP<12:0>で指定されるブロックを選択する。そして、活性化されたWEST側のバンク(7−k)用のXデコーダ20aは、スペアブロックのアドレスを受けたときには、選択したブロックに代えてスペアブロックを選択する。また、活性化されたWEST側のバンク(7−k)用のXデコーダ20aは、内部アドレスAP<12:0>に基づき、選択したブロックの中の1つの行を選択し、WEST側のYデコーダ21aは、内部アドレスAP<12:0>に基づき、16個の列を選択する。
また、活性化されたWEST側のスペアデコーダは、選択された列に欠陥があるときに、1個のスペア列を選択するとともに、欠陥のある列のアドレスであるスペア列アドレス情報EAをスワップ回路18に送り、スワップ回路18は、スペア列アドレス情報EAをラッチする。
活性化されたWEST側のセンスアンプ12aは、選択された16個の正規列の選択された行のメモリセルの記憶データ(16ビット)と、欠陥があったときには、選択されたスペア列の選択された行のメモリセルの記憶データ(1ビット)とを増幅した後、スワップ回路18に送る。
スワップ回路18は、スペア列アドレス情報EAをラッチしているときには、スペア列アドレス情報EAに基づき、欠陥のある列を特定し、欠陥のある列のメモリセルの記憶データとスペア列のメモリセルの記憶データとを入れ替える。スワップ回路18は、16ビットの正規列の記憶データを共通バス90を通じてベリファイ回路16に送る。
CPU19は、内部アドレスAO<6:0>に基づき、AO<5>=「H」により、ページバッファ17の16ビットのWEST側のメモリセルの書込みデータを選択して、ベリファイ回路16に出力させる。
ベリファイ回路16は、ページバッファ17から出力された書込みデータと、スワップ回路18から出力された記憶データとが一致するか否かを調べ、その結果をCPU19に送る。
ステップS204において、CPU19は、各回路にスワップ回路18のリセットを指示し、ステップS202と同様にして、スワップ回路18でラッチしているスペアアドレス情報がリセットされ、次に、EAST側のスペアデコーダから送られるスペアアドレス情報EAの取込みに備える。
ステップS205において、CPU19は、各回路にEAST側のプログラムデータ(書込みデータ)の転送を指示する。
まず、CPU19は、ページバッファ17内に保持されているEAST側の書込みデータを選択するために内部アドレスAO<5>を「L」にする。
切替え制御回路38は、書込みデータの転送の指示、および内部アドレスAO<5>=「L」を受けて、EAST選択信号OBPEN_E=「H」、かつWEST選択信号OBPEN_Wを「L」とする。
WEST用OBPデコーダ32は、WEST選択信号OBPEN_W=「L」により、WESTバンク制御信号OBP_W<6:4>を「L」にする。WESTバンク制御信号OBP_W<6:4>が「L」となると、WEST側のセンスアンプ12a、WEST側のバンク用のXデコーダ20a、図示しないWEST側のスペア回路、およびWEST側のライトドライバ13aが非活性化される。
一方、EAST用OBPデコーダ33は、マルチプログラムMULTIPGM=「H」、EAST選択信号OBPEN_E=「H」、およびバンク選択信号OBP<k>=「H」により、EASTバンク制御信号OBP_E<k>を「H」とし、OBP_E<j>(jは1〜3で、k以外の数)を「L」とする。EASTバンク制御信号OBP_E<k>が「H」となると、EAST側のセンスアンプ12b、EAST側のバンク(k)用のXデコーダ20b、図示しないEAST側のスペア回路、およびEAST側のライトドライバ13bが活性化される。
活性化されたEAST側のバンク(k)用のXデコーダ20bは、バンク(k)のうちの内部アドレスAP<12:0>で指定されるブロックを選択する。そして、活性化されたEAST側のバンク(k)用のXデコーダ20bは、スペアブロックのアドレスを受けたときには、選択したブロックに代えて、スペアブロックを選択する。また、活性化されたEAST側のバンク(k)用のXデコーダ20bは、内部アドレスAP<12:0>に基づき、選択したブロックの中の1つの行を選択し、EAST側のYデコーダ21bは、内部アドレスAP<12:0>に基づき、16個の列を選択する。
また、活性化されたEAST側のスペアデコーダは、選択された列に欠陥があるときに、1個のスペア列を選択するとともに、欠陥のある列のアドレスであるスペア列アドレス情報EAをスワップ回路18に送り、スワップ回路18は、スペア列アドレス情報EAをラッチする。
CPU19は、内部アドレスAO<6:0>に基づき、AO<5>=「L」により、ページバッファ17の16ビットのEAST側のメモリセルの書込みデータを選択して、ベリファイ回路16に出力させる。
ベリファイ回路16は、ページバッファ17から出力された書込みデータを共通バス90を通じてスワップ回路18に送る。
スワップ回路18は、スペア列アドレス情報EAをラッチしているときには、スペア列アドレス情報EAに基づき、欠陥のある列を特定し、ベリファイ回路16から送られた欠陥のある列の書込みデータとスペア列の書込みデータとを入れ替える。スワップ回路18は、スペア列アドレス情報EAをラッチしていないときには、スペア列の書込みデータをデフォルト値のままとする。スワップ回路18は、選択された16個の正規列およびスペア列に書込む17ビットの書込みデータをWEST側のライトドライバ13aおよびEAST側のライトドライバ13bに送る。
活性化されたEAST側のライトドライバ13bは、スワップ回路18から送られる17ビットの書込みデータを受けて、保持する。
ステップS206において、CPU19は、各回路にスワップ回路18のリセットを指示し、ステップS202と同様にして、スワップ回路18でラッチしているスペアアドレス情報がリセットされ、次に、WEST側のスペアデコーダから送られるスペアアドレス情報EAの取込みに備える。
ステップS207において、CPU19は、各回路にWEST側のプログラムデータ(書込みデータ)の転送を指示する。
まず、CPU19は、ページバッファ17内に保持されているWEST側の書込みデータを選択するために内部アドレスAO<5>を「H」にする。
切替え制御回路38は、書込みデータの転送の指示、および内部アドレスAO<5>=「H」を受けて、EAST選択信号OBPEN_E=「L」、かつWEST選択信号OBPEN_Wを「H」とする。
EAST用OBPデコーダ33は、EAST選択信号OBPEN_E=「L」により、EASTバンク制御信号OBP_E<3:1>を「L」にする。EASTバンク制御信号OBP_E<3:1>が「L」となると、EAST側のセンスアンプ12b、EAST側のバンク用のXデコーダ20b、図示しないEAST側のスペア回路、およびEAST側のライトドライバ13bが非活性化される。
一方、WEST用OBPデコーダ32は、マルチプログラムMULTIPGM=「H」、WEST選択信号OBPEN_W=「H」、およびバンク選択信号OBP<7−k>=「H」により、WESTバンク制御信号OBP_W<7−k>を「H」とし、OBP_W<j>(jは4〜6で、(7−k)以外の数)を「L」とする。WESTバンク制御信号OBP_W<7−k>が「H」となると、WEST側のセンスアンプ12a、WEST側のバンク(7−k)用のXデコーダ20a、図示しないWEST側のスペア回路、およびWEST側のライトドライバ13aが活性化される。
活性化されたWEST側のバンク(7−k)用のXデコーダ20aは、バンク(7−k)のうちの内部アドレスAP<12:0>で指定されるブロックを選択する。そして、活性化されたWEST側のバンク(7−k)用のXデコーダ20aは、スペアブロックのアドレスを受けたときには、選択したブロックに代えてスペアブロックを選択する。また、活性化されたWEST側のバンク(7−k)用のXデコーダ20aは、内部アドレスAP<12:0>に基づき、選択したブロックの中の1つの行を選択し、WEST側のYデコーダ21aは、内部アドレスAP<12:0>に基づき、16個の列を選択する。
また、活性化されたWEST側のスペアデコーダは、選択された列に欠陥があるときに、1個のスペア列を選択するとともに、欠陥のある列のアドレスであるスペア列アドレス情報EAをスワップ回路18に送り、スワップ回路18は、スペア列アドレス情報EAをラッチする。
CPU19は、内部アドレスAO<6:0>に基づき、AO<5>=「H」により、ページバッファ17の16ビットのWEST側のメモリセルの書込みデータを選択して、ベリファイ回路16に出力させる。
ベリファイ回路16は、ページバッファ17から出力された書込みデータを共通バス90を通じてスワップ回路18に送る。
スワップ回路18は、スペア列アドレス情報EAをラッチしているときには、スペア列アドレス情報EAに基づき、欠陥のある列を特定し、ベリファイ回路16から送られた欠陥のある列の書込みデータとスペア列の書込みデータとを入れ替える。スワップ回路18は、スペア列アドレス情報EAをラッチしていないときには、スペア列の書込みデータをデフォルト値のままとする。スワップ回路18は、選択された16個の正規列およびスペア列に書込む17ビットの書込みデータをWEST側のライトドライバ13aおよびEAST側のライトドライバ13bに送る。
活性化されたWEST側のライトドライバ13aは、スワップ回路18から送られる17ビットの書込みデータを受けて、保持する
ステップS208において、CPU19は、各回路にWEST側およびEAST側の書込みパルスの印加を指示する。
切替え制御回路38は、書込みパルスの印加の指示を受けて、EAST選択信号OBPEN_E=「H」、かつWEST選択信号OBPEN_Wを「H」とする。
EAST用OBPデコーダ33は、マルチプログラムMULTIPGM=「H」、EAST選択信号OBPEN_E=「H」、およびバンク選択信号OBP<k>=「H」により、EASTバンク制御信号OBP_E<k>を「H」とし、OBP_E<j>(jは1〜3で、k以外の数)を「L」とする。EASTバンク制御信号OBP_E<k>が「H」となると、EAST側のセンスアンプ12b、EAST側のバンク(k)用のXデコーダ20b、図示しないEAST側のスペア回路、およびEAST側のライトドライバ13bが活性化される。
一方、WEST用OBPデコーダ32は、マルチプログラムMULTIPGM=「H」、WEST選択信号OBPEN_W=「H」、およびバンク選択信号OBP<7−k>=「H」により、WESTバンク制御信号OBP_W<7−k>を「H」とし、OBP_W<j>(jは4〜6で、(7−k)以外の数)を「L」とする。WESTバンク制御信号OBP_W<7−k>が「H」となると、WEST側のセンスアンプ12a、WEST側のバンク(7−k)用のXデコーダ20a、図示しないWEST側のスペア回路、およびWEST側のライトドライバ13aが活性化される。
活性化されたEAST側のライトドライバ13bは、スワップ回路18から送られて保持している17ビットの書込みデータに基づき、EAST側のメモリアレイ10bの中の選択された行と、選択された正規列および選択されたスペア列とで指定されるメモリセルに、図示しない電源制御回路で生成された書込みパルスを印加する。具体的には、ライトドライバ13bは、書込みデータが「1」の列に書込みパルスを印加せず、書込みデータが「0」の列に書込みパルスを印加する。
また、活性化されたWEST側のライトドライバ13aは、スワップ回路18から送られて保持している17ビットの書込みデータに基づき、WEST側のメモリアレイ10aの中の選択された行と、選択された正規列および選択されたスペア列とで指定されるメモリセルに、図示しない電源制御回路で生成された書込みパルスを印加する。具体的には、ライトドライバ13aは、書込みデータが「1」の列に書込みパルスを印加せず、書込みデータが「0」の列に書込みパルスを印加する。
ステップS209において、CPU19は、各回路にスワップ回路18のリセットを指示し、ステップS202と同様にして、スワップ回路18でラッチしているスペアアドレス情報がリセットされ、次に、EAST側のスペアデコーダから送られるスペアアドレス情報EAの取込みに備える。
ステップS210において、CPU19は、各回路にスワップ回路18のEAST側の下裾ベリファイを指示し、ステップS201と同様にして、EAST側の下裾ベリファイが行なわれる。
ステップS211において、CPU19は、各回路にスワップ回路18のリセットを指示し、ステップS202と同様にして、スワップ回路18でラッチしているスペアアドレス情報がリセットされ、次に、WEST側のスペアデコーダから送られるスペアアドレス情報EAの取込みに備える。
ステップS212において、CPU19は、各回路にスワップ回路18のWEST側の下裾ベリファイを指示し、ステップS203と同様にして、WEST側の下裾ベリファイが行なわれる。
ステップS213において、CPU19は、各回路にスワップ回路18のリセットを指示し、ステップS204と同様にして、スワップ回路18でラッチしているスペアアドレス情報がリセットされ、次に、EAST側のスペアデコーダから送られるスペアアドレス情報EAの取込みに備える。
ステップS214において、CPU19は、各回路にスワップ回路18のEAST側の上裾ベリファイを指示し、ステップS201と同様にして、WEST側の上裾ベリファイが行なわれる。
ステップS215において、CPU19は、各回路にスワップ回路18のリセットを指示し、ステップS202と同様にして、スワップ回路18でラッチしているスペアアドレス情報がリセットされ、次に、WEST側のスペアデコーダから送られるスペアアドレス情報EAの取込みに備える。
ステップS216において、CPU19は、各回路にスワップ回路18のWEST側の上裾ベリファイを指示し、ステップS203と同様にして、WEST側の上裾ベリファイが行なわれる。
以上のように、本実施の形態に係る半導体記憶装置によれば、ベリファイ回路と複数個のライトドライバとが共通のバス90で接続され、ベリファイ回路と複数個のセンスアンプとが共通のバスで接続されていても、2個のメモリアレイに同時に書込みパルスを印加するので、短いテスト時間を維持することができる。また、2個のメモリアレイに対して、ライトドライバへの書込みデータおよびセンスアンプからの読出しデータをメモリアレイごとに交互に行なうことにしたので、これらが衝突することを回避することができる。
[第2の実施形態]
本実施の形態は、外部クロックを利用して、テストを行なう半導体記憶装置に関する。
(構成)
図7は、本実施の形態に係る半導体記憶装置の構成を示すブロック図である。同図を参照して、この半導体記憶装置は、メモリアレイ50と、アドレスバッファ51と、Xデコーダ52と、Yデコーダ53と、Yゲート54と、センスアンプ55と、ライトドライバ56と、ベリファイ回路57と、ページバッファ59と、I/Oバッファ60と、CUI61と、CPU62と、OSC63と、ステータスレジスタ64とを含む。
メモリアレイ50は、行列状に配置された複数のフラッシュメモリ用のメモリセルを含む。このメモリセルは、「00」、「01」、「10」および「11」の4値を記憶する。このメモリセルは、フローティングゲート、コントロールゲート、ソースおよびドレインを有するトランジスタで構成される。コントロールゲートは、メモリセルを選択するためのワード線WLと接続される。ソースおよびドレインは、ソース線SLおよびビット線BLとそれぞれ接続する。このメモリセルへのデータの書込みは、書込みパルスを印加することにより、チャネルホットエレクトン(CHE)を利用してフローティングゲートに電子を注入させて、閾値電圧を上昇させることによって行なわれる。また、このメモリセルからのデータの読出しは、予めビット線を図示しないプリチャージ回路でプリチャージしておき、コントロールゲートと結合されたワード線に一定電圧を与えてある所定時間メモリディスチャージを行なって、それからビット線に流れる電流の大きさを検出することによって実行される。
アドレスバッファ51は、アドレス端子から入力される外部アドレスをラッチして、内部アドレスを生成してXデコーダ52およびYデコーダ53に出力する。
Xデコーダ52は、内部アドレスに基づき、メモリアレイ50の行を選択する。
Yデコーダ53は、内部アドレスに基づき、メモリアレイ50の列を選択するための列選択信号を生成する。
Yゲート54は、Yデコーダ53からの列選択信号にしたがって選択されるメモリアレイ50の列をセンスアンプ55と接続される内部データ線に接続する。
OSC63は、ベリファイ動作時に、クロック端子から長い周期の外部クロックEXTCLKを受けると、その外部クロックEXTCLKに基づいて内部クロックP1、P2を生成して、CPU62に供給する。OSC63は、サスペンドモード時に、CUI61から内部クロックの生成の停止の指示を受けると、内部クロックの生成を停止する。OSC63は、書込みパルス印加時に、CUI61から固定の周期の内部クロックの自動生成の指示を受けると、固定の周期の内部クロックP1′、P2′を自動生成して、CPU62に供給する。
CPU62は、OSC63から送られる内部クロック信号P1、P2または内部クロックP1′、P2′に基づいて、半導記憶装置の全体の制御を行なう。CPU62は、ベリファイ動作時には、内部クロックP1、P2に基づいて、センスアンプ55を活性化させるセンスアンプ活性化信号SAE、および図示しないプリチャージ回路を活性化させるプリチャージ信号PCなどの制御信号を生成する。また、CPU62は、書込みパルス印加時には、内部クロックP1′、P2′に基づいて、ライトドライバ56を活性化させるライトドライバ活性化信号WREなどの制御信号を生成する。
ステータスレジスタ64は、サスペンドモード時および書込みパルス印加時には、外部クロックの供給の停止を指示する値「0」を保持する。ステータスレジスタ64は、ベリファイ動作時には、外部クロックの供給を指示する値「1」を保持する。
CUI61は、下裾ベリファイまたは上裾ベリファイの実行前にサスペンドモードに移行し、OSC63に内部クロックの生成を停止させるとともに、ステータスレジスタ64に外部クロックの供給の停止を指示する値「0」を書込む。
CUI61は、下裾ベリファイまたは上裾ベリファイの実行前にサスペンドモードに移行した後、所定時間経過後に、ステータスレジスタ64に外部クロックの供給を指示する値「1」を書込む。
CUI61は、下裾ベリファイまたは上裾ベリファイの終了の通知を受けると、サスペンドモードに移行し、OSC63に内部クロックの生成を停止させるとともに、ステータスレジスタ64に外部クロックの供給の停止を指示する値「0」を書込む。
CUI61は、下裾ベリファイの終了後にサスペンドモードに移行した後、所定時間経過後に、OSC63に、外部クロックEXTCLKによらずに、固定の周期の内部クロックを自動生成するように指示する。
センスアンプ55は、ベリファイ動作時に、内部クロックP1、P2に基づいて動作し、ビット線に流れる電流を検出することによって、メモリセルの閾値電圧をセンスして読出しデータを得て、読出しデータをベリファイ回路57に出力する。また、図示しないプリチャージ回路も、ベリファイ動作時に、内部クロックP1、P2に基づいて動作し、ビット線をプリチャージする。
ライトドライバ56は、書込みパルスの印加時に、内部クロックP1′、P2′に基づいて動作し、メモリセルに書込みパルスを印加することにより、メモリセルにデータを書込む。
ページバッファ59は、メモリセルへの書込みデータを保持する。
ベリファイ回路57は、閾値電圧が所定電圧以上かを調べる下裾ベリファイと、閾値電圧が所定電圧未満かを調べる上裾ベリファイによって、ページバッファ59内の書込みデータと、センスアンプ55から出力される読出しデータとが一致するか否かを判定して、判定結果をCPU62に送る。
I/Oバッファ60は、外部からデータ入出力端子DQを通じて入力される書込みデータを受けて、ページバッファ59に出力する。また、I/Oバッファ60は、ベリファイ時に、CPU19からベリファイ結果を示すデータを受けて、データ入出力端子DQを通じて外部に出力する。また、I/Oバッファ60は、読出し時にセンスアンプ55から読出しデータを受けて、データ入出力端子DQを通じて外部に出力する。
(クロックの違いによるベリファイ動作時間の比較)
図8(a)は、内部で自動的に生成された固定の周期の内部クロックに基づくベリファイのタイミングチャートを示す。同図に示すように、内部で自動的に生成された固定の短い周期の内部クロックP1′およびP2′に基づいて、センスアンプ活性化信号およびプリチャージ信号が生成される。内部クロックP1′およびP2′の周期は、70nsと短いため、センスアンプ動作が行なわれる時間間隔、プリチャージ動作が行なわれる時間間隔も短くなり、ベリファイ動作の時間が短くなる。しかし、センスアンプのセンス時間、ビット線のプリチャージ時間が短くなる結果、メモリセルからのデータの読出しが正確にできず、正確なベリファイが行なえない。RefCellプログラムでは、基準電流発生用のメモリセルにデータを書込むため、正確にベリファイを行なえないことは、大きな問題となる。
図8(b)は、長い周期の外部クロックEXTCLKに基づいて生成された内部クロックに基づくベリファイのタイミングチャートを示す。同図に示すように、外部クロックEXTCLKに基づいて生成された内部クロックP1およびP2に基づいて、センスアンプ活性化信号およびプリチャージ信号が生成される。内部クロックP1およびP2の周期は、70nsよりも長いため、センスアンプ動作が行なわれる時間間隔、プリチャージ動作が行なわれる時間間隔が長くなり、ベリファイ動作の時間が長くなる。しかし、センスアンプのセンス時間、ビット線のプリチャージ時間が長くなる結果、メモリセルからのデータの読出しが正確になり、正確なベリファイが行なえる。RefCellプログラムでは、基準電流発生用のメモリセルにデータを書込むため、正確にベリファイが行なえるように、外部クロックに基づいてベリファイを行なうのが望ましい。
(書込みシーケンスの動作)
図9は、本実施の形態に係る半導体記憶装置のRefCellプログラム時の書込みシーケンスの手順を示すフローチャートである。同図を参照して、まず、CUI61は、下裾ベリファイの実行前に、サスペンドモードに移行し、OSC63に内部クロックの生成を停止させるとともに、ステータスレジスタ64に外部クロックの供給の停止を指示する値「0」を書込む。
外部のテスタは、データ入出力端子DQから出力されるステータスレジスタ64の値をポーリングしており、ステータスレジスタ64の値が「0」となると、外部クロックEXTCLKの供給を停止する(ステップS301)。
CUI61は、下裾ベリファイの実行前にサスペンドモードに移行した後、所定時間経過後に、ステータスレジスタ64に外部クロックの供給を指示する値「1」を書込む。
外部のテスタは、データ入出力端子DQから出力されるステータスレジスタ64の値をポーリングしており、ステータスレジスタ64の値が「1」となると、外部クロックEXTCLKの供給を開始する。
OSC63は、クロック端子より外部クロックEXTCLKを受けると、その外部クロックEXTCLKに基づいて内部クロックP1、P2を生成して、CPU62に供給する。CPU62は、受けた内部クロックP1、P2に基づいて、センスアンプ55を活性化させるセンスアンプ活性化信号SAE、および図示しないプリチャージ回路を活性化させるプリチャージ信号PCなどの制御信号を生成する。
CPU62は、下裾ベリファイを内部の各回路に実行させる。下裾ベリファイでは、センスアンプ55によるビット線のセンス動作、および図示しないプリチャージ回路におけるメモリアレイ50のビット線のプリチャージ動作などが、外部クロックEXTCLKから生成された内部クロックP1、P2のタイミングで行なわれる。ベリファイ回路57は、下裾ベリファイが終了すると、CUI61に通知する(ステップS302)。
CUI61は、下裾ベリファイの終了の通知を受けると、サスペンドモードに移行し、OSC63に内部クロックの生成を停止させるとともに、ステータスレジスタ64に外部クロックの供給の停止を指示する値「0」を書込む。
外部のテスタは、データ入出力端子DQから出力されるステータスレジスタ64の値をポーリングしており、ステータスレジスタ64の値が「0」となると、外部クロックEXTCLKの供給を停止する(ステップS303)。
CUI61は、下裾ベリファイの終了後にサスペンドモードに移行した後、所定時間経過後に、OSC63に、外部クロックEXTCLKによらずに、固定の周期の内部クロックを自動生成するように指示する。OSC63は、固定の周期の内部クロックの自動生成の指示を受けると、固定の周期の内部クロックP1′、P2′を自動生成して、CPU62に供給する。CPU62は、受けた内部クロックP1′、P2′に基づいて、ライトドライバ56を活性化させるライトドライバ活性化信号WREなどの制御信号を生成する。
CPU62は、書込みパルスの印加を内部の各回路に実行させる。書込みパルスの印加では、ライトドライバ56の書込みパルスの印加の動作などが、自動生成された固定の周期の内部クロックP1′、P2′のタイミングで行なわれる。ライトドライバ56は、書込みパルスの印加が終了すると、CUI61に通知する(ステップS304)。
CUI61は、書込みパルスの印加の終了の通知を受けると、下裾ベリファイの実行前に、サスペンドモードに移行し、OSC63に内部クロックの生成を停止させるとともに、ステータスレジスタ64に外部クロックの供給の停止を指示する値「0」を書込む。
外部のテスタは、データ入出力端子DQから出力されるステータスレジスタ64の値をポーリングしており、ステータスレジスタ64の値が「0」となると、外部クロックEXTCLKの供給を停止する(ステップS305)。
CUI61は、下裾ベリファイの実行前にサスペンドモードに移行した後、所定時間経過後に、ステータスレジスタ64に外部クロックの供給を指示する値「1」を書込む。
外部のテスタは、データ入出力端子DQから出力されるステータスレジスタ64の値をポーリングしており、ステータスレジスタ64の値が「1」となると、外部クロックEXTCLKの供給を開始する。
OSC63は、クロック端子より外部クロックEXTCLKを受けると、その外部クロックEXTCLKに基づいて内部クロックP1、P2を生成して、CPU62に供給する。CPU62は、受けた内部クロックP1、P2に基づいて、センスアンプ55を活性化させるセンスアンプ活性化信号SAE、および図示しないプリチャージ回路を活性化させるプリチャージ信号PCなどの制御信号を生成する。
CPU62は、下裾ベリファイを内部の各回路に実行させる。下裾ベリファイでは、センスアンプ55によるビット線のセンス動作、および図示しないプリチャージ回路によるメモリアレイ50のビット線のプリチャージ動作などが、外部クロックEXTCLKから生成された内部クロックP1、P2のタイミングで行なわれる。ベリファイ回路57は、下裾ベリファイが終了すると、CUI61に通知する(ステップS306)。
CUI61は、下裾ベリファイの終了の通知を受けると、サスペンドモードに移行し、OSC63に内部クロックの生成を停止させるとともに、ステータスレジスタ64に外部クロックの供給の停止を指示する値「0」を書込む。
外部のテスタは、データ入出力端子DQから出力されるステータスレジスタ64の値をポーリングしており、ステータスレジスタ64の値が「0」となると、外部クロックEXTCLKの供給を停止する(ステップS307)。
CUI61は、下裾ベリファイの終了後にサスペンドモードに移行した後、所定時間経過後に、OSC63に、外部クロックEXTCLKによらずに、固定の周期の内部クロックを自動生成するように指示する。OSC63は、固定の周期の内部クロックの自動生成の指示を受けると、固定の周期の内部クロックP1′、P2′を自動生成して、CPU62に供給する。CPU62は、受けた内部クロックP1′、P2′に基づいて動作する。
CUI61は、上裾ベリファイの実行前に、サスペンドモードに移行し、OSC63に内部クロックの生成を停止させるとともに、ステータスレジスタ64に外部クロックの供給の停止を指示する値「0」を書込む。
外部のテスタは、データ入出力端子DQから出力されるステータスレジスタ64の値をポーリングしており、ステータスレジスタ64の値が「0」となると、外部クロックEXTCLKの供給を停止する(ステップS308)。
CUI61は、上裾ベリファイの実行前にサスペンドモードに移行した後、所定時間経過後に、ステータスレジスタ64に外部クロックの供給を指示する値「1」を書込む。
外部のテスタは、データ入出力端子DQから出力されるステータスレジスタ64の値をポーリングしており、ステータスレジスタ64の値が「1」となると、外部クロックEXTCLKの供給を開始する。
OSC63は、クロック端子より外部クロックEXTCLKを受けると、その外部クロックEXTCLKに基づいて内部クロックP1、P2を生成して、CPU62に供給する。CPU62は、受けた内部クロックP1、P2に基づいて、センスアンプ55を活性化させるセンスアンプ活性化信号SAE、および図示しないプリチャージ回路を活性化させるプリチャージ信号PCなどの制御信号を生成する。
CPU62は、上裾ベリファイを内部の各回路に実行させる。上裾ベリファイでは、センスアンプ55によるビット線のセンス動作、および図示しないプリチャージ回路によるメモリアレイ50のビット線のプリチャージ動作などが、外部クロックEXTCLKから生成された内部クロックP1、P2のタイミングで行なわれる。ベリファイ回路57は、上裾ベリファイが終了すると、CUI61に通知する(ステップS309)。
CUI61は、上裾ベリファイの終了の通知を受けると、サスペンドモードに移行し、OSC63に内部クロックの生成を停止させるとともに、ステータスレジスタ64に外部クロックの供給の停止を指示する値「0」を書込む。
外部のテスタは、データ入出力端子DQから出力されるステータスレジスタ64の値をポーリングしており、ステータスレジスタ64の値が「0」となると、外部クロックEXTCLKの供給を停止する(ステップS310)。
以上のように、本実施の形態に係る半導体記憶装置によれば、ベリファイは、長い周期の外部クロックに基づいて生成された内部クロックのタイミングで行なうので、センスアンプ時間およびプリチャージ時間が長くなり、正確なベリファイができるとともに、書込みパルスの印加は、短い固定の周期の内部クロックのタイミングで行なうので、メモリセルへのデータの書込みが高速となる。
なお、ページバッファ59とベリファイ回路57とを接続するビット線PLと接続されるセンスアンプとプリチャージ回路がある場合には、ベリファイ時に、長い周期の外部クロックに基づいて生成された内部クロックのタイミングで、そのセンスアンプによるそのビット線PLのセンス動作、およびそのプリチャージ回路によるビット線PLのプリチャージ動作も行なうものとしてもよい。
[第3の実施形態]
本実施の形態は、アドレス縮退モードでテストを行なう半導体記憶装置に関する。
(構成)
図10は、本実施の形態に係る半導体記憶装置の構成を示すブロック図である。同図を参照して、この半導体記憶装置は、メモリアレイ99と、Xデコーダ52と、Yデコーダ53と、Yゲート54と、センスアンプ55と、ライトドライバ56と、入出力バッファ81と、CUI82と、アドレスラッチ制御回路83と、アドレスラッチ回路84と、バーストカウンタ85と、テストモード制御回路86と、クロックバッファ87と、アドレスバッファ88と、アドレス取込み制御回路89と、コンフィグレーションレジスタ90とを備える。
メモリアレイ99は、行列状に配置された複数個のメモリセルを含む。
アドレスバッファ88は、外部アドレスAA<23:0>をラッチして、ラッチしたアドレスIA<23:0>をアドレスラッチ回路84に出力する。
Xデコーダ52は、アドレスラッチ回路84から出力される内部アドレスAE<23:0>に基づき、メモリアレイ99の行を選択する。
Yデコーダ53は、アドレスラッチ回路84から出力される内部アドレスAE<23:0>に基づき、メモリアレイ99の列を選択するための列選択信号を生成する。
Yゲート54は、Yデコーダ53からの列選択信号にしたがって選択されるメモリアレイ99の列をセンスアンプ55と接続される内部データ線に接続する。
クロックバッファ87は、クロック端子から外部クロックCLKを受け、外部クロックCLKから内部クロックICLKを生成して、バーストカウンタ85に送るとともに、同期読出し時には、外部クロックCLKから内部クロックCLKQを生成して、入出力バッファ81に送る。
入出力バッファ81は、ライトイネーブル信号WEが「L」になると、外部のテスタからデータ入出力端子DQを通じて送られるアドレス信号TA<7:0>を取込み、テストモード制御回路86に送る。
また、入出力バッファ81は、非同期読出し時には、出力イネーブル信号OEが「L」となると、メモリセルの読出しデータをデータ入出力端子DQから外部のテスタに出力する。一方、入出力バッファ81は、同期読出し時には、内部クロックCLKQに同期して、読出しデータをデータ入出力端子DQから外部のテスタに出力する。
また、入出力バッファ81は、外部のテスタからデータ入出力端子DQを通じてメモリセルへの書込みデータを受けて、ライトドライバ56に送る。
テストモード制御回路86は、入出力バッファ81からアドレス信号TA<7:0>を受けて、それをテストモードアドレス信号TMS_AD<7:0>とし、アドレスラッチ回路84に送る。
CUI82は、ライトイネーブル信号WEが「H」になると、アドレス初期化コマンド(8′h8A)を取込み、アドレスラッチ制御信号TMS_ALOADを「H」にする。また、CUI82は、ライトイネーブル信号WEに応じて、テストモードラッチ信号TMS_LAT1、TMS_LAT2、およびTMS_LAT3のレベルを制御する。
アドレス取込み制御回路89は、アドレス縮退テストモード信号TMS_ADEGが「L」のときに、アドレス取込み信号ADVが「H」のときに、外部アドレス入力イネーブル信号IADLATを「H」にする。アドレス取込み制御回路89は、アドレス縮退テストモード信号TMS_ADEGが「H」のときには、外部アドレス入力イネーブル信号IADLATを「L」に固定する。
アドレスラッチ回路84は、テストモードラッチ信号TMS_LAT1が「H」になると、テストモードアドレス信号TMS_AD<7:0>を24ビット分のラッチ回路のうちの0〜7ビット目にラッチする。アドレスラッチ回路84は、テストモードラッチ信号TMS_LAT2が「H」になると、テストモードアドレス信号TMS_AD<7:0>を24ビット分のラッチ回路のうちの8〜15ビット目にラッチする。アドレスラッチ回路84は、テストモードラッチ信号TMS_LAT3が「H」になると、テストモードアドレス信号TMS_AD<7:0>を24ビット分のラッチ回路のうちの16〜23ビット目にラッチする。アドレスラッチ回路84は、外部アドレス入力イネーブル信号IADLATが「H」となると、アドレスバッファ88が外部アドレスAA<23:0>をラッチしたアドレスIA<23:0>をラッチする。アドレスラッチ回路84は、バースト用アドレス入力イネーブル信号ISADLATが「H」になると、バーストカウンタ85から送られるバーストモードアドレスNSAY<23:0>をラッチする。
バーストカウンタ85は、アドレスラッチ回路84から内部アドレスAE<23:0>を受けて、それをカウンタ値に設定する。バーストカウンタ85は、内部クロックICLKに同期して、カウンタ値をインクリメントする。バーストカウンタ85は、カウンタ値をバーストモードアドレスNSAY<23:0>としてアドレスラッチ回路84に送る。
コンフィグレーションレジスタ90は、同期読出し時に、外部のテスタからデータ入出力端子DQを介して入出力バッファ81にアドレスとして入力されたバースト読出しのための各種の設定情報を記憶する。
センスアンプ55は、選択したメモリセルの読出しデータを増幅して入出力バッファ81に送る。
ライトドライバ56は、入出力バッファ81から受けた書込みデータをメモリアレイ99の選択されたメモリセルに書込む。
(非同期読出し時の動作)
次に、出力イネーブル信号OEに応じてデータが外部に出力される非同期読出しの動作を説明する。図11は、本実施の形態に係る半導体記憶装置の非同期読出し時のタイミングチャートを示す。同図を参照して、まず、内部アドレス初期化モードが実行され、次に、内部アドレスインクリメントモードが実行される。
まず、外部のテスタから、テストモード端子を通じてアドレス縮退テストモード信号TMS_ADEG(=「H」)が入力される。アドレス取込み制御回路89は、アドレス縮退テストモード信号TMS_ADEGが「H」となると、外部アドレス入力イネーブル信号IADLATを「L」に固定する。アドレスラッチ回路84は、外部アドレス入力イネーブル信号IADLATが「L」となると、アドレスバッファ88から出力される外部アドレスAA<23:0>をラッチしたアドレスIA<23:0>をラッチしないようになる。
<内部アドレス初期化モード>
外部のテスタからライトイネーブル端子を通じてライトイネーブル信号WE(=「L」)が入力される。入出力バッファ81は、ライトイネーブル信号WEが「L」になると、外部のテスタからデータ入出力端子DQを通じて入力されるアドレス初期化コマンド(8′h8A)を取込む。
次に、外部のテスタからライトイネーブル端子を通じてライトイネーブル信号WE(=「H」)が入力される。
CUI82は、ライトイネーブル信号WEが「H」になると、アドレス初期化コマンド(8′h8A)を取込み、アドレスラッチ制御信号TMS_ALOADを「H」にする。
アドレスラッチ制御回路83は、アドレスラッチ制御信号TMS_ALOADが「H」になると、バースト用アドレス入力イネーブル信号ISADLATを「L」にネゲートする。アドレスラッチ回路84は、バースト用アドレス入力イネーブル信号ISADLATが「L」になると、バーストカウンタ85から送られるバーストモードアドレスNSAY<23:0>をラッチしない。
次に、外部のテスタからアドレスが3回に分けて、データ入出力端子DQを通じて入出力バッファ81に入力される。
まず、1回目のアドレス入力が行なわれる。外部のテスタからライトイネーブル端子を通じてライトイネーブル信号WE(=「L」)が入力される。
入出力バッファ81は、ライトイネーブル信号WEが「L」になると、外部のテスタからデータ入出力端子DQを通じて送られるアドレス信号TA<7:0>を取込み、テストモード制御回路86に送る。テストモード制御回路86は、アドレス信号TA<7:0>を受けて、それをテストモードアドレス信号TMS_AD<7:0>とし、アドレスラッチ回路84に送る。
また、上記動作と並行して、CUI82は、ライトイネーブル信号WEが「L」になると、テストモードラッチ信号TMS_LAT1を「H」にする。アドレスラッチ回路84は、テストモードラッチ信号TMS_LAT1が「H」になると、テストモードアドレス信号TMS_AD<7:0>を24ビット分のラッチ回路のうちの0〜7ビット目にラッチする。
外部のテスタからライトイネーブル端子を通じてライトイネーブル信号WE(=「H」)が入力される。
CUI82は、ライトイネーブル信号WEが「H」になると、テストモードラッチ信号TMS_LAT1を「L」にする。これで1回目のアドレス入力が完了する。
次に、2回目のアドレス入力が行なわれる。外部のテスタからライトイネーブル端子を通じてライトイネーブル信号WE(=「L」)が入力される。
入出力バッファ81は、ライトイネーブル信号WEが「L」になると、外部のテスタからデータ入出力端子DQを通じて送られるアドレス信号TA<7:0>を取込み、テストモード制御回路86に送る。テストモード制御回路86は、アドレス信号TA<7:0>を受けて、それをテストモードアドレス信号TMS_AD<7:0>とし、アドレスラッチ回路84に送る。
また、上記動作と並行して、CUI82は、ライトイネーブル信号WEが「L」になると、テストモードラッチ信号TMS_LAT2を「H」にする。アドレスラッチ回路84は、テストモードラッチ信号TMS_LAT2が「H」になると、テストモードアドレス信号TMS_AD<7:0>を24ビット分のラッチ回路のうちの8〜15ビット目にラッチする。
外部のテスタからライトイネーブル端子を通じてライトイネーブル信号WE(=「H」)が入力される。
CUI82は、ライトイネーブル信号WEが「H」になると、テストモードラッチ信号TMS_LAT2を「L」にする。これで2回目のアドレス入力が完了する。
次に、3回目のアドレス入力が行なわれる。外部のテスタからライトイネーブル端子を通じてライトイネーブル信号WE(=「L」)が入力される。
入出力バッファ81は、ライトイネーブル信号WEが「L」になると、外部のテスタからデータ入出力端子DQを通じて送られるアドレス信号TA<7:0>を取込み、テストモード制御回路86に送る。テストモード制御回路86は、アドレス信号TA<7:0>を受けて、それをテストモードアドレス信号TMS_AD<7:0>とし、アドレスラッチ回路84に送る。
また、上記動作と並行して、CUI82は、ライトイネーブル信号WEが「L」になると、テストモードラッチ信号TMS_LAT3を「H」にする。アドレスラッチ回路84は、テストモードラッチ信号TMS_LAT3が「H」になると、テストモードアドレス信号TMS_AD<7:0>を24ビット分のラッチ回路のうちの16〜23ビット目にラッチする。
外部のテスタからライトイネーブル端子を通じてライトイネーブル信号WE(=「H」)が入力される。
CUI82は、ライトイネーブル信号WEが「H」になると、テストモードラッチ信号TMS_LAT3を「L」にする。これで3回目のアドレス入力が完了する。
以上により、外部から3回に分けて入力された総計24ビットのアドレスが、内部アドレスAE<23:0>としてアドレスラッチ回路84にラッチされる。この内部アドレスAE<23:0>がnとすると、nに基づいて、Xデコーダ52およびYデコーダ53は、メモリアレイ99のメモリセルを選択する。選択されたメモリセルの読出しデータNがYゲート54を介してセンスアンプ55に送られる。センスアンプ55は、選択したメモリセルの読出しデータNを増幅して入出力バッファ81に送る。入出力バッファ81は、出力イネーブル信号OEが「L」となると、メモリセルの読出しデータをデータ入出力端子DQから外部のテスタに出力する。
<内部アドレスインクリメントモード>
上述の3回目のアドレス入力が完了すると、CUI82は、アドレスラッチ制御信号TMS_ALOADを「L」にする。アドレスラッチ制御回路83は、アドレスラッチ制御信号TMS_ALOADが「L」になると、バースト用アドレス入力イネーブル信号ISADLATを「H」にアサートする。アドレスラッチ回路84は、バースト用アドレス入力イネーブル信号ISADLATが「H」になると、バーストカウンタ85から送られるバーストモードアドレスNSAY<23:0>をラッチできるようになる。
外部のテスタからクロック端子を通じて外部クロックCLKがクロックバッファ87に入力される。クロックバッファ87は、外部クロックCLKから内部クロックICLKを生成して、バーストカウンタ85に送る。
バーストカウンタ85は、アドレスラッチ回路84から内部アドレスAE<23:0>を受けて、それをカウンタ値に設定する。バーストカウンタ85は、内部クロックICLKに同期して、カウンタ値をインクリメントする。
バーストカウンタ85は、カウンタ値をバーストモードアドレスNSAY<23:0>としてアドレスラッチ回路84に送る。アドレスラッチ回路84は、バースト用アドレス入力イネーブル信号ISADLATが「H」により、バーストカウンタ85から送られたバーストモードアドレスNSAY<23:0>を24ビット分のラッチ回路に内部アドレスAE<23:0>としてラッチする。この内部アドレスAE<23:0>が(n+k)(kは、バーストカウンタ85のインクリメント回数)とすると、(n+k)に基づいて、Xデコーダ52およびYデコーダ53は、メモリアレイ99のメモリセルを選択して、選択したメモリセルの読出しデータ(N+k)がYゲート54を介してセンスアンプ55に送られる。センスアンプ55は、選択したメモリセルの読出しデータ(N+k)を増幅して入出力バッファ81に送る。入出力バッファ81は、出力イネーブル信号OEが「L」となると、メモリセルの読出しデータをデータ入出力端子DQから外部のテスタに出力する。
(同期読出し時の動作)
次に、クロックに応じてデータが外部に出力される同期読出しの動作を説明する。図12は、本実施の形態に係る半導体記憶装置の同期読出し時のタイミングチャートを示す。同図を参照して、まず、コンフィグレーションモードが実行され、その後内部アドレス初期化モードが実行され、その後内部アドレスインクリメントモードが実行される。
<コンフィグレーションモード>
非同期読出しの内部アドレス初期化モードと同様にして、外部のテスタが3回に分けてアドレスが入力される。
ただし、コンフィグレーションモードでは、外部のテスタから3回に分けて入力されたアドレスは、アドレスラッチ回路84ではなく、コンフィグレーションレジスタ90に保存される。また、ここで、入力されるアドレスは、メモリアレイ99のアドレスではなく、バースト読出しのための各種の設定情報である。
<内部アドレス初期化モード>
非同期読出しの内部アドレス初期化モードと同様にして、外部のテスタからアドレスが3回に分けて入力され、それらのアドレスがアドレスラッチ回路84にラッチされる。
<内部アドレスインクリメントモード>
非同期読出しの内部アドレスインクリメントモードと同様にして、バーストカウンタ85によって、内部アドレスAE<23:0>をインクリメントする。
ただし、同期読出し時には、入出力バッファ81は、クロックバッファ87で生成された内部クロックCLKQに同期して、読出しデータ(N+K)をデータ入出力端子DQから外部のテスタに出力する。
以上のように、本実施の形態に係る半導体記憶装置によれば、テスト時に、データ入出力端子DQからアドレスを取込み、バーストカウンタで、取込んだアドレスをインクリメントするので、アドレス端子をテスタに接続する必要がなく、テスト時にチップが備える端子のうち、テスタと接続する端子の数を少なくすることができる。
なお、本実施の形態では、バーストカウンタ85は、取込んだアドレスをクロックに同期してインクリメントしてアドレスラッチ回路84に出力したが、これに限定するものではない。たとえば、バーストカウント85は、取込んだアドレスを反転させたコンプリメントパターンを生成するなどのように、取込んだアドレスを修正して、アドレスラッチ回路84に出力するものであってもよい。
[第4の実施形態]
本実施の形態は、データバスのショートの有無を検出するテスト機能を備えた不揮発性半導体記憶装置に関する。
(構成)
図13は、本実施の形態に係る半導体記憶装置の構成を示すブロック図である。同図を参照して、この半導体記憶装置は、メモリアレイ50と、アドレスバッファ51と、Xデコーダ52と、Yデコーダ53と、Yゲート54と、センスアンプ55と、ライトドライバ56と、ベリファイ回路57と、制御回路58と、ページバッファ59と、I/Oバッファ60とを備える。
メモリアレイ50は、行列状に配置された複数個のフラッシュメモリ用のメモリセルを含む。
アドレスバッファ51は、アドレス端子から入力される外部アドレスをラッチして、内部アドレスを生成してXデコーダ52およびYデコーダ53に出力する。また、アドレスバッファ51は、テスト時に、アドレス端子から入力されるテスト用のコマンドを受けて、制御回路58に送る。
Xデコーダ52は、内部アドレスに基づき、メモリアレイ50の行を選択する。
Yデコーダ53は、内部アドレスに基づき、メモリアレイ50の列を選択するための列選択信号を生成する。
Yゲート54は、Yデコーダ53からの列選択信号にしたがって選択されるメモリアレイ50の列をセンスアンプ55と接続される内部データ線に接続する。
センスアンプ55は、KDテスト信号TEST_KDを受けると、その出力とデータバスKDとを切り離し、出力をハイインピーダンス(電気的にフローティング状態)Hi−Zにする。
ライトドライバ56は、KDテスト信号TEST_KDを受けると、その出力とYゲート54へのバスとを切り離し、その出力をHi−Zにする。
I/Oバッファ60は、テスト時には、外部からデータ入出力端子DQを通じて入力されるテスト用のストライプパターンを受けて、ページバッファ59に出力する。また、I/Oバッファ60は、制御回路58からベリファイ結果を示す信号を受けて、データ入出力端子DQを通じて外部に出力する。
ベリファイ回路57は、ページバッファ内のデータとデータバスKDのデータとが一致するか否かを判定する。ベリファイ回路57は、一致すると判定したときにはベリファイのPASS(成功)のベリファイ結果を示す信号を制御回路58に送り、不一致と判定したときにはベリファイのFAILのベリファイ結果を示す信号を制御回路58に送る。
ベリファイ回路57とセンスアンプとの間、およびベリファイ回路とライトドライバ56との間は、書込みとベリファイの共通のデータバスであるデータバスKDで接続される。
ページバッファ59は、テスト時には、データ入出力端子DQおよびI/Oバッファ60を介して入力されるテスト用のストライプパターンを格納する。
ラッチ回路70は、インバータIV1,IV2からなる双安定回路である。ラッチ回路70は、いわゆるウイークラッチであって、入力されるデータが変化しても保持している値を保持し続けるのではなく、入力されるデータが変化すると保持する値を変更する。
制御回路58は、半導体記憶装置の全体を制御する。制御回路58は、テスト時に、KDショートチェックコマンドを受けると、KDテスト信号TEST_KDをセンスアンプ55およびライトドライバ56に送る。制御回路58は、テスト時に、ベリファイ回路57にページバッファ59に保持されている32ビットのストライプパターンをデータバスKDに出力させる。制御回路58は、テスト時に、ベリファイ回路57に、ページバッファ59に保持されているストライプパターンと、データバスKD上のデータとが一致するかどうかを判定させる。制御回路58は、ベリファイ回路57からベリファイ結果を示す信号を受けると、I/Oバッファ60およびデータ入出力端子DQを通じてベリファイ結果を出力する。
(ショートチェックテスト手順)
次に、本実施の形態に係る半導体記憶装置のKDのショートチェックテストの手順を説明する。
まず、外部のテスタからアドレス端子を通じて、アドレスバッファ51にSingle Data Loadテストコマンド(8′h74)が入力され、制御回路58に送られる。
次に、外部のテスタからデータ入出力端子DQを通じて、I/Oバッファ60に32ビットのスライプパターン(8′hAAAAAAAA、または8′h55555555)が入力されると、制御回路58は、それをページバッファ59に保持させる。
次に、外部のテスタからアドレス端子を通じて、アドレスバッファ52にKDショートチェックコマンド(8′hC2)が入力され、制御回路58に送られる。
制御回路58は、KDショートチェックコマンドを受けると、KDテスト信号TEST_KDをセンスアンプ55およびライトドライバ56に送る。
センスアンプ55およびライトドライバ56は、KDテスト信号TEST_KDを受けると、その出力をHi−Zにする。これにより、データバスKD上のデータは、ラッチ回路70のみでフォースされた状態となる。
制御回路58は、シーケンスモディファイレジスタテストモード機能により、プログラムシーケンスの一部の機能を実行させ、ベリファイ回路57にページバッファ59に保持されている32ビットのストライプパターンをデータバスKDに出力させる。
ラッチ回路70は、データバスKDに出力されたストライプパターンをラッチする。データバスKDがショートしている場合には、電流がリークするため、データバスKD上のデータおよびラッチ回路70の保持する値が変化する。
制御回路58は、所定時間経過後、ベリファイ回路57に、ページバッファ59に保持されているストライプパターンと、データバスKD上のデータとが一致するかどうかを判定させる。ベリファイ回路57は、一致すると判定したときはベリファイのPASS(成功)のベリファイ結果を示す信号を制御回路58に送り、不一致と判定したときにはベリファイのFAILのベリファイ結果を示す信号を制御回路58に送る。制御回路58は、I/Oバッファ60およびデータ入出力端子DQを通じてベリファイ結果を示す信号を出力する。
以上のように、本実施の形態に係る半導体記憶装置によれば、ラッチ回路70を備えることにより、ベリファイ回路がページバッファ内の書込みデータをライトドライバに転送するデータバスと、センスアンプがメモリセルから読出した読出しデータをベリファイ回路に転送するデータバスとを同一にした場合に、そのデータバスのショートの有無の検出のテストができる。
本発明は、上記の実施形態に限定するものではなく、たとえば、以下のような変形例も含む。
(1) 共通バス90
第1の実施形態では、スワップ回路18とベリファイ回路17との間が1本の共通バス90で接続され、この共通バス90によりベリファイ回路17からスワップ回路18へ書込みデータが送られるとともに、スワップ回路18からベリファイ回路17へ読出しデータが送られたが、これに限定するものではない。スワップ回路18とベリファイ回路17との間が2本の共通バス90a,90bで接続され、共通バス90aによりベリファイ回路17からスワップ回路18へ書込みデータが送られ、共通バス90bによりスワップ回路18からベリファイ回路17へ読出しデータが送られるものとしてもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
10a,10b,50,99 メモリアレイ、14,51,88 アドレスバッファ、20a,20b,52 Xデコーダ、21a,21b,53 Yデコーダ、11a,11b,54 Yゲート、12a,12b,55 センスアンプ、13a,13b,56 ライトドライバ、16,57 ベリファイ回路、17,59 ページバッファ、15,60 I/Oバッファ、18 スワップ回路、19,62 CPU、22 アドレス変換回路、23 制御信号生成回路、24 テストモード制御回路、31 動作バンク制御回路、32 WEST用OBPデコーダ、33 EAST用OBPデコーダ、34 EAST用BLKスペア判定回路、35 EXNOR回路、36 WEST用BLKスペア判定回路、38 切替制御回路、58 制御回路、61,82 CUI、63 OSC、64 ステータスレジスタ、70 ラッチ回路、81 入出力バッファ、83 アドレスラッチ制御回路、84 アドレスラッチ回路、85 バーストカウンタ、86 テストモード制御回路、87 クロックバッファ、89 アドレス取り込み制御回路、90 コンフィグレーションレジスタ、L1 フリップフロップ、NOR1 排他的論理和回路、OR1 論理和回路、IV1,IV2,IV3 インバータ。