| 【発明の名称】 |
順序回路の故障箇所推定方法及び故障箇所推定における候補抽出並びにその重み付け方法更にはその装置 |
| 【発明者】 |
【氏名】石山 敏夫
|
| 【要約】 |
【課題】大規模化,多層配線化するLSI内部の故障を、実際のテスタパス/フェイル情報と回路接続情報、及びLSI内部の全フリップフロップの全ベクタに対する期待値情報を用いて推定処理により実現する。
【解決手段】実際のフェイルピンから入出力双方向に回路抽出を行い、フリップフロップと複数の入出力ピンを持つ組合せ回路を抽出し、組合せ回路の入力境界での多重故障伝搬仮定によるシミュレーションと実際のフェイルとの比較で故障伝搬値を推定し、各フェイルベクタに対する推定値を求め、上記手順を繰り返して順次LSI内部へと溯る。同時に各フリップフロップの故障推定値を用いて全フェイルベクタに対する組合せ回路内の故障伝搬経路を抽出しかつ重複領域を抽出して優先順位付けをする。 |
【特許請求の範囲】
【請求項1】 予め用意したLSI内の全フリップフロップの全テストべクタに対する全期待値情報と、実際のテスタでのパス/フェイル出力情報と、全回路の接続情報とを用い、前記LSI内の回路を前記フリップフロップと組合せ回路とに分割して故障推定するようにした順序回路の故障箇所推定方法であって、フェイルベクタ毎に組合せ回路の入力境界での故障伝搬推定値を求めるシーケンスとして、実際のフェイル出力ピンもしくはフェイルと推定されるフリップフロップ入力線からLSIの入力ピン若しくはフリップフロップ出力に到達するまで入力方向に組合せ回路を抽出し、さらに抽出された組合せ回路の入力から出力方向にLSIの出力ピン若しくはフリップフロップ入力まで回路を抽出して、再度得られた出力ピン若しくはフリップフロップの入力端子から入力方向に前記組合せ回路を抽出する手順と、当該組合せ回路の出力部での推定故障出力並びに推定正常出力の状態値とを用いて、(1)組合せ回路内に故障が存在しないと仮定する場合、(2)組合せ回路内に故障が存在すると仮定する場合、の推定を行い、組合せ回路内に故障が存在しないと推定される場合については組合せ回路入力端子に前段から伝搬している信号の状態値を推定し、また、組合せ回路内部に故障が存在すると推定される場合については、組合せ回路内推定故障箇所並びに同状態で前記抽出された組合せ回路入力端子に前段から伝搬していると推定できる場合には組合せ回路入力端子信号の状態値もあわせて推定する手順と、出力状態を満たす故障推定箇所及び推定入力ベクタを求める手順と、前記得られた組合せ回路入力端子での複数の推定入力ベクタ全てを用いブール代数の簡略化を行う手順と、さらにこの簡略化後の推定入力ベクタを期待値との比較により故障伝搬端子、正常端子、出力状態決定に関与しない端子に分類し、かつその時の状態を端子毎に求める手順と、前記得られた推定結果に故障伝搬推定端子が存在する場合には、最初の組合せ回路抽出手順から再度実行させる手順と、前記組合せ回路毎の推定で得られた全ての組合せ回路内推定故障箇所の一致判定を行い全ての状態を満たす同一箇所を抽出する手順とを含み、最終的な故障推定リストを作成するようにしたことを特徴とする順序回路の故障箇所推定方法。 【請求項2】 請求項1の組合せ回路入力端子の故障推定箇所及び推定入力べクタを求める手順に代えて、組合せ回路内に故障が存在しないと仮定する場合には、前記組合せ回路の出力部での推定故障出力並びに推定正常出力の状態値を用いて、請求項1と同様の手順を行い、組合せ回路内に故障が存在すると仮定する場合には、組合せ回路出力部での推定故障端子の状態値のみを用いて組合せ回路入力端子の状態推定を行う手順と、この得られた各々の推定べクタを用いて推定べクタ毎に論理シミュレーシヨンを行うことにより各ノード毎の状態値を求める手順と、前記組合せ回路入力端子に期待値を与え論理シミュレーシヨンを行い、この得られた各ベクタ毎の各ノード状態値とを比較することにより各推定べクタ毎に故障伝搬経路を抽出する手順と、この得られた故障伝搬経路のうち最初に用いた組合せ回路出力部の推定故障出力端子以外に故障が伝搬している経路並びに当該経路と推定故障出力端子と交差している場合にはその交差点から前記組合せ回路入力端子に到達するまでの全ての故障伝搬経路を抽出して、この得られた故障伝搬経路から削除して故障箇所並びに推定入力ベクタが存在する場合にはその推定入力ベクタを求める手順とを含むことを特徴とする請求項1記載の順序回路の故障箇所推定方法。 【請求項3】 請求項1の組合せ回路入力端子での推定入力ベクタを求める手順において、請求項1の前記(1),(2)による組合せ回路内部の故障箇所を推定する操作の後に、当該組合せ回路出力状態を得るべく同様な組合せ回路内部の故障推定操作により既に得られている故障推定箇所の数と新たに当該組合せ回路内の故障箇所推定で得られた数を合算する手順と、この合算して得られた故障推定箇所数から縮退故障、オープン故障、ショート故障、タイミング故障等想定する故障種別毎に分類し、かつ故障種別毎に規定された故障推定箇所数と照合することにより規定された故障推定数を超える新たな故障推定箇所に対しては削除し、同時に同状態で得られた組合せ回路入力端子の入力推定べクタも削除する手順とを含み、各組合せ回路の入力端子状態推定毎に得られる組合せ回路入力推定ベクタ数を削減するようにしたことを特徴とする請求項1記載の順序回路の故障箇所推定方法。 【請求項4】 請求項1の組合せ回路入力端子の状態推定により得られた推定べクタから組合せ回路入力端子を故障伝搬端子、正常端子、出力状態決定に関与しない端子に分類する手順に代えて、前記組合せ回路入力端子での複数の推定入力ベクタ全てを用いて各推定べクタ毎に組合せ回路入力端子の期待値と比較し故障伝搬入力端子を抽出する手順と、前記推定された組合せ回路入力端子の全ベクタを前記抽出された故障伝搬端子毎に分類する手順と、前記故障伝搬端子毎に分類された組合せ回路入力端子の全推定べクタを調べ分類された全ての推定べクタでー致している端子の状態を、(1)期待値とー致している状態を表わしかつその状態値、(2)期待値と異なっている状態を表わしかつその状態値、で夫々表わし、また分類された推定べクタの中に状態が期待値と一致しているべクタと−致していないべクタがある場合には、(3)故障が伝搬してきている可能性を表わしかつその状態値で表わし組合せ回路入力端子の推定ベクタ数を削減し、組合せ回路入力端子を故障伝搬端子、正常端子、出力状態決定に関与しない端子に分類する手順とを含むことを特徴とする請求項1記載の順序回路の故障箇所推定方法。 【請求項5】 請求項4の組合せ回路入力端子の状態推定により得られた推定ベクタから組合せ回路入力端子を故障伝搬端子、正常端子、出力状態決定に関与しない端子に分類する手順において、前記組合せ回路入力端子での複数の推定入力ベクタ全てを用いて各推定べクタ毎に組合せ回路入力端子の期待値と比較し故障伝搬入力端子を抽出する手順の後に、請求項1で得られた推定入力ベクタ全てを用い、請求項1で得られた故障伝搬入力端子毎に故障の出現頻度を計数する手順と、出現頻度の多い端子から順にその端子が故障であるべクタのみを抽出し、その抽出された全ての推定べクタから一致している端子の状態を、(1)期待値と−致している状態を表わしかつその状態値、(2)期待値と異なっている状態を表わしかつその状態値、で夫々表わし、また分類された推定べクタの中に状態が期待値と−致しているベクタと一致していないベクタがある場合には、(3)故障が伝搬してきている可能性を表わしかつその状態値で表し、組合せ回路入力端子の推定ベクタ数を削減し、組合せ回路入力端子を故障伝搬端子と正常端子、出力状態決定に関与しない端子に分類する手順と、この手順を請求項1で得られた推定入力ベクタ全てを網羅するまで繰り返す手順とを含み、各組合せ回路の入力端子状態推定毎に得られる組合せ回路入力推定べクタ数を削減するようにしたことを特徴とする請求項4記載の順序回路の故障箇所推定方法。 【請求項6】 前記組合せ回路入力端子を故障伝搬端子、正常端子、出力状態決定に関与しない端子に分類する手順において、請求項1で得られた推定入力ベクタ全てを用いて得られた故障伝搬入力端子毎に故障の出現頻度を計数する手順の後に、前記得られた出現頻度からある決まった閾値をもとに故障伝搬端子を抽出し、その抽出された複数の故障伝搬推定端子が全て故障であると推定されたべクタを抽出する手順と、前記抽出されたべクタからー致している端子の状態を、(1)期待値と−致している状態を表わしかつその状態値、(2)期待値と異なっている状態を表わしかつその状態値、で表わし、また分類された推定べクタの中に状態が期待値と−致しているべクタと−致していないべクタがある場合には、(3)故障が伝搬してきている可能性を表わしかつその状態値で表わし組合せ回路入力端子の推定ベクタ数を削減し、組合せ回路入力端子を故障伝搬端子、正常端子、出力状態決定に関与しない端子に分類する手順と、前記手順を請求項1で得られた推定入力ベクタ全てを網羅するまで繰り返す手順とを含み、各組合せ回路の入力端子状態推定毎に得られる組合せ回路入力推定べクタ数を削減するようにしたことを特徴とする請求項5記載の順序回路の故障箇所推定方法。 【請求項7】 前記組合せ回路入力端子を故障伝搬端子と正常端子、出力状態決定に関与しない端子に分類する手順において、請求項1で得られた推定入力ベクタ全てを用い、得られた故障伝搬入力端子毎に故障の出現頻度を計数する手順の後に、ある決まった端子数を閾値として前記得られた出現頻度を多い順に故障伝搬端子を抽出し、その抽出された複数の故障伝搬推定端子が全て故障であると推定されたべクタを抽出する手順と、前記抽出されたべクタからー致している端子の状態を、(1)期待値とー致している状態を表わしかつその状態値、(2)期待値と異なっている状態を表わしかつその状態値、で表わし、また分類された推定ベクタの中に状態が期待値とー致しているべクタとー致していないベクタがある場合には、(3)故障が伝搬してきている可能性を表わしかつその状態値で表わし組合せ回路入力端子の推定べクタ数を削減し、組合せ回路入力端子を故障伝搬端子、正常端子、出力状態決定に関与しない端子に分類する手順と、前記手順を請求項1で得られた推定入力ベクタ全てを網羅するまで繰り返す手順とを含み、各組合せ回路の入力端子状態推定毎に得られる組合せ回路入力推定ベクタ数を削減するようにしたことを特徴とする請求項5記載の順序回路の故障箇所推定方法。 【請求項8】 請求項6の出現頻度からある決まった閾値をもとに故障伝搬端子を抽出し、その抽出された複数の故障伝搬推定端子が全て故障であると推定されたべクタを抽出する手順と、ある決まった端子数を閾値として前記得られた出現頻度を多い順に故障伝搬端子を抽出し、その抽出された複数の故障伝搬推定端子が全て故障であると推定されたべクタを抽出する手順とを組合せ、故障伝搬推定端子毎の出現頻度がある決められた閾値以上の端子については請求項6の手順と同様の手順で推定べクタ抽出、推定べクタ削減を繰り返し、前記推定べクタの抽出により故障伝搬推定端子毎の出現頻度が前記閾値より小さくなった場合には、前記ある決まった端子数を閾値として前記得られた出現頻度を多い順に故障伝搬端子を抽出し、その抽出された複数の故障伝搬推定端子が全て故障であると推定されたべクタを抽出、削減し、全ての推定ベクタを網羅するまで繰り返す手順を含むことを特徴とする請求項請求項6記載の順序回路の故障箇所推定方法。 【請求項9】 請求項1の故障伝搬端子と正常端子、出力状態決定に関与しない端子に分類し、かつその時の状態を端子毎に求める手順において、請求項1で得られた組合せ回路入力端子での複数の推定入力ベクタ全てを用いブール代数の簡略化を行う手順の後に、さらに請求項4から8のいずれかの手順を含むことを特徴とする請求項4〜8いずれか記載の順序回路の故障箇所推定方法。 【請求項10】 請求項1の抽出された組合せ回路の出力状態を満たす故障推定箇所および推定入力ベクタを求める手順において組合せ回路が抽出される毎に、得られた組合せ回路入力端子に対して期待値を用い、予め組合せ回路内部の論理シミュレーシヨンを行い、組合せ回路内の各ノードの期待値を求める手順と、組合せ回路の出力部での推定故障出力並びに推定正常出力の状態値を用いて、(1)組合せ回路内に故障が存在しないと仮定する場合、(2)組合せ回路内に故障が存在すると仮定する場合、各々において出力端子から入力方向へと順次ノード毎に推定を行い、組合せ回路内の故障並びに入力端子状態を推定する際、推定値が得られる毎に前記得られた組合せ回路内部の各ノードの期待値との照合を行うことにより、(1)の場合は推定故障出力端子から得られた入力推定状態値までの故障伝搬経路を抽出し、(2)の場合は推定故障出力端子から得られた推定故障推定箇所並びに入力推定状態値までの推定故障伝搬経路を抽出する手順とを含み、論理和として得られる推定故障推定箇所並びに推定故障伝搬経路と、論理積として得られる推定故障推定箇所並びに推定故障伝搬経路とを管理する手順と、請求項1と同様簡略化を行う手順を繰り返し行った後、前記組合せ回路毎の推定で得られた全ての組合せ回路内推定故障箇所並びに全ての推定故障伝搬経路を同一時間単位に分類する手順と、前記得られた同一時間単位の推定故障箇所並びに推定故障伝搬経路を用いての場所的な一致を判定し全ての状態を満たす同一箇所を抽出する手順とを含むことを特徴とする請求1項記載の順序回路の故障箇所推定方法。 【請求項11】 請求項1の抽出された組合せ回路の出力状態を満たす故障推定箇所および推定入力ベクタを求める手順において組合せ回路が抽出される毎に、得られた組合せ回路入力端子に対して期待値を用い、予め組合せ回路内部の論理シミュレーシヨンを行い、組合せ回路内の各ノードの期待値を求める手順と、組合せ回路の出力部での推定故障出力並びに推定正常出力の状態値を用いて、(1)組合せ回路内に故障が存在しないと仮定する場合、(2)組合せ回路内に故障が存在すると仮定する場合、各々において出力端子から入力方向へと順次ノード毎に推定を行い、組合せ回路内の故障並びに入力端子状態を推定する際、0,1に固定される固定値と、1,0のどちらの状態でも良い状態Xとを用いて状態推定を行い簡略化も同時に行う手順と、前記得られた組合せ回路内部の各ノードの期待値との照合を行う時に固定値0,1は期待値との照合判定を、または推定故障伝搬経路としては扱わず、入力端子状態Xのみ故障伝搬許容端子として扱うことにより、(1)の場合は推定故障出力端子から得られた入力推定状態値までの推定故障伝搬経路を抽出し、(2)の場合は推定故障出力端子から得られた故障推定箇所並びに入力推定状態値までの推定故障伝搬経路を抽出する手順とを含み、論理和として得られる故障推定箇所並びに推定故障伝搬経路と論理積として得られる故障推定箇所並びに推定故障伝搬経路とを管理する手順と、請求項1と同様上記手順を繰り返し行った後、上記組合せ回路毎の推定で得られた全ての組合せ回路内推定故障箇所並びに全ての故障伝搬経路を同一時間単位に分類する手順と、前記組合せ回路毎の推定で得られた全ての組合せ回路内推定故障箇所並びに全ての推定故障伝搬経路を用いての場所的な一致を判定し全ての状態を満たす同一箇所抽出手順とを含むことを特徴とする請求項1記載の順序回路の故障箇所推定方法。 【請求項12】 請求項1の抽出された組合せ回路の出力状態を満たす故障推定箇所および推定入力ベクタを求め、さらに得られた推定入力ベクタを簡略化し推定入力ベクタを削減する手順の後で、得られた故障推定箇所の状態値と削減された入力推定べクタを用いて前記組合せ回路の論理シミュレーションを行い、組合せ回路内の各ノード状態を求める手順と、組合せ回路入力端子の正常な状態を用いかつ組合せ回路内に故障が存在しないと仮定した時の論理シミュレーションにより組合せ回路内各ノードの期待値を求める手順と、前記得られた推定された状態を元にした各ノード状態と、前記得られた期待値との照合により期待値と異なったノードを抽出し推定故障伝搬経路を抽出する手順とを含み、論理和として得られる故障推定箇所並びに推定故障伝搬経路と論理積として得られる故障推定箇所並びに推定故障伝搬経路を管理する手順と、請求項1と同様上記手順を繰り返し行った後、上記組合せ回路毎の推定で得られた全ての組合せ回路内推定故障箇所並びに全ての故障伝搬経路を同一時間単位に分類する手順と、前記同一時間毎に分類された推定故障箇所と推定故障伝搬経路とのー致照合を行い全ての状態を満たす同一箇所を抽出する手順とを含むことを特徴とする請求項1記載の順序回路の故障箇所推定方法。 【請求項13】 請求項10若しくは請求項11、請求項12において抽出された組合せ回路毎に組合せ回路内の推定故障箇所並びに組合せ回路入力端子での推定故障伝搬経路を求める手順の後で、上記組合せ回路毎の推定で得られた全ての組合せ回路内推定故障箇所並びに全ての故障伝搬経路を論理和として得られる故障推定箇所並びに推定故障伝搬経路を同一グループとして分類し、論理積として得られる故障推定箇所並びに推定故障伝搬経路を管理して、上記組合せ回路毎の推定で得られた全ての組合せ回路内推定故障箇所並びに全ての故障伝搬経路を重ねあわせることにより各回路のノード毎に推定結果の出現頻度をとり、頻度の大きいものから順に故障推定箇所の重み付けを行う手順を含むことを特徴とする請求項10,11,12いずれか記載の順序回路の故障箇所推定方法。 【請求項14】 請求項1において抽出された組合せ回路毎に組合せ回路内の推定故障箇所並びに組合せ回路入力端子での推定故障伝搬経路を求める手順の後で、組合せ回路毎に縮退故障、オープン故障、ショート故障等に分類され、得られた推定故障箇所と組合せ回路入力推定ベクタから請求項10若しくは請求項11の手順にて故障伝搬経路を求める手順と、前記組合せ回路毎の推定を繰り返して全ての組合せ回路内推定故障箇所並びに全ての故障伝搬経路を求めた後、論理和として得られる故障推定箇所並びに推定故障伝搬経路を同一同ーグループとして分類し、論理積として得られる故障推定箇所並びに推定故障伝搬経路を管理して、上記組合せ回路毎の推定で得られた全ての組合せ回路内推定故障箇所並びに全ての故障伝搬経路を重ねあわせることにより各回路のノード毎に推定結果の出現頻度をとり、頻度の大きいものから順に故障推定箇所の重み付けを行う手順とを含むことを特徴とする請求項10または11記載の順序回路の故障箇所推定方法。 【請求項15】 請求項13,14のいずれかにおいて、各組合せ回路毎の推定故障箇所並びに推定故障伝搬経路を全て求める手順の後に、縮退故障、オープン故障、シヨート故障、タイミング故障等の各々の想定に対する故障数で故障の分類を行う手順と、それぞれの想定故障毎に、分類され得られた推定故障箇所と前記得られた推定故障伝搬経路を用い、請求項13若しくは請求項14の手順でノード毎に推定結果の出現頻度をとる手順、前記得られた出現頻度から重み付けを行い故障の確からしさの優先順位をつける手順と、前記得られた優先順位のついた各ノードの故障推定状態値から(1)全て同一の故障状態値ならば縮退故障、(2)単一の故障箇所でかつそれぞれの故障推定状態値が異なる場合はオープン故障若しくは常に正常状態のノードとのショート故障、(3)推定故障箇所が2箇所存在し、状態推定値の−方が正常で他方が故障状態であり、両方の状態値が一致している場合はショート故障、(4)推定故障箇所がフリップフロッブ若しくは等価故障箇所にフリップフロップを含む場合で、その推定状態値が正常な状態を持つ場合と故障状態を持つ場合にはタイミング故障等の詳細分類を行う手順とを含むことを特徴とする請求項13または14記載の順序回路の故障箇所推定方法。 【請求項16】 請求項15の優先順位のついた各ノードの故障推定状態値から詳細分類を行う手順において、(4)のタイミング故障判定基準に加えて、故障と推定される状態を用いてフリップフロップ入力に接続されるネットから推定故障伝搬経路を求めることによりタイミング不良となるクリティカルパスを求める手順と、前記タイミング不良として抽出されるクリティカルパスが同一経路であるかどうかの一致判定する手順とを含むことを特徴とする請求項15記載の順序回路の故障箇所推定方法。 【請求項17】 請求項15の優先順位のついた各ノードの故障推定状態値から詳細分類を行う手順において、(4)のタイミング故障判定基準に加えて、故障と推定される状態での推定故障伝搬経路を求めることによりタイミング不良となるクリティカルパスを求める手順と、前記タイミング不良として抽出されるクリティカルパスに対して論理シミュレーションを行い、クリティカルパスの伝搬遅延時間を計算する手順と、前記得られたクリティカルパスの伝搬遅延時間にデバイス特性の振れ幅を持たせた遅延時間を計算する手順と、前記得られたタイミング故障前記得られた伝搬遅延時間以上の全てのクリティカルパスの伝搬が故障になっているかどうかを判定する手順とを含むことを特徴とする請求項15記載の順序回路の故障箇所推定方法。 【請求項18】 請求項1〜17のいずれかの全ての手順の後に、得られた推定故障箇所に対し、推定された故障状態を元に与えられたテストベクタ全てを用いて故障シミュレーシヨンを行い、推定した故障箇所並びに故障原因が全て適合するか判定する手順を含むことを特徴とする請求項1〜17いずれか記載の順序回路の故障箇所推定方法。 【請求項19】 請求項1〜18いずれかの全ての手順の各組合せ回路抽出、組合せ回路内の故障箇所推定並びに組合せ回路入力端子の状態値推定若しくは故障伝搬経路推定の手順の繰り返しにおいて、組合せ回路抽出、組合せ回路内推定の手順の後で、その時刻でのフリップフロップのクロック入力の期待値を調べ、その時刻でフリップフロツプの出力状態が更新されたか否かを判定する手順と、前記フリップフロップの更新判定結果をもとに、(1)更新されている場合は時間(テストベクタ)を溯り、推定された組合せ回路入力端子状態値を用いてさらに前段の組合せ回路抽出へと制御する手順と、(2)更新されていない場合はその時刻以前に最後に更新された時刻を求めてその最後の更新時刻まで得られた推定結果を保ちかつ同推定結果とAND状態にある推定結果が同推定結果と矛盾するときはその推定の時刻が後の推定結果を削除する手順(ここで推定時刻とはフリップフロップの場合最後に更新された時刻をいう)と、を含むことを特徴とする請求項1〜18いずれか記載の順序回路の故障箇所推定方法。 【請求項20】 予めスキャンパスが全回路の中に含まれるか否かを回路接続情報若しくはテストベクタから検索する手順と前記スキャンパス存在判定結果を元にスキャン経路自体の故障か否かを判定する手順として、(1)組合せ回路抽出時にクロックライン、スキャンパスラインを除いて組合せ回路抽出を行い、抽出された組合せ回路内経路追跡、故障推定を行う手順と、(2)組合せ回路抽出時にクロックライン、スキャンパスラインも含めて組合せ回路の抽出を行い、クロックライン、スキャンパスラインに対しても追跡、故障推定する手順と、(3)前記(1),(2)の両方の推定結果を比較してスキャンパス自体に故障が存在するか否かを判定する手順とを含み、不必要にクロックラインやスキャンパスライン追跡を行うことを回避するようにしたことを特徴とする請求項1〜19いずれか記載の順序回路の故障箇所推定方法。 【請求項21】 請求項1〜20いずれかの組合せ回路を抽出する手順において、組合せ回路入力端子としてROM,RAM等のメモリブロックの出力端子が抽出された場合には、(1)抽出されたメモリの出力端子がデータラインであるときには同一メモリブロックの全てのデータラインを網羅するように組合せ回路を1つ若しくは複数に分割して抽出する手順と、(2)抽出されたメモリの出力端子がデータラインでないときには、請求項1〜20いずれかの通常の組合せ回路抽出を行う手順と、前記(1)でメモリブロックのデータラインを抽出した組合せ回路で入力端子状態推定を行いデータラインの推定を行う手順と、前記得られたメモリプロックのデー多出力ラインの推定結果から同一時刻で当該メモリヘ供給されるアドレスラインの状態値が間違っているか否かを判定する手順と、前記判定結果から、(1)アドレスラインが正しいと推定できる場合には、そのアドレス書き込み時のビット不良と判定する手順と、(2)アドレスラインが間違っていると推定できる場合には、そのデータラインの推定結果から供給アドレスを推定する手順と、(3)前記(1),(2)の不良が共に存在し得ると判定されれば(1)の手順と(2)の手順両方を行う手順とを含むことを特徴とする請求項1〜20いずれか記載の順序回路の故障箇所推定方法。 【請求項22】 予め用意したLSI内の全フリップフロップの全ベクタに対する全期待値情報と、実際のテスタでのパス/フェイル出力情報と、全回路の接続情報とを用いてテスト結果で得られた各ベクタの各故障出力端子から順次組合せ回路を動的に抽出する手順と、この抽出された組合せ回路の出力状態値もしくは推定値から組合せ回路入力状態値を推定することによりLSI内の各フリップフロップの状態値を推定し、期待値との差より故障伝搬していると推定される端子、素子およびその状態値を抽出する手順と、こうして得られた故障伝搬推定端子からテストベクタを溯り、入力方向に組合せ回路を抽出するといったように順次上記操作を繰り返し行う手順と、すべてのテストベクタに対して同様の操作を行い抽出組合せ回路毎に故障伝搬推定素子およびその状態値を求める手順とを含む故障箇所推定における候補抽出及びその重み付け方法であって、前記各組合せ回路内の故障伝搬推定素子および状態値を用いて、回路接続情報を検索し出力端子までの故障伝搬経路として接続関係を再構成する手順と、故障伝搬推定経路上の各推定故障伝搬点の状態値を調べて、(1)常に同一の状態値を持つノードを推定故障候補点として選択する; (2)時刻により推定状態値が変化するノードを推定故障候補点として選択する; (3)同時に2箇所の故障推定箇所を必須とするノードを推定故障候補点として選択する;手順を備え、前記選択された各推定故障候補点毎に到達するLSIの故障出力端子数を頻度として計数する手順と、前記計数した頻度数の大きい順に故障候補点の出現順位を並べ替え、重み付けを行う手順とを備えたことを特徴とする故障モード毎に故障推定箇所の重み付けを行う方法。 【請求項23】 前記選択された各推定故障候補点毎に到達するLSIの故障出力端子数を頻度として計数する手順の代わりに、選択された各推定故障候補点とLSIの故障出力端子との間に存在する経路数を頻度として計数する手順を含み、この計数した頻度数の大きい順に故障候補点の出現順位を並べ替え、重み付けを行う手順を備えた請求項22記載の故障推定箇所の重み付けを行う方法。 【請求項24】 前記得られた各組合せ回路内の故障伝搬推定素子および状態値を用いて、回路接続情報を検索し出力端子までの故障伝搬経路として接続関係を再構成する手順の後、経路の分岐点−結合点間を1経路として経路細分化し、細分化された経路同士の関係を調べ、短絡故障の仮定をおくか否かを、(1)同一時刻での期待値が異なりかつ異なる細分化経路上の2点間に短絡故障候補として選択する; (2)2経路に分岐しまた1経路に結合するような経路上の各故障候補点に対して異なる細分化経路上の任意の2点間に短絡故障候補として選択する; (3)3以上複数の経路に同時に分岐し、1つの経路に結合するような各故障伝搬推定経路上の候補点には短絡故障として選択しない;という故障伝搬経路毎に故障伝搬が成立する条件を求める計算手順を有し、前記推定された故障箇所数毎に故障モードを大きく分類する手順と、前記仮定した2点間の短絡故障箇所に対して全ベクタの推定状態値および故障状態推定値が常に一致しているかを調べ、故障モードを詳細に再計算する手順と、前記計数した故障出力端子頻度数の大きい順に故障候補点の出現順位を並べ替え、重み付けを行う手順をと備えた請求項22記載の故障推定箇所の重み付けを行う方法。 【請求項25】 前記得られた各組合せ回路内の故障伝搬推定素子および状態値を用いて、回路接続情報を検索し出力端子までの故障伝搬経路として接続関係を再構成する手順の後、経路の分岐点−結合点間を1経路として経路細分化し、細分化された経路同士の関係を調べ、短絡故障の仮定をおくか否かを、(1)同一時刻での期待値が異なりかつ異なる細分化経路上の2点間に短絡故障候補として選択する; (2)2経路に分岐しまた1経路に結合するような経路上の各故障候補点に対し、異なる細分化経路上の任意の2点間に短絡故障候補として選択する; (3)3以上複数の経路に同時に分岐し、1つの経路に結合するような各故障伝搬推定経路上の候補点には短絡故障として選択しない;という故障伝搬経路毎に故障伝搬が成立する条件を求める計算手順を持ち、前記推定された故障箇所数毎に故障モードを大きく分類する手順と、前記仮定した2点間の短絡故障箇所に対して全ベクタの推定状態値および故障状態推定値が常に一致しているかを調べ、故障モードを詳細に再計算する手順と、前記計数した故障伝搬経路頻度数の大きい順に故障候補点の出現順位を並べ替え、重み付けを行う手順とを備えた請求項24記載の故障推定箇所の重み付けを行う方法。 【請求項26】 経路の分岐点−結合点間を1経路として経路細分化し、細分化された経路同士の関係を調べ、短絡故障の仮定をおくか否かを判定する3種の条件から故障伝搬経路毎に故障伝搬が成立する条件を求める計算手順を持ち、前記推定された故障箇所数毎に故障モードを大きく分類する手順と、前記仮定した2点間の短絡故障箇所に対して故障推定を行うのに要した全ベクタの推定状態値および故障状態推定値が常に一致しているかを調べ、故障モードを詳細に再計算する手順と、前記計数した故障出力端子頻度数もしくは故障伝搬経路頻度数の大きい順に故障候補点の出現順位を並べ替え、重み付けを行う手順と、前記重み付けを行った頻度分布を調べ、ある設定した閾値と比較し、(1)閾値に満たない場合には、新たなベクタの故障出力端子からの組合せ回路抽出手順に戻る; (2)閾値以上の場合には、推定精度が得られたとし故障推定を終了する;頻度判定による故障推定終了判定手順とを備えた請求項24または25記載の故障推定箇所の重み付けを行う方法。 【請求項27】 前記推定された故障箇所数毎に故障モードを大きく分類する手順の後、全ベクタで故障候補毎に故障出力端子数頻度計算を行う手順と、全ベクタで同一推定故障伝搬経路上での2点間に対しても故障モードの検査、度再計算を行い、ブリッジ故障を詳細に判定する手順と、前記計数した故障出力端子数の大きい順に故障候補点の出現順位を並べ替え、重み付けを行う手順とを備えた請求項24記載の故障推定箇所の重み付けを行う方法。 【請求項28】 前記推定された故障箇所数毎に故障モードを大きく分類する手順の後、全ベクタで故障候補毎に故障出力端子数頻度計算を行う手順と、全ベクタで同一推定故障伝搬経路上での2点間に対しても故障モードの検査、頻度再計算を行い、ブリッジ故障を詳細に判定する手順と、前記計数した故障伝搬経路数の大きい順に故障候補点の出現順位を並べ替え、重み付けを行う手順とを備えた請求項24記載の故障推定箇所の重み付けを行う方法。 【請求項29】 前記推定された故障箇所数毎に故障モードを大きく分類する手順と、故障推定を行うのに要した全ベクタで故障候補毎に故障出力端子数もしくは故障伝搬経路数で頻度計算を行う手順と、故障推定を行うのに要した全ベクタで同一推定故障伝搬経路上での2点間に対しても故障モードの検査、頻度再計算を行い、ブリッジ故障を詳細に判定する手順と、前記計数した故障出力端子数もしくは故障伝搬経路数の大きい順に故障候補点の出現順位を並べ替え、重み付けを行う手順と、前記重み付けを行った頻度分布を調べてある設定した閾値と比較し、(1)閾値に満たない場合には、新たなベクタの故障出力端子からの組合せ回路抽出手順に戻る; (2)閾値以上の場合には、推定精度が得られたとし故障推定を終了する;頻度判定による故障推定終了判定手順とを備えた請求項27または28記載の故障推定箇所の重み付けを行う方法を備えた故障モード毎に故障推定箇所の重み付けを行う方法。 【請求項30】 推定の対象となるLSIのネットリストを記憶し、また部分回路に分割されたネットリストも併せて登録を可能とし、検索、削除要求に対して処理を行い、ネットリストの一元管理を行うネットリスト管理部と、入出力端子およびフリップフロップの期待値を管理する入出力端子/フリップフロップ期待値管理部と、推定値、実測値を記憶している推定値/実測値管理部と、各故障箇所推定機能から得られた故障候補点、推定故障状態値ならびに故障モード等推定結果を記憶する故障候補管理部と、故障出力端子もしくは故障推定出力端子から組合せ回路をダイナミックに抽出する組合せ回路抽出部と、組合せ回路内部の状態値を推定する組合せ回路状態推定部と、前記組合せ回路内部の状態推定結果から推定故障伝搬経路を抽出する故障伝搬経路抽出部と、この得られた組合せ回路入力端子の故障伝搬端子および状態値を用いて故障伝搬経路選択する経路選択部と、この得られた故障伝搬経路の再構成を行って故障箇所から故障出力端子までの関連付けを行う故障伝搬経路再構成部とこの得られた故障候補毎の推定状態を全ベクタに対して調査して状態値が一定であるか変化しているかを判定する推定状態値判定部と、前記状態値判定で得られた結果をもとに故障箇所数を加味し故障モード分類を行う故障モード分類部と、個々の故障候補点に対する故障出力端子数もしくは故障伝搬経路数頻度を計数して各故障モード毎に重み付けを行う頻度重み付け部と、前記各故障推定機能の処理順位の制御や各故障推定機能間の待ち合わせ制御等の全体の推定シーケンスを制御するシーケンス制御部とを含むことを特徴とする故障モード毎に故障推定箇所の重み付けを行う装置。 【請求項31】 前記ネットリスト管理部、入出力端子、フリップフロップ期待値管理部、推定値/実測値管理部、故障候補管理部をネットワーク上のサーバとして備え、前記組合せ回路状態推定部、故障伝搬経路抽出部、故障伝搬経路抽出部、経路選択部、故障伝搬経路再構成部、推定状態値判定部、故障モード分類部、頻度重み付け部、ならびに全推定シーケンスを制御するシーケンス制御部のクライアントからの登録、検索、削除、追加、修正等要求に対し、処理を行い処理完了通知をクライアントに返す構成からなる請求項30記載の故障推定箇所の重み付けを行う装置。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は順序回路の故障箇所推定方法及び故障箇所推定における候補抽出並びにその重み付け方法更にはその装置に関し、特にLSIの故障診断をなすための順序回路の故障箇所推定方法及び故障箇所推定における候補抽出並びにその重み付け方法更にはその装置に関するものである。 【0002】 【従来の技術】従来順序回路の故障診断手法としては、故障辞書を予め作成して実際のフェイル結果と照合して故障箇所を絞り込む方法やスキャンパスによりフリップフロップの状態設定/読み出しを行って故障個所を推定する方法がある。 【0003】故障辞書を用いる方法では、特開平3−120485号公報等に示される様に、実際のテストベクタを用いてLSI内部に故障を挿入したシミュレーションを行い、仮定した故障位置とその時にフェイルする出力ピンの情報を対応させた故障辞書なるデータファイルを予め作成し、実際にフェイルした出力ピンの故障状態から逆に故障辞書を索引し故障箇所の候補点を求め、かつ複数得られた候補点に対しては全ベクタのフェイル出力から得られた故障推定箇所用い最も可能性が高いと思われるものから順に優先順位を付けて故障箇所を推定するものである。 【0004】スキャンパスを用いる方法では、特開平6−194416号公報等に示される様に、予め回路内に状態の読み出し/書き込みを行うことができるチェック用回路を準備しておく必要があり、このチェック用の試験用回路を用いフリップフロップの状態設定を行い、その状態の基での回路動作後同様に試験用回路を用いてフリップフロップ等の状態を読み出す。その読み出された状態と期待値とを比較し前からの伝搬か否かを判定し順次故障個所の絞り込みを行っていく手法である。 【0005】また、本願発明出願人により提案された特開平8−146093号公報や特開平8−94714号公報の順序回路の故障箇所推定手法では、本発明と同様に故障の伝搬していると想定される組合せ回路を順次抽出し、組合せ回路内の故障伝搬を想定し出力状態を満たす入力状態値を求めることにより、組合せ回路入力端子状態推定のみ行っていく手法である。 【0006】 【発明が解決しようとする課題】上述した従来の故障辞書を用いる故障診断手法は実際の故障出力に合致する事象を故障辞書から検索し故障個所を絞り込む方法であるが、この方法の第1の問題点は故障シミュレーションにより故障出力に対する故障辞書を用意する必要があり、故障辞書を作成するための演算時間が大きくなることである。その理由は予想される全てのノードに対して故障仮定をするため、故障シミュレーションが増大し、また故障仮定箇所と故障出力端子との検索辞書作成にも時間がかかるためである。この辞書作成に要する演算時間の増大は、LSIの大規模化に伴い顕著になる。 【0007】第2の問題点は、故障シミュレーションで扱う故障モデルは単一縮退故障が一般的であるため、ショート故障等の多重故障では実際の故障と一致しない場合があることである。その理由は故障シミュレーションを多重故障に拡張すると、複数の組合せで故障仮定を行う必要があり、2重故障を仮定してもその組合せ数が爆発的に増大し、故障シミュレーションの処理時間の点で現実的ではないからである。 【0008】スキャンパスを用いる方法についてみれば、この方法の第1の問題点は内部状態の設定/読み出しを可能にする検査回路を持つフリップフロップ即ちスキャンパスを回路設計時に組み込む必要があり、スキャンパスを用いていないLSIについては適用できないことである。 【0009】また第2の問題点はパーシャルスキャンの場合には組合せ回路としての故障推定手法ではなく、順序回路としての故障推定手法が必要となることである。その理由はパーシャルスキャンの場合、スキャン用フリップフロップ間の回路が必ずしも組合せ回路にならないためである。またその時に用いる故障推定手法が故障辞書法であると前述の問題がある。 【0010】また、特開平8−146093号公報や特開平8−94714号公報等の順序回路の故障箇所推定手法での問題点は、単一縮退故障を想定して出現頻度で重み付けを行っているため、推定精度を下げてしまうことがあった。その理由はopen(解放)故障、short (短絡)故障時状態が時刻により変化する場合や、固定故障の場合でも、出力端子近くのノードの重みが高くなるからである。 【0011】更に、組合わせ回路入力端子の故障伝搬状態推定値でも推定で得られた全てのベクタを推定値テーブルに登録して順次組合わせ回路を溯るため、その抽出される組合わせ回路が非常に多くなり、推定するLSI規模が大きくなると計算時間が非常に大きくなるという欠点がある。 【0012】本発明の目的は、LSI内部の故障を実際のテスタパス/フェイル情報と回路接続情報及びLSI内部の全フリップフロップの全テストベクタに対する期待値情報とを用いて、推定処理可能とした順序回路の故障推定方法を提供することである。 【0013】本発明の他の目的は、LSIの故障箇所推定において、単一縮退故障の故障推定候補の精度向上を図る方法およびその装置を提供することである。 【0014】本発明の更に他の目的は、LSIの故障箇所推定において、open故障の故障推定候補の精度向上を図る方法およびその装置を提供することである。 【0015】本発明の別の目的は、LSIの故障箇所推定において、short 故障等2重故障の故障推定候補の精度向上を図る方法およびその装置を提供することである。 【0016】 【課題を解決するための手段】本発明の順序回路の故障診断手法は、予め用意したLSI内の全フリップフロップの全ベクタに対する全期待値情報と実際のテスタでのパス/フェイル出力情報,全回路の接続情報を用いて、フリップフロップと組合せ回路に分割して故障推定することを基本とし、フェイルベクタ毎に組合せ回路の入力境界での故障伝搬推定値を求めるシーケンスとして、実際のフェイル出力ピンもしくはフェイルと推定されるフリップフロップ入力線を含んだ組合せ回路を抽出する手順と、前記組合せ回路入力端子での故障伝搬値推定では組合せ回路内に故障が存在することを想定し、故障が存在すると仮定できる場合にはその推定故障箇所並びに組合せ回路入力端子の推定状態値もしくは推定故障伝搬経路を求め、故障が存在しないと仮定できる場合には組合せ回路入力端子の推定状態値もしくは推定故障伝搬経路のみを求め、更に組合せ回路内に故障が存在しなければならない場合にはその推定故障箇所のみを求める手順と、また得られた推定故障箇所のうち、故障の種類毎に想定できる故障箇所数を決めその故障箇所数をもとに得られた推定状態を削減する手順と、前記削減し得られた組合せ回路入力端子の推定状態値から故障伝搬端子を抽出し、ブール代数の簡略化や故障伝搬経路を有効にまとめるいくつかの経路選択手順と、上記手順を繰り返し行い、全てのベクタでの推定を行った後、前記得られた全ての推定故障箇所並びに推定故障伝搬経路を用い、時刻毎に分類し全ての時刻で場所的な一致を判定する手順もしくは推定故障箇所,推定故障伝搬経路として得られたノードの頻度をとり、優先順位付けを行う手順と、前記得られた優先順位を付けられた故障推定箇所に対し、個々の推定結果を調べ、故障の種類毎に分類する手順と、更に推定精度を上げるために前記得られた推定故障箇所とその種類,状態値をもとに再度全ベクタに対し故障シミュレーションを行い、一致判定を行う手順とを備えることを特徴とする。 【0017】また、実際のLSIでの故障推定適用時に、上記手順に加えフリップフロップのクロックラインについて各ベクタ毎に期待値を調べ、その時刻にクロックが入りデータ更新されたか否かを判定し、更新された場合には上記手順により順次前段の出力端子へと推定状態値を伝搬させ、データ更新が行われない場合にはデータ更新がそれ以前で最後に更新された時刻まで保持する手順と、クロックライン,スキャンパスラインに故障が含まれているか否かを判定し、含まれない場合にはフリップフロップの通常のデータラインのみ組合せ回路として抽出し推定を行い、含まれる場合にはクロックライン,スキャンパスラインについても推定し、データラインの推定と併せて全体の故障箇所推定を行う手順と、組合せ回路入力端子としてLSIの入力端子,フリップフロップ出力だけでなくROM,RAMの出力端子も想定し、ROM,RAMの場合は書込みビット故障伝搬,供給アドレス故障伝搬を想定し判定を行い、夫々ROM,RAMの入力端子から前段へと溯る手順とを備え、最終的な故障推定リストを作成することを特徴とする。 【0018】本発明による順序回路の故障箇所推定における候補抽出並びにその重み付け方法は、予め用意したLSI内の全フリップフロップの全ベクタに対する全期待値情報と、実際のテスタでのパス/フェイル出力情報と、全回路の接続情報とを用いてテスト結果で得られた各ベクタの各故障出力端子から順次組合せ回路を動的に抽出する手順と、この抽出された組合せ回路の出力状態値もしくは推定値から組合せ回路入力状態値を推定することによりLSI内の各フリップフロップの状態値を推定し、期待値との差より故障伝搬していると推定される端子、素子およびその状態値を抽出する手順と、こうして得られた故障伝搬推定端子からテストベクタを溯り、入力方向に組合せ回路を抽出するといったように順次上記操作を繰り返し行う手順と、すべてのテストベクタに対して同様の操作を行い抽出組合せ回路毎に故障伝搬推定素子およびその状態値を求める手順とを含む故障箇所推定における候補抽出及びその重み付け方法であって、前記各組合せ回路内の故障伝搬推定素子および状態値を用いて、回路接続情報を検索し出力端子までの故障伝搬経路として接続関係を再構成する手順と、故障伝搬推定経路上の各推定故障伝搬点の状態値を調べて、(1)常に同一の状態値を持つノードを推定故障候補点として選択する; (2)時刻により推定状態値が変化するノードを推定故障候補点として選択する; (3)同時に2箇所の故障推定箇所を必須とするノードを推定故障候補点として選択する;手順を備え、前記選択された各推定故障候補点毎に到達するLSIの故障出力端子数を頻度として計数する手順と、前記計数した頻度数の大きい順に故障候補点の出現順位を並べ替え、重み付けを行う手順とを備えたことを特徴とする。 【0019】また、本発明による順序回路の故障箇所推定における候補抽出並びにその重み付け装置は、推定の対象となるLSIのネットリストを記憶し、また部分回路に分割されたネットリストも併せて登録を可能とし、検索、削除要求に対して処理を行い、ネットリストの一元管理を行うネットリスト管理部と、入出力端子およびフリップフロップの期待値を管理する入出力端子/フリップフロップ期待値管理部と、推定値、実測値を記憶している推定値/実測値管理部と、各故障箇所推定機能から得られた故障候補点、推定故障状態値ならびに故障モード等推定結果を記憶する故障候補管理部と、故障出力端子もしくは故障推定出力端子から組合せ回路をダイナミックに抽出する組合せ回路抽出部と組合せ回路内部の状態値を推定する組合せ回路状態推定部と、前記組合せ回路内部の状態推定結果から推定故障伝搬経路を抽出する故障伝搬経路抽出部と、この得られた組合せ回路入力端子の故障伝搬端子および状態値を用いて故障伝搬経路選択する経路選択部と、この得られた故障伝搬経路の再構成を行って故障箇所から故障出力端子までの関連付けを行う故障伝搬経路再構成部とこの得られた故障候補毎の推定状態を全ベクタに対して調査して状態値が一定であるか変化しているかを判定する推定状態値判定部と、前記状態値判定で得られた結果をもとに故障箇所数を加味し故障モード分類を行う故障モード分類部と、個々の故障候補点に対する故障出力端子数もしくは故障伝搬経路数頻度を計数して各故障モード毎に重み付けを行う頻度重み付け部と、前記各故障推定機能の処理順位の制御や各故障推定機能間の待ち合わせ制御等の全体の推定シーケンスを制御するシーケンス制御部とを含むことを特徴とする。 【0020】本発明の作用を述べる。上記故障推定手順は検出された各フェイルベクタに対して分割した組合せ回路毎に内部を想定して故障推定箇所並びに故障伝搬値推定を行い、その故障伝搬推定値を更に前段の組合せ回路の出力と見なし入力部の故障伝搬推定を行う。この様に順次LSIの出力側から組合せ回路を抽出し、その組合せ回路毎に独立に推定を行い、全てのフェイルに対して組合せ回路の入力境界での故障伝搬値を推定していくため、故障状態が複数の組合せ回路を伝搬し、伝搬故障箇所の存在する組合せ回路にフィードバックされても推定誤りを起こすことなく、状態推定を行うことができる。 【0021】また組合せ回路入力端子状態推定後、効率的に故障伝搬経路を選択できるため、従来の様に全ての故障伝搬推定状態毎に推定を繰り返すことがなくなり、故障推定の演算量が大幅に減少でき、時間も大幅に短縮できるという効果がある。それと同時に大規模回路に対しても実時間の処理が可能となる。また、ショート故障等の多重故障やタイミング故障に対してもその故障の種類毎に想定を行い、推定するため推定誤りを起こしにくい。 【0022】上記手順をフリップフロップのクロックライン,スキャンパスライン,メモリブロックの推定手法を加えることにより、実際の大規模なLSIに対する故障推定が可能となり、かつ効率良く行うことができる。 【0023】単一故障,open故障、short 故障どの場合でも各組合せ回路内の故障伝搬推定素子から出力端子までの故障伝搬経路としての接続関係を再構成する手順を持っているため、効率的に故障候補点を選択することができる。なぜなら、LSIの故障出力端子から組合せ回路毎に故障伝搬経路を順次推定し入力方向へと溯っているため、実際の故障は必ず推定された伝搬経路上にあるからである。 【0024】逆に故障伝搬経路として抽出されない素子には故障が存在しえないからである。これは単一故障、open故障に限らず、short 故障も同様であり、実際にshort故障している部分からLSI故障出力端子までの経路は、同時に複数の経路を故障伝搬していることを想定しているため、推定された故障伝搬経路の中には真の故障伝搬経路が含まれるからである。 【0025】ここでの推定伝搬経路とは、組合せ回路出力端子から組合せ回路入力端子に到達しているものと到達せずに組合せ回路内で止まった伝搬経路の2種類があり、その両方を指す。この伝搬経路上のノードを故障候補とする方法の故障候補数は、LSI自体の論理深度すなわちLSI出力端子から入力端子までの伝搬素子数に依存し、故障候補数が直接LSI全体の規模に依存するわけではないため、大規模化に対しても演算が爆発的に増えることを抑制できる長所がある。 【0026】また、故障の単一故障、open故障、short 故障を問わず各推定故障候補点とLSIの故障出力端子との間に存在する経路数もしくは到達するLSIの故障出力端子数を頻度として計数し、その頻度により重み付けを行う手順を持っているため、故障候補点の重み付け精度が従来に比較し向上する。なぜなら、経路数もしくは到達するLSIの故障出力端子を計数するため、LSI出力端子からの論理深度が深くても、より多くの故障伝搬経路もしくは故障出力端子を満たすノードが頻度の大きいノードとして抽出され、LSI出力端子に近い伝搬経路上のノードよりも高くなる可能性が大きいからである。 【0027】 【発明の実施の形態】次に、本発明の実施例について図面を参照して詳細に説明する。図1は本発明の一実施例を示すフローチャートである。本発明の順序回路の故障診断手法は、予め用意したLSI内の全フリップフロップの全ベクタに対する全期待値情報と実際のテスタでのパス/フェイル出力情報,全回路の接続情報を用い、かつフリップフロップと組合せ回路とに分割して故障推定することを基本としている。 【0028】ここで、LSI全体の回路構成を考えると、フリップフロップやメモリ等の一時的にデータを蓄えるラッチ機能を有する回路を含む順序回路であるが、フリップフロップやメモリ等のデータを記憶する素子を含まない回路部分を組合せ回路と、通常定義している。順序回路はフリップフロップ等を含むものであり、与える入力状態は同じでも、クロックの与え方で出力状態は異なる。組合せ回路はフリップフロップ等を含まないので、与える入力状態が決まれば一意に出力状態が決まるものである。 【0029】先ず組合せ回路抽出の手順1では、LSIの故障出力もしくは既に故障であると推定された出力端子から入力方向へと回路トレース(もしくは回路抽出)を行い、LSIの入力端子もしくはフリップフロップの出力端子に到達したら、回路トレース(もしくは回路抽出)を終了する。次のその時得られたLSIの入力端子もしくはフリップフロップの出力端子を用いて出力方向へ回路トレース(もしくは回路抽出)を行い、LSIの出力端子もしくはフリップフロップの入力端子を得る。更にこの得られた出力端子もしくはフリップフロップの入力端子から入力方向にLSIの入力端子もしくはフリップフロップの出力端子に到達するまで回路抽出を行い、組合せ回路を得る。 【0030】ここで回路トレースとは回路を抽出せずに、接続関係を追跡することのみを表しており、回路抽出とは回路トレースを行いながら追跡された部分を抜き出して、部分回路とすることを表している。従って上記の回路トレース及び回路抽出はLSIの入出力端子もしくはフリップフロップの入出力端子に到達するまで、トレース(もしくは抽出)を行う。 【0031】これにより得られた組合せ回路の状態推定は組合せ回路入力端子状態推定#1〜#3(手順2〜4)があり、夫々求める条件が異なる。組合せ回路入力端子状態推定#1(手順2)は図2(a)に示す様に組合せ回路100内に故障が存在せず、故障信号が前段の組合せ回路から伝搬していると仮定した時の入力端子推定手順である。尚、101は入力ラッチ、102は出力ラッチである。 【0032】組合せ回路入力端子状態推定#2,#3(手順3,4)は、組合せ回路内に故障が存在すると仮定した場合で、更にその故障推定数により2つに別れる。1つは組合せ回路入力端子状態推定#2であり、図2(b)に示す様に組合せ回路内に故障が1箇所存在すると仮定した場合の推定故障箇所並びに組合せ回路入力状態推定値を求める手順である。もう1つは組合せ回路入力端子状態推定#3(手順4)であり、図2(c)に示す様に組合せ回路内に故障が2箇所存在すると仮定した時の推定故障箇所並びに組合せ回路入力端子状態推定値を求める手順である。 【0033】手順2,手順3,手順4は探索木やBDD(Binary Dicision Diagram) ,Transitive Closure Algorithm等の組合せ回路出力状態を満たす入力状態値を求める手順である。探索木を例にとれば、仮定と含意操作を繰り返すことにより出力状態値から入力の状態値を求める。すなわち、故障出力端子から開始しゲートの入出力端子毎にその故障状態値を満たす様な状態を仮定し、その仮定に基づいて関連するゲートやパスの状態値を決定するという操作を繰り返し、全体として矛盾が起こらない様に状態値を順次入力方向へと決定していき、組合せ回路入力状態を求める。 【0034】手順2,3,4夫々で求める条件の違いは図2(a)〜(c)に示している。手順2では、仮定と含意操作を繰り返す段階で全ての経路が矛盾なく仮定がおけて組合せ回路入力端子に到達できる場合のみを抽出し組合せ回路内故障伝搬経路を求め、1つの経路でも矛盾を生じて仮定がおけず入力端子まで到達できない状態値は破棄する。 【0035】手順3では、仮定をおく段階で矛盾を生じて仮定がおけず入力端子まで到達できない経路が1つのみの場合を抽出し、その組合せ回路内故障伝搬経路と仮定がおけなくなった経路(図2(b)の×から他の経路に合流するまで)を求める。他の場合は破棄する。手順4では、仮定をおく段階で矛盾が生じて仮定がおけず入力端子まで到達できない経路が2つのみの場合を抽出し、その組合せ回路内故障伝搬経路と仮定がおけなくなった2つの経路(図2(c)の×から他の経路に合流するまで)を求める。他の場合は破棄する。 【0036】上記手順2,3,4夫々は、結果として経路が1つも求まらなかった場合、手順7の全故障候補点抽出判定に移行する。従ってより分かりやすく書くと図3に示すようなフローになる。この場合手順2〜4で求まった全ての経路に対して手順6の新規故障候補点登録を行い、経路が求まらなかった場合は新規故障候補点登録もできず、そのまま後述する手順7の全故障候補点抽出判定に移行することになる。 【0037】経路が求まれば組合せ回路の入力側から故障が伝搬してきているため、全候補点抽出は完了していないと判断でき、後述する手順8の組合せ回路入力推定ベクタ簡略化の手順を行い、フリップフロップを介して接続されている更に前段の組合せ回路抽出を行う(start)。また、経路が求まらなかった場合その経路の追跡は終わるが、まだLSIの故障出力全てに対して推定が完了していなければ、完了していないLSI故障出力端子から新たに組合せ回路抽出を行う。 【0038】組合せ回路入力端子状態推定#1〜#3の各手順2〜4において特殊な例としては、組合せ回路入力端子状態推定値が得られず、1箇所ないしは2箇所の故障推定箇所のみ得られる場合がある。この場合は組合せ回路出力端子状態を満たす入力状態があり得ず、前段の組合せ回路から故障が伝搬してきていないことを表している。 【0039】組合せ回路入力端子状態推定#1で得られた入力推定ベクタを用いて簡略化の手順5でブール代数の簡略化を行い、推定ベクタ数を削減する。この簡略化の手順は図4に示す様に、先ず組合せ回路出力を満たす入力状態推定値を調べることにより、その端子の状態値が0でも1でもどちらでもいい値、すなわち組合せ回路出力での故障に直接関与しない端子及び状態値を抽出している。 【0040】図4中破線で囲まれた各ベクタは、破線で囲まれた端子を除き状態値は一致している。この様に値の異なる端子を抽出し、1端子であれば0/1,2端子であれば、00/01/10/11の4つの全ての状態値を含んでいる場合にはそれらの端子状態値を“X”に置き換える。図3では破線で囲まれた部分が簡略化で“X”になる部分であり、各々4つの入力推定ベクタが1つの“X”を含んだベクタにまとめられていることを表している。 【0041】更に詳述すると、図4中の右の4つのベクタ(0100101001,0100100001,0100101101,0100100101) は、破線で囲まれた端子を除き状態値は一致している。この様に値の異なる端子を抽出し、1端子であれば0/1,2端子であれば、00/01/10/11の4つの全ての状態値を含んでいる場合にはそれらの端子状態値を“X”に置き換える。従って、この4つのベクタの場合簡略化を行うと、(010010XX01)となる。 【0042】同様に左の4つのベクタ(0100100001,0100100000,0100100010,0100100011) の場合も簡略化により01001000XXとなる。図4では破線で囲まれた部分が簡略化で“X”になる部分であり、各々4つの入力推定ベクタが1つの“X”を含んだベクタにまとめられていることを表している。 【0043】簡略化の手順は図4に示す様に、先ず組合せ回路出力を満たす入力状態推定値を調べることにより、その端子の状態値が0でも1でもどちらでもいい値、すなわち組合せ回路出力での故障に直接関与しない端子及び状態値を抽出している。“X”に置き換えたところがその部分であり、他の共通なところは状態が0もしくは1に決定されていることを示している。この簡略化操作で入力推定ベクタ数は大幅に削減できる。また、組合せ回路入力端子推定#2,#3で得られた故障推定箇所を新規抽出故障候補点登録の手順6で登録する。手順7では前記故障候補点抽出が全てのベクタに対して行われたかどうかを判定し、かつ前記特殊な例としてあげた様にそれ以上前段からの推定故障伝搬入力端子が得られず、かつ全てのテストベクタに対して手順1〜6,8の推定が完了していれば手順9の故障候補点場所一致判定に移行する。 【0044】もし、前段からの推定故障伝搬入力端子が得られないが、全てのテストベクタに対しての推定が完了していなければ、推定の行われていないテストベクタに対して手順1からの操作を繰り返す。 【0045】前段からの推定故障伝搬端子が得られた場合には、手順8の組合せ回路入力推定入力ベクタ簡略化の手順で当該推定入力ベクタを削減し、前段からの故障伝搬端子を抽出して、更に手順1の組合せ回路抽出手順で前段の組合せ回路へと溯る。手順7で故障候補点抽出が完了した場合には、手順9の故障候補点場所一致判定で手順6で得られた全ての推定故障候補の場所的な一致判定を行う。この一致判定は、手順6で登録された故障候補点リストの中に何回か出現しているかどうかを場所毎(ゲート毎またはパス毎)に比較検出する操作を行う。 【0046】手順10の重み付けと抽出により、故障候補点毎にその出現頻度を求めその重み付けを行い、その重みの大きい順に抽出を行うことにより故障推定リストを作成する。この手順10では、手順9で比較検出された同一箇所の出現頻度をとり、出現頻度の大きいものから順にソートする。すなわち、各組合せ回路毎の推定において抽出された推定故障伝搬経路並びに推定故障箇所の中で、真の故障もしくは伝搬経路はその出現頻度が多くなることを用いている。なぜなら、単一の縮退故障,オープン故障,short 故障を想定した場合、どの故障出力の推定結果の中にも真の故障はその中の1結果として必ず含まれるだろうからである。 【0047】組合せ回路入力端子状態推定ベクタ#1〜#3の各手順2〜4で、組合せ回路入力端子状態推定を行い、最終的に故障推定箇所抽出を行う手順の代わりに、各組合せ回路内での故障推定箇所並びに故障伝搬経路を推定する手段として、図5〜図7の各フローに従って行うことも可能である。 【0048】図5は組合せ回路内に故障が存在しないと仮定した場合の故障伝搬経路並びに組合せ回路入力端子状態推定を行う手順を示したフローである。組合せ回路全出力状態を用い(手順11)、ノード状態推定手順12によりゲート毎に状態推定を行う。手順11では、組合せ回路の全出力端子に対して状態値を設定する。故障出力もしくは故障が伝搬していると推定された端子に対してはその故障状態値を設定し、正常端子もしくは正常な状態が伝搬してきていると推定された端子には期待値を設定する。また、故障状態が伝搬してきているか正常な値が伝搬してきているか不明な端子(すなわちLSI出力端子への故障伝搬に直接寄与していない“0”,“1”どちらでもいい端子)に対しては不定の“X”を設定する。この操作が初期設定11である。 【0049】そして、手順13にて期待値との状態比較を行い、期待値との差があるかどうかを判定し、期待値と差がある場合には、手順14で推定伝搬経路としてのそのノードを登録する。推定状態が期待値と一致している場合には、他のノードを期待値と比較し期待値と異なっているノードを検索する。 【0050】更に期待値と異なっているノードを溯り、組合せ回路入力端子からの伝搬経路並びに組合せ回路故障伝搬端子を抽出する。図6はこの伝搬経路を推定する操作を各ノード毎に期待値との比較で求めるのではなく、先に組合せ回路入力端子状態値の推定(手順17)を行う。当該得られた組合せ回路入力端子の状態推定値を用いて論理シミュレーション(手順18)を行い、各ノード状態値を求める。更に手順19で、ノード毎に期待値との差を求め、期待値と異なっている場合は手順20にて推定伝搬経路として登録する。 【0051】図7,8は組合せ回路内部に故障が存在することを想定した場合の故障箇所並びに故障伝搬経路の推定手順である。図7は、図5と同様に、組合せ回路内の状態推定時に同時に故障箇所推定並びに故障伝搬経路推定を行う手法である。図8は、図6と同様に、組合せ回路入力状態推定を行った後、論理シミュレーションにより求める手法である。 【0052】図7において、先ず手順21で組合せ回路の出力端子で状態が推定されている端子並びに確定されている端子を初期設定し、この手順21で設定された状態値をもとに、手順22で図1の手順2〜4と同様に各ノード状態値の推定を行う。尚、図7の手順21も上記手順11,手順16と同様に組合せ回路の出力端子で状態が推定されている端子並びに確定されている端子にその状態値を初期設定する。すなわち正常状態/故障状態のいかんに関わらず、状態が定まっているところにその状態値を設定し、状態値が不定な端子は不定として扱う。 【0053】手順23では、このノード状態推定手順22で推定値が得られたかを判定し、得られた場合には手順25を、推定値が得られない場合には手順24を実行する。推定値が得られない場合はそれ以上前のノードに溯ることができないことを意味しており、入力状態の推定をしようとしているゲートの入力端子が既に他のネットからの推定で決定されており、出力を満たす状態が得られない場合等がある。この様な時は故障伝搬経路の推定は組合せ回路入力端子に到達できず、組合せ回路内部の故障となる。この様子を示したのが図9(a)である。 【0054】出力の故障端子からノード状態の推定を行い、組合せ回路入力端子まで推定ができるものは推定故障伝搬経路であり、入力端子に達し得ず、組合せ回路内で推定が止まる場合が推定故障箇所となる。推定故障箇所としては図9(a)中推定故障伝搬経路から分岐し、推定が不可能となり止まった点までの経路を指す。手順23でノード状態が推定できた場合は、手順25で期待値との状態比較を行い、期待値と異なっていた場合は手順26で一時的に故障で伝搬経路として経路蓄積をしておく。これはこの時点では推定された経路が前段の組合せ回路からの故障伝搬経路か組合せ回路内の故障箇所なのかを判定できず、次のノード推定を行った時に推定状態値があるかどうかでどちらか決定できるため、一時的に貯えておく必要があるからである。 【0055】また、手順23でノード状態が推定できない場合は組合せ回路内に故障箇所が存在する場合であり、手順24で組合せ回路内に既に推定された故障箇所の数と手順23で新規に得られた推定故障箇所とを調べて故障想定数が1もしくは2であることを確認する。もしここで、組合せ回路内の推定故障箇所数が2を超えていた場合には、前記の得られた推定が現実に合わないため手順26で蓄積した経路を削除し、同条件下で既に得られている組合せ回路入力端子状態推定値も同理由で削除する。手順24で故障想定数が2以下の場合には推定が現実にあり得るため、手順26で蓄積された経路を推定故障箇所として登録する(手順27)。組合せ回路内各ノード状態推定が行われ、出力端子の故障状態が組合せ回路入力端子に達するか、またその時の組合せ回路内の故障想定数として2以下かどうかを判定し、条件を満足していれば推定が正しいとして、手順26で蓄積した経路を手順30で推定故障伝搬経路として登録を行う。 【0056】図8は論理シミュレーションを用いる手法であり、図9(b)に示す様に故障となる出力端子の状態を満たす入力状態値を求め、論理シミュレーションにより故障伝搬経路を求めておき、故障とならない出力端子に故障出力が伝搬する経路を削除することにより推定故障箇所並びに推定故障伝搬経路を抽出するものである。図9(b)中、斜線の部分が削除された経路である。実際の処理としては、先ず手順31で、組合せ回路の出力端子で状態が推定されている端子並びに確定されている端子のうち故障であると推定されている端子並びにその状態値のみを初期設定する。 【0057】更に手順32で、この初期設定された状態値を基に組合せ回路入力端子の状態値推定を行い、手順33で、手順32にて得られた組合せ回路入力端子の状態値を用い組合せ回路の論理シミュレーションを行う。手順34では、この得られた組合せ回路内ノード状態値と期待値とを比較し、手順35で、組合せ回路入力端子から出力端子へ伝搬する故障伝搬経路を全て抽出する。 【0058】手順36では、得られた推定故障伝搬経路のうち手順31で設定した故障出力端子以外に故障が伝搬している不正出力端子を抽出する。手順37で、組合せ回路入力端子から不正出力端子への伝搬経路だけでなく、故障出力端子への伝搬経路と不正出力端子への伝搬経路の交差するノードから入力方向への全ての伝搬経路を抽出し、手順38で、この経路を削除する。これは交差ノードを含めてそのノードに故障状態が現れると出力の正常と推定されるノードも必ず故障が現れる、すなわちそのノードから出力端子への活性化経路が存在しているためで、初期設定した出力端子を満足できなくなるからである。 【0059】手順39で、手順38にて得られた伝搬経路を組合せ回路入力端子まで達している経路を推定故障伝搬経路とし、また入力端子まで達し得ない経路を推定故障箇所として登録を行う。この図5,7もしくは図6,8の各処理により求められた故障推定箇所並びに故障伝搬経路を用いて順序回路全体の故障推定を行う。 【0060】第2の実施例としては図10に示す故障推定手法のフローチャートについて説明する。手順40〜43は図1の手順1〜4と同様であり、故障出力端子から組合せ回路抽出後、組合せ回路内に故障が存在する場合と存在しない場合とで故障推定を行う手順である。組合せ回路入力端子状態推定#1〜#3(手順41〜43)は図5〜図8で示した手法を用いて組合せ回路内故障伝搬経路並びに故障箇所の推定を行うものとする。 【0061】手順44では、組合せ回路入力推定ベクタの簡略化を行い、更に手順45で、経路選択を行う。この経路選択手順45は組合せ回路入力端子状態推定毎に得られた状態値を大幅に削減することが可能な手段である。 【0062】この手順45は手順44の簡略化の後、更に推定追跡経路を削減するために行う。簡略化手順ではブール代数の簡略化を行っているため、簡略化できない推定ベクタはそのまま残ってしまい、結果として追跡する推定ベクタが多くなってしまう可能性がある。しかしながら、故障を単一の縮退故障,オープン故障,short 故障と想定した場合、どの故障伝搬経路を追跡しても真の故障に到達するはずであるから、故障伝搬端子(及び状態)の共通しているベクタをまとめて経路選択することにより、より追跡する推定ベクタ数を削減することが可能となる(推定ベクタ毎に夫々追跡する必要があるため)。 【0063】また、本手順45は故障伝搬経路は真の故障箇所に必ずつながっており、どの故障伝搬経路を追跡しても真の故障箇所に辿り着くことを用いており、その伝搬経路を溯る上での選択手法は、図11〜図14に示す様に4つの方法がある。図11に示す経路推定手法では、組合せ回路入力端子での推定結果である入力状態推定値から各ベクタ毎にfailの端子を抽出し、failが含まれる端子毎に簡略化で得られた推定入力ベクタを分類し、分類された推定ベクタ毎に0/1/Y/Q/Dの状態で表している。 【0064】“0”は期待値“0”、推定値“0”でかつ分類された推定ベクタ全てで同一の値“0”である状態を示し、同様に“1”は期待値“1”、推定値“1”でかつ分類された推定ベクタ全てで同一の値“1”である状態を示している。また“Y”は期待値“0”、推定値“1”でかつ分類された推定ベクタ全てで同一の値“1”であることを示し、“Q”は期待値“1”、推定値“0”でかつ分類された推定ベクタ全てで同一の値“0”であることを示している。“D”は期待値“0“、“1”どちらもいいが、推定値も推定ベクタで共通しておらず、ベクタにより“0”、“1”双方が存在する状態を示している。 【0065】図11中Fail1〜6は破線で囲まれた夫々のfail端子毎に推定入力ベクタを分類し、その分類されたベクタから前記手順で推定値をまとめたものである。この図11の経路選択手法では、故障伝搬経路全てを網羅するために故障の現れた端子全てについて経路の選択、まとめる操作を行ったもので、同一ベクタがいくつかの経路選択後のベクタに含まれることになる。本経路選択手法により、簡略化で得られた推定ベクタが最大でも組合せ回路入力端子数のベクタ数に削減できる。 【0066】図12は図11と同様に、組合せ回路入力端子での推定結果である入力状態推定値から各ベクタ毎にfailの端子を抽出し、failが含まれる端子毎に簡略化で得られた推定入力ベクタを分類し、0/1/Y/Q/Dの状態で推定ベクタをまとめ、経路選択する手法である。この場合、全てのfail端子で分類するのではなく、全ての簡略された推定ベクタを順次分類する上で全てのベクタを網羅するまで、分類を繰り返すものである。 【0067】図12では、先ずFail1の端子で分類を行い、次にFail2の端子で分類している様子を示している。Fail2の分類を行った時点で入力推定ベクタは全て網羅され、選択された経路を追跡することにより故障箇所に到達することが可能なため、これ以上の分類は行わない。この時Fail1で分類されたベクタはFail3,Fail4,Fail5,Fail6を含み、またFail2はFail3,Fail6のベクタを含むことになる。まとめるFail端子の順は特に規定せず、任意の順番とする。この手法では推定ベクタ数が必ず組合せ回路入力端子数以下になるため、推定入力ベクタも大幅に削減できる。 【0068】図13の経路選択手法も図14と同様であり、入力状態推定ベクタ毎にfailの端子を抽出し、failが含まれる端子毎に簡略化で得られた推定入力ベクタを分類し、0/1/Y/Q/Dの状態で推定ベクタをまとめて経路選択するが、図12ではFail端子をまとめる順番は任意であった。この経路選択手法では、各Fail端子毎に全ての推定入力ベクタを通じて、Failの出現頻度を求め、出現頻度の多いFail端子から順にベクタを分類しまとめ、全ての推定入力ベクタが網羅されるまで分類を行うものである。 【0069】図13では、Fail1〜6各々のFail端子の出現頻度は8,3,3,2,2,5となっており、分類する順番はFail1,Fail6,Fail2もしくはFail3,Fail4もしくはFail5となる。この図の例では、先ずFail1の端子による分類を行い、次にFail6の端子で分類を行った段階で全ての入力推定ベクタを網羅するため、これ以上の分類は行っていない。この時Fail1で分類されたベクタはFail2,Fail3,Fail4,Fail5を含み、またFail6はFail2,Fail3,Fail5のベクタを含むことになる。この経路選択手法では、各Fail端子毎に出力頻度を計算し出力頻度の多いFail端子から順に分類するために、簡略化で得られた推定ベクタの状態値がまとまりやすく、分類後の推定ベクタ数がより削減できる可能性が大きい。 【0070】この各Fail毎の出現頻度は始めに求めた出現頻度を各分類毎に用いる場合と、各分類毎にまだ分類されていないFail端子の出現頻度を再度求め直して用いる場合とが挙げられる。前者は手順として簡単であり、後者はより少ないベクタ数でまとめやすくなるというメリットがある。 【0071】図14は図11〜13の経路選択手法の様にFail端子選択数を1に固定するのではなく、出現頻度を計算した後、頻度の多いFail端子から順に複数端子ずつ抽出しまとめていく手順である。図14では、2端子ずつ抽出し全ての推定入力ベクタを網羅するまでまとめている場合を示している。 【0072】この手法では複数端子で共通な推定入力ベクタをまとめているため、図にも示す様に、Fail1&6,Fail1&4,Fail1&5,Fail2&6,Fail1&3の5ベクタになり、結果的には推定ベクタ数は図12,13の各手法より多くなるが、各Fail端子毎にまとめられた推定ベクタは故障を含む端子“D”が少なく、値が確定する端子がより多くなる。 【0073】この図14の経路選択手法の他の手法としては、出現頻度から予め決めた閾値を基にFail端子を抽出し分類する手法,予め決めた閾値以上の出現頻度を持つ複数のFail端子を抽出し分類し、この分類により閾値以下になった場合には決められた端子数でFail端子を抽出し分類することにより、組合せ回路入力端子の状態推定ベクタをまとめて経路選択する手法等がある。 【0074】上記した図11〜図14の経路選択手法において、0/1/Y/Q/Dの状態値を用いて説明を行ったが、請求項の中で述べた様に、故障を含む端子状態を更に詳しく分類した状態値(例えばM/N)を用いて表すことにより同等の機能を実現できる。 【0075】この場合は“M”を期待値“0”、推定値は推定ベクタで共通しておらず、ベクタにより“0”、“1”双方が存在する状態とし、“N”は期待値“1”、推定値は推定ベクタで共通しておらず、ベクタにより“0”、“1”双方が存在する状態を示すものとする。状態値“D”を用いる場合と比較し、M/Nを用いる場合は期待値の0/1が判定できるメリットがある。但し、期待値を調べることによりDでもfail状態は判定できるため、同様の効果がある。 【0076】また簡略化によりdon't care“X”が含まれる結果を用いて経路選択する場合も同様であるが、組合せ回路入力端子状態値が“0”でも“1”でもいい“X”状態と、他の0/1/Y/Q/D状態とが、同一端子で存在する場合は、“D”に置き換える。これは“X”が0/1どちらでもいい状態を表しているのに対し、他の状態は0/1どちらかの状態を示しているので、結果としては“D”にする必要があるためである。 【0077】図11〜図14の経路選択手法を含む組合せ回路入力端子状態推定#1〜#3で得られた組合せ回路毎の推定故障箇所を手順46で調べ(図10参照)、当該組合せ回路出力端子の推定状態を得たそれまでの条件下での故障推定箇所数と新規得られた推定故障箇所との和が2を超えているかどうかを判定し、2を超えている場合には手順47で当該組合せ回路の推定で得られた新規故障候補点並びに同条件での推定故障伝搬経路を削減する。 【0078】この操作は図15で示す様に、故障が1箇所存在すると仮定した場合、その故障の種別は0/1縮退,open,short が挙げられる。当該組合せ回路の直前までの推定結果は、(1)伝搬経路のみが推定されている場合、(2)伝搬経路+推定故障箇所1箇所が得られている場合、(3)伝搬経路+推定故障箇所2箇所が得られている場合の3種類ある。 【0079】更にその推定結果を基に当該組合せ回路の推定を行った場合も、同様に、前記(1)〜(3)の伝搬経路,推定故障箇所が得られる。しかしながら単一の故障を想定した場合、物理的位置が0/1縮退故障,open故障の場合は1箇所、short 故障の場合は2箇所でしかあり得ないため、推定故障箇所が2以下でなければならない。従って、直前までの推定結果が伝搬経路のみの場合には当該組合せ回路の推定において(1)伝搬経路のみ、(2)伝搬経路+推定故障箇所1箇所、(3)伝搬経路+推定故障箇所2箇所のどれであっても問題なく、夫々によって故障の種類が分類できる。 【0080】故障推定箇所が1箇所2箇所共にshort の場合があるが、これはshort により2箇所のノードのうち1箇所が同一時刻で誤りを起こし、結果としてその時刻としては1箇所しか推定故障箇所が得られない場合である。故障推定箇所が2箇所あるshort の場合は、short により両方のノードが同一時刻で誤りを起こし、故障箇所が2箇所見える場合がある。実際に競合した場合にはどちらかのノードの状態値が強いため、単一箇所の故障が多いが、ここではその特殊なshort 例も考慮しており、図15の図表中では“*”で表している。 【0081】直前までの推定結果が伝搬経路+推定故障箇所1箇所,伝搬経路+推定故障箇所2箇所のどちらの場合も、判定基準は、前期直前の推定結果が伝搬経路のみの場合と同様であるが、故障推定箇所が3箇所になった時は、場所の一致判定を行う。推定故障箇所として得られた箇所が3箇所以上であっても、物理的な推定故障箇所が2箇所以下である場合には故障候補点として残す。図15中()内に記述されている部分がその場合である。その場合には手順48で新規抽出故障候補点として登録する。この時既に推定故障箇所が2箇所以上得られている場合は、図17に示す様に各々の組合せ回路で求めた推定故障箇所のうち物理的位置が一致している箇所のみを故障候補点として扱い、登録を行う。図17は2箇所のうちの1つを示しており、かつ図中太線は各々の組合せ回路での推定故障箇所であり、重ね合わせた時に一致する太線部分が登録する推定故障箇所となる。 【0082】次に、組合せ回路入力端子状態推定#1〜#3で得られた組合せ回路入力端子の推定ベクタを用いて手順49で簡略化を行い、更に簡略化した結果を基に手順50で経路選択を行う。手順51は実施例1(図1)の手順7と同様、まだ推定を行っていない経路選択結果があるかどうかを調べることにより、故障推定が完了したか否かを判定する手順で、完了していない場合は更に前段の組合せ回路抽出推定を繰り返す。この前段の組合せ回路に溯る時、故障が伝搬していると推定されるフリップフロップのクロック線の期待値からクロックがフリップフロップに印加され状態が更新されたか否かを調べる。もしクロック線が活性化されていれば1つ前の時間に溯り、活性化されていないならば活性化された時間に溯り、前段の回路抽出,推定を繰り返す。 【0083】手順52は図18に模式的に示す様に、図10の新規故障候補点登録手順48で得られた全ての時間で得られた全ての推定故障候補点を用いて、各候補点毎に出現頻度を計算する手順である。図18中棒の高さが出現頻度を表し、高さが高いほど故障の可能性が高いことを表す。 【0084】この手順52は前述の様に新規故障候補点登録手順48で得られた推定候補点のみを用いる手順と、新規故障候補点登録手順48で得られた推定候補点だけでなく、各組合せ回路の推定で得られた故障伝搬経路を用いる手順とがある。後者の場合は組合せ回路での推定で故障伝搬経路として得られた経路上に故障が存在する場合の頻度計算で有利となる。 【0085】手順53はこの得られた故障候補点毎の出現頻度を用いて頻度の多い順に優先順位付けを行い、かつ図16に示す様な推定故障箇所の物理的位置並びに推定故障状態値の判定により、故障の種別を求める。図16の判定基準は、(1)物理的位置及び推定故障状態値が常に固定している場合は0/1縮退故障が起こっている可能性が高い、(2)推定故障箇所が1箇所でかつ物理的位置が同一、更に推定状態がその時により異なる場合はopen故障もしくはshort 故障である可能性が高い、(3)推定故障箇所が2箇所でかつ物理的位置が同一、更に推定状態がその時により異なる場合はshort 故障である可能性が高い、である。 【0086】また、手順53において得られた故障推定箇所並びに故障種別に対し、図20で示す様なタイミング故障判定を行う手順を更に加えることにより、故障種別にタイミング不良も扱える。図20のタイミング不良判定フローでは、先ず手順54で推定故障箇所にフリップフロップが含まれるか否かを調べる。これは抽出された故障候補が、図19の太線で示す様に、フリップフロップの端子を含んで故障候補が存在するか否かで判定する。図19の様な場合、太線の経路上に故障が存在するか、若しくはハッチング部分のフリップフロップでタイミング不良が生じ、フリップフロップの出力が誤っていることも想定できるからである。そこで、手順55により、故障箇所と推定されるフリップフロップに到達する組合せ回路内の全ての経路を抽出する。 【0087】手順56では、手順55で得られた全ての経路に対して経路遅延量を計算し、手順57ではこの得られた経路毎の遅延量を基にしてクリティカルパスを求める。更にそのクリティカルパスと組合せ回路入力端子の期待値とを比較し、クリティカルパス上の各ノード状態が変化していることを確認し、タイミング不良か否かを判定する手順により行う。手順54にて推定故障箇所にフリップフロップが含まれない場合には、タイミング不良検出は行わない。 【0088】更に図21で示した様に回路中のスキャン用のフリップフロップを含む場合には、通常組合せ回路抽出時に図中太線で示したスキャン経路も含んで抽出し、経路追跡,故障推定を行う。この時はスキャン用のフリップフロップの故障か否かの判定を行う手段として、予め全回路中にスキャン用のフリップフロップが含まれるか否かを判定しておき、更に抽出された組合せ回路の推定においては、図中太線のスキャン経路を含まない組合せ回路を抽出し、経路の追跡、並びに故障推定を行う。 【0089】このスキャン経路を含む場合の故障推定結果とスキャン経路を含まない故障推定結果を比較し、スキャンフリップフロップを含むスキャン経路自体に故障が存在するか否かを判定する。これにより、スキャン経路故障を検出する。 【0090】組合せ回路抽出時にメモリセルの端子に到達した場合には、図22に示す様に条件によりメモリセルのデータライン,アドレスライン,制御ラインと経路追跡,推定する手順を変える。先ず、メモリセルの端子に到達した場合、メモリセルのアドレスライン,データライン,制御ラインかを認識し、アドレスライン,データラインの場合はアドレスライン,データラインの全てを抽出する様に組合せ回路を抽出し、デーラライン若しくはアドレスラインの推定を行う。 【0091】アドレスラインの場合は内部の格納データを用いデータラインの追跡を行い、データラインの場合はデータラインの推定結果を基に、図23に示す様に、手順59でメモリセル内部のデータ照合を行う。メモリセル内データ照合の結果他のアドレスに同一データが含まれるか否かを手順60にて判定した後、含まれる場合には同一データを保持するアドレスを読出した可能性が大きいため、手順61でこのアドレスデータをもとにアドレスライン若しくは制御ラインを溯る。 【0092】また、メモリセル内に同一データが存在しない場合には、書込み時のデータが間違っていることが考えられるため、手順62でデータ書込み時までベクタを溯り、かつ推定結果をもとにデータラインを溯る。以上の手順で故障箇所の推定を行うことにより通常のLSIの故障診断が可能となる。尚、図10のフローチャートにおいても、図1のフローを図3に書換えた様に、図24の様に書換えることができる。 【0093】次に、本発明の別の実施の形態について図面を参照して詳細に説明する。図25はこの実施例の概略フローチャートである。本実施例の手順は組合せ回路抽出71、組合せ回路入力端子状態推定72、推定故障伝搬経路登録73、回路溯り判定制御74、経路分岐、結合認識75、故障モード分類76、故障候補頻度重み総合判定77の各手順を持っている。 【0094】図25の手順71は組合せ回路抽出であり、手順72は手順71で得られた組合せ回路毎に出力端子状態から入力端子状態を求める手順である。また、手順73は組合せ回路の入力端子状態を求める際、推定故障伝搬経路を登録し、手順71から73を推定状態が得られなくなるまで溯るため、回路溯り完了判定手順74で組合せ回路毎の推定続行か否かを制御する。 【0095】全ベクタで組合せ回路毎の故障推定が完了した場合、手順75では、手順73で得られた組合せ回路毎の推定故障伝搬経路をもとに経路の分岐、結合認識を行い、故障推定箇所から故障出力端子までの故障伝搬経路を再構成する。この操作により故障伝搬経路上の故障候補点に対して単一故障点か多重故障点、もしくは故障候補ではなく故障伝搬経路であるのか分類が可能となる。 【0096】手順76では手順75で得られた結果を用い、さらにその時点での推定状態値並びに全ベクタの状態値を用いて故障モードの分類を行う。手順77では故障候補を故障出力端子数や故障伝搬経路等の頻度を用い、より故障状態を満たす故障候補箇所ならびに状態値、故障モードを総合的に判定し順位付けし、故障候補の確度として重み付けを行う。 【0097】特に、手順75から手順77に示す推定故障伝搬経路から故障モードを分類し、かつ故障候補毎の頻度およびその状態値を調べて、総合的に故障の確からしさを求めることにより故障候補の重み付けを行うことを特徴としている。 【0098】図26,27は本実施例の詳細を示すフローチャートである。図26は組合せ回路毎の経路推定並びに故障推定箇所の重み付けの全体を表したものであり、図27は組合せ回路毎に推定された経路重み付け方法を示したものである。 【0099】本発明の順序回路の故障診断手法は、予め用意したLSI内の全フリップフロップの全ベクタに対する全期待値情報と実際のテスタでのパス/フェイル出力情報、全回路の接続情報を用い、かつフリップフロップと組合せ回路に分割して故障推定を行い組合せ回路毎に故障伝搬推定経路および故障候補点を求めることを基本としており、得られた故障伝搬推定経路間の接続関係を求め、故障出力端子数もしくは故障伝搬端子との間に存在する故障伝搬経路数から故障候補の重み付けを行うものである。 【0100】まず組合せ回路抽出40の手順では、LSIの故障出力もしくは既に故障であると推定された出力端子から入力方向へとトレースを行い、得られた入力端子もしくはフリップフロップ出力端子から出力方向へトレースを行い、出力端子もしくはフリップフロップ入力端子を得る。さらに、この得られた出力端子もしくはフリップフロップ入力端子から入力方向に回路抽出を行い組合せ回路を得る。 【0101】当該得られた組合せ回路の状態推定は、組合せ回路入力端子状態推定41〜43があり、それぞれ求める条件が異なる。組合せ回路入力端子状態推定41は図28(a)に示すように組合せ回路内に故障が存在せず、故障信号が前段の組合せ回路から伝搬していると仮定したときの入力端子推定手順である。 【0102】組合せ回路入力端子状態推定42,43は、組合せ回路内に故障が存在すると仮定した場合で、さらにその故障想定数により2つに別れる。1つは組合せ回路入力端子状態推定42であり、図28(b)に示すように組合せ回路内に故障が1箇所存在すると仮定した場合の推定故障箇所並びに組合せ回路入力状態推定値を求める手順である。もう1つは組合せ回路入力端子状態推定43であり、図28(c)に示すように組合せ回路内に故障が2箇所存在すると仮定した時の推定故障箇所並びに組合せ回路入力端子状態推定値を求める手順である。 【0103】組合せ回路入力端子状態推定41〜43の各手順において、特殊な例としては、組合せ回路入力端子状態推定値が得られず、1箇所ないしは2箇所の故障推定箇所のみ得られる場合である。この場合は組合せ回路出力端子状態を満たす入力状態がありえず、前段の組合せ回路から故障が伝搬してきていないことを表わしている。 【0104】組合せ回路入力端子推定41で得られた入力推定ベクタを用い簡略化、経路選択44(45)の手順でブール代数の簡略化や状態値が同じ端子のみをまとめる操作を行い、推定ベクタ数を削減する。簡略化としては、まず組合せ回路出力を満たす入力状態推定値を調べることにより、その端子の状態値が0でも1でもどちらでもいい値、すなわち組合せ回路出力での故障に直接関与しない端子および状態値を抽出し、故障状態か否かに関係なく状態値が同じ端子をまとめている。 【0105】すなわち値の異なる端子を抽出し、1端子であれば0/1、2端子であれば、00/01/10/11の4つの全ての状態値を含んでいる場合にそれらの端子状態値を“X”に置き換えるのが簡略化である。また、経路選択手順も図29に示すように、各々得られた組合せ回路推定入力ベクタの故障伝搬端子および状態値が同一であるベクタをまとめることにより、推定ベクタ数の削減を行う。手順72で組合せ回路入力部の状態推定を行った後は、さらに前段の組合せ回路へ溯る必要から、前記組合せ回路抽出71の手順に戻る。 【0106】組合せ回路入力端子状態推定42,43で得られた新規の推定故障候補点故障候補点については、判定手順46にてそれまでに同一条件の下で得られた故障候補点と新規で得られた故障候補点の総数が2以下であるか否かを判定し、2よりも多い場合には新規故障候補点、伝搬経路削除47の手順で削除する。2以下の場合には新規抽出故障候補点登録48の手順で新規登録する。組合せ回路入力推定ベクタ簡略化、経路選択49(50)では手順44(45)と同様に得られた推定ベクタ数の削減を行う。 【0107】手順51では故障候補点抽出が全てのベクタに対して行われたかどうかを判定し、かつ前記特殊な例としてあげたようにそれ以上前段からの推定故障伝搬入力端子が得られないか否かを判定し、推定を完了をするか否かを決定する。推定が完了していない場合には、組合せ回路入力推定ベクタから故障伝搬端子を抽出し、さらに組合せ回路抽出40の手順に戻り前段の組合せ回路へと溯る。手順51で全ての推定が完了し故障候補点抽出し尽くされた場合には、故障候補点頻度計算52にて各候補点毎の出現頻度を求め、重み付け63で場所的な一致重み付けを行う。 【0108】さらに状態値判定&シミュレーション64により故障モードの推定並びにその精度向上を図り、故障推定リストを作成する。本操作はシミュレーションを行うことにより故障箇所とその状態値が正常端子出力との整合を保証し、また個々の故障推定候補箇所の状態値を調べることにより、0/1縮退、オープン、ブリッジ故障等の故障モードを判定することを可能とする。 【0109】上記手順52,63の詳細手順は図27に示す。手順78の組合せ回路毎の経路推定は手順40〜51を意味しており、出力端子までの経路再構成手順79では手順48の新規抽出故障候補点、故障伝搬経路登録で得られた経路を用い、図30に示すように、各組合せ回路毎の推定伝搬経路間の接続関係を検索し、故障出力端子までの経路として再構成する。 【0110】さらに、候補点毎の故障出力端子数頻度計算80の手順で、図30の丸数字に示すように頻度を求める。図30の故障出力頻度とは、手順79で再構成された故障伝搬推定経路を故障出力端子から順にトレースし、経路の分岐、結合毎に経路細分化を行い、細分化された経路毎にどの故障出力端子から開始されたかを順次記憶しておく。 【0111】図中の丸数字が開始された故障出力端子番号であり、■■、■■■となっているのは、故障出力頻度数としてはそれぞれ2、3を表わす。すなわち■■となっている経路上の候補では故障出力端子■を満たすことはできず、■■■となっている故障伝搬経路上の故障候補が故障出力■〜■すべてを同時に満たすことを表わしている。本操作により各時点での各故障出力端子と故障伝搬経路、故障推定箇所との関連付けが可能となる。 【0112】手順81では手順80を全ベクタで繰り返し、全ての故障出力から故障伝搬経路毎の故障候補箇所の故障出力端子頻度を求め、手順80のどの故障出力端子から開始されたかを記憶した結果をもとにベクタ全体の故障出力端子数頻度を求める。手順82では全てのベクタでの故障出力端子頻度を求めたかを判定する。手順83では手順81で求めた故障出力端子数頻度の大きい順に並べ替えを行い、故障候補箇所の重み付けを行う。すなわち全ての故障候補の中でより多くの実故障出力を満足する故障候補箇所が真である可能性が高く、本操作によりその故障箇所が選択的に抽出される。 【0113】更に別の実施例としては、図31に示す重み付けの方法があげられる。図31に示す手順は図26の手順52,63を実現する別の方法である。手順78の組合せ回路毎の経路推定は図26の手順40〜51を意味しており、出力端子までの経路再構成手順79では手順48の新規抽出故障候補点、故障伝搬経路登録で得られた経路を用い、図30に示すように各組合せ回路毎の推定伝搬経路間の接続関係を検索し、故障出力端子までの経路として再構成する。 【0114】さらに候補点毎の故障伝搬経路数頻度計算84の手順で、図32の丸数字に示すように頻度を求める。図32の故障出力頻度とは、手順79で再構成された故障伝搬推定経路を故障出力端子から順にトレースし、経路の分岐、結合毎に経路細分化を行い、細分化された経路毎にどの故障出力端子から開始されたかを順次記憶しておく。図中の丸数字が開始された故障出力端子番号であり、■■、■■■となっているのは故障出力頻度数としてはそれぞれ2,3を表わす。この時、出力端子側からトレースした時に分岐している場合´を付け、出力側の伝搬経路成立たせるための必要条件を表わしている。 【0115】すなわち、図32の■の故障伝搬は■´と■”同時に故障が伝搬してきているときにのみ成り立する場合を示している。同様に、出力端子側からトレースした場合に経路が結合する場合には、異なる故障出力端子であればそのまま加えるが、同じ故障出力端子の場合にはその´の状態も併せて記憶する。従って、故障発生箇所付近を例にとると、■´”と(■”+■´”)■■の経路結合から■´”+■””=■´であるため、■´+■”=■となり、結果として■■■となっている。図32の場合図からも明らかなように■の故障伝搬経路は■”、■´”、■””のすべてが同時に成立つ必要があることから、■■■の条件がこの故障出力を満足し、´のついた経路は故障候補とはなり得ないことになる。 【0116】本操作により、各時点での故障推定箇所毎の故障伝搬経路と故障出力の必要条件を詳細に関連付けることが可能となり、故障箇所の絞り込みを精度良く行うことが可能である。 【0117】手順85では手順84を全ベクタで繰り返し、全ての故障出力から故障伝搬経路毎の故障候補箇所の故障伝搬経路数を求め、手順84のどの出力端子から開始され、どの経路を経由したかを記憶した結果をもとにベクタ全体の故障伝搬経路数頻度を求める。手順86では全てのベクタでの故障伝搬経路数頻度を求めたかを判定する。手順87では手順85で求めた故障伝搬経路数頻度の大きい順に並べ替えを行い、故障候補箇所の重み付けを行う。本操作により故障出力を満足する故障候補箇所が選択的に抽出される。 【0118】候補点毎の故障伝搬経路数頻度計算手順の更に他の実施例として、図33で示す方法もあげられる。図33で示す方法の組合せ回路毎の経路推定手順78は図26の手順40〜49を意味しており、手順79では故障伝搬経路を出力端子側から入力端子側へ再構成し、さらに経路の分岐、結合点を認識して細分化する。図34は図33の手順をブロックイメージで表わしたものであり、図34中A〜Eは細分化された経路である。 【0119】図34では経路の結合点はDとEの合流点、AとCの合流点の2点があり、各結合点での経路間条件に対する故障モードと故障候補の対応を示す。図34中の表の意味を(AorC)、(DorE)を例にとって説明する。本手法の故障推定は図26に示すように組合せ回路を故障出力から順次入力方向に溯るが、組合せ回路内の故障伝搬推定においても故障伝搬経路毎に出力側の論理を満たすように経路の溯りを行う。故障伝搬経路毎の成立条件計算手順88はこの後段の経路上の故障伝搬を満たす条件を求める手順であり、成立条件DorE、AorCは■の故障伝搬を満たす条件DorEを、また、故障伝搬Eを満たす条件AorCを求めるものである。 【0120】すなわち、故障伝搬経路の各分岐点での故障伝搬の成立条件を括弧で括って表わし、かつそれを“,”で区切って併記したものである。従って、(AorC),(DorE)の(AorC)の持つ意味は経路Eに故障が伝搬している場合、経路Eの故障を満たす条件は経路Aもしくは経路Cに故障伝搬していることを示している。もし、経路E上に故障が存在しているならば、経路Aもしくは経路C上に故障が存在する必要はない。この条件を満たす故障候補としては、図34に示すように、A,B,C,D,E,A&B,A&C,A&D,A&E,B&C,B&D,B&E,C&D,C&E,D&Eがあげられる。 【0121】同様にして、手順88で経路間条件(AorC),(D&E)の成立条件を求めると、■=D&E=D&(AorC) =(A&D)or(C&D) ここで、経路Bに故障が存在するならば経路C,Dにも故障伝搬するので、D&E=B&E、C&D=C&B=B&Dとなり、さらに■=(A&B)or(C&B) =(A&B)orB=Bとなる。 【0122】よって、前式より経路B、経路A&経路B、経路A&経路D、経路B&経路C、経路B&経路D、経路B&経路E、経路C&経路D、経路D&経路Eが故障候補となり、図34の表中で1となっている。反対に表中の0は故障候補として成立たないことを示している。 【0123】故障モードによる故障候補分類手順89では、得られた故障候補に対して単一故障、2重故障の分類を行う。図34の例で言えば、経路A〜経路Eに1が表示されている場合が単一故障候補であり、経路A&経路B〜経路D&経路Eが2重故障候補となる。(AorC)、(DorE)について見れば、経路A〜Eのどこに故障が存在しても故障伝搬■を満たすことになるので、経路A〜Eは本手順で単一故障候補に分類される。また、経路A&経路B〜経路D&経路E全てが1になっており、経路A〜経路Eのどの経路との組合せでも2重故障が起こる可能性があることを示している。 【0124】手順90では、全ベクタの全候補点の頻度計算を終了したか否かを判定し、終了していないようであれば手順79に戻り、頻度計算を行っていない別の組合せ回路に対して前記と同様の処理を行う。終了していれば手順91へと進む。手順91では手順89で得られた故障モード毎の故障候補をもとにして、全ベクタでの故障モードを計算する。手順89では故障を単一故障と2重故障に分類したが、単一故障には単一縮退故障とオープン故障があるため全ベクタからの故障候補点とその状態値をもとに単一縮退故障とオープン故障を分類する。 【0125】分類方法は全ベクタの故障状態値と正常状態値を併せて常に一定の状態値になるか否かで判断する。常に一定の状態値になれば0/1縮退故障とし、状態値が時刻により0/1両方の値をとるようであればオープン故障とする。2重故障についてはブリッジ故障として分類する。手順91で求めた各故障モード毎の故障候補点をもとに、手順92で全ベクタの各故障候補点毎の経路頻度を計算し、頻度の大きい順に重み付けを行う。 【0126】さらに他の実施例を図35に示す。図35の手順78〜90は図33の手順78〜90と同等であり、手順79では故障伝搬経路を出力端子側から入力端子側へ再構成し、さらに経路の分岐、結合点を認識して細分化する。手順88はこの分岐点、結合点での経路上の故障伝搬を満たす条件を求める手順である。 【0127】さらに、故障箇所数による故障候補分類手順89では、得られた故障候補に対して単一故障、2重故障の分類を行う。手順90では全ベクタの全候補点の頻度計算を終了したか否かを判定し、終了していないようであれば手順79に戻り、頻度計算を行っていない別の組合せ回路に対して前記と同様の処理を行う。終了していれば手順93へと進む。 【0128】手順93では、手順89で得られた全ベクタの故障箇所数毎の故障候補分類を用いて故障候補毎の頻度を計算し、頻度の大きいものから順に並べ替えを行う。さらに手順94では、全ベクタで故障モードの検査を行い、故障モード毎に各故障候補の頻度計算を行う。この手順93,94の操作は故障モードをより精細に求めるための手順である.手順89で得られた故障箇所数毎の分類で単一故障として得られたものの中にはオープン故障のみならず、2重故障が含まれる場合もあるため、さらに精度に分類する必要がある場合には本操作を行う。 【0129】手順93で述べたように、単一故障であっても故障推定状態値および正常推定状態値が常に一定でなければオープン故障の可能性が高い。しかしながら、図36に示すように全ベクタを通して推定状態値一定でない状態は単一故障の等価故障箇所として得られた故障候補点間のブリッジ故障であることもある。図36中×のついているところが同一時刻同一状態を持つと推定される故障箇所を示している。 【0130】従って、単一故障箇所からブリッジ故障を抽出する手段として全ベクタを通して状態値が一定でない故障箇所を抽出し、さらにその故障箇所毎に頻度計算を行い、頻度の大きいものから順に故障箇所同士の推定状態値を比較して同一時刻同一状態の故障箇所を抽出する。そして、抽出された故障箇所の中からある閾値以上の頻度を持つ任意の2箇所を選択して、同時に故障が存在した場合の頻度を求める。本操作によりオープン故障と想定されるものの中からさらに出力の故障状態をより多く満たすブリッジ故障の抽出、選別が可能となる。 【0131】手順92では図33の手順92と同様に、単一0/1縮退故障、オープン故障、ブリッジ故障のモード毎に分類された故障候補点に対し頻度数の並べ替えを行い、推定故障箇所の重み付けを行う。この時ブリッジ故障については、手順89で2重故障と分類された推定ブリッジ故障箇所と手順94で得られた推定ブリッジ故障箇所両方同じ扱いとし、頻度による重み付けを行う。 【0132】別の実施例を図37に示す。本実施例は図25の重み付けシーケンスに対して故障推定完了判定手順95を加えたものであり、本機能により頻度による重み付け精度が得られた段階で故障推定を停止できるため、演算処理時間の短縮化を最適に図ることが可能となる。 【0133】まず、テスタの故障出力結果から故障出力端子を抽出し、その端子を起点として組合せ回路抽出手順71でダイナミックに組合せ回路抽出を行う。手順72は手順71で得られた組合せ回路毎に出力端子状態から入力端子状態を求める手順であり、手順73は組合せ回路の入力端子状態を求める際に得られる組合せ回路内部の推定故障伝搬経路を登録する。手順71〜73を推定状態が得られなくなるまで回路を溯るため、回路溯り完了判定手順74で組合せ回路毎の推定続行か否かを制御する。この時、同一テストベクタで他の未推定故障出力端子が存在する場合には、同様に前記手順を繰り返す。 【0134】手順73でベクタ毎の故障推定が完了した場合、手順72で得られた組合せ回路毎の推定故障伝搬経路をもとに経路の分岐、結合認識を行い、故障推定箇所から故障出力端子までの故障伝搬経路を再構成する。この操作により故障伝搬経路上の故障候補点に対して単一故障点、多重故障点、もしくは故障候補ではなく故障伝搬経路であるのか分類が可能となる。手順76では手順75で得られた結果を用い、さらにその時点での推定状態値並びにそれまでに推定で用いた全ベクタの状態値を用いて故障モードの分類を行う。手順77では故障候補を故障出力端子数や故障伝搬経路等の頻度を用い、より故障状態を満たす故障候補箇所ならびに状態値、故障モードを総合的に判定し順位付けし、故障候補の確度として重み付けを行う。 【0135】さらに、手順95では手順77で重み付けとして用いた故障出力端子数や故障伝搬経路数の頻度分布を調べ、ある設定された閾値と比較して、(1)閾値に満たない場合には、テスト結果の新たなベクタを用いて手順71に戻り、組合せ回路毎の回路溯りを行う; (2)閾値以上の場合は故障候補の推定精度が得られたとして、故障推定を完了する; という頻度判定による故障推定終了判定を備える。 【0136】図38〜40は先の各実施例に対して故障推定終了判定手順95を夫々挿入したものである。具体的には、図38は図31頻度計算手順に手順95の故障推定終了判定手順を、また図39は図33の経路間条件を用いた重み付けシーケンスに手順95の故障推定終了判定手順を、図40は図35のブリッジ故障詳細判定シーケンスに手順95の故障推定終了判定手順を加え、演算処理時間の短縮化を最適に図ることが可能としている。図41は図25の機能を持つ装置のブロック図である。 【0137】本装置では、最初に故障推定の対象となるネットリストをネットリスト管理部206に入力し記憶させ、同時に故障推定を行うテストベクタを用いて求めたLSIの入出力端子ならびにフリップフロップの期待値を予め入出力端子、フリップフロップ期待値管理部207に入力し記憶させておく。また推定値、実測値管理部209にはテスト結果の出力端子状態値を記録しておく。 【0138】シーケンス制御部205は201〜204,210〜213の各推定動作機能の動作制御を行い、特にブロック相互間の待ち合わせ制御や動作順序制御を行う。また、206〜209の各管理部は前記各推定動作機能部からの情報検索や情報登録、削除を行いデータの一元管理を行う。 【0139】ネットリスト管理部206は先に述べたように対象となるLSI全回路のネット接続情報や、全回路から部分回路に分割された回路の接続情報を記憶し管理する。そして素子や経路の接続情報検索、部分回路登録/削除を各ブロックの要求に応じて行う。 【0140】同様に入出力端子、フリップフロップ期待値管理部207も前記述べたように、対象となるLSIの入出力端子および内部フリップフロップの期待値を記憶し管理する。本ブロックは各ブロックからの経路や素子の端子の期待値検索要求に対して期待値を検索して出力し、状態値の登録/削除/修正、またフリップフロップ以外の内部素子の期待値追加登録/削除の機能を持っている。 【0141】故障候補管理部208は故障箇所推定で得られた候補点の素子名、経路名とその推定状態値ならびにその時刻を記憶し管理する。本ブロックは各ブロックからの経路や素子の端子の登録要求に対してそれらの情報を登録し、また検索/削除/修正要求に対してそれぞれ検索結果出力、データ削除、データ修正等の動作を行う機能を持っている。 【0142】故障候補管理部208では故障候補を管理するが、推定値管理部209では推定時刻とその状態値を管理する。したがって故障状態に関しては故障候補管理部と推定値管理部とが連携してその情報を管理し、故障状態以外の推定状態管理は本ブロックで行う。このブロックでは故障/正常の状態に関わらず、推定時刻、状態値の結果を管理し、各推定ブロックからの時刻、状態値の登録/検索/削除/修正要求に対し、既登録結果をもとに情報の管理、出力を行う。 【0143】次に各故障推定機能ブロックであるが、組合せ回路抽出部201はネットリスト管理部206に対し接続情報検索を行いながら、かつ故障候補管理部208ならびに推定値管理部209に状態値検索行って、故障伝搬経路を含むと考えられる組合せ回路を抽出し、ネットリスト管理部にその部分回路を登録する。 【0144】組合せ回路状態推定部202は前記得られた部分回路である組合せ回路に対して、推定値、実測値管理部209から当該組合せ回路の既に求まっている入出力状態値を得、かつネットリスト管理部に対し回路接続情報検索を行いながら、内部状態推定を行い、順次入力方向へと状態推定を溯り、組合せ回路入力端子の状態値を推定する。そして推定値、実測値管理部209に対して組合せ回路入力状態の推定値を登録する。 【0145】同時に故障伝搬経路抽出部203では前記組合せ回路内部状態推定部で得られた結果をもとに、ネットリスト管理部に対し回路接続情報を検索して組合せ回路内部の伝搬経路を抽出する。この時入出力端子、フリップフロップ期待値管理部207より組合せ回路入出力端子の期待値を得、内部回路の期待値を求めることにより、推定故障伝搬経路を求める。この推定故障伝搬経路は故障候補でもありえるため故障候補管理部208と推定時刻、推定状態値を推定値、実測値管理部209に対して登録する。 【0146】経路選択部204は前記組合せ回路状態推定部202で得られた複数の組合せ回路入力状態推定値を用いて端子、状態値共に共通な故障伝搬端子をまとめ、故障伝搬経路選択を行う。この経路選択部204でまとめられた共通な端子および状態値は、共通グループとして状態値の故障/正常に関わらず、推定値、実測値管理部209に登録する。 【0147】故障伝搬経路再構成部210は組合せ回路毎に故障候補管理部208に登録された故障候補点ならびに推定状態値をもとに、ネットリスト管理部206に対し回路接続情報検索を行いながら、各故障候補点とLSIの故障出力端子までの故障伝搬経路を再構成し、各故障候補間の経路や故障出力端子との関係を故障候補管理部208に登録する。 【0148】推定状態値判定部211は前記得られた故障候補点ならびに時刻、推定故障状態値を故障候補管理部208から得、さらに入出力端子、フリップフロップ期待値管理部207、推定値、実測値管理部209から全ベクタの故障候補点の状態値を検索して推定状態値が常に一定か否かを判定する。 【0149】故障モード分類部212は前記推定状態判定部で得られた状態判定をもとに単一0/1縮退故障、オープン故障、ブリッジ故障の分類を行う。この時前記故障伝搬経路再構成部210で故障管理部208に登録した各故障候補間の経路や故障出力端子との関係を検索し、オープン故障、故障伝搬経路上の2点間のブリッジ故障の可能性があるか否かを判定し詳細な分類を行う。この分類した故障候補点ごとの故障モードは故障候補管理部208に再度検索した状態値とともに登録を行う。 【0150】頻度重み付け部213は故障管理部208に登録された各故障候補毎の状態値、故障モード分類、各故障候補間の経路や故障出力端子との関係を検索し、故障出力端子数もしくは推定故障伝搬経路数の頻度をもとに総合的に各故障候補点の推定の確からしさを求め、各故障モードごとに順位付けを行う。 【0151】図42は別の装置のブロック図であり、図41と同等部分は同等符号にて示す。基本的に図41の例と機能は同等であるが、先の実施例でのネットリストを記憶させておくネットリスト管理部、入出力端子ならびにフリップフロップの期待値を予め貯えておく入出力端子、フリップフロップ期待値管理部、またテスト結果の出力端子状態値を記録しておく推定値、実測値管理部、さらに推定結果の故障候補を記憶しておく故障管理部をそれぞれサーバとしてネットワーク上に備えている。 【0152】310〜313の各管理サーバは201〜20,210〜213の各推定動作機能部のクライアントからの情報検索や情報登録、削除要求をネットワークを介して受付け、要求に基づいて処理を行い、処理完了通知を各要求元のクライアントに対して返し、データの一元管理を行う。 【0153】シーケンス制御部205は201〜204、210〜213の各推定動作機能の動作制御を行い、特にブロック相互間の待ち合わせ制御や動作順序制御を行う。各状態推定機能部である組合せ回路抽出部201、組合せ回路状態推定部202、故障伝搬経路抽出部203、経路選択部204、故障伝搬経路再構成部210、推定状態値判定部211、故障モード分類部212、頻度重み付け部213は先の各状態推定機能部と同等である。 【0154】 【発明の効果】本発明によれば、LSIの出力側から組合せ回路を抽出し、全てのフェイルに対して抽出された組合せ回路入力境界での故障伝搬値を順次推定して溯っていく様にしたので、全回路全信号線に対して故障を仮定し、全ベクタを用いて故障シミュレーションを行う場合に比べ、必要な回路のみの推定演算で済み、演算量が大幅に削減できるという効果がある。 【0155】かつ個々の組合せ回路内故障伝搬経路推定は抽出された組合せ回路に限定されるので、回路全体のシミュレーションに比較し回路規模が大幅に小さくなり計算量が大幅に減少できる。組合せ回路内の故障伝搬経路抽出に関しても故障推定のための組合せ回路入力部故障シミュレーション結果と正常な場合のシミュレーション結果の比較のみで行えるので、計算量も少なく抑えられ、かつ組合せ回路内の再収れん回路に対しても故障伝搬経路が抽出できる。 【0156】本手法の組合せ回路内の伝搬経路推定では、内部に故障が存在する場合、1若しくは2個の故障が存在する場合と夫々仮定して推定するため、伝搬経路の推定誤りを起こしにくい。 【0157】また、全てのフェイルベクタに対して組合せ回路の入力境界の故障伝搬値推定を行い、その故障伝搬推定経路を追って更に前段の組合せ回路へと絞り込んでいく様にしたので、ブリッジ故障等の多重故障の場合でも独立な故障伝搬と相互に影響し合った伝搬と両方を想定できることになり、推定誤りを起こしにくい。タイミング故障についてみても、結果として状態故障として得られる情報からクリティカルパスを抽出し、タイミング故障か否かを推定するので、推定誤りを起こしにくい。 【0158】更に個々の組合せ回路の入力状態推定についても簡略化と故障伝搬経路選択を行いまとめることにより、溯る経路並びに抽出する組合せ回路を大幅に削減でき、演算量を削減できる。 【0159】また、本手法によりスキャンパスが組込まれているものやROM,RAMが組込まれているものについても最適なシーケンスで推定を行うことができるので、故障にかかる時間が大幅に短縮できるという効果がある。 【0160】また実際の故障出力端子からダイナミックに故障伝搬経路を含むと推定される組合せ回路を順次抽出し、状態推定を行いかつ経路選択を行ってLSIの故障箇所を推定していくため、故障推定に要する時間が他の故障辞書を用いる方法と比較し大幅に短縮することができることである。これはLSIの大規模化が進むにつれ顕著になることが十分予想される。 【0161】その理由は、故障辞書を用いる従来方法の場合予想される全てのノードに対して故障仮定をし故障シミュレーションを行って故障辞書を作成するため、LSIが大規模化するとその演算時間が大幅に増大するのに対し、本方法は故障伝搬していると推定される経路を含む組合せ回路に対して推定演算を行うため、シミュレーションの演算対象がSI全体でなく部分的な組合せ回路になり、LSIの大規模化に対しても故障辞書法のように大幅に演算時間増大することはないと考えられる。 【0162】さらに、回路構成と故障箇所の出力端子からの論理深度に依存するため比較的論理深度の浅い場所の故障は推定時間が大幅に短縮できることである。第1の効果で推定シーケンスによる演算時間短縮を述べたが、さらに大幅短縮が可能となる。加えて故障精度をあげたければ推定に用いるテストベクタを増やすことで対応でき演算時間との推定精度とのトレードオフを制御できるという利点も挙げられる。 【0163】その理由は、故障辞書の場合全ての故障仮定点とその出力との関係を検索辞書として用意しないと故障箇所の絞り込みができないが、本手法は故障出力端子からダイナミックに回路抽出を行い入力方向へと溯るため、故障箇所の場所が出力端子から浅いと溯りの到達が早いため、LSIの規模に関係なく比較的短時間で故障箇所の絞り込みが可能となる。 【0164】さらにはまた、故障精度をあげたければ推定に用いるテストベクタを増やすことで対応できるため、演算時間との推定精度とのトレードオフを制御できるという利点も挙げられる。 【0165】その理由は故障推定をテスト結果逐次読み込んでいくことで行い、かつ得られた故障推定結果のみを用いて頻度数の順位付けを行い重み付けをするため、推定精度をよりあげたければ要求するレベルに達するまでテスト結果を読み込み、満足する結果に達した時点で推定を打ち切ることが容易に可能であるからである。 【0166】また,故障辞書法と異なりブリッジ故障である2重故障まで故障を想定しているため、単一縮退故障、オープン故障、ブリッジ故障が比較的精度良く推定できることである。 【0167】その理由は、2重故障を想定して推定故障伝搬経路を求め、得られた経路上で2重故障を仮定するため、より絞られた範囲で故障仮定でき、精度も良くなるからである。また、組合せ回路毎に得られた推定故障伝搬経路を再構成し、故障候補点から故障出力端子まで細分化しながら関連付けるため、出力端子近くのノードの重みが高くなることを回避でき各故障モードの精度があげられるためである。それに対し故障辞書の場合には、故障シミュレーションを2重故障に拡張すると、ネット数の2乗に近い数の組合せで故障仮定を行う必要があり、その組合せ数が爆発的に増大し、故障シミュレーションの処理時間の点で現実的ではない。
|
| 【出願人】 |
【識別番号】000004237 【氏名又は名称】日本電気株式会社
|
| 【出願日】 |
平成10年(1998)7月29日 |
| 【代理人】 |
【弁理士】 【氏名又は名称】▲柳▼川 信
|
| 【公開番号】 |
特開平11−160400 |
| 【公開日】 |
平成11年(1999)6月18日 |
| 【出願番号】 |
特願平10−213359 |
|