(57)【要約】【課題】タイミング解析の精度を向上させると共に、タイミング解析の作業効率を向上させる。【解決手段】分割されたブロック単位の回路解析時に、ブロック毎のシミュレーション情報を保存し（１００）、解析が必要なパスの認識を行い（２００）、該解析が必要なパスについて、静的タイミング解析の結果と前記ブロック毎のシミュレーションの条件を使用して、前記分割されたブロックを結合したスパイスデッキを生成し（６００）、該生成されたスパイスデッキによるシミュレーション結果を前記静的タイミング解析に反映させる（３００）ように構成する。【選択図】図２
2008097130.tif 000002
【特許請求の範囲】
【請求項１】
分割されたブロック単位の回路解析時に、ブロック毎のシミュレーション情報を保存し、
解析が必要なパスの認識を行い、
該解析が必要なパスについて、静的タイミング解析の結果と前記ブロック毎のシミュレーションの条件を使用して、前記分割されたブロックを結合したスパイスデッキを生成し、
該生成されたスパイスデッキによるシミュレーション結果を前記静的タイミング解析に反映させるようにしたことを特徴とするタイミング解析方法。
【請求項２】
請求項１に記載のタイミング解析方法において、
前記パスの認識は、テンプレートを使用してスパイスデッキ生成対象ノードを求めることを特徴とするタイミング解析方法。
【請求項３】
請求項２に記載のタイミング解析方法において、
前記パスの認識は、前記テンプレートに該当する回路が見つかった場合、該テンプレートに該当する回路の所定の端子からバックトレースを行い、該バックトレースにより通過したノードをスパイスデッキ生成対象ノードとすることを特徴とするタイミング解析方法。
【請求項４】
分割されたブロック単位の回路解析時に、ブロック毎のシミュレーション情報を保存するブロックシミュレーション情報保存部と、
解析が必要なパスについて、静的タイミング解析の結果と前記ブロック毎のシミュレーションの条件を使用して、前記分割されたブロックを結合したスパイスデッキを生成するスパイスデッキ生成部と、
該生成されたスパイスデッキによるシミュレーション結果を前記静的タイミング解析に反映させるフィードバック付き静的タイミング解析部と、を備えることを特徴とするタイミング解析装置。
【請求項５】
コンピュータに、
分割されたブロック単位の回路解析時に、ブロック毎のシミュレーション情報を保存する手順と、
解析が必要なパスの認識を行う手順と、
該解析が必要なパスについて、静的タイミング解析の結果と前記ブロック毎のシミュレーションの条件を使用して、前記分割されたブロックを結合したスパイスデッキを生成する手順と、
該生成されたスパイスデッキによるシミュレーション結果を前記静的タイミング解析に反映させる手順と、を実行させ、回路のタイミング解析を行わせることを特徴とするタイミング解析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タイミング解析方法および装置に関し、特に、大規模集積回路のタイミング解析方法および装置に関する。
【背景技術】
【０００２】
近年、クロック周波数が数ＧＨｚを超えるような超高速ＬＳＩにおいては、非常に精度の高いタイミング解析が求められる。タイミング解析の手法には、業界標準であるｓｐｉｃｅを用いたシミュレーションによる解析が知られているが、この手法は非常に長い処理時間が必要であり、ますます大規模化する回路構成に対しては、実用的な時間でタイミング解析を終えることは不可能になって来ている。
【０００３】
そのような中で有効なものとして、次に説明するような方法が知られている。まず、解析対象回路を小規模なブロックに分割する。このブロック単位にｓｐｉｃｅシミュレーションを行い、その結果をライブラリ化する。そして、作成したブロック単位のライブラリを用いて、回路全体のＳＴＡ（Static Timing Analyses：静的タイミング解析）を行うことにより、ＬＳＩ回路のタイミング解析を行うというものである。
【０００４】
すなわち、従来、大規模集積回路（ＬＳＩ）のタイミング解析は、例えば、以下の手順で行っていた。
【０００５】
(1) まず、解析対象回路から、ｓｐｉｃｅシミュレーション可能な規模で回路を抜き出すか、若しくは、ｓｐｉｃｅシミュレーション可能な規模に回路を修正する。この際、回路の抜き出し（修正）は、手作業またはツールを使用して行なう。
【０００６】
(2) 次に、解析対象回路に対してシミュレーション条件（シミュレーションパターン等）を手作業で設定し、ｓｐｉｃｅシミュレーションを実行する。
【０００７】
(3) 上記(1)および(2)の作業を繰り返し、回路全体のタイミング解析を行う。
上記の手法は有効なもので、実用的な時間でタイミング解析を行うことを可能にしている。しかしながら、年々の微細化および高密度化の進むＬＳＩ回路において、この手法でも、例えば、クロックパスなどの高い精度が求められるパスに対しては十分な精度を得ることはできない。
【０００８】
ところで、従来、大規模な論理回路に対して高速および高精度に遅延時間の計算を行うことのできる遅延時間計算方法として、高精度の計算が要求されるパスについては、高精度計算対照パス条件ライブラリを入力とし、静的遅延計算により求めたパスの信号遅延時間を参照して条件に合致するパスを選択し、その選択されたパスに対して論理回路の接続情報を元にその選択されたパス内の回路シミュレーションデータと回路シミュレーションの入力信号（テストパターン）を生成するものが提案されている（例えば、特許文献１参照）。
【０００９】
また、従来、フルカスタムＬＳＩ設計において、部分的に回路設計や信号伝達に関する条件が変更された場合でも変更前の回路について行なった解析結果を活用して迅速で精密な遅延特性解析を行う方法として、ネットリストを単位ブロックに分割してその単位ブロックを所定の条件に従って結合して所定の規模の回路ブロックを形成し、各回路ブロックについて動的タイミング解析を行ない、得られた解析結果を含む遅延特性ライブラリを作成し、静的タイミング解析処理に適用してネットリストで表される解析対象の回路を回路ブロックの集合として扱い、所望の信号経路についての伝送遅延を解析するようにしたものも提案されている（例えば、特許文献２参照）。
【００１０】
【特許文献１】特開平１０−０６３６９３号公報
【特許文献２】特開２００２−２１５７１０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
前述した従来の大規模集積回路のタイミング解析方法では、抜き出した（修正した）回路自体のシミュレーション条件と実際の回路動作の差分が大きくて精度が悪かった。また、精度を向上させるために、抜き出した回路の規模は大きくなりがちで、１回のｓｐｉｃｅシミュレーションに時間が掛かっていた。さらに、シミュレーションパターン等のシミュレーション条件の設定を手作業で行わなければならず、非常に手間を要していた。
【００１２】
本発明は、上述した従来技術が有する課題に鑑み、タイミング解析の精度を向上させると共に、タイミング解析の作業効率を向上させることのできるタイミング解析方法および装置の提供を目的とする。
【課題を解決するための手段】
【００１３】
本発明に係るタイミング解析方法によれば、分割されたブロック単位の回路解析時に、ブロック毎のシミュレーション情報を保存し、解析が必要なパスの認識を行い、そして、該解析が必要なパスについて、静的タイミング解析の結果と前記ブロック毎のシミュレーションの条件を使用して、前記分割されたブロックを結合したスパイスデッキを生成する。そして、生成されたスパイスデッキによるシミュレーション結果を、前記静的タイミング解析に反映させることにより、タイミング解析の精度を向上と共に、タイミング解析の作業効率を向上させることが可能になる。
【発明の効果】
【００１４】
本発明によれば、タイミング解析の精度を向上させると共に、タイミング解析の作業効率を向上させることのできるタイミング解析方法および装置を提供することができる。
【発明を実施するための最良の形態】
【００１５】
まず、本発明に係るタイミング解析方法および装置の実施例を詳述する前に、本発明の原理を説明する。すなわち、本発明は、回路分割手法の精度を、以下の手順により向上させるものである。
【００１６】
(1) まず、ブロック単位の回路解析時に、シミュレーションパターン等のブロックのシミュレーション情報（ＭＩＮ／ＭＡＸのクリティカル条件のみ）を保存する。
(2) 次に、高精度解析が必要なパスの認識を行う。
【００１７】
(3) さらに、高精度解析が必要なパスについて、ＳＴＡ（Static Timing Analyses：静的タイミング解析）の結果と、ブロック毎のｓｐｉｃｅシミュレーションの条件を使用して、分割ブロックを結合したスパイスデッキを生成し、ｓｐｉｃｅシミュレーションを行う。ここで、スパイスデッキとは、ｓｐｉｃｅシミュレーションに使うスパイスネットリストであり、他のシミュレーション条件が設定されているスパイスのネットリストを意味する。
【００１８】
(4) そして、スパイスデッキによるシミュレーション結果をＳＴＡに反映させ、タイミング解析の精度を向上する。
【００１９】
このように、本発明は、ブロック分割回路とブロック毎のシミュレーション条件並びにＳＴＡの結果を用いることによって、回路規模が小さくて高精度のスパイスデッキを作成し、これを用いることにより短時間のｓｐｉｃｅシミュレーションで高精度の解析を行うことができる。さらに、本発明は、シミュレーションパターン等のシミュレーション条件の設定は、ブロック分割手法の実行時にＭＩＮ／ＭＡＸのクリティカル条件を保存し、これを使用することにより人手を介さずに自動で行うことができ、作業効率を向上させることができる。
【００２０】
従って、本発明によれば、小規模／高精度のスパイスデッキを使用することにより、短時間のｓｐｉｃｅシミュレーションで精度の高い解析を行うことができ、また、スパイスデッキによる解析結果をＳＴＡにフィードバックすることにより精度の高いタイミング解析データを作成することがで、さらに、自動でシミュレーション条件の設定を行うことによりタイミング解析の作業効率を向上させることができる。
【実施例】
【００２１】
以下、本発明に係るタイミング解析方法および装置の実施例を、添付図面を参照して詳述する。
【００２２】
図１は本発明に係るタイミング解析方法の全体的な処理の一例を示すフローチャートであり、図２は図１に示すタイミング解析方法を実現するタイミング解析装置の一実施例を示すブロック図である。図２において、参照符号１００はブロックシミュレーション情報保存部、２００はスパイスデッキ生成パス解析部、３００はフィードバック付きＳＴＡ部、そして、６００はスパイスデッキ生成部を示している。なお、参照符号１１，１２、２１〜２４、および、３１〜３７はそれぞれ記憶装置（記憶装置に格納（保存）されるデータ）を示している。
【００２３】
図１に示されるように、タイミング解析処理が開始すると、まず、ステップＳＴ１において、ブロックシミュレーション情報を保存してステップＳＴ２に進む。ここで、ブロックシミュレーション情報は、知られているブロック分割手法を使用して行われるブロックシミュレーションの情報である。
【００２４】
すなわち、図２に示されるように、ブロック分割手法は、例えば、ステップＳＴ１０１において、記憶装置に保存された回路データ（ｓｐｉｃｅ：スパイス）１１を使用してブロック分割を行い、さらに、ステップＳＴ１０２に進んで、ブロック毎のｓｐｉｃｅシミュレーションを行い、そのタイミング解析情報１２を記憶装置に保存する。
【００２５】
ステップＳＴ２では、スパイスデッキ生成対象ノードの解析、すなわち、スパイスデッキ生成パスの解析を行ってステップＳＴ３に進む。
【００２６】
ステップＳＴ３では、ＳＴＡ（静的タイミング解析）を実行してステップＳＴ４に進み、ステップＳＴ４で解析パス（クリティカルパス）がスパイスデッキ生成対象ではない判別されると、ステップＳＴ５に進む。ステップＳＴ５では、全てのパスの解析が終了したかどうかを判別し、全てのパスの解析が終了するまでステップＳＴ３およびＳＴ４の処理を繰り返す。なお、ステップＳＴ５で、全てのパスの解析が終了したと判別されると、タイミング解析処理は終了する。
【００２７】
一方、ステップＳＴ４において、解析パスがスパイスデッキ生成対象であると判別されると、ステップＳＴ６に進み、スパイスデッキを生成し、さらに、ステップＳＴ７に進んで、ｓｐｉｃｅシミュレーションを実行する。そして、ステップＳＴ８に進んで、ステップＳＴ７における解析結果をステップＳＴ３のＳＴＡに反映（フィードバック）して、全てのパスの解析が終了するまでステップＳＴ３およびＳＴ４の処理を繰り返す。
【００２８】
図２に示されるように、本発明に係るタイミング解析装置の一実施例は、概略、ブロックシミュレーション情報保存部１００、スパイスデッキ生成パス解析部２００、フィードバック付きＳＴＡ部３００、および、スパイスデッキ生成部６００を備えて構成されている。
【００２９】
ブロックシミュレーション情報保存部１００は、前述したブロック分割手法で実行されるブロック単位のｓｐｉｃｅシミュレーション時に、パス毎のＭＩＮ／ＭＡＸクリティカル条件について、シミュレーションパターンや内部ノードの初期状態などのシミュレーション情報を保存する。なお、このブロックシミュレーション情報は、後に図１２を参照して説明するスパイスデッキの生成に使用される。
【００３０】
スパイスデッキ生成パス解析部２００は、高精度解析が求められるパスとして、フリップフロップ（ＦＦ）へのクロックパス／データパスが挙げられる。これらのパスの解析法としては、ＦＦ回路テンプレート（３１：ＦＦｔｐ）を考える。これは、解析対象回路中から回路テンプレートに該当する部分を検索し、ＦＦ回路を認識する。
【００３１】
そして、認識した回路から、クロック／データに該当する（テンプレートで指定する）端子からバックトレース（トランジスタのドレインからソース方向、または、ドレインからゲート方向へのトレース）を行い、通過したノード（トランジスタの端子）をスパイスデッキ生成対象とする。なお、ＦＦ回路テンプレートの使用に関しては、後に、図６を参照して説明する。
【００３２】
しかしながら、ＦＦ回路の構成は複雑であり、また、様々な回路の構成方法が考えられるため、これら全てをカバーするテンプレートを作成することは大変手間のかかる作業になる。そこで、ＦＦ回路に必ず含まれるフィードバックループテンプレート（３２：ＦＬｔｐ）を考える。
【００３３】
すなわち、解析対象回路中からこのフィードバックループテンプレートに該当する部分を検索し、フィードバックループを認識する。そして、認識した回路においてバックトレースを行い、通過したノードをスパイスデッキ生成対象とする。このフィードバックループのテンプレート情報の使用に関しては、後に、図７を参照して説明する。
【００３４】
さらに、任意のパスに対しても、スパイスデッキの生成を行い、高い精度での解析が行えるように、スパイスデッキ生成対象ノードを外部ファイルより指定する。この任意のノード名の指定に関しては、後に、図８を参照して説明する。
【００３５】
フィードバック付きＳＴＡ部３００は、ＳＴＡを行った結果、解析パス上に、スパイスデッキ生成パス解析部２００で求められたノードが存在する場合、後述するスパイスデッキ生成部６００による手順でスパイスデッキ生成する。そして、この生成されたスパイスデッキを使用してｓｐｉｃｅシミュレーションを行い、計算結果をＳＴＡに反映（フィードバック）させ、再度ＳＴＡを行う。
【００３６】
そして、新たなパスがＭＩＮ／ＭＡＸパスとして検出され、且つ、そのパス上にスパイスデッキ生成対象となるノードが含まれる場合には、再度スパイスデッキの生成を行ってその計算結果をＳＴＡに反映させる。この処理を繰り返し、スパイスデッキの結果を反映させたタイミング解析情報を作成する。なお、フィードバック付きＳＴＡに関しては、後に、図１０を参照して説明する。
【００３７】
スパイスデッキ生成部６００は、ＳＴＡで求めた通過パス情報と、ブロック分割結果、および、ブロックのパス毎のＭＩＮ／ＭＡＸのクリティカルなシミュレーション条件（シミュレーションパターン等）からスパイスデッキを生成する。なお、スパイスデッキの生成に関しては、後に、図１２を参照して説明する。
【００３８】
さらに、ＳＴＡで計算対象となったパスに、スパイスデッキ生成パス解析部２００で求めたノードが含まれる場合にスパイスデッキを生成する。スパイスデッキは、ＳＴＡで求めたパス上に存在するブロック分割回路を接続することによって生成される。ここで、パス上に存在するブロック分割回路をターゲットブロックと呼ぶ。
【００３９】
ｓｐｉｃｅシミュレーションを可能にするため、各ターゲットブロックの空き端子に対して、ブロックのパス毎に保存されているクリティカルなシミュレーション条件（ＭＡＸ／ＭＩＮ解析）のシミュレーションパターンに従ったクリップを行う。さらに、解析精度を向上するために、ターゲットブロックの出力端子に接続されているブロックも再現する。ここで、ターゲットブロックに接続されている回路をファンアウトブロックと呼ぶ。このファンアウトブロックの空き端子についても、ターゲットブロックと同様に、保存されているシミュレーションパターンに従ってクリップを行う。
【００４０】
図３はブロックシミュレーション情報一例を示す図であり、図４は図２におけるブロックシミュレーション情報保存処理の一例を説明するための図であり、そして、図５は図４に示すブロックシミュレーション情報保存処理をより詳細に示すフローチャートである。
【００４１】
図２におけるブロック分割手法は、回路をブロックに分割し、例えば、図３に示されるような、各入力端子および各出力端子に対して、信号の立ち上がり（Ｕｐ）および立ち下がり（Ｄｏｗｎ）の最短時間（ＭＩＮ）と最長時間（ＭＡＸ）とのクリティカルな条件でシミュレーションを行い、それをブロック毎に保存する。
【００４２】
すなわち、図５に示されるように、ステップＳＴ１１において、ブロック単位の回路形状（回路データ：ｓｐｉｃｅ）を保存し（図２における記憶装置１１参照）、ステップＳＴ１２に進んで、ブロック単位のタイミング解析を行ってその情報を保存する（図２における記憶装置１２参照）。ここで、保存するタイミング解析情報としては、例えば、入力端子から出力端子へのディレイをパス毎に、且つ、ＭＩＮ／ＭＡＸ毎に保存したものである。
【００４３】
さらに、ステップＳＴ１３に進んで、各パスのディレイを保存したときのシミュレーション条件（ＭＩＮ／ＭＡＸのクリティカルパス保存時のシミュレーション条件）を保存する（図２における記憶装置１２参照）。ここで、保存するシミュレーション条件としては、例えば、シミュレーションパターンや回路内部の初期条件等であり、最大で、［２（ＭＩＮクリティカル条件およびＭＡＸクリティカル条件）×２（入力信号遷移ＵｐおよびＤｏｗｎ）×２（出力信号遷移ＵｐおよびＤｏｗｎ）×入力端子数×出力端子］を保存することになる。
【００４４】
すなわち、図４に示す例では、遷移Ｕｐの入力信号が入力端子Ａから入力して出力端子Ｘへ遷移Ｄｏｗｎとして出力される場合、太線の矢印の経路がクリティカルパスのとき、入力端子に与えたシミュレーションパターンや内部ノードの状態などをブロックシミュレーション情報（ブロック単位の回路データ）として保存する。
【００４５】
図６は図２に示すタイミング解析装置におけるＦＦ回路テンプレートの使用例を説明するための図、図７は図２に示すタイミング解析装置におけるフィードバックループテンプレートの使用例を説明するための図、そして、図８は図２に示すスパイスデッキ生成対象ノードを説明するための図である。
【００４６】
図２および図６〜８に示されるように、スパイスデッキ生成パス解析部２００は、高精度の解析が求められるパス（スパイスデッキを作成すべきパス）の認識を行うために、以下の処理を行う。
【００４７】
(1) まず、ＦＦ回路のテンプレート情報を使用して、スパイスデッキ生成対象ノードを求める。すなわち、図６に示されるように、解析対象回路からＦＦ回路テンプレートＦＦｔｐに該当する回路を検索し、ＦＦ回路テンプレートＦＦｔｐに該当する回路が見つかった場合には、バックトレース端子からバックトレースを行い、通過したノードをスパイスデッキ生成対象ノードとする。
【００４８】
ここで、図６において、参照符号Ｔｂがバックトレース端子の場合、バックトレースは、図中の矢印で示されるように、トランジスタのドレインからソース方向、或いは、ドレインからゲート方向へのトレースである。
【００４９】
(2) 次に、フィードバックループのテンプレート情報を使用して、スパイスデッキ生成対象ノードを求める。すなわち、図７に示されるように、解析対象回路中からフィードバックループテンプレートＦＬｔｐに該当する回路を検索する。そして、フィードバックループテンプレートＦＬｔｐに該当する回路が見つかった場合には、バックトレース端子Ｔｂからバックトレースを行い、通過したノードをスパイスデッキ生成対象ノードとする。
【００５０】
(3) さらに、任意のノード名を指定して、スパイスデッキ生成対象ノードを求める。すなわち、図８に示されるように、任意のパスに対しても、スパイスデッキの生成を行い、高い精度での解析が行えるように、スパイスデッキ生成対象ノードを外部ファイルより指定する。この任意のノード名は、例えば、正規表現により指定する。
【００５１】
図９は図６〜図８に示すスパイスデッキ生成パス解析処理をより詳細に示すフローチャートである。
【００５２】
図９に示されるように、スパイスデッキの生成処理が開始されると、ステップＳＴ２１において、ＦＦのテンプレート（ＦＦｔｐ，３１）の認識を行って、ステップＳＴ２２に進み、テンプレートとマッチするか否かを判別する。
【００５３】
ステップＳＴ２２で、テンプレートＦＦｔｐとマッチすると判別されると、ステップＳＴ２７に進んで、スパイスデッキ生成対象ノード（３４）を保存して、ステップＳＴ２３に進む。一方、ステップＳＴ２２で、テンプレートＦＦｔｐとマッチしないと判別されると、そのままステップＳＴ２３に進む。
【００５４】
ステップＳＴ２３では、フィードバックループのテンプレート（ＦＬｔｐ，３２）の認識を行い、ステップＳＴ２４に進んで、テンプレートＦＬｔｐとマッチするか否かを判別する。
【００５５】
ステップＳＴ２４で、テンプレートＦＬｔｐとマッチすると判別されると、ステップＳＴ２８に進んで、スパイスデッキ生成対象ノード（３４）を保存して、ステップＳＴ２５に進む。一方、ステップＳＴ２４で、テンプレートＦＬｔｐとマッチしないと判別されると、そのままステップＳＴ２５に進む。
【００５６】
ステップＳＴ２５では、指定されたノード名の認識を行い、ステップＳＴ２６に進んで、指定されたノード名とマッチするか否かを判別する。
【００５７】
ステップＳＴ２６で、指定されたノード名とマッチすると判別されると、ステップＳＴ２９に進んで、スパイスデッキ生成対象ノード（３４）を保存してスパイスデッキの生成処理を終了する。一方、ステップＳＴ２６で、指定されたノード名とマッチしないと判別されると、そのままスパイスデッキの生成処理を終了する。
【００５８】
図１０は図２に示すフィードバック付きＳＴＡ処理の一例を説明するための図であり、また、図１１は図１０に示すフィードバック付きＳＴＡ処理をより詳細に示すフローチャートである。
【００５９】
フィードバック付きＳＴＡ部３００は、以下の手順に従ってＳＴＡの再計算を行い、高精度のディレイ解析情報を作成する。
【００６０】
(1) ブロック単位のディレイ解析情報(ブロック毎のタイッミング解析情報２４)を使用してＳＴＡを行う。
【００６１】
(2) ＳＴＡを用いて計算したクリティカルパス（ＭＩＮ／ＭＡＸ）上に、スパイスデッキ生成対象ノード３４が存在した場合スパイスデッキ３５を生成する。
【００６２】
(3) 図１２を参照して後述するスパイスデッキ生成部６００の処理を参照。
(4) スパイスデッキ３５を用いて計算（ＳＴ７）した結果（スパイスデッキ解析結果３６）をＳＴＡの結果と置き換え、再度ＳＴＡを実行する。
【００６３】
(5) 上記した再度のＳＴＡの実行により、別の経路がパス（ＭＩＮ／ＭＡＸ）として計算され、且つ、パス上にスパイスデッキ対象ノードが存在した場合、再度、上記(2)から(4)の処理を行う。
【００６４】
ここで、新たなスパイスデッキを生成しない場合、回路全体のタイミング解析情報（高精度タイミング解析情報３７）を生成して、フィードバック付きＳＴＡ処理を終了する。
【００６５】
すなわち、図１１に示されるように、フィードバック付きＳＴＡ処理が開始されると、ステップＳＴ３１において、ＳＴＡを実行し、ステップＳＴ３２に進んで、クリティカルパス上にスパイスデッキ生成対象ノードが存在するか否かを判別する。
【００６６】
ステップＳＴ３２で、クリティカルパス上にスパイスデッキ生成対象ノードが存在すると判別されると、ステップＳＴ３３に進んで、スパイスデッキを生成し、さらに、ステップＳＴ３４に進んで、ｓｐｉｃｅシミュレーションを実行する。そして、ステップＳＴ３６に進んで、新たなスパイスデッキ生成対象ノードを発見したか否かを判別し、新たなスパイスデッキ生成対象ノードを発見しないと判別されるまでステップＳＴ３３〜ＳＴ３５の処理を繰り返す。
【００６７】
なお、ステップＳＴ３６において、新たなスパイスデッキ生成対象ノードを発見しないと判別されるか、或いは、ステップＳＴ３２において、クリティカルパス上にスパイスデッキ生成対象ノードが存在しないと判別されると、フィードバック付きＳＴＡ処理を終了する。
【００６８】
図１２は図２に示すスパイスデッキ生成処理の一例を説明するための図であり、また、図１３は図１２に示すスパイスデッキ生成処理をより詳細に示すフローチャートである。
【００６９】
図１２に示されるように、スパイスデッキ生成部６００は、以下の手順に従ってスパイスデッキ（３５）を生成する。
【００７０】
(1) ＳＴＡで求められたパス（ＳＴＡ結果）から、パス上のブロック（ターゲットブロック）を求め、その求めたターゲットブロックを接続してスパイスデッキを生成する。
【００７１】
(2) ターゲットブロックの信号（Ｕ／Ｄ：Ｕｐ／Ｄｏｗｎ）伝播パスでないブロック出力に接続するブロック（ファンアウトブロック）を再現する。
【００７２】
(3) ターゲットブロックの信号伝播パス以外の入力信号設定を行う。信号設定は、ＳＴＡのＭＩＮ／ＭＡＸ条件に従い、着目パスの測定対象信号（Ｕ／Ｄ）の解析時に保存されたシミュレーションパターン情報２１，２２から取得する。なお、内部ノードの初期値などの、その他のシミュレーション情報もここから取得する。
【００７３】
(4) ファンアウトブロックの信号設定を行う。信号設定は、ＳＴＡのＭＩＮ／ＭＡＸ条件に従い、ターゲットブロックの出力と接続している入力の解析に保存されたシミュレーションパターン情報２１，２２から取得する。なお、内部ノードの初期値などの、その他のシミュレーション情報もここから取得する。
【００７４】
(5) 解析対象入力に信号設定（Ｕ／Ｄ）を行い、ｓｐｉｃｅシミュレーションを実行する。
【００７５】
すなわち、図１３に示されるように、スパイスデッキ生成処理が開始されると、ステップＳＴ６１において、解析パス上のターゲットブロックを求めて結合し、ステップＳＴ６２に進んで、ファンアウトブロックを求めて結合する。
【００７６】
さらに、ステプＳＴ６３に進んで、ターゲットブロックの信号設定を行い、また、ステップＳＴ６４に進んで、ファンアウトブロックの信号設定を行う。そして、ステップＳＴ６５に進んで、ｓｐｉｃｅシミュレーションを行って、スパイスデッキ生成処理を終了する。
【００７７】
図１４はブロックシミュレーション情報保存部の入力例を示す図、また、図１５および図１６はブロックシミュレーション情報保存部の出力例を示す図である。
【００７８】
以下の説明では、一例として、ブロック１がインバータでブロック２がナンドゲートの場合を示している。
【００７９】
まず、ブロックシミュレーション情報保存部１００に入力するスパイスネットリスト（回路データ１１）は、例えば、各端子（ノード）Ａ，Ｂ，ＸＡおよびＸに関する図１４に示されるようなものとなる。
【００８０】
さらに、ブロックシミュレーション情報保存部１００からは、例えば、図１５および図１６に示されるようなブロック毎のシミュレーション情報（ブロック１およびブロック２のブロック毎のタイミング解析情報）およびブロック毎の回路構成（回路構造）が出力されて記憶装置（２４（２１，２２），２３）に保存される。
【００８１】
図１７はスパイスデッキ生成パス解析部の入力例を示す図であり、また、図１８はスパイスデッキ生成パス解析部の出力例を示す図である。ここで、図１７および図１８の例では、簡略化するためにインバータのテンプレートを示しているが、通常は、前述したように、ＦＦ回路テンプレートＦＦｔｐ、フィードバックループテンプレートＦＬｔｐ、若しくは、ノード名のリストを使用する。
【００８２】
すなわち、スパイスデッキ生成パス解析部２００には、例えば、図１７に示されるようなトランジスタ構成およびバックトレース対象ノードを有するテンプレート（インバータテンプレート）が入力され、さらに、スパイスデッキ生成パス解析部２００からは、図１８に示されるようなスパイスデッキ生成対象ノード（スパイスネットリストの「Ａ」がバックトレースのノードに該当することを検出した場合）が出力されて記憶装置（３４）に保存される。
【００８３】
図１９〜図２１はフィードバック付きＳＴＡ部の入力例を示す図であり、また、図２２はフィードバック付きＳＴＡ部の出力例を示す図である。
【００８４】
フィードバック付きＳＴＡ部３００には、例えば、図１９および図２０に示されるようなブロック毎のシミュレーション情報（ブロック毎のタイミング解析情報２４）およびブロック毎の回路構成（回路構造２３）が入力されると共に、図２１に示されるようなスパイスデッキ生成対象ノード（３４）が入力される。すなわち、フィードバック付きＳＴＡ部３００には、記憶装置（２４（２１，２２），２３，３４）に保存されたブロックシミュレーション情報保存部１００からの出力（ブロック毎のタイミング解析情報２４（ＭＡＸ条件２１およびＭＩＮ条件２２），回路構造２３およびスパイスデッキ生成対象ノード３４）が入力される。
【００８５】
そして、フィードバック付きＳＴＡ部３００からは、スパイスデッキ生成判別部４００（図２を参照）を介して図２２に示されるような高精度タイミング解析情報が出力されて記憶装置（３７）に保存される。
【００８６】
ここで、スパイスデッキ生成判別部４００は、解析パスがスパイスデッキ生成対象であるか否かを判別し（ＳＴ４）、解析パスがスパイスデッキ生成対象であるときに、フィードバック付きＳＴＡ部３００からの高精度タイミング解析情報（３７）が記憶装置（３７）に保存されることになる。
【００８７】
図２３および図２４はスパイスデッキ生成部の入力例を示す図であり、また、図２５はスパイスデッキ生成部の出力例を示す図である。
【００８８】
スパイスデッキ生成部６００には、例えば、図２３および図２４に示されるようなブロック毎のシミュレーション情報（ＭＡＸ条件２１およびＭＩＮ条件２２：ブロック毎のタイミング解析情報２４）およびブロック毎の回路構成（回路構造２３）が入力される。
【００８９】
そして、スパイスデッキ生成部６００からは、図２５に示されるようなスパイスデッキが出力されて記憶装置（３５）に保存される。なお、図２５に示すスパイスデッキ生成部６００から出力されるスパイスデッキ３５においては、例えば、ブロック１およびブロック２は結合され、例えば、入力端子Ａ→出力端子Ｘを活性化するために、前記シミュレーション情報から入力端子Ｂ（図１４参照）に該当するノードに対して『１』（ＶＤＤ）を設定するようになっている。
【００９０】
以上、詳述したように、本発明に係るタイミング解析方法および装置は、例えば、フィードバック付きＳＴＡ部３００（ステップＳＴ３）およびスパイスデッキ生成部６００（ステップＳＴ６）において、ＳＴＡの結果とブロック毎のｓｐｉｃｅシミュレーションの条件を使用して、分割されたブロックを結合したスパイスデッキを生成し、さらに、その生成されたスパイスデッキによるシミュレーション結果をＳＴＡに反映させるようになっており、これにより、タイミング解析の精度を向上させると共に、タイミング解析の作業効率を向上させることが可能になる。
【００９１】
図２６は本発明が適用されるタイミング解析プログラムおよびタイミング解析プログラムを記録した媒体の例を説明するための図である。図２６において、参照符号１０は処理装置、２０はプログラム（データ）提供者、そして、３０は可搬型記録媒体を示している。
【００９２】
本発明は、例えば、図２６に示すような処理装置（タイミング解析装置）１０に対するプログラム（データ）として与えられ、処理装置１０により実行される。処理装置１０は、プロセッサを含む演算処理装置本体１１、および、演算処理装置本体１１に対してプログラム（データ）を与え或いは処理された結果を格納する処理装置側メモリ（例えば、ＲＡＭ（Random Access Memory）やハードディスク）１２等を備える。処理装置１０に提供されたプログラム（データ）は、ローディングされて処理装置１０のメインメモリ上で実行される。
【００９３】
プログラム（データ）提供者２０は、プログラム（データ）を格納する手段（回線先メモリ：例えば、ＤＡＳＤ（Direct Access Storage Device））２１を有し、例えば、インターネット等の回線を介してプログラム（データ）を処理装置１０に提供し、或いは、ＣＤ−ＲＯＭやＤＶＤ等の光ディスクまたはフロッピィディスク等の磁気ディスクといった可搬型記録媒体３０を介して処理装置１０に提供する。本発明に係るタイミング解析プログラムを記録した媒体は、上記の処理装置側メモリ１２、回線先メモリ２１、および、可搬型記録媒体３０等の様々なものを含むのはいうまでもない。
【００９４】
（付記１）
分割されたブロック単位の回路解析時に、ブロック毎のシミュレーション情報を保存し、
解析が必要なパスの認識を行い、
該解析が必要なパスについて、静的タイミング解析の結果と前記ブロック毎のシミュレーションの条件を使用して、前記分割されたブロックを結合したスパイスデッキを生成し、
該生成されたスパイスデッキによるシミュレーション結果を前記静的タイミング解析に反映させるようにしたことを特徴とするタイミング解析方法。
【００９５】
（付記２）
付記１に記載のタイミング解析方法において、
前記シミュレーションは、ｓｐｉｃｅシミュレーションであることを特徴とするタイミング解析方法。
【００９６】
（付記３）
付記１に記載のタイミング解析方法において、
前記パスの認識は、テンプレートを使用してスパイスデッキ生成対象ノードを求めることを特徴とするタイミング解析方法。
【００９７】
（付記４）
付記３に記載のタイミング解析方法において、
前記テンプレートは、インバータテンプレート、フリップフロップ回路テンプレート、或いは、フィードバックループテンプレートであることを特徴とするタイミング解析方法。
【００９８】
（付記５）
付記３に記載のタイミング解析方法において、
前記パスの認識は、前記テンプレートに該当する回路が見つかった場合、該テンプレートに該当する回路の所定の端子からバックトレースを行い、該バックトレースにより通過したノードをスパイスデッキ生成対象ノードとすることを特徴とするタイミング解析方法。
【００９９】
（付記６）
付記５に記載のタイミング解析方法において、
前記バックトレースは、トランジスタのドレイン端子からソース端子方向またはゲート端子方向に行うことを特徴とするタイミング解析方法。
【０１００】
（付記７）
付記１に記載のタイミング解析方法において、
前記パスの認識は、任意のノード名を指定し、該ノード名に該当するノードが見つかった場合、当該ノードをスパイスデッキ生成対象ノードとすることを特徴とするタイミング解析方法。
【０１０１】
（付記８）
付記３〜７のいずれか１項に記載のタイミング解析方法において、
前記スパイスデッキ対象ノードが、前記静的タイミング解析を用いて計算したクリティカルパス上に存在した場合、前記スパイスデッキによるシミュレーション結果を前記静的タイミング解析による結果と置き換えて、再度、静的タイミング解析を行うことを特徴とするタイミング解析方法。
【０１０２】
（付記９）
分割されたブロック単位の回路解析時に、ブロック毎のシミュレーション情報を保存するブロックシミュレーション情報保存部と、
解析が必要なパスについて、静的タイミング解析の結果と前記ブロック毎のシミュレーションの条件を使用して、前記分割されたブロックを結合したスパイスデッキを生成するスパイスデッキ生成部と、
該生成されたスパイスデッキによるシミュレーション結果を前記静的タイミング解析に反映させるフィードバック付き静的タイミング解析部と、を備えることを特徴とするタイミング解析装置。
【０１０３】
（付記１０）
付記９に記載のタイミング解析装置において、
前記シミュレーションは、ｓｐｉｃｅシミュレーションであることを特徴とするタイミング解析装置。
【０１０４】
（付記１１）
付記９に記載のタイミング解析装置において、さらに、
テンプレートを使用してスパイスデッキ生成対象ノードを求めるスパイスデッキ生成パス解析部を備えることを特徴とするタイミング解析装置。
【０１０５】
（付記１２）
付記１１に記載のタイミング解析装置において、
前記スパイスデッキ生成パス解析部は、インバータテンプレート、フリップフロップ回路テンプレート、或いは、フィードバックループテンプレートを使用してスパイスデッキ生成対象ノードを求めることを特徴とするタイミング解析装置。
【０１０６】
（付記１３）
付記１１に記載のタイミング解析装置において、
前記スパイスデッキ生成パス解析部は、前記テンプレートに該当する回路が見つかった場合、該テンプレートに該当する回路の所定の端子からバックトレースを行い、該バックトレースにより通過したノードをスパイスデッキ生成対象ノードとすることを特徴とするタイミング解析装置。
【０１０７】
（付記１４）
付記１３に記載のタイミング解析装置において、
前記バックトレースは、トランジスタのドレイン端子からソース端子方向またはゲート端子方向に行うことを特徴とするタイミング解析装置。
【０１０８】
（付記１５）
付記９に記載のタイミング解析装置において、さらに、
任意のノード名を指定し、該ノード名に該当するノードが見つかった場合、当該ノードをスパイスデッキ生成対象ノードとするスパイスデッキ生成パス解析部を備えることを特徴とするタイミング解析装置。
【０１０９】
（付記１６）
付記１１〜１５のいずれか１項に記載のタイミング解析装置において、
前記スパイスデッキ対象ノードが、前記静的タイミング解析を用いて計算したクリティカルパス上に存在した場合、前記スパイスデッキによるシミュレーション結果を前記静的タイミング解析による結果と置き換えて、再度、静的タイミング解析を行うことを特徴とするタイミング解析装置。
【０１１０】
（付記１７）
コンピュータに、
分割されたブロック単位の回路解析時に、ブロック毎のシミュレーション情報を保存する手順と、
解析が必要なパスの認識を行う手順と、
該解析が必要なパスについて、静的タイミング解析の結果と前記ブロック毎のシミュレーションの条件を使用して、前記分割されたブロックを結合したスパイスデッキを生成する手順と、
該生成されたスパイスデッキによるシミュレーション結果を前記静的タイミング解析に反映させる手順と、を実行させ、回路のタイミング解析を行わせることを特徴とするタイミング解析プログラム。
【０１１１】
（付記１８）
付記１７に記載のタイミング解析プログラムを記録した媒体。
【産業上の利用可能性】
【０１１２】
本発明は、様々な回路のタイミング解析に幅広く適用することができ、特に、例えば、カスタムメイドの集積回路やサーバ用のＣＰＵ等の高速クロックで動作する大規模な集積回路のタイミング解析に有効なものである。
【図面の簡単な説明】
【０１１３】
【図１】本発明に係るタイミング解析方法の全体的な処理の一例を示すフローチャートである。
【図２】図１に示すタイミング解析方法を実現するタイミング解析装置の一実施例を示すブロック図である。
【図３】ブロックシミュレーション情報一例を示す図である。
【図４】図２におけるブロックシミュレーション情報保存処理の一例を説明するための図である。
【図５】図４に示すブロックシミュレーション情報保存処理をより詳細に示すフローチャートである。
【図６】図２に示すタイミング解析装置におけるＦＦ回路テンプレートの使用例を説明するための図である。
【図７】図２に示すタイミング解析装置におけるフィードバックループテンプレートの使用例を説明するための図である。
【図８】図２に示すスパイスデッキ生成対象ノードを説明するための図である。
【図９】図６〜図８に示すスパイスデッキ生成パス解析処理をより詳細に示すフローチャートである。
【図１０】図２に示すフィードバック付きＳＴＡ処理の一例を説明するための図である。
【図１１】図１０に示すフィードバック付きＳＴＡ処理をより詳細に示すフローチャートである。
【図１２】図２に示すスパイスデッキ生成処理の一例を説明するための図である。
【図１３】図１２に示すスパイスデッキ生成処理をより詳細に示すフローチャートである。
【図１４】ブロックシミュレーション情報保存部の入力例を示す図である。
【図１５】ブロックシミュレーション情報保存部の出力例を示す図（その１）である。
【図１６】ブロックシミュレーション情報保存部の出力例を示す図（その２）である。
【図１７】スパイスデッキ生成パス解析部の入力例を示す図である。
【図１８】スパイスデッキ生成パス解析部の出力例を示す図である。
【図１９】フィードバック付きＳＴＡ部の入力例を示す図（その１）である。
【図２０】フィードバック付きＳＴＡ部の入力例を示す図（その２）である。
【図２１】フィードバック付きＳＴＡ部の入力例を示す図（その３）である。
【図２２】フィードバック付きＳＴＡ部の出力例を示す図である。
【図２３】スパイスデッキ生成部の入力例を示す図（その１）である。
【図２４】スパイスデッキ生成部の入力例を示す図（その２）である。
【図２５】スパイスデッキ生成部の出力例を示す図である。
【図２６】本発明が適用されるタイミング解析プログラムおよびタイミング解析プログラムを記録した媒体の例を説明するための図である。
【符号の説明】
【０１１４】
１０    処理装置
１１    演算処理装置本体
１２    処理装置側メモリ
２０    プログラム（データ）提供者
２１    プログラムを格納する手段（回線先メモリ）
３０    可搬型記録媒体
１００    ブロックシミュレーション情報保存部
２００    スパイスデッキ生成パス解析部
３００    フィードバック付きＳＴＡ部
４００    スパイスデッキ生成判別部
６００    スパイスデッキ生成部
【図１】
2008097130.tif 000003
【図２】
2008097130.tif 000004
【図３】
2008097130.tif 000005
【図４】
2008097130.tif 000006
【図５】
2008097130.tif 000007
【図６】
2008097130.tif 000008
【図７】
2008097130.tif 000009
【図８】
2008097130.tif 000010
【図９】
2008097130.tif 000011
【図１０】
2008097130.tif 000012
【図１１】
2008097130.tif 000013
【図１２】
2008097130.tif 000014
【図１３】
2008097130.tif 000015
【図１４】
2008097130.tif 000016
【図１５】
2008097130.tif 000017
【図１６】
2008097130.tif 000018
【図１７】
2008097130.tif 000019
【図１８】
2008097130.tif 000020
【図１９】
2008097130.tif 000021
【図２０】
2008097130.tif 000022
【図２１】
2008097130.tif 000023
【図２２】
2008097130.tif 000024
【図２３】
2008097130.tif 000025
【図２４】
2008097130.tif 000026
【図２５】
2008097130.tif 000027
【図２６】
2008097130.tif 000028