(57)【要約】【課題】テストパターン発生手段、被テスト回路、テスト応答処理手段からなる論理回路ＢＩＳＴで被テスト回路の故障解析するのに、故障を想定したテスト応答とテスト応答圧縮手段の最終状態を対比したルックアップテーブルを作成する方法があるが、故障解析対象の回路規模の増加に伴い、ルックアップテーブルおよびその計算量が膨大になる。【解決手段】故障の有無を表す論理変数を用いてテスト応答中のデータ０、１を置換した故障テスト応答を考え、テスト応答処理手段ＴＲＡ１の最終状態をその論理変数を用いて表す。これを用いて、テスト応答処理手段ＴＲＡ１の最終状態から故障テスト応答中の故障候補を演算により求めることが可能となる。特別な解析容易化回路を追加する必要がないため回路面積の増加がない。テスト応答処理手段として、ＬＦＳＲだけでなく、広く使用されようとしているＭＩＳＲにも適用可能である。【選択図】図１
2005221457.tif 000002
【特許請求の範囲】
【請求項１】
論理回路がテストパターン発生手段と、被テスト回路と、テスト応答処理手段から構成され、
前記テストパターン発生手段は内部で生成したテスト入力ビットパターンを出力し、
前記被テスト回路は前記テスト入力ビットパターンを入力とし、内部回路動作を経て１系統からなるテスト応答ビットパターンを出力し、
前記テスト応答処理手段は線形フィードバックシフトレジスタで構成され、前記線形フィードバックシフトレジスタは前記テスト応答ビットパターンを入力とし、内部回路動作を経て前記テスト応答ビットパターンの情報を前記線形フィードバックシフトレジスタを構成する複数段のレジスタに格納し、前記複数段のレジスタのシフトレジスタ構成としての最終段の状態を前記線形フィードバックシフトレジスタの出力とする前記論理回路において、前記被テスト回路の故障箇所を解析する方法であって、
前記被テスト回路に故障がない場合の第１のテスト応答ビットパターンについて、
データ０の存在する全てのビットを、前記第１のテスト応答ビットパターン中のビット位置の属性を持つ第１の論理変数により置換し、
データ１の存在する全てのビットを、前記第１のテスト応答ビットパターン中のビット位置の属性を持ち前記第１の論理変数と論理反転の関係にある第２の論理変数により置換して得られる第１の故障テスト応答ビットパターンを前記テスト応答処理手段に入力した場合に、
前記複数段のレジスタが初期状態から遷移した最終状態を、前記第１のテスト応答ビットパターン中のビット位置の属性を持つ前記第１および第２の論理変数を用いた形式で算出する第１の工程と、
前記第１の工程で算出された前記レジスタの最終状態が含む前記第１のテスト応答ビットパターン中のビット位置を要素とする第１の集合を前記複数段のレジスタごとに定義し、故障解析対象の前記論理回路が示す前記レジスタの最終状態が、前記被テスト回路に故障がない場合と一致する前記複数段のレジスタに対する前記第１の集合を第１の集合群に分類し、前記被テスト回路に故障がない場合と一致しない前記複数段のレジスタに対する前記第１の集合を第２の集合群に分類し、
前記第１の集合群に含まれる全ての前記第１の集合の和集合を算出して第１の和集合とし、
前記第２の集合群に含まれる全ての前記第１の集合の積集合を算出して第１の積集合とする第２の工程と、
前記第１の積集合から前記和集合を差し引いた差集合を算出して第１の差集合とし、前記第１の差集合の要素を単一ビット故障候補とする第３の工程と
を備えたことを特徴とする論理回路の故障解析方法。
【請求項２】
論理回路がテストパターン発生手段と、被テスト回路と、テスト応答処理手段から構成され、
前記テストパターン発生手段は内部で生成したテスト入力ビットパターンを出力し、
前記被テスト回路は前記テスト入力ビットパターンを入力とし、内部回路動作を経て１系統からなるテスト応答ビットパターンを出力し、
前記テスト応答処理手段は線形フィードバックシフトレジスタで構成され、前記線形フィードバックシフトレジスタは前記テスト応答ビットパターンを入力とし、内部回路動作を経て前記テスト応答ビットパターンの情報を前記線形フィードバックシフトレジスタを構成する複数段のレジスタに格納し、前記複数段のレジスタのシフトレジスタ構成としての最終段の状態を前記線形フィードバックシフトレジスタの出力とする前記論理回路において、前記被テスト回路の故障箇所を解析する方法であって、
前記被テスト回路に故障がない場合の第１のテスト応答ビットパターンについて、
データ０の存在する全てのビットを、前記第１のテスト応答ビットパターン中のビット位置の属性を持つ第１の論理変数により置換し、
データ１の存在する全てのビットを、前記第１のテスト応答ビットパターン中のビット位置の属性を持ち前記第１の論理変数と論理反転の関係にある第２の論理変数により置換して得られる第１の故障テスト応答ビットパターンを前記テスト応答処理手段に入力した場合に、
前記複数段のレジスタが初期状態から遷移した最終状態を、前記第１のテスト応答ビットパターン中のビット位置の属性を持つ前記第１および第２の論理変数を用いた形式で算出する第１の工程と、
前記第１の工程で算出された前記レジスタの最終状態が含む前記第１のテスト応答ビットパターン中のビット位置を要素とする集合を前記複数段のレジスタごとに定義し、故障解析対象の前記論理回路が示す前記レジスタの最終状態が、前記被テスト回路に故障がない場合と一致する前記複数段のレジスタに対する前記第１の集合を第１の集合群に分類し、前記被テスト回路に故障がない場合と一致しない前記複数段のレジスタに対する前記第１の集合を第２の集合群に分類し、
前記第１の集合群に含まれる全ての前記集合の和集合を算出して第１の和集合とし、
前記第２の集合群に含まれる全ての前記集合の積集合を算出して第１の積集合とする第２の工程と、
前記第２の集合群に含まれる全ての前記第１の集合の和集合を算出して第２の和集合とし、
前記第１の積集合に２ビット故障の一方が含まれるという条件の下に、
前記第１の積集合の要素について第１のビット故障候補を仮定して、前記第２の和集合から前記第１のビット故障候補を除去した集合を算出して第２の集合とし、
前記第１の集合群に含まれる全ての前記第１の集合に対して、前記第２の集合を差し引いた差集合を算出して第３の集合とし、
前記第３の集合の中から前記第１のビット故障候補を含むものを全て選択し、それらの積集合から前記第１のビット故障候補を除去した集合を算出して第４の集合とし、
前記第４の集合が空集合である場合は前記第１のビット故障候補の仮定が誤りであるとし、
前記第４の集合が空集合でない場合は前記第４の集合の要素について第２のビット故障候補を仮定し、
前記第１の集合群に含まれる全ての前記第１の集合が、前記第１および第２のビット故障候補を同時に含むか、または、前記第１および第２のビット故障候補を全く含まないかのどちらかであり、前記第１の集合群に含まれる全ての前記第１の集合のうち少なくとも１つは前記第１および第２のビット故障候補を同時に含む場合に、前記第１および第２のビット故障候補の仮定は正しいとし、
前記第１の積集合に２ビット故障が全く含まれないという条件の下に、
前記第２の集合群に含まれる前記第１の集合の中から１つを選択して、前記第１の積集合を差し引いた差集合を算出して第５の集合とし、
前記第５の集合の要素について第３のビット故障候補を仮定し、
前記第２の集合群に含まれる前記第１の集合の中から前記第３のビット故障候補を含まないものを全て選択し、それらの積集合を算出して第６の集合とし、
前記第６の集合の要素について第４のビット故障候補を仮定し、
前記第１の集合群に含まれる全ての前記第１の集合が、前記第３および第４のビット故障候補を同時に含むか、または、前記第３または第４のビット故障候補を全く含まないかのどちらかである場合に、前記第３および第４のビット故障候補の仮定は正しいとし、
仮定が正しいと判定された前記第１および第２のビット故障候補の組合せと、前記第３および第４のビット故障候補の組合せをもって、２ビット故障候補とする第４の工程と
を備えたことを特徴とする論理回路の故障解析方法。
【請求項３】
論理回路がテストパターン発生手段と、被テスト回路と、テスト応答処理手段から構成され、
前記テストパターン発生手段は内部で生成したテスト入力ビットパターンを出力し、
前記被テスト回路は前記テスト入力ビットパターンを入力とし、内部回路動作を経て１系統からなるテスト応答ビットパターンを出力し、
前記テスト応答処理手段は線形フィードバックシフトレジスタで構成され、前記線形フィードバックシフトレジスタは前記テスト応答ビットパターンを入力とし、内部回路動作を経て前記テスト応答ビットパターンの情報を前記線形フィードバックシフトレジスタを構成する複数段のレジスタに格納し、前記複数段のレジスタのシフトレジスタ構成としての最終段の状態を前記線形フィードバックシフトレジスタの出力とする前記論理回路において、前記被テスト回路の故障箇所を解析する方法であって、
前記被テスト回路に故障がない場合の第１のテスト応答ビットパターンについて、
データ０の存在する全てのビットを、前記第１のテスト応答ビットパターン中のビット位置の属性を持つ第１の論理変数により置換し、
データ１の存在する全てのビットを、前記第１のテスト応答ビットパターン中のビット位置の属性を持ち前記第１の論理変数と論理反転の関係にある第２の論理変数により置換して得られる第１の故障テスト応答ビットパターンを前記テスト応答処理手段に入力した場合に、前記複数段のレジスタの最終状態、および、前記線形フィードバックシフトレジスタの出力を、前記第１のテスト応答ビットパターン中のビット位置の属性を持つ前記第１および第２の論理変数を用いた形式で算出する第５の工程と、
前記第５の工程で算出された前記線形フィードバックシフトレジスタの出力について、単一ビット故障候補または２ビット故障候補のビット位置の属性を持つ前記第１および第２の論理変数をそれぞれ１および０とし、
前記単一ビット故障候補または前記２ビット故障候補のビット位置の属性を持たない前記第１および第２の論理変数をそれぞれ０および１として得られる第１の修正出力ビットパターンを算出し、
前記第１の修正出力ビットパターンと、実際に得られる前記線形フィードバックシフトレジスタの出力が一致した場合に、前記単一ビット故障候補または前記２ビット故障候補が真のビット故障であるとする第６の工程と
を備えたことを特徴とする論理回路の故障解析方法。
【請求項４】
論理回路がテストパターン発生手段と、被テスト回路と、テスト応答処理手段から構成され、
前記テストパターン発生手段は内部で生成したテスト入力ビットパターンを出力し、
前記被テスト回路は前記テスト入力ビットパターンを入力とし、内部回路動作を経て２系統以上からなるテスト応答ビットパターンを出力し、
前記テスト応答処理手段は多入力シグネチャレジスタで構成され、前記多入力シグネチャレジスタは前記テスト応答ビットパターンを入力とし、内部回路動作を経て前記テスト応答ビットパターンの情報を前記多入力シグネチャレジスタを構成する複数段のレジスタに格納し、前記複数段のレジスタのシフトレジスタ構成としての最終段の状態を前記多入力シグネチャレジスタの出力とする前記論理回路において、前記被テスト回路の故障箇所を解析する方法であって、
前記被テスト回路に故障がない場合の前記第１のテスト応答ビットパターンにおいて、
データ０の存在する全てのビットを、前記第１のテスト応答ビットパターン中のビット位置の属性を持つ前記第１の論理変数により置換し、
データ１の存在する全てのビットを、前記第１のテスト応答ビットパターン中のビット位置の属性を持つ前記第２の論理変数により置換して得られる第２の故障テスト応答ビットパターンを前記第２のテスト応答処理手段に入力した場合に、
前記複数段のレジスタが初期状態から遷移した最終状態を、前記第１のテスト応答ビットパターン中のビット位置の属性を持つ前記第１および第２の論理変数を用いた形式で算出する第７の工程と、
前記第７の工程で前記レジスタの最終状態が含む前記第１のテスト応答ビットパターン中のビット位置を要素とする第１の集合を前記複数段のレジスタごとに定義し、
故障解析対象の前記論理回路が示す前記レジスタの最終状態が、前記被テスト回路に故障がない場合と一致する前記複数段のレジスタに対する前記第１の集合を第１の集合群に分類し、前記被テスト回路に故障がない場合と一致しない前記第２のレジスタに対する前記第１の集合を第２の集合群に分類し、
前記第３の集合群に含まれる全ての前記第１の集合の和集合を算出して第１の和集合とし、
前記第４の集合群に含まれる全ての前記第１の集合の積集合を算出して第１の積集合とする第８の工程と、
前記第１の積集合から前記第１の和集合を差し引いた差集合を算出して第１の差集合とし、前記第１の差集合の要素を単一ビット故障候補とする第９の工程と
を備えたことを特徴とする論理回路の故障解析方法。
【請求項５】
論理回路がテストパターン発生手段と、被テスト回路と、テスト応答処理手段から構成され、
前記テストパターン発生手段は内部で生成したテスト入力ビットパターンを出力し、
前記被テスト回路は前記テスト入力ビットパターンを入力とし、内部回路動作を経て２系統以上からなるテスト応答ビットパターンを出力し、
前記テスト応答処理手段は多入力シグネチャレジスタで構成され、前記多入力シグネチャレジスタは前記テスト応答ビットパターンを入力とし、内部回路動作を経て前記テスト応答ビットパターンの情報を前記多入力シグネチャレジスタを構成する複数段のレジスタに格納し、前記複数段のレジスタのシフトレジスタ構成としての最終段の状態を前記多入力シグネチャレジスタの出力とする前記論理回路において、前記被テスト回路の故障箇所を解析する方法であって、
前記被テスト回路に故障がない場合の前記第１のテスト応答ビットパターンにおいて、
データ０の存在する全てのビットを、前記第１のテスト応答ビットパターン中のビット位置の属性を持つ前記第１の論理変数により置換し、
データ１の存在する全てのビットを、前記第１のテスト応答ビットパターン中のビット位置の属性を持つ前記第２の論理変数により置換して得られる第２の故障テスト応答ビットパターンを前記第２のテスト応答処理手段に入力した場合に、
前記複数段のレジスタが初期状態から遷移した最終状態を、前記第１のテスト応答ビットパターン中のビット位置の属性を持つ前記第１および第２の論理変数を用いた形式で算出する第７の工程と、
前記第７の工程で前記レジスタの最終状態が含む前記第１のテスト応答ビットパターン中のビット位置を要素とする第１の集合を前記複数段のレジスタごとに定義し、
故障解析対象の前記論理回路が示す前記レジスタの最終状態が、前記被テスト回路に故障がない場合と一致する前記複数段のレジスタに対する前記第１の集合を第１の集合群に分類し、前記被テスト回路に故障がない場合と一致しない前記第２のレジスタに対する前記第１の集合を第２の集合群に分類し、
前記第１の集合群に含まれる全ての前記第１の集合の和集合を算出して第１の和集合とし、
前記第２の集合群に含まれる全ての前記第１の集合の積集合を算出して第１の積集合とする第８の工程と、
前記第２の集合群に含まれる全ての前記第１の集合の和集合を算出して第２の和集合とし、
前記第１の積集合に２ビット故障の一方が含まれるという条件の下に、
前記第１の積集合の要素について第１のビット故障候補を仮定して、前記第２の和集合から前記第１のビット故障候補を除去した集合を算出して第２の集合とし、
前記第１の集合群に含まれる全ての前記第１の集合に対して、前記第２の集合を差し引いた差集合を算出して第３の集合とし、
前記第３の集合の中から前記第１のビット故障候補を含むものを全て選択し、それらの積集合から前記第１のビット故障候補を除去した集合を算出して第４の集合とし、
前記第４の集合が空集合である場合は前記第１のビット故障候補の仮定が誤りであるとし、
前記第４の集合が空集合でない場合は前記第４の集合の要素について第２のビット故障候補を仮定し、
前記第１の集合群に含まれる全ての前記第１の集合が、前記第１および第２のビット故障候補を同時に含むか、または、前記第１および第２のビット故障候補を全く含まないかのどちらかであり、前記第１の集合群に含まれる全ての前記第１の集合のうち少なくとも１つは前記第１および第２のビット故障候補を同時に含む場合に、前記第１および第２のビット故障候補の仮定は正しいとし、
前記第１の積集合に２ビット故障が全く含まれないという条件の下に、
前記第２の集合群に含まれる前記第１の集合の中から１つを選択して、前記第１の積集合を差し引いた差集合を算出して第５の集合とし、
前記第５の集合の要素について第３のビット故障候補を仮定し、
前記第２の集合群に含まれる前記第１の集合の中から前記第３のビット故障候補を含まないものを全て選択し、それらの積集合を算出して第６の集合とし、
前記第６の集合の要素について第４のビット故障候補を仮定し、
前記第１の集合群に含まれる全ての前記第１の集合が、前記第３および第４のビット故障候補を同時に含むか、または、前記第３または第４のビット故障候補を全く含まないかのどちらかである場合に、前記第３および第４のビット故障候補の仮定は正しいとし、
仮定が正しいと判定された前記第１および第２のビット故障候補の組合せと、前記第３および第４のビット故障候補の組合せをもって、２ビット故障候補とする第１０の工程を備えたことを特徴とする論理回路の故障解析方法。
【請求項６】
論理回路がテストパターン発生手段と、被テスト回路と、テスト応答処理手段から構成され、
前記テストパターン発生手段は内部で生成したテスト入力ビットパターンを出力し、
前記被テスト回路は前記テスト入力ビットパターンを入力とし、内部回路動作を経て２系統以上からなるテスト応答ビットパターンを出力し、
前記テスト応答処理手段は多入力シグネチャレジスタで構成され、前記多入力シグネチャレジスタは前記テスト応答ビットパターンを入力とし、内部回路動作を経て前記テスト応答ビットパターンの情報を前記多入力シグネチャレジスタを構成する複数段のレジスタに格納し、前記複数段のレジスタのシフトレジスタ構成としての最終段の状態を前記多入力シグネチャレジスタの出力とする前記論理回路において、前記被テスト回路の故障箇所を解析する方法であって、
前記被テスト回路に故障がない場合の第１のテスト応答ビットパターンについて、
データ０の存在する全てのビットを、前記第１のテスト応答ビットパターン中のビット位置の属性を持つ第１の論理変数により置換し、
データ１の存在する全てのビットを、前記第１のテスト応答ビットパターン中のビット位置の属性を持ち前記第１の論理変数と論理反転の関係にある第２の論理変数により置換して得られる第１の故障テスト応答ビットパターンを前記テスト応答処理手段に入力した場合に、前記複数段のレジスタの最終状態、および、前記多入力シグネチャレジスタの出力を、前記第１のテスト応答ビットパターン中のビット位置の属性を持つ前記第１および第２の論理変数を用いた形式で算出する第１１の工程と、
前記第１１の工程で算出された前記多入力シグネチャレジスタの出力について、単一ビット故障候補または２ビット故障候補のビット位置の属性を持つ前記第１および第２の論理変数をそれぞれ１および０とし、
前記単一ビット故障候補または前記２ビット故障候補のビット位置の属性を持たない前記第１および第２の論理変数をそれぞれ０および１として得られる第１の修正出力ビットパターンを算出し、
前記第１の修正出力ビットパターンと、実際に得られる前記多入力シグネチャレジスタの出力が一致した場合に、前記単一ビット故障候補または前記２ビット故障候補が真のビット故障である確率が高いとして、ビット故障候補の絞り込みを行う第１２の工程と
を備えたことを特徴とする論理回路の故障解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路などの論理回路において、ＢＩＳＴ（Ｂｕｉｌｔ−Ｉｎ  Ｓｅｌｆ  Ｔｅｓｔ）が使用されている場合に、被検査回路の故障箇所を特定するための故障解析手法に関するものである。
【背景技術】
【０００２】
近年、半導体集積回路の大規模化、多機能・複合機能化などの技術変化が急激に起こっており、品質向上のため、テスト技術がますます重要になっている。テストパターン作成工数の削減や、テスト時間短縮のため、スキャンテストなどのテスト容易化設計が広く使用されるようになり、これに対応した故障解析技術もいくつか研究されている。そして、さらなるテスト開発工数削減を達成するため、論理回路のＢＩＳＴが研究されている。
【０００３】
図９に一般的な論理回路ＢＩＳＴの構成を示す。以下、図９を使用して、回路動作を説明する。
【０００４】
図９において、論理回路ＢＩＳＴは、テストパターン発生手段ＴＰＧ、被テスト回路ＣＵＴ、および、テスト応答処理手段ＴＲＡから構成されている。
【０００５】
テストパターン発生手段ＴＰＧは、線形フィードバックレジスタ（ＬＦＳＲ：Ｌｉｎｅａｒ  Ｆｅｅｄｂａｃｋ  Ｓｈｉｆｔ  Ｒｅｇｉｓｔｅｒｓ）などで構成され、被テスト回路ＣＵＴの構成に応じて故障検出率が高くなるような時系列ビットパターンを発生する。
【０００６】
被テスト回路ＣＵＴは、通常の動作モードの他にＢＩＳＴモードを持ち、ＢＩＳＴモードにおいては、テストパターン発生手段ＴＰＧからの時系列ビットパターンが入力される。
【０００７】
テスト応答処理手段ＴＲＡは、線形フィードバックシフトレジスタもしくは多入力シグネチャレジスタ（ＭＩＳＲ：Ｍｕｌｔｉｐｌｅ  Ｉｎｐｕｔｓ  Ｓｉｇｎａｔｕｒｅ  Ｒｅｇｉｓｔｅｒｓ）が使用され、被テスト回路ＣＵＴが出力するテスト応答ビットパターンをレジスタ群のデータパターンとして格納する。最終状態において、レジスタ群に格納されているデータパターンが予め準備された期待値パターンと一致していれば良品と判定し、不一致があれば不良品と判定する。
【０００８】
歩留り向上や品質向上のためには、半導体集積回路上の故障箇所を特定する故障解析技術が不可欠であるが、ＢＩＳＴの場合には困難が伴う。これは、テスト応答処理手段ＴＲＡのレジスタに格納されたデータパターンが圧縮されたものであり、被テスト回路ＣＵＴが出力したテスト応答ビットパターンそのものではないからである。
【０００９】
テスト応答処理手段ＴＲＡに格納された情報から、被テスト回路ＣＵＴが出力したテスト応答ビットパターン中のエラービットを特定する故障解析手法における従来の技術としては次のものがある。
【００１０】
単一ビット故障として、被テスト回路ＣＵＴが出力するテスト応答ビットパターン中にビット故障が１つしかない場合を対象とし、テスト応答処理手段ＴＲＡに入力されるビット故障を含んだテスト応答ビットパターンとテスト応答処理手段ＴＲＡのレジスタ群に格納されたデータパターンを対比したルックアップテーブルを作成して、ビット故障候補を抽出する。一般に、被テスト回路ＣＵＴが出力するテスト応答ビットパターンが非常に長いのに対し、テスト応答処理手段ＴＲＡのレジスタ数は限定されているため、レジスタ群に格納された１つのデータパターンにビット故障の発生パターンが複数個対応する。
【００１１】
真のビット故障を特定するための手法として、テスト応答処理手段ＴＲＡの中に特性多項式の異なる線形フィードバックレジスタＬＦＳＲＡ、ＬＦＳＲＢを２つ使用し、各線形フィードバックレジスタに格納し得るデータパターンの数の最小公倍数を被テスト回路ＣＵＴが出力するテスト応答ビットパターンの長さ以上にする。各線形フィードバックレジスタの最終状態からそれぞれビット故障候補が求められるが、両者で一致してビット故障候補として挙げられたものが真のビット故障となる（特許文献１、非特許文献１参照）。
【特許文献１】特開平１１−２０２０２８号公報
【非特許文献１】Charles E. Stroud & T. Raju Damarla, "Improving The Efficiency of Error Identification via Signature Analysis" IEEE VLSI Test Symposium, pp244-249, 1995.
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記の従来技術では、すべての単一ビット故障の場合について、被テスト回路ＣＵＴが出力するテスト応答ビットパターンに対して、テスト応答処理手段ＴＲＡのレジスタに格納されたデータパターンを計算して、ルックアップテーブルが必要である。被テスト回路ＣＵＴの規模の増大につれて、ルックアップテーブルの規模も増大し、計算量も増大する。複数ビットの故障を解析対象に含めると、ルックアップテーブルの規模やその計算量は膨大なものとなる。
【００１３】
また、テスト応答処理手段ＴＲＡの内部に線形フィードバックシフトレジスタＬＦＳＲＡ、ＬＦＳＲＢを２つ設けるため、回路面積が増大し、製品コストの上昇につながる。
【００１４】
本発明の目的は、従来の回路構成に対して特別な追加回路を必要とせず、ルックアップテーブルなしに直接的に演算処理により、ビット故障候補を探索することのできる論理回路の故障解析方法を提供することにある。
【課題を解決するための手段】
【００１５】
前記の目的を達成するため、本発明にかかる論理回路の故障解析方法は、論理回路がテストパターン発生手段と、被テスト回路と、テスト応答処理手段から構成され、前記テストパターン発生手段は内部で生成したテスト入力ビットパターンを出力し、前記被テスト回路は前記テスト入力ビットパターンを入力とし、内部回路動作を経て１系統からなるテスト応答ビットパターンを出力し、前記テスト応答処理手段は線形フィードバックシフトレジスタで構成され、前記線形フィードバックシフトレジスタは前記テスト応答ビットパターンを入力とし、内部回路動作を経て前記テスト応答ビットパターンの情報を前記線形フィードバックシフトレジスタを構成する複数段のレジスタに格納し、前記複数段のレジスタのシフトレジスタ構成としての最終段の状態を前記線形フィードバックシフトレジスタの出力とする前記論理回路において、前記被テスト回路の故障箇所を解析する方法であって、前記被テスト回路に故障がない場合の第１のテスト応答ビットパターンをビット位置の属性を持つ論理変数により置換して作成した第１の故障テスト応答ビットパターンを前記テスト応答処理手段に入力した場合に、前記複数段のレジスタが最終状態をビット位置の属性を要素とする集合を定義し、故障解析対象の前記論理回路が示す前記レジスタの最終状態と比較して単一ビット故障候補を算出するものである。
【００１６】
さらに、２ビット故障に対しては、算出した単一ビット故障候補と別に集合の演算により第２のビット故障候補を算出し、２ビット故障の一方を含むか、２ビット故障を全く含まないかの場合を分けて、２つのビット故障候補の組合せで２ビット故障候補を算出するものである。
【００１７】
また、線形フィードバックシフトレジスタの出力において、単一ビット故障候補または２ビット故障候補のビット位置の属性を持つものとビット位置の属性を持たないものにより、修正出力ビットパターンを算出し、実際に得られる前記線形フィードバックシフトレジスタの出力と比較して前記単一ビット故障候補または前記２ビット故障候補が真のビット故障であるか判定するものである。
【００１８】
さらに、線形フィードバックシフトレジスタに変えて、多入力シグネチャレジスタの場合にテスト応答ビットパターンをビットの長さに応じたものとし、同様に単一ビット故障候補または２ビット故障候補を算出し判定するものである。
【発明の効果】
【００１９】
論理回路の故障解析方法によれば、テスト応答処理手段として１つの線形フィードバックシフトレジスタだけで故障解析を行うことができ、２個以下のビット故障候補であれば、テスト応答ビットパターンとテスト応答処理手段の最終状態の間のルックアップテーブルを作成することなく、演算処理によって求めることができる。
【００２０】
また、テスト応答処理手段として１つの線形フィードバックシフトレジスタだけで故障解析を行うことができ、与えられたビット故障候補に対して出力ビットパターンを利用することにより真のビット故障を求めることができる。
【００２１】
また、テスト応答処理手段として１つの多入力シグネチャレジスタだけで故障解析を行うことができ、２個以下のビット故障候補であれば、テスト応答ビットパターンとテスト応答処理手段の最終状態の間のルックアップテーブルを作成することなく、演算処理によって求めることができる。
【００２２】
さらに、テスト応答処理手段として１つの多入力シグネチャレジスタだけで故障解析を行うことができ、与えられたビット故障候補に対して出力ビットパターンを利用することにより真のビット故障を求めることができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態を具体的な例を使用して説明する。
【００２４】
（実施の形態１）
図１は、本発明の第１の実施の形態における論理回路の故障解析方法による単一ビット故障候補の探索手順を示した工程図である。
【００２５】
ＴＰＧ１はテストパターン発生手段、ＣＵＴ１は被テスト回路、ＴＲＡ１はテスト応答処理手段であり、テストパターン発生手段ＴＰＧ１が出力するテスト入力ビットパターンＴＰ１を被テスト回路ＣＵＴ１に入力し、被テスト回路ＣＵＴ１が出力するテスト応答ビットパターンＴＲ１をテスト応答処理手段ＴＲＡ１に入力する。
【００２６】
テスト応答処理手段ＴＲＡ１は線形フィードバックシフトレジスタＬＦＳＲ１で構成される。本実施の形態においては、図１に示す通り４個のレジスタＦＦ０〜ＦＦ３および２個の排他的論理和ゲートＥＸＯＲ１、２からなるものとする。被テスト回路ＣＵＴ１から入力されるテスト応答ビットパターンＴＲ１は１３ビットの長さであるとし、被テスト回路ＣＵＴ１に故障がない場合は、
１００１００００１０００１        （１）
であるとする。ここで、左端のビットが最初の時刻に入力され、時刻の進展とともに右隣のビットが順次入力される。
【００２７】
一般に、ビットパターンは多項式によって表現することができる。多項式による表現では、線形フィードバックシフトレジスタはレジスタ数、排他的論理和ゲートの配置によって決まる特性多項式Ｐ（ｘ）を有し、入力されるテスト応答ビットパターンを表す入力多項式Ｇ（ｘ）、出力ビットパターンを表す出力多項式Ｑ（ｘ）、線形フィードバックシフトレジスタの最終状態を表す多項式Ｒ（ｘ）との間に、以下の関係式が成立する。
【００２８】
Ｇ（ｘ）＝  Ｐ（ｘ）Ｑ（ｘ）＋Ｒ（ｘ）      （２）
本実施の形態では、
Ｇ（ｘ）＝  ｘ12＋ｘ9＋ｘ4＋１              （３）
Ｐ（ｘ）＝  ｘ4＋ｘ＋１                    （４）
であり、Ｑ（ｘ）、Ｒ（ｘ）は以下のように計算される。ここで、例えば、式（３）は１３ビット目、１０ビット目、５ビット目、１ビット目が１であり、その他のビットが０であることを示す。その他の式が表すものも同様である。
【００２９】
Ｑ（ｘ）＝  ｘ8＋ｘ4＋ｘ                    （５）
Ｒ（ｘ）＝  ｘ2＋ｘ＋１                     （６）
上記の計算について、詳細な実行手順を図７に示す。図７において、式（２）に対して、ｘiの係数の演算は排他的論理和を使用しており、線形フィードバックシフトレジスタＬＦＳＲ１の最終状態Ｒ（ｘ）はＦＦ０：１、ＦＦ１：１、ＦＦ２：１、ＦＦ３：０となる。
【００３０】
次に、線形フィードバックシフトレジスタＬＦＳＲ１に入力されるテスト応答ビットパターンＴＲ１に故障がある場合を考える（工程１）。
【００３１】
では、テスト応答ビットパターンにおいて、データ０の存在する全てのビットとビット位置ｉの属性を併せ持つ論理変数ｄiで置換し、データ１の存在する全てのビットとビット位置ｉの属性を併せ持つ論理変数/ｄiで置換した故障テスト応答ビットパターンを定義する。ここで、/ｄiはｄiの論理反転を表す。多項式表示においては、入力多項式Ｇ（ｘ）において、ｘiの係数がデータ０であれば、これを論理変数ｄiで置換し、データ１であれば、これを論理変数/ｄiで置換した多項式を作り、これを故障入力多項式Ｇ’（ｘ）と定義すると、次の式が得られる。
【００３２】
Ｇ’（ｘ）＝/ｄ12ｘ12＋ｄ11ｘ11＋ｄ10ｘ10＋/ｄ9ｘ9＋ｄ8ｘ8＋ｄ7ｘ7＋ｄ6ｘ6
＋ｄ5ｘ5＋/ｄ4ｘ4＋ｄ3ｘ3＋ｄ2ｘ2＋ｄ1ｘ1＋/ｄ0          （７）
上式（７）で導入した論理変数ｄは、本来０であるべきものが１に故障する可能性のあるデータという意味を持っている。また、論理変数/ｄは、本来１であるべきものが０に故障する可能性のあるデータという意味を持っている。いずれの場合もｄ＝０は故障でないことを、ｄ＝１は故障であることを意味する。
【００３３】
故障入力多項式Ｇ’（ｘ）に対する線形フィードバックシフトレジスタＬＦＳＲ１の故障出力多項式Ｑ’（ｘ）および最終状態Ｒ’（ｘ）を計算するにあたり、式を見易くするために排他的論理和演算について次の表記方法を導入する。
【００３４】
ｄi＾ｄj  →  ｄi,j  （＾は排他的論理和演算を表す）              （８）
これを用いると、３つ以上の項に対する排他的論理和演算についても、
ｄi＾ｄj＾ｄk  ＝  ｄi,j＾ｄk  ＝  ｄi＾ｄj,k  ＝  ｄi,j,k          （９）
のように表すことができる。
【００３５】
論理反転演算に関しては、式（８）の表記方法を用いて次のように表すことができる。
【００３６】
/ｄi＾ｄj  ＝  ｄi＾/ｄj  ＝  /ｄi,j                  （１０）
さらに、排他的論理和の定義から、以下の関係が成立する。
【００３７】
０＾ｄi  ＝  ｄi＾０  ＝  ｄi
１＾ｄi  ＝  ｄi＾１  ＝  /ｄi
/ｄi＾０  ＝  ０＾/ｄi  ＝  /ｄi
/ｄi＾１  ＝  １＾/ｄi  ＝  ｄi
ｄi＾ｄi  ＝  /ｄi＾/ｄi  ＝  ０
ｄi＾/ｄi  ＝  /ｄi＾ｄi  ＝  １                    （１１）
式（８）〜（１１）を用いると、Ｑ’（ｘ）、Ｒ’（ｘ）は次のように表される。
【００３８】
Ｑ’（ｘ）＝  /ｄ12ｘ8＋ｄ11ｘ7＋ｄ10ｘ6＋ｄ9,12ｘ5＋/ｄ8,11,12ｘ4
＋ｄ7,10,11ｘ3＋ｄ6,9,10,12ｘ2＋/ｄ5,8,9,11ｘ＋ｄ4,7,8,10,12（１２）
Ｒ’（ｘ）＝  ｄ3,6,7,9,11,12ｘ3＋/ｄ2,5,6,8,10,11,12ｘ2
＋/ｄ1,4,5,7,9,10,11,12ｘ＋/ｄ0,4,7,8,10,12                （１３）
図８にＱ’（ｘ）およびＲ’（ｘ）の算出における詳細な実行手順を示す。
【００３９】
Ｑ（ｘ）とＱ’（ｘ）、Ｒ（ｘ）とＲ’（ｘ）を比較すると次のことが分かる。すなわち、式（５）、（６）、（１２）、（１３）より、Ｑ（ｘ）およびＲ（ｘ）においてｘiの係数が０であれば、Ｑ’（ｘ）およびＲ’（ｘ）のｘiの係数がｄkの形になっており、Ｑ（ｘ）およびＲ（ｘ）においてｘiの係数が１であれば、Ｑ’（ｘ）およびＲ’（ｘ）のｘiの係数が/ｄkの形になっている。
【００４０】
そこで、実際の半導体集積回路においてテストを行い、結果として出力多項式Ｑａ（ｘ）および線形フィードバックシフトレジスタＬＦＳＲ１の最終状態Ｒａ（ｘ）が得られた場合を考える（工程２）。
【００４１】
Ｒａ（ｘ）とＲ（ｘ）とでｘiの係数が一致する場合、Ｒ’（ｘ）のｘiの係数は
ｄm,…,n  ＝  ０  または  /ｄm,…,n  ＝  １                        （１４）
となっている。この場合、ｄm、…、ｄnは全て０であるか、もしくは、偶数個の１を含み残りは全て０であるかのどちらかである。これは、テスト応答ビットパターン中の該当するビット位置に故障が全く存在しないか、もしくは、偶数個の故障が存在することを意味する。
【００４２】
Ｒａ（ｘ）とＲ（ｘ）とでｘiの係数が一致しない場合、Ｒ’（ｘ）のｘiの係数は
ｄm,…,n  ＝  １  または  /ｄm,…,n  ＝  ０                        （１５）
となっている。この場合、ｄm、…、ｄnは奇数個の１を含み残りは全て０でなければならない。これは、テスト応答ビットパターン中の該当するビット位置に奇数個の故障が存在することを意味する。
【００４３】
Ｑａ（ｘ）とＱ（ｘ）についても、同様のことが言える。
【００４４】
以上の考察をもとに、テスト応答ビットパターンに単一ビット故障が存在する場合の故障候補を探索する手順について説明する。
【００４５】
故障入力多項式Ｇ’（ｘ）に対する線形フィードバックシフトレジスタＬＦＳＲ１の最終状態Ｒ’（ｘ）において、各ｘiの係数が含むテスト応答ビットパターンのビット位置を要素とする集合Ｄiを定義する。図１の線形フィードバックシフトレジスタＬＦＳＲ１についてはＤ0〜Ｄ3が定義でき、式（１３）より次のようになる。
【００４６】
Ｄ0  ＝｛  0,          4,       7, 8,    10,     12  ｝          （１６）
Ｄ1  ＝｛     1,       4, 5,    7,    9, 10, 11, 12  ｝          （１７）
Ｄ2  ＝｛        2,       5, 6,    8,    10, 11, 12  ｝          （１８）
Ｄ3  ＝｛           3,       6, 7,    9,     11, 12  ｝          （１９）
実際の半導体集積回路におけるテスト結果として、線形フィードバックシフトレジスタＬＦＳＲ１の最終状態Ｒａ（ｘ）が次のようになった場合を考える。
【００４７】
Ｒａ（ｘ）＝  ０ｘ3＋１ｘ2＋０ｘ＋０                              （２０）
式（２０）と、式（６）に示したテスト応答ビットパターンに故障がない場合の最終状態Ｒ（ｘ）を比較すると、ｘ3とｘ2の係数が一致している。従って、集合Ｄ3およびＤ2の要素が示すテスト応答ビットパターンのビット位置には故障が全く存在しない。ここで、「偶数個の故障の存在」を排除しているのは、単一ビット故障という前提と「偶数個の故障の存在」が矛盾するためである。
【００４８】
そこで、集合Ｄiについて、Ｒａ（ｘ）とＲ（ｘ）でｘiの係数が一致するものを１つの集合群に分類し、これを集合群Ｃとする。集合群Ｃに含まれる全ての集合Ｄiの和集合ＤCORを定義すると、その要素が示すテスト応答ビットパターンのビット位置には故障が全く存在しない。式（１８）、（１９）より、ＤCORは次のように計算される。
【００４９】
ＤCOR  ＝  Ｄ2  ∪  Ｄ3
＝｛  2, 3, 5, 6, 7, 8, 9, 10, 11, 12  ｝                  （２１）
また、Ｒａ（ｘ）とＲ（ｘ）を比較すると、ｘ1とｘ0の係数が一致していない。従って、集合Ｄ1の要素が示すテスト応答ビットパターンのビット位置のどこか１つに故障が存在し、かつ、集合Ｄ0の要素が示すテスト応答ビットパターンのビット位置のどこか１つに故障が存在し、これらは同一のビット位置にある。
【００５０】
そこで、集合Ｄiについて、Ｒａ（ｘ）とＲ（ｘ）でｘiの係数が一致しないものを１つの集合群に分類し、これを集合群Ｅとする。集合群Ｅに含まれる全ての集合Ｄiの積集合ＤEANDを定義すると、その要素が示すテスト応答ビットパターンのビット位置のどこか１つに故障が存在することになる。式（１６）、（１７）より、ＤEANDは次のように計算される。
【００５１】
ＤEAND  ＝  Ｄ0  ∩  Ｄ1
＝  ｛  4, 7, 10, 12  ｝                                  （２２）
テスト応答ビットパターン中の単一ビット故障のビット位置は、ＤEANDの要素であり、かつ、ＤCORの要素でない。したがって、ＤEANDとＤCORの差集合を求めることにより単一ビット故障候補が得られることになる。これは、式（２１）、（２２）より次のように計算される（工程３）。
【００５２】
ＤEAND  −  ＤCOR  ＝｛  ４  ｝                                  （２３）
以上の手順により、線形フィードバックシフトレジスタＬＦＳＲ１の最終状態の式（２０）に対して、テスト応答ビットパターンの単一ビット故障候補がｘ4のビット位置にあるという結果が得られた。これは、被テスト回路ＣＵＴ１に故障がない場合のテスト応答ビットパターンＴＲ１の内容つまり式（１）に対して、次の内容が線形フィードバックシフトレジスタＬＦＳＲ１に入力されたと推定するものである。
【００５３】
１００１００００００００１  （下線部が故障候補）              （２４）
式（２０）とは異なる最終状態に対しても、同様の手順により単一ビット故障候補を探索することが可能である。
【００５４】
（実施の形態２）
図２は、本発明の第２の実施の形態における論理回路の故障解析方法による２ビット故障候補の探索手順を示した工程図である。
【００５５】
論理回路の構成は図１と変わらないため、重複する符号の説明は省略する。被テスト回路ＣＵＴ１に故障がない場合のテスト応答ビットパターンとして、式（１）を使用する。したがって、式（１）を入力した場合の線形フィードバックシフトレジスタＬＦＳＲ１の最終状態は式（６）と同じになる。工程１、２については、同様のため詳しい説明は省略する。
【００５６】
以下、テスト応答ビットパターンに２ビット故障が存在する場合の故障候補を探索する手順について説明する。実際の半導体集積回路におけるテスト結果として、線形フィードバックシフトレジスタＬＦＳＲ１の最終状態Ｒａ（ｘ）が式（２０）のようになった場合を考える。
【００５７】
テスト応答ビットパターンに故障がない場合の最終状態Ｒ（ｘ）と比較すると、ｘ2とｘ3の係数が一致しており、集合Ｄ2、Ｄ3は集合群Ｃに属する。従って、２ビット故障の場合、集合群Ｃに属する集合Ｄiの要素が示すテスト応答ビットパターンのビット位置には故障が全く存在しないか、もしくは、２個の故障が同時に存在する。
【００５８】
また、Ｒａ（ｘ）とＲ（ｘ）を比較すると、ｘ0とｘ1の係数が一致しておらず、集合Ｄ0、Ｄ1は集合群Ｅに属する。従って、２ビット故障の場合、集合群Ｅに属する集合Ｄiの要素が示すテスト応答ビットパターンのビット位置のどこか１つに故障が存在するが、これらは同一のビット位置であってもよいし、そうでなくてもよい（工程２）。
【００５９】
以上を踏まえて、２ビット故障の存在する条件は以下のように場合分けされる（工程３）。
【００６０】
条件１．集合ＤEANDが２ビット故障の一方の故障を含む場合
集合群Ｃに属する集合Ｄiは、２ビット故障のビット故障候補の両方を同時に含むか、もしくは、全く故障を含まないかのどちらかである。ただし、集合群Ｃに属する集合Ｄiのうち少なくとも１つは２ビット故障のビット故障候補の両方を含む必要がある（最後の条件がなければ、単一ビット故障となってしまい、２ビット故障という前提と矛盾する。）。
【００６１】
条件２．集合ＤEANDが２ビット故障を全く含まない場合
集合ＤEOR−ＤEANDが２ビット故障の両方を同時に含む。集合ＤEOR−ＤEANDを、集合群Ｅに属する集合Ｄiを１つ選択して集合Ｄi−ＤEANDを計算し、集合Ｄi−ＤEANDとそれ以外の２つに分けると、それぞれの集合に２ビット故障のビット故障候補が１つずつ含まれる。
【００６２】
集合群Ｃに属する集合Ｄiは、２ビット故障のビット故障候補の両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかである。ここで、集合群Ｃに属する集合Ｄiのうち少なくとも１つが２ビット故障のビット故障候補の両方を含む必要はない。
【００６３】
始めに、集合ＤEANDが２ビット故障の一方のビット故障候補を含む場合について説明する。式（２２）の各要素について２ビット故障の一方のビット故障候補であると仮定して、もう一方のビット故障候補を探索していく。
【００６４】
２ビット故障の一方のビット故障候補をＮ、もう一方をＭとする。
【００６５】
（Ｎ＝４と仮定した場合）
集合群Ｅに属する全ての集合Ｄiについてその和集合ＤEORを定義すると、式（１６）、（１７）より次のように計算される。
【００６６】
ＤEOR  ＝  Ｄ0  ∪  Ｄ1
＝｛  0, 1, 4, 5, 7, 8, 9, 10, 11, 12  ｝                （２５）
集合ＤEORの要素が示すテスト応答ビットパターンのビット位置のどこか１つに故障候補が存在し、その故障候補をＮと仮定したので、差集合ＤEOR−｛  Ｎ  ｝には故障候補は全く存在しないことになる。差集合ＤEOR−｛  Ｎ  ｝は次のようになる。
【００６７】
ＤEOR  −｛  Ｎ  ｝＝  ＤEOR  −｛  4  ｝
＝｛  0, 1, 5, 7, 8, 9, 10, 11, 12  ｝      （２６）
集合群Ｃに属する集合Ｄiに対し、故障候補を全く含まないＤEOR−｛  Ｎ  ｝との差集合Ａiを定義すると、式（１８）、（１９）、（２６）より次のように計算される。
【００６８】
Ａ2  ＝  Ｄ2  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  2, 6  ｝          （２７）
Ａ3  ＝  Ｄ3  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  3, 6  ｝          （２８）
集合Ａiは２ビット故障のビット故障候補Ｎ、Ｍの両方を同時に含むか、もしくは、全く含まないかのどちらかであり、さらに、集合Ａiの少なくとも１つはビット故障候補Ｎ、Ｍを同時に含まなければならない。しかし、式（２７）、（２８）より、どちらもビット故障候補Ｎ＝４を含んでいないため、２ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補Ｎ＝４の仮定は誤りである。
【００６９】
（Ｎ＝７と仮定した場合）
差集合ＤEOR−｛  Ｎ  ｝は次のようになる。
【００７０】
ＤEOR  −｛  Ｎ  ｝＝  ＤEOR  −｛  7  ｝
＝｛  0, 1, 4, 5, 8, 9, 10, 11, 12  ｝      （２９）
集合群Ｃに属する集合Ｄiに対し、式（２７）、（２８）と同様に集合Ａiを定義すると、式（１８）、（１９）、（２９）より次のように計算される。
【００７１】
Ａ2  ＝  Ｄ2  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  2, 6  ｝          （３０）
Ａ3  ＝  Ｄ3  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  3, 6, 7  ｝      （３１）
集合Ａiは２ビット故障のビット故障候補Ｎ、Ｍの両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかであり、さらに、集合Ａiの少なくとも１つはビット故障候補Ｎ、Ｍを同時に含まなければならない。式（３１）より、集合Ａ3がビット故障候補Ｎ＝７を含んでいるので集合Ａ3を選択する。
【００７２】
上記で選択された全ての集合の積集合からビット故障候補Ｎ＝７を除いて得られる集合ＡCANDを定義すると、次のように計算される。
【００７３】
ＡCAND  ＝  Ａ3  −｛  Ｎ  ｝  ＝  ｛  3, 6  ｝                （３２）
ＡCANDの要素が、ビット故障候補Ｍである可能性があるので、集合群Ｃに属する集合Ｄiについて調べる。
【００７４】
Ｍ＝３とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ2はビット故障候補Ｎ＝７、Ｍ＝３のどちらも含んでおらず、集合Ｄ3はビット故障候補Ｎ＝７、Ｍ＝３を同時に含んでおり、２ビット故障が存在するための条件を満たしている。したがって、ビット故障候補Ｎ＝７、Ｍ＝３の仮定は正しい。
【００７５】
Ｍ＝６とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ3はビット故障候補Ｎ＝７、Ｍ＝６を同時に含んでいるが、集合Ｄ2はビット故障候補Ｍ＝６のみを含んでおり、２ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補Ｎ＝７、Ｍ＝６の仮定は誤りである。
【００７６】
（Ｎ＝１０と仮定した場合）
差集合ＤEOR−｛  Ｎ  ｝は次のようになる。
【００７７】
ＤEOR  −｛  Ｎ  ｝＝  ＤEOR  −｛  10  ｝
＝｛  0, 1, 4, 5, 7, 8, 9, 11, 12  ｝      （３３）
集合群Ｃに属する集合Ｄiに対し、式（２７）、（２８）と同様に集合Ａiを定義すると、式（１８）、（１９）、（３３）より次のように計算される。
【００７８】
Ａ2  ＝  Ｄ2  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  2, 6, 10  ｝      （３４）
Ａ3  ＝  Ｄ3  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  3, 6  ｝          （３５）
集合Ａiは２ビット故障のビット故障候補Ｎ、Ｍの両方を同時に含むか、もしくは、全く含まないかのどちらかであり、さらに、集合Ａiの少なくとも１つはビット故障候補Ｎ、Ｍを同時に含まなければならない。式（３４）より、集合Ａ2がビット故障候補Ｎ＝１０を含んでいるので、集合Ａ2を選択する。
【００７９】
式（３２）と同様に集合ＡCANDを定義すると、次のように計算される。
【００８０】
ＡCAND  ＝  Ａ2  −｛  Ｎ  ｝  ＝  ｛  2, 6  ｝                （３６）
ＡCANDの要素が、ビット故障候補Ｍである可能性があるので、集合群Ｃに属する集合Ｄiについて調べる。
【００８１】
Ｍ＝２とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ2はビット故障候補Ｎ＝１０、Ｍ＝２を同時に含んでおり、集合Ｄ3はビット故障候補Ｎ＝１０、Ｍ＝２のどちらも含んでおらず、２ビット故障が存在するための条件を満たしている。したがって、ビット故障候補Ｎ＝１０、Ｍ＝２の仮定は正しい。
【００８２】
Ｍ＝６とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ2はビット故障候補Ｎ＝１０、Ｍ＝６を同時に含んでいるが、集合Ｄ3はＮ＝６のみを含んでおり、２ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補Ｎ＝１０、Ｍ＝６の仮定は誤りである。
【００８３】
（Ｎ＝１２と仮定した場合）
差集合ＤEOR−｛  Ｎ  ｝は次のようになる。
【００８４】
ＤEOR  −｛  Ｎ  ｝＝  ＤEOR  −｛  12  ｝
＝｛  0, 1, 4, 5, 7, 8, 9, 10, 11  ｝        （３７）
集合群Ｃに属する集合Ｄiに対し、式（２７）、（２８）と同様に集合Ａiを定義すると、式（１８）、（１９）、（３７）より次のように計算される。
【００８５】
Ａ2  ＝  Ｄ2  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  2, 6, 12  ｝        （３８）
Ａ3  ＝  Ｄ3  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  3, 6, 12  ｝        （３９）
集合Ａiは２ビット故障のビット故障候補Ｎ、Ｍの両方を同時に含むか、もしくは、全く含まないかのどちらかであり、さらに、集合Ａiの少なくとも１つはビット故障候補Ｎ、Ｍを同時に含まなければならない。式（３８）、（３９）より、集合Ａ2、Ａ3がビット故障候補Ｎ＝１２を含んでいるので、集合Ａ2、Ａ3を選択する。
【００８６】
式（３２）と同様に集合ＡCANDを定義すると、次のように計算される。
【００８７】
ＡCAND  ＝（  Ａ2  ∩  Ａ3  ）−｛  Ｎ  ｝  ＝  ｛  6  ｝        （４０）
ＡCANDの要素が、ビット故障候補Ｍである可能性があるので、集合群Ｃに属する集合Ｄiについて調べる。
【００８８】
Ｍ＝６とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ2、Ｄ3はともにビット故障候補Ｎ＝１２、Ｍ＝６を同時に含んでおり、２ビット故障が存在するための条件を満たしている。したがって、ビット故障候補Ｎ＝１２、Ｍ＝６の仮定は正しい。
【００８９】
次に、集合ＤEANDが２ビット故障のビット故障候補を全く含まない場合について説明する。集合群Ｅに属する集合Ｄiから１つを選択して集合Ｄi−ＤEANDを計算し、その各要素について２ビット故障の一方のビット故障候補であると仮定して、もう一方のビット故障候補を探索していく。
【００９０】
以下、集合Ｄ1を選択して具体的に説明する。式（１６）、（１７）、（２２）より集合Ｄ0−ＤEAND、Ｄ1−ＤEANDは次のように計算される。
【００９１】
Ｄ0  −  ＤEAND            ＝｛  0, 8  ｝                        （４１）
Ｄ1  −  ＤEAND            ＝｛  1, 5, 9, 11  ｝                （４２）
（Ｎ＝１と仮定した場合）
集合群Ｅに属する全ての集合Ｄiに対し、集合Ｄi−ＤEANDがビット故障候補Ｎ＝１を含まないものを全て選択すると、それらは故障候補Ｍを共通に含んでいなければならない。そこで、選択された集合の積集合ＨEANDを定義すると、式（４１）、（４２）より次のように計算される。
【００９２】
ＨEAND  ＝  Ｄ0  −  ＤEAND  ＝  ｛  0, 8  ｝                    （４３）
ＨEANDの要素が、ビット故障候補Ｍである可能性があるので、集合群Ｃに属する集合Ｄiについて調べる。
【００９３】
Ｍ＝０とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ2、Ｄ3はともにビット故障候補Ｎ＝１、Ｍ＝０のどちらも含んでおらず、２ビット故障が存在するための条件を満たしている。したがって、ビット故障候補Ｎ＝１、Ｍ＝０の仮定は正しい。
【００９４】
Ｍ＝８とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ3はビット故障候補Ｎ＝１、Ｍ＝８のどちらも含んでいないが、集合Ｄ2はビット故障候補Ｍ＝８のみを含んでおり、２ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補Ｎ＝１、Ｍ＝８の仮定は誤りである。
【００９５】
（Ｎ＝５と仮定した場合）
式（４３）と同様に集合ＨEANDを定義すると、式（４１）、（４２）より次のように計算される。
【００９６】
ＨEAND  ＝  Ｄ0  −  ＤEAND  ＝  ｛  0, 8  ｝                      （４４）
ＨEANDの要素が、ビット故障候補Ｍである可能性があるので、集合群Ｃに属する集合Ｄiについて調べる。
【００９７】
Ｍ＝０とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ3はビット故障候補Ｎ＝５、Ｍ＝０のどちらも含んでいないが、集合Ｄ2はビット故障候補Ｎ＝５のみを含んでおり、２ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補Ｎ＝５、Ｍ＝０の仮定は誤りである。
【００９８】
Ｍ＝８とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ2はビット故障候補Ｎ＝５、Ｍ＝８を同時に含んでおり、集合Ｄ3はビット故障候補Ｎ＝５、Ｍ＝８のどちらも含んでおらず、２ビット故障が存在するための条件を満たしている。したがって、ビット故障候補Ｎ＝５、Ｍ＝８の仮定は正しい。
【００９９】
（Ｎ＝９と仮定した場合）
式（４３）と同様に集合ＨEANDを定義すると、式（４１）、（４２）より次のように計算される。
【０１００】
ＨEAND  ＝  Ｄ0  −  ＤEAND  ＝  ｛  0, 8  ｝                    （４５）
ＨEANDの要素が、ビット故障候補Ｍである可能性があるので、集合群Ｃに属する集合Ｄiについて調べる。
【０１０１】
Ｍ＝０とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ2はビット故障候補Ｎ＝９、Ｍ＝０のどちらも含んでいないが、集合Ｄ3はビット故障候補Ｎ＝９のみを含んでおり、２ビット故障が存在するための条件を満たしていない。したがって、Ｎ＝９、Ｍ＝０の仮定は誤りである。
【０１０２】
Ｍ＝８とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ2はビット故障候補Ｍ＝８のみを含んでおり、集合Ｄ3はビット故障候補Ｎ＝９のみを含んでおり、２ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補Ｎ＝９、Ｍ＝８の仮定は誤りである。
【０１０３】
（Ｎ＝１１と仮定した場合）
式（４３）と同様に集合ＨEANDを定義すると、式（４１）、（４２）より次のように計算される。
【０１０４】
ＨEAND  ＝  Ｄ0  −  ＤEAND  ＝  ｛  0, 8  ｝                  （４６）
ＨEANDの要素が、ビット故障候補Ｍである可能性があるので、集合群Ｃに属する集合Ｄiについて調べる。
【０１０５】
Ｍ＝０とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ2、Ｄ3はともにビット故障候補Ｎ＝１１のみを含んでおり、２ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補Ｎ＝１１、Ｍ＝０の仮定は誤りである。
【０１０６】
Ｍ＝８とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ2はビット故障候補Ｎ＝１１、Ｍ＝８を同時に含んでいるが、集合Ｄ3はビット故障候補Ｎ＝１１のみを含んでおり、２ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補Ｎ＝１１、Ｍ＝８の仮定は誤りである。
【０１０７】
以上の手順により、線形フィードバックレジスタの最終状態（２０）に対して、時系列ビットパターンの２ビット故障候補が
ｘ3  と  ｘ7                                                 （４７）
ｘ2  と  ｘ10
ｘ6  と  ｘ12
ｘ0  と  ｘ1
ｘ5  と  ｘ8
のビット位置にあるという結果が得られた。これは、被テスト回路ＣＵＴ１に故障がない場合のテスト応答ビットパターン（１）に対して、次のようなテスト応答ビットパターンが線形フィードバックシフトレジスタに入力されたと推定するものである。
【０１０８】
１００１０１００１１００１    （下線部が故障候補）            （４８）
１０１１００００１０１０１
０００１００１０１０００１
１００１００００１００１０
１００１１００１１０００１
式（２０）とは異なる最終状態に対しても、同様の手順により２ビット故障のビット故障候補を探索することが可能である。
【０１０９】
（実施の形態３）
図３は、本発明の第３の実施の形態における論理回路の故障解析方法による、単一ビット故障候補または２ビット故障候補が与えられた場合に真のビット故障を特定する手順である。
【０１１０】
論理回路の構成は図１と変わらないため、重複する符号の説明は省略する。被テスト回路ＣＵＴ１に故障がない場合のテスト応答ビットパターンとして、式（１）を使用する。したがって、式（１）を入力した場合の線形フィードバックシフトレジスタＬＦＳＲ１の最終状態は式（６）と同じになる。
【０１１１】
式（６）の情報は入力されたテスト応答ビットパターンの情報を完全に残している訳ではないため、式（６）から得られるのはビット故障の候補でしかない。式（２）から分かるように、線形フィードバックシフトレジスタＬＦＳＲ１の最終状態を表す多項式Ｒ（ｘ）に加えて出力多項式Ｑ（ｘ）が確定すれば、テスト応答ビットパターンを表す入力多項式Ｇ（ｘ）を復元できる（工程５）。
【０１１２】
この論理回路の故障解析方法では、与えられた単一ビット故障候補および２ビット故障候補から、それらが真のビット故障となる場合の出力ビットパターンを算出する。故障解析対象の論理回路から得られる出力ビットパターンが算出された出力ビットパターンと一致していれば、与えられたビット故障候補は真のビット故障であると判断する（工程６）。
【０１１３】
まず、単一ビット故障候補Ｎ＝４が与えられている場合について、具体的に説明する。与えられた単一ビット故障候補Ｎ＝４より、式（７）の故障入力多項式Ｇ’（ｘ）において、故障のあるビット位置の論理変数ｄは１、論理変数/ｄは０であり、故障のないビット位置の論理変数ｄは０、論理変数/ｄは１であるので、次のように設定する。
【０１１４】
ｄ12＝ｄ11＝ｄ10＝ｄ9＝ｄ8＝ｄ7＝ｄ6＝ｄ5＝ｄ3＝ｄ2＝ｄ1＝ｄ0＝０（４９）
ｄ4＝１
式（４９）を式（１２）に代入すると、故障出力多項式Ｑ’（ｘ）は次のようになる。
【０１１５】
Ｑ’（ｘ）＝  /ｄ12ｘ8＋ｄ11ｘ7＋ｄ10ｘ6＋ｄ9,12ｘ5＋/ｄ8,11,12ｘ4
＋ｄ7,10,11ｘ3＋ｄ6,9,10,12ｘ2＋/ｄ5,8,9,11ｘ＋ｄ4,7,8,10,12
＝/０ｘ8＋０ｘ7＋０ｘ6＋（０＾０）ｘ5＋/（０＾０＾０）ｘ4
＋（０＾０＾０）ｘ3＋（０＾０＾０＾０）ｘ2
＋/（０＾０＾０＾０）ｘ＋（１＾０＾０＾０）
＝ｘ8＋ｘ4＋ｘ＋１                                      （５０）
線形フィードバックシフトレジスタの最終状態の式（６）に対し、単一ビット故障候補Ｎ＝４が得られた場合に、出力ビットパターンが式（５０）で示すＱ’（ｘ）と一致していれば、単一ビット故障候補Ｎ＝４は真のビット故障となる。
【０１１６】
次に、２ビット故障候補Ｎ＝１２、Ｍ＝６が与えられている場合について、具体的に説明する。
【０１１７】
与えられた２ビット故障候補Ｎ＝１２、Ｍ＝６より、式（７）の故障入力多項式Ｇ’（ｘ）において、故障のあるビット位置の論理変数ｄは１、論理変数/ｄは０であり、故障のないビット位置の論理変数ｄは０、論理変数/ｄは１であるから、次のようになる。
【０１１８】
ｄ12＝ｄ6＝１                                                    （５１）
ｄ11＝ｄ10＝ｄ9＝ｄ8＝ｄ7＝ｄ5＝ｄ4＝ｄ3＝ｄ2＝ｄ1＝ｄ0＝０
式（５１）を式（１２）に代入すると、故障出力多項式Ｑ’（ｘ）は次のようになる。
【０１１９】
Ｑ’（ｘ）＝  /ｄ12ｘ8＋ｄ11ｘ7＋ｄ10ｘ6＋ｄ9,12ｘ5＋/ｄ8,11,12ｘ4
＋ｄ7,10,11ｘ3＋ｄ6,9,10,12ｘ2＋/ｄ5,8,9,11ｘ＋ｄ4,7,8,10,12
＝/１ｘ8＋０ｘ7＋０ｘ6＋（０＾１）ｘ5＋/（０＾０＾１）ｘ4
＋（０＾０＾０）ｘ3＋（１＾０＾０＾１）ｘ2
＋/（０＾０＾０＾０）ｘ＋（０＾０＾０＾１）
＝ｘ5＋ｘ＋１                                          （５２）
線形フィードバックシフトレジスタの最終状態の式（６）に対し、単一ビット故障候補Ｎ＝１２、Ｍ＝６が得られた場合に、出力ビットパターンが式（５２）で示すＱ’（ｘ）と一致していれば、２ビット故障候補Ｎ＝１２、Ｍ＝６は真のビット故障となる。
【０１２０】
式（２０）とは異なる最終状態、また、様々なビット故障候補に対しても、同様の手順により真の単一ビット故障および真の２ビット故障を特定することが可能である。
【０１２１】
（実施の形態４）
図４は、本発明の第４の実施の形態における論理回路の故障解析方法による単一ビット故障候補の探索手順を示した工程図である。
【０１２２】
ＴＰＧ２はテストパターン発生手段、ＣＵＴ２は被テスト回路、ＴＲＡ２はテスト応答処理手段であり、テストパターン発生手段ＴＰＧ２が出力するテスト入力ビットパターンＴＰ２を被テスト回路ＣＵＴ２に入力し、被テスト回路ＣＵＴ２が出力するテスト応答ビットパターンＴＲ２をテスト応答処理手段ＴＲＡ２に入力する。
【０１２３】
テスト応答処理手段ＴＲＡ２は多入力シグネチャレジスタＭＩＳＲ１で構成される。本実施の形態においては、図４に示す通り４個のレジスタＦＦ０〜ＦＦ３および４個の排他的論理和ゲートＥＸＯＲ３〜６からなるものとする。被テスト回路ＣＵＴ２から入力されるテスト応答ビットパターンＴＲＡ２は４ビットの長さであるとし、被テスト回路ＣＵＴ２に故障がない場合は
ＦＦ０向け入力：  １１０１                                      （５３）
ＦＦ１向け入力：  ００１０
ＦＦ２向け入力：  １０００
ＦＦ３向け入力：  １０１１
であるとする。ここで、左端のビットが最初の時刻に入力され、時刻の進展とともに右隣のビットが順次入力される（工程７）。
【０１２４】
式（５３）を多項式により表すと、ＦＦi向けの入力多項式をＧi（ｘ）として
Ｇ0（ｘ）＝  ｘ3＋ｘ2＋１                                      （５４）
Ｇ1（ｘ）＝  ｘ                                                （５５）
Ｇ2（ｘ）＝  ｘ3                                                （５６）
Ｇ3（ｘ）＝  ｘ3＋ｘ＋１                                        （５７）
となる。（５４）〜（５７）のテスト応答ビットパターンを入力した場合に、多入力シグネチャレジスタＭＩＳＲ１が取る最終状態Ｒ（ｘ）は、次のようになる。
【０１２５】
Ｒ（ｘ）＝  ０                                                  （５８）
すなわち、多入力シグネチャレジスタＭＩＳＲ１の最終状態はＦＦ０〜ＦＦ３全て０となる。
【０１２６】
次に、多入力シグネチャレジスタＭＩＳＲ１に入力されるテスト応答ビットパターンＴＲＡ２に故障がある場合を考える。
【０１２７】
実施の形態１と同様に、テスト応答ビットパターンにおいて、データ０の存在する全てのビットをビット位置の属性を持つ論理変数ｄで置換し、データ１の存在する全てのビットをビット位置の属性を持つ論理変数/ｄで置換した故障テスト応答ビットパターンを定義する。多項式表示においては、入力多項式Ｇ0（ｘ）〜Ｇ3（ｘ）において、ｘiの係数がデータ０であればこれを論理変数ｄiで置換し、データ１であればこれを論理変数/ｄiで置換した多項式を作り、これを故障入力多項式Ｇ’0（ｘ）〜Ｇ’3（ｘ）と定義すると、次の式が得られる。
【０１２８】
Ｇ’0（ｘ）＝  /ｄ03ｘ3＋/ｄ02ｘ2＋ｄ01ｘ＋/ｄ00                （５９）
Ｇ’1（ｘ）＝  ｄ13ｘ3＋ｄ12ｘ2＋/ｄ11ｘ＋ｄ10                  （６０）
Ｇ’2（ｘ）＝  /ｄ23ｘ3＋ｄ22ｘ2＋ｄ21ｘ＋ｄ20                  （６１）
Ｇ’3（ｘ）＝  /ｄ33ｘ3＋ｄ32ｘ2＋/ｄ31ｘ＋/ｄ30                （６２）
故障入力多項式Ｇ’0（ｘ）〜Ｇ’3（ｘ）に対する多入力シグネチャレジスタＭＩＳＲ１の出力ビットパターンを表す出力多項式Ｑ’（ｘ）、および、最終状態Ｒ’（ｘ）は次のように表される。
【０１２９】
Ｑ’（ｘ）＝  /ｄ33ｘ3＋/ｄ23,32ｘ2＋/ｄ13,22,31＋ｄ03,12,21,30    （６３）
Ｒ’（ｘ）＝  ｄ03,12,21,30ｘ3＋/ｄ02,03,11,20,33ｘ2
＋/ｄ01,02,03,10,23,32,33ｘ＋/ｄ00,01,02,03,13,22,23,31,32,33（６４）
実施の形態１と同様に、故障入力多項式Ｇ’0（ｘ）〜Ｇ’3（ｘ）に対する多入力シグネチャレジスタＭＩＳＲ１の最終状態Ｒ’（ｘ）において、各ｘiの係数が含むテスト応答ビットパターンのビット位置を要素とする集合Ｄiを定義すると、多入力シグネチャレジスタＭＩＳＲ１についてはＤ0〜Ｄ3が定義でき、式（６３）より次のようになる（工程８）。
【０１３０】
Ｄ0  ＝｛  00,01,02,03,         13,      22,23,   31,32,33  ｝    （６５）
Ｄ1  ＝｛     01,02,03,10,                  23,      32,33  ｝    （６６）
Ｄ2  ＝｛        02,03,   11,      20,                  33  ｝    （６７）
Ｄ3  ＝｛           03,      12,      21,      30  ｝            （６８）
実際の半導体集積回路におけるテスト結果として、多入力シグネチャレジスタＭＩＳＲ１の最終状態Ｒａ（ｘ）が次のようになった場合を考える。
【０１３１】
Ｒａ（ｘ）＝  ０ｘ3＋０ｘ2＋１ｘ＋１                              （６９）
式（６９）と式（５８）を比較すると、ｘ3とｘ2の係数が一致している。従って、集合Ｄ3およびＤ2の要素が示すテスト応答ビットパターンのビット位置には故障が全く存在しない。そこで、実施の形態１と同様に、集合Ｄiについて、Ｒａ（ｘ）とＲ（ｘ）でｘiの係数が一致するものを１つの集合群に分類し、これを集合群Ｃとする。集合群Ｃに含まれる全ての集合Ｄiの和集合ＤCORを定義すると、その要素が示すテスト応答ビットパターンのビット位置には故障が全く存在しない。式（６７）、（６８）より、ＤCORは次のように計算される。
【０１３２】
ＤCOR  ＝  Ｄ2  ∪  Ｄ3
＝｛  02, 03, 11, 12, 20, 21, 30, 33  ｝                （７０）
また、Ｒａ（ｘ）とＲ（ｘ）を比較すると、ｘ1とｘ0の係数が一致していない。従って、集合Ｄ1の要素が示すテスト応答ビットパターンのビット位置のどこか１つに故障が存在し、かつ、集合Ｄ0の要素が示すテスト応答ビットパターンのビット位置のどこか１つに故障が存在し、これらは同一のビット位置にある。
【０１３３】
そこで、実施の形態１と同様に、集合Ｄiについて、Ｒａ（ｘ）とＲ（ｘ）でｘiの係数が一致しないものを１つの集合群に分類し、これを集合群Ｅとする。集合群Ｅに含まれる全ての集合Ｄiの積集合ＤEANDを定義すると、その要素が示すテスト応答ビットパターンのビット位置のどこか１つに故障が存在することになる。式（６５）、（６６）より、ＤEANDは次のように計算される。
【０１３４】
ＤEAND  ＝  Ｄ0  ∩  Ｄ1
＝  ｛  01, 02, 03, 23, 32, 33  ｝                      （７１）
テスト応答ビットパターン中の単一ビット故障のビット位置は、ＤEANDの要素であり、かつ、ＤCORの要素でない。したがって、ＤEANDとＤCORの差集合を求めることにより単一ビット故障候補が得られることになる。これは、式（７０）、（７１）より次のように計算される（工程９）。
【０１３５】
ＤEAND  −  ＤCOR  ＝｛  01, 23, 32  ｝                        （７２）
以上の手順により、多入力シグネチャレジスタＭＩＳＲ１の最終状態の式（６９）に対して、テスト応答ビットパターンの単一ビット故障候補がＧ’0（ｘ）のｘ1、Ｇ’2（ｘ）のｘ3、Ｇ’3（ｘ）のｘ2のいずれかのビット位置にあるという結果が得られた。これは、被テスト回路ＣＵＴ２に故障がない場合のテスト応答ビットパターンの内容である式（５３）に対して、次のいずれかの内容が多入力シグネチャレジスタＭＩＳＲ１に入力されたと推定するものである。
【０１３６】
（ａ）ＦＦ０向け入力：  １１１１  （下線部が故障候補）            （７３）
ＦＦ１向け入力：  ００１０
ＦＦ２向け入力：  １０００
ＦＦ３向け入力：  １０１１
（ｂ）ＦＦ０向け入力：  １１０１
ＦＦ１向け入力：  ００１０
ＦＦ２向け入力：  ００００
ＦＦ３向け入力：  １０１１
（ｃ）ＦＦ０向け入力：  １１０１
ＦＦ１向け入力：  ００１０
ＦＦ２向け入力：  １０００
ＦＦ３向け入力：  １１１１
式（６９）とは異なる最終状態に対しても、同様の手順により単一ビット故障候補を探索することが可能である。
【０１３７】
（実施の形態５）
図５は、本発明の第５の実施の形態における論理回路の故障解析方法による２ビット故障候補の探索手順を示した工程図である。
【０１３８】
論理回路の構成は図４と変わらないため、重複する符号の説明は省略する。被テスト回路ＣＵＴ２に故障がない場合のテスト応答ビットパターンとして式（５３）を使用する。したがって、式（５３）を入力した場合の多入力シグネチャレジスタの最終状態は式（５８）と同じになる。工程７、８については、同様のため詳しい説明は省略する。
【０１３９】
以下、テスト応答ビットパターンに２ビット故障が存在する場合の故障候補を探索する手順について説明する。実際の半導体集積回路におけるテスト結果として、多入力シグネチャレジスタの最終状態Ｒａ（ｘ）が式（６９）のようになった場合を考える。
【０１４０】
テスト応答ビットパターンに故障がない場合の最終状態Ｒ（ｘ）と比較すると、ｘ2とｘ3の係数が一致しており、集合Ｄ2、Ｄ3は集合群Ｃに属する。
【０１４１】
また、Ｒａ（ｘ）とＲ（ｘ）を比較すると、ｘ0とｘ1の係数が一致しておらず、集合Ｄ0、Ｄ1は集合群Ｅに属する。実施の形態２と同様の２ビット故障が存在する条件が成立するので、以下では各条件に沿って２ビット故障候補の探索を行う。
【０１４２】
始めに、集合ＤEANDが２ビット故障の一方のビット故障候補を含む場合について説明する。式（７１）の各要素について２ビット故障の一方のビット故障候補であると仮定して、もう一方のビット故障候補を探索していく（工程１０）。
【０１４３】
２ビット故障の一方のビット故障候補をＮ、もう一方をＭとする。
【０１４４】
（Ｎ＝０１と仮定した場合）
集合群Ｅに属する全ての集合Ｄiについてその和集合ＤEORを定義すると、（６５）（６６）より次のように計算される。
【０１４５】
ＤEOR  ＝  Ｄ0  ∪  Ｄ1
＝｛  00,01,02,03,10,13,22,23,31,32,33  ｝              （７４）
集合ＤEORの要素が示すテスト応答ビットパターンのビット位置のどこか１つに故障候補が存在し、その故障候補をＮと仮定したので、差集合ＤEOR−｛  Ｎ  ｝には故障候補は全く存在しないことになる。差集合ＤEOR−｛  Ｎ  ｝は次のようになる。
【０１４６】
ＤEOR  −｛  Ｎ  ｝＝  ＤEOR  −｛  01  ｝
＝｛  00,02,03,10,13,22,23,31,32,33  ｝      （７５）
集合群Ｃに属する集合Ｄiに対し、故障候補を全く含まないＤEOR−｛  Ｎ  ｝との差集合Ａiを定義すると、式（６７）、（６８）、（７４）より次のように計算される。
【０１４７】
Ａ2  ＝  Ｄ2  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  11, 20  ｝        （７６）
Ａ3  ＝  Ｄ3  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  12, 21, 30  ｝    （７７）
集合Ａiは２ビット故障のビット故障候補Ｎ、Ｍの両方を同時に含むか、もしくは、全く含まないかのどちらかであり、さらに、集合Ａiの少なくとも１つはビット故障候補Ｎ、Ｍを同時に含まなければならない。しかし、式（７６）、（７７）より、どちらもビット故障候補Ｎ＝０１を含んでいないため、２ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補Ｎ＝０１の仮定は誤りである。
【０１４８】
（Ｎ＝０２と仮定した場合）
差集合ＤEOR−｛  Ｎ  ｝は次のようになる。
【０１４９】
ＤEOR  −｛  Ｎ  ｝＝  ＤEOR  −｛  02  ｝
＝｛  00,01,03,10,13,22,23,31,32,33  ｝    （７８）
集合群Ｃに属する集合Ｄiに対し、式（７６）、（７７）と同様に集合Ａiを定義すると、式（６７）、（６８）、（７８）より次のように計算される。
【０１５０】
Ａ2  ＝  Ｄ2  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  02, 11, 20  ｝    （７９）
Ａ3  ＝  Ｄ3  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  12, 21, 30  ｝    （８０）
集合Ａiは２ビット故障のビット故障候補Ｎ、Ｍの両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかであり、さらに、集合Ａiの少なくとも１つはビット故障候補Ｎ、Ｍを同時に含まなければならない。式（７９）より、集合Ａ2がビット故障候補Ｎ＝０２を含んでいるので集合Ａ2を選択する。
【０１５１】
上記で選択された全ての集合の積集合からビット故障候補Ｎ＝０２を除いて得られる集合ＡCANDを定義すると、次のように計算される。
【０１５２】
ＡCAND  ＝  Ａ3  −｛  Ｎ  ｝  ＝  ｛  11, 20  ｝              （８１）
ＡCANDの要素が、ビット故障候補Ｍである可能性があるので、集合群Ｃに属する集合Ｄiについて調べる。
【０１５３】
Ｍ＝１１とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ2はビット故障候補Ｎ＝０２、Ｍ＝１１を同時に含んでおり、集合Ｄ3はビット故障候補Ｎ＝０２、Ｍ＝１１のどちらも含んでおらず、２ビット故障が存在するための条件を満たしている。したがって、ビット故障候補Ｎ＝０２、Ｍ＝１１の仮定は正しい。
【０１５４】
Ｍ＝２０とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ2はビット故障候補Ｎ＝０２、Ｍ＝２０を同時に含んでおり、集合Ｄ3はビット故障候補Ｎ＝０２、Ｍ＝２０のどちらも含んでおらず、２ビット故障が存在するための条件を満たしている。したがって、ビット故障候補Ｎ＝０２、Ｍ＝２０の仮定は正しい。
【０１５５】
（Ｎ＝０３と仮定した場合）
差集合ＤEOR−｛  Ｎ  ｝は次のようになる。
【０１５６】
ＤEOR  −｛  Ｎ  ｝＝  ＤEOR  −｛  03  ｝
＝｛  00,01,02,10,13,22,23,31,32,33  ｝      （８２）
集合群Ｃに属する集合Ｄiに対し、式（７６）、（７７）と同様に集合Ａiを定義すると、式（６７）、（６８）、（８２）より次のように計算される。
【０１５７】
Ａ2  ＝  Ｄ2  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  03, 11, 20  ｝      （８３）
Ａ3  ＝  Ｄ3  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  03, 12, 21, 30  ｝  （８４）
集合Ａiは２ビット故障のビット故障候補Ｎ、Ｍの両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかであり、さらに、集合Ａiの少なくとも１つはビット故障候補Ｎ、Ｍを同時に含まなければならない。式（８３）、（８４）より、集合Ａ2、Ａ3がビット故障候補Ｎ＝０３を含んでいるので集合Ａ2およびＡ3を選択する。
【０１５８】
上記で選択された全ての集合の積集合からビット故障候補Ｎ＝０３を除いて得られる集合ＡCANDを定義すると、次のように計算される。
【０１５９】
ＡCAND  ＝（  Ａ2  ∩  Ａ3  ）−｛  Ｎ  ｝  ＝  （空集合）      （８５）
ＡCANDの要素がビット故障候補Ｍである可能性があるが、空集合となってしまったため、これ以上の探索は不可能である。したがって、ビット故障候補Ｎ＝０３の仮定は誤りである。
【０１６０】
（Ｎ＝２３と仮定した場合）
差集合ＤEOR−｛  Ｎ  ｝は次のようになる。
【０１６１】
ＤEOR  −｛  Ｎ  ｝＝  ＤEOR  −｛  23  ｝
＝｛  00,01,02,03,10,13,22,31,32,33  ｝      （８６）
集合群Ｃに属する集合Ｄiに対し、式（７６）、（７７）と同様に集合Ａiを定義すると、式（６７）、（６８）、（８６）より次のように計算される。
【０１６２】
Ａ2  ＝  Ｄ2  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  11, 20  ｝        （８７）
Ａ3  ＝  Ｄ3  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  12, 21, 30  ｝    （８８）
集合Ａiは２ビット故障のビット故障候補Ｎ、Ｍの両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかであり、さらに、集合Ａiの少なくとも１つはビット故障候補Ｎ、Ｍを同時に含まなければならない。しかし、式（８７）、（８８）より、どちらもビット故障候補Ｎ＝２３を含んでいないため、２ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補Ｎ＝２３の仮定は誤りである。
【０１６３】
（Ｎ＝３２と仮定した場合）
差集合ＤEOR−｛  Ｎ  ｝は次のようになる。
【０１６４】
ＤEOR  −｛  Ｎ  ｝＝  ＤEOR  −｛  32  ｝
＝｛  00,01,02,03,10,13,22,23,31,33  ｝    （８９）
集合群Ｃに属する集合Ｄiに対し、式（７６）、（７７）と同様に集合Ａiを定義すると、式（６７）、（６８）、（８９）より次のように計算される。
【０１６５】
Ａ2  ＝  Ｄ2  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  11, 20  ｝        （９０）
Ａ3  ＝  Ｄ3  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  12, 21, 30  ｝    （９１）
集合Ａiは２ビット故障のビット故障候補Ｎ、Ｍの両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかであり、さらに、集合Ａiの少なくとも１つはビット故障候補Ｎ、Ｍを同時に含まなければならない。しかし、式（９０）、（９１）より、どちらもビット故障候補Ｎ＝３２を含んでいないため、２ビット故障が存在するための条件を満たしていない。したがって、ビット故障候補Ｎ＝３２の仮定は誤りである。
【０１６６】
（Ｎ＝３３と仮定した場合）
差集合ＤEOR−｛  Ｎ  ｝は次のようになる。
【０１６７】
ＤEOR  −｛  Ｎ  ｝＝  ＤEOR  −｛  33  ｝
＝｛  00,01,02,03,10,13,22,23,31,32  ｝      （９２）
集合群Ｃに属する集合Ｄiに対し、式（７６）、（７７）と同様に集合Ａiを定義すると、式（６７）、（６８）、（９２）より次のように計算される。
【０１６８】
Ａ2  ＝  Ｄ2  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  11, 20, 33  ｝      （９３）
Ａ3  ＝  Ｄ3  −（ＤEOR−｛  Ｎ  ｝）＝  ｛  12, 21, 30  ｝      （９４）
集合Ａiは２ビット故障のビット故障候補Ｎ、Ｍの両方を同時に含むか、もしくは、ビット故障候補を全く含まないかのどちらかであり、さらに、集合Ａiの少なくとも１つはビット故障候補Ｎ、Ｍを同時に含まなければならない。式（９３）より、集合Ａ2がビット故障候補Ｎ＝３３を含んでいるので集合Ａ2を選択する。
【０１６９】
上記で選択された全ての集合の積集合からビット故障候補Ｎ＝３３を除いて得られる集合ＡCANDを定義すると、次のように計算される。
【０１７０】
ＡCAND  ＝  Ａ2  −｛  Ｎ  ｝  ＝  ｛  11, 20  ｝              （９５）
ＡCANDの要素が、ビット故障候補Ｍである可能性があるので、集合群Ｃに属する集合Ｄiについて調べる。
【０１７１】
Ｍ＝１１とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ2はビット故障候補Ｎ＝３３、Ｍ＝１１を同時に含んでおり、集合Ｄ3はビット故障候補Ｎ＝３３、Ｍ＝１１のどちらも含んでおらず、２ビット故障が存在するための条件を満たしている。したがって、ビット故障候補Ｎ＝３３、Ｍ＝１１の仮定は正しい。
【０１７２】
Ｍ＝２０とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ2はビット故障候補Ｎ＝３３、Ｍ＝２０を同時に含んでおり、集合Ｄ3はビット故障候補Ｎ＝３３、Ｍ＝２０のどちらも含んでおらず、２ビット故障が存在するための条件を満たしている。したがって、ビット故障候補Ｎ＝３３、Ｍ＝２０の仮定は正しい。
【０１７３】
次に、集合ＤEANDが２ビット故障のビット故障候補を全く含まない場合について説明する。集合群Ｅに属する集合Ｄiから１つを選択して集合Ｄi−ＤEANDを計算し、その各要素について２ビット故障の一方のビット故障候補であると仮定して、もう一方のビット故障候補を探索していく。
【０１７４】
以下、集合Ｄ0を選択して具体的に説明する。式（６５）、（６６）、（７１）より集合Ｄ0−ＤEAND、Ｄ1−ＤEANDは次のように計算される。
【０１７５】
Ｄ0  −  ＤEAND            ＝｛  00, 13, 22, 31  ｝              （９６）
Ｄ1  −  ＤEAND            ＝｛  10  ｝                          （９７）
（Ｎ＝００と仮定した場合）
集合群Ｅに属する全ての集合Ｄiに対し、集合Ｄi−ＤEANDがビット故障候補Ｎ＝００を含まないものを全て選択すると、それらは故障候補Ｍを共通に含んでいなければならない。そこで、選択された集合の積集合ＨEANDを定義すると、式（９６）、（９７）より次のように計算される。
【０１７６】
ＨEAND  ＝  Ｄ1  −  ＤEAND  ＝  ｛  10  ｝                      （９８）
ＨEANDの要素が、ビット故障候補Ｍである可能性があるので、集合群Ｃに属する集合Ｄiについて調べる。
【０１７７】
Ｍ＝１０とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ2、Ｄ3はともにビット故障候補Ｎ＝００、Ｍ＝１０のどちらも含んでおらず、２ビット故障が存在するための条件を満たしている。したがって、ビット故障候補Ｎ＝００、Ｍ＝１０の仮定は正しい。
【０１７８】
（Ｎ＝１３と仮定した場合）
集合群Ｅに属する全ての集合Ｄiに対し、集合Ｄi−ＤEANDがビット故障候補Ｎ＝１３を含まないものを全て選択すると、それらは故障候補Ｍを共通に含んでいなければならない。そこで、選択された集合の積集合ＨEANDを定義すると、式（９６）、（９７）より次のように計算される。
【０１７９】
ＨEAND  ＝  Ｄ1  −  ＤEAND  ＝  ｛  10  ｝                    （９９）
ＨEANDの要素が、ビット故障候補Ｍである可能性があるので、集合群Ｃに属する集合Ｄiについて調べる。
【０１８０】
Ｍ＝１０とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ2、Ｄ3はともにビット故障候補Ｎ＝１３、Ｍ＝１０のどちらも含んでおらず、２ビット故障が存在するための条件を満たしている。したがって、ビット故障候補Ｎ＝１３、Ｍ＝１０の仮定は正しい。
【０１８１】
（Ｎ＝２２と仮定した場合）
集合群Ｅに属する全ての集合Ｄiに対し、集合Ｄi−ＤEANDがビット故障候補Ｎ＝２２を含まないものを全て選択すると、それらは故障候補Ｍを共通に含んでいなければならない。そこで、選択された集合の積集合ＨEANDを定義すると、式（９６）、（９７）より次のように計算される。
【０１８２】
ＨEAND  ＝  Ｄ1  −  ＤEAND  ＝  ｛  10  ｝                    （１００）
ＨEANDの要素が、ビット故障候補Ｍである可能性があるので、集合群Ｃに属する集合Ｄiについて調べる。
【０１８３】
Ｍ＝１０とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ2、Ｄ3はともにビット故障候補Ｎ＝２２、Ｍ＝１０のどちらも含んでおらず、２ビット故障が存在するための条件を満たしている。したがって、ビット故障候補Ｎ＝２２、Ｍ＝１０の仮定は正しい。
【０１８４】
（Ｎ＝３１と仮定した場合）
集合群Ｅに属する全ての集合Ｄiに対し、集合Ｄi−ＤEANDがビット故障候補Ｎ＝３１を含まないものを全て選択すると、それらは故障候補Ｍを共通に含んでいなければならない。そこで、選択された集合の積集合ＨEANDを定義すると、式（９６）、（９７）より次のように計算される。
【０１８５】
ＨEAND  ＝  Ｄ1  −  ＤEAND  ＝  ｛  10  ｝                  （１０１）
ＨEANDの要素が、ビット故障候補Ｍである可能性があるので、集合群Ｃに属する集合Ｄiについて調べる。
【０１８６】
Ｍ＝１０とすると、集合群Ｃに属する集合Ｄiのうち、集合Ｄ2、Ｄ3はともにビット故障候補Ｎ＝３１、Ｍ＝１０のどちらも含んでおらず、２ビット故障が存在するための条件を満たしている。したがって、ビット故障候補Ｎ＝３１、Ｍ＝１０の仮定は正しい。
【０１８７】
以上の手順により、線形フィードバックレジスタの最終状態の式（６９）に対して、時系列ビットパターンの２ビット故障候補が
Ｇ’0（ｘ）のｘ2  と  Ｇ’1（ｘ）のｘ1                      （１０２）
Ｇ’0（ｘ）のｘ2  と  Ｇ’2（ｘ）のｘ0
Ｇ’3（ｘ）のｘ3  と  Ｇ’1（ｘ）のｘ1
Ｇ’3（ｘ）のｘ3  と  Ｇ’2（ｘ）のｘ0
Ｇ’0（ｘ）のｘ0  と  Ｇ’1（ｘ）のｘ0
Ｇ’1（ｘ）のｘ3  と  Ｇ’1（ｘ）のｘ0
Ｇ’2（ｘ）のｘ2  と  Ｇ’1（ｘ）のｘ0
Ｇ’3（ｘ）のｘ1  と  Ｇ’1（ｘ）のｘ0
のビット位置にあるという結果が得られた。これは、被テスト回路ＣＵＴ２に故障がない場合のテスト応答ビットパターンである式（５３）に対して、次のようなテスト応答ビットパターンが線形フィードバックシフトレジスタに入力されたと推定するものである。
【０１８８】
（ａ）ＦＦ０向け入力：  １００１  （下線部が故障候補）        （１０３）
ＦＦ１向け入力：  ００００
ＦＦ２向け入力：  １０００
ＦＦ３向け入力：  １０１１
（ｂ）ＦＦ０向け入力：  １００１
ＦＦ１向け入力：  ００１０
ＦＦ２向け入力：  １００１
ＦＦ３向け入力：  １０１１
（ｃ）ＦＦ０向け入力：  １１０１
ＦＦ１向け入力：  ００００
ＦＦ２向け入力：  １０００
ＦＦ３向け入力：  ００１１
（ｄ）ＦＦ０向け入力：  １１０１
ＦＦ１向け入力：  ００１０
ＦＦ２向け入力：  １００１
ＦＦ３向け入力：  ００１１
（ｅ）ＦＦ０向け入力：  １１００
ＦＦ１向け入力：  ００１１
ＦＦ２向け入力：  １０００
ＦＦ３向け入力：  １０１１
（ｆ）ＦＦ０向け入力：  １１０１
ＦＦ１向け入力：  １０１１
ＦＦ２向け入力：  １０００
ＦＦ３向け入力：  １０１１
（ｇ）ＦＦ０向け入力：  １１０１
ＦＦ１向け入力：  ００１１
ＦＦ２向け入力：  １１００
ＦＦ３向け入力：  １０１１
（ｈ）ＦＦ０向け入力：  １１０１
ＦＦ１向け入力：  ００１１
ＦＦ２向け入力：  １０００
ＦＦ３向け入力：  １００１
式（６９）とは異なる最終状態に対しても、同様の手順により２ビット故障のビット故障候補を探索することが可能である。
【０１８９】
（実施の形態６）
図６は、本発明の第６の実施の形態における論理回路の故障解析方法による、単一ビット故障候補または２ビット故障候補が与えられた場合に、さらに故障候補を絞り込むための手順を示した工程図である。
【０１９０】
論理回路の構成は図４と変わらないため、重複する符号の説明は省略する。被テスト回路ＣＵＴ２に故障がない場合のテスト応答ビットパターンを示した工程図である。式（５３）を使用する。したがって、式（５３）を入力した場合の多入力シグネチャレジスタの最終状態は式（５８）と同じになる（工程１１）。
【０１９１】
式（５８）の情報は入力されたテスト応答ビットパターンの情報を完全に残している訳ではないため、式（５８）から得られるのはビット故障の候補である。
【０１９２】
ここに記載の論理回路の故障解析方法では、与えられた単一ビット故障候補および２ビット故障候補から、さらに故障候補を絞り込むための出力ビットパターンを算出する。故障解析対象の論理回路から得られる出力ビットパターンが算出された出力ビットパターンと一致しているものが、真のビット故障である確率が高くなる。
【０１９３】
まず、単一ビット故障の場合について具体的に説明する（工程１２）。単一ビット故障候補Ｎ＝０１が与えられているので、式（５４）〜（５７）の故障入力多項式Ｇ’0（ｘ）〜Ｇ’3（ｘ）において、故障のあるビット位置の論理変数ｄは１、論理変数/ｄは０であり、故障のないビット位置の論理変数ｄは０、論理変数/ｄは１であるから、次のように設定する。
【０１９４】
ｄ00＝ｄ02＝ｄ03＝０                                          （１０４）
ｄ10＝ｄ11＝ｄ12＝ｄ13＝０
ｄ20＝ｄ21＝ｄ22＝ｄ23＝０
ｄ30＝ｄ31＝ｄ32＝ｄ33＝０
ｄ01＝１
式（１０４）を式（６３）に代入すると、故障出力多項式Ｑ’（ｘ）は次のようになる。
【０１９５】
Ｑ’（ｘ）＝/ｄ33ｘ3＋/ｄ23,32ｘ2＋/ｄ13,22,31＋ｄ03,12,21,30
＝/０ｘ3＋/（０＾０）ｘ2＋/（０＾０＾０）ｘ＋（０＾０＾０＾０  ）
＝ｘ3＋ｘ2＋ｘ                                    （１０５）
単一ビット故障候補Ｎ＝２３、Ｎ＝３２の場合についても、式（１０４）と同様の設定を行い、故障出力多項式Ｑ’（ｘ）を計算すると、次のようになる。
【０１９６】
Ｎ＝２３  ⇒  Ｑ’（ｘ）＝  ｘ3＋ｘ                        （１０６）
Ｎ＝３２  ⇒  Ｑ’（ｘ）＝  ｘ3＋ｘ
多入力シグネチャレジスタＭＩＳＲ１の出力ビットパターンが式（１０５）と一致すれば、単一ビット故障候補Ｎ＝０１は真のビット故障となる。出力ビットパターンが式（１０６）と一致すれば、３つの単一ビット故障候補はＮ＝２３またはＮ＝３２の２つに絞り込むことができる。
【０１９７】
次に、２ビット故障の場合について具体的に説明する。２ビット故障候補Ｎ＝０２、Ｍ＝１１が与えられているので、式（５４）〜（５７）の故障入力多項式Ｇ’0（ｘ）〜Ｇ’3（ｘ）において、故障のあるビット位置の論理変数ｄは１、論理変数/ｄは０であり、故障のないビット位置の論理変数ｄは０、論理変数/ｄは１であるから、次のように設定する。
【０１９８】
ｄ00＝ｄ01＝ｄ03＝０                                        （１０７）
ｄ10＝ｄ12＝ｄ13＝０
ｄ20＝ｄ21＝ｄ22＝ｄ23＝０
ｄ30＝ｄ31＝ｄ32＝ｄ33＝０
ｄ02＝ｄ11＝１
式（１０７）を式（６３）に代入すると、故障出力多項式Ｑ’（ｘ）は次のようになる。
【０１９９】
Ｑ’（ｘ）＝/ｄ33ｘ3＋/ｄ23,32ｘ2＋/ｄ13,22,31＋ｄ03,12,21,30
＝/０ｘ3＋/（０＾０）ｘ2＋/（０＾０＾０）ｘ＋（０＾０＾０＾０  ）
＝ｘ3＋ｘ2＋ｘ                                    （１０８）
残りの２ビット故障候補（Ｎ,Ｍ）＝（０２,２０）、（１１,３３）、（２０,３３）、（００,１０）、（１０,１３）、（１０,２２）、（１０,３１）の場合についても、式（１０７）と同様の設定を行い、故障出力多項式Ｑ’（ｘ）を計算すると、次のようになる。
【０２００】
（Ｎ,Ｍ）＝（０２,２０）  ⇒  Ｑ’（ｘ）＝  ｘ3＋ｘ2＋ｘ      （１０９）
（Ｎ,Ｍ）＝（１１,３３）  ⇒  Ｑ’（ｘ）＝  ｘ2＋ｘ
（Ｎ,Ｍ）＝（２０,３３）  ⇒  Ｑ’（ｘ）＝  ｘ2＋ｘ
（Ｎ,Ｍ）＝（００,１０）  ⇒  Ｑ’（ｘ）＝  ｘ3＋ｘ2＋ｘ
（Ｎ,Ｍ）＝（１０,１３）  ⇒  Ｑ’（ｘ）＝  ｘ3＋ｘ2
（Ｎ,Ｍ）＝（１０,２２）  ⇒  Ｑ’（ｘ）＝  ｘ3＋ｘ2
（Ｎ,Ｍ）＝（１０,３１）  ⇒  Ｑ’（ｘ）＝  ｘ3＋ｘ2
多入力シグネチャレジスタＭＩＳＲ１の出力ビットパターンがｘ3＋ｘ2＋ｘと一致すれば、２ビット故障候補は（Ｎ,Ｍ）＝（０２,１１）、（０２,２０）、（００,２０）の３つに絞り込むことができる。また、出力ビットパターンがｘ2＋ｘと一致すれば、２ビット故障候補は（Ｎ,Ｍ）＝（１１,３３）、（２０,３３）２つに絞り込むことができる。さらに、出力ビットパターンがｘ3＋ｘ2と一致すれば、２ビット故障候補は（Ｎ,Ｍ）＝（１０,１３）、（１０,２２）、（１０,３１）の３つに絞り込むことができる。
【０２０１】
式（６９）とは異なる最終状態、また、様々なビット故障候補に対しても、同様の手順によりビット故障候補のさらなる絞り込みが可能である。
【産業上の利用可能性】
【０２０２】
本発明にかかる論理回路の故障解析方法は、論理回路ＢＩＳＴを有する半導体集積回路において、追加回路等を必要とせず、かつ、テスト応答ビットパターンとテスト応答処理手段の最終状態の間の一覧表を作成することなくビット故障候補を探索でき、さらに、テスト応答処理手段の出力ビットパターンを利用することにより、真のビット故障を特定することができるため、半導体集積回路の歩留り向上、品質向上あるいはプロセス改善に有用である。
【図面の簡単な説明】
【０２０３】
【図１】本発明の第１の実施の形態における論理回路の故障解析方法により、単一ビット故障候補を探索する場合を説明するための回路構成および工程手順図
【図２】本発明の第２の実施の形態における論理回路の故障解析方法により、２ビット故障候補を探索する場合を説明するための回路構成および工程手順図
【図３】本発明の第３の実施の形態における論理回路の故障解析方法により、与えられた単一ビット故障候補または２ビット故障候補に対して、それらが真のビット故障であるかどうかを確認する場合を説明するための回路構成および工程手順図
【図４】本発明の第４の実施の形態における論理回路の故障解析方法により、単一ビット故障候補を探索する場合を説明するための回路構成および工程手順図
【図５】本発明の第５の実施の形態における論理回路の故障解析方法により、２ビット故障候補を探索する場合を説明するための回路構成および工程手順図
【図６】本発明の第６の実施の形態における論理回路の故障解析方法により、与えられた単一ビット故障候補または２ビット故障候補に対して、さらに候補の絞り込みを行う場合を説明するための回路構成および工程手順図
【図７】線形フィードバックシフトレジスタに故障を含まないテスト応答ビットパターンを与えた場合のレジスタ最終状態および出力ビットパターンの計算過程を示す図
【図８】線形フィードバックシフトレジスタに故障を含むテスト応答ビットパターンを与えた場合のレジスタ最終状態および出力ビットパターンの計算過程を示す図
【図９】従来の一般的な論理回路ＢＩＳＴの構成図
【符号の説明】
【０２０４】
ＴＰＧ、ＴＰＧ１、ＴＰＧ２  テストパターン発生手段
ＣＵＴ、ＣＵＴ１、ＣＵＴ２  被テスト回路
ＴＲＡ、ＴＲＡ１、ＴＲＡ２  テスト応答処理手段
ＴＰ、ＴＰ１、ＴＰ２  テスト入力ビットパターン
ＴＲ、ＴＲ１、ＴＲ２  テスト応答ビットパターン
ＯＵＴ１、ＯＵＴ２  出力ビットパターン
ＬＦＳＲＡ、ＬＦＳＲＢ、ＬＦＳＲ１  線形フィードバックシフトレジスタ
ＭＩＳＲ１  多入力シグネチャレジスタ
【図１】
2005221457.tif 000003
【図２】
2005221457.tif 000004
【図３】
2005221457.tif 000005
【図４】
2005221457.tif 000006
【図５】
2005221457.tif 000007
【図６】
2005221457.tif 000008
【図７】
2005221457.tif 000009
【図８】
2005221457.tif 000010
【図９】
2005221457.tif 000011