JP2009129150A - 遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法 - Google Patents

遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法 Download PDF

Info

Publication number
JP2009129150A
JP2009129150A JP2007302775A JP2007302775A JP2009129150A JP 2009129150 A JP2009129150 A JP 2009129150A JP 2007302775 A JP2007302775 A JP 2007302775A JP 2007302775 A JP2007302775 A JP 2007302775A JP 2009129150 A JP2009129150 A JP 2009129150A
Authority
JP
Japan
Prior art keywords
delay
node
predicted value
circuit
distribution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007302775A
Other languages
English (en)
Other versions
JP5076832B2 (ja
Inventor
Izumi Nitta
泉 新田
Katsumi Honma
克己 本間
Toshiyuki Shibuya
利行 澁谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007302775A priority Critical patent/JP5076832B2/ja
Priority to US12/193,431 priority patent/US7934182B2/en
Publication of JP2009129150A publication Critical patent/JP2009129150A/ja
Application granted granted Critical
Publication of JP5076832B2 publication Critical patent/JP5076832B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】高速かつ高精度な遅延解析をおこなうことにより、設計者の負担軽減および設計期間の短縮化を図ること。
【解決手段】回路グラフ内のノード群のうち、複数の信号が合流するノードの統計的MAX演算による見積もり誤差が大きくなると予測され、かつ、回路遅延に与える影響が大きいクリティカルパス上に存在し、かつ、回路遅延の改善可能性が高いノードを通過するパスからなる部分回路の遅延分布を、ブロックベース解析の替わりにモンテカルロシミュレーションで求めることにより、遅延解析の高速化および高精度化を図る。
【選択図】図1

Description

この発明は、解析対象の回路遅延を統計的に見積もる遅延解析を支援する遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法に関する。
近年、LSIの微細化にともなって、プロセスのばらつき、電源電圧の低下、クロストークなどの統計的要因の影響が大きくなり、回路遅延の変動が増大している。従来の静的遅延解析(STA)では、これらの回路遅延の変動は遅延マージンとして余分に確保されているが、遅延マージンの増大化のためタイミング設計が困難となってきている。
そこで、統計的要因を考慮して回路遅延を見積もることにより、不要な遅延マージンを低減させる統計的遅延解析(SSTA)への要求が高まってきている。統計的遅延解析手法としては、例えば、回路グラフをトポロジカルに走査して、回路グラフ内の各ノードの遅延分布を統計的に求めるブロックベース解析手法が知られている。このブロックベース解析によれば、回路全体を高速に解析することができる。
一方、ブロックベース解析では、複数の信号が合流するノードの真の遅延分布を正確に求めることは非常に困難である。このため、統計的MAX演算を用いて近似的にそのノードの遅延分布を見積もっている。ところが、統計的MAX演算による見積もり誤差が大きくなり、遅延解析の精度が低下してしまう場合がある。
そこで、ブロックベース解析で実施される統計的MAX演算の見積もり精度を向上させる手法が開示されている(たとえば、下記非特許文献1〜3参照。)。これらの手法によれば、複数の信号が合流するノードの遅延分布を正確に見積もることができ、遅延解析の精度を向上させることができる。
C.Visweswariah,et.al:"First−order incremental blockbased statistical timing analysis", In Proc.of the Design Automation Conf.,pages 331-336,2004. H.Chang,et.al:"Statistical timing analysis considering spatial correlations using a single pertlike traversal", In Proc. Intl. Conf. on Computer−Aided Design, pages 621-625,2003. H.Zhou,et.al:"New Block−based Statistical Timing Analysis Approaches without Moment Matching",In Proc.of the 12th Asia and South Pacific Design Automation Conf., pages 462−467,2007
しかしながら、上述した従来技術によれば、複数の信号が合流するノードの遅延分布を正確に求めるための計算が複雑なものとなり、ブロックベース解析の高速性を相殺してしまう場合がある。これにより、遅延解析にかかる作業時間が増大し、ひいては設計期間の長期化を招くという問題があった。
また、ブロックベース解析の替わりに、回路遅延を正確に見積もることができるモンテカルロシミュレーションを適用することも考えられる。しかし、回路規模に応じて、計算時間および使用メモリ量が指数関数的に増大することが想定される。したがって、大規模回路には適用することが困難であるという問題があった。
この発明は、上述した従来技術による問題点を解消するため、高速かつ高精度な遅延解析をおこなうことにより、設計者の負担軽減および設計期間の短縮化を図る遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法は、解析対象の回路グラフをブロックベース解析して、前記回路グラフの遅延分布を見積もる遅延解析を支援する遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法であって、前記回路グラフの中から、複数の信号が入力される一のノードを検出し、検出された一のノードに接続された前段のノード群の遅延分布に基づいて、前記一のノードの遅延分布の見積もり誤差に関する予測値を算出し、算出された予測値が所定の閾値以上となるか否かを判定し、判定された判定結果を出力することを要件とする。
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法は、前記前段のノード群の遅延の上限値のばらつきを表わす上限遅延分布と、前記前段のノード群の遅延の下限値のばらつきを表わす下限遅延分布とを用いて、前記予測値を算出することとしてもよい。
これらの遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法によれば、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードを特定することができる。
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法は、前記予測値が閾値以上と判定された場合、モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出し、算出された算出結果を出力することとしてもよい。
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法によれば、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードを通過するパスからなる部分回路の遅延分布を、モンテカルロシミュレーションで自動的に求めることができる。
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法は、さらに、前記一のノードがクリティカルパスに含まれるか否かを判定し、前記予測値が閾値以上で、かつ、前記一のノードがクリティカルパスに含まれると判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出することとしてもよい。
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法によれば、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードのうち、回路遅延に与える影響が大きいクリティカルパス上に存在するノードを通過するパスからなる部分回路の遅延分布を、モンテカルロシミュレーションで自動的に求めることができる。
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法は、さらに、前記一のノードの遅延分布に関するパラメータの変化割合を示す素子感度が所定の閾値以上であるか否かを判定し、前記予測値が閾値以上で、かつ、前記素子感度が閾値以上と判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出することとしてもよい。
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法によれば、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードのうち、回路遅延の改善可能性が高いノードを通過するパスからなる部分回路の遅延分布を、モンテカルロシミュレーションで自動的に求めることができる。
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法は、前記予測値が閾値以上と判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを含むサブツリーの遅延分布を算出することとしてもよい。
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法によれば、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードを含むサブツリーの遅延分布を、モンテカルロシミュレーションで自動的に求めることができる。
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法は、前記予測値が閾値以上と判定された場合、前記回路グラフの遅延分布を算出する遅延解析の実行を、前記ブロックベース解析からモンテカルロシミュレーションに切り替え、切り替えられた結果、前記ブロックベース解析から得られた前記前段のノード群の遅延分布を用いて、前記モンテカルロシミュレーションを実行することにより、前記一のノードを含むサブツリーの遅延分布を算出し、算出された算出結果を出力することとしてもよい。
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法によれば、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードの前段ノードの遅延分布が見積もられた時点で、ブロックベース解析を打ち切って、それ以降の回路遅延をモンテカルロシミュレーションで見積もることができる。
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法は、前記ブロックベース解析から前記モンテカルロシミュレーションに切り替えられた結果、前記前段のノード群の遅延分布を用いて、前記モンテカルロシミュレーションを実行することにより、前記一のノードの遅延分布を算出することとしてもよい。
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法によれば、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードの前段ノードの遅延分布が見積もられた時点で、ブロックベース解析を打ち切って、そのノードの遅延分布をモンテカルロシミュレーションで見積もることができる。
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法は、前記一のノードの遅延分布が算出された結果、前記回路グラフの遅延分布を算出する遅延解析の実行を、前記モンテカルロシミュレーションから前記ブロックベース解析に切り替え、切り替えられた結果、前記一のノードの遅延分布を用いて、前記ブロックベース解析を実行することにより、前記一のノードよりも後段のノードの遅延分布を算出することとしてもよい。
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法によれば、回路グラフ内のノード群のうち、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードのみをモンテカルロシミュレーションで見積もることができる。
この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法によれば、高速かつ高精度な遅延解析をおこなうことにより、設計者の負担軽減および設計期間の短縮化を図ることができるという効果を奏する。
以下に添付図面を参照して、この遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法の好適な実施の形態を詳細に説明する。
(ブロックベース解析)
まず、本実施の形態にかかるブロックベース解析について説明する。ブロックベース解析とは、解析対象の回路グラフをトポロジカルに走査することにより、回路グラフ内の各ノードの遅延分布を算出する解析手法である。このブロックベース解析によれば、回路全体を高速に解析することができる。
図1は、回路グラフの一例を示す説明図である。図1において、回路グラフ100は、解析対象となる回路を構成する回路素子(例えば、バッファ、ANDゲートなど)がノードN1〜N6としてグラフ化された有向グラフである。図1中、レベルL0〜L4は、始点Sから各ノードN1〜N6までの距離を示している。なお、終点Gは、ノードN6の出力ピンとする。
また、各エッジE1〜E9に付されている数値は、ノード間の信号の伝達時間(遅延)を示している。ここでは、ノード間の遅延を確率密度分布ではなく固定値によって表現して、ブロックベース解析の解析手順を説明する。また、初期設定として、信号の伝達開始時刻(始点Sにおける遅延)を「0」とする。
回路全体の遅延を求める場合、回路グラフ100の始点Sから終点Gまでの信号の到達時間をブロックベース解析によって求める。まず、レベルL1のノードN1,N2の遅延を求める。ノードN1,N2の遅延値は、例えば、下記式(1)および(2)によって求めることができる。
ノードN1の遅延=(始点Sにおける遅延)+(エッジE1の遅延)=10 …(1)
ノードN2の遅延=(始点Sにおける遅延)+(エッジE2の遅延)=5 …(2)
このあと、レベルL2のノードN3の遅延分布を求める。ノードN3の遅延は、例えば、下記式(3)によって求めることができる。
ノードN3の遅延=max{(ノードN1の遅延)+(エッジE3の遅延),(ノードN2の遅延)+(エッジE4の遅延)}=max(30,15)=30 …(3)
以降同様にして、レベルL3のノードN4,N5およびレベルL4のノードN6(終点G)の遅延を逐次的に求める。このように、レベルL0〜L4に従って、各ノードN1〜N6の遅延を求めることにより、回路グラフ100の始点Sから終点Gまでの信号の伝達時間、すなわち、回路全体の遅延を求めることができる。
ところで、上述の例では、説明のためノード間(エッジE1〜E9)の遅延を固定値によって表現したが、本実施の形態では、統計的要因を考慮するためノード間の遅延を確率密度分布によって表現する。そして、統計的SUM演算および統計的MAX演算などを用いて、各ノードN1〜N6の遅延を統計的に求める。
ここで、統計的SUM演算とは、信号が直列に伝播するときに用いる演算であり、例えば、畳み込み積分を用いてバッファやインバータなどの1入力のゲートの出力ピンの遅延分布を見積もる手法である。統計的MAX演算とは、信号が合流するときに用いる演算であり、例えば、複数の信号の遅延の最大値を統計的に算出することで、NANDゲートなどの複数入力のゲートの出力ピンの遅延分布を近似的に求める手法である。
ところが、[背景技術]で説明したように、複数の信号が合流するノード(例えば、ノードN3)では、遅延分布を近似的に求めるため統計的MAX演算による見積もり誤差が発生してしまう。特に、統計的MAX演算の性質から、入力される遅延分布がほぼ同程度の場合には、統計的MAX演算による見積もり誤差が増大してしまう。
図2は、従来の問題点を示す説明図である。図2に示すように、ノードN(ANDゲート)に入力される信号の遅延分布Pa,Pbがほぼ同程度の場合には、ノードNの真の遅延分布Pcに対する、統計的MAX演算から得られるノードNの遅延分布Pdの見積もり誤差が大きくなる。この見積もり誤差が増大すると、遅延解析の精度が低下してしまう。
そこで、本実施の形態では、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードを通過するパスからなる部分回路の遅延分布を、ブロックベース解析の替わりに、モンテカルロシミュレーションで求めることにより遅延解析の高精度化を図る。
また、クリティカルパスの遅延は、クリティカルではないパスの遅延に比べて、回路全体の遅延に与える影響が大きく、回路の遅延分布の平均値に対して支配的になる傾向がある。すなわち、クリティカルパスの遅延をどれだけ正確に見積もれるかが、遅延解析の精度を左右することとなる。
図3は、パスの遅延分布を示す説明図である。図3において、ノードNは、クリティカルパス310,320、およびクリティカルではないパス330に含まれるANDゲートを表わしている。遅延分布Pe,Pfは、クリティカルパス310,320の遅延分布である。遅延分布Pgは、パス330の遅延分布である。遅延分布Phは、回路全体の遅延分布である。
図3に示すように、クリティカルパス310,320の遅延分布Pe,Pfは、パス330の遅延分布Pgに比べて、回路全体の遅延分布Phに与える影響が大きく、遅延分布Phの平均値mhに対して支配的になっている。
そこで、本実施の形態では、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測され、かつ、そのノードがクリティカルパス上に存在する場合には、そのノードを通過するパスからなる部分回路の遅延分布を、ブロックベース解析の替わりに、モンテカルロシミュレーションで求めることにより遅延解析の高精度化を図る。
(遅延解析支援装置のハードウェア構成)
まず、本実施の形態にかかる遅延解析支援装置のハードウェア構成について説明する。図4は、本実施の形態にかかる遅延解析支援装置のハードウェア構成を示す説明図である。
図4において、遅延解析支援装置400は、コンピュータ本体410と、入力装置420と、出力装置430と、から構成されており、不図示のルータやモデムを介してLAN,WANやインターネットなどのネットワーク440に接続可能である。
コンピュータ本体410は、CPU,メモリ,インターフェースを有する。CPUは、遅延解析支援装置400の全体の制御を司る。メモリは、ROM,RAM,HD,光ディスク411,フラッシュメモリから構成される。メモリはCPUのワークエリアとして使用される。
また、メモリには各種プログラムが格納されており、CPUからの命令に応じてロードされる。HDおよび光ディスク411はディスクドライブによりデータのリード/ライトが制御される。また、光ディスク411およびフラッシュメモリはコンピュータ本体410に対し着脱自在である。インターフェースは、入力装置420からの入力、出力装置430への出力、ネットワーク440に対する送受信の制御をおこなう。
また、入力装置420としては、キーボード421、マウス422、スキャナ423などがある。キーボード421は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス422は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ423は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体410内のメモリに格納される。なお、スキャナ423にOCR機能を持たせてもよい。
また、出力装置430としては、ディスプレイ431、スピーカ432、プリンタ433などがある。ディスプレイ431は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、スピーカ432は、効果音や読み上げ音などの音声を出力する。また、プリンタ433は、画像データや文書データを印刷する。
(遅延解析支援装置の機能的構成)
つぎに、遅延解析支援装置の機能的構成について説明する。図5は、遅延解析支援装置の機能的構成を示すブロック図である。図5において、遅延解析支援装置400は、検出部501と、予測値算出部502と、判定部503と、出力部504と、遅延算出部505と、抽出部506と、決定部507と、切替部508と、を備えている。
これら各機能501〜508は、遅延解析支援装置400の記憶部に記憶された当該機能501〜508に関するプログラムをCPUに実行させることにより、または、入出力I/Fにより、当該機能を実現することができる。また、各機能501〜508からの出力データは上記記憶部に保持される。また、図5中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶部から読み込んで、当該機能に関するプログラムをCPUに実行させるものとする。
まず、検出部501は、解析対象の回路グラフの中から、複数の信号が入力される一のノードを検出する機能を有する。回路グラフとは、例えば、解析対象回路を構成する回路素子がノードとしてグラフ化された有向グラフである。回路グラフ内のノード間は、信号の伝達方向を示すエッジによって接続されている。回路素子は、例えば、バッファ、インバータ、ANDゲート、NANDゲートなどである。
また、複数の信号が入力される一のノードとは、複数の信号が合流するノードである。具体的には、例えば、ANDゲートやNANDゲートなど複数の入力ピンを有する回路素子を表わすノードである。上記回路グラフは、例えば、遅延解析支援装置400に直接入力することとしてもよく、また、解析対象回路に関する回路情報から生成することとしてもよい。
回路情報は、例えば、RTL(Register Transfer Level)記述やネットリストなどの電子データである。回路情報は、不図示の外部装置から取得することとしてもよく、また、ユーザの操作入力、不図示のデータベースやライブラリからの抽出によって取得することとしてもよい。
ここでは、解析対象の回路グラフをトポロジカルに走査することにより、回路グラフ内の各ノードの遅延分布を算出するブロックベース解析を実行する。具体的には、例えば、各回路素子の遅延分布を用いて、回路グラフ内の各ノードにおける累積遅延を統計的に算出する。ここで、各回路素子の遅延分布を保持するセルライブラリについて説明する。
図6は、セルライブラリの記憶内容を示す説明図である。図6において、セルライブラリ600には、回路素子ごとに、遅延に関する遅延情報600−1〜600−nを保持している。具体的には、遅延情報600−1〜600−nは、回路素子ごとに、回路素子名、回路素子タイプおよび遅延分布パラメータを有している。
回路素子名は、回路素子の名称である。回路素子タイプは、例えば、バッファ、インバータ、AND、NANDなどの種別を表わしている。遅延分布パラメータは、回路素子の遅延分布を表わすパラメータであり、平均値m1〜mnおよび標準偏差σ1〜σnを有している。さらに、遅延情報600−1〜600−nは、回路素子ごとに、後述する素子感度に関する情報を有することとしてもよい。
ここで、回路素子Ciを例に挙げると、回路素子タイプはNANDであり、遅延分布パラメータとして平均値miおよび標準偏差σi(遅延分布Qi)を有している。ブロックベース解析では、例えば、このセルライブラリ600の中から、回路グラフ内の各ノードを表わす回路素子の遅延情報600−1〜600−nを抽出し、各ノードの遅延分布(例えば、遅延分布Qi)を用いて、回路遅延を統計的に算出することとなる。
上記検出部501は、例えば、ブロックベース解析の実行途中において、回路グラフ内のノードの回路素子タイプや接続関係などから複数の信号が入力されるノードを特定し、そのノードを検出する。図1に示した回路グラフ100を例に挙げると、検出部501は、ノードN1,N2からの信号が入力されるノードN3を検出することとなる。
予測値算出部502は、検出部501によって検出された一のノードに接続された前段のノード群の遅延分布に基づいて、一のノードの遅延分布の見積もり誤差に関する予測値を算出する機能を有する。前段のノード群の遅延分布は、前段のノードから出力される各信号の遅延に関する遅延分布である。具体的には、例えば、ブロックベース解析から得られる前段のノードの解析結果である。
ここで、予測値とは、複数の信号が合流するノードの遅延分布が回路全体の遅延分布に与える影響度を示す指標である。すなわち、複数の信号が合流するノードの遅延分布を、統計的MAX演算などを用いて近似的に求めるときの見積もり誤差の度合いを予測する値である。
より具体的には、例えば、予測値は、回路遅延の精度を低下させる原因となる一のノードに科される見積もり誤差の大きさに応じた誤差ペナルティを意味している。つまり、この予測値が大きくなると、一のノードの遅延分布が回路の遅延分布に与える影響が大きくなり、遅延解析の精度を低下させてしまう可能性が高い。なお、予測値を算出する算出処理の具体例は図13〜図15を用いて後述する。
判定部503は、予測値算出部502によって算出された予測値が所定の閾値以上となるか否かを判定する機能を有する。所定の閾値は、例えば、図4に示したキーボード421やマウス422などの入力装置420をユーザが操作することで、任意に設定可能である。例えば、過去の解析結果や経験則をもとに、遅延解析の精度が許容できない程度に低下してしまう予測値の値を推測して、その値を閾値に設定する。
出力部504は、判定部503によって判定された判定結果を出力する機能を有する。具体的には、例えば、予測値算出部502によって算出された予測値が所定の閾値以上となる一のノードを特定するノード情報を出力する。このノード情報から、例えば、統計的MAX演算による見積もり誤差が大きくなると予測されるノードを特定することができる。
なお、出力部504による出力形式は、ディスプレイ431での画面表示、プリンタ433での印刷出力、メモリへのデータ出力(保存)、外部のコンピュータ装置への送信のいずれであってもよい。
遅延算出部505は、判定部503によって予測値が閾値以上と判定された場合、モンテカルロシミュレーションを実行することにより、一のノードを通過するパスの遅延分布を算出する機能を有する。モンテカルロシミュレーションとは、例えば、乱数を用いてシミュレーションを繰り返し実行することにより、その結果得られる遅延分布の平均から真の遅延分布を推定する手法である。
つまり、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測された場合に、一のノードを通過するパスの遅延分布をモンテカルロシミュレーションによって求める。これにより、ブロックベース解析では見積もり誤差が大きくなる可能性が高いパスの遅延分布を精度良く見積もることができる。
ここで、遅延算出部505による算出処理の具体的な処理内容を説明する。抽出部506は、判定部503によって予測値が閾値以上と判定された場合、回路グラフの中から、一のノードを通過するパスを抽出する機能を有する。また、決定部507は、抽出部506によって抽出されたパスからなる部分回路を再解析対象回路に決定する機能を有する。
図7は、再解析対象回路の一例を示す説明図(その1)である。図7において、回路グラフ700は、解析対象の回路を構成する回路素子がノードN7〜N12としてグラフ化された有向グラフである。この回路グラフ700において、複数の信号が入力されるノードN9の予測値が閾値以上であるとする。
この場合、抽出部506は、回路グラフ700の中から、予測値が閾値以上であるノードN9を通過するパスP1およびパスP2を抽出する。また、決定部507は、抽出部506によって抽出されたパスP1,P2からなる部分回路を再解析対象回路710に決定する。
そして、遅延算出部505は、モンテカルロシミュレーションを実行することにより、決定部507によって決定された再解析対象回路710の遅延分布を算出する。これにより、例えば、統計的MAX演算による見積もり誤差が大きくなると予測されるノードN9を通過するパスP1,P2からなる部分回路の遅延分布を精度良く見積もることができる。
具体的には、例えば、図6に示したセルライブラリ600の中から、再解析対象回路710内のノードN7〜N9,N12を表わす回路素子の遅延情報600−1〜600−nを抽出する。そして、抽出された遅延情報600−1〜600−n(例えば、遅延分布パラメータ)を用いて、モンテカルロシミュレーションを実行することにより、再解析対象回路710の遅延分布を算出することができる。
出力部504は、遅延算出部505によって算出された算出結果を出力する機能を有する。具体的には、例えば、出力部504は、回路グラフ700に関するブロックベース解析の解析結果とともに、再解析対象回路710に関するモンテカルロシミュレーションの解析結果を出力する。これにより、統計的MAX演算による見積もり誤差が大きくなると予測されるノードを通過するパスからなる部分回路の遅延分布を正確に表わす解析結果を得ることができる。
また、判定部503は、一のノードがクリティカルパスに含まれるか否かを判定する機能を有する。クリティカルパスとは、パスの遅延が目標周波数を達成するための制約を満たさないパスである。回路グラフ内のクリティカルパスは、例えば、既存技術であるSTAまたはSSTA手法を用いたタイミング解析の解析結果から検出することができる。
また、判定部503は、予測値算出部502によって算出された予測値が所定の閾値以上で、かつ、一のノードがクリティカルパスに含まれるか否かを判定することとしてもよい。つまり、統計的MAX演算による見積もり誤差が大きくなると予測され、かつ、回路全体の遅延に大きな影響を与える可能性が高いクリティカルパスに含まれるか否かを判定する。
さらに、遅延算出部505は、判定部503によって予測値が閾値以上で、かつ、一のノードがクリティカルパスに含まれると判定された場合、モンテカルロシミュレーションを実行することにより、一のノードを通過するパスの遅延分布を算出することとしてもよい。
図8は、再解析対象回路の一例を示す説明図(その2)である。図8において、回路グラフ800は、解析対象の回路を構成する回路素子がノードN13〜N21としてグラフ化された有向グラフである。この回路グラフ800において、複数の信号が入力されるノードN16およびノードN19の予測値が閾値以上であるとする。また、図8中、P3は、クリティカルパスである。
この場合、抽出部506は、回路グラフ800の中から、予測値が閾値以上で、かつ、クリティカルパスP3に含まれるノードN16を通過するパスP3,P4を抽出する。また、決定部507は、抽出部506によって抽出されたパスP3,P4からなる部分回路を再解析対象回路810に決定する。そして、遅延算出部505は、モンテカルロシミュレーションを実行することにより、再解析対象回路810の遅延分布を算出する。
このように、予測値が閾値以上で、かつ、クリティカルパスに含まれるノードN16を通過するパスを再解析対象回路810に決定することにより、単に予測値が閾値以上のノードN16,N19を通過するパスからなる部分回路を再解析対象回路に決定する場合に比べて、再解析対象の回路規模を小さくし、遅延解析の高速化を図ることができる。
また、判定部503は、一のノードの遅延分布に関するパラメータの変化割合を示す素子感度が所定の閾値以上であるか否かを判定する機能を有する。ここで、素子感度とは、一のノードを表わす回路素子の遅延分布の平均値を微小修正(例えば、1[ps])するときの回路遅延の変化割合のことである。
すなわち、この素子感度が大きければ大きいほど、少ない修正作業で解析対象の回路遅延を大幅に改善することができる。一のノードの素子感度は、不図示のデータベースやセルライブラリ600からの抽出によって取得することとしてもよい。なお、素子感度は、例えば、既存技術であるSTAまたはSSTA手法によるタイミング解析から求めることができる。素子感度を求める具体的な手法は、例えば、特開2006−268479号公報を参考にすることができる。
また、判定部503は、予測値が所定の閾値以上で、かつ、素子感度が所定の閾値以上か否かを判定することとしてもよい。つまり、統計的MAX演算による見積もり誤差の度合いが大きくなると予測され、かつ、回路遅延の改善可能性が高いノードであるか否かを判定する。
さらに、遅延算出部505は、判定部503によって予測値が所定の閾値以上で、かつ、素子感度が閾値以上と判定された場合、モンテカルロシミュレーションを実行することにより、一のノードを通過するパスの遅延分布を算出することとしてもよい。
図9は、再解析対象回路の一例を示す説明図(その3)である。ここでは、この回路グラフ800において、ノードN16およびノードN19の予測値が閾値以上であり、また、ノードN19の素子感度が閾値以上であるとする。
この場合、抽出部506は、回路グラフ800の中から、予測値が閾値以上で、かつ、素子感度が閾値以上となるノードN19を通過するパスP4,P5を抽出する。また、決定部507は、抽出部506によって抽出されたパスP4,P5からなる部分回路を再解析対象回路900に決定する。そして、遅延算出部505は、モンテカルロシミュレーションを実行することにより、再解析対象回路900の遅延分布を算出する。
このように、予測値が閾値以上で、かつ、素子感度が閾値以上となるノードN19を通過するパスを再解析対象回路900に決定することにより、単に予測値が閾値以上のノードN16,N19を通過するパスを再解析対象回路に決定する場合に比べて、再解析対象の回路規模を小さくし、遅延解析の高速化を図ることができる。
また、遅延算出部505は、例えば、判定部503によって予測値が所定の閾値以上で、かつ、感度が閾値以上で、かつ、クリティカルパスに含まれると判定された場合、モンテカルロシミュレーションを実行することにより、一のノードを通過するパスの遅延分布を算出することとしてもよい。これによれば、上述の例よりも再解析対象の回路規模をさらに小さくし、遅延解析のより効果的な高速化を図ることができる。
また、遅延算出部505は、判定部503によって予測値が閾値以上と判定された場合、モンテカルロシミュレーションを実行することにより、一のノードを含むサブツリーの遅延分布を算出する機能を有する。ここで、サブツリーとは、一のノードと当該一のノードよりも後段のノード群とからなるツリー状の部分回路である。
具体的には、例えば、ブロックベース解析から得られる一のノードの前段のノードまでの遅延を表わす遅延分布を入力として、モンテカルロシミュレーションを実行することにより、一のノードを含むサブツリーの遅延分布を算出する。
また、上述したように、遅延算出部505は、予測値が閾値以上か否かの判定結果だけではなく、クリティカルパスに含まれるか否か、さらには、素子感度が閾値以上か否かの判定結果に応じて、モンテカルロシミュレーションを実行することにより、一のノードを含むサブツリーの遅延分布を算出することとしてもよい。
切替部508は、判定部503によって予測値が閾値以上と判定された場合、回路グラフの遅延分布を算出する遅延解析の実行を、ブロックベース解析からモンテカルロシミュレーションに切り替える機能を有する。すなわち、ブロックベース解析の実行途中において、予測値が閾値以上と判定された場合、ブロックベース解析を打ち切って、モンテカルロシミュレーションに切り替える。
また、遅延算出部505は、切替部508によってブロックベース解析からモンテカルロシミュレーションに切り替えられた結果、モンテカルロシミュレーションを実行することにより、一のノードを含むサブツリーの遅延分布を算出する機能を有する。具体的には、例えば、ブロックベース解析から得られる一のノードの前段のノードの遅延分布を入力として、モンテカルロシミュレーションを実行することにより、一のノードを含むサブツリーの遅延分布を算出する。
図10は、切替処理の概要を示す説明図(その1)である。この回路グラフ1000において、ノードN24の予測値が閾値以上であるとする。この場合、切替部508は、ノードN24の前段のノードN22,N23の遅延分布が算出された時点で、ブロックベース解析を打ち切って、回路グラフ1000の遅延分布を算出する遅延解析の実行を、ブロックベース解析からモンテカルロシミュレーションに切り替える。
また、抽出部506は、回路グラフ1000の中から、ノードN24を含むサブツリー1010を抽出する。このサブツリー1010は、ノードN24からノードN25に辿り着くまでのパスからなる部分回路である。そして、遅延算出部505は、モンテカルロシミュレーションを実行することにより、抽出部506によって抽出されたサブツリー1010の遅延分布を算出する。
これにより、例えば、統計的MAX演算による見積もり誤差が大きくなると予測されるノードN24を含むサブツリー1010の遅延分布を精度良く見積もることができる。また、ノードN24の予測値が閾値以上と判定された場合に、ブロックベース解析を打ち切ることにより、サブツリー1010の遅延分布を算出するためのブロックベース解析にかかる解析処理を削減することができる。
また、遅延算出部505は、切替部508によって切り替えられた結果、モンテカルロシミュレーションを実行することにより、一のノードの遅延分布を算出することとしてもよい。すなわち、ブロックベース解析の実行途中において、予測値が閾値以上と判定された場合、ブロックベース解析を打ち切って、一のノードの遅延分布をモンテカルロシミュレーションによって算出する。
さらに、切替部508は、遅延算出部505によって一のノードの遅延分布が算出された結果、回路グラフの遅延分布を算出する遅延解析の実行を、モンテカルロシミュレーションからブロックベース解析に切り替えることとしてもよい。そして、遅延算出部505は、切替部508によってモンテカルロシミュレーションからブロックベース解析に切り替えられた結果、一のノードの遅延分布を用いて、ブロックベース解析を実行することにより、一のノードよりも後段のノードの遅延分布を算出することとしてもよい。
図11は、切替処理の概要を示す説明図(その2)である。この回路グラフ1100において、ノードN28の予測値が閾値以上であるとする。この場合、切替部508は、ノードN28の前段のノードN26,N27の遅延分布が算出された時点で、ブロックベース解析を打ち切って、回路グラフ1100の遅延分布を算出する遅延解析の実行を、ブロックベース解析からモンテカルロシミュレーションに切り替える。
また、抽出部506は、回路グラフ1100の中から、ノードN28を抽出する。そして、遅延算出部505は、モンテカルロシミュレーションを実行することにより、抽出部506によって抽出されたノードN28の遅延分布を算出する。
このあと、切替部508は、回路グラフ1100の遅延分布を算出する遅延解析の実行を、モンテカルロシミュレーションからブロックベース解析に切り替える。そして、遅延算出部505は、ノードN28の遅延分布を用いて、ブロックベース解析を実行することにより、ノードN28よりも後段のノード(終点Gまで)の遅延分布を算出する。
このように、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードN28の遅延分布のみをモンテカルロシミュレーションで算出することにより、遅延解析の高速化および高精度化を図ることができる。
なお、出力部504によって出力される遅延算出部505の算出結果は、解析対象の回路グラフの遅延分布であってもよく、また、回路グラフ内のパスごとの遅延分布であってもよい。さらに、遅延解析の実行手段(ブロックベース解析、モンテカルロシミュレーション)に応じた算出結果をそれぞれ出力することとしてもよい。
また、出力部504は、解析対象の回路グラフのうち、決定部507によって決定された再解析対象回路を表わす再解析対象回路グラフを出力することとしてもよい。図12は、ディスプレイの表示画面の一例を示す説明図である。図12において、ディスプレイ431には、図8に示した回路グラフ800に関する再解析対象回路を表わす再解析対象回路グラフ1200が表示されている。
これによれば、複数の信号が合流するノードN16の予測値が閾値以上となっていることが分かる。さらに、ノードN16を通過するパスからなる再解析対象回路グラフ1200がモンテカルロシミュレーションによる解析対象となることが分かる。
また、ディスプレイ431において、例えば、キーボード421やマウス422を操作することにより、カーソルCを移動させてYesボタンB1をクリックすると、モンテカルロシミュレーションによる遅延解析の実行を開始することができる。
一方で、カーソルCを移動させてNoボタンB2をクリックすると、例えば、再解析対象回路グラフ1200に関する回路情報がHDや光ディスク411などに記録されることとしてもよく、また、モンテカルロシミュレーションによる遅延解析の実行を中止することとしてもよい。さらに、光ディスク411などに記録された再解析対象回路グラフ1200に関する回路情報を用いて、外部のコンピュータ装置で再解析対象回路グラフ1200のモンテカルロシミュレーションを実行することとしてもよい。
(予測値算出部による算出処理)
ここで、予測値算出部502による算出処理の具体例について説明する。予測値算出部502は、例えば、前段のノード群の遅延の上限値のばらつきを表わす上限遅延分布と、前段のノード群の遅延の下限値のばらつきを表わす下限遅延分布とを用いて、予測値を算出することができる。
上限遅延分布および下限遅延分布は、例えば、外部の装置から取得することとしてもよく、また、不図示のデータベースやライブラリからの抽出によって取得することとしてもよい。さらに、既存の手法を用いて一のノードの前段のノード群の遅延分布から求めることとしてもよい。
なお、上限遅延分布および下限遅延分布の具体的な求め方は、例えば、Aseem Agarwal,David Blaauw,Vladimir Zolotov,Sarma Vrudhula“Statistical Timing Analysis using Bounds” “In Proc.of DATE,page 62−67” 2003 IEEEを参照することができる。
ここで、予測値算出部502は、例えば、前段のノード群の遅延の上限値のばらつきを表わす上限遅延分布の平均値と、前段のノード群の遅延の下限値のばらつきを表わす下限遅延分布の平均値とを用いて、予測値を算出することができる。
図13は、予測値算出手法の概要を示す説明図(その1)である。図13において、上限遅延分布Pupperは、ノードNの前段のノード群Nx,Ny,Nzの遅延の上限値のばらつきを表わす確率密度分布である。また、下限遅延分布Plowerは、ノードNの前段のノード群Nx,Ny,Nzの遅延の下限値のばらつきを表わす確率密度分布である。
ここで、上限遅延分布Pupperの平均値をmupper、下限遅延分布Plowerの平均値をmlowerとすると、ノードNの遅延分布の見積もり誤差に関する予測値Zは、例えば、下記式(4)によって求めることができる。
Z=mupper−mlower …(4)
また、予測値算出部502は、例えば、前段のノード群の遅延の上限値のばらつきを表わす上限遅延分布の平均値および標準偏差と、前段のノード群の遅延の下限値のばらつきを表わす下限遅延分布の平均値および標準偏差とを用いて、予測値を算出することができる。
図14は、予測値算出手法の概要を示す説明図(その2)である。図14において、上限遅延分布Pupperの標準偏差をσupper、下限遅延分布Plowerの標準偏差をσlowerとすると、ノードNの遅延分布の見積もり誤差に関する予測値Zは、例えば、下記式(5)によって求めることができる。ただし、平均値に加算する値(3σupperおよび3σlower)は、例えば、平均値とその値との加算値を遅延の最悪値とした場合に、歩留まりが99%程度となる値である。
Z=(mupper+3σupper)−(mlower+3σlower) …(5)
また、予測値算出部502は、前段のノード群の遅延分布のうち、平均値が最大となる一の遅延分布の平均値から所定範囲内に含まれる当該一の遅延分布とは異なる遅延分布の数を、予測値としてもよい。この所定範囲は、任意に設定可能である。例えば、標準偏差σを用いて、平均値から±3σと設定することができる。
図15は、予測値算出手法の概要を示す説明図(その3)である。図15において、遅延分布Px,Py,Pzは、ノードNの前段のノード群Nx,Ny,Nzの遅延分布である。また、遅延分布Px,Py,Pzの平均値は、それぞれmx,my,mz(mx>mz>my)である。
ここで、上記所定範囲が平均値から±3σと設定されている場合、遅延分布Pxの標準偏差をσxとすると、遅延分布Pxの平均値mxから±3σxの範囲内に含まれる遅延分布(ここでは、遅延分布Pzのみ)の数「1」を予測値とする。なお、図15中、各遅延分布Px,Py,Pzは、平均値mx,my,mzから適当な範囲内(例えば、平均値から±6σ)で切断されていることとする。
(遅延解析支援装置の遅延解析処理手順)
つぎに、本実施の形態にかかる遅延解析支援装置400の遅延解析処理手順について説明する。図16および図17は、遅延解析支援装置の遅延解析処理手順の一例を示すフローチャート(その1)である。
図16のフローチャートにおいて、まず、遅延解析支援装置400は、解析対象回路に関する回路情報が入力されるのを待って(ステップS1601:No)、回路情報が入力された場合(ステップS1601:Yes)、その回路情報から解析対象の回路グラフを生成する(ステップS1602)。
このあと、検出部501により、解析対象の回路グラフをトポロジカルに走査して、回路グラフの中からノードを検出する(ステップS1603)。そして、遅延算出部505により、ブロックベース解析を実行して、検出されたノードの遅延分布を算出する(ステップS1604)。
つぎに、ステップS1603において検出されたノードが、複数の信号が入力される一のノードか否かを判断する(ステップS1605)。ここで、複数の信号が入力される一のノードが検出された場合(ステップS1605:Yes)、図17に示すステップS1701に移行する。
図17のフローチャートにおいて、まず、予測値算出部502により、検出部501によって検出された一のノードに接続された前段のノード群の遅延分布に基づいて、一のノードの遅延分布の見積もり誤差に関する予測値を算出する予測値算出処理を実行する(ステップS1701)。
このあと、判定部503により、算出された予測値が所定の閾値以上となるか否かを判定する(ステップS1702)。ここで、予測値が閾値未満であった場合(ステップS1702:No)、図16に示したステップS1606に移行する。
一方、予測値が閾値以上であった場合(ステップS1702:Yes)、判定部503により、一のノードがクリティカルパスに含まれるか否かを判定する(ステップS1703)。ここで、一のノードがクリティカルパスに含まれていない場合(ステップS1703:No)、図16に示したステップS1606に移行する。
一方、一のノードがクリティカルパスに含まれる場合(ステップS1703:Yes)、判定部503により、一のノードの遅延分布に関するパラメータの変化割合を示す素子感度が所定の閾値以上であるか否かを判定する(ステップS1704)。ここで、素子感度が閾値未満であった場合(ステップS1704:No)、図16に示したステップS1606に移行する。
一方、素子感度が閾値以上であった場合(ステップS1704:Yes)、抽出部506により、回路グラフの中から一のノードを通過するパスを抽出する(ステップS1705)。そして、決定部507により、抽出されたパスからなる部分回路を再解析対象回路に決定して(ステップS1706)、図16に示したステップS1606に移行する。
図16のフローチャートに戻り、ステップS1605において、複数の信号が入力される一のノードが検出されなかった場合(ステップS1605:No)、検出部501によって検出されていない未検出のノードの有無を判断し(ステップS1606)、未検出のノードがある場合は(ステップS1606:Yes)、ステップS1603に戻って一連の処理を繰り返す。
一方、未検出のノードがない場合は(ステップS1606:No)、図17に示したステップS1706において決定される再解析対象回路の有無を判断する(ステップS1607)。ここで、再解析対象回路がある場合(ステップS1607:Yes)、遅延算出部505により、モンテカルロシミュレーションを実行して、決定部507によって決定された再解析対象回路の遅延分布を算出する(ステップS1608)。
そして、出力部504により、ステップS1604およびステップS1608において算出された算出結果を出力して(ステップS1609)、本フローチャートによる一連の処理を終了する。
一方、ステップS1607において、再解析対象回路がない場合(ステップS1607:No)、出力部504により、ステップS1604において算出された算出結果を出力して(ステップS1609)、本フローチャートによる一連の処理を終了する。
これにより、統計的MAX演算などによる近似解の見積もり誤差が大きくなると予測されるノードのうち、回路遅延に与える影響が大きいクリティカルパス上に存在し、かつ、回路遅延の改善可能性が高いノードを通過するパスからなる部分回路の遅延分布をモンテカルロシミュレーションで自動的に求めることができる。
つぎに、遅延解析処理手順の他の一例について説明する。図18は、遅延解析支援装置の遅延解析処理手順の一例を示すフローチャート(その2)である。図18のフローチャートにおいて、まず、遅延解析支援装置400は、解析対象回路に関する回路情報が入力されるのを待って(ステップS1801:No)、回路情報が入力された場合(ステップS1801:Yes)、その回路情報から解析対象の回路グラフを生成する(ステップS1802)。
このあと、検出部501により、解析対象の回路グラフをトポロジカルに走査して、回路グラフの中からノードを検出する(ステップS1803)。そして、検出されたノードが、複数の信号が入力される一のノードか否かを判断する(ステップS1804)。
ここで、複数の信号が入力される一のノードが検出された場合(ステップS1804:Yes)、予測値算出部502により、検出部501によって検出された一のノードに接続された前段のノード群の遅延分布に基づいて、一のノードの遅延分布の見積もり誤差に関する予測値を算出する予測値算出処理を実行する(ステップS1805)。
このあと、判定部503により、算出された予測値が所定の閾値以上となるか否かを判定する(ステップS1806)。ここで、予測値が閾値以上であった場合(ステップS1806:Yes)、遅延算出部505により、モンテカルロシミュレーションを実行して、一のノードの遅延分布を算出する(ステップS1807)。
一方、予測値が閾値未満であった場合(ステップS1806:No)、遅延算出部505により、統計的MAX演算を用いて、一のノードの遅延分布を算出する(ステップS1808)。このあと、検出部501によって検出されていない未検出のノードの有無を判断し(ステップS1810)、未検出のノードがある場合は(ステップS1810:Yes)、ステップS1803に戻って一連の処理を繰り返す。
また、ステップS1804において、複数の信号が入力される一のノードが検出されなかった場合(ステップS1804:No)、遅延算出部505により、統計的SUM演算を用いて、ステップS1803において検出されたノードの遅延分布を算出して(ステップS1809)、ステップS1810に移行する。
そして、ステップS1810において、未検出のノードがない場合は(ステップS1810:No)、出力部504により、遅延算出部505によって算出された算出結果を出力して(ステップS1811)、本フローチャートによる一連の処理を終了する。
これにより、統計的MAX演算などによる近似解の見積もり誤差が大きくなると予測されるノードのみをモンテカルロシミュレーションで自動的に求めることができる。
つぎに、遅延解析処理手順のさらに他の一例について説明する。図19および図20は、遅延解析支援装置の遅延解析処理手順の一例を示すフローチャート(その3)である。
図19のフローチャートにおいて、まず、遅延解析支援装置400は、解析対象回路に関する回路情報が入力されるのを待って(ステップS1901:No)、回路情報が入力された場合(ステップS1901:Yes)、その回路情報から解析対象の回路グラフを生成する(ステップS1902)。
このあと、検出部501により、解析対象の回路グラフをトポロジカルに走査して、回路グラフの中からノードを検出する(ステップS1903)。そして、検出されたノードが、複数の信号が入力される一のノードか否かを判断する(ステップS1904)。
ここで、複数の信号が入力される一のノードが検出された場合(ステップS1904:Yes)、予測値算出部502により、検出部501によって検出された一のノードに接続された前段のノード群の遅延分布に基づいて、一のノードの遅延分布の見積もり誤差に関する予測値を算出する予測値算出処理を実行する(ステップS1905)。
このあと、判定部503により、算出された予測値が所定の閾値以上となるか否かを判定する(ステップS1906)。ここで、予測値が閾値以上であった場合(ステップS1906:Yes)、抽出部506により、一のノードを含むサブツリーを抽出する(ステップS1907)。
そして、決定部507により、抽出部506によって抽出されたサブツリーを解析対象外回路に決定する(ステップS1910)。一方、予測値が閾値未満であった場合(ステップS1906:No)、遅延算出部505により、統計的MAX演算を用いて、一のノードの遅延分布を算出する(ステップS1908)。
このあと、検出部501によって検出されていない未検出のノードの有無を判断し(ステップS1911)、未検出のノードがある場合は(ステップS1911:Yes)、ステップS1903に戻って一連の処理を繰り返す。
また、ステップS1904において、複数の信号が入力される一のノードが検出されなかった場合(ステップS1904:No)、遅延算出部505により、統計的SUM演算を用いて、ステップS1903において検出されたノードの遅延分布を算出して(ステップS1909)、ステップS1911に移行する。そして、ステップS1911において、未検出のノードがない場合は(ステップS1911:No)、図20に示すステップS2001に移行する。
図20のフローチャートにおいて、まず、図19に示したステップS1910において決定された全解析対象外回路のうち任意の解析対象外回路に着目する(ステップS2001)。このあと、抽出部506により、着目する解析対象外回路の中から任意のノードを抽出する(ステップS2002)。
ここで、判定部503により、抽出されたノードがクリティカルパスに含まれるか否かを判定する(ステップS2003)。ここで、クリティカルパスに含まれている場合(ステップS2003:Yes)、判定部503により、上記ノードの遅延分布に関するパラメータの変化割合を示す素子感度が所定の閾値以上であるか否かを判定する(ステップS2004)。
ここで、素子感度が閾値以上であった場合(ステップS2004:Yes)、抽出部506により、回路グラフの中から上記ノードを通過するパスを抽出する(ステップS2005)。そして、決定部507により、抽出されたパスからなる部分回路を再解析対象回路に決定する(ステップS2006)。
このあと、図19に示したステップS1910において決定された全解析対象外回路を網羅したか否かを判断し(ステップS2007)、網羅していない場合(ステップS2007:No)、ステップS2001に戻り、未着目の解析対象外回路のうち任意の解析対象外回路に着目して(ステップS2001)、一連の処理を繰り返す。
一方、ステップS2003においてクリティカルパスに含まれていない場合(ステップS2003:No)、または、ステップS2004において素子感度が閾値未満であった場合には(ステップS2004:No)、着目する解析対象外回路のうち未抽出のノードの有無を判断する(ステップS2008)。
ここで、未抽出のノードがある場合は(ステップS2008:Yes)、ステップS2002に戻って一連の処理を繰り返す。一方、未抽出のノードがない場合は(ステップS2008:No)、ステップS2007に移行する。
そして、ステップS2007において、全解析対象外回路を網羅している場合(ステップS2007:Yes)、遅延算出部505により、モンテカルロシミュレーションを実行して、ステップS2006において決定部507によって決定された再解析対象回路の遅延分布を算出する(ステップS2009)。
最後に、出力部504により、遅延算出部505によって算出された算出結果を出力して(ステップS2010)、本フローチャートによる一連の処理を終了する。
これにより、統計的MAX演算などによる近似解の見積もり誤差が大きくなると予測されるノードを含むサブツリーの遅延分布をモンテカルロシミュレーションで自動的に求めることができる。
(予測値算出処理手順)
つぎに、図17に示したステップS1701(または、図18に示したステップS1805、図19に示したステップS1905)の予測値算出処理手順について説明する。図21は、予測値算出処理手順の一例を示すフローチャート(その1)である。図21のフローチャートにおいて、まず、複数の信号が入力される一のノードの前段のノード群の遅延分布を取得する(ステップS2101)。
このあと、取得された前段のノード群の遅延分布に基づいて、前段のノード群の遅延の上限値を統計的に表わす上限遅延分布を算出する(ステップS2102)。さらに、前段のノード群の遅延分布に基づいて、前段のノード群の遅延の下限値を統計的に表わす下限遅延分布を算出する(ステップS2103)。
そして、上限遅延分布の平均値、標準偏差および下限遅延分布の平均値、標準偏差を上記式(4)または(5)に代入することにより、一のノードの遅延分布の見積もり誤差に関する予測値を算出して(ステップS2104)、図17に示したステップS1702に移行する。
つぎに、予測値算出処理手順の他の一例について説明する。図22は、予測値算出処理手順の一例を示すフローチャート(その2)である。ここでは、複数の信号が入力される一のノードの前段のノードN(i=1,2,…,t)の遅延分布をP、平均値をm、標準偏差をσとする。なお、αは、任意に設定可能な整数である(例えば、α=2.5、3.0など)。
また、前段のノードN(i=1,2,…,K)の遅延分布Pのうち、平均値mが最大のものをPmaxとし、その平均値をmmax、その標準偏差をσmaxとする。さらに、予測値をeN、初期値を「eN=0」とする。
図22のフローチャートにおいて、まず、複数の信号が入力される一のノードの前段のノードの遅延分布Pを取得する(ステップS2201)。このあと、i=1として(ステップS2202)、P=Pmaxであるか否かを判断する(ステップS2203)。ここで、P=Pmaxではない場合(ステップS2203:No)、(m+3σ)>(mmax−ασmax)であるか否かを判断する(ステップS2204)。
ここで、(m+3σ)>(mmax−ασmax)である場合(ステップS2204:Yes)、eN=eN+1とする(ステップS2205)。そして、iをインクリメントして(ステップS2206)、i>Kであるか否かを判断する(ステップS2207)。ここで、i>Kではない場合(ステップS2207:No)、ステップS2203に戻り一連の処理を繰り返す。一方、i>Kである場合(ステップS2207:Yes)、図17に示したステップS1702に移行する。
また、ステップS2203において、P=Pmaxである場合(ステップS2203:Yes)、ステップS2206に移行する。さらに、ステップS2204において、(m+3σ)>(mmax−ασmax)ではない場合(ステップS2204:No)、ステップS2206に移行する。
以上説明したように、複数の信号が合流するノードの遅延分布を近似的に求めるときの見積もり誤差が大きくなると予測されるノードを通過するパスからなる部分回路の遅延分布をモンテカルロシミュレーションで自動的かつ正確に求めることができる。
また、上記見積もり誤差が大きくなると予測されるノードのうち、回路遅延に与える影響が大きいクリティカルパス上に存在し、さらには、回路遅延の改善可能性が高いノードを通過するパスからなる部分回路を、モンテカルロシミュレーションによる解析対象とすることにより、解析対象の回路規模を小さくし、遅延解析の高速化を図ることができる。
さらに、回路遅延を正確に見積もることにより、不要な遅延マージンを効果的に削減することができる。この結果、解析対象回路のチップ面積を削減するとともに、タイミング修正にかかる作業負担を軽減することができる。
以上のことから、本実施の形態によれば、高速かつ高精度な遅延解析をおこなうことにより、設計者の負担軽減および設計期間の短縮化を図ることができる。
なお、本実施の形態で説明した遅延解析支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
また、本実施の形態で説明した遅延解析支援装置400は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した遅延解析支援装置400の機能501〜508をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、遅延解析支援装置400を製造することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)解析対象の回路グラフをブロックベース解析して、前記回路グラフの遅延分布を見積もる遅延解析の実行をコンピュータに支援させる遅延解析支援プログラムであって、
前記コンピュータを、
前記回路グラフの中から、複数の信号が入力される一のノードを検出する検出手段、
前記検出手段によって検出された一のノードに接続された前段のノード群の遅延分布に基づいて、前記一のノードの遅延分布の見積もり誤差に関する予測値を算出する予測値算出手段、
前記予測値算出手段によって算出された予測値が所定の閾値以上となるか否かを判定する判定手段、
前記判定手段によって判定された判定結果を出力する出力手段、
として機能させることを特徴とする遅延解析支援プログラム。
(付記2)前記予測値算出手段は、
前記前段のノード群の遅延の上限値のばらつきを表わす上限遅延分布と、前記前段のノード群の遅延の下限値のばらつきを表わす下限遅延分布とを用いて、前記予測値を算出することを特徴とする付記1に記載の遅延解析支援プログラム。
(付記3)前記コンピュータを、
前記判定手段によって前記予測値が閾値以上と判定された場合、モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出する遅延算出手段として機能させ、
前記出力手段は、
前記遅延算出手段によって算出された算出結果を出力することを特徴とする付記1または2に記載の遅延解析支援プログラム。
(付記4)前記判定手段は、
前記一のノードがクリティカルパスに含まれるか否かを判定し、
前記遅延算出手段は、
前記判定手段によって前記一のノードがクリティカルパスに含まれると判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出することを特徴とする付記3に記載の遅延解析支援プログラム。
(付記5)前記判定手段は、
前記一のノードの遅延分布に関するパラメータの変化割合を示す素子感度が所定の閾値以上であるか否かを判定し、
前記遅延算出手段は、
前記判定手段によって前記素子感度が閾値以上と判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出することを特徴とする付記3または4に記載の遅延解析支援プログラム。
(付記6)前記遅延算出手段は、
前記判定手段によって前記予測値が閾値以上と判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを含むサブツリーの遅延分布を算出することを特徴とする付記3に記載の遅延解析支援プログラム。
(付記7)前記判定手段は、
前記一のノードがクリティカルパスに含まれるか否かを判定し、
前記遅延算出手段は、
前記判定手段によって前記一のノードがクリティカルパスに含まれると判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを含むサブツリーの遅延分布を算出することを特徴とする付記6に記載の遅延解析支援プログラム。
(付記8)前記判定手段は、
前記一のノードの遅延分布に関するパラメータの変化割合を示す感度が所定の閾値以上であるか否かを判定し、
前記遅延算出手段は、
前記判定手段によって前記感度が閾値以上と判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを含むサブツリーの遅延分布を算出することを特徴とする付記6または7に記載の遅延解析支援プログラム。
(付記9)前記コンピュータを、
前記判定手段によって前記予測値が閾値以上と判定された場合、前記回路グラフの遅延分布を算出する遅延解析の実行を、前記ブロックベース解析からモンテカルロシミュレーションに切り替える切替手段、
前記切替手段によって切り替えられた結果、前記ブロックベース解析から得られた前記前段のノード群の遅延分布を用いて、前記モンテカルロシミュレーションを実行することにより、前記一のノードを含むサブツリーの遅延分布を算出する遅延算出手段として機能させ、
前記出力手段は、
前記遅延算出手段によって算出された算出結果を出力することを特徴とする付記1または2に記載の遅延解析支援プログラム。
(付記10)前記遅延算出手段は、
前記切替手段によって切り替えられた結果、前記前段のノード群の遅延分布を用いて、前記モンテカルロシミュレーションを実行することにより、前記一のノードの遅延分布を算出することを特徴とする付記9に記載の遅延解析支援プログラム。
(付記11)前記切替手段は、
前記遅延算出手段によって前記一のノードの遅延分布が算出された結果、前記回路グラフの遅延分布を算出する遅延解析の実行を、前記モンテカルロシミュレーションから前記ブロックベース解析に切り替え、
前記遅延算出手段は、
前記切替手段によって切り替えられた結果、前記一のノードの遅延分布を用いて、前記ブロックベース解析を実行することにより、前記一のノードよりも後段のノードの遅延分布を算出することを特徴とする付記10に記載の遅延解析支援プログラム。
(付記12)付記1〜11のいずれか一つに記載の遅延解析支援プログラムを記録したコンピュータに読み取り可能な記録媒体。
(付記13)解析対象の回路グラフをブロックベース解析して、前記回路グラフの遅延分布を見積もる遅延解析を支援する遅延解析支援装置であって、
前記回路グラフの中から、複数の信号が入力される一のノードを検出する検出手段と、
前記検出手段によって検出された一のノードに接続された前段のノード群の遅延分布に基づいて、前記一のノードの遅延分布の見積もり誤差に関する予測値を算出する予測値算出手段と、
前記予測値算出手段によって算出された予測値が所定の閾値以上となるか否かを判定する判定手段と、
前記判定手段によって判定された判定結果を出力する出力手段と、
を備えることを特徴とする遅延解析支援装置。
(付記14)解析対象の回路グラフをブロックベース解析して、前記回路グラフの遅延分布を見積もる遅延解析を支援する遅延解析支援方法であって、
前記回路グラフの中から、複数の信号が入力される一のノードを検出する検出工程と、
前記検出工程によって検出された一のノードに接続された前段のノード群の遅延分布に基づいて、前記一のノードの遅延分布の見積もり誤差に関する予測値を算出する予測値算出工程と、
前記予測値算出工程によって算出された予測値が所定の閾値以上となるか否かを判定する判定工程と、
前記判定工程によって判定された判定結果を出力する出力工程と、
を含んだことを特徴とする遅延解析支援方法。
回路グラフの一例を示す説明図である。 従来の問題点を示す説明図である。 パスの遅延分布を示す説明図である。 本実施の形態にかかる遅延解析支援装置のハードウェア構成を示す説明図である。 遅延解析支援装置の機能的構成を示すブロック図である。 セルライブラリの記憶内容を示す説明図である。 再解析対象回路の一例を示す説明図(その1)である。 再解析対象回路の一例を示す説明図(その2)である。 再解析対象回路の一例を示す説明図(その3)である。 切替処理の概要を示す説明図(その1)である。 切替処理の概要を示す説明図(その2)である。 ディスプレイの表示画面の一例を示す説明図である。 予測値算出手法の概要を示す説明図(その1)である。 予測値算出手法の概要を示す説明図(その2)である。 予測値算出手法の概要を示す説明図(その3)である。 遅延解析支援装置の遅延解析処理手順の一例を示すフローチャート(その1a)である。 遅延解析支援装置の遅延解析処理手順の一例を示すフローチャート(その1b)である。 遅延解析支援装置の遅延解析処理手順の一例を示すフローチャート(その2)である。 遅延解析支援装置の遅延解析処理手順の一例を示すフローチャート(その3a)である。 遅延解析支援装置の遅延解析処理手順の一例を示すフローチャート(その3b)である。 予測値算出処理手順の一例を示すフローチャート(その1)である。 予測値算出処理手順の一例を示すフローチャート(その2)である。
符号の説明
100,700,800,1000,1100 回路グラフ
310,320 クリティカルパス
330 パス
400 遅延解析支援装置
501 検出部
502 予測値算出部
503 判定部
504 出力部
505 遅延算出部
506 抽出部
507 決定部
508 切替部
600 セルライブラリ
600−1〜600−n 遅延情報
710,810,900 再解析対象回路
1010 サブツリー
1200 再解析対象回路グラフ

