(57)【要約】【課題】デバイスのテスタ測定時に不良調査ポイントの一つである不良発生箇所の特定を行うことで、故障回路の解析を容易にすることを課題とする。【解決手段】試験パターンを入力したきの半導体回路の出力パターンがパスするパス条件とフェイルするフェイル条件とを途中で切り替えて動作させる動作ステップと、半導体回路を動作させたときの出力パターンを基に半導体回路の故障箇所を特定する特定ステップとを有する半導体回路の検査方法が提供される。【選択図】        図４
2004301526.tif 000002
【特許請求の範囲】
【請求項１】
試験パターンを入力したときの半導体回路の出力パターンがパスするパス条件とフェイルするフェイル条件とを途中で切り替えて動作させる動作ステップと、
前記半導体回路を動作させたときの出力パターンを基に半導体回路の故障箇所を特定する特定ステップとを有する半導体回路の検査方法。
【請求項２】
さらに、前記半導体回路の動作の際に出力パターンがファーストフェイルする箇所を検出する検出ステップを有し、
前記特定ステップは、前記パス条件及びフェイル条件を切り替える箇所を変化させた際に前記ファーストフェイルの箇所が変化する前記切り替え箇所を検出し、該切り替え箇所を基に半導体回路の故障箇所を特定する請求項１記載の半導体回路の検査方法。
【請求項３】
前記動作ステップは、パス条件からフェイル条件へ途中で切り替えて動作させ、
前記特定ステップは、前記パス条件からフェイル条件へ切り替える箇所を変化させた際に前記ファーストフェイルの箇所が変化する前記切り替え箇所を検出し、該切り替え箇所を故障動作開始箇所として半導体回路の故障箇所を特定する請求項２記載の半導体回路の検査方法。
【請求項４】
前記動作ステップは、フェイル条件からパス条件へ途中で切り替えて動作させ、
前記特定ステップは、前記フェイル条件からパス条件へ切り替える箇所を変化させた際に前記ファーストフェイルの箇所が変化する前記切り替え箇所を検出し、該切り替え箇所を故障動作終了箇所として半導体回路の故障箇所を特定する請求項２記載の半導体回路の検査方法。
【請求項５】
前記特定ステップは、前記パス条件からフェイル条件へ切り替える箇所を変化させた際に前記ファーストフェイルの箇所が変化する前記切り替え箇所を故障動作開始箇所として検出し、前記フェイル条件からパス条件へ切り替える箇所を変化させた際に前記ファーストフェイルの箇所が変化する前記切り替え箇所を故障動作終了箇所として検出し、半導体回路の故障箇所を特定する請求項２記載の半導体回路の検査方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体回路の検査方法に関し、特に半導体回路に試験パターンを入力して故障箇所の特定を行う方法に関する。
【０００２】
【従来の技術】
図２は、従来技術によるＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）不良解析方法を示す図である。まず、ステップ２０１にて、トラブルが発生するとする。次に、ステップ２０２において、検証を行い、例えばフェイル情報や論理動作等を基に故障起因を推測する。この検証は、ＬＳＩ回路に試験パターンを入力し、その出力パターンがパス（正常）又はフェイル（異常）のいずれであるかを検証する。ステップ２０３において、「フェイルアドレス×ＬＳＩの回路規模」の数だけ、故障可能性を検証する。フェイルアドレスは、ＬＳＩ回路の出力端子の出力パターンがフェイルするアドレスである。アドレスは、パターン数（クロック数）であり、パターンの時間的場所に相当する。故障発生アドレスは、故障発生回路でフェイルが発生するアドレスである。次に、ステップ２０４にて検証を行い、ステップ２０５にて故障要因を特定する。ステップ２０５の故障要因は、例えば電源ショート、信号線ショート又は断線等である。ステップ２０６では、故障起因を再検証し、ステップ２０３に戻る。ステップ２０５にて故障要因が特定されると、ステップ２０７にてＬＳＩのデバイス動作の不具合が再現され、ステップ２０８にてＬＳＩの不良解析が終了する。
【０００３】
上記のように、シミュレーションにより、フェイルする出力端子（フェイル端子）とフェイルパターンがデバイス評価結果と一致するまで、繰り返し行う。この故障解析時間は、次式のようになる。
【０００４】
故障解析時間＝フェイル量（フェイル端子×フェイルアドレス）×論理動作（信号変化割合）×回路規模×解析者の経験値
【０００５】
上記の解析情報の検証を進めていく事で、「故障発生回路」及び「故障発生パターン」を絞り込んでいく。論理動作は、調査対象回路において信号変化割合が少ない（信号固定端子が多い）程、故障解析は容易に行うことが出来る。故障解析時間は、個人の解析経験に大きく左右されてしまう。現状では、最新テクノロジーになるほど（回路規模、パターン数の増大）、解析時間も膨大なものとなっている。
【０００６】
上記の解析手法では、ＬＳＩテスタで測定を行い、そこから得られる情報（フェイル情報等）から様々な状況を想定したシミュレーションを繰り返し行うことで、故障箇所の検証を進め、特定していく。したがって、調査のポイントとしては、「不良発生回路の推定」及び「不良発生アドレスの特定」が重要となっている。しかしながら、近年ではゲート数やパターン数の増加にともない、解析時間が増加したばかりでなく、不良起因を明確に特定することさえ困難な状況となってきている。
【０００７】
不良解析は、最終的には「不良発生回路の特定」を目的としているが、ファーストフェイルアドレスが不具合発生のアドレスであることは少なく、大抵は外部出力端子に出力値となって現れる遥か前のアドレスにて故障が発生している。このため、ファーストフェイルアドレスだけを頼りに故障発生回路を探すのは非常に困難な作業となっており、解析時間は解析者のスキルに左右されるところが大きい。
【０００８】
また、下記の特許文献１が公開されている。
【０００９】
【特許文献１】
特開平９−３０４４８６号公報
【００１０】
【発明が解決しようとする課題】
本発明は、デバイスのテスタ測定時に不良調査ポイントの一つである「不良発生アドレスの特定」を行うことで、不良発生の分析を容易にすることを目的とする。
【００１１】
【課題を解決するための手段】
本発明の一観点によれば、試験パターンを入力したときの半導体回路の出力パターンがパスするパス条件とフェイルするフェイル条件とを途中で切り替えて動作させる動作ステップと、半導体回路を動作させたときの出力パターンを基に半導体回路の故障箇所を特定する特定ステップとを有する半導体回路の検査方法が提供される。
【００１２】
出力パターンのファーストフェイル箇所の他、故障動作開始箇所及び／又は故障動作終了箇所を検出することができる。故障動作範囲を特定することができるので、解析者のスキル依存度を軽減した不良解析を行うことができる。また、故障解析に要する時間を短縮することができる。また、これまで解析できなかったスキャンチェーン不良の故障解析が可能になる。
【００１３】
【発明の実施の形態】
図１は、本発明の実施形態によるＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）不良解析方法を示す図である。まず、ステップ１０１にて、トラブルが発生するとする。
次に、ステップ１０２において、検証を行い、例えばフェイル情報や論理動作等を基に故障起因を推測する。この検証は、ＬＳＩ回路に試験パターンを入力し、その出力パターンがパス（正常）又はフェイル（異常）のいずれであるかを検証する。ステップ１０３において、故障発生回路及びその経路を基に目的の出力端子（フェイルアドレス）まで信号が伝搬されるタイミングを考える。フェイルアドレスは、ＬＳＩ回路の出力端子の出力パターンがフェイルするアドレスである。アドレスは、パターン数（クロック数）であり、パターンの時間的場所に相当する。故障発生アドレスは、故障発生回路でフェイルが発生するアドレスである。次に、ステップ１０４にて検証を行い、ステップ１０５にて故障要因を特定する。ステップ１０５の故障要因は、例えば電源ショート、信号線ショート又は断線等である。ステップ１０６では、故障起因を再検証し、ステップ１０３に戻る。ステップ１０５にて故障要因が特定されると、ステップ１０７にてＬＳＩのデバイス動作の不具合が再現され、ステップ１０８にてＬＳＩの不良解析が終了する。なお、ステップ１０２までの処理はテスタで検証し、ステップ１０３以降の処理はシミュレーションにより検証する。
【００１４】
上記のように、シミュレーションにより、フェイルする出力端子（フェイル端子）とフェイルパターンがデバイス評価結果と一致するまで、繰り返し行う。この故障解析時間は、次式のようになる。
【００１５】
故障解析時間＝フェイル量（フェイル端子×フェイルアドレス）×論理動作（信号変化割合）×故障発生アドレスが示す回路群
【００１６】
上記の解析情報の検証を進めていく事で、「故障発生回路」及び「故障発生パターン」を絞り込んでいく。故障発生パターンが判れば故障発生回路の候補を大幅に絞り込めるので、解析時間の短縮が可能となる。また、解析経験にもそれほど左右されず、故障回路を特定できる様になる。
【００１７】
次に、解析例を説明する。故障発生アドレスが１５５パターン目、ファーストフェイルアドレスが１６０パターン目の場合を説明する。「ファーストフェイルアドレス−故障発生アドレス＝５パターン」ということは、フリップフロップ（ＦＦ）×５個分前の回路で異常信号が発生している可能性が高い。故に、ＦＦ×５個分前の回路に該当する箇所のみ信号をスタックすれば、故障回路の特定が可能となる。以下、より具体的な説明を行う。
【００１８】
図３は、出力端子ＯＵＴにフリップフロップＦＦ１〜ＦＦ２３がシリアル接続された回路を示す。フリップフロップは、出力端子ＯＵＴ側から数えて第１段目のフリップフロップＦＦ１、第２段目のフリップフロップＦＦ２、・・・、第２３段目のフリップフロップＦＦ２３が順にシリアル接続されている。なお、論理積（ＡＮＤ）回路３０１は、フリップフロップＦＦ２２及びＦＦ２１の間に接続されている。フリップフロップＦＦ１〜ＦＦ２３は、端子Ｄに入力された信号をクロックＣＫで同期をとって端子Ｑから出力する。フリップフロップＦＦ２３の端子Ｄに入力されたパターンは、フリップフロップＦＦ２２、ＡＮＤ回路３０１、フリップフロップＦＦ２１等に順次伝播され、出力端子ＯＵＴに到達する。フリップフロップＦＦ１〜ＦＦ２３は、１パターン（１周期）で、１回のクロック動作を行うと仮定する。
【００１９】
例えば、２２８パターン目でフリップフロップＦＦ２２のクロックＣＫが遅れたことにより、次段のＡＮＤ回路３０１でクロックスキューによるハザードが発生したとする。すなわち、クロックＣＫの配線遅延によりクロックＣＫの位相ずれが生じ、フリップフロップＦＦ２２の出力タイミングがずれてしまう。これにより、ＡＮＤ回路３０１は、２入力の信号タイミングがずれて、出力がフェイルになってしまう。さらに、２２９パターン目で、その次段のフリップフロップＦＦ２１がそのフェイル出力を取り込んで出力してしまう。結果的に、フリップフロップＦＦ２１の出力がフェイルになる。このフリップフロップＦＦ２１の出力が出力端子ＯＵＴに伝播するタイミングを考慮すると、２５０パターン目に最初のフェイル状態（ファーストフェイル）が出力される。
【００２０】
本実施形態では、故障動作開始アドレス及び故障動作終了アドレスを検出する。アドレスは、パターン数（クロック数）であり、パターンの時間的場所に相当する。故障動作開始アドレスは、故障動作開始回路であるフリップフロップＦＦ２２で故障動作するアドレスであり、例えば２２８パターン目として検出される。故障動作終了アドレスは、故障動作終了回路であるフリップフロップＦＦ２１で故障動作するアドレスであり、例えば２２９パターン目として検出される。この検出方法の詳細は、後に図４を参照しながら説明する。
【００２１】
この場合、故障動作開始回路は、次式により求められる。
（ファーストフェイル）−（故障動作開始アドレス）
＝２５０−２２８＝２２
すなわち、出力端子ＯＵＴから２２段目のフリップフロップＦＦ２２が故障動作開始回路であるとして特定することができる。
【００２２】
また、故障動作終了回路は、次式により求められる。
（ファーストフェイル）−（故障動作終了アドレス）
＝２５０−２２９＝２１
すなわち、出力端子ＯＵＴから２１段目のフリップフロップＦＦ２１が故障動作終了回路であるとして特定することができる。
【００２３】
ファーストフェイル（２５０パターン目）から数えて、２１クロック手前のフリップフロップＦＦ２１から２２クロック手前のフリップフロップＦＦ２２までの間で、問題が発生している可能性が高い。なお、この途中にＲＡＭ又はＲＯＭがないものとする。
【００２４】
その後、フリップフロップＦＦ２１からＦＦ２２までの間の動作において、２２８〜２２９パターン目の部分を調査することにより、故障原因を特定することができる。
【００２５】
図４は、故障動作開始アドレス及び故障動作終了アドレスの検出方法を示す。
故障動作開始アドレス４０１が２２８パターン目、故障動作終了アドレス４０２が２２９パターン目であることを検出する方法を示す。故障動作開始アドレス４０１から故障動作終了アドレス４０２までの故障動作範囲４０３がフェイル動作する部分であり、その他の部分はパス動作する部分である。故障動作範囲４０３の信号が出力端子ＯＵＴに伝播し、出力端子ＯＵＴでは２５０パターン目以降がフェイルになる。
【００２６】
例えば、高電圧での電源マージン不良の場合を説明する。下式のように、電源電圧３Ｖのときはパスし、電源電圧が３．６Ｖのときは図３のようにフェイルするとする。パスとフェイルの境界電源電圧が３．３Ｖであるとする。この際、出力端子ＯＵＴに検出されたファーストフェイルは２５０パターン目とする。ここで、故障動作箇所は２２８〜２２９パターン目だけであると仮定する。また、本実施形態では、測定デバイスにパス条件（例えば３Ｖ）が存在することが絶対条件となる。
【００２７】
パス／フェイルの境界電圧＝３．３Ｖ
パス電圧条件＝３Ｖ
フェイル電圧条件＝３．６Ｖ
ファーストフェイルパターン＝２５０パターン目
【００２８】
（１）故障動作開始アドレス４０１の検出方法
条件遷移４１１に示すように、パス動作からフェイル動作に変化するアドレスを検出する。そのアドレスが故障動作開始アドレス４０１になる。例えば、故障動作範囲４０３が２２８〜２２９パターン目にある場合においては、２２８パターン目以降をフェイル条件（３．６Ｖ動作）にすることで、２５０パターン目以降のフェイルが再現可能となる。故障動作範囲４０３は、フェイル条件のときにはフェイル動作し、パス条件（３Ｖ動作）のときにはパス動作する。
故に、最初のパターンからパス条件→フェイル条件にてサーチした時、ファーストフェイルが変化するパターンこそが、回路内部での故障動作開始アドレス４０１であると判断することができる。
【００２９】
（２）故障動作終了アドレス４０２の検出方法
上記の（１）のパス→フェイル動作解析と反対のフェイル→パス動作解析を行うことで、故障動作終了アドレス４０２を求めることができる。例えば、内部故障動作範囲４０３が２２８〜２２９パターン目にある場合においては、２２９  パターン目以前をフェイル条件（３．６Ｖ動作）にすることで、２５０パターン目以降のフェイルが再現可能となる。
故に、最初のパターンからフェイル条件→パス条件にてサーチした時、最初に２５０パターン目でフェイルしだすパターンこそが、内部回路での故障動作終了アドレス４０２と判断することができる。なお、フェイル範囲が１  パターンである場合は、故障動作終了アドレスが故障動作開始アドレスともなる。
【００３０】
（３）故障動作範囲（フェイル範囲）４０３の検出方法
上記の（１）の故障動作開始アドレス４０１及び（２）の故障動作終了アドレス４０２の解析を行うことで、故障動作範囲４０３を求めることができる。故障箇所が複数回路の組み合わせで発生する場合、数パターンかけてフェイル状態が発生することがある。一箇所だけでエラーが発生・伝搬する場合は、故障動作の開始アドレスと終了アドレスは同じになると判断される。
【００３１】
（４）故障動作範囲４０３に対する調査
ここでは、電源マージン不良解析を例に挙げているが、設定変更によりデバイスをパスさせることが可能であれば、タイミング、ハザード、周波数依存のマージン不良等の解析にも適用が可能である。
【００３２】
以上のように、この解析手法は、パス条件とフェイル条件を切り替えながら解析を行う手法となっている。以下、上記の解析手順例を挙げる。
【００３３】
まず、デバイスのパス条件及びフェイル条件を設定し、特定パターンアドレスを境にパス条件及びフェイル条件を切り替える。このとき、パス条件及びフェイル条件は固定条件とする。例えば、パス電源電圧＝３．３Ｖ、フェイル電源電圧＝３．６Ｖに設定する。
【００３４】
次に、故障発生ポイントを特定するため、パス→フェイルのアドレスをサーチし、フェイル→パスのアドレスをサーチする。基本的に、サーチの方向はアドレス昇順及び降順のどちらでも可能である。
【００３５】
パス→フェイルのアドレスサーチは、内部故障動作範囲（故障発生ポイント）４０３の故障動作開始アドレス４０１を検出することができる。フェイル→パスのアドレスサーチは、故障動作終了アドレス４０２を検出することができる。
【００３６】
次に、故障動作範囲４０３が判明したのであれば、そこからファーストフェイルまで何クロック叩かれているかをカウントし、該当回路の特定を図る。例えば、出力端子ＯＵＴから２１〜２２段逆上ったフリップフロップＦＦ２１〜ＦＦ２２付近に問題があると特定することができる。
【００３７】
次に、故障指定された回路に対し、該当パターンにおける信号をモニターすることにより、不具合発生原因を分析することが可能となる。
【００３８】
図５は、故障動作開始アドレス４０１のサーチ処理を示すフローチャートである。ステップＳ５０１では、パス電圧及びフェイル電圧の設定を行い、パターン変数Ｙに０をセットする。例えば、パス電圧は３Ｖであり、フェイル電圧は３．６Ｖである。次に、ステップ５０２では、ファーストフェイルをストップパターンＳに設定する。例えば、ファーストフェイルは２５０パターン目である。次に、ステップＳ５０３では、変数ＸにＳ／１０をセットする。次に、ステップＳ５０４では、変数ＹにＸを加算する。次に、ステップＳ５０５では、Ｙパターン目で、パス電圧からフェイル電圧に変更する。次に、ステップＳ５０６では、ファーストフェイルパターンがフェイルか否かをチェックする。例えば、２５０パターン目がフェイルか否かをチェックする。フェイルであればステップＳ５０４へ戻り、パスであればステップＳ５０７へ進む。
【００３９】
ステップＳ５０７では、変数Ｘが９より大きいか否かをチェックする。大きければステップＳ５０８へ進み、大きくなければステップＳ５１０へ進む。ステップＳ５０８では、変数Ｙに対して変数Ｘを減算する。次に、ステップＳ５０９では、変数Ｘに対して１／１０を乗じる。その後、ステップＳ５０４へ戻る。
【００４０】
ステップＳ５１０では、変数Ｘが１か否かをチェックする。１であればステップＳ５１３へ進み、１でなければステップＳ５１１へ進む。ステップＳ５１１では、変数Ｙに対して変数Ｘを減算する。次に、ステップＳ５１２では、変数Ｘに１をセットする。その後、ステップＳ５０４へ戻る。
【００４１】
ステップＳ５１３では、Ｙパターン目が故障（不具合）発生パターンとして設定する。この故障発生パターンが故障動作開始アドレス４０１として検出される。以上で、検出処理を終了する。
【００４２】
以上のように、パス条件からフェイル条件へ切り替えるアドレスを変化させた際にファーストフェイルのアドレスが変化する上記切り替えアドレスをサーチすることにより、故障動作開始アドレス４０１を検出することができる。ステップＳ５０２では、ストップアドレスの設定を行う。これは、アドレスサーチ時間を短縮する為の処理である。ファーストフェイルアドレスで区切るより、フェイル内容の比較を行った方が正確な解析ができる。ただし、ファーストフェイルアドレス判定だけでも十分な効果は得られる。
【００４３】
また、ステップＳ５０９では、パターン分割を行っている。調査パターンを更に１／１０にパターン分割することにより、時間短縮を図ることができる。ただし、１／１０という数字に限定されない。適度に分割することにより効果がある。また、ステップＳ５０５では、パス条件からフェイル条件への切り替えを行い、故障動作開始アドレスをサーチする。
【００４４】
図６（Ａ）〜（Ｆ）は、図５の具体的な処理過程を示すフローチャートである。図６（Ａ）は第１回目の処理を示す。ステップＳ６０１〜Ｓ６０６は、図５のステップＳ５０１〜Ｓ５０６に対応する。まず、ステップＳ６０１では、パス電源電圧として３Ｖ、フェイル電源電圧として３．６Ｖを設定し、変数Ｙに０をセットする。次に、ステップＳ６０２では、ファーストフェイルが２５０パターンであるので、ストップパターンＳに２５０をセットする。次に、ステップＳ６０３では、変数Ｘ＝Ｓ／１０＝２５０／１０＝２５をセットする。次に、ステップＳ６０４では、変数Ｙ＝Ｙ＋Ｘ＝０＋２５＝２５をセットする。次に、ステップＳ６０５では、Ｙ（＝２５）パターン目でパス電源電圧（３Ｖ）からフェイル電源電圧（３．６Ｖ）に変更する。次に、ステップＳ６０６では、ファーストフェイルの２５０パターン目がフェイルか否かをチェックする。フェイルであるので、図６（Ｂ）のステップＳ６１４に移行する。
【００４５】
図６（Ｂ）は、第２回目の処理を示す。ステップＳ６１４からＳ６１６は、図５のステップＳ５０４〜Ｓ５０６に対応する。ステップＳ６１４では、変数Ｙ＝Ｙ＋Ｘ＝２５＋２５＝５０をセットする。次に、ステップＳ６１５では、Ｙ（＝５０）パターン目でパス電源電圧（３Ｖ）からフェイル電源電圧（３．６Ｖ）に変更する。次に、ステップＳ６１６では、ファーストフェイルの２５０パターン目がフェイルか否かをチェックする。フェイルであるので、上記の処理を繰り返す。
【００４６】
図６（Ｃ）は、第１０回目の処理を示す。ステップＳ６２４からＳ６２９は、図５のステップＳ５０４〜Ｓ５０９に対応する。ステップＳ６２４では、変数Ｙ＝Ｙ＋Ｘ＝２２５＋２５＝２５０をセットする。次に、ステップＳ６２５では、Ｙ（＝２５０）パターン目でパス電源電圧（３Ｖ）からフェイル電源電圧（３．６Ｖ）に変更する。次に、ステップＳ６２６では、ファーストフェイルの２５０パターン目がフェイルか否かをチェックする。パスであるので、ステップＳ６２７へ進む。ステップＳ６２７では、変数Ｘ（＝２５）＞９の条件を満たすので、ステップＳ６２８へ進む。ステップＳ６２８では、変数Ｙ＝Ｙ−Ｘ＝２５０−２５＝２２５をセットする。次に、ステップ６２９では、変数Ｘ＝Ｘ／１０＝２５／１０＝２（小数点以下切り捨て）をセットする。次に、図６（Ｄ）のステップＳ６３４へ進む。
【００４７】
図６（Ｄ）は、第１１回目の処理を示す。ステップＳ６３４からＳ６３６は、図５のステップＳ５０４〜Ｓ５０６に対応する。ステップＳ６３４では、変数Ｙ＝Ｙ＋Ｘ＝２２５＋２＝２２７をセットする。次に、ステップＳ６３５では、Ｙ（＝２２７）パターン目でパス電源電圧（３Ｖ）からフェイル電源電圧（３．６Ｖ）に変更する。次に、ステップＳ６３６では、ファーストフェイルの２５０パターン目がフェイルか否かをチェックする。フェイルであるので、図６（Ｅ）のステップＳ６４４へ進む。
【００４８】
図６（Ｅ）は、第１２回目の処理を示す。ステップＳ６４４からＳ６５２は、図５のステップＳ５０４〜Ｓ５１２に対応する。ステップＳ６４４では、変数Ｙ＝Ｙ＋Ｘ＝２２７＋２＝２２９をセットする。次に、ステップＳ６４５では、Ｙ（＝２２９）パターン目でパス電源電圧（３Ｖ）からフェイル電源電圧（３．６Ｖ）に変更する。次に、ステップＳ６４６では、ファーストフェイルの２５０パターン目がフェイルか否かをチェックする。パスであるので、ステップＳ６４７へ進む。ステップＳ６４７では、変数Ｘ（＝２）＞９の条件を満たさないので、ステップＳ６５０へ進む。ステップＳ６５０では、変数Ｘ（＝２）＝１の条件を満たさないので、ステップＳ６５１へ進む。ステップＳ６５１では、変数Ｙ＝Ｙ−Ｘ＝２２９−２＝２２７をセットする。次に、ステップＳ６５２では、変数Ｘに１をセットする。その後、図６（Ｆ）のステップＳ６６４へ進む。
【００４９】
図６（Ｆ）は、第１３回目の処理を示す。ステップＳ６６４からＳ６７３は、図５のステップＳ５０４〜Ｓ５１３に対応する。ステップＳ６６４では、変数Ｙ＝Ｙ＋Ｘ＝２２７＋１＝２２８をセットする。次に、ステップＳ６６５では、Ｙ（＝２２８）パターン目でパス電源電圧（３Ｖ）からフェイル電源電圧（３．６Ｖ）に変更する。次に、ステップＳ６６６では、ファーストフェイルの２５０パターン目がフェイルか否かをチェックする。パスであるので、ステップＳ６６７へ進む。ステップＳ６６７では、変数Ｘ（＝１）＞９の条件を満たさないので、ステップＳ６７０へ進む。ステップＳ６７０では、変数Ｘ（＝１）＝１の条件を満たすので、ステップＳ６７３へ進む。ステップＳ６７３では、Ｙ（＝２２８）パターン目を故障発生パターン（故障動作開始アドレス）として決定する。
【００５０】
上記の図５及び図６（Ａ）〜（Ｆ）は故障動作開始アドレスの検出方法を示したが、故障動作終了アドレスも同様に検出することができる。故障動作終了アドレス検出では、フェイル条件からパス条件へ切り替えて解析を行うことにより、故障動作終了アドレスを特定することができる。
【００５１】
これにより、パス→フェイル条件（動作）の切り替え、及びフェイル→パス条件（動作）の切り替えを行うことにより、故障動作開始アドレス及び故障動作終了アドレスを特定することができ、結果として故障動作範囲を特定することができる。
【００５２】
図７は、故障箇所が複数ある場合の故障発生アドレス解析方法を示す。このＬＳＩは、２個の出力端子ＯＵＴＡ及びＯＵＴＢを有する。出力端子ＯＵＴＡには、フリップフロップＡＦＦ１〜ＡＦＦ２３がシリアル接続されている。フリップフロップは、出力端子ＯＵＴＡ側から数えて第１段目のフリップフロップＡＦＦ１、第２段目のフリップフロップＡＦＦ２、・・・、第２３段目のフリップフロップＡＦＦ２３が順にシリアル接続されている。なお、ＡＮＤ回路７０１は、フリップフロップＡＦＦ２２及びＡＦＦ２１の間に接続されている。
【００５３】
出力端子ＯＵＴＢには、フリップフロップＢＦＦ１〜ＢＦＦ３１がシリアル接続されている。フリップフロップは、出力端子ＯＵＴＢ側から数えて第１段目のフリップフロップＢＦＦ１、第２段目のフリップフロップＢＦＦ２、・・・、第３１段目のフリップフロップＢＦＦ３１が順にシリアル接続されている。なお、ＡＮＤ回路７０２は、フリップフロップＢＦＦ３０及びＢＦＦ２９の間に接続されている。
【００５４】
フリップフロップは、端子Ｄに入力された信号をクロックＣＫで同期をとって端子Ｑから出力し、１パターン（１周期）で１回のクロック動作を行うと仮定する。
【００５５】
まず、出力端子ＯＵＴＢをマスクして出力端子ＯＵＴＡの解析を行う。すなわち、出力端子ＯＵＴＢの出力パターンを無視し、出力端子ＯＵＴＡの出力パターンの解析を行う。フリップフロップＡＦＦ２２が故障動作開始回路に相当し、フリップフロップＡＦＦ２１が故障動作終了回路に相当する。出力端子ＯＵＴＡは、フリップフロップＡＦＦ２１のフェイルを２５０パターン目のフェイルとして出力する。フリップフロップＡＦＦ２２のクロックスキューによりＡＮＤ回路７０１にハザードが発生したとする。ファーストフェイル、故障動作開始アドレス及び故障動作終了アドレスは、以下の値として検出されたとする。
【００５６】
ファーストフェイル＝２５０パターン目
故障動作開始アドレス＝２２８パターン目
故障動作終了アドレス＝２２９パターン目
【００５７】
この場合、故障動作開始回路は、次式により求められる。
（ファーストフェイル）−（故障動作開始アドレス）
＝２５０−２２８＝２２
すなわち、出力端子ＯＵＴＡから２２段目のフリップフロップＡＦＦ２２が故障動作開始回路であるとして特定することができる。
【００５８】
また、故障動作終了回路は、次式により求められる。
（ファーストフェイル）−（故障動作終了アドレス）
＝２５０−２２９＝２１
すなわち、出力端子ＯＵＴＡから２１段目のフリップフロップＡＦＦ２１が故障動作終了回路であるとして特定することができる。
【００５９】
ファーストフェイル（２５０パターン目）から数えて、２１クロック手前のフリップフロップＡＦＦ２１から２２クロック手前のフリップフロップＡＦＦ２２までの間で、問題が発生している可能性が高い。なお、この途中にＲＡＭ又はＲＯＭがないものとする。
【００６０】
その後、フリップフロップＡＦＦ２１からＡＦＦ２２までの間の動作において、２２８〜２２９パターン目の部分を調査することにより、故障原因を特定することができる。
【００６１】
次に、出力端子ＯＵＴＡをマスクして出力端子ＯＵＴＢの解析を行う。すなわち、出力端子ＯＵＴＡの出力パターンを無視し、出力端子ＯＵＴＢの出力パターンを解析する。フリップフロップＢＦＦ３０が故障動作開始回路に相当し、フリップフロップＢＦＦ２９が故障動作終了回路に相当する。出力端子ＯＵＴＢは、フリップフロップＢＦＦ２９のフェイルを２５０パターン目のフェイルとして出力する。フリップフロップＢＦＦ３０のクロックスキューによりＡＮＤ回路７０２にハザードが発生したとする。ファーストフェイル、故障動作開始アドレス及び故障動作終了アドレスは、以下の値として検出されたとする。
【００６２】
ファーストフェイル＝２５０パターン目
故障動作開始アドレス＝２２０パターン目
故障動作終了アドレス＝２２１パターン目
【００６３】
この場合、故障動作開始回路は、次式により求められる。
（ファーストフェイル）−（故障動作開始アドレス）
＝２５０−２２０＝３０
すなわち、出力端子ＯＵＴＢから３０段目のフリップフロップＢＦＦ３０が故障動作開始回路であるとして特定することができる。
【００６４】
また、故障動作終了回路は、次式により求められる。
（ファーストフェイル）−（故障動作終了アドレス）
＝２５０−２２１＝２９
すなわち、出力端子ＯＵＴＢから２９段目のフリップフロップＢＦＦ２９が故障動作終了回路であるとして特定することができる。
【００６５】
ファーストフェイル（２５０パターン目）から数えて、２９クロック手前のフリップフロップＢＦＦ２９から３０クロック手前のフリップフロップＢＦＦ３０までの間で、問題が発生している可能性が高い。なお、この途中にＲＡＭ又はＲＯＭがないものとする。
【００６６】
その後、フリップフロップＢＦＦ２９からＢＦＦ３０までの間の動作において、２２０〜２２１パターン目の部分を調査することにより、故障原因を特定することができる。
【００６７】
上記のように、出力端子ＯＵＴＡ及びＯＵＴＢのファーストフェイルアドレスが同じであっても、故障箇所が複数の場合がある。この場合においても、故障動作開始／終了アドレス、範囲を求めることで、故障動作アドレスとフェイル出力端子の関係を絞り込むことができ、故障箇所の特定を容易に行うことが出来る。
【００６８】
例えば、２つの故障箇所があるとした場合、まず出力端子ＯＵＴＢをマスクして出力端子ＯＵＴＡでの故障発生アドレスを求める。次に、出力端子ＯＵＴＡをマスクして出力端子ＯＵＴＢでの故障発生アドレスを求める。この様な方法を用いることで、比較的容易に出力端子ＯＵＴＡ及びＯＵＴＢでの故障発生アドレスを特定することが出来る。
【００６９】
図８（Ａ）〜（Ｃ）は、従来のスキャンチェーン試験方法を示す。４個のスキャン機能付きフリップフロップＳＦＦ１〜ＳＦＦ４は、チェーン状にシリアル接続されている。各フリップフロップは、端子ＳＩに入力された信号をクロックＣＫで同期をとって端子ＳＯから出力する。なお、端子Ｑからは、図示しない端子Ｄに入力された信号がクロックＣＫで同期がとられて出力される。フリップフロップの端子ＳＯは、次段のフリップフロップの端子ＳＩに接続される。４個のフリップフロップＳＦＦ１〜ＳＦＦ４がある場合には、試験パターンは最低８パターン必要である。
【００７０】
図８（Ａ）において、フリップフロップＳＦＦ１の端子ＳＩに、パターン“１０１０１０１０”を入力すると、フリップフロップＳＦＦ４の端子ＳＯからはパターン“ＸＸＸＸＨＬＨＬ”が出力される。ここで、「Ｘ」は不定値、「Ｈ」はハイレベル（１）、「Ｌ」はローレベル（０）であるとする。４個のフリップフロップＳＦＦ１〜ＳＦＦ４のすべてにデータがセットされるまでは不定値Ｘが出力される。４個のフリップフロップＳＦＦ１〜ＳＦＦ４のすべてにデータがセットされた後は、端子ＳＩに入力したデータが出力される。端子ＳＩへの入力パターンは、最初の４パターンが各フリップフロップにデータをセットするためのものであり、後ろの４パターンはフリップフロップＳＦＦ４の出力端子ＳＯへデータを送り出すためのものである。
【００７１】
図８（Ｂ）は、フリップフロップＳＦＦ２の出力に異常がある場合を示す。フリップフロップＳＦＦ１の端子ＳＩにパターン“１０１０１０１０”を入力すると、フリップフロップＳＦＦ４の端子ＳＯからはパターン“ＸＸＸＸＸＸＸＸ”が出力される。この場合、フリップフロップＳＦＦ１からＳＦＦ２まではデータがセットされる。しかし、フリップフロップＳＦＦ２の出力以降はデータが壊れる。このため、フリップフロップＳＦＦ４までデータがセットされることがなく、フリップフロップＳＦＦ４の端子ＳＯの出力はいつまでも不定値Ｘのままである。
【００７２】
図８（Ｃ）は、フリップフロップＳＦＦ３の出力に異常がある場合を示す。フリップフロップＳＦＦ１の端子ＳＩにパターン“１０１０１０１０”を入力すると、フリップフロップＳＦＦ４の端子ＳＯからはパターン“ＸＸＸＸＸＸＸＸ”が出力される。この場合、フリップフロップＳＦＦ１からＳＦＦ３まではデータがセットされる。しかし、フリップフロップＳＦＦ３の出力以降はデータが壊れる。このため、フリップフロップＳＦＦ４までデータがセットされることがなく、フリップフロップＳＦＦ４の端子ＳＯの出力はいつまでも不定値Ｘのままである。
【００７３】
スキャンチェーン試験の場合、チェーンの途中で異常が発生したとしても、出力値は常に不定状態となるため、故障箇所（故障フリップフロップ）を特定することはできない。故に、パス領域が確認できない品種（ＬＳＩ）、或いは電源電圧でマージンレスとなる品種についての解析は、これまで解析困難とされていた。
【００７４】
図９（Ａ）及び（Ｂ）は、本実施形態によるスキャンチェーン試験方法を示す。４個のスキャン機能付きフリップフロップＳＦＦ１〜ＳＦＦ４は、チェーン状にシリアル接続されている。各フリップフロップは、端子ＳＩに入力された信号をクロックＣＫで同期をとって端子ＳＯから出力する。フリップフロップの端子ＳＯは、次段のフリップフロップの端子ＳＩに接続される。なお、端子Ｑからは、図示しない端子Ｄに入力された信号がクロックＣＫで同期がとられて出力される。
【００７５】
スキャンフリップフロップには、通常の端子Ｄ→Ｑの動作を期待するモードと、スキャン試験専用の端子ＳＩ→ＳＯの動作を期待するモードがある。これらのモードは、図示しない切り替え用端子の信号を“０”又は“１”に制御することにより切り替えられる。また、この切り替えは、データを端子Ｄ及び端子ＳＩのいずれかから入力するかの切り替えでもあるので、スキャン試験時の端子ＳＯ及び端子Ｑには端子ＳＩのデータが伝搬される。ただし、端子ＳＯ及び端子Ｑの出力信号切り替わり地点は、フリップフロップの構造から同じになるとは限らない。故に、スキャン動作中の端子Ｑからも、端子ＳＩから入力されたデータがクロックＣＫで同期がとられて出力される。
【００７６】
まず、図９（Ａ）に示すように、パス条件として電源電圧を３．０Ｖにして動作させる。フリップフロップＳＦＦ１の端子ＳＩに、パターン“１０１０”を入力すると、フリップフロップＳＦＦ４の端子ＳＯからはパターン“ＸＸＸＸ”が出力される。ここで、「Ｘ」は不定値である。４個のフリップフロップＳＦＦ１〜ＳＦＦ４のすべてにデータがセットされるまでは不定値Ｘが出力される。
【００７７】
次に、図９（Ｂ）に示すように、上記の全データ値をフリップフロップにホールドさせたまま、フェイル条件として電源電圧を３．３Ｖに設定変更して動作させる。ここで、フリップフロップＳＦＦ３の出力に異常がある場合を例に説明する。フリップフロップＳＦＦ１の端子ＳＩに、パターン“１０１０”を入力すると、フリップフロップＳＦＦ４の端子ＳＯからはパターン“ＨＸＸＸ”が出力される。ここで、「Ｘ」は不定値であり、「Ｈ」はハイレベル（１）である。
【００７８】
この出力値の並びは、ＳＦＦ４→ＳＦＦ３→ＳＦＦ２→ＳＦＦ１のホールド値の順番になる。この故障の場合では、フリップフロップＳＦＦ４しかデータが出力されていない。したがって、故障原因は、フリップフロップＳＦＦ３自体か、フリップフロップＳＦＦ３のＳＩ，ＳＯ，ＣＫラインの何れかに潜んでいるとの見当を付けることができる。
【００７９】
上記のように、電源電圧不良を起こしたデバイスの場合では、まず、図９（Ａ）に示すようにパス電源電圧でスキャンチェーンの全フリップフロップにデータのセットを行う。次に、図９（Ｂ）に示すように、フェイル電源電圧で、スキャンチェーンから図９（Ａ）でセットされたデータの出力を行う。フェイルアドレスを基に、どのフリップフロップで故障が発生しているかの特定を行うことができる。
【００８０】
このように、電源電圧マージンレスのようにパス領域が存在する場合に使用が限定されるが、フリップフロップＳＦＦ３の出力に異常があったとしても、図９（Ａ）のようにパス条件でデータのセットを行い、その後は図９（Ｂ）のようにフェイル条件でセットデータの送り出しをすることで故障フリップフロップを特定することができる。
【００８１】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００８２】
本発明の実施形態は、例えば以下のように種々の適用が可能である。
【００８３】
（付記１）試験パターンを入力したときの半導体回路の出力パターンがパスするパス条件とフェイルするフェイル条件とを途中で切り替えて動作させる動作ステップと、
前記半導体回路を動作させたときの出力パターンを基に半導体回路の故障箇所を特定する特定ステップとを有する半導体回路の検査方法。
（付記２）さらに、前記半導体回路の動作の際に出力パターンがファーストフェイルする箇所を検出する検出ステップを有し、
前記特定ステップは、前記パス条件及びフェイル条件を切り替える箇所を変化させた際に前記ファーストフェイルの箇所が変化する前記切り替え箇所を検出し、該切り替え箇所を基に半導体回路の故障箇所を特定する付記１記載の半導体回路の検査方法。
（付記３）前記動作ステップは、パス条件からフェイル条件へ途中で切り替えて動作させ、
前記特定ステップは、前記パス条件からフェイル条件へ切り替える箇所を変化させた際に前記ファーストフェイルの箇所が変化する前記切り替え箇所を検出し、該切り替え箇所を故障動作開始箇所として半導体回路の故障箇所を特定する付記２記載の半導体回路の検査方法。
（付記４）前記動作ステップは、フェイル条件からパス条件へ途中で切り替えて動作させ、
前記特定ステップは、前記フェイル条件からパス条件へ切り替える箇所を変化させた際に前記ファーストフェイルの箇所が変化する前記切り替え箇所を検出し、該切り替え箇所を故障動作終了箇所として半導体回路の故障箇所を特定する付記２記載の半導体回路の検査方法。
（付記５）前記特定ステップは、前記パス条件からフェイル条件へ切り替える箇所を変化させた際に前記ファーストフェイルの箇所が変化する前記切り替え箇所を故障動作開始箇所として検出し、前記フェイル条件からパス条件へ切り替える箇所を変化させた際に前記ファーストフェイルの箇所が変化する前記切り替え箇所を故障動作終了箇所として検出し、半導体回路の故障箇所を特定する付記２記載の半導体回路の検査方法。
（付記６）前記半導体回路は、少なくとも第１及び第２の出力端子を有し、
前記特定ステップは、前記第２の出力端子をマスクして前記第１の出力端子から出力される出力パターンを基に前記切り替え箇所を検出して第１の故障箇所を特定し、前記第１の出力端子をマスクして前記第２の出力端子から出力される出力パターンを基に前記切り替え箇所を検出して第２の故障箇所を特定する付記２〜５のいずれか１項に記載の半導体回路の検査方法。
（付記７）前記半導体回路は、フリップフロップがシリアルに接続されている付記１記載の半導体回路の検査方法。
（付記８）前記動作ステップは、試験パターンが前記シリアル接続されたすべてのフリップフロップにセットされるまではパス条件で動作させ、その後はフェイル条件で動作させる付記７記載の半導体回路の検査方法。
（付記９）前記パス条件及び前記フェイル条件は、電源電圧条件である付記１〜８のいずれか１項に記載の半導体回路の検査方法。
（付記１０）前記パス条件及び前記フェイル条件は、タイミング条件である付記１〜８のいずれか１項に記載の半導体回路の検査方法。
【００８４】
【発明の効果】
以上説明したように、出力パターンのファーストフェイル箇所の他、故障動作開始箇所及び／又は故障動作終了箇所を検出することができる。故障動作範囲を特定することができるので、解析者のスキル依存度を軽減した不良解析を行うことができる。また、故障解析に要する時間を短縮することができる。また、これまで解析できなかったスキャンチェーン不良の故障解析が可能になる。
【図面の簡単な説明】
【図１】本発明の実施形態によるＬＳＩ不良解析方法を示す図である。
【図２】従来技術によるＬＳＩ不良解析方法を示す図である。
【図３】出力端子にフリップフロップがシリアル接続された回路を示す図である。
【図４】故障動作開始アドレス及び故障動作終了アドレスの検出方法を示す図である。
【図５】故障動作開始アドレスのサーチ処理を示すフローチャートである。
【図６】図６（Ａ）〜（Ｆ）は図５の具体的な処理過程を示すフローチャートである。
【図７】故障箇所が複数場合の故障発生アドレス解析方法を示す図である。
【図８】図８（Ａ）〜（Ｃ）はスキャンチェーン試験を示す図である。
【図９】図９（Ａ）及び（Ｂ）はスキャンチェーン試験を示す図である。
【符号の説明】
３０１  ＡＮＤ回路
４０１  故障動作開始アドレス
４０２  故障動作終了アドレス
４０３  故障動作範囲
４１１，４１２  条件遷移
ＦＦ１〜ＦＦ２３  フリップフロップ
【図１】
2004301526.tif 000003
【図２】
2004301526.tif 000004
【図３】
2004301526.tif 000005
【図４】
2004301526.tif 000006
【図５】
2004301526.tif 000007
【図６】
2004301526.tif 000008
【図７】
2004301526.tif 000009
【図８】
2004301526.tif 000010
【図９】
2004301526.tif 000011