説明

故障診断方法、故障診断装置、テストシステム及びプログラム

【課題】故障箇所推定の精度低下を抑制すること。
【解決手段】故障診断装置12は、半導体装置20の故障仮定箇所に縮退故障を設定し、シミュレーションを実施する。故障診断装置12は、シミュレーションにより得た圧縮器26の出力信号と、テスト装置11により観測した圧縮器26の出力信号とを比較し、その比較結果に応じて圧縮器27の入力信号を設定してシミュレーションを実施する。そして、故障診断装置12は、シミュレーションにより得た圧縮器27の出力信号と、テスト装置11により観測した圧縮器27の出力信号に基づいて、故障仮定箇所のスコアを算出する。

【発明の詳細な説明】
【技術分野】
【0001】
故障診断方法、故障診断装置、テストシステム及びプログラムに関する。
【背景技術】
【0002】
従来、半導体装置には、故障を判定するために、自己テスト回路(BIST:Built-in Self Test)を搭載したものがある(例えば、特許文献1参照)。テスト装置(故障診断装置)は、自己テスト回路の出力信号に基づいて、半導体装置に発生した故障箇所を推定する。
【0003】
自己テスト回路は、直列に接続された複数のスキャンフリップフロップを含む複数のスキャンチェーンと、複数のスキャンチェーンの出力信号を圧縮した信号を出力する圧縮器とを含む。圧縮器は、例えば、排他的論理和回路(EOR:Exclusive OR)回路であり、複数のスキャンチェーンの出力信号を、スキャンチェーンの数よりも少ない数(例えば1ビット)の出力信号に圧縮する。圧縮器は、半導体装置の外部端子の減少に寄与する。即ち、圧縮器を含まない半導体装置は、スキャンチェーンの数と等しい数の外部端子を、テストのために必要とする。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−249622号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
故障として、例えばゲート回路に信号を供給する配線にオープン故障が生じた場合、そのゲート回路の入力に接続された配線は、隣接する配線との間のカップリング容量によって、隣接配線によって伝達される信号の影響を受ける。このような故障は、隣接配線の信号値によって、0縮退故障として観測される場合と、1縮退故障として観測される場合がある。
【0006】
圧縮器を用いた自己テスト回路の場合、故障が単一の外部観測点のみに伝達する故障の場合、故障箇所の候補数が増加する。例えば、スキャンフリップフロップのデータ端子に接続される配線にオープン故障が生じた場合、そのオープン故障が生じたスキャンフリップフロップと同じ段の全てのスキャンフリップフロップのデータ端子に接続された配線が故障箇所の候補となる。このように、自己テスト回路に含まれる圧縮器は、複数のスキャンチェーンの出力信号を圧縮するため、圧縮器の出力信号に基づいて故障を診断した場合、故障の状態によっては故障箇所と推定する箇所が多くなる、つまり推定精度が低下する場合があった。
【課題を解決するための手段】
【0007】
本発明の一観点によれば、半導体装置は、テスト対象の回路にテストパターンを供給し前記テスト対象の回路の各点の信号レベルを保持する複数のスキャンチェーンと、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの幅方向に圧縮する第1の圧縮器と、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの長さ方向に圧縮する第2の圧縮器とを含み、記憶装置には、前記第1の圧縮器及び前記第2の圧縮器の出力信号をテスト装置にて観測した第1の観測結果及び第2の観測結果がそれぞれ記憶され、故障診断装置は、故障仮定箇所に縮退故障を設定して第1の圧縮器をシミュレーションし、前記第1の圧縮器のシミュレーション結果と前記第1の観測結果とを比較した結果に基づいて第2の圧縮器の入力信号を設定して前記第2の圧縮器をシミュレーションし、前記第2の圧縮器のシミュレーション結果と、前記第2の観測結果とに基づいて、前記故障仮定箇所のスコアを算出する。
【発明の効果】
【0008】
本発明の一観点によれば、故障箇所推定の精度低下を抑制することができる。
【図面の簡単な説明】
【0009】
【図1】(a)(b)は、テストシステムの概略構成図である。
【図2】圧縮器の回路図である。
【図3】テストパターンシーケンスの説明図である。
【図4】故障診断処理のフローチャートである。
【図5】故障診断処理のフローチャートである。
【図6】計算機の概略構成図である。
【図7】(a)(b)は、故障モデルの説明図である。
【図8】(a)(b)は、故障モデルの説明図である。
【図9】(a)(b)は、故障モデルの説明図である。
【図10】ドライブ故障モデルと縮退故障モデルの関係を示す説明図である。
【発明を実施するための形態】
【0010】
以下、実施形態を添付図面に従って説明する。
図1(a)に示すように、テストシステム10は、テスト対象の半導体装置20をテストするテスト装置11と、テスト装置11のテスト結果に基づいて半導体装置20の故障箇所を推定する故障診断装置12とを備えている。
【0011】
先ず、テスト対象の半導体装置20の構成を説明する。
図1(b)に示すように、半導体装置20は、ロジック回路21と、ロジック回路21をテストするための自己テスト回路(BIST(Built-in Self Test)回路)22を備えている。
【0012】
自己テスト回路22は、展開器23と、複数(図1(b)では2つ)のスキャンチェーン24,25と、圧縮器26,27とを含む。
展開器23は、テスト装置11からテスト信号TSが供給される。テスト信号TSは圧縮されたデータであり、展開器23は、テスト信号TSを展開し、各スキャンチェーン24,25に供給する。
【0013】
スキャンチェーン24は、直列的に接続された複数段(図において3段)のスキャンフリップフロップ(以下、SFF)24a,24b,24cを備える。同様に、スキャンチェーン25は、SFF25a,25b,25cを備える。各SFF24a〜25cは、展開器23から供給されるテストパターンを保持する。ロジック回路21は、各SFF24a〜25cに保持されたテストパターンに従って動作する。即ち、スキャンチェーン24,25は、展開器23から入力されるシリアルテストパターンを、ロジック回路21に供給する。
【0014】
また、各SFF24a〜25cは、ロジック回路21の各観測箇所における信号レベルを保持する。スキャンチェーン24,25は、保持した信号レベルを、各SFF24a〜25cの接続に従って転送する。即ち、スキャンチェーン24,25は、ロジック回路21の各観測点における信号レベル(テスト応答)を保持し、保持した信号レベルを圧縮器26,27に伝達する。
【0015】
スキャンチェーン24,25のSFF24a〜25cにテストパターンを保持する動作をシフトイン(SHIFT IN)という。各SFF24a〜25cにテスト応答を保持することを、キャプチャ(Capture )という。そして、各SFF24a〜25cに保持した信号レベル(テスト応答)を転送・出力する動作をシフトアウト(SHIFT OUT )という。なお、シフトインは、スキャンイン(Scan-in )やロード(Load)と呼ばれることがある。また、シフトアウトは、スキャンアウト(Scan-out)やアンロード(Unload)と呼ばれることがある。
【0016】
第1の圧縮器26は、例えば、排他的論理和回路(EOR回路)である。圧縮器26は、複数のスキャンチェーン24,25から出力される信号を1ビットの出力信号に圧縮し、圧縮後の信号D1を出力する。詳しくは、圧縮器26は、各スキャンチェーン24,25の各段のSFFに保持した信号を1ビットの信号に圧縮する。従って、スキャンチェーンの段数をm、スキャンチェーンの数をnとすると、自己テスト回路22は、ロジック回路21における(m×n)箇所の信号レベル(テスト応答)を保持する。なお、段数mは、複数のスキャンチェーンの段数の最大値となる。そして、圧縮器26は、(m×n)個の信号を、m個の信号に圧縮する。つまり、圧縮器26は、各スキャンチェーン24,25から同時に出力される2つの信号を1つの信号に圧縮する。このように、スキャンチェーンの幅方向に信号を圧縮する圧縮器を、空間圧縮回路と呼ぶ。
【0017】
第2の圧縮器27は、例えば、多入力線形帰還シフトレジスタ(MISR:Multiple Input Signature Register)である。圧縮器27は、ロジック回路21における(m×n)個の信号を、n個の信号に圧縮する。つまり、圧縮器27は、複数のスキャンチェーン24,25に保持した信号を、スキャンチェーンに含まれるSFFの接続方向(スキャンチェーンの長さ方向)に圧縮する。このように、複数のスキャンチェーンの長さ方向に信号を圧縮する圧縮器を、時間圧縮回路又は時系列圧縮回路と呼ぶ。
【0018】
図1(a)に示すように、テスト装置11は、半導体装置20に対応するテストパターン13を入力する。テストパターン13は、出荷試験時にサイクル番号毎に半導体装置20を動作させるテスト信号のパターンと、そのパターンにより半導体装置20から出力されるであろう信号を示す期待値を含む。
【0019】
テスト装置11は、テストパターンを半導体装置20に供給する。そして、テスト装置11は、テストパターンに対応して半導体装置20の圧縮器26から出力されるテスト応答(信号D1)を観測し、観測結果、即ちテスト応答結果に応じてフェイル情報14を生成する。
【0020】
例えば、テスト装置11は、観測したテスト結果と期待値とを比較し、半導体装置20の良否を判定する。そして、テスト装置11は、テスト結果と期待値とが一致しない場合に半導体装置20が故障していると判定し、その判定結果と、半導体装置20に対する観測結果を含むフェイル情報14を生成する。
【0021】
また、テスト装置11は、テストパターンに応じて圧縮器26から出力される複数のテスト応答の観測後に、圧縮器27における圧縮結果(シグネチャ(Signature )と呼ぶ)を観測する。そして、テスト装置11は、観測したシグネチャをフェイル情報14に格納する。
【0022】
テストパターン13には、複数のパターンが含まれている。テスト装置11は、複数のパターンを半導体装置20のスキャンチェーン24,25(図1(b)参照)にシフトインし、各スキャンチェーン24,25からシフトアウトされたデータをそれぞれ観測する。なお、テスト装置11は、1つのパターンに対するテスト応答をシフトアウトするときに、次のパターンをシフトインする。各スキャンチェーン24,25は、各SFF24a〜24c,25a〜25cに対して、シフト用のパルス信号(例えばクロック信号)に応答して、シフトイン及びシフトアウトを行う。
【0023】
即ち、図3に示すように、テスト装置11は、先ず、自己テスト回路22の初期化を行う。次いで、テスト装置11は、スキャンチェーン24,25の段数(SFF24a〜24c,25a〜25cの数)のパターンP1をシフトイン(「SHIFT IN(P1)」と表記)する。次いで、テスト装置11は、ロジック回路21を動作させ、ロジック回路21におけるパターンP1に対応するテスト応答を、各スキャンチェーン24,25にキャプチャ(「Capture(P1) 」と表記)させる。
【0024】
次いで、テスト装置11は、キャプチャしたテスト応答をシフトアウト(「SHIFT OUT(P1) 」と表記)させるとともに、次のパターンP2をシフトインする。そして、テスト装置11は、スキャンチェーン24,25の段数に対応する数のテスト応答、つまりパターンP1に対するテスト結果をシフトアウトさせ、各テスト応答を観測する。
【0025】
詳しくは、テスト装置11は、スキャンチェーン24,25の各SFF24a〜24c,25a〜25cにクロック信号を供給する。各SFF24a〜24c,25a〜25cは、クロック信号の各パルスに応答して、入力される信号を保持する。これにより、スキャンチェーン24,25は、保持したデータをシフトする。圧縮器26は、各スキャンチェーン24,25から出力される信号を、1ビットの信号に圧縮する。そして、テスト装置11は、クロック信号のパルス毎に、圧縮器26から出力される信号を観測する。
【0026】
同様にして、テスト装置11は、n個のパターンP1〜Pnをシフトインさせる。テスト装置11は、n個目のパターンPnに対するテスト応答をキャプチャ(「Capture(Pn) 」と表記)させる。そして、テスト装置11は、テスト応答をシフトアウトさせ、各テスト応答を観測する。
【0027】
上記したように、テスト装置11は、全てのパターンP1〜Pnに対応するテスト応答をシフトアウトさせて観測する。テスト装置11は、例えばパターンP1に対応するテスト応答のシフトアウトとパターンP2のシフトインのように、テスト応答のシフトアウトと次のパターンのシフトインとを同時に行うことで、半導体装置20に対するテスト期間の長期化を抑制している。
【0028】
次いで、テスト装置11は、圧縮器27における圧縮結果(Signature )を観測する。上記したように、圧縮器27は、例えば多入力線形帰還シフトレジスタ(MISR)であり、パルス信号(例えばクロック信号)に応答して圧縮結果を出力する。テスト装置11は、スキャンチェーンの本数分のパルスを圧縮器27に供給し、各パルスに応答して圧縮器27から出力される圧縮結果(「Signature OUT 」と表記)を観測する。このように、テスト装置11は、全てのパターンP1〜Pnに対応するテスト応答を観測した後に、そのテスト応答の圧縮結果(Signature )を観測することで、テストパターン長の増加を最小限に抑えることができる。
【0029】
故障診断装置12は、テストパターン13と、フェイル情報14と、半導体装置20の回路情報(ネットリスト)15とを入力する。
故障診断装置12は、半導体装置20の故障仮定箇所に縮退故障を設定し、シミュレーションを実施する。故障診断装置12は、シミュレーションにより得た圧縮器26の出力信号と、テスト装置11により観測した圧縮器26の出力信号とを比較し、その比較結果に応じて圧縮器27の入力信号を設定してシミュレーションを実施する。そして、故障診断装置12は、シミュレーションにより得た圧縮器27の出力信号と、テスト装置11により観測した圧縮器27の出力信号に基づいて、故障仮定箇所のスコアを算出する。
【0030】
故障診断装置12は、テストパターン13を読み込み、半導体装置20のロジック回路21とスキャンチェーン24,25の各SFF24a〜24c,25a〜25cの論理シミュレーションを行う。そして、故障診断装置12は、故障仮定箇所の信号レベルに応じて、0縮退故障又は1縮退故障を故障仮定箇所に設定する。
【0031】
また、故障診断装置12は、縮退故障を設定して故障シミュレーションを実施した結果、故障がSFF24a〜24c,25a〜25cまで伝搬しない場合、論理シミュレーションの結果における各SFF24a〜24c,25a〜25cの信号レベルを圧縮器27の入力に採用する。一方、故障診断装置12は、故障がSFF24a〜24c,25a〜25cまで伝搬した場合、故障シミュレーションの結果におけるSFF24a〜24c,25a〜25cの信号レベルを採用し、圧縮器26をシミュレーションする。そして、故障診断装置12は、シミュレーションにより得た圧縮器26の出力信号と、テスト装置11により観測した圧縮器26の出力信号とを比較する。
【0032】
上記のテスト装置11と故障診断装置12は、は、パーソナルコンピュータ、ワークステーション等の汎用的な目的で使用される計算機上で実行されるコンピュータプログラムにより実現する。図6に示すように、計算機は、処理装置(CPU)41、メモリ(主記憶装置)42、記憶装置(補助記憶装置)43、出力装置44、入力装置45、ドライブ装置46などから構成され、コンピュータプログラムを実行するものであり、コンピュータプログラムは、フレキシブルディスクやCD−ROM等の可搬型記録媒体48やネットワーク接続された他の計算機の主記憶装置や補助記憶装置等に格納されて提供される。提供されたコンピュータプログラムは、可搬型記録媒体48からドライブ装置46を介して記憶装置43にコピーまたはインストール後にメモリ42にロードされ実行される。また、ネットワーク接続された他の装置に格納されて提供された場合も、他の装置からネットワークを経由して受信後に記憶装置43にコピーまたはインストールされ、メモリ42にロードされ実行されるものである。記憶装置43には、図1に示すテストパターン13,フェイル情報14,回路情報15,故障候補16がファイルとして格納される。
【0033】
次に、圧縮器の構成例を説明する。
図2に示すように、圧縮器26aは、例えば5入力の排他的論理和回路(EOR回路)であり、5つのスキャンチェーンの出力信号を圧縮する。同様に、圧縮器27aは、5つのスキャンチェーンから出力される信号を圧縮する。この圧縮器27aは、入力信号の数に対応する5つの排他的論理和回路(EOR回路)31a〜31e及びスキャンフリップフロップ(SFF)32a〜32eを備えている。各EOR回路31a〜31eの出力端子はSFF32a〜32eのデータ入力端子Dに接続されている。各SFF32a〜32dの出力端子Qは、次段のSFF32b〜32eのスキャンイン端子SIと、各段に対応するEOR回路31b〜31eの入力端子に接続されている。最終段のSFF32eの出力端子Qは、初段のEOR回路31aの入力端子に接続されている。初段のSFF32aのスキャンイン端子SIには、初期化のためのデータが入力される。尚、回路の初期化は、各SFFのリセット端子に供給する信号により行われても良い。そして、各SFF32a〜32eのクロック端子にはクロック信号CLKが供給される。
【0034】
次に、故障診断装置12が実行する処理を説明する。
故障診断装置12は、図4及び図5に示すフローチャートに従って、故障診断処理を実行する。
【0035】
図4に示すように、故障診断装置12は、先ず、回路情報15を入力する(ステップ51)。
次いで、故障診断装置12は、故障仮定箇所を1つ選択する(ステップ52)。故障診断装置12は、半導体装置20で故障する可能性のある複数の箇所のうちの1つを選択する。半導体装置20で故障する可能性のある箇所は、例えば、テスト装置11のテスト結果に基づいて、回路情報15(例えばネットリスト)をバックトレースすることで、仮定する故障箇所の候補が複数設定され、例えばフェイル情報14に格納されている。なお、バンクトレースは、故障診断装置が行うようにしてもよい。また、バックトレースを行わずに故障する可能性のある箇所を設定するようにしてもよい。
【0036】
次いで、故障診断装置12は、テストパターン13に含まれる全てのパターン(例えば、図3に示すシーケンス説明図では、n個のパターン)に対する処理を終了したか否かを判定する(ステップ53)。全てのパターンに対する処理を終了していないと判定した場合(判定:NO)、故障診断装置12は次のステップ54に進む。
【0037】
次いで、故障診断装置12は、テストパターン13に含まれる1つのパターンを読み込む(ステップ54)。
次いで、故障診断装置12は、読み込んだパターンで、テスト対象のロジック回路21とスキャンチェーン24,25の各SFF24a〜24c,25a〜25cを論理シミュレーションする(ステップ55)。そして、故障診断装置12は、この論理シミュレーション結果の値を、第1のシミュレーション結果として記憶する。
【0038】
次いで、故障診断装置12は、論理シミュレーション結果に基づいて、選択した箇所における信号値が「0」か否かを判定する(ステップ56)。論理シミュレーション結果の信号値が「1」(判定:NO)の場合、故障診断装置12は、ステップ57aにおいて、選択した箇所に、0縮退故障(Stuck-at-0故障:SA0)を埋め込む。一方、論理シミュレーション結果の信号値が「0」(判定:YES)の場合、故障診断装置12は、ステップ57bにおいて、選択した箇所に、1縮退故障(Stuck-at-1故障:SA1)を埋め込む。つまり、故障診断装置12は、論理シミュレーション結果に基づいて、そのシミュレーション結果と異なる縮退故障を、選択した箇所に仮定する。
【0039】
0縮退故障は、状態値(信号レベル)を「0」に固定する故障であり、期待値が「1」のときに観測値が「0」になることによって、故障と判定される。1縮退故障は、状態値(信号レベル)を「1」に固定する故障であり、期待値が「0」のときに観測値が「1」になることによって、故障と判定される。
【0040】
次いで、故障診断装置12は、テスト対象のロジック回路21とスキャンチェーン24,25の各SFF24a〜24c,25a〜25cを故障シミュレーションする(ステップ58)。そして、故障診断装置12は、この故障シミュレーション結果の値を、第2のシミュレーション結果として記憶する。
【0041】
次いで、故障診断装置12は、ステップ58の故障シミュレーションにおいて、スキャンチェーン24,25のSFF24a〜24c,25a〜25cまで故障が伝搬したか否かを判定する(ステップ59)。故障が伝搬しない場合(NO)、故障診断装置12は、ステップ62aに移行する。一方、故障が伝搬した場合(YES)、故障診断装置12は、ステップ60に移行する。
【0042】
次いで、故障診断装置12は、ステップ58の故障シミュレーションにおける各SFF24a〜24c,25a〜25cの信号値を用いて、空間圧縮タイプの圧縮器26をシミュレーションし、チップ外部端子での出力結果を得る(ステップ60)。図1(a)に示すテスト装置11は、半導体装置20の外部端子と電気的に接続され、圧縮器26の出力信号レベルを観測する。従って、故障診断装置12は、故障シミュレーションにおける各SFF24a〜24c,25a〜25cの信号値に基づいて、圧縮器26から出力されるテスト応答をシミュレーションにより得る。
【0043】
次いで、故障診断装置12は、圧縮器26のシミュレーション結果(「SIM結果」と表記)と、テスト装置11による圧縮器26の観測結果とが一致するか否かを判定する(ステップ61)。即ち、故障診断装置12は、ステップ54において読み込んだパターンに対応するテスト応答(テスト装置11の観測結果)を、フェイル情報14から読み込む。そして、故障診断装置12は、読み込んだテスト応答と、ステップ60におけるシミュレーションにより得られた信号レベルと比較し、テスト応答とシミュレーション結果とが一致するか否かを判定する。故障診断装置12は、シミュレーション結果と観測結果とが一致しない場合(NO)にステップ62aに移行し、シミュレーション結果と観測結果とが一致する場合(YES)にステップ62bに移行する。
【0044】
ステップ62aにおいて、故障診断装置12は、圧縮器27の入力値として、上記第1のシミュレーション結果(A)を採用する。一方、ステップ62bにおいて、故障診断装置12は、圧縮器27の入力値として、上記第2のシミュレーション結果(B)を採用する。つまり、故障診断装置12は、観測結果とシミュレーション結果とが一致しない場合に、論理シミュレーションにより得られた値(A)を採用し、観測結果とシミュレーション結果とが一致する場合に故障シミュレーションにより得られた値(B)を採用する。
【0045】
次いで、故障診断装置12は、上記のステップ62a又はステップ62bにおいて採用した値を用いて、時間圧縮タイプの圧縮器27の状態をシミュレーションする(ステップ63)。そして、故障診断装置12は、シミュレーション結果を、仮定した縮退故障に対応付けて記憶する。そして、故障診断装置12は、ステップ53に移行する。
【0046】
ステップ53において、故障診断装置12は、全てのパターンに対する処理を終了したと判定した場合(判定:YES)、図5に示すステップ64に移行する。
次に、故障診断装置12は、圧縮器27のシミュレーション結果と、テスト装置11による圧縮器27の観測結果とに基づいて、仮定した縮退故障に対するスコアKCを算出する(ステップ64)。時間圧縮タイプの圧縮器27に対するシミュレーション結果と一致したテスト装置11の観測結果の数をKm、圧縮器27に含まれるSFFの総数をKnとし、スコアKCを、
KC=Km÷Kn×100
により算出する。シミュレーション結果と観測結果とが全て一致する場合、一致数Kmは、圧縮器27に含まれるSFFの総数Knと等しく、スコアKCの値は「100」となる。従って、スコアKCの値が「100」に近いほど、仮定した縮退故障が真である可能性が高い。
【0047】
次いで、故障診断装置12は、全ての故障仮定箇所に対する処理を終了したか否かを判定する(ステップ67)。全ての故障箇所に対する処理を終了していない場合(判定:NO)、故障診断装置12は、図4に示すステップ52に移行する。一方、全ての故障箇所に対する処理を終了した場合(判定YES)、故障診断装置12は、次のステップ66に移行する。
【0048】
次いで、故障診断装置12は、レポートを作成する(ステップ66)。即ち、故障診断装置12は、全ての故障仮定箇所に対応するスコアKCを含む故障候補16を作成する。そして、故障診断装置12は、処理を終了する。
【0049】
次に、上記のように構成された故障診断装置12の作用を説明する。
[ドライブ故障の説明]
先ず、ドライブ故障について説明する。
【0050】
図7(a)に示すように、半導体装置20には複数本(図において2本)の配線71,72が形成され、信号は、配線71,72を介して伝達される。これらの配線71,72は、ネットリストに従って形成され、モジュール(セルやパッド等)の間を接続する。尚、図7(a)において、信号は図の左側から右側に向って伝達されるものとする。
【0051】
例えば、配線71において、図7(b)に示すように、オープン故障が発生する、つまり断線する。この場合、配線71aから配線71bに信号が伝達されない。そして、この配線71bの信号レベルは、隣接ネット、即ち配線72との間のカップリング容量73により、配線72の信号レベルの影響を受ける。このように、他の配線の影響を受ける故障をドライブ故障と呼ぶ。なお、ドライブ故障は、複数の隣接ネットの影響を、同時に又は何れか一方を支配的に受ける故障、隣接ネットの信号値の組合せ(=テストパターン)によって振る舞いが変る場合、等を含む。
【0052】
上記したように、ドライブ故障は、隣接ネットの信号値により、0縮退故障として観測される場合と、1縮退故障として観測される場合がある。
したがって、テスト装置11において観測されたフェイルが、故障仮定箇所を0縮退故障と仮定したシミュレーション結果と、故障仮定箇所を1縮退故障と仮定したシミュレーション結果の何れかで説明できる場合、この故障仮定箇所が図8(b)に示すドライブ故障モデルであると推定することができる。なお、図8(a)は、正常なドライブモデルを示す。つまり、セル81の出力端子はセル82の入力端子に接続され、セル83の出力端子は、セル84の入力端子に接続されている。これに対し、ドライブ故障モデルは、セル81の出力端子は未接続であり、セル82の入力端子はセル83の出力端子に接続されている。このようなドライブ故障モデルを故障仮定箇所に設定し、故障シミュレーションを実行する。
【0053】
従って、図9(a)に示すように、セル91,92間のオープン故障は、図9(b)に示すドライブ故障モデルを設定し、故障シミュレーションを実行する。その結果、図10に示すように、テスト装置により、ドライブネットの信号値と等しい観測結果(「テスタ(故障)」と表記)が得られる。尚、ドライブネットは、図9(b)に示す配線93を介して伝達される信号ネットである。
【0054】
図10に示すように、テスト装置の観測結果において、正常時の信号値が「0」であってテスタの信号値が「1」の場合、テスタにおいてフェイル(Fail)している。この状態は、故障シミュレーション結果(「故障SIM結果」と表記)の1縮退故障(SA1)を設定した結果「1(故障、TFSF)」により説明される。故障シミュレーションは、設定した1縮退故障により、正常時と異なる信号値をシミュレーション結果として出力する。つまり、1縮退故障により説明される。
【0055】
同様に、テスト応答「0(Fail)」は、0縮退故障(SA0)を設定した結果「0(故障、TFSF)」により説明される。故障シミュレーションは、設定した0縮退故障により、正常時と異なる信号値をシミュレーション結果として出力する。つまり、0縮退故障により説明される。
【0056】
なお、図10中の「TFSF」は、テスタでフェイル、故障シミュレーションでフェイル(Tester Fail and Simulation Fault)を示す。また、「TPSF」は、テスタでパス、故障シミュレーションでフェイル(Tester Pass and Simulation Fault)を示す。
【0057】
故障診断処理において、上記の図10に示すドライブネットを特定することは、困難である。それは、故障仮定箇所毎に、半導体装置20のレイアウトデータから隣接ネットを抽出しなければならないため、隣接ネットの抽出に非常に多くの時間を要するからである。また、故障仮定箇所は、例えば2つのセルの間に設定されるため、その2つのセルが離間して配置されていると、その間の配線に対する隣接ネットが対象となるため、隣接ネットの抽出に非常に多くの時間を要する。また、故障仮定箇所として設定したネットの配線が、2つの配線に挟まれている場合、それら2つの隣接ネットの何れの信号が支配的か、又は2つの隣接ネットが共に影響するか、不明である。従って、ドライブネットを特定することは、実質的に不可能ということになる。また、複数の隣接ネットの影響を同時に受ける場合や、隣接ネットのテストパターンによって振る舞いが変る場合、不良箇所の特定前に、実際の不良チップで発生している物理現象の完全な予測は不可能である。
【0058】
[本実施形態の説明]
本実施形態の故障診断装置12は、空間圧縮回路の故障シミュレーション結果と、空間圧縮回路のテスタ観測結果とに基づいて、圧縮前のテスト応答、つまりスキャンチェーン24,25の各SFF24a〜24c,25a〜25cに保持された信号レベルを推測する。故障診断装置12は、推測した信号レベルにより時間圧縮回路の状態をシミュレーションする。そして、故障診断装置12は、時間圧縮回路のシミュレーション結果に基づいて、故障箇所を推定する。
【0059】
詳述すると、不良箇所の信号は、例えばCMOS構造の半導体装置の場合に論理値「0」又はロン塵「1」に落ち着き、1つのテストパターンにおいて、0縮退故障,1縮退故障,故障なしのいずれかとして観測される。従って、故障診断装置12は、故障仮定箇所に縮退故障を設定した回路情報を故障シミュレーションした結果と、テスト装置11による観測結果とを比較する。そして、故障診断装置12は、故障シミュレーション結果と観測結果とが一致した場合、設定した縮退故障が活性化したと判定する。これにより、圧縮器27(時間圧縮回路)の故障シミュレーションにおいて、不確定な部分を無くすことができる。
【0060】
つまり、縮退故障を設定した故障シミュレーション結果とテスト装置11の観測結果が一致している場合、設定した縮退故障は、物理動作、つまり半導体装置20の動作と一致している。従って、半導体装置20では、テストパターンに対して、ドライブ故障が活性化している可能性が高いと判定することができる。このため、故障診断装置12は、圧縮器27の入力信号レベル、つまり、スキャンチェーン24,25の各SFF24a〜24c,25a〜25cに保持した信号レベルに、故障シミュレーションの結果を採用する。
【0061】
また、縮退故障を設定した故障シミュレーション結果とテスト装置11の観測結果が一致していない場合、設定した縮退故障は、物理動作、つまり半導体装置20の動作と一致していない。従って、半導体装置20では、テストパターンに対して、ドライブ故障が活性化していない可能性が高いと判定することができる。このため、故障診断装置12は、圧縮器27の入力信号レベル、つまり、スキャンチェーン24,25の各SFF24a〜24c,25a〜25cに保持した信号レベルに、論理シミュレーションの結果を採用する。
【0062】
このように、故障診断装置12は、縮退故障を設定した故障シミュレーション結果とテスト装置11の観測結果の比較結果に応じて、論理シミュレーションの結果又は故障シミュレーションの結果を採用する。これにより、隣接ネットを特定することなくドライブ故障の活性化を判定することができ、圧縮器27(時間圧縮回路)の故障シミュレーションを行うことができる。
【0063】
故障診断装置12は、圧縮器27の故障シミュレーションの結果と、テスト装置11の観測結果に基づいて、故障仮定箇所のスコアを算出する。そして、故障診断装置12は、全ての故障仮定箇所のスコアを含むレポートを作成する。スコアは、圧縮器27のシグネチャの総ビット数に対する、故障シミュレーション結果とテスト装置11の観測結果とが互いに一致するビットの数の割合である。従って、スコアの値が大きいほど、一致するビット数が多い、つまり、設定した故障仮定箇所が正しい(真)である可能性が高いことを示す。
【0064】
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1)半導体装置20のスキャンチェーン24,25はロジック回路21にテストパターンを供給し、ロジック回路21の各点における信号レベルを保持する。第1の圧縮器26は、スキャンチェーン24,25の出力信号を、スキャンチェーン24,25の幅方向に圧縮する。第2の圧縮器27は、スキャンチェーン24,25の出力信号を、スキャンチェーン24,25の長さ方向に圧縮する。
【0065】
テスト装置11は、テストパターン13を半導体装置20に供給し、各圧縮器26,27の出力信号を観測してフェイル情報14を生成する。
故障診断装置12は、半導体装置20の故障仮定箇所に縮退故障を設定し、シミュレーションを実施する。故障診断装置12は、シミュレーションにより得た圧縮器26の出力信号と、テスト装置11により観測した圧縮器26の出力信号とを比較し、その比較結果に応じて圧縮器27の入力信号を設定してシミュレーションを実施する。そして、故障診断装置12は、シミュレーションにより得た圧縮器27の出力信号と、テスト装置11により観測した圧縮器27の出力信号に基づいて、故障仮定箇所のスコアを算出する。
【0066】
故障仮定箇所のスコアは、その値が大きいほど、シミュレーションにより得た圧縮器27の出力信号と、テスト装置11により観測した圧縮器27の出力信号とが一致する、つまり、故障仮定箇所に設定した縮退故障が正しい(真である)ことを示す。従って、圧縮器26のみを用いた場合と比べ、故障箇所の候補とする箇所を少なくすることができ、故障箇所推定の精度低下を抑制することができる。また、ドライブ故障に対して、隣接ネットを特定する必要がない。診断時間の長期化を防ぎ、実質的に有効な時間で故障診断を行うことができる。
【0067】
(2)故障診断装置12は、縮退故障を設定して故障シミュレーションを実施した結果、故障がSFF24a〜24c,25a〜25cまで伝搬しない場合、論理シミュレーションの結果における各SFF24a〜24c,25a〜25cの信号レベルを採用する。一方、故障診断装置12は、故障がSFF24a〜24c,25a〜25cまで伝搬した場合、故障シミュレーションの結果におけるSFF24a〜24c,25a〜25cの信号レベルを採用し、圧縮器26をシミュレーションする。そして、故障診断装置12は、シミュレーションにより得た圧縮器26の出力信号と、テスト装置11により観測した圧縮器26の出力信号とを比較する。これにより、隣接ネットを特定することなくドライブ故障の活性化を判定することができ、圧縮器27(時間圧縮回路)の故障シミュレーションを行うことができる。
【0068】
尚、上記各実施形態は、以下の態様で実施してもよい。
・空間系の圧縮器26として例えば排他的論理和回路(EOR回路)を用いたが、その他の圧縮器を用いても良い。
【0069】
・時間系の圧縮器27として例えば多入力線形帰還シフトレジスタ(MISR)を用いたが、その他の圧縮器、例えば、線形帰還シフトレジスタ(LFSR;Linear Feedback Shift Register)を用いても良い。
【0070】
・故障診断装置12が実行する処理を適宜変更してもよい。例えば、上記実施形態では、図4,5に示すように、選択した故障仮定箇所に対して、全てのテストパターンについて圧縮器27の状態をシミュレーションするようにした。これに対し、1つのテストパターンを選択し、そのテストパターンについて、全ての故障箇所に対して圧縮器27の状態をシミュレーションするようにしてもよい。
【0071】
・上記実施形態では、圧縮器27の入力信号を、スキャンチェーン24,25の本数と同じに設定したが、スキャンチェーンの本数よりも少ない数を入力信号の数として設定してもよい。その場合、スキャンチェーンと圧縮器27との間に、スキャンチェーンの幅方向に圧縮する空間圧縮型の圧縮器(例えばEOR回路)を挿入し、その圧縮器にて信号を圧縮して圧縮器27に供給するようにしてもよい。
【0072】
・半導体装置20において、スキャンチェーン24,25と外部出力端子との間に、他の回路が存在してもよい。例えば、スキャンチェーン24,25と圧縮器26との間にマスク回路が存在する構成としてもよい。
【0073】
・上記実施形態に対し、スキャンチェーンの本数、各スキャンチェーンに含まれるSFFの数は、適宜変更されてもよい。
・上記実施の形態では、実際の半導体装置20のテストをテスト装置11にて行い、半導体装置20の回路情報15に基づく故障箇所の推定を故障診断装置12にて行うようにしたが、これらを1つの装置にて行うようにしてもよい。
【0074】
・上記実施の形態では、テスト装置11にテストパターン13を入力する構成としたが、半導体装置にテストパターンを生成する回路を備える構成としてもよい。また、半導体装置に期待値と出力信号とを比較し、比較結果を出力する回路を備えるようにしてもよい。
【符号の説明】
【0075】
11 テスト装置
12 故障診断装置
20 半導体装置
21 ロジック回路
22 自己テスト回路
24,25 スキャンチェーン
26 第1の圧縮器
27 第2の圧縮器

【特許請求の範囲】
【請求項1】
半導体装置の故障箇所を推定する故障診断装置が実行する故障診断方法であって、
前記半導体装置は、テスト対象の回路にテストパターンを供給し前記テスト対象の回路の各点の信号レベルを保持する複数のスキャンチェーンと、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの幅方向に圧縮する第1の圧縮器と、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの長さ方向に圧縮する第2の圧縮器とを含み、
記憶装置には、前記第1の圧縮器及び前記第2の圧縮器の出力信号をテスト装置にて観測した第1の観測結果及び第2の観測結果がそれぞれ記憶され、
前記故障診断装置は、
故障仮定箇所に縮退故障を設定して前記第1の圧縮器をシミュレーションし、
前記第1の圧縮器のシミュレーション結果と前記第1の観測結果とを比較した結果に基づいて前記第2の圧縮器の入力信号を設定して前記第2の圧縮器をシミュレーションし、
前記第2の圧縮器のシミュレーション結果と、前記第2の観測結果とに基づいて、前記故障仮定箇所のスコアを算出する、
ことを特徴とする故障診断方法。
【請求項2】
前記故障診断装置は、
テストパターンにより前記テスト対象の回路と前記複数のスキャンチェーンを論理シミュレーションし、
前記論理シミュレーションによる故障仮定箇所の信号値に応じて前記故障仮定箇所に縮退故障を設定して前記テスト対象の回路と前記複数のスキャンチェーンを故障シミュレーションし、
前記第1の圧縮器のシミュレーション結果と前記第1の観測結果とを比較した結果に基づいて、前記シミュレーション結果と前記第1の観測結果とが一致する場合に前記故障シミュレーションの結果を前記第2の圧縮器の入力値に設定し、前記シミュレーション結果と前記第1の観測結果とが一致しない場合に前記論理シミュレーションの結果を前記第2の圧縮器の入力値に設定する、
ことを特徴とする請求項1記載の故障診断方法。
【請求項3】
前記故障診断装置は、
前記故障シミュレーションの結果に基づいて前記スキャンチェーンまで故障が伝搬したか否かを判定し、
前記故障が前記スキャンチェーンまで伝搬しない場合、前記論理シミュレーションの結果を前記第2の圧縮器の入力値に設定し、
前記故障が前記スキャンチェーンまで伝搬した場合、前記故障シミュレーションの結果を前記第1の圧縮器の入力値に設定して前記第1の圧縮器をシミュレーションする、
ことを特徴とする請求項2記載の故障診断方法。
【請求項4】
半導体装置の故障箇所を推定する故障診断装置であって、
前記半導体装置は、テスト対象の回路にテストパターンを供給し前記テスト対象の回路の各点の信号レベルを保持する複数のスキャンチェーンと、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの幅方向に圧縮する第1の圧縮器と、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの長さ方向に圧縮する第2の圧縮器とを含み、
記憶装置には、前記第1の圧縮器及び前記第2の圧縮器の出力信号をテスト装置にて観測した第1の観測結果及び第2の観測結果がそれぞれ記憶され、
故障仮定箇所に縮退故障を設定して前記第1の圧縮器をシミュレーションし、前記第1の圧縮器のシミュレーション結果と前記第1の観測結果とを比較した結果に基づいて前記第2の圧縮器の入力信号を設定して前記第2の圧縮器をシミュレーションし、前記第2の圧縮器のシミュレーション結果と、前記第2の観測結果とに基づいて、前記故障仮定箇所のスコアを算出する、
ことを特徴とする故障診断装置。
【請求項5】
半導体装置をテストするテストシステムであって、
前記半導体装置は、テスト対象の回路にテストパターンを供給し前記テスト対象の回路の各点の信号レベルを保持する複数のスキャンチェーンと、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの幅方向に圧縮する第1の圧縮器と、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの長さ方向に圧縮する第2の圧縮器とを含み、
テストパターンを前記複数のスキャンチェーンを介して前記テスト対象の回路にシフトインさせ、前記テスト対象の回路の各点の信号レベルを前記複数のスキャンチェーンにキャプチャさせ、前記複数のスキャンチェーンから前記第1の圧縮器と前記第2の圧縮器へシフトアウトさせ、前記第1の圧縮器及び前記第2の圧縮器の出力信号を観測した第1の観測結果及び第2の観測結果をそれぞれ記憶装置に記憶するテスト装置と、
前記半導体装置の回路情報と前記テストパターンに基づいて、故障仮定箇所に縮退故障を設定して前記第1の圧縮器をシミュレーションし、前記第1の圧縮器のシミュレーション結果と前記第1の観測結果とを比較した結果に基づいて前記第2の圧縮器の入力信号を設定して前記第2の圧縮器をシミュレーションし、前記第2の圧縮器のシミュレーション結果と、前記第2の観測結果とに基づいて、前記故障仮定箇所のスコアを算出する故障診断装置と、
を含むテストシステム。
【請求項6】
半導体装置の故障箇所を推定する故障診断装置が実行するプログラムであって、
前記半導体装置は、テスト対象の回路にテストパターンを供給し前記テスト対象の回路の各点の信号レベルを保持する複数のスキャンチェーンと、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの幅方向に圧縮する第1の圧縮器と、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの長さ方向に圧縮する第2の圧縮器とを含み、
記憶装置には、前記第1の圧縮器及び前記第2の圧縮器の出力信号をテスト装置にて観測した第1の観測結果及び第2の観測結果がそれぞれ記憶され、
前記故障診断装置が実行するプログラムは、
故障仮定箇所に縮退故障を設定して前記第1の圧縮器をシミュレーションするステップと、
前記第1の圧縮器のシミュレーション結果と前記第1の観測結果とを比較した結果に基づいて前記第2の圧縮器の入力信号を設定して前記第2の圧縮器をシミュレーションするステップ、
前記第2の圧縮器のシミュレーション結果と、前記第2の観測結果とに基づいて、前記故障仮定箇所のスコアを算出するステップと、
を含む、プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−173201(P2012−173201A)
【公開日】平成24年9月10日(2012.9.10)
【国際特許分類】
【出願番号】特願2011−37101(P2011−37101)
【出願日】平成23年2月23日(2011.2.23)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】