JP2005512237A - タイミングモデル抽出のためのアサーションハンドリング - Google Patents

タイミングモデル抽出のためのアサーションハンドリング Download PDF

Info

Publication number
JP2005512237A
JP2005512237A JP2003551711A JP2003551711A JP2005512237A JP 2005512237 A JP2005512237 A JP 2005512237A JP 2003551711 A JP2003551711 A JP 2003551711A JP 2003551711 A JP2003551711 A JP 2003551711A JP 2005512237 A JP2005512237 A JP 2005512237A
Authority
JP
Japan
Prior art keywords
assertion
arc
pins
timing
model
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.)
Pending
Application number
JP2003551711A
Other languages
English (en)
Other versions
JP2005512237A5 (ja
Inventor
チョ ウー ムーン,
ハリシュ クリプラニ,
クリシュナ プラサド ベルクヘール,
Original Assignee
カデンス デザイン システムズ, インコーポレイテッド
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 カデンス デザイン システムズ, インコーポレイテッド filed Critical カデンス デザイン システムズ, インコーポレイテッド
Publication of JP2005512237A publication Critical patent/JP2005512237A/ja
Publication of JP2005512237A5 publication Critical patent/JP2005512237A5/ja
Pending legal-status Critical Current

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
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/08Intellectual property [IP] blocks or IP cores

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)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Stored Programmes (AREA)

Abstract

タイミングモデル抽出のためのタイミング制約またはアサーションをハンドリングする方法およびシステムが開示されている。開示されている、アサーションをハンドリングするアプローチの1つは、存在するピンを保持すること、または新たな内部ピンを作製することによって、元のアサーションの統合性を自動的に保存することによるものである。アサーションは、モデルの一部と見られ、新たなアサーションのセットが、タイミングモデル抽出プロセスの一部として自動的に生成され、そのモデルの一部として格納され得る。アサーションは、入力ポート、出力ポート、内部ピン、または階層ピンと関連付けられ得、複数ブロックにまたがることさえあり得る。

Description

