故障検出の対象となる半導体ICチップ(テストチップ)、及びこの半導体ICチップの良品としての半導体ICチップ(良品チップ)各々に構築されている回路を動作させ、テストチップ及び良品チップ各々に構築されている回路網中の各信号経路から出力された出力結果が互いに一致しているか、或いは不一致であるかを判定する。ここで、不一致であると判定された場合には、この不一致であると判定された信号経路に故障が生じていると判断する。一方、一致していると判定された場合には、テスト周期を短い周期に変更して、再び上記動作を繰り返し実行することにより、テストチップの故障検出を継続する。
図1は、本発明による半導体集積装置の故障検出方法に従って半導体ICチップの故障検出を行う故障検出システムの構成を示す図である。
図1に示すように、かかる故障検出システムは、テストパターンメモリ1、クロック生成部2、テストチップ3、良品チップ4、テスト結果メモリ5、表示部6、及びテスタ10から構成される。尚、テストチップ3は、故障テストの対象となる半導体ICチップであり、良品チップ4は、この故障テスト対象となる半導体ICチップと同一の回路網が構築されているものであり、本故障検出システム以外の故障診断システムによって既に良品と認定されている半導体ICチップである。
テストパターンメモリ1には、テスト対象となる半導体ICチップの機能(又は構造)を検証する為のテストパターンが予め記憶されている。例えば、テストパターンメモリ1には、図2に示すように、第1番目のテストパターンとしてTP1、第2番目のテストパターンとしてTP2、第3番目のテストパターンとしてTP3、・・・、最終の第n番目のテストパターンとしてTPnの各々が記憶されている。この際、各テストパターンTPは、図2に示すように、テストチップ3及び良品チップ4各々の入力端子Q1〜QK(K:2以上の整数)に各々印加する為の論理値0又は1のビット群からなる。テストパターンメモリ1は、テスタ10からテスト開始指令信号RSが供給されると、上記クロック信号CLKに同期して、図3に示すように、テストパターンTP1,TP2,TP3,・・・・,TPn各々を順次読み出し、テストチップ3及び良品チップ4各々の入力端子Q1〜QKに供給する。この際、図3に示すように、各テストパターンTPの読み出し周期が後述するが如きテスト周期TSSとなる。尚、テストパターンTP1,TP2,TP3,・・・・,TPn各々がテストチップ3及び良品チップ4各々に供給されている期間をそれぞれテスト期間T1,テスト期間T2,テスト期間T3,・・・・,テスト期間Tnと称する。
クロック生成部2は、テスタ10から供給されたテスト周期指定信号TCにて指定されたテスト周期TSSに対応した周波数のクロック信号を生成し、これをクロック信号CLKとして上記テストパターンメモリ1、テストチップ3及び良品チップ4の各々に供給する。
テストチップ3は、上記クロック信号CLKに応じて、その内部に構築されている回路網を動作させることにより、入力端子Q1〜QKに供給された各テストパターンTPに応じた出力結果YTSを図3に示すように順次、テスタ10に供給する。
良品チップ4は、上記クロック信号CLKに応じて、その内部に構築されている回路網を動作させることにより、入力端子Q1〜QKに供給された各テストパターンTPに応じた出力結果YRFを図3に示すように順次、テスタ10に供給する。
テスタ10は、例えば図4に示す如き故障検出フローに従って上記出力結果YTS及び出力結果YRFに基づく故障診断結果を求め、これをテスト結果メモリ5に記憶させると共に、その故障診断結果を表す画像を表示部6で表示させる。
以下に、図4に示す如き故障検出フローに従ってテスタ10が実行する故障検出処理について説明する。
図4において、先ず、テスタ10は、テスト対象となる半導体ICチップの仕様上における推奨動作周波数に対応した推奨動作周期TRを初期のテスト周期TSSとして指定するテスト周期指定信号TCをクロック生成部2に供給する(ステップS1)。ステップS1の実行により、クロック生成部2は、テスト周期TSS(=TR)に対応した周波数を有するクロック信号CLKを、上記テストパターンメモリ1、テストチップ3及び良品チップ4の各々に供給する。次に、テスタ10は、テスト開始指令信号RSをテストパターンメモリ1に供給する(ステップS2)。これにより、テストパターンメモリ1は、図3に示すように、推奨動作周期TRを示すテスト周期TSS毎に、テストパターンTP1,TP2,TP3,・・・・,TPnを順次読み出して、テストチップ3及び良品チップ4の各々に供給する。この際、テストチップ3は、テストパターンTP1,TP2,TP3,・・・・,TPn各々に応じてその内部に構築されている回路網を動作させることにより、図3に示すように、TP1に応じた出力結果YTS1,TP2に応じた出力結果YTS2,TP3に応じた出力結果YTS3,・・・・,TPnに応じた出力結果YTSnの各々を順次、テスタ10に供給する。更に、良品チップ4においても、テストチップ3と同様に、上記テストパターンTP1,TP2,TP3,・・・・,TPn各々に応じてその内部に構築されている回路網を動作させることにより、TP1に応じた出力結果YRF1,TP2に応じた出力結果YRF2,TP3に応じた出力結果YRF3,・・・・,TPnに応じた出力結果YRFnの各々を順次、テスタ10に供給する。
この間、テスタ10は、各テスト期間T毎に、テストチップ3の出力結果YTS(YTS1〜YTSn)と、良品チップ4の出力結果YRF(YRF1〜YRFn)とを図3に示すストローブポイントSPのタイミングで取り込み、両者が一致しているか否かを示す比較結果データA(A1〜An)を生成する(ステップS3)。例えば、図3において、テスト期間T1では、テストパターンメモリ1から読み出されたテストパターンTP1に応じて、テストチップ3は出力結果YTS1、良品チップ4は出力結果YRF1を各々出力するので、テスタ10は、YTS1及びYRF1が互いに一致しているか否かを示す比較結果データA1を生成する。又、次のテスト期間T2では、テストパターンメモリ1から読み出されたテストパターンTP2に応じて、テストチップ3は出力結果YTS2、良品チップ4は出力結果YRF2を各々出力するので、テスタ10は、YTS2及びYRF2が互いに一致しているか否かを示す比較結果データA2を生成する。
次に、テスタ10は、上記ステップS3において生成した比較結果データA1〜Anの中に、不一致を示すデータが存在するか否かを判定する(ステップS4)。ステップS4において、不一致を示すデータが存在すると判定された場合、つまり、テストチップ3に故障が生じていると判定された場合、テスタ10は、テストチップ3の出力結果YTS1〜YTSn及び良品チップ4の出力結果YRF1〜YRFn各々の内から、上記した不一致を示す比較結果データAに対応した出力結果YTS及びYRFを抽出する(ステップS5)。そして、テスタ10は、不一致を示す比較結果データAに対応した出力結果YTS及びYRFに基づき故障診断処理(説明せず)を実行する(ステップS6)。かかる故障診断処理により、テスタ10は、テストチップ3に構築されている回路網中の複数の信号経路の内で、故障が生じている信号経路を示す故障診断結果データを生成し、これをテスト結果メモリ5に記憶させる。
一方、上記ステップS4において、比較結果データA1〜An中に、不一致を示すデータが存在しないと判定された場合、テスタ10は、現在のテスト周期TSSが、所定の最小テスト周期TMINと同一であるか否かを判定する(ステップS7)。かかるステップS7において、テスト周期TSSが、最小テスト周期TMINとは異なると判定された場合、テスタ10は、現在のテスト周期TSSから所定の周期短縮値rを減算したものを新たなテスト周期TSSとして指定すべきテスト周期指定信号TCをクロック生成部2に供給する(ステップS8)。ステップS8の実行により、クロック生成部2は、前回のテスト周期よりも周期短縮値rの分だけ短い周期に変更したテスト周期TSSに対応した周波数を有するクロック信号CLKを、上記テストパターンメモリ1、テストチップ3及び良品チップ4の各々に供給する。かかるステップS8の実行後、テスタ10は、上記ステップS2の実行に戻って前述した如き動作を繰り返し実行する。
すなわち、テスタ10は、前回のテスト周期よりもその周期を短い周期に変更したテスト周期TSSにて、上記テストパターン(TP1〜TPn)に基づきテストチップ3及び良品チップ4各々の回路網を動作させ、両者の出力結果(YTS1〜YTSn、YRF1〜YRFn)が一致しているか否かによりテストチップ3の故障を検出するという故障検出テストを実施する(ステップS8、S2〜S4)。つまり、テスト周期TSSを周期短縮値rずつ段階的に短くしつつ、各段階毎に、上記の如き故障検出テストを実施するのである。この間、ステップS4においてテストチップ3及び良品チップ4同士の出力結果が不一致であると判定された場合、つまりテストチップ3に故障が有ると判定された場合、或いは、ステップS7においてテスト周期TSSが最小テスト周期TMINと同一であると判定された場合、テスタ10は、その故障箇所を診断する為の故障診断処理(ステップS6)を実行して、この故障検出テストを終了する。尚、ステップS7において、テスト周期TSSが最小テスト周期TMINと同一であると判定された場合、テスタ10は、ステップS6による故障診断処理において、テストチップ3には故障が無いことを示す故障診断結果データを生成し、これをテスト結果メモリ5に記憶させる
以下に、図1に示す故障検出システムによる故障検出動作について、図5に示す如き回路網がテストチップ3及び良品チップ4に各々構築されている場合を一例にとって説明する。
尚、図5に示す回路網は、クロック信号CLKに同期して動作するフリップフロップFF1〜FF6と、FF1及びFF4間に構築された回路ブロックAと、FF2及びFF5間に構築された回路ブロックBと、FF3及びFF6間に構築された回路ブロックCとからなる。回路ブロックAの出力がFF4を介して出力値Y1として出力され、回路ブロックBの出力がFF5を介して出力値Y2として出力され、回路ブロックCの出力がFF6を介して出力値Y3として出力される。回路ブロックA〜Cの各々は、アンドゲート、オアゲート、インバータ等の複数のロジック素子からなる、いわゆる組み合わせ回路からなり、2つのFF間の信号経路上において直列に接続されるロジック素子の段数は回路ブロックA〜C毎に異なる。尚、回路ブロックA〜C各々の仕様上での遅延時間、つまり遅延故障が生じていない場合での遅延時間は各々、
回路ブロックA:7ns
回路ブロックB:5ns
回路ブロックC:3ns
であるとする。又、かかる回路網に対して規定されている推奨動作周期TRは8ns、テスト周期TSSを段階的に短縮する為の周期短縮値rは2ns、最小テスト周期TMINは4nsとする。
テスタ10は、先ず、ステップS1において8nsの推奨動作周期TRをテスト周期TSSとして指定し、ステップS2〜S4による故障検出テストを実行する。この際、回路ブロックA〜Cの遅延時間はいずれも8nsよりも短い。よって、各回路ブロックの信号経路又は素子においてその状態が論理値「1」又は「0」に固定されてしまう0/1縮退故障が生じていない限り、図6Aに示すように、テストチップ3の出力結果YTS(図5に示す出力値Y1〜Y3)は、良品チップ4の出力結果YRF(図5に示す出力値Y1〜Y3)と同様に所望の期待値と一致する。一方、テストチップ3側に上述のような0/1縮退故障が生じていると、テストチップ3の出力結果YTSは期待値と一致しなくなり、それ故に良品チップ4の出力結果YTSとも一致しなくなる。よって、この際、ステップS4において、テストチップ3に故障有りと判定される。尚、0/1縮退故障が生じていない場合には、図6Aに示すように、テストチップ3の出力結果YTS及び良品チップ4の出力結果YTSは互いに一致するので、ステップS8が実行される。すなわち、この段階で、テストチップ3には0/1縮退故障が無いと判断されることになる。ステップS8において、テスタ10は、現在の8nsのテスト周期TSSから2nsの周期短縮値rを減算した6nsを新たなテスト周期TSSとする。
次に、テスタ10は、この6nsのテスト周期TSSにて、ステップS2〜S4による故障検出テストを実行する。かかるテストにより、テストチップ3に構築されている図5に示す如き回路網中に生じている遅延故障の検出が為される。
ここで、図5に示すように、回路ブロックA〜Cの内で回路ブロックAのみが、6nsのテスト周期TSSよりも長い7nsの遅延時間を有する。よって、テスト周期TSSよりもその遅延時間が長いことから、回路ブロックAでは、たとえ遅延故障が生じていなくても、図6Bに示すように、良品チップ4の出力結果YRF(出力値Y1)及びテストチップ3の出力結果YTS(出力値Y1)は共に所望の期待値と一致しなくなる。尚、回路ブロックB及びCの遅延時間はいずれも6nsよりも短いので、その遅延時間がTSSよりも長くなるような遅延故障が生じていない限り、図6Bに示すように、テストチップ3の出力結果YTS(出力値Y2、Y3)及び良品チップ4の出力結果YRF(出力値Y2、Y3)は共に所望の期待値と一致する。すなわち、図6Bに示すように、良品チップ4の出力値Y1及びテストチップ3の出力値Y1は共に期待値と一致しなくなり、良品チップ4の出力値Y2(Y3)及びテストチップ3の出力値Y2(Y3)は共に期待値と一致した状態となる。従って、テストチップ3に構築されている回路網(図5に示す)中に遅延故障が生じていなければ、良品チップ4の出力結果YRF(Y1〜Y3)と、テストチップ3の出力結果YTS(Y1〜Y3)とが一致することになる。ところが、テストチップ3に構築されている回路ブロックBにおいて遅延故障が生じ、その遅延量が本来有るべき5nsよりも長い7nsになってしまうと、6nsのテスト周期TSSよりもその遅延時間が長いことから、テストチップ3の回路ブロックBに対応した出力値Y2が図6Cに示すように期待値と一致しなくなる。よって、この際、ステップS4においてテストチップ3に故障有りと判定され、更に、図6Cに示すように、テストチップ3の出力値Y2と、良品チップ4の出力値Y2とが一致していないことから、ステップS6の故障診断にて、回路ブロックBに遅延故障が生じていると判断する。尚、回路ブロックB及びCのいずれにも遅延故障が生じていない場合には、図6Bに示すように、テストチップ3の出力結果YTS(Y1〜Y3)及び良品チップ4の出力結果YTS(Y1〜Y3)は互いに一致するので、ステップS8が実行される。ステップS8では、テスタ10は、現在の6nsのテスト周期TSSから2nsの周期短縮値rを減算した4nsを新たなテスト周期TSSとする。
次に、テスタ10は、この4nsのテスト周期TSSにて、ステップS2〜S4による故障検出テストを実行する。
ここで、図5に示すように、回路ブロックA〜Cの内で回路ブロックA及びBは共に、4nsのテスト周期TSSよりも長い、各々7ns、5nsの遅延時間を有する。よって、テスト周期TSSよりもその遅延時間が長いことから、回路ブロックA及びBでは、たとえ遅延故障が生じていなくても、図6Dに示すように、良品チップ4の出力結果YRF(出力値Y1,Y2)及びテストチップ3の出力結果YTS(出力値Y1,Y2)は共に所望の期待値と一致しなくなる。尚、回路ブロックCの遅延時間は4nsのテスト周期TSSよりも短いので、その遅延時間がTSSよりも長くなるような遅延故障が生じていない限り、図6Dに示すように、テストチップ3の出力結果YTS(出力値Y3)及び良品チップ4の出力結果YRF(出力値Y3)は共に所望の期待値と一致する。すなわち、図6Dに示すように、良品チップ4の出力値Y1,Y2及びテストチップ3の出力値Y1,Y2は共に期待値と一致しなくなり、良品チップ4の出力値Y3及びテストチップ3の出力値Y3だけが期待値と一致した状態となる。従って、テストチップ3に構築されている回路網(図5に示す)中に遅延故障が生じていなければ、良品チップ4の出力結果YRF(Y1〜Y3)と、テストチップ3の出力結果YTS(Y1〜Y3)とが一致することになる。ところが、テストチップ3に構築されている回路ブロックCにおいて遅延故障が生じ、その遅延量が本来有るべき3nsよりも長い5nsになってしまうと、4nsのテスト周期TSSよりもその遅延時間が長いことから、テストチップ3の回路ブロックCに対応した出力値Y3が図6Eに示すように期待値と一致しなくなる。よって、この際、ステップS4においてテストチップ3に故障有りと判定され、更に、図6Eに示すように、テストチップ3の出力値Y3と、良品チップ4の出力値Y3とが一致していないことから、ステップS6の故障診断にて、回路ブロックCによる信号経路上に遅延故障が生じていると判断され、この回路ブロックCを示す故障診断結果データが生成される。一方、回路ブロックCに遅延故障が生じていない場合には、図6Dに示すように、テストチップ3の出力結果YTS(Y1〜Y3)及び良品チップ4の出力結果YTS(Y1〜Y3)は互いに一致する。ここで、テスト周期TSSは、最小テスト周期TMINと同一の4nsであるので、テスタ10は、テストチップ3が故障無しの良品であると判断してその旨を示す故障診断結果データを生成して、故障検出動作を終了する。
以上、詳述したように、図1に示す故障検出システムでは、先ず、故障検出の対象となる半導体ICチップ(テストチップ3)に対して、この半導体ICチップとして既に故障無しの診断が為された良品としての半導体ICチップ(良品チップ4)を用意し、テスト周期TSSにてテストチップ3及び良品チップ4各々に構築されている回路を動作させる(動作ステップ)。この際、テストチップ3及び良品チップ4各々に構築されている回路網中の各信号経路(回路ブロックA〜C)から出力された出力結果が互いに一致しているか、或いは不一致であるかを判定する(判定ステップ)。ここで、不一致であると判定された場合には、この不一致であると判定された信号経路(回路ブロックA〜C)に故障が生じていると判断して当該信号経路を示す故障診断結果データを生成する(故障診判定ステップ)。一方、上記判定ステップにおいて、一致していると判定された場合には、上記のテスト周期TSSを短い周期に変更し(テスト周期変更ステップ)、再び上記動作ステップ及び判定ステップを繰り返し実行することにより、テストチップ3の遅延故障を検出するようにしている。
すなわち、テスト周期TSSを推奨動作周期TRよりも短い周期に変更してテストチップ3を動作させて、その出力結果を期待値と比較することにより、テストチップ3に構築されている回路網中に生じている遅延故障を検出することが可能となる。ところが、テスト周期TSSを推奨動作周期TRよりも短い周期に変更すると、遅延故障が生じていない正常な回路においても期待値とは異なる値が出力されてしまうので、実際には、期待値との対比では遅延故障に対する良否の判定はできない。そこで、良品半導体ICチップとしての良品チップ4を用意し、この良品チップ4の出力結果とテストチップ3の出力結果とが一致していれば、テストチップ3には遅延故障が生じていないと判定するようにしたのである。これにより、推奨動作周期よりも短いテスト周期でテストチップ3を動作させることによる精度の高い遅延故障検出が可能となる。
尚、図5に示す一例では、テスタ10は、半導体ICチップ(テストチップ3、良品チップ4)の出力端子を介してFF4〜FF6各々の出力値Y1〜Y3を出力結果(YTS、YRF)として取り込むようにしている。しかしながら、半導体ICチップに構築されている回路網に故障テスト用のスキャン設計が施されている場合には、半導体ICチップの出力端子に直に関与することのない内部の信号経路各々に対しても、容易に故障検出を行うことが可能となる。
スキャン設計では、半導体ICチップに構築されている各フリップフロップとして、図7に示す如きスキャンタイプのフリップフロップ(以下、スキャンFFと称する)を採用する。スキャンFFは、通常のフリップフロップと同様に、クロック入力端、信号入力端D及び信号出力端Qを備え、更に、スキャンテスト信号を入力する為のスキャン入力端SDと、上記信号入力端Dに代わりスキャン入力端SDから入力された信号の取り込みを有効にする為のスキャンイネーブル端SSを備えている。スキャンFFは、例えば論理値「0」の信号がスキャンイネーブル端SSに供給されている間は、信号入力端Dに供給された信号をクロック信号のタイミングで取り込んで信号出力端Qから出力する。一方、論理値「1」の信号がスキャンイネーブル端SSに供給されている間は、スキャン入力端に供給された信号をクロック信号のタイミングで取り込んで信号出力端Qから出力する。
図8は、スキャン設計を採用した回路の一例を示す図である。
図8に示す回路は、アンドゲートG1〜G10と、それぞれが上記のようなスキャンFFからなるフリップフロップF1〜F8とからなるものである。尚、図8においてはクロック信号系についてはその記述を省略してある。
図8に示すように、スキャン設計を採用した場合、半導体ICチップ(テストチップ3、良品チップ4)においては、通常の入出力端の他に、スキャンイネーブル入力端SEN、スキャンテストデータ入力端SIN及びスキャンテストデータ出力端SOUTが設けられる。スキャンテストデータ入力端SINには、前述した如きテストパターンTPをシリアルの形態にしたスキャンテストデータが入力される。この際、かかるスキャンテストデータに応じた各内部素子の動作結果が、シリアルのスキャンテスト結果データとしてスキャンテストデータ出力端SOUTから順次出力される。スキャンイネーブル入力端SENには、後述するスキャンシフトモード及びキャプチャモードの内の一方を選択する為のスキャンイネーブル信号が入力される。更に、スキャン設計を採用した場合には、図8に示すように、フリップフロップF1〜F8各々の信号出力端Qを他のフリップフロップのスキャン入力端SDに接続する。尚、図8においては、スキャンテストデータ入力端SINを初段のフリップフロップとしてのF1のスキャン入力端SDに接続し、最終段のフリップフロップとしてのF8の信号出力端Qをスキャンテストデータ出力端SOUTに接続している。フリップフロップF1〜F8各々のスキャンイネーブル端SSには、半導体ICチップのスキャンイネーブル入力端SENを介してスキャンイネーブル信号が共通に供給される。
かかる構成において、論理値「1」のスキャンイネーブル信号がフリップフロップF1〜F8各々に供給されている間、フリップフロップF1〜F8はシフトレジスタとして機能する。つまり、スキャンテストデータ入力端SINを介してフリップフロップF1に取り込まれたスキャンテストデータが、クロック信号に応じて順次F2,F3,F4,F5,F6,F7,F8へと取り込まれて行く(スキャンシフトモード)。一方、論理値「0」のスキャンイネーブル信号がフリップフロップF1〜F8各々に供給されている間は、フリップフロップF1〜F8は各々自身の信号入力端Dに供給された信号をクロック信号に応じて取り込み、これを信号出力端Qから出力する(キャプチャモード)。
ここで、図8に示す如き回路網が構築されているテイストチップ3に対して故障検出テストを実施する場合、テスタ10は、先ず、上記スキャンシフトモードにて、テストパターンTPをシリアル化したスキャンテストデータを、遅延故障のテスト対象とする信号経路の初段の素子に供給する。例えば、図8に示す経路Bを遅延故障のテスト対象とする場合、テスタ10は、スキャンテストデータを、テストチップ3及び良品チップ4各々のスキャンテストデータ入力端SINに供給すると共に、8パルス分のクロック信号CLKを供給することにより、そのスキャンテストデータを各フリップフロップに供給する。このとき各フリップフロップを介して経路Bの各ゲートに初期値が供給され、かつ、次のキャプチャモードの最初のクロック信号によって、経路Bの始点フリップフロップF2で発生する信号遷移を経路Bの終点フリップフロップF5まで伝播させるような値が回路に設定される。次に、テスタ10は、キャプチャモードに切り替え、テスト周期TSSの間隔を持ったクロック信号CLKを2パルス分だけテストチップ3及び良品チップ4各々に供給する。最初のクロックにより、経路Bの始点フリップフロップF2に信号遷移が発生し、2番目のクロックにより、ゲートG3に供給されたスキャンテストデータに対応した経路Bでの動作結果が、フリップフロップF5に取り込まれる。次に、テスタ10は、再びスキャンシフトモードに切り替え、8パルス分のクロック信号CLKをテストチップ3及び良品チップ4各々に供給することにより、各フリップフロップに取り込まれている動作結果を取り出す。経路Bでの動作結果は、フリップフロップF6,F7,F8を介してスキャンテストデータ出力端SOUTから出力される。この際、テスタ10は、ステップS3において、テストチップ3及び良品チップ4各々のスキャンテストデータ出力端SOUTから出力された「経路Bでの出力結果」をそれぞれ取り込み、両者の一致、不一致を示す比較結果データAを生成するのである。かかる一連の処理を、図8に示す経路A、経路C及び経路Dに対しても同様に実行する。ここで、図4に示すステップS4〜S9を実行することにより、テストチップ3に構築されている回路網(例えば図8に示す回路)中において遅延故障が生じている経路を特定する。
例えば、良品チップ4に構築されている図8に示す回路網中の経路A〜D各々の遅延時間が各々、
経路A:7ns
経路B:6ns
経路C:4ns
経路D:5ns
である際に、テストチップ3に構築されている図8に示す回路網中のゲートG8の出力に1ns分の遅延故障が生じて、本来4nsであるべき経路Cの遅延時間が5ns、本来5nsであるべき経路Dの遅延時間が6nsに各々なった場合には、図9に示すようなテスト結果が得られる。尚、かかるテスト結果は、周期短縮値rを0.1nsとし、テスト周期TSSを7nsから0.1nsずつ段階的に短縮して、前述した故障検出テストを実行した際のテスト結果を示すものである。
先ず、テスト周期TSSが7nsの故障検出テストでは、たとえ経路C及びD中に遅延故障が生じていても、テストチップ3及び良品チップ4各々の経路A〜D各々での遅延時間は全てテスト周期TSS(7ns)以下となる。よって、図9に示すようにテストチップ3及び良品チップ4各々の出力結果(経路A〜D各々毎の出力結果)は全て所望の期待値と一致する。従って、この段階では、テストチップ3及び良品チップ4同士の出力結果が一致するので故障無しと判断する。
次に、テスト周期TSSが6.9ns〜6.0nsの範囲では、テスト周期TSSが、経路Aの遅延時間である7nsよりも短いことから、たとえ経路A中に遅延故障が生じていなくても、図9に示すように良品チップ4及びテストチップ3各々における経路Aでの出力結果は共に所望の期待値と一致しなくなる。一方、経路B、並びに、遅延故障の為にその遅延時間が4nsから5nsに増加してしまった経路C、遅延故障の為にその遅延時間が5nsから6nsに増加してしまった経路D各々の遅延時間は、全て6.9ns〜6.0nsなるテスト周期TSS以下となる。よって、図9に示すように、良品チップ4及びテストチップ3各々における経路B〜D各々での出力結果は全て所望の期待値と一致することになる。したがって、テスト周期TSSが6.9ns〜6.0nsなる範囲内での故障検出テストでも、テストチップ3及び良品チップ4同士による経路A〜D各々での出力結果は全て一致するので、故障無しと判断する。
次に、テスト周期TSSが5.9nsの故障検出テストでは、テスト周期TSSが、経路Aの遅延時間である7ns、経路Bの遅延時間である6nsよりも短いことから、経路A及びB中に遅延故障が生じていなくても、図9に示すように良品チップ4及びテストチップ3各々における経路A及びBでの出力結果は共に所望の期待値と一致しなくなる。又、経路Cでは、遅延故障が生じていない場合(良品チップ4)には遅延時間が4nsであり、遅延故障が生じている場合(テストチップ3)には遅延時間が5nsであり、共に5.9nsのテスト周期TSSよりも短い。よって、図9に示すように、良品チップ4及びテストチップ3各々における経路Cでの出力結果は共に所望の期待値と一致することになる。ところが、経路Dでは、遅延故障が生じていない場合(良品チップ4)には遅延時間が5nsで、遅延故障が生じている場合(テストチップ3)には遅延時間が6nsとなる。つまり、良品チップ4に構築されている回路網中の経路Dの遅延時間は5.9nsのテスト周期TSSよりも短いので、図9に示すようにその出力結果は所望の期待値と一致する。しかしながら、テストチップ3に構築されている回路網中の経路Dの遅延時間は6.0nsであり、5.9nsのテスト周期TSSよりも長くなるので、図9に示すようにその出力結果は所望の期待値とは不一致となる。したがって、テスト周期TSSが5.9nsの故障検出テストでは、図9に示すようにテストチップ3及び良品チップ4同士による経路A〜D各々での出力結果の内で、経路Dの出力結果が不一致となるので、図4のステップS5及びS6による故障診断の結果、経路D上に遅延故障が生じていると判断する。
ここで、図4に示す故障検出フローでは、テストチップ3及び良品チップ4の出力結果に不一致があると判定された場合には、その時点で判定された不一致箇所に基づいて最終的な故障診断を行うようにしているが、その後も、更にテスト周期TSSを短縮した故障検出テストを実行することにより、故障箇所を絞り込むようにしても良い。
図10は、かかる点に鑑みて為された、図4に示す故障検出フローの変形例を示す図である。
尚、図10に示すフローでは、図4に示されるステップS6の後にステップS10及びS11を追加したものであり、他のステップについては図4に示すものと同一である。よって、以下に、ステップS10及びS11の動作を中心にして図10に示す故障検出フローを実行した場合の動作について説明する。
図10において、ステップS6による故障診断処理の実行後、テスタ10は、故障箇所の絞り込みが為されたか否かの判定を行う(ステップS10)。例えば、ステップS10においてテスタ10は、半導体ICチップに構築されている回路網中において故障検出ターゲットとなる全ての箇所で、テストチップ3及び良品チップ4各々の出力結果が不一致となった場合に故障箇所の絞り込みが為されたと判定する。ステップS10において、故障箇所の絞り込みが為されていないと判定された場合、テスタ10は、ステップS7の実行に移行する。すなわち、テスタ10は、前回のテスト周期よりも更に周期短縮値rの分だけ短くしたテスト周期TSSにて、ステップS8、S2〜S4による故障検出テストを実施するのである。又、ステップS10において、故障箇所の絞り込みが為されたと判定された場合、テスタ10は、ステップS11による故障箇所抽出処理により、各テスト毎に求められた故障診断結果データによって示される情報、つまり故障有りと判断した全ての信号経路に基づいて故障が生じている素子の候補を抽出する。そして、その故障箇所を示す情報を最終的な故障診断結果として表す故障診断結果データをテスト結果メモリ5に記憶させるのである。
図11は、図10に示す故障検出フローによって、図8に示す回路網が構築されているテストチップ3に対して故障検出テストを行った際のテスト結果の一例を示す図である。
尚、かかるテスト結果は、周期短縮値rを0.1nsとし、テスト周期TSSを7nsから0.1nsずつ段階的に短縮して各段階毎に、前述した故障検出テストを実行した際のテスト結果を示すものである。ここで、図4に示す故障検出フローでは、図9に示すように、テスト周期TSSが5.9nsの段階でテストチップ3及び良品チップ4各々の出力結果が不一致となるので、この段階で故障検出テストを終了している。しかしながら、図10に示す故障検出フローでは、ステップS10の実行によって、更に、テスト周期TSSを5.9ns〜3.9nsまで0.1nsずつ段階的に短縮させつつ、各段階毎に故障検出テストを実行するようにしている。
そこで、以下に、5.9ns以下のテスト周期TSSでのテスト結果について説明する。
先ず、テスト周期TSSが5.9ns〜5.0nsの範囲では、経路Aの遅延時間である7ns、経路Bの遅延時間である6nsよりもテスト周期TSSが短くなることから、経路A及びB中に遅延故障が生じていなくても、図11に示すように良品チップ4及びテストチップ3各々における経路A及びBでの出力結果は共に所望の期待値と一致しなくなる。又、経路Cでは、遅延故障が生じていない場合(良品チップ4)には遅延時間が4nsであり、遅延故障が生じている場合(テストチップ3)には遅延時間が5nsであり、共にテスト周期TSS(5.9ns〜5.0ns)以下である。よって、図11に示すように、良品チップ4及びテストチップ3各々における経路Cでの出力結果は共に所望の期待値と一致することになる。ところが、経路Dでは、遅延故障が生じていない場合(良品チップ4)には遅延時間が5ns、遅延故障が生じている場合(テストチップ3)には遅延時間が6nsとなる。つまり、良品チップ4に構築されている回路網中の経路Dの遅延時間はテスト周期TSS(5.9ns〜5.0ns)以下となるので、図11に示すようにその出力結果は所望の期待値と一致する。しかしながら、テストチップ3に構築されている回路網中の経路Dの遅延時間は6.0nsであり、テスト周期TSS(5.9ns〜5.0ns)より長くなるので、図11に示すようにその出力結果は所望の期待値とは不一致となる。
したがって、テスト周期TSSが5.9〜5.0nsなる範囲の故障検出テストでは、図11に示すようにテストチップ3及び良品チップ4同士による経路A〜D各々での出力結果の内で、経路Dの出力結果が不一致となるので、故障有りと判断する。この際、図4のステップS5及びS6による故障診断の結果、経路D上に遅延故障が生じていると判断する。
次に、テスト周期TSSが4.9ns〜4.0nsの範囲では、経路Aの遅延時間である7ns、経路Bの遅延時間である6ns、経路Dの遅延時間である5nsよりもテスト周期TSSが短くなることから、経路A、B及びD中に遅延故障が生じていなくても、図11に示すように良品チップ4及びテストチップ3各々における経路A、B及びDでの出力結果は共に所望の期待値と一致しなくなる。一方、経路Cでは、遅延故障が生じていない場合(良品チップ4)には遅延時間が4nsであり、遅延故障が生じている場合(テストチップ3)には遅延時間が5nsとなる。よって、良品チップ4の経路Cでは、その遅延時間がテスト周期TSS(4.9ns〜4.0ns)以下となるので、図11に示すように良品チップ4の経路Cでの出力結果は所望の期待値と一致する。しかしながら、遅延故障が生じているテストチップ3の経路Cでは、その遅延時間がテスト周期TSS(4.9ns〜4.0ns)より長くなるので、図11に示すようにテストチップ3の経路Cでの出力結果は所望の期待値と不一致となる。
したがって、テスト周期TSSが4.9〜4.0nsなる範囲の故障検出テストでは、図11に示すようにテストチップ3及び良品チップ4同士による経路A〜D各々での出力結果の内で経路Cの出力結果が不一致となるので、故障有りと判断する。この際、図4のステップS5及びS6による故障診断の結果、経路C上に遅延故障が生じていると判断する。
次に、テスト周期TSSが3.9nsなる故障検出テストでは、経路Aの遅延時間である7ns、経路Bの遅延時間である6ns、経路Cの遅延時間である4ns、経路Dの遅延時間である5nsのいずれもがテスト周期TSSよりも長くなることから、図11に示すように良品チップ4及びテストチップ3各々の経路A〜Dでの出力結果は全て所望の期待値と一致しなくなる。
以上の如き一連の故障検出テストにより、テスタ10は、故障診断処理(ステップS6)において、テスト周期TSSが5.0〜5.9nsの際に良品チップ4及びテストチップ3各々の経路Dでの出力結果が互いに一致しなくなり、更に、テスト周期TSSが4.0〜4.9nsの際に経路Cでの出力結果が互いに一致しなくなったことを示す故障診断結果データを生成する。そして、テスタ10は、故障箇所抽出処理(ステップS11)において、上述の如き故障診断結果から、図8に示すように、経路C及び経路Dの共通部分である、ゲートG8又はゲートG9に遅延故障が発生していると判断し、これを最終的な故障診断結果として表す故障診断結果データをテスト結果メモリ5に記憶させる。
このように、図10に示す故障検出処理では、図4に示す故障検出処理と同様に、テスト周期TSSを段階的に短縮させつつ、各テスト周期TSS毎にテストチップ3及び良品チップ4を動作させ、この際得られた両者の出力結果が一致しているか否かを判定することにより故障有り又は無しを判断するという、故障検出テストを実行する。この際、テストチップ3及び良品チップ4各々の出力結果が不一致となった場合にテストチップ3に遅延故障が生じていると判断するにあたり、この遅延故障の判断が為された後も、更にテスト周期TSSを短縮させて上述の故障検出テストを実行することにより、回路網中に生じている故障箇所を絞り込むのである。