JP5004965B2 - 統計的タイミング解析におけるクリティカリティ予測のシステム及び方法 - Google Patents

統計的タイミング解析におけるクリティカリティ予測のシステム及び方法 Download PDF

Info

Publication number
JP5004965B2
JP5004965B2 JP2008544986A JP2008544986A JP5004965B2 JP 5004965 B2 JP5004965 B2 JP 5004965B2 JP 2008544986 A JP2008544986 A JP 2008544986A JP 2008544986 A JP2008544986 A JP 2008544986A JP 5004965 B2 JP5004965 B2 JP 5004965B2
Authority
JP
Japan
Prior art keywords
timing
edge
statistical
computer
circuit
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.)
Expired - Fee Related
Application number
JP2008544986A
Other languages
English (en)
Other versions
JP2009519528A (ja
Inventor
ゾロトフ、ウラジミール
ヴィスウェスワリア、チャンドラムーリ
ヴェントケイツワラン、ナテーサン
キョン、チンチュン
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009519528A publication Critical patent/JP2009519528A/ja
Application granted granted Critical
Publication of JP5004965B2 publication Critical patent/JP5004965B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Description

本発明は、デジタル集積回路の設計自動化に関する。より具体的には、本発明は遅延変動の存在下におけるデジタル回路の統計的静的タイミング解析に関する。
集積回路技術の世代交代ごとにばらつきが比例的に増大することが観察されている。そうしたばらつきの原因は、例えば、製造における変動、装置の疲労、環境の変動(例えば、温度及び供給電力の電圧など)、及び位相同期ループ(PLL)変動を含む。このような変動の存在下では、各々の信号伝搬アーク(signal propagation arc)(例えばタイミング・アーク)のクリティカリティ、即ち、注目する信号伝搬アークを通るクリティカル・パスを有する集積回路(例えばチップ)を製造する確率を知ることが望ましい。検査、タイミングレポート、及び回路最適化を含む種々の用途において、このようなことができれば利益が得られる。
従来技術の「確定的」タイミング法は、固定されたプロセス・コーナ又は「ケース」でタイミング解析(timing)を実行する。従って、回路遅延の確率分布、及び信号伝搬アークのクリティカリティを予測することは困難なものとなり得る。しかも、確定的タイミング法においては、クリティカル・パスは一意であり、従って、最適化方法における改善の自明な目標である。統計的タイミングにおいては、各々の経路及び各々のエッジは、ある大きさの非負の、クリティカルとなる確率を有することが観察される。集積回路の手動又は自動最適化をガイドするために、このようなエッジ・クリティカリティ確率を大小のオーダーで予測することが望ましい。
クリティカリティ確率を予測する従来技術の方法は、相関を正確に考慮することが非能率的及び不可能であるといった問題の影響を受ける。クリティカリティを計算する1つの方法はモンテカルロ・シミュレーションを直接的なやり方で適用することであり、これは、所与の確率分布を満たすプロセス・パラメータの多数の無作為な組み合わせを生成し、次いで確定的タイミング解析を繰り返し実行して、プロセス・パラメータの個々の組み合わせの各々についてクリティカルなタイミング・アークを検出することによるものである。特定のエッジが最もクリティカルな経路上にあるような回路の分率が、そのエッジのクリティカリティ確率である。しかしながら、この手法は余りにも多くの確定的タイミング解析を必要とするので、計算が非能率的になり過ぎる恐れがある。
パラメータ化統計的静的解析を用いる別の従来技術の方法は、「System and Method for Probabilistic Criticality Prediction of Digital Circuits」という名称の特許文献1に記載されている。しかしながら、この手法は、「タイトネス確率(tightness probabilities)」が独立した確率であると暗黙的に仮定している。タイトネス確率は、信号伝播経路の再収束と、共通のグローバルな変動源への依存性との両方に起因して強く相関することがあるので、この仮定には欠点があり、クリティカリティ確率の不正確な予測に繋がる。
よって、上記の問題を克服する必要がある。
米国特許出願公開番号第2005/0066298号 米国特許出願公開番号第2005/0065765号
本発明の態様は、デジタル回路におけるクリティカリティ予測のためのシステム及び方法に関する。具体的には、本発明の態様は、パラメータ化統計的静的タイミング解析(statistical static timing analysis(SSTA))の際にタイミング・グラフの各エッジのクリティカリティ確率を計算するための方法を開示する。
回路のタイミング・グラフのエッジのクリティカリティ確率を判定するための方法を提供する方法が説明される。本方法は、タイミング解析される回路に対応する有向非循環タイミング・グラフを形成するステップと、回路の統計的タイミング解析を実行するステップと、注目する各エッジについて、タイミング・グラフを複数の部分に分割するカットセットを定めるステップと、カットセット内の各エッジについて、エッジ・スラックを判定するステップと、カットセット内の全てのエッジ・スラックの統計的極大(statistical maximum)を計算するステップと、各エッジのエッジ・クリティカリティ確率を統計的極大から推論するステップと、を含む。
本発明は、さらに、回路の統計的タイミング解析において、クリティカリティを予測するためのシステムであって、タイミング解析される回路に対応する有向非循環タイミング・グラフを形成するための手段と、回路の統計的タイミング解析を実行するための手段と、タイミング・グラフの各レベルについて、タイミング・グラフを複数の部分に分割するカットセットを定めるための手段と、カットセット内の各エッジについて、エッジ・スラックを判定するための手段と、カットセット内の全てのエッジ・スラックの統計的極大を計算するための手段と、各エッジのエッジ・クリティカリティ確率を統計的極大から推論するための手段と、を含むシステムを提供する。
本発明は、また、回路のタイミング特性を最適化するためのアプリケーションを配置するための方法であって、タイミング解析される回路に対応する有向非循環グラフを形成し、回路の統計的タイミング解析を実行し、注目する各エッジについて、タイミング・グラフを複数の部分に分割するカットセットを定め、カットセットの中の各々のエッジについて、エッジ・スラックを判定し、カットセット内中の全てのエッジ・スラックの統計的極大を計算し、且つ、各エッジのエッジ・クリティカリティ確率を統計的極大から推論するように作動可能なコンピュータ・インフラストラクチャを準備するステップを含む方法を提供する。
添付の図面を参照して、以下に本発明の好ましい実施形態が説明される。
本発明の態様は、デジタル回路の統計的タイミング解析において、信号伝搬アークのクリティカリティを予測するためのシステム及び方法を説明する。ある信号伝搬アークのクリティカリティは、そのアークがクリティカルである確率(即ち、あるタイミング・アークがタイミング・クリティカルな(timing-critical)信号伝搬経路に属するチップを製造する確率)である。
図1は、本発明の1つの実施形態による統計的静的タイミング解析システム100の概略的なブロック図である。システム100は、本明細書において代替的にツール100とも呼ばれる。システム100は複数の入力110、120、130、140を受け取るように構成される。第1の入力は、解析される回路の構造を表す回路ネットリスト110である。第2の入力は、タイミング・アサーション120(例えばタイミング制約条件)の集合である。タイミング・アサーション120は、典型的には、プライマリ入力における到達時間と、プライマリ出力における要求到達時間と、クロックの位相に関する情報と、プライマリ出力によって駆動される外部負荷の詳細とを含む。タイミング・アサーション120は、確定的な数、又は独立した確率分布若しくは相関した確率分布、或いはそれらのいずれかの組み合わせの形式とすることができる。
第3の入力は、タイマがゲート又は配線の遅延を遅延モデル変数(例えば、入力スルー又は立ち上がり/立ち下がり時間、及び出力負荷)の関数として、並びに変動源の関数として判定できるようにする、パラメータ化された遅延モデル130の集合である。例えば、特許文献2、「System and Method for Statistical Timing Analysis of Digital Circuits」に記載のような一次線形モデルを用いて、遅延を判定することができる。システム100は、変動源140の統計量に関する情報を受け取るように構成される。変動源140は、典型的には、各々の変動源に関する平均値と標準偏差とを伴う変動源のリストを含む。
確率的な又は統計的な静的タイミングモジュール150は、入力110、120、130、140を受け取って、回路の全てのノードにおける到達時間及び要求時間のパラメータ化された一次モデルで注釈された回路のタイミング・グラフ160(例えば出力160)を生成するように構成される。パラメータ化された一次モデル160は、一次線形モデルの形とすることができる。到達時間及び要求時間のパラメータ化されたモデルで注釈されたタイミング・グラフ160は、タイミング・アークのクリティカリティを計算するように構成されたユニット170によって受け取られる。ユニット170は、タイミング・アークのクリティカリティ180を計算する。タイミング・アークのクリティカリティ180は、製造されたチップにおけるタイミング・アークのクリティカリティ確率を示す。例えば、タイミング・アークAのクリティカリティは、タイミング・クリティカルな信号伝搬経路上にタイミング・アークAがある回路を製造する確率を与える。
図2は、本発明の1つの実施形態による、タイミング・アークのクリティカリティによって駆動される回路最適化システム200の概略図である。システム200は、回路最適化モジュール240と、静的タイミング解析装置250とを含む。回路最適化モジュール240は、回路ネットリスト210、タイミング・アサーションの集合、パラメータ化された遅延モデル220、及び最適化目標及び制約条件230を入力として受け取るように構成される。
回路ネットリスト210は、最適化される回路の構造を表す。
パラメータ化された遅延モデル220の集合は、静的タイミング解析装置250がゲート又は配線の遅延を遅延モデル変数(例えば、入力スルー又は立ち上がり/立ち下がり時間、及び出力負荷)の関数として、並びに変動源の関数として判定できるようにする。例えば、特許文献2、「System and Method for Statistical Timing Analysis of Digital Circuits」に記載のような一次線形モデルを用いて、遅延を判定することができる。
最適化制約条件230は、例えば、タイミング制約条件、漏れ及びスイッチング電力制約条件、信号勾配制約条件、面積制約条件、及びノイズ制約条件を含むことができる。
最適化目標230は、最適化装置240が達成することが望まれる目標を指定する。例えば、最適化目標は、チップ面積又は電力を最小化すること、製造歩留まり又は性能を最大化することなど、とすることができる。
回路最適化装置240は、種々の入力を受け入れて最適化された回路260を生成し、これはネットリスト又はデータベースの形式とすることができる。最適化された回路260は、最適化目標230によって指定された特性を含み、かつ最適化制約条件230を満たす。最適化された回路260は、ネットリスト210によって指定された回路とは異なっていてもよい。その違いは、例えば、セルの寸法若しくは種類、又はトポロジーに関するものであり得る。
最適化の間に、最適化装置240は静的タイミング解析装置250と対話して、回路のタイミング特性を推定する。さらに、最適化装置240は、タイミング・アークのクリティカリティの計算装置250と対話して、セルの寸法若しくはセルの種類の変更の候補として適切な回路セル、又は他の回路セルの最適化変形を選択する。最適化は、離散型であっても連続型であってもよく、特定のカスタム回路設計は、ライブラリ・セルから構成されても、されなくてもよいことが理解されるべきである。当業者であれば、このような種々の最適化シナリオに適用することが可能な本発明の変種を作り出すことができるであろう。
本明細書全体を通じて、タイミング・アークのクリティカリティを計算するために、適切な場合には、以下の定義が用いられる。
デジタル・システムは、典型的には、クロックサイクル又は「ティック」ごとに何らかの計算を実行する回路を基にして動作する。特定のクロックサイクルにおいて、所与の信号は、回路に印加された入力に応じて、スイッチングしない場合があり、一度スイッチングする場合があり、又は何度もスイッチングする場合がある。各々のクロックサイクル内で、システムにおける全ての信号の各々に関して、正確なタイミング(例えば、早モード到達時間(early mode arrival time)、即ち「早到達時間」、及び遅モード到達時間(late mode arrival time)、即ち「遅到達時間」)を保証することが望ましい。
早モード到達時間とは、信号がスイッチングできる(例えば、前回のクロックサイクルの間のその信号の安定した論理状態から変化する)可能性がある最も早い時間であると定義される。早モード到達時間は、前回のサイクルが「定常に戻り(settle down)」、且つ現在のクロックサイクルの間に論理値が変化する即ちスイッチングする前に正しい論理値を記録したということを保証する。信号がスイッチングすることが可能であり、尚且つ、回路を所望の通りに機能させる最も早い時間は、「早要求時間」と呼ばれる。
遅モード到達時間とは、信号がスイッチングを停止して安定状態になる最も遅い時間であると定義される。これは、回路がクロックサイクル制約条件を満たすために望まれる時間で機能を完了することを保証する。回路が正確に機能できるようにするために、信号がスイッチングを停止して最終的な安定な論理状態おいて安定になることが望まれる最も遅い時間は、「遅要求時間」と呼ばれる。
遅モードにおいて、要求時間と到達時間との間の代数的な差は、「遅タイミング・スラック」と定義される。同様に、早モードにおいて、到達時間と要求時間との間の代数的な差は、「早タイミング・スラック」と定義される。
タイマは、タイミング・グラフを通じてタイミング値を「順方向伝搬」することによって、到達時間を計算し、また、要求時間はタイミング・グラフを通じてタイミング値を「逆方向伝搬」することによって計算される。
簡略にするために、本記載は遅モードのタイミング量(例えば、遅到達時間及び遅要求時間)の計算に限定される。しかしながら、クリティカリティを計算するために提示される本技術及び方法は、早モードのタイミング量(例えば、早到達時間及び早要求時間)に拡張することが可能であると認識されるであろう。
タイミング・グラフは、デジタル回路のモデルである。タイミング・グラフの頂点は、タイミング・グラフによってモデル化される回路のノードに対応する。タイミング・グラフのアーク、即ち「タイミング・アーク」は、頂点を連結する。タイミング・アークは有向であり、1つの回路ノードから別の回路ノードへの信号伝搬をモデル化する。各々のタイミング・アークに伝搬遅延が割り当てられる。遅延は、タイミング・アークの始点から終点までの信号伝播時間に等しい。タイミング・グラフの2つのノードは特殊な意味を持つことがあり、すなわち、全ての信号が出発するソース・ノード、及び全ての回路信号の行き先であるシンク・ノードである。1つのプライマリ入力と1つの出力とを有する回路に関して、ソース・ノードは回路のプライマリ入力であり、シンク・ノードは回路のプライマリ出力である。複数のプライマリ入力及び出力を有する回路に関しては、解析の際の便宜のために、ソース・ノード及びシンク・ノードは回路の実際のノードに追加して導入される。よって、ソース・ノードは回路の全てのプライマリ入力に連結され、シンク・ノードは回路の全てのプライマリ出力に連結される。
最小のタイミング・スラックを有する頂点を持ったタイミング・グラフの経路が、クリティカル・パスであると定義される。例えば、回路がより高速で動作するように設計される場合には、クリティカル・パスを通る信号伝搬もまた、より高速にされなければならない。クリティカル・パスに属するタイミング・アークがクリティカルであると考えられるので、発明者は、非クリティカル・パスの速度を上げても回路をより高速に動作させることには寄与しないことを観察した。選択されたクリティカルアークの遅延を低減することによって、回路をより高速に動作するように設計することが可能である。非クリティカルアークにおける遅延の小さな変化は、回路性能に影響を与えることはないように見える。従って、回路の最適化のためには、回路のクリティカルなタイミング・アークを識別することが望ましい。集積回路の効果的な製造試験のためには、チップのクリティカルなタイミング・アークを知ることが有用である。配置、経路選択、バッファ挿入、及び物理的な合成といった電子設計自動化(EDA)の他の領域は、タイミング・アークのクリティカリティを知ることから利益を得ることができる。
図3は、図1−図2に関して説明された用語を説明するために与えられる見本のサンプルのデジタル回路の例である。デジタル回路300は、ゲート320、350及び370を有する。回路300は、プライマリ入力310、340及び360と、プライマリ出力330及び380とを有する。
図4は、図3に示されたサンプル回路300をモデル化したタイミング・グラフ400を示す。タイミング・グラフ400は、ソース・ノード440と、シンク・ノード455とを含む。ノード410、430、490は、図3のプライマリ回路入力310、340、及び360に対応する。ノード420及び485は、図3のプライマリ出力330及び380に対応する。ノード420、480及び485は、図3のゲート320、350及び370の出力に対応する。アーク425、460、457は、ソース・ノード440をノード410、430、490にそれぞれ連結するタイミング・アークである。アーク435及び470は、ノード420、485をシンク・ノード455に連結するタイミング・アークである。信号は、ソース・ノード440から、全てのタイミング・アークをそのタイミング・アークに割り当てられた遅延に従いながら通過して、シンク・ノード455へ伝搬する。
全てのゲート伝搬遅延が確定的な値であるような実施形態においては、全ての到達時間及び要求時間もまた確定定な値である。しかしながら、製造及び/又は環境のばらつきがモデル化される場合には、タイミング・アークの遅延は、対応する確率分布関数を用いて記述されるランダムな変数とみなされるべきである。その場合には、到達時間、要求時間、及びタイミング・スラックの確率分布を計算するために、統計的タイミング解析が用いられるべきである。
パラメータ化統計的静的タイミング解析(SSTA)は、回路の解析及び最適化に対して有用である。この技術によれば、ゲート遅延は、以下の一次線形モデルとして表現される。
Figure 0005004965
ここでaは平均値であり、ΔXはグローバル・パラメータXの変動であり、ΔX=X−Xi,0であって、ここでXi,0はXの平均値であり、aはパラメータ変動ΔXに対するゲート遅延の感度であり、ΔRはゲート遅延の無相関の変動の原因となるランダム変数であり、an+1は無相関の変動ΔRに対するゲート遅延の感度である。
式(1)に示される表現を用いて、パラメータ化SSTAは、回路タイミング特性(例えば、到達時間及び要求到達時間、遅延、タイミング・スラック)の統計的近似を、同じ一次線形モデルの形式での同じパラメータの関数として計算する。
パラメータ化統計的STAは、経路ベース又はブロックベースのいずれかとすることができる。経路ベースの統計的STAは、各々の信号伝搬経路を別々に解析し、回路遅延の確率分布を、全ての経路の遅延の確率的極大として計算する。通常、これは全ての信号伝搬経路の列挙及びパラメータ変動空間における積分を要し、非能率的な計算手順である。
パラメータ化SSTAの別の技術は、ブロックベースのSSTAである。この技術においては、信号到達時間及び信号要求到達時間は、確定的STAによって到達時間が伝搬されるのと同様のやり方で、各々の回路ノードについてその位相幾何学的順序でプロセス・パラメータの関数として計算される。ブロックベースのSSTAを用いると、タイミング解析を増分演算(incremental operation)として実行することが可能であり、それにより、回路の変更が実施された後で、タイミングを効率的に照会することができる。
ブロックベースのSTAは、到達時間をゲート遅延の分だけ増分し、最悪の場合の到達時間を計算することによって、各々の回路ノードにおける到達時間を計算する。到達時間をゲート遅延の分だけ増分することは、ゲート入力からその出力へ信号を伝搬することに対応する。この演算は、ゲート入力における到達時間とゲート遅延とを加算することによって実行される。最悪の場合の到達時間の計算は、ゲート入力に到達する信号の中から、最悪の場合の信号を選択する。最悪の信号とは、タイミング解析の種類に応じて、最も遅いものであってもよく、又は最も早いものであってもよい。
タイミング・アークのクリティカリティを計算するために提案される方法論は、発明者によって為された観察に基づくものであり、発明者は、タイミング・アークのクリティカリティが、図5及び図6に図示されるように、タイミング・アークを通る全ての信号伝搬経路のクリティカリティの総和であることを観察した。
図5は、サンプルのタイミング・グラフのタイミング・アークのクリティカリティ及び信号伝搬経路を図示する概略図である。具体的には、図5は、ソース・ノード515とシンク・ノード530とを有するタイミング・グラフ500を示す。タイミング・グラフ500から、始点535と終点550とを有する任意のタイミング・アーク540が選択される。経路520、545及び656は、ソース・ノード515からタイミング・アーク540の始点ノード535へと延びる。経路525、555及び560は、タイミング・アーク540の終点ノード550からシンク・ノード530へと延びる。タイミング・アーク540を通る種々の経路は、経路520、545及び565と、タイミング・アーク540自体と、経路525、555及び560とのすべての可能な組み合わせである。タイミング・グラフ500の網掛けで示した領域は、簡略にするために明示的に図示されていない、タイミング・グラフの中のさらに多数のノード及びアークを表す。
各経路の遅延は、式(1)の一次線形モデルの形で表すことができる。2つの経路S及びSと、それらの遅延の一次線形モデルとを考えると、
Figure 0005004965
であり、ここで、a0,k、a0,jは遅延の平均値であり、ΔXはパラメータXの変動であり、ΔX=X−Xi,0であって、ここでXi,0はXの平均値であり、ai,k、ai,jはパラメータ変動ΔXに対する経路遅延の感度であり、ΔRa,k、ΔRa,jは経路遅延の無相関の変動の原因となるランダム変数であり、an+1,k、an+1,jはそれぞれ、無相関の変動ΔRa,k、ΔRa,jに対する経路遅延の感度である。
Figure 0005004965
でない限り、遅延D及びD(ランダム変数と見なされる)が正確に同一の値を持つ確率は0である。この場合には、2つの経路S及びSのうちの少なくとも一方がクリティカルである確率は、各々の経路がクリティカルである個々の確率の合計である。即ち、
Figure 0005004965
式(3)が成立する場合、経路S及びSは同一の遅延を有し得る。その場合には、経路S及びSの一方がクリティカルであれば、他方も同様にクリティカルである。式(5)に示されるように、経路S及びSの各々にクリティカリティ値を割り当てることができる。
Figure 0005004965
式(4)は、式(5)についても成立することがわかる。
式(5)で例証された概念は、1対の経路から任意の数の経路まで拡張することができる。即ち、経路の集合{S,S,...,S}のうちの少なくとも1つの経路がクリティカルである確率は、これらの経路の各々がクリティカルである個々の確率の総和に等しい。即ち、
Figure 0005004965
ここから、タイミング・アークのクリティカリティは、図6に示されるように、そのアークを通る全ての経路のクリティカリティの総和であることが直接導かれる。
図6は、図5のサンプルのタイミング・グラフに示されるようにタイミング・アークを通る経路のクリティカリティ領域を持つ変動空間を示す。具体的には、図6は、2つのサンプル・パラメータ変動、即ち有効チャネル長Leff及びトランジスタ閾値VThの空間610を概略的に図示する。空間610は、Leff及びVThの変動を−3σから3σまでカバーする。空間610の各点は、LeffとVThとの1つの組み合わせに対応する。多角形615、620、625、630、635、640、645、650、655は、タイミング・グラフ500のタイミング・アーク540(図5)を通る経路がクリティカルであるようなプロセス・パラメータの組み合わせの領域を表す。各々の多角形領域は、アーク540を通る9つの経路のうちの1つに対応する。図5のタイミング・グラフは例示的なものであり、本発明の態様をより良く理解する説明のために示されることが認識される。1つの好ましい実施形態において、経路遅延はプロセス・パラメータの異なる線形関数であるので、多角形領域は互いに境界を接することができるのみであり、決して交差しない。アーク540を通る経路のうちの少なくとも1つがクリティカルであればそのタイミング・アークはクリティカルであるので、全ての多角形615、620、625、630、635、640、645、650、655の和集合は、タイミング・アーク540がクリティカルであるようなプロセス・パラメータの組み合わせの領域である。
タイミング・グラフのカットセットに属するタイミング・アークの集合を考えると、タイミング・アークのクリティカリティの計算を単純化することが可能である。連結グラフのカットセットとは、グラフからそれを消去することでグラフが2つの連結されない成分に切断されるようなアークの集合であると定義される。真の(又は最小の)カットセットとは、そのカットセットのどの真の部分集合もそれ自体はカットセットではないようなカットセットである。
タイミング・アークのクリティカリティの計算を単純化するために、一方がソース頂点を含み、もう一方がシンク頂点を含む2つの部分にタイミング・グラフを分離する真のカットセットのみを考える。さらに、以下の特性を満たすカットセットのみを考える。
即ち、カットセットCが、成分Fがソース頂点を含み、成分Gがシンク頂点を含むようにタイミング・グラフを2つの成分F及びGに分けるならば、どのカットセット・アークの始点も成分Fに属し、どのカットセット・アークの終点も成分Gに属することになる。別の言い方をすれば、全てのカットセット・アークのアークは、ソース頂点を含む成分から、シンク頂点を含む成分へと向けられる。簡略にするために、真のカットセットを、以下の説明においては「カットセット」と呼ぶ。
タイミング・グラフは有向非循環グラフ(DAG)であり、DAGの頂点は位相幾何学的にソートすることが常に可能である(例えば、DAGは、各々のアークが下位の指数を持つ頂点から上位の指数を持つ頂点に向かうように順序付けられる)。
タイミング・グラフがカットセットCを持つならば、そのタイミング・グラフのソース頂点からシンク頂点に向かうどの経路も、カットセットCに属するアークを有する。さもなければ、ソース頂点とシンク頂点とはグラフの異なる成分に属することができなくなる。
ソース頂点からシンク頂点へのどの経路も、カットセットに属するアークを1つだけ有する。一旦、経路がカットセット・アークを通ったら、その経路はシンク頂点を有する成分に到達し、ソース頂点を有する成分に戻ることはできない。従って、この経路はカットセットの中の別のアークを通ることはできない。よって、同じカットセットの中の2つのタイミング・アークaとbは、それらを通る異なる経路の集合を有するので、これらが同時にクリティカルになる確率(即ち、両方のタイミング・アークがクリティカルであるようなチップを製造する確率)は0であると結論付けることができる。
タイミング・グラフのどのカットセットについても、タイミング・アークのクリティカリティの総和は、そのチップの全ての経路のクリティカリティの総和を表しているので、常に1である。
所与のカットセットCのどのタイミング・アークaについても、このタイミング・アークを通る全ての経路の最大遅延の一次線形モデルDi,Cは既知であると仮定する。その場合には、これらの全ての一次モデルDi,Cの統計的極大としてのタイミング・グラフの最大遅延Dの一次モデルは、
Figure 0005004965
として計算することができ、ここで、極大は、カットセットCの全てのタイミング・アークにわたって統計学的な意味で計算され、nはカットセットの中のエッジの数である。
タイミング・アークaを通る経路の最大遅延Di,Cが、ソース頂点からシンク頂点への他のいずれの経路の遅延よりも大きい確率Pi,Cが、このタイミング・アークaのクリティカリティそのものである。この確率Pi,Cは、式(7)で統計的極大を計算する場合における遅延Di,Cに対応するタイトネス確率に等しい。
従って、タイミング・アークのクリティカリティを計算するためには、そのタイミング・グラフのカットセットと、各タイミング・アークを通る経路の集合の最大遅延の一次モデルと、一次線形モデルの形式で表されるこれらの最大遅延のタイトネス確率とを計算することが望ましい。
図7は、タイミング・グラフの例示的なカットセットを示す。具体的には、図7は、タイミング・グラフ700のカットセットの一例780を概略的に図示する。タイミング・グラフ700は、ソース・ノード735及びシンク・ノード750を有する。カットセット780は、それぞれ、その始点ノード725、725及び760から終点ノード740、755及び755に向かう、タイミング・アーク730、785及び765を含む。経路の集合715はソース・ノード735からノード725へ向かう。経路の集合720はノード740からシンク・ノード750へ向かう。経路の集合770はソース・ノード735からノード760へ向かう。経路の集合775はノード755からシンク・ノード750へ向かう。
図8は、図4にその一例を示すタイミング・グラフに関して、タイミング・グラフのカットセットを計算するためのフロー方法である。具体的には、図8は、タイミング・グラフのカットセットを構築するための方法800を示す。カットセットは多くの異なる方法で構築することが可能であり、ここで説明される本発明の概念は、カットセットがどのようにして構築されたかに関わりなく適用可能であることが理解されるべきである。方法800への入力はタイミング・グラフであり、出力はそのタイミング・グラフのタイミング・アークの全てを網羅するカットセットの集合である。
開始ブロック810は機能ブロック815に制御を渡す。
ステップ815において、機能ブロック815はタイミング・グラフをレベル化(levelize)する。レベル化とは、タイミング・グラフの頂点の集合Vを、全てのタイミング・アークが下位レベルの頂点から上位レベルの頂点へと向かうように部分集合(レベル)V,V,...,Vに分割することであると定義される。レベル化は、確定的タイミング解析と統計的タイミング解析の両方において用いられており、タイミング解析装置(例えば、図2に示されるタイミング解析装置225)の一部である。ステップ815は、静的タイミング解析ツールの適切な機能ブロックを呼び出すことによって実施されてもよく、又は静的タイミング解析ツールによって構築されたレベル化されたタイミング・グラフに直接アクセスすることによって実施されてもよい。次いでステップ820が実行される。
ステップ820において、空集合Cが構築される。次いでステップ825が実行される。ステップ825において、レベルのカウンタiが値1に初期化され、変数nはタイミング・グラフのレベルの数に等しく設定される。次いで、方法はステップ830に移る。
ステップ830において、カットセットCが計算される。カットセットCi−1を考え、そこから、レベルVの頂点に入ってくる全てのアークが消去される。さらに、以下の式に従って、レベルVの頂点から出ていく全てのアークが得られたカットセットに追加される。即ち、
Figure 0005004965
次いで、方法はステップ835に移る。
ステップ835は、レベルのカウンタiを1だけ増分し、ステップ840に制御を渡す。
ステップ840は、レベルのカウンタiがタイミング・グラフのレベルの数nより少ないか否かを判定する。カウンタiがnより少ない場合には、判断ブロック840はタイミング・グラフの次のカットセットの計算のために機能ブロック830に制御を渡す。そうでない場合には、ステップ840は終了ブロック845に制御を渡す。
図9は、例示的なタイミング・グラフのカットセットの計算を図示する。具体的には、図9は、ソース・ノード926とシンク・ノード956とを有するタイミング・グラフの一例900上でのカットセットの計算を説明する。説明を目的として、タイミング・グラフ900の1つのレベル903と、2つのカットセット980及び983とが示される。レベル903は、頂点930及び976を含む。頂点930は、入ってくるアーク906と、出ていくアーク910及び940とを有する。頂点976は、入ってくるタイミング・アーク946と、出ていくタイミング・アーク970とを有する。カットセット980は、タイミング・アーク906、936、及び946を含む。カットセット983は、タイミング・アーク910、940、936、及び970を含む。図9は、方法800がタイミング・グラフ900のレベル903を処理するときのスナップショットを示す。方法800は、カットセット980からカットセット983へと遷移する。この方法は、アーク906、936及び946を有するカットセット980を考え、そのカットセット980からレベル903の頂点930、976に入ってくるアーク906及び946を除去し、レベル903の頂点930、976から出ていくアーク910、940、及び970を追加することによって、カットセット983を計算し、これにより新しいカットセット{936、910、940、970}が生成される。
図10は、タイミング・グラフの1つのタイミング・アークを通る全ての経路の最大遅延の計算を図示する。あるエッジを通る全ての経路の最大遅延は、そのエッジのエッジ・スラックと呼ばれる。具体的には、図10は、ソース頂点1015とシンク頂点1035とを有するタイミング・グラフ1000を概略的に示す。任意に選択されたタイミング・アーク1040を通る経路の最大遅延の一次モデルの計算が示される。タイミング・アーク1040は、始点1025と終点1030とを有する。経路の集合1020は、ソース頂点1015から、選択されたタイミング・アーク1040の始点1025へ向かう。経路の集合1045は、選択されたタイミング・アーク1040の終点1030から、タイミング・グラフのシンク頂点1035へ向かう。タイミング・グラフ1000の中の網掛けで示した領域は、このタイミング・グラフの明示的に示されていないさらに多数のノード及びエッジを示す。
パラメータ化統計的タイミング解析が到達時間及び要求時間を一次線形モデルの形で計算したと仮定すると、静的タイミング・グラフ解析における到達時間及び要求時間の定義から、タイミング・アーク1040の始点1025における到達時間TAT,Iは、ソース頂点1015から始点1025への信号伝搬の最大遅延そのものであると結論付けることができる。他方では、タイミング・アーク1040の終点1030における要求時間TRAT,Tは、頂点1030からシンク頂点1035への信号伝搬の最大遅延そのものに負号を付けたものである。簡略にするために、ソース頂点1015における到達時間及びシンク頂点1035における要求時間は0に設定されると仮定する。タイミング・アーク1040を通る経路の集合の最大遅延Dは、タイミング・アーク1040のソース頂点1015から始点1025までの最大遅延Dと、タイミング・アーク1040自体の遅延Dと、タイミング・アーク1040の終点1030からシンク頂点1035までの最大遅延Dとを加算したものである。即ち、
Figure 0005004965
この遅延は、統計的静的タイミング解析によって計算された到達時間及び要求時間の値に関して表すことができる。即ち、
Figure 0005004965
式(9)及び(10)における加算及び減算は統計学的な意味で為されると理解される。
上記のことから判るように、タイミング・グラフのどのタイミング・アークを通る全ての経路の最大遅延、即ち、どのタイミング・アークのエッジ・スラックも、統計的タイミング解析の結果から効率的且つ容易に計算することができる。
図11は、図4にその一例を示すタイミング・グラフのエッジのクリティカリティ確率を判定するための高レベルのフロー方法である。
ステップ1051において、タイミング解析される回路に対応する有向非循環タイミング・グラフが形成され、回路の統計的タイミング解析が実行される。次いで、方法はステップ1052に移る。
ステップ1052において、注目するエッジの各々について、タイミング・グラフを複数の部分に分割するカットセットが定義される。次いで、ステップ1053が実行される。
ステップ1053において、カットセットの中の注目するエッジの各々について、エッジ・スラックが判定される。次いで、ステップ1054が実行される。
ステップ1054において、カットセットの中の全てのエッジ・スラックの統計的極大が判定される。次いで、ステップ1055が実行される。
ステップ1055において、各エッジのエッジ・クリティカリティ確率がステップ1054の統計的極大演算から推論される。
図12は、図9にその一例を示すタイミング・グラフに関するタイミング・アークのクリティカリティを計算するためのフロー方法1100である。開始ブロック1110は機能ブロック1115に制御を渡す。
機能ブロック1115は、タイミング・グラフの各頂点について到達時間及び要求到達時間を計算するパラメータ化統計的タイミング解析を行う。機能ブロック1115は機能ブロック1120に制御を渡す。
機能ブロック1120は、タイミング・グラフに含まれるタイミング・アークの全てを網羅するタイミング・グラフのカットセットを構築する。これは、例えば方法800によって行うことができる。他の適切な方法論を用いることができる。カットセットは1度に全てを構築してから処理してもよく、又は1度に1つずつ構築し、処理してもよい。機能ブロック1120は機能ブロック1125に制御を渡す。
機能ブロック1125は、変数Mを、機能ブロック1120によって構築されたカットセットの数に等しく設定する。機能ブロック1125は機能ブロック1130に制御を渡す。
機能ブロック1130は、カットセットのカウンタiを1に初期化し、機能ブロック1135に制御を渡す。
機能ブロック1135は、機能ブロック1120によって構築されたカットセットの集合から第i番目のカットセットCを選択する。機能ブロック1135は機能ブロック1140に制御を渡す。
機能ブロック1140は、NをカットセットCの中のタイミング・アークの数に等しく設定し、機能ブロック1145に制御を渡す。
機能ブロック1145は、現在のカットセットの中のアークのカウンタjを1に初期化し、機能ブロック1150に制御を渡す。
機能ブロック1150は、カットセットCの中から第j番目のタイミング・アークei,jを選択し、機能ブロック1155に制御を渡す。
機能ブロック1155は、タイミング・アークei,jの始点vinit,i,jと終点vterm,i,jとを見つけ出し、機能ブロック1160に制御を渡す。
機能ブロック1160は、タイミング・アークeijを通る全ての経路の集合の最大遅延Di,jの一次線形モデル(即ちei,jのエッジ・スラック)を以下のように計算する。即ち、
Figure 0005004965
ここで、
・TAT(vinit,i,j)は、頂点vinit,i,jにおける到達時間であり、
・d(ei,j)はタイミング・アークei,jの遅延であり、
・TRAT(vterm,i,j)は頂点vterm,i,jにおける要求時間である。
機能ブロック1160は、機能ブロック1165に制御を渡す。
機能ブロック1165は、タイミング・アークのカウンタjを1だけ増分し、判断ブロック1170に制御を渡す。
判断ブロック1170は、現在のjの値が、現在のカットセットCの中のタイミング・アークの数Nを上回らないか否かを判定する。jがNを上回らなかった場合には、判断ブロック1170は機能ブロック1150に制御を渡す。そうでない場合には、判断ブロック1170は機能ブロック1175に制御を渡す。
機能ブロック1175は、一次モデルの集合{Di,1,Di,2,...,Di,N}についてのタイトネス確率Pi,1,Pi,2,...,Pi,Nを計算する。例えば、Pi,1は、Di,1が{Di,1,Di,2,...,Di,N}の極大である確率である。この計算は、幾つかの方法で行うことができる。可能な方法の1つは、モンテカルロ法を用いることである。モンテカルロ法によるタイトネス確率の計算は、タイミング・グラフの深さと等しいカットセットの数と同じ回数だけ適用すればよいので、効率的であり得る。機能ブロック1175は機能ブロック1180に制御を渡す。
機能ブロック1180は、現在のカットセットのタイミング・アークei,1,ei,2,...,ei,NのクリティカリティCを、機能ブロック1175によって計算されたタイトネス確率Pi,1,Pi,2,...,Pi,Nに等しく設定する。機能ブロック1180は機能ブロック1185に制御を渡す。
機能ブロック1185は、カットセットのカウンタiを1だけ増分し、判断ブロック1190に制御を渡す。
判断ブロック1190は、現在のiの値がカットセットの数Mを上回らないか否かを判定する。現在のiの値がMを上回らなかった場合には、判断ブロック1190は機能ブロック1135に制御を渡して、次のカットセットを処理させる。そうでない場合には、判断ブロック1190は終了ブロック1195に制御を渡す。
タイミング・グラフのカットセットの計算と、タイミング・アークのクリティカリティの計算とを、上記で説明されたように独立した方法800及び1100によって分離させることは必ずしも必要ではない。1つのカットセットに属するタイミング・アークのクリティカリティがそのカットセットの作成直後に計算されるように、方法800、1100を組み合わせることができる。
図13は、所与のN個の一次線形モデルm,m,...,mのタイトネス確率を計算するためのアルゴリズム1200のブロック図を示す。これらの一次線形モデルは、例えば、遅延、到達時間、又は要求時間のモデルとすることができる。エッジ・クリティカリティを計算するためには、それらは典型的には1つのカットセットの中の全てのエッジのエッジ・スラックである。
アルゴリズム1200の開始ブロック1205は、機能ブロック1210に制御を渡す。
機能ブロック1210は、Nを所与の一次統計的モデルの数に等しく設定し、機能ブロック1215に制御を渡す。
機能ブロック1215は、一次線形モデルのカウンタiを1に初期化し、機能ブロック1220に制御を渡す。
機能ブロック1220は、モデルmを除く全ての所与の一次線形モデルの統計的極大を計算する。これは、N−1個の一次線形モデルm,m,...,mi−1,mi+1,...,mの統計的極大を計算することを意味する。計算結果は、一次モデルmmaxであり、これはエッジiの補完的エッジ・スラック(complement edge slack)と呼ばれる。機能ブロック1220は機能ブロック1225に制御を渡す。
機能ブロック1225は、一次エッジ・スラック・モデルmが機能ブロック1220によって計算された一次の補完的エッジ・スラック・モデルmmaxより大きくなるタイトネス確率Pを計算する。機能ブロック1225は機能ブロック1230に制御を渡す。
機能ブロック1230は、一次モデルmのタイトネス確率Pを、機能ブロック1225によって計算されたPの値に等しく設定し、機能ブロック1235に制御を渡す。
機能ブロック1235は一次線形モデルのカウンタiを1だけ増分し、判断ブロック1240に制御を渡す。
判断ブロック1240は、iが所与の一次モデルの数Nを上回らないか否かを判定する。現在のiの値がNを上回らなかった場合には、判断ブロック1240は機能ブロック1220に制御を渡す。そうでない場合には、制御は機能ブロック1245に渡される。
機能ブロック1245は、一次線形モデルm,m,...,mのタイトネス確率P,P,...,Pの総和Sを計算し、機能ブロック1250に制御を渡す。理論的には、Sは1.0に等しいはずであるが、数値の丸め又は他の近似のせいで、1.0に等しくならないこともある。
機能ブロック1250は、各タイトネス確率値PをSで除算することによって、正規化する。この正規化は、タイトネス確率の総和が1となることを保証することによって、計算の確度を向上させることができる。機能ブロック1250は終了ブロック1255に制御を渡す。
方法1200は、バイナリの統計的極大演算のO(N)回の適用を必要とする場合がある。別の実施形態においては、クリティカリティは、所与の一次線形モデルの集合を、2,4,8,...,2logN個の要素を有する階層化された入れ子型の部分集合の系に分割し、この階層的な分割の二進分割木(binary partition tree)を構築し、部分集合の各々についての統計的極大を、2つの要素を有する部分集合から始めて、次に4つの要素の部分集合について、そして以下同様に予め計算し、二進分割木を走査して、この走査の間に補完的な部分集合についての統計的極大と必要とされるタイトネス確率とを計算することによって、線形時間O(N)で計算することができる。
いかなる一般性を失うこともなく、簡略にするために、クリティカリティを計算することが望まれる一次線形モデルm,m,...,mの数Nを、2のべき乗であると仮定する。即ち、
Figure 0005004965
図14は、8つの一次線形モデルの集合{m,m,m,m,m,m,m,m}の階層的に釣り合いのとれた分割のための順序のある二分木1300を示す。木は、根ノード1303と、所与の一次線形モデル{m,m,m,m,m,m,m,m}を模式的に表す葉ノード1333、1335、1338、1340、1343、1345、1348、1350とを有する。葉ノードの集合は、第1の分割レベルにおいて部分集合1323、1325、1328、1330に分割される。木ノード1313、1315、1318、1320は、これらの部分集合{{m,m},{m,m},{m,m},{m,m}}に対応する。第1のレベルの部分集合の集合は、第2のレベルの2つの部分集合1355、1360に分割される。木ノード1305、1310は、第2のレベルのこれらの部分集合{{{m,m},{m,m}},{{m,m},{m,m}}}に対応する。
図15は、所与のN個の一次エッジ・スラック線形モデルについてのタイトネス確率を計算するための流れ図1400のブロック図を示す。発明者は、所与の一次エッジ・スラック・モデルの数は2のべき乗であると仮定したが、本方法はいかなる数の一次エッジ・スラック・モデルにも適用できることが自明である。
開始ブロック1405は、機能ブロック1410に制御を渡す。
機能ブロック1410は、Nを、タイトネス確率を計算することが望まれる所与の一次線形エッジ・スラック・モデルの数に等しく設定する。機能ブロック1410は、機能ブロック1415に制御を渡す。
機能ブロック1415は、分割木のレベルの数を、
Figure 0005004965
として計算する。
所与の一次モデルの数を2のべき乗(例えば、Nは2のべき乗)と仮定しているので、この計算は正確である。しかしながら、方法1400は、任意の数の一次モデルを扱うように拡張することができる。機能ブロック1415は、機能ブロック1420に制御を渡す。
機能ブロック1420は、分割木の葉(例えば、最下位)レベルを構築し、所与の一次線形モデルに対応する葉ノードの順序集合を構築する。機能ブロック1420は、機能ブロック1425に制御を渡す。
機能ブロック1425は、分割レベル(例えば、分割木のレベル)のカウンタiを1に設定し、機能ブロック1430に制御を渡す。
機能ブロック1430は、現在の分割レベルにおける部分集合(例えば、分割木の現在のレベルにおけるノード)の数をM=N/2に設定し、機能ブロック1435に制御を渡す。
機能ブロック1435は、現在の分割レベルにおける部分集合のカウンタjを1に初期化し、機能ブロック1440に制御を渡す。
機能ブロック1440は、第i番目の分割レベルの第j番目の部分集合を以下のように構築する。
Figure 0005004965
この部分集合Si,jは、前のレベルの分割に由来する2つの部分集合Si−1,2j−1、Si−1,2jをその中に含めることによって構築される。部分集合Si−1,2j−1、Si−1,2jは、前の分割レベルにおける部分集合の順序に従って取られる。機能ブロック1440は、機能ブロック1445に制御を渡す。
機能ブロック1445は、構築された部分集合Si,jの一次線形モデルmi,jを計算し、それをこの部分集合に割り当てる。この一次モデルmi,jは、部分集合Si,jの構築に用いられた部分集合Si−1,2j−1、Si−1,2jに対応する一次線形モデルmi−1,2j−1、mi−1,2jの統計的極大を計算することによって計算される。一次線形モデルmi,jは、部分集合Si,jに含まれる全ての一次線形モデルの統計的極大の一次線形モデルである。機能ブロック1445は、機能ブロック1450に制御を渡す。
機能ブロック1450は、部分集合のカウンタの現在の値jを1だけ増分し、判断ブロック1455に制御を渡す。
判断ブロック1455は、jが現在の分割レベルにおける部分集合の数Mを上回らないか否かを判定する。jが現在の分割レベルにおける部分集合の数を上回らなかった場合には、判断ブロック1455は機能ブロック1440に制御を渡して、現在の分割レベルにおける次の部分集合を構築させる。そうでない場合には、制御は機能ブロック1460に渡される。
機能ブロック1460は、第i番目の分割レベルに対応する分割木の第i番目のレベルを構築する。この構築は、部分集合の構築中に行ってもよい。しかしながら、1つの好ましい実施形態において、より明確にするために、発明者は、部分集合の構築から木ノードの構築を独立させた。機能ブロック1460は、機能ブロック1465に制御を渡す。
機能ブロック1465は、分割レベルのカウンタiを1だけ増分し、機能ブロック1470に制御を渡す。
機能ブロック1470は、次の分割レベルにおける部分集合の数MをM=M/2として計算し、判断ブロック1475に制御を渡す。
判断ブロック1475は、iが分割レベルの数nより少ないか否かを判定する。iがnより少なかった場合には、判断ブロック1475は機能ブロック1435に制御を渡して、次の分割レベルを構築させる。そうでない場合には、制御は機能ブロック1480に渡される。
機能ブロック1480は、木に根ノードを加えることによって分割木の構築を完了し、機能ブロック1483に制御を渡す。
機能ブロック1483は、根ノードの左の子に、根ノードの右の子に対応する部分集合の一次線形モデルmrightに等しい補完的な一次線形モデルml,complを割り当てる。この補完的なモデルは、左の子に対応する部分集合の補集合である部分集合の統計的極大の一次線形モデルに等しい。機能ブロック1483は、機能ブロック1485に制御を渡す。
機能ブロック1485は、根ノードの右の子に、根ノードの左の子に対応する部分集合の一次線形モデルmleftに等しい補完的な一次線形モデルmr,complを割り当てる。この補完的なモデルは、右の子に対応する部分集合の補集合である部分集合の統計的極大の一次線形モデルに等しい。機能ブロック1485は、機能ブロック1488に制御を渡す。
機能ブロック1488は、分割木の左の部分木を上から下へ走査して、その葉ノードについてのタイトネス確率を計算する。走査の方法1500は、図16に関して後述する。機能ブロック1488は、機能ブロック1490に制御を渡す。
機能ブロック1490は、分割木の右の部分木を上から下へ走査して、その葉ノードについてのタイトネス確率を計算する。機能ブロック1490は、終了ブロック1495に制御を渡す。
図16は、分割部分木を走査し、その葉ノードに対応する一次モデルのタイトネス確率を計算するためのフロー方法1500を図示する。方法1500は、再帰構造を有する。即ち、この方法は、下位レベルの部分木を走査するためにそれ自身を呼び出す。方法1500は、分割部分木のノードに対応する部分集合の補集合である部分集合を考慮に入れる。方法論1500は、補完的な部分集合の要素の統計的極大の一次線形モデルを計算する。補完的な部分集合の一次線形モデルは、補完的な一次線形モデル、又は補完的なエッジ・スラックと呼ばれる。
方法論1500は、部分木の根が、方法1500の呼び出しに先立って割り当てられた補完的な一次モデルを有すると仮定する。これは、方法1500を呼び出す方法1400によって、又はそれ自身を再帰的に呼び出す前に方法1500によって、のいずれかにより為される。
開始ブロック1505は、判断ブロック1510に制御を渡す。
判断ブロック1510は、根ノードの子ノードが葉であるか否かを判定する。子ノードが葉であった場合には、判断ブロック1510は機能ブロック1515に制御を渡して、葉ノードを処理させる。そうでない場合には、機能ブロック1535に制御を渡す。
機能ブロック1515は、左の補完的な一次線形モデルml,complを、根ノードの補完的なモデルmroot,complと、右の葉ノードの一次モデルmleaf,rightとの統計的極大として計算する。機能ブロック1515は、機能ブロック1520に制御を渡す。
機能ブロック1520は、左の葉ノードの一次モデルmleaf,leftについてのタイトネス確率を、この一次モデルmleaf,leftと左の補完的な一次モデルml,complとのタイトネス確率として計算する。機能ブロック1520は、機能ブロック1525に制御を渡す。
機能ブロック1525は、右の補完的な一次線形モデルmr,complを、根ノードの補完的なモデルmroot,complと左の葉ノードの一次モデルmleaf,leftとの統計的極大として計算する。機能ブロック1525は、機能ブロック1530に制御を渡す。
機能ブロック1530は、右の葉ノードの一次線形モデルmleaf,rightに関するタイトネス確率を、この一次モデルmleaf,rightと右の補完的な一次線形モデルmr,complとのバイナリのタイトネス確率として計算する。機能ブロック1530は、機能ブロック1555に制御を渡す。
機能ブロック1535は、左の子ノードについての補完的な一次線形モデルml,complを、根ノードの補完的なモデルmroot,complと根ノードの右の子に対応する部分集合の一次線形モデルmrightとの統計的極大として計算する。機能ブロック1535は、機能ブロック1540に制御を渡す。
機能ブロック1540は、右の子ノードについての補完的な一次線形モデルmr,complを、根ノードの補完的なモデルmroot,complと根ノードの左の子に対応する部分集合の一次線形モデルmleftとの統計的極大として計算する。機能ブロック1540は、機能ブロック1545に制御を渡す。
機能ブロック1545は、分割木の左の部分木を上から下へ走査して、その葉ノードに関するタイトネス確率を計算する。走査は、方法1500を再帰的に呼び出すことによって実行される。機能ブロック1545は、機能ブロック1550に制御を渡す。
機能ブロック1550は、分割木の右の部分木を上から下へ走査して、その葉ノードに関するタイトネス確率を計算する。走査は、アルゴリズム1500を再帰的に呼び出すことによって実行される。機能ブロック1550は、終了ブロック1555に制御を渡す。
本方法は効率的であり、固有の相関を正確に考慮に入れる。回路の性能に影響を及ぼす全ての変動源が同時に考慮される。結果として得られるクリティカリティ確率は、最適化、レイアウト、バッファ挿入、及び経路選択などの種々の設計タスクの際に、手動又は自動化技術の如何を問わずに利用される。
図17は、本発明の種々の態様を実施するためのコンピュータ・システムである。
コンピュータ・システム1600は、コンピュータ・インフラストラクチャ1602の中に設けられる。コンピュータ・システム1600は、本発明の教示を実行する能力があるいずれかのタイプのコンピュータ・システムを表すことが意図される。例えば、コンピュータ・システム1600は、ラップトップ・コンピュータ、デスクトップ・コンピュータ、ワークステーション、ハンドヘルド・デバイス、サーバ、コンピュータ・クラスタなどとすることができる。ユーザ1604は、コンピュータ・システム1600に直接的にアクセスしてもよく、又は、コンピュータ・システム1600とネットワーク1606(例えばインターネット、広域エリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、仮想私設ネットワーク(VPN)など)を介して通信するコンピュータ・システムを操作してもよいことが認識されるべきである。後者の場合には、コンピュータ・システム1600とユーザが操作するコンピュータ・システムとの間の通信は、種々の様式の通信リンクのいずれかの組み合わせを経由して行われることができる。例えば、通信リンクは、有線及び/又は無線の伝送方法のいずれかの組み合わせを利用することができるアドレス可能な接続を含むことができる。通信がインターネットを経由して行われる場合には、従来のTCP/IPソケットベースのプロトコルによって接続性を提供することができ、インターネットへの接続性を確立するためにインターネットサービスプロバイダを用いることができる。
コンピュータ・システム1600は、処理ユニット1608、メモリ1610、バス1612、及び入出力(I/O)インターフェース1614を含むものとして示されている。さらに、コンピュータ・システム1600は、外部デバイス/リソース1616及び1つ又は複数の記憶システム1618と通信状態で示される。一般に、処理ユニット1608は、メモリ1610及び/又は記憶システム1618に格納されている、例えばエッジ・クリティカリティを計算するためのコンピュータ・プログラム・コードを実行する。コンピュータ・プログラム・コードの実行中に、処理ユニット1608は、メモリ1610、ストレージ・システム1618、及び/又はI/Oインターフェース1614からデータを読み込み、及び/又はこれらに対してデータを書き込むことができる。バス1612は、コンピュータ・システム1600内の各々の構成要素の間に通信リンクを与える。外部デバイス/リソース1616は、ユーザが、コンピュータ・システム1600と対話させることができるいかなるデバイス(例えばキーボード、ポインティングデバイス、ディスプレイ(例えばディスプレイ1620)、プリンタなど)、及び/又はコンピュータ・システム1600が1つ又は複数の他の計算機デバイスと通信することを可能にするいかなるデバイス(例えばネットワークカード、モデムなど)を含むこともできる。
コンピュータ・インフラストラクチャ1602は、本発明の実施に用いることが可能な種々のタイプのコンピュータ・インフラストラクチャの単なる例示である。例えば、1つの実施形態において、コンピュータ・インフラストラクチャ1602は、ネットワーク(例えばネットワーク1606)を横断して通信して本発明の種々のプロセス・ステップを実行する、2つ又はそれ以上の計算機デバイス(例えばサーバ・クラスタ)を含むことができる。さらにまた、コンピュータ・システム1600は、本発明の実施に用いることができる多くのタイプのコンピュータ・システムの単なる代表であり、その各々がハードウェア/ソフトウェアの多数の組み合わせを含むことができる。例えば、処理ユニット1608は、単一の処理ユニットを含んでいてもよく、又は、1つ又は複数の位置にある1つ又は複数の処理ユニットにわたって、例えばクライアント及びサーバ上に、分散されていてもよい。同様に、メモリ1610及び/又は記憶システム1618は、1つ又は複数の位置にある種々のタイプのデータ記憶及び/又は伝送媒体のいかなる組み合わせを含むこともできる。さらに、I/Oインターフェース1614は、1つ又は複数の外部デバイス/リソース1616と情報を交換するためのいかなるシステムを含むこともできる。さらにまた、コンピュータ・システム1600には、図17に示されない1つ又は複数の付加的な構成要素(例えば、システム・ソフトウェア、通信システム、キャッシュメモリなど)が含まれてもよいことが理解される。しかしながら、コンピュータ・システム1600がハンドヘルド・デバイスなどを含む場合には、1つ又は複数の外部デバイス/リソース1616(例えばディスプレイ1620)及び/又は1つ又は複数の記憶システム1618は、図示されているように外部ではなく、コンピュータ・システム1600内部に含まれてもよいことが理解される。
記憶システム1618は、本発明の下で情報のための記憶領域を提供することが可能ないかなるタイプのシステム(例えばデータベース)とすることもできる。この点で、記憶システム1618は、磁気ディスクドライブまたは光ディスクドライブといった、1つ又は複数の記憶デバイスを含むことができる。別の実施形態において、記憶システム1618は、例えばローカルエリアネットワーク(LAN)、広域エリアネットワーク(WAN)、又はストレージエリアネットワーク(SAN)にわたって分散されたデータを含むことができる(図示せず)。
さらにまた、図示されていないが、ユーザ1604によって操作されるコンピュータ・システムは、コンピュータ・システム1600に関して上述されたものと同様のコンピュータ化構成要素を含むことができる。
ここに提示された本発明の説明は極大演算に焦点を置いたが、当業者であれば本教示を最小値に適用することができることが認識される。さらにまた、ここに提示された本発明の説明は最も遅い到達時間の計算に焦点を置いたが、当業者であれば本教示を最も早い到達時間に適用することができることが認識される。さらに、ここに提示された本発明の説明は組み合わせ回路に焦点を置いたが、当業者であれば本教示を順次回路に適用することができること認識される。加えて、ここに提示された本発明の説明はゲート遅延が分離可能関数である場合に焦点を置いたが、当業者であれば本教示をゲート遅延が非分離可能関数である場合に適用することができると認識されるべきである。
本発明の1つの実施形態による統計的静的タイミング解析システムの概略的なブロック図である。 タイミング・アークのクリティカリティによって駆動される回路最適化システムの概略図である。 図1−図2に関して説明された用語を説明するために与えられるデジタル回路の例である。 図3に示される例示的な回路をモデル化したタイミング・グラフを示す。 図3に示されるデジタル回路についてのタイミング・グラフのタイミング・アークのクリティカリティ及び信号伝搬経路を示す概略図である。 図5に示されるようにタイミング・アークを通る経路のクリティカリティ領域を持つ変動空間を示す。 タイミング・グラフの例示的なカットセットを示す。 図4にその一例を示すタイミング・グラフに関して、タイミング・グラフのカットセットを計算するためのフロー方法である。 例示的なタイミング・グラフのカットセットの計算を示す。 1つのタイミング・アークを通る全ての経路の最大遅延の計算を示す。 図4にその一例を示すタイミング・グラフのエッジのクリティカリティ確率を判定するための高レベルのフロー方法である。 タイミング・アークのクリティカリティを計算するための流れ図である。 N個の一次線形モデルのタイトネス確率を計算するための流れ図である。 一次モデルの集合についての二進分割木の例を示す。 図14にその一例を示す二進分割木を用いてN個の一次モデルについてのタイトネス確率を計算するための流れ図である。 図14にその一例を示す分割木を走査し、タイトネス確率を計算するための流れ図である。 本発明の種々の態様を実施するためのコンピュータ・システムの図である。
符号の説明
100:統計的静的タイミング解析システム
200:回路最適化システム
300:デジタル回路
400、500、700、900、1000:タイミング・グラフ
440、515、735、926、1015:ソース・ノード
455、530、750、956、1035:シンク・ノード
540:、730、765、785、1040:タイミング・アーク
610:変動空間
780、980、983:カットセット
903:レベル
1300:二進分割木
1600:コンピュータ・システム

Claims (5)

  1. コンピュータに、回路のタイミング・グラフのエッジのクリティカリティ確率を判定させる方法であって、
    前記コンピュータが、タイミング解析される回路に対応する有向非循環タイミング・グラフを形成するステップと、
    前記コンピュータが、前記回路の統計的タイミング解析を実行するステップと、
    前記コンピュータが、注目する各エッジについて、前記タイミング・グラフを複数の部分に分割するカットセットを定めるステップであって、前記複数の部分の第1の部分が前記タイミング・グラフのソース・ノードを含み、前記複数の部分の第2の部分が前記タイミング・グラフのシンク・ノードを含む、前記定めるステップと、
    前記コンピュータが、前記カットセット内の各エッジについて、エッジ・スラックを判定するステップと、
    前記コンピュータが、前記カットセット内の全てのエッジ・スラックの統計的極大を計算するステップと、
    前記コンピュータが、各エッジのエッジ・クリティカリティ確率を前記統計的極大から推論するステップと、
    を含む方法において、
    早モードの統計的エッジ・スラックが、早モードのソース・ノードの統計的到達時間と、早モードのシンク・ノードの統計的要求到達時間の負数と、前記エッジの早モードの遅延との統計和である、前記方法。
  2. コンピュータに回路のタイミング・グラフのエッジのクリティカリティ確率を判定させる方法であって、
    前記コンピュータが、タイミング解析される回路に対応する有向非循環タイミング・グラフを形成するステップと、
    前記コンピュータが、前記回路の統計的タイミング解析を実行するステップと、
    前記コンピュータが、注目する各エッジについて、前記タイミング・グラフを複数の部分に分割するカットセットを定めるステップであって、前記複数の部分の第1の部分が前記タイミング・グラフのソース・ノードを含み、前記複数の部分の第2の部分が前記タイミング・グラフのシンク・ノードを含む、前記定めるステップと、
    前記コンピュータが、前記カットセット内の各エッジについて、エッジ・スラックを判定するステップと、
    前記コンピュータが、前記カットセット内の全てのエッジ・スラックの統計的極大を計算するステップと、
    前記コンピュータが、各エッジのエッジ・クリティカリティ確率を前記統計的極大から推論するステップと、
    を含む方法において、
    遅モードの統計的エッジ・スラックが、遅モードのソース・ノードの統計的到達時間と、遅モードのシンク・ノードの統計的要求到達時間の負数と、前記エッジの遅モードの遅延との統計和である、前記方法。
  3. コンピュータに回路のタイミング特性を最適化させる方法であって、
    前記コンピュータが、タイミング・グラフのエッジのクリティカリティ確率を判定するステップであって、前記判定ステップであって、
    タイミング解析される回路に対応する有向非循環タイミング・グラフを形成するステップと、
    前記コンピュータが、前記回路の統計的タイミング解析を実行するステップと、
    前記コンピュータが、注目する各エッジについて、前記タイミング・グラフを複数の部分に分割するように構成されるカットセットを定めるステップと、
    前記コンピュータが、前記カットセット内の各エッジについて、エッジ・スラックを判定するステップと、
    前記コンピュータが、前記カットセット内の全てのエッジ・スラックの統計的極大を計算するステップと、
    前記コンピュータが、各エッジのエッジ・クリティカリティ確率を前記統計的極大から推論するステップと、
    を含む、前記判定ステップと、
    前記コンピュータが、前記クリティカリティ確率を用いて回路のタイミング特性の最適化をガイドするステップとを含み、
    遅モードの統計的エッジ・スラックが、遅モードのソース・ノードの統計的到達時間と、遅モードのシンク・ノードの統計的要求到達時間の負数と、前記エッジの遅モードの遅延との統計和である、前記最適化する方法。
  4. コンピュータに、回路のタイミング特性を最適化させる方法であって、
    前記コンピュータが、タイミング・グラフのエッジのクリティカリティ確率を判定するステップであって、前記判定ステップであって、
    タイミング解析される回路に対応する有向非循環タイミング・グラフを形成するステップと、
    前記コンピュータが、前記回路の統計的タイミング解析を実行するステップと、
    前記コンピュータが、注目する各エッジについて、前記タイミング・グラフを複数の部分に分割するように構成されるカットセットを定めるステップと、
    前記コンピュータが、前記カットセット内の各エッジについて、エッジ・スラックを判定するステップと、
    前記コンピュータが、前記カットセット内の全てのエッジ・スラックの統計的極大を計算するステップと、
    前記コンピュータが、各エッジのエッジ・クリティカリティ確率を前記統計的極大から推論するステップと、
    を含む、前記判定ステップと、
    前記コンピュータが、前記クリティカリティ確率を用いて回路のタイミング特性の最適化をガイドするステップとを含み、
    早モードの統計的エッジ・スラックが、早モードのソース・ノードの統計的到達時間と、早モードのシンク・ノードの統計的要求到達時間の負数と、前記エッジの早モードの遅延との統計和である、前記最適化する方法。
  5. 請求項1から請求項4のいずれか1項に記載の方法のステップの全てを前記コンピュータに実行させるための命令を含む、コンピュータ・プログラム。
JP2008544986A 2005-12-16 2006-12-12 統計的タイミング解析におけるクリティカリティ予測のシステム及び方法 Expired - Fee Related JP5004965B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/303,792 US7437697B2 (en) 2005-12-16 2005-12-16 System and method of criticality prediction in statistical timing analysis
US11/303,792 2005-12-16
PCT/EP2006/069589 WO2007068690A1 (en) 2005-12-16 2006-12-12 System and method of criticality prediction in statistical timing analysis

Publications (2)

Publication Number Publication Date
JP2009519528A JP2009519528A (ja) 2009-05-14
JP5004965B2 true JP5004965B2 (ja) 2012-08-22

Family

ID=37708166

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008544986A Expired - Fee Related JP5004965B2 (ja) 2005-12-16 2006-12-12 統計的タイミング解析におけるクリティカリティ予測のシステム及び方法

Country Status (6)

Country Link
US (1) US7437697B2 (ja)
EP (1) EP1969502B1 (ja)
JP (1) JP5004965B2 (ja)
KR (1) KR100998798B1 (ja)
CN (1) CN101317178B (ja)
WO (1) WO2007068690A1 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4774294B2 (ja) * 2005-12-26 2011-09-14 富士通株式会社 集積回路レイアウト装置、その方法及びプログラム
US7480880B2 (en) * 2006-02-21 2009-01-20 International Business Machines Corporation Method, system, and program product for computing a yield gradient from statistical timing
JP4734141B2 (ja) * 2006-02-28 2011-07-27 富士通株式会社 遅延解析プログラム、該プログラムを記録した記録媒体、遅延解析方法、および遅延解析装置
US7698674B2 (en) * 2006-12-01 2010-04-13 International Business Machines Corporation System and method for efficient analysis of point-to-point delay constraints in static timing
US8151229B1 (en) * 2007-04-10 2012-04-03 Cadence Design Systems, Inc. System and method of computing pin criticalities under process variations for timing analysis and optimization
US7861199B2 (en) * 2007-10-11 2010-12-28 International Business Machines Corporation Method and apparatus for incrementally computing criticality and yield gradient
JP5076832B2 (ja) * 2007-11-22 2012-11-21 富士通株式会社 遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法
US8245167B1 (en) * 2008-02-14 2012-08-14 Cadence Design Systems, Inc. Branch and bound techniques for computation of critical timing conditions
US7844933B2 (en) * 2008-05-01 2010-11-30 International Business Machines Corporation Methods of optimizing timing of signals in an integrated circuit design using proxy slack values
US8056035B2 (en) 2008-06-04 2011-11-08 International Business Machines Corporation Method and system for analyzing cross-talk coupling noise events in block-based statistical static timing
US8028260B1 (en) * 2008-10-14 2011-09-27 Altera Corporation Determination of most critical timing paths in digital circuits
US9098661B1 (en) * 2008-12-10 2015-08-04 The Mathworks, Inc. Extensible platform for back-annotation of target-specific characterization onto a model of a hardware system
JP2010160787A (ja) * 2008-12-11 2010-07-22 Jedat Inc パラメータ情報作成システム、歩留まり算出システム、プログラム及び記録媒体
US8141025B2 (en) * 2009-01-15 2012-03-20 International Business Machines Corporation Method of performing timing analysis on integrated circuit chips with consideration of process variations
WO2010092825A1 (ja) * 2009-02-13 2010-08-19 パナソニック株式会社 回路解析方法
US8122404B2 (en) * 2009-02-19 2012-02-21 International Business Machines Corporation Performing a statistical timing abstraction for a hierarchical timing analysis of VLSI circuits
US8781792B2 (en) * 2009-10-31 2014-07-15 International Business Machines Corporation Yield computation and optimization for selective voltage binning
CN102231130B (zh) * 2010-01-11 2015-06-17 国际商业机器公司 计算机系统性能分析方法和装置
US8266565B2 (en) * 2010-01-29 2012-09-11 International Business Machines Corporation Ordering of statistical correlated quantities
US8365116B2 (en) * 2010-12-06 2013-01-29 University Of Utah Research Foundation Cycle cutting with timing path analysis
US8615727B2 (en) * 2010-12-16 2013-12-24 Synopsys, Inc. Simultaneous multi-corner static timing analysis using samples-based static timing infrastructure
US9235675B2 (en) * 2011-04-01 2016-01-12 Taiwan Semiconductor Manufacturing Company, Ltd. Multidimensional monte-carlo simulation for yield prediction
KR20130111061A (ko) * 2012-03-30 2013-10-10 한국전자통신연구원 이진 분할 트리를 이용한 영상 인코딩 방법
US8977998B1 (en) * 2013-02-21 2015-03-10 Altera Corporation Timing analysis with end-of-life pessimism removal
US9342639B1 (en) * 2015-02-17 2016-05-17 International Business Machines Corporation Method of hierarchical timing closure of VLSI circuits using partially disruptive feedback assertions
KR102398596B1 (ko) 2015-06-15 2022-05-16 삼성전자주식회사 집적 회로의 수율 예측 방법 및 집적 회로의 설계 최적화 방법
US9760664B2 (en) * 2015-07-07 2017-09-12 International Business Machines Corporation Validating variation of timing constraint measurements
US9690899B2 (en) * 2015-08-13 2017-06-27 International Business Machines Corporation Prioritized path tracing in statistical timing analysis of integrated circuits
US9600617B1 (en) * 2015-09-01 2017-03-21 International Business Machines Corporation Automated timing analysis
US9865486B2 (en) 2016-03-29 2018-01-09 Globalfoundries Inc. Timing/power risk optimized selective voltage binning using non-linear voltage slope
US10318686B2 (en) 2016-10-11 2019-06-11 Intel Corporation Methods for reducing delay on integrated circuits by identifying candidate placement locations in a leveled graph
US9767239B1 (en) 2016-10-20 2017-09-19 International Business Machines Corporation Timing optimization driven by statistical sensitivites
JP6787045B2 (ja) * 2016-10-31 2020-11-18 富士通株式会社 検証支援プログラム、検証支援方法、および情報処理装置
CN108228919A (zh) * 2016-12-09 2018-06-29 厦门紫光展锐科技有限公司 一种集成电路接口的时序生成方法及装置
CN108733832B (zh) * 2018-05-28 2019-04-30 北京阿可科技有限公司 有向无环图的分布式存储方法
US10747924B2 (en) * 2018-07-16 2020-08-18 Taiwan Semiconductor Manufacturing Company Ltd. Method for manufacturing integrated circuit with aid of pattern based timing database indicating aging effect
KR20230114264A (ko) * 2020-12-11 2023-08-01 시놉시스, 인크. 에뮬레이션 시스템들에 대한 머신 러닝 지연 추정
CN114239444B (zh) * 2021-12-21 2023-08-29 东南大学 一种基于块的电路延时模型的建立方法
CN114818570B (zh) * 2022-03-11 2024-02-09 西北工业大学 一种基于蒙特卡罗仿真的嵌入式系统时序分析方法
CN117574820A (zh) * 2024-01-15 2024-02-20 中科亿海微电子科技(苏州)有限公司 一种增量时序分析方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5365463A (en) * 1990-12-21 1994-11-15 International Business Machines Corporation Method for evaluating the timing of digital machines with statistical variability in their delays
JP2002279012A (ja) * 2000-11-22 2002-09-27 Matsushita Electric Ind Co Ltd 遅延分布計算方法、回路評価方法およびフォールスパス抽出方法
US6637014B2 (en) * 2001-03-06 2003-10-21 Nec Corporation Crosstalk mitigation method and system
US20040002844A1 (en) * 2002-06-27 2004-01-01 Jess Jochen A.G. System and method for statistical modeling and statistical timing analysis of integrated circuits
US7000205B2 (en) 2003-05-29 2006-02-14 International Business Machines Corporation Method, apparatus, and program for block-based static timing analysis with uncertainty
US7111260B2 (en) 2003-09-18 2006-09-19 International Business Machines Corporation System and method for incremental statistical timing analysis of digital circuits
US7086023B2 (en) 2003-09-19 2006-08-01 International Business Machines Corporation System and method for probabilistic criticality prediction of digital circuits
US7428716B2 (en) 2003-09-19 2008-09-23 International Business Machines Corporation System and method for statistical timing analysis of digital circuits
US7350171B2 (en) * 2005-11-17 2008-03-25 Lizheng Zhang Efficient statistical timing analysis of circuits

Also Published As

Publication number Publication date
EP1969502B1 (en) 2012-08-01
CN101317178A (zh) 2008-12-03
US20070143722A1 (en) 2007-06-21
KR20080075868A (ko) 2008-08-19
KR100998798B1 (ko) 2010-12-06
CN101317178B (zh) 2010-07-21
US7437697B2 (en) 2008-10-14
EP1969502A1 (en) 2008-09-17
JP2009519528A (ja) 2009-05-14
WO2007068690A1 (en) 2007-06-21

Similar Documents

Publication Publication Date Title
JP5004965B2 (ja) 統計的タイミング解析におけるクリティカリティ予測のシステム及び方法
US9652576B2 (en) Detailed placement with search and repair
US7469394B1 (en) Timing variation aware compilation
US8112728B1 (en) Early timing estimation of timing statistical properties of placement
JP2023522567A (ja) ニューラルネットワークを使った集積回路配置の生成
Kahng New directions for learning-based IC design tools and methodologies
US8645882B2 (en) Using entropy in an colony optimization circuit design from high level synthesis
Agarwal et al. Statistical clock skew analysis considering intradie-process variations
US8296712B2 (en) Method and apparatus for improving the interconnection and multiplexing cost of circuit design from high level synthesis using ant colony optimization
US20090132981A1 (en) Method for Incremental, Timing-Driven, Physical-Synthesis Using Discrete Optimization
Witschen et al. CIRCA: Towards a modular and extensible framework for approximate circuit generation
Bañeres et al. Variable-latency design by function speculation
Grewal et al. Automatic flow selection and quality-of-result estimation for FPGA placement
WO2010092825A1 (ja) 回路解析方法
Vaverka et al. Evolving component library for approximate high level synthesis
US7168057B2 (en) Targeted optimization of buffer-tree logic
US8776003B2 (en) System and method for employing side transition times from signoff-quality timing analysis information to reduce leakage power in an electronic circuit and an electronic design automation tool incorporating the same
US8296713B2 (en) Method and apparatus for synthesizing pipelined input/output in a circuit design from high level synthesis
Shanavas et al. Optimal solution for VLSI physical design automation using hybrid genetic algorithm
Balaskas et al. Variability-aware approximate circuit synthesis via genetic optimization
Al-Hyari et al. Novel congestion-estimation and routability-prediction methods based on machine learning for modern fpgas
Lin et al. Critical-trunk-based obstacle-avoiding rectilinear Steiner tree routings and buffer insertion for delay and slack optimization
Meng et al. HEDALS: Highly Efficient Delay-driven Approximate Logic Synthesis
Rodriguez et al. A hypergraph model and associated optimization strategies for path length-driven netlist partitioning
US10387595B1 (en) Systems and methods for modeling integrated clock gates activity for transient vectorless power analysis of an integrated circuit

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090128

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090917

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20110705

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20110728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111025

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120105

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: 20120424

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: 20120522

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

Free format text: PAYMENT UNTIL: 20150601

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees