JP2005221457A - 論理回路の故障解析方法 - Google Patents
論理回路の故障解析方法 Download PDFInfo
- Publication number
- JP2005221457A JP2005221457A JP2004031773A JP2004031773A JP2005221457A JP 2005221457 A JP2005221457 A JP 2005221457A JP 2004031773 A JP2004031773 A JP 2004031773A JP 2004031773 A JP2004031773 A JP 2004031773A JP 2005221457 A JP2005221457 A JP 2005221457A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- failure
- test
- test response
- bit pattern
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Tests Of Electronic Circuits (AREA)
- Error Detection And Correction (AREA)
Abstract
【課題】テストパターン発生手段、被テスト回路、テスト応答処理手段からなる論理回路BISTで被テスト回路の故障解析するのに、故障を想定したテスト応答とテスト応答圧縮手段の最終状態を対比したルックアップテーブルを作成する方法があるが、故障解析対象の回路規模の増加に伴い、ルックアップテーブルおよびその計算量が膨大になる。
【解決手段】故障の有無を表す論理変数を用いてテスト応答中のデータ0、1を置換した故障テスト応答を考え、テスト応答処理手段TRA1の最終状態をその論理変数を用いて表す。これを用いて、テスト応答処理手段TRA1の最終状態から故障テスト応答中の故障候補を演算により求めることが可能となる。特別な解析容易化回路を追加する必要がないため回路面積の増加がない。テスト応答処理手段として、LFSRだけでなく、広く使用されようとしているMISRにも適用可能である。
【選択図】図1
【解決手段】故障の有無を表す論理変数を用いてテスト応答中のデータ0、1を置換した故障テスト応答を考え、テスト応答処理手段TRA1の最終状態をその論理変数を用いて表す。これを用いて、テスト応答処理手段TRA1の最終状態から故障テスト応答中の故障候補を演算により求めることが可能となる。特別な解析容易化回路を追加する必要がないため回路面積の増加がない。テスト応答処理手段として、LFSRだけでなく、広く使用されようとしているMISRにも適用可能である。
【選択図】図1
Description
本発明は、半導体集積回路などの論理回路において、BIST(Built−In Self Test)が使用されている場合に、被検査回路の故障箇所を特定するための故障解析手法に関するものである。
近年、半導体集積回路の大規模化、多機能・複合機能化などの技術変化が急激に起こっており、品質向上のため、テスト技術がますます重要になっている。テストパターン作成工数の削減や、テスト時間短縮のため、スキャンテストなどのテスト容易化設計が広く使用されるようになり、これに対応した故障解析技術もいくつか研究されている。そして、さらなるテスト開発工数削減を達成するため、論理回路のBISTが研究されている。
図9に一般的な論理回路BISTの構成を示す。以下、図9を使用して、回路動作を説明する。
図9において、論理回路BISTは、テストパターン発生手段TPG、被テスト回路CUT、および、テスト応答処理手段TRAから構成されている。
テストパターン発生手段TPGは、線形フィードバックレジスタ(LFSR:Linear Feedback Shift Registers)などで構成され、被テスト回路CUTの構成に応じて故障検出率が高くなるような時系列ビットパターンを発生する。
被テスト回路CUTは、通常の動作モードの他にBISTモードを持ち、BISTモードにおいては、テストパターン発生手段TPGからの時系列ビットパターンが入力される。
テスト応答処理手段TRAは、線形フィードバックシフトレジスタもしくは多入力シグネチャレジスタ(MISR:Multiple Inputs Signature Registers)が使用され、被テスト回路CUTが出力するテスト応答ビットパターンをレジスタ群のデータパターンとして格納する。最終状態において、レジスタ群に格納されているデータパターンが予め準備された期待値パターンと一致していれば良品と判定し、不一致があれば不良品と判定する。
歩留り向上や品質向上のためには、半導体集積回路上の故障箇所を特定する故障解析技術が不可欠であるが、BISTの場合には困難が伴う。これは、テスト応答処理手段TRAのレジスタに格納されたデータパターンが圧縮されたものであり、被テスト回路CUTが出力したテスト応答ビットパターンそのものではないからである。
テスト応答処理手段TRAに格納された情報から、被テスト回路CUTが出力したテスト応答ビットパターン中のエラービットを特定する故障解析手法における従来の技術としては次のものがある。
単一ビット故障として、被テスト回路CUTが出力するテスト応答ビットパターン中にビット故障が1つしかない場合を対象とし、テスト応答処理手段TRAに入力されるビット故障を含んだテスト応答ビットパターンとテスト応答処理手段TRAのレジスタ群に格納されたデータパターンを対比したルックアップテーブルを作成して、ビット故障候補を抽出する。一般に、被テスト回路CUTが出力するテスト応答ビットパターンが非常に長いのに対し、テスト応答処理手段TRAのレジスタ数は限定されているため、レジスタ群に格納された1つのデータパターンにビット故障の発生パターンが複数個対応する。
真のビット故障を特定するための手法として、テスト応答処理手段TRAの中に特性多項式の異なる線形フィードバックレジスタLFSRA、LFSRBを2つ使用し、各線形フィードバックレジスタに格納し得るデータパターンの数の最小公倍数を被テスト回路CUTが出力するテスト応答ビットパターンの長さ以上にする。各線形フィードバックレジスタの最終状態からそれぞれビット故障候補が求められるが、両者で一致してビット故障候補として挙げられたものが真のビット故障となる(特許文献1、非特許文献1参照)。
特開平11−202028号公報
Charles E. Stroud & T. Raju Damarla, "Improving The Efficiency of Error Identification via Signature Analysis" IEEE VLSI Test Symposium, pp244-249, 1995.
しかしながら、上記の従来技術では、すべての単一ビット故障の場合について、被テスト回路CUTが出力するテスト応答ビットパターンに対して、テスト応答処理手段TRAのレジスタに格納されたデータパターンを計算して、ルックアップテーブルが必要である。被テスト回路CUTの規模の増大につれて、ルックアップテーブルの規模も増大し、計算量も増大する。複数ビットの故障を解析対象に含めると、ルックアップテーブルの規模やその計算量は膨大なものとなる。
また、テスト応答処理手段TRAの内部に線形フィードバックシフトレジスタLFSRA、LFSRBを2つ設けるため、回路面積が増大し、製品コストの上昇につながる。
本発明の目的は、従来の回路構成に対して特別な追加回路を必要とせず、ルックアップテーブルなしに直接的に演算処理により、ビット故障候補を探索することのできる論理回路の故障解析方法を提供することにある。
前記の目的を達成するため、本発明にかかる論理回路の故障解析方法は、論理回路がテストパターン発生手段と、被テスト回路と、テスト応答処理手段から構成され、前記テストパターン発生手段は内部で生成したテスト入力ビットパターンを出力し、前記被テスト回路は前記テスト入力ビットパターンを入力とし、内部回路動作を経て1系統からなるテスト応答ビットパターンを出力し、前記テスト応答処理手段は線形フィードバックシフトレジスタで構成され、前記線形フィードバックシフトレジスタは前記テスト応答ビットパターンを入力とし、内部回路動作を経て前記テスト応答ビットパターンの情報を前記線形フィードバックシフトレジスタを構成する複数段のレジスタに格納し、前記複数段のレジスタのシフトレジスタ構成としての最終段の状態を前記線形フィードバックシフトレジスタの出力とする前記論理回路において、前記被テスト回路の故障箇所を解析する方法であって、前記被テスト回路に故障がない場合の第1のテスト応答ビットパターンをビット位置の属性を持つ論理変数により置換して作成した第1の故障テスト応答ビットパターンを前記テスト応答処理手段に入力した場合に、前記複数段のレジスタが最終状態をビット位置の属性を要素とする集合を定義し、故障解析対象の前記論理回路が示す前記レジスタの最終状態と比較して単一ビット故障候補を算出するものである。
さらに、2ビット故障に対しては、算出した単一ビット故障候補と別に集合の演算により第2のビット故障候補を算出し、2ビット故障の一方を含むか、2ビット故障を全く含まないかの場合を分けて、2つのビット故障候補の組合せで2ビット故障候補を算出するものである。
また、線形フィードバックシフトレジスタの出力において、単一ビット故障候補または2ビット故障候補のビット位置の属性を持つものとビット位置の属性を持たないものにより、修正出力ビットパターンを算出し、実際に得られる前記線形フィードバックシフトレジスタの出力と比較して前記単一ビット故障候補または前記2ビット故障候補が真のビット故障であるか判定するものである。
さらに、線形フィードバックシフトレジスタに変えて、多入力シグネチャレジスタの場合にテスト応答ビットパターンをビットの長さに応じたものとし、同様に単一ビット故障候補または2ビット故障候補を算出し判定するものである。
論理回路の故障解析方法によれば、テスト応答処理手段として1つの線形フィードバックシフトレジスタだけで故障解析を行うことができ、2個以下のビット故障候補であれば、テスト応答ビットパターンとテスト応答処理手段の最終状態の間のルックアップテーブルを作成することなく、演算処理によって求めることができる。
また、テスト応答処理手段として1つの線形フィードバックシフトレジスタだけで故障解析を行うことができ、与えられたビット故障候補に対して出力ビットパターンを利用することにより真のビット故障を求めることができる。
また、テスト応答処理手段として1つの多入力シグネチャレジスタだけで故障解析を行うことができ、2個以下のビット故障候補であれば、テスト応答ビットパターンとテスト応答処理手段の最終状態の間のルックアップテーブルを作成することなく、演算処理によって求めることができる。
さらに、テスト応答処理手段として1つの多入力シグネチャレジスタだけで故障解析を行うことができ、与えられたビット故障候補に対して出力ビットパターンを利用することにより真のビット故障を求めることができる。
以下、本発明の実施の形態を具体的な例を使用して説明する。
(実施の形態1)
図1は、本発明の第1の実施の形態における論理回路の故障解析方法による単一ビット故障候補の探索手順を示した工程図である。
図1は、本発明の第1の実施の形態における論理回路の故障解析方法による単一ビット故障候補の探索手順を示した工程図である。
TPG1はテストパターン発生手段、CUT1は被テスト回路、TRA1はテスト応答処理手段であり、テストパターン発生手段TPG1が出力するテスト入力ビットパターンTP1を被テスト回路CUT1に入力し、被テスト回路CUT1が出力するテスト応答ビットパターンTR1をテスト応答処理手段TRA1に入力する。
テスト応答処理手段TRA1は線形フィードバックシフトレジスタLFSR1で構成される。本実施の形態においては、図1に示す通り4個のレジスタFF0〜FF3および2個の排他的論理和ゲートEXOR1、2からなるものとする。被テスト回路CUT1から入力されるテスト応答ビットパターンTR1は13ビットの長さであるとし、被テスト回路CUT1に故障がない場合は、
1001000010001 (1)
であるとする。ここで、左端のビットが最初の時刻に入力され、時刻の進展とともに右隣のビットが順次入力される。
1001000010001 (1)
であるとする。ここで、左端のビットが最初の時刻に入力され、時刻の進展とともに右隣のビットが順次入力される。
一般に、ビットパターンは多項式によって表現することができる。多項式による表現では、線形フィードバックシフトレジスタはレジスタ数、排他的論理和ゲートの配置によって決まる特性多項式P(x)を有し、入力されるテスト応答ビットパターンを表す入力多項式G(x)、出力ビットパターンを表す出力多項式Q(x)、線形フィードバックシフトレジスタの最終状態を表す多項式R(x)との間に、以下の関係式が成立する。
G(x)= P(x)Q(x)+R(x) (2)
本実施の形態では、
G(x)= x12+x9+x4+1 (3)
P(x)= x4+x+1 (4)
であり、Q(x)、R(x)は以下のように計算される。ここで、例えば、式(3)は13ビット目、10ビット目、5ビット目、1ビット目が1であり、その他のビットが0であることを示す。その他の式が表すものも同様である。
本実施の形態では、
G(x)= x12+x9+x4+1 (3)
P(x)= x4+x+1 (4)
であり、Q(x)、R(x)は以下のように計算される。ここで、例えば、式(3)は13ビット目、10ビット目、5ビット目、1ビット目が1であり、その他のビットが0であることを示す。その他の式が表すものも同様である。
Q(x)= x8+x4+x (5)
R(x)= x2+x+1 (6)
上記の計算について、詳細な実行手順を図7に示す。図7において、式(2)に対して、xiの係数の演算は排他的論理和を使用しており、線形フィードバックシフトレジスタLFSR1の最終状態R(x)はFF0:1、FF1:1、FF2:1、FF3:0となる。
R(x)= x2+x+1 (6)
上記の計算について、詳細な実行手順を図7に示す。図7において、式(2)に対して、xiの係数の演算は排他的論理和を使用しており、線形フィードバックシフトレジスタLFSR1の最終状態R(x)はFF0:1、FF1:1、FF2:1、FF3:0となる。
次に、線形フィードバックシフトレジスタLFSR1に入力されるテスト応答ビットパターンTR1に故障がある場合を考える(工程1)。
では、テスト応答ビットパターンにおいて、データ0の存在する全てのビットとビット位置iの属性を併せ持つ論理変数diで置換し、データ1の存在する全てのビットとビット位置iの属性を併せ持つ論理変数/diで置換した故障テスト応答ビットパターンを定義する。ここで、/diはdiの論理反転を表す。多項式表示においては、入力多項式G(x)において、xiの係数がデータ0であれば、これを論理変数diで置換し、データ1であれば、これを論理変数/diで置換した多項式を作り、これを故障入力多項式G’(x)と定義すると、次の式が得られる。
G’(x)=/d12x12+d11x11+d10x10+/d9x9+d8x8+d7x7+d6x6
+d5x5+/d4x4+d3x3+d2x2+d1x1+/d0 (7)
上式(7)で導入した論理変数dは、本来0であるべきものが1に故障する可能性のあるデータという意味を持っている。また、論理変数/dは、本来1であるべきものが0に故障する可能性のあるデータという意味を持っている。いずれの場合もd=0は故障でないことを、d=1は故障であることを意味する。
+d5x5+/d4x4+d3x3+d2x2+d1x1+/d0 (7)
上式(7)で導入した論理変数dは、本来0であるべきものが1に故障する可能性のあるデータという意味を持っている。また、論理変数/dは、本来1であるべきものが0に故障する可能性のあるデータという意味を持っている。いずれの場合もd=0は故障でないことを、d=1は故障であることを意味する。
故障入力多項式G’(x)に対する線形フィードバックシフトレジスタLFSR1の故障出力多項式Q’(x)および最終状態R’(x)を計算するにあたり、式を見易くするために排他的論理和演算について次の表記方法を導入する。
di^dj → di,j (^は排他的論理和演算を表す) (8)
これを用いると、3つ以上の項に対する排他的論理和演算についても、
di^dj^dk = di,j^dk = di^dj,k = di,j,k (9)
のように表すことができる。
これを用いると、3つ以上の項に対する排他的論理和演算についても、
di^dj^dk = di,j^dk = di^dj,k = di,j,k (9)
のように表すことができる。
論理反転演算に関しては、式(8)の表記方法を用いて次のように表すことができる。
/di^dj = di^/dj = /di,j (10)
さらに、排他的論理和の定義から、以下の関係が成立する。
さらに、排他的論理和の定義から、以下の関係が成立する。
0^di = di^0 = di
1^di = di^1 = /di
/di^0 = 0^/di = /di
/di^1 = 1^/di = di
di^di = /di^/di = 0
di^/di = /di^di = 1 (11)
式(8)〜(11)を用いると、Q’(x)、R’(x)は次のように表される。
1^di = di^1 = /di
/di^0 = 0^/di = /di
/di^1 = 1^/di = di
di^di = /di^/di = 0
di^/di = /di^di = 1 (11)
式(8)〜(11)を用いると、Q’(x)、R’(x)は次のように表される。
Q’(x)= /d12x8+d11x7+d10x6+d9,12x5+/d8,11,12x4
+d7,10,11x3+d6,9,10,12x2+/d5,8,9,11x+d4,7,8,10,12(12)
R’(x)= d3,6,7,9,11,12x3+/d2,5,6,8,10,11,12x2
+/d1,4,5,7,9,10,11,12x+/d0,4,7,8,10,12 (13)
図8にQ’(x)およびR’(x)の算出における詳細な実行手順を示す。
+d7,10,11x3+d6,9,10,12x2+/d5,8,9,11x+d4,7,8,10,12(12)
R’(x)= d3,6,7,9,11,12x3+/d2,5,6,8,10,11,12x2
+/d1,4,5,7,9,10,11,12x+/d0,4,7,8,10,12 (13)
図8にQ’(x)およびR’(x)の算出における詳細な実行手順を示す。
Q(x)とQ’(x)、R(x)とR’(x)を比較すると次のことが分かる。すなわち、式(5)、(6)、(12)、(13)より、Q(x)およびR(x)においてxiの係数が0であれば、Q’(x)およびR’(x)のxiの係数がdkの形になっており、Q(x)およびR(x)においてxiの係数が1であれば、Q’(x)およびR’(x)のxiの係数が/dkの形になっている。
そこで、実際の半導体集積回路においてテストを行い、結果として出力多項式Qa(x)および線形フィードバックシフトレジスタLFSR1の最終状態Ra(x)が得られた場合を考える(工程2)。
Ra(x)とR(x)とでxiの係数が一致する場合、R’(x)のxiの係数は
dm,…,n = 0 または /dm,…,n = 1 (14)
となっている。この場合、dm、…、dnは全て0であるか、もしくは、偶数個の1を含み残りは全て0であるかのどちらかである。これは、テスト応答ビットパターン中の該当するビット位置に故障が全く存在しないか、もしくは、偶数個の故障が存在することを意味する。
dm,…,n = 0 または /dm,…,n = 1 (14)
となっている。この場合、dm、…、dnは全て0であるか、もしくは、偶数個の1を含み残りは全て0であるかのどちらかである。これは、テスト応答ビットパターン中の該当するビット位置に故障が全く存在しないか、もしくは、偶数個の故障が存在することを意味する。
Ra(x)とR(x)とでxiの係数が一致しない場合、R’(x)のxiの係数は
dm,…,n = 1 または /dm,…,n = 0 (15)
となっている。この場合、dm、…、dnは奇数個の1を含み残りは全て0でなければならない。これは、テスト応答ビットパターン中の該当するビット位置に奇数個の故障が存在することを意味する。
dm,…,n = 1 または /dm,…,n = 0 (15)
となっている。この場合、dm、…、dnは奇数個の1を含み残りは全て0でなければならない。これは、テスト応答ビットパターン中の該当するビット位置に奇数個の故障が存在することを意味する。
Qa(x)とQ(x)についても、同様のことが言える。
以上の考察をもとに、テスト応答ビットパターンに単一ビット故障が存在する場合の故障候補を探索する手順について説明する。
故障入力多項式G’(x)に対する線形フィードバックシフトレジスタLFSR1の最終状態R’(x)において、各xiの係数が含むテスト応答ビットパターンのビット位置を要素とする集合Diを定義する。図1の線形フィードバックシフトレジスタLFSR1についてはD0〜D3が定義でき、式(13)より次のようになる。
D0 ={ 0, 4, 7, 8, 10, 12 } (16)
D1 ={ 1, 4, 5, 7, 9, 10, 11, 12 } (17)
D2 ={ 2, 5, 6, 8, 10, 11, 12 } (18)
D3 ={ 3, 6, 7, 9, 11, 12 } (19)
実際の半導体集積回路におけるテスト結果として、線形フィードバックシフトレジスタLFSR1の最終状態Ra(x)が次のようになった場合を考える。
D1 ={ 1, 4, 5, 7, 9, 10, 11, 12 } (17)
D2 ={ 2, 5, 6, 8, 10, 11, 12 } (18)
D3 ={ 3, 6, 7, 9, 11, 12 } (19)
実際の半導体集積回路におけるテスト結果として、線形フィードバックシフトレジスタLFSR1の最終状態Ra(x)が次のようになった場合を考える。
Ra(x)= 0x3+1x2+0x+0 (20)
式(20)と、式(6)に示したテスト応答ビットパターンに故障がない場合の最終状態R(x)を比較すると、x3とx2の係数が一致している。従って、集合D3およびD2の要素が示すテスト応答ビットパターンのビット位置には故障が全く存在しない。ここで、「偶数個の故障の存在」を排除しているのは、単一ビット故障という前提と「偶数個の故障の存在」が矛盾するためである。
式(20)と、式(6)に示したテスト応答ビットパターンに故障がない場合の最終状態R(x)を比較すると、x3とx2の係数が一致している。従って、集合D3およびD2の要素が示すテスト応答ビットパターンのビット位置には故障が全く存在しない。ここで、「偶数個の故障の存在」を排除しているのは、単一ビット故障という前提と「偶数個の故障の存在」が矛盾するためである。
そこで、集合Diについて、Ra(x)とR(x)でxiの係数が一致するものを1つの集合群に分類し、これを集合群Cとする。集合群Cに含まれる全ての集合Diの和集合DCORを定義すると、その要素が示すテスト応答ビットパターンのビット位置には故障が全く存在しない。式(18)、(19)より、DCORは次のように計算される。
DCOR = D2 ∪ D3
={ 2, 3, 5, 6, 7, 8, 9, 10, 11, 12 } (21)
また、Ra(x)とR(x)を比較すると、x1とx0の係数が一致していない。従って、集合D1の要素が示すテスト応答ビットパターンのビット位置のどこか1つに故障が存在し、かつ、集合D0の要素が示すテスト応答ビットパターンのビット位置のどこか1つに故障が存在し、これらは同一のビット位置にある。
={ 2, 3, 5, 6, 7, 8, 9, 10, 11, 12 } (21)
また、Ra(x)とR(x)を比較すると、x1とx0の係数が一致していない。従って、集合D1の要素が示すテスト応答ビットパターンのビット位置のどこか1つに故障が存在し、かつ、集合D0の要素が示すテスト応答ビットパターンのビット位置のどこか1つに故障が存在し、これらは同一のビット位置にある。
そこで、集合Diについて、Ra(x)とR(x)でxiの係数が一致しないものを1つの集合群に分類し、これを集合群Eとする。集合群Eに含まれる全ての集合Diの積集合DEANDを定義すると、その要素が示すテスト応答ビットパターンのビット位置のどこか1つに故障が存在することになる。式(16)、(17)より、DEANDは次のように計算される。
DEAND = D0 ∩ D1
= { 4, 7, 10, 12 } (22)
テスト応答ビットパターン中の単一ビット故障のビット位置は、DEANDの要素であり、かつ、DCORの要素でない。したがって、DEANDとDCORの差集合を求めることにより単一ビット故障候補が得られることになる。これは、式(21)、(22)より次のように計算される(工程3)。
= { 4, 7, 10, 12 } (22)
テスト応答ビットパターン中の単一ビット故障のビット位置は、DEANDの要素であり、かつ、DCORの要素でない。したがって、DEANDとDCORの差集合を求めることにより単一ビット故障候補が得られることになる。これは、式(21)、(22)より次のように計算される(工程3)。
DEAND − DCOR ={ 4 } (23)
以上の手順により、線形フィードバックシフトレジスタLFSR1の最終状態の式(20)に対して、テスト応答ビットパターンの単一ビット故障候補がx4のビット位置にあるという結果が得られた。これは、被テスト回路CUT1に故障がない場合のテスト応答ビットパターンTR1の内容つまり式(1)に対して、次の内容が線形フィードバックシフトレジスタLFSR1に入力されたと推定するものである。
以上の手順により、線形フィードバックシフトレジスタLFSR1の最終状態の式(20)に対して、テスト応答ビットパターンの単一ビット故障候補がx4のビット位置にあるという結果が得られた。これは、被テスト回路CUT1に故障がない場合のテスト応答ビットパターンTR1の内容つまり式(1)に対して、次の内容が線形フィードバックシフトレジスタLFSR1に入力されたと推定するものである。
1001000000001 (下線部が故障候補) (24)
式(20)とは異なる最終状態に対しても、同様の手順により単一ビット故障候補を探索することが可能である。
式(20)とは異なる最終状態に対しても、同様の手順により単一ビット故障候補を探索することが可能である。
(実施の形態2)
図2は、本発明の第2の実施の形態における論理回路の故障解析方法による2ビット故障候補の探索手順を示した工程図である。
図2は、本発明の第2の実施の形態における論理回路の故障解析方法による2ビット故障候補の探索手順を示した工程図である。
論理回路の構成は図1と変わらないため、重複する符号の説明は省略する。被テスト回路CUT1に故障がない場合のテスト応答ビットパターンとして、式(1)を使用する。したがって、式(1)を入力した場合の線形フィードバックシフトレジスタLFSR1の最終状態は式(6)と同じになる。工程1、2については、同様のため詳しい説明は省略する。
以下、テスト応答ビットパターンに2ビット故障が存在する場合の故障候補を探索する手順について説明する。実際の半導体集積回路におけるテスト結果として、線形フィードバックシフトレジスタLFSR1の最終状態Ra(x)が式(20)のようになった場合を考える。
テスト応答ビットパターンに故障がない場合の最終状態R(x)と比較すると、x2とx3の係数が一致しており、集合D2、D3は集合群Cに属する。従って、2ビット故障の場合、集合群Cに属する集合Diの要素が示すテスト応答ビットパターンのビット位置には故障が全く存在しないか、もしくは、2個の故障が同時に存在する。
また、Ra(x)とR(x)を比較すると、x0とx1の係数が一致しておらず、集合D0、D1は集合群Eに属する。従って、2ビット故障の場合、集合群Eに属する集合Diの要素が示すテスト応答ビットパターンのビット位置のどこか1つに故障が存在するが、これらは同一のビット位置であってもよいし、そうでなくてもよい(工程2)。
以上を踏まえて、2ビット故障の存在する条件は以下のように場合分けされる(工程3)。
条件1.集合DEANDが2ビット故障の一方の故障を含む場合
集合群Cに属する集合Diは、2ビット故障のビット故障候補の両方を同時に含むか、もしくは、全く故障を含まないかのどちらかである。ただし、集合群Cに属する集合Diのうち少なくとも1つは2ビット故障のビット故障候補の両方を含む必要がある(最後の条件がなければ、単一ビット故障となってしまい、2ビット故障という前提と矛盾する。)。
集合群Cに属する集合Diは、2ビット故障のビット故障候補の両方を同時に含むか、もしくは、全く故障を含まないかのどちらかである。ただし、集合群Cに属する集合Diのうち少なくとも1つは2ビット故障のビット故障候補の両方を含む必要がある(最後の条件がなければ、単一ビット故障となってしまい、2ビット故障という前提と矛盾する。)。
条件2.集合DEANDが2ビット故障を全く含まない場合
集合DEOR−DEANDが2ビット故障の両方を同時に含む。集合DEOR−DEANDを、集合群Eに属する集合Diを1つ選択して集合Di−DEANDを計算し、集合Di−DEANDとそれ以外の2つに分けると、それぞれの集合に2ビット故障のビット故障候補が1つずつ含まれる。
集合DEOR−DEANDが2ビット故障の両方を同時に含む。集合DEOR−DEANDを、集合群Eに属する集合Diを1つ選択して集合Di−DEANDを計算し、集合Di−DEANDとそれ以外の2つに分けると、それぞれの集合に2ビット故障のビット故障候補が1つずつ含まれる。
集合群Cに属する集合Diは、2ビット故障のビット故障候補の両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかである。ここで、集合群Cに属する集合Diのうち少なくとも1つが2ビット故障のビット故障候補の両方を含む必要はない。
始めに、集合DEANDが2ビット故障の一方のビット故障候補を含む場合について説明する。式(22)の各要素について2ビット故障の一方のビット故障候補であると仮定して、もう一方のビット故障候補を探索していく。
2ビット故障の一方のビット故障候補をN、もう一方をMとする。
(N=4と仮定した場合)
集合群Eに属する全ての集合Diについてその和集合DEORを定義すると、式(16)、(17)より次のように計算される。
集合群Eに属する全ての集合Diについてその和集合DEORを定義すると、式(16)、(17)より次のように計算される。
DEOR = D0 ∪ D1
={ 0, 1, 4, 5, 7, 8, 9, 10, 11, 12 } (25)
集合DEORの要素が示すテスト応答ビットパターンのビット位置のどこか1つに故障候補が存在し、その故障候補をNと仮定したので、差集合DEOR−{ N }には故障候補は全く存在しないことになる。差集合DEOR−{ N }は次のようになる。
={ 0, 1, 4, 5, 7, 8, 9, 10, 11, 12 } (25)
集合DEORの要素が示すテスト応答ビットパターンのビット位置のどこか1つに故障候補が存在し、その故障候補をNと仮定したので、差集合DEOR−{ N }には故障候補は全く存在しないことになる。差集合DEOR−{ N }は次のようになる。
DEOR −{ N }= DEOR −{ 4 }
={ 0, 1, 5, 7, 8, 9, 10, 11, 12 } (26)
集合群Cに属する集合Diに対し、故障候補を全く含まないDEOR−{ N }との差集合Aiを定義すると、式(18)、(19)、(26)より次のように計算される。
={ 0, 1, 5, 7, 8, 9, 10, 11, 12 } (26)
集合群Cに属する集合Diに対し、故障候補を全く含まないDEOR−{ N }との差集合Aiを定義すると、式(18)、(19)、(26)より次のように計算される。
A2 = D2 −(DEOR−{ N })= { 2, 6 } (27)
A3 = D3 −(DEOR−{ N })= { 3, 6 } (28)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。しかし、式(27)、(28)より、どちらもビット故障候補N=4を含んでいないため、2ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補N=4の仮定は誤りである。
A3 = D3 −(DEOR−{ N })= { 3, 6 } (28)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。しかし、式(27)、(28)より、どちらもビット故障候補N=4を含んでいないため、2ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補N=4の仮定は誤りである。
(N=7と仮定した場合)
差集合DEOR−{ N }は次のようになる。
差集合DEOR−{ N }は次のようになる。
DEOR −{ N }= DEOR −{ 7 }
={ 0, 1, 4, 5, 8, 9, 10, 11, 12 } (29)
集合群Cに属する集合Diに対し、式(27)、(28)と同様に集合Aiを定義すると、式(18)、(19)、(29)より次のように計算される。
={ 0, 1, 4, 5, 8, 9, 10, 11, 12 } (29)
集合群Cに属する集合Diに対し、式(27)、(28)と同様に集合Aiを定義すると、式(18)、(19)、(29)より次のように計算される。
A2 = D2 −(DEOR−{ N })= { 2, 6 } (30)
A3 = D3 −(DEOR−{ N })= { 3, 6, 7 } (31)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。式(31)より、集合A3がビット故障候補N=7を含んでいるので集合A3を選択する。
A3 = D3 −(DEOR−{ N })= { 3, 6, 7 } (31)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。式(31)より、集合A3がビット故障候補N=7を含んでいるので集合A3を選択する。
上記で選択された全ての集合の積集合からビット故障候補N=7を除いて得られる集合ACANDを定義すると、次のように計算される。
ACAND = A3 −{ N } = { 3, 6 } (32)
ACANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
ACANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
M=3とすると、集合群Cに属する集合Diのうち、集合D2はビット故障候補N=7、M=3のどちらも含んでおらず、集合D3はビット故障候補N=7、M=3を同時に含んでおり、2ビット故障が存在するための条件を満たしている。したがって、ビット故障候補N=7、M=3の仮定は正しい。
M=6とすると、集合群Cに属する集合Diのうち、集合D3はビット故障候補N=7、M=6を同時に含んでいるが、集合D2はビット故障候補M=6のみを含んでおり、2ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補N=7、M=6の仮定は誤りである。
(N=10と仮定した場合)
差集合DEOR−{ N }は次のようになる。
差集合DEOR−{ N }は次のようになる。
DEOR −{ N }= DEOR −{ 10 }
={ 0, 1, 4, 5, 7, 8, 9, 11, 12 } (33)
集合群Cに属する集合Diに対し、式(27)、(28)と同様に集合Aiを定義すると、式(18)、(19)、(33)より次のように計算される。
={ 0, 1, 4, 5, 7, 8, 9, 11, 12 } (33)
集合群Cに属する集合Diに対し、式(27)、(28)と同様に集合Aiを定義すると、式(18)、(19)、(33)より次のように計算される。
A2 = D2 −(DEOR−{ N })= { 2, 6, 10 } (34)
A3 = D3 −(DEOR−{ N })= { 3, 6 } (35)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。式(34)より、集合A2がビット故障候補N=10を含んでいるので、集合A2を選択する。
A3 = D3 −(DEOR−{ N })= { 3, 6 } (35)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。式(34)より、集合A2がビット故障候補N=10を含んでいるので、集合A2を選択する。
式(32)と同様に集合ACANDを定義すると、次のように計算される。
ACAND = A2 −{ N } = { 2, 6 } (36)
ACANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
ACANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
M=2とすると、集合群Cに属する集合Diのうち、集合D2はビット故障候補N=10、M=2を同時に含んでおり、集合D3はビット故障候補N=10、M=2のどちらも含んでおらず、2ビット故障が存在するための条件を満たしている。したがって、ビット故障候補N=10、M=2の仮定は正しい。
M=6とすると、集合群Cに属する集合Diのうち、集合D2はビット故障候補N=10、M=6を同時に含んでいるが、集合D3はN=6のみを含んでおり、2ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補N=10、M=6の仮定は誤りである。
(N=12と仮定した場合)
差集合DEOR−{ N }は次のようになる。
差集合DEOR−{ N }は次のようになる。
DEOR −{ N }= DEOR −{ 12 }
={ 0, 1, 4, 5, 7, 8, 9, 10, 11 } (37)
集合群Cに属する集合Diに対し、式(27)、(28)と同様に集合Aiを定義すると、式(18)、(19)、(37)より次のように計算される。
={ 0, 1, 4, 5, 7, 8, 9, 10, 11 } (37)
集合群Cに属する集合Diに対し、式(27)、(28)と同様に集合Aiを定義すると、式(18)、(19)、(37)より次のように計算される。
A2 = D2 −(DEOR−{ N })= { 2, 6, 12 } (38)
A3 = D3 −(DEOR−{ N })= { 3, 6, 12 } (39)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。式(38)、(39)より、集合A2、A3がビット故障候補N=12を含んでいるので、集合A2、A3を選択する。
A3 = D3 −(DEOR−{ N })= { 3, 6, 12 } (39)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。式(38)、(39)より、集合A2、A3がビット故障候補N=12を含んでいるので、集合A2、A3を選択する。
式(32)と同様に集合ACANDを定義すると、次のように計算される。
ACAND =( A2 ∩ A3 )−{ N } = { 6 } (40)
ACANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
ACANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
M=6とすると、集合群Cに属する集合Diのうち、集合D2、D3はともにビット故障候補N=12、M=6を同時に含んでおり、2ビット故障が存在するための条件を満たしている。したがって、ビット故障候補N=12、M=6の仮定は正しい。
次に、集合DEANDが2ビット故障のビット故障候補を全く含まない場合について説明する。集合群Eに属する集合Diから1つを選択して集合Di−DEANDを計算し、その各要素について2ビット故障の一方のビット故障候補であると仮定して、もう一方のビット故障候補を探索していく。
以下、集合D1を選択して具体的に説明する。式(16)、(17)、(22)より集合D0−DEAND、D1−DEANDは次のように計算される。
D0 − DEAND ={ 0, 8 } (41)
D1 − DEAND ={ 1, 5, 9, 11 } (42)
(N=1と仮定した場合)
集合群Eに属する全ての集合Diに対し、集合Di−DEANDがビット故障候補N=1を含まないものを全て選択すると、それらは故障候補Mを共通に含んでいなければならない。そこで、選択された集合の積集合HEANDを定義すると、式(41)、(42)より次のように計算される。
D1 − DEAND ={ 1, 5, 9, 11 } (42)
(N=1と仮定した場合)
集合群Eに属する全ての集合Diに対し、集合Di−DEANDがビット故障候補N=1を含まないものを全て選択すると、それらは故障候補Mを共通に含んでいなければならない。そこで、選択された集合の積集合HEANDを定義すると、式(41)、(42)より次のように計算される。
HEAND = D0 − DEAND = { 0, 8 } (43)
HEANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
HEANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
M=0とすると、集合群Cに属する集合Diのうち、集合D2、D3はともにビット故障候補N=1、M=0のどちらも含んでおらず、2ビット故障が存在するための条件を満たしている。したがって、ビット故障候補N=1、M=0の仮定は正しい。
M=8とすると、集合群Cに属する集合Diのうち、集合D3はビット故障候補N=1、M=8のどちらも含んでいないが、集合D2はビット故障候補M=8のみを含んでおり、2ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補N=1、M=8の仮定は誤りである。
(N=5と仮定した場合)
式(43)と同様に集合HEANDを定義すると、式(41)、(42)より次のように計算される。
式(43)と同様に集合HEANDを定義すると、式(41)、(42)より次のように計算される。
HEAND = D0 − DEAND = { 0, 8 } (44)
HEANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
HEANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
M=0とすると、集合群Cに属する集合Diのうち、集合D3はビット故障候補N=5、M=0のどちらも含んでいないが、集合D2はビット故障候補N=5のみを含んでおり、2ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補N=5、M=0の仮定は誤りである。
M=8とすると、集合群Cに属する集合Diのうち、集合D2はビット故障候補N=5、M=8を同時に含んでおり、集合D3はビット故障候補N=5、M=8のどちらも含んでおらず、2ビット故障が存在するための条件を満たしている。したがって、ビット故障候補N=5、M=8の仮定は正しい。
(N=9と仮定した場合)
式(43)と同様に集合HEANDを定義すると、式(41)、(42)より次のように計算される。
式(43)と同様に集合HEANDを定義すると、式(41)、(42)より次のように計算される。
HEAND = D0 − DEAND = { 0, 8 } (45)
HEANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
HEANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
M=0とすると、集合群Cに属する集合Diのうち、集合D2はビット故障候補N=9、M=0のどちらも含んでいないが、集合D3はビット故障候補N=9のみを含んでおり、2ビット故障が存在するための条件を満たしていない。したがって、N=9、M=0の仮定は誤りである。
M=8とすると、集合群Cに属する集合Diのうち、集合D2はビット故障候補M=8のみを含んでおり、集合D3はビット故障候補N=9のみを含んでおり、2ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補N=9、M=8の仮定は誤りである。
(N=11と仮定した場合)
式(43)と同様に集合HEANDを定義すると、式(41)、(42)より次のように計算される。
式(43)と同様に集合HEANDを定義すると、式(41)、(42)より次のように計算される。
HEAND = D0 − DEAND = { 0, 8 } (46)
HEANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
HEANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
M=0とすると、集合群Cに属する集合Diのうち、集合D2、D3はともにビット故障候補N=11のみを含んでおり、2ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補N=11、M=0の仮定は誤りである。
M=8とすると、集合群Cに属する集合Diのうち、集合D2はビット故障候補N=11、M=8を同時に含んでいるが、集合D3はビット故障候補N=11のみを含んでおり、2ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補N=11、M=8の仮定は誤りである。
以上の手順により、線形フィードバックレジスタの最終状態(20)に対して、時系列ビットパターンの2ビット故障候補が
x3 と x7 (47)
x2 と x10
x6 と x12
x0 と x1
x5 と x8
のビット位置にあるという結果が得られた。これは、被テスト回路CUT1に故障がない場合のテスト応答ビットパターン(1)に対して、次のようなテスト応答ビットパターンが線形フィードバックシフトレジスタに入力されたと推定するものである。
x3 と x7 (47)
x2 と x10
x6 と x12
x0 と x1
x5 と x8
のビット位置にあるという結果が得られた。これは、被テスト回路CUT1に故障がない場合のテスト応答ビットパターン(1)に対して、次のようなテスト応答ビットパターンが線形フィードバックシフトレジスタに入力されたと推定するものである。
1001010011001 (下線部が故障候補) (48)
1011000010101
0001001010001
1001000010010
1001100110001
式(20)とは異なる最終状態に対しても、同様の手順により2ビット故障のビット故障候補を探索することが可能である。
1011000010101
0001001010001
1001000010010
1001100110001
式(20)とは異なる最終状態に対しても、同様の手順により2ビット故障のビット故障候補を探索することが可能である。
(実施の形態3)
図3は、本発明の第3の実施の形態における論理回路の故障解析方法による、単一ビット故障候補または2ビット故障候補が与えられた場合に真のビット故障を特定する手順である。
図3は、本発明の第3の実施の形態における論理回路の故障解析方法による、単一ビット故障候補または2ビット故障候補が与えられた場合に真のビット故障を特定する手順である。
論理回路の構成は図1と変わらないため、重複する符号の説明は省略する。被テスト回路CUT1に故障がない場合のテスト応答ビットパターンとして、式(1)を使用する。したがって、式(1)を入力した場合の線形フィードバックシフトレジスタLFSR1の最終状態は式(6)と同じになる。
式(6)の情報は入力されたテスト応答ビットパターンの情報を完全に残している訳ではないため、式(6)から得られるのはビット故障の候補でしかない。式(2)から分かるように、線形フィードバックシフトレジスタLFSR1の最終状態を表す多項式R(x)に加えて出力多項式Q(x)が確定すれば、テスト応答ビットパターンを表す入力多項式G(x)を復元できる(工程5)。
この論理回路の故障解析方法では、与えられた単一ビット故障候補および2ビット故障候補から、それらが真のビット故障となる場合の出力ビットパターンを算出する。故障解析対象の論理回路から得られる出力ビットパターンが算出された出力ビットパターンと一致していれば、与えられたビット故障候補は真のビット故障であると判断する(工程6)。
まず、単一ビット故障候補N=4が与えられている場合について、具体的に説明する。与えられた単一ビット故障候補N=4より、式(7)の故障入力多項式G’(x)において、故障のあるビット位置の論理変数dは1、論理変数/dは0であり、故障のないビット位置の論理変数dは0、論理変数/dは1であるので、次のように設定する。
d12=d11=d10=d9=d8=d7=d6=d5=d3=d2=d1=d0=0(49)
d4=1
式(49)を式(12)に代入すると、故障出力多項式Q’(x)は次のようになる。
d4=1
式(49)を式(12)に代入すると、故障出力多項式Q’(x)は次のようになる。
Q’(x)= /d12x8+d11x7+d10x6+d9,12x5+/d8,11,12x4
+d7,10,11x3+d6,9,10,12x2+/d5,8,9,11x+d4,7,8,10,12
=/0x8+0x7+0x6+(0^0)x5+/(0^0^0)x4
+(0^0^0)x3+(0^0^0^0)x2
+/(0^0^0^0)x+(1^0^0^0)
=x8+x4+x+1 (50)
線形フィードバックシフトレジスタの最終状態の式(6)に対し、単一ビット故障候補N=4が得られた場合に、出力ビットパターンが式(50)で示すQ’(x)と一致していれば、単一ビット故障候補N=4は真のビット故障となる。
+d7,10,11x3+d6,9,10,12x2+/d5,8,9,11x+d4,7,8,10,12
=/0x8+0x7+0x6+(0^0)x5+/(0^0^0)x4
+(0^0^0)x3+(0^0^0^0)x2
+/(0^0^0^0)x+(1^0^0^0)
=x8+x4+x+1 (50)
線形フィードバックシフトレジスタの最終状態の式(6)に対し、単一ビット故障候補N=4が得られた場合に、出力ビットパターンが式(50)で示すQ’(x)と一致していれば、単一ビット故障候補N=4は真のビット故障となる。
次に、2ビット故障候補N=12、M=6が与えられている場合について、具体的に説明する。
与えられた2ビット故障候補N=12、M=6より、式(7)の故障入力多項式G’(x)において、故障のあるビット位置の論理変数dは1、論理変数/dは0であり、故障のないビット位置の論理変数dは0、論理変数/dは1であるから、次のようになる。
d12=d6=1 (51)
d11=d10=d9=d8=d7=d5=d4=d3=d2=d1=d0=0
式(51)を式(12)に代入すると、故障出力多項式Q’(x)は次のようになる。
d11=d10=d9=d8=d7=d5=d4=d3=d2=d1=d0=0
式(51)を式(12)に代入すると、故障出力多項式Q’(x)は次のようになる。
Q’(x)= /d12x8+d11x7+d10x6+d9,12x5+/d8,11,12x4
+d7,10,11x3+d6,9,10,12x2+/d5,8,9,11x+d4,7,8,10,12
=/1x8+0x7+0x6+(0^1)x5+/(0^0^1)x4
+(0^0^0)x3+(1^0^0^1)x2
+/(0^0^0^0)x+(0^0^0^1)
=x5+x+1 (52)
線形フィードバックシフトレジスタの最終状態の式(6)に対し、単一ビット故障候補N=12、M=6が得られた場合に、出力ビットパターンが式(52)で示すQ’(x)と一致していれば、2ビット故障候補N=12、M=6は真のビット故障となる。
+d7,10,11x3+d6,9,10,12x2+/d5,8,9,11x+d4,7,8,10,12
=/1x8+0x7+0x6+(0^1)x5+/(0^0^1)x4
+(0^0^0)x3+(1^0^0^1)x2
+/(0^0^0^0)x+(0^0^0^1)
=x5+x+1 (52)
線形フィードバックシフトレジスタの最終状態の式(6)に対し、単一ビット故障候補N=12、M=6が得られた場合に、出力ビットパターンが式(52)で示すQ’(x)と一致していれば、2ビット故障候補N=12、M=6は真のビット故障となる。
式(20)とは異なる最終状態、また、様々なビット故障候補に対しても、同様の手順により真の単一ビット故障および真の2ビット故障を特定することが可能である。
(実施の形態4)
図4は、本発明の第4の実施の形態における論理回路の故障解析方法による単一ビット故障候補の探索手順を示した工程図である。
図4は、本発明の第4の実施の形態における論理回路の故障解析方法による単一ビット故障候補の探索手順を示した工程図である。
TPG2はテストパターン発生手段、CUT2は被テスト回路、TRA2はテスト応答処理手段であり、テストパターン発生手段TPG2が出力するテスト入力ビットパターンTP2を被テスト回路CUT2に入力し、被テスト回路CUT2が出力するテスト応答ビットパターンTR2をテスト応答処理手段TRA2に入力する。
テスト応答処理手段TRA2は多入力シグネチャレジスタMISR1で構成される。本実施の形態においては、図4に示す通り4個のレジスタFF0〜FF3および4個の排他的論理和ゲートEXOR3〜6からなるものとする。被テスト回路CUT2から入力されるテスト応答ビットパターンTRA2は4ビットの長さであるとし、被テスト回路CUT2に故障がない場合は
FF0向け入力: 1101 (53)
FF1向け入力: 0010
FF2向け入力: 1000
FF3向け入力: 1011
であるとする。ここで、左端のビットが最初の時刻に入力され、時刻の進展とともに右隣のビットが順次入力される(工程7)。
FF0向け入力: 1101 (53)
FF1向け入力: 0010
FF2向け入力: 1000
FF3向け入力: 1011
であるとする。ここで、左端のビットが最初の時刻に入力され、時刻の進展とともに右隣のビットが順次入力される(工程7)。
式(53)を多項式により表すと、FFi向けの入力多項式をGi(x)として
G0(x)= x3+x2+1 (54)
G1(x)= x (55)
G2(x)= x3 (56)
G3(x)= x3+x+1 (57)
となる。(54)〜(57)のテスト応答ビットパターンを入力した場合に、多入力シグネチャレジスタMISR1が取る最終状態R(x)は、次のようになる。
G0(x)= x3+x2+1 (54)
G1(x)= x (55)
G2(x)= x3 (56)
G3(x)= x3+x+1 (57)
となる。(54)〜(57)のテスト応答ビットパターンを入力した場合に、多入力シグネチャレジスタMISR1が取る最終状態R(x)は、次のようになる。
R(x)= 0 (58)
すなわち、多入力シグネチャレジスタMISR1の最終状態はFF0〜FF3全て0となる。
すなわち、多入力シグネチャレジスタMISR1の最終状態はFF0〜FF3全て0となる。
次に、多入力シグネチャレジスタMISR1に入力されるテスト応答ビットパターンTRA2に故障がある場合を考える。
実施の形態1と同様に、テスト応答ビットパターンにおいて、データ0の存在する全てのビットをビット位置の属性を持つ論理変数dで置換し、データ1の存在する全てのビットをビット位置の属性を持つ論理変数/dで置換した故障テスト応答ビットパターンを定義する。多項式表示においては、入力多項式G0(x)〜G3(x)において、xiの係数がデータ0であればこれを論理変数diで置換し、データ1であればこれを論理変数/diで置換した多項式を作り、これを故障入力多項式G’0(x)〜G’3(x)と定義すると、次の式が得られる。
G’0(x)= /d03x3+/d02x2+d01x+/d00 (59)
G’1(x)= d13x3+d12x2+/d11x+d10 (60)
G’2(x)= /d23x3+d22x2+d21x+d20 (61)
G’3(x)= /d33x3+d32x2+/d31x+/d30 (62)
故障入力多項式G’0(x)〜G’3(x)に対する多入力シグネチャレジスタMISR1の出力ビットパターンを表す出力多項式Q’(x)、および、最終状態R’(x)は次のように表される。
G’1(x)= d13x3+d12x2+/d11x+d10 (60)
G’2(x)= /d23x3+d22x2+d21x+d20 (61)
G’3(x)= /d33x3+d32x2+/d31x+/d30 (62)
故障入力多項式G’0(x)〜G’3(x)に対する多入力シグネチャレジスタMISR1の出力ビットパターンを表す出力多項式Q’(x)、および、最終状態R’(x)は次のように表される。
Q’(x)= /d33x3+/d23,32x2+/d13,22,31+d03,12,21,30 (63)
R’(x)= d03,12,21,30x3+/d02,03,11,20,33x2
+/d01,02,03,10,23,32,33x+/d00,01,02,03,13,22,23,31,32,33(64)
実施の形態1と同様に、故障入力多項式G’0(x)〜G’3(x)に対する多入力シグネチャレジスタMISR1の最終状態R’(x)において、各xiの係数が含むテスト応答ビットパターンのビット位置を要素とする集合Diを定義すると、多入力シグネチャレジスタMISR1についてはD0〜D3が定義でき、式(63)より次のようになる(工程8)。
R’(x)= d03,12,21,30x3+/d02,03,11,20,33x2
+/d01,02,03,10,23,32,33x+/d00,01,02,03,13,22,23,31,32,33(64)
実施の形態1と同様に、故障入力多項式G’0(x)〜G’3(x)に対する多入力シグネチャレジスタMISR1の最終状態R’(x)において、各xiの係数が含むテスト応答ビットパターンのビット位置を要素とする集合Diを定義すると、多入力シグネチャレジスタMISR1についてはD0〜D3が定義でき、式(63)より次のようになる(工程8)。
D0 ={ 00,01,02,03, 13, 22,23, 31,32,33 } (65)
D1 ={ 01,02,03,10, 23, 32,33 } (66)
D2 ={ 02,03, 11, 20, 33 } (67)
D3 ={ 03, 12, 21, 30 } (68)
実際の半導体集積回路におけるテスト結果として、多入力シグネチャレジスタMISR1の最終状態Ra(x)が次のようになった場合を考える。
D1 ={ 01,02,03,10, 23, 32,33 } (66)
D2 ={ 02,03, 11, 20, 33 } (67)
D3 ={ 03, 12, 21, 30 } (68)
実際の半導体集積回路におけるテスト結果として、多入力シグネチャレジスタMISR1の最終状態Ra(x)が次のようになった場合を考える。
Ra(x)= 0x3+0x2+1x+1 (69)
式(69)と式(58)を比較すると、x3とx2の係数が一致している。従って、集合D3およびD2の要素が示すテスト応答ビットパターンのビット位置には故障が全く存在しない。そこで、実施の形態1と同様に、集合Diについて、Ra(x)とR(x)でxiの係数が一致するものを1つの集合群に分類し、これを集合群Cとする。集合群Cに含まれる全ての集合Diの和集合DCORを定義すると、その要素が示すテスト応答ビットパターンのビット位置には故障が全く存在しない。式(67)、(68)より、DCORは次のように計算される。
式(69)と式(58)を比較すると、x3とx2の係数が一致している。従って、集合D3およびD2の要素が示すテスト応答ビットパターンのビット位置には故障が全く存在しない。そこで、実施の形態1と同様に、集合Diについて、Ra(x)とR(x)でxiの係数が一致するものを1つの集合群に分類し、これを集合群Cとする。集合群Cに含まれる全ての集合Diの和集合DCORを定義すると、その要素が示すテスト応答ビットパターンのビット位置には故障が全く存在しない。式(67)、(68)より、DCORは次のように計算される。
DCOR = D2 ∪ D3
={ 02, 03, 11, 12, 20, 21, 30, 33 } (70)
また、Ra(x)とR(x)を比較すると、x1とx0の係数が一致していない。従って、集合D1の要素が示すテスト応答ビットパターンのビット位置のどこか1つに故障が存在し、かつ、集合D0の要素が示すテスト応答ビットパターンのビット位置のどこか1つに故障が存在し、これらは同一のビット位置にある。
={ 02, 03, 11, 12, 20, 21, 30, 33 } (70)
また、Ra(x)とR(x)を比較すると、x1とx0の係数が一致していない。従って、集合D1の要素が示すテスト応答ビットパターンのビット位置のどこか1つに故障が存在し、かつ、集合D0の要素が示すテスト応答ビットパターンのビット位置のどこか1つに故障が存在し、これらは同一のビット位置にある。
そこで、実施の形態1と同様に、集合Diについて、Ra(x)とR(x)でxiの係数が一致しないものを1つの集合群に分類し、これを集合群Eとする。集合群Eに含まれる全ての集合Diの積集合DEANDを定義すると、その要素が示すテスト応答ビットパターンのビット位置のどこか1つに故障が存在することになる。式(65)、(66)より、DEANDは次のように計算される。
DEAND = D0 ∩ D1
= { 01, 02, 03, 23, 32, 33 } (71)
テスト応答ビットパターン中の単一ビット故障のビット位置は、DEANDの要素であり、かつ、DCORの要素でない。したがって、DEANDとDCORの差集合を求めることにより単一ビット故障候補が得られることになる。これは、式(70)、(71)より次のように計算される(工程9)。
= { 01, 02, 03, 23, 32, 33 } (71)
テスト応答ビットパターン中の単一ビット故障のビット位置は、DEANDの要素であり、かつ、DCORの要素でない。したがって、DEANDとDCORの差集合を求めることにより単一ビット故障候補が得られることになる。これは、式(70)、(71)より次のように計算される(工程9)。
DEAND − DCOR ={ 01, 23, 32 } (72)
以上の手順により、多入力シグネチャレジスタMISR1の最終状態の式(69)に対して、テスト応答ビットパターンの単一ビット故障候補がG’0(x)のx1、G’2(x)のx3、G’3(x)のx2のいずれかのビット位置にあるという結果が得られた。これは、被テスト回路CUT2に故障がない場合のテスト応答ビットパターンの内容である式(53)に対して、次のいずれかの内容が多入力シグネチャレジスタMISR1に入力されたと推定するものである。
以上の手順により、多入力シグネチャレジスタMISR1の最終状態の式(69)に対して、テスト応答ビットパターンの単一ビット故障候補がG’0(x)のx1、G’2(x)のx3、G’3(x)のx2のいずれかのビット位置にあるという結果が得られた。これは、被テスト回路CUT2に故障がない場合のテスト応答ビットパターンの内容である式(53)に対して、次のいずれかの内容が多入力シグネチャレジスタMISR1に入力されたと推定するものである。
(a)FF0向け入力: 1111 (下線部が故障候補) (73)
FF1向け入力: 0010
FF2向け入力: 1000
FF3向け入力: 1011
(b)FF0向け入力: 1101
FF1向け入力: 0010
FF2向け入力: 0000
FF3向け入力: 1011
(c)FF0向け入力: 1101
FF1向け入力: 0010
FF2向け入力: 1000
FF3向け入力: 1111
式(69)とは異なる最終状態に対しても、同様の手順により単一ビット故障候補を探索することが可能である。
FF1向け入力: 0010
FF2向け入力: 1000
FF3向け入力: 1011
(b)FF0向け入力: 1101
FF1向け入力: 0010
FF2向け入力: 0000
FF3向け入力: 1011
(c)FF0向け入力: 1101
FF1向け入力: 0010
FF2向け入力: 1000
FF3向け入力: 1111
式(69)とは異なる最終状態に対しても、同様の手順により単一ビット故障候補を探索することが可能である。
(実施の形態5)
図5は、本発明の第5の実施の形態における論理回路の故障解析方法による2ビット故障候補の探索手順を示した工程図である。
図5は、本発明の第5の実施の形態における論理回路の故障解析方法による2ビット故障候補の探索手順を示した工程図である。
論理回路の構成は図4と変わらないため、重複する符号の説明は省略する。被テスト回路CUT2に故障がない場合のテスト応答ビットパターンとして式(53)を使用する。したがって、式(53)を入力した場合の多入力シグネチャレジスタの最終状態は式(58)と同じになる。工程7、8については、同様のため詳しい説明は省略する。
以下、テスト応答ビットパターンに2ビット故障が存在する場合の故障候補を探索する手順について説明する。実際の半導体集積回路におけるテスト結果として、多入力シグネチャレジスタの最終状態Ra(x)が式(69)のようになった場合を考える。
テスト応答ビットパターンに故障がない場合の最終状態R(x)と比較すると、x2とx3の係数が一致しており、集合D2、D3は集合群Cに属する。
また、Ra(x)とR(x)を比較すると、x0とx1の係数が一致しておらず、集合D0、D1は集合群Eに属する。実施の形態2と同様の2ビット故障が存在する条件が成立するので、以下では各条件に沿って2ビット故障候補の探索を行う。
始めに、集合DEANDが2ビット故障の一方のビット故障候補を含む場合について説明する。式(71)の各要素について2ビット故障の一方のビット故障候補であると仮定して、もう一方のビット故障候補を探索していく(工程10)。
2ビット故障の一方のビット故障候補をN、もう一方をMとする。
(N=01と仮定した場合)
集合群Eに属する全ての集合Diについてその和集合DEORを定義すると、(65)(66)より次のように計算される。
集合群Eに属する全ての集合Diについてその和集合DEORを定義すると、(65)(66)より次のように計算される。
DEOR = D0 ∪ D1
={ 00,01,02,03,10,13,22,23,31,32,33 } (74)
集合DEORの要素が示すテスト応答ビットパターンのビット位置のどこか1つに故障候補が存在し、その故障候補をNと仮定したので、差集合DEOR−{ N }には故障候補は全く存在しないことになる。差集合DEOR−{ N }は次のようになる。
={ 00,01,02,03,10,13,22,23,31,32,33 } (74)
集合DEORの要素が示すテスト応答ビットパターンのビット位置のどこか1つに故障候補が存在し、その故障候補をNと仮定したので、差集合DEOR−{ N }には故障候補は全く存在しないことになる。差集合DEOR−{ N }は次のようになる。
DEOR −{ N }= DEOR −{ 01 }
={ 00,02,03,10,13,22,23,31,32,33 } (75)
集合群Cに属する集合Diに対し、故障候補を全く含まないDEOR−{ N }との差集合Aiを定義すると、式(67)、(68)、(74)より次のように計算される。
={ 00,02,03,10,13,22,23,31,32,33 } (75)
集合群Cに属する集合Diに対し、故障候補を全く含まないDEOR−{ N }との差集合Aiを定義すると、式(67)、(68)、(74)より次のように計算される。
A2 = D2 −(DEOR−{ N })= { 11, 20 } (76)
A3 = D3 −(DEOR−{ N })= { 12, 21, 30 } (77)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。しかし、式(76)、(77)より、どちらもビット故障候補N=01を含んでいないため、2ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補N=01の仮定は誤りである。
A3 = D3 −(DEOR−{ N })= { 12, 21, 30 } (77)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。しかし、式(76)、(77)より、どちらもビット故障候補N=01を含んでいないため、2ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補N=01の仮定は誤りである。
(N=02と仮定した場合)
差集合DEOR−{ N }は次のようになる。
差集合DEOR−{ N }は次のようになる。
DEOR −{ N }= DEOR −{ 02 }
={ 00,01,03,10,13,22,23,31,32,33 } (78)
集合群Cに属する集合Diに対し、式(76)、(77)と同様に集合Aiを定義すると、式(67)、(68)、(78)より次のように計算される。
={ 00,01,03,10,13,22,23,31,32,33 } (78)
集合群Cに属する集合Diに対し、式(76)、(77)と同様に集合Aiを定義すると、式(67)、(68)、(78)より次のように計算される。
A2 = D2 −(DEOR−{ N })= { 02, 11, 20 } (79)
A3 = D3 −(DEOR−{ N })= { 12, 21, 30 } (80)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。式(79)より、集合A2がビット故障候補N=02を含んでいるので集合A2を選択する。
A3 = D3 −(DEOR−{ N })= { 12, 21, 30 } (80)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。式(79)より、集合A2がビット故障候補N=02を含んでいるので集合A2を選択する。
上記で選択された全ての集合の積集合からビット故障候補N=02を除いて得られる集合ACANDを定義すると、次のように計算される。
ACAND = A3 −{ N } = { 11, 20 } (81)
ACANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
ACANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
M=11とすると、集合群Cに属する集合Diのうち、集合D2はビット故障候補N=02、M=11を同時に含んでおり、集合D3はビット故障候補N=02、M=11のどちらも含んでおらず、2ビット故障が存在するための条件を満たしている。したがって、ビット故障候補N=02、M=11の仮定は正しい。
M=20とすると、集合群Cに属する集合Diのうち、集合D2はビット故障候補N=02、M=20を同時に含んでおり、集合D3はビット故障候補N=02、M=20のどちらも含んでおらず、2ビット故障が存在するための条件を満たしている。したがって、ビット故障候補N=02、M=20の仮定は正しい。
(N=03と仮定した場合)
差集合DEOR−{ N }は次のようになる。
差集合DEOR−{ N }は次のようになる。
DEOR −{ N }= DEOR −{ 03 }
={ 00,01,02,10,13,22,23,31,32,33 } (82)
集合群Cに属する集合Diに対し、式(76)、(77)と同様に集合Aiを定義すると、式(67)、(68)、(82)より次のように計算される。
={ 00,01,02,10,13,22,23,31,32,33 } (82)
集合群Cに属する集合Diに対し、式(76)、(77)と同様に集合Aiを定義すると、式(67)、(68)、(82)より次のように計算される。
A2 = D2 −(DEOR−{ N })= { 03, 11, 20 } (83)
A3 = D3 −(DEOR−{ N })= { 03, 12, 21, 30 } (84)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。式(83)、(84)より、集合A2、A3がビット故障候補N=03を含んでいるので集合A2およびA3を選択する。
A3 = D3 −(DEOR−{ N })= { 03, 12, 21, 30 } (84)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。式(83)、(84)より、集合A2、A3がビット故障候補N=03を含んでいるので集合A2およびA3を選択する。
上記で選択された全ての集合の積集合からビット故障候補N=03を除いて得られる集合ACANDを定義すると、次のように計算される。
ACAND =( A2 ∩ A3 )−{ N } = (空集合) (85)
ACANDの要素がビット故障候補Mである可能性があるが、空集合となってしまったため、これ以上の探索は不可能である。したがって、ビット故障候補N=03の仮定は誤りである。
ACANDの要素がビット故障候補Mである可能性があるが、空集合となってしまったため、これ以上の探索は不可能である。したがって、ビット故障候補N=03の仮定は誤りである。
(N=23と仮定した場合)
差集合DEOR−{ N }は次のようになる。
差集合DEOR−{ N }は次のようになる。
DEOR −{ N }= DEOR −{ 23 }
={ 00,01,02,03,10,13,22,31,32,33 } (86)
集合群Cに属する集合Diに対し、式(76)、(77)と同様に集合Aiを定義すると、式(67)、(68)、(86)より次のように計算される。
={ 00,01,02,03,10,13,22,31,32,33 } (86)
集合群Cに属する集合Diに対し、式(76)、(77)と同様に集合Aiを定義すると、式(67)、(68)、(86)より次のように計算される。
A2 = D2 −(DEOR−{ N })= { 11, 20 } (87)
A3 = D3 −(DEOR−{ N })= { 12, 21, 30 } (88)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。しかし、式(87)、(88)より、どちらもビット故障候補N=23を含んでいないため、2ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補N=23の仮定は誤りである。
A3 = D3 −(DEOR−{ N })= { 12, 21, 30 } (88)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。しかし、式(87)、(88)より、どちらもビット故障候補N=23を含んでいないため、2ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補N=23の仮定は誤りである。
(N=32と仮定した場合)
差集合DEOR−{ N }は次のようになる。
差集合DEOR−{ N }は次のようになる。
DEOR −{ N }= DEOR −{ 32 }
={ 00,01,02,03,10,13,22,23,31,33 } (89)
集合群Cに属する集合Diに対し、式(76)、(77)と同様に集合Aiを定義すると、式(67)、(68)、(89)より次のように計算される。
={ 00,01,02,03,10,13,22,23,31,33 } (89)
集合群Cに属する集合Diに対し、式(76)、(77)と同様に集合Aiを定義すると、式(67)、(68)、(89)より次のように計算される。
A2 = D2 −(DEOR−{ N })= { 11, 20 } (90)
A3 = D3 −(DEOR−{ N })= { 12, 21, 30 } (91)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。しかし、式(90)、(91)より、どちらもビット故障候補N=32を含んでいないため、2ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補N=32の仮定は誤りである。
A3 = D3 −(DEOR−{ N })= { 12, 21, 30 } (91)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。しかし、式(90)、(91)より、どちらもビット故障候補N=32を含んでいないため、2ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補N=32の仮定は誤りである。
(N=33と仮定した場合)
差集合DEOR−{ N }は次のようになる。
差集合DEOR−{ N }は次のようになる。
DEOR −{ N }= DEOR −{ 33 }
={ 00,01,02,03,10,13,22,23,31,32 } (92)
集合群Cに属する集合Diに対し、式(76)、(77)と同様に集合Aiを定義すると、式(67)、(68)、(92)より次のように計算される。
={ 00,01,02,03,10,13,22,23,31,32 } (92)
集合群Cに属する集合Diに対し、式(76)、(77)と同様に集合Aiを定義すると、式(67)、(68)、(92)より次のように計算される。
A2 = D2 −(DEOR−{ N })= { 11, 20, 33 } (93)
A3 = D3 −(DEOR−{ N })= { 12, 21, 30 } (94)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。式(93)より、集合A2がビット故障候補N=33を含んでいるので集合A2を選択する。
A3 = D3 −(DEOR−{ N })= { 12, 21, 30 } (94)
集合Aiは2ビット故障のビット故障候補N、Mの両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかであり、さらに、集合Aiの少なくとも1つはビット故障候補N、Mを同時に含まなければならない。式(93)より、集合A2がビット故障候補N=33を含んでいるので集合A2を選択する。
上記で選択された全ての集合の積集合からビット故障候補N=33を除いて得られる集合ACANDを定義すると、次のように計算される。
ACAND = A2 −{ N } = { 11, 20 } (95)
ACANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
ACANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
M=11とすると、集合群Cに属する集合Diのうち、集合D2はビット故障候補N=33、M=11を同時に含んでおり、集合D3はビット故障候補N=33、M=11のどちらも含んでおらず、2ビット故障が存在するための条件を満たしている。したがって、ビット故障候補N=33、M=11の仮定は正しい。
M=20とすると、集合群Cに属する集合Diのうち、集合D2はビット故障候補N=33、M=20を同時に含んでおり、集合D3はビット故障候補N=33、M=20のどちらも含んでおらず、2ビット故障が存在するための条件を満たしている。したがって、ビット故障候補N=33、M=20の仮定は正しい。
次に、集合DEANDが2ビット故障のビット故障候補を全く含まない場合について説明する。集合群Eに属する集合Diから1つを選択して集合Di−DEANDを計算し、その各要素について2ビット故障の一方のビット故障候補であると仮定して、もう一方のビット故障候補を探索していく。
以下、集合D0を選択して具体的に説明する。式(65)、(66)、(71)より集合D0−DEAND、D1−DEANDは次のように計算される。
D0 − DEAND ={ 00, 13, 22, 31 } (96)
D1 − DEAND ={ 10 } (97)
(N=00と仮定した場合)
集合群Eに属する全ての集合Diに対し、集合Di−DEANDがビット故障候補N=00を含まないものを全て選択すると、それらは故障候補Mを共通に含んでいなければならない。そこで、選択された集合の積集合HEANDを定義すると、式(96)、(97)より次のように計算される。
D1 − DEAND ={ 10 } (97)
(N=00と仮定した場合)
集合群Eに属する全ての集合Diに対し、集合Di−DEANDがビット故障候補N=00を含まないものを全て選択すると、それらは故障候補Mを共通に含んでいなければならない。そこで、選択された集合の積集合HEANDを定義すると、式(96)、(97)より次のように計算される。
HEAND = D1 − DEAND = { 10 } (98)
HEANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
HEANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
M=10とすると、集合群Cに属する集合Diのうち、集合D2、D3はともにビット故障候補N=00、M=10のどちらも含んでおらず、2ビット故障が存在するための条件を満たしている。したがって、ビット故障候補N=00、M=10の仮定は正しい。
(N=13と仮定した場合)
集合群Eに属する全ての集合Diに対し、集合Di−DEANDがビット故障候補N=13を含まないものを全て選択すると、それらは故障候補Mを共通に含んでいなければならない。そこで、選択された集合の積集合HEANDを定義すると、式(96)、(97)より次のように計算される。
集合群Eに属する全ての集合Diに対し、集合Di−DEANDがビット故障候補N=13を含まないものを全て選択すると、それらは故障候補Mを共通に含んでいなければならない。そこで、選択された集合の積集合HEANDを定義すると、式(96)、(97)より次のように計算される。
HEAND = D1 − DEAND = { 10 } (99)
HEANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
HEANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
M=10とすると、集合群Cに属する集合Diのうち、集合D2、D3はともにビット故障候補N=13、M=10のどちらも含んでおらず、2ビット故障が存在するための条件を満たしている。したがって、ビット故障候補N=13、M=10の仮定は正しい。
(N=22と仮定した場合)
集合群Eに属する全ての集合Diに対し、集合Di−DEANDがビット故障候補N=22を含まないものを全て選択すると、それらは故障候補Mを共通に含んでいなければならない。そこで、選択された集合の積集合HEANDを定義すると、式(96)、(97)より次のように計算される。
集合群Eに属する全ての集合Diに対し、集合Di−DEANDがビット故障候補N=22を含まないものを全て選択すると、それらは故障候補Mを共通に含んでいなければならない。そこで、選択された集合の積集合HEANDを定義すると、式(96)、(97)より次のように計算される。
HEAND = D1 − DEAND = { 10 } (100)
HEANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
HEANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
M=10とすると、集合群Cに属する集合Diのうち、集合D2、D3はともにビット故障候補N=22、M=10のどちらも含んでおらず、2ビット故障が存在するための条件を満たしている。したがって、ビット故障候補N=22、M=10の仮定は正しい。
(N=31と仮定した場合)
集合群Eに属する全ての集合Diに対し、集合Di−DEANDがビット故障候補N=31を含まないものを全て選択すると、それらは故障候補Mを共通に含んでいなければならない。そこで、選択された集合の積集合HEANDを定義すると、式(96)、(97)より次のように計算される。
集合群Eに属する全ての集合Diに対し、集合Di−DEANDがビット故障候補N=31を含まないものを全て選択すると、それらは故障候補Mを共通に含んでいなければならない。そこで、選択された集合の積集合HEANDを定義すると、式(96)、(97)より次のように計算される。
HEAND = D1 − DEAND = { 10 } (101)
HEANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
HEANDの要素が、ビット故障候補Mである可能性があるので、集合群Cに属する集合Diについて調べる。
M=10とすると、集合群Cに属する集合Diのうち、集合D2、D3はともにビット故障候補N=31、M=10のどちらも含んでおらず、2ビット故障が存在するための条件を満たしている。したがって、ビット故障候補N=31、M=10の仮定は正しい。
以上の手順により、線形フィードバックレジスタの最終状態の式(69)に対して、時系列ビットパターンの2ビット故障候補が
G’0(x)のx2 と G’1(x)のx1 (102)
G’0(x)のx2 と G’2(x)のx0
G’3(x)のx3 と G’1(x)のx1
G’3(x)のx3 と G’2(x)のx0
G’0(x)のx0 と G’1(x)のx0
G’1(x)のx3 と G’1(x)のx0
G’2(x)のx2 と G’1(x)のx0
G’3(x)のx1 と G’1(x)のx0
のビット位置にあるという結果が得られた。これは、被テスト回路CUT2に故障がない場合のテスト応答ビットパターンである式(53)に対して、次のようなテスト応答ビットパターンが線形フィードバックシフトレジスタに入力されたと推定するものである。
G’0(x)のx2 と G’1(x)のx1 (102)
G’0(x)のx2 と G’2(x)のx0
G’3(x)のx3 と G’1(x)のx1
G’3(x)のx3 と G’2(x)のx0
G’0(x)のx0 と G’1(x)のx0
G’1(x)のx3 と G’1(x)のx0
G’2(x)のx2 と G’1(x)のx0
G’3(x)のx1 と G’1(x)のx0
のビット位置にあるという結果が得られた。これは、被テスト回路CUT2に故障がない場合のテスト応答ビットパターンである式(53)に対して、次のようなテスト応答ビットパターンが線形フィードバックシフトレジスタに入力されたと推定するものである。
(a)FF0向け入力: 1001 (下線部が故障候補) (103)
FF1向け入力: 0000
FF2向け入力: 1000
FF3向け入力: 1011
(b)FF0向け入力: 1001
FF1向け入力: 0010
FF2向け入力: 1001
FF3向け入力: 1011
(c)FF0向け入力: 1101
FF1向け入力: 0000
FF2向け入力: 1000
FF3向け入力: 0011
(d)FF0向け入力: 1101
FF1向け入力: 0010
FF2向け入力: 1001
FF3向け入力: 0011
(e)FF0向け入力: 1100
FF1向け入力: 0011
FF2向け入力: 1000
FF3向け入力: 1011
(f)FF0向け入力: 1101
FF1向け入力: 1011
FF2向け入力: 1000
FF3向け入力: 1011
(g)FF0向け入力: 1101
FF1向け入力: 0011
FF2向け入力: 1100
FF3向け入力: 1011
(h)FF0向け入力: 1101
FF1向け入力: 0011
FF2向け入力: 1000
FF3向け入力: 1001
式(69)とは異なる最終状態に対しても、同様の手順により2ビット故障のビット故障候補を探索することが可能である。
FF1向け入力: 0000
FF2向け入力: 1000
FF3向け入力: 1011
(b)FF0向け入力: 1001
FF1向け入力: 0010
FF2向け入力: 1001
FF3向け入力: 1011
(c)FF0向け入力: 1101
FF1向け入力: 0000
FF2向け入力: 1000
FF3向け入力: 0011
(d)FF0向け入力: 1101
FF1向け入力: 0010
FF2向け入力: 1001
FF3向け入力: 0011
(e)FF0向け入力: 1100
FF1向け入力: 0011
FF2向け入力: 1000
FF3向け入力: 1011
(f)FF0向け入力: 1101
FF1向け入力: 1011
FF2向け入力: 1000
FF3向け入力: 1011
(g)FF0向け入力: 1101
FF1向け入力: 0011
FF2向け入力: 1100
FF3向け入力: 1011
(h)FF0向け入力: 1101
FF1向け入力: 0011
FF2向け入力: 1000
FF3向け入力: 1001
式(69)とは異なる最終状態に対しても、同様の手順により2ビット故障のビット故障候補を探索することが可能である。
(実施の形態6)
図6は、本発明の第6の実施の形態における論理回路の故障解析方法による、単一ビット故障候補または2ビット故障候補が与えられた場合に、さらに故障候補を絞り込むための手順を示した工程図である。
図6は、本発明の第6の実施の形態における論理回路の故障解析方法による、単一ビット故障候補または2ビット故障候補が与えられた場合に、さらに故障候補を絞り込むための手順を示した工程図である。
論理回路の構成は図4と変わらないため、重複する符号の説明は省略する。被テスト回路CUT2に故障がない場合のテスト応答ビットパターンを示した工程図である。式(53)を使用する。したがって、式(53)を入力した場合の多入力シグネチャレジスタの最終状態は式(58)と同じになる(工程11)。
式(58)の情報は入力されたテスト応答ビットパターンの情報を完全に残している訳ではないため、式(58)から得られるのはビット故障の候補である。
ここに記載の論理回路の故障解析方法では、与えられた単一ビット故障候補および2ビット故障候補から、さらに故障候補を絞り込むための出力ビットパターンを算出する。故障解析対象の論理回路から得られる出力ビットパターンが算出された出力ビットパターンと一致しているものが、真のビット故障である確率が高くなる。
まず、単一ビット故障の場合について具体的に説明する(工程12)。単一ビット故障候補N=01が与えられているので、式(54)〜(57)の故障入力多項式G’0(x)〜G’3(x)において、故障のあるビット位置の論理変数dは1、論理変数/dは0であり、故障のないビット位置の論理変数dは0、論理変数/dは1であるから、次のように設定する。
d00=d02=d03=0 (104)
d10=d11=d12=d13=0
d20=d21=d22=d23=0
d30=d31=d32=d33=0
d01=1
式(104)を式(63)に代入すると、故障出力多項式Q’(x)は次のようになる。
d10=d11=d12=d13=0
d20=d21=d22=d23=0
d30=d31=d32=d33=0
d01=1
式(104)を式(63)に代入すると、故障出力多項式Q’(x)は次のようになる。
Q’(x)=/d33x3+/d23,32x2+/d13,22,31+d03,12,21,30
=/0x3+/(0^0)x2+/(0^0^0)x+(0^0^0^0 )
=x3+x2+x (105)
単一ビット故障候補N=23、N=32の場合についても、式(104)と同様の設定を行い、故障出力多項式Q’(x)を計算すると、次のようになる。
=/0x3+/(0^0)x2+/(0^0^0)x+(0^0^0^0 )
=x3+x2+x (105)
単一ビット故障候補N=23、N=32の場合についても、式(104)と同様の設定を行い、故障出力多項式Q’(x)を計算すると、次のようになる。
N=23 ⇒ Q’(x)= x3+x (106)
N=32 ⇒ Q’(x)= x3+x
多入力シグネチャレジスタMISR1の出力ビットパターンが式(105)と一致すれば、単一ビット故障候補N=01は真のビット故障となる。出力ビットパターンが式(106)と一致すれば、3つの単一ビット故障候補はN=23またはN=32の2つに絞り込むことができる。
N=32 ⇒ Q’(x)= x3+x
多入力シグネチャレジスタMISR1の出力ビットパターンが式(105)と一致すれば、単一ビット故障候補N=01は真のビット故障となる。出力ビットパターンが式(106)と一致すれば、3つの単一ビット故障候補はN=23またはN=32の2つに絞り込むことができる。
次に、2ビット故障の場合について具体的に説明する。2ビット故障候補N=02、M=11が与えられているので、式(54)〜(57)の故障入力多項式G’0(x)〜G’3(x)において、故障のあるビット位置の論理変数dは1、論理変数/dは0であり、故障のないビット位置の論理変数dは0、論理変数/dは1であるから、次のように設定する。
d00=d01=d03=0 (107)
d10=d12=d13=0
d20=d21=d22=d23=0
d30=d31=d32=d33=0
d02=d11=1
式(107)を式(63)に代入すると、故障出力多項式Q’(x)は次のようになる。
d10=d12=d13=0
d20=d21=d22=d23=0
d30=d31=d32=d33=0
d02=d11=1
式(107)を式(63)に代入すると、故障出力多項式Q’(x)は次のようになる。
Q’(x)=/d33x3+/d23,32x2+/d13,22,31+d03,12,21,30
=/0x3+/(0^0)x2+/(0^0^0)x+(0^0^0^0 )
=x3+x2+x (108)
残りの2ビット故障候補(N,M)=(02,20)、(11,33)、(20,33)、(00,10)、(10,13)、(10,22)、(10,31)の場合についても、式(107)と同様の設定を行い、故障出力多項式Q’(x)を計算すると、次のようになる。
=/0x3+/(0^0)x2+/(0^0^0)x+(0^0^0^0 )
=x3+x2+x (108)
残りの2ビット故障候補(N,M)=(02,20)、(11,33)、(20,33)、(00,10)、(10,13)、(10,22)、(10,31)の場合についても、式(107)と同様の設定を行い、故障出力多項式Q’(x)を計算すると、次のようになる。
(N,M)=(02,20) ⇒ Q’(x)= x3+x2+x (109)
(N,M)=(11,33) ⇒ Q’(x)= x2+x
(N,M)=(20,33) ⇒ Q’(x)= x2+x
(N,M)=(00,10) ⇒ Q’(x)= x3+x2+x
(N,M)=(10,13) ⇒ Q’(x)= x3+x2
(N,M)=(10,22) ⇒ Q’(x)= x3+x2
(N,M)=(10,31) ⇒ Q’(x)= x3+x2
多入力シグネチャレジスタMISR1の出力ビットパターンがx3+x2+xと一致すれば、2ビット故障候補は(N,M)=(02,11)、(02,20)、(00,20)の3つに絞り込むことができる。また、出力ビットパターンがx2+xと一致すれば、2ビット故障候補は(N,M)=(11,33)、(20,33)2つに絞り込むことができる。さらに、出力ビットパターンがx3+x2と一致すれば、2ビット故障候補は(N,M)=(10,13)、(10,22)、(10,31)の3つに絞り込むことができる。
(N,M)=(11,33) ⇒ Q’(x)= x2+x
(N,M)=(20,33) ⇒ Q’(x)= x2+x
(N,M)=(00,10) ⇒ Q’(x)= x3+x2+x
(N,M)=(10,13) ⇒ Q’(x)= x3+x2
(N,M)=(10,22) ⇒ Q’(x)= x3+x2
(N,M)=(10,31) ⇒ Q’(x)= x3+x2
多入力シグネチャレジスタMISR1の出力ビットパターンがx3+x2+xと一致すれば、2ビット故障候補は(N,M)=(02,11)、(02,20)、(00,20)の3つに絞り込むことができる。また、出力ビットパターンがx2+xと一致すれば、2ビット故障候補は(N,M)=(11,33)、(20,33)2つに絞り込むことができる。さらに、出力ビットパターンがx3+x2と一致すれば、2ビット故障候補は(N,M)=(10,13)、(10,22)、(10,31)の3つに絞り込むことができる。
式(69)とは異なる最終状態、また、様々なビット故障候補に対しても、同様の手順によりビット故障候補のさらなる絞り込みが可能である。
本発明にかかる論理回路の故障解析方法は、論理回路BISTを有する半導体集積回路において、追加回路等を必要とせず、かつ、テスト応答ビットパターンとテスト応答処理手段の最終状態の間の一覧表を作成することなくビット故障候補を探索でき、さらに、テスト応答処理手段の出力ビットパターンを利用することにより、真のビット故障を特定することができるため、半導体集積回路の歩留り向上、品質向上あるいはプロセス改善に有用である。
TPG、TPG1、TPG2 テストパターン発生手段
CUT、CUT1、CUT2 被テスト回路
TRA、TRA1、TRA2 テスト応答処理手段
TP、TP1、TP2 テスト入力ビットパターン
TR、TR1、TR2 テスト応答ビットパターン
OUT1、OUT2 出力ビットパターン
LFSRA、LFSRB、LFSR1 線形フィードバックシフトレジスタ
MISR1 多入力シグネチャレジスタ
CUT、CUT1、CUT2 被テスト回路
TRA、TRA1、TRA2 テスト応答処理手段
TP、TP1、TP2 テスト入力ビットパターン
TR、TR1、TR2 テスト応答ビットパターン
OUT1、OUT2 出力ビットパターン
LFSRA、LFSRB、LFSR1 線形フィードバックシフトレジスタ
MISR1 多入力シグネチャレジスタ
Claims (6)
- 論理回路がテストパターン発生手段と、被テスト回路と、テスト応答処理手段から構成され、
前記テストパターン発生手段は内部で生成したテスト入力ビットパターンを出力し、
前記被テスト回路は前記テスト入力ビットパターンを入力とし、内部回路動作を経て1系統からなるテスト応答ビットパターンを出力し、
前記テスト応答処理手段は線形フィードバックシフトレジスタで構成され、前記線形フィードバックシフトレジスタは前記テスト応答ビットパターンを入力とし、内部回路動作を経て前記テスト応答ビットパターンの情報を前記線形フィードバックシフトレジスタを構成する複数段のレジスタに格納し、前記複数段のレジスタのシフトレジスタ構成としての最終段の状態を前記線形フィードバックシフトレジスタの出力とする前記論理回路において、前記被テスト回路の故障箇所を解析する方法であって、
前記被テスト回路に故障がない場合の第1のテスト応答ビットパターンについて、
データ0の存在する全てのビットを、前記第1のテスト応答ビットパターン中のビット位置の属性を持つ第1の論理変数により置換し、
データ1の存在する全てのビットを、前記第1のテスト応答ビットパターン中のビット位置の属性を持ち前記第1の論理変数と論理反転の関係にある第2の論理変数により置換して得られる第1の故障テスト応答ビットパターンを前記テスト応答処理手段に入力した場合に、
前記複数段のレジスタが初期状態から遷移した最終状態を、前記第1のテスト応答ビットパターン中のビット位置の属性を持つ前記第1および第2の論理変数を用いた形式で算出する第1の工程と、
前記第1の工程で算出された前記レジスタの最終状態が含む前記第1のテスト応答ビットパターン中のビット位置を要素とする第1の集合を前記複数段のレジスタごとに定義し、故障解析対象の前記論理回路が示す前記レジスタの最終状態が、前記被テスト回路に故障がない場合と一致する前記複数段のレジスタに対する前記第1の集合を第1の集合群に分類し、前記被テスト回路に故障がない場合と一致しない前記複数段のレジスタに対する前記第1の集合を第2の集合群に分類し、
前記第1の集合群に含まれる全ての前記第1の集合の和集合を算出して第1の和集合とし、
前記第2の集合群に含まれる全ての前記第1の集合の積集合を算出して第1の積集合とする第2の工程と、
前記第1の積集合から前記和集合を差し引いた差集合を算出して第1の差集合とし、前記第1の差集合の要素を単一ビット故障候補とする第3の工程と
を備えたことを特徴とする論理回路の故障解析方法。 - 論理回路がテストパターン発生手段と、被テスト回路と、テスト応答処理手段から構成され、
前記テストパターン発生手段は内部で生成したテスト入力ビットパターンを出力し、
前記被テスト回路は前記テスト入力ビットパターンを入力とし、内部回路動作を経て1系統からなるテスト応答ビットパターンを出力し、
前記テスト応答処理手段は線形フィードバックシフトレジスタで構成され、前記線形フィードバックシフトレジスタは前記テスト応答ビットパターンを入力とし、内部回路動作を経て前記テスト応答ビットパターンの情報を前記線形フィードバックシフトレジスタを構成する複数段のレジスタに格納し、前記複数段のレジスタのシフトレジスタ構成としての最終段の状態を前記線形フィードバックシフトレジスタの出力とする前記論理回路において、前記被テスト回路の故障箇所を解析する方法であって、
前記被テスト回路に故障がない場合の第1のテスト応答ビットパターンについて、
データ0の存在する全てのビットを、前記第1のテスト応答ビットパターン中のビット位置の属性を持つ第1の論理変数により置換し、
データ1の存在する全てのビットを、前記第1のテスト応答ビットパターン中のビット位置の属性を持ち前記第1の論理変数と論理反転の関係にある第2の論理変数により置換して得られる第1の故障テスト応答ビットパターンを前記テスト応答処理手段に入力した場合に、
前記複数段のレジスタが初期状態から遷移した最終状態を、前記第1のテスト応答ビットパターン中のビット位置の属性を持つ前記第1および第2の論理変数を用いた形式で算出する第1の工程と、
前記第1の工程で算出された前記レジスタの最終状態が含む前記第1のテスト応答ビットパターン中のビット位置を要素とする集合を前記複数段のレジスタごとに定義し、故障解析対象の前記論理回路が示す前記レジスタの最終状態が、前記被テスト回路に故障がない場合と一致する前記複数段のレジスタに対する前記第1の集合を第1の集合群に分類し、前記被テスト回路に故障がない場合と一致しない前記複数段のレジスタに対する前記第1の集合を第2の集合群に分類し、
前記第1の集合群に含まれる全ての前記集合の和集合を算出して第1の和集合とし、
前記第2の集合群に含まれる全ての前記集合の積集合を算出して第1の積集合とする第2の工程と、
前記第2の集合群に含まれる全ての前記第1の集合の和集合を算出して第2の和集合とし、
前記第1の積集合に2ビット故障の一方が含まれるという条件の下に、
前記第1の積集合の要素について第1のビット故障候補を仮定して、前記第2の和集合から前記第1のビット故障候補を除去した集合を算出して第2の集合とし、
前記第1の集合群に含まれる全ての前記第1の集合に対して、前記第2の集合を差し引いた差集合を算出して第3の集合とし、
前記第3の集合の中から前記第1のビット故障候補を含むものを全て選択し、それらの積集合から前記第1のビット故障候補を除去した集合を算出して第4の集合とし、
前記第4の集合が空集合である場合は前記第1のビット故障候補の仮定が誤りであるとし、
前記第4の集合が空集合でない場合は前記第4の集合の要素について第2のビット故障候補を仮定し、
前記第1の集合群に含まれる全ての前記第1の集合が、前記第1および第2のビット故障候補を同時に含むか、または、前記第1および第2のビット故障候補を全く含まないかのどちらかであり、前記第1の集合群に含まれる全ての前記第1の集合のうち少なくとも1つは前記第1および第2のビット故障候補を同時に含む場合に、前記第1および第2のビット故障候補の仮定は正しいとし、
前記第1の積集合に2ビット故障が全く含まれないという条件の下に、
前記第2の集合群に含まれる前記第1の集合の中から1つを選択して、前記第1の積集合を差し引いた差集合を算出して第5の集合とし、
前記第5の集合の要素について第3のビット故障候補を仮定し、
前記第2の集合群に含まれる前記第1の集合の中から前記第3のビット故障候補を含まないものを全て選択し、それらの積集合を算出して第6の集合とし、
前記第6の集合の要素について第4のビット故障候補を仮定し、
前記第1の集合群に含まれる全ての前記第1の集合が、前記第3および第4のビット故障候補を同時に含むか、または、前記第3または第4のビット故障候補を全く含まないかのどちらかである場合に、前記第3および第4のビット故障候補の仮定は正しいとし、
仮定が正しいと判定された前記第1および第2のビット故障候補の組合せと、前記第3および第4のビット故障候補の組合せをもって、2ビット故障候補とする第4の工程と
を備えたことを特徴とする論理回路の故障解析方法。 - 論理回路がテストパターン発生手段と、被テスト回路と、テスト応答処理手段から構成され、
前記テストパターン発生手段は内部で生成したテスト入力ビットパターンを出力し、
前記被テスト回路は前記テスト入力ビットパターンを入力とし、内部回路動作を経て1系統からなるテスト応答ビットパターンを出力し、
前記テスト応答処理手段は線形フィードバックシフトレジスタで構成され、前記線形フィードバックシフトレジスタは前記テスト応答ビットパターンを入力とし、内部回路動作を経て前記テスト応答ビットパターンの情報を前記線形フィードバックシフトレジスタを構成する複数段のレジスタに格納し、前記複数段のレジスタのシフトレジスタ構成としての最終段の状態を前記線形フィードバックシフトレジスタの出力とする前記論理回路において、前記被テスト回路の故障箇所を解析する方法であって、
前記被テスト回路に故障がない場合の第1のテスト応答ビットパターンについて、
データ0の存在する全てのビットを、前記第1のテスト応答ビットパターン中のビット位置の属性を持つ第1の論理変数により置換し、
データ1の存在する全てのビットを、前記第1のテスト応答ビットパターン中のビット位置の属性を持ち前記第1の論理変数と論理反転の関係にある第2の論理変数により置換して得られる第1の故障テスト応答ビットパターンを前記テスト応答処理手段に入力した場合に、前記複数段のレジスタの最終状態、および、前記線形フィードバックシフトレジスタの出力を、前記第1のテスト応答ビットパターン中のビット位置の属性を持つ前記第1および第2の論理変数を用いた形式で算出する第5の工程と、
前記第5の工程で算出された前記線形フィードバックシフトレジスタの出力について、単一ビット故障候補または2ビット故障候補のビット位置の属性を持つ前記第1および第2の論理変数をそれぞれ1および0とし、
前記単一ビット故障候補または前記2ビット故障候補のビット位置の属性を持たない前記第1および第2の論理変数をそれぞれ0および1として得られる第1の修正出力ビットパターンを算出し、
前記第1の修正出力ビットパターンと、実際に得られる前記線形フィードバックシフトレジスタの出力が一致した場合に、前記単一ビット故障候補または前記2ビット故障候補が真のビット故障であるとする第6の工程と
を備えたことを特徴とする論理回路の故障解析方法。 - 論理回路がテストパターン発生手段と、被テスト回路と、テスト応答処理手段から構成され、
前記テストパターン発生手段は内部で生成したテスト入力ビットパターンを出力し、
前記被テスト回路は前記テスト入力ビットパターンを入力とし、内部回路動作を経て2系統以上からなるテスト応答ビットパターンを出力し、
前記テスト応答処理手段は多入力シグネチャレジスタで構成され、前記多入力シグネチャレジスタは前記テスト応答ビットパターンを入力とし、内部回路動作を経て前記テスト応答ビットパターンの情報を前記多入力シグネチャレジスタを構成する複数段のレジスタに格納し、前記複数段のレジスタのシフトレジスタ構成としての最終段の状態を前記多入力シグネチャレジスタの出力とする前記論理回路において、前記被テスト回路の故障箇所を解析する方法であって、
前記被テスト回路に故障がない場合の前記第1のテスト応答ビットパターンにおいて、
データ0の存在する全てのビットを、前記第1のテスト応答ビットパターン中のビット位置の属性を持つ前記第1の論理変数により置換し、
データ1の存在する全てのビットを、前記第1のテスト応答ビットパターン中のビット位置の属性を持つ前記第2の論理変数により置換して得られる第2の故障テスト応答ビットパターンを前記第2のテスト応答処理手段に入力した場合に、
前記複数段のレジスタが初期状態から遷移した最終状態を、前記第1のテスト応答ビットパターン中のビット位置の属性を持つ前記第1および第2の論理変数を用いた形式で算出する第7の工程と、
前記第7の工程で前記レジスタの最終状態が含む前記第1のテスト応答ビットパターン中のビット位置を要素とする第1の集合を前記複数段のレジスタごとに定義し、
故障解析対象の前記論理回路が示す前記レジスタの最終状態が、前記被テスト回路に故障がない場合と一致する前記複数段のレジスタに対する前記第1の集合を第1の集合群に分類し、前記被テスト回路に故障がない場合と一致しない前記第2のレジスタに対する前記第1の集合を第2の集合群に分類し、
前記第3の集合群に含まれる全ての前記第1の集合の和集合を算出して第1の和集合とし、
前記第4の集合群に含まれる全ての前記第1の集合の積集合を算出して第1の積集合とする第8の工程と、
前記第1の積集合から前記第1の和集合を差し引いた差集合を算出して第1の差集合とし、前記第1の差集合の要素を単一ビット故障候補とする第9の工程と
を備えたことを特徴とする論理回路の故障解析方法。 - 論理回路がテストパターン発生手段と、被テスト回路と、テスト応答処理手段から構成され、
前記テストパターン発生手段は内部で生成したテスト入力ビットパターンを出力し、
前記被テスト回路は前記テスト入力ビットパターンを入力とし、内部回路動作を経て2系統以上からなるテスト応答ビットパターンを出力し、
前記テスト応答処理手段は多入力シグネチャレジスタで構成され、前記多入力シグネチャレジスタは前記テスト応答ビットパターンを入力とし、内部回路動作を経て前記テスト応答ビットパターンの情報を前記多入力シグネチャレジスタを構成する複数段のレジスタに格納し、前記複数段のレジスタのシフトレジスタ構成としての最終段の状態を前記多入力シグネチャレジスタの出力とする前記論理回路において、前記被テスト回路の故障箇所を解析する方法であって、
前記被テスト回路に故障がない場合の前記第1のテスト応答ビットパターンにおいて、
データ0の存在する全てのビットを、前記第1のテスト応答ビットパターン中のビット位置の属性を持つ前記第1の論理変数により置換し、
データ1の存在する全てのビットを、前記第1のテスト応答ビットパターン中のビット位置の属性を持つ前記第2の論理変数により置換して得られる第2の故障テスト応答ビットパターンを前記第2のテスト応答処理手段に入力した場合に、
前記複数段のレジスタが初期状態から遷移した最終状態を、前記第1のテスト応答ビットパターン中のビット位置の属性を持つ前記第1および第2の論理変数を用いた形式で算出する第7の工程と、
前記第7の工程で前記レジスタの最終状態が含む前記第1のテスト応答ビットパターン中のビット位置を要素とする第1の集合を前記複数段のレジスタごとに定義し、
故障解析対象の前記論理回路が示す前記レジスタの最終状態が、前記被テスト回路に故障がない場合と一致する前記複数段のレジスタに対する前記第1の集合を第1の集合群に分類し、前記被テスト回路に故障がない場合と一致しない前記第2のレジスタに対する前記第1の集合を第2の集合群に分類し、
前記第1の集合群に含まれる全ての前記第1の集合の和集合を算出して第1の和集合とし、
前記第2の集合群に含まれる全ての前記第1の集合の積集合を算出して第1の積集合とする第8の工程と、
前記第2の集合群に含まれる全ての前記第1の集合の和集合を算出して第2の和集合とし、
前記第1の積集合に2ビット故障の一方が含まれるという条件の下に、
前記第1の積集合の要素について第1のビット故障候補を仮定して、前記第2の和集合から前記第1のビット故障候補を除去した集合を算出して第2の集合とし、
前記第1の集合群に含まれる全ての前記第1の集合に対して、前記第2の集合を差し引いた差集合を算出して第3の集合とし、
前記第3の集合の中から前記第1のビット故障候補を含むものを全て選択し、それらの積集合から前記第1のビット故障候補を除去した集合を算出して第4の集合とし、
前記第4の集合が空集合である場合は前記第1のビット故障候補の仮定が誤りであるとし、
前記第4の集合が空集合でない場合は前記第4の集合の要素について第2のビット故障候補を仮定し、
前記第1の集合群に含まれる全ての前記第1の集合が、前記第1および第2のビット故障候補を同時に含むか、または、前記第1および第2のビット故障候補を全く含まないかのどちらかであり、前記第1の集合群に含まれる全ての前記第1の集合のうち少なくとも1つは前記第1および第2のビット故障候補を同時に含む場合に、前記第1および第2のビット故障候補の仮定は正しいとし、
前記第1の積集合に2ビット故障が全く含まれないという条件の下に、
前記第2の集合群に含まれる前記第1の集合の中から1つを選択して、前記第1の積集合を差し引いた差集合を算出して第5の集合とし、
前記第5の集合の要素について第3のビット故障候補を仮定し、
前記第2の集合群に含まれる前記第1の集合の中から前記第3のビット故障候補を含まないものを全て選択し、それらの積集合を算出して第6の集合とし、
前記第6の集合の要素について第4のビット故障候補を仮定し、
前記第1の集合群に含まれる全ての前記第1の集合が、前記第3および第4のビット故障候補を同時に含むか、または、前記第3または第4のビット故障候補を全く含まないかのどちらかである場合に、前記第3および第4のビット故障候補の仮定は正しいとし、
仮定が正しいと判定された前記第1および第2のビット故障候補の組合せと、前記第3および第4のビット故障候補の組合せをもって、2ビット故障候補とする第10の工程を備えたことを特徴とする論理回路の故障解析方法。 - 論理回路がテストパターン発生手段と、被テスト回路と、テスト応答処理手段から構成され、
前記テストパターン発生手段は内部で生成したテスト入力ビットパターンを出力し、
前記被テスト回路は前記テスト入力ビットパターンを入力とし、内部回路動作を経て2系統以上からなるテスト応答ビットパターンを出力し、
前記テスト応答処理手段は多入力シグネチャレジスタで構成され、前記多入力シグネチャレジスタは前記テスト応答ビットパターンを入力とし、内部回路動作を経て前記テスト応答ビットパターンの情報を前記多入力シグネチャレジスタを構成する複数段のレジスタに格納し、前記複数段のレジスタのシフトレジスタ構成としての最終段の状態を前記多入力シグネチャレジスタの出力とする前記論理回路において、前記被テスト回路の故障箇所を解析する方法であって、
前記被テスト回路に故障がない場合の第1のテスト応答ビットパターンについて、
データ0の存在する全てのビットを、前記第1のテスト応答ビットパターン中のビット位置の属性を持つ第1の論理変数により置換し、
データ1の存在する全てのビットを、前記第1のテスト応答ビットパターン中のビット位置の属性を持ち前記第1の論理変数と論理反転の関係にある第2の論理変数により置換して得られる第1の故障テスト応答ビットパターンを前記テスト応答処理手段に入力した場合に、前記複数段のレジスタの最終状態、および、前記多入力シグネチャレジスタの出力を、前記第1のテスト応答ビットパターン中のビット位置の属性を持つ前記第1および第2の論理変数を用いた形式で算出する第11の工程と、
前記第11の工程で算出された前記多入力シグネチャレジスタの出力について、単一ビット故障候補または2ビット故障候補のビット位置の属性を持つ前記第1および第2の論理変数をそれぞれ1および0とし、
前記単一ビット故障候補または前記2ビット故障候補のビット位置の属性を持たない前記第1および第2の論理変数をそれぞれ0および1として得られる第1の修正出力ビットパターンを算出し、
前記第1の修正出力ビットパターンと、実際に得られる前記多入力シグネチャレジスタの出力が一致した場合に、前記単一ビット故障候補または前記2ビット故障候補が真のビット故障である確率が高いとして、ビット故障候補の絞り込みを行う第12の工程と
を備えたことを特徴とする論理回路の故障解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004031773A JP2005221457A (ja) | 2004-02-09 | 2004-02-09 | 論理回路の故障解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004031773A JP2005221457A (ja) | 2004-02-09 | 2004-02-09 | 論理回路の故障解析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005221457A true JP2005221457A (ja) | 2005-08-18 |
Family
ID=34997203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004031773A Withdrawn JP2005221457A (ja) | 2004-02-09 | 2004-02-09 | 論理回路の故障解析方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005221457A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011106919A (ja) * | 2009-11-16 | 2011-06-02 | Chiba Univ | 半導体集積回路及びその遅延故障テスト方法 |
US10001524B2 (en) | 2015-09-11 | 2018-06-19 | Kabushiki Kaisha Toshiba | Semiconductor integrated circuit and test method thereof |
-
2004
- 2004-02-09 JP JP2004031773A patent/JP2005221457A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011106919A (ja) * | 2009-11-16 | 2011-06-02 | Chiba Univ | 半導体集積回路及びその遅延故障テスト方法 |
US10001524B2 (en) | 2015-09-11 | 2018-06-19 | Kabushiki Kaisha Toshiba | Semiconductor integrated circuit and test method thereof |
US10359470B2 (en) | 2015-09-11 | 2019-07-23 | Kabushiki Kaisha Toshiba | Semiconductor integrated circuit and test method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7308660B2 (en) | Calculation system of fault coverage and calculation method of the same | |
US6532440B1 (en) | Multiple error and fault diagnosis based on Xlists | |
US7596731B1 (en) | Test time reduction algorithm | |
US20070043989A1 (en) | Method for specifying failure position in scan chain | |
US7139948B2 (en) | Method for determining the impact on test coverage of scan chain parallelization by analysis of a test set for independently accessible flip-flops | |
JP4636989B2 (ja) | 遅延解析装置、遅延解析方法、遅延解析プログラム、および記録媒体 | |
US20170344669A1 (en) | Method for verifying error of digital circuit | |
US9404972B2 (en) | Diagnosis and debug with truncated simulation | |
US7464296B2 (en) | System and method for identifying failure candidates in a semiconductor apparatus | |
JP4541196B2 (ja) | 故障検出改善装置、故障検出改善プログラム、故障検出改善方法 | |
JP2655105B2 (ja) | 順序回路の故障箇所推定方法 | |
JP2005221457A (ja) | 論理回路の故障解析方法 | |
US8615692B1 (en) | Method and system for analyzing test vectors to determine toggle counts | |
US8458110B2 (en) | Verification support apparatus, verification support method, and computer product | |
Bodhe et al. | Diagnostic Fail Data Minimization Using an $ N $-Cover Algorithm | |
WO2009084424A1 (ja) | 半導体テスト装置、半導体装置および試験方法 | |
US10203370B2 (en) | Scheme for masking output of scan chains in test circuit | |
US20050289419A1 (en) | Test pattern generator, test circuit tester, test pattern generating method, test circuit testing method, and computer product | |
US20150204939A1 (en) | Multiple defect diagnosis method and machine readable media | |
Chen et al. | On diagnosis of timing failures in scan architecture | |
US7373616B2 (en) | Designing apparatus, and inspection apparatus for designing an integrated circuit having reduced leakage current | |
JP2006220483A (ja) | 自己テスト回路のテスト応答エラー探索方法およびテスト応答エラー検出能力評価方法 | |
Chen et al. | Diagnosing scan chain timing faults through statistical feature analysis of scan images | |
Karatkevich et al. | Graph based approach to test bench constructing for datapath | |
Sun et al. | On the generation of diagnostic test set for intra-cell defects |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060510 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060613 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20080709 |