(57)【特許請求の範囲】
【請求項１】
実チップに対する遅延試験の際に信号が伝播した活性化パスを抽出するコンピュータに、
前記遅延試験の際のテストパターンと前記実チップのネットリストとに基づき前記遅延試験のシミュレーションを行なうことにより、前記遅延試験の際に信号値が変化した信号値変化ピンと、出力側フリップフロップまたはラッチのクロック制御系ピンの値と、を特定し、
前記シミュレーションによって特定された、前記信号値変化ピンと前記クロック制御系ピンの値とに基づき、前記実チップの前記遅延試験において期待値と異なる値を出力した出力側フリップフロップまたはラッチへのデータパスおよびクロック制御系パスのいずれのパスが故障に関わる可能性があるかを判定し、
判定された故障に関わる可能性のあるパスに係る信号値変化ピンを起点にして、前記シミュレーションによって特定された前記信号値変化ピンと前記実チップのネットリストとに基づき前記信号値変化ピンを辿ることにより、故障に関わる可能性のある活性化パスのトレースを行なう、
処理を実行させる活性化パス抽出プログラム。
【請求項２】
前記シミュレーションの実行の際に入力側フリップフロップまたはラッチの出力ピンの信号値が変化する場合、前記出力ピンの変化前の信号値と変化後の信号値との間に不定値を所定時間だけ設定し、
前記不定値を設定された信号値に基づき、タイミングを考慮することなく前記シミュレーションを行なうことにより、前記信号値変化ピンを特定する、
処理を、前記コンピュータに実行させる、請求項１記載の活性化パス抽出プログラム。
【請求項３】
前記不定値を設定する機能は、前記実チップのネットリストに含まれる、前記入力側フリップフロップを定義するソースコードの記述によって実現される、請求項２記載の活性化パス抽出プログラム。
【請求項４】
前記所定時間は、前記ネットリストにおける各セルの内部遅延値よりも長く且つ前記シミュレーションでのクロック周期よりも短く設定される、請求項２または請求項３記載の活性化パス抽出プログラム。
【請求項５】
実チップに対する遅延試験の際に信号が伝播した活性化パスを抽出する活性化パス抽出装置であって、
前記遅延試験の際のテストパターンと前記実チップのネットリストとに基づき前記遅延試験のシミュレーションを行なうことにより、前記遅延試験の際に信号値が変化した信号値変化ピンと、出力側フリップフロップまたはラッチのクロック制御系ピンの値と、を特定するシミュレーション部と、
前記シミュレーション部によって特定された、前記信号値変化ピンと前記クロック制御系ピンの値とに基づき、前記実チップの前記遅延試験において期待値と異なる値を出力した出力側フリップフロップまたはラッチへのデータパスおよびクロック制御系パスのいずれのパスが故障に関わる可能性があるかを判定し、判定された故障に関わる可能性のあるパスに係る信号値変化ピンを起点にして、前記シミュレーション部によって特定された前記信号値変化ピンと前記実チップのネットリストとに基づき前記信号値変化ピンを辿ることにより、故障に関わる可能性のある活性化パスのトレースを行なうパストレース部と、を有する活性化パス抽出装置。
【請求項６】
実チップに対する遅延試験の際に信号が伝播した活性化パスをコンピュータにより抽出する活性化パス抽出方法であって、
前記遅延試験の際のテストパターンと前記実チップのネットリストとに基づき前記遅延試験のシミュレーションを行なうことにより、前記遅延試験時に信号値が変化した信号値変化ピンと、出力側フリップフロップまたはラッチのクロック制御系ピンの値と、を特定し、
前記シミュレーションによって特定された、前記信号値変化ピンと前記クロック制御系ピンの値とに基づき、前記実チップの前記遅延試験において期待値と異なる値を出力した出力側フリップフロップまたはラッチへのデータパスおよびクロック制御系パスのいずれのパスが故障に関わる可能性があるかを判定し、
判定された故障に関わる可能性のあるパスに係る信号値変化ピンを起点にして、前記シミュレーションによって特定された前記信号値変化ピンと前記実チップのネットリストとに基づき前記信号値変化ピンを辿ることにより、故障に関わる可能性のある活性化パスのトレースを行なう、活性化パス抽出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、実チップに対する遅延試験の際に信号が伝播した活性化パスを抽出するプログラム，装置および装置に関する。
【背景技術】
【０００２】
近年、チップ、例えばＬＳＩ（Large Scale Integration）等の集積回路を設計製造する際には、プロセスの微細化に伴って、実際に製造された実チップが、設計段階での基準性能値つまりスペックを満たせないケースが増加している。つまり、設計段階でシミュレーションツール等によって算出された、設計対象のチップ中のパス遅延の予測値と、実チップにおいて実際に得られるパス遅延値（真値）とに「ずれ」が生じ、実チップが設計段階でのスペックを満たせなくなる場合が多々生じている。
【０００３】
このため、チップの設計製造に際して、実チップに対するディレイテスト（遅延試験）が必要不可欠になっている。図１２は、ディレイテストを含む一般的なチップの設計製造の手順を概略的に説明するためのフローチャートである。この図１２に示すように、設計対象チップの設計（ステップＳ１）が行なわれると、設計されたチップの試作チップつまり実チップの作成（ステップＳ２）が行なわれる。そして、実チップに対するディレイテスト（ステップＳ３）が行なわれ、そのディレイテストの結果が所定スペックを満たしているか否かが判定される。
【０００４】
ディレイテストの結果が所定スペックを満たしている場合（ステップＳ３のＹＥＳルート）、ステップＳ１での設計結果に基づく実チップの生産（ステップＳ４）が開始される。一方、ディレイテストの結果が所定スペックを満たしていない場合（ステップＳ３のＮＯルート）、ディレイテストの結果に基づいて故障解析つまり遅延要因の解析（ステップＳ５）が行なわれる。そして、ステップＳ１に戻り、ステップＳ５での解析結果に従って設計対象チップの設計が再度行なわれる。
【０００５】
ここで、ディレイテストは、実チップがどの程度のクロック周波数またはクロック周期で動作するかを測定して確認するもので、一回のディレイテストでは、以下のような処理が行なわれる。なお、図１３は、ディレイテストを説明すべく試験対象の実チップ上の回路構成の例を示す図である。この図１３において、１０１は実チップ上の入力側フリップフロップ（またはラッチ）、１０２は同チップ上の出力側フリップフロップ（またはラッチ）である。以下「フリップフロップ」のことを「ＦＦ」と記載する。これらのＦＦ１０１とＦＦ１０２との間に、各種ゲートを含む組み合わせ回路が配置されている。この組み合わせ回路の接続関係は、設計対象回路のネットリストに基づいて特定される。
【０００６】
まず、２組のテストベクトルが用意され、これら２組のテストベクトルに基づく信号が実チップの入力側ＦＦ１０１から出力側ＦＦ１０２へ伝播される。つまり、１つ目のテストベクトルに基づく値が実チップ中の各ゲートの入力ピンや出力ピンにセットされた後、所定時間間隔をあけた２回のクロックが発せられる。これにより、１つ目のクロックエッジで２つ目のテストベクトルが入力側ＦＦ１０１からパス上へ出力(launch)されてパスが活性化され、信号が入力側ＦＦ１０１から出力側ＦＦ１０２へ伝播される。続く２つ目のクロックエッジで、出力側ＦＦ１０２に伝播した信号値が、出力側ＦＦ１０２にキャプチャされる。そして、出力側ＦＦ１０２における値と、上記２つのテストベクトルを入力した際に出力側ＦＦ１０２で得られるべき期待値（予測値）とが比較され、これらの値の一致／不一致が判定される。
【０００７】
出力側ＦＦ１０２での値と予測値とが一致した場合には、上記所定時間間隔を一定量、例えば２０ＭＨｚずつ小さくして、上記２つのテストベクトルが再度入力され、出力側ＦＦ１０２での値と期待値との一致／不一致が判定される。以上の処理が、出力側ＦＦ１０２での値と期待値とが不一致と判定されるまで繰り返し実行され、不一致と判定される直前の時間間隔（周期）が、ディレイテストの結果、つまり今回のディレイテストでの遅延時間の測定値として測定される。
【０００８】
このようにして得られた測定値が所定スペックを満たすか否かが判断され、所定スペックを満たす、つまり試作された実チップが目標とするクロック周期で正常に動作すると判断されれば、上述のように、実チップの生産（ステップＳ４）が開始される。一方、上記測定値が所定スペックを満たしていないと判断されれば、上述のように、ディレイテストの結果に基づいて遅延要因の解析（ステップＳ５）および再設計（ステップＳ１）が行なわれる。
【０００９】
ステップＳ５では、例えば、スピードパス解析と呼ばれる故障解析手法が用いられ、遅延要因の解析が行なわれる。なお、以下では、ディレイテストに際し上記２つのテストベクトルの入力によって信号が伝播したパス、つまり「活性化したパス」のことを「活性化パス」という。なお、図１３において、活性化パスは太線によって示されている。
【００１０】
スピードパス解析では、フェイルした出力側ＦＦ１０２に到達する各活性化パスに対し、ディレイテストで得られた遅延時間の測定値が割り当てられて解析が行なわれる。フェイルした出力側ＦＦ１０２とは、ステップＳ３で上記測定値が上記所定スペックを満たしていないと判断された出力側ＦＦ１０２のことである。ここで、図１４〜図１６を参照しながら、一般的なスピードパス解析について説明する。なお、図１４は解析対象パス毎に設定される特徴ベクトルの各ベクトル成分の定義を示す図、図１５は図１４に示す特徴ベクトルの具体例を示す図、図１６はスピードパス解析結果の例を示す図である。
【００１１】
まず、図１４および図１５を参照しながら、スピードパス解析における「特徴」について説明する。スピードパス解析では、各パスの特徴をベクトルによって表現する。ここでは、そのベクトルを特徴ベクトルＶと表記する。また、特徴ベクトルＶは、解析対象のパス毎に設定され、パスpxの特徴ベクトルＶをＶ(px)と表記する。この特徴ベクトルＶ(px)の各ベクトル成分は、パスpxにおける特徴の値であり、例えば、図１４に示すごとく定義されて与えられる。特徴ベクトルＶ(px)にベクトル成分として含まれる複数の特徴は、後述する(2)式で示すように、各解析対象パスpxに割り当てられる遅延時間の実測値d_silicon(px)と遅延時間の予測値d_predict(px)との差Ｄ(px)の発生要因（遅延要因）となるものである。
【００１２】
各特徴の定義は、例えば図１４に示すように、以下の通りである。特徴g_low(px)は、パスpx上の低電力トランジスタ(low_vth)の数であり、特徴loc1(px)は、パスpxが指定領域１(loc1)を通過する場合に“１”／通過しない場合に“０”となる値である。また、特徴loc2(px)は、パスpxが指定領域２(loc2)を通過する場合に“１”／通過しない場合に“０”となる値であり、特徴len(px)は、パスpxの配線長である。なお、図１５に示すパスpiに係る特徴ベクトルＶ(pi)では、パスpi上の低電力トランジスタの数が２であり、パスpiが指定領域２を通過する一方で指定領域１を通過せず、パスpiの配線長が６である。また、図１５に示すパスpjに係る特徴ベクトルＶ(pj)では、パスpj上の低電力トランジスタの数が４であり、パスpjが指定領域１を通過する一方で指定領域２を通過せず、パスpjの配線長が１５である。
【００１３】
上述のように、解析対象パスpx毎に特徴ベクトルＶ(px)が抽出されると、以下のようにして、スピードパス解析が実行される。
ここで、ディレイテストによって取得され各解析対象パスpxに割り当てられる遅延時間の測定値を“d_silicon(Pi)”とし、各解析対象パスpxについてツール等によって算出された遅延時間の予測値を“d_predict(Pi)”とすると、これらの測定値と予測値との差Ｄ(px)は、下記(1)式のように与えられる。
d_silicon(px)＝d_predict(px)＋Ｄ(px)      (1)
【００１４】
上記(1)式において、Ｄ(px)＜＜d_predict(px)、つまりＤ(px)はd_predict(px)に対し十分に小さい。このため、差Ｄ(px)は、簡略的にしかモデル化されていなかった現象を示す複数の特徴g_low(px), loc1(px), loc2(px), …, len(px)について、線形近似することができると考えられるので、各解析対象パスpxについて、下記(2)式が成り立つことになる。下記(2)式において、解析対象パスpxは、例えばp3, p7, …, pnである。
【００１５】
Ｄ(p3)=W_g_low*g_low(p3)+W_loc1*loc1(p3)+W_loc2*loc2(p3)+…+W_len*len(p3)
Ｄ(p7)=W_g_low*g_low(p7)+W_loc1*loc1(p7)+W_loc2*loc2(p7)+…+W_len*len(p7)
：                            ：                                        (2)
Ｄ(pn)=W_g_low*g_low(pn)+W_loc1*loc1(pn)+W_loc2*loc2(pn)+…+W_len*len(pn)
ここで、W_g_low, W_loc1, W_loc2, …, W_lenは、それぞれ、パスpxの特徴ベクトルＶ(px)のベクトル成分g_low(px), loc1(px), loc2(px), …, len(px)に対する重み係数[ps]である。
【００１６】
そして、各解析対象パスpxについて導出された(2)式を、ＳＶＭ（Support Vector Machine）回帰などの線形回帰解析により、重み係数W_g_low, W_loc1, W_loc2, …, W_lenについて解くことで、重み係数W_g_low, W_loc1, W_loc2, …, W_lenの値が取得される。このように取得された重み係数のうち、値が大きいものに対応する特徴が誤差Ｄ(px)を発生させる要因になっていると考えられる。より具体的に、重み係数W_g_low, W_loc1, W_loc2, …, W_lenとして、例えば図１６に示すような値が取得されたものとする。なお、図１６では、最大値を示す重み係数W_g_lowを100として、各値の正規化処理が施されている。この図１６に示すスピードパス解析結果の例では、特徴g_lowつまり低電力トランジスタが、誤差Ｄ(px)の発生する最大要因であると解析される。
【００１７】
ところで、上述したように、スピードパス解析では、フェイルした出力側ＦＦ１０２に到達する各活性化パスに対し、ディレイテストで得られた遅延時間の測定値が割り当てられて解析が行なわれる。このため、スピードパス解析を実行する際には、前もって活性化パスを抽出して特定しておく必要がある。
通常、ディレイテストでは、入力された２つのテストベクトルと、これら２つのテストベクトルを入力した際に出力側ＦＦ１０２で得られるべき期待値と、遅延時間の測定値とが、テストパターンとして得られる。また、フェイルした出力側ＦＦ１０２を特定する情報（ＦＦ名等）をリストアップしたフェイルリストも得られる。
【００１８】
しかしながら、ディレイテストでは、スピードパス解析で必要になる活性化パスを特定する情報、具体的には、入力側ＦＦと出力側ＦＦとの間で活性化パスが通過するピンやネットを特定する情報は、取得・保存されていない。その理由としては、活性化パスに関する情報を必要とするスピードパス解析等の解析手法が注目されるようになったのは近年のことであり、活性化パスを特定する情報を取得する必要性が無かったことが挙げられる。また、他の理由としては、ディレイテストの実行中に活性化パスを特定する情報を取得すると、ディレイテストに要する時間が膨大になるとともに、取得される情報のデータ量が膨大になることが挙げられる。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開平０４−０５５７７６号公報
【特許文献２】特開平０４−０３８５６８号公報
【非特許文献】
【００２０】
【非特許文献１】P. Bastani, N. Callegari, Li-C. Wang, et al., “Statistical Diagnosis of Unmodeled Systematic Timing Effects”, DAC’08, 22.1, pp.355-360
【非特許文献２】P. Bastani, K. Killpack, et al., “Speedpath Prediction Based on Learning from a Small Set of Examples”, DAC’08, 12.3, pp.217-222
【発明の概要】
【発明が解決しようとする課題】
【００２１】
１つの側面では、本件は、実チップの遅延試験の際に信号が伝播した活性化パスを高速に抽出することを目的とする。
【課題を解決するための手段】
【００２２】
本件の活性化パス抽出プログラムは、実チップに対する遅延試験の際に信号が伝播した活性化パスを抽出するコンピュータに、前記遅延試験の際のテストパターンと前記実チップのネットリストとに基づき前記遅延試験のシミュレーションを行なうことにより、前記遅延試験の際に信号値が変化した信号値変化ピンと、出力側フリップフロップまたはラッチのクロック制御系ピンの値と、を特定し、前記シミュレーションによって特定された、前記信号値変化ピンと前記クロック制御系ピンの値とに基づき、前記実チップの前記遅延試験において期待値と異なる値を出力した出力側フリップフロップまたはラッチへのデータパスおよびクロック制御系パスのいずれのパスが故障に関わる可能性があるかを判定し、判定された故障に関わる可能性のあるパスに係る信号値変化ピンを起点にして、前記シミュレーションによって特定された前記信号値変化ピンと前記実チップのネットリストとに基づき前記信号値変化ピンを辿ることにより、故障に関わる可能性のある活性化パスのトレースを行なう、処理を実行させる。
【００２３】
また、本件の活性化パス抽出装置は、実チップに対する遅延試験の際に信号が伝播した活性化パスを抽出するもので、以下のシミュレーション部およびパストレース部を有することを要件としている。ここで、前記シミュレーション部は、前記遅延試験の際のテストパターンと前記実チップのネットリストとに基づき前記遅延試験のシミュレーションを行なうことにより、前記遅延試験の際に信号値が変化した信号値変化ピンと、出力側フリップフロップまたはラッチのクロック制御系ピンの値と、を特定する。前記パストレース部は、前記シミュレーション部によって特定された、前記信号値変化ピンと前記クロック制御系ピンの値とに基づき、前記実チップの前記遅延試験において期待値と異なる値を出力した出力側フリップフロップまたはラッチへのデータパスおよびクロック制御系パスのいずれのパスが故障に関わる可能性があるかを判定し、判定された故障に関わる可能性のあるパスに係る信号値変化ピンを起点にして、前記シミュレーション部によって特定された前記信号値変化ピンと前記実チップのネットリストとに基づき前記信号値変化ピンを辿ることにより、故障に関わる可能性のある活性化パスのトレースを行なう。
【００２４】
さらに、本件の活性化パス抽出方法は、実チップに対する遅延試験の際に信号が伝播した活性化パスをコンピュータにより抽出するものであって、前記遅延試験の際のテストパターンと前記実チップのネットリストとに基づき前記遅延試験のシミュレーションを行なうことにより、前記遅延試験時に信号値が変化した信号値変化ピンと、出力側フリップフロップまたはラッチのクロック制御系ピンの値と、を特定し、前記シミュレーションによって特定された、前記信号値変化ピンと前記クロック制御系ピンの値とに基づき、前記実チップの前記遅延試験において期待値と異なる値を出力した出力側フリップフロップまたはラッチへのデータパスおよびクロック制御系パスのいずれのパスが故障に関わる可能性があるかを判定し、判定された故障に関わる可能性のあるパスに係る信号値変化ピンを起点にして、前記シミュレーションによって特定された前記信号値変化ピンと前記実チップのネットリストとに基づき前記信号値変化ピンを辿ることにより、故障に関わる可能性のある活性化パスのトレースを行なう。
【発明の効果】
【００２５】
実チップの遅延試験の際に信号が伝播した活性化パスが、遅延試験の際のテストパターンに基づき、高速に抽出される。
【図面の簡単な説明】
【００２６】
【図１】本実施形態の活性化パス抽出装置の機能構成を示すブロック図である。
【図２】本実施形態の活性化パス抽出装置におけるシミュレーション部によって得られる信号値変化ピン情報の例を示す図である。
【図３】本実施形態の活性化パス抽出装置におけるシミュレーション部によって得られるクロック制御系ピン情報の例を示す図である。
【図４】クロック制御系パスおよびクロック制御系ピンを説明するための図である。
【図５】グリッチを説明するための図である。
【図６】本実施形態の活性化パス抽出装置におけるグリッチ検出手法を説明するための図である。
【図７】本実施形態の活性化パス抽出装置における不定値設定手段としての機能を説明すべくセルライブラリ（Verilogソースコード）の要部記述を示す図である。
【図８】本実施形態の活性化パス抽出装置におけるパストレース部によるトレース動作を説明するための図である。
【図９】本実施形態の活性化パス抽出装置における処理の流れを説明するためのフローチャートである。
【図１０】本実施形態の活性化パス抽出装置におけるパストレース部の動作を説明するためのフローチャートである。
【図１１】（Ａ）〜（Ｈ）は本実施形態の活性化パス抽出装置におけるパストレース部による活性化パスの深さ優先探索および計数動作を説明するための図である。
【図１２】ディレイテストを含む一般的なチップの設計製造の手順を概略的に説明するためのフローチャートである。
【図１３】ディレイテストを説明すべく試験対象の実チップ上の回路構成の例を示す図である。
【図１４】解析対象パス毎に設定される特徴ベクトルの各ベクトル成分の定義を示す図である。
【図１５】図１４に示す特徴ベクトルの具体例を示す図である。
【図１６】スピードパス解析結果の例を示す図である。
【発明を実施するための形態】
【００２７】
以下、図面を参照して実施の形態を説明する。
〔１〕本実施形態の活性化パス抽出装置の構成および機能
〔１−１〕全体構成
図１は、本実施形態の活性化パス抽出装置１の機能構成を示すブロック図である。この図１に示す活性化パス抽出装置１は、実チップに対するディレイテスト（遅延試験）時に信号が伝播した活性化パスを抽出する機能を果たす。この機能を実現するため、活性化パス抽出装置１は、一般的なパーソナルコンピュータ等の計算機から構成され、処理部１０および記憶部２０を有するほか、設計者によって操作され各種情報を本装置１に入力するマンマシンインタフェース（図示略）を有している。なお、処理部１０は、ＣＰＵ（Central Processing Unit）等であり、記憶部２０は、ＲＡＭ（Random Access Memory），ＲＯＭ（Read Only Memory），ハードディスク等の内部記憶装置であってもよいし、外部記憶装置であってもよい。
【００２８】
処理部１０は、活性化パス抽出プログラムを実行することにより、後述するシミュレーション部１１およびパストレース部１２としての機能を果たす。
また、記憶部２０は、後述するディレイテスト結果データベース２１，ネットリスト２２，トグルピン情報リスト２３，クロック制御系ピン情報リスト２４および活性化パストレース結果データベース２５を格納するとともに、設計者によって設定される各種情報や上記活性化パス抽出プログラムなども格納する。
【００２９】
〔１−２〕記憶部における保存データ
ディレイテスト結果データベース２１は、図１２および図１３を参照しながら前述した手順で得られたディレイテスト結果を格納する。一回のディレイテストで得られたディレイテスト結果には、一組のテストパターン２１１およびフェイルリスト２１２が含まれている。これら一組のテストパターン２１１およびフェイルリスト２１２は、前記一回のディレイテストを特定する識別情報（ＩＤ）に対応付けられて、データベース２１に保存される。
【００３０】
テストパターン２１１には、上述したように、ディレイテストで用いられた２つのテストベクトルと、これら２つのテストベクトルを入力した際に出力側ＦＦ１０２で得られるべき期待値と、ディレイテストで得られた遅延時間の測定値とが含まれている。ここで、遅延時間の測定値は、実チップ上の活性化パスにおいて信号が入力側ＦＦ１０１から出力側ＦＦ１０２までに到達する時間の測定値（図１中では“t [ps]”）である。
【００３１】
フェイルリスト２１２には、ディレイテストでフェイルした出力側ＦＦ１０２を特定する情報（ＦＦ名等）がリストアップされている。ここで、フェイルした出力側ＦＦ１０２とは、上述した通り、図１２のステップＳ３で出力側ＦＦ１０２における値が所定スペックを満たしていないと判断された出力側ＦＦ１０２のことである。換言すれば、フェイルリスト２１２に登録された出力側ＦＦ１０２は、ディレイテストの結果、所定時間内に期待値を得られなかったＦＦ、さらに換言すれば、実チップのディレイテストにおいて期待値と異なる値を出力したＦＦである。このような出力側ＦＦのことを、以下では、「フェイルＦＦ」という。
【００３２】
ネットリスト２２は、設計（図１２のステップＳ１）によって得られる設計データで、設計対象のチップ上におけるセル等の回路素子に関する情報や、セルの接続関係を含む、端子間の接続情報を保持している。ネットリスト２２は、設計対象の回路を、セルライブラリ，サブモジュール，モジュールおよびチップとして階層的に記述するVerilogソースコードである（例えば図７参照）。
【００３３】
トグルピン情報リスト２３は、後述するごとくシミュレーション部１１によって特定された信号値変化ピンの情報を保存する。なお、信号値変化ピンとは、ディレイテスト時に信号値が変化したピンのことであり、「トグル(toggle)したピン」または「トグルピン」とも呼ばれる。ここで、信号値の変化とは、信号値が、０から１へ、１から０へ、０からｘ（不定値）へ、ｘから０へ、１からｘへ、ｘから１へのうちのいずれか一つの変化を示すことである。そして、トグルピン情報リスト２３には、例えば図２に示すように、トグルピンを特定する情報として、そのトグルピンのピン名もしくは識別情報（ＩＤ）がリストアップされ登録される。なお、図２は、シミュレーション部１１によって得られるトグルピン情報（リスト２３）の例を示す図である。
【００３４】
クロック制御系ピン情報リスト２４は、後述するごとくシミュレーション部１１によって特定されたクロック制御系ピンの値１または０を、例えば図３に示すように、そのクロック制御系ピンを特定するピン名（ピンＩＤ）に対応付けて保存する。ここで、クロック制御系ピンは、例えば、図４に示すように、クロック信号ＣＫを各出力側ＦＦ１０２のクロック端子に入力する否かを制御する信号値を設定されるＩＨ(inhibit)ピンである。なお、図３は、シミュレーション部１１によって得られるクロック制御系ピン情報（リスト２４）の例を示す図であり、図４は、クロック制御系パスおよびクロック制御系ピンを説明するための図である。
【００３５】
図４に示す例では、出力側ＦＦ１０２のクロック端子には、クロック信号ＣＫとＩＨピンの信号値との論理和を出力するＯＲゲート１０３が接続されている。このため、ＩＨピンの信号値が１に設定された場合、クロック信号ＣＫは、ＯＲゲート１０３を通過できず出力側ＦＦ１０２のクロック端子に入力されるのを禁止される。一方、ＩＨピンの信号値が０に設定された場合、クロック信号ＣＫは、ＯＲゲート１０３を通過し出力側ＦＦ１０２のクロック端子に入力される。
【００３６】
ＩＨピンは、各種ゲートを含む組み合わせ回路（図示略）を介して入力側ＦＦ１０１に接続されており、入力側ＦＦ１０１からＩＨピンに到達するパスは、クロック制御系パスまたはＩＨパスと呼ばれる。本実施形態では、上述したＩＨパスと、入力側ＦＦ１０１から出力側ＦＦ１０２のデータピンに到達しデータが伝播するデータパスとが、活性化パスとして特定・抽出される対象になっている。
【００３７】
活性化パストレース結果データベース２５は、後述するごとくパストレース部１２が活性化パスのトレースを行なって得た、活性化パスに関する情報を保存する。活性化パスに関する情報は、例えば、活性化パスが通過したピンのピン名（ピンＩＤ）や活性化パスが通過したネットのネット名（ネットＩＤ）であり、これらの情報は、活性化パスを特定するパス名（パスＩＤ）に対応付けられてデータベース２５に保存される。また、データベース２５は、後述するごとくパストレース部１２の計数機能によって得られた活性化パスの数も保存される。
【００３８】
〔１−３〕処理部の機能
次に、処理部１０によって実現されるシミュレーション部１１およびパストレース部１２の機能について説明する。
〔１−３−１〕シミュレーション部の基本的な機能
シミュレーション部１１は、実チップに対するディレイテスト時のテストパターン２１１と実チップのネットリスト２２とに基づき、ディレイテストのシミュレーションを行なうことにより、ディレイテスト時に信号値が変化した信号値変化ピンを特定する。このとき、シミュレーション部１１は、タイミングを考慮することなく、つまり遅延時間に関する情報を保持するＳＤＦ(Standard Delay Format)ファイルを用いることなく、ディレイテストのシミュレーションを行なう。
【００３９】
具体的に、シミュレーション部１１は、実チップに対するディレイテストで用いられた２組のテストベクトルをデータベース２１（テストパターン２１１）から読み出す。そして、シミュレーション部１１は、これら２組のテストベクトルに基づく信号を、データベース２１のネットリスト２２に基づいて入力側ＦＦ１０１から出力側ＦＦ１０２へ伝播させる一連のディレイテスト動作を、タイミングを考慮することなくシミュレーションによって実行する。つまり、シミュレーション部１１は、シミュレーションによって、１つ目のテストベクトルに基づく値を各ゲートの入力ピンや出力ピンにセットした後、所定時間間隔をあけた２回のクロックを発する。さらに、シミュレーション部１１は、シミュレーションによって、１つ目のクロックエッジで２つ目のテストベクトルを入力側ＦＦ１０１からパス上へ出力(launch)してパスを活性化し、信号を入力側ＦＦ１０１から出力側ＦＦ１０２へ伝播させる。シミュレーション部１１は、続く２つ目のクロックエッジで、出力側ＦＦ１０２に伝播した信号値を出力側ＦＦ１０２にキャプチャし、出力側ＦＦ１０２における値とテストパターン２１１から読み出された期待値とを比較し、これらの値の一致／不一致を判定する。
【００４０】
このとき、シミュレーション部１１は、信号を入力側ＦＦ１０１から出力側ＦＦ１０２へ伝播させるシミュレーションを行ないながら、信号値が変化したトグルピンを特定し、特定したトグルピンのピン名を、図２に示すように、トグルピン情報リスト２３に保存する。ここで、シミュレーション部１１が信号値が変化したか否かの判定を行なう対象ピンは、例えば、入力側ＦＦ１０１の出力ピン，出力側ＦＦ１０２の入力ピン，入力側ＦＦ１０１と出力側ＦＦ１０２との間の各種ゲートの入力ピンおよび出力ピン，上述したＩＨピンなどである。
【００４１】
また、シミュレーション部１１は、上述したシミュレーションにより、ＩＨピンの値、特に本実施形態では２回目のクロックエッジでＯＲゲート１０３のＩＨピン（図４参照）に設定された値を特定し、特定した値を、ＩＨピンのピン名に対応付け、図３に示すように、クロック制御系ピン情報リスト２４に保存する。このようにクロック制御系ピン情報リスト２４に保存された情報と、トグルピン情報リスト２３に保存された情報とは、後述するごとく、トレースすべき活性化パスを絞り込むための判定処理（図１０のステップＳ３１参照）に用いられる。
【００４２】
なお、シミュレーション部１１は、シミュレーションによって得られた各出力側ＦＦ１０２の出力値とテストパターン２１１に含まれる期待値とを比較し、これらの出力値と期待値とが全て一致した場合、シミュレーションによって特定されリスト２３，２４に保存された活性化パスの情報を有効にしている。これにより、シミュレーション部１１は、シミュレーションによって得られた情報の信頼性のチェックを行なっている。つまり、シミュレーション部１１は、出力値と期待値とが全て一致した場合、シミュレーションの信頼性が確保されていると判断し、今回のシミュレーションで得られた情報を有効にし、以下の処理で利用する。一方、シミュレーション部１１は、出力値と期待値とが一致しない場合、シミュレーションの信頼性が確保されていないと判断し、今回のシミュレーションで得られた情報を無効にし、シミュレーションを再度行なったりエラー通知を設計者等に通知したりする。
【００４３】
上述したように、シミュレーション部１１は、遅延時間を考慮することなく実チップに対するディレイテストのシミュレーションを簡易的に行なって、ディレイテスト時における、入力側ＦＦ１０１と出力側ＦＦ１０２との間における各ピンの信号値の変化を追っている。このように、タイミングを考慮しないで行なう、ディレイテストのシミュレーションは、タイミングを考慮し遅延時間を算出しながら行なう、ディレイテストのシミュレーションに比べ、極めて高速に実行される。
【００４４】
〔１−３−２〕グリッチの検出手法および不定値設定手段の機能
ところで、複数の信号がゲートに入力される場合、これらの信号の微妙なタイミングずれによって、そのゲートの出力信号に、グリッチ(glitch)と呼ばれるノイズ波形が出現することがある。
ここで、図５を参照しながら、ＡＮＤゲート１０４の出力信号に出現するグリッチについて説明する。なお、図５はグリッチを説明するための図である。この図５に示すＡＮＤゲート１０４は、２つの入力ピンａ，ｂから２つの入力信号を入力され、これら２つの入力信号の論理積結果を出力信号として出力ピンｃから出力する。このようなＡＮＤゲート１０４に対して、０から１に立ち上がる第１入力信号と、１から０に立ち下がる第２入力信号とが、同じタイミングで、それぞれ入力ピンａ，ｂから入力された場合について考える。
【００４５】
このとき、実チップ上において第１入力信号の立ち上がりタイミングと第２入力信号の立ち上がりタイミングとをできるかぎり一致させたとしても、微妙なタイミングずれは必ず発生する。このため、実チップ上のＡＮＤゲート１０４の出力ピンｃから出力される信号には、図５の右上に示すように、微小な時間間隔で０→１→０と変化するグリッチが出現する可能性がある。
【００４６】
一方、シミュレーション部１１がタイミングを考慮することなくディレイテストのシミュレーションを行なう場合、第１入力信号の立ち上がりタイミングと第２入力信号の立ち上がりタイミングとは完全に同一であるとして取り扱われる。このため、ＡＮＤゲート１０４の出力ピンｃから出力される信号は、図５の右下に示すように、０のまま何ら変化を示さなくなる。つまり、以降のシミュレーションでは、ＡＮＤゲート１０４の出力ピンｃに続くパスに、論理上、何ら信号が伝播していないものとして取り扱われることになり、グリッチの存在が無視され、グリッチが伝播する活性化パスの存在も無視されてしまう。
【００４７】
上述したグリッチ自体は、回路を動作させるために積極的に利用されるものではない。しかし、グリッチの出現は、回路における故障の要因になる可能性があるため、故障解析を行なう際にグリッチを無視することはできない。このため、タイミングを考慮しないディレイテストのシミュレーションを行ないながらも、グリッチによって信号値が変化するトグルピンを確実に特定し、グリッチが出現する可能性のあるパスを活性化パスとして抽出できるようにする必要がある。
【００４８】
そこで、本実施形態では不定値設定手段がそなえられている。この不定値設定手段は、シミュレーションの実行時に入力側ＦＦ１０１の出力ピンの信号値が変化する場合、その出力ピンの変化前の信号値と変化後の信号値との間に不定値ｘを所定時間ｔｘだけ設定する。そして、シミュレーション部１１は、不定値設定手段によって不定値ｘを設定された信号値に基づいて、タイミングを考慮することなくディレイテストのシミュレーションを行なう。これにより、後述するごとく、シミュレーション部１１は、通常の信号伝播によって信号値が変化するトグルピンのみならず、グリッチによって信号値が変化するトグルピンを特定することが可能になる。
【００４９】
ここで、図６および図７を参照しながら、本実施形態でのグリッチ検出手法について具体的に説明する。なお、図６は、本実施形態におけるグリッチ検出手法を説明するための図、図７は、本実施形態における不定値設定手段としての機能を説明すべくセルライブラリの要部記述を示す図である。
【００５０】
不定値設定手段は、入力側ＦＦの出力ピンの信号値が０から１に立ち上がる場合や１から０に立ち下がる場合、例えば図６の左側に示すように、信号値０と１との間や信号値１と０との間に不定値ｘを所定時間ｔｘだけ設定する。つまり、入力側ＦＦの出力ピンの信号値が０から１に立ち上がる場合、出力ピンの信号値は０を示した後に所定時間ｔｘだけ不定値ｘを維持してから１に変化する（０→ｘ→１）。また、入力側ＦＦの出力ピンの信号値が１から０に立ち下がる場合、出力ピンの信号値は１を示した後に所定時間ｔｘだけ不定値ｘを維持してから０に変化する（１→ｘ→０）。このとき、所定時間ｔｘは、ネットリスト２２における各セルの内部遅延値よりも長く且つシミュレーションでのクロック周期（２発のクロックの時間間隔）よりも短く設定されるが、その理由については後述する。
【００５１】
不定値設定手段としての機能は、例えば図７に示すように、入力側ＦＦを定義するVerilogソースコードの記述によって実現される。この記述は、実チップのネットリスト２２に含まれている。図７に示す記述のうち、符号Ａで示す領域の記述は、上記不定値設定手段としての機能を実現するための記述である。具体的に、この領域Ａでは、出力ｍと入力ｄとが異なる場合つまりＦＦの出力ピンの値が変化する場合、不定値ｘを１０単位時間だけ出力ｍに代入してから入力ｄを出力ｍに代入することが定義されている。
【００５２】
また、不定値設定手段を定義する記述は、シミュレーション部１１がディレイテストのシミュレーションを実行すべく入力側ＦＦの定義記述をネットリスト（セルライブラリ）２２から読み出した際に、入力側ＦＦを定義する記述に対し新たに追加されるか、入力側ＦＦの定義記述を修正することにより追加される（図９のステップＳ１０参照）。このように入力側ＦＦの定義記述が読み出されたことを判定しその定義記述に不定値設定手段を定義する記述を自動的に追加する機能は、例えば、処理部１０が上記活性化パス抽出プログラムを実行することにより実現される。そして、シミュレーション部１１が、不定値設定手段を定義する記述を追加された入力側ＦＦの定義記述に基づいて、入力側ＦＦの動作をシミュレートすることにより、上述した不定値設定手段としての機能がシミュレーション部１１において実現される。
【００５３】
図６に示すように、不定値設定手段によって不定値ｘを設定された第１入力信号および第２入力信号が、それぞれ、入力ピンａ，ｂからＡＮＤゲート１０４に入力されると、このＡＮＤゲート１０４の出力ピンｃからは、グリッチに対応する信号波形が出力される。このグリッチに対応する信号波形による信号値は、０を示した後に所定時間ｔｘだけ不定値ｘを維持してから０に戻る（０→ｘ→０）。このように不定値ｘを含む信号波形は、ＡＮＤゲート１０４以降のパスを伝播することになり、不定値ｘを含む信号波形が通過したピンは、シミュレーション部１１によって、トグルピンとして特定されることになる。
【００５４】
ここで、上述した第１入力信号や第２入力信号のごとく、不定値ｘを入力側ＦＦの出力ピンの変化前信号値と変化後信号値との間に不定値ｘを設定する理由について説明する。
例えば、文献R. Guo, W.-T. Cheng, K.-H. Tsai, “Speed-Path Debug Using At-Speed Scan Test Patterns”, IEEE Conference 2009 Papers (URL: http://www.mentor.com/products/silicon-yield/ieee_conference_papers/)には、入力側の信号値が０から１へまたは１から０へ変化する際（０→１または１→０）、信号値の変化先を不定値ｘに置き換えてシミュレーションを行ない、不定値ｘが伝播したデータパスを、ノイズを含めた信号が伝播したパスとして探索することが記載されている。
【００５５】
しかし、上記文献のごとく入力側の信号値を不定値ｘに変化させてシミュレーションを行なって不定値ｘが伝播したパスを探索する場合、データパスを探索対象とすることはできるが、ＩＨパスのごときクロック制御系パスを探索対象とすることはできない。例えば図４に示す回路構成において、不定値ｘが入力側からＩＨパスを伝播してＩＨピンに到達し維持されると、不定値ｘが出力側ＦＦ１０２のクロック端子に入力されることになるため、シミュレーション部１１はシミュレーションを正常に実行することができなくなる。
【００５６】
そこで、本実施形態では、入力側ＦＦ１０１から各パスへ出力される信号値が変化する場合、不定値設定手段の機能により、変化前信号値と変化後信号値との間に不定値ｘが所定時間ｔｘだけ設定される。これにより、各パスを伝播する信号値は、不定値ｘに維持されたままになることがなく、不定値ｘを所定時間ｔｘだけ維持した後、必ず０または１に変化する。
【００５７】
つまり、入力側ＦＦ１０１から各パスへ出力される信号値は、０→ｘ→１または１→ｘ→０のいずれかの変化を示すので、各パスを伝播する信号値は、各種ゲートの通過に伴って、０→ｘ→１，１→ｘ→０，０→ｘ→０，１→ｘ→１のいずれかの変化を示しながら、データピンまたはＩＨピンに到達する。
【００５８】
したがって、本活性化パス抽出装置１では、データピンやＩＨピンに到達した信号値は不定値ｘに維持され続けることがないので、シミュレーションの正常な動作を阻害することなく、データパスとＩＨパスとの両方を、活性化パスとして特定・抽出される対象にすることができる。
【００５９】
次に、変化前信号値と変化後信号値との間において不定値ｘを維持する時間、つまり上記所定時間ｔｘについて説明する。
所定時間ｔｘがネットリスト２２における各セルの内部遅延値以下であると、不定値ｘを含む信号波形、例えば図６に示すグリッチに対応する信号波形（０→ｘ→０）は、セルの内部遅延によって吸収される。このため、セルの出力信号から、不定値ｘを含む信号波形は消えてしまう。したがって、ネットリスト２２におけるVerilogソースコード中の各セルの内部遅延値がチェックされ、最大の内部遅延値よりも長くなるように上記所定時間ｔｘは決定される。これにより、各セルにおいて不定値ｘを含む信号波形が消えてしまうのを抑止でき、不定値ｘを含む信号波形は、各パスを確実に伝播する。
【００６０】
また、所定時間ｔｘが、シミュレーションでのクロック周期Ｔつまり上述した２発のクロックの時間間隔Ｔ以上であると、その時間間隔Ｔの間中、不定値ｘが維持されることになる。この場合、ＩＨパスおよびＩＨピンから出力側ＦＦ１０２のクロック端子に不定値ｘが入力されてしまい、シミュレーション部１１はシミュレーションを正常に実行することができなくなる。したがって、クロック周期Ｔよりも短くなるように上記所定時間ｔｘは決定される。これにより、出力側ＦＦ１０２のクロック端子に不定値ｘが入力されるのを抑止でき、シミュレーションの正常な動作を阻害することなく、データパスとＩＨパスとの両方を、活性化パスとして特定・抽出される対象にすることができる。
【００６１】
上述のように、本実施形態では、タイミングを考慮しないシミュレーションにおいて、グリッチが、不定値ｘを所定時間だけ維持する信号波形として出現するようになる。これにより、シミュレーション部１１は、高速なシミュレーションを行ないながら、グリッチによる信号値変化も見逃すことなく、信号値変化ピン（トグルピン）を確実に特定し、そのピン名をトグルピン情報リスト２３にリストアップすることができる。また、同様にして、２回目のクロックエッジでＯＲゲート１０３のＩＨピンに設定された値を確実に特定し、その値をＩＨピンのピン名に対応付けてクロック制御系ピン情報リスト２４に保存することができる。
【００６２】
〔１−３−３〕パストレース部の機能
パストレース部１２は、トグルピン情報リスト２３にリストアップされたトグルピンのピン名と、実チップのネットリスト２２とに基づき、トグルピンを辿ることにより、活性化パスのトレースを行なう。
【００６３】
具体的に、パストレース部１２は、フェイルリスト２１２からターゲットのフェイルＦＦ（出力側ＦＦ）を一つ選択し、選択したフェイルＦＦのトグルピンをトグルピン情報リスト２３から検索し、一のトグルピン（データピンまたはＩＨピン）を起点として選択する。パストレース部１２は、図８に示すように、起点として選択されたトグルピンから入力側ＦＦへ向かうバックワードトレースを行なう。なお、図８は、パストレース部１２によるトレース動作を説明するための図である。また、トレースに際しては、例えば深さ優先探索が用いられる。この深さ優先探索については、図１１を参照しながら後述する。
【００６４】
このとき、パストレース部１２は、上記起点に物理的に接続されているピンをネットリスト２２から探索し、探索されたピンのうち、トグルピンとしてトグルピン情報リスト２３に登録されているピンを探索する。以下、同様に、パストレース部１２は、探索されたトグルピンよりも入力側で同トグルピンに物理的に接続されているピンをネットリスト２２から探索し、探索されたピンのうち、トグルピンとしてトグルピン情報リスト２３に登録されているピンを探索する。パストレース部１２は、同様の処理を、トレース中の活性化パスが入力側ＦＦの入力ピンに到達するまで繰り返し実行する。
【００６５】
このようにして、パストレース部１２は、トグルピンを辿ることにより、活性化パスのバックワードトレースを行なう。また、パストレース部１２は、バックワードトレースを行ないながら、活性化パスが通過したピン／ネットのピン名／ネット名を取得する。そして、パストレース部１２は、取得されたピン名／ネット名を、フェイルＦＦの入力ピンから入力側ＦＦの出力ピンまでの一本の活性化パスに関する情報として、その活性化パスを特定するパス名に対応付けて活性化パストレース結果データベース２５に保存する。
【００６６】
〔パストレース部の判定機能〕
パストレース部１２は、以下に説明する判定機能をそなえ、トレースすべき活性化パスの絞り込みを行なってもよい。以下では、パストレース部１２が、上記判定機能をそなえ上記絞り込みを行なう場合について説明する。
【００６７】
判定機能は、トグルピン情報リスト２３におけるトグルピンの情報と、クロック制御系ピン情報リスト２４における各ＩＨピンでの値とに基づき、フェイルＦＦへのデータパスおよびＩＨパスのいずれのパスが故障に関わる可能性があるかを判定する機能を有している。そして、パストレース部１２は、その判定機能によって故障に関わる可能性があると判定されたパスを接続された、フェイルＦＦのトグルピンを起点にして、その起点から当該パスのバックワードトレースを上述と同様にして行なう。
【００６８】
上述したパストレース部１２の判定機能について、より詳細に説明する。
フェイルＦＦの故障要因となるパスとしては、図４に示すように、フェイルＦＦ１０２のＤピンに繋がるデータパスと、ＩＨピンおよびＯＲゲート１０３を介してフェイルＦＦ１０２のクロック端子に繋がるＩＨパスとの２つが挙げられる。ディレイテストで出力側ＦＦ１０２がフェイルするケースとしては、以下の３つのケース１〜３が考えられる。
【００６９】
ケース１：  データパスからＤピンへの信号伝播が間に合わない場合、つまりデータパスが故障要因である場合。
ケース２：  ＩＨパスからＩＨピンへの信号伝播が間に合わない場合、つまりＩＨパスが故障要因である場合。
ケース３：  ケース１かケース２かを判別できない場合、つまりデータパスもＩＨパスも故障要因になりうる場合。
【００７０】
上記判定機能は、トグルピン情報リスト２３におけるトグルピンの情報と、クロック制御系ピン情報リスト２４における各ＩＨピンでの値とに基づき、フェイルＦＦが上述したケース１〜３のいずれに相当するかを判定する。なお、クロック制御系ピン情報リスト２４における各ＩＨピンでの値は、前述したように、２回目のクロックエッジでＩＨピンに設定された値（図３参照；以下「ＩＨ２」と表記）である。
【００７１】
ここで、例えば、図４に示す回路構成において、クロックＣＫの立ち下がり（１→０）時に出力側ＦＦ１０２がデータを格納する場合について考える。このような場合、上記判定機能による、ケース１〜３の判定は、以下のように行なわれる。なお、ここで説明する判定例は、あくまで一例であり、回路の仕様によって、判定を行なうプログラム内のＩＨ２等の判定基準値は変わる。
【００７２】
ＩＨ２＝０且つＩＨピンがトグルしている場合、つまりクロック制御系ピン情報リスト２４に保存されたＩＨピンの値ＩＨ２が０で且つＩＨピンのピン名がトグルピン情報リスト２３に登録されている場合、フェイルＦＦはケース３に相当すると判定される。このとき、上記判定機能は、データパスもＩＨパスも故障要因になりうるものと判定し、データパスおよびＩＨパストレースの両方を、トレースすべき活性化パスとする。
【００７３】
ＩＨ２＝０且つＩＨピンがトグルしていない場合、つまりクロック制御系ピン情報リスト２４に保存されたＩＨピンの値ＩＨ２が０で且つＩＨピンのピン名がトグルピン情報リスト２３に登録されていない場合、フェイルＦＦはケース１に相当すると判定される。このとき、上記判定機能は、データパスが故障要因になりうるものと判定し、データパスをトレースすべき活性化パスと判定する。
【００７４】
ＩＨ２＝１の場合、つまりクロック制御系ピン情報リスト２４に保存されたＩＨピンの値ＩＨ２が１である場合、そのＩＨピンのピン名がトグルピン情報リスト２３に登録されているか否かに関わらず、フェイルＦＦはケース２に相当すると判定される。このとき、上記判定機能は、ＩＨパスが故障要因になりうるものと判定し、ＩＨパスをトレースすべき活性化パスと判定する。
【００７５】
このようにパストレース部１２の判定機能により、トレースすべき活性化パスが絞り込まれ、絞り込まれた活性化パスについてトレースが行なわれるので、スピードパス解析を行なう際に必要になる活性化パスの情報が、高速かつ確実に抽出される。
【００７６】
〔パストレース部の計数機能〕
パストレース部１２は、トグルピン情報リスト２３にリストアップされたトグルピンのピン名と、実チップのネットリスト２２とに基づき、トグルピンを辿ることにより、活性化パスの数、つまり一つのフェイルＦＦから入力側ＦＦに到る活性化パスの数を計数する機能を有している。この計数機能によって得られた計数値は、活性化パストレース結果データベース２５に保存される。
【００７７】
この計数機能によるパス数の計数処理は、パストレース部１２が活性化パスのバックワードトレースを行なって活性化パスの通過したピン／ネットの情報を取得するトレース処理と同時に実行されてもよい。
また、上記計数処理は、上記トレース処理と別個に実行されてもよい。例えば、上記トレース処理を実行する前に上記計数処理のみを実行して、フェイルＦＦ毎に、トレースされるべき活性化パスの数を計数する。これにより、設計者は、各フェイルＦＦの活性化パスの数を参照して、どのフェイルＦＦをターゲットにして活性化パスのトレースを行なうかなどの各種判断を、上記トレース処理の開始前に行なうことができる。
【００７８】
具体的に、パストレース部１２の計数機能は、上述したトレース処理と同様、フェイルＦＦのトグルピンを起点にして、その起点から、深さ優先探索を行ない、各ピンに対し、そのピンよりも深い側の活性化パスの本数をラベルとして付与しながらトグルピンを辿ることにより、活性化パスの数を計数する。この計数処理については、図１１を参照しながら詳述する。
【００７９】
〔２〕本実施形態の活性化パス抽出装置の動作
次に、上述のごとく構成された本実施形態の活性化パス抽出装置１の具体的な機能や動作について、図９〜図１１を参照しながら説明する。
〔２−１〕活性化パス抽出装置における処理の流れ
まず、図９に示すフローチャート（ステップＳ１０〜Ｓ３０）に従って、活性化パス抽出装置１における処理の流れについて説明する。
【００８０】
実チップに対するディレイテストが行なわれると、ディレイテストで用いられたテストパターン２１１とディレイテストによって得られたフェイルリスト２１２とが、記憶部２０のディレイテスト結果データベース２１に格納される。また、記憶部２０には、実チップの設計データ（Verilogソースコード）であるネットリスト２２が格納される。ネットリスト２２には、各セルを定義するセルライブラリが含まれている。
【００８１】
このように各種データが記憶部２０に格納されると、シミュレーション部１１およびパストレース部１２により、以下のような手順で活性化パスが抽出される。
まず、シミュレーション部１１により、ディレイテストのシミュレーションを実行すべく、テストパターン２１１およびネットリスト（セルライブラリ）２２から必要なデータが読み出される。このとき、入力側ＦＦの定義記述がネットリスト２２から読み出されると、シミュレーション部１１により、上記不定値設定手段を定義する記述（例えば図７の領域Ａ参照）が、入力側ＦＦを定義する記述に対し追加・修正される。つまり、グリッチを検出するためのソースコード記述が追加・修正される（ステップＳ１０）。
【００８２】
この後、ステップＳ２０において、シミュレーション部１１により、実チップに対するディレイテスト時のテストパターン２１１と実チップのネットリスト２２とに基づき、ディレイテストのシミュレーションが、タイミングを考慮することなく実行される。これにより、シミュレーション部１１により、ディレイテスト時に信号値が変化したトグルピンが特定され、そのトグルピンのピン名がトグルピン情報リスト２３に保存される（図２参照）。
【００８３】
このとき、シミュレーション部１１が、不定値設定手段を定義する記述を追加された入力側ＦＦの定義記述に基づいて、入力側ＦＦの動作をシミュレートすることにより、上記不定値設定手段としての機能がシミュレーション部１１において実現される。つまり、入力側ＦＦの出力ピンの信号値が０から１に立ち上がる場合や１から０に立ち下がる場合、不定値設定手段により、例えば図６の左側に示すように、信号値０と１との間や信号値１と０との間に不定値ｘが所定時間ｔｘだけ設定される。
【００８４】
このように不定値設定手段によって不定値ｘを設定された信号が、各パスに入力されると、図６を参照しながら上述したように、タイミングを考慮しないシミュレーションにおいて、グリッチが、不定値ｘを所定時間だけ維持する信号波形として出現する。このように不定値ｘを含む信号波形はグリッチの発生したセル以降のパスを伝播する。このため、不定値ｘを含む信号波形が通過したピンは、シミュレーション部１１によって、トグルピンとして特定され、特定したトグルピンのピン名はトグルピン情報リスト２３に保存される。
【００８５】
また、ステップＳ２０においては、シミュレーション部１１により、２回目のクロックエッジでクロック制御系ピン（例えばＩＨピン；図４参照）に設定された値が特定され、その値が、ＩＨピンのピン名に対応付け、クロック制御系ピン情報リスト２４に保存される（図３参照）。
【００８６】
シミュレーション部１１により、以上のようなシミュレーションが行なわれると、シミュレーションによって得られた各出力側ＦＦの出力値とテストパターン２１１に含まれる期待値とが比較される。これらの出力値と期待値とが全て一致した場合、シミュレーションの信頼性が確保されていると判断され、シミュレーションによって特定されリスト２３，２４に保存された活性化パスの情報が、以降のパストレース処理に用いられる。これらの出力値と期待値とが一致しない場合、シミュレーションの信頼性が確保されていないと判断され、今回のシミュレーションで得られた情報が無効にされ、シミュレーションが再度行なわれたりエラー通知が行なわれたりする。
【００８７】
シミュレーション部１１によるディレイテストのシミュレーションによって、記憶部２０におけるトグルピン情報リスト２３およびクロック制御系ピンリスト２４に、必要な情報が保存されると、パストレース部１２によるトレース処理が、フェイルＦＦに対して実行される（ステップＳ３０）。そして、このトレース処理によって取得された活性化パスの情報、例えば、活性化パスが通過したピン／ネットのピン名／ネット名や、活性化パスの数が、活性化パスを特定するパス名に対応付けられて活性化パストレース結果データベース２５に保存される。
【００８８】
〔２−２〕パストレース処理
次に、図１０に示すフローチャート（ステップＳ３１，Ｓ３２）に従って、パストレース部１２の動作つまり図９のステップ３０におけるパストレース処理について説明する。
上述のように、シミュレーション部１１によるディレイテストのシミュレーションが行なわれ、トグルピン情報リスト２３およびクロック制御系ピンリスト２４に、必要な情報が保存されると、パストレース部１２によるパストレース処理が開始される。
【００８９】
まず、ステップＳ３１において、パストレース部１２により、フェイルリスト２１２からターゲットのフェイルＦＦ（出力側ＦＦ）が一つ選択される。そして、パストレース部１２の判定機能により、選択されたフェイルＦＦが、データパスとクロック制御系パス（ＩＨパス）とのどちらが原因でフェイルしたかが判定される。この判定は、上述したように、トグルピン情報リスト２３におけるトグルピンの情報と、クロック制御系ピン情報リスト２４における各ＩＨピンでの値とに基づいて行なわれる。この判定により、活性化パスのトレース対象が、故障要因であると判定された、データパスとＩＨパスとの少なくとも一方に絞り込まれる。
【００９０】
そして、ステップＳ３２において、判定機能によってフェイルの原因であると判定されたパスを接続された、フェイルＦＦのトグルピンを起点にして、その起点から当該パスのバックワードトレースが実行される。このとき、パストレース部１２により、上記起点に物理的に接続されているピンがネットリスト２２から探索され、探索されたピンのうち、トグルピンとしてトグルピン情報リスト２３に登録されているピンが探索される。以下、同様に、パストレース部１２により、探索されたトグルピンよりも入力側で同トグルピンに物理的に接続されているピンがネットリスト２２から探索され、探索されたピンのうち、トグルピンとしてトグルピン情報リスト２３に登録されているピンが探索される。同様の処理は、トレース中の活性化パスが入力側ＦＦの入力ピンに到達するまで繰り返し実行される。
【００９１】
このようにして、パストレース部１２により、トグルピンを辿ることで、活性化パスのバックワードトレースが行なわれる。このとき、パストレース部１２は、バックワードトレースを行ないながら、活性化パスが通過したピン／ネットのピン名／ネット名を取得する。取得されたピン名／ネット名は、パストレース部１２により、フェイルＦＦの入力ピンから入力側ＦＦの出力ピンまでの一本の活性化パスに関する情報として、その活性化パスを特定するパス名に対応付けられて活性化パストレース結果データベース２５に保存される。
【００９２】
〔２−３〕活性化パスの深さ優先探索および計数処理
次に、図１１（Ａ）〜図１１（Ｈ）を参照しながら、パストレース部１２によって実行される活性化パスの深さ優先探索および計数動作（計数機能）について、具体的に説明する。なお、図１１（Ａ）は、以下の説明において深さ優先探索および計数処理の対象となる活性化パスの全体構成の一例を示す図である。また、図１１（Ｂ）〜図１１（Ｈ）は、図１１（Ａ）に示す活性化パスに対して実行されるパストレース部１２による深さ優先探索および計数動作の手順の一例を説明するための図である。ただし、本件の深さ優先探索および計数処理の対象や手順は、図１１（Ａ）〜図１１（Ｈ）に示す例に限定されるものではない。
【００９３】
なお、図１１（Ａ）〜図１１（Ｈ）において、右側の矩形ブロックは、バックワードトレースの起点となるトグルピンを有するフェイルＦＦを示し、左側の矩形ブロックは、バックワードトレースにより活性化パスが到達する入力側ＦＦを示す。また、丸ブロックは、活性化パスが通過したトグルピンを示す。各ブロック内の符号は、ＦＦ名またはピン名を示す。つまり、フェイルＦＦのＦＦ名はＦ０であり、７つの入力側ＦＦのＦＦ名はそれぞれＦ１〜Ｆ７である。また、フェイルＦＦのトグルピンのピン名はｐ０であり、フェイルＦＦと７つの入力側ＦＦとの間で活性化パスが通過する５つのピンのピン名はそれぞれｐ１〜ｐ５である。
【００９４】
さらに、図１１（Ｂ），図１１（Ｄ）〜図１１（Ｈ）における太実線は、深さ優先探索の各手順で始めて探索されたパスを示す。また、図１１（Ｃ）〜図１１（Ｈ）において、ピンを示す各丸ブロックに付された吹き出しブロックは、そのピンよりも深い側の活性化パスの本数を、パストレース部１２によって記入されるラベルを示す。各ラベルは、実際には、記憶部２０において各ピンのピン名に対応付けられて保存される。
【００９５】
まず、パストレース部１２は、図１１（Ｂ）の矢印Ａ１で示すように、起点となるフェイルＦＦ（Ｆ０）のトグルピンｐ０から深さ方向（図中左方向；入力側）へ向かいトグルピンの探索を実行し、ピンｐ１，ｐ３経由で入力側ＦＦ（Ｆ１）に到達する。これにより、経路ｐ０→ｐ１→ｐ３→Ｆ１が１本目の活性化パスとしてトレースされる。そして、パストレース部１２は、図１１（Ｃ）の矢印Ａ２で示すように、入力側ＦＦ（Ｆ１）に繋がるピンｐ３に戻り、ピンｐ３のラベルに計数値１を記入してから、ピンｐ３よりも深い側におけるＦ１以外の入力側ＦＦまたはトグルピンを探索する。
【００９６】
図１１（Ａ）に示す例ではピンｐ３にはＦ１以外にＦ２が接続されているので、パストレース部１２は、図１１（Ｄ）の矢印Ａ３で示すように、Ｆ２を探索する。これにより、経路ｐ０→ｐ１→ｐ３→Ｆ２が２本目の活性化パスとしてトレースされる。そして、パストレース部１２は、同図の矢印Ａ４で示すようにピンｐ３に戻り、ピンｐ３での計数値１に１を加算することにより、ピンｐ３のラベルに、このピンｐ３よりも深い側の活性化パスの本数２を記入する。
【００９７】
ピンｐ３にはＦ１，Ｆ２以外に入力側ＦＦやトグルピンは接続されていないので、パストレース部１２は、図１１（Ｅ）の矢印Ａ５で示すように、ピンｐ１に戻り、ピンｐ１のラベルにピンｐ３での計数値２を記入してから、ピンｐ１よりも深い側におけるピンｐ３以外のトグルピン等を探索する。図１１（Ａ）に示す例ではピンｐ１にはピンｐ３以外にピンｐ４が接続されているので、パストレース部１２は、ピンｐ４を探索し、さらに図１１（Ｅ）の矢印Ａ６〜Ａ８で示すように、ピンｐ４よりも深い側におけるＦ３，Ｆ４を探索する。これにより、経路ｐ０→ｐ１→ｐ４→Ｆ３および経路ｐ０→ｐ１→ｐ４→Ｆ４が３本目および４本目の活性化パスとみなされる。この時点で、ピンｐ４のラベルには、このピンｐ４よりも深い側の活性化パスの本数２が記入される。
【００９８】
ピンｐ４にはＦ３，Ｆ４以外に入力側ＦＦやトグルピンは接続されていないので、パストレース部１２は、図１１（Ｆ）の矢印Ａ９で示すように、ピンｐ１に戻る。そして、パストレース部１２は、ピンｐ１での計数値２にピンｐ４での計数値２を加算することにより、ピンｐ１のラベルに、このピンｐ１よりも深い側の活性化パスの本数４を記入する。また、ピンｐ１にはピンｐ３，ｐ４以外のトグルピンは接続されていないので、パストレース部１２は、同図の矢印Ａ１０で示すように、ピンｐ０に戻り、ピンｐ０のラベルにピンｐ１での計数値４を記入してから、ピンｐ０よりも深い側におけるピンｐ１以外のトグルピン等を探索する。図１１（Ａ）に示す例ではピンｐ０にはピンｐ１以外にピンｐ２が接続されているので、パストレース部１２は、図１１（Ｆ）の矢印Ａ１１で示すように、ピンｐ２を探索する。
【００９９】
パストレース部１２は、ピンｐ２を探索すると、図１１（Ｇ）の矢印Ａ１２〜Ａ１４に示すように、ピンｐ２よりも深い側における３つのピンｐ３〜ｐ５を順に探索する。パストレース部１２は、ピンｐ３を探索すると、ピンｐ３よりも深い側の活性化パスの探索を既に完了しているので、その探索を行なわず、ピンｐ３での計数値２をピンｐ２のラベルに記入する。ついで、パストレース部１２は、ピンｐ４を探索すると、ピンｐ４よりも深い側の活性化パスの探索も既に完了しているので、その探索を行なわず、ピンｐ４での計数値２をピンｐ２での計数値２に加算し、ピンｐ２のラベルにおける計数値として４を記入する。
【０１００】
さらに、パストレース部１２は、ピンｐ５を探索すると、図１１（Ｈ）の矢印Ａ１５〜Ａ１８に示すように、ピンｐ５よりも深い側における３つの入力側ＦＦ（Ｆ５〜Ｆ７）を順に探索する。これにより、経路ｐ０→ｐ２→ｐ５→Ｆ５，経路ｐ０→ｐ２→ｐ５→Ｆ６および経路ｐ０→ｐ２→ｐ５→Ｆ７が活性化パスとしてトレースされる。この時点で、ピンｐ５のラベルには、このピンｐ５よりも深い側の活性化パスの本数３が記入される。
【０１０１】
ピンｐ５にはＦ５〜Ｆ７以外に入力側ＦＦやトグルピンは接続されていないので、パストレース部１２は、図１１（Ｈ）の矢印Ａ１９で示すように、ピンｐ２に戻り、ピンｐ２での計数値４にピンｐ５での計数値３を加算することにより、ピンｐ２のラベルに、このピンｐ２よりも深い側の活性化パスの本数７を記入する。また、ピンｐ２にはピンｐ３〜ｐ５以外のトグルピンは接続されていないので、パストレース部１２は、同図の矢印Ａ２０で示すように、ピンｐ０に戻る。そして、パストレース部１２は、ピンｐ０での計数値４にピンｐ２での計数値７を加算することにより、ピンｐ０のラベルに、このピンｐ０よりも深い側の活性化パスの本数１１を記入する。そして、ピンｐ０にはピンｐ１，ｐ２以外のトグルピンは接続されていないので、この時点で、パストレース部１２は、フェイルＦＦ（Ｆ０）についての活性化パスの深さ優先探索および計数処理を完了する。つまり、図１１（Ａ）に示すフェイルＦＦ（Ｆ０）について、活性化パスの数として１１が計数される。
【０１０２】
このように、パストレース部１２は、計数対象のフェイルＦＦのトグルピンから、深さ優先探索を行ない、各ピンに対し、そのピンよりも深い側の活性化パスの本数をラベルとして付与しながらトグルピンを辿り、活性化パスの数を計数する。このとき、パストレース部１２は、バックワードトレースによって、計数値を記入されたラベルを付与されたピンに到達した場合、そのピン以降のトレースを行なうことなくそのピンに付与されたラベルに記入された計数値を読み出し、そのピンよりも浅い側のピンのラベルに記入された計数値に加算する。これにより、極めて高速に活性化パスの計数を行なうことができる。このようにして計数された計数値つまり活性化パスの数は、活性化パストレース結果データベース２５に保存される。
【０１０３】
〔３〕本実施形態の活性化パス抽出装置の効果
本実施形態では、シミュレーション部１１は、遅延時間を考慮することなく実チップに対するディレイテストのシミュレーションを簡易的に行なって、ディレイテスト時における、入力側ＦＦ１０１と出力側ＦＦ１０２との間における各ピンの信号値の変化を追っている。これにより、実チップのディレイテスト時に信号が伝播した活性化パスが、ディレイテスト時のテストパターンに基づき、高速に抽出される。特に、フェイルＦＦをトレース対象とすることにより、スピードパス解析を行なう際に必要な、フェイルＦＦの遅延つまり故障に関わる可能性の高い活性化パスが、高速かつ確実に抽出される。これにより、故障診断に要する時間やコストを大幅に削減することができる。このとき、シミュレーション部１１は、出力値と期待値とが全て一致した場合に、シミュレーションで得られた情報を有効にするので、シミュレーションの信頼性が確保される。
【０１０４】
また、本実施形態では、タイミングを考慮しないシミュレーションにおいて、グリッチが、不定値ｘを所定時間だけ維持する信号波形として出現するようになる。これにより、シミュレーション部１１は、高速なシミュレーションを行ないながら、グリッチによる信号値変化も見逃すことなく、トグルピンを確実に特定し、そのピン名をトグルピン情報リスト２３にリストアップすることができる。したがって、グリッチを加味した故障診断を行なうことが可能であり、故障診断の信頼性も向上することになる。
【０１０５】
さらに、本実施形態では、データピンやＩＨピンに到達した信号値は不定値ｘに維持され続けることがないので、シミュレーションの正常な動作を阻害することなく、データパスとＩＨパスとの両方を、活性化パスとして特定・抽出される対象にすることができる。また、パストレース部１２の判定機能により、トレースすべき活性化パスが絞り込まれ、絞り込まれた活性化パスについてトレースが行なわれるので、スピードパス解析を行なう際に必要になる活性化パスの情報が、より高速かつ確実に抽出される。
【０１０６】
また、活性化パスの計数処理をトレース処理を実行する前に実行して、フェイルＦＦ毎に、トレースされるべき活性化パスの数を計数することにより、設計者は、各フェイルＦＦの活性化パスの数を参照して、どのフェイルＦＦをターゲットにして活性化パスのトレースを行なうかなどの各種判断を、トレース処理の開始前に行なうことができる。
【０１０７】
計数処理に際して、パストレース部１２は、深さ優先探索によるバックワードトレースで、計数値を記入されたラベルを付与されたピンに到達すると、そのピン以降のトレースを行なうことなくそのピンに付与されたラベルに記入された計数値を読み出し、そのピンよりも浅い側のピンのラベルに記入された計数値に加算する。これにより、極めて高速に活性化パスの計数を行なうことができる。
【０１０８】
〔４〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
なお、上述した実施形態において、パストレース部１２は、出力側ＦＦ１０２から入力側ＦＦ１０１へ向かうバックワードトレースによって活性化パスのトレースを行なっているが、入力側ＦＦ１０１から出力側ＦＦ１０２へ向かうフォワードトレースによって活性化パスのトレースを行なってもよい。また、上述した実施形態において、パストレース部１２は、深さ優先探索によって活性化パスのトレースを行なっているが、幅優先探索によって活性化パスのトレースを行なってもよい。
【０１０９】
また、上述したシミュレーション部１１およびパストレース部１２としての機能や、不定値設定手段を定義する記述を自動的に追加する機能の全部もしくは一部は、コンピュータ（ＣＰＵ，情報処理装置，各種端末を含む）が所定のアプリケーションプログラム（活性化パス抽出プログラム）を実行することによって実現される。
【０１１０】
そのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷなど），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋Ｒ，ＤＶＤ＋ＲＷ，ブルーレイディスクなど）等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。
【０１１１】
ここで、コンピュータとは、ハードウエアとＯＳ（オペレーティングシステム）とを含む概念であり、ＯＳの制御の下で動作するハードウエアを意味している。また、ＯＳが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウエアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取る手段とをそなえている。上記活性化パス抽出プログラムは、上述のようなコンピュータに、シミュレーション部１１およびパストレース部１２の機能や、不定値設定手段を定義する記述を自動的に追加する機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくＯＳによって実現されてもよい。
【０１１２】
〔５〕付記
以上の本実施形態を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
実チップに対する遅延試験の際に信号が伝播した活性化パスを抽出するコンピュータに、
前記遅延試験の際のテストパターンと前記実チップのネットリストとに基づき前記遅延試験のシミュレーションを行なうことにより、前記遅延試験の際に信号値が変化した信号値変化ピンを特定し、
前記シミュレーションによって特定された前記信号値変化ピンと前記実チップのネットリストとに基づき前記信号値変化ピンを辿ることにより、前記活性化パスのトレースを行なう、
処理を実行させる活性化パス抽出プログラム。
【０１１３】
（付記２）
前記シミュレーションの実行時に入力側フリップフロップまたはラッチの出力ピンの信号値が変化する場合、前記出力ピンの変化前の信号値と変化後の信号値との間に不定値を所定時間だけ設定し、
前記不定値を設定された信号値に基づき、タイミングを考慮することなく前記シミュレーションを行なうことにより、前記信号値変化ピンを特定する、
処理を、前記コンピュータに実行させる、付記１記載の活性化パス抽出プログラム。
【０１１４】
（付記３）
前記不定値を設定する機能は、前記実チップのネットリストに含まれる、前記入力側フリップフロップまたはラッチを定義するソースコードの記述によって実現される、付記２記載の活性化パス抽出プログラム。
（付記４）
前記所定時間は、前記ネットリストにおける各セルの内部遅延値よりも長く且つ前記シミュレーションでのクロック周期よりも短く設定される、付記２または付記３記載の活性化パス抽出プログラム。
【０１１５】
（付記５）
前記シミュレーションによって得られた出力値と前記テストパターンに含まれる期待値とを比較し、これらの出力値と期待値とが一致した場合、前記シミュレーションによって特定された前記活性化パスの情報を有効にする処理を、前記コンピュータに実行させる、付記１〜付記４のいずれか一項に記載の活性化パス抽出プログラム。
【０１１６】
（付記６）
前記実チップの前記遅延試験において期待値と異なる値を出力した出力側フリップフロップまたはラッチの信号値変化ピンを起点にして、前記トレースを行なう処理を、前記コンピュータに実行させる、付記１〜付記５のいずれか一項に記載の活性化パス抽出プログラム。
【０１１７】
（付記７）
前記シミュレーションにより、出力側フリップフロップまたはラッチのクロック制御系ピンの値を特定し、
前記シミュレーションによって特定された、前記信号値変化ピンと前記クロック制御系ピンの値とに基づき、前記実チップの前記遅延試験において期待値と異なる値を出力した出力側フリップフロップまたはラッチへのデータパスおよびクロック制御系パスのいずれのパスが故障に関わる可能性があるかを判定し、故障に関わる可能性のあるパスに係る信号値変化ピンを起点にして、故障に関わる可能性のある活性化パスのトレースを行なう、
処理を、前記コンピュータに実行させる、付記１〜付記５のいずれか一項に記載の活性化パス抽出プログラム。
【０１１８】
（付記８）
前記起点から深さ優先探索によって前記トレースを行なう処理を、前記コンピュータに実行させる、付記６または付記７に記載の活性化パス抽出プログラム。
（付記９）
前記信号値変化ピンを辿ることにより、前記活性化パスの数を計数する処理を、前記コンピュータに実行させる、付記１〜付記８のいずれか一項に記載の活性化パス抽出プログラム。
【０１１９】
（付記１０）
対象フリップフロップまたはラッチの信号値変化ピンから深さ優先探索を行ない、各ピンに対し、そのピンよりも深い側の活性化パスの本数をラベルとして付与しながら前記信号値変化ピンを辿ることにより、前記活性化パスの数を計数する処理を、前記コンピュータに実行させる、付記９記載の活性化パス抽出プログラム。
【０１２０】
（付記１１）
実チップに対する遅延試験の際に信号が伝播した活性化パスを抽出する活性化パス抽出装置であって、
前記遅延試験の際のテストパターンと前記実チップのネットリストとに基づき前記遅延試験のシミュレーションを行なうことにより、前記遅延試験の際に信号値が変化した信号値変化ピンを特定するシミュレーション部と、
前記シミュレーション部によって特定された前記信号値変化ピンと前記実チップのネットリストとに基づき前記信号値変化ピンを辿ることにより、前記活性化パスのトレースを行なうパストレース部とを有する活性化パス抽出装置。
【０１２１】
（付記１２）
前記シミュレーションの実行時に入力側フリップフロップまたはラッチの出力ピンの信号値が変化する場合、前記出力ピンの変化前の信号値と変化後の信号値との間に不定値を所定時間だけ設定する不定値設定手段をさらに有し、
前記シミュレーション部は、前記不定値設定手段によって前記不定値を設定された信号値に基づき、タイミングを考慮することなく前記シミュレーションを行なうことにより、前記信号値変化ピンを特定する、付記１１記載の活性化パス抽出装置。
【０１２２】
（付記１３）
前記不定値設定手段としての機能は、前記実チップのネットリストに含まれる、前記入力側フリップフロップまたはラッチを定義するソースコードの記述によって実現される、付記１２記載の活性化パス抽出装置。
（付記１４）
前記所定時間は、前記ネットリストにおける各セルの内部遅延値よりも長く且つ前記シミュレーションでのクロック周期よりも短く設定される、付記１２または付記１３記載の活性化パス抽出装置。
【０１２３】
（付記１５）
前記シミュレーション部は、前記シミュレーションによって得られた出力値と前記テストパターンに含まれる期待値とを比較し、これらの出力値と期待値とが一致した場合、前記シミュレーションによって特定された前記活性化パスの情報を有効にする、付記１１〜付記１４のいずれか一項に記載の活性化パス抽出装置。
【０１２４】
（付記１６）
前記パストレース部は、前記実チップの前記遅延試験において期待値と異なる値を出力した出力側フリップフロップまたはラッチの信号値変化ピンを起点にして、前記トレースを行なう、付記１１〜付記１５のいずれか一項に記載の活性化パス抽出装置。
【０１２５】
（付記１７）
前記シミュレーション部は、前記シミュレーションにより、出力側フリップフロップまたはラッチのクロック制御系ピンの値を特定し、
前記パストレース部は、前記シミュレーション部によって特定された、前記信号値変化ピンと前記クロック制御系ピンの値とに基づき、前記実チップの前記遅延試験において期待値と異なる値を出力した出力側フリップフロップまたはラッチへのデータパスおよびクロック制御系パスのいずれのパスが故障に関わる可能性があるかを判定し、故障に関わる可能性のあるパスに係る信号値変化ピンを起点にして、故障に関わる可能性のある活性化パスのトレースを行なう、付記１１〜付記１５のいずれか一項に記載の活性化パス抽出装置。
【０１２６】
（付記１８）
前記パストレース部は、前記起点から深さ優先探索によって前記トレースを行なう、付記１６または付記１７に記載の活性化パス抽出装置。
（付記１９）
前記パストレース部は、対象フリップフロップまたはラッチの信号値変化ピンから深さ優先探索を行ない、各ピンに対し、そのピンよりも深い側の活性化パスの本数をラベルとして付与しながら前記信号値変化ピンを辿ることにより、前記活性化パスの数を計数する、付記１１〜付記１８のいずれか一項に記載の活性化パス抽出装置。
【０１２７】
（付記２０）
実チップに対する遅延試験の際に信号が伝播した活性化パスをコンピュータにより抽出する活性化パス抽出方法であって、
前記遅延試験の際のテストパターンと前記実チップのネットリストとに基づき前記遅延試験のシミュレーションを行なうことにより、前記遅延試験時に信号値が変化した信号値変化ピンを特定し、
前記シミュレーションによって特定された前記信号値変化ピンと前記実チップのネットリストとに基づき前記信号値変化ピンを辿ることにより、前記活性化パスのトレースを行なう、活性化パス抽出方法。
【符号の説明】
【０１２８】
１    活性化パス抽出装置
１０    処理部（コンピュータ）
１１    シミュレーション部
１２    パストレース部
２０    記憶部
２１    ディレイテスト結果データベース
２１１    テストパターン
２１２    フェイルリスト
２２    ネットリスト（Verilogソースコード；不定値設定手段）
２３    トグルピン情報リスト（信号値変化ピン情報リスト）
２４    クロック制御系ピン情報リスト
２５    活性化パストレース結果データベース
１０１    入力側フリップフロップ（またはラッチ）
１０２    出力側フリップフロップ（またはラッチ）
１０３    ＯＲゲート
１０４    ＡＮＤゲート
【図１】
0005707921.tif 000002
【図２】
0005707921.tif 000003
【図３】
0005707921.tif 000004
【図４】
0005707921.tif 000005
【図５】
0005707921.tif 000006
【図６】
0005707921.tif 000007
【図７】
0005707921.tif 000008
【図８】
0005707921.tif 000009
【図９】
0005707921.tif 000010
【図１０】
0005707921.tif 000011
【図１１】
0005707921.tif 000012
【図１２】
0005707921.tif 000013
【図１３】
0005707921.tif 000014
【図１４】
0005707921.tif 000015
【図１５】
0005707921.tif 000016
【図１６】
0005707921.tif 000017