Claims (7)

  1. 解析対象の回路グラフをブロックベース解析して、前記回路グラフの遅延分布を見積もる遅延解析の実行をコンピュータに支援させる遅延解析支援プログラムであって、
    前記コンピュータを、
    前記回路グラフの中から、複数の信号が入力される一のノードを検出する検出手段、
    前記検出手段によって検出された一のノードに接続された前段のノード群の遅延分布に基づいて、前記一のノードの遅延分布の見積もり誤差に関する予測値を算出する予測値算出手段、
    前記予測値算出手段によって算出された予測値が所定の閾値以上となるか否かを判定する判定手段、
    前記判定手段によって判定された判定結果を出力する出力手段、
    として機能させることを特徴とする遅延解析支援プログラム。
  2. 前記予測値算出手段は、
    前記前段のノード群の遅延の上限値のばらつきを表わす上限遅延分布と、前記前段のノード群の遅延の下限値のばらつきを表わす下限遅延分布とを用いて、前記予測値を算出することを特徴とする請求項1に記載の遅延解析支援プログラム。
  3. 前記コンピュータを、
    前記判定手段によって前記予測値が閾値以上と判定された場合、モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出する遅延算出手段として機能させ、
    前記出力手段は、
    前記遅延算出手段によって算出された算出結果を出力することを特徴とする請求項1または2に記載の遅延解析支援プログラム。
  4. 前記判定手段は、
    前記一のノードがクリティカルパスに含まれるか否かを判定し、
    前記遅延算出手段は、
    前記判定手段によって前記一のノードがクリティカルパスに含まれると判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出することを特徴とする請求項3に記載の遅延解析支援プログラム。
  5. 前記判定手段は、
    前記一のノードの遅延分布に関するパラメータの変化割合を示す素子感度が所定の閾値以上であるか否かを判定し、
    前記遅延算出手段は、
    前記判定手段によって前記素子感度が閾値以上と判定された場合、前記モンテカルロシミュレーションを実行することにより、前記一のノードを通過するパスの遅延分布を算出することを特徴とする請求項3または4に記載の遅延解析支援プログラム。
  6. 解析対象の回路グラフをブロックベース解析して、前記回路グラフの遅延分布を見積もる遅延解析を支援する遅延解析支援装置であって、
    前記回路グラフの中から、複数の信号が入力される一のノードを検出する検出手段と、
    前記検出手段によって検出された一のノードに接続された前段のノード群の遅延分布に基づいて、前記一のノードの遅延分布の見積もり誤差に関する予測値を算出する予測値算出手段と、
    前記予測値算出手段によって算出された予測値が所定の閾値以上となるか否かを判定する判定手段と、
    前記判定手段によって判定された判定結果を出力する出力手段と、
    を備えることを特徴とする遅延解析支援装置。
  7. 解析対象の回路グラフをブロックベース解析して、前記回路グラフの遅延分布を見積もる遅延解析を支援する遅延解析支援方法であって、
    前記回路グラフの中から、複数の信号が入力される一のノードを検出する検出工程と、
    前記検出工程によって検出された一のノードに接続された前段のノード群の遅延分布に基づいて、前記一のノードの遅延分布の見積もり誤差に関する予測値を算出する予測値算出工程と、
    前記予測値算出工程によって算出された予測値が所定の閾値以上となるか否かを判定する判定工程と、
    前記判定工程によって判定された判定結果を出力する出力工程と、
    を含んだことを特徴とする遅延解析支援方法。
