(57)【要約】【課題】診断時間を短縮する。【解決手段】半導体集積回路は、メモリと、自己テスト回路と、メモリ出力解析回路と、を備える。メモリ出力解析回路は、第１回路と、第２回路と、第３回路とを備える。第１回路は、メモリから順次出力されたデータと期待値との比較に基づいて第１の故障の有無を判定する。第２回路は、第１回路によって第１の故障が検出された場合、第１の故障がアドレス方向に連続する第２の故障に該当するか否かを判定し、第１の故障が第２の故障に該当すると判定した場合、第１信号を出力する。第３回路は、第１信号が出力されている間、第２の故障の他に第２の故障に該当しない第３の故障が発生したか否かを判定し、第３の故障が発生したと判定した場合、第２信号を出力する。自己テスト回路は、第１信号および第２信号に少なくとも基づいて、テストを中断するか否かを決定する。【選択図】図６
2019164095.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、
前記メモリに行毎にデータを書き込んで出力させるとともに期待値を出力する組み込み自己テスト回路と、
前記メモリから順次出力されたデータと前記期待値との比較に基づいて第１の故障の有無を判定する第１回路と、
前記第１回路によって前記第１の故障が検出された場合、前記第１の故障がアドレス方向に連続する第２の故障に該当するか否かを判定し、前記第１の故障が前記第２の故障に該当すると判定した場合、第１信号を出力する第２回路と、
前記第１信号が出力されている間、前記第２の故障の他に前記第２の故障に該当しない第３の故障が発生したか否かを判定し、前記第３の故障が発生したと判定した場合、第２信号を出力する第３回路と、
を備えたメモリ出力解析回路と、
を備え、
前記組み込み自己テスト回路は、前記第１信号および前記第２信号に少なくとも基づいて、テストを中断するか否かを決定する、
半導体集積回路。
【請求項２】
前記第２信号が出力された場合、前記組み込み自己テスト回路は、前記テストを中断して故障情報の出力を実行し、
前記第１信号が出力されている間、前記第２信号の出力が止まった場合、前記組み込み自己テスト回路は、前記テストを中断せずに前記テストを続行する、
請求項１に記載の半導体集積回路。
【請求項３】
前記組み込み自己テスト回路は、前記テストを中断して前記故障情報の出力を実行した後、この中断位置より遡る再開位置から前記テストを再開する、
請求項２に記載の半導体集積回路。
【請求項４】
前記組み込み自己テスト回路は、前記中断位置を記憶し、前記テストを再開した後、テスト位置が前記中断位置に至るまで、前記テストを中断しない、
請求項３に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、半導体集積回路に関する。
【背景技術】
【０００２】
メモリを含む半導体集積回路に組み込み自己テスト（Built-In  Self  Test、以下ＢＩＳＴという）回路を組み込み、ＢＩＳＴ回路を用いてＢＩＳＴを行い、メモリの故障有無の判別、故障箇所の特定が行われている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４４５５６２３号公報
【特許文献２】米国特許第７６５３８５４号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一つの実施形態は、診断時間を短縮できる半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００５】
一つの実施形態によれば、半導体集積回路は、メモリと、自己テスト回路と、メモリ出力解析回路と、を備える。自己テスト回路は、メモリに行毎にデータを書き込んで出力させるとともに期待値を出力する。メモリ出力解析回路は、第１回路と、第２回路と、第３回路とを備える。第１回路は、メモリから順次出力されたデータと期待値との比較に基づいて第１の故障の有無を判定する。第２回路は、第１回路によって第１の故障が検出された場合、第１の故障がアドレス方向に連続する第２の故障に該当するか否かを判定し、第１の故障が第２の故障に該当すると判定した場合、第１信号を出力する。第３回路は、第１信号が出力されている間、第２の故障の他に第２の故障に該当しない第３の故障が発生したか否かを判定し、第３の故障が発生したと判定した場合、第２信号を出力する。自己テスト回路は、第１信号および第２信号に少なくとも基づいて、テストを中断するか否かを決定する。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態に係る半導体集積回路の概略構成を示す図である。
【図２】図２は、実施形態に係る、メモリ出力解析回路が有する構成要素と、各構成要素間の配線と、の一例を示す図である。
【図３】図３は、実施形態に係るメモリ出力解析回路が各構成要素の構成の一例を示す図である。
【図４】図４は、実施形態に係る診断データ保存回路が有する構成要素の一例を示す図である。
【図５】図５は、実施形態に係る各レジスタによって構成されるシフトレジスタの一例を説明するための図である。
【図６】図６は、実施形態に係る半導体集積回路の動作を説明するフローチャートである。
【図７】図７は、実施形態に係るＢＩＳＴを実行する際の手順の一例を示す。
【図８】図８は、実施形態に係るＢＩＳＴを実行する際の手順の別の一例を示す。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、実施形態にかかる半導体集積回路を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【０００８】
（実施形態）
図１は、実施形態に係る半導体集積回路の概略構成を示す図である。この半導体集積回路１０００はＢＩＳＴ回路１００およびメモリカラー１２０を有する。ＢＩＳＴ回路１００はＢＩＳＴ制御回路１０１、データ生成器１０２、アドレス生成器１０３、制御信号生成器１０４、結果解析器１０５、診断データ保存回路１０６を有する。
【０００９】
メモリカラー１２０はＢＩＳＴ対象となるメモリ１２１、メモリ出力解析回路１２２を有する。
【００１０】
ＢＩＳＴ回路１００において、ＢＩＳＴ制御回路１０１、データ生成器１０２、アドレス生成器１０３、制御信号生成器１０４、結果解析器１０５、診断データ保存回路１０６にクロック信号およびリセット信号１１３が入力される。
【００１１】
結果解析器１０５から出力されるＢＩＳＴ結果１１７が外部テスト装置１３０に与えられる。外部テスト装置１３０は、シフト入力１１５とシフト出力１２７とが接続されており、各種レジスタによって構成されたシフト入力１１５からシフト出力１２７までのシフトパス（後述する）のシフト制御を実行する。外部テスト装置１３０は、シフトクロック１１４およびシフトイネーブル信号１１６を用いてシフト制御を実行する。
【００１２】
クロック信号およびリセット信号１１３はメモリ１２１およびメモリ出力解析回路１２２にも入力される。診断データ保存回路１０６およびメモリ出力解析回路１２２にはシフトクロック１１４も入力される。
【００１３】
ＢＩＳＴ制御回路１０１は、メモリ出力解析回路１２２から出力される不良フラグ信号２２０、連続不良フラグ信号２２１、および別不良フラグ信号２２２を、結果解析器１０５を介して取得する。ＢＩＳＴ制御回路１０１は、取得した不良フラグ信号２２０、連続不良フラグ信号２２１、および別不良フラグ信号２２２に基づいて、ＢＩＳＴの実行、中断、および再開を含めた診断のシーケンスを制御する。
【００１４】
診断のシーケンスでは、ＢＩＳＴ制御回路１０１が、データ生成器１０２、アドレス生成器１０３、制御信号生成器１０４、結果解析器１０５、診断データ保存回路１０６の動作を制御し、各種処理を行うために必要な信号を順次生成させる。
【００１５】
データ生成器１０２にて生成された書き込みデータ１０７、アドレス生成器１０３にて生成されたアドレスデータ１０９、制御信号生成器１０４にて生成されたメモリ制御信号１１０がそれぞれメモリ１２１に与えられる。これによりメモリ１２１にデータが書き込まれる。
【００１６】
また、制御信号生成器１０４にて生成されたメモリ制御信号１１０に応じて、メモリ１２１からデータ（出力データ２０１）が出力される。出力データ２０１はメモリ出力解析回路１２２に入力される。
【００１７】
また、メモリ出力解析回路１２２はデータ生成器１０２にて生成された書き込みデータ１０７と同一のデータ期待値１０８が与えられ、メモリ１２１から出力された出力データ２０１がデータ期待値１０８と一致するか、すなわち正常か不良かが判定される。
【００１８】
次に、図２および図３を参照して、メモリ出力解析回路１２２の構成例を説明する。図２は、実施形態に係る、メモリ出力解析回路１２２が有する構成要素と、各構成要素間の配線と、の一例を示す図である。図３は、実施形態に係るメモリ出力解析回路１２２が各構成要素の構成の一例を示す図である。
【００１９】
図２に示されるように、メモリ出力解析回路１２２は、出力比較回路ブロック１４０、連続不良判断回路ブロック１５０、および別不良判断回路ブロック１６０を有する。出力比較回路ブロック１４０、連続不良判断回路ブロック１５０、および別不良判断回路ブロック１６０は、クロック信号およびリセット信号１１３が共通に入力され、これらの信号に基づいて動作する。
【００２０】
出力比較回路ブロック１４０には、出力データ２０１、データ期待値１０８、および抑制信号１２６が入力される。
【００２１】
図３に示されるように、出力比較回路ブロック１４０は、出力データレジスタ１４１、不良フラグレジスタ１４２、および第１処理回路１４３を有する。
【００２２】
出力比較回路ブロック１４０に入力された出力データ２０１は、出力データレジスタ１４１に取り込まれる。第１処理回路１４３は、出力データレジスタ１４１に取り込まれた出力データ２０１とデータ期待値１０８とを比較する。
【００２３】
第１処理回路１４３は、第１処理回路１４３による比較の結果に基づいて、故障（不良）が検出されたか否かを示す不良フラグを操作する。
【００２４】
第１処理回路１４３による比較の方法や、不良フラグの操作の具体的な方法は、特定の方法に限定されない。不良フラグの論理は、任意に設定可能である。
【００２５】
ここでは一例として、論理「１」の不良フラグは故障が検出されたことを示すこととする。不良フラグの論理を「１」とすることを、不良フラグを立てる、と表記することがある。また、論理「０」の不良フラグは故障が検出されていないことを示すこととする。不良フラグの論理を「０」とすることを、不良フラグを下ろす、と表記することがある。
【００２６】
その場合、第１処理回路１４３は、例えば、出力データ２０１とデータ期待値１０８とで排他的論理和のビット演算を実行する。排他的論理和のビット演算によって、出力データ２０１とデータ期待値１０８とで値が異なるビットを「１」とし、出力データ２０１とデータ期待値１０８とで値が同一であるビットを「０」とした、出力データ２０１およびデータ期待値１０８と同一のビット幅のデータ（比較結果データ）が得られる。
【００２７】
出力データ２０１とデータ期待値１０８とで値が異なるビットを「１」とし、出力データとデータ期待値１０８とで値が同一であるビットを「０」としたデータは、本明細書では、故障した位置を示したデータという意味で、故障パタンとも称される。
【００２８】
第１処理回路１４３は、さらに、比較結果データ（故障パタン）の全ビットの論理和を演算する。これにより、出力データ２０１とデータ期待値１０８とで値が異なるビットが存在する場合には「１」とし、出力データ２０１とデータ期待値１０８とで値が異なるビットが存在しない場合には「０」とした１ビットのデータが得られる。第１処理回路１４３は、論理和の演算結果を不良フラグとして不良フラグレジスタ１４２に格納する。
【００２９】
これにより、出力データ２０１とデータ期待値１０８とで値が異なるビットが存在する場合には、不良フラグの論理を「１」とし、出力データ２０１とデータ期待値１０８とで値が異なるビットが存在しない場合には、不良フラグの論理を「０」とすることができる。
【００３０】
不良フラグレジスタ１４２は、不良フラグを不良フラグ信号２２０として出力する。
【００３１】
なお、第１処理回路１４３は、抑制信号１２６が抑制指示を示す場合、故障の検出の処理をスキップする。第１処理回路１４３は、抑制信号１２６が非抑制指示を示す論理である場合、出力データとデータ期待値１０８との比較結果に応じて不良フラグの値を決定することができる。
【００３２】
抑制信号１２６に関しては、抑制指示を示す論理および非抑制指示を示す論理は、任意に設定され得る。
【００３３】
図２に示されるように、第１処理回路１４３によって得られた比較結果データ（比較結果データ２３０）、即ち故障パタンは、連続不良判断回路ブロック１５０にも入力される。
【００３４】
図３に示されるように、連続不良判断回路ブロック１５０は、故障パタンレジスタ１５１、連続不良フラグレジスタ１５２、および第２処理回路１５３を有する。
【００３５】
不良フラグが論理「０」から論理「１」になると、連続不良判断回路ブロック１５０に入力された比較結果データ２３０は、故障パタンレジスタ１５１に保存される。
【００３６】
第２処理回路１５３は、比較結果データ２３０が故障パタンレジスタ１５１に保存された後に新たに比較結果データ２３０が送られてきたとき、故障パタンレジスタ１５１に保存された比較結果データ２３０（以降、保存パタンと表記する）と新たに送られてきた比較結果データ２３０とを比較する。
【００３７】
そして、第２処理回路１５３は、保存パタンと新たに送られてきた比較結果データ２３０との比較に基づいて、連続不良が発生しているか否かを示す連続不良フラグを操作する。
【００３８】
ここで、ＢＩＳＴは、メモリ１２１の行毎に実行される。即ち、メモリ１２１の１つの行に対してテストが行われた後、テスト位置が、アドレスが後続する次の行に進められる。
【００３９】
よって、故障が検出されている場合において、保存パタンによって示される故障位置が、新たに送られてきた比較結果データ２３０が示す故障位置に一致することは、故障位置がアドレス方向（ロウ方向）に連続する連続不良が発生していることを意味する。
【００４０】
第２処理回路１５３は、保存パタンにおいて「１（故障）」となっている全てのビットが、新たに送られてきた比較結果データ２３０の対応するビットにおいても「１」となっている場合、連続不良フラグを連続不良が発生している旨を示す論理とする。
【００４１】
連続不良フラグの論理は、任意に設定可能である。ここでは、論理「１」の連続不良フラグは連続不良が発生していることを示すこととする。連続不良フラグの論理を「１」とすることを、連続不良フラグを立てる、と表記することがある。また、論理「０」の連続不良フラグは連続不良が発生していないことを示すこととする。連続不良フラグの論理を「０」とすることを、連続不良フラグを下ろす、と表記することがある。
【００４２】
これによって、連続不良フラグが立っている間、故障パタンレジスタ１５１に保存されている故障パタンは、アドレス方向に連続する故障の位置を示すパタン（連続不良パタン）と見なされ得る。
【００４３】
連続不良フラグは、故障が検出されなかった場合に下ろされる。
【００４４】
連続不良フラグレジスタ１５２は、連続不良フラグを保持する。連続不良フラグレジスタ１５２は、連続不良フラグを連続不良フラグ信号２２１として出力する。
【００４５】
第２処理回路１５３は、さらに、故障パタンレジスタ１５１に故障パタン（連続不良パタン）が保存されている場合に、新たに送られてきた比較結果データ２３０と連続不良パタンとの差分を演算する。これによって、連続不良を構成する故障とは別の位置に新たに故障が発生した場合、当該新たに発生した故障の位置に対応したビットを「１」とし、その他のビットを「０」としたデータ（比較結果差分データ）が得られる。
【００４６】
第２処理回路１５３によって得られた比較結果差分データは、図２に示されるように、比較結果差分データ２３１として別不良判断回路ブロック１６０に入力される。
【００４７】
別不良判断回路ブロック１６０は、図３に示されるように、別不良パタンレジスタ１６１、別不良フラグレジスタ１６２、および第３処理回路１６３を有する。
【００４８】
別不良判断回路ブロック１６０に入力された比較結果差分データ２３１は、別不良パタンレジスタ１６１に取り込まれる。
【００４９】
また、別不良判断回路ブロック１６０に入力された比較結果差分データ２３１は、第３処理回路１６３にも入力される。第３処理回路１６３は、入力された比較結果差分データ２３１に基づき、連続不良を構成する故障とは別の故障（別不良）が検出されたか否かを示す別不良フラグを操作する。
【００５０】
別不良フラグの論理は、任意に設定可能である。ここでは一例として、論理「１」の別不良フラグは別不良が検出されたことを示すこととする。別不良フラグの論理を「１」とすることを、別不良フラグを立てる、と表記することがある。また、論理「０」の別不良フラグは別不良が検出されていないことを示すこととする。別不良フラグの論理を「０」とすることを、別不良フラグを下ろす、と表記することがある。
【００５１】
その場合、第３処理回路１６３は、例えば、入力された比較結果差分データ２３１の全ビットの論理和を演算する。これによって、別不良が存在する場合には「１」とし、別不良が存在しない場合には「０」とした１ビットのデータが得られる。
【００５２】
別不良フラグレジスタ１６２は、別不良フラグを保持する。別不良フラグレジスタ１６２は、別不良フラグを別不良フラグ信号２２２として出力する。
【００５３】
出力データレジスタ１４１、不良フラグレジスタ１４２、故障パタンレジスタ１５１、連続不良フラグレジスタ１５２、別不良パタンレジスタ１６１、および別不良フラグレジスタ１６２は、シフトイネーブル信号１１６が例えば論理「１」となることにより、シフトモードに移行する。シフトモードについては後述する。
【００５４】
図４は、実施形態に係る診断データ保存回路１０６が有する構成要素の一例を示す図である。本図に示されるように、診断データ保存回路１０６は、アドレスレジスタ２４０、状態レジスタ２４１、および抑制回路２４２を備える。
【００５５】
診断データ保存回路１０６には、アドレス生成器１０３から出力されるアドレス信号１１２およびＢＩＳＴ制御回路１０１から出力されるＢＩＳＴ状態信号１１１が入力される。また、診断データ保存回路１０６は、メモリ出力解析回路１２２から出力される不良フラグ信号２２０が入力される。
【００５６】
抑制回路２４２は、アドレス信号１１２をアドレスレジスタ２４０に、ＢＩＳＴ状態信号１１１を状態レジスタ２４１に取り込む。そして、抑制回路２４２は、ＢＩＳＴが中断した際、アドレスレジスタ２４０および状態レジスタ２４１を更新できない状態とする。これにより、ＢＩＳＴの中断時におけるテスト位置と、その時のＢＩＳＴの状態と、が保存される。
【００５７】
その後、抑制回路２４２は、ＢＩＳＴ制御回路１０１によってＢＩＳＴが再開（メモリ１２１の先頭位置から再開）すると、抑制信号１２６として、抑制指示を示す論理（例えば「０」）を出力する。
【００５８】
ＢＩＳＴの再開後、抑制回路２４２は、逐次入力されるアドレス信号１１２とアドレスレジスタ２４０に保存されたアドレスデータとを比較する。同様に、抑制回路２４２は、逐次入力されるＢＩＳＴ状態信号１１１と状態レジスタ２４１に保存された状態データとを比較する。
【００５９】
抑制回路２４２は、入力されたアドレス信号１１２とアドレスレジスタ２４０に保存されたアドレスデータとが一致し、入力されたＢＩＳＴ状態信号１１１と状態レジスタ２４１に保存された状態データとが一致した場合、抑制信号１２６として、非抑制指示を示す論理（例えば「１」）を出力する。
【００６０】
つまり、抑制回路２４２は、故障が検出されて、ＢＩＳＴが最初から再開した場合、テスト位置が最後に故障が検出された位置に到達するまで、故障の検出を抑制する。
【００６１】
アドレスレジスタ２４０および状態レジスタ２４１は、シフトイネーブル信号１１６が例えば論理「１」となることにより、シフトモードに移行する。
【００６２】
図５は、実施形態に係る各レジスタによって構成されるシフトレジスタの一例を説明するための図である。シフトモードでは、図５に示されるように、アドレスレジスタ２４０、状態レジスタ２４１、出力データレジスタ１４１、不良フラグレジスタ１４２、故障パタンレジスタ１５１、連続不良フラグレジスタ１５２、別不良パタンレジスタ１６１、および別不良フラグレジスタ１６２は、シフト入力１１５からシフト出力１２７までのシフトレジスタを構成する。
【００６３】
シフトモードでは、各レジスタは、自身が保持している内容を、シフトクロック１１４に応じてシフトアウトする。
【００６４】
なお、このシフトレジスタは、循環的なシフトパスを構成する。故障情報の出力時には、このシフトパスを使用し、これらのレジスタの値をシフトアウトする。シフトパスが循環的に構成されているので、各レジスタは、シフトアウト終了時に、ＢＩＳＴの中断時の状態に復帰することができる。
【００６５】
また、故障検出時におけるアドレス信号１１２、ＢＩＳＴ状態信号１１１、メモリ１２１からの出力、不良フラグ、連続不良パタン、連続不良フラグ、別不良パタン、別不良フラグを外部に取り出して、外部テスト装置１３０に入力して観測することができる。
【００６６】
以降、シフトレジスタから出力される、故障検出時におけるアドレス信号１１２、ＢＩＳＴ状態信号１１１、メモリ１２１からの出力、不良フラグ、連続不良パタン、連続不良フラグ、別不良パタン、別不良フラグを、総称して、故障情報と表記することがある。
【００６７】
次に、実施形態に係る半導体集積回路１０００の動作を説明する。図６は、実施形態に係る半導体集積回路１０００の動作を説明するフローチャートである。
【００６８】
図６に示されるように、ＢＩＳＴの開始時には、不良フラグレジスタ１４２、連続不良フラグレジスタ１５２、および別不良フラグレジスタ１６２は全てリセットされ、それぞれ、対応するフラグは下ろされた状態となっている（Ｓ１０１）。
【００６９】
ＢＩＳＴ制御回路１０１は、アドレス生成器１０３にメモリ１２１の先頭の行のアドレス（先頭アドレス）を生成させることで、メモリ１２１の先頭位置をテスト位置としてセットする（Ｓ１０２）。
【００７０】
そして、データ生成器１０２および制御信号生成器１０４によって、テスト位置に対し、データの書き込みと読み出しが実行される（Ｓ１０３）。
【００７１】
メモリ出力解析回路１２２の出力比較回路ブロック１４０には、テスト位置から読み出され、メモリ１２１から出力された出力データ２０１と、データ生成器１０２によって生成されたデータ期待値１０８とが入力される。出力データ２０１は、出力データレジスタ１４１に取り込まれる。
【００７２】
抑制信号１２６が非抑制指示を示す場合（Ｓ１０４、Ｙｅｓ）、故障の検出が実行される（Ｓ１０５）。
【００７３】
具体的には、第１処理回路１４３は、出力データレジスタ１４１に取り込まれた出力データ２０１とデータ期待値１０８とを比較する。第１処理回路１４３は、比較の結果に基づいて、不良フラグを操作する。
【００７４】
故障が検出されなかった場合（Ｓ１０５、Ｎｏ）、即ち、例えば出力データとデータ期待値１０８との比較によって得られた比較結果データがオールゼロであった場合、第１処理回路１４３は、不良フラグを下ろした状態とする（Ｓ１０６）。即ち、第１処理回路１４３は、例えば論理「０」を不良フラグレジスタ１４２に格納し、不良フラグは論理「０」を示す状態となる。
【００７５】
不良フラグが下ろされた状態の場合（Ｓ１０６）、ＢＩＳＴ制御回路１０１は、連続不良フラグが立っているか否かを判定する（Ｓ１０７）。
【００７６】
連続不良フラグが立っていると判定された場合（Ｓ１０７、Ｙｅｓ）、ＢＩＳＴ制御回路１０１は、テスト（ＢＩＳＴ）を中断し、故障情報の出力を実行する（Ｓ１０８）。その際に、故障パタンレジスタ１５１に保存された故障パタンはクリアされる。また、連続不良フラグは、下ろされた状態とされる（Ｓ１０９）。
【００７７】
故障情報の出力では、例えば、アドレスレジスタ２４０、状態レジスタ２４１、出力データレジスタ１４１、不良フラグレジスタ１４２、故障パタンレジスタ１５１、連続不良フラグレジスタ１５２、別不良パタンレジスタ１６１、および別不良フラグレジスタ１６２を含むシフトレジスタが、それぞれに保持された値をシフトアウトする。例えば、ＢＩＳＴ制御回路１０１は、結果解析器１０５を介して外部テスト装置１３０にシフトイネーブル信号１１６の操作を指示し、これらのレジスタをシフトモードに移行させる。
【００７８】
Ｓ１０９の処理の後、ＢＩＳＴ制御回路１０１は、Ｓ２２４の処理を実行する。Ｓ２２４の処理については後述する。
【００７９】
Ｓ１０７の処理において、連続不良フラグが下ろされていると判定された場合（Ｓ１０７、Ｎｏ）、ＢＩＳＴ制御回路１０１は、テスト位置がメモリ１２１の最終アドレスが示す位置に達したか否かを判定する（Ｓ１１０）。テスト位置がメモリ１２１の最終アドレスが示す位置に達したか否かは、例えば、アドレス生成器１０３が最後に生成したアドレスが最終アドレスであるか否かを判定することで確認できる。
【００８０】
テスト位置がメモリ１２１の最終アドレスが示す位置に達していないと判定された場合（Ｓ１１０、Ｎｏ）、ＢＩＳＴ制御回路１０１は、アドレス生成器１０３に指示して次の行のアドレスを生成させることで、テスト位置を、現在の位置に後続する行にセットする（Ｓ１１１）。そして、制御がＳ１０３の処理に移行する。
【００８１】
Ｓ１１０の処理において、テスト位置がメモリ１２１の最終アドレスが示す位置に達していると判定された場合（Ｓ１１０、Ｙｅｓ）、ＢＩＳＴ制御回路１０１は、故障情報の出力を実行し（Ｓ１１２）、ＢＩＳＴが終了する。
【００８２】
Ｓ１０４の処理において、抑制信号１２６が抑制指示を示す場合（Ｓ１０３、Ｎｏ）、制御がＳ１１０の処理に移行する。
【００８３】
つまり、抑制信号１２６が抑制指示を示す場合、故障の検出がスキップされ、テスト位置が次の行に設定されるかまたはＢＩＳＴが終了する。
【００８４】
Ｓ１０５の処理において、故障が検出された場合（Ｓ１０５、Ｙｅｓ）、即ち、例えば出力データ２０１とデータ期待値１０８との比較によって得られた比較結果データがオールゼロではなかった場合、第１処理回路１４３は、不良フラグを立てた状態とする（Ｓ１１３）。第１処理回路１４３は、例えば論理「１」を不良フラグレジスタ１４２に格納する。
【００８５】
以降の処理は、故障パタンレジスタ１５１に故障パタンが保存されているか否かによって変わる。
【００８６】
故障パタンが保存されていない場合（Ｓ１１４、Ｎｏ）、ＢＩＳＴ制御回路１０１は、テストを中断し、故障情報の出力を実行する（Ｓ１１５）。なお、連続不良判断回路ブロック１５０では、故障パタンレジスタ１５１は、比較結果データ２３０を取り込む。つまり、故障パタンが故障パタンレジスタ１５１に保存される。Ｓ１１５では、シフトアウトによって、故障パタンレジスタ１５１に保持された比較結果データ２３０が故障パタンとして出力される。
【００８７】
故障パタンが保存されているか否かの判定方法は、特定の方法に限定されない。一例では、ＢＩＳＴ制御回路１０１が、不良フラグの論理が「０」から「１」に移行したタイミングに基づいて、今回の故障の検出が初回の検出であるか否かを判断してもよい。別の例では、任意の回路が、故障パタンが保存されているか否かをＢＩＳＴ制御回路１０１に通知してもよい。
【００８８】
Ｓ１１５の処理の後、ＢＩＳＴ制御回路１０１は、Ｓ２１０と同様の手法で、テスト位置がメモリ１２１の最終アドレスが示す位置に達したか否かを判定する（Ｓ１２４）。
【００８９】
テスト位置がメモリ１２１の最終アドレスが示す位置に達していないと判定された場合（Ｓ１２４、Ｎｏ）、ＢＩＳＴ制御回路１０１は、Ｓ１０２に移行して、テスト位置をメモリ１２１の先頭位置にセットする。
【００９０】
テスト位置がメモリ１２１の最終アドレスが示す位置に達したと判定された場合（Ｓ１２４、Ｙｅｓ）、ＢＩＳＴが終了する。
【００９１】
故障パタンが保存されている場合（Ｓ１１４、Ｎｏ）、連続不良判断回路ブロック１５０では、第２処理回路１５３は、比較結果データ２３０として新たに入力された故障パタンが、保存パタン（故障パタンレジスタ１５１に保持された故障パタン）と一致するか否かを判定する（Ｓ１１６）。
【００９２】
新たに入力された故障パタンが保存パタンと一致すると判定された場合（Ｓ１１６、Ｙｅｓ）、第２処理回路１５３は、連続不良フラグを立てた状態とし、第３処理回路１６３は、比較結果差分データ２３１に基づき、別不良フラグを下ろした状態とする（Ｓ１１７）。そして、制御がＳ１１０の処理に移行する。
【００９３】
故障パタンが保存パタンと一致しないと判定された場合（Ｓ１１６、Ｎｏ）、第２処理回路１５３は、保存パタンは新たに入力された故障パタンに含まれるか否かを判定する（Ｓ１１８）。
【００９４】
保存パタンにおいて「１（故障）」となっている全てのビットが、新たに送られてきた故障データの対応するビットにおいて「１（故障）」となっている場合、第２処理回路１５３は、保存パタンは新たに入力された故障パタンに含まれていると判定する（Ｓ１１８、Ｙｅｓ）。その場合、比較結果差分データ２３１が別不良判断回路ブロック１６０に送られて、その比較結果差分データ２３１に基づいて、第３処理回路１６３は、別不良フラグを立てた状態とする（Ｓ１１９）。
【００９５】
別不良フラグが立つと、ＢＩＳＴ制御回路１０１は、テストを中断し、故障情報の出力を実行する（Ｓ１２０）。なお、別不良判断回路ブロック１６０に入力された比較結果差分データ２３１は、別不良パタンレジスタ１６１に別不良パタンとして保存される。Ｓ１２０では、シフトアウトによって、別不良パタンが出力される。
【００９６】
第３処理回路１６３は、別不良パタンレジスタ１６１をクリアし（Ｓ１２１）、制御がＳ１２４の処理に移行する。
【００９７】
保存パタンにおいて「１（故障）」となっている一部または全てのビットが、新たに送られてきた故障データの対応するビットにおいて「０（正常）」となっている場合、第２処理回路１５３は、保存パタンは新たに入力された故障パタンに含まれていないと判定する（Ｓ１１８、Ｎｏ）。
【００９８】
その場合、ＢＩＳＴ制御回路１０１は、テストを中断し、故障情報の出力を実行する（Ｓ１２２）。なお、連続不良判断回路ブロック１５０では、故障パタンレジスタ１５１は、比較結果データ２３０を取り込む。つまり、故障パタンレジスタ１５１の内容が、新たな故障データで更新される。Ｓ１１９では、シフトアウトによって、更新後の故障パタンとして出力される。
【００９９】
第３処理回路１６３は、別不良フラグを下ろした状態とする（Ｓ１２３）。そして、制御がＳ１２４の処理に移行する。
【０１００】
外部テスト装置１３０は、得られた故障情報に基づいて、フェイルビットマップを作成する。
【０１０１】
図７は、実施形態に係るＢＩＳＴを実行する際の手順の一例を示す。
【０１０２】
半導体集積回路１０００は、時刻Ｔ０にＢＩＳＴを開始する。
【０１０３】
時刻Ｔ１において故障が検出されると、半導体集積回路１０００は、Ｓ１１５の処理により、この故障パタン３０１を故障パタンレジスタに保存し、ＢＩＳＴを中断する。そして、半導体集積回路１０００は、故障情報を外部テスト装置１３０へ出力する。
【０１０４】
ここで、半導体集積回路１０００は、この故障が検出された際のアドレス信号１１２と、ＢＩＳＴ状態信号１１１とを、アドレスレジスタ２４０および状態レジスタ２４１のうちの対応するレジスタに保存する。その後、半導体集積回路１０００は、ＢＩＳＴを時刻Ｔ０から再開する。
【０１０５】
ＢＩＳＴ再開後、時刻Ｔ１までは抑制指示が出力されているため、半導体集積回路１０００は、時刻Ｔ１に到達しても故障検出と見なさない。
【０１０６】
時刻Ｔ１から時刻Ｔ２まで同じ故障パタンが続く。つまり、半導体集積回路１０００は、比較結果データ２３０と故障パタンレジスタに保存されている故障パタン３０１とが一致するため、Ｓ１１７の処理により連続不良フラグを立てて、ＢＩＳＴを進める。
【０１０７】
時刻Ｔ２に到達すると、半導体集積回路１０００は、故障パタンレジスタ１５１に保存されている故障パタン（連続不良パタン）３０１と異なる、別不良が発生した故障パタンを得る。よって、半導体集積回路１０００は、Ｓ１１９の処理により、別不良フラグを立てる。そして、故障パタン３０１と異なる故障（別不良）の位置を示した別不良パタン３０２を保存する。そして、半導体集積回路１０００は、Ｓ１２０の処理により、ＢＩＳＴを中断し、故障情報を外部テスト装置１３０へ出力する。そして、半導体集積回路１０００は、ＢＩＳＴを時刻Ｔ０から再開する。
【０１０８】
再開後、時刻Ｔ３に到達すると、別不良は検出されなくなり、半導体集積回路１０００は、故障パタンレジスタ１５１に保持されている故障パタン（連続不良パタン）３０１と同じ故障パタンを再び得る。よって、半導体集積回路１０００は、Ｓ１１７の処理によって、連続不良フラグを立てた状態で維持するとともに別不良フラグを下ろす。そして、半導体集積回路１０００は、ＢＩＳＴを継続する。
【０１０９】
その後、時刻Ｔ４に到達すると、正常な出力データ２０１が出力される。しかしながら、連続不良フラグが立った状態であるので、半導体集積回路１０００は、Ｓ１０８の処理によって、ＢＩＳＴを中断し、故障情報を外部テスト装置１３０へ出力する。そして、半導体集積回路１０００は、Ｓ１０９の処理によって、連続不良フラグを下ろした状態とする。そして、半導体集積回路１０００は、ＢＩＳＴを時刻Ｔ０から再開する。
【０１１０】
このように、実施形態によれば、出力比較回路ブロック１４０は、出力データ２０１とデータ期待値１０８との比較に基づいて故障の有無を判定する（Ｓ１０５）。連続不良判断回路ブロック１５０は、出力比較回路ブロック１４０によって故障が検出された場合（Ｓ１０５：Ｙｅｓ）、その故障がアドレス方向に連続する連続不良に該当するか否かを判定する（Ｓ１１６）。出力比較回路ブロック１４０によって検出された故障が連続不良に該当すると判定された場合（Ｓ１１６：Ｙｅｓ）、連続不良判断回路ブロック１５０は、連続不良フラグを立てる（Ｓ１１７）。別不良判断回路ブロック１６０は、連続不良のほかに、別の故障が発生したか否かを判定する（Ｓ１１８）。連続不良のほかに、別の故障が発生したと判定された場合（Ｓ１１８：Ｙｅｓ）、別不良判断回路ブロック１６０は、別不良フラグを立てる（Ｓ１１９）。ＢＩＳＴ回路１００は、少なくとも連続不良フラグおよび別不良フラグに基づいてＢＩＳＴを中断するか否かを判定する。
【０１１１】
これによって、診断時間を短縮することが可能となる。
【０１１２】
具体的には、別不良フラグが立った場合、ＢＩＳＴ回路１００は、テストを中断する（図６：Ｓ１１９、Ｓ１２０、図７：時刻Ｔ２）。連続不良が立っている場合において別不良フラグが下ろされた場合、ＢＩＳＴ回路１００は、ＢＩＳＴを中断せずに続行する（図６：Ｓ１１７、Ｓ１１０、Ｓ１１１、図７：時刻Ｔ４）。
【０１１３】
これによって、ＢＩＳＴを中断する回数を抑制することができるので、診断時間が短縮される。
【０１１４】
また、ＢＩＳＴ回路１００は、ＢＩＳＴの再開時には、最後に故障が検出された位置に至るまで、抑制信号１２６によって故障の検出を抑制する。
【０１１５】
これによって、いったん検出された故障を再び検出することなく診断を行うことができるので、診断時間が短縮される。また、全ての故障の情報を取得できる。また、同じ故障で何度もＢＩＳＴを中断・再開することなく、テスト位置を進めることができる。
【０１１６】
なお、上述した実施形態は一例であって限定的なものではないと考えられるべきである。例えば上記実施形態ではＢＩＳＴの再開時に最初からＢＩＳＴを実行していたが、最初まで遡らなくてもよい。１３Ｎという名称のマーチングパタンと称されるＢＩＳＴ（マーチテスト）を行う場合を例に図８を用いて説明する。
【０１１７】
ここでマーチングパタンとは、例えば論理「０」状態のメモリから論理「０」を読み出し、論理「１」を書き込み、論理「１」を読み出すひとかたまりの動作（マーチエレメントｒ０ｗ１ｒ１）を、全アドレスに対し順次実行するパタンであり、メモリの状態が論理「０」から論理「１」に置き換わる。
【０１１８】
半導体集積回路１０００は、まず時刻Ｔ０からＷＲＩＴＥ動作としてＢＩＳＴを開始し、メモリ１２１の全アドレスに所定のデータパタンを書き込む。
【０１１９】
次に、半導体集積回路１０００は、ＲＥＡＤ−ＷＲＩＴＥ−ＲＥＡＤ動作として、各アドレスにおいて、正データパタン（例えば１０１０）の読み出しと、逆データパタン（例えば０１０１）の書き込みとをアドレス昇順で行う。続いて、半導体集積回路１０００は、各アドレスにおいて逆データパタンの読み出しと正データパタンの書き込みとをアドレス昇順で行う。
【０１２０】
さらに、半導体集積回路１０００は、各アドレスにおいて正データパタンの読み出しと逆データパタンの書き込みとをアドレス降順で行い、続いて各アドレスにおいて逆データパタンの読み出しと正データパタンの書き込みとをアドレス降順で行う。
【０１２１】
時刻Ｔ２において最初の故障が検出される。保存パタンが存在しないため、半導体集積回路１０００は、ＢＩＳＴを中断して故障情報を出力し、ＢＩＳＴを再開する。このとき遡る時点はマーチング動作の切れ目である時刻Ｔ１である。
【０１２２】
ここで留意すべき点は、実行しているＢＩＳＴがマーチングである場合、遡った時点（時刻Ｔ１）のアドレスにおけるデータは正パタンと逆パタンとが入れ替わった異なるデータに既に書き替えられており、書き替えられる前の状態を前提とした読み出し動作が行われるマーチングテストでは、正しい動作にならないということである。
【０１２３】
そこで、半導体集積回路１０００は、アドレスを遡った時点（時刻Ｔ１）から、中断した時点（時刻Ｔ２）までのデータを書き戻す。時刻Ｔ１からＴ２の間で書き戻しが行われ、再び時刻Ｔ１に戻った後にＢＩＳＴが再開される。
【０１２４】
再開後は、時刻Ｔ２までは故障は検出されない。また、時刻Ｔ２〜Ｔ３までは同じ故障パタンが続く（保存パタンと一致する）ため、半導体集積回路１０００は、連続不良フラグを立て、ＢＩＳＴを中断しない。
【０１２５】
時刻Ｔ３で正常なデータが出力される。よって、半導体集積回路１０００は、ＢＩＳＴを中断し、故障情報を出力する。そして、時刻Ｔ１の位置まで遡り、時刻Ｔ１からＴ３の間で書き戻しが行われ、再び時刻Ｔ１に戻った後にＢＩＳＴが再開される。
【０１２６】
その後、時刻Ｔ５で故障が検出される。保存パタンはクリアされて存在しないため、半導体集積回路１０００は、ＢＩＳＴを中断して故障情報を出力し、ＢＩＳＴを再開する。このとき遡る時点はマーチング動作の切れ目である時刻Ｔ４である。時刻Ｔ４からＴ５の間で書き戻しが行われ、再び時刻Ｔ４に戻った後にＢＩＳＴが再開される。
【０１２７】
再開後は、時刻Ｔ５までは故障検出と見なされない。また、時刻Ｔ５〜Ｔ６までは同じ故障パタンが続く（保存パタンと一致する）ため、半導体集積回路１０００は、連続不良フラグを立て、ＢＩＳＴを中断しない。
【０１２８】
時刻Ｔ６では、保存パタン（連続不良パタン）と異なる、別不良が検出される。よって、半導体集積回路１０００は、別不良を立ててＢＩＳＴを中断する。そして、時刻Ｔ４まで遡り、時刻Ｔ４からＴ６の間で書き戻しが行われ、再び時刻Ｔ４に戻った後にＢＩＳＴが再開される。
【０１２９】
再開後、時刻Ｔ７で正常なデータが出力される。よって、半導体集積回路１０００は、ＢＩＳＴを中断し、故障情報を出力する。そして、時刻Ｔ４の位置まで遡り、時刻Ｔ４からＴ６の間で書き戻しが行われ、再び時刻Ｔ４に戻った後にＢＩＳＴが再開される。
【０１３０】
その後、新たな故障が検出されない場合にはＢＩＳＴが終了する。
【０１３１】
このように、ＢＩＳＴの再実行の際には最初の時点まで戻らないため、診断時間を短縮することができる。
【０１３２】
なお、マーチングパターンのようにデータを書き替えず、データを前の状態にしたままでＢＩＳＴを進行させるウォーキングテストの場合は、データを書き戻す必要がないため、遡った時点からすぐにＢＩＳＴを再開してもよい。
【０１３３】
また、マーチングテストの場合においても、ＢＩＳＴを中断する毎に最初の時点まで戻ってもよい。
【０１３４】
ＢＩＳＴの再開の際に遡る時点は、マーチング動作の切れ目でなく、中断時点から一定アドレスだけ遡った時点にしてもよい。
【０１３５】
また、１つのＢＩＳＴ回路１００で複数のメモリ１２１をテストする場合は、それぞれのメモリ１２１について設けられるメモリ出力解析回路１２２内のレジスタ１４１、１４２、１５１、１５２、１６１、１６２をシリアルに接続し、シフトレジスタを構成してもよい。
【０１３６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１３７】
１０１  ＢＩＳＴ制御回路、１０６  診断データ保存回路、１２０  メモリカラー、１２１  メモリ、１２２  メモリ出力解析回路、１２６  抑制信号、１３０  外部テスト装置、１４０  出力比較回路ブロック、１４１  出力データレジスタ、１４２  不良フラグレジスタ、１４３  第１処理回路、１５０  連続不良判断回路ブロック、１５１  故障パタンレジスタ、１５２  連続不良フラグレジスタ、１５３  第２処理回路、１６０  別不良判断回路ブロック、１６１  別不良パタンレジスタ、１６２  別不良フラグレジスタ、１６３  第３処理回路、２０１  出力データ、２２０  不良フラグ信号、２２１  連続不良フラグ信号、２２２  別不良フラグ信号、２４０  アドレスレジスタ、２４１  状態レジスタ、２４２  抑制回路、１０００  半導体集積回路。
【図１】
2019164095.tif 000003
【図２】
2019164095.tif 000004
【図３】
2019164095.tif 000005
【図４】
2019164095.tif 000006
【図５】
2019164095.tif 000007
【図６】
2019164095.tif 000008
【図７】
2019164095.tif 000009
【図８】
2019164095.tif 000010