(57)【要約】【課題】高精度にテスト漏れを検出可能な半導体集積回路、メモリのテスト方法およびテストパターン生成プログラムを提供する。【解決手段】実施形態によれば、半導体集積回路は、メモリ選択部と、テスト実行部と、複数のレジスタと、レジスタ制御部と、を備える。前記メモリ選択部は、複数のメモリからテスト対象メモリを選択する。前記テスト実行部は、前記テスト対象メモリに対して選択テストを実行し、前記選択テストの完了後に完了信号を生成する。前記複数のレジスタは、前記複数のメモリのそれぞれに対応して設けられる。前記レジスタ制御部は、前記完了信号および前記選択されたテスト対象メモリに基づいて、前記複数のレジスタの値を制御する。【選択図】図１
2013200262.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリからテスト対象メモリを選択するメモリ選択部と、
前記テスト対象メモリに対して選択テストを実行し、前記選択テストの完了後に完了信号を生成するテスト実行部と、
前記複数のメモリのそれぞれに対応して設けられ、対応する前記メモリに対する前記選択テストが完了したことを示す第１の値、または、対応する前記メモリに対する前記選択テストが完了していないことを示す第２の値に設定される複数のレジスタと、
前記完了信号および前記選択されたテスト対象メモリに基づいて、前記複数のレジスタの値を制御し、すべての前記選択テストの終了後に、前記複数のレジスタの値を順繰りに読み出して出力するレジスタ制御部と、を備え
前記選択テストは、連続する複数のＢＩＳＴ動作から構成され、
前記テスト実行部は、前記複数のＢＩＳＴ動作のそれぞれの完了後に前記完了信号を生成し、
前記レジスタ制御部は、
前記複数のＢＩＳＴ動作における初回のＢＩＳＴ動作の前記完了信号が生成された場合、前記選択されたテスト対象メモリに対応するレジスタを更新対象レジスタに設定するとともに、設定された前記更新対象レジスタを前記第１の値に設定し、
前記複数のＢＩＳＴ動作における２回目以降のＢＩＳＴ動作の前記完了信号が生成された場合、前記更新対象レジスタの値が前記第１の値に設定されており、かつ、前記テスト対象メモリと前記更新対象レジスタと対応するメモリとが一致する場合、前記更新対象レジスタを前記第１の値とし、前記更新対象レジスタの値が前記第２の値に設定されている場合、または、前記テスト対象メモリと前記更新対象レジスタと対応するメモリとが一致しない場合、前記更新対象レジスタを前記第２の値とすることを特徴とする半導体集積回路。
【請求項２】
複数のメモリからテスト対象メモリを選択するメモリ選択部と、
前記テスト対象メモリに対して選択テストを実行し、前記選択テストの完了後に完了信号を生成するテスト実行部と、
前記複数のメモリのそれぞれに対応して設けられ、対応する前記メモリに対する前記選択テストが完了したことを示す第１の値、または、対応する前記メモリに対する前記選択テストが完了していないことを示す第２の値に設定される複数のレジスタと、
前記完了信号および前記選択されたテスト対象メモリに基づいて、前記複数のレジスタの値を制御するレジスタ制御部と、を備えることを特徴とする半導体集積回路。
【請求項３】
前記レジスタ制御部は、すべての前記選択テストの終了後に、前記複数のレジスタの値を順繰りに読み出して出力することを特徴とする請求項２に記載の半導体集積回路。
【請求項４】
前記選択テストは、連続する複数のＢＩＳＴ動作から構成され、
前記テスト実行部は、前記複数のＢＩＳＴ動作のそれぞれの完了後に前記完了信号を生成し、
前記レジスタ制御部は、
前記複数のＢＩＳＴ動作における初回のＢＩＳＴ動作の前記完了信号が生成された場合、前記選択されたテスト対象メモリに対応するレジスタを更新対象レジスタに設定するとともに、設定された前記更新対象レジスタを前記第１の値に設定し、
前記複数のＢＩＳＴ動作における２回目以降のＢＩＳＴ動作の前記完了信号が生成された場合、前記更新対象レジスタに設定されている値および前記選択されたテスト対象メモリに基づいて、前記更新対象レジスタの値を更新することを特徴とする請求項２または３に記載の半導体集積回路。
【請求項５】
前記複数のＢＩＳＴ動作における２回目以降のＢＩＳＴ動作の前記完了信号が生成された場合、前記レジスタ制御部は、
前記更新対象レジスタの値が前記第１の値に設定されており、かつ、前記テスト対象メモリと前記更新対象レジスタと対応するメモリとが一致する場合、前記更新対象レジスタを前記第１の値とし、
前記更新対象レジスタの値が前記第２の値に設定されている場合、または、前記テスト対象メモリと前記更新対象レジスタと対応するメモリとが一致しない場合、前記更新対象レジスタを前記第２の値とすることを特徴とする請求項４に記載の半導体集積回路。
【請求項６】
テストパターンを生成するステップをコンピュータに実行させるテストパターン生成プログラムであって、
請求項１乃至５のいずれかに記載の半導体集積回路は、前記テストパターンに基づいてテスタにより制御され、
前記テストパターンは、
前記メモリ選択部を制御して、前記複数のメモリから前記テスト対象メモリを選択させるステップと、
すべての前記選択テストの終了後に、前記複数のレジスタの値を読み出すステップと、
前記読み出された複数のレジスタの値に基づいて、前記複数のメモリのすべてに対して選択テストが実行されたか否かを判定するステップと、を前記テスタに実行させることを特徴とするテストパターン生成プログラム。
【請求項７】
複数のメモリからテスト対象メモリを選択するステップと、
前記テスト対象メモリに対して選択テストを実行するステップと、
前記選択テストの完了後に完了信号を生成するステップと、
前記完了信号および前記選択されたテスト対象メモリに基づいて、前記複数のメモリのそれぞれに対応して設けられる複数のレジスタを制御するステップと、を備え、
前記複数のレジスタのそれぞれは、対応する前記メモリに対する前記選択テストが完了したことを示す第１の値、または、対応する前記メモリに対する前記選択テストが完了していないことを示す第２の値に設定されることを特徴とするメモリのテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体集積回路、メモリのテスト方法およびテストパターン生成プログラムに関する。
【背景技術】
【０００２】
半導体集積回路に組み込まれたメモリに、組み込み自己テスト回路を搭載し、製造段階においてテストを実行して故障を検出する手法が一般的に行われている。半導体集積回路には複数のメモリが組み込まれることもあり、その場合、すべてのメモリに対してテストを行う必要がある。
【０００３】
しかしながら、テスト結果を観測するだけではすべてのメモリに対してテストを行ったことを保証するのが困難であり、テスト漏れが発生するおそれがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２２５２３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
高精度にテスト漏れを検出可能な半導体集積回路、メモリのテスト方法およびテストパターン生成プログラムを提供する。
【課題を解決するための手段】
【０００６】
実施形態によれば、半導体集積回路は、メモリ選択部と、テスト実行部と、複数のレジスタと、レジスタ制御部と、を備える。前記メモリ選択部は、複数のメモリからテスト対象メモリを選択する。前記テスト実行部は、前記テスト対象メモリに対して選択テストを実行し、前記選択テストの完了後に完了信号を生成する。前記複数のレジスタは、前記複数のメモリのそれぞれに対応して設けられ、対応する前記メモリに対する前記選択テストが完了したことを示す第１の値、または、対応する前記メモリに対する前記選択テストが完了していないことを示す第２の値に設定される。前記レジスタ制御部は、前記完了信号および前記選択されたテスト対象メモリに基づいて、前記複数のレジスタの値を制御する。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態に係る半導体集積回路１０１およびメモリカラー２０１〜２０ｎの概略構成を示すブロック図。
【図２】メモリ選択レジスタ群（メモリ選択部）１１の構成を示す図。
【図３】テスト完了レジスタ群１２の構成を示す図。
【図４】半導体集積回路１０１およびテスタ３０１の処理動作の一例を示すシーケンス図。
【図５】第２の実施形態におけるＢＩＳＴの概略を示す図。
【図６】第２の実施形態に係る半導体集積回路１０２およびメモリカラー２０１〜２０ｎの概略構成を示すブロック図。
【図７】図６の半導体集積回路１０２およびテスタ３０１の処理動作の一例を示すシーケンス図。
【図８】図７のステップＳ５’を詳しく説明するフローチャート。
【発明を実施するための形態】
【０００８】
以下、実施形態について、図面を参照しながら具体的に説明する。
【０００９】
（第１の実施形態）
図１は、第１の実施形態に係る半導体集積回路１０１およびメモリカラー２０１〜２０ｎの概略構成を示すブロック図である。半導体集積回路１０１は、メモリ選択レジスタ（ＲＥＧ）群（メモリ選択部）１１と、テスト完了レジスタ群１２と、レジスタ制御部１３と、テスト実行部１０とを備えている。また、メモリカラー２０１〜２０ｎの内部構成は同様であり、メモリカラー２０ｋ（ｋ＝１〜ｎ）は、メモリ２１ｋと、取り込みレジスタ（ＲＥＧ）２２ｋと、比較器２３ｋと、フラグレジスタ２４ｋとを備えている。
【００１０】
また、同図のテスタ３０１は半導体集積回路１０１の外部に設けられる装置であり、テストパターン生成プログラムにより生成されたテストパターンが入力される。テスタ３０１は、このテストパターンに従って半導体集積回路１０１内の種々のレジスタを制御することにより、メモリ２１１〜２１ｎの組み込み自己テスト（Built-In Self Test、ＢＩＳＴ）を実行する。
【００１１】
複数のメモリ２１１〜２１ｎに対して同時にテストを実行すると、電圧降下が生じる等の理由により、正確なテストが行えないことがある。そのため、本実施形態では選択テストを実行する。選択テストとは、メモリ２１１〜２１ｎのうちの１または複数のメモリを選択し、選択されたメモリに対してのみテストを実行するものである。そして、複数の選択テストから構成され、メモリ２１１〜２１ｎに対して少なくとも１回のテストが実行されるようにした一連のテストを、ＢＩＳＴ＿ＡＬＬと呼ぶことにする。
【００１２】
図２は、メモリ選択レジスタ群１１の構成を示す図である。メモリ選択レジスタ群１１は、メモリ２１１〜２１ｎのそれぞれと対応して設けられる、ｎ個のメモリ選択レジスタ１１１〜１１ｎから構成される。メモリ選択レジスタ１１１〜１１ｎのそれぞれは、テスタ３０１から０値（Ｌ）または１値（Ｈ）に設定される。そして、１値に設定されたメモリ選択レジスタと対応するメモリがテスト対象メモリとして選択される。図２の例では、メモリ２１１，２１２はテスト対象メモリとして選択され、メモリ２１３，２１ｎはテスト対象メモリとして選択されない。
【００１３】
図３は、本実施形態の特徴の１つである、テスト完了レジスタ群１２の構成を示す図である。テスト完了レジスタ群１２は、メモリ２１１〜２１ｎのそれぞれと対応して設けられる、ｎ個のテスト完了レジスタ１２１〜１２ｎから構成される。そして、テスト完了レジスタ１２１〜１２ｎは、ＢＩＳＴ＿ＡＬＬを開始する前に、後述するレジスタ制御部１３により０値（第２の値）に設定される。０値は、対応するメモリ２１ｋに対する選択テストが完了していないことを示す。そして、テスト完了レジスタ１２ｋは、対応するメモリ２１ｋに対する選択テストが完了すると、１値（第１の値）に設定される。
【００１４】
ＢＩＳＴ＿ＡＬＬが終了した時点で、すべてのテスト完了レジスタ１２１〜１２ｎが１値に設定されるはずであるが、テスト漏れが発生すると、選択テストが実行されていないメモリに対応するテスト完了レジスタは０値のままである。そこで、ＢＩＳＴ＿ＡＬＬが終了した時点で、テスタ３０１はテスト完了レジスタ１２１〜１２ｎの値を読み出し、テスト漏れがないかの判断に用いる。
【００１５】
図１における半導体集積回路１０１内のテスト実行部１０は、メモリ選択レジスタ群１１により選択されたテスト対象メモリに対して、複数の選択テストから構成されるＢＩＳＴ＿ＡＬＬを実行する。そして、テスト実行部１０は、選択テストが完了する度に、完了信号ＤＯＮＥを生成する。
【００１６】
より具体的には、テスト実行部１０は、アドレス生成部１４と、データ生成部１５と、制御信号生成部１６と、結果解析部１７と、ＢＩＳＴ制御部１８とを有する。
【００１７】
アドレス生成部１４は、データの書き込みや読み出しを行うメモリ２１１〜２１ｎのアドレスを示す、アドレス信号を生成する。データ生成部１５は、メモリ２１１〜２１ｎに書き込むデータ信号を生成してメモリ２１１〜２１ｎに供給するとともに、メモリ２１１〜２１ｎから読み出される期待値を示す期待値信号を比較器２３１〜２３ｎに供給する。制御信号生成部１６は、メモリ２１１〜２１ｎの書き込みおよび読み出し動作を制御する、制御信号を生成する。
【００１８】
結果解析部１７は、メモリカラー２０１〜２０ｎ内のフラグレジスタ２４１〜２４ｎからの出力に基づいて、ＢＩＳＴ＿ＡＬＬの結果を出力する。ＢＩＳＴ制御部１８は、ＢＩＳＴ＿ＡＬＬを実行すべく、テスタ３０１からの制御に応じてアドレス生成部１４、データ生成部１５、制御信号生成部１６および結果解析部１７を制御したり、選択テストの完了後に完了信号ＤＯＮＥを生成したりする。
【００１９】
なお、図１では、図を簡略化するために、テスト実行部１０とメモリカラー２０１との間の信号のみを描いているが、実際にはテスト実行部１０とメモリカラー２０２〜２０ｎとの間でも同様の信号が伝送される。
【００２０】
レジスタ制御部１３は、ＢＩＳＴ＿ＡＬＬを開始する前に、テスト完了レジスタ群１２内のすべてのテスト完了レジスタ１２１〜１２ｎを０値に初期化する。そして、完了信号ＤＯＮＥが生成されると、レジスタ制御部１３はメモリ選択レジスタ群１１により選択されたメモリと対応するテスト完了レジスタを１値に設定する。ＢＩＳＴ＿ＡＬＬが終了すると、レジスタ制御部１３はテスト完了レジスタ１２１〜１２ｎの値を外部に出力する。レジスタ制御部１３は、例えば内部にシフトレジスタ（不図示）を有し、ｎ個のテスト完了レジスタ１２１〜１２ｎの値を順繰りにテスタ３０１に出力する。テスト完了レジスタ１２１〜１２ｎの値をシリアルに出力することで、半導体集積回路１０１の出力ピンの数の増加を抑制できる。
【００２１】
図１におけるメモリカラー２０１〜２０ｎは同様の構成であるため、以下ではメモリカラー２０ｋとして説明する。
【００２２】
メモリ２１ｋは、例えばＳＲＡＭ（Static Random Access Memory）である。メモリ２１ｋは、制御信号に応じて、アドレス信号により指定されたアドレスにデータが書き込まれたり、アドレス信号により指定されたアドレスのデータが読み出されたりする。メモリ２１ｋから出力されたデータは、取り込みレジスタ２２ｋに一時的に保持される。
【００２３】
比較器２３ｋは、取り込みレジスタ２２ｋに保持されているデータと、期待値とを比較する。両者が一致するか否かを示す比較結果は、フラグレジスタ２４ｋに一時的に保持され、その後、比較結果は半導体集積回路１０１内の結果解析部１７に入力される。フラグレジスタ２４１〜２４ｎからの比較結果に基づいて、結果解析部１７はメモリ２１１〜２１ｎの良否判定を行う。
【００２４】
このとき、テストパターン生成プログラムの設定ミス等により、ＢＩＳＴ＿ＡＬＬを実行してもメモリ２１１〜２１ｎのうちの一部に対して選択テストが実行されない可能性がある。テスト漏れが生じたとしても、結果解析部１７の出力のみを観測するだけでは、テスト漏れが生じたことを検出するのは困難である。
【００２５】
そこで、本実施形態では、メモリ２１１〜２１ｎとそれぞれ対応するテスト完了レジスタ１２１〜１２ｎを設け、各メモリに対する選択テストの実行履歴を書き込んでおくことにより、テスト漏れを高精度に検出することを図る。以下、半導体集積回路１０１およびテスタ３０１の処理動作について、詳しく説明する。
【００２６】
図４は、半導体集積回路１０１およびテスタ３０１の処理動作の一例を示すシーケンス図である。テスタ３０１は、予めテストパターン生成プログラムにより生成されたテストパターンが入力されており、これに従って動作する。
【００２７】
まず、テスタ３０１は、半導体集積回路１０１に対して、ＢＩＳＴ開始信号を設定する（ステップＳ１１）。これに応じて、半導体集積回路１０１内のレジスタ制御部１３はテスト完了レジスタ１２１〜１２ｎを０値に初期化する（ステップＳ１）。
【００２８】
次いで、テスタ３０１は、メモリ選択レジスタ１１１〜１１ｎのうち、選択テストを行うメモリと対応するメモリ選択レジスタを１値に、他のメモリ選択レジスタを０値に設定する（ステップＳ１２）。そして、テスト実行部１０は、１値に設定されたメモリ選択レジスタと対応するメモリを、テスト対象メモリとして選択する（ステップＳ２）。テスト実行部１０は、テスト対象メモリに対して、選択テストを実行する（ステップＳ３）。選択テストが完了すると、テスト実行部１０は完了信号ＤＯＮＥを生成し（ステップＳ４）、レジスタ制御部１３に供給する。
【００２９】
完了信号ＤＯＮＥが生成されると、レジスタ制御部１３はテスト対象メモリと対応するテスト完了レジスタを１値に設定する（ステップＳ５）。言い換えると、レジスタ制御部１３は、１値に設定されているメモリ選択レジスタと対応するメモリに対応する、テスト完了レジスタを１値に設定する。すなわち、レジスタ制御部１３は、メモリ選択レジスタ１１ｋが１値に設定されていれば、テスト完了レジスタ１２ｋを１値に設定する。なお、レジスタ制御部１３は他のテスト完了レジスタを更新しない。
【００３０】
そして、ＢＩＳＴ＿ＡＬＬが終了していなければ（ステップＳ１３のＮＯ）、テスタ３０１は、次に選択テストを行うメモリと対応するメモリ選択レジスタを１値に、他のメモリ選択レジスタを０値に設定する（ステップＳ１２）。なお、選択テストに要する時間（クロック数）は予め分かっている。よって、１回の選択テストが完了してテスト完了レジスタが更新されるタイミングで、テスタ３０１がメモリ選択レジスタ１１１〜１１ｎを設定するよう、テストパターンは生成されている。
【００３１】
これらのステップＳ２〜Ｓ５を繰り返すことにより、メモリ２１１〜２１ｎのすべてに対して選択テストが実行され、テスト完了レジスタ１２１〜１２ｎはすべて１値に設定されるはずである。しかしながら、メモリ２１１〜２１ｎのうちの１またはいくつかに対して選択テストが実行されていない可能性もある。
【００３２】
ＢＩＳＴ＿ＡＬＬが終了すると（ステップＳ１３のＹＥＳ）、テスタ３０１はテスト完了レジスタ１２１〜１２ｎを読み出す（ステップＳ１４）。
【００３３】
そして、テスト完了レジスタ１２１〜１２ｎの値がすべて１値であれば（ステップＳ１５のＹＥＳ）、テスタ３０１は、メモリ２１１〜２１ｎのすべてに対して選択テストが実行されており、テスト漏れが発生していない、と判断する（ステップＳ１６）。一方、テスト完了レジスタ１２ｋの少なくとも１つの値が０値であれば（ステップＳ１５のＮＯ）、テスタ３０１はテスト漏れが発生していると判断する（ステップＳ１７）。
【００３４】
その場合は、メモリ２１１〜２１ｎのすべてに対して選択テストが実行されるよう、テストパターンを生成するテストパターン生成プログラムを修正する必要があることが分かる。
【００３５】
このように、第１の実施形態では、半導体集積回路１０１内にメモリ２１１〜２１ｎとそれぞれ対応するテスト完了レジスタ１２１〜１２ｎを設け、選択テストの実行履歴をテスト完了レジスタ１２１〜１２ｎに書き込む。そのため、メモリ２１１〜２１ｎに対するテスト漏れを高精度に検出できる。
【００３６】
（第２の実施形態）
第２の実施形態は、複数のＢＩＳＴ動作を組み合わせて１つのテストシーケンスを実現する場合における選択テストの例である。
【００３７】
図５は、第２の実施形態におけるＢＩＳＴの概略を示す図である。同図は、Ｊ回の選択テスト１〜テストＪにより、すべてのメモリ２１１〜２１ｎに対して少なくとも１回の選択テストを実行するものである。各選択テストはＭ個のＢＩＳＴ動作１〜Ｍから構成される。ＢＩＳＴ動作のそれぞれは、例えばメモリへの書き込みや、読み出しおよび期待値との比較である。
【００３８】
１つの選択テスト内でのＢＩＳＴ動作１〜Ｍは、一定のメモリに対して連続して実行されることを念頭に置いている。例えば、図５では、選択テスト１内でのＢＩＳＴ動作１〜Ｍはすべてメモリ２１１に対して実行され、選択テストＪ内のＢＩＳＴ動作１〜Ｍはすべてメモリ２１３，２１ｎに対して行われる例を示している。
【００３９】
しかしながら、テストパターン生成プログラムの設定ミス等により、ＢＩＳＴ動作のうちの一部が異なるメモリに対して実行されてしまう可能性がある。例えば、ＢＩＳＴ動作１，３〜Ｍは正しくメモリ２１１に対して実行されるのに、ＢＩＳＴ動作２は誤ってメモリ２１２に対して実行されてしまうことが考えられる。この場合、メモリ２１１に対する選択テストは完了しているとは言えず、テスト漏れとなる。
【００４０】
本実施形態では、選択テスト内のＢＩＳＴ動作のうちの一部が誤って他のメモリに対して実行されてしまうことによるテスト漏れを、高精度に検出することを図るものである。
【００４１】
図６は、第２の実施形態に係る半導体集積回路１０２およびメモリカラー２０１〜２０ｎの概略構成を示すブロック図である。図６では、図１と共通する構成部分には同一の符号を付しており、以下では相違点を中心に説明する。
【００４２】
図６の半導体集積回路１０２は、さらに、開始設定レジスタ２１と終了設定レジスタ２２とを備えている。開始設定レジスタ２１が１値に設定されると、選択テストにおける初回のＢＩＳＴ動作（図５におけるＢＩＳＴ動作１）であることを意味する。また、終了設定レジスタ２２が１値に設定されると、選択テストにおける最終回のＢＩＳＴ動作（図５におけるＢＩＳＴ動作Ｍ）であることを意味する。
【００４３】
また、本実施形態のテスト実行部１０は、１回のＢＩＳＴ動作が終了する度に、完了信号ＤＯＮＥを生成する。また、最終回のＢＩＳＴ動作に対する完了信号ＤＯＮＥは、選択テストに対する完了信号ＤＯＮＥを兼ねている。
【００４４】
図７は、図６の半導体集積回路１０２およびテスタ３０１の処理動作の一例を示すシーケンス図である。
【００４５】
図４との１つの相違点は、テスタ３０１がメモリ選択レジスタ１１１〜１１ｎに加え、開始設定レジスタ２１および終了設定レジスタ２２を設定する（ステップＳ１２’）点である。すなわち、テスタ３０１は、選択テスト内の初回のＢＩＳＴ動作（図５におけるＢＩＳＴ動作１）である場合には開始設定レジスタ２１を１値に設定し、他の場合には開始設定レジスタ２１を０値に設定する。また、テスタ３０１は、選択テスト内の最終回のＢＩＳＴ動作（図５におけるＢＩＳＴ動作Ｍ）である場合には終了設定レジスタ２２を１値に設定し、他の場合には終了設定レジスタ２２を０値に設定する。
【００４６】
また、図７と図４との他の相違点は、テスト実行部１０は、テスト対象メモリに対してＢＩＳＴ動作を実行し（ステップＳ３’）、ＢＩＳＴ動作が完了する度に完了信号ＤＯＮＥを生成する点（ステップＳ４’）と、その後のテスト完了レジスタ１２１〜１２ｎの更新処理（ステップＳ５’）である。なお、ここでの更新とは値を保持することも含むものとする。
【００４７】
図８は、図７のステップＳ５’を詳しく説明するフローチャートである。図７および図８の各ステップにおけるテスト完了レジスタ１２１〜１２ｎに対する処理が、図５にも示されている。
【００４８】
まず、テスト実行部１０は、開始設定レジスタ２１の値に基づいて、実行されたＢＩＳＴ動作が選択テスト内の初回のＢＩＳＴ動作であるか否かを判断する（ステップＳ５１）。開始設定レジスタ２１に１値が設定されている場合はＢＩＳＴ動作の初回である（ステップＳ５１のＹＥＳ）。したがって、テスト実行部１０は、メモリ選択レジスタ群１１の設定に基づいて、選択されたテスト対象メモリと対応するテスト完了レジスタを、更新対象レジスタに設定する（ステップＳ５２）。その上で、レジスタ制御部１３は更新対象レジスタを１値に設定する（ステップＳ５３）。
【００４９】
以下では、テスト完了レジスタ１２１〜１２ｎのうち、メモリ２１ｋと対応するテスト完了レジスタ１２ｋが更新対象レジスタに設定されたものとし、更新対象レジスタ１２ｋと表記する。もちろん、複数のテスト完了レジスタが更新対象レジスタに設定されてもよい。
【００５０】
実行されたＢＩＳＴ動作が選択テスト内の初回でなく２回目以降のＢＩＳＴ動作である場合（ステップＳ５１のＮＯ）、既に更新対象レジスタ１２ｋが設定されているので、レジスタ制御部１３は更新対象レジスタ１２ｋの値を読み出す。読み出された値が１値であり（ステップＳ５４のＹＥＳ）、かつ、テスト対象メモリと更新対象レジスタと対応するメモリが一致する場合、すなわち、メモリ選択レジスタ１１ｋが１値である場合（ステップＳ５５のＹＥＳ）、レジスタ制御部１３は更新対象レジスタ１２ｋを１値に設定する（ステップＳ５６）。これに対し、更新対象レジスタ１２ｋの値が０値である場合（ステップＳ５４のＮＯ）、または、テスト対象メモリと更新対象レジスタ１２ｋと対応するメモリとが一致しない場合、すなわち、メモリ選択レジスタ１１ｋが０値である場合（ステップＳ５５のＮＯ）、レジスタ制御部１３は更新対象レジスタ１２ｋの値を０値に設定する（ステップＳ５７）。
【００５１】
このように、レジスタ制御部１３は、ステップＳ５４〜Ｓ５７において、更新対象レジスタ１２ｋの値と、メモリ選択レジスタ１１ｋの値との論理積を、更新対象レジスタ１２ｋに書き込む。
【００５２】
既に実行されたＢＩＳＴ動作がすべて正しくメモリ２１ｋに対して実行されていれば、更新対象レジスタ１２ｋの値は１値である（ステップＳ５４のＹＥＳ）。ところが、テストパターン生成プログラムのミス等により、ＢＩＳＴ動作のうちの一部が誤って他のメモリに対して実行されている場合、言い換えると、テスト対象メモリと更新対象レジスタ１２ｋと対応するメモリとが一致しない場合（ステップＳ５５のＮＯ）、更新対象レジスタ１２ｋは０値に設定される（ステップＳ５７）。よって、引き続くＢＩＳＴ動作が正しくメモリ２１ｋに対して実行されても、更新対象レジスタ１２ｋの値が０値に設定されている（ステップＳ５４のＮＯ）ため、ＢＩＳＴ動作Ｍが終了した時点での更新対象レジスタ１２ｋの値は０値である。
【００５３】
これにより、ＢＩＳＴ動作のうちの一部が誤って他のメモリに対して実行されてしまうことによるテスト漏れを検出できる。
【００５４】
実行されたＢＩＳＴ動作が選択テスト内の最終回のＢＩＳＴ動作である場合、すなわち、終了設定レジスタ２２が１値に設定されている場合（ステップＳ５８のＹＥＳ）、更新対象レジスタ１２ｋの値を確定し（ステップＳ５９）、以降はテスト完了レジスタ１２ｋを更新しない。
【００５５】
引き続くＢＩＳＴ動作は、次に選択テスト内の初回のＢＩＳＴ動作となるため（ステップＳ５１のＹＥＳ）、別のテスト完了レジスタが更新対象レジスタに設定される（ステップＳ５２）。
【００５６】
このように、第２の実施形態では、ＢＩＳＴ動作が完了する度に、更新対象レジスタテスト対象メモリにすでに設定されている値と、選択されたテスト対象メモリとに応じて、更新対象レジスタの値を更新する。そのため、選択テストを複数がＢＩＳＴ動作から構成される場合でも、高精度にテスト漏れを検出できる。
【００５７】
上述した実施形態で説明したテストパターン生成プログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【００５８】
また、テストパターン生成プログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【００５９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００６０】
１０  テスト実行部
１１  メモリ選択レジスタ群
１１１〜１１ｎ  メモリ選択レジスタ
１２  テスト完了レジスタ群
１２１〜１２ｎ  テスト完了レジスタ
１３  レジスタ制御部
２１１〜２１ｎ  メモリ
１０１，１０２  半導体集積回路
【図１】
2013200262.tif 000003
【図２】
2013200262.tif 000004
【図３】
2013200262.tif 000005
【図４】
2013200262.tif 000006
【図５】
2013200262.tif 000007
【図６】
2013200262.tif 000008
【図７】
2013200262.tif 000009
【図８】
2013200262.tif 000010