(57)【要約】【課題】解析対象回路の回路遅延を効率的かつ正確におこなうことにより、設計者の負担軽減や設計期間の短縮化を図ること。【解決手段】遅延解析装置５００は、入力部５０１により、タイミング解析結果（タイミングリスト４００）が入力された場合、検出部５０３により、クリティカルパス検出処理を実行する。そして、統計的遅延値算出部５０６により、統計的遅延値算出処理を実行する。検出部５０３では、累積遅延値が最大となるクリティカルパス（最大遅延パス）を検出する。そして、確率密度分布算出部５０２により、最大遅延パスの遅延に関する確率密度分布を算出する。そして、この確率密度分布内に累積遅延値を有するクリティカルパス（ｘ本）を検出する。【選択図】        図５
2007087342.tif 000002
【特許請求の範囲】
【請求項１】
解析対象回路のタイミング解析結果の入力を受け付けさせる入力工程と、
前記入力工程によって入力されたタイミング解析結果に基づいて、遅延値が所定範囲内となるクリティカルパスを検出させる検出工程と、
前記検出工程によって検出された各クリティカルパスの遅延に関する累積確率分布に基づいて、前記解析対象回路に関する統計的遅延値を算出させる統計的遅延値算出工程と、
をコンピュータに実行させることを特徴とする遅延解析プログラム。
【請求項２】
前記検出工程によって検出されたクリティカルパスの中から、前記解析対象回路を構成する回路素子を共有するクリティカルパスを検索することにより、前記解析対象回路の一部をなす部分回路を生成させる生成工程と、
前記生成工程によって生成された部分回路ごとに、当該部分回路の遅延に関する累積確率分布を算出させる累積確率分布算出工程と、をコンピュータに実行させ、
前記統計的遅延値算出工程は、
前記累積確率分布算出工程によって算出された前記各部分回路の累積確率分布に基づいて、前記解析対象回路に関する統計的遅延値を算出させることを特徴とする請求項１に記載の遅延解析プログラム。
【請求項３】
請求項１または２に記載の遅延解析プログラムを記録したコンピュータに読み取り可能な記録媒体。
【請求項４】
解析対象回路のタイミング解析結果の入力を受け付ける入力手段と、
前記入力手段によって入力されたタイミング解析結果に基づいて、遅延値が所定範囲内となるクリティカルパスを検出する検出手段と、
前記検出手段によって検出された各クリティカルパスの遅延に関する累積確率分布に基づいて、前記解析対象回路に関する統計的遅延値を算出する統計的遅延値算出手段と、
を備えることを特徴とする遅延解析装置。
【請求項５】
解析対象回路のタイミング解析結果の入力を受け付ける入力工程と、
前記入力工程によって入力されたタイミング解析結果に基づいて、遅延値が所定範囲内となるクリティカルパスを検出する検出工程と、
前記検出工程によって検出された各クリティカルパスの遅延に関する累積確率分布に基づいて、前記解析対象回路に関する統計的遅延値を算出する統計的遅延値算出工程と、
を含んだことを特徴とする遅延解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、解析対象回路の回路遅延を見積もる遅延解析プログラム、該プログラムを記録した記録媒体、遅延解析装置、および遅延解析方法に関する。
【背景技術】
【０００２】
近年、プロセスの微細化によりＶＬＳＩ製造における（プロセスバラツキなどの）統計的要因の影響が大きくなってきており、ＶＬＳＩ設計においても、要求された性能を持つ回路を歩留まり良く作成するために、予めその影響を考慮した遅延改善技術が必要となる。また、従来において、プロセスなどのバラツキを考慮し不要な遅延マージンをなくす方法として、統計的遅延解析という手法が提案されている（たとえば、下記特許文献１を参照。）。さらに、論理回路の遅延を最小化する遅延最小化装置が提案されている（たとえば、下記特許文献２を参照。）。
【０００３】
【特許文献１】特開２００４−２５２８３１号公報
【特許文献２】特開平７−３３４５３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の遅延改善技術では、統計的要因を正確に扱うことは困難であるという問題があった。たとえば、従来の静的遅延解析（ＳＴＡ）において統計的要因を扱う場合、要因の最悪値で見積もるため、かなり悲観的でかつ不正確な回路遅延値となっていた。したがって、回路設計の手戻りが生じ、設計者の負担が増大するとともに、設計期間の長期化を招くという問題があった。
【０００５】
また、上述した特許文献１の従来技術を用いてチップ内の全パスの遅延解析をおこなうため、その遅延解析に費やす処理時間が膨大となり、設計期間の長期化を招くという問題があった。さらに、上述した特許文献１の従来技術では、パーシャルコラップシングという論理レベルで回路遅延を小さくする技術であるため、タイミング解析をおこなわずに回路遅延を最小化している。したがって、クリティカルパスの遅延が考慮されていないこととなり、正確な回路遅延を得られないという問題があった。
【０００６】
この発明は、上述した従来技術による問題点を解消するため、解析対象回路の回路遅延を効率的かつ正確におこなうことにより、設計者の負担軽減や設計期間の短縮化を図ることができる遅延解析プログラム、該プログラムを記録した記録媒体、遅延解析装置、および遅延解析方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、この発明にかかる遅延解析プログラム、該プログラムを記録した記録媒体、遅延解析装置、および遅延解析方法は、解析対象回路のタイミング解析結果の入力を受け付け、入力されたタイミング解析結果に基づいて、遅延値が所定範囲内となるクリティカルパスを検出し、検出された各クリティカルパスの遅延に関する累積確率分布に基づいて、前記解析対象回路に関する統計的遅延値を算出することを特徴とする。
【０００８】
また、上記発明において、前記タイミング解析結果に含まれている遅延値が最大のクリティカルパスの遅延に関する確率密度分布を算出し、算出された確率密度分布内に遅延値を有するクリティカルパスを検出することとしてもよい。
【０００９】
また、上記発明において、前記タイミング解析結果に基づいて、最大遅延値から上位ｘ番目までの遅延値を有するクリティカルパスを検出することとしてもよい。
【００１０】
また、上記発明において、検出されたクリティカルパスの中から、前記解析対象回路を構成する回路素子を共有するクリティカルパスを検索することにより、前記解析対象回路の一部をなす部分回路を生成し、生成された部分回路ごとに、当該部分回路の遅延に関する累積確率分布を算出し、算出された前記各部分回路の累積確率分布に基づいて、前記解析対象回路に関する統計的遅延値を算出することとしてもよい。
【００１１】
これらの発明によれば、クリティカルパスが得られた解析対象回路を、クリティカルパスを構成する回路素子のみによって構成される部分回路群として再構成することができる。したがって、クリティカルパスとは関係のない回路素子を解析対象から除外することができ、解析速度の高速化を実現することができる。
【発明の効果】
【００１２】
本発明にかかる遅延解析プログラム、該プログラムを記録した記録媒体、遅延解析装置、および遅延解析方法によれば、解析対象回路の回路遅延を効率的かつ正確におこなうことにより、設計者の負担軽減や設計期間の短縮化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１３】
以下に添付図面を参照して、この発明にかかる遅延解析プログラム、該プログラムを記録した記録媒体、遅延解析装置、および遅延解析方法の好適な実施の形態を詳細に説明する。
【００１４】
（遅延解析装置のハードウェア構成）
まず、この発明の実施の形態にかかる遅延解析装置のハードウェア構成について説明する。図１は、この発明の実施の形態にかかる遅延解析装置のハードウェア構成を示すブロック図である。
【００１５】
図１において、遅延解析装置は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ（ハードディスクドライブ）１０４と、ＨＤ（ハードディスク）１０５と、ＦＤＤ（フレキシブルディスクドライブ）１０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）１０７と、ディスプレイ１０８と、Ｉ／Ｆ（インターフェース）１０９と、キーボード１１０と、マウス１１１と、スキャナ１１２と、プリンタ１１３と、を備えている。また、各構成部はバス１００によってそれぞれ接続されている。
【００１６】
ここで、ＣＰＵ１０１は、遅延解析装置の全体の制御を司る。ＲＯＭ１０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして使用される。ＨＤＤ１０４は、ＣＰＵ１０１の制御にしたがってＨＤ１０５に対するデータのリード／ライトを制御する。ＨＤ１０５は、ＨＤＤ１０４の制御で書き込まれたデータを記憶する。
【００１７】
ＦＤＤ１０６は、ＣＰＵ１０１の制御にしたがってＦＤ１０７に対するデータのリード／ライトを制御する。ＦＤ１０７は、ＦＤＤ１０６の制御で書き込まれたデータを記憶したり、ＦＤ１０７に記憶されたデータを遅延解析装置に読み取らせたりする。
【００１８】
また、着脱可能な記録媒体として、ＦＤ１０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ１０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００１９】
Ｉ／Ｆ１０９は、通信回線を通じてインターネットなどのネットワーク１１４に接続され、このネットワーク１１４を介して他の装置に接続される。そして、Ｉ／Ｆ１０９は、ネットワーク１１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２０】
キーボード１１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００２１】
スキャナ１１２は、画像を光学的に読み取り、遅延解析装置内に画像データを取り込む。なお、スキャナ１１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ１１３は、画像データや文書データを印刷する。プリンタ１１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００２２】
つぎに、回路素子ライブラリ２００について説明する。図２は、回路素子ライブラリ２００の記憶内容を示す説明図である。回路素子ライブラリ２００は、回路素子ごとに、回路素子遅延分布情報２００−１〜２００−ｎを格納している。回路素子遅延分布情報２００−１〜２００−ｎは、回路素子ごとに、回路素子名とクロックの遅延に関する確率密度分布パラメータを有している。
【００２３】
また、遅延に関する確率密度分布パラメータは、その回路素子の平均遅延値および標準偏差を有している。たとえば、回路素子Ｃｉについては、平均遅延値ｍｉおよび標準偏差σｉを有しており、その分布関数は、確率密度分布Ｐｉである。なお、回路素子としては、バッファ、インバータ、論理ゲートなどが挙げられる。
【００２４】
（解析対象回路３００の一例）
つぎに、この発明の実施の形態にかかる解析対象回路３００の一例について説明する。図３−１は、この発明の実施の形態にかかる解析対象回路３００の一例を示す回路図である。なお、図面では一部を抜粋して表示している。図３−１において、解析対象回路３００は、回路素子Ｃ１〜Ｃ２０を有している。
【００２５】
つぎに、上述した解析対象回路３００のタイミング解析（ＳＴＡ）結果により得られるクリティカルパスについて説明する。図３−２は、解析対象回路３００のタイミング解析結果により得られるクリティカルパスを示す説明図である。図３−２において、タイミング解析結果により解析対象回路３００から４本のクリティカルパスＣＰ１〜ＣＰ４が検出されている。
【００２６】
クリティカルパスＣＰ１は、回路素子Ｃ１、Ｃ２、Ｃ６、Ｃ７を通る経路（パス）である。クリティカルパスＣＰ２は、回路素子Ｃ８、Ｃ２、Ｃ１２、Ｃ１３を通る経路（パス）である。クリティカルパスＣＰ３は、回路素子Ｃ１４、Ｃ１５、Ｃ１６、Ｃ１３を通る経路（パス）である。クリティカルパスＣＰ４は、回路素子Ｃ１７、Ｃ１８、Ｃ１９、Ｃ２０を通る経路（パス）である。
【００２７】
つぎに、この発明の実施の形態にかかるタイミング解析結果となるタイミングリスト４００について説明する。図４は、この発明の実施の形態にかかるタイミング解析結果となるタイミングリスト４００の一例を示す説明図である。図４において、タイミングリスト４００は、解析対象回路３００のタイミング解析（ＳＴＡ）によって得られる。タイミングリスト４００は、クリティカルパスＣＰ１〜ＣＰｚごとに、クリティカルパスＣＰ１〜ＣＰｚを構成する回路素子と、当該回路素子の平均遅延値と、累積遅延値とが記述されている。
【００２８】
たとえば、クリティカルパスＣＰ１については、回路素子Ｃ１、Ｃ２、Ｃ６、Ｃ７によって構成されている。タイミング解析では、図２に示した回路素子ライブラリ２００が用いられており、各回路素子Ｃ１、Ｃ２、Ｃ６、Ｃ７の平均遅延値は、それぞれ、ｍ１、ｍ２、ｍ６、ｍ７となる。
【００２９】
また、累積遅延値は、回路素子までの平均遅延値の合計であり、各クリティカルパスＣＰ１〜ＣＰｚにおいて最後端の回路素子の累積遅延値が、各クリティカルパスＣＰ１〜ＣＰｚの平均遅延値Ｍ１〜Ｍｚとなる。たとえば、クリティカルパスＣＰ１の累積遅延値の合計である平均遅延値Ｍ１は、最後端の回路素子Ｃ７までの遅延値の合計（ｍ１＋ｍ２＋ｍ６＋ｍ７）となる。
【００３０】
（遅延解析装置の機能的構成）
つぎに、この発明の実施の形態にかかる遅延解析装置５００の機能的構成について説明する。図５は、この発明の実施の形態にかかる遅延解析装置５００の機能的構成を示すブロック図である。図５において、遅延解析装置５００は、入力部５０１と、確率密度分布算出部５０２と、検出部５０３と、生成部５０４と、累積確率分布算出部５０５と、統計的遅延値算出部５０６と、から構成されている。
【００３１】
まず、入力部５０１は、解析対象回路３００のタイミング解析結果の入力を受け付ける。具体的には、たとえば、図４に示したタイミングリスト４００の入力を受け付ける。入力されたタイミング解析結果（タイミングリスト４００）は、確率密度分布算出部５０２または検出部５０３に出力される。
【００３２】
また、確率密度分布算出部５０２は、タイミング解析結果に含まれている遅延値が最大のクリティカルパスの遅延に関する確率密度分布を算出する。具体的には、たとえば、入力部５０１によって入力されたタイミングリスト４００の累積遅延値Ｍ１〜Ｍｚのうち最大となる累積遅延値を有するクリティカルパスの遅延に関する確率密度分布を算出する。ここで、タイミングリスト４００において、累積遅延値Ｍ１〜Ｍｚが大きい順にソートされている場合、クリティカルパスＣＰ１の累積遅延値Ｍ１が最大となるため、クリティカルパスＣＰ１の遅延に関する確率密度分布を算出する。
【００３３】
ここで、クリティカルパスＣＰ１を例に挙げて、確率密度分布の算出手法について説明する。確率密度分布を算出する場合、回路素子ライブラリ２００を参照する。クリティカルパスＣＰ１は、回路素子Ｃ１、Ｃ２、Ｃ６、Ｃ７から構成されているため、各回路素子Ｃ１、Ｃ２、Ｃ６、Ｃ７の標準偏差σ１、σ２、σ６、σ７を用いて、クリティカルパスＣＰ１の標準偏差σを下記式（１）により算出する。
【００３４】
【数１】
2007087342.tif 000003
【００３５】
そして、算出された平均遅延値Ｍ１および標準偏差σにより、累積遅延値が最大であるクリティカルパスＣＰ１の遅延に関する確率密度分布ＰＭ１を得ることができる。図６は、遅延に関する確率密度分布を示す説明図である。図６において、クリティカルパスＣＰ１の遅延に関する確率密度分布ＰＭ１は、平均遅延値Ｍ１および標準偏差σからなる正規分布としてあらわされている。
【００３６】
また、検出部５０３は、入力部５０１によって入力されたタイミング解析結果に基づいて、遅延値が所定範囲内となるクリティカルパスを検出する。具体的には、たとえば、確率密度分布算出部５０２によって確率密度分布ＰＭ１が算出された場合、確率密度分布ＰＭ１に基づいて、（平均）遅延値が所定範囲内となるクリティカルパスを検出する。
【００３７】
より具体的には、たとえば、図６に示した確率密度分布ＰＭ１の（Ｍ１−３σ）から平均遅延値Ｍ１までの範囲内に累積遅延値Ｍ２，Ｍ３を有するクリティカルパスＣＰ２，ＣＰ３を検出する。図６には、クリティカルパスＣＰ２，ＣＰ３の確率密度分布ＰＭ２，ＰＭ３と、が示されている。また、確率密度分布ＰＭ１の（Ｍ１−３σ）以下の平均遅延値Ｍｚを有するクリティカルパスＣＰｚの確率密度分布ＰＭｚが示されている。
【００３８】
また、論理的試算によれば、確率密度分布ＰＭ１の（Ｍ１−３σ）以下に累積遅延値を有するクリティカルパスが１０万本あったとしても、解析対象回路３００全体の遅延値に与える影響は、１％以下となる。このため、確率密度分布ＰＭ１の（Ｍ１−３σ）から平均遅延値Ｍ１までの範囲内に平均遅延値を有するクリティカルパスのみを対象としても問題はない。
【００３９】
また、検出部５０３は、確率密度分布算出部５０２によって確率密度分布ＰＭ１が算出されない場合、タイミング解析結果に基づいて、遅延値が最大遅延値から上位ｘ番目までのクリティカルパスを検出する。より具体的には、たとえば、０．１１μの解析対象回路３００において、クリティカルパスが１５万本あるとすると、タイミングリスト４００において上位約９００本のクリティカルパス（全体の０．６％相当）が、確率密度分布ＰＭ１の（Ｍ１−３σ）の範囲内に入る。したがって、上位ｘ位に限定することにより、遅延解析処理速度を１００倍に高速化することができる。
【００４０】
また、生成部５０４は、検出部５０３によって検出されたクリティカルパスの中から、解析対象回路３００を構成する回路素子を共有するクリティカルパスを検索することにより、解析対象回路３００の一部をなす部分回路を生成する。図７は、この発明の実施の形態にかかる部分回路を示す説明図である。図７において、解析対象回路３００は、部分回路Ｓ１と部分回路Ｓ２を有する。
【００４１】
クリティカルパスＣＰ１は、回路素子Ｃ１、Ｃ２、Ｃ６、Ｃ７から構成されているが、回路素子Ｃ２を共有するクリティカルパスＣＰ２が検索される。また、検索されたクリティカルパスＣＰ２は、回路素子Ｃ８、Ｃ２、Ｃ１２、Ｃ１３から構成されているが、回路素子Ｃ１３を共有するクリティカルパスＣＰ３が検索される。すなわち、クリティカルパスＣＰ１とクリティカルパスＣＰ２は、回路素子Ｃ２を共有している。同様に、クリティカルパスＣＰ２とクリティカルパスＣＰ３は、回路素子Ｃ１３を共有している。クリティカルパスＣＰ１とクリティカルパスＣＰ３は、共有する回路素子を有していないが、クリティカルパスＣＰ２を介して間接的に関連付けられているため、クリティカルパスＣＰ１〜ＣＰ３を構成する回路は、部分回路Ｓ１を構成する。なお、回路素子Ｃ３〜Ｃ５、Ｃ９〜Ｃ１１は、部分回路Ｓ１には含まれない。
【００４２】
また、クリティカルパスＣＰ４は、回路素子Ｃ１７〜Ｃ２０から構成されているが、回路素子Ｃ１７〜Ｃ２０を共有するクリティカルパスが存在しないため、クリティカルパスＣＰ４がそのまま部分回路Ｓ２を構成する。
【００４３】
また、累積確率分布算出部５０５は、生成部５０４によって生成された部分回路ごとに、当該部分回路の遅延に関する累積確率分布を算出する。図８は、遅延に関する確率密度分布と累積確率分布とを示す説明図である。図８において、遅延に関する確率密度分布Ｐを積分すると、累積確率分布Ｑとなる。
【００４４】
ここで、「統計的和（記号：＊）」および「累積分布積（記号：×）」の定義について説明する。説明を簡略化するため、２つの遅延分布ａ、ｂを用いて説明する。なお、遅延分布ａを確率密度関数であらわした確率密度分布をＰａ、遅延分布ｂを確率密度関数であらわした確率密度分布をＰｂ、遅延分布ａを累積確率関数であらわした累積確率分布をＱａ、遅延分布ｂを累積確率関数であらわした累積確率分布をＱｂとする。
【００４５】
確率密度分布Ｐａ、Ｐｂの統計的和は、下記式（２）によってあらわすことができる。
【００４６】
【数２】
2007087342.tif 000004
【００４７】
累積確率分布Ｑａ、Ｑｂの統計的和は、下記式（３）によってあらわすことができる。
【００４８】
【数３】
2007087342.tif 000005
【００４９】
確率密度分布Ｐａ、Ｐｂの累積分布積は、下記式（４）によってあらわすことができる。
（Ｐａ×Ｐｂ）（ｔ）＝Ｐａ（ｔ）・Ｑｂ（ｔ）＋Ｐｂ（ｔ）・Ｑａ（ｔ）
・・・・（４）
【００５０】
累積確率分布Ｑａ、Ｑｂの累積分布積は、下記式（５）によってあらわすことができる。
（Ｑａ×Ｑｂ）（ｔ）＝Ｑａ（ｔ）・Ｑｂ（ｔ）・・・・・・・・・・（５）
【００５１】
累積確率分布算出部５０５は、具体的には、部分回路内の各回路素子の遅延に関する確率密度分布を算出しておく。そして、回路素子が直列している箇所では、回路素子の遅延に関する確率密度分布の統計的和（上記式（２））を算出することで、当該直列箇所の遅延に関する確率密度分布を算出する。また、回路素子が並列している箇所では、回路素子の遅延に関する確率密度分布の累積分布積（上記式（４））を算出することで、当該箇所の累積分布積を算出する。
【００５２】
ここで、上述した部分回路Ｓ１を用いて、共有する回路素子が含まれている場合の部分回路Ｓ１の遅延に関する累積確率分布の算出手法について説明する。部分回路Ｓ１は、クリティカルパスＣＰ１およびクリティカルパスＣＰ２が共有する回路素子Ｃ２を有しており、また、クリティカルパスＣＰ２およびクリティカルパスＣＰ３が共有する回路素子Ｃ１３を有している。
【００５３】
したがって、回路素子Ｃ１、Ｃ２、Ｃ８に着目すると、回路素子Ｃ１、Ｃ８が並列なので、上記式（２）および式（４）を用いてあらわすことができる（下記式（６））。なお、Ｑ１は回路素子Ｃ１の遅延に関する累積確率分布、Ｑ２は回路素子Ｃ２の遅延に関する累積確率分布、Ｑ８は回路素子Ｃ８の遅延に関する累積確率分布である。
【００５４】
（Ｑ１×Ｑ８）＊Ｑ２・・・（６）
【００５５】
また、回路素子Ｃ１４〜Ｃ１６に着目すると、回路素子Ｃ１４〜Ｃ１６は直列なので、上記式（２）を用いてあわらすことができる（下記式（７））。なお、Ｑ１４は回路素子Ｃ１４の遅延に関する累積確率分布、Ｑ１５は回路素子Ｃ１５の遅延に関する累積確率分布、Ｑ１６は回路素子Ｃ１６の遅延に関する累積確率分布である。
【００５６】
Ｑ１４＊Ｑ１５＊Ｑ１６・・・（７）
【００５７】
このような関係から、部分回路Ｓ１の遅延に関する累積確率分布ＱＳ１は、以下の式（８）によってあらわすことができる。Ｐ１、Ｐ２，Ｐ６〜Ｐ８、Ｐ１２〜Ｐ１６は回路素子Ｃ１、Ｃ２，Ｃ６〜Ｃ８、Ｃ１２〜Ｃ１６の遅延に関する確率密度分布である。
【００５８】
【数４】
2007087342.tif 000006
【００５９】
上記式（８）により、共有されている回路素子Ｃ２、Ｃ１３前後の回路素子の確率密度分布について累積分布積をとることができるため、計算処理を簡素化することができ、計算速度の高速化を図ることができる。
【００６０】
また、部分回路Ｓ２の遅延に関する累積確率分布ＱＳ２は、共有されている回路素子がないため、以下の式（９）によってあらわすことができる。Ｑ１７〜Ｑ２０は回路素子Ｃ１７〜Ｃ２０の遅延に関する累積確率分布である。
【００６１】
ＱＳ２＝Ｑ１７＊Ｑ１８＊Ｑ１９＊Ｑ２０・・・・（９）
【００６２】
また、統計的遅延値算出部５０６は、検出部５０３によって検出された各クリティカルパスの遅延に関する累積確率分布に基づいて、解析対象回路３００に関する統計的遅延値を算出する。具体的には、たとえば、累積確率分布算出部５０５によって算出された各部分回路の累積確率分布に基づいて、解析対象回路３００に関する統計的遅延値を算出する。
【００６３】
図９は、累積確率分布を示すグラフである。解析対象回路３００に関する累積確率分布Ｑは、部分回路Ｓ１の遅延に関する累積確率分布ＱＳ１と、部分回路Ｓ２の遅延に関する累積確率分布ＱＳ２を用いて、上記式（５）により、下記式（１０）によってあらわすことができる。
【００６４】
Ｑ＝ＱＳ１×ＱＳ２・・・・（１０）
【００６５】
そして、解析対象回路３００に関する累積確率分布Ｑに基づいて、解析対象回路３００に関する統計的遅延値を算出する。たとえば、累積確率分布Ｑにおける平均遅延値をｍ、標準偏差をσとすると、ｍ＋３σ（９９．８６％）の統計的遅延値は、図９に示すようにｔｄとなる。
【００６６】
なお、上述した入力部５０１、確率密度分布算出部５０２、検出部５０３、生成部５０４、累積確率分布算出部５０５、および統計的遅延値算出部５０６は、具体的には、たとえば、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５などの記録媒体に記録されたプログラムを、ＣＰＵ１０１が実行することによって、またはＩ／Ｆ１０９によって、その機能を実現する。
【００６７】
（遅延解析処理手順）
つぎに、この発明の実施の形態にかかる遅延解析装置５００の遅延解析処理手順について説明する。図１０は、この発明の実施の形態にかかる遅延解析装置５００の遅延解析処理手順を示すフローチャートである。図１０において、まず、入力部５０１により、タイミング解析結果の入力を待ち受け（ステップＳ１００１：Ｎｏ）、タイミング解析結果が入力された場合（ステップＳ１００１：Ｙｅｓ）、クリティカルパス検出処理を実行する（ステップＳ１００２）。そして、統計的遅延値算出処理を実行する（ステップＳ１００３）。これにより、一連の処理を終了する。
【００６８】
つぎに、上述したクリティカルパス検出処理について説明する。図１１は、クリティカルパス検出処理手順を示すフローチャートである。図１１において、まず、検出部５０３により、累積遅延値が最大となるクリティカルパス（最大遅延パス）を検出する（ステップＳ１１０１）。そして、最大遅延パスの遅延に関する確率密度分布を算出する（ステップＳ１１０２）。そして、この確率密度分布内に累積遅延値を有するクリティカルパス（ｘ本）を検出する。このあと、図１０に示したステップＳ１００３に移行する。
【００６９】
つぎに、上述した統計的遅延値算出処理について説明する。図１２は、統計的遅延値算出処理手順を示すフローチャートである。図１２において、生成部５０４により、部分回路生成処理を実行する（ステップＳ１２０１）。部分回路生成処理については後述する。つぎに、ｋ＝１とし（ステップＳ１２０２）、累積確率分布算出部５０５により部分回路Ｓｋの累積確率分布を算出する（ステップＳ１２０３）。
【００７０】
そして、ｋをインクリメントし（ステップＳ１２０４）、ｋ＞ｍであるか否かを判断する（ステップＳ１２０５）。ｍは部分回路Ｓｋの総数である。ｋ＞ｍでない場合（ステップＳ１２０５：Ｎｏ）、ステップＳ１２０３に戻って、部分回路Ｓｋの遅延に関する累積確率分布を算出する。一方、ｋ＞ｍである場合（ステップＳ１２０５：Ｙｅｓ）、解析対象回路３００の遅延に関する累積確率分布を算出する（ステップＳ１２０６）。そして、解析対象回路３００の遅延に関する累積確率分布から解析対象回路３００の統計的遅延値を算出する（ステップＳ１２０７）。
【００７１】
つぎに、上述した部分回路生成処理について説明する。図１３は、部分回路生成処理手順を示すフローチャートである。図１３において、ｊ＝１、ｋ＝０とし（ステップＳ１３０１）、検出部５０３によって検出されたｘ本のクリティカルパスの中から、クリティカルパスＣＰｊを抽出する（ステップＳ１３０２）。つぎに、クリティカルパスＣＰｊと回路素子を共有するクリティカルパス（共有クリティカルパス）を検索する（ステップＳ１３０３）。
【００７２】
共有クリティカルパスが検索された場合（ステップＳ１３０４：Ｙｅｓ）、検索された共有クリティカルパスと回路素子を共有するクリティカルパス（共有クリティカルパス）を検索する（ステップＳ１３０５）。そして、ステップＳ１３０４に戻る。一方、共有クリティカルパスが検索されなかった場合（ステップＳ１３０４：Ｎｏ）、ｋをインクリメントして（ステップＳ１３０６）、部分回路Ｓｋを生成する（ステップＳ１３０７）。部分回路Ｓｋは、クリティカルパスＣＰｊを構成する回路素子と、共有クリティカルパスを構成する回路素子とからなる回路である。
【００７３】
そして、ｊをインクリメントして（ステップＳ１３０８）、ｊ＞ｘであるか否かを判断する（ステップＳ１３０９）。ｊ＞ｘである場合（ステップＳ１３０９：Ｙｅｓ）、クリティカルパスＣＰｊは共有クリティカルパスとして検索されていたか否かを判断する（ステップＳ１３１０）。共有クリティカルパスとして検索されていた場合（ステップＳ１３１０：Ｙｅｓ）、ステップＳ１３０８に戻って、ｊをさらにインクリメントする。
【００７４】
一方、共有クリティカルパスとして検索されていない場合（ステップＳ１３１０：Ｎｏ）、ステップＳ１３０３に戻って、クリティカルパスＣＰｊと回路素子を共有するクリティカルパス（共有クリティカルパス）を検索する。また、ステップＳ１３０９において、ｊ＞ｘでない場合（ステップＳ１３０９：Ｎｏ）、図１２に示したステップＳ１２０２に移行する。
【００７５】
このように、この発明の実施の形態によれば、クリティカルパスが得られた解析対象回路を、クリティカルパスを構成する回路素子のみによって構成される部分回路群として再構成することができる。したがって、クリティカルパスとは関係のない回路素子を解析対象から除外することができ、解析速度の高速化を実現することができる。
【００７６】
また、上述した実施の形態では、検出部によってクリティカルパスを検出する際、確率密度分布算出部５０２によって、最大遅延パスの確率密度分布を算出することとしているが、タイミングリストのみを用いて、累積遅延値が上位ｘ番目までのクリティカルパスを検出することとしてもよい。これによれば、確率密度分布算出部５０２による算出処理を省略することができるため、処理速度の高速化を図ることができる。
【００７７】
以上説明したように、遅延解析プログラム、該プログラムを記録した記録媒体、遅延解析装置、および遅延解析方法によれば、解析対象回路の回路遅延を効率的かつ正確におこなうことにより、設計者の負担軽減や設計期間の短縮化を図ることができるという効果を奏する。
【００７８】
なお、本実施の形態で説明した遅延解析方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００７９】
（付記１）解析対象回路のタイミング解析結果の入力を受け付けさせる入力工程と、
前記入力工程によって入力されたタイミング解析結果に基づいて、遅延値が所定範囲内となるクリティカルパスを検出させる検出工程と、
前記検出工程によって検出された各クリティカルパスの遅延に関する累積確率分布に基づいて、前記解析対象回路に関する統計的遅延値を算出させる統計的遅延値算出工程と、
をコンピュータに実行させることを特徴とする遅延解析プログラム。
【００８０】
（付記２）前記タイミング解析結果に含まれている遅延値が最大のクリティカルパスの遅延に関する確率密度分布を算出させる確率密度分布算出工程をコンピュータに実行させ、
前記検出工程は、
前記確率密度分布算出工程によって算出された確率密度分布内に遅延値を有するクリティカルパスを検出させることを特徴とする付記１に記載の遅延解析プログラム。
【００８１】
（付記３）前記検出工程は、
前記タイミング解析結果に基づいて、最大遅延値から上位ｘ番目までの遅延値を有するクリティカルパスを検出させることを特徴とする付記１に記載の遅延解析プログラム。
【００８２】
（付記４）前記検出工程によって検出されたクリティカルパスの中から、前記解析対象回路を構成する回路素子を共有するクリティカルパスを検索することにより、前記解析対象回路の一部をなす部分回路を生成させる生成工程と、
前記生成工程によって生成された部分回路ごとに、当該部分回路の遅延に関する累積確率分布を算出させる累積確率分布算出工程と、をコンピュータに実行させ、
前記統計的遅延値算出工程は、
前記累積確率分布算出工程によって算出された前記各部分回路の累積確率分布に基づいて、前記解析対象回路に関する統計的遅延値を算出させることを特徴とする付記１〜３のいずれか一つに記載の遅延解析プログラム。
【００８３】
（付記５）付記１〜４のいずれか一つに記載の遅延解析プログラムを記録したコンピュータに読み取り可能な記録媒体。
【００８４】
（付記６）解析対象回路のタイミング解析結果の入力を受け付ける入力手段と、
前記入力手段によって入力されたタイミング解析結果に基づいて、遅延値が所定範囲内となるクリティカルパスを検出する検出手段と、
前記検出手段によって検出された各クリティカルパスの遅延に関する累積確率分布に基づいて、前記解析対象回路に関する統計的遅延値を算出する統計的遅延値算出手段と、
を備えることを特徴とする遅延解析装置。
【００８５】
（付記７）解析対象回路のタイミング解析結果の入力を受け付ける入力工程と、
前記入力工程によって入力されたタイミング解析結果に基づいて、遅延値が所定範囲内となるクリティカルパスを検出する検出工程と、
前記検出工程によって検出された各クリティカルパスの遅延に関する累積確率分布に基づいて、前記解析対象回路に関する統計的遅延値を算出する統計的遅延値算出工程と、
を含んだことを特徴とする遅延解析方法。
【産業上の利用可能性】
【００８６】
以上のように、本発明にかかる遅延解析プログラム、該プログラムを記録した記録媒体、遅延解析装置、および遅延解析方法は、ＬＳＩの遅延解析に有用であり、特に、ＶＬＳＩの遅延解析に適している。
【図面の簡単な説明】
【００８７】
【図１】この発明の実施の形態にかかる遅延解析装置のハードウェア構成を示すブロック図である。
【図２】回路素子ライブラリの記憶内容を示す説明図である。
【図３−１】この発明の実施の形態にかかる解析対象回路の一例を示す回路図である。
【図３−２】解析対象回路のタイミング解析結果により得られるクリティカルパスを示す説明図である。
【図４】この発明の実施の形態にかかるタイミング解析結果となるタイミングリストの一例を示す説明図である。
【図５】この発明の実施の形態にかかる遅延解析装置の機能的構成を示すブロック図である。
【図６】遅延に関する確率密度分布を示す説明図である。
【図７】この発明の実施の形態にかかる部分回路を示す説明図である。
【図８】遅延に関する確率密度分布と累積確率分布とを示す説明図である。
【図９】累積確率分布を示すグラフである。
【図１０】この発明の実施の形態にかかる遅延解析装置の遅延解析処理手順を示すフローチャートである。
【図１１】クリティカルパス検出処理手順を示すフローチャートである。
【図１２】統計的遅延値算出処理手順を示すフローチャートである。
【図１３】部分回路生成処理手順を示すフローチャートである。
【符号の説明】
【００８８】
２００  回路素子ライブラリ
３００  解析対象回路
４００  タイミングリスト
５００  遅延解析装置
５０１  入力部
５０２  確率密度分布算出部
５０３  検出部
５０４  生成部
５０５  累積確率分布算出部
５０６  統計的遅延値算出部
【図１】
2007087342.tif 000007
【図２】
2007087342.tif 000008
【図３−１】
2007087342.tif 000009
【図３−２】
2007087342.tif 000010
【図４】
2007087342.tif 000011
【図５】
2007087342.tif 000012
【図６】
2007087342.tif 000013
【図７】
2007087342.tif 000014
【図８】
2007087342.tif 000015
【図９】
2007087342.tif 000016
【図１０】
2007087342.tif 000017
【図１１】
2007087342.tif 000018
【図１２】
2007087342.tif 000019
【図１３】
2007087342.tif 000020