(57)【要約】【課題】ＥＣＣ搭載メモリをテストするＢＩＳＴ回路の不良検出精度を向上させる。【解決手段】ＥＣＣ回路１２Ａは、メモリセルアレイ１１の出力データに対してＮ（Ｎは自然数）ビットのエラー訂正機能を有する。ＢＩＳＴ回路１３Ａは、テスト対象アドレスからバックグラウンドデータの読み出しを行い、かつ、テスト対象アドレスの少なくとも一部に対してバックグラウンドデータを反転させた反転データの書き込み／読み出しを行う。Ｎ＋１ビットエラー検知回路１４Ａは、２度の読み出し時にＥＣＣ回路１２Ａにより検出されたエラービット数ｎ１，ｎ２の合計がＮを越えるとき、テストＮＧ（不良品）であることを示す信号を出力する。【選択図】図１
2005203042.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、
前記メモリの出力データに対してＮ（Ｎは自然数）ビットのエラー訂正機能を有するＥＣＣ回路と、
前記メモリのテスト対象アドレスから第１データパターンが読み出された時に前記ＥＣＣ回路により検出されたエラービット数ｎ１と、前記テスト対象アドレスの少なくとも一部に対して前記第１データパターンを反転させた第２データパターンが読み出された時に前記ＥＣＣ回路により検出されたエラービット数ｎ２との合計が、Ｎを越えるとき、それを示す信号を出力するエラー検知回路とを具備することを特徴とする半導体集積回路。
【請求項２】
第１の動作として前記メモリのテスト対象アドレスから第１データパターンを読み出し、かつ、第２の動作として、前記テスト対象アドレスの少なくとも一部に対して前記第２データパターンを書き込み、その書き込んだ前記第２データパターンを読み出すＢＩＳＴ回路を更に具備することを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記ＢＩＳＴ回路は、前記テスト対象アドレスを変えながら、前記第１及び第２の動作を繰り返し行うことを特徴とする請求項２に記載の半導体集積回路。
【請求項４】
前記ＥＣＣ回路は、前記エラービット数ｎ１，ｎ２を示すＳＥＣ信号を出力し、
前記ＢＩＳＴ回路は、前記第１データパターンの読み出し時に第１読み出し信号を出力し、前記第２データパターンの読み出し時に第２読み出し信号を出力し、
前記エラー検知回路は、前記第１読み出し信号を受けて前記エラービット数ｎ１を記憶し、前記第２読み出し信号を受けて前記エラービット数ｎ２を記憶し、ロジック処理によりｎ１＋ｎ２を計算することを特徴とする請求項２に記載の半導体集積回路。
【請求項５】
前記エラー検知回路は、前記テスト対象アドレスのビットのうち、前記第２データパターンの書き込みが行われたビットのみをチェック対象ビットとし、前記チェック対象ビットに発生したエラーについて前記エラービット数ｎ２を算入することを特徴とする請求項１及び２のいずれか１項に記載の半導体集積回路。
【請求項６】
前記ＥＣＣ回路は、前記テスト対象アドレスのビットの各々に対してエラーの有無を示すＳＥＣ信号を出力し、
前記ＢＩＳＴ回路は、前記第１及び第２テストパターンを示すステート信号を出力し、
前記エラー検知回路は、前記ステート信号に基づいて前記チェック対象ビットを特定し、かつ、前記チェック対象ビットについて、前記ＳＥＣ信号に基づき、前記エラービット数ｎ２を求める
ことを特徴とする請求項５に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関し、特に、ＥＣＣ(Error Correcting Code)回路を搭載したメモリをテストするＢＩＳＴ(Built-In Self Test)回路に適用される。
【背景技術】
【０００２】
半導体デバイス技術の進展による素子の微細化は、例えば、データを記憶するセルのストレージノード容量の減少を招いており、その結果、データのソフトエラーが大きな問題となってきている。
【０００３】
そこで、近年では、このようなソフトエラー対策として、ＥＣＣ回路をチップ内のメモリに搭載させることがよく行われている。
【０００４】
ＥＣＣ回路を搭載するメモリは、通常データとしてのデータビットを記憶する部分と、エラー検出のために使用するコードビットを記憶する部分とを持つ。データビットのエラーは、コードビットに基づいて検出する。エラーが検出されると、さらに、そのエラーがどのビットで発生したかを確認し、エラーの訂正を行う。
【０００５】
ＥＣＣ回路のエラー訂正能力及びエラー検出能力は、コードビットの数によって決まる。一般的なＥＣＣ回路は、１ビットのエラー訂正機能と２ビットのエラー検出機能とを持つものが多い。この場合、コードビットとしては、SEC-DED (Single Error Correction-Double Error Detection)コードが使用される。
【０００６】
ところで、システムＬＳＩチップでは、それに搭載されるメモリの良／不良をテストするために、ＢＩＳＴ(Built-In Self Test)回路をそのチップ内に搭載することが多くなっている。ＢＩＳＴ回路の機能は、メモリに対してテストパターンの書き込み／読み出しを行い、メモリ出力としての読み出しデータと期待値としての書き込みデータとの比較により、セルの不良検出を行うというものである。
【０００７】
テストパターンとしては、故障検出率、テスト時間、回路規模などを考慮し、いわゆるマーチパターンが広く使用されている。
【０００８】
マーチパターンによるテストアルゴリズム（基本動作）は、以下の通りである。
【０００９】
(1) まず、メモリを構成する全てのセル（全てのアドレス）に対して、バックグラウンドデータを書き込む。バックグラウンドデータとしては、例えば、繰り返しデータ［１０１０・・・］，［０１０１・・・］や、同一データ［１１１１・・・］，［００００・・・］などが用いられる。
【００１０】
(2) 次に、テスト対象アドレス（最初のアドレス）を特定し、そのテスト対象アドレスからデータを読み出す。そして、読み出しデータとバックグラウンドデータ（期待値）とを比較して、そのテスト対象アドレスのテストを行う。
【００１１】
(3) 続いて、そのテスト対象アドレスに対して、バックグラウンドデータを反転させた反転データの書き込み／読み出しを行う。反転データは、例えば、バックグラウンドデータが［１０１０・・・］のときは、［０１０１・・・］となり、バックグラウンドデータが［１１１１・・・］のときは、［００００・・・］となる。そして、読み出しデータと反転データ（期待値）とを比較して、そのテスト対象アドレスのテストを行う。
【００１２】
この後、テスト対象アドレスを変えながら、上記(2) 及び(3) の動作を繰り返し行い、全てのアドレスをテストしたら、テスト動作を終了する。
【００１３】
図１２は、ＥＣＣ回路を搭載するメモリとＢＩＳＴ回路とからなる従来の半導体集積回路の例を示している。
【００１４】
メモリセルアレイ１１には、通常データとしてのデータビットとエラー検出のためのコードビットとが記憶される。テスト時、データビットは、例えば、ＢＩＳＴ回路１３において生成され、また、コードビットは、例えば、ＥＣＣ回路１２においてデータビットに基づき生成される。
【００１５】
メモリ出力としての読み出しデータは、ＥＣＣ回路１２によりエラー訂正された後に、ＢＩＳＴ回路１３に転送される。ＥＣＣ回路１２が１ビットのエラー訂正機能を有する場合、仮に、テスト対象アドレス内に１ビットの不良（セル故障など）があっても、これを訂正できるため、このような不良は、許容することができる。
【００１６】
つまり、ＢＩＳＴ回路１３では、ＥＣＣ回路１２によりエラー訂正された読み出しデータとバックグラウンドデータ（期待値）との比較が行われるため、テスト対象アドレス内に１ビットを越えない不良があるときは、両者は等しく、テスト結果としては、良品と判断される。
【００１７】
これに対し、テスト対象アドレス内に２ビット以上の不良（セル故障など）があるときは、１ビットのエラー訂正機能を有するＥＣＣ回路１２では、これを訂正できない。従って、ＢＩＳＴ回路１３では、読み出しデータとバックグラウンドデータ（期待値）とが完全に一致しないと判断され、テスト結果としては、不良品と判断される。
【００１８】
しかしながら、ＢＩＳＴ回路１３によりマーチパターンを発生させて行う従来のテストでは、テスト対象アドレス内の不良ビットを正確に検出できない場合があり、この場合、不良品を良品として判定してしまう問題がある。
【００１９】
この問題について、以下、具体的に説明する。
【００２０】
前提として、テスト対象となるメモリは、１ビットのエラー訂正機能と２ビットのエラー検出機能とを有するＥＣＣ回路を搭載しているものとする。
【００２１】
まず、メモリの全てのアドレスに対して、バックグラウンドデータとして、［１０１０・・・］を書き込む場合を考える。
【００２２】
図１３に示すように、バックグラウンドデータを書き込んだ後、テスト対象アドレス０，１，２，・・・７を特定し、そのテスト対象アドレス０，１，２，・・・７内の８ビットデータを読み出す。ここで、テスト対象アドレス０，１，２，・・・７のうち、アドレス５のビットが“１”縮退故障（常に“１”）であり、アドレス７のビットが“０”縮退故障（常に“０”）であるとする。
【００２３】
この場合、同図の１）に示すように、アドレス５の“１”縮退故障については検出できるが、アドレス７の“０”縮退故障については検出できない。つまり、ＥＣＣ回路は、アドレス５の１ビットエラーのみを検出し、このエラーを訂正するため、ＢＩＳＴ回路は、その製品が不良品であるにもかかわらず、その製品を良品と判断してしまう。
【００２４】
この後、同図の２）に示すように、テスト対象アドレス０，１，２，・・・７に対し、バックグラウンドデータを反転させた反転データ［０１０１・・・］の書き込み／読み出しを実行する。
【００２５】
この場合、アドレス７の“０”縮退故障については検出できるが、アドレス５の“１”縮退故障については検出できない。つまり、ＥＣＣ回路は、アドレス７の１ビットエラーのみを検出し、このエラーを訂正するため、ＢＩＳＴ回路は、その製品が不良品であるにもかかわらず、その製品を良品と判断してしまう。
【００２６】
同様に、メモリの全てのアドレスに対して、バックグラウンドデータとして、［１１１１・・・］を書き込む場合を考える。条件は、前の例と同じとする。
【００２７】
テスト対象アドレス０，１，２，・・・７内の８ビットデータを読み出すと、同図の３）に示すように、アドレス７の“０”縮退故障については検出できるが、アドレス５の“１”縮退故障については検出できない。つまり、ＥＣＣ回路は、アドレス５の１ビットエラーのみを検出し、このエラーを訂正するため、ＢＩＳＴ回路は、その製品が不良品であるにもかかわらず、その製品を良品と判断してしまう。
【００２８】
この後、同図の４）に示すように、テスト対象アドレス０，１，２，・・・７に対し、バックグラウンドデータを反転させた反転データ［００００・・・］の書き込み／読み出しを実行する。
【００２９】
この場合、アドレス５の“１”縮退故障については検出できるが、アドレス７の“０”縮退故障については検出できない。つまり、ＥＣＣ回路は、アドレス５の１ビットエラーのみを検出し、このエラーを訂正するため、ＢＩＳＴ回路は、その製品が不良品であるにもかかわらず、その製品を良品と判断してしまう。
【００３０】
このように、テスト対象アドレス０，１，２，・・・７内に２ビットの縮退故障が存在していても、マーチパターンを用いてテストした場合、ＥＣＣ回路は、これら２ビットの縮退故障を同時に検出することができないため、結果として、ＢＩＳＴ回路は、テスト対象アドレス０，１，２，・・・７内に２ビットの縮退故障がある製品に対して良品という誤った判定をしてしまう。
【００３１】
なお、このような問題は、テストに使用するデータパターンの種類を増やすことにより解決できる。つまり、テスト対象アドレス０，１，２，・・・７内にＥＣＣ回路の訂正能力を超える数の縮退故障があった場合に、その縮退故障の全てを必ず検出できるようなデータパターンを用いてテストすることもできる。
【００３２】
しかし、このように、データパターンの種類を増やしてテストを行うと、当然に、ＢＩＳＴ回路の複雑化及び面積増加や、テスト時間の増大などの問題が生じる。
【特許文献１】ＵＳＰ４，６０４，７５１
【特許文献２】特開平８−２６３３９１
【特許文献３】特開２００１−２１１０８５
【特許文献４】ＵＳＰ５，９１０，９２１
【特許文献５】特開２００２−１２４０９８
【特許文献６】ＵＳＰ５，２７４，６４６
【特許文献７】特開２０００−１９６４６６
【発明の開示】
【発明が解決しようとする課題】
【００３３】
本発明の目的は、ＥＣＣ搭載メモリをマーチパターンによりテストする場合に、テスト時間の増大を招くことなく、テスト回路による不良検出精度を向上させることにある。
【課題を解決するための手段】
【００３４】
本発明の例に関わる半導体集積回路は、メモリと、前記メモリの出力データに対してＮ（Ｎは自然数）ビットのエラー訂正機能を有するＥＣＣ回路と、前記メモリのテスト対象アドレスから第１データパターンが読み出された時に前記ＥＣＣ回路により検出されたエラービット数ｎ１と、前記テスト対象アドレスの少なくとも一部に対して前記第１データパターンを反転させた第２データパターンが読み出された時に前記ＥＣＣ回路により検出されたエラービット数ｎ２との合計が、Ｎを越えるとき、それを示す信号を出力するエラー検知回路とを備える。
【発明の効果】
【００３５】
本発明の例によれば、ＥＣＣ搭載メモリをマーチパターンによりテストする場合に、テスト時間の増大を招くことなく、テスト回路による不良検出精度を向上させることができる。
【発明を実施するための最良の形態】
【００３６】
以下、図面を参照しながら、本発明の例を実施するための最良の形態について詳細に説明する。
【００３７】
１．  概要  
本発明の例は、ＥＣＣ回路を搭載したメモリをテストするテスト回路に適用される。例えば、テスト回路としてＢＩＳＴ回路を使用し、このＢＩＳＴ回路によりマーチパターンを発生してテストを行う場合、ＥＣＣ回路のエラー訂正能力がＮ（Ｎは自然数）ビットであるとすると、テスト対象アドレス内の不良（縮退故障など）は、Ｎビットまで許容することができる。
【００３８】
言い換えると、ＥＣＣ回路のエラー訂正能力がＮビットのとき、テスト対象アドレス内の不良（縮退故障など）がＮビットを越えると、ＥＣＣ回路によっては、これを訂正することができないため、製品としては、不良品と判断しなければならない。
【００３９】
しかしながら、ＢＩＳＴ回路で広く採用されているマーチパターンを用いるテストでは、テスト対象アドレス内にＮビットを越える不良が存在していても、同時に、全ての不良を検出することができず、結果として、不良品として判断しなければならない製品を良品として判断する場合があった。
【００４０】
そこで、本発明の例では、(1) バックグラウンドデータ（第１データパターン）の読み出し、(2) バックグラウンドデータを反転させた反転データ（第２データパターン）の書き込み／読み出し、というマーチ動作の基本単位のうち、上記(1) の読み出し時にＥＣＣ回路により検出されたエラービット数ｎ１と上記(2) の読み出し時にＥＣＣ回路により検出されたエラービット数ｎ２との合計がＮを越えているか否かに基づいて、製品の良／不良を判定する。
【００４１】
このような構成により、テスト対象アドレス内の全ての不良を確実に検出できるようになるため、テスト回路の複雑化及び面積増加や、テスト時間の増大などを招くことなく、テスト回路による不良検出精度を向上できる。
【００４２】
２．  第１実施の形態  
以下、本発明の第１実施の形態に関わる半導体集積回路について説明する。
【００４３】
図１は、本発明の第１実施の形態に関わる半導体集積回路の例を示している。
【００４４】
メモリセルアレイ１１には、通常データとしてのデータビットとエラー検出のためのコードビットとが記憶される。テスト時、データビットは、例えば、ＢＩＳＴ回路１３Ａにおいて生成され、また、コードビットは、例えば、ＥＣＣ回路１２Ａにおいてデータビットに基づき生成される。
【００４５】
メモリ出力としての読み出しデータは、ＥＣＣ回路１２Ａによりエラー訂正された後に、ＢＩＳＴ回路１３Ａに転送される。ＥＣＣ回路１２Ａは、Ｎ（Ｎは自然数）ビットのエラー訂正機能、Ｎ＋１ビットのエラー検出機能を有する。
【００４６】
例えば、ＥＣＣ回路１２Ａが１ビットのエラー訂正機能を有する場合、テスト対象アドレス内に１ビットの不良（セル故障など）があっても、これを訂正できるため、このような不良は、許容することができる。
【００４７】
つまり、ＢＩＳＴ回路１３Ａでは、ＥＣＣ回路１２Ａによりエラー訂正された読み出しデータとバックグラウンドデータ（期待値）との比較が行われるため、テスト対象アドレス内に１ビットを越えない不良があるときは、両者は等しく、テスト結果としては、良品と判断される。
【００４８】
これに対し、テスト対象アドレス内に２ビット以上の不良（セル故障など）があるときは、１ビットのエラー訂正機能を有するＥＣＣ回路１２Ａでは、これを訂正できない。従って、ＢＩＳＴ回路１３Ａでは、読み出しデータとバックグラウンドデータ（期待値）とが完全に一致しないと判断され、テスト結果としては、不良品と判断される。
【００４９】
ここで、既に説明したように、ＢＩＳＴ回路１３Ａによりマーチパターンを発生させて行う従来のテストでは、テスト対象アドレス内の不良ビットを正確に検出できない場合があり、この場合、不良品を良品として判定してしまう問題がある。
【００５０】
そこで、本発明の例では、このような問題を解決するために、Ｎ＋１ビットエラー検知回路１４Ａを新規に設けている。Ｎ＋１ビットエラー検知回路１４Ａは、ＥＣＣ回路１２Ａのエラー訂正能力（Ｎビット）を越えるエラーを確実に検知する機能を有する。
【００５１】
マーチ動作の基本単位は、(1) バックグラウンドデータの読み出し、及び、(2) バックグラウンドデータを反転させた反転データの書き込み／読み出しからなる。
【００５２】
ＲＥＡＤ１は、バックグラウンドデータの読み出し時にイネーブル状態（例えば、“Ｈ”）になる信号である。また、ＲＥＡＤ２は、バックグラウンドデータを反転させた反転データの読み出し時にイネーブル状態（例えば、“Ｈ”）になる信号である。
【００５３】
ＲＥＡＤ１，ＲＥＡＤ２のいずれか一方が“Ｈ”のとき、メモリセルアレイ１１のテスト対象アドレスからデータが読み出され、ＥＣＣ回路１２Ａによりエラー検出／訂正される。ＥＣＣ回路１２Ａから出力されるＳＥＣは、ＥＣＣ回路１２Ａによりエラー検出／訂正されたビット数ｎ１，ｎ２を表している。
【００５４】
例えば、ＲＥＡＤ１がイネーブル状態になり、メモリセルアレイ１１からバックグラウンドデータが読み出されるとき、ＥＣＣ回路１２Ａにおいてｎ１ビットのエラー訂正が行われた場合には、その情報が、ＳＥＣとして、Ｎ＋１ビットエラー検知回路１４Ａに取り込まれる。
【００５５】
同様に、ＲＥＡＤ２がイネーブル状態になり、メモリセルアレイ１１からバックグラウンドデータを反転させた反転データが読み出されるとき、ＥＣＣ回路１２Ａにおいてｎ２ビットのエラー訂正が行われた場合には、その情報が、ＳＥＣとして、Ｎ＋１ビットエラー検知回路１４Ａに取り込まれる。
【００５６】
Ｎ＋１ビットエラー検知回路１４Ａは、ＥＣＣ回路１２Ａによりエラー検出／訂正されたビット数ｎ１，ｎ２の合計がＮを越えるとき、即ち、Ｎ＋１以上であるとき、テストがＮＧ（不良品）であることを示す信号ＤＥＤを出力する。
【００５７】
ＲＳＴは、ＢＩＳＴ回路１３Ａがメモリセルアレイ１１のテストを開始するとき、Ｎ＋１ビットエラー検知回路１４Ａの状態をリセットするための信号である。
【００５８】
図２は、図１の半導体集積回路の動作（テスト方法１）を示している。
【００５９】
テスト対象となるメモリは、Ｎビットのエラー訂正機能、Ｎ＋１ビットのエラー検出機能を有するＥＣＣ回路を搭載しているものとする。
【００６０】
まず、メモリの全てのアドレスに対して、バックグラウンドデータ、例えば、［１０１０・・・］を書き込む（ステップＳＴ１）。
【００６１】
次に、テスト対象アドレス（最初のアドレス）を決定し、そのテスト対象アドレス内のビットデータ（バックグラウンドデータ）を読み出す（ステップＳＴ２，３）。
【００６２】
この後、テスト１として、エラービット数ｎ１を検出する。
【００６３】
即ち、ＥＣＣ回路は、テスト対象アドレス内にＮビット以下のエラーｎ１が存在する場合には、これを検出／訂正すると共に、“ｎ１”を示す信号ＳＥＣを出力する。また、ＥＣＣ回路は、テスト対象アドレス内にＮ＋１ビット以上のエラーｎ１が存在する場合には、これを検出すると共に、それをＢＩＳＴ回路に伝える（ステップＳＴ４）。
【００６４】
次に、テスト対象アドレスに対して、バックグラウンドデータを反転させた反転データの書き込み／読み出しを行う（ステップＳＴ５）。
【００６５】
この後、テスト２として、エラービット数ｎ２を検出する。
【００６６】
即ち、ＥＣＣ回路は、テスト対象アドレス内にＮビット以下のエラーｎ２が存在する場合には、これを検出／訂正すると共に、“ｎ２”を示す信号ＳＥＣを出力する。Ｎ＋１ビットエラー検知回路は、ｎ１＋ｎ２の合計がＮを越えるとき、ｎ１及びｎ２の各々がＮを越えていなくても、テストＮＧ（不良品）と判断する。
【００６７】
また、ＥＣＣ回路は、テスト対象アドレス内にＮ＋１ビット以上のエラーｎ２が存在する場合には、これを検出すると共に、それをＢＩＳＴ回路に伝える（ステップＳＴ６）。
【００６８】
次に、ｎ１＋ｎ２の合計がＮ以下のとき、メモリ内の全てのアドレスをテストしたか否かを確認する（ステップＳＴ７）。
【００６９】
メモリ内の全てのアドレスをテストしていない場合には、テスト対象アドレス変えて、再び、テスト１及びテスト２を行う。メモリ内の全てのアドレスをテストしている場合には、テストＯＫ（良品）と判断し、テストを終了する。
【００７０】
このようなテスト方法によれば、ＥＣＣ搭載メモリをマーチパターンによりテストする場合に、テスト回路の複雑化及び面積増加や、テスト時間の増大などを招くことなく、テスト回路による不良検出精度を向上させることができる。
【００７１】
次に、Ｎ＋１ビットエラー検知回路の回路例について説明する。
【００７２】
図３は、２ビットエラー検知回路の例を示している。図４は、図３の回路の動作波形を示している。  
２ビットエラー検知回路１４Ａは、１ビットのエラー訂正機能及び２ビットのエラー検出機能を有するＥＣＣ回路を搭載したメモリをテストする場合に使用される。
【００７３】
この回路は、前段部と後段部とから構成される。
【００７４】
前段部は、セレクタＳＥＬ１，ＳＥＬ２、レジスタＲＥＧ１及びオア回路ＯＲ１から構成され、バックグラウンドデータの読み出し時（１回目の読み出し時）にＥＣＣ回路により検出されたエラービット数ｎ１（例えば、１）を記憶する機能を有する。つまり、テスト対象アドレス内に１ビットエラーが発見されたときは、１ビットエラーが検出されたことを示す情報がレジスタＲＥＧ１に記憶される。
【００７５】
後段部は、セレクタＳＥＬ３，ＳＥＬ４、レジスタＲＥＧ２及びアンド回路ＡＮＤ１から構成され、バックグラウンドデータを反転させた反転データの読み出し時（２回目の読み出し時）に、前段部のレジスタＲＥＧ１に記憶されたエラービット数ｎ１とＥＣＣ回路により検出されたエラービット数ｎ２（例えば、１）との合計を求め、その合計がＥＣＣ回路のエラー訂正能力Ｎ（例えば、１）を越えるか否かを判断する機能を有する。つまり、エラービット数ｎ１，ｎ２の合計がＥＣＣ回路のエラー訂正能力Ｎを越えるときは、それを示す信号がレジスタＲＥＧ２に記憶される。
【００７６】
具体的な動作について説明する。
【００７７】
テスト開始時に、まず、ＲＳＴが“Ｈ”になり、前段部のレジスタＲＥＧ１及び後段部のレジスタＲＥＧ２の状態が初期化される。つまり、ＲＳＴが“Ｈ”になると、セレクタＳＥＬ２，ＳＥＬ４は、“１”側の入力信号を選択して出力する状態になるため、その出力信号は、“Ｌ（＝Ｖｓｓ）”になる。
【００７８】
従って、レジスタＲＥＧ１，ＲＥＧ２には、“Ｌ”が記憶され、２ビットエラー検知回路１４Ａの出力信号ＤＥＤが“Ｌ”になる。
【００７９】
この後、ＲＳＴが“Ｌ”になると、セレクタＳＥＬ２，ＳＥＬ４は、“０”側の入力信号を選択して出力する状態になる。
【００８０】
バックグラウンドデータの読み出し時（１回目の読み出し時ＴＲＥＡＤ１）には、ＲＥＡＤ１が“Ｈ”になり、テスト対象アドレスＡＤＤのデータがＤｏｕｔとして読み出される。この時、セレクタＳＥＬ１は、“１”側の入力信号を選択して出力する状態になる。従って、ＥＣＣ回路で１ビットのエラー訂正が行われると、ＳＥＣが“Ｈ”になり、レジスタＲＥＧ１には、“Ｈ”が記憶される。
【００８１】
この後、書き込み信号ＷＥが“Ｈ”、その反転信号ｂＷＥが“Ｌ”になり、テスト対象アドレスＡＤＤについて、バックグラウンドデータを反転させた反転データの書き込みが行われる（ＴＷＲＩＴＥ）。
【００８２】
バックグラウンドデータを反転させた反転データの読み出し時（２回目の読み出し時）には、ＲＥＡＤ２が“Ｈ”になり、テスト対象アドレスＡＤＤのデータがＤｏｕｔとして読み出される。この時、セレクタＳＥＬ３は、“１”側の入力信号を選択して出力する状態になる。従って、ＥＣＣ回路で１ビットのエラー訂正が行われると、ＳＥＣが“Ｈ”になる。
【００８３】
ここで、前段部のレジスタＲＥＧ１に“Ｌ”が記憶されている場合には、アンド回路ＡＮＤ１の出力信号は“Ｌ”になるため、レジスタＲＥＧ２には“Ｌ”が記憶されたままとなる。つまり、２ビットエラー検知回路１４Ａの出力信号ＤＥＤは、“Ｌ”のままである。
【００８４】
これに対し、前段部のレジスタＲＥＧ１に“Ｈ”が記憶されている場合には、アンド回路ＡＮＤ１の出力信号は“Ｈ”になるため、レジスタＲＥＧ２には“Ｈ”が記憶される。つまり、２ビットエラー検知回路１４Ａの出力信号ＤＥＤは、“Ｈ”になる。
【００８５】
なお、ＲＥＡＤ２が“Ｈ”になると、前段部のオア回路ＯＲ１の出力信号が“Ｈ”になり、セレクタＳＥＬ２は、“１”側の入力信号を選択して出力する状態になる。つまり、この時、前段部のレジスタＲＥＧ１の状態がリセットされ、次のマーチ動作に備えることができる。
【００８６】
このように、本発明の例によれば、マーチパターンを用いたテスト方法に関して、１回目の読み出し時ＴＲＥＡＤ１に発生したエラービット数（例えば、１ビット）と２回目の読み出し時ＴＲＥＡＤ２に発生したエラービット数（例えば、１ビット）との合計がＥＣＣ回路のエラー訂正能力（例えば、１ビット）を超える場合には、テストＮＧ（不良品）と判定される。
【００８７】
一般的には、図５に示すように、ビットエラーの原因がセルの縮退故障であると仮定すると、マーチパターンのように、同一アドレスに対する相補データ（“０”，“１”）の書き込み／読み出しによりメモリのテストを行う場合、縮退故障の総数は、“０”データの書き込み／読み出しにより発生したビットエラーの数と“１”データの書き込み／読み出しにより発生したビットエラーの数との合計になる。
【００８８】
従って、１回目の読み出し時ＴＲＥＡＤ１に発生したエラービット数と２回目の読み出し時ＴＲＥＡＤ２に発生したエラービット数との合計に基づいて、テスト結果（良品／不良品）を判定すれば、テスト対象アドレス内の全ての不良を確実に検出できる。
【００８９】
以上のように、本発明の例によれば、テスト回路の複雑化及び面積増加や、テスト時間の増大などを招くことなく、テスト回路による不良検出精度を向上できる。
【００９０】
３．  第２実施の形態  
以下、本発明の第２実施の形態に関わる半導体集積回路について説明する。
【００９１】
第１実施の形態では、テスト対象アドレスに対して、相補データ（“０”，“１”）の書き込み／読み出し（テスト１，テスト２）を行うことを前提にして、エラービット数ｎ１，ｎ２を検出することにより、製品の良否を判定する。
【００９２】
しかし、(1) データビット（例えば、８ビット）のうちの一部（例えば、４ビット）のみを使用するため、その一部のみについてテストを行いたい場合や、(2) コードビットのテストを行いたい場合などにおいては、上述の第１実施の形態をそのまま適用すると不都合が生じることがある。
【００９３】
例えば、データビット（８ビット）のうちの一部（４ビット）のみについてテストを行いたいときでも、テスト対象アドレスは、データビットの全て（８ビット）を含むことになる場合がある。この場合、データビットの一部（４ビット）については、相補データの書き込み／読み出しによりテストを行うことになるが、残りのビット（４ビット）については、同一データの書き込み／読み出しが行われる。
【００９４】
従って、同一データの書き込み／読み出しが行われる残りのビット（４ビット）のいずれか１つに縮退故障があると、テスト１及びテスト２の双方においてビットエラーが検出され、１ビットエラーであるにもかかわらず、２ビットエラーと判定されてしまう。
【００９５】
また、例えば、データビットとコードビットをテストの対象とする場合でも、コードビットの値は、データビットの値に基づいて決定される。このため、データビットに対して相補データの書き込み／読み出しによりテストを行っても、コードビットの一部については、相補データではなく、同一データの書き込み／読み出しが行われる場合がある。
【００９６】
従って、同一データの書き込み／読み出しが行われるコードビットの一部のいずれか１つに縮退故障があると、テスト１及びテスト２の双方においてビットエラーが検出され、１ビットエラーであるにもかかわらず、２ビットエラーと判定されてしまう。
【００９７】
そこで、第２実施の形態では、テスト対象アドレスに対しては、原則として相補データ（“０”，“１”）の書き込み／読み出しによりテストを行うが、仮に、テスト対象アドレスの一部について同一データの書き込み／読み出しが行われる場合であっても、縮退故障などの不良を正確に検出するための技術を提案する。
【００９８】
図６は、本発明の第２実施の形態に関わる半導体集積回路の例を示している。
【００９９】
メモリセルアレイ１１には、通常データとしてのデータビットとエラー検出のためのコードビットとが記憶される。テスト時、データビットは、例えば、ＢＩＳＴ回路１３Ｂにおいて生成され、また、コードビットは、例えば、ＥＣＣ回路１２Ｂにおいてデータビットに基づき生成される。
【０１００】
メモリ出力としての読み出しデータは、ＥＣＣ回路１２Ｂによりエラー訂正された後に、ＢＩＳＴ回路１３Ｂに転送される。ＥＣＣ回路１２Ｂは、Ｎ（Ｎは自然数）ビットのエラー訂正機能、Ｎ＋１ビットのエラー検出機能を有する。
【０１０１】
ここで、上述の第１実施の形態では、ＢＩＳＴ回路１３Ｂによりマーチパターンを発生させてメモリのテストを行う場合に、仮に、テスト対象アドレスの一部に対して、常に、同一データの書き込み／読み出しが行われるときには、１ビットエラーであっても２ビットエラーと判定される場合があり、良品を不良品としてしまう問題がある。
【０１０２】
そこで、第２実施の形態では、このような問題を解決するために、改良されたＮ＋１ビットエラー検知回路１４Ｂを設けている。Ｎ＋１ビットエラー検知回路１４Ｂは、ＥＣＣ回路１２Ｂのエラー訂正能力（Ｎビット）を越えるビットエラーを正確かつ確実に検知する機能を有する。
【０１０３】
ＲＥＡＤ１は、バックグラウンドデータの読み出し時にイネーブル状態（例えば、“Ｈ”）になる信号である。また、ＲＥＡＤ２は、バックグラウンドデータを反転させた反転データの読み出し時にイネーブル状態（例えば、“Ｈ”）になる信号である。
【０１０４】
ＲＥＡＤ１，ＲＥＡＤ２のいずれか一方が“Ｈ”のとき、メモリセルアレイ１１のテスト対象アドレスからデータが読み出され、ＥＣＣ回路１２Ｂによりエラー検出／訂正される。
【０１０５】
ＳＴＡＴＥは、テスト対象アドレスに書き込んだデータパターンを表している。
【０１０６】
例えば、ＲＥＡＤ１がイネーブル状態のときには、ＳＴＡＴＥは、バックグラウンドデータを表している。また、ＲＥＡＤ２がイネーブル状態のときには、ＳＴＡＴＥは、ＴＷＲＩＴＥステップ（図４参照）において、テスト対象アドレスに書き込んだデータ、つまり、バックグラウンドデータを反転した反転データ又はバックグラウンドデータと同じデータを表している。
【０１０７】
このＳＴＡＴＥをチェックすることにより、テスト２において、テスト対象アドレスのいずれのビットに反転データが書き込まれ、いずれのビットに同一データが書き込まれたかを確認できる。
【０１０８】
ＥＣＣ回路１２Ｂから出力されるＳＥＣは、テスト対象アドレスのビット（例えば、データビットｎビット＋コードビットｍビット）の各々に対して、エラーの有無を示す信号であり、エラービットを特定できるようになっている。
【０１０９】
例えば、ＲＥＡＤ１がイネーブル状態になり、メモリセルアレイ１１からバックグラウンドデータが読み出されるとき、ＥＣＣ回路１２Ｂにおいて、特定のアドレス（例えば、アドレス５）のビットに対してエラー訂正が行われた場合には、その情報が、ＳＥＣとして、Ｎ＋１ビットエラー検知回路１４Ｂに取り込まれる。
【０１１０】
同様に、ＲＥＡＤ２がイネーブル状態になり、メモリセルアレイ１１からバックグラウンドデータを反転させた反転データ又はバックグラウンドデータと同じデータが読み出されるとき、ＥＣＣ回路１２Ｂにおいて、特定のアドレス（例えば、アドレス５）のビットに対してエラー訂正が行われた場合には、その情報が、ＳＥＣとして、Ｎ＋１ビットエラー検知回路１４Ｂに取り込まれる。
【０１１１】
Ｎ＋１ビットエラー検知回路１４Ｂは、テスト１において、エラービット数ｎ１を検出する。また、Ｎ＋１ビットエラー検知回路１４Ｂは、テスト２において、まず、ＳＴＡＴＥに基づいて、テスト対象アドレスのうちからビットエラーの有無を判断する対象とすべきビット、即ち、チェック対象ビットを特定する。
【０１１２】
この後、Ｎ＋１ビットエラー検知回路１４Ｂは、チェック対象ビットについて、ＳＥＣ信号に基づいて、エラービット数ｎ２を求める。
【０１１３】
そして、ｎ１，ｎ２の合計がＮを越えるとき、即ち、Ｎ＋１以上であるとき、テストがＮＧ（不良品）であることを示す信号ＤＥＤを出力する。
【０１１４】
ＲＳＴは、ＢＩＳＴ回路１３Ｂがメモリセルアレイ１１のテストを開始するとき、Ｎ＋１ビットエラー検知回路１４Ｂの状態をリセットするための信号である。
【０１１５】
図７は、図６の半導体集積回路の動作（テスト方法２）を示している。
【０１１６】
テスト対象となるメモリは、Ｎビットのエラー訂正機能、Ｎ＋１ビットのエラー検出機能を有するＥＣＣ回路を搭載しているものとする。
【０１１７】
まず、メモリの全てのアドレスに対して、バックグラウンドデータ、例えば、［１０１０・・・］を書き込む（ステップＳＴ１）。
【０１１８】
次に、テスト対象アドレス（最初のアドレス）を決定し、そのテスト対象アドレス内のビットデータ（バックグラウンドデータ）を読み出す（ステップＳＴ２，３）。
【０１１９】
この後、テスト１として、エラービット数ｎ１を検出する。
【０１２０】
即ち、ＥＣＣ回路は、テスト対象アドレス内にＮビット以下のエラーｎ１が存在する場合には、これを検出／訂正すると共に、テスト対象アドレスの各ビットについてのエラーの有無を示すＳＥＣ信号を出力する。Ｎ＋１ビットエラー検知回路は、ＳＥＣ信号に基づいてｎ１を求める。
【０１２１】
また、ＥＣＣ回路は、テスト対象アドレス内にＮ＋１ビット以上のエラーｎ１が存在する場合には、これを検出すると共に、それをＢＩＳＴ回路に伝える（ステップＳＴ４）。
【０１２２】
次に、チェック対象ビットの特定を行う（ステップＳＴ５）。
【０１２３】
即ち、テスト対象アドレス内のビットのうち、バックグラウンドデータを反転させた反転データを書き込むビットのみをテスト２におけるエラービット数ｎ２の算出の対象（チェック対象ビット）とし、バックグラウンドデータと同じデータを書き込むビットに対しては、テスト２におけるエラービットｎ２の算出の対象としない。
【０１２４】
次に、チェック対象ビットに対して、バックグラウンドデータを反転させた反転データの書き込み／読み出しを行う（ステップＳＴ６）。
【０１２５】
この後、テスト２として、エラービット数ｎ２を検出する。
【０１２６】
即ち、ＥＣＣ回路は、テスト対象アドレス内にＮビット以下のエラーｎ２が存在する場合には、これを検出／訂正すると共に、テスト対象アドレスの各ビットについてのエラーの有無を示すＳＥＣ信号を出力する。Ｎ＋１ビットエラー検知回路は、チェック対象ビットについて、ＳＥＣ信号に基づき、エラービット数ｎ２を検出する。
【０１２７】
そして、Ｎ＋１ビットエラー検知回路は、ｎ１＋ｎ２の合計がＮを越えるとき、ｎ１及びｎ２の各々がＮを越えていなくても、テストＮＧ（不良品）と判断する。
【０１２８】
また、ＥＣＣ回路は、テスト対象アドレス内にＮ＋１ビット以上のエラーｎ２が存在する場合には、これを検出すると共に、それをＢＩＳＴ回路に伝える（ステップＳＴ７）。
【０１２９】
次に、ｎ１＋ｎ２の合計がＮ以下のとき、メモリ内の全てのアドレスをテストしたか否かを確認する（ステップＳＴ８）。
【０１３０】
メモリ内の全てのアドレスをテストしていない場合には、テスト対象アドレス変えて、再び、テスト１及びテスト２を行う。メモリ内の全てのアドレスをテストしている場合には、テストＯＫ（良品）と判断し、テストを終了する。
【０１３１】
このようなテスト方法によれば、ＥＣＣ搭載メモリをマーチパターンによりテストする場合に、テスト回路の複雑化及び面積増加や、テスト時間の増大などを招くことなく、テスト回路による不良検出精度を向上させることができる。
【０１３２】
図８及び図９は、チェック対象ビットの特定についての例を示している。
【０１３３】
まず、データビット（ｎビット）とコードビット（ｍビット）とをテスト対象とし、例えば、バックグラウンドデータとして、“１０１０・・・”という繰り返しデータパターンを書き込んだ場合を考える。
【０１３４】
この場合、図８に示すように、テスト１では、テスト対象アドレス０，１，・・・７，ａ，ｂ，・・・ｅの全てのビットを対象にして“ｎ１”を求める。
【０１３５】
この後、データビットに対して、バックグラウンドデータを反転させた反転データ“０１０１・・・”を書き込もうとすると、コードビットのアドレスｃ，ｄには反転データが書き込まれるが、コードビットのアドレスａ，ｂ，ｅには同一データが書き込まれる。
【０１３６】
従って、テスト２の対象にコードビットのアドレスａ，ｂ，ｅを含めると、１ビットエラーを２ビットエラーとして検出してしまう恐れがあるため、これらアドレスａ，ｂ，ｅは、テスト２の対象としない。
【０１３７】
つまり、テスト２では、テスト対象アドレスのうち、データビットの全アドレス０，１，・・・７とコードビットの特定のアドレスｃ，ｄのみを対象（チェック対象ビット）にして“ｎ２”を求める。
【０１３８】
次に、データビット（ｎビット）の一部のみを使用するため、その一部のみをテストする場合を考える。データビットの一部には、バックグラウンドデータとして、“１０１０・・・”という繰り返しデータパターンを書き込むものとする。
【０１３９】
この場合、図９に示すように、テスト１では、データビットの一部、即ち、アドレス０，１，２，３のビットを対象にして“ｎ１”を求める。
【０１４０】
この後、データビットの一部に対して、バックグラウンドデータを反転させた反転データ“０１０１・・・”を書き込む。
【０１４１】
そして、テスト２では、再び、データビットの一部、即ち、アドレス０，１，２，３のビットを対象にして“ｎ２”を求める。
【０１４２】
ここで、アドレス４，５，６，７については、テスト１及びテスト２において同一データが書き込まれるため、これらアドレスのビットをテスト対象にすると、１ビットエラーを２ビットエラーとして検出してしまう恐れがあるため、これらアドレスのビットについては、テストの対象としない。
【０１４３】
図１０は、テスト方法２による効果を示している。
【０１４４】
データビット（ｎビット）とコードビット（ｍビット）とをテスト対象とし、例えば、コードビットのアドレスｅに“０”縮退故障が発生しているとする。バックグラウンドデータは、“１０１０・・・”という繰り返しパターンとする。
【０１４５】
この場合、テスト１では、テスト対象アドレス０，１，・・・７，ａ，ｂ，・・・ｅのうち、コードビットのアドレスｅにビットエラーがあることが検出される。
【０１４６】
この後、データビットに対して、バックグラウンドデータを反転させた反転データ“０１０１・・・”を書き込む。この時、コードビットのアドレスａ，ｂ，ｃ，ｄ，ｅには、“１００１１”が書き込まれる。つまり、コードビットのアドレスｃ，ｄには反転データが書き込まれるため、これらのアドレスｃ，ｄは、チェック対象ビットになるが、コードビットのアドレスａ，ｂ，ｅには同一データが書き込まれるため、これらのアドレスａ，ｂ，ｅは、チェック対象ビットにならない。
【０１４７】
従って、テスト２においては、再び、コードビットのアドレスｅにおけるビットエラーを検出することがないため、１ビットエラーの重複検出を防止できる。
【０１４８】
このように、本発明の例によれば、マーチパターンを用いたテスト方法に関して、相補データでなく、同一データが書き込まれるアドレスに対しては、テスト２において、エラービット数ｎ２を求めるときの対象（チェック対象ビット）としない。
【０１４９】
従って、エラービット数ｎ１，ｎ２の合計に基づいて、テスト結果（良品／不良品）を判定すれば、テスト対象アドレス内の不良を正確かつ確実に検出できる。
【０１５０】
以上のように、本発明の例によれば、テスト回路の複雑化及び面積増加や、テスト時間の増大などを招くことなく、テスト回路による不良検出精度を向上できる。
【０１５１】
４．  その他  
本発明の例において、テストの対象となるメモリは、ＤＲＡＭ、ＳＲＡＭの他、フラッシュメモリ、ＦｅＲＡＭ、ＭＲＡＭなどの不揮発性メモリであってもよい。
【０１５２】
本発明の例は、例えば、図１１に示すように、複数の機能ブロック（ＣＰＵ、ロジック回路、メモリ１，２など）を含むシステムＬＳＩにおけるメモリ１，２のテストに適用できる。
【０１５３】
上述の各実施の形態に関し、ＢＩＳＴ回路は、テストの対象となるメモリセルアレイが配置されるチップ内に形成されていてもよいし、そのチップとは異なるチップに形成されていてもよい。また、ＢＩＳＴ回路を省略し、外部テスタを用いて、メモリセルアレイのテストを行ってもよい。
【０１５４】
また、ＥＣＣ回路については、Ｎビットエラー訂正機能とＮ＋１ビットエラー検出機能とを有するものとして説明したが、本発明の例においては、ＥＣＣ回路は、必ずしもＮ＋１ビットエラー検出機能を持っている必要はない。例えば、本発明の例は、ＥＣＣ回路がＮビットエラー訂正機能のみを有する場合にも適用可能である。
【０１５５】
本発明の例は、上述の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で、構成要素を変形して具体化できる。また、上述の形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を構成できる。例えば、上述の形態に開示される全構成要素から幾つかの構成要素を削除してもよいし、異なる形態の構成要素を適宜組み合わせてもよい。
【産業上の利用可能性】
【０１５６】
本発明の例は、ＥＣＣ回路を搭載したメモリをテストするＢＩＳＴ回路に適用され、主として、ＤＲＡＭ、ＳＲＡＭなどのメモリを含む複数の機能ブロックを持つシステムＬＳＩに有効である。
【図面の簡単な説明】
【０１５７】
【図１】本発明の第１実施の形態に関わる半導体集積回路を示す図。
【図２】図１の回路の動作の概要（テスト方法１）を示す図。
【図３】エラー検知回路の例を示す図。
【図４】図１の回路の動作を示す信号波形図。
【図５】テスト方法１の具体例を示す図。
【図６】本発明の第２実施の形態に関わる半導体集積回路を示す図。
【図７】図２の回路の動作の概要（テスト方法２）を示す図。
【図８】テスト方法２におけるチェック対象ビットの例を示す図。
【図９】テスト方法２におけるチェック対象ビットの例を示す図。
【図１０】テスト方法２による効果を示す図。
【図１１】本発明の例が適用されたシステムＬＳＩの概要を示す図。
【図１２】従来の半導体集積回路を示す図。
【図１３】従来のテスト方法における問題点を示す図。
【符号の説明】
【０１５８】
１１：  メモリセルアレイ、  １２，１２Ａ，１２Ｂ：  ＥＣＣ回路、  １３，１３Ａ，１３Ｂ：  ＢＩＳＴ回路、  １４Ａ，１４Ｂ：  Ｎ＋１ビットエラー検出回路、ＳＥＬ１，ＳＥＬ２，ＳＥＬ３，ＳＥＬ４：  セレクタ、  ＲＥＧ１，ＲＥＧ２：  レジスタ、  ＯＲ１：  オア回路、  ＡＮＤ１：  アンド回路。
【図１】
2005203042.tif 000003
【図２】
2005203042.tif 000004
【図３】
2005203042.tif 000005
【図４】
2005203042.tif 000006
【図５】
2005203042.tif 000007
【図６】
2005203042.tif 000008
【図７】
2005203042.tif 000009
【図８】
2005203042.tif 000010
【図９】
2005203042.tif 000011
【図１０】
2005203042.tif 000012
【図１１】
2005203042.tif 000013
【図１２】
2005203042.tif 000014
【図１３】
2005203042.tif 000015