(関連出願の相互参照)
本願は、2001年12月7日に出願された米国仮出願番号第60/339,235号の優先権を主張し、その全体において参考として援用される。
(著作権表示)
本発明文書の一部の開示には、著作権保護の対象になる資料を含む。著作権所有者は、特許商標局の特許ファイルおよび記録に記載されるように特許文書および特許開示の、誰かによる複製に反対はないが、さもなければ、全ての他の著作権を確保する。
本発明は、電子回路設計の分野に関し、より詳細には、タイミングモデル抽出の分野に関する。
タイミング抽出またはブロックの特徴付けは、例えば、静的タイミング分析器といったタイミング分析器を用いる用途のためのデジタル回路のタイミングモデルを生成するプロセスについて言う。タイミング抽出は、タイミング検証の複雑性を縮小し、かつ、IPブロックの実行の詳細を隠す抽象化レベルを供給することによって、階層的なトップダウンフローおよびボトムアップIPオーサリングフローにおける重要な役割を果たす。タイミング抽出における3つの所望の特徴は、精度、効率、および有用性である。
抽出されたモデルは、オリジナル回路のタイミング行動を保護し、正しい透明なラッチ動作およびタイミング違反を含む正確な結果を作成する。モデルはまた、モデルを生成するために必要とされるリソースの点について、かつ、最終モデルのサイズの点について効果的になる必要がある。モデルはまた、既存の静的タイミング分析器を用い易くなる。これは、モデルの具体化、オリジナルタイミング制約の転換、および分かりやすいタイミングレポートを含む。
タイミングモデルは、しばしば2つのタイプ(ブラックボックスモデルおよびグレーボックスモデル)に分類され得る。ブラックボックスモデルは、ブロック中に内部視認性がなく、タイミング情報は、全てブロックの境界におけるピンに通じる。一方、グレーボックスモデルは、内部ピンを有する。内部ピンは、複数のラッチにわたって、タイム借用のような動作をモデリングさせることを可能にする。このような内部ピンは、モデルサイズを縮小する性質およびオリジナルタイミング制約またはアサーションを適用する性質といった利点を提供する。
ブラックボックスモデルをインプリメントするための1つのアプローチにおいて、ユーザは、入力スルー(slew)値および出力負荷値のセットを供給し、ツールは、全てのポートツーポートのパス遅延および関連するタイミングチェックを決定するようにパストレーシングを実行する。ブラックボックスモデルが広範に用いられたが、このモデルは、著しい欠点で苦しむ。例えば、タイミンググラフにおけるそれぞれ可能なパスのトレーシングは、潜在的に複雑なタスクである。潜在的に複雑なタスクは、計算リソースのかなりの量を消費し、しばしば、モデルを抽出するために完全なタイミング分析プロセスを必要とする。さらに、このアプローチにおいて結果として生じるモデルサイズは、実際は、オリジナルタイミンググラフサイズよりも結局大きくなり得る。これは図1に示され、図1において、パストレーシングを使用して、タイミンググラフ100からブラックボックスモデル140を得る。このアプローチにおいて、全てのポテンシャルパスは、個々の入力ポートから個々の出力ポートにトレーシングすることによって識別される。従って、オリジナルタイミンググラフ100におけるアーク102およびアーク108を介するパスは、ピン150を介してトレースされ、ブラックボックスモデル140においてパス120を形成する。それぞれ可能なパスのトレーシングにより、結果として生じるタイミングモデル140に、9つのアークまたはパスを生じる(アーク120、122、124、126、128、130、132、134、および136)。示され得るように、オリジナルタイミンググラフ100において6つのみのアークがある(アーク102、104、106、108、110、および112)。従って、ブラックボックスモデル140は、実際に、オリジナルタイミンググラフ100よりも大きい。
公知のブラックボックスモデルを有する別の欠点は、限定されたラッチ動作のみがモデル化され得るということである。モデルは、いくつかの所与のクロック波形に対してオリジナルのネットリストのラッチタイム借用動作を取り込み得る。モデルが抽出された後に、クロック波形が変化する場合、モデルは無効になる。さらに、ブラックボックスにおけるアサーションに対するサポートが、ブロックに完全に含まれるそれらのアサーション(assertion)に対するサポートは、例え境界ポートから始まるか、または境界ポートで終端しても限定される。境界ポートから始まるか、または境界ポートで終端するアサーションだけが、完全にサポートされ得る。例えば、境界ポートから始まらないか、または境界ポートで終端しないアサーションは、サポートされ得ない。また、複数のブロックにかかるアサーションは、サポートされ得ない。例えば、ブロックAから始まり、かつ、ブロックBの中間で終端するマルチサイクルパスを考慮する。ブロックBのブラックボックスモデルは、このマルチサイクルパスのアサーションをサポートし得ない。
グレーボックスのモデリングに対する対処法もまた、欠点に苦しむ。従来のグレーボックスは、ラッチにおける任意の透明レベルを適切に対処し得ない。ラッチは、レジスタまたは組み合わせゲートに変化され得るが、このような変化は極めて保守的であり、かつ、タイム借用を可能にしないモデルを結果として導く。あるアプローチは、個々のラッチの代わりにラッチパスを崩壊させるラッチパス圧縮動作を提供する。この動作において、圧縮の及ぶ限りは、所望のラッチ透明レベルを明確にすることによってコントロールされる。しかし、このアプローチは、モデルサイズの縮小を保証し得ず、時には、モデルサイズは、実際に、ラッチ圧縮の後に増加する。さらに、その方法は、ラッチパスの数またはラッチ透明レベルを用いてうまくスケーリングしない。
タイミンググラフを縮小することによってタイミングモデルを生成するための方法およびシステムが開示される。本方法は、明確な許容内にある正確さであり、非常に効率的であるモデルを生成し得る。また、タイミング制約/アサーションをモデルに対して持続し、適用するためのアプローチが開示される。ある実施形態において、タイミング制約/アサーションは、一部のモデルとして観測され、生成され得る新しいタイミング制約のセットが、モデル抽出プロセスの一部として自動的に適用される。オリジナルアサーションのアプリケーションのためのラッチタイミング借用およびサポートは、いくつかの中間ピンを維持することによって達成され得る。本発明のさらなる、かつ追加のオブジェクト、詳細、および利点は、図面および以下のテキストに記載される。
(概要)
本発明の開示される実施形態は、タイミンググラフを縮小することによってタイミングモデルを生成するための方法およびシステムに向けられる。本方法は、明確な許容内にある正確さがあり、かつ極めて効率的であるモデルを生成し得る。タイミング制約/アサーションをモデルに対して持続し、適用するためのアプローチがさらに開示される。ある実施形態において、タイミング制約/アサーションは、一部のモデルとして観測され、新しいタイミング制約のセットは、一部のモデル抽出プロセスとして自動的に生成され得る。オリジナルアサーションのアプリケーションに対するラッチタイム借用およびサポートは、いくつかの中間ピンによって達成され得る。
本発明の実施形態において、モデル抽出は、オリジナルタイミンググラフを簡略化することによって実行される。簡略化は、タイミングピンをタイミンググラフに反復的に移動し、タイミングアークを結合することによって達成される。これにより、モデルサイズおよびCPU/メモリリソースのトレードオフを可能にするモデルのスペクトルを結果的に生じる。説明のため、3つのタプルG=(P,D,C)としてタイミンググラフGを考慮すると、Pはピンのセットであり、Dは遅延アークのセットであり、Cはチェックアークのセットである。遅延アークは、ピンD⊆(P×P)で始まり、チェックアークは、C⊆(P×P)で終端する。各遅延アークと共に、ソースピンとシンクピンとの間の有効な遷移を定義する遷移行列が関連付けられる。各チェックアークと共に、信号ピンと基準ピンとの間の有効な起伏遷移または降下遷移を定義する遷移行列が関連付けられる。各チェックアークは、例えば、セットアップ、ホールド、リカバリ、除去といったタイプを有する。本発明に用いられる専門用語および従来技術を説明するために、単純なD型レジスタを表すタイミンググラフの例が図2aに示される。遅延アーク202は実線矢印のように表され、チェックアーク204は点線矢印のように表される。CLK→Qの遅延アークに対する遷移行列の例は、図2bに示される。この行列は、入力および出力遷移上にチェックアークと遅延アークとの間の遷移関係を特定する。遅延/チェック値は、遅延/チェックアークと関連付けられる。遅延またはチェック値は、例えば、線形関数、ルックアップテーブル、または遅延方程式であり得る。
図3aは、本発明の実施形態に従ってタイミングモデル抽出するためのプロセスのフローチャートを示す。302において、プロセシングに対してタイミンググラフが受け取られる。ある実施形態において、この動作は、タイミングエンジンによって生成されるオリジナルタイミンググラフを新しいモデルグラフにコピーすることによって達成される。任意のタイミング分析ツール(例えば、カリフォルニア州サンノゼのCadence Design Systemsから市販されるBuildGatesタイミング分析ツール)を使用して、このタイミンググラフを生成し得る。ある実施形態において、所与のタイミンググラフは、周期的になるように想定される。304において、モデルグラフは、タイミングピンを移動させ、タイミングアークに結合することによって縮小される。306において、タイミンググラフ内のアサーションは、抽出されたモデルで自動的に処理され、かつ再現される。オリジナル回路におけるアサーションは、さらに詳細に以下で記載されるように、中間ピンを用いるモデルグラフにおけるアサーションに対して、自動的にマッピングされる。308において、タイミングモデルは、モデルグラフから抽出される。
図3bは、図3aのモデルグラフ縮小動作304をインプリメントするためのプロセスの実施形態のフローチャートを示す。402において、処理するためのタイミングピンの特定、およびモデル縮小動作から排除するためのタイミンググラフエレメントの特定が為される。縮小からできる限り排除するためのピン/エレメントの例は、アンカーポイント、ラッチポイント、およびアサーションポイントを含む。アンカーポイントは、アンカーポイントが除去される場合、ピンに対して、モデルグラフがオリジナルタイミンググラフよりも大きくなるようなピンである。アンカーピンが、例えば、図1のピン150によって示される。ラッチポイントは、縮小から排除され、ラッチ挙動の維持を保証する。排除されるラッチポイントの例は、ラッチエレメントの、クロックピンではなく、入力および出力ピンを含む。アサーションまたは制約に関連付けられるピンは、縮小から排除され、オリジナル制約を持続し、かつ適用する。
402における除外について識別されるエレメントおよびピンに関することを除いて、404において、タイミンググラフ部分は、起こり得る縮小に対して処理される。説明のために、タイミングモデルは、遅延アークの間の相互作用を扱い、かつ組み合わせモデル412に取り込まれる組み合わせ部分と、遅延アークとチェックアークとの間の相互作用を扱い、かつシーケンシャルモデル414に取り込まれるシーケンシャル部分とを含む少なくとも2つの部分に分割される。特別なプロセスがさらに定義され、標準モデルを用いて適切に縮小され得ない特別なタイプのアーク416を扱い得る。例えば、セルフループアークは、個々のプロセスが縮小に対して使用され得る特別なタイプのアークの例である。タイミンググラフにおけるピンおよびアークは、さらなるピン430が処理のために残らなくなるまで、BFS(幅優先探索)の順序を用いて処理される。縮小プロセスの複数の反復は、タイミンググラフの全てまたは一部について実行され得る。
具現化されるタイミングモデル抽出プロセスは、静的タイミング分析器で用いるためのデジタル回路タイミングモデルを構築する。この静的タイミング分析器において、グレーボックスタイミングモデルは、タイミンググラフを縮小することによってゲートレベルネットリストから生成される。これにより、任意のレベルのラッチタイム借用、セルフループタイミングチェックに対する正確なサポート、およびオリジナルタイミング制約を保証するための機能を含むモデルの精度が提供される。さらに、モデルを生成するために必要とされるCPUおよびメモリリソースは、回路のサイズを用いてうまくスケーリングする。
例えば、オリジナル回路の最も悪い場合の挙動がモデルにおいて精度よく保証される場合、モデル抽出プロセスは正確である。オリジナル回路で生じる任意のタイミング違反は、モデルにおいて再現可能である。さらに、入力スルー値における変化について変化する重要なパスは、モデルにおいて精度よく反映される。これにより、重要なパスが、ある特定の入力スルー値を用いて定義され、かつ入力スルーおよび出力ロード値の組み合わせについて後に再び特徴付けられる前のアプローチよりもさらに良い精度が提供される。さらに、例えば周期および最小パルス幅チェックといったセルフループタイミングチェックも保証される。さらに、具現化されたアプローチにおいて、モデルを抽出するためにフルダウンタイミング分析が本質的に必要とされる前のアプローチではなく、単純なグラフ制約について、抽出に準拠されるので、モデル抽出プロセスは、さらに効率よく適用され得る。また、モデルサイズは、例えば、アンカーポイントを持続することによって、顕著に縮小され得る。グレーボックスモデルを生成するステップはまた、ブラックボックスモデリングアプローチに比較されるように回路における中間ピンにさらに明白に提供する。中間ピンは、ラッチタイミング借用挙動およびレジスタツーレジスタの正確なモデリングを可能にする。具現化されるグレーボックスモデルは、クロックコンテキストの独立性(モデルを構築するために用いられる波形とは異なるクロック波形に対して有効である)であるモデルを作成する。開示される実施形態において、パス遅延は、入力スルーおよび出力ロードに関して特徴付けられ得るが、タイミングチェックは、入力スルーおよびクロックスルーに関して特徴付けられる。
図3cは、本発明によるモデル抽出メカニズム390のアーキテクチャの実施形態を示す。モデル抽出メカニズム390は、4つの基本的なコンポーネントを含む。モデルグラフビルダ391は、タイミングエンジン396から新しいモデルグラフにオリジナルタイミンググラフを複製する。モデルグラフリデューサ392は、モデルグラフを単純化するエキストラクタのコアエンジンである。モデルライタ394は、オリジナルタイミング制約を管理する。モデルライタ393は、縮小したモデルグラフからのタイミングモデルを書き改める。アサーションハンドラ394は、オリジナルタイミング制約を管理する。これらの機能のコンポーネントの各々は、より詳細に以下に記載される。
(モデルグラフビルダ)
このセクションは、モデルグラフを構築するためのプロセスおよびメカニズムの実施形態を記載する。このアプローチでは、オリジナルタイミンググラフにおける全てのチェックアークは、新しいモデルグラフに追加される。オリジナルタイミンググラフにおける遅延アークのほとんどまたは全ては、モデルグラフに複製される。例えば、(a)ラッチD−>Qフラッシュアーク、および(b)クロックゲーティングアーク(クロックゲート入力ピンからクロックゲート出力ピンまでの全てのアーク)。この実施形態において、例えば、set_disable_timingといった遅延アークおよびチェックアークは、モデルグラフに含まれない。
モデルグラフは、ピン、遅延アーク、およびチェックアークに関連付けられたオブジェクトから成る。これらのオブジェクトの各々は、オリジナルタイミンググラフにおける対応するオブジェクトへのポインタを有する。入力から出力へ、BFS順序にソートされるピンのアレイを戻すBFSトラバーサルルーチンが使用される。オリジナルタイミンググラフに存在しなかったサイクルを導入することを避けるために、BFSグラフトラバーサルルーチンは、ラッチフラッシュアークおよびクロックゲーティングアークに配慮する。
(モデルグラフリデューサ)
図4aは、グラフ縮小を実行するためのプロセスおよびメカニズムの実施形態について擬似コードを示す。このアプローチにおいて、タイミンググラフは、幅優先検索(BFS)順序において各中間ピンにアクセスすることによって時間におけるあるピンを縮小させる。縮小は、さらなる変化が可能にならなくなるまで繰り返される。BFSトラバーサルを用いるための理由は、ピンが取り除かれる以前に、ピンに遅延アークを入来することがすでに処理されたこと、および遅延アークが入力スルー値の最小数に関して特徴付けられることを保証することを含む。removePin()は、マージ動作を実行するメインルーチンである。postProcess()ルーチンは、初期入力ピン(または持続された中間ピン)から始まり、かつ初期出力ピン(または持続された中間ピン)で終端する遅延アークまたはチェックアークを管理する。このようなアークについて、値rン計算ルーチンは、ピンの移動がこのようなアークに対して実行されないので、明白になり得る。
removePin()ルーチンの実施形態に対する擬似コードが図4bに示される。セクション472は、特定のピンがモデルから移動されるか、または縮小プロセスから排他されるかどうかの決定が為される。セクション472のretainPin()ルーチンの実施形態に対する擬似コードが図4cに示される。セクション474、476、および478は、タイミンググラフの対象部分を縮小するための擬似コードを含む。説明のため、タイミングモデルは、少なくとも2つの部分に分割される。組み合わせ部分は、遅延アークの間の相互作用に対処して、組み合わせモデルにおいて取り込まれる。シーケンシャル部分は、遅延アークとチェックアークとの間の相互作用に対処し、シーケンシャルモデルに取り込まれる。図4bにおける擬似コードのセクション474は、「sマージ」および「pマージ」動作を用いる縮小する組み合わせモデルに向けられる。セクション476は、「backward−s−merge」動作を用いて連続モデルを減少させることに関する。セクション478は、「前方sマージ」操作を用いる縮小するシーケンシャルモデルに向けられる。これらの操作の各々は、以下にさらに詳細に記載される。
(縮小するか、縮小から排他するためのタイミンググラフエレメントを識別すること)
このセクションは、特定のタイミンググラフエレメントがモデル縮小プロセスに含まれるか、またはモデル縮小プロセスから排他されるかどうかを決定するためのプロセスおよび機構の実施形態を記載する。
タイミンググラフにおけるピンおよびアークは、さらなるピンが処理するために保持しなくなるまでBFS順序を用いて処理される。各エレメントは、縮小プロセスから排他されない限り、縮小の対象になる。タイミンググラフエレメントは、例えば、結果として生じるタイミングモデルにおけるある識別されたタイプの挙動/情報を持続するために、あるいは、縮小プロセスがタイミングモデルのサイズを不利益に増大しないことを保証するために、多様な理由のための縮小の適性から排他され得る。本アプローチは、経験則を用いて、例えばモデルサイズがオリジナル回路サイズ以下になるようなモデルサイズにおけるブローアップを避け得る。
縮小から排他するためのタイミンググラフエレメントの例示的エレメントの第1のセットは、ラッチに対するタイミングピンである。タイミングモデルにおける移動からラッチタイミングピンを排他することは、ラッチ挙動を持続するために役立つ。このことは、ラッチに関連付けられた透明度の感度が「time−borrowing(時間借用)」に有益であり得るので、一部において生じる。「時間借用」は、ラッチエレメントの入力および出力ピンが縮小プロセスから排他される場合、持続される。本発明の実施形態において、ラッチのクロックピンが縮小の適性から排他されないことに留意されたい。ラッチポイントは、設計における構造情報にアクセスすることを含む多くの教示によって、あるいは、タイミンググラフにおけるラッチプロファイルの分析によって特定される。多くのラッチツーラッチ接続を有するラッチベースの設計は、この最適化から最も利益を得るように期待される。
他のこのようなピンは、縮小から排他され、オリジナルタイミング挙動を持続し得る。このようなピンの例示は、ラッチ入力ピン、ラッチ出力ピン、ゲートとクロック出力ピン、ゲートとクロック入力ピン、アサーションに関連付けられたピン、および出力ツー出力パスに関連付けられたピンを含む。
ピンが持続されるとき、入力遅延アークからピンに来るスルー値を用いて、ピンから生じるアークを横切って遅延を計算する。出力ツー出力に関連付けられたピンは、「ネットピン」によって供給された全ての中間ピンを参照する。ネットピンは、ネットアークを介して初期出力(「PO」)ポートに接続するピンである。この持続を用いて、出力ツー出力による正確な出力ローディングを取り込んで、正確な遅延アクロスネットアークを明らかにする。
別の例として、アサーションに関連付けられたタイミングピンはまた、縮小から排他し得る。以下にさらに詳細に説明されるように、アサーションは、タイミングモデルに直接組み込まれ、個々のタイミングモデルエレメントに関連付けられ得る。これらのエレメントを縮小のための適性から排他することは、アサーションとそれに関連付けられたタイミンググラフエレメントとの間の関連性の維持に役立つ。
モデル抽出の目的は、オリジナル回路より小さいモデルを生成することである。しかし、いくつかの場合、あるタイミングピンの移動は、タイミングアークの数におけるジオメトリックブロウアップを導く。「アンカーポイント」は、移動した場合、モデルサイズにおける増大を導き得る既存のピン(例えば、中間ピン)について言う。タイミングモデルを有することを避けるためには、オリジナルタイミンググラフより大きくなり、このようなアンカーポイントが縮小プロセスから排他され得る。遅延アークの数を用いて、モデルサイズを確立する。このアプローチにおいて、遅延アークが最終モデルサイズへの寄与を全て等しくさせることが想定される。この想定が与えられると、アンカーポイントの識別は、静的回路の最適化のコンテキストにおいて剪定のセットを見出す問題に類似する。この目的は、可変の数ではなく、遅延アークの数を最小化することである。また、入力スルー値の最小数に関する遅延アークを特徴付けることが望まれるので、このアプローチは、それらの入来遅延アークを最初に処理することなくランダムに中間ピンを移動しない。これは順序を制約する。この順序において、アンカーポイントは特定され、かつ維持される。
アンカーポイントを特定するために、ゲイン値は、以下のようなピンに対して決定される:
ゲイン=(#入来遅延アークの数 × #出て行く遅延アークの数)−#入来遅延アークの数−#出て行く遅延アークの数
この値は、ピンが移動される場合、遅延アークの数において増大を表す。ある実施形態において、ポジティブゲインを有し、かつ、観察可能である任意のピンは、アンカーポイントに対する候補である。ピンから初期の出力または持続されたピンへのパスがある場合、ピンは観察可能である。このアプローチにおいて、可観測性により、アンカーポイントは、最終的に移動されるピンの推移的ファンイン(fanin)錐体に形成されることが防止される。例えば、レジスタ入力ピンは、観測されず、最終的に移動され得る。
例えば、図1において、中間ピン150の移動以前に、オリジナルタイミンググラフ100において6つの遅延アークがある(すなわち、アーク102、104、106、108、110、および112)。ピン150が移動される場合、遅延アークの数は、3つのゲインを残して9つになる(すなわち、アーク120〜136)。このゲイン値は、上記の式を用いて特定され得る。この式において、入来遅延アークの数は3になり(アーク102、104、および106)、出て行く遅延アークの数も3になる(アーク108、110、112)。従って、ゲイン=((3×3)−3−3)=ピン150に対して3になる。故に中間ピン150に対するゲイン値がゼロを超えるので、ピン150は、縮小プロセスから排他されるアンカーポイントが考慮され得る。
一旦、アンカーポイントが特定されると、アンカーポイントは特定のパスに対して有効である。1つのパスが、全ての中間ピンの完全な掃引を構成する。アンカーポイントは、次のパスにおいて再び特定される。
アンカーポイントの決定に対する限界ゲイン値は、性能期待値を得るように、または変化するように調整され得る。ゲイン閾値に対する十分高い値と共に、全てのアンカーポイントは、設計から除去され得る。アンカーポイントの最大数は、ゲイン閾値を「1」の値にセットすることによって特定される。結果として生じるタイミングモデルがオリジナルタイミンググラフのサイズを超過しないことを保証するために、ゲイン閾値は1に設定され得る。
ゲイン閾値が高い値に設定されるとき、遅延の数は、最終モデルサイズがより大きくなるがより小さい閾値に対してよりも小さくなることが起こり得る。これが起こるのは、いくつかの遅延アークが遷移マトリックスの点に関して他の遅延アークよりも「濃く」なるからである。これは、全ての遅延アークが最終モデルサイズに等しく寄与させるという想定が局所的なレンジを越えて必然的に変化しないので、起こる。しかし、中間入来/出て行く遅延アークの数は全ての遅延アークではなく、このアプローチが観測されるので、これはアンカーポイントに関連付けられた見積もりに影響しない。
よりグローバルな観点に対して、遅延アークの異なる密度または重さはまた、アンカーポイントを決定するとき、考慮に取り入れられる。
(組み合わせモデルの縮小)
このセクションは、組み合わせモードを処理するために図4bのセクション474を実施するためのアプローチの実施形態を記載する。タイミンググラフを縮小するためのこのアプローチにおける2つの操作は、シリアル−マージ(「sマージ」)およびパラレル−マージ(「pマージ」)操作である。
この実施形態において、sマージ操作は、連続して2つの遅延アーク(d1およびd2)を得て、第1のアーク(d1)のソースから第2のアーク(d2)のシンクに、d1とd2との「合計」を表すように新しいアーク(d3)を生じる。sマージは、精度を損なうことなくタイミンググラフからの中間ピンの除去を可能にする縮小操作である、基本的な縮小操作である。sマージが実行されると、マージされたアークの新しいアークの遅延が計算される。
図5bを参照して、中間ピン508にわたって連続である2つのアーク、アーク1 502およびアーク2 504を考慮する。アーク1 502およびアーク2 504は、図5aに示される遅延値を有する。これら2つのアークは、中間ピン508を移動することによってシリアルにマージされる。アーク1 502とアーク2 504との間のsマージから生じる新しいアーク3 506は、アーク1 502およびアーク2 504の個々の遅延を合計することによって計算される遅延を有する。
この実施形態において、「レイジー」スルー計算が用いられ、ゆえに、出力スルーおよびアーク遅延は、遅延および出力スルー値における変化につながり得る新しい入力スルー値に対してのみ計算される。また、ロード−依存遅延計算は、出力ポートを駆動する最後のアークに制限され得る。
pマージ操作は、2つのパラレルアークを取り、それらを単一のアークにマージする。pマージ操作は、それが次のステージの計算において処理されることを必要とするアークの数を縮小させるように、モデル抽出時間にのける次の縮小に通じ得る。ある実施形態において、2つのパラレル遅延アークが与えられ、pマージは、2つのアークの「最も悪い」ものを選び、他のアークが廃棄されることを可能にする。
図6bを参照して、ピン600から始まり、ピン608で終わる2つのパラレルアーク、アーク1 602およびアーク2 604を考慮する。これらのアークに対する遅延値は、図6aの表に示される。単一のアーク3 602を用いて2つのアークからの情報をマージすることが所望される。
アーク1 602に対するアーク遅延d1がアーク2 604に対するアーク遅延d2よりも少ないということを想定する(すなわち、d1<d2)。当該のパスが遅い場合、次に、pマージ操作は、出力スルーを選定し、最悪の場合のアーク(この例示においては、より大きいアーク遅延値を有するのでアーク2 604である)からアーク遅延を選定する。早いパスおよび遅いパスが共に当該である場合、次に、pマージは、アーク1 602からd1の最悪の早い遅延、およびアーク2 604からd2の最悪の遅い遅延を獲得し得る。次に、アーク602は、pマージの後の2つの遅延:d1の早い遅延およびd2の遅い遅延を有する。
ある実施形態において、合成アーク3 606は新しいアークではない。それは、pマージプロセスにおいて縮小するようにパラレルアーク602および604のセットから持続するために選択されたアークである。従って、アーク602および604に導入されるpマージについて、遅いパスが当該の場合、かつ、アーク2 604がアーク1 602よりも大きいアークチンを有することが想定される場合、次に、pマージプロセスの後、アーク1 602は移動され、アーク2 604のみが合成アーク3 606として残る。代替の実施形態において、アーク3 606は、選択されたアーク値に基づいて必要とされるプロパティと共に形成される全体的に新しいアークである。
pマージ操作が入力スルー値における変化のために変化する重要なパスを考慮に入れるように構成され得ることに留意されたい。図7におけるタイミンググラフを考慮する。図7では、s1からs2、s3へと変化する入力スルー値と同様に、重要なパスは、AからB、Cへと変化する。2つのpマージ操作の後に結果として生じるアーク遅延は、重要なパスにおける変化を反映する。従って、本アプローチは、オリジナルに選択される特定の重要なパスにロックされないが、例えば入力スルー値における反かに基づいて、重要なパスを動的に決定し得る。
図8は、タイミンググラフの一部を縮小するために実行され得る一連のpマージおよびsマージ動作を説明する。最初に、タイミンググラフ部分は、第2のタイミングピン804に接続される遅延アーク810を有する第1のタイミングピン800を含む。別の遅延アーク806は、タイミングピン800から中間タイミングピン802まで伸びる。遅延アーク808は、中間タイミングピン802からタイミングピン804まで伸びる。
遅延アーク806および遅延アーク808が中間タイミングピン802を介して連続的に伸びることが見られ得る。従って、sマージ動作は、これら2つのアークをマージされた遅延アーク812の中へ縮小するように実行され得る。遅延アーク806が遅延値d1=1を有し、遅延アーク808が遅延値d2=2を有する場合、次に、sマージされたアーク812に対する遅延値d4は、2つの遅延値の合計(すなわち、d4=d1+d2=1+2=3)に等しくなる。sマージ操作の後、中間タイミングピン802は除去され、2つの遅延アーク806および808は遅延値d4=3を有する単一の遅延アーク812にマージされた。
この点について、マージされた遅延アーク812は、オリジナル遅延アーク810と平行になる。なぜなら、同様の入力タイミングピン800から同様の出力タイミングピン804まで共に伸びるからである。pマージ操作は、これら2つのアークを単一のマージされたアーク810中にさらに縮小するように実行され得る。当該のパスが遅い場合、次に、マージされたアーク810は、より大きい遅延値を有するどちらのアーク810または812でも遅延値に関連付けられる。ここで、アーク810は、それに平行なアーク812よりも大きい遅延値を有するので、マージされたアーク810は、アーク810の遅延値に関連付けられる(すなわち、遅延値d5=(d3またはd4の大きい方))。
縮小操作が完成されたとき、オリジナルタイミンググラフ部分において3つの遅延アークおよび3つのタイミングピンが存在されるので、最終的なタイミングもでるは、単一の遅延アークおよび2つのタイミングピンのみを含む。
例えば、pマージおよびsマージの一方のマージングが実行されると、関連した遷移マトリクスもまた変化し得る。
(シーケンシャルモデル)
このセクションは、シーケンシャルモデルを処理するために、図4bのセクション476および478をインプリメントするためのアプローチの実施形態を記載する。チェックアークは、少なくとも2つのメイングループに分類化され得る。あるグループは、「セットアップ」グループと呼ばれる、ここではデータ信号が基準またはクロック信号より以前に到達するように予測される。「セットアップ」グループの例は、セットアップ、リカバリ、スキュー、クロック分離などである。他のグループは、「ホールド」グループと呼ばれ、ここでは、基準信号がデータ信号より以前に到達するように予測される。「ホールド」グループの例は、ホールド、および移動である。
レジスタまたはフリップ−フロップは移動され、上記のように、ラッチ情報の一部は、ラッチ挙動を持続するように維持される。この実施形態において、全てのラッチ入力ピンおよびラッチ出力ピンは、維持される。シーケンシャルエレメントの移動に関連付けられた操作は、組み合わせモデルに対する操作に類似する。遅延アークとチェックアークとの間の相互作用を正確にかたどるために、2つの異なるsマージ操作が用いられる:前方sマージ478および後進sマージ476。シーケンシャルpマージは、組み合わせpマージと本質的に同様である。この差は、同様のタイプのチェックアークのみがマージされるということである。
レジスタ/ラッチクロックピンが移動されるとき、前方sマージ操作が用いられる。遅延アークおよびチェックアークがクロックピンに集まるとき、新しいチェックアークは、古いデータ信号(チェックアークの信号端)と新しいクロック信号(遅延アークのソース)との間に新しいチェック値を表すように生成される。仮に、dは遅延アーク上の遅延アークを示し、cはチェックアーク上のチェック値を示すとする。一実施形態において、セットアップグループに対して2つのアークをマージするとき、新しいチェック値はc−dになり、ホールドグループに対して、新しいチェック値はc+dになる。
図9は、前方sマージ操作を示す。この図は、レジスタに対するタイミンググラフを示す。レジスタにおいて、チェックアーク902および遅延アーク904は、クロックピン906に関連付けられる。前方sマージ操作を用いて、2つのアークをマージし、クロックピン906を移動することによってこのタイミンググラフを縮小させる。マージされたアーク908は、セットアップグループに対してチェック値c−dおよびホールドグループに対してc+dを有するチェックアークである。
レジスタ入力ピンが移動されるとき、後進sマージ操作が用いられる。遅延アークおよびチェックアークがデータピンに集まるとき、新しいアークは、遅延アークのソースと古いクロック信号との間に新しいチェック値を表すように生成される(チェックアークの基準端)。セットアップグループに対して、新しいチェック値はc+dになり、ホールドグループに対して、新しいチェック値はc−dになる。
図10は後進sマージ操作を示す。この図は、レジスタに対するタイミンググラフを示し、レジスタにおいて、チェックアーク1002および遅延アーク1004は、入力ピン1006に集まる。後進sマージ操作を用いて、2つのアークをマージし、入力ピン1006を移動することによってこのタイミンググラフを縮小する。マージされたアーク1008は、セットアップグループに対してチェック値c+dおよびホールドグループに対してc−dを有するチェックアークである。
(セルフループチェックアーク)
信号端および基準端が共に同様のピンを差す場合、ある「セルフループ」チェックアークがある。このようなタイミングチェックは、限定されないが、クロック上に最小パルス幅(MPW)および最小周期(MP)チェックを含む。前方および後進sマージ操作を用いることによって、このようなセルフ−ループチェックアークは、正確なクロックパス遅延(非対称の起伏/落ち込みを含む)およびスルー伝播を用いてかたどられ得る。
図11は、MPWセルフループチェックアーク1102を有するクロックパスのタイミンググラフフラグメントの例示を示す。入来遅延アーク1104は、セルフループチェックアーク1102の信号および基準端共に同じピン1106に接続されるように示される。
セルフループチェックアークは、入来遅延アークを概念的に複製することによってセルフループを有さないチェックアークとして「膨張」され得る。遅延アーク1104は、2つのアークd1 1104aおよびd2 1104bを生成するように複製される。アーク1102の各端部を複製されたアーク1104aおよび1104bに接続することによって、チェックアーク1102は変形され、故に、セルループアークになる。
従って、後進sマージは、遅延アークd1 1104aおよびチェックアーク1102上で実行され、マージされたチェックアーク1106を生成し得る。次に、前方sマージ操作は、遅延アークd2 1104bおよびチェックアーク1106上で実行される。これは、クロックパス遅延およびスルー伝播を正確に反映する、ポートCKにおける別のセルフループチェックアーク1108につながる。遅延アークまたはピンは、ここで実際に複製される必要がないことに留意されたい。図11において、説明のためのみの複製である。
(遅延計算およびロード特徴付け)
一実施形態において、遅延計算は、sマージおよびpマージ操作の間に実行される。この操作中に、スルー、ロード、および/またはデータ値の固定レンジを越えて計算される。例えば、ロードレンジは、出力ポートで終端する遅延アークに利用され得る。レンジは、ある遅延アークまたはチェックアークから他のものへ変化し得る。
得られるロードおよびスルー値の精度のよいレンジに対して、所望される。表ベースのライブラリ(例えば、TLF、.lib、またはALF)に対して、ライブラリテンプレートにおいて明確化されるように、レンジが得られ得る。等式ベースのライブラリ(例えば、OLA)に対して、レンジは特徴付けられ得る。次のセクションは、スルー/ロードレンジ値を得るためのアプローチの実施形態を記載する。
表ベースのライブラリに対して、ロードレンジは、遅延アークに関連付けられた表のテンプレートにおいて観測することによって得られ得る。(例えば、TLFライブラリから)以下のテンプレートと共に遅延アークを考慮する。
Timing_Model(“Model0”
(Splin
(Input_Slew_Axis
0.0500,0.3000,0.5500,0.8000,1.0500)
(Load_Axis
0.0820,0.1639,0.3279,0.6557.1.3115,2.6230,5.2459)
data()


このテンプレートの初期のロードレンジは、以下の7つの値、0.0820、0.1639、0.3279、0.6557、1.3115、2.6230、5.2459からなる。
スルー/ロードレンジを決定するためのアプローチは、許容値を確立して、レンジに対する所望の精度値を明確にすることである。このアプローチにおいて、初期レンジにおける全ての値は、それが所望の精度レベルを満たす間に降下され得る場合、チェックするように評価される。一旦、値がそのレンジから降下されると、遅延および出力スルー値は、その近傍からの点を用いて補間される必要がある。補間された遅延および出力スルー値が、特定の許容限界内にある場合、値はそのレンジから降下される。このアプローチにおいて、許容パーセンテージが高くなれば、より多くの値がそのレンジから外れ得る。このアプローチは、処理するための入力スルー値および出力ロード値を共に縮小する。
等式ベースのライブラリに対して、反復加重二分割法(iterative weighted bi−sectioning technique)が用いられ得る。プロセスは、初期レンジ{0,MaxVal}で開始する。MaxValは、最大出力ロードまたは入力スルー値であり得、ユーザによって明確にされ得る。レンジは、中間点において2つのレンジに分割される。その後、全ての既存のサブレンジによって、それ以上の加重を有するレンジが選択される。加重は、レンジの2つの端点間の出力遅延(または出力スルー)において勾配がある。所望の数のデータポイントが得られるまで、この二分割は継続される。一旦、レンジが決定されると、表ベースのライブラリに対して提案される許容ベースの剪定によってさらに縮小され得る。
別のアプローチにおいて、レンジにおけるロード値の数が出力ロードの最大数(N)を超える場合、その後、そのレンジは、隣接した近傍点への最も長い加重距離を有するN値を選択することによって剪定され得る。レンジが上向きの順序にソートされる場合、レンジにおける(i)番目の値に対する距離は、(i+1)番目の値と(i−1)番目の値との間のロード値における差によって見出される。レンジにおける第1の値に対する距離は、無限大になるように仮定され、最後の値に対する距離は無限大の半分になるように仮定される。これは、端点により高い加重を与えるためである(より高い加重は、レンジ置ける第1の値に与えられる)。上記の例示に対して、N=6と想定する。距離表は、以下のように示される。
Figure 2005512237
最も長い距離を有する6の値を選定することによって、レンジは、0.0820、0.3279、0.6557、1.3115、2.6230、5.2459に剪定され得る。
(複数のファンインおよびファンアウトの考慮)
入力ポートは、再改装パスにつながり得、これは、pマージにおいて問題を生じ得、再改装パスが異なるスルー値と共に関連付けられる。同様に、出力ポートは、マルチプレクサを含む設計から生じる複数のファンインパスを有し得る。この理由のため、全ての遅延アークおよび入力ポートから発散するチェックアークに対して同様のスルーレンジおよび出力ポートを終端する全ての遅延アークに対する同様の出力ロードレンジを用いることは適切である。レンジは、入力/出力ポートによって異なり得る。これを適応させるために、スルー(ロード)範囲は、入力ポートから発散する(出力ポートで終端する)全ての遅延アークおよびチェックアークに対して特徴付けられる。その後、全てのスルー/ロード値は、各入力/出力ポートに対するリストにマージされる。
(チェックアークの考慮)
本発明の実施形態のBFSトラバーサルアプローチは、ピンへの遅延アークの入力が全て、ピンが移動される前に処理されることを確実にする。しかし、チェックアークは、時として、特別な考慮を必要とする。なぜなら、完全にチェックアークを特徴付けるために、スルー値のレンジが信号端および基準端において共に利用可能にされるからである。いくつかの場合において、BFSトラバーサルは、全てのチェックアークの信号端および基準端が共に、前方sマージまたは後進sマージ操作以前に処理されることを保証しない。
例えば、図13のタイミンググラフを考慮する。ピンc1が移動されると、チェックアークの信号端(d2)から生じるスルー値のレンジは、利用可能に成らない。一実施形態において、チェックアークは、全ての可能なスルー値に関して特徴付けられる(ほとんどの場合、6よりも少ないスルー値はチェックアークを特徴付けるためには、十分な値である)。ピンd2が処理された後で、チェックアークは、適切なスルー値に対して再び特徴付けられる。代替の実施形態において、c1の移動後のd2におけるスルー値のレンジが推測される。ピンd2が処理されるときのみ、スルーレンジは利用可能になる。その後、チェックアーク遅延は、補間を実施することによって再計算され得る。
(挿入遅延)
挿入遅延は、クロックソースポートからレジスタおよびラッチに属する内部クロックピンまでの遅延について言う。挿入遅延は、セル内に組み込まれるクロックツリーを介するファースト(早い)パスおよびスロー(遅い)パスの特徴付けをイネーブルにする。挿入遅延を計算するために、さらなる計算が、内部クロックピンにおいて実行され得る。一実施形態において、プロセスがレジスタまたはラッチにおいてクロックピンに遭遇するときに、挿入遅延は計算される。下記は、本発明の一実施形態において挿入遅延を計算するための擬似コードである。
/*ピンは、レジスタまたはラッチ用の内部クロックピンである*/
computeInsertionDelay(pin){
Paths=tracePathsToClockSourcePin(pin);
for each path in paths{
addInsertionDelay(src pin of path,path);


パスは、遅延アークのリストである。addInsertionDelay()の手続は、パス遅延を計算し、かつ、クロックソースポートであるパス発生ピンにそのパス遅延を格納する。前述したsマージおよびpマージ操作は、このルーチンにおいて用いられ得る。実質的に、ラッチまたはレジスタのクロックピンに遭遇するとき、プロセスは、オリジナルクロックソースまでさかのぼってパスをトレースし、かつ、最悪の挙動を有するあるピンをトラッキングする。
(縮小の例示)
図14は、2つのレジスタ1350、1352、および1つのラッチ1354を有する回路上のグラフ縮小の例示を示す。この例示おいて、アーク1306および1307は、後進sマージ操作を用いてチェックアーク1308にマージされる。アーク1301、1302、1303、1304、および1305は、sマージ、後進sマージ、および前方sマージ操作の組み合わせを用いてセルフループチェックアーク1300にマージされる。アーク1309および1310は、前方sマージ操作を用いてアーク1311にマージされる。アーク1305、1312、および1313は、sマージ操作を用いてアーク1314にマージされる。アーク1305が、最終タイミングモデルにおいて、結果としてアーク1300および1314を共に生じる、2つの個々の操作のセットにかかわることに留意されたい。アーク1310および1313は、sマージ操作を用いてアーク1319にマージされる。
ピン1330および1332は、ラッチ1354の入力および出力ピンであるので、それらはモデルから移動される。最終モデルは、ラッチ挙動を持続するために2つの内部ピン1330および1332を含む。reg1 1352におけるセットアップ/ホールドが、クロックCにおけるセルフループセットアップ/ホールドチェックアークとしてモデリングされることに留意されたい。
(モデルライタ)
このセクションは、タイミングモデルを書き込むためのプロセスおよびメカニズムの実施形態を記載する。モデルライタは、所望のフォーマットにおけるピン、遅延アーク、およびチェックアークを外へ放出するために縮小したモデルグラフを越えるか、または渡る。
縮小モデルサイズに対して、タイミングモデルは、異なる遅延アークおよびチェックアークの間で共有され得る。あるアプローチにおいて、これは、遅延テーブルをハッシングすることによって達成される。さらに、モデルサイズは、遅延テーブルをソートおよび縮小させることによって縮小され得る。スルー値がソートされ、複製がモデルグラフリデューサにおいて移動され得るが、いくつかの最終的なチューニングは、モデルリデューサが全ての遷移の可能性(起伏、降下、早い、遅い)を考慮するので、いくつかの最適化をし損なう場合、いくつかの最終的なチューニングが必要とされ得る。遅延テーブルに値が与えられると、モデルライタメカニズムは、軸に現れ、かつ複製のソーティングおよび移動を実行するスルー値を調べ得る。
他でより詳細に記載されるように、モデルライタメカニズムは、a)例外に関連付けられた全ての内部ピンを持続し、b)モデルI/Oポートにおける例外をダミーの内部ピンに格納し、かつ、c)モデルの一部として新しい例外を書き出す。これは、アサーションおよび制約の持続を容易にする。なぜなら、例外は、タイミングモデルに挿入されるからである。一実施形態において、オリジナル回路上にあるユーザのアサーションだけが、モデルの一部として書き込まれる。
(アサーションハンドラ)
このセクションは、本発明の一実施形態においてどのようにアサーションがモデル抽出に対して処理されるかを記載する。説明のため、アサーションの扱いは、モデル抽出のグラフ縮小のコンテキストおよび内部ピンのコンテキストに記載される。しかし、アサーションを扱うための本発明のコンセプトは、他のモデル抽出アプローチおよび非内部ピンに対して等しく利用可能であり(例えば、ブラックボックスモデルのパストレーシングに対するアサーションを扱う)、故に、説明のため、かつ、データの異なるソースからの抽出(例えば、ネットリスト、タイミンググラフなどからのタイミングモデルの抽出)のために本明細書中に開示される特定の実施形態に限定されるべきでないことに留意されたい。
例えば、バジェッタといったツールに由来するアサーションである「生成されたアサーション」の例は、
・クロック到達時刻
・クロック必要時間
・データ到達時刻
・データ必要時間
・スルー時間
・一定のタイミング
・駆動抵抗
・駆動セル
・入力遅延
・出力(外部)遅延
を含む。ユーザによるアサーションのセットである「ユーザアサーション」の例は、誤ったパス、マルチサイクルパス、またはディセーブルタイミングを含む。
公知のモデル抽出アプローチにおける問題の1つは、オリジナルアサーション/制約が抽出されたモデルに適用し難いことである。内部ピンの損失または名称変化は、この困難性に起因する。
図15は、公知のアプローチのこの欠点を説明する。ピンaおよびbを有するインスタンスi1として例示される回路ブロック1506を有するオリジナルネットリスト1502を考慮する。トップレベルにおけるアサーション1508は、以下のように存在する:「set_false_path−from i1/a−to i1/b」。異なるインスタンスにおいて、抽出されるタイミングモデルが例示される場合、アサーションは、ピンの名称における変化を反映するために異なる様態で変更されるか、または調達される必要がある。従来のモデル抽出において、マニュアルプロセスを使用して、抽出されるモデル1510に対してアサーション1508の適切な関連性を保証する。この例において、アサーション1508は、set_false_path−from i2/a−to i2/bのように修正されたアサーション1508’に変換される。一般的な回路設計は、極めて多くの回路エレメント(可能性的に100万の数)を制約し、これらのエレメントが、アサーションが対応するエレメントに適切に関連付けられることを保証するように検索され、再検討される必要があるので、手動訂正に依存する任意のプロセスおよびアサーションの関連性がエラーの導入または監視の可能性を伴う単調かつ時間消費の手続になる。さらに、一旦、アサーションが訂正されると、それらは、タイミングモデル1524の格納ロケーション1526とは別の格納ロケーション1522に格納される。これは、少なくとも2つの個々のデータ格納ロケーションは、タイミングモデル部分のモデル情報を取り出すようにアクセスされる必要があることを意味する。
本発明の一実施形態においてこれらの問題を解決するために、アサーションに関連付けられた内部ピンが維持される。これにより、オリジナルアサーションは、変更がないか、またはほとんど変更がないモデルに適用されることが可能になり、複数のブロックにかかるアサーションを含む。また、本アプローチは、それを、オリジナルタイミング制約/アサーションに持続させ、かつ適用し易くさせる。タイミング制約/アサーションは、モデルの一部として観測され、新しい制約のセットは、モデル抽出プロセスの一部として自動的に生成され得る。タイミング制約のサポートは、トップダウンの階層的なフローにとって重要である。
図16は、本発明の実施形態を説明する。ここで、タイミンググラフ部分1602は、ピンaとbとの間の回路ブロックを含む。アサーション1608は、前の例、「set_false_path−from a−to b」に類似する。しかし、モデル抽出が実施形態されるとき、ピンaおよびbは、わざと移動、リネーム、または他の変更から外される。なぜなら、アサーション1608は、これらのピンに関連付けられるように特定されるからである。従って、ピンaおよびbは、抽出したモデルグラフ1610において維持される。このアプローチは、本質的に、オリジナルアサーション1608の正当性および利用可能性を抽出したモデルにおいて対応するピンaおよびbに持続する。
さらに、アサーションは、モデルグラフ1610およびタイミングモデル1624に書き改められるタイミングに自動的に書き込まれ、かつ、取り付けられ得る。この情報は、例えば、タイミングモデルにおけるセルレベル属性として格納され得る。従って、タイミングモデル1624の格納されたバージョンは、タイミングデータおよびタイミングモデルに対応する関連付けられたアサーションデータを共に含む。モデルは、オリジナルアサーションの統合性をより精度良く保証する。アサーションは、モデルの一部になり、モデルが読み込まれるときに、自動的に適用される。
図17は、アサーションを処理するためのプロセスの実施形態のフローチャートを示す。図1704において、特定のピンがアサーションに関連付けられるかどうか、決定される。そうである場合、次に、ピンは維持され、移動の適性から除去される(1706)。1708において、特定されたピンは、アサーションに関連付けられるので、モデルが書き込まれるとき、アサーションは、自動的にモデルに組み込まれる。1710において、通常モデル抽出プロセスが継続する。
図18を参照し、アサーションが複数のブロックにかかるときの状況を考慮する。ブロック1802において第1のピンi1802/aと共に2つのブロック1802および1804、ならびにブロック1804において第2のピンi1804/bが示される。アサーションは、「set_false_path−from i1802/a−to i1804/b」として存在すると仮定する。
この実施形態において、複数ブロックにわたって伸長されるアサーションは、それぞれのブロック内の関連付けられたピンの全てがタイミングモデル内で保持されるようにする。従って、ピンil802/aおよびil804/bが、ブロック1802および1804のモデル抽出プロセスの間保持され得る。1つのブロックの複数のピンに関わる状況において、複数ブロックのアサーション関連のピンを保持するこのアプローチは、モデル抽出の間、タイミング挙動が適切に保存されることを確実にするために役立つ。アサーション情報は、抽出後、タイミングモデルに自動的に書き込まれる。あるアプローチにおいて、アサーションが1より多いブロックにまたがる場合、モデルが読み込まれた後、このようなアサーションに変更を加えないことがある。
(階層ピンアサーション)
回路内に見られるピンには少なくとも2つのタイプがあり得る。インスタンスピンおよび階層ピンがある。階層ピンは、階層境界を確立する。信号が階層ピンを交差する場合、ある階層から他の階層へと移動する。階層ピンは、境界交差情報のプレースホルダーであり、基礎となる物理的なピン表現を有さない。
アサーションは、インスタンスピンだけでなく、階層ピンにも関連付けられ得る。多くのタイミングツールについて、階層ピンはタイミンググラフが作られるときには現れないことがある。本発明のある実施形態において、アサーションが階層ピンと関連付けられる場合、タイミンググラフは、階層ピンの新たに作製された内部ピンを挿入するために変更され、アサーションはこれらの新たなピンの点から再表現される。このマッピングは、概して、異なるタイプのアサーションをサポートするために用いられる。スルーを保存するゼロ遅延アーク(すなわち、出力スルー=入力スルー)は、これらの新たな「ダミー」は内部ピンに向かって、またはそこから伸長される。
図19aに示す例示的な回路を考える。図の矩形のそれぞれは、インスタンスを表す。インスタンス1902、1904、1906および1908が示されている。ピンは黒い点で表されている。インスタンスピン「a」、「b」、「c」、および「d」が示されている。ピン「h」は、階層ピンである。
この回路のタイミンググラフを図19bに示す。ここで、階層ピン「h」は、2つの遅延a−>cおよびd−>bを通じてアクセスされ得る。
ピン「h」についてのスルーピンアサーションがある場合、以下のように考えられる。
set_false_path−from a-through h−to c
抽出されたモデルにおいてこのアサーションを捕捉するため、2つの新たな内部ピンがモデルに導入される。これらの新たなピンは、「ダミー」内部ピンと考えることができる。この例において、a−>bおよびa−>c遅延がd−>bおよびd−>c遅延とは異なるので、2つのピンが用いられる。新たな内部ピン「h1」および「h2」を用いて伸長されたタイミンググラフを、図19cに示す。新たなピンh1およびh2が導入される場合、新たなアークa−>h1およびd−>h2も導入される。この例において、a−>h1およびd−>h2は、ゼロ遅延アークを表すことに留意されたい。h1−>cおよびh2−>b遅延は、それぞれ、元のタイミンググラフにおけるa−>cおよびd−>b遅延と同じである。
ピン「h」が2つのピン「h1」および「h2」に分割されるので、元のアサーションは以下のように変換される。
set_false_path−from a-through h1−to c
set_false_path−from a-through h2−to c
階層ピンアサーションのサポートに関わる2つのアクションは、1)タイミンググラフ伸長、および2)モデルアサーションライターである。
タイミンググラフ伸長は、タイミンググラフに新たな内部ピンを挿入して、階層ピンアサーションを正確に捕捉するプロセスのことを指す。これは、遅延アークの全てを通じて反復し、アサーションを有する階層ピンをサーチすることによって行われ得る。このような階層ピンが遅延アークにおいて見つけられる場合、タイミンググラフを伸長するために、貪欲な「見つけるか、なければ作製する」という戦略が用いられ得る。図12は、このようなプロセスの擬似コードを示す。コードには、2つのマッピングテーブルがある。
1.「map_table」は、階層ピンを1つより多い新たに作製された内部ピンにマッピングする(1対複数マッピング)。これは、モデルアサーションライターにおいて用いられる。
2.「visited」は、階層ピンを一番最近作製された内部ピンにマッピングする(1対1マッピング)。
図20aに示すタイミンググラフを考える。階層ピンは、遅延アークにおいて、括アークに入れられている。タイミンググラフ伸長後の新たなタイミンググラフは、図20bに示すようなグラフになる。
この例のmap_tableのコンテンツは、以下のとおりである。
h1:h11,h12
h2:h21,h22
h3:h31,h32
モデルアサーションライターは、モデルデータを変換し、モデル内のピンに関連付けられたアサーション情報を書き込むメカニズムのことを指す。階層ピンアサーションがサポートされていない場合、アサーションライターは、所与の階層の全てを単純に横切り、全てのモジュールポートおよび全てのインスタンスピンにおいてアサーションを書き出す。ある実施形態において、クロック定義のようなグローバルアサーションは、例えば、ある特定の状況において、モデルの構築の間このようなアサーションが有限ループにつながり得るので、書き込まれない。また、ある実施形態において、電気的ポートアサーションが書き込まれる。
階層ピンアサーションの実現は、さらなるアサーションの作製だけでなく、ピンの名前の変化につながり得る。これらのアクションの両方は、タイミンググラフを伸張する以前のアクションからのマッピングテーブルを用いて行われ得る。例えば、コールバック機能は、アサーションを手に入れるために行われ得る方法と同様のこのアクションを行うと規定され得る。
ピン「a」が2つの内部ピン「a1」および「a2」に分割された階層ピンである以下のアサーションを考える。
set_false_path−from a−to b
アサーションライターは、このアサーションを以下のアサーションにマッピングする。
set_false_path−from a1−to b
set_false_path−from a2−to b
(ポートアサーション)
空間的な考慮がI/Oポートのアサーションに対して為され得る。しばしば、モデルに関連付けられたアサーションが、モデルが用いられる場合に自動的に手に入れられ、モデルが取り除かれるか、または、交換される場合に自動的に取り除かれることが所望される。ある特定の状況において、I/Oポートのアサーションは、取り除くプロセスを困難にする。このため、ある実施形態において、I/Oポートのアサーションは、以前のセクションの類似のグラフ伸長技術を用いて内部ピンに移動される。これによって、モデルが、入力および出力ポートに直接付けられたアサーションを有さないことを可能にし、モデルをより自己充足的にする。
入力ポートまたはbidi入力部分のアサーションについて、この入力ポート用に新たな「ダミー」内部ピンが作製され、この入力ポートアサーションがこのピンに転送される。新たな内部ピンは、入力ポートによって駆動される全てのピンを駆動し、ゼロ遅延アークを通じて入力ポートによって駆動される。また、入力ポートに関連付けられたチェックアークの全ては、ここで、新たな内部ピンに関連付けられている。
この伸長の一例が図21aに示されている。ここで、元のグラフ2102は、それぞれ、ピンbおよびcへのアーク2104および2106を有する入力ポートaを含む。ポートaに関連付けられたアサーションがあると仮定する。変更されたグラフ2110は、アーク2104および2106に関連付けられた、新たな内部ピン「a_IN_ASRT」を含む。ポートaに関連付けられていたアサーションは、ここで、ピンa_IN_ASRTに関連付けられる。ピンaからピンa_IN_ASRTに伸長する、新たなアーク2112が作製される。この新たなアークは、出力スルーが入力スルーと同じになるように、ゼロ遅延値を用いて作製される。
出力ポートまたは双方向出力部のアサーションは、同様に処理される。内部ピンは、出力ポートに供給する遅延アークがここで全て内部ピンに供給するように作製される。ポートにおける出力ロードへの依存性を保存するため、新たな内部ピンに入る遅延アークの全てについて、三次元テーブルが作製される。
図21bに示す例を考える。元のタイミンググラフ2150は、ピンaからピンcに伸長する遅延アーク2152と、ピンbから出力ポートcに伸長する遅延アーク2154とを有する。変更されたグラフ2160は、新たなピン「c_OUT_ASRT」を含む。「c_OUT_ASRT」は、ポーとアサーションが転送される新たな内部ピンである。新たなゼロ遅延アーク2162が、出力スルーが入力スルーと同じになるように、出力ポートcへのピンc_OUT_ASRTから作製される。ピンaからピンc_OUT_ASRTへのアーク2152と、ピンbからピンc_OUT_ASRTへのアーク2154とは、ポートcにおけるロード依存性を捕捉するため、三次元遅延テーブルに関連付けられ得ることに留意されたい。
図1は、既存のブラックボックスモデリング方法を有する問題を示す。 図2aは、例示のタイミンググラフを示す。 図2bは、図2aの回路に対する例示の遷移マトリクスを示す。 図3aは、モデル抽出をインプリメントするためのプロセスの実施形態のフローチャートを示す。 図3bは、グラフ縮小のための処理の実施形態のフローチャートを示す。 図3cは、モデル抽出のためのアーキテクチャの実施形態を示す。 図4aは、本発明の実施形態によるグラフ縮小をインプリメントするための擬似コードの例を示す。 図4bは、本発明の実施形態によるグラフ縮小をインプリメントするための擬似コードの例を示す。 図4cは、本発明の実施形態によるグラフ縮小をインプリメントするための擬似コードの例を示す。 図5aは、本発明の実施形態によるシリアルマージ(sマージ)操作を示す。 図5bは、本発明の実施形態によるシリアルマージ(sマージ)操作を示す。 図6aは、本発明の実施形態によるパラレルマージ(pマージ)操作を示す。 図6bは、本発明の実施形態によるパラレルマージ(pマージ)操作を示す。 図7は、pマージ操作が本発明の実施形態による重要なパスにおける変化を正確に反映することを示す。 図8は、本発明の実施形態による回路部分を縮小するためのプロセスを示す。 図9は、本発明の実施形態による前方sマージ操作を示す。 図10は、本発明の実施形態による後進sマージ操作を示す。 図11は、本発明の実施形態によるセルフループチェックの処理を示す。 図12は、本発明の実施形態による階層的ピンアサーションのハンドリングを示す。 図13は、チェックアークの特別な処理を必要とするタイミンググラフ部分を示す。 図14は、本発明の実施形態による2つのレジスタおよびラッチを有する回路上のグラフ縮小の例を示す。 図15は、モデル抽出のアサーションハンドリングへの1つのアプローチを示す。 図16は、本発明の実施形態におけるモデル抽出のためのアサーションハンドリングへの代替のアプローチを示す。 図17は、アサーションハンドリングのためのプロセスの実施形態のフローチャートを示す。 図18は、本発明の実施形態による複数のブロックを越えるアサーションをハンドリングするためのアプローチを示す。 図19aは、モデル抽出のための階層的ピンアサーションを指定するためのプロセスの実施形態を示す。 図19bは、モデル抽出のための階層的ピンアサーションを指定するためのプロセスの実施形態を示す。 図19cは、モデル抽出のための階層的ピンアサーションを指定するためのプロセスの実施形態を示す。 図20aは、モデル抽出のための階層的ピンアサーションを指定するためのプロセスの実施形態を示す。 図20bは、モデル抽出のための階層的ピンアサーションを指定するためのプロセスの実施形態を示す。 図21aは、入力または出力ポートにおけるアサーションを指定するためのプロセスの実施形態を示す。 図21bは、入力または出力ポートにおけるアサーションを指定するためのプロセスの実施形態を示す。

