(57)【特許請求の範囲】
【請求項１】
集積回路上で信号伝播が遅延するパスとなり得るパスの始点ラッチと終点ラッチに関するデータを取得する取得部と、
前記始点ラッチから前記終点ラッチまでの間のピンごとに仮定故障を設定し、前記始点ラッチで発生した信号変化が前記終点ラッチまで伝播できるか否かの判定を、前記設定ごとに行う判定部と、
パスを構成する要素それぞれの遅延を確率密度関数で表し、確率密度関数で表された分布を前記始点ラッチから前記終点ラッチに向けて累積計算することで、パスのディレイ分布を算出する統計的タイミング解析を、前記判定部によって信号変化が伝播できないと判定された場合のピンでは分布を後段に累積計算しないように行う解析部と、
記憶装置に保持された集積回路の設計データに基づき、前記集積回路内で信号伝播が遅延するパスとなり得るパスの始点ラッチ、終点ラッチに関するデータのペアを複数選択するペア選択部と、
前記ペア選択部によって選択されたペアの始点ラッチから終点ラッチまでの間の回路に対し統計的タイミング解析を行い、前記ペアごとのディレイ分布をそれぞれ算出する統計的タイミング解析部と、
前記統計的タイミング解析部によって算出されたディレイ分布それぞれの偏差に基づき、前記ペア選択部によって選択された複数のペアをソートするソート部と、を有し、
前記取得部は、前記ソート部によってソートされたペアの順で、始点ラッチと終点ラッチに関するデータをそれぞれ取得し、
前記判定部は、前記取得部によって取得されたペアの順で、該パスの始点ラッチで発生した信号変化が終点ラッチまで伝播できるか否かの判定をそれぞれ行うことを特徴とするディレイ解析装置。
【請求項２】
前記ペア選択部は、パスを構成する要素それぞれの遅延を、それぞれ一つの値で表し、該値それぞれを前記始点ラッチから前記終点ラッチに向けて累積計算を行うことでパスの遅延値を算出する静的タイミング解析を用いて、前記集積回路内で信号伝播が遅延するパスとなり得るパスを選択し、該パスの始点ラッチ、終点ラッチのペアを選択することを特徴とする請求項１記載のディレイ解析装置。
【請求項３】
前記ソート部は、前記統計的タイミング解析部によって算出されたディレイ分布それぞれの標準偏差を算出し、該標準偏差に所定の定数を積算して得た値の大きい方からソートすることを特徴とする請求項１または請求項２記載のディレイ解析装置。
【請求項４】
コンピュータが、
集積回路上で信号伝播が遅延するパスとなり得るパスの始点ラッチと終点ラッチに関するデータを取得し、
前記始点ラッチから前記終点ラッチまでの間のピンごとに仮定故障を設定し、前記始点ラッチで発生した信号変化が前記終点ラッチまで伝播できるか否かの判定を、前記設定ごとに行い、
パスを構成する要素それぞれの遅延を確率密度関数で表し、確率密度関数で表された分布を前記始点ラッチから前記終点ラッチに向けて累積計算することで、パスのディレイ分布を算出する統計的タイミング解析を、信号変化が伝播できないと判定された場合のピンでは分布を後段に累積計算しないように行い、
記憶装置に保持された集積回路の設計データに基づき、前記集積回路内で信号伝播が遅延するパスとなり得るパスの始点ラッチ、終点ラッチに関するデータのペアを複数選択し、
選択されたペアの始点ラッチから終点ラッチまでの間の回路に対し統計的タイミング解析を行い、前記ペアごとのディレイ分布をそれぞれ算出し、
算出されたディレイ分布それぞれの偏差に基づき、選択された複数のペアをソートする処理を実行し、
前記始点ラッチと終点ラッチに関するデータを取得するステップは、ソートされたペアの順で、始点ラッチと終点ラッチに関するデータをそれぞれ取得し、
前記判定するステップは、取得されたペアの順で、該パスの始点ラッチで発生した信号変化が終点ラッチまで伝播できるか否かの判定をそれぞれ行うことを特徴とするディレイ解析方法。
【請求項５】
前記始点ラッチ、終点ラッチに関するデータのペアを複数選択するステップは、パスを構成する要素それぞれの遅延を、それぞれ一つの値で表し、該値それぞれを前記始点ラッチから前記終点ラッチに向けて累積計算を行うことでパスの遅延値を算出する静的タイミング解析を用いて、前記集積回路内で信号伝播が遅延するパスとなり得るパスを選択し、該パスの始点ラッチ、終点ラッチのペアを選択することを特徴とする請求項４記載のディレイ解析方法。
【請求項６】
集積回路上で信号伝播が遅延するパスとなり得るパスの始点ラッチと終点ラッチに関するデータを取得し、
前記始点ラッチから前記終点ラッチまでの間のピンごとに仮定故障を設定し、前記始点ラッチで発生した信号変化が前記終点ラッチまで伝播できるか否かの判定を、前記設定ごとに行い、
パスを構成する要素それぞれの遅延を確率密度関数で表し、確率密度関数で表された分布を前記始点ラッチから前記終点ラッチに向けて累積計算することで、パスのディレイ分布を算出する統計的タイミング解析を、信号変化が伝播できないと判定された場合のピンでは分布を後段に累積計算しないように行い、
記憶装置に保持された集積回路の設計データに基づき、前記集積回路内で信号伝播が遅延するパスとなり得るパスの始点ラッチ、終点ラッチに関するデータのペアを複数選択し、
選択されたペアの始点ラッチから終点ラッチまでの間の回路に対し統計的タイミング解析を行い、前記ペアごとのディレイ分布をそれぞれ算出し、
算出されたディレイ分布それぞれの偏差に基づき、選択された複数のペアをソートする処理を、コンピュータに実行させ、
前記始点ラッチと終点ラッチに関するデータを取得するステップは、ソートされたペアの順で、始点ラッチと終点ラッチに関するデータをそれぞれ取得し、
前記判定するステップは、取得されたペアの順で、該パスの始点ラッチで発生した信号変化が終点ラッチまで伝播できるか否かの判定をそれぞれ行うことを特徴とするディレイ解析プログラム。
【請求項７】
前記始点ラッチ、終点ラッチに関するデータのペアを複数選択するステップは、パスを構成する要素それぞれの遅延を、それぞれ一つの値で表し、該値それぞれを前記始点ラッチから前記終点ラッチに向けて累積計算を行うことでパスの遅延値を算出する静的タイミング解析を用いて、前記集積回路内で信号伝播が遅延するパスとなり得るパスを選択し、該パスの始点ラッチ、終点ラッチのペアを選択することを特徴とする請求項６記載のディレイ解析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディレイ解析装置、ディレイ解析方法及びディレイ解析プログラムに関する。
【背景技術】
【０００２】
集積回路の遅延（ディレイ）に関する解析を行う際、タイミング解析を用いる手法が知られている。
【０００３】
タイミング解析は、設計の段階でＣＡＤツールによるチップの動作周波数を評価し、目標とする動作周波数を実現しているかを確認する解析手法である。たとえば、動作周波数２．５ＧＨｚを目標に設計する場合、すべての記憶素子間で、信号が２．５ＧＨｚの逆数である４００ｐｓ以下の時間で到達するかを解析する。
【０００４】
タイミング解析は、一般的に、静的タイミング解析、動的タイミング解析に分類される。また静的タイミング解析は、従来から使用されている静的タイミング解析（以下、従来から使用されている静的タイミング解析をＳＴＡ(Static Timing Analysis)と称す）、および、近年提唱されるようになった解析手法である統計的タイミング解析（以下、ＳＳＴＡ（Statistical Static Timing Analysis)）の２つに分類される。
【０００５】
ＳＴＡには、Deterministic静的タイミング解析、パスベースＳＴＡ、ブロックベースＳＴＡが知られており、ＳＳＴＡには、パスベースＳＳＴＡ、ブロックベースＳＳＴＡが知られている。
【０００６】
ここで、ＳＴＡ、ＳＳＴＡ、ブロックベースＳＳＴＡについて、図８を参照しつつ説明する。
【０００７】
ＳＴＡでは、パスのディレイを計算するとき、パスを構成するゲート素子や配線の各要素のディレイ値を後段に向けて累積計算する。このときのディレイ値は、一つの確定した数値である。累積計算する際に、回路の深さを優先して処理する方法がパスベースＳＴＡであり、回路の幅優先で処理する方法がブロックベースＳＴＡである。図８の例では、パスベースＳＴＡの場合、ラッチＡからラッチＣへのパス、ラッチＢからラッチＣへのパス、ラッチＢからラッチＤへのパスの順で処理される。ブロックベースＳＴＡの場合には、ラッチＡおよびラッチＢから出力側に１ゲートずつ同時にディレイ値が累積される。ゲートｐでは入力が２つあるため、ラッチＡからゲートｐまでと、ラッチＢからゲートｐまでの２つのパスの累積が完了した時点で、ゲートｐのディレイの累積処理を行う。最大ディレイを求める処理の場合には、ゲートｐの２つのパスの累積ディレイのうち、大きい方のディレイにゲートｐのディレイを累積して、処理を先に進める。このように１つのゲートに対して入力が複数ある場合、一番大きいディレイを選択する操作をＭＡＸ演算と呼ぶ。
【０００８】
上記のＳＴＡに対して、ＳＳＴＡは、パスを構成するゲートや配線の各要素のディレイ値を一つの確定した数値ではなく、横軸がディレイ値で縦軸が確率密度である確率密度関数で表す。また、パスのディレイの累積に関しても、ＳＴＡでは単なる数値の加算であるが、ＳＳＴＡでは確率密度関数の統計的加算の処理となる。また、ＳＴＡでのＭＡＸ演算は単なる大きい数値を残す数値演算であるが、ＳＳＴＡでは２つの確率密度関数の統計的ＭＡＸと呼ばれる統計演算が行われる。このＳＳＴＡの処理において、ブロックベースＳＳＴＡは、ブロックベースＳＴＡの説明で記載したように幅優先で処理する手法である。
【０００９】
また、以下の技術が知られている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００８−１０２８３７号公報
【特許文献２】特開平８−６９８８号公報
【特許文献３】特開２０００−２２２４５２号公報
【特許文献４】特開２００１−６７３８３号公報
【非特許文献】
【００１１】
【非特許文献１】Jing-Jia Liou他著、「False-Path-Aware Statistical Timing Analysis and Efficient Path Selection for Delay Testing and Timing Validation」、International Conference on Computer Aided Design、2002、pp 566-569
【非特許文献２】Shuji Tsukiyama他著、「Techniques to Remove False Paths in Statistical Static Timing Analysis」、ASICON、2001、pp 39-44
【非特許文献３】Rajesh Garg他著、「On the Improvement of Statistical Timing Analysis」、ICCD、2006
【非特許文献４】Vikram Iyengar他著、「Variation-Aware Performance Verification Using At-Speed Structural Test And Statistical Timing」、International Conference on Computer Aided Design、2007、pp 405-412
【発明の概要】
【発明が解決しようとする課題】
【００１２】
ＳＳＴＡを用いて集積回路を解析する際、選択されるパスは、実際に論理的に開く必要がある。論理的に開かない場合、すなわち論理的に当該パスを通過する可能性がない場合には、そのパスがタイミング歩留まりに影響は与えないためである。ＳＳＴＡにおいて解決が難しい問題として、このように論理的に開かないフォールスパスの排除がある。フォールスパスは、実際の集積回路のタイミング歩留まり分布には全く影響しないため、排除しない場合は解析結果が本来の数値よりも少なく見積もられることとなる。
【００１３】
本発明は上述した問題点を解決するためになされたものであり、ブロックベースＳＳＴＡにおいて、フォールスパスの排除が可能となるディレイ解析装置、ディレイ解析方法及びディレイ解析プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
ディレイ解析装置は、集積回路上で信号伝播が遅延するパスとなり得るパスの始点ラッチと終点ラッチに関するデータを取得する取得部と、始点ラッチから終点ラッチまでの間のピンごとに仮定故障を設定し、始点ラッチで発生した信号変化が終点ラッチまで伝播できるか否かの判定を、設定ごとに行う判定部と、パスを構成する要素それぞれの遅延を確率密度関数で表し、確率密度関数で表された分布を始点ラッチから終点ラッチに向けて累積計算することで、パスのディレイ分布を算出する統計的タイミング解析を、判定部によって信号変化が伝播できないと判定された場合のピンでは分布を後段に累積計算しないように行う解析部と、を有する。
【発明の効果】
【００１５】
論理的に開かないフォールスパスを削除した解析を行うことができ、現実と相関が取れた解析結果を得ることができる。
【図面の簡単な説明】
【００１６】
【図１】本実施の形態に係るディレイ解析装置の機能ブロックの一例を示す図である。
【図２】本実施の形態に係るディレイ解析装置の動作の一例を示すフローチャートである。
【図３】従来のＳＳＴＡの適用範囲、および本実施の形態に係るＳＳＴＡの適用範囲を示す図である。
【図４】本実施の形態に係る、「パスが開く」ことについての説明に用いられる回路の模式図の一例である。
【図５】本実施の形態に係る、再度ＳＳＴＡを実行するときの状況を示す模式図である。
【図６】本実施の形態に係るディレイ解析装置に適用可能なコンピュータシステムのハードウェア構成の一例を示す図である。
【図７】本実施の形態に係るディレイ解析装置に適用可能なコンピュータシステムにおける本体部のハードウェア構成の一例を示す図である。
【図８】ＳＴＡ、ＳＳＴＡの説明に用いられる回路の模式図の一例である。
【発明を実施するための形態】
【００１７】
以下に、本実施の形態を説明する。尚、フォールスパスは３種類に分類することができる。１つ目は、functional false pathであり、論理的には開くパスであるが、現実の計算機においてはどのような命令の実行順序でも実際には開かないパスである。２つ目は、boolean untrue pathであり、どのような入力値の組み合わせに対しても開かないパスである。３つ目は、delay dependent false pathであり、boolean的にはtrue pathであるが、タイミング上のディレイに依存して開かないパスである。本実施の形態では、boolean untrue pathに分類されるフォールスパスを排除するのに適した手法を示す。また以下の説明では、解析対象の集積回路はプロセッサであるものとして記載するが、本実施の形態は、集積回路であればいかなるものでも適用可能である。
【００１８】
図１に、本実施の形態に係るディレイ解析装置を示す。ディレイ解析装置１００は、従前より用いられているセルライブラリ５１を取得するセルライブラリ入力部１、および従前より用いられているプロセッサ設計データ５２を取得する設計データ入力部２を有し、これら取得されたセルライブラリ５１、プロセッサ設計データ５２をメモリ６１上に記憶させる記憶部３を有する。
【００１９】
またディレイ解析装置１００は、メモリ６１に記憶されているセルライブラリ５１、プロセッサ設計データ５２を取得するメモリデータ入力部４を有する。ディレイ解析装置１００は、セルライブラリ５１、プロセッサ設計データ５２を用いてＳＴＡを行い、プロセッサ内で信号伝播が遅延するためプロセッサが設計上の動作周波数で動作し得ないパスとなり得るパスである複数のクリティカルパスを、ＳＴＡで行える範囲で特定する静的タイミング解析部５を有する。ディレイ解析装置１００は、静的タイミング解析部５で特定されたクリティカルパスに関する情報であるクリティカルパス情報５３を出力するクリティカルパス出力部６を有する。
【００２０】
また、ディレイ解析装置１００は、クリティカルパス情報５３と、メモリ６１に記憶されているセルライブラリ５１と、プロセッサ設計データ５２とを用いて、プロセッサ内で信号伝播が遅延するパスとなり得るパスの始点ラッチと終点ラッチとのペアを必要な数だけ選択するクリティカルパス選択部７を有する。尚、このように選択されたペアを以降ワーストＮパスと称す。ワーストＮパスの数については後述するが、解析結果の質が十分と認められる程度の数となるものとする。
【００２１】
またディレイ解析装置１００は、クリティカルパス選択部７によって選択された始点ラッチと終点ラッチとのペアをメモリ６１に記憶させる記憶部８を有する。
【００２２】
ディレイ解析装置１００は、メモリ６１に記憶されているセルライブラリ５１、プロセッサ設計データ５２、ワーストＮパスを取得するメモリデータ入力部９を有する。また、ディレイ解析装置１００は、データ入力部９によって取得されたデータを用いて、各パスの始点ラッチと終点ラッチの間の論理回路全体にブロックベースのＳＳＴＡを適用して、始点、終点のラッチペアのディレイ分布を生成する統計的タイミング解析部１０を有する。またディレイ解析装置１００は、統計的タイミング解析部１０によって生成された始点、終点のラッチペアのディレイ分布をそれぞれディレイ分布グラフ５４として出力するディレイ分布グラフ出力部１１を有する。
【００２３】
ディレイ解析装置１００は、ディレイ分布グラフ５４から、始点、終点のラッチペアのディレイ分布を取得するディレイ分布グラフ入力部１２を有し、各ディレイ分布のα×σ（αは定数、σは標準偏差）の値を計算し、値の大きい順に始点ラッチと終点ラッチのペアをソートする試験対象パス選択部１３を有する。ディレイ解析装置１００は、ソートされた始点、終点のラッチペアを、ソート順に試験対象パス情報５５として出力する試験対象パス出力部１４を有する。
【００２４】
ディレイ解析装置１００は、試験対象パス情報５５内のディレイ値が大きい順に始点、終点のラッチペアを取得する試験対象パス入力部１５、および取得した始点、終点のラッチペアをメモリ６１に記憶する記憶部１６を有する。ディレイ解析装置１００は、メモリ６１内の処理対象になる始点ラッチと終点ラッチの間にある論理回路のピンについて、従来手法に則り、遅延故障モデルのひとつであって、仮定故障であるトランジション故障を設定する仮定故障設定部１７を有する。
【００２５】
ディレイ解析装置１００は、設定された仮定故障それぞれに対して、処理対象になる始点ラッチと終点ラッチの間で信号変化が起きるようなパターン作成を試みるディレイテスト生成部１８を有する。ディレイ解析装置１００は、現在処理対象中の始点、終点ラッチペアごとに、ディレイテスト生成部１８によって開かないパス（フォールスパス）とされたピンの回路内識別名を、フォールスパス情報５６として出力するフォールスパス情報出力部１９を有する。
【００２６】
統計的タイミング解析部１０は、さらに、最初に実行したＳＳＴＡを再実行する。ただし、このＳＳＴＡの再実行では、始点、終点のラッチペア内の論理回路に対して統計的ディレイ分布を求めるために回路を後段から前段の前方へフォワードトレースしながらディレイ分布を伝播させる処理において、フォールスパス情報５６内からフォールスパスのピンリストを取得し、ディレイ分布を伝播させる際にそのピンリストにあるピンでは後段にディレイ分布を伝播させないという処理をする。
【００２７】
ディレイ解析装置１００は、上記処理によって始点、終点ラッチペアに対して求められたディレイ分布を用いて、従来手法で処理することでプロセッサのタイミング歩留り分布５７を算出するタイミング歩留り計算部２０を有する。
【００２８】
尚、セルライブラリ入力部１から記憶部８までの各機能部、およびメモリ６１をペア選択部１０１とする。試験対象パス入力部１５、記憶部１６、メモリ６１を取得部１０２とする。仮定故障設定部１７、ディレイテスト生成部１８、フォールスパス情報出力部１９、フォールスパス情報５６を判定部１０３とする。
【００２９】
また、統計的タイミング解析部１０、ディレイ分布グラフ出力部１１、各パスのディレイ分布グラフ５４を解析部１０４とする。また、ディレイ分布グラフ入力部１２、試験対象パス選択部１３、試験対象パス出力部１４、試験対象パス情報５５をソート部１０５とする。
【００３０】
次に、図２を参照しつつ、ディレイ解析装置１００の動作について説明する。尚、以下の動作説明では、記憶部３、メモリデータ入力部４等の各データの入出力を担うユニットについての記載は省略する。
【００３１】
静的タイミング解析部５は、セルライブラリ５１、プロセッサ設計データ５２に対し、従来通りのＳＴＡ処理を行い、クリティカルパス情報を出力する（Ｓ１）。次に、クリティカルパス選択部７は、クリティカルパス情報５３から、ワーストＮパスを選択する（Ｓ２）。
【００３２】
ワーストＮパスとして選択される数（Ｎ）の求め方について説明する。まず、クリティカルパス選択部７は、Ｎ個の始点ラッチと終点ラッチそれぞれのディレイ分布からチップ全体の周波数歩留り分布を求め、さらに、（Ｎ＋１）個の始点ラッチと終点ラッチそれぞれのディレイ分布からチップ全体の周波数歩留り分布を求める。求めた２つの周波数歩留り分布の差が所定の値以下となった場合、Ｎ＋１パス目のデータは不要ということになり、その時のＮをワーストＮパスの数とする。
【００３３】
尚、チップ全体の周波数歩留りとは、製造した個々のチップについて、動作する最大動作周波数を実測して、横軸に最大動作周波数で縦軸にチップ数の割合として作成した分布グラフである。また、周波数歩留り分布の差をどこで判断するかついては、本実施の形態では、縦軸の割合において、目標とするある割合値での二つの分布の横軸の最大動作周波数の値の差とし、この値の差が所定値以下である場合に差がないと定義する。当該所定値がどのくらい小さい値であるかは、求める精度に依存する。
【００３４】
その後、統計的タイミング解析部１０は、クリティカルパス選択部７によって選択された始点ラッチ、終点ラッチのペアごとに、ＳＳＴＡ処理を実行し、ペアごとのディレイ分布グラフ５４を作成する（Ｓ３）。尚、統計的タイミング解析部１０は、ブロックベースの統計的タイミング解析を行うものとする。
【００３５】
ここで、図３を参照しつつ、従来技術のＳＳＴＡの適用範囲と、本実施の形態におけるＳＳＴＡの適用範囲を説明する。従来技術では、集積回路全体に対しＳＳＴＡ（ブロックベースＳＳＴＡ）を適用しているのに対し（図３(Ａ)参照）、本実施の形態では、ＳＴＡの結果クリティカルパスとされた始点ラッチと終点ラッチのペアの間にある回路に対しブロックベースＳＳＴＡを適用する（図３（Ｂ）参照）。尚、図３においては、始点ラッチ、終点ラッチをＦＦ（Flip Flop）と表記している。
【００３６】
統計的タイミング解析部１０でのＳＳＴＡの処理は、図３（Ｂ）に示した範囲、すなわち、開始ラッチから終点ラッチまでの間にある論理回路全てに対して統計的ディレイ演算を行う。つまり、ここでは始点ラッチと終点ラッチの間にあるすべてのパスを考慮したディレイ分布が求まる。
【００３７】
図２の説明に戻る。試験対象パス選択部１３は、各ディレイ分布のα×σの値をそれぞれ計算し、値の大きい順に始点ラッチと終点ラッチのペアをソートし、試験対象パス入力部１５は、ソート順に始点、終点のラッチペアを１つ取得する（Ｓ４）。尚、本実施の形態では例えばαの値をα＝−３とするが、α＝３等いずれの定数であってもよい。仮定故障設定部１７は、処理対象になる始点ラッチと終点ラッチの間にある論理回路のピンに対し、従来手法に則り、仮定故障であるトランジション故障をそれぞれ設定する（Ｓ５）。
【００３８】
ディレイテスト生成部１８は、仮定故障１つ１つに対して、処理対象になるパスの始点ラッチと終点ラッチの間で信号変化が起きるようなパターン作成を試みる（Ｓ６）。
【００３９】
ディレイテスト生成部１８は、ディレイ的にパスが開くか否かを判定し（Ｓ７）、１つもディレイ的にパスが開かない場合（Ｓ７、ｎｏ）、この仮定故障ポイントはフォールスパスのポイントであるとマークして、次の仮定故障をトライする。１つでもディレイ的にパスが開き、パターン生成が成功した場合（Ｓ７、ｙｅｓ）、この仮定故障ポイントはフォールスパスのポイントではないとマークして、ステップＳ６に戻り、次の仮定故障に対しパターン生成を試みる。
【００４０】
ここで、「ディレイ的にパスが開く」について、図４を参照しつつ説明する。図４において、例えばゲートｙ、ゲートｚを経由するラッチＣからラッチＤまでのパスをディレイテストの対象とする。このパス上でラッチＣで発生させる信号変化がラッチＤまで伝播できる状態にあるとき、本実施の形態ではラッチＣからラッチＤまでのパスがディレイ的に開く、とする。尚、図４の例では、ラッチＣからラッチＤまでのパスは開かない。ラッチＣからラッチＤまでのパスが開くためには、ゲートｙの２つの入力の中で、パス上にない入力は、ゲートｙがａｎｄ回路のため１にする必要がある。一方、ゲートｚの２つ入力の中で、パス上にない入力は、ゲートｚがｏｒ回路のため０にする必要がある。このことは、ゲートｘの出力を１かつ０にする必要があり、これは論理的に不可能であるため、ラッチＣからラッチＤまでのパスは開かないということになる。つまり、ラッチＣからラッチＤまでのパスはフォールスパスである。図４で示した回路は冗長な論理回路が入っているために、フォールスパスが発生する。冗長な論理回路は、設計者が意図して作るものではなく、意図しないところで結果としてできてしまう場合がある。
【００４１】
図２の説明に戻る。ディレイテスト生成部１８は、現在処理対象中の始点、終点ラッチペア内でフォールスパスのポイントとマークされたピンの回路内識別名を、フォールスパス情報５６としてフォールスパス情報出力部１９に出力させ（Ｓ８）、すべての仮定故障についてのディレイテスト生成が完了したかの判定を行う（Ｓ９）。この処理によって、フォールスパスのポイントであるとマークされたピン全てについて、そのピンの回路内識別名が、始点、終点ラッチペアに対して出力される。
【００４２】
パターン生成が完了していない場合（Ｓ９、ｎｏ）、ディレイテスト生成部１８は、ステップＳ６に戻り、次の仮定故障ポイントにおけるパターン生成を試みる。一方、パターン生成が完了した場合（Ｓ９、ｙｅｓ）、統計的タイミング解析部１０は、再度ＳＳＴＡを実施するが、ここではフォールスパス情報５６内からパスが開かないピンリストを入力し、ディレイ分布を伝播させる処理の際にそのピンリストにあるピンでは、後段にディレイ分布を累積計算させない処理を行い、ディレイ的にパスが開かないピンリストを排除したディレイ分布グラフ５４を生成する（Ｓ１０）。
【００４３】
ステップＳ１０の処理について、図５を参照しつつ説明する。図５は、始点ラッチＡ、終点ラッチＢの間にある論理回路に対し、統計的タイミング解析部１０によってＳＳＴＡ処理が実行される際の状況を示す模式図である。例えばフォールスパス情報５６内に始点ラッチＡ、終点ラッチＢのラッチペアではゲートｇ２のピンＡ２が登録されている場合、統計的タイミング解析部１０は、ゲートｇ２のピンＡ２のディレイ値を本来起こり得ない値、例えば値０に設定する等を行うことで、ディレイ分布を伝播させない処理を行う。
【００４４】
タイミング歩留り計算部２０は、ステップＳ１０で求められた始点・終点ラッチペアごとのディレイ分布グラフを用いて、従来手法で処理することで、プロセッサのタイミング歩留まり分布を求める。
【００４５】
本実施の形態のディレイ解析装置１００は、各パスについてディレイテストのパターン生成する際に、始点ラッチ・終点ラッチのペアに対してパスが開かない場合は、このパスは論理的にfalse pathだということが結果的に判定することができる。またディレイ解析装置１００は、始点・終点ラッチのペア内で、一部のパスのフォールスパスを考慮するためには、１つの始点・終点のラッチペアの論理回路に対して、transition fault modelをベースにした方法を用いて、その論理回路の中に仮定された故障一つ一つに対してパターン生成を試みる。ディレイ解析装置１００は、どれか１つの仮定故障に対してパスが開いた場合でも、さらに他の仮定故障についてもパターン生成を試みる。ディレイ解析装置１００は、パスが開かない仮定故障を、始点・終点のラッチペア毎にリストアップする。
【００４６】
ディレイ解析装置１００は、始点・終点のラッチペア内の論理回路に対してディレイ分布を求める際、始点、終点ラッチペアでパスが開かないピンリストを取得し、ＳＳＴＡ処理でピンリストにあるピンではディレイ分布を伝播させない方法を採用する。このようにすることで、始点、終点ラッチペア毎にその中で正確なフォールスパスを考慮できる。
【００４７】
本実施の形態によって、統計的タイミング解析として現在広く使われているブロックベースの統計的タイミング解析において、各パスのディレイ分布を求めて、それらの分布の統計的ＭＡＸ処理により集積回路全体のタイミング歩留まり分布を計算する際に、論理的に開かずにタイミング歩留まりに影響を与えないフォールスパスを削除した解析を容易に行うことができ、タイミング歩留まりの解析結果として現実と相関が取れた結果を得ることができる。
【００４８】
本発明は以下に示すようなコンピュータシステムにおいて適用可能である。図６は、本発明が適用されるコンピュータシステムの一例を示す図である。図６に示すコンピュータシステム９２０は、ＣＰＵ(Central Processing Unit)、メモリやディスクドライブ等を内蔵した本体部９０１、本体部９０１からの指示により画像を表示するディスプレイ９０２、コンピュータシステム９２０に種々の情報を入力するキーボード９０３、ディスプレイ９０２の表示画面９０２ａ上の任意の位置を指定するマウス９０４及び外部のデータベース等にアクセスして他のコンピュータシステムに記憶されているプログラム等をダウンロードする通信装置９０５を有する。通信装置９０５は、ネットワーク通信カード、モデムなどが考えられる。
【００４９】
上述したような、ディレイ解析装置を構成するコンピュータシステムにおいて上述した各ステップを実行させるプログラムを、ディレイ解析プログラムとして提供することができる。このプログラムは、コンピュータシステムにより読取り可能な記録媒体に記憶させることによって、ディレイ解析装置を構成するコンピュータシステムに実行させることが可能となる。上述した各ステップを実行するプログラムは、ディスク９１０等の可搬型記録媒体に格納されるか、通信装置９０５により他のコンピュータシステムの記録媒体９０６からダウンロードされる。また、コンピュータシステム９２０に少なくともディレイ解析機能を持たせるディレイ解析プログラム（ディレイ解析ソフトウェア）は、コンピュータシステム９２０に入力されてコンパイルされる。このプログラムは、コンピュータシステム９２０をディレイ解析機能を有するディレイ解析装置として動作させる。また、このプログラムは、例えばディスク９１０等のコンピュータ読み取り可能な記録媒体に格納されていても良い。ここで、コンピュータシステム９２０により読取り可能な記録媒体としては、ＲＯＭ(Read Only Memory)やＲＡＭ(Random Access Memory)等のコンピュータに内部実装される内部記憶装置、ディスク９１０やフレキシブルディスク、ＤＶＤ(Digital Versatile Disk)ディスク、光磁気ディスク、ＩＣ(Integrated Circuit)カード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータシステム並びにそのデータベースや、通信装置９０５のような通信手段を介して接続されるコンピュータシステムでアクセス可能な各種記録媒体を含む。
【００５０】
図７は、コンピュータシステム９２０における本体部９０１のハードウェア構成の一例を示す図である。本体部９０１は、ＣＰＵ９５１、メモリ９５２（上述のメモリ６１に対応）、ディスク９１０等の可搬型記録媒体からデータを読み書きするディスクドライブ９５３、および不揮発性の記憶手段であるＨＤＤ（Hard disk drive）９５４を有し、また、外部との通信制御を担うＩ／Ｏ装置９５５を有する。上述の各機能部は、例えばＨＤＤ９５４やディスク９１０等の不揮発性の記憶手段内に予め保持されたプログラムが、ＣＰＵ９５１、メモリ９５２等のハードウェア資源と協働することで実現される。また、上述の各データはＨＤＤ９５４もしくはメモリ９５２に記憶される。
【００５１】
以上、本実施の形態によれば、以下の付記で示す技術的思想が開示されている。
（付記１）  集積回路上で信号伝播が遅延するパスとなり得るパスの始点ラッチと終点ラッチに関するデータを取得する取得部と、
前記始点ラッチから前記終点ラッチまでの間のピンごとに仮定故障を設定し、前記始点ラッチで発生した信号変化が前記終点ラッチまで伝播できるか否かの判定を、前記設定ごとに行う判定部と、
パスを構成する要素それぞれの遅延を確率密度関数で表し、確率密度関数で表された分布を前記始点ラッチから前記終点ラッチに向けて累積計算することで、パスのディレイ分布を算出する統計的タイミング解析を、前記判定部によって信号変化が伝播できないと判定された場合のピンでは分布を後段に累積計算しないように行う解析部と、
を有するディレイ解析装置。
（付記２）  記憶装置に保持された集積回路の設計データに基づき、前記集積回路内で信号伝播が遅延するパスとなり得るパスの始点ラッチ、終点ラッチに関するデータのペアを複数選択するペア選択部と、
前記ペア選択部によって選択されたペアの始点ラッチから終点ラッチまでの間の回路に対し統計的タイミング解析を行い、前記ペアごとのディレイ分布をそれぞれ算出する統計的タイミング解析部と、
前記統計的タイミング解析部によって算出されたディレイ分布それぞれの偏差に基づき、前記ペア選択部によって選択された複数のペアをソートするソート部と、をさらに有し、
前記取得部は、前記ソート部によってソートされたペアの順で、始点ラッチと終点ラッチに関するデータをそれぞれ取得し、
前記判定部は、前記取得部によって取得されたペアの順で、該パスの始点ラッチで発生した信号変化が終点ラッチまで伝播できるか否かの判定をそれぞれ行うことを特徴とする付記１記載のディレイ解析装置。
（付記３）  前記ペア選択部は、パスを構成する要素それぞれの遅延を、それぞれ一つの値で表し、該値それぞれを前記始点ラッチから前記終点ラッチに向けて累積計算を行うことでパスの遅延値を算出する静的タイミング解析を用いて、前記集積回路内で信号伝播が遅延するパスとなり得るパスを選択し、該パスの始点ラッチ、終点ラッチのペアを選択することを特徴とする付記２記載のディレイ解析装置。
（付記４）  前記ソート部は、前記統計的タイミング解析部によって算出されたディレイ分布それぞれの標準偏差を算出し、該標準偏差に所定の定数を積算して得た値の大きい方からソートすることを特徴とする付記２記載のディレイ解析装置。
（付記５）  コンピュータが、
集積回路上で信号伝播が遅延するパスとなり得るパスの始点ラッチと終点ラッチに関するデータを取得し、
前記始点ラッチから前記終点ラッチまでの間のピンごとに仮定故障を設定し、前記始点ラッチで発生した信号変化が前記終点ラッチまで伝播できるか否かの判定を、前記設定ごとに行い、
パスを構成する要素それぞれの遅延を確率密度関数で表し、確率密度関数で表された分布を前記始点ラッチから前記終点ラッチに向けて累積計算することで、パスのディレイ分布を算出する統計的タイミング解析を、信号変化が伝播できないと判定された場合のピンでは分布を後段に累積計算しないように行う処理を実行するディレイ解析方法。
（付記６）  さらに、
記憶装置に保持された集積回路の設計データに基づき、前記集積回路内で信号伝播が遅延するパスとなり得るパスの始点ラッチ、終点ラッチに関するデータのペアを複数選択し、
選択されたペアの始点ラッチから終点ラッチまでの間の回路に対し統計的タイミング解析を行い、前記ペアごとのディレイ分布をそれぞれ算出し、
算出されたディレイ分布それぞれの偏差に基づき、選択された複数のペアをソートする処理をコンピュータが実行し、
前記始点ラッチと終点ラッチに関するデータを取得するステップは、ソートされたペアの順で、始点ラッチと終点ラッチに関するデータをそれぞれ取得し、
前記判定するステップは、取得されたペアの順で、該パスの始点ラッチで発生した信号変化が終点ラッチまで伝播できるか否かの判定をそれぞれ行うことを特徴とする付記５記載のディレイ解析方法。
（付記７）  前記始点ラッチ、終点ラッチに関するデータのペアを複数選択するステップは、パスを構成する要素それぞれの遅延を、それぞれ一つの値で表し、該値それぞれを前記始点ラッチから前記終点ラッチに向けて累積計算を行うことでパスの遅延値を算出する静的タイミング解析を用いて、前記集積回路内で信号伝播が遅延するパスとなり得るパスを選択し、該パスの始点ラッチ、終点ラッチのペアを選択することを特徴とする付記６記載のディレイ解析方法。
（付記８）  前記ソートするステップは、算出されたディレイ分布それぞれの標準偏差を算出し、該標準偏差に所定の定数を積算して得た値の大きい方からソートすることを特徴とする付記６記載のディレイ解析方法。
（付記９）  集積回路上で信号伝播が遅延するパスとなり得るパスの始点ラッチと終点ラッチに関するデータを取得し、
前記始点ラッチから前記終点ラッチまでの間のピンごとに仮定故障を設定し、前記始点ラッチで発生した信号変化が前記終点ラッチまで伝播できるか否かの判定を、前記設定ごとに行い、
パスを構成する要素それぞれの遅延を確率密度関数で表し、確率密度関数で表された分布を前記始点ラッチから前記終点ラッチに向けて累積計算することで、パスのディレイ分布を算出する統計的タイミング解析を、信号変化が伝播できないと判定された場合のピンでは分布を後段に累積計算しないように行う処理を、コンピュータに実行させるディレイ解析プログラム。
（付記１０）  さらに、
記憶装置に保持された集積回路の設計データに基づき、前記集積回路内で信号伝播が遅延するパスとなり得るパスの始点ラッチ、終点ラッチに関するデータのペアを複数選択し、
選択されたペアの始点ラッチから終点ラッチまでの間の回路に対し統計的タイミング解析を行い、前記ペアごとのディレイ分布をそれぞれ算出し、
算出されたディレイ分布それぞれの偏差に基づき、選択された複数のペアをソートする処理をコンピュータに実行させ、
前記始点ラッチと終点ラッチに関するデータを取得するステップは、ソートされたペアの順で、始点ラッチと終点ラッチに関するデータをそれぞれ取得し、
前記判定するステップは、取得されたペアの順で、該パスの始点ラッチで発生した信号変化が終点ラッチまで伝播できるか否かの判定をそれぞれ行うことを特徴とする付記９記載のディレイ解析プログラム。
（付記１１）  前記始点ラッチ、終点ラッチに関するデータのペアを複数選択するステップは、パスを構成する要素それぞれの遅延を、それぞれ一つの値で表し、該値それぞれを前記始点ラッチから前記終点ラッチに向けて累積計算を行うことでパスの遅延値を算出する静的タイミング解析を用いて、前記集積回路内で信号伝播が遅延するパスとなり得るパスを選択し、該パスの始点ラッチ、終点ラッチのペアを選択することを特徴とする付記１０記載のディレイ解析プログラム。
（付記１２）  前記ソートするステップは、算出されたディレイ分布それぞれの標準偏差を算出し、該標準偏差に所定の定数を積算して得た値の大きい方からソートすることを特徴とする付記１０記載のディレイ解析プログラム。
【符号の説明】
【００５２】
１  セルライブラリ入力部、２  設計データ入力部、３、８、１６  記憶部、４、９  メモリデータ入力部、５  静的タイミング解析部、６  クリティカルパス出力部、７  クリティカルパス選択部、１０  統計的タイミング解析部、１１  ディレイ分布グラフ出力部、１２  ディレイ分布グラフ入力部、１３  試験対象パス選択部、１４  試験対象パス出力部、１５  試験対象パス入力部、１７  仮定故障設定部、１８  ディレイテスト生成部、１９  フォールスパス情報出力部、２０  タイミング歩留り計算部、５１  セルライブラリ、５２  プロセッサ設計データ、５３  クリティカルパス情報、５４  各パスのディレイ分布グラフ、５５  試験対象パス情報、５６  フォールスパス情報、５７  集積回路のタイミング歩留まり分布、６１  メモリ、１００  ディレイ解析装置、１０１  ペア選択部、１０２  取得部、１０３  判定部、１０４  解析部、１０５  ソート部。
【図１】
0005381591.tif 000002
【図２】
0005381591.tif 000003
【図３】
0005381591.tif 000004
【図４】
0005381591.tif 000005
【図５】
0005381591.tif 000006
【図６】
0005381591.tif 000007
【図７】
0005381591.tif 000008
【図８】
0005381591.tif 000009