(57)【特許請求の範囲】
【請求項１】
実チップに対する実測結果に基づき、前記実チップで故障の発生を示す複数の故障要素について、複数の故障要因の特徴量と各故障要素の誤差または故障率との相関関係を与える関数を求め、求められた前記関数に基づき故障要因を推定するコンピュータに、
各故障要素において前記故障を発生させる、一以上の前記故障要因を含む故障候補が故障要素毎に複数存在する場合、各故障要素における故障候補を指定する故障候補組合せを生成し、
生成された前記故障候補組合せに応じた前記関数を求め、
求められた前記関数に基づき同関数のコストを算出し、
生成された前記故障候補組合せのうち、前記コストを最小にする故障候補組合せを決定する、
処理を実行させる故障解析プログラム。
【請求項２】
前記複数の故障要素のそれぞれについて前記実チップで実測された値と前記関数により算出される値との適合度の逆数を、前記コストとして算出する処理を、前記コンピュータに実行させる、請求項１記載の故障解析プログラム。
【請求項３】
前記関数を線形回帰分析により求める場合、前記関数における前記一以上の故障要因の重みのうち、一定値以上の重みの数を、前記コストとして算出する処理を、前記コンピュータに実行させる、請求項１記載の故障解析プログラム。
【請求項４】
求められた前記関数を用いて、同関数を求めた時の前記故障候補組合せにおける各故障候補を他の故障候補に一つずつ入れ替えた際の、同関数の仮コストを算出し、同仮コストを最も下げる前記他の故障候補を含む新たな故障候補組合せを生成する処理を、前記コンピュータに実行させる、請求項１〜請求項３のいずれか一項に記載の故障解析プログラム。
【請求項５】
前記一以上の故障要因を、より多くの故障要因の中から選択し、
選択された前記一以上の故障要因の組合せについて、決定された前記故障候補組合せに応じた前記関数の適合度を算出し、
選択された前記一以上の故障要因の組合せのうち、前記適合度を最大にする組合せについて得られた前記故障候補組合せを、前記コストを最小にする故障候補組合せとして決定する、請求項１〜請求項４のいずれか一項に記載の故障解析プログラム。
【請求項６】
実チップに対する実測結果に基づき、前記実チップで故障の発生を示す複数の故障要素について、一以上の故障要因の特徴量と各故障要素の誤差または故障率との相関関係を与える関数を求め、求められた前記関数に基づき故障要因を推定する故障解析装置であって、
各故障要素において前記故障を発生させる、一以上の前記故障要因を含む故障候補が故障要素毎に複数存在する場合、各故障要素における故障候補を指定する故障候補組合せを生成する生成部と、
前記生成部で生成された前記故障候補組合せに応じた前記関数を求める解析部と、
前記解析部で求められた前記関数に基づき同関数のコストを算出するコスト算出部と、
前記生成部で生成された前記故障候補組合せのうち、前記コスト算出部で得られる前記コストを最小にする故障候補組合せを決定する決定部とを有する、故障解析装置。
【請求項７】
コンピュータにより、実チップに対する実測結果に基づき、前記実チップで故障の発生を示す複数の故障要素について、複数の故障要因の特徴量と各故障要素の誤差または故障率との相関関係を与える関数を求め、求められた前記関数に基づき故障要因を推定する故障解析方法であって、
各故障要素において前記故障を発生させる、一以上の前記故障要因を含む故障候補が故障要素毎に複数存在する場合、各故障要素における故障候補を指定する故障候補組合せを生成し、
生成された前記故障候補組合せに応じた前記関数を求め、
求められた前記関数に基づき同関数のコストを算出し、
生成された前記故障候補組合せのうち、前記コストを最小にする故障候補組合せを決定する、故障解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、故障解析プログラム，故障解析装置および故障解析方法に関する。
【背景技術】
【０００２】
チップ、例えばＬＳＩ（Large Scale Integration）等の集積回路を設計製造する際には、製造された実チップについて、エラー原因解析やスピードパス解析が行なわれる。エラー原因解析は、ＬＳＩの歩留まりが上がらない原因、つまり不良（エラー）の発生原因を調べるものである。スピードパス解析は、実チップ上で信号が入力側レジスタから出力側レジスタへ伝わる時間が設計時の予想よりも長い理由が何かを調べるものである。以下の説明では、エラー原因解析やスピードパス解析を総称して故障解析と呼ぶ場合がある。
【０００３】
一般的な故障解析は、例えば以下の手順[i]〜[iv]で行なわれる。
[i] 設計対象の実チップにおけるＮ（Ｎは自然数）個の要素に対して、設計時の見積もり値と実チップでの実測値とが予め取得される。ここで、各要素ｎ（n=1,2,…,N）における設計時の見積もり値をＴdesign(n)、実チップでの各要素ｎにおける実測値をＴproduct(n)、各要素ｎにおける誤差（または故障率／エラー率）をε(n)とすると、各要素ｎに対し下式(1)の関係が成り立つ。
Ｔproduct(n)＝Ｔdesign(n)＋ε(n)        (1)
【０００４】
[ii] 故障要因の候補が、Ｍ（Ｍは自然数）種類あるものとし、実チップのｎ番目の要素ｎ（または部分回路ｎ）に対するｍ番目の要因ｍ（m=1,2,…,M）の影響度を求め、その影響度の値をa(m,n)と置く。
[iii] 故障要因ｍと各故障要素ｎの誤差ε(n)との相関関係を与える関数ｆ（下式(2)参照）を求める。
ε(n)＝ｆ(a(1,n),a(2,n),...,a(M,n))        (2)
【０００５】
この関数ｆを求める方法としては、回帰分析や、ＳＶＭ（Support Vector Machine）などを利用する機械学習などが用いられる。単純な例では、各要因ｍの影響度（特徴量）amを変数とする関数ｆを、下式(3)のように、
ｆ(a1,a2,...am,...,aM)＝a1*X1＋a2*X2＋...＋am*Xm＋...＋aM*XM        (3)
と置き、Ｎ個のε(n)について、最もよい近似を与える重みX1,X2,...,Xm,...XMを線形回帰分析によって求める。より具体的には、例えば下式(4-1)〜(4-N)からなる連立方程式を線形回帰分析によって解き、重みX1,X2,...,Xm,...,XMを算出する。
ε(1)＝a(1,1)*X1＋a(2,1)*X2＋...＋a(m,1)*Xm＋...＋a(M,1)*XM        (4-1)
：                                                                ：
ε(n)＝a(1,n)*X1＋a(2,n)*X2＋...＋a(m,n)*Xm＋...＋a(M,n)*XM        (4-n)
：                                                                ：
ε(N)＝a(1,N)*X1＋a(2,N)*X2＋...＋a(m,N)*Xm＋...＋a(M,N)*XM        (4-N)
【０００６】
上式(4-1)〜(4-N)における係数a(m,n)は、要素ｎに対する要因ｍの影響度（特徴量）の値であり、実チップの設計情報から得られる。具体的には後述するごとく、a(m,n)は、例えば、グループ（部分回路）ｎにおける各配線層ｍの配線長、または、出力側レジスタ（フリップフロップ）ｎに繋がる活性化パス上におけるセルタイプｍのセル使用数である。
【０００７】
[iv] 上記手順[iii]で得られた関数ｆの形から故障の要因が推定される。例えば、重みX1〜XMが算出され上式(3)の関数ｆが得られた場合、重みX1〜XMの中で絶対値の最も大きなものに対応する要因の影響が、最も大きいと推定する。例えば、重みXmの絶対値が最大であれば、要因ｍ（セルタイプｍあるいは配線層ｍ）が故障の原因であると推定される。
【０００８】
次に、エラー原因解析およびスピードパス解析について、図１３，図１４および図１７を参照しながら、より具体的に説明する。
エラー原因解析は、実チップにおいて不良が多発している場合、その不良の発生原因を調べる。例えば４層目の配線を作る時に問題が生じていたり４層目に長い配線を有しているネットのエラー率が高かったりする場合、エラー原因解析によって４層目（配線層４）が不良の発生原因として推定される。
【０００９】
このエラー原因解析に際しては、まず、図１３の左側に示すように、チップにおけるネットがＮ個のグループ（要素）１〜Ｎに分けられ、各グループｎの各配線層ｍにおける配線長の合計が、影響度(特徴量)ａ(m,n)として取得される。また、各グループｎにおけるエラー率ε(n)が、実チップに対する実測結果に基づき取得される。このように取得された影響度ａ(m,n)およびエラー率ε(n)が上式(4-1)〜(4-N)に適用され、例えば図１３の右側に示すように、重みX1〜XMが算出される。算出された重みX1〜XMを参照すると明かなように、４層目配線長に対応する重みX4の絶対値が最大であり基準値を超えているので、配線層４が故障つまりエラーの原因であると推定される。
【００１０】
また、スピードパス解析は、実チップを製造したところ所定の性能が得られない場合、その要因を調べる。例えば、特定のセルタイプのセルでの遅延実測値が設計時の遅延見積もり値よりも遅かったり、そのセルタイプのセルを多く含むパスの遅延実測値が設計時の遅延見積もり値よりも遅かったりする場合、スピードパス解析によって、その特定のセルタイプが遅延要因として推定される。
【００１１】
このスピードパス解析に際しては、まず、図１４の左側に示すように、遅延実測値が設計時の遅延見積もり値よりも遅いＮ個のＦＦ（フリップフロップ；要素）１〜Ｎが見つかっているとする。各ＦＦｎには、１本の活性化パスｎが入力側から繋がっており、各活性化パスｎ上におけるセルタイプｍ (Type m)のセル使用数が、影響度(特徴量)ａ(m,n)として取得される。また、各ＦＦｎ（パスｎ）における遅延誤差ε(n)が、実チップでの遅延実測値と設計時の遅延見積もり値との遅延誤差が取得される。このように取得された影響度ａ(m,n)および遅延誤差ε(n)が上式(4-1)〜(4-N)に適用され、例えば図１７に示すように、重みX1〜XMが算出される。図１７に示す例では、セルタイプｆ_63, ｆ_72, ｆ_153の重みX63, X72, X153の絶対値が基準値を超えているので、３種類のセルタイプｆ_63, ｆ_72, ｆ_153が、故障つまり遅延の原因であると推定される。
【００１２】
次に、エラー原因解析での課題およびスピードパス解析での課題について、図１５〜図１８を参照しながら説明する。
まず、エラー原因解析での課題について説明する。図１５に示す例では、４個のバッファＢ１〜Ｂ４を介し５個のネット（領域）Ｎ１〜Ｎ５を接続することにより一連のネットが構成される。この一連のネットで故障が発生していることは分かるが、５個のネットＮ１〜Ｎ５のどこで故障が発生しているかは分からない場合について考える。このような場合、故障発生領域として特定可能な候補領域（故障候補）である５個のネットＮ１〜Ｎ５が存在し、５個のネットＮ１〜Ｎ５のうちの少なくとも一つをグループｎとして選択しエラー原因解析が実行される。
【００１３】
このとき、例えば配線層４が故障の原因である場合、５個のネットの中から、問題の配線層４を使用しているネットがグループｎとして選択されていれば、エラー原因解析の結果は、問題の配線層４の情報を反映したものとなり、配線層４が原因として特定される。しかし、５個のネットの中から、問題の配線層４を使用していないネットがグループｎとして選択されると、解析結果に誤りが発生する可能性がある。上述したエラー原因解析手法によれば、一部のグループで不適切なネット（つまり故障配線層を含まないネット）を選択しても必ずしも誤った結果が出力されることはない。しかし、不適切なネットを選択したグループの数が多すぎると、解析結果に誤りが発生し、故障原因を特定できなくなる可能性が高くなる。
【００１４】
ついで、スピードパス解析での課題について説明する。図１６に示す例では、遅延故障を生じているＦＦｎに、２つの活性化パスＰ１，Ｐ２が、２入力１出力のゲートＧを介して到達している。このとき、ＦＦｎで遅延故障が生じていることは、遅延実測値と設計時の遅延見積もり値とから分かるが、２つの活性化パスＰ１，Ｐ２のうちどちらが遅延故障の要因であるかは分からない。このような場合、２つの活性化パスＰ１，Ｐ２のうちの一つを活性化パスｎとして選択しスピードパス解析が実行される。
【００１５】
このとき、例えば活性化パスＰ２が遅延の原因パスである場合、遅延の原因パスである活性化パスＰ２がＦＦｎに係るパスｎとして選択されていれば、スピードパス解析の結果は、活性化パスＰ２上のセル情報等を反映したものとなる。つまり、活性化パスＰ２上に存在するセルタイプが原因として特定される。しかし、遅延の原因パスでない活性化パスＰ１がＦＦｎに係るパスｎとして選択されてしまうと、解析結果に誤りが発生する可能性がある。上述したスピードパス解析手法によれば、一部のＦＦで不適切な活性化パスを選択しても必ずしも誤った結果が出力されることはない。しかし、不適切な活性化パスを選択したＦＦの数が多すぎると、解析結果に誤りが発生し、故障原因を特定できなくなる可能性が高くなる。
【００１６】
ここで、図１７および図１８を参照しながら、スピードパス解析によって得られた具体的な解析結果の例について説明する。図１７は故障候補の選択が適切な場合の解析結果の例を示す図、図１８は故障候補の選択が不適切な場合の解析結果の例を示す図である。図１７および図１８では、スピードパス解析の実験例が示されており、この実験例では、５００個程度のパスに対し故障原因のセルタイプを３種類作り、３種類のセルタイプｆ_63, ｆ_72, ｆ_153を、スピードパス解析により検出できるか否かを実験している。
【００１７】
図１７では、各ＦＦｎに到達する活性化パスとして、遅延の原因パスを適切に選択できている場合、つまり故障候補の選択が適切な場合の解析結果の例が示されている。このように故障候補の選択が適切な場合には、図１７に示すように、セルタイプｆ_63, ｆ_72, ｆ_153の重みX63, X72, X153の絶対値が一定値(閾値)を超えているので、３種類のセルタイプｆ_63, ｆ_72, ｆ_153が、故障つまり遅延の原因であると推定される。
【００１８】
図１８では、各ＦＦｎに到達する活性化パスとして、遅延の原因パスを適切に選択できていない場合、つまり故障候補の選択が不適切な場合の解析結果の例が示されている。このように故障候補の選択が不適切な場合、図１８に示すように、多種類のセルタイプの重みの絶対値が一定値(閾値)を超え、遅延の原因の候補となる多種類のセルタイプが残り、遅延の原因を推定することができない。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】国際公開２００４−０２７４４０号パンフレット
【特許文献２】特開平０６−０８３８０３号公報
【特許文献３】特開２０００−２６８０７３号公報
【特許文献４】特表２００３−５２４８３１号公報
【発明の概要】
【発明が解決しようとする課題】
【００２０】
１つの側面では、本件は、故障要因の推定精度を高めることを目的とする。
【課題を解決するための手段】
【００２１】
本件の故障解析プログラムは、実チップに対する実測結果に基づき、前記実チップで故障の発生を示す複数の故障要素について、複数の故障要因の特徴量と各故障要素の誤差または故障率との相関関係を与える関数を求め、求められた前記関数に基づき故障要因を推定するコンピュータに、各故障要素において前記故障を発生させる、一以上の前記故障要因を含む故障候補が故障要素毎に複数存在する場合、各故障要素における故障候補を指定する故障候補組合せを生成し、生成された前記故障候補組合せに応じた前記関数を求め、求められた前記関数に基づき同関数のコストを算出し、生成された前記故障候補組合せのうち、前記コストを最小にする故障候補組合せを決定する、処理を実行させる。
【００２２】
また、本件の故障解析装置は、実チップに対する実測結果に基づき、前記実チップで故障の発生を示す複数の故障要素について、一以上の故障要因の特徴量と各故障要素の誤差または故障率との相関関係を与える関数を求め、求められた前記関数に基づき故障要因を推定するもので、以下の生成部，解析部，コスト算出部および決定部を有することを要件としている。ここで、前記生成部は、各故障要素において前記故障を発生させる、一以上の前記故障要因を含む故障候補が故障要素毎に複数存在する場合、各故障要素における故障候補を指定する故障候補組合せを生成する。前記解析部は、前記生成部で生成された前記故障候補組合せに応じた前記関数を求める。前記コスト算出部は、前記解析部で求められた前記関数に基づき同関数のコストを算出する。前記決定部は、前記生成部で生成された前記故障候補組合せのうち、前記コスト算出部で得られる前記コストを最小にする故障候補組合せを決定する。
【００２３】
さらに、本件の故障解析方法は、コンピュータにより、実チップに対する実測結果に基づき、前記実チップで故障の発生を示す複数の故障要素について、複数の故障要因の特徴量と各故障要素の誤差または故障率との相関関係を与える関数を求め、求められた前記関数に基づき故障要因を推定するものであって、各故障要素において前記故障を発生させる、一以上の前記故障要因を含む故障候補が故障要素毎に複数存在する場合、各故障要素における故障候補を指定する故障候補組合せを生成し、生成された前記故障候補組合せに応じた前記関数を求め、求められた前記関数に基づき同関数のコストを算出し、生成された前記故障候補組合せのうち、前記コストを最小にする故障候補組合せを決定する。
【発明の効果】
【００２４】
故障要因の推定精度の向上をはかることができる。
【図面の簡単な説明】
【００２５】
【図１】第１実施形態の故障解析装置の機能構成を示すブロック図である。
【図２】（Ａ），（Ｂ）はそれぞれ解析結果が不適切な場合および適切な場合の説明変数の数を説明するための図である。
【図３】本実施形態による故障解析手法の原理を説明するための図である。
【図４】第１実施形態の故障解析装置による解析動作を説明するためのフローチャートである。
【図５】第１実施形態の故障解析装置のコスト算出動作を説明するためのフローチャートである。
【図６】第１実施形態の故障解析装置の故障候補組合せの生成動作を説明するためのフローチャートである。
【図７】（Ａ），（Ｂ）はそれぞれ本実施形態による最適化処理前後での解析結果の例を示す図である。
【図８】第１実施形態の故障解析装置による解析動作を、簡易かつ具体的な例を対象にして説明する図である。
【図９】第１実施形態の故障解析装置による解析動作を、簡易かつ具体的な例を対象にして説明する図である。
【図１０】第１実施形態の故障解析装置による解析動作を、簡易かつ具体的な例を対象にして説明する図である。
【図１１】第２実施形態の故障解析装置の機能構成を示すブロック図である。
【図１２】第２実施形態の故障解析装置による解析動作を説明するためのフローチャートである。
【図１３】エラー原因解析を説明するための図である。
【図１４】スピードパス解析を説明するための図である。
【図１５】エラー原因解析での課題を説明するための図である。
【図１６】スピードパス解析での課題を説明するための図である。
【図１７】故障候補の選択が適切な場合の解析結果の例を示す図である。
【図１８】故障候補の選択が不適切な場合の解析結果の例を示す図である。
【発明を実施するための形態】
【００２６】
以下、図面を参照して実施の形態を説明する。
〔１〕故障候補の選択が不適切な場合に現れる現象
図１７および図１８を参照しながら上述した通り、故障解析では、各故障要素ｎに故障を発生させる、故障要因（層／セルタイプ等）を含む故障候補（ネット／活性化パス等）が故障要素ｎ毎に複数存在する場合、その故障候補を適切に選択できないと、適切な解析結果を得られない可能性が高い。例えば、エラー原因解析では、各グループｎに属するネットとして、エラーの原因層を含むネットを選択できていない場合、つまり各グループｎにおける故障候補のネットの選択が不適切な場合、エラーの原因層を適切に推定できない可能性がある。スピードパス解析では、各ＦＦｎに到達する活性化パスとして遅延の原因パスを選択できていない場合、つまり故障候補の活性化パスの選択が不適切な場合、遅延の原因（セルタイプ等）を適切に推定できない可能性がある。
【００２７】
上述のように故障候補の選択が不適切であったために適切な解析結果が得られなかった場合、その解析結果等には、以下のような現象[Ｉ]，[II]が現れる。
[I] 適合度の低下
適合度とは、解析結果と実測値との一致の度合いに応じた値であり、一致の度合いが高い場合には大きくなり、一致の度合いが低いと小さくなる。故障候補の選択が不適切であったために適切な解析結果が得られなかった場合には、解析結果と実測値との一致の度合いは低くなり適合度は低くなる。
回帰分析により関数ｆ(a1,a2,...,aM)を求めた場合の具体的な適合度としては、例えば、以下の[I-1]あるいは[I-2]が用いられる。
【００２８】
[I-1] 解析結果と実測値との差の二乗和の逆数。より具体的には、故障要素ｎ毎に、解析結果である関数ｆ(a1,a2,...,aM)を用いて算出される誤差ε’(n)と実チップに対する実測結果である誤差ε(n)とが取得される。そして、これらの誤差の差の二乗和Σ(ε’(n)−ε(n))２が算出され、この二乗和Σ(ε’(n)−ε(n))２の逆数に比例した値が適合度として用いられる。二乗和Σ(ε’(n)−ε(n))２の値は、故障候補の選択が不適切で解析結果と実測値との一致の度合いが低くなると大きくなる一方で、故障候補の選択が適切で解析結果と実測値との一致の度合いが高くなると０に近づく。したがって、二乗和Σ(ε’(n)−ε(n))２の逆数に比例した値を、適合度として用いることができる。
【００２９】
[I-2] 解析結果と実測値との相関係数。より具体的には、故障要素ｎ毎に、解析結果である関数ｆ(a1,a2,...,aM)を用いて算出される誤差ε’(n)と実チップに対する実測結果に基づく誤差ε(n)とが取得される。そして、これらの誤差ε’(n)とε(n)との相関係数が算出され、算出された相関係数が適合度として用いられる。この相関係数は、故障候補の選択が適切で解析結果と実測値との一致の度合いが高くなると１に近づく一方で、故障候補の選択が不適切で解析結果と実測値との一致の度合いが低くなり誤差ε’(n)とε(n)との相関が無くなると０に近づく。したがって、相関係数を、適合度として用いることができる。この相関係数のことを以下では「決定係数」と呼ぶ場合がある。
【００３０】
[I-3] 機械学習により関数ｆ(a1,a2,...,aM)を求めた場合、学習結果を教師信号に適用すると、誤った答えを返す要素の数の逆数が、適合度として用いられる。つまり、誤った答えを返す要素の数は、故障候補の選択が不適切で解析結果と実測値との一致の度合いが低くなると多くなる一方で、故障候補の選択が適切で解析結果と実測値との一致の度合いが高くなると少なくなる。したがって、誤った答えを返す要素の数の逆数に比例した値を、適合度として用いることができる。
【００３１】
[II] 説明変数の増加
説明変数とは、線形回帰分析により関数ｆ(a1,a2,...,aM)を求める場合において、その関数ｆにおける故障要因１〜Ｍ（層／セルタイプ等）それぞれの特徴量a1〜aMのうち、一定値(閾値)以上の重みXmをもつ特徴量ａmのことである。このとき、故障候補の選択が不適切であったために適切な解析結果が得られなかった場合、不適切な故障候補の存在を理由付けすべく、故障に係る本来の故障要因に無関係の多数の故障要因（特徴量）の重みが大きくなる。このため、例えば図２（Ａ）や図１８に示すように、説明変数の数が大幅に増加する。これに対し、故障候補の選択が適切であり適切な解析結果が得られた場合、関数ｆは故障を適切に表現しており、故障に係る本来の故障要因の重みのみが大きくなる。このため、例えば図２（Ｂ）や図１７に示すように、説明変数の数は２，３個になる。
【００３２】
〔２〕故障解析手法の原理
上記項目[Ｉ]，[II]で説明した適合度や説明変数の数は、後述するように、本実施形態での最適化処理、つまり故障候補の最適な組合せを決定する処理を実行する際に、コストとして用いられる。つまり、本実施形態では、各故障要素ｎにおいて故障を発生させる、一以上の故障要因ｍを含む故障候補（活性化パス／候補領域）が故障要素毎に複数存在する場合、上記項目[Ｉ]，[II]で説明した適合度や説明変数の数をコストとして用い、各故障要素ｎに対し適切な一の故障候補を指定する故障候補組合せが選択される。
【００３３】
以下、本実施形態では、説明を分かりやすくするため、故障解析がスピードパス解析である場合について説明する。この場合、故障要素ｎは例えばフリップフロップｎ（以下、ＦＦｎと記述）、故障要因ｍは例えばセルタイプｍ、故障候補は例えばＦＦｎに繋がる活性化パスとなる。なお、故障解析がエラー原因解析である場合にも、本実施形態はスピードパス解析の場合と同様に適用される。エラー原因解析の場合、故障要素ｎは例えばグループ（部分回路）ｎ、故障要因ｍは例えば配線層ｍ、故障候補が例えばグループｎにおける候補領域となる。
【００３４】
また、以下では、Ｎ個の故障要素（ＦＦ１〜ＦＦＮ）のうちＰ個の故障要素（ＦＦ１〜ＦＦＰ；Ｐ≦Ｎ）のそれぞれに、複数の故障候補（活性化パス）が存在しているものとする。そして、各ＦＦｉ（i=1,2,...,P）に繋がる活性化パスの本数をＫiとする。したがって、Ｐ個の故障要素に対する故障候補の組合せの総数はＫ1×Ｋ2×…×ＫPとなる。各ＦＦｎに繋がるＫi本の活性化パスのうちの一つを指定する符号としては、ｋiが用いられる（ｋi＝1,2,...,Ｋi）が用いられる。符号ｋiを用いることにより、Ｐ個の故障要素のそれぞれにおける故障候補を指定する故障候補組合せは、ベクトルｋｖ＝(ｋ1,ｋ2,...,ｋＰ)として記述される。ｋi＝１の場合は、ＦＦｉについて１番目の活性化パスが選択されていることを示し、ｋi＝２の場合は、ＦＦｉについて２番目の活性化パスが選択されていることを示し、ｋi＝Ｋiの場合は、ＦＦｉについてＫi番目の活性化パスが選択されていることを示す。
【００３５】
ここで、図３を参照しながら、本実施形態による故障解析手法の原理、特に本実施形態における故障候補の最適な組合せを決定する処理について説明する。図３において、○は故障候補（活性化パス）を図示化したものであり、特に、網掛けを付された○は、各故障要素ＦＦｎについての適切な故障候補を図示化したもので、各故障要素ＦＦｎに一つだけ存在している。
【００３６】
図３に示す例では、Ｎ＝８，Ｐ＝４であり、故障要素ＦＦ１には故障候補として３本の活性化パス（ｋ1＝1,2,3；Ｋ1＝３）が存在し、故障要素ＦＦ２には故障候補として２本の活性化パス（ｋ2＝1,2；Ｋ2＝２）が存在している。また、故障要素ＦＦ３には故障候補として２本の活性化パス（ｋ3＝1,2；Ｋ3＝２）が存在し、故障要素ＦＦ４には故障公報として３本の活性化パス（ｋ4＝1,2,3；Ｋ4＝３）が存在している。さらに、故障要素ＦＦ５〜ＦＦ８には故障候補として１本の活性化パスが存在しているのみなので、故障要素ＦＦ５〜ＦＦ８は故障候補組合せの対象にはならない。
【００３７】
したがって、図３に示す例では、４個の故障要素ＦＦ１〜ＦＦ４には、３×２×２×３＝３６通りの故障候補組合せ（活性化パスの組合せ）が存在する。本実施形態では、この３６通りの組合せの中から最も適切な故障候補の組合せが、適合度や説明変数の数に基づくコストを用いて見いだされ決定される。図３においては、選択されるべき適切な故障候補は、網がけを付された○として図示されているが、実際には、どの故障候補が適切なものであるか（網がけを付されているか）は見えていない。
【００３８】
本実施形態では、上述した故障候補組合せｋｖの最適化問題を、以下のように定式化して解くことにより、適切な故障候補の組合せが選択され、故障要因が高い精度で推定される。つまり、Ｐ個の故障候補の組が存在し、第ｉ組（i=1,2,...,P）にＫi個の故障候補が存在する場合において、コストＣ(ｋ1,ｋ2,...,ｋＰ)（ｋj≦Ｋｊ;j=1,2,...,P）を最小にする故障候補組合せｋｖbest＝(ｋbest1,ｋbest2,...,ｋbestＰ)が求められる。コストＣとしては、例えば、上述した適合度の逆数あるいは説明変数の数が用いられ、適合度の逆数あるいは説明変数の数を最小にする故障候補ｋｖが、最適な故障候補組合せｋｖbestとして求められる。
【００３９】
一般に、組合せの最適化問題は、組合せの数が指数関数的に増大するために解けないと考えられているが、本件が対象としている故障解析の場合、故障要素（ＦＦやグループ）に大きな影響を与える故障候補の数は、数個、例えば２，３個に限られる場合が多い。つまり、故障要素に対し意味のある故障候補の数は数個に限られるので、上述のような最適化問題を解くことが可能である。また、上記手順[i]〜[iv]で行なわれる一般的な故障解析は、一部の故障要素について不適切な故障候補を選択したとしても故障要因を推定可能であるため、本実施形態の手法により最適な故障候補の組合せに近い組合せを見い出すことができれば、適切な故障要因を推定することが可能になる。
【００４０】
〔３〕入力情報および出力情報
上述のごとく故障候補組合せの最適化問題を解いて故障解析を行なう場合に入力されるべき入力情報と、その故障解析によって得られ出力される出力情報とをまとめると、以下の通りである。
〔３−１〕入力情報
[1] 各故障要素ｉ（第ｉ組）における故障候補の数Ｋi（i=1,2,...,P）
【００４１】
[2] 故障候補組合せｋｖを選択した場合の故障要素ｎにおける、設計時見積もり値と実チップでの実測値との遅延誤差／故障率ε(n,kv)。スピードパス解析の場合、ε(n,kv)は、例えば、故障候補組合せｋｖを選択した場合における、ＦＦｎでの遅延誤差である。エラー原因解析の場合、ε(n,kv)は、例えば、故障候補組合せｋｖを選択した場合における、グループ（部分回路）ｎでの故障率である。ここで、各故障要素ｎにおける設計時の見積もり値をＴdesign(n)、実チップでの各故障要素ｎにおいて故障候補組合せｋｖを選択した場合の実測値をＴproduct(n,kv)とすると、各故障要素ｎに対し下式(5)の関係が成り立つ。
Ｔproduct(n)＝Ｔdesign(n,kv)＋ε(n,kv)        (5)
【００４２】
[3] 故障候補組合せｋｖを選択した場合における、故障要素ｎに対する故障要因ｍの影響度／特徴量ａ(m,n,kv)。全ての影響度ａ(m,n,kv)の数が多大である場合には、全ての影響度ａ(m,n,kv)を算出するために必要なデータが入力される。スピードパス解析の場合、ａ(m,n,kv)は、例えば、故障候補組合せｋｖを選択した場合における、ＦＦｎに対するセルタイプｍの影響度、具体的にはセルタイプｍのセル使用数である。エラー原因解析の場合、ａ(m,n,kv)は、例えば、故障候補組合せｋｖを選択した場合における、グループ（部分回路）ｎに対する第ｍ配線層の影響度、具体的には第ｍ配線層の配線長である。
【００４３】
〔３−２〕出力情報
[1]コストＣを最小にする最適な故障候補組合せｋｖbest＝(ｋbest1,ｋbest2,...,ｋbestＰ)
[2]最適な故障候補組合せｋｖbestを選択した場合の、故障要因ｍと各故障要素ｎの誤差／誤差率ε(n,kvbest)との相関関係を与えるの関数ｆ（下式(6)参照）
ε(n,kvbest)＝ｆ(a(1,n,kvbest),a(2,n,kvbest),...,a(M,n,kvbest))        (6)
【００４４】
〔４〕第１実施形態
〔４−１〕第１実施形態の故障解析装置の構成
図１は、第１実施形態の故障解析装置１の機能構成を示すブロック図である。
図１に示す故障解析装置１は、実チップに対する実測結果に基づき、コストＣを最小にする最適な故障候補組合せｋｖbest＝(ｋbest1,ｋbest2,...,ｋbestＰ)と、最適な故障候補組合せｋｖbestを選択した場合の関数ｆ（上式(6)参照）とを求め、求められた関数ｆに基づき故障要因を推定する。
【００４５】
故障解析装置１は、一般的なパーソナルコンピュータ等の計算機から構成され、処理部１０および記憶部２０を有するほか、設計者によって操作され各種情報を本装置１に入力するマンマシンインタフェース（図示略）を有している。処理部１０は、ＣＰＵ（Central Processing Unit）等であり、記憶部２０は、ＲＡＭ（Random Access Memory），ＲＯＭ（Read Only Memory），ハードディスク等の内部記憶装置であってもよいし、外部記憶装置であってもよい。
【００４６】
処理部１０は、故障解析プログラムを実行することにより、後述する生成部１１，解析部１２，コスト算出部１３および決定部１４としての機能を果たす。
記憶部２０は、上述した故障解析プログラムを記憶するほか、上記項目〔３−１〕で上述した入力情報[1]〜[3]を予め記憶している。つまり、各故障要素ｉ（第ｉ組）における故障候補の数Ｋi（i=1,2,...,P）と、故障候補組合せｋｖを選択した場合の故障要素ｎにおける遅延誤差／故障率ε(n,kv)と、故障候補組合せｋｖを選択した場合の影響度ａ(m,n,kv)とが記憶部２０に記憶される。なお、全ての影響度ａ(m,n,kv)の数が多大である場合には、全ての影響度ａ(m,n,kv)を算出するために必要なデータが記憶部２０に記憶され、処理部１０において、同データに基づき必要な影響度ａ(m,n,kv)が算出される。
【００４７】
生成部１１は、Ｐ個の故障要素（ＦＦ１〜ＦＦＰ）のそれぞれに複数の故障候補（活性化パス）が存在する場合に、各故障要素ＦＦｉの活性化パス故障候補を指定する故障候補組合せｋｖを生成する。生成部１１は、解析開始時には故障候補組合せｋｖの初期値を生成するほか、解析開始後には、後述する貪欲算法や遺伝的アルゴリズム等によって、別の故障候補組合せｋｖを生成する。
【００４８】
解析部１２は、生成部１１で生成された故障候補組合せｋｖに応じた関数ｆを、上述した一般的な故障解析の手順[i]〜[iii]に従って求める。
コスト算出部１３は、解析部１２で得られた、故障候補組合せｋｖに応じた関数ｆ(kv)に基づき、同関数ｆ(kv)のコストＣ(ｋ1,ｋ2,...,ｋＰ)（＝Ｃ(kv)）を算出する。コストＣ(kv)としては、例えば、上述したような適合度の逆数もしくは説明変数の数が用いられる。なお、コストＣ(kv)は、「適合度の逆数」や「説明変数の数」に限られず、適合度が増加すると減少するパラメータであればよい。
【００４９】
適合度としては、例えば、解析部１２で得られた関数ｆ(kv)により算出される誤差ε’(n,kv)と実測結果の誤差ε(n)とに基づく二乗和Σ(ε’(n,kv)−ε(n))２の逆数に比例した値を用いることができる。また、適合度としては、例えば、解析部１２で得られた関数ｆ(kv)により算出される誤差ε’(n,kv)と実測結果の誤差ε(n)との相関係数（決定係数）を用いることができる。さらに、適合度としては、例えば、解析部１２で機械学習により関数ｆ(kv)を求めた場合、上述した「誤った答えを返す要素の数」の逆数に比例した値を用いることができる。
【００５０】
説明変数とは、項目[II]で上述したように、解析部１２で線形回帰分析により関数ｆ(kv)を求める場合において、その関数ｆ(kv)における故障要因１〜Ｍ（セルタイプｍ／層ｍ等）それぞれの特徴量a1〜aMのうち、一定値(閾値)以上の重みXmをもつ特徴量ａmである。このような特徴量amの数を、コストＣ(kv)として用いることができる。
【００５１】
決定部１４は、生成部１１で生成された故障候補組合せｋｖのうち、コスト算出部１３で得られるコストＣ(kv)を最小にする故障候補組合せｋｖbest=(ｋbest1,ｋbest2,...,ｋbestＰ)を決定する。決定部１４で決定された故障候補組合せｋｖbestと、この故障候補組合せｋｖbestを選択した際の関数ｆ(kvbest)とが出力され、処理部１０は、上述した一般的な故障解析の手順[iv]と同様、関数ｆ(kvbest)の形から故障の要因を推定する。
【００５２】
ここで、生成部１１は、別の故障候補組合せｋｖを、以下の手法[A1]または[A2]によって生成する。
[A1]生成部１１は、解析部１２で得られた関数ｆ(kv)を用い、同関数ｆ(kv)を求めた時の故障候補組合せｋｖにおける各故障候補を他の故障候補に一つずつ入れ替えた際の、同関数ｆ(fv’)の仮コストＣ(kv’)を算出する。ｋｖ’は、故障候補組合せｋｖにおける各故障候補を他の故障候補に一つだけ入れ替えた組合せを示す。そして、生成部１１は、仮コストＣ(kv’)を最も下げる他の故障候補を含む故障候補組合せｋｖ’を、別の故障候補組合せつまり新たな故障候補組合せｋｖとして生成する。このとき、生成部１１は、仮コストＣ(kv’)として適合度の逆数を算出する。仮コストＣ(kv’)を算出する際の適合度としては、例えば、解析部１２で得られた関数ｆ(kv)により算出される誤差ε’(n,kv’)と実測結果の誤差ε(n)とに基づく二乗和Σ(ε’(n,kv’)−ε(n))２の逆数に比例した値を用いることができる。また、仮コストＣ(kv’)を算出する際の適合度としては、例えば、解析部１２で得られた関数ｆ(kv)により算出される誤差ε’(n,kv’)と実測結果の誤差ε(n)との相関係数（決定係数）を用いることができる。なお、上述のように故障候補組合せｋｖにおける各故障候補を他の故障候補に一つずつ入れ替えを行ない、仮コストＣ(kv’)を最小にする入れ替えを行なった故障候補組合せｋｖ’を新たな故障候補組合せｋｖとして生成する手法は、貪欲算法（グリーディアルゴリズム）と呼ばれる。この貪欲算法による生成手法の詳細や具体例については、図６および図８〜図１０を参照しながら後述する。
【００５３】
[A2]生成部１１は、故障候補組合せｋｖ＝(ｋ1,ｋ2,...,ｋＰ)を遺伝子とみなす遺伝的アルゴリズムにより故障候補組合せｋｖを生成する。この場合、ユーザが指定する複数組の故障候補組合せが遺伝子として予め用意される。用意された複数組の故障個補組合せに基づき、複数組の故障候補組合せのうちの２組の交配（selection）や、突然変異（mutation）が世代毎に行なわれる。各世代で交配や突然変異により生成された故障候補組合せが、生成部１１による生成結果として出力される。
【００５４】
〔４−２〕第１実施形態の故障解析装置の動作
次に、上述のごとく構成された本実施形態の故障解析装置１の具体的な動作について、図４〜図１０を参照しながら説明する。
〔４−２−１〕解析動作
図４に示すフローチャート（ステップＳ１〜Ｓ８）に従って、故障解析装置１による解析動作について説明する。
【００５５】
まず、上記項目〔３−１〕で説明した入力情報[1]〜[3]が、記憶部２０から読み出され処理部１０に入力される（ステップＳ１）。具体的には、Ｋ1×Ｋ2×…×ＫP個の故障候補組合せに関する情報（故障候補の数Ｋi（i=1,2,...,P））と、対象パラメータ遅延誤差／故障率ε(n,kv)と、対応する特徴量ａ(m,n,kv)のリストとが読み出されて処理部１０に入力される。
【００５６】
処理部１０では、生成部１１によって故障候補組合せｋｖの初期値が生成されるとともに、最小コストＣbestの初期値として最大値∞が設定される（ステップＳ２）。故障候補組合せｋｖの初期値としては、例えば、ｋj≦Ｋｊを満たすランダムな値の組合せ(ｋ1,ｋ2,...,ｋＰ)が生成されてもよいし、Ｐ個の故障候補について全て１番目の故障候補を指定する組合せ(1,1,...,1)が生成されてもよい。また、遺伝子アルゴリズムを採用する場合には、故障候補組合せｋｖの初期値は、第１世代の遺伝子として得られる組合せであってもよい。
【００５７】
初期値が設定されると、生成部１１で生成された故障候補組合せｋｖのコストＣ(kv)が算出される（ステップＳ３）。ステップＳ３で実行されるコストＣ(kv)の算出手順については、図５を参照しながら後述する。
コストＣ(kv)が算出されると、決定部１４により、コストＣ(kv)と現時点までの最小コスト値Ｃbestとが比較される（ステップＳ４）。比較の結果がＣbest＞Ｃであれば（ステップＳ４のＹＥＳルート）、最小コストＣbestが、今回算出されたコストＣ(kv)に置き換えられ、故障候補組合せｋｖが、最適組合せ（最適解）ｋｖbestとして置き換えられる（ステップＳ５）。
【００５８】
最小コストＣbestや最適組合せｋｖbestの置き換えが行なわれると、決定部１４により、ループ終了条件が成立しているか否かが判定される（ステップＳ６）。ループ終了条件は、ステップＳ７で貪欲算法を採用している場合、現在の最小コストＣbestをこれ以上下げる故障候補組合せが存在しなくなることである。また、ステップＳ７で遺伝的アルゴリズムを採用している場合、ループ終了条件は、処理世代が予め設定された世代数に到達すること、もしくは、最適解ｋｖbestが予め設定された期間以上に亘り置き換えられないことである。
【００５９】
ループ終了条件が成立しない場合（ステップＳ６のＮＯルート）、生成部１１により、貪欲算法や遺伝的アルゴリズム等を用いて、別の故障候補組合せｋｖが生成され（ステップＳ７）、新たに生成された別の故障候補組合せｋｖについて、ステップＳ３〜Ｓ６の処理が実行される。ステップＳ７で実行される別の故障候補組合せｋｖの生成手順（貪欲算法）については、図６を参照しながら後述する。
【００６０】
一方、ステップＳ４での比較の結果がＣbest≦Ｃであれば（ＮＯルート）、ステップＳ５の処理がスキップされ、ステップＳ６の処理が実行される。
ステップＳ６でループ終了条件が成立すると判定された場合（ＹＥＳルート）、決定部１４により、現在の最適組合せｋｖbestと、この最適補組合せｋｖbestを選択した際の関数ｆ(kvbest)とが出力される（ステップＳ８）。そして、処理部１０では、上述した一般的な故障解析の手順[iv]と同様、関数ｆ(kvbest)の形から故障の要因が推定される。
【００６１】
〔４−２−２〕コスト算出動作
図５に示すフローチャート（ステップＳ１０〜Ｓ１４）に従って、故障解析装置１のコスト算出動作（図４のステップＳ３の詳細処理）について説明する。
生成部１１（ステップＳ２またはステップＳ７）から故障候補組合せｋｖが得られると（ステップＳ１０）、ｎ＝１〜Ｎおよびｍ＝１〜Ｍについて、故障候補組合せｋｖを選択した場合の誤差ε(n,kv)および特徴量ａ(m,n,kv)が求められる（ステップＳ１１）。このとき、誤差ε(n,kv)および特徴量ａ(m,n,kv)は、記憶部２０から読み出されるか、あるいは、記憶部２０に記憶されているデータに基づき算出される。
【００６２】
誤差ε(n,kv)および特徴量ａ(m,n,kv)が得られると、解析部１２により、故障候補組合せｋｖに応じた関数ｆ(kv)が、上述した一般的な故障解析の手順[i]〜[iii]に従って求められる（ステップＳ１２）。
関数ｆ(kv)が求められると、その関数ｆ(kv)に基づき、コスト算出部１３により、同関数ｆ(kv)のコストＣ(kv)が算出される（ステップＳ１３）。コストＣ(kv)としては、上述したように、例えば適合度の逆数や説明変数の数が用いられる。コストＣ(kv)が算出され出力されると、そのコストＣ(kv)について図４のステップＳ４以降の処理が実行される。
【００６３】
〔４−２−３〕故障候補組合せの生成動作
図６に示すフローチャート（ステップＳ２０〜Ｓ２５）に従って、故障解析装置１の故障候補組合せｋｖの生成動作（図４のステップＳ７の詳細処理）について説明する。図６では、生成部１１による故障候補組合せｋｖの生成手法として貪欲算法を採用した場合について説明する。
【００６４】
図４のステップＳ６でループ終了条件が成立しないと判定された場合、生成部１１で前回生成された現在の故障候補組合せｋｖが、生成部１１に入力され（ステップＳ２０）、ステップＳ２１〜Ｓ２５によって次の新たな故障候補組合せｋｖが生成される。まず、現在の故障候補組合せｋｖ＝(ｋ1,ｋ2,...,ｋＰ)における故障候補の一つだけを他の候補に入れ替えた組合せｋｖ’が生成される（ステップＳ２１）。組合せｋｖ’においては、例えば、一つの候補ｋxが他の候補ｋx’に入れ替えられている。
【００６５】
組合せｋｖ’が生成されると、その組合せｋｖ’についての仮コストＣ(kv’)が、生成部１１により、図５のステップＳ１２で得られた関数ｆ(kv)を用いて算出される（ステップＳ２２）。算出された仮コストＣ(kv’)は、組合せｋｖ’に対応付けられて記憶部２０に記憶される（ステップＳ２３）。仮コストＣ(kv’)としては、上述したように、例えば適合度の逆数が用いられる。
【００６６】
ついで、入れ替え対象となりうる全ての故障候補について、ステップＳ２１〜Ｓ２３の処理が実行されたか否かが、生成部１１により判定される（ステップＳ２４）。全ての故障候補についてステップＳ２１〜Ｓ２３の処理が実行されていない場合（ステップＳ２４のＮＯルート）、未処理の故障候補について、ステップＳ２１〜Ｓ２３の処理が繰り返し実行される。
【００６７】
全ての故障候補についてステップＳ２１〜Ｓ２３の処理が実行されている場合（ステップＳ２４のＹＥＳルート）、記憶部２０に記憶された、全ての入れ替え組合せｋｖ’の中から、仮コストＣ(kv’)を最も下げるものが、生成部１１により、新たな故障候補組合せｋｖとして選択される（ステップＳ２５）。新たな故障候補組合せｋｖが選択されると、その故障候補組合せｋｖについて図４のステップＳ３以降の処理が実行される。
【００６８】
ステップＳ２５において、仮コストＣ(kv’)を最も下げる組合せｋｖ’が複数存在する場合には、複数の組合せｋｖ’の中の一つが、ランダムに、新たな故障候補組合せｋｖとして選択される。
また、以前にステップＳ２５で仮コストＣ(kv’)を最も下げる組合せｋｖ’として選択された組合せｋｖ’において、入れ替えられた故障候補は、ステップＳ２１での入れ替え対象の故障候補、つまりはステップＳ２４での判定対象の故障候補から除外される。
【００６９】
なお、図４のステップＳ７で、生成部１１による故障候補組合せｋｖの生成手法として遺伝的アルゴリズムを採用した場合、生成部１１において、ユーザにより用意された複数組の故障個補組合せを遺伝子として用い、複数組の故障候補組合せのうちの２組の交配や突然変異が世代毎に行なわれる。そして、各世代で交配や突然変異により生成された故障候補組合せが、新たな故障候補組合せｋｖとして選択され、その故障候補組合せｋｖについて図４のステップＳ３以降の処理が実行される。
【００７０】
〔４−２−４〕作用効果
第１実施形態の故障解析装置１によれば、生成部１１で生成された故障候補組合せｋｖのうち、コスト算出部１３で得られるコストＣ(kv)を最小にする故障候補組合せｋｖbestが選択され、その故障候補組合せｋｖbestを選択した際の関数ｆ(kvbest)が出力される。そして、関数ｆ(kvbest)の形から故障の要因が推定される。従って、適切な故障候補の組合せｋｖbestが選択され、その故障候補組合せｋｖbestを選択した際の関数ｆ(kvbest)に基づいて故障要因が高い精度で推定される。
【００７１】
ここで、図７（Ａ）および図７（Ｂ）は、それぞれ本実施形態による最適化処理前後での解析結果の例を示す図である。
図７（Ａ）には、選択した故障候補組合せが不適切な場合にスピードパス解析によって得られた解析結果の例が示されている。図７（Ａ）では、図２（Ａ）や図１８に示す例と同様、多数の重みの絶対値が一定値(閾値)を超えているため、本来の遅延故障の要因であるセルタイプ(169)を遅延故障の要因として推定することができず、誤った解析結果が得られる可能性がある。
【００７２】
これに対し、図７（Ｂ）では、貪欲算法を採用するとともにコストとして適合度（解析結果と実測値との差の二乗和の逆数）の逆数を用いて最適な故障候補組合せを選択し、スピードパス解析により得た解析結果の例が示されている。図７（Ａ）では、本来の遅延故障の要因であるセルタイプ(169)の重みの絶対値のみが一定値(閾値)を超え、そのセルタイプ(169)を遅延故障の要因として推定することができ、正しい解析結果が得られる。
【００７３】
〔４−２−５〕解析動作の具体例
次に、図８〜図１０を参照しながら、故障解析装置１による解析動作を、簡易かつ具体的な例を対象にして説明する図である。図８〜図１０では、故障要素であるＦＦを対象にしてスピードパス解析を実行する場合について説明する。
図８〜図１０に示す回路例は、故障要因と考えられる３種類のセルタイプｘ，ｙ，Ａのセルを含むとともに、出力側レジスタとして１０３個のＦＦ（ＦＦ１〜ＦＦ１０３）を有している。ＦＦ１〜ＦＦ１０３には、３種類のセルタイプｘ，ｙ，Ａのセルを含む１本または２本の活性化パスが故障候補として到達している。なお、以下では、３種類のセルタイプｘ，ｙ，Ａのセルのことを、単にセルｘ，ｙ，Ａと表記する。
【００７４】
ここで、セルＡ単体の遅延値は、設計時に40psであるが製造後の実チップ上においては100psになっているものとする。また、セルｘ，ｙ単体の遅延値は、設計時も製造後の実チップ上においても50psであるとする。セル単体の設計時の遅延値は、設計時に見積もられた値で既知であるが、セル単体の製造後の遅延値は、設計者には見えていない。図８〜図１０に示す回路例では、セルＡの遅延値が設計時と製造後とで大きく異なるために遅延故障が生じている。つまり、セルＡが故障要因である。以下では、上述した故障解析装置１が、図８〜図１０に示す回路例において、セルＡを故障要因として特定するまでの解析処理の流れを具体的に説明する。
【００７５】
図８に示すように、ＦＦ１〜ＦＦ１００のそれぞれには、セルＡ，ｘを経由する活性化パスとセルｙ，ｘを経由する活性化パスとの２本が到達しているので、スピードパス解析時には、２本の活性化パスのうちの１本が、故障候補のパスｎ(n=1,2,...,100)として選択される。このとき、セルＡ，ｘを経由してＦＦに到達するパスの設計時遅延見積もり値は40＋50＝90psとなり、セルｙ，ｘを経由してＦＦに到達するパスの設計時遅延見積もり値は50＋50＝100psとなる。このため、解析処理の開始時には、２本の活性化パスのうち、最も遅いパスつまり最大値100psを示すパス（セルｙ，ｘ経由）が、故障候補として選択される。しかし、実際には、セルＡの設計時と製造後との誤差が大きいために遅延故障が生じているので、セルｙ，ｘを経由するパスの選択は不適切で、セルＡ，ｘを経由するパスの選択が適切であると考えられる。故障解析装置１は、コスト（適合度の逆数）を最小にする故障候補組合せｋｖを選択することにより、不適切なパスを選択している状況を、適切なパスを選択した状況に最適化する。なお、ＦＦ１〜ＦＦ１００に到達する各パスの遅延実測値は150psとする。
【００７６】
ＦＦ１０１には、セルＡ，ｘを経由する２本の活性化パスが到達しており、いずれの活性化パスを選択しても、設計時遅延見積もり値は40＋50＝90psとなる。このため、ＦＦ１０１に到達する活性化パスは実質的に一種類であり、セルＡ，ｘを経由するパスが故障候補のパス１０１として選択され、ＦＦ１０１は、故障候補組合せｋｖの選択対象にはならない。なお、ＦＦ１０１に到達するパス１０１の遅延実測値は150psとする。
【００７７】
同様に、ＦＦ１０２には、セルｙ，ｘを経由する２本の活性化パスが到達しており、いずれの活性化パスを選択しても、設計時遅延見積もり値は50＋50＝100psとなる。このため、ＦＦ１０２に到達する活性化パスは実質的に一種類であり、セルｙ，ｘを経由するパスが故障候補のパス１０２として選択され、ＦＦ１０２は、故障候補組合せｋｖの選択対象にはならない。なお、ＦＦ１０２に到達するパス１０２の遅延実測値は100psとする。
【００７８】
また、ＦＦ１０３には、セルｙを経由する１本の活性化パスが到達しており、このセルｙを経由するパスが故障候補のパス１０３として選択され、ＦＦ１０３は、故障候補組合せｋｖの選択対象にはならない。なお、ＦＦ１０３に到達するパス１０３の遅延実測値は50psとする。
【００７９】
なお、図８〜図１０に示す回路例において、故障要素の数Ｎ＝１０３、故障候補の組数Ｐ＝１００、故障要因の数Ｍ＝３、各組における故障候補の数Ｋ1＝Ｋ2＝…＝Ｋ100＝２、故障候補組合せｋｖ＝(ｋ1,ｋ2,...,ｋ100)である。このとき、故障候補組合せｋｖの各要素ｋi（i=1,2,...,100)の値は、例えば、セルＡ，ｘを経由するパスを選択する場合に０に設定され、セルｙ，ｘを経由するパスを選択する場合に１に設定されるものとすると、図８に示す回路例に対する解析処理の開始時に、故障候補組合せｋｖの要素ｋiは全て１に設定される。つまり、図８に示す回路例に対する解析処理の開始時に、生成部１１は、まず故障候補組合せｋｖ＝(1,1,...,1)を生成して出力することになる。
【００８０】
さて、図８に示す回路例、つまり故障候補組合せｋｖ＝(1,1,...,1)を選択した回路例について、解析部１２は、線形回帰分析を行なって、３種類のセルｘ，ｙ，Ａと各ＦＦｎ（パスｎ；n=1,2,...,103）の誤差ε(n)との相関関係を与える関数ｆを求める。その際、図９および下式(7-1)〜(7-103)に示す連立方程式が導き出され、解析部１２は、連立方程式(7-1)〜(7-103)を線形回帰分析によって解くことにより、３種類のセルｘ，ｙ，Ａに対する重みX(x)，X(y)，X(A)を算出し、関数ｆを求める。なお、下記各式において、重みX(x)，X(y)，X(A)に乗算される特徴量は、各ＦＦｎ（パスｎ）に対するセルタイプｍの影響度であり、ここでは、各パスｎにおけるセルｘ，ｙ，Ａの使用数である。
【００８１】
ε(1) ＝150-100＝50ps＝X(y)*1＋X(x)*1＋X(A)*0  →  50＝X(y)＋X(x)  (7-1)
ε(2) ＝150-100＝50ps＝X(y)*1＋X(x)*1＋X(A)*0  →  50＝X(y)＋X(x)  (7-2)
：      ：      ：      ：      :        ：      ：    ：            ：
ε(100)＝150-100＝50ps＝X(y)*1＋X(x)*1＋X(A)*0  →  50＝X(y)＋X(x)  (7-100)
ε(101)＝150- 90＝60ps＝X(y)*0＋X(x)*1＋X(A)*1  →  60＝X(A)＋X(x)  (7-101)
ε(102)＝100-100＝ 0ps＝X(y)*1＋X(x)*1＋X(A)*0  →   0＝X(y)＋X(x)  (7-102)
ε(103)＝50- 50＝ 0ps＝X(y)*1＋X(x)*0＋X(A)*0  →   0＝X(y)        (7-103)
【００８２】
連立方程式(7-1)〜(7-103)を線形回帰分析（最小二乗法）によって解くと、重みX(x)，X(y)，X(A)としてそれぞれ下記値が得られる。
X(x)＝49.50495    X(y)＝−2.3*10-14    X(A)＝10.49505
従って、セルタイプｘ，ｙ，Ａのセル使用数をそれぞれNx，Ny，NAとすると、３種類のセルｘ，ｙ，Ａと各ＦＦｎの誤差ε(n)との相関関係を与える関数ｆは、下式(8)となる。
ｆ(Nx,Ny,NA)＝49.50495*Nx−2.3*10-14*Ny＋10.49505*NA      (8)
以上の処理は、図５のステップＳ１０〜Ｓ１２の処理および図３のステップＳ３の処理の一部に対応している。
【００８３】
ついで、コスト算出部１３により、故障候補組合せｋｖ＝(1,1,...,1)を選択した場合について上式(8)のごとく得られた関数ｆ(kv)に基づき、コストＣ(kv)が算出される。その際、まず、コスト算出部１３は、上式(8)の関数ｆ(kv)を用いて、各ＦＦｎ（パスｎ）での誤差ε’(n,kv)を算出する。ＦＦ１〜ＦＦ１００（パス１〜パス１００）について上式(8)により得られる誤差ε’(n,kv)は、以下のように、全て同じ値49.50495となる。
ε’(n,kv)＝49.50495*1−2.3*10-14*1≒49.50495＜ε(n)＝50 (n=1,2,...,100)
【００８４】
また、ＦＦ１０１（パス１０１）について上式(8)により得られる誤差ε’(101,kv)は、
ε’(101,kv)＝49.50495*1＋10.49505*1＝60＝ε(101)
となり、ＦＦ１０２（パス１０２）について上式(8)により得られる誤差ε’(102,kv)は、
ε’(102,kv)＝49.50495*1−2.3*10-14*1≒49.50495＞ε(102)＝０
となり、ＦＦ１０３（パス１０３）について上式(8)により得られる誤差ε’(103,kv)は、
ε’(103,kv)＝−2.3*10-14*1≒０＝ε(103)
となる。
【００８５】
コスト算出部１３は、上述のごとく(8)式に示す関数ｆにより算出される誤差ε’(n,kv)(n=1,2,...,103)と、見積もり値および実測値から得られる誤差ε(n)とに基づき、コストを算出する。ここでは、コストとして、適合度の逆数が採用されるものとし、適合度として、ε’(n,kv)とε(n)との相関係数（決定係数）0.99023956が算出される。ε’(n,kv)とε(n)とが一致する場合、決定係数は最大の１となりコストは最小の１になるが、ε’(n,kv)とε(n)との相関が弱くなると、決定係数は１よりも小さくなり、コストは１よりも大きくなる。上述の例では、決定係数が0.99023956となるため、コストは１／0.99023956≒1.009856645となる。なお、ＦＦ１０２（パス１０２）についての上式(7-102)は、上式(7-1)〜(7-100)と矛盾するため、適合度（決定係数）を下げる要因になっている。
以上の処理は、図５のステップＳ１３，Ｓ１４の処理および図３のステップＳ３の処理の一部に対応している。
【００８６】
ついで、生成部１１により、図３のステップＳ７（図６のステップＳ２０〜Ｓ２５）に対応する処理、つまり貪欲算法による処理が実行される。つまり、各ＦＦｎ（各パスｎ）について選択されなかった故障候補（活性化パス）が選択されたとして、仮コストが算出され、最も仮コストを下げる故障候補組合せが、次の故障候補組合せｋｖとして選択される。
【００８７】
つまり、まず、現在の故障候補組合せｋｖ＝(1,1,...,1,1)における故障候補の一つだけを他の候補に入れ替えた組合せｋｖ’が生成される（図６のステップＳ２１）。例えば図１０に示す回路例では、ＦＦ１００（パス１００）について、現在、セルｙ，ｘを経由する活性化パスが選択されているが、このパスを、セルＡ，ｘを経由する活性化パスに入れ替えた組合せｋｖ’＝(1,1,...,1,0)が生成される。
【００８８】
組合せｋｖ’＝(1,1,...,1,0)が生成されると、その組合せｋｖ’＝(1,1,...,1,0)についての仮コストＣ(kv’)が、ｋｖ＝(1,1,...,1,1)に応じた上式(8)の関数ｆを用いて算出される。図１０に示す例では、ＦＦ１００（パス１００）だけ故障候補を１から０に入れ替えると、(8)式によって算出される誤差誤差ε’(100,kv’)の値は、
ε’(100,kv’)＝X(A)*1＋X(x)*1＝49.50495*1＋10.49505*1＝60
となるとともに、実測結果から得られる誤差ε(100)＝60となり、ε’(100,kv’)とε(100)とは一致する。故障候補の入れ替え前は、ε(100,kv)＝49.50495，ε(100)＝50であり、ε(100,kv)とε(100)とは不一致である。従って、ＦＦ１００（パス１００）において、現在選択されているセルｙを含むパスを、セルＡを含むパスに入れ替えると、適合度が改善され、仮コストＣ(kv’)が下がることは明かである。
【００８９】
図８〜図１０に示す回路例では、ＦＦ１〜ＦＦ１００（パス１〜パス１００）のうちのいずれか一つにおいて、セルｙ，ｘを経由する活性化パスを、セルＡ，ｘを経由する活性化パスに入れ替えた組合せｋｖ’が選択された場合、上述したＦＦ１００（パス１００）の場合と同じ量だけ適合度が改善される。従って、仮コストＣ(kv’)も、上述したＦＦ１００（パス１００）の場合と同じ量だけ下がることになる。つまり、生成部１１が、組合せｋｖ＝(1,1,...,1,1)に対し、図６のステップＳ２１〜Ｓ２４の処理を１００回繰り返すことにより、同じ改善量を示す１００個の仮コストＣ(kv’)が得られる。このため、図６のステップＳ２５の処理により、１００組の組合せｋｖ’の中の一つが、新たな故障候補組合せｋｖとしてランダムに選択・生成される。ここでは、ＦＦ１００（パス１００）の故障候補を入れ替えた組合せｋｖ’＝(1,1,...,1,0)が生成され、図４のステップＳ３の処理、つまり図５のステップＳ１０〜Ｓ１４の処理が、組合せｋｖ’＝(1,1,...,1,0)に対し、上述と同様に実行される。なお、上述したように、以前にステップＳ２５で仮コストＣ(kv’)を最も下げる組合せｋｖ’として選択された組合せｋｖ’において、入れ替えられた故障候補は、ステップＳ２１での入れ替え対象の故障候補、つまりはステップＳ２４での判定対象の故障候補から除外される。
【００９０】
以下、故障解析装置１の処理が、図４のステップＳ７からステップＳ３へのループを、１回、回る都度、故障候補組合せｋｖの要素は、一つずつ１から０に切り替えられ、一のＦＦｎ（パスｎ）において、現在選択されているセルｙを含むパスが、セルＡを含むパスに入れ替えられる。故障解析装置１の処理が、９９回、上記ループを回ると、ＦＦ１〜ＦＦ１００（パス１〜パス１００）の全てにおいて、セルＡを含むパスが選択され、故障候補組合せｋｖの全ての要素が０、つまりｋｖ＝(0,0,...,0)となる。
【００９１】
組合せｋｖ＝(0,0,...,0)の際に図５のステップＳ１２で算出される重みX(x)，X(y)，X(A)は、それぞれ
X(x)＝1.1*10-14    X(y)＝−1*10-14    X(A)＝60
となり、３種類のセルｘ，ｙ，Ａと各ＦＦｎの誤差ε(n)との相関関係を与える関数ｆは下式(9)となる。
ｆ(Nx,Ny,NA)＝1.1*10-14*Nx−1*10-14*Ny＋60*NA      (9)
このときの決定係数は最大の１になり、コストは最小の１になり、図４のステップＳ８において、決定部１４により、最適な故障候補組合せｋｖbest＝(0,0,...,0)と、この組合せｋｖbest＝(0,0,...,0)に応じた、上記(9)式の関数ｆ(ｋｖbest)とが出力される。
【００９２】
〔５〕第２実施形態
第１実施形態における図８〜図１０に示す具体例では、故障要因（セルタイプ）の数が３種類である場合について説明したが、故障要因の数Ｍが多数である場合には、最適な故障候補組合せｋｖbestを求める最適化処理に時間がかかる可能性がある。しかし、実際の故障においては、多数の故障要因のうちの、ごく一部の故障要因が影響している場合が多い。
【００９３】
そこで、以下に説明する第２実施形態では、Ｍ個の故障要因からｍ（１≦ｍ＜Ｍ）個の故障要因が選択され、選択されたｍ個の故障要因について、第１実施形態の手法で最適な故障候補組合せｋｖbestおよび関数ｆ(kvbest)が決定される。そして、決定された関数ｆ(kvbest)の適合度が算出され、Ｍ個の故障要因からｍ個の故障要因を選択する全て（ＭＣｍ個）の組合せの中から、適合度を最大にするｍ個の故障要因が決定される。つまり、注目する特徴量（ｍ個の故障要因）だけを対象にして故障解析を行ない、解析の結果得られる関数ｆ(kvbest)についての適合度を最大にするｍ個の故障要因を見い出す。これにより、関数ｆ(kvbest)の最適化が行なわれ、最も適合度の高かった関数ｆ(kvbest)の形から故障の要因が推定される。
【００９４】
適合度は、関数ｆ(kvbest)によって算出される誤差ε’(n,kvbest)と実チップに対する実測結果に基づく誤差ε(n)との一致の度合いである。第２実施形態では、故障要因の数や種類が異なる関数ｆ(kvbest)の適合度を同一の基準で比較する必要があるため、適合度として、解析結果と実測値との差の二乗和の逆数は使用できず、故障要因の数や種類を変更しても基準の変わらないものを使用する必要がある。このため、第２実施形態では、適合度として、ε’(n,kvbest)とε(n)との一致の度合いが高くなると１に近づく、ε’(n,kvbest)とε(n)との相関係数（決定係数）が用いられる。なお、第２実施形態では、故障要因の数をｍ個に絞るため、適合度として「説明変数の数」を使用することはできない。
【００９５】
〔５−１〕第２実施形態の故障解析装置の構成
図１１は、第２実施形態の故障解析装置１Ａの機能構成を示すブロック図である。
図１１に示す故障解析装置１Ａは、上述の故障解析装置１と同様に構成されているが、故障解析装置１Ａでは、処理部１０が、生成部１１，解析部１２，コスト算出部１３および決定部１４としての機能のほか、選択部１５および適合度算出部１６としての機能を有している。追加された選択部１５および適合度算出部１６としての機能も、処理部が故障解析プログラムを実行することにより実現される。
【００９６】
ここで、選択部１５は、Ｍ個の故障要因の中から、ｍ（１≦ｍ＜Ｍ）個の故障要因を選択する。選択部１５は、Ｍ個の故障要因の中からｍ個の故障要因をランダムに選択してもよいし、ｍ個の故障要因の組合せを遺伝子とみなす遺伝的アルゴリズムによりｍ個の故障要因を選択してもよい。
選択部１５は、ｍ個の故障要因をランダムに選択する場合、ＭＣｍ個の組合せの中から一の組合せを一つずつ選択することになる。
【００９７】
選択部１５が遺伝的アルゴリズムによる選択を行なう場合、例えば、ｍ＝３で、Ｍ個の故障要因のうちの１番目，６番目，Ｍ−１番目の故障要因の組合せについては（1,6,M-1)が遺伝子になる。この場合、ユーザが指定する複数組の組合せが遺伝子として予め用意される。用意された複数組の組合せに基づき、複数組の組合せのうちの２組の交配や、突然変異が世代毎に行なわれる。各世代で交配や突然変異により生成された組合せが、選択部１５による選択結果として出力される。
【００９８】
選択部１５で選択されたｍ個の故障要因について、生成部１１，解析部１２，コスト算出部１３および決定部１４は、第１実施形態で説明したように、最適な故障候補組合せｋｖbestおよび関数ｆ(kvbest)を取得する。
適合度算出部１６は、取得された関数ｆ(kvbest)の適合度Ｓを算出する。第２実施形態において、適合度Ｓは、上述した通り、ε’(n,kvbest)とε(n)との相関係数である。適合度算出部１６は、関数ｆ(kvbest)を用いて適合度Ｓを算出してもよいし、コスト算出部１３がコストを取得するために算出した適合度Ｓを用いてもよい。つまり、コスト算出部１３を適合度算出部１６として機能させることもできる。
【００９９】
決定部１４は、選択部１５で選択された故障要因の組合せのうち、適合度算出部１６で得られる適合度Ｓを最大にする組合せについて得られた故障候補組合せｋｖbestを、コストを最小にする故障候補組合せとして決定する。そして、決定部１４は、決定された組合せについて算出された適合度Ｓbestと、同組合せについての故障候補組合せｋｖbestと、この故障候補組合せｋｖbestに応じた関数ｆ(kvbest)とを出力し、処理部１０は、上述した一般的な故障解析の手順[iv]と同様、関数ｆ(kvbest)の形から故障の要因を推定する。
【０１００】
〔５−２〕第２実施形態の故障解析装置の動作
次に、図１２に示すフローチャート（ステップＳ３０〜Ｓ３７）に従って、上述のごとく構成された第２実施形態の故障解析装置１Ａによる解析動作について説明する。
まず、上記項目〔３−１〕で説明した入力情報[1]〜[3]が、記憶部２０から読み出され処理部１０に入力されるとともに、Ｍ個の故障要素から選択すべき故障要素の数ｍが、設計者の入力指示等によって処理部１０に入力される（ステップＳ３０）。入力情報[1]〜[3]としては、第１実施形態と同様、Ｋ1×Ｋ2×…×ＫP個の故障候補組合せに関する情報（故障候補の数Ｋi（i=1,2,...,P））と、対象パラメータ遅延誤差／故障率ε(n,kv)と、対応する特徴量ａ(m,n,kv)のリストとが読み出されて処理部１０に入力される。また、故障要素の数ｍとしては、例えば１〜３程度の値が指定される。
【０１０１】
処理部１０では、選択部１５によりＭ個の故障要因の中からｍ個の故障要因が初期組合せとして選択されるとともに、最大適合度Ｓbestの初期値として最小値−∞が設定される（ステップＳ３１）。初期組合せは、Ｍ個の故障要因の中からランダムに選択されたｍ個の故障要因であってもよいし、遺伝子アルゴリズムを採用する場合には、第１世代の遺伝子として得られる組合せであってもよい。
【０１０２】
初期値が設定されると、選択されたｍ個の故障要因について、生成部１１，解析部１２，コスト算出部１３および決定部１４により、第１実施形態と同様、図４〜図６に示す手順に従って、最適な故障候補組合せｋｖbestおよび関数ｆ(kvbest)が取得される（ステップＳ３２）。取得された関数ｆ(kvbest)の適合度Ｓが、適合度算出部１６もしくはコスト算出部１３の適合度算出機能により得られ、得られた適合度Ｓと最大適合度Ｓbestとが決定部１４により比較される（ステップＳ３３）。比較の結果がＳbest＜Ｓであれば（ステップＳ３３のＹＥＳルート）、最大適合度Ｓbestが、今回算出された適合度Ｓに置き換えられ、今回選択されたｍ個の故障要因について得られた故障候補組合せｋｖが、最適組合せ（最適解）ｋｖbestとして置き換えられる（ステップＳ３４）。
【０１０３】
最大適合度Ｓbestや最適故障候補組合せｋｖbestの置き換えが行なわれると、決定部１４により、ループ終了条件が成立しているか否かが判定される（ステップＳ３５）。ループ終了条件は、選択部１５がｍ個の故障要因をランダムに選択する場合、ＭＣｍ個の組合せの全てを選択することである。また、選択部１５が遺伝的アルゴリズムにより選択を行なう場合、ループ終了条件は、処理世代が予め設定された世代数に到達すること、または、最適解ｋｖbestが予め設定された期間以上に亘り置き換えられないことである。
【０１０４】
ループ終了条件が成立しない場合（ステップＳ３５のＮＯルート）、選択部１５により、貪欲算法や遺伝的アルゴリズム等を用いて、異なる組合せのｍ個の故障要因が選択され（ステップＳ３６）、新たに選択されたｍ個の故障要因について、ステップＳ３２〜Ｓ３５の処理が実行される。
【０１０５】
一方、ステップＳ３３での比較の結果がＳbest≧Ｓであれば（ＮＯルート）、ステップＳ３４の処理がスキップされ、ステップＳ３５の処理が実行される。
ステップＳ３５でループ終了条件が成立すると判定された場合（ＹＥＳルート）、決定部１４により、現在の最大適合度Ｓbestおよび最適組合せｋｖbestと、この最適補組合せｋｖbestを選択した際の関数ｆ(kvbest)とが出力される（ステップＳ３７）。そして、処理部１０では、上述した一般的な故障解析の手順[iv]と同様、関数ｆ(kvbest)の形から故障の要因が推定される。
【０１０６】
上述したように、第２実施形態の故障解析装置１Ａによれば、第１実施形態の故障解析装置１と同様の作用効果が得られるほか、注目する特徴量（ｍ個の故障要因）だけを対象にして故障解析が行なわれる。そして、解析の結果得られる関数ｆ(kvbest)についての適合度を最大にするｍ個の故障要因を見い出す。これにより、関数ｆ(kvbest)の最適化が行なわれ、最も適合度の高かった関数ｆ(kvbest)の形から故障の要因が推定される。したがって、故障要因の数Ｍが多数であっても、故障に関わるｍ個の故障要因を短時間で特定すること可能になり、故障要因が高速かつ高精度で推定される。
【０１０７】
なお、決定部１４は、ステップＳ３７において、適合度Ｓを最大にする故障候補組合せを出力しているが、適合度Ｓの大きさ上位数個について、故障候補組合せと、各故障候補組合せに応じた関数と、適合度Ｓの値とを出力してもよい。この場合、設計者は、適合度Ｓの大きい複数の故障候補組合せと、各故障候補組合せに応じた関数とを参照し、総合的に故障要因の判断を行なうことが可能になり、故障要因をより高精度で推定することができる。
【０１０８】
〔６〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
【０１０９】
なお、上述した実施形態において、スピードパス解析では、パス上のセルタイプ（使用個数）のみを故障要因（特徴量）としている。しかし、本件は、これに限定されるものではなく、故障要因が、パスの配線長，パス上の低電力トランジスタの数，パスが指定領域を通過するか否かなど種々の要因である場合にも上述と同様に適用され、上述と同様の作用効果が得られる。
【０１１０】
また、上述した実施形態において、エラー原因解析では、配線層（各配線層における配線長）を故障要因（特徴量）としてるが、本件は、これに限定されるものではなく、故障要因が他の種々の要因である場合にも上述と同様に適用され、上述と同様の作用効果が得られる。
【０１１１】
上述した生成部１１，解析部１２，コスト算出部１３，決定部１４，選択部１５および的道度算出部１６としての機能の全部もしくは一部は、コンピュータ（ＣＰＵ，情報処理装置，各種端末を含む）が所定のアプリケーションプログラム（故障解析プログラム）を実行することによって実現される。
【０１１２】
そのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷなど），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋Ｒ，ＤＶＤ＋ＲＷなど），ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。
【０１１３】
ここで、コンピュータとは、ハードウエアとＯＳ（オペレーティングシステム）とを含む概念であり、ＯＳの制御の下で動作するハードウエアを意味している。また、ＯＳが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウエアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取る手段とをそなえている。上記遅延解析プログラムは、上述のようなコンピュータに、上記各部１１〜１６の機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくＯＳによって実現されてもよい。
【０１１４】
〔７〕付記
以上の本実施形態を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
実チップに対する実測結果に基づき、前記実チップで故障の発生を示す複数の故障要素について、複数の故障要因と各故障要素の誤差または故障率との相関関係を与える関数を求め、求められた前記関数に基づき故障要因を推定するコンピュータに、
各故障要素において前記故障を発生させる、一以上の前記故障要因を含む故障候補が故障要素毎に複数存在する場合、各故障要素における故障候補を指定する故障候補組合せを生成し、
生成された前記故障候補組合せに応じた前記関数を求め、
求められた前記関数に基づき同関数のコストを算出し、
生成された前記故障候補組合せのうち、前記コストを最小にする故障候補組合せを決定する、
処理を実行させる故障解析プログラム。
【０１１５】
（付記２）
前記複数の故障要素のそれぞれについて前記実チップで実測された値と前記関数により算出される値との適合度の逆数を、前記コストとして算出する処理を、前記コンピュータに実行させる、付記１記載の故障解析プログラム。
【０１１６】
（付記３）
前記関数を線形回帰分析により求める場合、前記関数における前記一以上の故障要因の重みのうち、一定値以上の重みの数を、前記コストとして算出する処理を、前記コンピュータに実行させる、付記１記載の故障解析プログラム。
【０１１７】
（付記４）
求められた前記関数を用いて、同関数を求めた時の前記故障候補組合せにおける各故障候補を他の故障候補に一つずつ入れ替えた際の、同関数の仮コストを算出し、同仮コストを最も下げる前記他の故障候補を含む新たな故障候補組合せを生成する処理を、前記コンピュータに実行させる、付記１〜付記３のいずれか一項に記載の故障解析プログラム。
【０１１８】
（付記５）
前記故障候補組合せを遺伝子とみなす遺伝的アルゴリズムにより前記故障候補組合せを生成する処理を、前記コンピュータに実行させる、付記１〜付記３のいずれか一項に記載の故障解析プログラム。
【０１１９】
（付記６）
前記一以上の故障要因を、より多くの故障要因の中から選択し、
選択された前記一以上の故障要因の組合せについて、決定された前記故障候補組合せに応じた前記関数の適合度を算出し、
選択された前記一以上の故障要因の組合せのうち、前記適合度を最大にする組合せについて得られた前記故障候補組合せを、前記コストを最小にする故障候補組合せとして決定する処理を、前記コンピュータに実行させる、付記１〜付記５のいずれか一項に記載の故障解析プログラム。
【０１２０】
（付記７）
前記適合度は、前記複数の故障要素のそれぞれについて前記実チップで実測された値と前記関数により算出される値との相関係数である、付記６記載の故障解析プログラム。
【０１２１】
（付記８）
実チップに対する実測結果に基づき、前記実チップで故障の発生を示す複数の故障要素について、一以上の故障要因と各故障要素の誤差または故障率との相関関係を与える関数を求め、求められた前記関数ｆに基づき故障要因を推定する故障解析装置であって、
各故障要素において前記故障を発生させる、一以上の前記故障要因を含む故障候補が故障要素毎に複数存在する場合、各故障要素における故障候補を指定する故障候補組合せを生成する生成部と、
前記生成部で生成された前記故障候補組合せに応じた前記関数を求める解析部と、
前記解析部で求められた前記関数に基づき同関数のコストを算出するコスト算出部と、
前記生成部で生成された前記故障候補組合せのうち、前記コスト算出部で得られる前記コストを最小にする故障候補組合せを決定する決定部とを有する、故障解析装置。
【０１２２】
（付記９）
前記コスト算出部は、前記複数の故障要素のそれぞれについて前記実チップで実測された値と前記関数により算出される値との適合度の逆数を、前記コストとして算出する、付記８記載の故障解析装置。
【０１２３】
（付記１０）
前記適合度は、前記複数の故障要素のそれぞれについて前記実チップで実測された値と前記関数により算出される値との差の二乗和の逆数である、付記９記載の故障解析装置。
（付記１１）
前記適合度は、前記複数の故障要素のそれぞれについて前記実チップで実測された値と前記関数により算出される値との相関係数である、付記９記載の故障解析装置。
【０１２４】
（付記１２）
前記解析部が前記関数を線形回帰分析により求める場合、前記コスト算出部は、前記関数における前記一以上の故障要因の重みのうち、一定値以上の重みの数を、前記コストとして算出する、付記８記載の故障解析装置。
【０１２５】
（付記１３）
前記生成部は、前記解析部で求められた前記関数を用いて、同関数を求めた時の前記故障候補組合せにおける各故障候補を他の故障候補に一つずつ入れ替えた際の、同関数の仮コストを算出し、同仮コストを最も下げる前記他の故障候補を含む新たな故障候補組合せを生成する、付記８〜付記１２のいずれか一項に記載の故障解析装置。
【０１２６】
（付記１４）
前記生成部は、前記複数の故障要素のそれぞれについて前記実チップで実測された値と前記関数により算出される値との適合度の逆数を、前記仮コストとして算出する、付記１３記載の故障解析装置。
【０１２７】
（付記１５）
前記生成部は、前記故障候補組合せを遺伝子とみなす遺伝的アルゴリズムにより前記故障候補組合せを生成する、付記８〜付記１２のいずれか一項に記載の故障解析装置。
【０１２８】
（付記１６）
前記一以上の故障要因を、より多くの故障要因の中から選択する選択部と、
前記選択部で選択された前記一以上の故障要因の組合せについて、前記決定部で決定される前記故障候補組合せに応じた前記関数の適合度を算出する適合度算出部とをさらに有し、
前記決定部は、前記選択部で選択された前記一以上の故障要因の組合せのうち、前記適合度算出部で得られる前記適合度を最大にする組合せについて得られた前記故障候補組合せを、前記コストを最小にする故障候補組合せとして決定する、付記８〜付記１５のいずれか一項に記載の故障解析装置。
【０１２９】
（付記１７）
前記選択部は、前記より多くの故障要因の中から、前記一以上の故障要因をランダムに選択する、付記１６記載の故障解析装置。
（付記１８）
前記選択部は、前記一以上の故障要因の組合せを遺伝子とみなす遺伝的アルゴリズムにより前記一以上の故障要因を選択する、付記１６記載の故障解析装置。
【０１３０】
（付記１９）
前記適合度は、前記複数の故障要素のそれぞれについて前記実チップで実測された値と前記関数により算出される値との相関係数である、付記１６〜付記１８のいずれか一項に記載の故障解析装置。
【０１３１】
（付記２０）
コンピュータにより、実チップに対する実測結果に基づき、前記実チップで故障の発生を示す複数の故障要素について、複数の故障要因と各故障要素の誤差または故障率との相関関係を与える関数を求め、求められた前記関数に基づき故障要因を推定する故障解析方法であって、
各故障要素において前記故障を発生させる、一以上の前記故障要因を含む故障候補が故障要素毎に複数存在する場合、各故障要素における故障候補を指定する故障候補組合せを生成し、
生成された前記故障候補組合せに応じた前記関数を求め、
求められた前記関数に基づき同関数のコストを算出し、
生成された前記故障候補組合せのうち、前記コストを最小にする故障候補組合せを決定する、故障解析方法。
【符号の説明】
【０１３２】
１，１Ａ    故障解析装置
１０    処理部
１１    生成部
１２    解析部
１３    コスト算出部（適合度算出部）
１４    決定部
１５    選択部
１６    適合度算出部
２０    記憶部
【図１】
0005691575.tif 000002
【図２】
0005691575.tif 000003
【図３】
0005691575.tif 000004
【図４】
0005691575.tif 000005
【図５】
0005691575.tif 000006
【図６】
0005691575.tif 000007
【図７】
0005691575.tif 000008
【図８】
0005691575.tif 000009
【図９】
0005691575.tif 000010
【図１０】
0005691575.tif 000011
【図１１】
0005691575.tif 000012
【図１２】
0005691575.tif 000013
【図１３】
0005691575.tif 000014
【図１４】
0005691575.tif 000015
【図１５】
0005691575.tif 000016
【図１６】
0005691575.tif 000017
【図１７】
0005691575.tif 000018
【図１８】
0005691575.tif 000019