Claims (39)

  1. タイミングモデル抽出のためのアサーションハンドリングをインプリメントする方法であって、
    1つ以上のピンを識別するステップであって、該1つ以上のピンはアサーションと関連付けられている、ステップと、
    タイミングモデルを抽出するステップと、
    該アサーションの統合性を自動的に保存するステップと
    を包含する、方法。
  2. 前記アサーションは、前記タイミングモデルにおいて前記1つ以上のピンを保持することによって保存される、請求項1に記載の方法。
  3. 前記アサーションは複数ブロックにまたがる、請求項2に記載の方法。
  4. 前記アサーションは階層ピンアサーションを含み、アサーションは1つ以上の階層ピンに関連付けられている、請求項1に記載の方法。
  5. 新たな内部ピンが作製される、請求項4に記載の方法。
  6. ゼロ遅延アークが、該アークのソースから前記新たな内部ピンへと伸びるように作製される、請求項5に記載の方法。
  7. スルー保存アークが、該アークのソースから前記新たな内部ピンへと伸びるように作製される、請求項5に記載の方法。
  8. 前記アークと同じ遅延特徴を有する新たなアークが作製され、該新たなアークは前記新たな内部からアークのシンクへと伸びる、請求項5に記載の方法。
  9. マッピング構造は、階層ピンを新たな内部ピンにマッピングするように維持される、請求項5に記載の方法。
  10. マッピング構造は、ソースピンベースごとに、処理済の階層ピンをトラッキングするように維持される、請求項4に記載の方法。
  11. 前記階層アサーションは、1つ以上の新たな内部ピンに関して再表現される、請求項5に記載の方法。
  12. 前記1つ以上のピンは識別される、請求項1に記載の方法。
  13. 前記1つ以上のピンはネットリストから識別される、請求項1に記載の方法。
  14. 前記アサーションはポートアサーションを含む、請求項1に記載の方法。
  15. 前記ポートアサーションは、入力ポート、出力ポート、または双方向ポートのいずれかに関連付けられている、請求項10に記載の方法。
  16. 前記ポートアサーションに関連付けられている、新たな内部ピンが作製される、請求項10に記載の方法。
  17. ゼロ遅延アークが前記新たな内部ピンに対して作製される、請求項16に記載の方法。
  18. スルー保存アークが前記新たな内部ピンに対して作製される、請求項16に記載の方法。
  19. ロード依存性を捕捉するために三次元構造が用いられる、請求項16に記載の方法。
  20. アサーション情報が前記タイミングモデルに格納される、請求項1に記載の方法。
  21. 前記アサーション情報は、セルレベルの属性として前記タイミングモデルに格納される、請求項20に記載の方法。
  22. タイミングモデル抽出のためのアサーションハンドリングをインプリメントする方法であって、
    アサーションに関連付けられている位置を識別するステップと、
    タイミングモデルを抽出するステップであって、該タイミングモデルは、該アサーションに関連付けられる新たな位置を含む、ステップと、
    該アサーションを該新たな位置に自動的に関連付けるステップと
    を包含する、方法。
  23. 新たな内部ピンは、前記位置に関連付けられている前記位置に対応するように作製される、請求項22に記載の方法。
  24. ダミーアークが前記新たな内部ピンに対して作製される、請求項23に記載の方法。
  25. 前記ダミーアークはゼロ遅延アークである、請求項24に記載の方法。
  26. 前記ダミーアークはスルー保存アークである、請求項24に記載の方法。
  27. 前記アサーションは、前記新たな内部ピンの作製に対応するように自動的に変換される、請求項23に記載の方法。
  28. 前記新たな内部ピンは、前記タイミングモデルにおいて保持される、請求項23に記載の方法。
  29. 前記位置は階層ピンアサーションに対応する、請求項23に記載の方法。
  30. マッピング構造は、階層ピンを新たな内部ピンにマッピングするように維持される、請求項29に記載の方法。
  31. 前記位置はポートアサーションに対応する、請求項23に記載の方法。
  32. 前記ポートアサーションは、入力ポート、出力ポート、または双方向ポートのいずれかに関連付けられている、請求項31に記載の方法。
  33. ロード依存性を捕捉するために三次元マッピング構造が用いられる、請求項32に記載の方法。
  34. 前記タイミングモデルが抽出される、請求項22に記載の方法。
  35. アサーション情報が前記タイミングモデルに格納される、請求項22に記載の方法。
  36. タイミングモデル抽出のためのアサーションハンドリングをインプリメントするシステムであって、
    1つ以上のピンを識別する手段であって、該1つ以上のピンはアサーションに関連付けられている、手段と、
    タイミングモデルを抽出する手段と、
    該アサーションの統合性を自動的に保存する手段と
    を含む、システム。
  37. タイミングモデル抽出のためのアサーションハンドリングをインプリメントするプロセスを実行する実行可能なコードを有するコンピュータ使用可能媒体を含むコンピュータプログラム製品であって、該プロセスは、
    1つ以上のピンを識別するステップであって、該1つ以上のピンはアサーションに関連付けられている、ステップと、
    タイミングモデルを抽出するステップと、
    該アサーションの統合性を自動的に保存するステップと
    を含む、コンピュータプログラム製品。
  38. タイミングモデル抽出のためのアサーションハンドリングをインプリメントするシステムであって、
    アサーションに関連付けられている位置を識別する手段と、
    タイミングモデルを抽出する手段であって、該タイミングモデルは、該アサーションと関連付けられる新たな位置を含む、手段と、
    該アサーションを該新たな位置に自動的に関連付ける手段と
    を含む、システム。
  39. タイミングモデル抽出のためのアサーションハンドリングをインプリメントするプロセスを実行する実行可能なコードを有するコンピュータ使用可能媒体を含むコンピュータプログラム製品であって、該プロセスは、
    アサーションに関連付けられた位置を識別するステップと、
    タイミングモデルを抽出するステップであって、該タイミングモデルは、該アサーションに関連付けられる新たな位置を含む、ステップと、
    該アサーションを該新たな位置に自動的に関連付けるステップと
    を含む、コンピュータプログラム製品。
