(57)【要約】【課題】半導体集積回路の故障解析のための試験で、スキャン試験は不良原因箇所の確定は容易だが、試験される条件が限定されていて充分とはいえない。一方、ユーザーファンクション試験を用いると、不良原因箇所の確定が難しく、工数が余計にかかる。  【解決手段】最初、ユーザーファンクション試験プログラムを所定の停止アドレスまで実行し、停止したときに前記フリップフロップ回路が保持する値を該フリップフロップ回路で構成するスキャンチェーンを用いて出力し、論理より求めた保持すべき期待値と比較する試験サイクルを含み、期待値との不一致が生じるまで停止アドレスを順次加算設定して前記試験サイクルを繰り返し、期待値と不一致となったフリップフロップ回路を求める半導体集積回路の試験方法。不一致となったフリップフロップからスキャンバックして故障箇所を確定する。【選択図】図２
2007071713.tif 000002
【特許請求の範囲】
【請求項１】
複数のフリップフロップ回路と、該フリップフロップ回路に接続された論理素子を有する組み合わせ回路を複数含む半導体集積回路の試験方法であって、
ユーザーファンクション試験プログラムを所定の停止アドレスまで実行し、前記フリップフロップ回路が保持する値を該フリップフロップ回路を含むスキャンチェーンを用いて出力し、
前記停止アドレスに対応して論理より求めた前記フリップフロップ回路が保持すべき期待値と前記出力した値とを比較する試験サイクルを含み、
前記停止アドレスを順次加算設定して前記試験サイクルを繰り返すことで該半導体集積回路が含む故障の結果が反映されたフリップフロップ回路を検出することを特徴とする半導体集積回路の試験方法。
【請求項２】
前記検出されたフリップフロップ回路が接続される組み合わせ回路において、該フリップフロップ回路を起点に論理的に活性化されたパスをさかのぼって論理的期待値と比較し、前記故障箇所を確定することを含む請求項１記載の半導体集積回路の試験方法。
【請求項３】
前記所定の停止アドレスは、前記ユーザーファンクション試験を単独で行ったとき最初に不良を検出するアドレスを超えることなく設定されることを特徴とする請求項１または２記載の半導体集積回路の試験方法。
【請求項４】
前記故障の結果が反映されたフリップフロップ回路が検出されたとき、前記停止アドレスを前記順次加算されたステップより小さいステップで順次減算して前記試験サイクルを繰り返すことを特徴とする請求項１または２記載の半導体集積回路の試験方法。
【請求項５】
前記故障の結果が反映されたフリップフロップ回路が検出されたとき、前記停止アドレスを前記順次加算されたステップより小さいステップで再び順次加算して前記試験サイクルを繰り返すことを特徴とする請求項１記載の半導体集積回路の試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の動作不良原因を求める故障解析において、短時間に効率よく不良箇所を確定するための試験方法に関するものであって、実使用状態に近い条件で不良を検出し、故障箇所に近い論理的な場所を同定するための試験方法に関わる。
【背景技術】
【０００２】
近年の半導体集積回路は微細化と高密度化により回路規模やテストパターンは益々増加の傾向にある。故障解析もその影響を受け、解析作業は複雑化の一途をたどっている。
【０００３】
集積回路の製造工程における試験工程で発生する不良や、出荷後に動作不良が生じたときには、不良の原因となった場所を見つけ出し、その原因を明らかにして早期に対策をとることが重要なことである。不良原因の箇所を見つけ出す作業を故障解析と呼んでいる。現在用いられている故障解析のための試験方法には、大きく分けてスキャン試験とユーザーファンクション試験との２つがある。
【０００４】
スキャン試験は、組み合わせ回路単位に入力端子と出力端子にフリップフロップ回路（以下ＦＦ回路と記す）を割り当てておく方法である。通常動作では、これらのＦＦ回路はＬＳＩの設計仕様に従って接続されているが、スキャン試験モードに設定されると、ＦＦ回路の入力端子と出力端子を相互に直列に接続して１本のシフトレジスタとして動作するスキャンチェーンを構成し、最初の入力端子と、最終の出力端子がテスターに接続される。
【０００５】
そして、入力端子からクロック信号に同期して所定の信号を入力し、順次転送することで特定の組み合わせ回路の入力端子に対応するＦＦ回路に所定の入力条件に設定することができる。この状態でＦＦ回路の出力端子を組み合わせ回路の入力に接続すると、出力端子には入力条件に従った出力が現れ、この値を出力端子に接続されたＦＦ回路に取り込むとができる。再び、ＦＦ回路を直列に接続してスキャンチェーンを構成し、このＦＦ回路に取り込まれた信号を順次転送し最終の出力端子から取り出せば、対象とする組み合わせ回路の入力信号と出力信号の関係を検証することができる。
【０００６】
故障信号を取り込んだＦＦ回路が特定されるので、このＦＦ回路のデータ端子を起点にして対象となる組み合わせ回路の活性なパスをバックトレースすることで故障箇所を明らかにすることができる。
【０００７】
バックトレースは、このＦＦ回路の端子から組み合わせ回路の信号が伝播してくる逆方向に回路をさかのぼり、電子ビームなどのプローブを用いて回路内部の論理値を測定して行われる。測定された信号と論理シミュレーションから得られる信号とを比較し、ＦＦ回路で不一致であった状態から、一致する状態に変わった点が故障箇所と確定することができる。
【０００８】
このように、スキャン試験によると個々の組み合わせ回路の動作を独立に検証することができるので不良箇所の特定は比較的に容易である。しかし一方で、スキャン試験は不良箇所が活性化できない場所にあった場合は検出することができない。また、試験される組み合わせ回路が別々に特定されていて、電源電圧や温度、タイミングなどの最悪の組み合わせを再現することが困難なため、マージン不良の故障解析を行うのが困難である。
【０００９】
このように、スキャン試験で全ての不良原因を明らかにすることはできない。他方、少しでも検出率を上げるための試験方法として、実際にユーザーが実機で使用するようなパターンを用い、スキャン試験では活性化できない回路を試験することができるユーザーファンクション試験が用いられる。
【００１０】
ユーザーファンクション試験は、ユーザーが実機で使用する様々なパターンに対応した試験プログラムを用いる試験方法であって、故障箇所を原因とした誤信号が、集積回路内部の論理パスを通って出力端子にフェイル信号を出力する。ユーザーファンクション試験での故障解析は、テスターがファンクションフェイルを検出したときフェイルアドレスとフェイル端子情報をもとに、フェイル端子を起点として論理回路をバックトレースする。バックトレースはフェイル時に活性化しているパスをシミュレーション値を考慮しながら行っている。
【００１１】
この方法は、実機で使用されるような条件を与えることが可能で、実際に使用条件で試験を行うことができる。しかし、故障箇所が原因となって誤った信号が生成され、その信号が内部の論理パスを経由してから、出力信号として不良と判定されるまでに複数の命令ステップが実行されている場合が多く、容易に故障箇所を確定することができない。
【００１２】
故障解析を行う場合、通常は単一故障を想定してバックトレースを進めるため、トレース先の入力が複数ある場合は活性化している全てのパスがバックトレースの対象となる。活性化しているパスを検証することで故障経路と非故障経路とを選別し、故障箇所が見つかるまでバックトレースを繰り返す必要がある。そのため、故障解析に要する時間が増加すると共に、必ずしも故障箇所を特定できない場合が多くなる。
【特許文献１】特開２０００−２７５３号公報
【特許文献２】特開２０００−３０４８２０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
このように、スキャン試験は故障解析を行う上で有効な手法であって、特に回路素子や配線の欠陥や経時劣化による固定不良と呼ばれるものを見つけ出すのに適した方法である。しかし、実機として動作する集積回路では電源電圧の変動によるマージン不足を初め、信号間のタイミングマージンの不足や温度変動による特性の変動から来るマージン不足などが個別の組み合わせ回路の検証では見つけ出すことができない場合がある。不良発生箇所は組み合わせ回路の内部で生じる場合もあれば、組み合わせ回路に入力される複数の回路から組み合わせによって生じる場合もある。このように、複数の信号の組み合わせで発生する不良は実際にユーザーファンクションを用いて動作試験で検出することが必要である。
【００１４】
従って、回路の動作不良を検出する際には、実機が使用される環境に近い条件を与えて試験することができるユーザーファンクションを用いることが望ましい。
【００１５】
一方、動作不良を検出したあと、故障箇所を確定容易に確定するために、故障箇所に近い場所で不良を検出できるスキャン試験の特徴を取り入れられることが求められている。
【００１６】
すなわち、本発明の目的はより実機に近い条件で試験を行って不良検出の確率を高め、同時に不良検出に引き続いて容易に故障箇所が確定できる試験方法を提供することにある。
【課題を解決するための手段】
【００１７】
上記課題を解決するために、本発明による試験方法は、複数のフリップフロップ回路と、該フリップフロップ回路に接続された論理素子を有する組み合わせ回路を複数含む半導体集積回路の試験方法であって、ユーザーファンクション試験プログラムを所定の停止アドレスまで実行し、前記フリップフロップ回路が保持する値を該フリップフロップ回路を含むスキャンチェーンを用いて出力し、前記停止アドレスに対応して論理より求めた前記フリップフロップ回路が保持すべき期待値と前記出力した値とを比較する試験サイクルを含み、前記停止アドレスを順次加算設定して前記試験サイクルを繰り返すことで該半導体集積回路が含む故障の結果が反映されたフリップフロップ回路を検出している。
【００１８】
そして、検出されたＦＦ回路が接続される組み合わせ回路に対して、該ＦＦ回路を起点に論理的に活性化されたパスをさかのぼって論理的期待値と比較することで故障箇所を判定することができる。
【００１９】
すなわち、ユーザーファンクション試験を利用して集積回路が実際に使用される状態に近い条件で試験を行う。そして、試験プログラムの命令が所定のアドレスまで実行されたときに停止し、組み合わせ回路が実行した結果をＦＦ回路に保持する。保持された値はＦＦ回路で構成するスキャンチェーンを用いて出力し、論理より求めた保持すべき期待値とを比較することで、命令を実行・停止する毎に集積回路が論理設計どおりに動作しているかどうかを検証することができる。この試験サイクルを繰り返すことで、不良が発生したとき結果が論理パスでつながる直近のＦＦ回路に反映されたところで故障の発生を検出することができる。
【００２０】
このように、故障箇所に近いＦＦ回路が検出されるので、通常のユーザーファンクション試験でフェイル信号を検出した出力端子から故障箇所を判定するのに比べると大幅に容易になり、短時間で判定を行うことが可能になる。
【００２１】
さらに、予めユーザーファンクション試験でフェイルするプログラムのアドレスが判明している場合などは、試験サイクルの間隔を予め広く設定しておき、ＦＦ回路の期待値との不一致を検出してから間隔を狭く設定して実行することで短時間に検出を行うことが可能になる。
【発明の効果】
【００２２】
ユーザーファンクション動作モードで発生した不良動作の結果を直近のＦＦ回路に保持し、期待値と比較することで故障が引き起こす不良を発生箇所に最も近い場所で、早いタイミングで捕らえることが可能になるので、故障箇所を見つける手間が軽減され時間が短縮される。
【００２３】
さらに、ユーザーファンクション試験で不良を発生させることができるため、集積回路が実際に使用されるのに近い条件で故障解析を行うことが可能になる。
【００２４】
また、ユーザーファンクション試験では検出できない不良を検出することができる可能性があるので、検出率を向上することができる。また、本発明はスキャン試験に対応して設計された品種ならば容易に適用することができる。
【発明を実施するための最良の形態】
【００２５】
本発明が適用される半導体集積回路は複数のＦＦ回路と、このＦＦ回路に接続される論理素子を有する組み合わせ回路を含んでいて、ユーザーファンクション試験モード時には、これらのＦＦ回路はそれぞれの組み合わせ回路の出力端子に接続されて出力値を取り込み、この値を次の組み合わせ回路の入力に与える。また、これらのＦＦ回路はスキャン試験が可能であって、ＦＦ回路をチェーン状に直列に接続されたスキャンチェーンを形成し、それぞれのＦＦ回路が保持する値を出力端子から順番に出力する。
【００２６】
また本発明では、ユーザーファンクション試験プログラムの命令が実行されたときにそれぞれのＦＦ回路が保持すべき期待値を論理的に求める機能を備えている。
【００２７】
上記の構成で、先ず調査する集積回路に対して、ユーザーファンクション試験パターンを最初の命令アドレスから処理実行し予め設定された所定の命令アドレスで停止し、実行の結果がＦＦ回路に保持される。そしてＦＦ回路にその値を保持した状態で、スキャン試験モードに切り換えて保持した値をスキャンチェーンを介して順次出力端子から出力される。出力された値は、停止した命令アドレスのときにそれぞれのＦＦ回路がとるべき期待値と比較される。
【００２８】
全てのＦＦ回路の値が期待値と一致すれば入力された信号が通る回路が正しく動作していると判断して次に停止する命令アドレスの設定を変更し再びユーザーファンクション試験から繰り返す。
【００２９】
前記比較した結果、期待値と異なる値を持つＦＦ回路が検出されたとき、そのときの命令アドレスすなわち故障発生アドレスと、不良組み合わせ回路、不良信号を保持したＦＦ回路すなわちキャプチャーＦＦ回路が確定される。これらの情報をもとに、不良端子からバックトレースすることで故障箇所を確定することができる。以下に、実施例をもとに具体的な試験方法について説明する。
【実施例】
【００３０】
図１は本発明が適用される集積回路１００の構成を示している。半導体集積回路１００は複数の組み合わせ回路１〜４がＦＦ回路１〜１２を介して接続される構成でなっている。各ＦＦ回路はそれぞれ入力端子Ｄと、出力端子Ｑを備えている。そして、組み合わせ回路の入力端子Ｉはそれぞれ対応して配置されたＦＦ回路出力端子Ｑに接続され、組み合わせ回路の出力端子Ｏはそれぞれ対応するＦＦ回路の入力端子Ｄに接続されている。それぞれの入力端子Ｉおよび出力端子ＯはゲートＲなどの論理回路が接続されていて、その組み合わせで入力信号の組み合わせに応じて所定の論理処理を行ってその結果が出力端子Ｏに出力される。
【００３１】
組み合わせ回路１の入力端子Ｉはそれぞれ本半導体集積回路１００の入力パッドＩＮ１〜４に接続されていて、外部から入力信号が加えられる。また、組み合わせ回路４の出力端子Ｏは出力パッドＯＵＴ１〜４に接続されていて入力信号が処理された結果が外部に出力される。図１の例では入出力パッドから直接組み合わせ回路に接続されている構成になっているが、間にＦＦ回路を介して接続するようにしても構わない。
【００３２】
通常のユーザーファンクション動作モードでは、それぞれの組み合わせ回路は入力端子に接続されたＦＦ回路の出力Ｑの値が入力信号として供給され、論理回路Ｒ等の組み合わせに従って処理されその結果が出力端子Ｏに出力される。出力された値は出力端子Ｏに接続されたＦＦ回路の入力端子Ｄに取り込まれ、その値はタイミング信号に応じてＦＦ回路の出力端子Ｑに現れる。その値は次の段の組み合わせ回路の入力値となる。このようにして、集積回路１００に入力された信号は、次々と組み合わせ回路で処理されて出力端子から出力される。
【００３３】
ユーザーファンクション試験を行うときは、上記ユーザーファンクション動作モードに設定され、集積回路の入力端子から試験パターンを入力すると、入力された信号は各組み合わせ回路１の結果がＦＦ回路１〜４のデータ入力端子Ｄより取り込まれる。取り込まれたデータ値は出力端子Ｑに反映され、この値が次の組み合わせ回路２の入力として設定される。このようにして、入力信号は組み合わせ回路１〜４を経て出力端子ＯＵＴ１〜ＯＵＴ４に現れ、この値と期待値とを比較して動作の正否を判定する。
【００３４】
さらに図１で示す半導体集積回路１００はスキャン試験を行うことができる。スキャン試験モードに設定されると、前記ＦＦ回路１〜１２のスキャンイン端子ＳＩとスキャンアウト端子ＳＯは、隣接するＦＦ回路の間で相互に直列に接続されて、前記ＦＦ回路の全てが１本のスキャンチェーンを構成する。そして、初段のスキャンイン端子ＳＩはスキャンインパッドＳＤＩに接続され、最終段のＦＦ回路の出力端子ＳＯはスキャンアウトパッドＳＤＯに接続される。
【００３５】
このように直列接続されたＦＦ回路はシフトレジスタとして動作し、テスターからスキャンインパッドＳＤＩにクロックに同期して信号を順次入力し、入力値をシフトすることで各ＦＦ回路に所定のデータ値をセットすることができる。また、各ＦＦ回路が保持する値はクロックに同期して順番にシフトされて出力端子ＳＤＯから順次出力される。従って、特定のタイミングにおいてＦＦ回路が保持するデータ値を読み出すことができる。
【００３６】
スキャン試験で、例えば組み合わせ回路２の試験を行う場合は、スキャンインパッドＳＤＩから、クロックに同期して順次データを入力してＦＦ回路１〜４に所定の値を設定する。次にスキャンチェーンの接続を解除して、それぞれのＦＦ回路の出力Ｑを組み合わせ回路２の入力端子Ｉに接続する。すると組み合わせ回路２の各出力端子には論理回路の組み合わせに応じた出力値が現れ、この出力値は、ＦＦ回路５〜８に取り込まれる。次に、再びスキャンチェーンを構成してＦＦ回路５〜８の値をシフトしてスキャンアウトパッドＳＤＯから出力する。得られた出力値と論理より求めた期待値とを比較することで組み合わせ回路２が所定の動作を行っているかどうかを判定することができる。
【００３７】
本発明は、図１に示すようにユーザーファンクション試験と、スキャン試験が実行できる半導体集積回路１００に対して、両方の試験を組み合わせて行うことで、少ない工数でより精度の高い故障解析を可能とする試験方法である。
【００３８】
次に、図２のフローチャートを用いて本発明の試験の手順について説明する。
ステップＳ１で、試験の初期条件を設定する。停止アドレスＡは、ユーザーファンクション試験を最初の命令アドレスから実行を開始したあと、途中で命令実行を停止するアドレスである。図２の例ではＡ＝１と設定してあって最初の命令ステップの処理を実行して停止するように設定している。
【００３９】
アドレス加算ステップＢは、後述する試験サイクルが実行されて次の試験サイクルを行うとき、停止アドレスＡの設定値が加算されたとき増加するステップ値である。図２の例ではＢ＝１であるので試験サイクルを実行する毎に、停止アドレスＡが１ずつ加算される。最終アドレスＣは本試験でユーザーファンクション試験の実行を完了する命令アドレスである。通常は、ユーザーファンクション試験で最初に不良を検出したファーストフェイルアドレスの値を設定する。
【００４０】
次にステップＳ２で、ＦＦ回路をユーザーファンクションモードに設定して集積回路の試験サイクル動作が開始される。このときはＦＦ回路の入力端子Ｄと出力端子Ｑはそれぞれ対応する組み合わせ回路の出力端子Ｏと入力端子Ｉに接続される。ここで試験サイクルとは、ステップＳ２からステップＳ８に至る間での一連の試験動作のことである。
【００４１】
試験サイクルが開始されるとステップＳ３で、ユーザーファンクション試験のプログラムが最初の１パターン目から実行され、停止アドレスＡの処理が実行されたところで停止する。図２の例では最初の命令が実行されたところで停止する。そしてこのときそれぞれの組み合わせ回路１〜３の出力値は、対応して接続されたＦＦ回路１〜１２に保持される。
【００４２】
一方、試験動作の開始と並行して、ステップＳ４でテストシミュレータを用いてユーザーファンクション試験の論理シミュレーションが実行され、停止アドレスＡで停止したときにそれぞれのＦＦ回路が保持する期待値が算出される。
【００４３】
命令の実行が停止するとステップＳ５で、スキャン試験モードに切り換えられ、ＦＦ回路１〜１２を含むスキャンチェーンが形成され、停止したときＦＦ回路が保持していた値がクロック信号に同期して順番にスキャンデータ出力端子ＳＤＯから出力される。
【００４４】
ステップＳ６では、スキャンチェーンから出力されたＦＦ回路の値と、シミュレーションで求めた期待値とがそれぞれ比較され一致するかどうかの判定が行われる。
【００４５】
一致しない場合は、故障箇所と論理的に活性なパスでつながるＦＦ回路が特定されたことであり、同時に故障箇所が含まれる組み合わせ回路が特定できたことを示す。従って、ここで試験サイクル動作は終了し、得られた結果を用いて故障場所の確定作業が行われる。
【００４６】
一方、ステップＳ６で回路と期待値のそれぞれが一致した場合は、未だ不良の発生は検出されていないので、ユーザーファンクション試験の命令ステップを次に進めて試験サイクルを実行する。そのため、ステップＳ７では停止アドレスＡの値をアドレス加算ステップＢの分を進め、Ａ＝Ａ＋Ｂとする。
【００４７】
次にステップＳ８では停止アドレスＡの値と最終アドレスＣの値とを比較を行い、停止アドレスＡの値が最終アドレスＣの値を超えていない場合、再びステップＳ２にもどって、次の試験サイクルが実行される。
【００４８】
このようにして、停止アドレスＡを順次加算ステップＢずつ増加させながら試験サイクルを繰り返し、ステップＳ６でＦＦ回路の値と期待値とが一致しない不良の発生を検出するまで行われる。
【００４９】
ステップＳ８でＡの値がＣの値を超えている場合、本発明の試験方法で不良の発生が無かったことが確認されて試験を終了する。
【００５０】
ステップＳ６で期待値と異なる値を持つＦＦ回路が検出されたときの不良回路の解析は前記で説明したようにバックトレースを行って故障箇所を判定する。図３に示す集積回路１００から不良が検出されたときを例にして本発明を用いたときの故障解析の手順を説明し、併せて従来技術で行ったときの故障解析にかかる工数と比較を行う。ここで一点鎖線は故障した論理回路から組み合わせ回路の出力端子に至る論理パスを示している。点線は、故障解析を行うとき活性化される論理パスを示している。
【００５１】
図３では、組み合わせ回路２のゲートＧの入力１に故障箇所が存在し、その結果ＦＦ回路８の値が本来保持すべき期待値と異なっていたことを示している。ゲートＧの出力はこのとき活性化されていた一点鎖線で示すパスを経由してＦＦ回路８に誤った値として保持されていることを示している。
【００５２】
故障箇所の確定は、電子ビームなどのプローブを用いて、ＦＦ回路８が接続された出力端子Ｏから活性化されたパスを逆の方向にバックトレースし信号を測定する。測定した値は論理シミュレーションから求めた値と比較して一致と不一致を判定してゆく。ＦＦ回路８に近い場所ではシミュレーション値とは一致していない。そして、ゲートＧに至ると出力値が異なった値を示すが入力端子の信号が正しいことが検出され、故障箇所がゲートＧの入力１であることが確定される。この作業を行うとき、ＦＦ回路８に対して活性化しているパスは点線で示すように複数個あるのでそれぞれのパスについて測定してシミュレーション値との比較を行う必要がある。
【００５３】
一方、従来行っていたユーザーファンクション試験の結果から故障箇所を確定する方法で行った場合、ＦＦ回路８の出力Ｑが組み合わせ回路３および４を経由して出力端子ＯＵＴ３に現れたところでフェイル判定が行われる。従って故障解析は出力端子ＯＵＴ３から逆の方向にバックトレースを行う。そのため故障箇所に到達するまでの論理パスの距離が長いだけでなく、解析対象となる活性化されたパスの数が本発明の方法を使用した場合に比べて指数関数的に大きな数になり、その結果解析に要する時間が長くかかることになる。
【００５４】
図３の下部の図がこの様子を示している。横軸は故障箇所Ｌから、組み合わせ回路の出力端子までの距離の相対値を示し、縦軸は故障解析を行うときに解析対象となる論理回路の数の相対値の対数を示している。図３の場合、本発明を用いると故障箇所Ｌから組み合わせ回路２の出力端子Ｏまでの距離がＬＭであって、解析対象の回路数はＳＭの長さに相当する。一方、従来のユーザーファンクション試験から故障解析を行った場合は、出力端子ＯＵＴ３までの距離がＬＮであって、解析対象の回路数はＴＮとなって、ＬＭと比較すると大きな値となることを示している。
【００５５】
さらに、本発明を用いることによって出力端子にフェイル信号を出力するより前にフェイルを検出することが可能になり、その結果故障検出率が向上し品質の向上を図ることができる。一般にユーザーファンクション試験のプログラムは全ての論理回路の組み合わせを実現するとプログラムのステップが膨大になるため、実現可能な数に抑えている。そのため、故障検出率は１００％にならず、試験を合格した集積回路が実際に使用されたとき、試験を行わなかった部分で不良が発生する可能性がある。
【００５６】
図３では集積回路１００にはゲートＨの入力２に故障箇所が存在する例を示していて、故障の結果ユーザーファンクション試験でＦＦ回路２に誤った値を出力している。しかし、引き続いて実行される試験プログラムのステップではその誤ったＦＦ回路２が接続されるパスが偶然活性化されない場合があり得る。そのようなときは出力端子ＯＵＴ１〜４にはフェイルの信号が出力されないため、従来のユーザーファンクション試験では故障の存在を検出することができなかった。
【００５７】
しかし、実使用上でのプログラムの組み合わせによって誤った値が出力端子まで伝わった場合、試験プログラムをパスした集積回路が動作不良を示すことになる。一方、本発明によれば、ＦＦ回路２が期待値を異なった値を保持した時点で不良の発生が検出される。従って、本発明の試験方法を用いた場合、従来方法で用いる試験プログラムであっても故障検出率が向上し、集積回路の品質を向上することができる。
【００５８】
次に、図２のステップＳ１で行った初期値の設定について説明する。本発明において、通常のＬＳＩテスターを用いて行ったユーザーファンクション試験で最初に不良と判定された命令アドレスをファーストフェイルアドレスと言い、出力端子のいずれかの出力がテスターが判定に用いる期待値とが異なっている。なお、本発明の試験で最初に期待値と異なる値を保持したＦＦ回路が故障キャプチャーＦＦ回路であり、このときの命令アドレスを故障発生アドレスと呼ぶ。一般的に故障発生アドレスはファーストフェイルアドレスよりも小さな値をとる。
【００５９】
［設定１］  ファーストフェイルアドレスがわかっている場合。
図２の初期設定では最終アドレスＣの値にはファーストフェイルアドレスの値を設定し、初期の停止アドレスＡ＝１と設定して命令アドレスの１パターン目から試験を行う例場合を想定している。
【００６０】
しかし、ファーストフェイルアドレスが大きな値である場合、最初の停止アドレスＡを１から始めると故障発生アドレスに到達するまでの試験サイクルの回数が多くなって試験時間が長くなってしまい、故障解析の時間短縮の効果が充分に得られない場合がある。このようなときは、初期設定の停止アドレスＡの値を最終アドレスＣに近い値に設定することで試験のステップを短くすることが可能である。あるいは、アドレス加算ステップＢの値を１より大きな値にして試験サイクルの回数を減らすことが可能である。このような方法をとった場合について説明を行う。
【００６１】
［設定２］  最初に設定する停止アドレスＡを１よりも大きな値にするとき。
最初のステップＳ６で不良が見つかったとき、そのときの停止アドレスＡが故障発生アドレスと等しい場合と、それより前の命令アドレスでフェイルが発生した場合とがある。従って、故障発生アドレスを確定する必要があり、停止アドレスＡから減算しながら試験サイクルを実行する。図４のフローチャートにこのときの手順を表す。
【００６２】
ステップＳ６でＦＦ回路の値と期待値が一致しなかった場合、ステップＳ１１でＡの値をＡ−１に置き換えてステップＳ１２の試験サイクルを実行する。ステップＳ１３〜Ｓ１５はステップＳ３〜Ｓ５と同じである。
【００６３】
ステップＳ１６でＦＦ回路の値と期待値とが一致しない場合は未だ故障発生アドレスが確定できないのでステップＳ１１にもどってこれを繰り返す。ステップＳ１６でＦＦ回路の値と期待値とが一致したときは、そのときの停止アドレスＡの次の命令アドレスが故障発生アドレスであることが明らかになる。従って、テップ１７で停止アドレスＡの値をＡ＋１に置き換えてこれを故障発生アドレスとして出力し終了する。このように停止アドレスを予め最終アドレスに近い値に設定することで全体にかかる試験時間を短縮して効率を上げることが可能になる。
【００６４】
［設定３］ユーザーファンクション試験での良否が判明していない場合。
ユーザーファンクション試験を行わずに本発明の試験を行う場合が考えられる。この場合は、初期に設定するアドレス加算ステップＢを１より大きく設定することで、少ない試験サイクルの回数で早くフェイルアドレスを見つけ出すことができる。このときはアドレス加算ステップＢの値を１より大きい任意の値に設定することで実現できる。
【００６５】
このようにアドレス加算ステップＢの値を１よりも大きな値に設定した場合、ステップＳ６で最初にＦＦ回路の値と期待値との不一致が見つかったときの停止アドレスＡの値が故障発生アドレスであるとは限らない。従ってこの場合も図３に示すフローを用いて、最初の停止アドレスＡの値を１ずつ減算して試験実行のステップを繰り返すことで故障発生アドレスを確定することができる。
【００６６】
［設定４］アドレス加算ステップＢの値を途中で変更することで試験時間を短縮する。
アドレス加算ステップＢの値は、最初は大きな値に設定しておいて、最初にＦＦ回路の値と期待値が一致しない停止アドレスＡの値を求める。しかし、加算ステップＢの値が大きくて図３のステップＳ４のように１ずつ減算すると試験サイクルの数が大きくなりすぎる場合、アドレス加算ステップＢの値を小さく設定する方が早く故障発生アドレスを見つけ出せる場合がある。
【００６７】
図５にアドレス加算ステップＢの設定を変更する場合のフローを示している。ステップＳ６でＦＦ回路の値と期待値が一致しないと、ステップＳ１８でアドレス加算ステップＢの変更を行うか確認を行う。変更を行わない場合は、図４の場合と同じでステップＳ１１に進みそのときの停止アドレスＡから順次減算して故障発生アドレスを求める。
【００６８】
変更を行う場合は、ステップＳ１９で所望の加算ステップＢの値を設定する。このとき同時に停止アドレスＡの値をＡ−Ｂに減算しておく必要がある。
【００６９】
上記に挙げた初期設定の例で、停止アドレスＡを最終アドレスＣの値を設定した場合も、アドレス加算ステップＢの値を最終アドレスＣの値を設定したときも共に、最初の試験サイクルで得られた結果が、従来のユーザーファンクション試験のみで得られた結果と同等の結果となる。従って、ステップＳ１の初期設定でＡ＝Ｂ＝Ｃと設定しておいて、結果に応じてＡまたはＢの値を置き換えることでより柔軟に対応することができる。
【００７０】
あるいはステップＳ６の結果で設定する条件を予めテスターに設定することで効率よく自動的に故障発生アドレスを見つけ出すことが可能になる。
【産業上の利用可能性】
【００７１】
半導体集積回路の故障解析は、試作段階や製造工程、あるいは市場で発生する不良原因を明らかにして適切な対応をとるための重要な作業である。本発明を使用することで、故障解析を行うときに適した試験方法であって、従来のユーザーファンクション試験のプログラムを用いることで実使用状態に近い試験で不良状態を再現し、同時にスキャン試験と同程度の工数で故障箇所の解析を行うことが可能になる。従って、従来に比較して、より精度の高い不良解析を、少ない工数で短時間に行うことができる。
【図面の簡単な説明】
【００７２】
【図１】本発明の構成を示す図である。
【図２】本発明の試験の手順を示す図である。
【図３】本発明による故障解析の手順を説明する図である。
【図４】本発明の試験の手順を説明する図である。
【図５】本発明の試験の手順を説明する図である。
【符号の説明】
【００７３】
１００  集積回路
１、２  故障ゲートの入力
【図１】
2007071713.tif 000003
【図２】
2007071713.tif 000004
【図３】
2007071713.tif 000005
【図４】
2007071713.tif 000006
【図５】
2007071713.tif 000007