(57)【要約】      （修正有）【課題】検出感度の向上を図ることが可能な発光解析装置を提供する。【解決手段】発光解析装置１は、テストパタンを論理回路に供給するように、直列的に接続され、スキャンチェインを構成する複数のフリップフロップ回路を備えた半導体装置の解析に用いられる。発光解析装置１は、スキャンチェインの長さよりも短く、論理回路における所定ネットを遷移動作させることが可能なテストパタンを生成するテストパタン生成装置３００３と、テストパタン生成装置３００３により生成されたテストパタンを、周期的に、スキャンチェインに印加するテスト装置３００１と、を備える。周期的に印加された、スキャンチェインの長さよりも短いテストパタンに応じた、半導体装置からの光が発光解析装置１によって解析される。【選択図】図３
2017072542.tif 000002
【特許請求の範囲】
【請求項１】
論理回路と、前記論理回路のテストのとき、テストパタンを前記論理回路に供給するように、直列的に接続され、スキャンチェインを構成する複数のフリップフロップ回路とを備えた半導体装置を解析する発光解析装置であって、
前記スキャンチェインの長さよりも短く、前記論理回路における所定ネットを遷移動作させることが可能なテストパタンを生成するテストパタン生成装置と、
前記テストパタン生成装置により生成されたテストパタンを、周期的に繰り返し、前記スキャンチェインに印加するテスト装置と、
を備え、
周期的に印加された、前記スキャンチェインの長さよりも短いテストパタンに応じた、前記半導体装置からの光を解析する、発光解析装置。
【請求項２】
請求項１に記載の発光解析装置において、
前記所定ネットは、前記半導体装置に対する故障診断において、故障候補ネットとして特定されたネットである、発光解析装置。
【請求項３】
請求項２に記載の発光解析装置において、
前記テストパタン生成装置は、前記短いテストパタンを生成するとき、テストパタンの簡略化処理を実行する、発光解析装置。
【請求項４】
請求項３に記載の発光解析装置において、
前記簡略化処理は、互いに類似するテストパタンを、１のテストパタンに纏める処理を含む、発光解析装置。
【請求項５】
請求項２に記載の発光解析装置において、
前記テストパタン生成装置は、前記短いテストパタンを生成するとき、テストパタンの周期探索処理を実行する、発光解析装置。
【請求項６】
請求項５に記載の発光解析装置において、
前記周期探索処理により、前記短いテストパタンとして印加されるテストパタンの周期数が短縮される、発光解析装置。
【請求項７】
請求項２に記載の発光解析装置において、
前記テストパタン生成装置は、前記短いテストパタンを生成するとき、テストパタンのマッチング処理を実行する、発光解析装置。
【請求項８】
請求項２に記載の発光解析装置において、
前記短いテストパタンは、前記所定ネットに遷移動作を発生させないダミーサイクルを備えている、発光解析装置。
【請求項９】
請求項２に記載の発光解析装置において、
前記短いテストパタンは、前記所定ネットにおける論理値を、第１論理値にする第１テストパタンと、前記第１論理値とは異なる第２論理値にする第２テストパタンを備え、
前記テストパタン生成装置は、前記第１テストパタンの候補である複数の第１テストパタン候補および前記第２テストパタンの候補である複数の第２テストパタン候補の周期数を短縮する周期探索処理を実行し、
前記テストパタン生成装置は、短縮された周期数の第１テストパタン候補と短縮された周期数の第２テストパタン候補との間で、マッチングを行うマッチング処理を実行する、発光解析装置。
【請求項１０】
論理回路と、前記論理回路のテストのとき、テストパタンを前記論理回路に供給するように、直列的に接続され、スキャンチェインを構成する複数のフリップフロップ回路とを備えた半導体装置における故障箇所を特定する故障箇所特定方法であって、
前記スキャンチェインの長さよりも短く、前記論理回路における所定ネットを遷移動作させることが可能なテストパタンを生成するテストパタン生成工程と、
前記テストパタン生成工程により生成されたテストパタンを、周期的に繰り返し、前記スキャンチェインに印加するテストパタン印加工程と、
を備え、
周期的に印加された、前記スキャンチェインの長さよりも短いテストパタンに応じた、前記半導体装置からの光に基づいて、前記所定ネットにおける故障を特定する故障箇所特定方法。
【請求項１１】
請求項１０に記載の故障箇所特定方法において、
前記半導体装置には、故障診断が実行され、前記故障診断によって故障候補ネットとして特定されたネットが、前記所定ネットとされる、故障箇所特定方法。
【請求項１２】
請求項１１に記載の故障箇所特定方法において、
前記短いテストパタンが生成されるとき、テストパタンの簡略化処理が実行される、故障箇所特定方法。
【請求項１３】
請求項１１に記載の故障箇所特定方法において、
前記短いテストパタンが生成されるとき、テストパタンの周期探索処理が実行される、故障箇所特定方法。
【請求項１４】
請求項１１に記載の故障箇所特定方法において、
前記短いテストパタンが生成されるとき、テストパタンのマッチング処理が実行される、故障箇所特定方法。
【請求項１５】
請求項１１に記載の故障箇所特定方法において、
前記短いテストパタンには、前記所定ネットに遷移動作を発生させないダミーサイクルが挿入される、故障箇所特定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、発光解析装置および故障箇所特定方法に関し、特に論理回路を備えた半導体装置における故障箇所を特定することが可能な発光解析装置および故障箇所特定方法に関する。
【背景技術】
【０００２】
半導体装置の故障箇所を特定する技術として、例えば、テストパタンによって動作している半導体装置に、レーザ光を照射し、半導体装置からの反射光を用いて解析する発光解析の技術がある。このような発光解析の技術としては、例えばＬＶＰ（Ｌａｓｅｒ  Ｖｏｌｔａｇｅ  Ｐｒｏｂｉｎｇ）、ＬＶＩ（Ｌａｓｅｒ  Ｖｏｌｔａｇｅ  Ｉｍａｇｉｎｇ）、ＥＯＰ（Ｅｌｅｃｔｒｏ  Ｏｐｔｉｃａｌ  Ｐｒｏｂｉｎｇ）、ＥＯＦＭ（Ｅｌｅｃｔｒｏ  Ｏｐｔｉｃａｌ  Ｆｒｅｑｕｅｎｃｙ  Ｍａｐｐｉｎｇ）、エミッション顕微鏡等が知られている。
【０００３】
例えば、特許文献１には、ＬＶＩを用いた発光解析装置が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−６４９７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＬＶＩを用いた発光解析装置の概要を、特許文献１の図２を用いて説明すると次の通りである。なお、ここでの説明において、（）内の符号は、特許文献１の図２における符号を示している。テストパタン（２４２）を、繰り返し（ループ状）、半導体装置（２６０）に印加し、半導体装置（２６０）がテストパタンに従ってループ状に動作しているとき、レーザ光（２０４）を半導体装置（２６０）へ照射する。半導体装置（２６０）からの反射光が光検出器（２３６）で検出される。光検出器（２３６）からの検出信号において、テストパタンの繰り返し周期（ループ周期）に相当する周波数成分の振幅（２４４参照）を求める。レーザ光の照射位置を変更しながら、上記した検出を繰り返すことにより、検出した振幅により２次元のマップを表示する。
【０００６】
レーザが照射された位置における反射光の強度は、光電効果の作用により、照射位置に配置されているトランジスタのオン／オフによって変化する。これにより、表示された２次元マップを参照することにより、テストパタンと同じ周期で動作しているトランジスタの位置を特定することが可能となる。また、故障が発生していない場合と、故障が発生している場合とで、表示される２次元マップの形が異なることになる。そのため、故障が発生していない場合の２次元マップとの差を特定することにより、故障箇所を特定することができる。
【０００７】
しかしながら、ＬＶＩを用いた発光解析装置では、スキャンチェイン、クロックツリーのような、半導体装置の外部から制御が容易な回路に対しては、解析が得意であるが、組み合わせ論理回路等により構成された論理回路については、解析が困難であるという課題がある。これは、ＬＶＩを用いた発光解析装置では、回路に印加されるテストパタンのループ周期が長いと、検出感度が低下し、解析が困難になるためである。
【０００８】
論理回路のテストは、スキャンテストにより実施される。スキャンテストの場合には、多数のフリップフロップ回路が直列的（シリーズ）に接続され、スキャンチェインが構成される。すなわち、多数のフリップフロップ回路によって、長大なシフトレジスタが構成され、テストパタンのテスト値が、シフトレジスタ段（フリップフロップ回路）を順次シフトしながら、セットされる。そのため、テストパタンのテスト値を、所望のシフトレジスタ段にセットするまでに、時間が掛かり、テスト時間が長くなる。一例を述べると、テスト時間は、最低でも、シフトレジスタ長（シフトレジスタ段の段数）と、シフトに要する時間（シフトクロック信号の周期）との積に相当する時間となり、例えば数十マイクロ秒以上を要することになる。そのため、テストパタンを、半導体装置にループ状に印加する場合も、その周期（ループ周期）は、上記したテスト時間と同程度の長い時間となる。
【０００９】
テストパタンのループ周期が長いと、テスト時間が長くなるばかりでなく、検出感度も低下する。ＬＶＩを用いた発光解析装置では、複数回の測定結果を平均化することにより、ノイズを除去し、検出感度の向上を図ることが行われる。実用的なテスト時間で測定を完了させるためには、平均化の回数を減少させることが要求される。平均化の回数を減少させると、その結果として検出感度が低下することになる。
【００１０】
また、長いループ周期で、テストパタンを印加するようにした場合、ループ周期に対応する周波数成分以外に、様々な周波数成分が、検出信号に混入することになる。例えば、長いループ周期の時間内において、論理回路は、シフトレジスタ段からの信号を受ける。そのため、長いループ期間において、論理回路では、多くの遷移動作が発生する。遷移動作が多く発生することにより、長いループ期間において、論理回路の電流が変化することになり、電流変化に伴って様々な周波数成分が発生し、検出信号に混入することになる。様々な周波数成分は、ループ周期に相当する周波数成分に対して、ノイズとなり、ノイズとの分別が困難となってしまい、ループ周期に相当する周波数成分を検出することが困難になってしまう。その結果、検出感度が低下することになる。
【００１１】
なお、スキャンテストの場合、スキャンチェインを構成するフリップフロップ回路のそれぞれは、例えば数ＭＨｚ以上の高いシフトクロック信号に従って変化する。スキャンチェインの場合、フリップフロップ回路のループ周期が、シフトクロック信号の周期に相当し、短いループ周期となる。その結果、ＬＶＩを用いた発光解析装置は、スキャンチェインの解析に適している。同様に、クロックツリーにおいても、数ＭＨｚ以上の高い周波数で、同期的に動作するため、ＬＶＩを用いた発光解析装置が、その解析に適している。
【００１２】
すなわち、ＬＶＩを用いた発光解析装置は、外部制御が容易であり、数ＭＨｚ以上の高い周波数で同期動作するようなスキャンチェイン、クロックツリーにおいて、故障箇所を特定するのに適しているが、論理回路における故障箇所の特定には適していなかった。
【００１３】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１４】
一実施の形態による発光解析装置は、論理回路と、論理回路のテストのとき、テストパタンを論理回路に供給するように、直列的に接続され、スキャンチェインを構成する複数のフリップフロップ回路とを備えた半導体装置の解析に用いられる。ここで、発光解析装置は、スキャンチェインの長さよりも短く、論理回路における所定ネット（所定位置または所定ノード）を遷移動作させることが可能なテストパタンを生成するテストパタン生成装置と、テストパタン生成装置により生成されたテストパタンを、周期的に繰り返し、スキャンチェインに印加するテスト装置を備えている。スキャンチェインの長さよりも短いテストパタンが、周期的に印加されることにより、短いテストパタンに応じた光が、発光解析装置によって解析されることになる。
【００１５】
短いテストパタンが周期的に印加されるため、ループ周期が短くなる。ループ周期が短くなるため、このループ期間において発生する遷移動作を減らすことが可能となる。その結果、ループ周期に相当する周波数成分以外の周波数成分が発生するのを低減することが可能となる。また、ループ周期が短くなるため、１回のテスト時間が短くなり、平均化の回数を低減しなくても、テスト時間を短くすることが可能となる。これにより、検出感度を向上させることが可能となる。
【００１６】
また、一実施の形態による故障箇所特定方法は、論理回路と、論理回路のテストのとき、テストパタンを論理回路に供給するように、直列的に接続され、スキャンチェインを構成する複数のフリップフロップ回路とを備えた半導体装置における故障箇所を特定するのに用いられる。ここで、故障箇所特定方法は、スキャンチェインの長さよりも短く、論理回路における所定ネットを遷移動作させることが可能なテストパタンを生成するテストパタン生成工程と、テストパタン生成装置により生成されたテストパタンを、周期的に繰り返し、スキャンチェインに印加するテストパタン印加工程を備える。
【００１７】
スキャンチェインの長さよりも短いテストパタンが、周期的に印加されるため、短いテストパタンに応じた光に基づいて所定ネットにおける故障が特定される。
【００１８】
短いテストパタンが、周期的に印加されるため、ループ周期が短くなり、検出感度の向上を図ることが可能になる。
【発明の効果】
【００１９】
一実施の形態によれば、検出感度の向上を図ることが可能な発光解析装置および故障箇所特定方法を提供することができる。
【図面の簡単な説明】
【００２０】
【図１】実施の形態１に係わる発光解析装置の概要を示すブロック図である。
【図２】半導体装置の構成を示すブロック図である。
【図３】実施の形態１に係わる発光解析装置の構成を示すブロック図である。
【図４】（Ａ）および（Ｂ）は、論路回路、スキャンチェインの構成を示すブロック図および真理値表である。
【図５】実施の形態１に係わる動作を説明するための説明図である。
【図６】実施の形態２に係わる発光解析装置の動作を示すフローチャート図である。
【図７】（Ａ）および（Ｂ）は、実施の形態２に係わる動作を説明するための説明図である。
【図８】実施の形態３に係わる発光解析装置の動作を示すフローチャート図である。
【図９】論理回路とスキャンチェインの構成を示すブロック図である。
【図１０】（Ａ）〜（Ｄ）は、実施の形態３に係わる動作を説明するための説明図である。
【図１１】（Ａ）〜（Ｅ）は、実施の形態３に係わる周期探索処理を説明するための説明図である。
【図１２】（Ａ）〜（Ｆ）は、実施の形態３に係わる周期探索処理およびマッチング処理を説明するための説明図である。
【図１３】（Ａ）〜（Ｅ）は、実施の形態３に係わる周期探索処理およびマッチング処理を説明するための図である。
【図１４】（Ａ）〜（Ｄ）は、実施の形態３に係わる発光解析装置の動作を示す波形図である。
【図１５】（Ａ）〜（Ｄ）は、実施の形態４に係わる発光解析装置の動作を示す波形図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部分には原則として同一の符号を付し、その繰り返しの説明は、原則として省略する。
【００２２】
また、本明細書においては、ＬＶＩを用いた発光解析装置を例にして説明するが、これに限定されるものはなく、上記したＬＶＰ、ＥＯＰ、ＥＯＦＭ、エミッション顕微鏡等を用いた発光解析装置であってもよい。
【００２３】
（実施の形態１）
＜発光解析装置の概要＞
図１は、実施の形態１に係わる発光解析装置の概要を示すブロック図である。図１において、１は、発光解析装置を示している。発光解析装置１は、被テスト装置である半導体装置１０００に、テストパタンを、周期的に繰り返し印加し、テストパタンに従って半導体装置１０００が動作している状態で、レーザ光を照射し、半導体装置１０００からの反射光を解析する。反射光を解析することにより、半導体装置１０００における故障の有無または／および故障箇所の特定が行われる。同図では、説明のために、発光解析装置１に、被テスト装置である半導体装置１０００が含まれているように、描かれているが、半導体装置１０００は、被テスト装置を替えるために、適時取り替えられる。
【００２４】
発光解析装置１は、レーザ光１００７を発光するレーザ光源１００３、レーザ光学系１００１、半導体装置１０００が装着されるホルダー１００２、光検出器１００４、スペクトルアナライザ１００５およびコンピュータ１００６を備えている。レーザ光源１００３によって発光されたレーザ光１００７は、レーザ光学系１００１へ入射される。レーザ光学系１００１は、コンピュータ１００６からの制御信号１０１２に従って、入射したレーザ光１００７を調整し、レーザ光１００８として、ホルダー１００２に装着された半導体装置１０００に照射される。
【００２５】
図１では、制御信号１０１２が１個の信号として示されているが、制御信号１０１２は複数の制御信号を含んでいる。例えば、制御信号１０１２は、レーザ光１００８が照射されるべき、半導体装置１０００上の位置を指定する制御信号等を含んでいる。レーザ光学系１００１は、位置を指定する制御信号に従って、入射したレーザ光１００７を調整（偏光）して、偏光されたレーザ光１００８が、指定された半導体装置１０００の位置に照射されるようにする。また、レーザ光学系１００１は、半導体装置１０００からのレーザ光、すなわち反射光１００９（破線）を、検出光１０１０として、光検出器１００４へ伝達する。
【００２６】
光検出器１００４は、伝達された検出光１０１０を、電気信号に変換し、検出信号１０１１として、スペクトルアナライザ１００５およびコンピュータ１００６へ供給する。図１には、検出信号１０１１をスペクトルアナライザ１００５によって解析したときの結果が、スペクトルアナライザ１００５のブロックの下側に、一例として模式的に波形ＤＰとして描かれている。波形ＤＰの横軸は周波数であり、縦軸はパワーを示している。図１では、テストパタンの周期に相当する周波数成分ｆ０においてパワーＰが強くなっている波形ＤＰが描かれている。
【００２７】
コンピュータ１００６は、レーザ光１００８が半導体装置１０００の主面において、所定の領域をスキャンするように、レーザ光学系１００１を制御する。また、レーザ光１００８を照射した領域からの反射光１００９に対応する検出信号１０１１において、テストパタンの周期に相当する周波数成分ｆ０のパワー（振幅）を求める。レーザ光１００８が、所定の領域をスキャンすることにより、所定の領域における周波数成分ｆ０のパワーが求められることになる。コンピュータ１００６は、求めたパワーによって、２次元的なマップを作成する。また、コンピュータ１００６は、短周期テストパタン１０１３（破線）を生成し、周期的に繰り返し半導体装置１０００へ印加する。すなわち、短周期テストパタン１０１３が、繰り返し半導体装置１０００へ印加されることになる。繰り返し印加されるため、この短周期が、テストパタンのループ周期となる。
【００２８】
＜半導体装置の構成＞
図２は、半導体装置１０００の一例を示すブロック図である。半導体装置１０００は、複数の回路ブロックが含まれているが、図２には、複数の回路ブロックのうち論理回路ＬＧＣに関係する回路ブロックのみが描かれており、他の回路ブロックは省略されている。論理回路ＬＧＣは、例えば互いに組み合わされた複数の論理回路を備えており、図示しない他の回路ブロックからの入力信号Ｉ１〜Ｉｐを受けて、これらの入力信号Ｉ１〜Ｉｐを基にした所定の動作を行い、出力信号を形成する。
【００２９】
図２において、ＳＦＦ１〜ＳＦＦｐは、フリップフロップ回路を示している。フリップフロップ回路ＳＦＦ１〜ＳＦＦｐのそれぞれは、通常動作のときには、入力信号Ｉ１〜Ｉｐを受け、論理回路ＬＧＣへ供給する。
【００３０】
これに対して、スキャンテストの際には、フリップフロップ回路ＳＦＦ１〜ＳＦＦｐは、互いに直列的に接続され、スキャンチェインＳＣＮを構成する。この場合、スキャンチェインＳＣＮは、フリップフロップ回路ＳＦＦ１〜ＳＦＦｐのそれぞれをシフトレジスタ段とし、シフトクロック信号ＳＣＬＫに同期して動作するシフトレジスタと見なすことができる。スキャンテストにおいては、スキャンチェインＳＣＮに、テストパタンが供給され、シフトクロック信号ＳＣＬＫの変化に同期して、テストパタンのテスト値は、順次スキャンチェインをシフト（移動）する。また、スキャンチェインＳＣＮを構成するフリップフロップ回路（シフトレジスタ段）ＳＦＦ１〜ＳＦＦｐのそれぞれから、論理回路ＬＧＣへ、テストパタンのテスト値が供給される。テスト値をシフトすると言う観点で見た場合、シフトクロック信号ＳＣＬＫは、スキャンクロック信号と見なすことができる。
【００３１】
図２に示したフリップフロップ回路ＳＦＦｐ、ＳＦＦｐ−１を例にして説明すると、スキャンテストの際には、フリップフロップ回路ＳＦＦｐにテストパタンが供給される。シフトクロック信号ＳＣＬＫが変化することにより、フリップフロップ回路ＳＦＦｐにテストパタンのテスト値が取り込まれる。フリップフロップ回路ＳＦＦｐに取り込まれたテストパタンのテスト値は、入力信号Ｉｐとして論理回路ＬＧＣに供給される。また、フリップフロップ回路ＳＦＦｐ−１は、シフトクロック信号ＳＣＬＫが変化することにより、前段のフリップフロップ回路ＳＦＦｐからのテスト値を取り込む。取り込んだテスト値が、フリップフロップ回路ＳＦＦｐ−１から、入力信号Ｉｐ−１として、論理回路ＬＧＣへ供給される。残りのフリップフロップ回路ＳＦＦ１〜ＳＦＦｐ−２においても、フリップフロップ回路ＳＦＦｐ、ＳＦＦｐ−１と同様に動作する。
【００３２】
これにより、スキャンテストの際には、スキャンチェインＳＣＮのそれぞれのシフトレジスタ段から、テストパタンのテスト値が論理回路ＬＧＣに供給されることになる。その結果、論理回路ＬＧＣは、スキャンチェインＳＣＮに印加されたテストパタンに従って動作することになる。また、テストパタンに従って動作することにより形成された論理回路ＬＧＣの出力信号は、例えば、フリップフロップ回路ＳＦＦ１〜ＳＦＦｉによって構成されたスキャンチェインに取り込まれ、順次、半導体装置１０００の外部へ出力される。すなわち、この場合には、フリップフロップ回路ＳＦＦ１〜ＳＦＦｉが互いに直列的に接続され、スキャンチェインが構成される。構成されたスキャンチェインのそれぞれのシフトレジスタ段に、論理回路ＬＧＣの出力信号が取り込まれる。取り込まれた出力信号は、シフトクロック信号ＳＣＬＫの変化に同期して、スキャンチェインをシフトし、フリップフロップ回路ＳＦＦ１から、順次出力されることになる。
【００３３】
＜発光解析装置の構成＞
図３は、実施の形態１に係わる発光解析装置１の構成を示すブロック図である。図３において、３０００はテストパタン記憶装置、３００１はテスト装置、３００２は故障診断装置、３００３はテストパタン生成装置（以下、短周期テストパタン生成装置とも称する）、３００４は故障解析装置を示している。
【００３４】
ここで、図１で示した発光解析装置１と図３で示している発光解析装置１との対応を述べておく。故障解析装置３００４は、図１で述べたレーザ光学系１００１、レーザ光源１００３および光検出器１００４によって構成されている。また、テストパタン記憶装置３０００、テスト装置３００１、故障診断装置３００２および短周期テストパタン生成装置３００３は、図１で述べたコンピュータ１００６によって構成されている。テストパタン記憶装置３０００としては、コンピュータ１００６が備えている記憶装置（図示しない）が用いられ、テスト装置３００１、故障診断装置３００２および短周期テストパタン生成装置３００３は、コンピュータ１００６が、ソフトウェアを実行することによって、達成される。勿論、これらの装置をコンピュータ１００６のソフトウェアによって実現するのではなく、テスト装置３００１、故障診断装置３００２および短周期テストパタン生成装置３００３の全てまたは一部を、装置として構成してもよい。
【００３５】
テスト装置３００１は、テストパタン記憶装置３０００に予め格納されているスキャンテストパタンを用いて、半導体装置１０００のテストを実施し、フェイルログを生成する。このときのスキャンテストパタンは、例えば標準テスト記述言語（ＳＴＩＬ）で記述されたものであり、例えばＡＴＰＧ（Ａｕｔｏｍａｔｉｃ  Ｔｅｓｔ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｏｒ）ツールを用いて予め生成され、テストパタン記憶装置３０００に格納されている。ＳＴＩＬおよびＡＴＰＧツールは、周知であるため、説明は省略する。
【００３６】
故障診断装置３００２は、テスト装置３００１から出力されたフェイルログと、テストパタン記憶装置３０００からのスキャンテストパタンとに基づいて、ソフトウェアにより、半導体装置１０００において故障が発生している故障箇所の推定を行い、推定した故障箇所に対応する故障候補ネットを出力する。すなわち、半導体装置１０００において故障が発生している場合には、テスト装置３００１と故障診断装置３００２によって、半導体装置１０００における故障箇所の推定が、予め行われ、推定した故障箇所に対応する故障候補ネットが提供されることになる。
【００３７】
短周期テストパタン生成装置３００３は、ＳＦＦ抽出部３０１０、状態値０／１パタン生成部３０１１および短周期テストパタン合成部３０１２を備えている。ＳＦＦ抽出部３０１０、状態値０／１パタン生成部３０１１および短周期テストパタン合成部３０１２については、後で説明するので、ここでは詳しい説明を省略する。短周期テストパタン生成装置３００３には、故障診断装置３００２から、故障候補ネットが提供される。短周期テストパタン生成装置３００３は、故障候補ネットに対する短周期テストパタンを生成する。この短周期テストパタンは、周期的に繰り返し、半導体装置１０００に印加される。短周期テストパタン生成装置３００３は、短周期テストパタンを、繰り返し故障候補ネットに印加したとき、故障候補ネットにおいて、短周期で遷移動作が繰り返し発生するように生成する。また、故障候補ネットが複数ある場合、短周期テストパタン生成装置３００３は、それぞれの故障候補ネットに対応した短周期テストパタンを生成する。この場合も、それぞれの故障候補ネットに対応した短周期テストパタンは、周期的に繰り返し、半導体装置１０００に印加される。
【００３８】
短周期テストパタン生成装置３００３において生成された短周期テストパタンは、ＳＴＩＬで記述され、テストパタン記憶装置３０００に格納される。
【００３９】
テストパタン記憶装置３０００に格納された短周期テストパタンは、故障解析装置３００４へ供給される。すなわち、テストパタン記憶装置３０００に格納された短周期テストパタンが、図１に示した短周期テストパタン１０１３として、半導体装置１０００に印加される。
【００４０】
その結果、半導体装置１０００は、繰り返し印加される短周期テストパタンに従って動作することになる。故障推定ネットに対応する故障箇所にレーザ光１００８（図１）が照射され、その反射光１００９が、光検出器１００４によって検出信号１０１１に変換され、コンピュータ１００６およびスペクトルアナライザ１００５に供給される。
【００４１】
コンピュータ１００６は、検出信号１０１１における短周期テストパタンの周期（ループ周期）に相当する周波数成分ｆ０（図１）の振幅（パワー）を基にして、２次元マップを生成する。これにより、半導体装置１０００に故障が発生している場合、故障箇所と推定した領域に対応する発光解析が行われる。例えば、故障箇所と推定した領域に対して、故障が発生していない場合の２次元マップと、比較することにより、故障箇所を特定することが可能となる。
【００４２】
予め故障箇所を推定するために、テスト装置３００１において、スキャンテストパタンを用いてテストを実施する例を説明したが、これに限定されるものではない。例えば、テスト装置３００１において、スキャンテストパタンの代わりにファンクションテストパタンを用いて、半導体装置１０００のテストを実施するようにしてもよい。この場合、故障診断装置３００２は、ファンクションテストの結果から故障箇所を推定することになる。すなわち、ファンクションテストパタンは、半導体装置１０００が有する様々な機能が正しく動作しているかを、個々に確認するテストパタンである。そのため、ファンクションテストパタンを用いてテストした結果であるフェイルログと、ファンクションテストパタンの動作を記述したテストベンチとを照合することで、故障箇所を推定することが可能となり、推定した故障箇所に対応した故障推定ネットを提供することが可能となる。
【００４３】
このように、予め故障箇所を推定することにより、半導体装置１０００において、発光解析を実施する領域を制限することが可能となり、半導体装置１０００の全領域を、発光解析する場合に比べて、故障箇所特定の効率化を図ることが可能となる。
【００４４】
＜短周期テストパタン生成装置＞
次に、短周期テストパタン生成装置３００３を説明する。図４（Ａ）は、図２で示した論路回路ＬＧＣおよびスキャンチェインＳＣＮの一部を示すブロック図である。図４（Ａ）には、スキャンチェインＳＣＮを構成する複数のフリップフロップ回路ＳＦＦ１〜ＳＦＦｐのうち、３個のフリップフロップ回路ＳＦＦｎ〜ＳＦＦｎ＋２が示されている。テストパタンのテスト値は、同図において、下側から上側に向かってシフトする（シフト方向と記載）。
【００４５】
また、論理回路ＬＧＣは、複数の論理回路を備えているが、図４（Ａ）には、３個のフリップフロップ回路ＳＦＦｎ〜ＳＦＦｎ＋２に対応する排他的論理和回路ＸＯＲ１、ＸＯＲ２、アンド回路ＡＮＤおよびセレクタＳＥＬが示されている。また、図４（Ａ）において、セレクタＳＥＬの出力Ｑに付された符号Ａは、故障候補ネットを示しており、符号Ｘは、セレクタＳＥＬの入力Ｄ０に供給される他の論理回路（図示しない）からの出力を示している。故障候補ネットＡの状態値（論理値）は、セレクタＳＥＬの入力Ｄ０に入力される論理値によっても変化するが、ここでは、説明を容易にするために、セレクタＳＥＬの入力Ｄ１と選択端子Ｓに供給される論理値についてのみ説明する。
【００４６】
フリップフロップ回路ＳＦＦｎ＋２とＳＦＦｎ＋１の出力が排他的論理和回路ＸＯＲ１に入力され、フリップフロップ回路ＳＦＦｎとＳＦＦｎ＋２の出力が排他的論理和回路ＸＯＲ２に入力されている。また、排他的論理和回路ＸＯＲ１、ＸＯＲ２のそれぞれの出力は、アンド回路ＡＮＤに入力され、アンド回路ＡＮＤの出力が、セレクタＳＥＬの選択端子Ｓに供給されている。さらに、フリップフロップ回路ＳＦＦｎの出力が、セレクタＳＥＬの入力Ｄ１に接続されている。
【００４７】
図４（Ａ）では、省略されているが、フリップフロップ回路ＳＦＦｎ〜ＳＦＦｎ＋２のそれぞれには、通常動作のとき、入力信号Ｉｎ〜Ｉｎ＋２が供給され、通常動作のときには、入力信号Ｉｎ〜Ｉｎ＋２が、フリップフロップ回路ＳＦＦｎ〜ＳＦＦｎ＋２の出力となる。一方、スキャンテストのときには、テストパタンのテスト値が、フリップフロップ回路ＳＦＦｎ〜ＳＦＦｎ＋２の出力となる。
【００４８】
次に、故障候補ネットＡに対応した短周期テストパタンの生成方法を説明する。先ず、ＳＦＦ（フリップフロップ回路）抽出部３０１０（図３）は、故障診断装置３００２から故障候補ネットＡが提供される。ＳＦＦ抽出部３０１０は、提供された故障候補ネットＡから、回路を入力方向にトレースする。すなわち、故障候補ネットＡの状態値を定める回路の入力を順次トレースする。この例では、セレクタＳＥＬの入力Ｄ１、アンド回路ＡＮＤの入力、排他的論理和回路ＸＯＲ１、ＸＯＲ２の入力の順にトレースし、故障候補ネットＡの入力側に存在するスキャンチェインのフリップフロップ回路を、複数のフリップフロップＳＦＦ１〜ＳＦＦｐから抽出する。図４（Ａ）の例では、ＳＦＦ抽出部３０１０によって、複数のフリップフロップ回路ＳＦＦ１〜ＳＦＦｐからフリップフロップ回路ＳＦＦｎ〜ＳＦＦｎ＋２が、抽出されることになる。抽出されたフリップフロップ回路ＦＦｎ〜ＳＦＦｎ＋２と、故障候補ネットＡが、状態値０／１パタン生成部３０１１（図３）へ提供される。
【００４９】
次に、状態値０／１パタン生成部３０１１は、フリップフロップ回路ＦＦｎ〜ＦＦｎ＋２のそれぞれのテスト値（論理値）と、故障候補ネットＡの状態値との対応関係を生成する。対応関係は、例えば図４（Ｂ）に示すような真理値表として生成する。図４（Ａ）に示した例では、故障候補ネットＡが、状態値（論理値）０となるのは、フリップフロップ回路ＳＦＦｎ〜ＳＦＦｎ＋２のテスト値が、（１、１、０）の場合である。また、故障候補ネットＡが、状態値（論理値）１となるのは、フリップフロップ回路ＳＦＦｎ〜ＳＦＦｎ＋２のテスト値が、（０、０、１）の場合である。フリップフロップ回路ＳＦＦｎ〜ＳＦＦｎ＋２のテスト値が、上記した値以外のときには、故障候補ネットＡの状態値は、他の論理回路からの出力Ｘに従った値となる。
【００５０】
本明細書においては、故障候補ネットの状態値を、状態値（論理値）０と定める複数のフリップフロップ回路のテスト値のパタンを、状態値０パタンと称する。同様に、故障候補ネットの状態値を、状態値（論理値）１と定める複数のフリップフロップ回路のテスト値のパタンを、状態値１パタンと称する。図４（Ａ）を例にして述べると、故障候補ネットＡを状態値０に定めているのは、フリップフロップ回路ＳＦＦｎ〜ＳＦＦｎ＋２のテスト値が、パタン（１、１、０）であるため、このパタン（１、１、０）が、状態値０パタンに相当する。同様に、故障候補ネットＡを状態値１に定めているのは、フリップフロップ回路ＳＦＦｎ〜ＳＦＦｎ＋２のテスト値が、パタン（０、０、１）であるため、このパタン（０、０、１）が、状態値１パタンに相当する。
【００５１】
状態値０／１パタン生成部３０１１は、状態値０パタンと状態値１パタンを、短周期テストパタン合成部３０１２（図３）へ提供する。短周期テストパタン合成部３０１２は、次に、提供された状態値０パタンと状態値１パタンを合成する。すなわち、状態値０パタンと状態値１パタンを連結する。図４（Ａ）の例では、状態値１パタンは、（０、０、１）であり、状態値０パタンは、（１、１、０）である。そのため、連結することにより、（０、０、１、１、１、０）の合成パタンが生成されることになる。シフトクロック信号ＳＣＬＫの変化に同期して、合成パタンのテスト値は、スキャンチェインを移動する。そのため、シフトクロック信号ＳＣＬＫを基準として見た場合、６サイクルの短周期テストパタンが、短周期テストパタン合成部３０１２において形成されることになる。この６サイクルの短周期テストパタンは、ＳＴＩＬで表現され、テストパタン記憶装置３０００に格納される。
【００５２】
次に、テスト装置３００１は、テストパタン記憶装置３０００からＳＴＩＬで表現された６サイクルの短周期テストパタンを取り込み、６サイクルの短周期テストパタンを短周期テストパタン１０１３として、周期的に繰り返し、半導体装置１０００内のスキャンチェインＳＣＮへ印加する。これにより、半導体装置１０００内のスキャンチェインＳＣＮにおいては、６サイクルの短周期テストパタンが、短周期テストパタンとしてループ走行することになる。スキャンチェインＳＣＮに、短周期テストパタン（図４の例では、６サイクル）が繰り返し供給され、ループ走行している状態で、発光解析が行われる。
【００５３】
実施の形態１においては、発光解析装置１を用いて故障解析を行うとき、スキャンチェインＳＣＮの長さよりも短いテストパタンが、短周期テストパタンとして、スキャンチェインＳＣＮをループ走行する。短周期テストパタンがループ走行をしている状態で、発光解析を用いた故障解析が行われる。
【００５４】
論理回路ＬＧＣを備えた半導体装置１の量産テストに用いられるスキャンテストでは、テストパタンのテスト値を、スキャンチェインＳＣＮの全てのフリップフロップ回路ＳＦＦ１〜ＳＦＦｐにセットする動作が行われていた。スキャンチェインＳＣＮを構成するフリップフロップ回路は、例えば数１００個を超える数に達し、これらのフリップフロップ回路は、シフトレジスタを構成するように直列的に接続される。これらのフリップフロップの全てに、テスト値をセットするには、フリップフロップ回路の数と等しいテストサイクル数が必要とされる。そのため、スキャンチェインＳＣＮにおいて、スキャンテスト用のテストパタンをループ走行させた場合のループ周期も、スキャンチェインＳＣＮを構成するフリップフロップ回路の数に律速されることになり、最低でも数１０マイクロ秒以上の周期となる。
【００５５】
この実施の形態１では、スキャンチェインＳＣＮの長さ（チェイン長）よりも短いテストパタンが、周期的に繰り返し、スキャンチェインＳＣＮに印加される。言い換えるならば、スキャンチェインＳＣＮのチェイン長よりも短いサイクル数のテストパタンが、周期的に繰り返し印加される。その結果、解析対象のネットとなる故障候補ネットが、短周期で遷移動作を繰り返す状態となる。図４の例で述べると、６サイクル（０、０、１、１、１、０）の短周期テストパタンが、周期的に繰り返しスキャンチェインＳＣＮに印加される。この場合、図５に示すように、サイクル４で、故障候補ネットＡは状態値１となり、サイクル７で、状態値０となり、故障候補ネットＡにおける状態の遷移（遷移動作）を減らすことができる。この例では、ループ周期は、シフトクロック信号ＳＣＬＫを基準として見た場合、６サイクルとなり、ループ周期を、ほぼ１マイクロ秒未満に短縮することが可能となる。
【００５６】
なお、図５において、フリップフロップＳＦＦｎ＋２〜ＳＦＦｎの下側には、それぞれのフリップフロップ回路からの出力（論理値０または１）が、示されている。ここで、Ｘ印の出力は不定を意味している。また、図５において、故障候補ネットＡの下側には、故障候補ネットＡの状態値（１、０）が示されており、Ｘ印の状態値は、不定を意味している。サイクル１〜７は、シフトクロック信号ＳＣＬＫに従って、シフト動作が行われるサイクルを示している。
【００５７】
このように、故障候補ネットが短い周期で、遷移動作を繰り返す状態で、発光解析を行うと、長い周期で、発光解析を行う場合に比べて、検出感度を向上させることが可能となる。ここで、長い周期で、発光解析を行う場合とは、例えばスキャンチェインＳＣＮのチェイン長と同じ長さの長周期テストパタンを、ループ走行させ、ループ走行している状態で、発光解析を行う場合を指している。長い周期の場合、この長い周期に相当する周波数成分以外の様々な周波数成分がノイズとして発生する。これに対して、短周期テストパタンでは、１周期中の遷移動作の回数を少なくすることが可能であるため、ノイズの発生を低減することが可能となり、大幅な検出感度の向上を図ることが可能となる。
【００５８】
（実施の形態２）
図６は、実施の形態２に係わる発光解析装置１の動作を示すフローチャート図であり、図３に示した状態値０／１パタン生成部３０１１の動作を示している。この実施の形態２においては、状態値０／１パタン生成部３０１１が、既存のスキャンテストパタンを用いて、状態値０／１パタンを生成する。
【００５９】
例えばＳＴＩＬ等で記述された既存のスキャンテストパタンにおいては、テストパタンであるスキャンパタン等がテストベクタ番号によって指定される。先ず、ステップＳ６０において、テストベクタ番号ｉが、既存スキャンテストパタンの先頭テストベクタであるとする。ステップＳ６１において、テストベクタ番号ｉがスキャンパタン（シフトパタン）を指定するテストベクタであるか否かを判定する。テストベクタ番号ｉが、スキャンパタンを指定するテストベクタであった場合、次にステップＳ６２が実行される。
【００６０】
ステップＳ６２においては、テストベクタ番号ｉによって示されるスキャンパタンを用いたスキャンシフト動作完了直後における制御対象ネット（故障候補ネット）の論理値ｖａｌを、シミュレーションによって算出する。算出した制御対象ネットの論理値ｖａｌが、論理値０であるが否かを、ステップＳ６３において判定し、論理値ｖａｌが、論理値１であるか否かを、ステップＳ６４において判定する。なお、論理値ｖａｌは、図では論理ｖａｌと記載されている。
【００６１】
ステップＳ６３において、論理値ｖａｌが、論理値０であると判定した場合、ステップＳ６５を実行し、ステップＳ６４において、論理値ｖａｌが、論理値１であると判定した場合には、ステップＳ６６を実行する。ステップＳ６５においては、テストベクタ番号ｉによって示されるスキャンパタンは、状態値０パタンであるとする。また、ステップＳ６６においては、テストベクタ番号ｉによって示されるスキャンパタンは、状態値１パタンであるとする。
【００６２】
ステップＳ６４〜Ｓ６６の後、ステップＳ６７において、テストベクタ番号ｉが更新される（ｉ＝ｉ＋１）。テストベクタ番号ｉの更新後、ステップＳ６８において、テストベクタ番号ｉが、スキャンテストパタンの末尾のテストパタンを示しているか否か（パタン末尾？）を判定する。パタン末尾でなかった場合には、ステップＳ６１へ戻り、パタン末尾と判定されるまで、上記したステップＳ６１〜Ｓ６８を繰り返し実行する（図６において、○で囲んだ符号Ａ）。これにより、スキャンテストパタンにおける全てのスキャンパタンに対して、状態値０パタンと状態値１パタンが求められる。なお、テストベクタ番号ｉがスキャンパタンを示していないときには、ステップＳ６６の後に、ステップＳ６７が実行される（図６において、○で囲んだ符号Ｂ）。
【００６３】
全てのスキャンパタンに対して、状態値０パタンと状態値１パタンが求まると、次に、状態値０パタンと状態値１パタン（状態値０／１パタンと記載）に簡略化を、ステップＳ６９において実行し、短周期テストパタン合成部３０１２へ出力し、終了する。スキャンテストパタンのうち、複数のスキャンパタンが、状態値０パタンに対応し、複数のスキャンパタンが、状態値１パタンに対応することになる。ステップＳ６９において実行される簡略化においては、同じ状態値０パタンに対応した複数のスキャンパタンのうち、互いに類似（同じを含む）したスキャンパタンが、１個のスキャンパタン（テストパタン）に纏められる。同様に、同じ状態値１パタンに対応する複数のスキャンパタンのうち、互いに類似（同じを含む）したスキャンパタンが、１個のスキャンパタン（テストパタン）に纏められる。これにより、状態値０／１パタンの簡略化が行われることになる。
【００６４】
次に、ステップＳ６９で実行する状態値０／１パタンの簡略化を、一例を用いて説明する。図７は、実施の形態２の動作を説明するための説明図である。ここで、図７（Ａ）は、図６で説明した処理を行うことにより得られた状態値０パタンに対応するスキャンパタン（テストパタン）の例を示している。図７（Ａ）において、パタン番号の列は、状態値０パタンに対応するスキャンパタンの番号を示している。また、図７（Ａ）において、ＳＦＦ１〜ＳＦＦ５は、スキャンチェインＳＣＮを構成する複数のフリップフロップ回路ＳＦＦ１〜ＳＦＦｐのうち、フリップフロップ回路ＳＦＦ１〜ＳＦＦ５を示しており、それぞれが出力しているテスト値を示している。
【００６５】
例えば、ＳＦＦ１の列は、フリップフロップ回路ＳＦＦ１から出力されているテスト値を示しており、パタン番号１〜６のそれぞれのシフトパタンのときに、フリップフロップ回路ＳＦＦ１は、論理値１を出力していることを示している。また、ＳＦＦ２の列は、フリップフロップ回路ＳＦＦ２から出力されているテスト値を示しており、パタン番号１〜４のそれぞれのシフトパタンのときに、フリップフロップ回路ＳＦＦ２は、論理値０を出力し、パタン番号５および６のシフトパタンのときに、フリップフロップ回路ＳＦＦ２は、論理値１を出力していることを示している。他のフリップフロップ回路ＳＦＦ３〜ＳＦＦ５も同様である。なお、図７（Ａ）において、符号Ｘは、論理値１および論理値０のいずれでもよいことを示している。
【００６６】
図７（Ａ）に示した例では、制御対象ネット（故障候補ネット）の入力側に、５個のフリップフロップ回路ＳＦＦ１〜ＳＦＦ５が、配置されており、これらのフリップフロップ回路ＳＦＦ１〜ＳＦＦ５が、パタン番号１〜６のシフトパタンのテスト値を出力するとき、制御対象ネットは、論理値０となることを表している。すなわち、フリップフロップ回路ＳＦＦ１〜ＳＦＦ５のそれぞれから出力されているテスト値によって、図７（Ａ）に示したパタン番号１〜６のいずれかのシフトパタンが構成されたとき、制御対象ネットの論理値は０となる。
【００６７】
図７（Ｂ）は、図６に示したステップＳ６９における処理を説明する図である。図７（Ａ）において、パタン番号１のシフトパタンとパタン番号２のシフトパタンは、全く同じである。すなわち、異なるテストベクタ番号によって示された２個のシフトパタン間でも、制御対象ネットを論理値０にするフリップフロップ回路ＳＦＦ１〜ＳＦＦ５のテスト値は、パタン番号１とパタン番号２のシフトパタンでは同じとなる。そのため、パタン番号１とパタン番号２は、図７（Ｂ）に示すように１個に纏め（矢印破線（１））、パタン番号１とする。
【００６８】
また、図７（Ａ）から、パタン番号３とパタン番号４では、フリップフロップ回路ＳＦＦ４の論理値のみが異なっていることが判る。これは、フリップフロップ回路ＳＦＦ１〜ＳＦＦ３およびＳＦＦ５が、論理値（１、０、０、０）であれば、フリップフロップ回路ＳＦＦ４の論理値とは無関係に、制御対象ネットが論理値０に定められることを意味している。すなわち、この場合には、フリップフロップ回路ＳＦＦ４は、制御対象ネットを論理値０に定めるのに対して関与していないことを意味している。そのため、パタン番号３およびパタン番号４に係わるテストベクタを１個に纏める。すなわち、図７（Ａ）に示したパタン番号３とパタン番号４を、図７（Ｂ）に示すように１個に纏め（矢印破線（２））、パタン番号２とする。このとき、フリップフロップＳＦＦ４の論理値は、任意であるため、不定値Ｘに変換する。
【００６９】
同様に、図７（Ａ）において、パタン番号５とパタン番号６を見た場合、フリップフロップＳＦＦ３のテスト値（論理値）を除いて、他のテスト値（論理値）は、同じである。また、パタン番号６のフリップフロップＳＦＦ３の論理値は、任意（不定値）Ｘである。そのため、この場合には、フリップフロップ回路ＳＦＦ３は、制御対象ネットを論理値０に定めるのに対して関与していないことになる。この場合には、図７（Ａ）に示したパタン番号５とパタン番号６を、図７（Ｂ）に示すように１個に纏め（矢印破線（３））、パタン番号３とする。このようにして、状態値０パタンに対応する６個のシフトパタン（図７（Ａ）におけるパタン番号１〜６）は、３個のシフトパタン（図７（Ｂ）におけるパタン番号１〜３）に簡略化される。
【００７０】
状態値０パタンに対応する複数のシフトパタンを例にして説明したが、状態値１パタンに対応する複数のシフトパタンについても、同様に簡略化を行うことにより、状態値１パタンに対応するシフトパタンの数が減らされる。
【００７１】
簡略化されたシフトパタンが、状態値０パタンおよび状態値１パタンとして、短周期テストパタン合成部３０１２へ提供される。短周期テストパタン合成部３０１２においては、提供された状態値０パタンに対応するシフトパタンと状態値１パタンに対応するシフトパタンから、例えばそれぞれ１個のシフトパタンを選択し、合成し、短周期テストパタンを生成する。例えば、状態値０パタンの後に状態値１パタンを結合することにより、短周期テストパタンが生成される。この生成された短周期テストパタンは、ＳＴＩＬで記述され、テストパタン記憶装置３０００に格納され、発光解析において、テスト装置３００１により、スキャンチェインＳＣＮに、周期的に繰り返し印加される。
【００７２】
図４（Ｂ）に示した真理値表から、状態値０パタンおよび状態値１パタンを生成する場合、総当たりのシミュレーションを実行することが要求される。この場合、シミュレーションに要する計算時間は、２のフリップフロップ回路数乗に比例することになる。そのため、制御対象ネットの入力側に多数のフリップフロップ回路が配置されている場合、計算時間が莫大となってしまう。例えば、シフトチェインを構成するフリップフロップ回路の数は、数万を超える場合もあり、計算時間も莫大となる。
【００７３】
これに対して、実施の形態２によれば、状態値０パタンおよび状態値１パタンの生成を、現実的な時間内で生成することが可能となる。ＡＴＰＧツールを用いてスキャンテストパタンを生成する場合、テストパタンの生成と、時間的に平行して論理シミュレーションを実施することが可能である。そのため、この論理シミュレーションの結果を保存し、状態値０パタンおよび状態値１パタンを生成する際に、再利用することが可能である。すなわち、図６のステップＳ６２において実行していたシミュレーションを省略し、論理シミュレーションの結果を再利用する。これにより、計算時間を大幅に短縮することが可能となる。
【００７４】
（実施の形態３）
図８は、実施の形態３に係わる発光解析装置１の動作を示すフローチャート図であり、短周期テストパタン合成部３０１２の動作を示している。実施の形態３においては、短周期テストパタン合成部３０１２において、周期探索処理とマッチング処理が行われる。
【００７５】
周期探索処理は、状態値０パタンおよび状態値１パタンを、周期ｉ（周期数）のテストパタンに短縮する処理である。ここで短縮された状態値０パタンに対応するテストパタンは、短縮状態値０パタンと称し、短縮された状態値１パタンに対応するテストパタンは、短縮状態値１パタンと称する。また、マッチング処理は、短縮状態値０パタンと短縮状態値１パタン間で、シフト動作により、マッチングを図る処理である。
【００７６】
ステップＳ８０（図８）において、周期ｉの初期値が設定される。図８の例では、周期ｉの初期値として２が設定される。次にステップＳ８１において、周期ｉでの状態値０パタンと状態値１パタン（状態値０／１パタンと記載）の周期探索の処理が実行される。次にステップＳ８２において、周期探索に成功したか否かの判定が行われる。ステップＳ８２において、周期探索に成功したと判定された場合、ステップＳ８３において、短縮状態値０パタンと短縮状態値１パタンとの間で、シフト動作を伴うマッチング処理を実施する（図８では、短縮状態値０／１パタンのマッチング処理を実施と記載）。ステップＳ８３に続いて、ステップＳ８４において、マッチングが成功したか否かの判定が行われる。マッチングに成功している場合、ステップＳ８６が実行される。ステップＳ８６においては、マッチング後のパタンを、短周期テストパタンとして、テストパタン記憶装置３０００（図３）へ提供する。この場合、マッチング後のテストパタンは、ＳＴＩＬにより記述され、テストパタン記憶装置３０００へ提供されることになる。
【００７７】
ステップＳ８２において周期探索に成功しなかった場合またはステップＳ８４においてマッチングに成功しなかった場合には、ステップＳ８５が実行される。ステップＳ８５においては、周期ｉが更新される。すなわち、周期ｉがｉ＋１とされ、周期が増やされる。その後、ステップＳ８１に戻り、周期が増やされた状態で、周期探索から再開されることになる。
【００７８】
次に、この実施の形態３に係わる周期探索処理およびマッチング処理を、一例を用いて説明する。先ず、説明で用いる制御対象ネット（故障候補ネット）Ａを説明しておく。図９は、論理回路ＬＧＣと、論理回路ＬＧＣに接続されたスキャンチェインとを示すブロック図である。図９は、テストのときの状態を示しており、複数のフリップフロップ回路ＳＦＦが、直列的に接続され、スキャンチェインＳＣＮ（図２）が構成されている状態が示されている。図２では、複数のフリップフロップ回路ＳＦＦ１〜ＳＦＦｐが、直列的に接続され、１個のスキャンチェインＳＣＮが構成された例を示したが、図９では複数のフリップフロップ回路ＳＦＦが直列的に接続され、複数のスキャンチェインＳＣＮが構成されている。すなわち、図９では、複数のフリップフロップ回路ＳＦＦが直列的に接続され、２個のスキャンチェインが構成されている例が示されている。ここでは、図９において、論理回路ＬＧＣを挟んで、左側に配置されたスキャンチェインが、チェイン（ｃｈａｉｎ）１として示されており、右側に配置されたスキャンチェインが、チェイン（ｃｈａｉｎ）２として示されている。
【００７９】
論理回路ＬＧＣは、実施の形態１と同様に複数の論理回路を備えているが、図９には、チェイン１およびチェイン２のそれぞれのフリップフロップ回路ＳＦＦからの出力を受ける論理回路ＬＧＣ−Ａのみが示されている。論理回路ＬＧＣ−Ａは、チェイン１およびチェイン２のそれぞれに配置されている１０個のフリップフロップ回路ＳＦＦに接続されている。ここでは、論理回路ＬＧＣ−Ａの入力側に配置されているチェイン１およびチェイン２における１０個のフリップフロップ回路が、ビット１（ｂｉｔ１）〜ビット１０（ｂｉｔ１０）として描かれている。論理回路ＬＧＣ−Ａは、ビット１〜ビット１０の論理値に従って、複数の出力を形成するが、図９には１個の出力のみがネットＡとして示されている。このネットＡが、制御対象ネット（故障候補ネット）である。ここでは、制御対象ネットＡの状態は、チェイン１におけるビット２、ビット４、ビット７およびチェイン２におけるビット３、ビット６、ビット８の論理値（テスト値）に従って定まるものとして説明する。なお、図４と同様に、スキャンテスト時には、矢印で示したシフト方向にテスト値は、順次シフトする。
【００８０】
図１０は、図９に示した制御対象ネットＡを状態値０または状態値１とするときの状態値０／１パタンを示す図である。すなわち、図１０は、図９に示した論理回路ＬＧＣ−Ａによって、制御対象ネットＡの状態が、チェイン１におけるビット２、ビット４、ビット７と、チェイン２におけるビット３、ビット６、ビット８とに基づいて定められている状態が示されている。ここで、図１０（Ａ）および（Ｂ）には、状態値０パタンに対応するテストパタン（チェイン１におけるビット２、ビット４、ビット７と、チェイン２におけるビット３、ビット６、ビット８）が示されている。すなわち、制御対象ネットＡが状態値（論理値）０となるときの、テストパタンが示されている。同様に、図１０（Ｃ）および（Ｄ）には、状態値１パタンに対応するテストパタン（チェイン１におけるビット２、ビット４、ビット７と、チェイン２におけるビット３、ビット６、ビット８）が示されている。すなわち、制御対象ネットＡが状態値（論理値）１となるときの、テストパタンが示されている。
【００８１】
状態値０パタンおよび状態値１パタンのそれぞれは、複数存在するが、図１０では、例として、それぞれ２個のパタンが示されている。すなわち、図１０（Ａ）には、状態値０パタンに対応する第１パタンが、パタン番号１として示され、図１０（Ｂ）には、状態値０パタンに対応する第２パタンが、パタン番号２として示されている。同様に、図１０（Ｃ）には、状態値１パタンに対応する第１パタンが、パタン番号１として示され、図１０（Ｄ）には、状態値１パタンに対応する第２パタンが、パタン番号２として示されている。
【００８２】
図１０（Ａ）は、チェイン１のビット２、４および７が、論理値（０、１、１）で、チェイン２のビット３、８が、論理値（１、１）のとき、制御対象ネットＡは、状態値０となることを示している。また、図１０（Ｂ）は、チェイン１のビット２および７が、論理値（０、１）で、チェイン２のビット３、６および８が、論理値（１、０、１）のとき、制御対象ネットＡは、状態値０となることを示している。同様に、図１０（Ｃ）は、チェイン１のビット２、４および７が、論理値（１、０、０）で、チェイン２のビット３、８が、論理値（０、０）のとき、制御対象ネットＡは、状態値１となることを示している。また、図１０（Ｄ）は、チェイン１のビット２、４および７が、論理値（１、１、０）で、チェイン２のビット３、６および８が、論理値（１、０、１）のとき、制御対象ネットＡは、状態値１となることを示している。
【００８３】
＜周期探索処理＞
実施の形態１または実施の形態２に従って、状態値０／１パタン生成部３０１１から、図１０に示した状態値０パタンおよび状態値１パタンが、短周期テストパタン合成部３０１２へ提供される。短周期テストパタン合成部３０１２では、図８に示したステップＳ８０において、周期ｉが初期値２に設定される。これにより、周期ｉ＝２で、周期探索処理が開始される。周期探索処理は、チェイン（ｃｈａｉｎ）本数×モジュロ（ｍｏｄｕｌｏ）の空間上あるいは配列に、図１０に示した状態値０パタンと状態値１パタンを割り当てる処理である。ここで、モジュロ（ｍｏｄｕｌｏ）は、周期ｉと同じである。
【００８４】
具体的には、図１０に示した状態値０パタンおよび状態値１パタンに対して、モジュロ（ｍｏｄｕｌｏ）＝ｍｏｄ（ビット番号、周期ｉ）を求め、対応するモジュロ（ｍｏｄｕｌｏ）に状態値を割り当てる。ここで、ｍｏｄは、剰余を示す。そのため、モジュロ（ｍｏｄｕｌｏ）は、ビット番号（ｂｉｔ１〜ｂｉｔ１０）を周期ｉで割ったときの剰余に相当する。
【００８５】
図１１は、実施の形態３に係わる周期探索処理を説明するための図である。図１１（Ａ）は、図１０（Ａ）に示した状態値０パタンでパタン番号１を周期探索したときの結果（短縮状態値０パタン番号１）を示しており、図１１（Ｂ）は、図１０（Ｂ）に示した状態値０パタンでパタン番号２を周期探索したときの結果（短縮状態値０パタン番号２）を示している。また、図１１（Ｃ）は、図１０（Ｃ）に示した状態値１パタンでパタン番号１を周期探索したときの結果（短縮状態値１パタン番号１）を示しており、図１１（Ｄ）は、図１０（Ｄ）に示した状態値１パタンでパタン番号２を周期探索したときの結果（短縮状態値１パタン番号２）を示している。
【００８６】
図１１（Ｅ）は、図１０（Ｂ）に示したパタン番号２（状態値０パタン）と同じであるが、図１１（Ｅ）と図１１（Ｂ）との間には、周期探索の処理例が示されている。この図１１（Ｅ）と図１１（Ｂ）を用いて、周期探索の処理を説明する。図１１（Ｅ）において、チェイン（ｃｈａｉｎ）１のビット２（ｂｉｔ２）は、論理値（状態値）が０である。一方、このビット２のモジュロ（ｍｏｄｕｌｏ）は、ｍｏｄ（２、２）＝０となる。そのため、図１１（Ｂ）において、モジュロ（ｍｏｄｕｌｏ）＝０で、チェイン（ｃｈａｉｎ）１の領域には、ビット２の論理値０が割り当てられる（矢印破線（１））。また、チェイン（ｃｈａｉｎ）１のビット７（ｂｉｔ７）は、論理値（状態値）が１である。一方、このビット７のモジュロ（ｍｏｄｕｌｏ）は、ｍｏｄ（７、２）＝１となる。そのため、図１１（Ｂ）において、モジュロ（ｍｏｄｕｌｏ）＝１で、チェイン（ｃｈａｉｎ）１の領域には、ビット７の論理値１が割り当てられる（矢印破線（２））。これにより、パタン番号２のチェイン１については、２周期に、短縮することが可能であると判明する。
【００８７】
一方、チェイン（ｃｈａｉｎ）２のビット３は、そのモジュロ（ｍｏｄｕｌｏ）が（３、２）＝１となる。これにより、モジュロ（ｍｏｄｕｌｏ）＝１で、チェイン２の領域には、ビット３の論理値１が割り当てられる（矢印破線（３））。同様に、チェイン（ｃｈａｉｎ）２のビット６および８のそれぞれのモジュロ（ｍｏｄｕｌｏ）を算出（ｍｏｄ（６、２）、ｍｏｄ（８、２））すると、モジュロ（ｍｏｄｕｌｏ）＝０となる。しかしながら、ビット６は、論理値が０であり、ビット８は、論理値が１である。そのため、モジュロ（ｍｏｄｕｌｏ）＝０に、ビット６とビット８とを割り当てようとすると、矛盾が発生する。これにより、図１１（Ｂ）において、モジュロ（ｍｏｄｕｌｏ）＝０で、チェイン２の領域には、ＮＧが割り当てられている（矢印破線（４）、（５））。これにより、パタン番号２のチェイン２については、２周期に、短縮することは不可能であることが判明する。
【００８８】
すなわち、状態値０パタンであるパタン番号２（図１１（Ｅ）および図１０（Ｂ））を、２周期に短縮することは不可能であり、周期探索に失敗したことを意味する。
【００８９】
同様な処理を、図１０（Ａ）に示した状態値０パタンのパタン番号１に行った結果が、図１１（Ａ）に示され、図１０（Ｃ）に示した状態値１のパタン番号１に対して行った結果が、図１１（Ｃ）に示され、図１０（Ｄ）に示した状態値１のパタン番号２に対して行った結果が、図１１（Ｄ）に示されている。図１１（Ａ）、図１１（Ｃ）および図１１（Ｄ）のいずれにおいても、図１１（Ｂ）と同様に、矛盾を示す符号ＮＧが割り当てられた領域が存在する。そのため、いずれのパタン番号を用いても、周期ｉ＝２、すなわち２周期に、短縮することは不可能であり、周期探索は失敗することを意味している。
【００９０】
上記した処理が、図８のステップＳ８１において実行され、ステップＳ８２において、周期探索は成功しなかったと判定される。その結果、次に、ステップＳ８５が実行される。ステップＳ８５において、周期ｉ＝３（ｉ＋１）となり、再びステップＳ８１が実行される。
【００９１】
図１２は、実施の形態３に係わる周期探索処理およびマッチング処理を説明する図である。ここで、図１２（Ａ）〜１２（Ｄ）は、ステップＳ８５において、周期ｉが３へ更新された状態での周期探索処理の結果が示されている。図１２（Ａ）は、図１０（Ａ）に示した状態値０パタンでパタン番号１を周期探索したときの結果を示しており、図１２（Ｂ）は、図１０（Ｂ）に示した状態値０パタンでパタン番号２を周期探索したときの結果を示している。また、図１２（Ｃ）は、図１０（Ｃ）に示した状態値１パタンでパタン番号１を周期探索したときの結果を示しており、図１２（Ｄ）は、図１０（Ｄ）に示した状態値１パタンでパタン番号２を周期探索したときの結果を示している。
【００９２】
図１２（Ｅ）は、図１０（Ａ）に示したパタン番号１と同じであるが、図１２（Ａ）と図１２（Ｅ）との間には、周期探索の処理例が示されている。この図１２（Ａ）と図１２（Ｅ）を用いて、更新された周期ｉ＝３での周期探索の処理を説明する。
【００９３】
図１２（Ｅ）において、チェイン（ｃｈａｉｎ）１のビット２（ｂｉｔ２）は、論理値（状態値）が０である。一方、このビット２のモジュロ（ｍｏｄｕｌｏ）は、ｍｏｄ（２、３）＝２となる。そのため、図１２（Ａ）において、モジュロ（ｍｏｄｕｌｏ）＝２で、チェイン（ｃｈａｉｎ）１の領域には、ビット２の論理値０が割り当てられる（矢印破線（１））。また、チェイン（ｃｈａｉｎ）１のビット４（ｂｉｔ４）は、論理値（状態値）が１である。一方、このビット４のモジュロ（ｍｏｄｕｌｏ）は、ｍｏｄ（４、３）＝１となる。そのため、図１２（Ａ）において、モジュロ（ｍｏｄｕｌｏ）＝１で、チェイン（ｃｈａｉｎ）１の領域には、ビット４の論理値１が割り当てられる（矢印破線（２））。
【００９４】
さらに、チェイン（ｃｈａｉｎ）１のビット７（ｂｉｔ７）は、論理値（状態値）が１である。一方、このビット７のモジュロ（ｍｏｄｕｌｏ）は、ｍｏｄ（７、３）＝１となる。ビット４とビット７が、同じモジュロ（ｍｏｄｕｌｏ）＝１を示すが、ビット４とビット７の論理値は、ともに１である。そのため、図１２（Ａ）において、モジュロ（ｍｏｄｕｌｏ）＝１で、チェイン（ｃｈａｉｎ）１の領域には、ビット４の論理値１とビット７の論理値１を割り当てても、矛盾は発生せず、論理値１が割り当てられる（矢印破線（３））。
【００９５】
これにより、パタン番号１のチェイン１については、３周期に、短縮することが可能であると判明する。
【００９６】
図１２（Ｅ）において、チェイン（ｃｈａｉｎ）２のビット３（ｂｉｔ３）は、論理値（状態値）が１である。一方、このビット３のモジュロ（ｍｏｄｕｌｏ）は、ｍｏｄ（３、３）＝０となる。そのため、図１２（Ａ）において、モジュロ（ｍｏｄｕｌｏ）＝０で、チェイン（ｃｈａｉｎ）２の領域には、ビット３の論理値１が割り当てられる（矢印破線（４））。また、チェイン（ｃｈａｉｎ）２のビット８（ｂｉｔ８）は、論理値（状態値）が１である。一方、このビット８のモジュロ（ｍｏｄｕｌｏ）は、ｍｏｄ（８、３）＝２となる。そのため、図１２（Ａ）において、モジュロ（ｍｏｄｕｌｏ）＝２で、チェイン（ｃｈａｉｎ）２の領域には、ビット８の論理値１が割り当てられる（矢印破線（５））。
【００９７】
これにより、パタン番号１のチェイン２についても、３周期に、短縮することが可能であると判明する。その結果、状態値０のパタン番号１については、３周期に短縮することが可能であり、周期探索に成功したことになる。
【００９８】
同様な処理が行われ、図１０（Ｂ）に示した状態値０パタンのパタン番号２に行った結果が、図１２（Ｂ）に示され、図１０（Ｃ）に示した状態値１のパタン番号１に対して行った結果が、図１２（Ｃ）に示され、図１０（Ｄ）に示した状態値１のパタン番号２に対して行った結果が、図１２（Ｄ）に示されている。図１２（Ｂ）および図１２（Ｄ）には、矛盾を示す符号ＮＧが割り当てられた領域が存在する。しかしながら、図１２（Ａ）および図１２（Ｃ）には、矛盾を示す符号ＮＧが存在しない。すなわち、状態値０パタンのパタン番号１および状態値１パタンのパタン番号１については、３周期に短縮することが可能であると判定される。これにより、図８のステップＳ８２においては、周期探索に成功したと判定され、次にステップＳ８３においてマッチング処理が実行される。
【００９９】
マッチング処理は、周期探索に成功した短縮状態値０パタン番号のテストパタンと、短縮状態値１パタン番号のテストパタンに対して実行される。すなわち、図１２（Ａ）に示す短縮された短縮状態値０パタンと、図１２（Ｃ）に示す短縮状態値１パタンとの間で、マッチング処理が行われる。図１２（Ｆ）は、マッチング処理の結果を示す図である。マッチング処理においては、短縮状態値０パタンと短縮状態値１パタンとを上下にシフトさせた上で、重ね合わせる。重ね合わせたときに、論理値（状態値）に矛盾が生じない組合せを探す。上下にシフトする際のシフト量は、任意である。例えば、１ビットシフトして、矛盾が生じる場合には、シフト量を増やして、重ね合わせる。シフト量を増やしても、矛盾が生じる場合には、マッチングは失敗であると、ステップＳ８４において判定する。また、シフトは、リング状に行う。すなわち、シフトにより溢れた領域の論理値は、シフトにより空いた領域に埋める。
【０１００】
図１２（Ｆ）は、図１２（Ｃ）に示す短縮状態値１パタンを、上側に１ビットシフトして、図１２（Ａ）に示す短縮状態値０パタンに重ねた場合を示している。図１２（Ｃ）を、上側に１ビットシフトしているため、図１２（Ｃ）において、モジュロ（ｍｏｄｕｌｏ）＝０で、チェイン２の領域が溢れることになるが、この領域の論理値（状態値）は、１ビットシフトにより空いた領域であるモジュロ（ｍｏｄｕｌｏ）＝２で、チェイン２の領域に埋め込まれる。すなわち、図１２（Ｃ）において、モジュロ（ｍｏｄｕｌｏ）＝０の行におけるチェイン１およびチェイン２のそれぞれの論理値が、１ビットシフトにより、図１２（Ｆ）では、モジュロ（ｍｏｄｕｌｏ）＝２に埋め込まれる。また、図１２（Ｃ）において、モジュロ（ｍｏｄｕｌｏ）＝１の行におけるチェイン１およびチェイン２のそれぞれの論理値が、１ビットシフトにより、図１２（Ｆ）では、モジュロ（ｍｏｄｕｌｏ）＝０に埋め込まれる。さらに、図１２（Ｃ）において、モジュロ（ｍｏｄｕｌｏ）＝２の行におけるチェイン１およびチェイン２のそれぞれの論理値が、１ビットシフトにより、図１２（Ｆ）では、モジュロ（ｍｏｄｕｌｏ）＝１に埋め込まれる。
【０１０１】
このようにシフトした場合、図１２（Ｆ）において、モジュロ（ｍｏｄｕｌｏ）＝２で、チェイン２の領域には、図１２（Ａ）に示した論理値１と、シフトによって埋め込まれる論理値０とが出現することになり、論理値の矛盾が発生し、ＮＧとなる。シフト量を増加しても、論理値の矛盾が発生するため、周期３では、マッチングに失敗したことになる。マッチングに失敗すると、図８に示したステップＳ８５が実行される。このとき、周期ｉは、更新されて３となっているため、さらに更新（ｉ＋１）され、周期ｉは４となる。
【０１０２】
図１３は、実施の形態３に係わる周期探索処理およびマッチング処理を説明する図である。図１３（Ａ）は、図１０（Ａ）に示した状態値０パタンでパタン番号１を周期探索したときの結果を示しており、図１３（Ｂ）は、図１０（Ｂ）に示した状態値０パタンでパタン番号２を周期探索したときの結果を示している。また、図１３（Ｃ）は、図１０（Ｃ）に示した状態値１パタンでパタン番号１を周期探索したときの結果を示しており、図１３（Ｄ）は、図１０（Ｄ）に示した状態値１パタンでパタン番号２を周期探索したときの結果を示している。図１３（Ａ）〜図１３（Ｄ）のいずれも、周期ｉ＝４で、周期探索を実施した結果が示されている。
【０１０３】
図１３（Ｅ）は、図１３（Ｃ）に示す短縮状態値１パタン番号１を、上側に２ビットシフトして、図１３（Ｂ）に示す短縮状態値０パタン番号２に重ねた場合を示している。図１３（Ｃ）を、上側に２ビットシフトしているため、図１３（Ｃ）において、モジュロ（ｍｏｄｕｌｏ）＝０の行におけるチェイン１およびチェイン２の論理値（０、０）は、図１３（Ｅ）では、モジュロ（ｍｏｄｕｌｏ）＝２の行に埋め込まれる。図１３（Ｃ）において、モジュロ（ｍｏｄｕｌｏ）＝２の行におけるチェイン１の論理値（１）は、２ビットシフトにより、図１３（Ｅ）では、モジュロ（ｍｏｄｕｌｏ）＝０に埋め込まれる。また、図１３（Ｃ）において、モジュロ（ｍｏｄｕｌｏ）＝３の行におけるチェイン１およびチェイン２の論理値（０、０）は、２ビットシフトにより、図１３（Ｅ）では、モジュロ（ｍｏｄｕｌｏ）＝１に埋め込まれる。
【０１０４】
図１３（Ｃ）に示した短縮状態値１パタンを２ビットシフトして、図１３（Ｂ）に示した短縮状態値０パタンに重ね合わせたとき、それぞれの領域において、論理値は矛盾しない。そのため、矛盾を示すＮＧは、図１３（Ｅ）には存在しない。これにより、ステップＳ８４において、マッチングは成功したと判定される。図１３（Ｅ）に示した重ね合わせた結果（マッチング処理結果）が、制御対象ネットＡ（図９）に対する短周期テストパタンとなる。このマッチング処理結果は、ＳＴＩＬで記述され、テストパタン記憶装置３０００（図３）へ提供され、短周期テストパタン合成部３０１２の処理が終了する（図８のステップＳ８６）。テストパタン記憶装置３０００に格納されたマッチング処理結果は、テスト装置３００１によって、短周期テストパタンとして、周期的に繰り返しチェイン１およびチェイン２に印加される。
【０１０５】
制御対象ネットＡに対する短周期テストパタンは、図１３（Ｅ）に示すように、モジュロ（ｍｏｄｕｌｏ）が０〜３であるため、４周期で構成される。この４周期において、チェイン（ｃｈａｉｎ）１には、図１３（Ｅ）のチェイン（ｃｈａｉｎ）１列に記載した論理値（１、０、０、１）が、テスト値として印加され、チェイン（ｃｈａｉｎ）２には、図１３（Ｅ）のチェイン（ｃｈａｉｎ）２列に記載した論理値（１、０、０、１）が、テスト値として印加される。それぞれ４周期で構成された短周期テストパタンは、繰り返し、チェイン（ｃｈａｉｎ）１およびチェイン（ｃｈａｉｎ）２に印加される。例えば、チェイン（ｃｈａｉｎ）１では、論理値（１、０、０、１）のテスト値が印加された直後に、同じ論理値（１、０、０、１）がテスト値として印加される。以降所定の回数、論理値（１、０、０、１）が繰り返し印加される。これは、チェイン（ｃｈａｉｎ）２についても同様である。これにより、制御対象ネットＡは、短周期で、状態が周期的に遷移することになる。
【０１０６】
なお、図１１〜図１３に示したモジュロ（ｍｏｄｕｌｏ）は、スキャンチェインにおいて、テスト値がシフトする周期を示している。スキャンチェインは、複数のフリップフロップ回路により構成されたシフトレジスタと見なすことができるため、テスト値をシフトする周期は、シフトクロック信号ＳＣＬＫ（図２）の周期と見なすことができる。そのため、４周期は、シフトクロック信号ＳＣＬＫの４周期に相当すると見なすことができる。
【０１０７】
制御対象ネットが、１個の例を説明したが、これに限定されるものではない。制御対象ネットＡ以外に、制御対象ネットＢ（図示しない）が存在する場合、この制御対象ネットＢについても、制御対象ネットＡと同様にして、短縮状態値０パタンと短縮状態値１パタンを有する短周期テストパタンを求め、求めた短周期テストパタンを、周期的にチェイン１およびチェイン２に印加する。この場合、制御対象ネットＡに対する短周期テストパタンと、制御対象ネットＢに対する短周期テストパタンを、交互に印加するようにしてもよいし、例えば制御対象ネットＡに対する短周期テストパタンを所定回数、繰り返し印加した後、制御対象ネットＢに対する短周期テストパタンを所定回数、繰り返し印加するようにしてもよい。
【０１０８】
図１３（Ｂ）と図１３（Ｃ）を重ね合わせて、マッチング処理を行った例を説明したが、マッチング処理を行う短縮状態値０パタンと短縮状態値１パタンは、これに限定されない。また、複数の短縮状態値０パタンと複数の短縮状態値１パタンのそれぞれをマッチング処理することにより、複数のマッチング処理結果を得ることも可能である。この場合、複数の処理結果から１個のマッチング処理結果を選択し、選択したマッチング処理結果を基にして、短周期テストパタンを生成すればよい。
【０１０９】
実施の形態１では、制御対象ネットＡの入力側に接続されたフリップフロップ回路の全てが、同一のスキャンチェインに配置され、互いに隣接している例を説明した。これに対して、実施の形態３では、制御対象ネットＡの入力側に接続されたフリップフロップ回路が、複数のスキャンチェイン（チェイン）に分散して配置されている。さらに、フリップフロップ回路は、スキャンチェイン（チェイン）上でも隣接せず、分散して配置されている。周期探索処理を行うことにより、このような場合であっても、短周期テストパタンを生成することが可能である。
【０１１０】
実施の形態１〜３においては、複数のフリップフロップ回路により構成されスキャンチェインのチェイン長よりも短いテストパタン（短周期テストパタン）を生成し、周期的に繰り返しスキャンチェインに印加する例を説明した。テストパタンを短くすると言う観点で見た場合、例えばスキャンチェインのチェイン長と同じ長さのスキャンテストパタンを生成し、生成したテストパタンをスキャンチェインにおいてシフトしているとき、途中でシフトを止める、あるいは生成したテストパタンの前半（後半）を省略することにより、テストパタンを短くすることが可能である。しかしながら、このようにした場合には、制御対象ネットを正しく周期的に動作させることが困難になる。また、このようにした場合には、テストパタンのループ周期を十分に短くすることが困難になる。そのため、このようなテストパタンでは、発光解析での検出感度が低下してしまい、故障の検知および故障箇所の特定が困難である。
【０１１１】
短周期テストパタンに含まれる状態値０パタンを第１テストパタンとし、状態値１パタンを第２テストパタンと見なした場合、図１０（Ａ）および図１０（Ｂ）に示したパタン番号１およびパタン番号２は、第１テストパタンの候補となる第１テストパタン候補と見なし、図１０Ａ（Ｃ）および図１０（Ｄ）に示したパタン番号１およびパタン番号２は、第２テストパタンの候補となる第２テストパタン候補と見なすことができる。この場合、周期探索処理は、複数の第１テストパタン候補に対して、周期数を短縮する処理と見なすことができる。また、マッチング処理は、周期数が短縮された第１テストパタン候補と第２テストパタン候補との間でマッチングを行う処理と見なすことができる。マッチング処理によって得られたテストパタンが、第１テストパタンと第２テストパタンを含む短周期テストパタンとなり、この短周期テストパタンが、周期的に繰り返し、スキャンチェインに印加されることになる。
【０１１２】
（実施の形態４）
実施の形態４においては、実施の形態１〜３において生成した短周期テストパタンに対して、ダミーサイクルが挿入される。ダミーサイクルを挿入することにより、短周期テストパタンをスキャンチェインにおいて、繰り返し走行（ループ走行）させた際に、制御対象ネットにおける動作波形をデューティ比が５０％となる方形波にする。すなわち、制御対象ネットの遷移により生じる動作波形を、デューティ比が５０％の方形波となるようにするものである。
【０１１３】
ここでは、実施の形態３を例にして、短周期テストパタンに対してダミーサイクルを挿入する場合を説明する。図１４は、実施の形態３に係わる発光解析装置１の動作を示す波形図である。同図において、横軸は時間（ｎｓ）を示しており、縦軸は電圧を示している。ここで、図１４（Ａ）は、テスト装置３００１（図３）から、スキャンチェインであるチェイン１およびチェイン２に供給されるシフトクロック信号ＳＣＬＫを示している。図１４（Ｂ）は、チェイン１を構成する複数のフリップフロップ回路ＳＦＦ（図９）内の特定のフリップフロップ回路の出力波形を示している。同様に、図１４（Ｃ）は、チェイン２を構成する複数のフリップフロップ回路ＳＦＦ（図９）内の特定のフリップフロップ回路の出力波形を示している。以下、説明の都合上、図１４（Ｂ）は、図９に示したチェイン（ｃｈａｉｎ）１を構成する特定のフリップフロップ回路ＳＦＦ−１の出力波形とし、図１４（Ｃ）は、図９に示したチェイン（ｃｈａｉｎ）２を構成する特定のフリップフロップ回路ＳＦＦ−２の出力波形とする。また、図１４（Ｄ）は、制御対象ネットＡにおける遷移により生じる波形を示している。
【０１１４】
チェイン１およびチェイン２のそれぞれを構成するフリップフロップ回路ＳＦＦは、直列的（シリーズ）に接続されている。それぞれのフリップフロップ回路ＳＦＦは、シフトクロック信号ＳＣＬＫが変化することにより、前段のフリップフロップ回路の出力を取り込み、出力する。図１４（Ａ）に示した例では、シフトクロック信号ＳＣＬＫの１周期は、３０ｎｓであり、それぞれのフリップフロップ回路ＳＦＦは、特に制限されないが、シフトクロック信号ＳＣＬＫの立ち下がりに同期して、前段からの出力を取り込み、出力する。すなわち、前段の出力が変化していた場合、３０ｎｓを１サイクルとして、フリップフロップ回路ＳＦＦの出力が変化する。勿論、前段の出力が変化していなければ、フリップフロップ回路ＳＦＦの出力は変化しない。また、図９に示した論理回路ＬＧＣ−Ａは、シフトクロック信号ＳＣＬＫの立ち上がりに同期して、制御対象ネットＡを遷移させるものとする。
【０１１５】
ここでは、説明の都合上、実施の形態３によって生成された短周期テストパタンは、その１周期が、９０ｎｓであるものとする。この場合、繰り返し印加される短周期テストパタンのそれぞれは、シフトクロック信号ＳＣＬＫの３サイクル（３周期）を含むことになる。
【０１１６】
図１４において、時刻３０ｎｓで、シフトクロック信号ＳＣＬＫが立ち下がると、特定のフリップフロップ回路ＳＦＦ−１、ＳＦＦ−２の出力が変化する。図１４の例では、チェイン１の特定のフリップフロップ回路ＳＦＦ−１の出力は、その前段の出力が変化していないため、図１４（Ｂ）に示すようにハイレベルを維持している。これに対して、チェイン２の特定のフリップフロップ回路ＳＦＦ−２の出力は、その前段の出力が変化しているため、図１４（Ｂ）に示すようにロウレベルへ遷移している。論理回路ＬＧＣ−Ａは、フリップフロップ回路ＳＦＦ−１、ＳＦＦ−２を含む入力側のフリップフロップ回路の出力に従って、時刻３０ｎｓより後の時刻ｔ１０において、シフトフロック信号ＳＣＬＫの立ち上がりに同期して、制御対象ネットＡをロウレベルへ遷移させている。
【０１１７】
以降、同様にして、シフトクロック信号ＳＣＬＫの立ち下がりに同期して、フリップフロップ回路ＳＦＦ−１、ＳＦＦ−２の出力は遷移し、図１４（Ｂ）および（Ｃ）に示す波形となる。一方、論理回路ＬＧＣ−Ａはシフトクロック信号ＳＣＬＫの立ち上がりに同期して、制御対象ネットＡを遷移させ、図１４（Ｄ）に示す波形となる。
【０１１８】
図１４（Ｄ）から理解されるように、制御対象ネットＡは、ハイレベルへ遷移している期間が、ほぼ３０ｎｓであり、ロウレベルへ遷移している期間が、ほぼ６０ｎｓとなる。そのため、制御対象ネットＡにおける波形は、ハイレベルの期間とロウレベルの期間が、同じ時間、すなわちデューティ比が５０％の方形波となっていない。一般的に、方形波の周波数スペクトルは、デューティ比が５０％から離れるほど、高調波成分が増加する。発光解析においては、短周期テストパタンを繰り返し印加した時のループ周期に相当する周波数成分（基本波の周波数成分）に比べて、高調波成分が多くなると、この高調波成分がノイズとなり、基本波の周波数成分がノイズに埋もれてしまい、検出感度が低下することになる。
【０１１９】
実施の形態４においては、制御対象ネットＡにおける波形が、デューティ比５０％の方形に近づくように、短周期テストパタンに対して、ダミーサイクルが挿入される。
【０１２０】
図１５は、実施の形態４に係わる発光解析装置１の動作を示す波形図である。図１５において、横軸は時間（ｎｓ）を示し、縦軸は電圧を示している。ここで、図１５（Ａ）は、テスト装置３００１から出力されるシフトクロック信号ＳＣＬＫの波形を示している。図１５（Ｂ）および（Ｃ）は、上記した特定のフリップフロップ回路ＳＦＦ−１およびＳＦＦ−２の出力波形を示している。また、図１５（Ｄ）は、図１４（Ｄ）と同様に、制御対象ネットＡにおける波形を示している。
【０１２１】
特定のフリップフロップ回路ＳＦＦ−１、ＳＦＦ−２には、図１４（Ｂ）および（Ｃ）のときと同じテスト値が、前段のフリップフロップ回路から出力されている。実施の形態４では、時刻３０ｎｓ、１２０ｎｓおよび２１０ｎｓのそれぞれにおいて、ダミーサイクルが挿入されている。それぞれのダミーサイクルにおいては、シフトクロック信号ＳＣＬＫを停止し、チェイン（ｃｈａｉｎ）１およびチェイン（ｃｈａｉｎ）２には、直前のサイクルの状態値（論理値）をテスト値として維持（踏襲）する。このダミーサイクルが、短周期テストパタンに挿入され、テスト装置３００１に提供される。これにより、図１５に示すような波形となる。
【０１２２】
すなわち、時刻３０ｎｓ、１２０ｎｓおよび２１０ｎｓで、ダミーサイクルを挿入しているため、これらの時刻において、シフトクロック信号ＳＣＬＫは変化していない。時刻３０ｎｓを例にして述べると、時刻ｔ１０において、シフトクロック信号ＳＣＬＫは立ち上がりが発生していない。シフトクロック信号ＳＣＬＫの立ち上がりは、時刻６０ｎｓと時刻９０ｎｓとの間の時刻ｔ２０において発生する。このシフトクロック信号ＳＣＬＫの立ち上がり（時刻ｔ２０）に同期して、制御対象ネットＡは、ロウレベルへ遷移する。これにより、図１５（Ｄ）に示すように、制御対象ネットＡがハイレベルとなっている期間は、ほぼ６０ｎｓとなり、ロウレベルとなっている期間も、ほぼ６０ｎｓとなる。その結果、制御対象ネットＡにおける波形は、ハイレベル期間とロウレベル期間が等しい、５０％デューティ比の方形波となる。すなわち、ダミーサイクルは、制御対象ネットＡに遷移動作を発生させず、制御対象ネットＡは、直前の状態を維持することになる。これにより、制御対象ネットＡの遷移動作によって発生する波形を、５０％デューティ比の方形波に近づけることが可能となる。
【０１２３】
なお、この場合、ダミーサイクルを短周期テストパタンに挿入したため、短周期テストパタンは、その１周期が、１２０ｎｓとなり、短周期テストパタンは、ダミーサイクルを含めた４サイクル（３０ｎｓ／１サイクル）を含むことになる。
【０１２４】
実施の形態３を例にして説明したが、勿論、実施の形態１および２に係わる発光解析装置１にも適用することが可能である。
【０１２５】
この実施の形態４によれば、制御対象ネットＡにおける波形が、デューティ比５０％の方形波になるため、高調波成分を低減することが可能となり、検出感度の向上を図ることが可能となる。
【０１２６】
発光解析装置１による故障解析は、スキャンチェイン等の外部制御か容易で、周波数が高い回路以外には、適していないと考えられていたが、実施の形態１〜４によれば、論理回路へも適用することが可能となる。
【０１２７】
故障箇所特定方法と言う観点で見た場合、スキャンチェインのチェイン長よりも短いテストパタンが、テストパタン生成工程において、テストパタン生成装置３００３により生成される。また、生成された短いテストパタンは、テストパタン印加工程において、周期的に繰り返し、スキャンチェインに印加されることになる。このとき、半導体装置１０００からの光（レーザ光）を基にして、故障箇所の特定が行われる。また、故障診断により、半導体装置１０００の領域から、予め故障箇所に対応するネットに相当する故障候補ネットが求められる。さらに、短いテストパタンを生成する際には、テストパタン生成工程において、周期探索処理およびマッチング処理が行われる。さらに、短いテストパタンには、実施の形態４で述べたように、ダミーサイクルが挿入される。
【０１２８】
実施の形態１〜４では、ＳＴＩＬによって記述された短周期テストパタンを、テストパタン記憶装置３０００（図３）に格納する例を説明したが、これに限定されるものではない。テストパタン記憶装置３０００に格納される短周期テストパタンの形式は、テストパタン記憶装置３０００から提供されたとき、テスト装置３００１が解釈し、実行することが可能な他の形式であってもよい。例えば、短周期テストパタンは、ＷＧＬ（Ｗａｖｅｆｏｒｍ  Ｇｅｎｅｒａｔｉｏｎ  Ｌａｎｇｕａｇｅ）によって記述した形式であってもよい。
【０１２９】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１３０】
１  発光解析装置
１０００  半導体装置
１００３  レーザ光源
１００５  スペクトルアナライザ
１００６  コンピュータ
ＬＧＣ、ＬＧＣ−Ａ  論理回路
ＳＣＮ  スキャンチェイン
ＳＣＬＫ  シフトクロック信号
ＳＦＦ、ＳＦＦ１〜ＳＦＦｐ  フリップフロップ回路
３０００  テストパタン記憶装置
３００１  テスト装置
３００２  故障診断装置
３００３  テストパタン生成装置
３００４  故障解析装置
【図１】
2017072542.tif 000003
【図２】
2017072542.tif 000004
【図３】
2017072542.tif 000005
【図４】
2017072542.tif 000006
【図５】
2017072542.tif 000007
【図６】
2017072542.tif 000008
【図７】
2017072542.tif 000009
【図８】
2017072542.tif 000010
【図９】
2017072542.tif 000011
【図１０】
2017072542.tif 000012
【図１１】
2017072542.tif 000013
【図１２】
2017072542.tif 000014
【図１３】
2017072542.tif 000015
【図１４】
2017072542.tif 000016
【図１５】
2017072542.tif 000017