(57)【要約】      （修正有）【課題】効率性を保持しつつ精確性を高くした半導体論理回路装置の故障診断方法、装置及び半導体論理回路装置の故障診断プログラムを記憶した記憶媒体を提供する。【解決手段】半導体論理回路装置の回路情報で、Ｘ故障ゲートＧｉにファンアウトがある場合（ステップ４０１）、ゲートＧｉのファンアウト信号線ｂ１，ｂ２，…に出現可能な故障論理値を表すＸ記号Ｘ１，Ｘ２，…を挿入し（ステップ４０２）、テスト入力ベクトルＶＥＣを入力信号線Ｉ０，Ｉ１，…に入力してＸ記号伝播により初期シミュレーション出力ベクトルＩＳＯを出力信号線Ｏ０，Ｏ１，…に得（ステップ４０３）、Ｘ記号に２値論理シミュレーションを行ってＸ分解によるシミュレーション出力ベクトルＳＭＯを得（ステップ４０４）、実際の半導体論理回路装置からの観測出力ベクトルＯＢＯとシミュレーション出力ベクトルＳＭＯとの比較結果により半導体論理回路装置の故障存在被疑領域を特定化する。【選択図】        図４
2006118903.tif 000002
【特許請求の範囲】
【請求項１】
入力信号線（Ｉ０，Ｉ１，…）、出力信号線（Ｏ０，Ｏ１，…）及び前記入力信号線と前記出力信号線との間に接続された複数のゲート（Ｇ０，Ｇ１，…）を有する半導体論理回路装置（１）の故障診断方法において、前記半導体論理回路装置の回路内の物理欠陥によって該回路の複数の信号線（ｂ１，ｂ２，…）に出現可能な故障論理値を異なる記号（Ｘ１，Ｘ２，…）で表現することを特徴とする半導体論理回路装置の故障診断方法。
【請求項２】
入力信号線（Ｉ０，Ｉ１，…）、出力信号線（Ｏ０，Ｏ１，…）及び前記入力信号線と前記出力信号線との間に接続された複数のゲート（Ｇ０，Ｇ１，…）を有する半導体論理回路装置（１）の故障診断方法において、
前記半導体論理回路装置の回路情報に従って、前記複数のゲートの１つのゲートのファンアウト信号線（ｂ１，ｂ２，…）に出現可能な故障論理値を表す記号（Ｘ１，Ｘ２，…）を挿入する記号挿入工程と、
前記半導体論理回路装置の回路情報に従って、前記記号を挿入した状態でテスト入力ベクトル（ＶＥＣ）を前記半導体論理回路装置の入力信号線に入力してシミュレーション出力ベクトル（ＳＭＯ）を前記半導体論理回路装置の出力信号線に得るシミュレーション工程と、
前記半導体論理回路装置の入力信号線に前記テスト入力ベクトルを入力した際の該半導体論理回路装置の出力信号線に得られる観測出力ベクトル（ＯＢＯ）と前記シミュレーション出力ベクトルとの比較結果に応じて前記半導体論理回路装置の故障存在被疑領域を特定化する故障診断工程と
を具備することを特徴とする半導体論理回路装置の故障診断方法。
【請求項３】
前記シミュレーション工程は、
前記テスト入力ベクトル（ＶＥＣ）を前記半導体論理回路装置の入力信号線に入力して前記記号を前記ファンアウト信号線の番号情報と共に前記半導体論理回路装置の出力信号線に伝播させて該出力信号線に初期シミュレーション出力ベクトル（ＩＳＯ）を得る信号伝播工程
を具備する請求項２に記載の半導体論理回路装置の故障診断方法。
【請求項４】
前記信号伝播工程は、
条件１：前記記号の反転記号を許容する、
条件２：前記各ゲートの演算結果が０及び１のいずれでもなくかつ前記記号及び該記号の反転記号でもない場合には前記ファンアウト信号線の番号情報を含む新しい記号を生成する
に従う請求項３に記載の半導体論理回路装置の故障診断方法。
【請求項５】
さらに、前記シミュレーション工程は、
前記挿入された記号のうち、前記初期シミュレーション出力ベクトルに含まれている前記ファンアウト信号線の番号に対応する記号に対して２値論理シミュレーションを行うことにより前記半導体論理回路装置の出力信号線に出力ベクトルを得、該出力ベクトルから前記半導体論理回路装置の期待出力ベクトル（ＥＸＯ）を除いて前記シミュレーション出力ベクトル（Ｐ１，Ｐ２，…）を得る記号分解工程
を具備する請求項３に記載の半導体論理回路装置の故障診断方法。
【請求項６】
さらに、前記半導体論理回路装置の回路情報に従って、故障候補ゲートから到達可能な前記半導体論理回路装置の出力信号線を表す到達可能出力ベクトル（ＡＲＯ）を演算する到達可能出力ベクトル演算工程を具備し、
前記故障診断工程は、
前記テスト入力ベクトルを入力した際の観測出力ベクトル（ＯＢＯ）と前記テスト入力ベクトルを入力した際の期待出力ベクトル（ＥＸＯ）とを比較する第１の比較工程と、
前記観測出力ベクトルが前記期待出力ベクトルと不一致のときのみ、前記テスト入力ベクトルを入力した際の前記故障候補ゲート（Ｇｉ）のシミュレーション出力ベクトルと前記観測出力ベクトルとを比較する第２の比較工程と、
前記シミュレーション出力ベクトルと前記観測出力ベクトルとが一致したとき、第１のマッチング値を、前記故障候補ゲートの到達可能出力ベクトルによって定められる範囲内の前記観測出力ベクトルと前記期待出力ベクトルとのエラー率及び前記故障候補ゲートの前記半導体論理回路装置の出力信号線までの実質的距離に依存する故障レベルによって演算する第１のマッチング値演算工程と、
前記シミュレーション出力ベクトルと前記観測出力ベクトルとが不一致のとき、第２のマッチング値を０とする第２のマッチング値演算工程と、
前記シミュレーション出力ベクトルの数の前記第１、第２のマッチング値の平均値をマッチング値として演算する第３のマッチング演算工程と
を具備する請求項２に記載の半導体論理回路装置の故障診断方法。
【請求項７】
前記第１のマッチング値は、
ｐ(ＦＶＥＣ，Ｇｉ，ｊ)
＝（Ｌ(Ｇｉ)／Ｌｍａｘ）・（ＤＥＦ∩ＡＲＯ）／｜ＡＲＯ｜
ただし、ＦＶＥＣはテスト入力ベクトル、
Ｇｉは故障候補ゲート、
ｊはシミュレーション出力ベクトルの番号（＝１，２，…，ｋ）、
ＤＥＦは観測出力ベクトルＯＢＯと期待出力ベクトルＥＸＯとの排他的論理オアによる差分ベクトル、
ＡＲＯは到達可能出力ベクトル、
Ｌ(Ｇｉ)は、１）出力信号線の故障レベルをＬ＝１とし、２）あるゲートの出力の故障レベルをＬとすると、その入力の故障レベルをＬ＋１とし、３）ゲートの信号線の故障レベルをＬ１，Ｌ２，…とすれば、そのゲートの出力（信号線の幹）の故障レベルはＬ１，Ｌ２，…の最大値とする、
ことによって導入される故障レベル、
Ｌｍａｘは前記半導体論理回路装置内の最大故障レベル、
によって演算される請求項６に記載の半導体論理回路装置の故障診断方法。
【請求項８】
さらに、前記故障診断工程は、
前記テスト入力ベクトル及び前記故障候補ゲートを行及び列とする前記マッチング値による故障診断値の原始故障診断値表を生成する原始故障診断値表生成工程と、
前記原始故障診断値表にある行及びある列において零でない故障診断値が唯一である必須故障がある存在する場合に、該必須故障を前記原始故障診断値表から削除して対象故障診断値表とし、該必須故障が存在しない場合に、前記原始故障診断値表を対象故障診断値表とする対象故障診断値表生成工程と、
前記対象故障診断値表から前記テスト入力ベクトルに対して零でない少なくとも１つの故障診断値を有する最小故障集合(被覆)より最小被覆を抽出する最小被覆抽出工程と、
前記必須故障がある場合に該必須故障を前記最小被覆に加えて最小故障集合(マルチプレット)とし、必須故障がない場合に、前記最小被覆を最小故障集合(マルチプレット)とする最小故障集合生成工程と
を具備する請求項６に記載の半導体論理回路装置の故障診断方法。
【請求項９】
さらに、前記故障診断工程は、前記最小故障集合を各故障候補ゲート毎の平均故障診断値を用いて順位付けする最小故障集合順位付け工程を具備する請求項８に記載の半導体論理回路装置の故障診断方法。
【請求項１０】
入力信号線（Ｉ０，Ｉ１，…）、出力信号線（Ｏ０，Ｏ１，…）及び前記入力信号線と前記出力信号線との間に接続された複数のゲート（Ｇ０，Ｇ１，…）を有する半導体論理回路装置（１）の故障診断装置において、前記半導体論理回路装置の回路内の物理欠陥によって該回路の複数の信号線（ｂ１，ｂ２，…）に出現可能な故障論理値を異なる記号（Ｘ１，Ｘ２，…）で表現する手段を具備することを特徴とする半導体論理回路装置の故障診断方法。
【請求項１１】
入力信号線（Ｉ０，Ｉ１，…）、出力信号線（Ｏ０，Ｏ１，…）及び前記入力信号線と前記出力信号線との間に接続された複数のゲート（Ｇ０，Ｇ１，…）を有する半導体論理回路装置（１）の故障診断装置において、
前記半導体論理回路装置の回路情報に従って、前記複数のゲートの１つのゲートのファンアウト信号線（ｂ１，ｂ２，…）に出現可能な故障論理値を表す記号（Ｘ１，Ｘ２，…）を挿入する記号挿入手段と、
前記半導体論理回路装置の回路情報に従って、前記記号を挿入した状態でテスト入力ベクトル（ＶＥＣ）を前記半導体論理回路装置の入力信号線に入力してシミュレーション出力ベクトル（ＳＭＯ）を前記半導体論理回路装置の出力信号線に得るシミュレーション手段と、
前記半導体論理回路装置の入力信号線に前記テスト入力ベクトルを入力した際の該半導体論理回路装置の出力信号線に得られる観測出力ベクトル（ＯＢＯ）と前記シミュレーション出力ベクトルとの比較結果に応じて前記半導体論理回路装置の故障存在被疑領域を特定化する故障診断手段と
を具備することを特徴とする半導体論理回路装置の故障診断装置。
【請求項１２】
前記シミュレーション手段は、
前記テスト入力ベクトル（ＶＥＣ）を前記半導体論理回路装置の入力信号線に入力して前記記号を前記ファンアウト信号線の番号情報と共に前記半導体論理回路装置の出力信号線に伝播させて該出力信号線に初期シミュレーション出力ベクトル（ＩＳＯ）を得る信号伝播手段
を具備する請求項１１に記載の半導体論理回路装置の故障診断装置。
【請求項１３】
前記信号伝播手段は、
条件１：前記記号の反転記号を許容する、
条件２：前記各ゲートの演算結果が０及び１のいずれでもなくかつ前記記号及び該記号の反転記号でもない場合には前記ファンアウト信号線の番号情報を含む新しい記号を生成する
に従う請求項１２に記載の半導体論理回路装置の故障診断装置。
【請求項１４】
さらに、前記シミュレーション手段は、
前記挿入された記号のうち、前記初期シミュレーション出力ベクトルに含まれている前記信号線の番号に対応する記号に対して２値論理シミュレーションを行うことにより前記半導体論理回路装置の出力信号線に出力ベクトルを得、該出力ベクトルから前記半導体論理回路装置の期待出力ベクトル（ＥＸＯ）を除いて前記シミュレーション出力ベクトル（Ｐ１，Ｐ２，…）を得る記号分解手段
を具備する請求項１２に記載の半導体論理回路装置の故障診断装置。
【請求項１５】
さらに、前記半導体論理回路装置の回路情報に従って、故障候補ゲートから到達可能な前記半導体論理回路装置の出力信号線を表す到達可能出力ベクトル（ＡＲＯ）を演算する到達可能出力ベクトル演算手段を具備し、
前記故障診断手段は、
前記テスト入力ベクトルを入力した際の観測出力ベクトル（ＯＢＯ）と前記テスト入力ベクトルを入力した際の期待出力ベクトル（ＥＸＯ）とを比較する第１の比較手段と、
前記観測出力ベクトルが前記期待出力ベクトルと不一致のときのみ、前記テスト入力ベクトルを入力した際の前記故障候補ゲート（Ｇｉ）のシミュレーション出力ベクトルと前記観測出力ベクトルとを比較する第２の比較手段と、
前記シミュレーション出力ベクトルと前記観測出力ベクトルとが一致したとき、第１のマッチング値を、前記故障候補ゲートの到達可能出力ベクトルによって定められる範囲内の前記観測出力ベクトルと前記期待出力ベクトルとのエラー率及び前記故障候補ゲートの前記半導体論理回路装置の出力信号線までの実質的距離に依存する故障レベルによって演算する第１のマッチング値演算手段と、
前記シミュレーション出力ベクトルと前記観測出力ベクトルとが不一致のとき、第２のマッチング値を０とする第２のマッチング値演算手段と、
前記シミュレーション出力ベクトルの数の前記第１、第２のマッチング値の平均値をマッチング値として演算する第３のマッチング演算手段と
を具備する請求項１２に記載の半導体論理回路装置の故障診断装置。
【請求項１６】
前記第１のマッチング値は、
ｐ(ＦＶＥＣ，Ｇｉ，ｊ)
＝（Ｌ(Ｇｉ)／Ｌｍａｘ）・（ＤＥＦ∩ＡＲＯ）／｜ＡＲＯ｜
ただし、ＦＶＥＣはテスト入力ベクトル、
Ｇｉは故障候補ゲート、
ｊはシミュレーション出力ベクトルの番号（＝１，２，…，ｋ）、
ＤＥＦは観測出力ベクトルＯＢＯと期待出力ベクトルＥＸＯとの排他的論理オアによる差分ベクトル、
ＡＲＯは到達可能出力ベクトル、
Ｌ(Ｇｉ)は、１）出力信号線の故障レベルをＬ＝１とし、２）あるゲートの出力の故障レベルをＬとすると、その入力の故障レベルをＬ＋１とし、３）ゲートの信号線の故障レベルをＬ１，Ｌ２，…とすれば、そのゲートの出力（信号線の幹）の故障レベルはＬ１，Ｌ２，…の最大値とする、
ことによって導入される故障レベル、
Ｌｍａｘは前記半導体論理回路装置内の最大故障レベル、
によって演算される請求項１５に記載の半導体論理回路装置の故障診断装置。
【請求項１７】
さらに、前記故障診断手段は、
前記テスト入力ベクトル及び前記故障候補ゲートを行及び列とする前記マッチング値による故障診断値の原始故障診断値表を生成する原始故障診断値表生成手段と、
前記原始故障診断値表にある行及びある列において零でない故障診断値が唯一である必須故障がある存在する場合に、該必須故障を前記原始故障診断値表から削除して対象故障診断値表とし、該必須故障が存在しない場合に、前記原始故障診断値表を対象故障診断値表とする対象故障診断値表生成手段と、
前記対象故障診断値表から前記テスト入力ベクトルに対して零でない少なくとも１つの故障診断値を有する最小故障集合(被覆)より最小被覆を抽出する最小被覆抽出手段と、
前記必須故障がある場合に該必須故障を前記最小被覆に加えて最小故障集合(マルチプレット)とし、必須故障がない場合に、前記最小被覆を最小故障集合(マルチプレット)とする最小故障集合生成手段と
を具備する請求項１５に記載の半導体論理回路装置の故障診断装置。
【請求項１８】
さらに、前記故障診断手段は、前記最小故障集合を各故障候補ゲート毎の平均故障診断値を用いて順位付けする最小故障集合順位付け手段を具備する請求項１７に記載の半導体論理回路装置の故障診断装置。
【請求項１９】
入力信号線（Ｉ０，Ｉ１，…）、出力信号線（Ｏ０，Ｏ１，…）及び前記入力信号線と前記出力信号線との間に接続された複数のゲート（Ｇ０，Ｇ１，…）を有する半導体論理回路装置（１）の故障診断プログラムを格納した記憶媒体において、前記半導体論理回路装置の回路内の物理欠陥によって該回路の複数の信号線（ｂ１，ｂ２，…）に出現可能な故障論理値を異なる記号（Ｘ１，Ｘ２，…）で表現する手順を具備することを特徴とする半導体論理回路装置の故障診断プログラムを記憶した記憶媒体。
【請求項２０】
入力信号線（Ｉ０，Ｉ１，…）、出力信号線（Ｏ０，Ｏ１，…）及び前記入力信号線と前記出力信号線との間に接続された複数のゲート（Ｇ０，Ｇ１，…）を有する半導体論理回路装置（１）の故障診断プログラムを記憶した記憶媒体において、
前記半導体論理回路装置の回路情報に従って、前記複数のゲートの１つのゲートのファンアウト信号線（ｂ１，ｂ２，…）に出現可能な故障論理値を表す記号（Ｘ１，Ｘ２，…）を挿入する記号挿入手順と、
前記半導体論理回路装置の回路情報に従って、前記記号を挿入した状態でテスト入力ベクトル（ＶＥＣ）を前記半導体論理回路装置の入力信号線に入力してシミュレーション出力ベクトル（ＳＭＯ）を前記半導体論理回路装置の出力信号線に得るシミュレーション手順と、
前記半導体論理回路装置の入力信号線に前記テスト入力ベクトルを入力した際の該半導体論理回路装置の出力信号線に得られる観測出力ベクトル（ＯＢＯ）と前記シミュレーション出力ベクトルとの比較結果に応じて前記半導体論理回路装置の故障存在被疑領域を特定化する故障診断手順と
を具備することを特徴とする半導体論理回路装置の故障診断プログラムを記憶した記憶媒体。
【請求項２１】
前記シミュレーション手順は、
前記テスト入力ベクトル（ＶＥＣ）を前記半導体論理回路装置の入力信号線に入力して前記記号を前記ファンアウト信号線の番号と共に前記半導体論理回路装置の出力信号線に伝播させて該出力信号線に初期シミュレーション出力ベクトル（ＩＳＯ）を得る信号伝播手順
を具備する請求項２０に記載の記憶媒体。
【請求項２２】
前記信号伝播手順は、
条件１：前記記号の反転記号を許容する、
条件２：前記各ゲートの演算結果が０及び１のいずれでもなくかつ前記記号及び該記号の反転記号でもない場合には前記ファンアウト信号線の番号情報を含む新しい記号を生成する
に従う請求項２０に記載の記憶媒体。
【請求項２３】
さらに、前記シミュレーション手順は、
前記挿入された記号のうち、前記初期シミュレーション出力ベクトルに含まれている前記信号線の番号に対応する記号に対して２値論理シミュレーションを行うことにより前記半導体論理回路装置の出力信号線に出力ベクトルを得、該出力ベクトルから前記半導体論理回路装置の期待出力ベクトル（ＥＸＯ）を除いて前記シミュレーション出力ベクトル（Ｐ１，Ｐ２，…）を得る記号分解手順
を具備する請求項２０に記載の記憶媒体。
【請求項２４】
さらに、前記半導体論理回路装置の回路情報に従って、故障候補ゲートから到達可能な前記半導体論理回路装置の出力信号線を表す到達可能出力ベクトル（ＡＲＯ）を演算する到達可能出力ベクトル演算手順を具備し、
前記故障診断手順は、
前記テスト入力ベクトルを入力した際の観測出力ベクトル（ＯＢＯ）と前記テスト入力ベクトルを入力した際の期待出力ベクトル（ＥＸＯ）とを比較する第１の比較手順と、
前記観測出力ベクトルが前記期待出力ベクトルと不一致のときのみ、前記テスト入力ベクトルを入力した際の前記故障候補ゲート（Ｇｉ）のシミュレーション出力ベクトルと前記観測出力ベクトルとを比較する第２の比較手順と、
前記シミュレーション出力ベクトルと前記観測出力ベクトルとが一致したとき、第１のマッチング値を、前記故障候補ゲートの到達可能出力ベクトルによって定められる範囲内の前記観測出力ベクトルと前記期待出力ベクトルとのエラー率及び前記故障候補ゲートの前記半導体論理回路装置の出力信号線までの実質的距離に依存する故障レベルによって演算する第１のマッチング値演算手順と、
前記シミュレーション出力ベクトルと前記観測出力ベクトルとが不一致のとき、第２のマッチング値を０とする第２のマッチング値演算手順と、
前記シミュレーション出力ベクトルの数の前記第１、第２のマッチング値の平均値をマッチング値として演算する第３のマッチング演算手順と
を具備する請求項２０に記載の記憶媒体。
【請求項２５】
前記第１のマッチング値は、
ｐ(ＦＶＥＣ，Ｇｉ，ｊ)
＝（Ｌ(Ｇｉ)／Ｌｍａｘ）・（ＤＥＦ∩ＡＲＯ）／｜ＡＲＯ｜
ただし、ＦＶＥＣはテスト入力ベクトル、
Ｇｉは故障候補ゲート、
ｊはシミュレーション出力ベクトルの番号（＝１，２，…，ｋ）、
ＤＥＦは観測出力ベクトルＯＢＯと期待出力ベクトルＥＸＯとの排他的論理オアによる差分ベクトル、
ＡＲＯは到達可能出力ベクトル、
Ｌ(Ｇｉ)は、１）出力信号線の故障レベルをＬ＝１とし、２）あるゲートの出力の故障レベルをＬとすると、その入力の故障レベルをＬ＋１とし、３）ゲートの信号線の故障レベルをＬ１，Ｌ２，…とすれば、そのゲートの出力（信号線の幹）の故障レベルはＬ１，Ｌ２，…の最大値とする、
ことによって導入される故障レベル、
Ｌｍａｘは前記半導体論理回路装置内の最大故障レベル、
によって演算される請求項２３に記載の記憶媒体。
【請求項２６】
さらに、前記故障診断手順は、
前記テスト入力ベクトル及び前記故障候補ゲートを行及び列とする前記マッチング値による故障診断値の原始故障診断値表を生成する原始故障診断値表生成手順と、
前記原始故障診断値表にある行及びある列において零でない故障診断値が唯一である必須故障がある存在する場合に、該必須故障を前記原始故障診断値表から削除して対象故障診断値表とし、該必須故障が存在しない場合に、前記原始故障診断値表を対象故障診断値表とする対象故障診断値表生成手順と、
前記対象故障診断値表から前記テスト入力ベクトルに対して零でない少なくとも１つの故障診断値を有する最小故障集合(被覆)より最小被覆を抽出する最小被覆抽出手順と、
前記必須故障がある場合に該必須故障を前記最小被覆に加えて最小故障集合(マルチプレット)とし、必須故障がない場合に、前記最小被覆を最小故障集合(マルチプレット)とする最小故障集合生成手順と
を具備する請求項２３に記載の記憶媒体。
【請求項２７】
さらに、前記故障診断手順は、前記最小故障集合の各最小故障を各故障候補ゲート毎の平均故障診断値を用いて順位付けする最小故障集合順位付け手順を具備する請求項２５に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体論理回路装置の故障診断方法、装置、及び半導体論理回路装置の故障診断プログラムを記憶した記憶媒体に関する。
【背景技術】
【０００２】
一般に、半導体論理回路装置におけるシリコンデバッグ、歩留向上及び信頼性向上のために、故障半導体論理回路装置の不良解析を行う。この場合、図１６に示すごとく、一般的には、ステップ１６０１において、故障診断方法により故障箇所が存在する可能性がある領域（以下、被疑領域）を特定する。次いで、ステップ１６０２において、非破壊的観測手段たとえば光学的手段によりステップ１６０１において特定化された被疑領域から故障箇所を特定化する。最後に、ステップ１６０３において、物理的手段たとえば破壊手段によりステップ１６０２において特定化された故障箇所の不良発生原因を解析する。
【０００３】
本発明は図１６の故障箇所の被疑領域特定化ステップ１６０１に関する。
【０００４】
図１６のステップ１６０１の故障診断方法には高い精確性及び高い効率性が要求される。
【０００５】
精確性とは故障箇所がステップ１６０１によって特定された被疑領域に存在する可能性を意味する。すなわち、精確性が低い場合には、ステップ１６０２において故障箇所が特定化されず、従って、ステップ１６０３における不良解析が不可能となる。他方、精確性が高い場合には、ステップ１６０２において故障箇所の特定化の可能性が大きく、最高の精確性の場合には故障箇所が必ず特定化され、従って、ステップ１６０３における不良解析が可能となる。
【０００６】
また、効率性とはステップ１６０１によって特定された被疑領域の大きさに依存する。すなわち、効率性が低い場合には、ステップ１６０１によって特定された被疑領域は大きく、従って、ステップ１６０２において故障箇所の特定化に要する時間が長くなる。他方、効率性が高い場合には、ステップ１６０１によって特定された被疑領域は小さく、従って、ステップ１６０２において故障箇所の特定化に要する時間が短くなる。
【０００７】
半導体論理回路装置の故障は、３つの特性、つまり、単純か複雑かの複雑特性、静的か動的かの時間特性、単一か多重かの個性特性によって分類できる。このうち、単純、静的及び単一の故障はゲートの１つの信号線の論理値が０もしくは１に固定されるという単一縮退故障による故障診断方法により高い精確性及び効率性が容易に達成される。他方、複雑、動的及び多重の故障の故障診断方法の高い精確性及び効率性の達成は容易でない。特に、近年、半導体論理回路装置の高集積化及び微細化に伴い、故障の不良原因も多様化し、複雑、動的及び多重の故障が問題となり、この結果、故障診断方法の精確性及び効率性が急速に低下している。
【０００８】
従来の複雑、動的及び多重の故障の故障診断方法として、単一縮退故障モデルを用いてパー・テスト（Per-Test）故障診断を行う方法である（参照：非特許文献１）。すなわち、情報収集ルーチンにおいて、ゲートに対して１箇所の故障に対応する単一縮退故障モデルを用いてテスト入力ベクトル毎に出力ベクトルのシミュレーション結果（シミュレーション出力ベクトル）を予め得ておく。次に、故障診断ルーチンにおいて、テスト入力ベクトル毎に観測出力ベクトルが期待出力ベクトルに一致するか否かを判別し、この結果、観測出力ベクトルが期待出力ベクトルと不一致のときのみ（この場合のテスト入力ベクトルをフェイルテスト入力ベクトルと言う）、上述のシミュレーション出力ベクトルと観測出力ベクトルとのマッチング演算を行って、マッチング値としての故障診断値よりなる故障診断値表を生成する。この場合、マッチング値は０あるいは１である。次いで、この故障診断値表からフェイルテスト入力ベクトルのすべてを被覆（cover）する最小故障集合（マルチプレット）を見つけることにより診断結果を抽出する。この場合、あるフェイルテスト入力ベクトルを説明できない故障であっても、その故障は破棄されず、その代り、次のフェイルテスト入力ベクトルによって再度確認される。従って、複雑、動的及び多重の故障を扱うことができる。
【０００９】
【非特許文献１】T. Bartenstein, D. Heaberlin, L. Huisman, and D. Sliwinski, “Diagnosing Combinational Logic Designs Using the Single Location At-a-Time (SLAT) Paradigm”, Proc. Intl. Test Conf., pp. 287-296, 2001.
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述の従来の単一縮退故障モデルを用いたパー・テスト故障診断方法は、図１７の示す抵抗性短絡のような複数の論理的な振る舞いをするビザンチン（Byzantine）故障の場合、誤診断を引き起こす可能性があり、この結果、精確性が低くなるという課題がある。
【００１１】
図１７の（Ａ）において、ゲートＧのビザンチン故障Ｄによってその出力線Ｌの電圧が接地電圧ＧＮＤと電源電圧ＶＤＤとの間で変化したとする。ここで、出力線Ｌに接続されたファンアウト信号線Ｌ１、Ｌ２のしきい値電圧、つまり、ファンアウト信号線Ｌ１、Ｌ２に接続された次段の入力トランジスタ（図示せず）のしきい値電圧をＶｔｈ１、Ｖｔｈ２（Ｖｔｈ１＜Ｖｔｈ２）とする。この場合、図１７の（Ｂ）に示すごとく、ファンアウト信号線Ｌ１、Ｌ２は３つの論理組合せ（０，０）、（１，０）、（１，１）をとり得る。従って、物理故障Ｄはどの論理組合せに対応するのか不明であり、ビザンチン故障の場合、ファンアウト信号線Ｌ１、Ｌ２が共に故障値を有する複雑な故障とも考えられる。
【００１２】
図１７の（Ｃ）に示すようなゲートＧ１、Ｇ２、Ｇ３、Ｇ４よりなる半導体論理回路装置を考える。ゲートＧ１にビザンチン故障Ｄがあり、フェイルテスト入力ベクトルを（１，１，１，０）とした場合に、ファンアウト信号線Ｌ１、Ｌ２が故障値０となったとする。この場合、ファンアウト信号線Ｌ３、Ｌ４は０、０となり、観測出力ベクトルは（０，０，０）となり、ファンアウト信号線Ｌ５の観測値は故障値０となり、診断結果はＬ５の０縮退故障を得ることになる。この０縮退故障は実際のビザンチン故障とは関連していないので誤診断となる。
【００１３】
また、上述の従来の単一縮退故障モデルを用いたパー・テスト故障診断方法における故障診断値表を生成する際のマッチング演算は狭義のマッチング、つまり唯一のシミュレーション出力ベクトルと観測出力ベクトルとの一致、不一致によるものであり、この結果、マッチング条件が厳格となり、効率性が向上するように考えられるが、実際には、マッチング条件が厳格となり過ぎ、精確性が低下するという課題がある。尚、この場合、マッチング演算の結果である故障診断値表の各値は１（一致）か０（不一致）である。
【００１４】
従って、本発明の目的は、効率性を保持しつつ精確性を高くした半導体論理回路装置の故障診断方法、装置及び半導体論理回路装置の故障診断プログラムを記憶した記憶媒体を提供することにある。
【課題を解決するための手段】
【００１５】
上述の目的を達成するために本発明は、入力信号線、出力信号線及び入力信号線と出力信号線との間に接続された複数のゲートを有する半導体論理回路装置の故障診断方法において、半導体論理回路装置の回路内の物理欠陥によって該回路の複数の信号線に出現可能な故障論理値を異なる記号で表現する。
【００１６】
上述の目的を達成するために本発明は、入力信号線、出力信号線及び入力信号線と出力信号線との間に接続された複数のゲートを有する半導体論理回路装置の故障診断方法において、記号挿入工程とは、半導体論理回路装置の回路情報に従って、１つのゲートのファンアウト信号線に出現可能な故障論理値を表す記号を挿入し、シミュレーション工程は、半導体論理回路装置の回路情報に従って、記号を挿入した状態でテスト入力ベクトルを半導体論理回路装置の入力信号線に入力してシミュレーション出力ベクトルを出力信号線に得、故障診断工程は、入力信号線にテスト入力ベクトルを入力した際の出力信号線に得られる観測出力ベクトルとシミュレーション出力ベクトルとの比較結果に応じて半導体論理回路装置の故障存在被疑領域を特定化する。上述の記号は、複雑、動的及び多重の故障を表す。
【００１７】
上述のシミュレーション工程は、テスト入力ベクトルを入力信号線に入力して記号をファンアウト信号線の番号と共に出力信号線に伝播させて出力信号線に初期シミュレーション出力ベクトルを得る信号伝播工程を具備する。
【００１８】
さらに、上述のシミュレーション工程は、挿入された記号のうち、初期シミュレーション出力ベクトルに含まれているファンアウト信号線の番号に対応する記号に対して２値論理シミュレーションを行うことにより出力信号線に出力ベクトルを得、この出力ベクトルから半導体論理回路装置の期待出力ベクトルを除いてシミュレーション出力ベクトルを得る記号分解工程を具備する。
【００１９】
さらに、半導体論理回路装置の回路情報に従って、故障候補ゲートから到達可能な出力信号線を表す到達可能出力ベクトルを演算する到達可能出力ベクトル演算工程を具備し、上述の故障診断工程は、テスト入力ベクトルを入力した際の観測出力ベクトルとテスト入力ベクトルを入力した際の期待出力ベクトルとを比較する第１の比較工程と、観測出力ベクトルが期待出力ベクトルと不一致のときのみ、テスト入力ベクトルを入力した際のある故障候補ゲートのシミュレーション出力ベクトルと観測出力ベクトルとを比較する第２の比較工程と、シミュレーション出力ベクトルと観測出力ベクトルとが一致したとき、第１のマッチング値を、故障候補ゲートの到達可能出力ベクトルによって定められる範囲内の観測出力ベクトルと期待出力ベクトルとのエラー率及び故障可能ゲートの出力信号線までの実質的距離に依存する故障レベルによって演算する第１のマッチング値演算工程と、シミュレーション出力ベクトルと観測出力ベクトルとが不一致のとき、第２のマッチング値を０とする第２のマッチング値演算工程と、シミュレーション出力ベクトルの数の第１、第２のマッチング値の平均値をマッチング値として演算する第３のマッチング演算工程とを具備する。
【００２０】
さらに、上述の故障診断工程は、テスト入力ベクトル及び故障ゲートを行及び列とするマッチング値による故障診断値の原始故障診断値表を生成する原始故障診断値表生成工程と、原始故障診断値表にある行及びある列において零でない故障診断値が唯一である必須故障がある存在する場合に、必須故障を原始故障診断値表から削除して対象故障診断値表とし、必須故障が存在しない場合に、原始故障診断値表を対象故障診断値表とする対象故障診断値表生成工程と、対象故障診断値表から入力ベクトルに対して零でない少なくとも１つの故障診断値を有する最小故障集合(被覆)より最小被覆を抽出する最小被覆抽出工程と、必須故障がある場合に必須故障を最小被覆に加えて最小故障集合(マルチプレット)とし、必須故障がない場合に、最小被覆を最小故障集合(マルチプレット)とする最小故障集合生成工程とを具備する。
【００２１】
さらに、上述の故障診断工程は、最小故障集合の各最小故障を各故障候補ゲート毎の平均故障診断値を用いて順位付けする最小故障順位付け工程を具備する。
【発明の効果】
【００２２】
本発明によれば、ゲートのファンアウト信号線に出現可能な故障論理値を表す記号を挿入し、この状態でシミュレーション出力ベクトルを得ているので、複雑、動的及び多重の故障がシミュレーション出力ベクトルに反映され、この結果、誤診断を防止でき、従って、効率性を保持しつつ精確性を向上できる。また、故障候補ゲートに対して１つもしくは複数のシミュレーション出力ベクトルを得ているので、マッチング条件を緩和できる。
【発明を実施するための最良の形態】
【００２３】
図１は本発明に係る半導体論理回路装置の一実施の形態を示すブロック回路図である。図１において、１は故障診断されるべき半導体論理回路装置、２は半導体論理回路装置１の故障診断を行うテスタであって、たとえば、中央処理ユニット（ＣＰＵ）、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）等よりなるコンピュータである。テスタ２は外部から半導体論理回路装置１の回路情報を入力する。回路情報はたとえばＡＮＤ接続、ＯＲ接続、ＮＡＮＤ接続、ＮＯＲ接続等の接続リストの外に、テスト入力ベクトルＶＥＣのグループ、期待出力ベクトルＥＸＯ等を含む。
【００２４】
半導体論理回路装置１は組合せ回路、またはフルスキャン構造を有する順序回路の組合せ部分である。半導体論理回路装置１が組合せ回路の場合には、入力数ｍの入力信号線Ｉ０，Ｉ１，…，Ｉｍ−１は組合せ回路の入力バッファ（あるいは入出力バッファ）に接続され、出力数ｎの出力信号線Ｏ０，Ｏ１，…，Ｏｎ−１は組合せ回路の出力バッファ（あるいは入出力バッファ）に接続される。また、半導体論理回路装置１が順序回路の組合せ部分の場合には、入力数ｍの入力信号線Ｉ０，Ｉ１，…，Ｉｍ−１は組合せ部分の入力バッファ（あるいは入出力バッファ）に接続され、出力数ｎの出力信号線Ｏ０，Ｏ１，…，Ｏｎ−１は組合せ部分の出力バッファ（あるいは入出力バッファ）に接続される。
【００２５】
尚、半導体論理回路装置１が順序回路の組合せ部分の場合には、テスタ２は必ずしも必要ではなく、他の装置であってもよい。但し、以後の記載では、便宜上、他の装置もテスタ２とする。
【００２６】
たとえば、図２（Ａ）に示すように、半導体論理回路装置１はゲートＧ０、Ｇ１、Ｇ２、Ｇ３、Ｇ４よりなり、入力信号線の入力数ｍは５、出力信号線の出力数ｎは３である。この場合、テスト入力ベクトルＶＥＣとして（Ｉ０，Ｉ１，…，Ｉ４）を与えると、テスト入力ベクトルＶＥＣを変数とする期待出力ベクトルＥＸＯ（ＶＥＣ）は図２の（Ｂ）のごとく与えられる。図２の（Ａ）においては、テスト入力ベクトルＶＥＣが（０，１，１，０，１）＝２２の場合の期待出力ベクトルＥＸＯが示されている。尚、期待出力ベクトルＥＸＯ（ＶＥＣ）は半導体論理回路装置１が正常時に得られる値であり、図２の（Ｂ）のテスト入力ベクトルＶＥＣと期待出力ベクトルＥＸＯ（ＶＥＣ）の対応表は上述の回路情報からテスタ２に予め与えられる。
【００２７】
次に図１のテスタ２の動作を説明する。
【００２８】
図３はメインルーチンである。
【００２９】
始めに、ステップ３０１において、テスト入力ベクトルＶＥＣを１つのＶＥＣ０に設定し、ステップ３０２において、ゲートＧｉを故障候補の１つのＧ０に設定する。
【００３０】
次に、ステップ３０３において、情報収集を行う。情報収集ステップ３０３の詳細は図４を参照して説明する。
【００３１】
始めに、ステップ４０１において、ゲートＧｉにファンアウトがあるか否かを判別する。ゲートＧｉにファンアウトがある場合にはステップ４０２〜４０４に進み、他方、ゲートＧｉにファンアウトがない場合にはステップ４０５、４０６に進む。たとえば、図２の（Ａ）においては、ゲートＧ０、Ｇ１にファンアウトがあり、他方、ゲートＧ２、Ｇ３、Ｇ４にファンアウトがない。
【００３２】
ステップ４０２においては、ゲートＧｉのファンアウトにＸ記号を挿入する。たとえば、図５の(Ａ)に示すごとく、ファンアウトがあるゲートＧ０に対しては、ゲートＧ０、その出力線ｂあるいはファンアウト信号線ｂ１、ｂ２、ｂ３に出現可能な故障論理値を示すＸ１(ｂ１)、Ｘ２(ｂ２)、Ｘ３(ｂ３)をファンアウト信号線ｂ１、ｂ２、ｂ３に挿入する。また、図５の（Ｂ）に示すごとく、ゲートＧ１に対しては、ゲートＧ１、その出力線ｂあるいはファンアウト信号線ｂ１、ｂ２に出現可能な故障論理値を示すＸ１(ｂ１)、Ｘ２(ｂ２)をファンアウト信号線ｂ１、ｂ２に挿入する。すなわち、後述のシミュレーション出力ベクトルの演算において確定できない故障値を表すためにすべてのファンアウト信号線に異なるＸ記号を挿入する。これは複数箇所に何らかの故障がある場合を表している。たとえば、ファンアウト数が２である場合には、図１７の(Ｂ)に示す論理値の組合せをすべて表しているので、ビザンチン故障のような複雑な故障を厳密に表すことができる。
【００３３】
次に、ステップ４０３において、Ｘ伝搬により初期シミュレーション出力ベクトルＩＳＯを演算する。つまり、テスト入力ベクトルＶＥＣを半導体論理回路装置１の入力信号線に入力してファンアウト信号線上に挿入されたＸ記号を半導体論理回路装置１の出力信号線まで伝搬させることにより初期シミュレーション出力ベクトルＩＳＯを出力信号線に得る。この場合、Ｘ記号が有効に外部出力まで伝播させるために次の条件１）、２）を課す。
１）反転情報の保持：反転機能を有するゲートはＸｉ(ｂ)（ｂはファンアウト信号線）の反転情報／Ｘｉ(ｂ)を伝播する。つまり、Ｘ記号の反転を許容し、この場合、新しいＸ記号を生成させないようにする。これにより、Ｘ記号が伝播する出力信号線の出力数は有効的に減少する。たとえば、
ＡＮＤ（Ｘｉ(ｂ)，／Ｘｉ(ｂ)）＝０
ＯＲ（Ｘｉ(ｂ)，／Ｘｉ(ｂ)）＝１
ＮＡＮＤ（／Ｘｉ(ｂ１，ｂ２)，１）＝Ｘｉ(ｂ１，ｂ２)
ＯＲ（Ｘｉ(ｂ１)，／Ｘｉ(ｂ１)，０，Ｘ２(ｂ２)）＝１
２）Ｘ１(ｂ１) ，Ｘ２(ｂ２)，…，Ｘｈ(ｂｈ)に対するゲートの演算結果が０でもなく１でもなく、かつこれらのＸ記号もしくは反転記号でない場合のみ、新しいＸ記号（ｂ１，ｂ２，…，ｂｈ）を生成する。たとえば、
ＮＯＲ（Ｘ３(ｂ１，ｂ２)，Ｘ２(ｂ２) ，Ｘ４(ｂ３)）＝Ｘ５(ｂ１，ｂ２，ｂ３)
ＡＮＤ（／Ｘ１(ｂ１)，Ｘ３(ｂ３)＝Ｘ６(ｂ１，ｂ３)
【００３４】
初期シミュレーション出力ベクトルＩＳＯはテスト入力ベクトル（アドレスＶＥＣ）及びゲートＧｉに依存する。つまり、ＩＳＯはＶＥＣ、Ｇｉの関数である。図６の(Ａ)に示すごとく、テスト入力ベクトルＶＥＣ２２、ゲートＧ０に対しては、初期シミュレーション出力ベクトルＩＳＯは（／Ｘ１(ｂ１)，Ｘ４(ｂ１，ｂ２)，１）となる。ここで、ゲートＧ１の出力に上記条件１）を課し、ゲートＧ３の出力に上記条件２）を課してある。また、図６の（Ｂ）に示すごとく、テスト入力ベクトルＶＥＣ２２、ゲートＧ１に対しては、初期シミュレーション出力ベクトルＩＳＯは（Ｘ１(ｂ１)，０，１）となる。
【００３５】
次に、ステップ４０４において、Ｘ分解する。すなわち、曖昧さを取除くために、挿入Ｘ記号に対して論理値を与えて２値論理シミュレーションを行う。挿入Ｘ記号をＸ１(ｂ１)，Ｘ２(ｂ２)，…，Ｘｈ(ｂｈ)とすると、ファンアウト信号線の集合Ｂはｂ１∪ｂ２∪…∪ｂｈであり、２ｈ回の２値論理シミュレーションを行うことによりファンアウト信号線の故障値の組合せをすべて満たすことになる。但し、ファンアウト信号線ｂ１，ｂ２，…，ｂｈのしきい値電圧が予め知られていれば、（ｈ＋１）回の２値論理シミュレーションでよい。さらに、到達可能出力ベクトルＡＲＯに含まれていないファンアウト信号線は考慮する必要がないので、上述の２値論理シミュレーションの回数はより少なくなる。
【００３６】
図７の(Ａ)に示すごとく、テスト入力ベクトルＶＥＣ２２、故障ゲートＧ０に対しては、Ｘ故障ゲートＧ０のファンアウト信号線ｂ１、ｂ２のみが出力信号線へ到達しているので、ファンアウト信号線ｂ３は考慮することなく、ファンアウト信号線ｂ１、ｂ２、ｂ３の故障値の組合せは（０，０，Ｘ）、（１，０，Ｘ）、（０，１，Ｘ）、（１，１，Ｘ）である。これにより得られるシミュレーション出力ベクトルは（１，０，１）、（０，０，１）、（１，１，１）、（０，０，１）であるが、（１，０，１）は期待出力ベクトルであるので除外する。従って、Ｘ分解によるシミュレーション出力ベクトルは（０，０，１）（＝Ｐ１）、（１，１，１）（＝Ｐ２）、（０，０，１）（＝Ｐ３）となる。また、図７の(Ｂ)に示すごとく、テスト入力ベクトルＶＥＣ２２、Ｘ故障ゲートＧ１に対しては、Ｘ故障ゲートＧ１のファンアウト信号線ｂ１が出力信号線へ到達しているので、ファンアウト信号線ｂ２は考慮することなく、ファンアウト信号線ｂ１の故障値は（０）、（１）である。これにより得られるシミュレーション出力ベクトルは（０，０，１）、（１，０，１）であるが、（１，０，１）は期待出力ベクトルであるので除外する。従って、Ｘ分解によるシミュレーション出力ベクトルは（０，０，１）（＝Ｐ１）となる。
【００３７】
このようにして、１つのテスト入力ベクトル、１つの故障ゲートに対して１つもしくは複数のシミュレーション出力ベクトルを得ることにより、後述のマッチング条件を緩和する。
【００３８】
他方、ステップ４０５においては、故障ゲートＧｉの出力に正常値の反転値を挿入する。たとえば、図２のゲートＧ２の出力にはゲートＧ２の出力に故障がない場合の論理値（この場合、１）の反転値（この場合、０）を挿入する。この反転値はゲートＧ２もしくはその出力に出現可能な故障論理値を明瞭に示している。次いで、ステップ４０６において、通常の単一縮退シミュレーションを行う。ステップ４０５、４０６は本発明に直接関係しないので、詳細は省略する。
【００３９】
次に、ステップ４０７において、Ｘ故障ゲートＧｉの出力から到達可能な出力信号線を到達可能出力ベクトルＡＲＯとして演算する。たとえば、図８の(Ａ)に示すごとく、Ｘ故障ゲートＧ０に対しては、その出力はゲートＧ１、Ｇ２を介して出力Ｏ０へ、ゲートＧ１、Ｇ３を介して出力Ｏ１へ、ゲートＧ４を介して出力Ｏ２へ到達可能である。従って、ＡＲＯ＝（１，１，１）となる。また、Ｘ故障ゲートＧ１に対しては、その出力はゲートＧ２を介して出力Ｏ０へ、ゲートＧ３を介して出力Ｏ１へ到達可能である。従って、ＡＲＯ＝（１，１，０）となる。
【００４０】
そして、図３のステップ３０４に戻る。
【００４１】
図３の故障診断ステップ３０４は、実際に搭載された半導体論理回路装置１の動作に基づいて実行され、その詳細は図９に示される。尚、図９の故障診断ルーチンはゲートＧｉにファンアウトがある場合の故障診断を取扱い、ゲートＧｉにファンアウトがない場合の単一縮退シミュレーションに基づく故障診断は本発明に関係しないので取扱わない。
【００４２】
始めに、ステップ９０１において、半導体論理回路装置１の出力信号線Ｏ０、Ｏ１、Ｏ２の観測出力ベクトルＯＢＯと期待出力ベクトルＥＸＯとの差分ベクトルＤＥＦを排他的オア論理演算により求める。
【００４３】
次に、ステップ９０２において、差分ベクトルＤＥＦの絶対値が０か否かを判別する。この結果、｜ＤＥＦ｜＝０であれば、観測出力ベクトルＯＢＯは期待出力ベクトルＥＰＯと一致しているので、故障なしとして図３のステップ３０５に直接進み、他方、｜ＤＥＦ｜≠０であれば、観測出力ベクトルＯＢＯは期待出力ベクトルＥＰＯと異なるので、故障ありとしてステップ９０３に進む。
【００４４】
ステップ９０３においては、テスト入力ベクトルＶＥＣをフェイルテスト入力ベクトルＦＶＥＣとし、次いで、ステップ９０４において、上述のシミュレーション出力ベクトルＳＭＯ（Ｐｋ）と観測出力ベクトルＯＢＯとのマッチング演算を行って故障診断値を求める。この場合、マッチング値としての故障診断値は、エラー率及び故障レベルをも考慮するので０〜１の範囲の値をとる。尚、従来のマッチング値としての故障診断値は上述のごとく狭義のマッチング値としての１（一致）あるいは０（不一致）であった。
【００４５】
マッチング演算はステップ９０５〜９１０により行われる。
【００４６】
ステップ９０４において、シミュレーション出力ベクトルＰｊを指定するために値ｊを１に初期化する。ここでは、フェイルテスト入力ベクトルＦＶＥＣ、故障ゲートＧｉに対するシミュレーション出力ベクトルはＰ１，Ｐ２，…，Ｐｋ（ｋ≧１）と仮定する。
【００４７】
次に、ステップ９０３において、狭義のマッチング演算を行う。つまり、シミュレーション出力ベクトルＰｊが観測出力ベクトルＯＢＯと一致するか否かを判別する。この結果、シミュレーション出力ベクトルＰｊが観測出力ベクトルＯＢＯと一致していればステップ９０６に進み、他方、シミュレーション出力ベクトルＰｊが観測出力ベクトルＯＢＯと不一致していればステップ９０７に進む。
【００４８】
ステップ９０６においては、マッチング値としての故障診断値ｐ(ＦＶＥＣ，Ｇｉ，ｊ)を、
ｐ(ＦＶＥＣ，Ｇｉ，ｊ)
←（Ｌ(Ｇｉ)／Ｌｍａｘ）・（ＤＥＦ∩ＡＲＯ）／｜ＡＲＯ｜
により演算する。ここで、（ＤＥＦ∩ＡＲＯ）／｜ＡＲＯ｜は有効エラー率を示し、Ｌ(Ｇｉ)／Ｌｍａｘは故障レベルを示す。
【００４９】
たとえば、図１０に示すごとく、（Ａ）では、フェイルテスト入力ベクトルＦＶＥＣ０、故障ゲートＧ０に対して、エラー数３、有効エラー率は１００％であるが、（Ｂ）では、フェイルテスト入力ベクトルＦＶＥＣ１，故障ゲートＧ１に対して、エラー数３であっても、有効エラー率は３３％と低い。また、（Ｃ）では、フェイルテスト入力ベクトルＦＶＥＣ２，故障ゲートＧ２に対して、エラー数も低く、有効エラー率も５０％と低い。このようなエラー率をマッチング値として考慮する。
【００５０】
また、図１０においても、故障ゲートＧ０は故障ゲートＧ１、Ｇ２よりも出力信号線Ｏ１，Ｏ２，…に遠い。直感的にも、故障ゲートＧ０における故障は故障ゲートＧ１、Ｇ２の故障より出力信号線Ｏ１，Ｏ２，…に出現しにくい。これを考慮するために、故障ゲートＧｉから出力信号線Ｏ０，Ｏ１，…までの実質的距離に依存する故障レベルＬを導入する。故障レベルＬは次の条件に従う。
１）出力信号線Ｏ０，Ｏ１，…の故障レベルをＬ＝１とする。
２）あるゲートの出力の故障レベルをＬとすると、その入力の故障レベルＬ＋１とする。
３）ゲートのファンアウト信号線の故障レベルをＬ１，Ｌ２，…とすれば、そのゲートの出力（ファンアウトの幹）の故障レベルはＬ１，Ｌ２，…の最大値とする。
４）装置内の最大故障レベルをＬｍａｘとする。
故障レベルＬの一例を図１１に示す。たとえば、故障候補ゲートＧ０のファンアウト信号線の故障レベルＬはＬ＝２，Ｌ＝３であり、故障候補ゲートＧ０の出力つまりファンアウトの幹の故障レベルはＬ＝２，Ｌ＝３の最大値のＬ＝３となる。
【００５１】
他方、ステップ９０７においては、故障診断値ｐ(ＦＶＥＣ，Ｇｉ，ｊ)を０とする。
【００５２】
ステップ９０８、９０９はステップ９０５〜９０７のフローをシミュレーション出力ベクトルＰｊの数ｋだけ繰返す。
【００５３】
ステップ９１０においては、故障診断値ｐ(ＦＶＥＣ，Ｇｉ，ｊ)の平均値ｐ(ＦＶＥＣ，Ｇｉ)を演算し、この平均値を最終的な故障診断値とする。
【００５４】
そして、図３のステップ３０５へ戻る。
【００５５】
ステップ３０５、３０６により情報収集ステップ３０３、故障診断ステップ３０４のフローを故障候補となるゲートの数だけ繰返す。つまり、ステップ３０５では、故障候補となるゲートの残りがないか否かを判別し、故障候補となるゲートがある場合のみステップ３０６によりＧｉを更新してステップ３０３に戻る。
【００５６】
ステップ３０７、３０８によりステップ３０２〜３０８のフローをテスト入力ベクトルの数だけ繰返す。つまり、ステップ３０７では、テスト入力アドレスがＶＥＣＥか否かを判別し、テスト入力アドレスＶＥＣに残りがある場合のみステップ３０８によりＶＥＣを更新してステップ３０２に戻る。
【００５７】
次に、図３のステップ３０９において、たとえば図１２に示すごとく、上述のごとく、求められた最終故障診断値ｐ(ＦＶＥＣ，Ｇｉ)よりなる原始診断故障値表を生成する。尚、図１２における平均値は各Ｘ故障ゲートＧ０，Ｇ１，…に対するフェイルテスト入力ベクトルの故障診断値の合計をフェイルテスト入力ベクトル数で除算した値である。
【００５８】
たとえば、図７の（Ａ）に示す場合、
Ｌ（Ｇ０）＝４
Ｌｍａｘ＝４
であり、観測出力ベクトルＯＢＯを（０，０，１）とすれば、
Ｐ１＝ＯＢＯ
Ｐ２≠ＯＢＯ
Ｐ３＝ＯＢＯ
である。従って、
ｐ(ＦＶＥＣ，Ｇ０，１)＝３／３・１／３＝０．３３
ｐ(ＦＶＥＣ，Ｇ０，２)＝０
ｐ(ＦＶＥＣ，Ｇ０，３)＝３／３・１／３＝０．３３
この結果、
ｐ(ＦＶＥＣ，Ｇ０)＝（０．３３＋０＋０．３３）／３
＝０．２２
となる。
【００５９】
次に、ステップ３１０、３１１、３１２において、原始故障診断値表より故障診断結果である最小故障集合（マルチプレット）を生成する。ここで、マルチプレットとはすべてのフェイルテスト入力ベクトルを説明できる故障の最小集合を示す。
【００６０】
マルチプレットは最小被覆（cover）の故障と必須故障（essential fault）により構成される。
【００６１】
マルチプレットを生成するために、まず、ステップ３１０において、原始故障診断値表からすべての必須故障を抽出して削除し、対象故障診断値表を生成する。ここで、必須故障とは、故障診断値表において、ある行（フェイルテスト入力ベクトル）とある列（故障候補ゲート）において零でない要素が唯一である場合の故障である。この必須故障はマルチプレットに必須である。尚、必須故障が存在しない場合には、原始故障診断値表をそのまま対象故障診断値表とする。
【００６２】
図１２においては、故障ゲートＧ４が必須故障に該当する。図１２の原始故障診断値表から必須故障を削除した対象故障診断値表を図１３に示す。
【００６３】
次に、ステップ３１１において、対象故障診断値表から最小被覆（minimal cover）の故障を抽出する。ここで、被覆とはフェイルテスト入力ベクトルＦＶＥＣに対して零でない少なくとも一つの要素を有する最小故障集合であり、そのうち最も小さい被覆が最小被覆である。
【００６４】
最小被覆の故障の抽出のために、対象故障診断値表に対して図１４の（Ａ）に示す故障不和合性グラフ（Fault Incompatibility Graph）を構成する。この故障不和合性グラフにおいては、ノードＧ０，Ｇ１，Ｇ２，Ｇ３はＸ故障ゲートを表し、点線で示す２つのノード間のエッジはこれらノードの故障は同一被覆にあってはならないことを意味する。つまり、図１３において、Ｘ故障ゲートＧ０は２つのフェイルテスト入力ベクトルＦＶＥＣ０，ＦＶＥＣ２によって説明できるが、Ｘ故障ゲートＧ１はフェイルテスト入力ベクトルＦＶＥＣ０のみによってしか説明できないからである。また、Ｘ故障ゲートＧ２は２つのフェイルテスト入力ベクトルＦＶＥＣ１，ＦＶＥＣ２によって説明できるが、Ｘ故障ゲートＧ３はフェイルテスト入力ベクトルＦＶＥＣ１のみによってしか説明できないからである。
【００６５】
図１４の（Ａ）の故障不和合性グラフから必然的に図１４の（Ｂ）の故障和合性グラフ（Fault Compatibility Graph）を得ることができる。
【００６６】
被覆候補は図１４の（Ｂ）における完全な部分グラフを示す故障集合である。つまり、
｛Ｇ０｝，｛Ｇ１｝，｛Ｇ２｝，｛Ｇ３｝，
｛Ｇ０，Ｇ２｝，｛Ｇ０，Ｇ３｝，｛Ｇ１，Ｇ２｝，｛Ｇ１，Ｇ３｝
【００６７】
被覆候補から被覆を検出する。被覆は、
｛Ｇ０，Ｇ２｝，｛Ｇ０，Ｇ３｝，｛Ｇ１，Ｇ２｝，｛Ｇ１，Ｇ３｝
である。これらのサイズは同一であるので、これらの被覆は最小被覆である。
【００６８】
次に、ステップ３１２において、最小故障集合（マルチプレット）を生成する。最小故障集合は、上述のごとく、最小被覆の故障及び必須故障で表せるので、
｛Ｇ０，Ｇ２，Ｇ４｝，｛Ｇ０，Ｇ３，Ｇ４｝，｛Ｇ１，Ｇ２，Ｇ４｝，
｛Ｇ１，Ｇ３，Ｇ４｝
となる。尚、必須故障が存在しない場合には、最小被覆の故障を最小故障集合とする。
【００６９】
次に、ステップ３１３において、最小故障集合に対して順位付けを行う。最小故障集合（マルチプレット）の順位付けは、平均故障診断値を用いて行う。すなわち、
｛Ｇ０，Ｇ２，Ｇ４｝＝０．２７＋０．３６＋０．１４＝０．７７
｛Ｇ０，Ｇ３，Ｇ４｝＝０．２７＋０．０４＋０．１４＝０．４５
｛Ｇ１，Ｇ２，Ｇ４｝＝０．１６＋０．３６＋０．１４＝０．６６
｛Ｇ１，Ｇ３，Ｇ４｝＝０．１６＋０．０４＋０．１４＝０．３４
この順位付けにより、｛Ｇ０，Ｇ３，Ｇ４｝が１番目の故障診断結果となる。このようにして、Ｘ故障シミュレーション出力ベクトルとフェイルテスト入力ベクトルの観測出力ベクトルの比較から故障診断値を演算するので客観性の高い故障診断結果が得られる。
【００７０】
そして、ステップ３１４により図３のルーチンは終了する。
【００７１】
上述の図３、図４、図９のフローチャートは図１のテスタ２のＲＯＭに記憶されるプログラムとして記憶媒体に記憶される。
【００７２】
図１５は従来の単一縮退故障モデルを用いたパー・テスト故障診断方法による実験結果及び本発明に係るＸ故障モデルを用いたパー・テスト故障診断方法による実験結果の対比を示す図である。図１５においては、実際の故障半導体論理回路装置の代わりに、ランダムに複数の故障（平均故障数とする）を挿入した１０回路の半導体論理回路装置を用いて実験を行った。図１５においては、従来の単一縮退故障モデルを用いたパー・テスト故障診断方法によれば、最小故障集合（マルチプレット）の平均数は大きく、しかも、順位付けした最小故障集合に対して正確な故障位置を指摘した平均順位は低かった。これに対し、本発明に係るＸ故障モデルを用いたパー・テスト故障診断方法によれば、最小故障集合（マルチプレット）の平均数は小さく、しかも、順位付けした最小故障集合に対して正確な故障位置を指摘した平均順位は高かった。また、故障が存在した最小故障集合のリスト中の平均順位がほぼ１位であり、悪くても３位であった。
【図面の簡単な説明】
【００７３】
【図１】本発明に係る半導体論理回路装置の故障診断装置の一実施の形態を示すブロック回路図である。
【図２】図１の半導体論理回路装置の一例を示し、（Ａ）は回路図、（Ｂ）はテスト入力ベクトルＶＥＣと期待出力ベクトルＥＸＯとの対応表を示す図である。
【図３】図１のテスタの情報収集動作を示すフローチャートである。
【図４】図２の情報収集ステップの詳細を示すフローチャートである。
【図５】図４のＸ挿入ステップを説明する回路図である。
【図６】図４のＸ伝播ステップを説明する回路図である。
【図７】図４のＸ分割ステップを説明する回路図である。
【図８】図４の到達可能出力ベクトルを説明する回路図である。
【図９】図２の故障診断ステップの詳細を示すフローチャートである。
【図１０】図９における有効エラー率及び故障レベルを説明する回路図である。
【図１１】図９における故障レベルの一例を示す回路図である。
【図１２】図３の原始故障診断値表生成ステップにおいて得られる原始故障診断値表の一例を示す図である。
【図１３】図３の故障診断値表生成ステップにおいて得られる対象故障診断値表の一例を示す図である。
【図１４】図３の最小被覆集合検出ステップを説明する図である。
【図１５】従来の単一縮退故障モデルを用いたパー・テスト故障診断方法の実験結果及び本発明に係るＸ故障モデルを用いたパー・テスト故障診断方法の実験結果の対比を説明する図である。
【図１６】一般的な半導体論理回路装置の不良解析方法を示すフローチャートである。
【図１７】従来の半導体論理回路装置の故障診断方法の課題を説明する図であって、（Ａ）はビザンチン故障を説明する回路図、（Ｂ）は（Ａ）の信号線の故障値を説明する図、（Ｃ）はビザンチン故障を有する半導体論理回路装置の例を示す回路図である。
【符号の説明】
【００７４】
１：半導体論理回路装置
２：テスタ
Ｉ０，Ｉ１，…：入力信号線
Ｏ０，Ｏ１，…：出力信号線
Ｇ０，Ｇ１，…：ゲート
ＥＸＯ：期待出力ベクトル
ＩＳＯ：初期シミュレーション出力ベクトル
ＳＭＯ：シミュレーション出力ベクトル
ＡＲＯ：到達可能出力ベクトル
ＤＥＦ：差分ベクトル
【図１】
2006118903.tif 000003
【図２】
2006118903.tif 000004
【図３】
2006118903.tif 000005
【図４】
2006118903.tif 000006
【図５】
2006118903.tif 000007
【図６】
2006118903.tif 000008
【図７】
2006118903.tif 000009
【図８】
2006118903.tif 000010
【図９】
2006118903.tif 000011
【図１０】
2006118903.tif 000012
【図１１】
2006118903.tif 000013
【図１２】
2006118903.tif 000014
【図１３】
2006118903.tif 000015
【図１４】
2006118903.tif 000016
【図１５】
2006118903.tif 000017
【図１６】
2006118903.tif 000018
【図１７】
2006118903.tif 000019