(57)【要約】【課題】簡易にメモリに故障ビットを挿入することが可能な半導体集積回路およびメモリの機能検証方法を提供する。【解決手段】ＢＩＳＴ回路１は、ＢＩＳＴ制御回路１１と、データ生成回路１２と、タイミングレジスタ１３と、ビット反転回路１４と、アドレス生成回路１５と、制御信号生成回路１６と、結果解析回路１７とを有する。ＢＩＳＴ回路１にビット反転回路１４を設けて、故障挿入指示信号に基づいて、書き込みデータの一部のビットを反転させる。そのため、実際にはメモリ２に故障ビットが存在しない場合でも、メモリ２に仮想的な故障ビットを挿入できる。これにより、良否判定や救済解析の機能検証を簡易に行うことができる。【選択図】図２
2010225239.tif 000002
【特許請求の範囲】
【請求項１】
メモリに書き込むべき第１のデータを生成するデータ生成回路と、
故障挿入指示信号に基づいて、前記第１のデータの少なくとも１ビットを反転させた組み込み自己テストを行うための第２のデータを生成する故障データ生成回路と、
前記第１および第２のデータのうち一方が前記メモリへの書き込みデータとして用いられ、かつ他方が前記メモリから読み出したデータと比較する出力期待値として用いられるように、前記第１および第２のデータの少なくとも一方のタイミングを調整するタイミング回路と、を備えることを特徴とする半導体集積回路。
【請求項２】
前記第１および第２のデータは、それぞれ複数ビットからなり、
前記故障データ生成回路は、
前記第１のデータの各ビットを反転させるか否かを切替える複数のビット反転回路と、
前記故障挿入指示信号に基づいて、前記複数のビット反転回路のそれぞれにビット反転動作を行わせるか否かを設定する故障ビット設定回路を備えることを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記故障ビット設定回路は、前記複数のビット反転回路のそれぞれが順にビット反転動作を行うように前記複数のビット反転回路を制御することを特徴とする請求項２に記載の半導体集積回路。
【請求項４】
前記第１または第２のデータを前記メモリに書き込む場所を指定するアドレス信号を生成するアドレス生成回路を備え、
前記故障ビット設定回路には、前記メモリ内の特定のメモリセルをアクセスするための特定のアドレスを示す故障アドレス設定入力信号が入力され、
前記故障ビット設定回路は、前記故障アドレス設定入力信号と、前記アドレス生成回路で生成した前記アドレス信号とが一致する場合に、前記特定のメモリセルに対応した前記ビット反転回路にビット反転動作を行わせることを特徴とする請求項２または３に記載の半導体集積回路。
【請求項５】
故障救済用の冗長部を備えたメモリに書き込むべき第１のデータを生成し、
故障挿入指示信号に基づいて、前記第１のデータの少なくとも１ビットを反転させた組み込み自己テストを行うための第２のデータを生成し、
前記第１および第２のデータのうち一方が前記メモリへの書き込みデータとして用いられ、かつ他方が前記メモリから読み出したデータと比較する出力期待値として用いられるように、前記第１および第２のデータの少なくとも一方のタイミングを調整し、
前記メモリに書き込んだデータを読み出して、前記出力期待値と比較し、
前記比較の結果に基づいて、故障箇所を前記冗長部を用いて救済可能か否かを判定し、
救済可能と判定された場合は、置換を行う前記冗長部内の場所を設定し、
前記メモリに対する書き込みおよび読み出しを行って、前記冗長部への置換が正しく行われたか否かを検証することを特徴とするメモリの機能検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリの自己テストを行う半導体集積回路およびメモリの機能検証方法に関する。
【背景技術】
【０００２】
半導体集積回路に良否判定回路や救済解析回路を搭載し、半導体集積回路に組み込まれたメモリデバイスの良否判定や冗長救済等を製造時に行うことが一般的に行われている。良否判定や冗長救済等を行うために必要な各種信号を生成する回路は、組み込み自己テスト（Built-In Self Test、以下、ＢＩＳＴ）回路と呼ばれている。
【０００３】
良否判定回路は、例えば、メモリに故障ビットが存在するか否かを判定する良否判定を行う。また、救済解析回路は、故障ビットに対して、スペアメモリのどの部分を置換して救済するかを良否判定の結果に基づいて解析する、すなわち、救済解を見出す処理を行う。救済解に基づいて、読み出しや書き込みができない故障ビットを含むメモリの一部を、スペアメモリで置換することができる。これにより、故障ビットを含むメモリも良品として出荷できるようになり、製造歩留まりが向上する。
【０００４】
実デバイスにおける良否判定や救済解析等の機能検証は非常に困難である。メモリに故障ビットが存在していなければ検証を行えないからである。実際に故障ビットが存在する複数のメモリを予め用意しておき、これら故障を含むメモリを利用して検証することが考えられるが、機能検証に必要十分な数のメモリを確保するのは容易ではない。特に、メモリの容量が大きくなるほど、機能検証に必要なメモリの数も増えてしまう。また、メモリに故障ビットを挿入するために、解析用装置を用いて物理的に故障ビットを生成することも考えられるが、機能検証コストが高くなり現実的ではない。
【０００５】
以上の理由で、簡易にメモリに故障ビットを挿入する手法が必要とされている。
【０００６】
特許文献１には、メモリに書き込まれたデータのエラー訂正を行う回路の機能検証を行う手法が開示されている。しかしながら、故障ビットを挿入することを念頭に置いたものではなく、良否判定や救済解析の機能検証は対象としていない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】ＵＳＰ２００１／００５２０９０
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、簡易にメモリに故障ビットを挿入することが可能な半導体集積回路およびメモリの機能検証方法を提供するものである。
【課題を解決するための手段】
【０００９】
本発明の一態様によれば、メモリに書き込むべき第１のデータを生成するデータ生成回路と、  故障挿入指示信号に基づいて、前記第１のデータの少なくとも１ビットを反転させた組み込み自己テストを行うための第２のデータを生成する故障データ生成回路と、前記第１および第２のデータのうち一方が前記メモリへの書き込みデータとして用いられ、かつ他方が前記メモリから読み出したデータと比較する出力期待値として用いられるように、前記第１および第２のデータの少なくとも一方のタイミングを調整するタイミング回路と、を備えることを特徴とする半導体集積回路が提供される。
【００１０】
また、本発明の一態様によれば、故障救済用の冗長部を備えたメモリに書き込むべき第１のデータを生成し、故障挿入指示信号に基づいて、前記第１のデータの少なくとも１ビットを反転させた組み込み自己テストを行うための第２のデータを生成し、前記第１および第２のデータのうち一方が前記メモリへの書き込みデータとして用いられ、かつ他方が前記メモリから読み出したデータと比較する出力期待値として用いられるように、前記第１および第２のデータの少なくとも一方のタイミングを調整し、前記メモリに書き込んだデータを読み出して、前記出力期待値と比較し、前記比較の結果に基づいて、前記第２のデータに含まれる故障を正しく検出できたか否かを検証し、前記比較の結果に基づいて、故障箇所を前記冗長部を用いて救済可能か否かを判定し、救済可能と判定された場合は、置換を行う前記冗長部内の場所を設定し、前記メモリに対する書き込みおよび読み出しを行って、前記冗長部への置換が正しく行われたか否かを検証することを特徴とするメモリの機能検証方法が提供される。
【発明の効果】
【００１１】
本発明によれば、簡易にメモリに故障ビットを挿入できる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態に係る半導体集積回路の概略構成を示すブロック図。
【図２】ＢＩＳＴ回路１の内部構成の一例を示すブロック図。
【図３】良否判定の機能検証を行う手順を示すフローチャート。
【図４】図２に示すＢＩＳＴ回路１の変形例を示すブロック図。
【図５】本発明の第２の実施形態に係るＢＩＳＴ回路１の内部構成の一例を示すブロック図。
【図６】ＢＷＥ機能の検証を行う回路の概略構成を示すブロック図。
【図７】図６のテスト回路を用いてＢＷＥ機能のテストを行う手順を示すフローチャート。
【図８】本発明の第３の実施形態に係るＢＩＳＴ回路１の内部構成の一例を示すブロック図。
【図９】本発明の第４の実施形態に係る半導体集積回路の概略構成を示す図。
【図１０】メモリ２の救済処理手順を示すフローチャート。
【図１１】図１０に示す救済処理の機能検証手順を示すフローチャート。
【発明を実施するための形態】
【００１３】
以下、本発明に係る半導体集積回路の実施形態について、図面を参照しながら具体的に説明する。
【００１４】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る半導体集積回路の概略構成を示すブロック図である。図１の半導体集積回路は、ＢＩＳＴ回路１と、メモリ２と、取り込みレジスタ３と、メモリ２の入出力データのビット数と同数の比較回路４と、良否判定回路５と、フラグレジスタ６と、救済解析回路７と、組み込み冗長割付（Built-In Redundancy Allocation、以下ＢＩＲＡ）レジスタ８とを備えている。また、ＢＩＳＴ回路１以外はメモリカラー９に内蔵されている。
【００１５】
ＢＩＳＴ回路１とメモリカラー９とは１つのチップに内蔵されていてもよいし、別チップで構成されていてもよい。メモリ２は、ＤＲＡＭ（Dynamic Random Access Memory）や、ＳＲＡＭ（Static Random Access Memory）、フラッシュメモリ等であるが、メモリの種類は特に限定されるものではない。
【００１６】
本実施形態では、ＢＩＳＴ回路１を用いて、良否判定や救済解析の機能検証を行う例を示す。なお、本願図面では、特に断らない限り、メモリ２の良否判定および救済解析の機能検証に必要な信号経路のみを示しており、メモリ２の通常使用時の信号経路を省略している。
【００１７】
ＢＩＳＴ回路１は、後述するアドレス信号、書き込みデータ、制御信号および出力期待値を生成する。取り込みレジスタ３は、メモリ２のデータを読み出し、読み出されたデータを一時的に保持する。比較回路４は、メモリ２から読み出したデータと出力期待値とが一致するか否かをビット毎に比較する。図１では、比較回路４はＥＸＯＲ回路で構成される例を示すが、具体的な回路構成は問わない。比較回路４は、メモリ２から読み出したデータと出力期待値とを比較し、両者が一致する場合は０値を、一致しない場合は１値をビットごとに出力する。
【００１８】
メモリ２は、内部にスペアセル（不図示）を有し、故障ビットを救済する冗長救済機能を有する。
【００１９】
良否判定回路５は、比較回路４の出力信号に基づいて、メモリ２に故障ビットが存在するか否かを判定する。良否判定回路５は、故障ビットが存在する場合は１値を、存在しない場合は０値を出力するものとする。フラグレジスタ６は、判定結果を一時的に保持し、判定結果をＢＩＳＴ回路１へ、または、半導体集積回路の外部に備えられたテスト装置（不図示）へ出力する。
【００２０】
救済解析回路７は、比較回路４の出力信号に基づいて、救済が可能か否か、可能な場合は故障ビットをスペアメモリのどの部分に置換して救済するかを解析する。ＢＩＲＡレジスタ８は、解析結果（救済解）を一時的に保持し、半導体集積回路の外部に備えられたテスト装置（不図示）へ出力する。
【００２１】
図２は、ＢＩＳＴ回路１の内部構成の一例を示すブロック図である。図２のＢＩＳＴ回路１は、ＢＩＳＴ制御回路１１と、データ生成回路１２と、タイミングレジスタ１３と、ビット反転回路１４と、アドレス生成回路１５と、制御信号生成回路１６と、結果解析回路１７とを有する。
【００２２】
ＢＩＳＴ制御回路１１は、データ生成回路１２、アドレス生成回路１５および制御信号生成回路１６を制御する。データ生成回路１２は書き込みデータを生成する。
【００２３】
ビット反転回路１４は、故障挿入指示信号に応じてメモリ２のビット線の一つを故障状態に設定する。図２では、ビット反転回路１４がＥＸＯＲ回路で構成される例を示しているが、具体的な回路構成は問わない。ビット反転回路１４は故障挿入指示信号と出力期待値のうちの１ビットとの排他的論理和を算出する。
【００２４】
ここで、故障挿入指示信号とは、ＢＩＳＴ回路１の外部から入力される信号で、メモリ２のビット線のいずれか一つを見かけ上故障状態に設定するための信号である。故障挿入指示信号が０値であればビット反転回路１４は出力期待値を反転しない。これは、故障ビットが存在しない状態に対応する。一方、故障挿入指示信号が１値であれば、ビット反転回路１４は出力期待値を反転する。これは、故障ビットが挿入された状態に対応する。すなわち、出力期待値が反転された場合、出力期待値と書き込みデータが一致しないため、メモリ２が故障した状態を仮想的に実現できる。
【００２５】
このように、本実施形態の故障挿入指示信号は、メモリ２の特定のセルに対して故障状態を設定するものではなく、メモリ２のビット線ごとに故障状態を設定するものである。
【００２６】
故障挿入指示信号はＢＩＳＴ回路１が搭載された半導体集積回路の外部から入力されてもよいし、同半導体集積回路内に搭載されたテストモード制御回路（不図示）等、他の回路から入力されてもよい。
【００２７】
ビット反転回路１４は、複数ビットからなる書き込みデータのうち、特定の１ビットのみに接続される。すなわち、本実施形態では、メモリ２のビット線のうち、いずれか一つの故障に対する良否判定の機能検証を行うことを念頭に置いている。ビット反転回路１４が接続されるビットは任意でよい。
【００２８】
タイミングレジスタ１３は、書き込みデータおよびビット反転回路１４の出力信号をいったん保持した後に出力期待値として出力する。これにより、メモリ２の読み書きに要する時間に応じた時間だけ書き込みデータおよびビット反転回路１４の出力信号を遅延させて出力期待値の出力タイミングを調整する。より具体的には、書き込みデータがメモリ２に書き込まれた後、メモリ２から読み出され、取り込みレジスタ３を介して比較回路４に入力されるデータと、出力期待値とが確実に比較回路４で比較できるよう、タイミングレジスタ１３は出力タイミングを調整する。
【００２９】
アドレス生成回路１５は、メモリ２に対する書き込みや読み出しのためのアドレス信号を生成する。制御信号生成回路１６は、メモリ２の書き込みや読み出し動作を制御する制御信号を生成する。
【００３０】
結果解析回路１７は、メモリカラー９内のフラグレジスタ６からの出力信号に基づいて、メモリ２が不良か否かを判定する。また、テスト対象のメモリ２が複数ある場合は、各フラグレジスタ６からの出力信号に基づいて、各メモリが不良か否かを判定する。そして、判定結果を外部のテスト装置へ出力する。
【００３１】
図３は、良否判定の機能検証を行う手順を示すフローチャートである。図１および図２に示すＢＩＳＴ回路１を用いて、良否判定の機能検証を行う手法を説明する。
【００３２】
まず、故障挿入指示信号を０値に設定し、ＢＩＳＴ回路１はメモリ２に故障が存在しない状態で書き込みデータをメモリ２に書き込む（ステップＳ５１）。書き込みデータは任意でよい。次に、ＢＩＳＴ回路１はメモリ２に書き込まれたデータを読み出す（ステップＳ５２）。読み出されたデータは、取り込みレジスタ３を介して比較回路４に入力される。比較回路４は、メモリ２から読み出されたデータと、ＢＩＳＴ回路１が生成する出力期待値との比較結果を出力する。
【００３３】
良否判定回路５は、比較回路４の出力信号に基づいて良否判定を行う（ステップＳ５３）。判定結果は、フラグレジスタを介してＢＩＳＴ回路１内の結果解析回路１７に入力される。ステップＳ５１，Ｓ５２ではメモリ２に故障ビットが存在しない状態で書き込みと読み出しを行っている。そのため、良否判定回路５はメモリ２に故障ビットが存在しないことを示す０値を出力するはずである。よって、良否判定回路５が１値を出力する場合（ステップＳ５４）、結果解析回路１７は、良否判定の機能が正しく動作していないと判定する（ステップＳ５９）。
【００３４】
次に、故障挿入指示信号を１値に設定し、ＢＩＳＴ回路１はメモリ２のビット線のいずれか一つに故障が存在する状態で書き込みデータをメモリ２に書き込む（ステップＳ５５）。書き込みデータは任意でよい。次に、ＢＩＳＴ回路１はメモリ２に書き込まれたデータを読み出す（ステップＳ５６）。読み出されたデータは、取り込みレジスタ３を介して比較回路４に入力される。比較回路４は、メモリ２から読み出されたデータと、ＢＩＳＴ回路１が生成する出力期待値との比較結果を出力する。
【００３５】
良否判定回路５は、比較回路４の出力信号に基づいて良否判定を行う（ステップＳ５７）。判定結果は、フラグレジスタを介してＢＩＳＴ回路１内の結果解析回路１７に入力される。ステップＳ５５，Ｓ５６ではメモリ２のビット線のいずれか一つに故障が存在する状態で書き込みおよび読み出しを行い、ビット反転回路１４は出力期待値の１ビットを反転させるため、読み出したデータと出力期待値とは一致しない。そのため、良否判定回路５はメモリ２に故障ビットが存在することを示す１値を出力するはずである。よって、良否判定回路５が１値を出力する場合（ステップＳ５８）、結果解析回路１７は、良否判定の機能が正しく動作していると判定する（ステップＳ６０）。一方、良否判定回路５が０値を出力する場合、結果解析回路１７は、良否判定の機能が正しく動作していないと判定する（ステップＳ５９）。
【００３６】
以上のようにして、良否判定の機能検証を行うことができる。仮に、メモリ２が故障した状態を想定した出力期待値を別個の回路で生成することにすると、データ生成回路１２と同程度の回路がもう１つ必要になり、回路規模が増大してしまう。本実施形態では、ビット反転回路１４を１つ追加するのみで、ＢＩＳＴ回路１は、メモリ２のビット線のいずれか一つを見かけ上故障状態にした書き込みデータと出力期待値を生成でき、回路規模の増大を抑えて良否判定の機能検証を行うことができる。
【００３７】
さらに、図２に示すＢＩＳＴ回路１を用いて救済解析の機能検証を行うこともできる。本実施形態は、メモリ２の特定のアドレスに故障を設定するわけではなく、メモリ２のビット線のいずれか一つを故障状態に設定するため、本実施形態が行う救済解析は、故障になった特定のビット線に接続されたすべてのメモリセルを一括でスペアメモリに置換する救済処理を対象とする。
【００３８】
本実施形態による救済解析の機能検証は、例えば以下のように行う。まず故障が存在しない状態でＢＩＳＴ回路１はメモリ２に書き込みおよび読み出しを行う。救済解析回路７は救済解析を行い、得られた解析解はＢＩＲＡレジスタ７を介して外部のテスト装置へ出力される。このとき、救済解析回路７が救済を行う必要がないことを示す救済解を出力していなければ、テスト装置は、救済解析の機能が正しく動作していないと判定する。
【００３９】
次に、メモリ２のビット線のいずれか一つを故障状態に設定した状態でＢＩＳＴ回路１はメモリ２へ書き込みおよび読み出しを行う。救済解析回路７は救済解をテスト装置へ出力する。テスト装置は、この救済解と、予め用意された救済解の期待値とが一致するか否か比較する。一致する場合、テスト装置は救済解析の機能が正しく動作していると判定する。一方、一致しない場合、テスト装置は救済解析の機能が正しく動作していないと判定する。
【００４０】
ＢＩＳＴ回路１は、メモリ２に書き込むべき第１のデータを生成するデータ生成回路１２と、故障挿入指示信号に基づいて、第１のデータの特定の１ビットを反転させた第２のデータを生成するビット反転回路１４（故障データ生成回路）と、第１および第２のデータのうち一方がメモリ２への書き込みデータとして用いられ、かつ他方がメモリ２から読み出したデータと比較する出力期待値として用いられるように、第１および第２のデータの少なくとも一方のタイミングを調整するタイミングレジスタ１３（タイミング回路）とを備えていれば良く、種々の変形が可能である。
【００４１】
図４は、図２に示すＢＩＳＴ回路１の変形例を示すブロック図である。図２のＢＩＳＴ回路１では、第１のデータが書き込みデータとして用いられ、第２のデータがタイミング調整されて出力期待値として用いられる。これに対し、図４（ａ）のＢＩＳＴ回路１の場合、第１のデータが書き込みデータとして用いられ、タイミングが調整された第１のデータの１ビットを反転させて生成される第２のデータが出力期待値として用いられる。また、図４（ｂ）のＢＩＳＴ回路１の場合、第２のデータが書き込みデータとして用いられ、タイミング調整された第１のデータが出力期待値として用いられる。
【００４２】
また、ビット反転回路１４はメモリ２へ書き込むデータでなく、メモリ２から読み出されるデータを反転させることにしてもよい。本実施形態では、メモリ２のビット線のいずれか一つに故障状態を設定することを念頭に置いており、ビット反転回路１４をどこに配置するかは特に問わない。
【００４３】
このように、第１の実施形態では、ＢＩＳＴ回路１にビット反転回路１４を設けて、故障挿入指示信号に基づいて、書き込みデータの一部のビットを反転させる。そのため、実際にはメモリ２に故障ビットが存在しない場合でも、メモリ２に仮想的な故障ビットを挿入できる。これにより、良否判定や救済解析の機能検証を簡易に行うことができる。
【００４４】
（第２の実施形態）
第１の実施形態は１ビットまたは固定ビットの故障ビットが挿入される。これに対し、以下に説明する第２の実施形態は、ＢＩＳＴ回路１が任意のビットに故障ビットを挿入するものである。
【００４５】
第２の実施形態に係る半導体集積回路の概略構成は図１と同様であるが、ＢＩＳＴ回路１の内部構成が第１の実施形態とは異なっている。図５は、本発明の第２の実施形態に係るＢＩＳＴ回路１の内部構成の一例を示すブロック図である。図５では、図２と共通する構成部分には同一の符号を付しており、以下では相違点を中心に説明する。図５のＢＩＳＴ回路１は、図２のＢＩＳＴ回路１の構成に加えて、故障データ生成回路４０を備える。故障データ生成回路４０は、故障ビット設定回路２１と、書き込みデータの各ビットに対応して設けられる複数のビット反転回路１４を有する。なお、図５のＢＩＳＴ回路１も図４と同様の変形が可能である。
【００４６】
故障ビット設定回路２１は、故障挿入指示信号に基づいて、複数のビット反転回路１４のそれぞれにビット反転動作を行わせるか否かを設定する。すなわち、故障ビット設定回路２１は、任意の複数のビット線に故障を同時に設定することができる。
【００４７】
図５のＢＩＳＴ回路１を用いると、第１の実施形態より詳細に良否判定の機能検証を行うことができる。すなわち、故障ビット設定回路２１はメモリ２のビット線のそれぞれを順々に故障状態に設定すべくビット反転回路１４を設定し、その都度、結果解析回路１７は良否判定回路５の判定結果を確認する。このようにして、メモリ２のビット線のどれが故障状態であっても、良否判定の機能が正しく動作することを検証することができる。
【００４８】
また、図５のＢＩＳＴ回路１を用いると、以下のように救済解析の機能検証をより詳細に行うこともできる。
【００４９】
救済解析では、故障ビットの位置に応じた救済を行う。よって、上記と同様に故障ビット設定回路２１はメモリ２の全ビット線に対して各ビット線ごとに順次故障ビットを挿入し、その都度、救済解を外部のテスト装置へ出力する。テスト装置は救済解と、予め用意した救済解の期待値とが一致するか否かを確認する。これにより、故障ビットの位置に応じた救済解が得られることの機能検証を行うことができる。
【００５０】
また、スペアメモリは有限であるので、故障ビットの数や位置によっては、メモリ２を救済できない故障パターンもある。この場合、救済解析回路７は救済不可との結果を出力する。ＢＩＳＴ回路１を用いて救済解が得られない故障パターンを設定することで、メモリ２の救済が行えない場合に救済解析回路７が救済不可との結果を出力することの機能検証を行うことができる。
【００５１】
ところで、故障ビット設定回路２１は、上述のように書き込みデータを１ビットずつ順次反転させる機能を有する。この機能を用いると、メモリ２のビットライトイネーブル（Bit Write Enable、以下ＢＷＥ）機能の検証を行うこともできる。ここで、ＢＷＥ機能とは、メモリ２にアドレスと書き込みデータが与えられ、メモリ２へ書き込みを行うよう制御信号が設定された場合でも、後述するＢＷＥ信号で指定されたビットのみ書き込みを行わない機能である。
【００５２】
図６は、ＢＷＥ機能の検証を行う回路の概略構成を示すブロック図である。ＢＩＳＴ回路１の内部構成は図５と同様である。図６のテスト回路は、故障ビット設定回路２１から出力され、ビット反転回路１４の制御を行う信号が、ＢＷＥ信号としてメモリ２のＢＷＥ端子にも入力される点、および比較回路４の出力信号がＢＩＳＴ回路１内の結果解析回路１７に入力される点が図１と異なっているが、ＢＷＥ機能の検証を行うために必要な回路を追加する必要はない。なお、図６ではＢＩＳＴ回路１およびメモリカラー９内の他の回路や信号を省略している。
【００５３】
以下の説明では、メモリ２の入出力データのビット幅をｎビットと仮定し、比較回路４およびビット反転回路１４はそれぞれｎ個設けられているものとする。
【００５４】
ここで、ＢＷＥ信号は、メモリ２の各ビットに書き込みを行うか否かを制御する信号である。より具体的には、ＢＷＥ信号はメモリ２の入出力データのビット幅と同じｎビットの信号であり、ＢＷＥ信号のｍ（０≦ｍ≦ｎ−１）ビット目が０値であればｍビット目に書き込みを行うが、ＢＷＥ信号のｍビット目が１値であればｍビット目に書き込みを行わない（すなわち、書き込みがマスクされる）ことを示す信号である。
【００５５】
図７は、図６のテスト回路を用いてＢＷＥ機能の検証を行う手順を示すフローチャートである。なお、テストを行う際、アドレス生成回路１５が生成するアドレス信号は固定値（例えばアドレス０）でよい。
【００５６】
まず、故障ビット設定回路２１は、ビット位置ｉを０に初期化する（ステップＳ１）。次に、故障ビット設定回路２１はＢＷＥ信号の全ビットを０値に設定し、ＢＩＳＴ回路１はメモリ２の全ビットに０値を書き込む（ステップＳ２）。このとき、ビット反転回路１４には、全ビットが０値であるＢＷＥ信号が入力されるので、ビット反転回路１４は出力期待値を反転させず、出力期待値の全ビットが０値である。また、メモリ２への書き込みはマスクされず、全ビットに０値が書き込まれる。
【００５７】
その後、ＢＩＳＴ回路１はメモリ２に書き込まれたデータを読み出す（ステップＳ３）。ＢＷＥ機能が正しく動作していれば、読み出されたデータの全ビットは０値であり、出力期待値の全ビットも０値であるから、読み出されたデータと出力期待値とは一致する。よって、全ての比較回路４は０値を出力する。一方、ＢＷＥ機能が正しく動作せず、読み出されたデータのある１ビットが１値である場合、１値であるビットに対応する比較回路４は１値を出力する。よって、比較回路４のうち少なくとも１ビットが１値である場合、結果解析回路１７はＢＷＥ機能が正しく動作していないと判定する（ステップＳ４，Ｓ９）。
【００５８】
次に、故障ビット設定回路２１がＢＷＥ信号のｉビット目を１値、その他のビットを０値に設定し、ＢＩＳＴ回路１はメモリ２の全ビットに１値を書き込む（ステップＳ５）。このとき、メモリ２のｉビット目のデータは、書き込みがマスクされるので書き換えられない。すなわち、メモリ２のｉビット目はステップＳ２で書き込まれた０値であり、他ビットは１値が書き込まれる。
【００５９】
また、ビット反転回路１４はｉビット目のみ１値のＢＷＥ信号が入力されており、ビット反転回路１４は出力期待値のｉビット目を反転する。すなわち、出力期待値のｉビット目は０値であり、他ビットは１値である。
【００６０】
その後、ＢＩＳＴ回路１はメモリ２に書き込まれたデータを読み出す（ステップＳ６）。ＢＷＥ機能が正しく動作していれば、読み出されたデータのｉビット目は０値、他のビットは１値である。このとき、読み出されたデータおよび出力期待値は一致しており、全ての比較回路４は０値を出力する。一方、ＢＷＥ機能が正しく動作していないがある場合、読み出されたデータと出力期待値とは一致しない。よって、一致していないビットに対応する比較回路４は１値を出力する。よって、比較回路４のうち少なくとも１ビットが１値である場合、結果解析回路１７はＢＷＥ機能が正しく動作していない判定する（ステップＳ７，Ｓ９）。
【００６１】
以上の処理を全てのビット（ｉ＝０〜ｎ−１）について行い（ステップＳ８，Ｓ１０）、ステップＳ４およびＳ７でＢＷＥ機能が正しく動作していないと判定されなかった場合、結果解析回路１７はＢＷＥ機能が正しく動作していると判定する（ステップＳ１１）。
【００６２】
なお、図７のテストでは、ＢＷＥ機能のうち、ＢＷＥ信号のｉビット目が１値であれば、ｉビット目のデータが０値から１値に書き換えられないことの機能検証はできる。しかし、ＢＷＥ信号のｉビット目が１値であれば、ｉビット目のデータが１値から０値に書き換えられないことの機能検証はできない。そこで、図７のテストに加え、ステップＳ２では全ビットに１値を書き込み、ステップＳ５では全ビットに０値を書き込むことにして図７と同様の処理を行うことが望ましい。これより、ＢＷＥ信号のｉビット目が１値であれば、データが１値から０値に書き換えられないことの機能検証もできる。
【００６３】
このように、第２の実施形態では、ＢＩＳＴ回路１内に書き込みデータの全ビットに対応してビット反転回路１４を設けて、故障ビット設定回路２１が出力期待値の任意のビットを反転させる。そのため、実際にはメモリ２に故障ビットが存在しない場合でも、簡易に任意のビットに仮想的な故障ビットを挿入できる。これにより、より詳細な良否判定および救済解析の機能検証を行うことができるとともに、良否判定や救済解析を行うＢＩＳＴ回路１を用い、他の回路を追加することなく、メモリ２のＢＷＥ機能の検証を行うこともできる。
【００６４】
（第３の実施形態）
上述した第１および第２の実施形態では、メモリ２の内部の特定のアドレスに対して故障を設定することは念頭に置いておらず、メモリ２のビット線を故障状態に設定するものであった。これに対して、以下に説明する第３の実施形態は、メモリ２の内部の特定のアドレスに対して故障状態を設定するものである。
【００６５】
図８は、本発明の第３の実施形態に係るＢＩＳＴ回路１の内部構成の一例を示すブロック図である。図８では、図５と共通する構成部分には同一の符号を付しており、以下では相違点を中心に説明する。
【００６６】
図８のＢＩＳＴ回路１は、アドレス生成回路１５から故障ビット生成回路２１へアドレス信号が入力される点が図５のＢＩＳＴ回路１と異なる。また、故障挿入指示信号とともに故障アドレス設定入力信号が故障ビット設定回路２１に入力される。故障アドレス設定入力信号は、メモリ２内に故障を挿入するメモリセルのアドレスを示す信号である。故障アドレス設定入力信号は、例えばＢＩＳＴ回路１の外部のテストモード制御回路（不図示）等から入力される。なお、図８のＢＩＳＴ回路１も図４と同様の変形が可能である。
【００６７】
故障ビット設定回路２１は、故障アドレス設定入力信号に設定されたアドレス位置とアドレス生成回路１５が生成するアドレス信号とが一致する場合、故障挿入指示信号に応じてビット反転回路１４に書き込みデータを反転させ、故障ビットを挿入する。一方、両アドレスが一致しない場合、故障ビット設定回路２１は故障ビットを挿入しない。よって、ＢＩＳＴ回路１は、アドレスおよびビットの両方を指定でき、メモリ２の最小単位であるセルに対して故障を挿入できる。
【００６８】
図８のＢＩＳＴ回路１を用いると、メモリ２のビット線ごとの良否判定および救済解析の機能検証を行えるだけでなく、メモリ２の内部のセル単位での良否判定および救済解析の機能検証も行える。例えば、アドレス方向に並んだセル群に対応したスペアメモリが１本設けられている場合、互いに異なるアドレスに同一ビットに対応する複数のセルに故障がある場合でも、救済解析回路７はメモリ２を救済できる。しかし、同一アドレス上に互いに異なるビットに対応する複数のセルに故障がある場合は救済できない。
【００６９】
図８のＢＩＳＴ回路１を用いると、異なるアドレス上の同一ビットに対応する複数のセルに故障がある場合には正しい救済解を出力し、同一アドレス上に異なるビットに対応する複数のセルに故障がある場合に救済できないことを出力することの機能検証を行うことができる。
【００７０】
このように、第３の実施形態では、メモリ２内の特定のセル単位で故障状態を設定して、良否判定と救済解析の機能検証を行うことができる。特に、本実施形態では、実際にはメモリ２に故障ビットが存在しない場合でも、簡易にセル単位で任意の位置に仮想的な故障ビットを挿入できるため、第２の実施形態より詳細に良否判定および救済解析の機能検証を行うことができる。
【００７１】
（第４の実施形態）
以下に説明する第４の実施形態は、メモリ救済動作の機能検証を行うものである。
【００７２】
図９は、本発明の第４の実施形態に係る半導体集積回路の概略構成を示す図である。図９では、図１と共通する構成部分には同一の符号を付しており、以下では相違点を中心に説明する。図９の半導体集積回路は図１の構成に加えて、ヒューズデバイス３１と、ヒューズラッチ３２と、救済制御回路３３とをさらに備えている。救済制御回路３３は、例えばＢＩＳＴ回路１と同じチップに内蔵されている。また、ＢＩＳＴ回路１の内部構成は、上述した各実施形態のいずれかに示すものである。
【００７３】
ヒューズデバイス３１には、救済解析回路７で得られた救済解がプログラムされる。ヒューズラッチ３２は、ヒューズデバイス３１にプログラムされたデータをメモリ２へ転送する。このデータは、メモリ２をアクセスするためのアドレスをスペアメモリ（冗長部）内のアドレスに置換するためのものである。これにより、メモリ２を救済後状態、すなわちスペアメモリを用いて、メモリ２に見かけ上故障ビットが存在しない状態とすることができる。ヒューズデバイス３１は、例えばテスト装置（不図示）から１回に限りプログラム可能な電気的ヒューズを用いる。ヒューズデバイス３１に換えて、フラッシュメモリ等のプログラム可能な他のデバイスを用いてもよい。
【００７４】
救済制御回路３３は、救済解析を行う際に、ＢＩＳＴ回路１やメモリカラー９内の各回路を制御する。これにより、組み込み自己救済（Built-In Self Repair：以下、ＢＩＳＲ）を行う。
【００７５】
図１０は、メモリ２の救済処理手順を示すフローチャートである。本実施形態は、図９に対して回路を追加することなく、図１０に示す救済処理の機能検証を行うものであるが、まずは図１０を用いてメモリ２の救済処理について説明する。
【００７６】
まず救済制御回路３３は、メモリ２を初期化する（ステップＳ２１）。より具体的には、救済制御回路３３は、プログラムされていないヒューズデバイス３１の内容を読み出し、ヒューズラッチ３２へシリアルまたはパラレルに転送する。これによりメモリ２は救済前の状態となる。ヒューズラッチ３２がセットまたはリセット機能を有する場合、リセット機能を用いて救済制御回路３３はメモリ２を救済前の状態にしてもよい。
【００７７】
次に、救済制御回路３３はＢＩＳＴ回路１を制御して、メモリ２の良否判定および救済解析を行う（ステップＳ２２）。良否判定回路５は、故障ビットの有無等をフラグレジスタ６に保存する。また、救済解析回路７は故障ビットが存在する場合、良否判定回路５の判定結果に基づいて救済解析を行い、救済解をＢＩＲＡレジスタ８に保存する（ステップＳ２３）。ここで、救済解析回路７がメモリ２の故障ビットを救済できないと判断した場合、救済制御回路３３は、メモリ２を不良品と判定する（ステップＳ３１）。
【００７８】
救済解析回路７がメモリ２の故障ビットを救済できると判断した場合、救済制御回路３３はヒューズデバイス３１に救済解を転送し（ステップＳ２５）、ヒューズデバイス３１は、メモリ２が救済後状態となるようプログラムされる（ステップＳ２６）。
【００７９】
次に、救済制御回路３３は、プログラムされたヒューズデバイス３１の内容を読み出し、ヒューズラッチ３２へ転送する（ステップＳ２７）。これにより、メモリ２は救済後状態に設定される。
【００８０】
その後、救済制御回路３３は良否判定を行う（ステップＳ２８）。良否判定回路５が故障ビットは存在しないと判断した場合、メモリ２は救済されており、良品と判定される（ステップＳ３０）。一方、メモリ２を救済後状態に設定したにも関わらず、良否判定回路５が故障ビットを検出する場合、救済解析回路７やヒューズデバイス３１等に何らかの不良があると考えられ、救済制御回路３３はメモリ２を不良品と判定する（ステップＳ３１）。
【００８１】
本実施形態は、図９の構成を用いて図１０の救済処理の機能検証を行う。図１１は、図１０に示す救済処理の機能検証手順を示すフローチャートである。
【００８２】
まず、図１０のステップＳ２１と同様にして、メモリ２を初期化する（ステップＳ４１）。次に、救済制御回路３３はＢＩＳＴ回路１を制御して、メモリ２に書き込んだデータを読み出し、比較回路４は読み出したデータと出力期待値と比較する。比較結果に基づいて、メモリ２の良否判定および救済解析を行う（ステップＳ４２）。このとき、ＢＩＳＴ回路１は、救済が可能なパターンで故障ビットを、メモリ２への書き込みデータまたは出力期待値に挿入する。すなわち、メモリ２への書き込みデータまたは出力期待値の少なくとも１ビットが反転された状態で良否判定および救済解析が行われる。
【００８３】
良否判定回路５は、故障ビットの有無等をフラグレジスタ６に保存する。また、救済解析回路７は救済解析を行い、救済解をＢＩＲＡレジスタ８に保存する（ステップＳ４３）。ステップＳ４２では救済可能な故障ビットが設定されているにもかかわらず、救済解析回路７がメモリ２の故障ビットを救済できないと判断した場合、救済解析機能に不良があることを示しており、救済制御回路３３はメモリ２を不良品と判定する（ステップＳ４８）。
【００８４】
救済解析回路７がスペアメモリを用いてメモリ２の故障ビットを救済できると判断した場合、救済制御回路３３はヒューズラッチ３２へ救済解を転送する（ステップＳ４５）。より具体的には、メモリ２の故障ビットの置換を行うスペアメモリの場所を設定する。図１０と異なり、ＢＩＳＴ制御回路１１は、ヒューズデバイス３１へは救済解を転送しない。その理由は、ヒューズデバイス３１は１回に限りプログラム可能であるので、ＢＩＳＴ回路１が設定した検証用の故障ビットを救済するようプログラムしてしまうと、実際のメモリ２の故障ビットを救済できなくなってしまうためである。
【００８５】
その後、救済制御回路３３は良否判定を行い（ステップＳ４６）、スペアメモリへの置換が正しく行われたか否かを検証する。このとき、ＢＩＳＴ回路１は、故障ビットが存在しない状態に設定して書き込みデータ等を生成する。良否判定の結果、良否判定回路５が故障ビットは存在しないと判断した場合、救済制御回路３３は図１０の救済動作は正常であると判定する（ステップＳ４９）。一方、良否判定回路５が故障ビットを検出した場合、救済制御回路３３はメモリ２を不良品と判定する（ステップＳ４８）。この場合、救済制御回路３３や、ヒューズラッチ３２、救済制御回路３３からヒューズラッチ３２あるいはヒューズデバイス３１への伝送経路等に何らかの不具合が存在しており、正しくメモリ２の救済が行えないと考えられる。
【００８６】
このように、第４の実施形態では、故障ビットを挿入可能なＢＩＳＴ回路１を用いて救済処理の機能検証を行う。そのため、メモリ２に故障ビットが存在しない場合でも、良否判定や救済解析の機能検証を行うＢＩＳＴ回路１のみを用いて、ヒューズデバイス３１をプログラムすることなく、メモリ救済動作の機能検証を行うことができる。
【００８７】
上記の記載に基づいて、当業者であれば、本発明の追加の効果や種々の変形を想到できるかもしれないが、本発明の態様は、上述した個々の実施形態には限定されるものではない。特許請求の範囲に規定された内容およびその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
【符号の説明】
【００８８】
１  ＢＩＳＴ回路
２  メモリ
４  比較回路
５  良否判定回路
７  救済解析回路
１２  データ生成回路
１３  タイミングレジスタ
１４  ビット反転回路
１５  アドレス生成回路
２１  故障ビット設定回路
３３  救済制御回路
４０  故障データ生成回路
【図１】
2010225239.tif 000003
【図２】
2010225239.tif 000004
【図３】
2010225239.tif 000005
【図４】
2010225239.tif 000006
【図５】
2010225239.tif 000007
【図６】
2010225239.tif 000008
【図７】
2010225239.tif 000009
【図８】
2010225239.tif 000010
【図９】
2010225239.tif 000011
【図１０】
2010225239.tif 000012
【図１１】
2010225239.tif 000013