(57)【特許請求の範囲】
【請求項１】
解析対象の回路グラフをブロックベース解析して、前記回路グラフの遅延分布を見積もる遅延解析の実行をコンピュータに支援させる遅延解析支援プログラムであって、
前記コンピュータを、
前記回路グラフの中から、複数の信号が入力される一のノードを検出する検出手段、
前記検出手段によって検出された一のノードに接続された前段のノード群の遅延分布に基づいて、前記一のノードの遅延分布の見積もり誤差に関する予測値を算出する予測値算出手段、
前記予測値算出手段によって算出された予測値が所定の閾値以上となるか否かを判定する判定手段、
前記判定手段によって前記予測値が閾値以上と判定された場合、モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出する遅延算出手段、
前記遅延算出手段によって算出された算出結果を出力する出力手段、
として機能させることを特徴とする遅延解析支援プログラム。
【請求項２】
前記予測値算出手段は、
前記前段のノード群の遅延の上限値のばらつきを表わす上限遅延分布と、前記前段のノード群の遅延の下限値のばらつきを表わす下限遅延分布とを用いて、前記予測値を算出することを特徴とする請求項１に記載の遅延解析支援プログラム。
【請求項３】
前記判定手段は、
前記一のノードがクリティカルパスに含まれるか否かを判定し、
前記遅延算出手段は、
前記判定手段によって前記一のノードがクリティカルパスに含まれると判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出することを特徴とする請求項１または２に記載の遅延解析支援プログラム。
【請求項４】
前記判定手段は、
前記一のノードの遅延分布に関するパラメータの変化割合を示す素子感度が所定の閾値以上であるか否かを判定し、
前記遅延算出手段は、
前記判定手段によって前記素子感度が閾値以上と判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出することを特徴とする請求項１〜３のいずれか一つに記載の遅延解析支援プログラム。
【請求項５】
解析対象の回路グラフをブロックベース解析して、前記回路グラフの遅延分布を見積もる遅延解析を支援する遅延解析支援装置であって、
前記回路グラフの中から、複数の信号が入力される一のノードを検出する検出手段と、
前記検出手段によって検出された一のノードに接続された前段のノード群の遅延分布に基づいて、前記一のノードの遅延分布の見積もり誤差に関する予測値を算出する予測値算出手段と、
前記予測値算出手段によって算出された予測値が所定の閾値以上となるか否かを判定する判定手段と、
前記判定手段によって前記予測値が閾値以上と判定された場合、モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出する遅延算出手段と、
前記遅延算出手段によって算出された算出結果を出力する出力手段と、
を備えることを特徴とする遅延解析支援装置。
【請求項６】
コンピュータを用いて解析対象の回路グラフをブロックベース解析して、前記回路グラフの遅延分布を見積もる遅延解析を支援する遅延解析支援方法であって、
前記コンピュータが、
前記回路グラフの中から、複数の信号が入力される一のノードを検出し、
検出された前記一のノードに接続された前段のノード群の遅延分布に基づいて、前記一のノードの遅延分布の見積もり誤差に関する予測値を算出し、
算出された前記予測値が所定の閾値以上となるか否かを判定し、
前記予測値が閾値以上と判定された場合、モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出し、
算出された前記遅延分布を出力する、
ことを特徴とする遅延解析支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、解析対象の回路遅延を統計的に見積もる遅延解析を支援する遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法に関する。
【背景技術】
【０００２】
近年、ＬＳＩの微細化にともなって、プロセスのばらつき、電源電圧の低下、クロストークなどの統計的要因の影響が大きくなり、回路遅延の変動が増大している。従来の静的遅延解析（ＳＴＡ）では、これらの回路遅延の変動は遅延マージンとして余分に確保されているが、遅延マージンの増大化のためタイミング設計が困難となってきている。
【０００３】
そこで、統計的要因を考慮して回路遅延を見積もることにより、不要な遅延マージンを低減させる統計的遅延解析（ＳＳＴＡ）への要求が高まってきている。統計的遅延解析手法としては、例えば、回路グラフをトポロジカルに走査して、回路グラフ内の各ノードの遅延分布を統計的に求めるブロックベース解析手法が知られている。このブロックベース解析によれば、回路全体を高速に解析することができる。
【０００４】
一方、ブロックベース解析では、複数の信号が合流するノードの真の遅延分布を正確に求めることは非常に困難である。このため、統計的ＭＡＸ演算を用いて近似的にそのノードの遅延分布を見積もっている。ところが、統計的ＭＡＸ演算による見積もり誤差が大きくなり、遅延解析の精度が低下してしまう場合がある。
【０００５】
そこで、ブロックベース解析で実施される統計的ＭＡＸ演算の見積もり精度を向上させる手法が開示されている（たとえば、下記非特許文献１〜３参照。）。これらの手法によれば、複数の信号が合流するノードの遅延分布を正確に見積もることができ、遅延解析の精度を向上させることができる。
【０００６】
【非特許文献１】Ｃ．Ｖｉｓｗｅｓｗａｒｉａｈ，ｅｔ．ａｌ：“Ｆｉｒｓｔ−ｏｒｄｅｒ  ｉｎｃｒｅｍｅｎｔａｌ  ｂｌｏｃｋｂａｓｅｄ  ｓｔａｔｉｓｔｉｃａｌ  ｔｉｍｉｎｇ  ａｎａｌｙｓｉｓ”，  Ｉｎ  Ｐｒｏｃ．ｏｆ  ｔｈｅ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ  Ｃｏｎｆ．，ｐａｇｅｓ  ３３１-３３６，２００４．
【非特許文献２】Ｈ．Ｃｈａｎｇ，ｅｔ．ａｌ：“Ｓｔａｔｉｓｔｉｃａｌ  ｔｉｍｉｎｇ  ａｎａｌｙｓｉｓ  ｃｏｎｓｉｄｅｒｉｎｇ  ｓｐａｔｉａｌ  ｃｏｒｒｅｌａｔｉｏｎｓ  ｕｓｉｎｇ  ａ  ｓｉｎｇｌｅ  ｐｅｒｔｌｉｋｅ  ｔｒａｖｅｒｓａｌ”，  Ｉｎ  Ｐｒｏｃ．  Ｉｎｔｌ．  Ｃｏｎｆ．  ｏｎ  Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ，  ｐａｇｅｓ  ６２１-６２５，２００３．
【非特許文献３】Ｈ．Ｚｈｏｕ，ｅｔ．ａｌ：“Ｎｅｗ  Ｂｌｏｃｋ−ｂａｓｅｄ  Ｓｔａｔｉｓｔｉｃａｌ  Ｔｉｍｉｎｇ  Ａｎａｌｙｓｉｓ  Ａｐｐｒｏａｃｈｅｓ  ｗｉｔｈｏｕｔ  Ｍｏｍｅｎｔ  Ｍａｔｃｈｉｎｇ”，Ｉｎ  Ｐｒｏｃ．ｏｆ  ｔｈｅ  １２ｔｈ  Ａｓｉａ  ａｎｄ  Ｓｏｕｔｈ  Ｐａｃｉｆｉｃ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ  Ｃｏｎｆ．，  ｐａｇｅｓ  ４６２−４６７，２００７
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術によれば、複数の信号が合流するノードの遅延分布を正確に求めるための計算が複雑なものとなり、ブロックベース解析の高速性を相殺してしまう場合がある。これにより、遅延解析にかかる作業時間が増大し、ひいては設計期間の長期化を招くという問題があった。
【０００８】
また、ブロックベース解析の替わりに、回路遅延を正確に見積もることができるモンテカルロシミュレーションを適用することも考えられる。しかし、回路規模に応じて、計算時間および使用メモリ量が指数関数的に増大することが想定される。したがって、大規模回路には適用することが困難であるという問題があった。
【０００９】
この発明は、上述した従来技術による問題点を解消するため、高速かつ高精度な遅延解析をおこなうことにより、設計者の負担軽減および設計期間の短縮化を図る遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法は、解析対象の回路グラフをブロックベース解析して、前記回路グラフの遅延分布を見積もる遅延解析を支援する遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法であって、前記回路グラフの中から、複数の信号が入力される一のノードを検出し、検出された一のノードに接続された前段のノード群の遅延分布に基づいて、前記一のノードの遅延分布の見積もり誤差に関する予測値を算出し、算出された予測値が所定の閾値以上となるか否かを判定し、判定された判定結果を出力することを要件とする。
【００１１】
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法は、前記前段のノード群の遅延の上限値のばらつきを表わす上限遅延分布と、前記前段のノード群の遅延の下限値のばらつきを表わす下限遅延分布とを用いて、前記予測値を算出することとしてもよい。
【００１２】
これらの遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法によれば、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードを特定することができる。
【００１３】
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法は、前記予測値が閾値以上と判定された場合、モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出し、算出された算出結果を出力することとしてもよい。
【００１４】
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法によれば、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードを通過するパスからなる部分回路の遅延分布を、モンテカルロシミュレーションで自動的に求めることができる。
【００１５】
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法は、さらに、前記一のノードがクリティカルパスに含まれるか否かを判定し、前記予測値が閾値以上で、かつ、前記一のノードがクリティカルパスに含まれると判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出することとしてもよい。
【００１６】
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法によれば、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードのうち、回路遅延に与える影響が大きいクリティカルパス上に存在するノードを通過するパスからなる部分回路の遅延分布を、モンテカルロシミュレーションで自動的に求めることができる。
【００１７】
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法は、さらに、前記一のノードの遅延分布に関するパラメータの変化割合を示す素子感度が所定の閾値以上であるか否かを判定し、前記予測値が閾値以上で、かつ、前記素子感度が閾値以上と判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出することとしてもよい。
【００１８】
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法によれば、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードのうち、回路遅延の改善可能性が高いノードを通過するパスからなる部分回路の遅延分布を、モンテカルロシミュレーションで自動的に求めることができる。
【００１９】
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法は、前記予測値が閾値以上と判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを含むサブツリーの遅延分布を算出することとしてもよい。
【００２０】
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法によれば、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードを含むサブツリーの遅延分布を、モンテカルロシミュレーションで自動的に求めることができる。
【００２１】
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法は、前記予測値が閾値以上と判定された場合、前記回路グラフの遅延分布を算出する遅延解析の実行を、前記ブロックベース解析からモンテカルロシミュレーションに切り替え、切り替えられた結果、前記ブロックベース解析から得られた前記前段のノード群の遅延分布を用いて、前記モンテカルロシミュレーションを実行することにより、前記一のノードを含むサブツリーの遅延分布を算出し、算出された算出結果を出力することとしてもよい。
【００２２】
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法によれば、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードの前段ノードの遅延分布が見積もられた時点で、ブロックベース解析を打ち切って、それ以降の回路遅延をモンテカルロシミュレーションで見積もることができる。
【００２３】
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法は、前記ブロックベース解析から前記モンテカルロシミュレーションに切り替えられた結果、前記前段のノード群の遅延分布を用いて、前記モンテカルロシミュレーションを実行することにより、前記一のノードの遅延分布を算出することとしてもよい。
【００２４】
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法によれば、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードの前段ノードの遅延分布が見積もられた時点で、ブロックベース解析を打ち切って、そのノードの遅延分布をモンテカルロシミュレーションで見積もることができる。
【００２５】
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法は、前記一のノードの遅延分布が算出された結果、前記回路グラフの遅延分布を算出する遅延解析の実行を、前記モンテカルロシミュレーションから前記ブロックベース解析に切り替え、切り替えられた結果、前記一のノードの遅延分布を用いて、前記ブロックベース解析を実行することにより、前記一のノードよりも後段のノードの遅延分布を算出することとしてもよい。
【００２６】
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法によれば、回路グラフ内のノード群のうち、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードのみをモンテカルロシミュレーションで見積もることができる。
【発明の効果】
【００２７】
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法によれば、高速かつ高精度な遅延解析をおこなうことにより、設計者の負担軽減および設計期間の短縮化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２８】
以下に添付図面を参照して、この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法の好適な実施の形態を詳細に説明する。
【００２９】
（ブロックベース解析）
まず、本実施の形態にかかるブロックベース解析について説明する。ブロックベース解析とは、解析対象の回路グラフをトポロジカルに走査することにより、回路グラフ内の各ノードの遅延分布を算出する解析手法である。このブロックベース解析によれば、回路全体を高速に解析することができる。
【００３０】
図１は、回路グラフの一例を示す説明図である。図１において、回路グラフ１００は、解析対象となる回路を構成する回路素子（例えば、バッファ、ＡＮＤゲートなど）がノードＮ１〜Ｎ６としてグラフ化された有向グラフである。図１中、レベルＬ０〜Ｌ４は、始点Ｓから各ノードＮ１〜Ｎ６までの距離を示している。なお、終点Ｇは、ノードＮ６の出力ピンとする。
【００３１】
また、各エッジＥ１〜Ｅ９に付されている数値は、ノード間の信号の伝達時間（遅延）を示している。ここでは、ノード間の遅延を確率密度分布ではなく固定値によって表現して、ブロックベース解析の解析手順を説明する。また、初期設定として、信号の伝達開始時刻（始点Ｓにおける遅延）を「０」とする。
【００３２】
回路全体の遅延を求める場合、回路グラフ１００の始点Ｓから終点Ｇまでの信号の到達時間をブロックベース解析によって求める。まず、レベルＬ１のノードＮ１，Ｎ２の遅延を求める。ノードＮ１，Ｎ２の遅延値は、例えば、下記式（１）および（２）によって求めることができる。
【００３３】
ノードＮ１の遅延＝（始点Ｓにおける遅延）＋（エッジＥ１の遅延）＝１０  …（１）
ノードＮ２の遅延＝（始点Ｓにおける遅延）＋（エッジＥ２の遅延）＝５    …（２）
【００３４】
このあと、レベルＬ２のノードＮ３の遅延分布を求める。ノードＮ３の遅延は、例えば、下記式（３）によって求めることができる。
【００３５】
ノードＮ３の遅延＝ｍａｘ｛（ノードＮ１の遅延）＋（エッジＥ３の遅延），（ノードＮ２の遅延）＋（エッジＥ４の遅延）｝＝ｍａｘ（３０，１５）＝３０        …（３）
【００３６】
以降同様にして、レベルＬ３のノードＮ４，Ｎ５およびレベルＬ４のノードＮ６（終点Ｇ）の遅延を逐次的に求める。このように、レベルＬ０〜Ｌ４に従って、各ノードＮ１〜Ｎ６の遅延を求めることにより、回路グラフ１００の始点Ｓから終点Ｇまでの信号の伝達時間、すなわち、回路全体の遅延を求めることができる。
【００３７】
ところで、上述の例では、説明のためノード間（エッジＥ１〜Ｅ９）の遅延を固定値によって表現したが、本実施の形態では、統計的要因を考慮するためノード間の遅延を確率密度分布によって表現する。そして、統計的ＳＵＭ演算および統計的ＭＡＸ演算などを用いて、各ノードＮ１〜Ｎ６の遅延を統計的に求める。
【００３８】
ここで、統計的ＳＵＭ演算とは、信号が直列に伝播するときに用いる演算であり、例えば、畳み込み積分を用いてバッファやインバータなどの１入力のゲートの出力ピンの遅延分布を見積もる手法である。統計的ＭＡＸ演算とは、信号が合流するときに用いる演算であり、例えば、複数の信号の遅延の最大値を統計的に算出することで、ＮＡＮＤゲートなどの複数入力のゲートの出力ピンの遅延分布を近似的に求める手法である。
【００３９】
ところが、［背景技術］で説明したように、複数の信号が合流するノード（例えば、ノードＮ３）では、遅延分布を近似的に求めるため統計的ＭＡＸ演算による見積もり誤差が発生してしまう。特に、統計的ＭＡＸ演算の性質から、入力される遅延分布がほぼ同程度の場合には、統計的ＭＡＸ演算による見積もり誤差が増大してしまう。
【００４０】
図２は、従来の問題点を示す説明図である。図２に示すように、ノードＮ（ＡＮＤゲート）に入力される信号の遅延分布Ｐａ，Ｐｂがほぼ同程度の場合には、ノードＮの真の遅延分布Ｐｃに対する、統計的ＭＡＸ演算から得られるノードＮの遅延分布Ｐｄの見積もり誤差が大きくなる。この見積もり誤差が増大すると、遅延解析の精度が低下してしまう。
【００４１】
そこで、本実施の形態では、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードを通過するパスからなる部分回路の遅延分布を、ブロックベース解析の替わりに、モンテカルロシミュレーションで求めることにより遅延解析の高精度化を図る。
【００４２】
また、クリティカルパスの遅延は、クリティカルではないパスの遅延に比べて、回路全体の遅延に与える影響が大きく、回路の遅延分布の平均値に対して支配的になる傾向がある。すなわち、クリティカルパスの遅延をどれだけ正確に見積もれるかが、遅延解析の精度を左右することとなる。
【００４３】
図３は、パスの遅延分布を示す説明図である。図３において、ノードＮは、クリティカルパス３１０，３２０、およびクリティカルではないパス３３０に含まれるＡＮＤゲートを表わしている。遅延分布Ｐｅ，Ｐｆは、クリティカルパス３１０，３２０の遅延分布である。遅延分布Ｐｇは、パス３３０の遅延分布である。遅延分布Ｐｈは、回路全体の遅延分布である。
【００４４】
図３に示すように、クリティカルパス３１０，３２０の遅延分布Ｐｅ，Ｐｆは、パス３３０の遅延分布Ｐｇに比べて、回路全体の遅延分布Ｐｈに与える影響が大きく、遅延分布Ｐｈの平均値ｍｈに対して支配的になっている。
【００４５】
そこで、本実施の形態では、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測され、かつ、そのノードがクリティカルパス上に存在する場合には、そのノードを通過するパスからなる部分回路の遅延分布を、ブロックベース解析の替わりに、モンテカルロシミュレーションで求めることにより遅延解析の高精度化を図る。
【００４６】
（遅延解析支援装置のハードウェア構成）
まず、本実施の形態にかかる遅延解析支援装置のハードウェア構成について説明する。図４は、本実施の形態にかかる遅延解析支援装置のハードウェア構成を示す説明図である。
【００４７】
図４において、遅延解析支援装置４００は、コンピュータ本体４１０と、入力装置４２０と、出力装置４３０と、から構成されており、不図示のルータやモデムを介してＬＡＮ，ＷＡＮやインターネットなどのネットワーク４４０に接続可能である。
【００４８】
コンピュータ本体４１０は、ＣＰＵ，メモリ，インターフェースを有する。ＣＰＵは、遅延解析支援装置４００の全体の制御を司る。メモリは、ＲＯＭ，ＲＡＭ，ＨＤ，光ディスク４１１，フラッシュメモリから構成される。メモリはＣＰＵのワークエリアとして使用される。
【００４９】
また、メモリには各種プログラムが格納されており、ＣＰＵからの命令に応じてロードされる。ＨＤおよび光ディスク４１１はディスクドライブによりデータのリード／ライトが制御される。また、光ディスク４１１およびフラッシュメモリはコンピュータ本体４１０に対し着脱自在である。インターフェースは、入力装置４２０からの入力、出力装置４３０への出力、ネットワーク４４０に対する送受信の制御をおこなう。
【００５０】
また、入力装置４２０としては、キーボード４２１、マウス４２２、スキャナ４２３などがある。キーボード４２１は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス４２２は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ４２３は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体４１０内のメモリに格納される。なお、スキャナ４２３にＯＣＲ機能を持たせてもよい。
【００５１】
また、出力装置４３０としては、ディスプレイ４３１、スピーカ４３２、プリンタ４３３などがある。ディスプレイ４３１は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、スピーカ４３２は、効果音や読み上げ音などの音声を出力する。また、プリンタ４３３は、画像データや文書データを印刷する。
【００５２】
（遅延解析支援装置の機能的構成）
つぎに、遅延解析支援装置の機能的構成について説明する。図５は、遅延解析支援装置の機能的構成を示すブロック図である。図５において、遅延解析支援装置４００は、検出部５０１と、予測値算出部５０２と、判定部５０３と、出力部５０４と、遅延算出部５０５と、抽出部５０６と、決定部５０７と、切替部５０８と、を備えている。
【００５３】
これら各機能５０１〜５０８は、遅延解析支援装置４００の記憶部に記憶された当該機能５０１〜５０８に関するプログラムをＣＰＵに実行させることにより、または、入出力Ｉ／Ｆにより、当該機能を実現することができる。また、各機能５０１〜５０８からの出力データは上記記憶部に保持される。また、図５中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶部から読み込んで、当該機能に関するプログラムをＣＰＵに実行させるものとする。
【００５４】
まず、検出部５０１は、解析対象の回路グラフの中から、複数の信号が入力される一のノードを検出する機能を有する。回路グラフとは、例えば、解析対象回路を構成する回路素子がノードとしてグラフ化された有向グラフである。回路グラフ内のノード間は、信号の伝達方向を示すエッジによって接続されている。回路素子は、例えば、バッファ、インバータ、ＡＮＤゲート、ＮＡＮＤゲートなどである。
【００５５】
また、複数の信号が入力される一のノードとは、複数の信号が合流するノードである。具体的には、例えば、ＡＮＤゲートやＮＡＮＤゲートなど複数の入力ピンを有する回路素子を表わすノードである。上記回路グラフは、例えば、遅延解析支援装置４００に直接入力することとしてもよく、また、解析対象回路に関する回路情報から生成することとしてもよい。
【００５６】
回路情報は、例えば、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）記述やネットリストなどの電子データである。回路情報は、不図示の外部装置から取得することとしてもよく、また、ユーザの操作入力、不図示のデータベースやライブラリからの抽出によって取得することとしてもよい。
【００５７】
ここでは、解析対象の回路グラフをトポロジカルに走査することにより、回路グラフ内の各ノードの遅延分布を算出するブロックベース解析を実行する。具体的には、例えば、各回路素子の遅延分布を用いて、回路グラフ内の各ノードにおける累積遅延を統計的に算出する。ここで、各回路素子の遅延分布を保持するセルライブラリについて説明する。
【００５８】
図６は、セルライブラリの記憶内容を示す説明図である。図６において、セルライブラリ６００には、回路素子ごとに、遅延に関する遅延情報６００−１〜６００−ｎを保持している。具体的には、遅延情報６００−１〜６００−ｎは、回路素子ごとに、回路素子名、回路素子タイプおよび遅延分布パラメータを有している。
【００５９】
回路素子名は、回路素子の名称である。回路素子タイプは、例えば、バッファ、インバータ、ＡＮＤ、ＮＡＮＤなどの種別を表わしている。遅延分布パラメータは、回路素子の遅延分布を表わすパラメータであり、平均値ｍ１〜ｍｎおよび標準偏差σ１〜σｎを有している。さらに、遅延情報６００−１〜６００−ｎは、回路素子ごとに、後述する素子感度に関する情報を有することとしてもよい。
【００６０】
ここで、回路素子Ｃｉを例に挙げると、回路素子タイプはＮＡＮＤであり、遅延分布パラメータとして平均値ｍｉおよび標準偏差σｉ（遅延分布Ｑｉ）を有している。ブロックベース解析では、例えば、このセルライブラリ６００の中から、回路グラフ内の各ノードを表わす回路素子の遅延情報６００−１〜６００−ｎを抽出し、各ノードの遅延分布（例えば、遅延分布Ｑｉ）を用いて、回路遅延を統計的に算出することとなる。
【００６１】
上記検出部５０１は、例えば、ブロックベース解析の実行途中において、回路グラフ内のノードの回路素子タイプや接続関係などから複数の信号が入力されるノードを特定し、そのノードを検出する。図１に示した回路グラフ１００を例に挙げると、検出部５０１は、ノードＮ１，Ｎ２からの信号が入力されるノードＮ３を検出することとなる。
【００６２】
予測値算出部５０２は、検出部５０１によって検出された一のノードに接続された前段のノード群の遅延分布に基づいて、一のノードの遅延分布の見積もり誤差に関する予測値を算出する機能を有する。前段のノード群の遅延分布は、前段のノードから出力される各信号の遅延に関する遅延分布である。具体的には、例えば、ブロックベース解析から得られる前段のノードの解析結果である。
【００６３】
ここで、予測値とは、複数の信号が合流するノードの遅延分布が回路全体の遅延分布に与える影響度を示す指標である。すなわち、複数の信号が合流するノードの遅延分布を、統計的ＭＡＸ演算などを用いて近似的に求めるときの見積もり誤差の度合いを予測する値である。
【００６４】
より具体的には、例えば、予測値は、回路遅延の精度を低下させる原因となる一のノードに科される見積もり誤差の大きさに応じた誤差ペナルティを意味している。つまり、この予測値が大きくなると、一のノードの遅延分布が回路の遅延分布に与える影響が大きくなり、遅延解析の精度を低下させてしまう可能性が高い。なお、予測値を算出する算出処理の具体例は図１３〜図１５を用いて後述する。
【００６５】
判定部５０３は、予測値算出部５０２によって算出された予測値が所定の閾値以上となるか否かを判定する機能を有する。所定の閾値は、例えば、図４に示したキーボード４２１やマウス４２２などの入力装置４２０をユーザが操作することで、任意に設定可能である。例えば、過去の解析結果や経験則をもとに、遅延解析の精度が許容できない程度に低下してしまう予測値の値を推測して、その値を閾値に設定する。
【００６６】
出力部５０４は、判定部５０３によって判定された判定結果を出力する機能を有する。具体的には、例えば、予測値算出部５０２によって算出された予測値が所定の閾値以上となる一のノードを特定するノード情報を出力する。このノード情報から、例えば、統計的ＭＡＸ演算による見積もり誤差が大きくなると予測されるノードを特定することができる。
【００６７】
なお、出力部５０４による出力形式は、ディスプレイ４３１での画面表示、プリンタ４３３での印刷出力、メモリへのデータ出力（保存）、外部のコンピュータ装置への送信のいずれであってもよい。
【００６８】
遅延算出部５０５は、判定部５０３によって予測値が閾値以上と判定された場合、モンテカルロシミュレーションを実行することにより、一のノードを通過するパスの遅延分布を算出する機能を有する。モンテカルロシミュレーションとは、例えば、乱数を用いてシミュレーションを繰り返し実行することにより、その結果得られる遅延分布の平均から真の遅延分布を推定する手法である。
【００６９】
つまり、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測された場合に、一のノードを通過するパスの遅延分布をモンテカルロシミュレーションによって求める。これにより、ブロックベース解析では見積もり誤差が大きくなる可能性が高いパスの遅延分布を精度良く見積もることができる。
【００７０】
ここで、遅延算出部５０５による算出処理の具体的な処理内容を説明する。抽出部５０６は、判定部５０３によって予測値が閾値以上と判定された場合、回路グラフの中から、一のノードを通過するパスを抽出する機能を有する。また、決定部５０７は、抽出部５０６によって抽出されたパスからなる部分回路を再解析対象回路に決定する機能を有する。
【００７１】
図７は、再解析対象回路の一例を示す説明図（その１）である。図７において、回路グラフ７００は、解析対象の回路を構成する回路素子がノードＮ７〜Ｎ１２としてグラフ化された有向グラフである。この回路グラフ７００において、複数の信号が入力されるノードＮ９の予測値が閾値以上であるとする。
【００７２】
この場合、抽出部５０６は、回路グラフ７００の中から、予測値が閾値以上であるノードＮ９を通過するパスＰ１およびパスＰ２を抽出する。また、決定部５０７は、抽出部５０６によって抽出されたパスＰ１，Ｐ２からなる部分回路を再解析対象回路７１０に決定する。
【００７３】
そして、遅延算出部５０５は、モンテカルロシミュレーションを実行することにより、決定部５０７によって決定された再解析対象回路７１０の遅延分布を算出する。これにより、例えば、統計的ＭＡＸ演算による見積もり誤差が大きくなると予測されるノードＮ９を通過するパスＰ１，Ｐ２からなる部分回路の遅延分布を精度良く見積もることができる。
【００７４】
具体的には、例えば、図６に示したセルライブラリ６００の中から、再解析対象回路７１０内のノードＮ７〜Ｎ９，Ｎ１２を表わす回路素子の遅延情報６００−１〜６００−ｎを抽出する。そして、抽出された遅延情報６００−１〜６００−ｎ（例えば、遅延分布パラメータ）を用いて、モンテカルロシミュレーションを実行することにより、再解析対象回路７１０の遅延分布を算出することができる。
【００７５】
出力部５０４は、遅延算出部５０５によって算出された算出結果を出力する機能を有する。具体的には、例えば、出力部５０４は、回路グラフ７００に関するブロックベース解析の解析結果とともに、再解析対象回路７１０に関するモンテカルロシミュレーションの解析結果を出力する。これにより、統計的ＭＡＸ演算による見積もり誤差が大きくなると予測されるノードを通過するパスからなる部分回路の遅延分布を正確に表わす解析結果を得ることができる。
【００７６】
また、判定部５０３は、一のノードがクリティカルパスに含まれるか否かを判定する機能を有する。クリティカルパスとは、パスの遅延が目標周波数を達成するための制約を満たさないパスである。回路グラフ内のクリティカルパスは、例えば、既存技術であるＳＴＡまたはＳＳＴＡ手法を用いたタイミング解析の解析結果から検出することができる。
【００７７】
また、判定部５０３は、予測値算出部５０２によって算出された予測値が所定の閾値以上で、かつ、一のノードがクリティカルパスに含まれるか否かを判定することとしてもよい。つまり、統計的ＭＡＸ演算による見積もり誤差が大きくなると予測され、かつ、回路全体の遅延に大きな影響を与える可能性が高いクリティカルパスに含まれるか否かを判定する。
【００７８】
さらに、遅延算出部５０５は、判定部５０３によって予測値が閾値以上で、かつ、一のノードがクリティカルパスに含まれると判定された場合、モンテカルロシミュレーションを実行することにより、一のノードを通過するパスの遅延分布を算出することとしてもよい。
【００７９】
図８は、再解析対象回路の一例を示す説明図（その２）である。図８において、回路グラフ８００は、解析対象の回路を構成する回路素子がノードＮ１３〜Ｎ２１としてグラフ化された有向グラフである。この回路グラフ８００において、複数の信号が入力されるノードＮ１６およびノードＮ１９の予測値が閾値以上であるとする。また、図８中、Ｐ３は、クリティカルパスである。
【００８０】
この場合、抽出部５０６は、回路グラフ８００の中から、予測値が閾値以上で、かつ、クリティカルパスＰ３に含まれるノードＮ１６を通過するパスＰ３，Ｐ４を抽出する。また、決定部５０７は、抽出部５０６によって抽出されたパスＰ３，Ｐ４からなる部分回路を再解析対象回路８１０に決定する。そして、遅延算出部５０５は、モンテカルロシミュレーションを実行することにより、再解析対象回路８１０の遅延分布を算出する。
【００８１】
このように、予測値が閾値以上で、かつ、クリティカルパスに含まれるノードＮ１６を通過するパスを再解析対象回路８１０に決定することにより、単に予測値が閾値以上のノードＮ１６，Ｎ１９を通過するパスからなる部分回路を再解析対象回路に決定する場合に比べて、再解析対象の回路規模を小さくし、遅延解析の高速化を図ることができる。
【００８２】
また、判定部５０３は、一のノードの遅延分布に関するパラメータの変化割合を示す素子感度が所定の閾値以上であるか否かを判定する機能を有する。ここで、素子感度とは、一のノードを表わす回路素子の遅延分布の平均値を微小修正（例えば、１［ｐｓ］）するときの回路遅延の変化割合のことである。
【００８３】
すなわち、この素子感度が大きければ大きいほど、少ない修正作業で解析対象の回路遅延を大幅に改善することができる。一のノードの素子感度は、不図示のデータベースやセルライブラリ６００からの抽出によって取得することとしてもよい。なお、素子感度は、例えば、既存技術であるＳＴＡまたはＳＳＴＡ手法によるタイミング解析から求めることができる。素子感度を求める具体的な手法は、例えば、特開２００６−２６８４７９号公報を参考にすることができる。
【００８４】
また、判定部５０３は、予測値が所定の閾値以上で、かつ、素子感度が所定の閾値以上か否かを判定することとしてもよい。つまり、統計的ＭＡＸ演算による見積もり誤差の度合いが大きくなると予測され、かつ、回路遅延の改善可能性が高いノードであるか否かを判定する。
【００８５】
さらに、遅延算出部５０５は、判定部５０３によって予測値が所定の閾値以上で、かつ、素子感度が閾値以上と判定された場合、モンテカルロシミュレーションを実行することにより、一のノードを通過するパスの遅延分布を算出することとしてもよい。
【００８６】
図９は、再解析対象回路の一例を示す説明図（その３）である。ここでは、この回路グラフ８００において、ノードＮ１６およびノードＮ１９の予測値が閾値以上であり、また、ノードＮ１９の素子感度が閾値以上であるとする。
【００８７】
この場合、抽出部５０６は、回路グラフ８００の中から、予測値が閾値以上で、かつ、素子感度が閾値以上となるノードＮ１９を通過するパスＰ４，Ｐ５を抽出する。また、決定部５０７は、抽出部５０６によって抽出されたパスＰ４，Ｐ５からなる部分回路を再解析対象回路９００に決定する。そして、遅延算出部５０５は、モンテカルロシミュレーションを実行することにより、再解析対象回路９００の遅延分布を算出する。
【００８８】
このように、予測値が閾値以上で、かつ、素子感度が閾値以上となるノードＮ１９を通過するパスを再解析対象回路９００に決定することにより、単に予測値が閾値以上のノードＮ１６，Ｎ１９を通過するパスを再解析対象回路に決定する場合に比べて、再解析対象の回路規模を小さくし、遅延解析の高速化を図ることができる。
【００８９】
また、遅延算出部５０５は、例えば、判定部５０３によって予測値が所定の閾値以上で、かつ、感度が閾値以上で、かつ、クリティカルパスに含まれると判定された場合、モンテカルロシミュレーションを実行することにより、一のノードを通過するパスの遅延分布を算出することとしてもよい。これによれば、上述の例よりも再解析対象の回路規模をさらに小さくし、遅延解析のより効果的な高速化を図ることができる。
【００９０】
また、遅延算出部５０５は、判定部５０３によって予測値が閾値以上と判定された場合、モンテカルロシミュレーションを実行することにより、一のノードを含むサブツリーの遅延分布を算出する機能を有する。ここで、サブツリーとは、一のノードと当該一のノードよりも後段のノード群とからなるツリー状の部分回路である。
【００９１】
具体的には、例えば、ブロックベース解析から得られる一のノードの前段のノードまでの遅延を表わす遅延分布を入力として、モンテカルロシミュレーションを実行することにより、一のノードを含むサブツリーの遅延分布を算出する。
【００９２】
また、上述したように、遅延算出部５０５は、予測値が閾値以上か否かの判定結果だけではなく、クリティカルパスに含まれるか否か、さらには、素子感度が閾値以上か否かの判定結果に応じて、モンテカルロシミュレーションを実行することにより、一のノードを含むサブツリーの遅延分布を算出することとしてもよい。
【００９３】
切替部５０８は、判定部５０３によって予測値が閾値以上と判定された場合、回路グラフの遅延分布を算出する遅延解析の実行を、ブロックベース解析からモンテカルロシミュレーションに切り替える機能を有する。すなわち、ブロックベース解析の実行途中において、予測値が閾値以上と判定された場合、ブロックベース解析を打ち切って、モンテカルロシミュレーションに切り替える。
【００９４】
また、遅延算出部５０５は、切替部５０８によってブロックベース解析からモンテカルロシミュレーションに切り替えられた結果、モンテカルロシミュレーションを実行することにより、一のノードを含むサブツリーの遅延分布を算出する機能を有する。具体的には、例えば、ブロックベース解析から得られる一のノードの前段のノードの遅延分布を入力として、モンテカルロシミュレーションを実行することにより、一のノードを含むサブツリーの遅延分布を算出する。
【００９５】
図１０は、切替処理の概要を示す説明図（その１）である。この回路グラフ１０００において、ノードＮ２４の予測値が閾値以上であるとする。この場合、切替部５０８は、ノードＮ２４の前段のノードＮ２２，Ｎ２３の遅延分布が算出された時点で、ブロックベース解析を打ち切って、回路グラフ１０００の遅延分布を算出する遅延解析の実行を、ブロックベース解析からモンテカルロシミュレーションに切り替える。
【００９６】
また、抽出部５０６は、回路グラフ１０００の中から、ノードＮ２４を含むサブツリー１０１０を抽出する。このサブツリー１０１０は、ノードＮ２４からノードＮ２５に辿り着くまでのパスからなる部分回路である。そして、遅延算出部５０５は、モンテカルロシミュレーションを実行することにより、抽出部５０６によって抽出されたサブツリー１０１０の遅延分布を算出する。
【００９７】
これにより、例えば、統計的ＭＡＸ演算による見積もり誤差が大きくなると予測されるノードＮ２４を含むサブツリー１０１０の遅延分布を精度良く見積もることができる。また、ノードＮ２４の予測値が閾値以上と判定された場合に、ブロックベース解析を打ち切ることにより、サブツリー１０１０の遅延分布を算出するためのブロックベース解析にかかる解析処理を削減することができる。
【００９８】
また、遅延算出部５０５は、切替部５０８によって切り替えられた結果、モンテカルロシミュレーションを実行することにより、一のノードの遅延分布を算出することとしてもよい。すなわち、ブロックベース解析の実行途中において、予測値が閾値以上と判定された場合、ブロックベース解析を打ち切って、一のノードの遅延分布をモンテカルロシミュレーションによって算出する。
【００９９】
さらに、切替部５０８は、遅延算出部５０５によって一のノードの遅延分布が算出された結果、回路グラフの遅延分布を算出する遅延解析の実行を、モンテカルロシミュレーションからブロックベース解析に切り替えることとしてもよい。そして、遅延算出部５０５は、切替部５０８によってモンテカルロシミュレーションからブロックベース解析に切り替えられた結果、一のノードの遅延分布を用いて、ブロックベース解析を実行することにより、一のノードよりも後段のノードの遅延分布を算出することとしてもよい。
【０１００】
図１１は、切替処理の概要を示す説明図（その２）である。この回路グラフ１１００において、ノードＮ２８の予測値が閾値以上であるとする。この場合、切替部５０８は、ノードＮ２８の前段のノードＮ２６，Ｎ２７の遅延分布が算出された時点で、ブロックベース解析を打ち切って、回路グラフ１１００の遅延分布を算出する遅延解析の実行を、ブロックベース解析からモンテカルロシミュレーションに切り替える。
【０１０１】
また、抽出部５０６は、回路グラフ１１００の中から、ノードＮ２８を抽出する。そして、遅延算出部５０５は、モンテカルロシミュレーションを実行することにより、抽出部５０６によって抽出されたノードＮ２８の遅延分布を算出する。
【０１０２】
このあと、切替部５０８は、回路グラフ１１００の遅延分布を算出する遅延解析の実行を、モンテカルロシミュレーションからブロックベース解析に切り替える。そして、遅延算出部５０５は、ノードＮ２８の遅延分布を用いて、ブロックベース解析を実行することにより、ノードＮ２８よりも後段のノード（終点Ｇまで）の遅延分布を算出する。
【０１０３】
このように、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードＮ２８の遅延分布のみをモンテカルロシミュレーションで算出することにより、遅延解析の高速化および高精度化を図ることができる。
【０１０４】
なお、出力部５０４によって出力される遅延算出部５０５の算出結果は、解析対象の回路グラフの遅延分布であってもよく、また、回路グラフ内のパスごとの遅延分布であってもよい。さらに、遅延解析の実行手段（ブロックベース解析、モンテカルロシミュレーション）に応じた算出結果をそれぞれ出力することとしてもよい。
【０１０５】
また、出力部５０４は、解析対象の回路グラフのうち、決定部５０７によって決定された再解析対象回路を表わす再解析対象回路グラフを出力することとしてもよい。図１２は、ディスプレイの表示画面の一例を示す説明図である。図１２において、ディスプレイ４３１には、図８に示した回路グラフ８００に関する再解析対象回路を表わす再解析対象回路グラフ１２００が表示されている。
【０１０６】
これによれば、複数の信号が合流するノードＮ１６の予測値が閾値以上となっていることが分かる。さらに、ノードＮ１６を通過するパスからなる再解析対象回路グラフ１２００がモンテカルロシミュレーションによる解析対象となることが分かる。
【０１０７】
また、ディスプレイ４３１において、例えば、キーボード４２１やマウス４２２を操作することにより、カーソルＣを移動させてＹｅｓボタンＢ１をクリックすると、モンテカルロシミュレーションによる遅延解析の実行を開始することができる。
【０１０８】
一方で、カーソルＣを移動させてＮｏボタンＢ２をクリックすると、例えば、再解析対象回路グラフ１２００に関する回路情報がＨＤや光ディスク４１１などに記録されることとしてもよく、また、モンテカルロシミュレーションによる遅延解析の実行を中止することとしてもよい。さらに、光ディスク４１１などに記録された再解析対象回路グラフ１２００に関する回路情報を用いて、外部のコンピュータ装置で再解析対象回路グラフ１２００のモンテカルロシミュレーションを実行することとしてもよい。
【０１０９】
（予測値算出部による算出処理）
ここで、予測値算出部５０２による算出処理の具体例について説明する。予測値算出部５０２は、例えば、前段のノード群の遅延の上限値のばらつきを表わす上限遅延分布と、前段のノード群の遅延の下限値のばらつきを表わす下限遅延分布とを用いて、予測値を算出することができる。
【０１１０】
上限遅延分布および下限遅延分布は、例えば、外部の装置から取得することとしてもよく、また、不図示のデータベースやライブラリからの抽出によって取得することとしてもよい。さらに、既存の手法を用いて一のノードの前段のノード群の遅延分布から求めることとしてもよい。
【０１１１】
なお、上限遅延分布および下限遅延分布の具体的な求め方は、例えば、Ａｓｅｅｍ  Ａｇａｒｗａｌ，Ｄａｖｉｄ  Ｂｌａａｕｗ，Ｖｌａｄｉｍｉｒ  Ｚｏｌｏｔｏｖ，Ｓａｒｍａ  Ｖｒｕｄｈｕｌａ“Ｓｔａｔｉｓｔｉｃａｌ  Ｔｉｍｉｎｇ  Ａｎａｌｙｓｉｓ  ｕｓｉｎｇ  Ｂｏｕｎｄｓ”  “Ｉｎ  Ｐｒｏｃ．ｏｆ  ＤＡＴＥ，ｐａｇｅ  ６２−６７”  ２００３  ＩＥＥＥを参照することができる。
【０１１２】
ここで、予測値算出部５０２は、例えば、前段のノード群の遅延の上限値のばらつきを表わす上限遅延分布の平均値と、前段のノード群の遅延の下限値のばらつきを表わす下限遅延分布の平均値とを用いて、予測値を算出することができる。
【０１１３】
図１３は、予測値算出手法の概要を示す説明図（その１）である。図１３において、上限遅延分布Ｐｕｐｐｅｒは、ノードＮの前段のノード群Ｎｘ，Ｎｙ，Ｎｚの遅延の上限値のばらつきを表わす確率密度分布である。また、下限遅延分布Ｐｌｏｗｅｒは、ノードＮの前段のノード群Ｎｘ，Ｎｙ，Ｎｚの遅延の下限値のばらつきを表わす確率密度分布である。
【０１１４】
ここで、上限遅延分布Ｐｕｐｐｅｒの平均値をｍｕｐｐｅｒ、下限遅延分布Ｐｌｏｗｅｒの平均値をｍｌｏｗｅｒとすると、ノードＮの遅延分布の見積もり誤差に関する予測値Ｚは、例えば、下記式（４）によって求めることができる。
【０１１５】
Ｚ＝ｍｕｐｐｅｒ−ｍｌｏｗｅｒ                                    …（４）
【０１１６】
また、予測値算出部５０２は、例えば、前段のノード群の遅延の上限値のばらつきを表わす上限遅延分布の平均値および標準偏差と、前段のノード群の遅延の下限値のばらつきを表わす下限遅延分布の平均値および標準偏差とを用いて、予測値を算出することができる。
【０１１７】
図１４は、予測値算出手法の概要を示す説明図（その２）である。図１４において、上限遅延分布Ｐｕｐｐｅｒの標準偏差をσｕｐｐｅｒ、下限遅延分布Ｐｌｏｗｅｒの標準偏差をσｌｏｗｅｒとすると、ノードＮの遅延分布の見積もり誤差に関する予測値Ｚは、例えば、下記式（５）によって求めることができる。ただし、平均値に加算する値（３σｕｐｐｅｒおよび３σｌｏｗｅｒ）は、例えば、平均値とその値との加算値を遅延の最悪値とした場合に、歩留まりが９９％程度となる値である。
【０１１８】
Ｚ＝（ｍｕｐｐｅｒ＋３σｕｐｐｅｒ）−（ｍｌｏｗｅｒ＋３σｌｏｗｅｒ）    …（５）
【０１１９】
また、予測値算出部５０２は、前段のノード群の遅延分布のうち、平均値が最大となる一の遅延分布の平均値から所定範囲内に含まれる当該一の遅延分布とは異なる遅延分布の数を、予測値としてもよい。この所定範囲は、任意に設定可能である。例えば、標準偏差σを用いて、平均値から±３σと設定することができる。
【０１２０】
図１５は、予測値算出手法の概要を示す説明図（その３）である。図１５において、遅延分布Ｐｘ，Ｐｙ，Ｐｚは、ノードＮの前段のノード群Ｎｘ，Ｎｙ，Ｎｚの遅延分布である。また、遅延分布Ｐｘ，Ｐｙ，Ｐｚの平均値は、それぞれｍｘ，ｍｙ，ｍｚ（ｍｘ＞ｍｚ＞ｍｙ）である。
【０１２１】
ここで、上記所定範囲が平均値から±３σと設定されている場合、遅延分布Ｐｘの標準偏差をσｘとすると、遅延分布Ｐｘの平均値ｍｘから±３σｘの範囲内に含まれる遅延分布（ここでは、遅延分布Ｐｚのみ）の数「１」を予測値とする。なお、図１５中、各遅延分布Ｐｘ，Ｐｙ，Ｐｚは、平均値ｍｘ，ｍｙ，ｍｚから適当な範囲内（例えば、平均値から±６σ）で切断されていることとする。
【０１２２】
（遅延解析支援装置の遅延解析処理手順）
つぎに、本実施の形態にかかる遅延解析支援装置４００の遅延解析処理手順について説明する。図１６および図１７は、遅延解析支援装置の遅延解析処理手順の一例を示すフローチャート（その１）である。
【０１２３】
図１６のフローチャートにおいて、まず、遅延解析支援装置４００は、解析対象回路に関する回路情報が入力されるのを待って（ステップＳ１６０１：Ｎｏ）、回路情報が入力された場合（ステップＳ１６０１：Ｙｅｓ）、その回路情報から解析対象の回路グラフを生成する（ステップＳ１６０２）。
【０１２４】
このあと、検出部５０１により、解析対象の回路グラフをトポロジカルに走査して、回路グラフの中からノードを検出する（ステップＳ１６０３）。そして、遅延算出部５０５により、ブロックベース解析を実行して、検出されたノードの遅延分布を算出する（ステップＳ１６０４）。
【０１２５】
つぎに、ステップＳ１６０３において検出されたノードが、複数の信号が入力される一のノードか否かを判断する（ステップＳ１６０５）。ここで、複数の信号が入力される一のノードが検出された場合（ステップＳ１６０５：Ｙｅｓ）、図１７に示すステップＳ１７０１に移行する。
【０１２６】
図１７のフローチャートにおいて、まず、予測値算出部５０２により、検出部５０１によって検出された一のノードに接続された前段のノード群の遅延分布に基づいて、一のノードの遅延分布の見積もり誤差に関する予測値を算出する予測値算出処理を実行する（ステップＳ１７０１）。
【０１２７】
このあと、判定部５０３により、算出された予測値が所定の閾値以上となるか否かを判定する（ステップＳ１７０２）。ここで、予測値が閾値未満であった場合（ステップＳ１７０２：Ｎｏ）、図１６に示したステップＳ１６０６に移行する。
【０１２８】
一方、予測値が閾値以上であった場合（ステップＳ１７０２：Ｙｅｓ）、判定部５０３により、一のノードがクリティカルパスに含まれるか否かを判定する（ステップＳ１７０３）。ここで、一のノードがクリティカルパスに含まれていない場合（ステップＳ１７０３：Ｎｏ）、図１６に示したステップＳ１６０６に移行する。
【０１２９】
一方、一のノードがクリティカルパスに含まれる場合（ステップＳ１７０３：Ｙｅｓ）、判定部５０３により、一のノードの遅延分布に関するパラメータの変化割合を示す素子感度が所定の閾値以上であるか否かを判定する（ステップＳ１７０４）。ここで、素子感度が閾値未満であった場合（ステップＳ１７０４：Ｎｏ）、図１６に示したステップＳ１６０６に移行する。
【０１３０】
一方、素子感度が閾値以上であった場合（ステップＳ１７０４：Ｙｅｓ）、抽出部５０６により、回路グラフの中から一のノードを通過するパスを抽出する（ステップＳ１７０５）。そして、決定部５０７により、抽出されたパスからなる部分回路を再解析対象回路に決定して（ステップＳ１７０６）、図１６に示したステップＳ１６０６に移行する。
【０１３１】
図１６のフローチャートに戻り、ステップＳ１６０５において、複数の信号が入力される一のノードが検出されなかった場合（ステップＳ１６０５：Ｎｏ）、検出部５０１によって検出されていない未検出のノードの有無を判断し（ステップＳ１６０６）、未検出のノードがある場合は（ステップＳ１６０６：Ｙｅｓ）、ステップＳ１６０３に戻って一連の処理を繰り返す。
【０１３２】
一方、未検出のノードがない場合は（ステップＳ１６０６：Ｎｏ）、図１７に示したステップＳ１７０６において決定される再解析対象回路の有無を判断する（ステップＳ１６０７）。ここで、再解析対象回路がある場合（ステップＳ１６０７：Ｙｅｓ）、遅延算出部５０５により、モンテカルロシミュレーションを実行して、決定部５０７によって決定された再解析対象回路の遅延分布を算出する（ステップＳ１６０８）。
【０１３３】
そして、出力部５０４により、ステップＳ１６０４およびステップＳ１６０８において算出された算出結果を出力して（ステップＳ１６０９）、本フローチャートによる一連の処理を終了する。
【０１３４】
一方、ステップＳ１６０７において、再解析対象回路がない場合（ステップＳ１６０７：Ｎｏ）、出力部５０４により、ステップＳ１６０４において算出された算出結果を出力して（ステップＳ１６０９）、本フローチャートによる一連の処理を終了する。
【０１３５】
これにより、統計的ＭＡＸ演算などによる近似解の見積もり誤差が大きくなると予測されるノードのうち、回路遅延に与える影響が大きいクリティカルパス上に存在し、かつ、回路遅延の改善可能性が高いノードを通過するパスからなる部分回路の遅延分布をモンテカルロシミュレーションで自動的に求めることができる。
【０１３６】
つぎに、遅延解析処理手順の他の一例について説明する。図１８は、遅延解析支援装置の遅延解析処理手順の一例を示すフローチャート（その２）である。図１８のフローチャートにおいて、まず、遅延解析支援装置４００は、解析対象回路に関する回路情報が入力されるのを待って（ステップＳ１８０１：Ｎｏ）、回路情報が入力された場合（ステップＳ１８０１：Ｙｅｓ）、その回路情報から解析対象の回路グラフを生成する（ステップＳ１８０２）。
【０１３７】
このあと、検出部５０１により、解析対象の回路グラフをトポロジカルに走査して、回路グラフの中からノードを検出する（ステップＳ１８０３）。そして、検出されたノードが、複数の信号が入力される一のノードか否かを判断する（ステップＳ１８０４）。
【０１３８】
ここで、複数の信号が入力される一のノードが検出された場合（ステップＳ１８０４：Ｙｅｓ）、予測値算出部５０２により、検出部５０１によって検出された一のノードに接続された前段のノード群の遅延分布に基づいて、一のノードの遅延分布の見積もり誤差に関する予測値を算出する予測値算出処理を実行する（ステップＳ１８０５）。
【０１３９】
このあと、判定部５０３により、算出された予測値が所定の閾値以上となるか否かを判定する（ステップＳ１８０６）。ここで、予測値が閾値以上であった場合（ステップＳ１８０６：Ｙｅｓ）、遅延算出部５０５により、モンテカルロシミュレーションを実行して、一のノードの遅延分布を算出する（ステップＳ１８０７）。
【０１４０】
一方、予測値が閾値未満であった場合（ステップＳ１８０６：Ｎｏ）、遅延算出部５０５により、統計的ＭＡＸ演算を用いて、一のノードの遅延分布を算出する（ステップＳ１８０８）。このあと、検出部５０１によって検出されていない未検出のノードの有無を判断し（ステップＳ１８１０）、未検出のノードがある場合は（ステップＳ１８１０：Ｙｅｓ）、ステップＳ１８０３に戻って一連の処理を繰り返す。
【０１４１】
また、ステップＳ１８０４において、複数の信号が入力される一のノードが検出されなかった場合（ステップＳ１８０４：Ｎｏ）、遅延算出部５０５により、統計的ＳＵＭ演算を用いて、ステップＳ１８０３において検出されたノードの遅延分布を算出して（ステップＳ１８０９）、ステップＳ１８１０に移行する。
【０１４２】
そして、ステップＳ１８１０において、未検出のノードがない場合は（ステップＳ１８１０：Ｎｏ）、出力部５０４により、遅延算出部５０５によって算出された算出結果を出力して（ステップＳ１８１１）、本フローチャートによる一連の処理を終了する。
【０１４３】
これにより、統計的ＭＡＸ演算などによる近似解の見積もり誤差が大きくなると予測されるノードのみをモンテカルロシミュレーションで自動的に求めることができる。
【０１４４】
つぎに、遅延解析処理手順のさらに他の一例について説明する。図１９および図２０は、遅延解析支援装置の遅延解析処理手順の一例を示すフローチャート（その３）である。
【０１４５】
図１９のフローチャートにおいて、まず、遅延解析支援装置４００は、解析対象回路に関する回路情報が入力されるのを待って（ステップＳ１９０１：Ｎｏ）、回路情報が入力された場合（ステップＳ１９０１：Ｙｅｓ）、その回路情報から解析対象の回路グラフを生成する（ステップＳ１９０２）。
【０１４６】
このあと、検出部５０１により、解析対象の回路グラフをトポロジカルに走査して、回路グラフの中からノードを検出する（ステップＳ１９０３）。そして、検出されたノードが、複数の信号が入力される一のノードか否かを判断する（ステップＳ１９０４）。
【０１４７】
ここで、複数の信号が入力される一のノードが検出された場合（ステップＳ１９０４：Ｙｅｓ）、予測値算出部５０２により、検出部５０１によって検出された一のノードに接続された前段のノード群の遅延分布に基づいて、一のノードの遅延分布の見積もり誤差に関する予測値を算出する予測値算出処理を実行する（ステップＳ１９０５）。
【０１４８】
このあと、判定部５０３により、算出された予測値が所定の閾値以上となるか否かを判定する（ステップＳ１９０６）。ここで、予測値が閾値以上であった場合（ステップＳ１９０６：Ｙｅｓ）、抽出部５０６により、一のノードを含むサブツリーを抽出する（ステップＳ１９０７）。
【０１４９】
そして、決定部５０７により、抽出部５０６によって抽出されたサブツリーを解析対象外回路に決定する（ステップＳ１９１０）。一方、予測値が閾値未満であった場合（ステップＳ１９０６：Ｎｏ）、遅延算出部５０５により、統計的ＭＡＸ演算を用いて、一のノードの遅延分布を算出する（ステップＳ１９０８）。
【０１５０】
このあと、検出部５０１によって検出されていない未検出のノードの有無を判断し（ステップＳ１９１１）、未検出のノードがある場合は（ステップＳ１９１１：Ｙｅｓ）、ステップＳ１９０３に戻って一連の処理を繰り返す。
【０１５１】
また、ステップＳ１９０４において、複数の信号が入力される一のノードが検出されなかった場合（ステップＳ１９０４：Ｎｏ）、遅延算出部５０５により、統計的ＳＵＭ演算を用いて、ステップＳ１９０３において検出されたノードの遅延分布を算出して（ステップＳ１９０９）、ステップＳ１９１１に移行する。そして、ステップＳ１９１１において、未検出のノードがない場合は（ステップＳ１９１１：Ｎｏ）、図２０に示すステップＳ２００１に移行する。
【０１５２】
図２０のフローチャートにおいて、まず、図１９に示したステップＳ１９１０において決定された全解析対象外回路のうち任意の解析対象外回路に着目する（ステップＳ２００１）。このあと、抽出部５０６により、着目する解析対象外回路の中から任意のノードを抽出する（ステップＳ２００２）。
【０１５３】
ここで、判定部５０３により、抽出されたノードがクリティカルパスに含まれるか否かを判定する（ステップＳ２００３）。ここで、クリティカルパスに含まれている場合（ステップＳ２００３：Ｙｅｓ）、判定部５０３により、上記ノードの遅延分布に関するパラメータの変化割合を示す素子感度が所定の閾値以上であるか否かを判定する（ステップＳ２００４）。
【０１５４】
ここで、素子感度が閾値以上であった場合（ステップＳ２００４：Ｙｅｓ）、抽出部５０６により、回路グラフの中から上記ノードを通過するパスを抽出する（ステップＳ２００５）。そして、決定部５０７により、抽出されたパスからなる部分回路を再解析対象回路に決定する（ステップＳ２００６）。
【０１５５】
このあと、図１９に示したステップＳ１９１０において決定された全解析対象外回路を網羅したか否かを判断し（ステップＳ２００７）、網羅していない場合（ステップＳ２００７：Ｎｏ）、ステップＳ２００１に戻り、未着目の解析対象外回路のうち任意の解析対象外回路に着目して（ステップＳ２００１）、一連の処理を繰り返す。
【０１５６】
一方、ステップＳ２００３においてクリティカルパスに含まれていない場合（ステップＳ２００３：Ｎｏ）、または、ステップＳ２００４において素子感度が閾値未満であった場合には（ステップＳ２００４：Ｎｏ）、着目する解析対象外回路のうち未抽出のノードの有無を判断する（ステップＳ２００８）。
【０１５７】
ここで、未抽出のノードがある場合は（ステップＳ２００８：Ｙｅｓ）、ステップＳ２００２に戻って一連の処理を繰り返す。一方、未抽出のノードがない場合は（ステップＳ２００８：Ｎｏ）、ステップＳ２００７に移行する。
【０１５８】
そして、ステップＳ２００７において、全解析対象外回路を網羅している場合（ステップＳ２００７：Ｙｅｓ）、遅延算出部５０５により、モンテカルロシミュレーションを実行して、ステップＳ２００６において決定部５０７によって決定された再解析対象回路の遅延分布を算出する（ステップＳ２００９）。
【０１５９】
最後に、出力部５０４により、遅延算出部５０５によって算出された算出結果を出力して（ステップＳ２０１０）、本フローチャートによる一連の処理を終了する。
【０１６０】
これにより、統計的ＭＡＸ演算などによる近似解の見積もり誤差が大きくなると予測されるノードを含むサブツリーの遅延分布をモンテカルロシミュレーションで自動的に求めることができる。
【０１６１】
（予測値算出処理手順）
つぎに、図１７に示したステップＳ１７０１（または、図１８に示したステップＳ１８０５、図１９に示したステップＳ１９０５）の予測値算出処理手順について説明する。図２１は、予測値算出処理手順の一例を示すフローチャート（その１）である。図２１のフローチャートにおいて、まず、複数の信号が入力される一のノードの前段のノード群の遅延分布を取得する（ステップＳ２１０１）。
【０１６２】
このあと、取得された前段のノード群の遅延分布に基づいて、前段のノード群の遅延の上限値を統計的に表わす上限遅延分布を算出する（ステップＳ２１０２）。さらに、前段のノード群の遅延分布に基づいて、前段のノード群の遅延の下限値を統計的に表わす下限遅延分布を算出する（ステップＳ２１０３）。
【０１６３】
そして、上限遅延分布の平均値、標準偏差および下限遅延分布の平均値、標準偏差を上記式（４）または（５）に代入することにより、一のノードの遅延分布の見積もり誤差に関する予測値を算出して（ステップＳ２１０４）、図１７に示したステップＳ１７０２に移行する。
【０１６４】
つぎに、予測値算出処理手順の他の一例について説明する。図２２は、予測値算出処理手順の一例を示すフローチャート（その２）である。ここでは、複数の信号が入力される一のノードの前段のノードＮｉ（ｉ＝１，２，…，ｔ）の遅延分布をＰｉ、平均値をｍｉ、標準偏差をσｉとする。なお、αは、任意に設定可能な整数である（例えば、α＝２．５、３．０など）。
【０１６５】
また、前段のノードＮｉ（ｉ＝１，２，…，Ｋ）の遅延分布Ｐｉのうち、平均値ｍｉが最大のものをＰｍａｘとし、その平均値をｍｍａｘ、その標準偏差をσｍａｘとする。さらに、予測値をｅＮ、初期値を「ｅＮ＝０」とする。
【０１６６】
図２２のフローチャートにおいて、まず、複数の信号が入力される一のノードの前段のノードの遅延分布Ｐｉを取得する（ステップＳ２２０１）。このあと、ｉ＝１として（ステップＳ２２０２）、Ｐｉ＝Ｐｍａｘであるか否かを判断する（ステップＳ２２０３）。ここで、Ｐｉ＝Ｐｍａｘではない場合（ステップＳ２２０３：Ｎｏ）、（ｍｉ＋３σｉ）＞（ｍｍａｘ−ασｍａｘ）であるか否かを判断する（ステップＳ２２０４）。
【０１６７】
ここで、（ｍｉ＋３σｉ）＞（ｍｍａｘ−ασｍａｘ）である場合（ステップＳ２２０４：Ｙｅｓ）、ｅＮ＝ｅＮ＋１とする（ステップＳ２２０５）。そして、ｉをインクリメントして（ステップＳ２２０６）、ｉ＞Ｋであるか否かを判断する（ステップＳ２２０７）。ここで、ｉ＞Ｋではない場合（ステップＳ２２０７：Ｎｏ）、ステップＳ２２０３に戻り一連の処理を繰り返す。一方、ｉ＞Ｋである場合（ステップＳ２２０７：Ｙｅｓ）、図１７に示したステップＳ１７０２に移行する。
【０１６８】
また、ステップＳ２２０３において、Ｐｉ＝Ｐｍａｘである場合（ステップＳ２２０３：Ｙｅｓ）、ステップＳ２２０６に移行する。さらに、ステップＳ２２０４において、（ｍｉ＋３σｉ）＞（ｍｍａｘ−ασｍａｘ）ではない場合（ステップＳ２２０４：Ｎｏ）、ステップＳ２２０６に移行する。
【０１６９】
以上説明したように、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードを通過するパスからなる部分回路の遅延分布をモンテカルロシミュレーションで自動的かつ正確に求めることができる。
【０１７０】
また、上記見積もり誤差が大きくなると予測されるノードのうち、回路遅延に与える影響が大きいクリティカルパス上に存在し、さらには、回路遅延の改善可能性が高いノードを通過するパスからなる部分回路を、モンテカルロシミュレーションによる解析対象とすることにより、解析対象の回路規模を小さくし、遅延解析の高速化を図ることができる。
【０１７１】
さらに、回路遅延を正確に見積もることにより、不要な遅延マージンを効果的に削減することができる。この結果、解析対象回路のチップ面積を削減するとともに、タイミング修正にかかる作業負担を軽減することができる。
【０１７２】
以上のことから、本実施の形態によれば、高速かつ高精度な遅延解析をおこなうことにより、設計者の負担軽減および設計期間の短縮化を図ることができる。
【０１７３】
なお、本実施の形態で説明した遅延解析支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１７４】
また、本実施の形態で説明した遅延解析支援装置４００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述した遅延解析支援装置４００の機能５０１〜５０８をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、遅延解析支援装置４００を製造することができる。
【０１７５】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１７６】
（付記１）解析対象の回路グラフをブロックベース解析して、前記回路グラフの遅延分布を見積もる遅延解析の実行をコンピュータに支援させる遅延解析支援プログラムであって、
前記コンピュータを、
前記回路グラフの中から、複数の信号が入力される一のノードを検出する検出手段、
前記検出手段によって検出された一のノードに接続された前段のノード群の遅延分布に基づいて、前記一のノードの遅延分布の見積もり誤差に関する予測値を算出する予測値算出手段、
前記予測値算出手段によって算出された予測値が所定の閾値以上となるか否かを判定する判定手段、
前記判定手段によって判定された判定結果を出力する出力手段、
として機能させることを特徴とする遅延解析支援プログラム。
【０１７７】
（付記２）前記予測値算出手段は、
前記前段のノード群の遅延の上限値のばらつきを表わす上限遅延分布と、前記前段のノード群の遅延の下限値のばらつきを表わす下限遅延分布とを用いて、前記予測値を算出することを特徴とする付記１に記載の遅延解析支援プログラム。
【０１７８】
（付記３）前記コンピュータを、
前記判定手段によって前記予測値が閾値以上と判定された場合、モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出する遅延算出手段として機能させ、
前記出力手段は、
前記遅延算出手段によって算出された算出結果を出力することを特徴とする付記１または２に記載の遅延解析支援プログラム。
【０１７９】
（付記４）前記判定手段は、
前記一のノードがクリティカルパスに含まれるか否かを判定し、
前記遅延算出手段は、
前記判定手段によって前記一のノードがクリティカルパスに含まれると判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出することを特徴とする付記３に記載の遅延解析支援プログラム。
【０１８０】
（付記５）前記判定手段は、
前記一のノードの遅延分布に関するパラメータの変化割合を示す素子感度が所定の閾値以上であるか否かを判定し、
前記遅延算出手段は、
前記判定手段によって前記素子感度が閾値以上と判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出することを特徴とする付記３または４に記載の遅延解析支援プログラム。
【０１８１】
（付記６）前記遅延算出手段は、
前記判定手段によって前記予測値が閾値以上と判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを含むサブツリーの遅延分布を算出することを特徴とする付記３に記載の遅延解析支援プログラム。
【０１８２】
（付記７）前記判定手段は、
前記一のノードがクリティカルパスに含まれるか否かを判定し、
前記遅延算出手段は、
前記判定手段によって前記一のノードがクリティカルパスに含まれると判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを含むサブツリーの遅延分布を算出することを特徴とする付記６に記載の遅延解析支援プログラム。
【０１８３】
（付記８）前記判定手段は、
前記一のノードの遅延分布に関するパラメータの変化割合を示す感度が所定の閾値以上であるか否かを判定し、
前記遅延算出手段は、
前記判定手段によって前記感度が閾値以上と判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを含むサブツリーの遅延分布を算出することを特徴とする付記６または７に記載の遅延解析支援プログラム。
【０１８４】
（付記９）前記コンピュータを、
前記判定手段によって前記予測値が閾値以上と判定された場合、前記回路グラフの遅延分布を算出する遅延解析の実行を、前記ブロックベース解析からモンテカルロシミュレーションに切り替える切替手段、
前記切替手段によって切り替えられた結果、前記ブロックベース解析から得られた前記前段のノード群の遅延分布を用いて、前記モンテカルロシミュレーションを実行することにより、前記一のノードを含むサブツリーの遅延分布を算出する遅延算出手段として機能させ、
前記出力手段は、
前記遅延算出手段によって算出された算出結果を出力することを特徴とする付記１または２に記載の遅延解析支援プログラム。
【０１８５】
（付記１０）前記遅延算出手段は、
前記切替手段によって切り替えられた結果、前記前段のノード群の遅延分布を用いて、前記モンテカルロシミュレーションを実行することにより、前記一のノードの遅延分布を算出することを特徴とする付記９に記載の遅延解析支援プログラム。
【０１８６】
（付記１１）前記切替手段は、
前記遅延算出手段によって前記一のノードの遅延分布が算出された結果、前記回路グラフの遅延分布を算出する遅延解析の実行を、前記モンテカルロシミュレーションから前記ブロックベース解析に切り替え、
前記遅延算出手段は、
前記切替手段によって切り替えられた結果、前記一のノードの遅延分布を用いて、前記ブロックベース解析を実行することにより、前記一のノードよりも後段のノードの遅延分布を算出することを特徴とする付記１０に記載の遅延解析支援プログラム。
【０１８７】
（付記１２）付記１〜１１のいずれか一つに記載の遅延解析支援プログラムを記録したコンピュータに読み取り可能な記録媒体。
【０１８８】
（付記１３）解析対象の回路グラフをブロックベース解析して、前記回路グラフの遅延分布を見積もる遅延解析を支援する遅延解析支援装置であって、
前記回路グラフの中から、複数の信号が入力される一のノードを検出する検出手段と、
前記検出手段によって検出された一のノードに接続された前段のノード群の遅延分布に基づいて、前記一のノードの遅延分布の見積もり誤差に関する予測値を算出する予測値算出手段と、
前記予測値算出手段によって算出された予測値が所定の閾値以上となるか否かを判定する判定手段と、
前記判定手段によって判定された判定結果を出力する出力手段と、
を備えることを特徴とする遅延解析支援装置。
【０１８９】
（付記１４）解析対象の回路グラフをブロックベース解析して、前記回路グラフの遅延分布を見積もる遅延解析を支援する遅延解析支援方法であって、
前記回路グラフの中から、複数の信号が入力される一のノードを検出する検出工程と、
前記検出工程によって検出された一のノードに接続された前段のノード群の遅延分布に基づいて、前記一のノードの遅延分布の見積もり誤差に関する予測値を算出する予測値算出工程と、
前記予測値算出工程によって算出された予測値が所定の閾値以上となるか否かを判定する判定工程と、
前記判定工程によって判定された判定結果を出力する出力工程と、
を含んだことを特徴とする遅延解析支援方法。
【図面の簡単な説明】
【０１９０】
【図１】回路グラフの一例を示す説明図である。
【図２】従来の問題点を示す説明図である。
【図３】パスの遅延分布を示す説明図である。
【図４】本実施の形態にかかる遅延解析支援装置のハードウェア構成を示す説明図である。
【図５】遅延解析支援装置の機能的構成を示すブロック図である。
【図６】セルライブラリの記憶内容を示す説明図である。
【図７】再解析対象回路の一例を示す説明図（その１）である。
【図８】再解析対象回路の一例を示す説明図（その２）である。
【図９】再解析対象回路の一例を示す説明図（その３）である。
【図１０】切替処理の概要を示す説明図（その１）である。
【図１１】切替処理の概要を示す説明図（その２）である。
【図１２】ディスプレイの表示画面の一例を示す説明図である。
【図１３】予測値算出手法の概要を示す説明図（その１）である。
【図１４】予測値算出手法の概要を示す説明図（その２）である。
【図１５】予測値算出手法の概要を示す説明図（その３）である。
【図１６】遅延解析支援装置の遅延解析処理手順の一例を示すフローチャート（その１ａ）である。
【図１７】遅延解析支援装置の遅延解析処理手順の一例を示すフローチャート（その１ｂ）である。
【図１８】遅延解析支援装置の遅延解析処理手順の一例を示すフローチャート（その２）である。
【図１９】遅延解析支援装置の遅延解析処理手順の一例を示すフローチャート（その３ａ）である。
【図２０】遅延解析支援装置の遅延解析処理手順の一例を示すフローチャート（その３ｂ）である。
【図２１】予測値算出処理手順の一例を示すフローチャート（その１）である。
【図２２】予測値算出処理手順の一例を示すフローチャート（その２）である。
【符号の説明】
【０１９１】
１００，７００，８００，１０００，１１００  回路グラフ
３１０，３２０  クリティカルパス
３３０  パス
４００  遅延解析支援装置
５０１  検出部
５０２  予測値算出部
５０３  判定部
５０４  出力部
５０５  遅延算出部
５０６  抽出部
５０７  決定部
５０８  切替部
６００  セルライブラリ
６００−１〜６００−ｎ  遅延情報
７１０，８１０，９００  再解析対象回路
１０１０  サブツリー
１２００  再解析対象回路グラフ
【図１】
0005076832.tif 000002
【図２】
0005076832.tif 000003
【図３】
0005076832.tif 000004
【図４】
0005076832.tif 000005
【図５】
0005076832.tif 000006
【図６】
0005076832.tif 000007
【図７】
0005076832.tif 000008
【図８】
0005076832.tif 000009
【図９】
0005076832.tif 000010
【図１０】
0005076832.tif 000011
【図１１】
0005076832.tif 000012
【図１２】
0005076832.tif 000013
【図１３】
0005076832.tif 000014
【図１４】
0005076832.tif 000015
【図１５】
0005076832.tif 000016
【図１６】
0005076832.tif 000017
【図１７】
0005076832.tif 000018
【図１８】
0005076832.tif 000019
【図１９】
0005076832.tif 000020
【図２０】
0005076832.tif 000021
【図２１】
0005076832.tif 000022
【図２２】
0005076832.tif 000023