JP2007302775A 2007-11-22 2007-11-22 遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法 Expired - Fee Related JP5076832B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007302775A JP5076832B2 (ja) 2007-11-22 2007-11-22 遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法
US12/193,431 US7934182B2 (en) 2007-11-22 2008-08-18 Method and apparatus for supporting delay analysis, and computer product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007302775A JP5076832B2 (ja) 2007-11-22 2007-11-22 遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法

Publications (2)

Publication Number Publication Date
JP2009129150A true JP2009129150A (ja) 2009-06-11
JP5076832B2 JP5076832B2 (ja) 2012-11-21

Family

ID=40670825

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007302775A Expired - Fee Related JP5076832B2 (ja) 2007-11-22 2007-11-22 遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法

Country Status (2)

Country Link
US (1) US7934182B2 (ja)
JP (1) JP5076832B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5056478B2 (ja) * 2008-02-28 2012-10-24 富士通株式会社 リーク電流解析プログラム、該プログラムを記録した記録媒体、リーク電流解析装置、およびリーク電流解析方法
JP5652003B2 (ja) * 2010-06-02 2015-01-14 富士通株式会社 遅延解析プログラム,遅延解析装置および遅延解析方法
US8589846B2 (en) * 2011-12-02 2013-11-19 Synopsys, Inc. Modeling transition effects for circuit optimization
US9323875B2 (en) * 2012-02-28 2016-04-26 Globalfoundries Inc. Dynamically determining number of simulations required for characterizing intra-circuit incongruent variations
US8555220B2 (en) 2012-02-29 2013-10-08 Umm Al-Qura University Timing verification method for deterministic and stochastic networks and circuits
WO2020176684A1 (en) * 2019-02-26 2020-09-03 Synopsys, Inc. Novel method to compute timing yield and yield bottleneck using correlated sample generation and efficient statistical simulation
CN111898335B (zh) * 2020-06-23 2022-07-26 北京大学 一种电路可靠性分析方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005019524A (ja) * 2003-06-24 2005-01-20 Handotai Rikougaku Kenkyu Center:Kk 半導体集積回路の性能分散系算出装置及びその算出方法
WO2007068690A1 (en) * 2005-12-16 2007-06-21 International Business Machines Corporation System and method of criticality prediction in statistical timing analysis
JP2007183932A (ja) * 2005-12-09 2007-07-19 Fujitsu Ltd タイミング解析方法及びタイミング解析装置
JP2007233550A (ja) * 2006-02-28 2007-09-13 Fujitsu Ltd 遅延解析プログラム、該プログラムを記録した記録媒体、遅延解析方法、および遅延解析装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093807A (en) * 1987-12-23 1992-03-03 Texas Instruments Incorporated Video frame storage system
JP2006268479A (ja) 2005-03-24 2006-10-05 Fujitsu Ltd 設計支援装置、設計支援方法、設計支援プログラム、および記録媒体
US7350171B2 (en) * 2005-11-17 2008-03-25 Lizheng Zhang Efficient statistical timing analysis of circuits
JP4773903B2 (ja) * 2006-07-05 2011-09-14 富士通株式会社 統計的タイミング解析の悲観的誤差を評価する方法
US8204730B2 (en) * 2008-06-06 2012-06-19 Synopsys, Inc. Generating variation-aware library data with efficient device mismatch characterization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005019524A (ja) * 2003-06-24 2005-01-20 Handotai Rikougaku Kenkyu Center:Kk 半導体集積回路の性能分散系算出装置及びその算出方法
JP2007183932A (ja) * 2005-12-09 2007-07-19 Fujitsu Ltd タイミング解析方法及びタイミング解析装置
WO2007068690A1 (en) * 2005-12-16 2007-06-21 International Business Machines Corporation System and method of criticality prediction in statistical timing analysis
JP2007233550A (ja) * 2006-02-28 2007-09-13 Fujitsu Ltd 遅延解析プログラム、該プログラムを記録した記録媒体、遅延解析方法、および遅延解析装置