JP2003551711A 2001-12-07 2002-12-06 タイミングモデル抽出のためのアサーションハンドリング Pending JP2005512237A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US33923501P 2001-12-07 2001-12-07
PCT/US2002/038941 WO2003050725A2 (en) 2001-12-07 2002-12-06 Assertion handling for timing model extraction

Publications (2)

Publication Number Publication Date
JP2005512237A true JP2005512237A (ja) 2005-04-28
JP2005512237A5 JP2005512237A5 (ja) 2005-12-22

Family

ID=23328095

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2003551711A Pending JP2005512237A (ja) 2001-12-07 2002-12-06 タイミングモデル抽出のためのアサーションハンドリング
JP2003551710A Pending JP2005512236A (ja) 2001-12-07 2002-12-06 タイミンググラフ縮小によるタイミングモデル抽出

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2003551710A Pending JP2005512236A (ja) 2001-12-07 2002-12-06 タイミンググラフ縮小によるタイミングモデル抽出

Country Status (5)

Country Link
US (2) US6928630B2 (ja)
EP (2) EP1451731A2 (ja)
JP (2) JP2005512237A (ja)
AU (2) AU2002351253A1 (ja)
WO (2) WO2003050725A2 (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6857116B1 (en) * 2000-11-15 2005-02-15 Reshape, Inc. Optimization of abutted-pin hierarchical physical design
JP2005512237A (ja) * 2001-12-07 2005-04-28 カデンス デザイン システムズ, インコーポレイテッド タイミングモデル抽出のためのアサーションハンドリング
US6763507B2 (en) * 2002-01-30 2004-07-13 Agilent Technologies, Inc. System and method for testing abstracted timing models
US6763505B2 (en) * 2002-04-04 2004-07-13 International Business Machines Corporation Apparatus and method for automated use of phase abstraction for enhanced verification of circuit designs
US6745377B2 (en) * 2002-04-04 2004-06-01 International Business Machines Corporation Apparatus and method for representing gated-clock latches for phase abstraction
US6925621B2 (en) * 2002-06-24 2005-08-02 Agilent Technologies, Inc. System and method for applying timing models in a static-timing analysis of a hierarchical integrated circuit design
US6836874B2 (en) * 2002-06-26 2004-12-28 Agilent Technologies, Inc. Systems and methods for time-budgeting a complex hierarchical integrated circuit
US7096442B2 (en) * 2003-07-10 2006-08-22 Lsi Logic Corporation Optimizing IC clock structures by minimizing clock uncertainty
US7983891B1 (en) * 2003-08-19 2011-07-19 Cadence Design Systems, Inc. Receiver dependent selection of a worst-case timing event for static timing analysis
US20050091555A1 (en) * 2003-10-27 2005-04-28 Tong Xiao Abstraction generation for hierarchical timing analysis using implicity connectivity graph derived from domain propagation
US7243313B1 (en) * 2003-11-24 2007-07-10 Cadence Design Systems, Inc. System and method for reducing the size of RC circuits
US7076753B2 (en) * 2003-12-18 2006-07-11 Synopsys, Inc. Method and apparatus for solving sequential constraints
US7606692B2 (en) * 2004-04-26 2009-10-20 Lsi Corporation Gate-level netlist reduction for simulating target modules of a design
US7089143B2 (en) * 2004-04-29 2006-08-08 International Business Machines Corporation Method and system for evaluating timing in an integrated circuit
JP2006039621A (ja) * 2004-07-22 2006-02-09 Nec Electronics Corp タイミング制約ライブラリの作成方法及び作成システム
US20060190235A1 (en) * 2005-02-22 2006-08-24 Faraday Technology Corp. Verilog HDL simulation model for retain time
US20080115099A1 (en) * 2006-11-15 2008-05-15 Priyadarsan Patra Spatial curvature for multiple objective routing
JP4872635B2 (ja) * 2006-12-06 2012-02-08 日本電気株式会社 電子回路用プリント基板の設計方法とシステム
US8977995B1 (en) * 2007-01-10 2015-03-10 Cadence Design Systems, Inc. Timing budgeting of nested partitions for hierarchical integrated circuit designs
US8365113B1 (en) * 2007-01-10 2013-01-29 Cadence Design Systems, Inc. Flow methodology for single pass parallel hierarchical timing closure of integrated circuit designs
US8640066B1 (en) * 2007-01-10 2014-01-28 Cadence Design Systems, Inc. Multi-phase models for timing closure of integrated circuit designs
US7926011B1 (en) * 2007-01-10 2011-04-12 Cadence Design Systems, Inc. System and method of generating hierarchical block-level timing constraints from chip-level timing constraints
JP2009037278A (ja) * 2007-07-31 2009-02-19 Nec Corp 動作タイミング検証装置、方法、及び、プログラム
US8239798B1 (en) * 2007-08-03 2012-08-07 Cadence Design Systems, Inc. Methods, systems, and apparatus for variation aware extracted timing models
US7962872B2 (en) * 2007-12-04 2011-06-14 Texas Instruments Incorporated Timing analysis when integrating multiple circuit blocks while balancing resource requirements and accuracy
US8010935B2 (en) 2008-05-07 2011-08-30 Lsi Corporation Electronic design automation tool and method for optimizing the placement of process monitors in an integrated circuit
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
US8239805B2 (en) * 2009-07-27 2012-08-07 Lsi Corporation Method for designing integrated circuits employing a partitioned hierarchical design flow and an apparatus employing the method
US8341573B2 (en) 2010-10-15 2012-12-25 Lsi Corporation Modeling approach for timing closure in hierarchical designs leveraging the separation of horizontal and vertical aspects of the design flow
US8458637B2 (en) * 2010-10-22 2013-06-04 International Business Machines Corporation Implementing enhanced RLM connectivity on a hierarchical design with top level pipeline registers
US8589846B2 (en) * 2011-12-02 2013-11-19 Synopsys, Inc. Modeling transition effects for circuit optimization
US8522179B1 (en) * 2012-02-06 2013-08-27 Lsi Corporation System and method for managing timing margin in a hierarchical integrated circuit design process
US8990445B2 (en) * 2012-03-05 2015-03-24 Mediatek Inc. Control chip for communicating with wired connection interface by using one configurable pin selectively serving as input pin or output pin
US8578304B1 (en) * 2012-07-26 2013-11-05 International Business Machines Corporation Implementing mulitple mask lithography timing variation mitigation
US20140156233A1 (en) * 2012-12-03 2014-06-05 Can Wang Method and apparatus for electronic circuit simulation
US8977998B1 (en) * 2013-02-21 2015-03-10 Altera Corporation Timing analysis with end-of-life pessimism removal
US8713502B1 (en) 2013-02-26 2014-04-29 International Business Machines Corporation Methods and systems to reduce a number of simulations in a timing analysis
US9798845B2 (en) 2013-09-06 2017-10-24 Blue Pearl Software, Inc. User grey cell
US9940431B2 (en) 2016-01-07 2018-04-10 International Business Machines Corporation Accurate statistical timing for boundary gates of hierarchical timing models
JP2017167732A (ja) * 2016-03-15 2017-09-21 株式会社東芝 回路設計検証装置およびプログラム
US10223493B1 (en) 2016-06-28 2019-03-05 Altera Corporation Dynamic tag allocation for clock reconvergence pessimism removal
US9977850B2 (en) 2016-07-12 2018-05-22 International Business Machines Corporation Callback based constraint processing for clock domain independence
US10394987B2 (en) * 2017-03-21 2019-08-27 International Business Machines Corporation Adaptive bug-search depth for simple and deep counterexamples
US11176293B1 (en) * 2018-03-07 2021-11-16 Synopsys, Inc. Method and system for emulation clock tree reduction
US10747925B1 (en) * 2019-01-25 2020-08-18 International Business Machines Corporation Variable accuracy incremental timing analysis
US11188696B1 (en) 2019-04-15 2021-11-30 Cadence Design Systems, Inc. Method, system, and product for deferred merge based method for graph based analysis pessimism reduction
US10831954B1 (en) 2019-10-29 2020-11-10 International Business Machines Corporation Technology lookup table-based default assertion generation and consumption for timing closure of VLSI designs
US10891412B1 (en) 2020-02-13 2021-01-12 International Business Machines Corporation Offline analysis of hierarchical electronic design automation derived data

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657239A (en) * 1992-10-30 1997-08-12 Digital Equipment Corporation Timing verification using synchronizers and timing constraints
US5508937A (en) * 1993-04-16 1996-04-16 International Business Machines Corporation Incremental timing analysis
US5581473A (en) * 1993-06-30 1996-12-03 Sun Microsystems, Inc. Method and apparatus for managing timing requirement specifications and confirmations and generating timing models and constraints for a VLSI circuit
US5469367A (en) 1994-06-06 1995-11-21 University Technologies International Inc. Methodology and apparatus for modular partitioning for the machine design of asynchronous circuits
US5535145A (en) 1995-02-03 1996-07-09 International Business Machines Corporation Delay model abstraction
US5740347A (en) 1995-05-01 1998-04-14 Synopsys, Inc. Circuit analyzer of black, gray and transparent elements
US5778216A (en) * 1995-06-30 1998-07-07 Cadence Design Systems, Inc. Method for hierarchical time drive circuit layout by rebudgeting timing constraints of plurality of logical blocks after placement
US5790830A (en) 1995-12-29 1998-08-04 Synopsys, Incorporated Extracting accurate and efficient timing models of latch-based designs
US5796621A (en) 1996-07-31 1998-08-18 International Business Machines Corporation Circuit delay abstraction tool
US5923564A (en) * 1996-08-12 1999-07-13 Advanced Micro Devices, Inc. Performance analysis including half-path joining
US5946475A (en) * 1997-01-21 1999-08-31 International Business Machines Corporation Method for performing transistor-level static timing analysis of a logic circuit
US6421818B1 (en) 1998-02-20 2002-07-16 Lsi Logic Corporation Efficient top-down characterization method
US6212665B1 (en) * 1998-03-27 2001-04-03 Synopsys, Inc. Efficient power analysis method for logic cells with many output switchings
US6247165B1 (en) * 1998-03-31 2001-06-12 Synopsys, Inc. System and process of extracting gate-level descriptions from simulation tables for formal verification
US6321362B1 (en) 1999-04-06 2001-11-20 International Business Machines Corporation Method of reformulating static circuit optimization problems for reduced size, degeneracy and redundancy
EP1196861A2 (en) 1999-07-23 2002-04-17 Koninklijke Philips Electronics N.V. Timing shell automation for hardware macro-cell modeling
US6539536B1 (en) * 2000-02-02 2003-03-25 Synopsys, Inc. Electronic design automation system and methods utilizing groups of multiple cells having loop-back connections for modeling port electrical characteristics
US6591407B1 (en) * 2000-03-01 2003-07-08 Sequence Design, Inc. Method and apparatus for interconnect-driven optimization of integrated circuit design
US7103863B2 (en) 2001-06-08 2006-09-05 Magma Design Automation, Inc. Representing the design of a sub-module in a hierarchical integrated circuit design and analysis system
CA2450135A1 (en) * 2001-06-08 2002-12-19 Magma Design Automation, Inc. Method for generating design constraints for modulates in a hierarchical integrated circuit design system
US6609233B1 (en) * 2001-08-10 2003-08-19 Hewlett-Packard Development Company, L.P. Load sensitivity modeling in a minimal level sensitive timing abstraction model
JP2005512237A (ja) * 2001-12-07 2005-04-28 カデンス デザイン システムズ, インコーポレイテッド タイミングモデル抽出のためのアサーションハンドリング

Also Published As

Publication number Publication date
US6928630B2 (en) 2005-08-09
WO2003050725A3 (en) 2004-04-08
JP2005512236A (ja) 2005-04-28
AU2002351253A1 (en) 2003-06-23
US20030120474A1 (en) 2003-06-26
WO2003050724A3 (en) 2004-06-10
AU2002359605A1 (en) 2003-06-23
US20030121013A1 (en) 2003-06-26
WO2003050725A2 (en) 2003-06-19
WO2003050724A2 (en) 2003-06-19
EP1451730A2 (en) 2004-09-01
US7356451B2 (en) 2008-04-08
EP1451731A2 (en) 2004-09-01

Similar Documents

Publication Publication Date Title
JP2005512237A (ja) タイミングモデル抽出のためのアサーションハンドリング
US6530073B2 (en) RTL annotation tool for layout induced netlist changes
US8572532B1 (en) Common path pessimism removal for hierarchical timing analysis
US7353491B2 (en) Optimization of memory accesses in a circuit design
US20050091025A1 (en) Methods and systems for improved integrated circuit functional simulation
US10467365B1 (en) Systems and methods for calculating common clock path pessimism for hierarchical timing analysis in an electronic design
US7707530B2 (en) Incremental timing-driven, physical-synthesis using discrete optimization
WO2005119528A2 (en) Loop manipulation in a behavioral synthesis tool
US9953120B2 (en) Relative timing characterization
JP4393450B2 (ja) 論理回路モデル変換装置及び論理回路モデル変換プログラム
US7882483B2 (en) Method for checking constraints equivalence of an integrated circuit design
US20080201671A1 (en) Method for generating timing exceptions
Hua et al. Cyclone: A static timing and power engine for asynchronous circuits
Kahng et al. RosettaStone: connecting the past, present, and future of physical design research
US20040088662A1 (en) Timing path detailer
Singh Performance optimization of digital circuits
US8302049B2 (en) Method for enabling multiple incompatible or costly timing environment for efficient timing closure
Bommu et al. Retiming-based factorization for sequential logic optimization
JP4139236B2 (ja) タイミング解析プログラム
Ganpati OpenTimer Interface for LGraph
Zervas et al. Generalized Low Power Design Flow”
Tran Incremental switching factor calculation for power estimation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080806

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081105

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081112

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090327

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090422