Also Published As

Publication number Publication date
JP5076832B2 (ja) 2012-11-21
US20090138838A1 (en) 2009-05-28
US7934182B2 (en) 2011-04-26

Similar Documents

Publication Publication Date Title
JP5076832B2 (ja) 遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法
JP4061295B2 (ja) デジタル回路の統計的タイミング解析のためのシステムおよび方法
US7707530B2 (en) Incremental timing-driven, physical-synthesis using discrete optimization
US20060155521A1 (en) Method and apparatus for supporting verification, and computer product
US8281275B2 (en) Reducing leakage power in integrated circuit designs
JP2005512236A (ja) タイミンググラフ縮小によるタイミングモデル抽出
JP2007087342A (ja) 遅延解析プログラム、該プログラムを記録した記録媒体、遅延解析装置、および遅延解析方法
US11755797B2 (en) System and method for predicting performance, power and area behavior of soft IP components in integrated circuit design
Chowdhary et al. How accurately can we model timing in a placement engine?
JP4414444B2 (ja) 遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法
Echavarria et al. FAU: Fast and error-optimized approximate adder units on LUT-Based FPGAs
WO2010092825A1 (ja) 回路解析方法
Coward et al. Automatic datapath optimization using e-graphs
US20210384901A1 (en) Glitch power analysis and optimization engine
US20090049417A1 (en) Method of designing a circuit for optimizing output bit length and integrated circuit therefor
US8069026B2 (en) Clock gating analyzing apparatus, clock gating analyzing method, and computer product
US20060290378A1 (en) Estimation of average-case activity for digital state machines
JP2006268479A (ja) 設計支援装置、設計支援方法、設計支援プログラム、および記録媒体
Kumar et al. A framework for block-based timing sensitivity analysis
US8024684B2 (en) Apparatus, method, and computer product for estimating power consumption of LSI
Brusamarello et al. Fast and accurate statistical characterization of standard cell libraries
US11263376B1 (en) System and method for fixing unknowns when simulating nested clock gaters
JP2008225569A (ja) 遅延解析プログラム、該プログラムを記録した記録媒体、遅延解析装置および遅延解析方法
US8689161B2 (en) Methods for designing integrated circuits employing pre-determined timing-realizable clock-insertion delays and integrated circuit design tools
KR102109101B1 (ko) Ntv 영역에서의 정적 타이밍 분석 방법 및 그 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100616

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120330

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120731

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120813

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees