(57)【要約】  タイミングモデル抽出のためのタイミング制約またはアサーションをハンドリングする方法およびシステムが開示されている。開示されている、アサーションをハンドリングするアプローチの１つは、存在するピンを保持すること、または新たな内部ピンを作製することによって、元のアサーションの統合性を自動的に保存することによるものである。アサーションは、モデルの一部と見られ、新たなアサーションのセットが、タイミングモデル抽出プロセスの一部として自動的に生成され、そのモデルの一部として格納され得る。アサーションは、入力ポート、出力ポート、内部ピン、または階層ピンと関連付けられ得、複数ブロックにまたがることさえあり得る。
2005512237.tif 000002
【特許請求の範囲】
【請求項１】
タイミングモデル抽出のためのアサーションハンドリングをインプリメントする方法であって、
１つ以上のピンを識別するステップであって、該１つ以上のピンはアサーションと関連付けられている、ステップと、
タイミングモデルを抽出するステップと、
該アサーションの統合性を自動的に保存するステップと
を包含する、方法。
【請求項２】
前記アサーションは、前記タイミングモデルにおいて前記１つ以上のピンを保持することによって保存される、請求項１に記載の方法。
【請求項３】
前記アサーションは複数ブロックにまたがる、請求項２に記載の方法。
【請求項４】
前記アサーションは階層ピンアサーションを含み、アサーションは１つ以上の階層ピンに関連付けられている、請求項１に記載の方法。
【請求項５】
新たな内部ピンが作製される、請求項４に記載の方法。
【請求項６】
ゼロ遅延アークが、該アークのソースから前記新たな内部ピンへと伸びるように作製される、請求項５に記載の方法。
【請求項７】
スルー保存アークが、該アークのソースから前記新たな内部ピンへと伸びるように作製される、請求項５に記載の方法。
【請求項８】
前記アークと同じ遅延特徴を有する新たなアークが作製され、該新たなアークは前記新たな内部からアークのシンクへと伸びる、請求項５に記載の方法。
【請求項９】
マッピング構造は、階層ピンを新たな内部ピンにマッピングするように維持される、請求項５に記載の方法。
【請求項１０】
マッピング構造は、ソースピンベースごとに、処理済の階層ピンをトラッキングするように維持される、請求項４に記載の方法。
【請求項１１】
前記階層アサーションは、１つ以上の新たな内部ピンに関して再表現される、請求項５に記載の方法。
【請求項１２】
前記１つ以上のピンは識別される、請求項１に記載の方法。
【請求項１３】
前記１つ以上のピンはネットリストから識別される、請求項１に記載の方法。
【請求項１４】
前記アサーションはポートアサーションを含む、請求項１に記載の方法。
【請求項１５】
前記ポートアサーションは、入力ポート、出力ポート、または双方向ポートのいずれかに関連付けられている、請求項１０に記載の方法。
【請求項１６】
前記ポートアサーションに関連付けられている、新たな内部ピンが作製される、請求項１０に記載の方法。
【請求項１７】
ゼロ遅延アークが前記新たな内部ピンに対して作製される、請求項１６に記載の方法。
【請求項１８】
スルー保存アークが前記新たな内部ピンに対して作製される、請求項１６に記載の方法。
【請求項１９】
ロード依存性を捕捉するために三次元構造が用いられる、請求項１６に記載の方法。
【請求項２０】
アサーション情報が前記タイミングモデルに格納される、請求項１に記載の方法。
【請求項２１】
前記アサーション情報は、セルレベルの属性として前記タイミングモデルに格納される、請求項２０に記載の方法。
【請求項２２】
タイミングモデル抽出のためのアサーションハンドリングをインプリメントする方法であって、
アサーションに関連付けられている位置を識別するステップと、
タイミングモデルを抽出するステップであって、該タイミングモデルは、該アサーションに関連付けられる新たな位置を含む、ステップと、
該アサーションを該新たな位置に自動的に関連付けるステップと
を包含する、方法。
【請求項２３】
新たな内部ピンは、前記位置に関連付けられている前記位置に対応するように作製される、請求項２２に記載の方法。
【請求項２４】
ダミーアークが前記新たな内部ピンに対して作製される、請求項２３に記載の方法。
【請求項２５】
前記ダミーアークはゼロ遅延アークである、請求項２４に記載の方法。
【請求項２６】
前記ダミーアークはスルー保存アークである、請求項２４に記載の方法。
【請求項２７】
前記アサーションは、前記新たな内部ピンの作製に対応するように自動的に変換される、請求項２３に記載の方法。
【請求項２８】
前記新たな内部ピンは、前記タイミングモデルにおいて保持される、請求項２３に記載の方法。
【請求項２９】
前記位置は階層ピンアサーションに対応する、請求項２３に記載の方法。
【請求項３０】
マッピング構造は、階層ピンを新たな内部ピンにマッピングするように維持される、請求項２９に記載の方法。
【請求項３１】
前記位置はポートアサーションに対応する、請求項２３に記載の方法。
【請求項３２】
前記ポートアサーションは、入力ポート、出力ポート、または双方向ポートのいずれかに関連付けられている、請求項３１に記載の方法。
【請求項３３】
ロード依存性を捕捉するために三次元マッピング構造が用いられる、請求項３２に記載の方法。
【請求項３４】
前記タイミングモデルが抽出される、請求項２２に記載の方法。
【請求項３５】
アサーション情報が前記タイミングモデルに格納される、請求項２２に記載の方法。
【請求項３６】
タイミングモデル抽出のためのアサーションハンドリングをインプリメントするシステムであって、
１つ以上のピンを識別する手段であって、該１つ以上のピンはアサーションに関連付けられている、手段と、
タイミングモデルを抽出する手段と、
該アサーションの統合性を自動的に保存する手段と
を含む、システム。
【請求項３７】
タイミングモデル抽出のためのアサーションハンドリングをインプリメントするプロセスを実行する実行可能なコードを有するコンピュータ使用可能媒体を含むコンピュータプログラム製品であって、該プロセスは、
１つ以上のピンを識別するステップであって、該１つ以上のピンはアサーションに関連付けられている、ステップと、
タイミングモデルを抽出するステップと、
該アサーションの統合性を自動的に保存するステップと
を含む、コンピュータプログラム製品。
【請求項３８】
タイミングモデル抽出のためのアサーションハンドリングをインプリメントするシステムであって、
アサーションに関連付けられている位置を識別する手段と、
タイミングモデルを抽出する手段であって、該タイミングモデルは、該アサーションと関連付けられる新たな位置を含む、手段と、
該アサーションを該新たな位置に自動的に関連付ける手段と
を含む、システム。
【請求項３９】
タイミングモデル抽出のためのアサーションハンドリングをインプリメントするプロセスを実行する実行可能なコードを有するコンピュータ使用可能媒体を含むコンピュータプログラム製品であって、該プロセスは、
アサーションに関連付けられた位置を識別するステップと、
タイミングモデルを抽出するステップであって、該タイミングモデルは、該アサーションに関連付けられる新たな位置を含む、ステップと、
該アサーションを該新たな位置に自動的に関連付けるステップと
を含む、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、２００１年１２月７日に出願された米国仮出願番号第６０／３３９，２３５号の優先権を主張し、その全体において参考として援用される。
（著作権表示）
本発明文書の一部の開示には、著作権保護の対象になる資料を含む。著作権所有者は、特許商標局の特許ファイルおよび記録に記載されるように特許文書および特許開示の、誰かによる複製に反対はないが、さもなければ、全ての他の著作権を確保する。
【背景技術】
【０００２】
本発明は、電子回路設計の分野に関し、より詳細には、タイミングモデル抽出の分野に関する。
【０００３】
タイミング抽出またはブロックの特徴付けは、例えば、静的タイミング分析器といったタイミング分析器を用いる用途のためのデジタル回路のタイミングモデルを生成するプロセスについて言う。タイミング抽出は、タイミング検証の複雑性を縮小し、かつ、ＩＰブロックの実行の詳細を隠す抽象化レベルを供給することによって、階層的なトップダウンフローおよびボトムアップＩＰオーサリングフローにおける重要な役割を果たす。タイミング抽出における３つの所望の特徴は、精度、効率、および有用性である。
【０００４】
抽出されたモデルは、オリジナル回路のタイミング行動を保護し、正しい透明なラッチ動作およびタイミング違反を含む正確な結果を作成する。モデルはまた、モデルを生成するために必要とされるリソースの点について、かつ、最終モデルのサイズの点について効果的になる必要がある。モデルはまた、既存の静的タイミング分析器を用い易くなる。これは、モデルの具体化、オリジナルタイミング制約の転換、および分かりやすいタイミングレポートを含む。
【０００５】
タイミングモデルは、しばしば２つのタイプ（ブラックボックスモデルおよびグレーボックスモデル）に分類され得る。ブラックボックスモデルは、ブロック中に内部視認性がなく、タイミング情報は、全てブロックの境界におけるピンに通じる。一方、グレーボックスモデルは、内部ピンを有する。内部ピンは、複数のラッチにわたって、タイム借用のような動作をモデリングさせることを可能にする。このような内部ピンは、モデルサイズを縮小する性質およびオリジナルタイミング制約またはアサーションを適用する性質といった利点を提供する。
【０００６】
ブラックボックスモデルをインプリメントするための１つのアプローチにおいて、ユーザは、入力スルー（ｓｌｅｗ）値および出力負荷値のセットを供給し、ツールは、全てのポートツーポートのパス遅延および関連するタイミングチェックを決定するようにパストレーシングを実行する。ブラックボックスモデルが広範に用いられたが、このモデルは、著しい欠点で苦しむ。例えば、タイミンググラフにおけるそれぞれ可能なパスのトレーシングは、潜在的に複雑なタスクである。潜在的に複雑なタスクは、計算リソースのかなりの量を消費し、しばしば、モデルを抽出するために完全なタイミング分析プロセスを必要とする。さらに、このアプローチにおいて結果として生じるモデルサイズは、実際は、オリジナルタイミンググラフサイズよりも結局大きくなり得る。これは図１に示され、図１において、パストレーシングを使用して、タイミンググラフ１００からブラックボックスモデル１４０を得る。このアプローチにおいて、全てのポテンシャルパスは、個々の入力ポートから個々の出力ポートにトレーシングすることによって識別される。従って、オリジナルタイミンググラフ１００におけるアーク１０２およびアーク１０８を介するパスは、ピン１５０を介してトレースされ、ブラックボックスモデル１４０においてパス１２０を形成する。それぞれ可能なパスのトレーシングにより、結果として生じるタイミングモデル１４０に、９つのアークまたはパスを生じる（アーク１２０、１２２、１２４、１２６、１２８、１３０、１３２、１３４、および１３６）。示され得るように、オリジナルタイミンググラフ１００において６つのみのアークがある（アーク１０２、１０４、１０６、１０８、１１０、および１１２）。従って、ブラックボックスモデル１４０は、実際に、オリジナルタイミンググラフ１００よりも大きい。
【０００７】
公知のブラックボックスモデルを有する別の欠点は、限定されたラッチ動作のみがモデル化され得るということである。モデルは、いくつかの所与のクロック波形に対してオリジナルのネットリストのラッチタイム借用動作を取り込み得る。モデルが抽出された後に、クロック波形が変化する場合、モデルは無効になる。さらに、ブラックボックスにおけるアサーションに対するサポートが、ブロックに完全に含まれるそれらのアサーション（ａｓｓｅｒｔｉｏｎ）に対するサポートは、例え境界ポートから始まるか、または境界ポートで終端しても限定される。境界ポートから始まるか、または境界ポートで終端するアサーションだけが、完全にサポートされ得る。例えば、境界ポートから始まらないか、または境界ポートで終端しないアサーションは、サポートされ得ない。また、複数のブロックにかかるアサーションは、サポートされ得ない。例えば、ブロックＡから始まり、かつ、ブロックＢの中間で終端するマルチサイクルパスを考慮する。ブロックＢのブラックボックスモデルは、このマルチサイクルパスのアサーションをサポートし得ない。
【０００８】
グレーボックスのモデリングに対する対処法もまた、欠点に苦しむ。従来のグレーボックスは、ラッチにおける任意の透明レベルを適切に対処し得ない。ラッチは、レジスタまたは組み合わせゲートに変化され得るが、このような変化は極めて保守的であり、かつ、タイム借用を可能にしないモデルを結果として導く。あるアプローチは、個々のラッチの代わりにラッチパスを崩壊させるラッチパス圧縮動作を提供する。この動作において、圧縮の及ぶ限りは、所望のラッチ透明レベルを明確にすることによってコントロールされる。しかし、このアプローチは、モデルサイズの縮小を保証し得ず、時には、モデルサイズは、実際に、ラッチ圧縮の後に増加する。さらに、その方法は、ラッチパスの数またはラッチ透明レベルを用いてうまくスケーリングしない。
【発明の開示】
【課題を解決するための手段】
【０００９】
タイミンググラフを縮小することによってタイミングモデルを生成するための方法およびシステムが開示される。本方法は、明確な許容内にある正確さであり、非常に効率的であるモデルを生成し得る。また、タイミング制約／アサーションをモデルに対して持続し、適用するためのアプローチが開示される。ある実施形態において、タイミング制約／アサーションは、一部のモデルとして観測され、生成され得る新しいタイミング制約のセットが、モデル抽出プロセスの一部として自動的に適用される。オリジナルアサーションのアプリケーションのためのラッチタイミング借用およびサポートは、いくつかの中間ピンを維持することによって達成され得る。本発明のさらなる、かつ追加のオブジェクト、詳細、および利点は、図面および以下のテキストに記載される。
【発明を実施するための最良の形態】
【００１０】
（概要）
本発明の開示される実施形態は、タイミンググラフを縮小することによってタイミングモデルを生成するための方法およびシステムに向けられる。本方法は、明確な許容内にある正確さがあり、かつ極めて効率的であるモデルを生成し得る。タイミング制約／アサーションをモデルに対して持続し、適用するためのアプローチがさらに開示される。ある実施形態において、タイミング制約／アサーションは、一部のモデルとして観測され、新しいタイミング制約のセットは、一部のモデル抽出プロセスとして自動的に生成され得る。オリジナルアサーションのアプリケーションに対するラッチタイム借用およびサポートは、いくつかの中間ピンによって達成され得る。
【００１１】
本発明の実施形態において、モデル抽出は、オリジナルタイミンググラフを簡略化することによって実行される。簡略化は、タイミングピンをタイミンググラフに反復的に移動し、タイミングアークを結合することによって達成される。これにより、モデルサイズおよびＣＰＵ／メモリリソースのトレードオフを可能にするモデルのスペクトルを結果的に生じる。説明のため、３つのタプルＧ＝（Ｐ，Ｄ，Ｃ）としてタイミンググラフＧを考慮すると、Ｐはピンのセットであり、Ｄは遅延アークのセットであり、Ｃはチェックアークのセットである。遅延アークは、ピンＤ⊆（Ｐ×Ｐ）で始まり、チェックアークは、Ｃ⊆（Ｐ×Ｐ）で終端する。各遅延アークと共に、ソースピンとシンクピンとの間の有効な遷移を定義する遷移行列が関連付けられる。各チェックアークと共に、信号ピンと基準ピンとの間の有効な起伏遷移または降下遷移を定義する遷移行列が関連付けられる。各チェックアークは、例えば、セットアップ、ホールド、リカバリ、除去といったタイプを有する。本発明に用いられる専門用語および従来技術を説明するために、単純なＤ型レジスタを表すタイミンググラフの例が図２ａに示される。遅延アーク２０２は実線矢印のように表され、チェックアーク２０４は点線矢印のように表される。ＣＬＫ→Ｑの遅延アークに対する遷移行列の例は、図２ｂに示される。この行列は、入力および出力遷移上にチェックアークと遅延アークとの間の遷移関係を特定する。遅延／チェック値は、遅延／チェックアークと関連付けられる。遅延またはチェック値は、例えば、線形関数、ルックアップテーブル、または遅延方程式であり得る。
【００１２】
図３ａは、本発明の実施形態に従ってタイミングモデル抽出するためのプロセスのフローチャートを示す。３０２において、プロセシングに対してタイミンググラフが受け取られる。ある実施形態において、この動作は、タイミングエンジンによって生成されるオリジナルタイミンググラフを新しいモデルグラフにコピーすることによって達成される。任意のタイミング分析ツール（例えば、カリフォルニア州サンノゼのＣａｄｅｎｃｅ  Ｄｅｓｉｇｎ  Ｓｙｓｔｅｍｓから市販されるＢｕｉｌｄＧａｔｅｓタイミング分析ツール）を使用して、このタイミンググラフを生成し得る。ある実施形態において、所与のタイミンググラフは、周期的になるように想定される。３０４において、モデルグラフは、タイミングピンを移動させ、タイミングアークに結合することによって縮小される。３０６において、タイミンググラフ内のアサーションは、抽出されたモデルで自動的に処理され、かつ再現される。オリジナル回路におけるアサーションは、さらに詳細に以下で記載されるように、中間ピンを用いるモデルグラフにおけるアサーションに対して、自動的にマッピングされる。３０８において、タイミングモデルは、モデルグラフから抽出される。
【００１３】
図３ｂは、図３ａのモデルグラフ縮小動作３０４をインプリメントするためのプロセスの実施形態のフローチャートを示す。４０２において、処理するためのタイミングピンの特定、およびモデル縮小動作から排除するためのタイミンググラフエレメントの特定が為される。縮小からできる限り排除するためのピン／エレメントの例は、アンカーポイント、ラッチポイント、およびアサーションポイントを含む。アンカーポイントは、アンカーポイントが除去される場合、ピンに対して、モデルグラフがオリジナルタイミンググラフよりも大きくなるようなピンである。アンカーピンが、例えば、図１のピン１５０によって示される。ラッチポイントは、縮小から排除され、ラッチ挙動の維持を保証する。排除されるラッチポイントの例は、ラッチエレメントの、クロックピンではなく、入力および出力ピンを含む。アサーションまたは制約に関連付けられるピンは、縮小から排除され、オリジナル制約を持続し、かつ適用する。
【００１４】
４０２における除外について識別されるエレメントおよびピンに関することを除いて、４０４において、タイミンググラフ部分は、起こり得る縮小に対して処理される。説明のために、タイミングモデルは、遅延アークの間の相互作用を扱い、かつ組み合わせモデル４１２に取り込まれる組み合わせ部分と、遅延アークとチェックアークとの間の相互作用を扱い、かつシーケンシャルモデル４１４に取り込まれるシーケンシャル部分とを含む少なくとも２つの部分に分割される。特別なプロセスがさらに定義され、標準モデルを用いて適切に縮小され得ない特別なタイプのアーク４１６を扱い得る。例えば、セルフループアークは、個々のプロセスが縮小に対して使用され得る特別なタイプのアークの例である。タイミンググラフにおけるピンおよびアークは、さらなるピン４３０が処理のために残らなくなるまで、ＢＦＳ（幅優先探索）の順序を用いて処理される。縮小プロセスの複数の反復は、タイミンググラフの全てまたは一部について実行され得る。
【００１５】
具現化されるタイミングモデル抽出プロセスは、静的タイミング分析器で用いるためのデジタル回路タイミングモデルを構築する。この静的タイミング分析器において、グレーボックスタイミングモデルは、タイミンググラフを縮小することによってゲートレベルネットリストから生成される。これにより、任意のレベルのラッチタイム借用、セルフループタイミングチェックに対する正確なサポート、およびオリジナルタイミング制約を保証するための機能を含むモデルの精度が提供される。さらに、モデルを生成するために必要とされるＣＰＵおよびメモリリソースは、回路のサイズを用いてうまくスケーリングする。
【００１６】
例えば、オリジナル回路の最も悪い場合の挙動がモデルにおいて精度よく保証される場合、モデル抽出プロセスは正確である。オリジナル回路で生じる任意のタイミング違反は、モデルにおいて再現可能である。さらに、入力スルー値における変化について変化する重要なパスは、モデルにおいて精度よく反映される。これにより、重要なパスが、ある特定の入力スルー値を用いて定義され、かつ入力スルーおよび出力ロード値の組み合わせについて後に再び特徴付けられる前のアプローチよりもさらに良い精度が提供される。さらに、例えば周期および最小パルス幅チェックといったセルフループタイミングチェックも保証される。さらに、具現化されたアプローチにおいて、モデルを抽出するためにフルダウンタイミング分析が本質的に必要とされる前のアプローチではなく、単純なグラフ制約について、抽出に準拠されるので、モデル抽出プロセスは、さらに効率よく適用され得る。また、モデルサイズは、例えば、アンカーポイントを持続することによって、顕著に縮小され得る。グレーボックスモデルを生成するステップはまた、ブラックボックスモデリングアプローチに比較されるように回路における中間ピンにさらに明白に提供する。中間ピンは、ラッチタイミング借用挙動およびレジスタツーレジスタの正確なモデリングを可能にする。具現化されるグレーボックスモデルは、クロックコンテキストの独立性（モデルを構築するために用いられる波形とは異なるクロック波形に対して有効である）であるモデルを作成する。開示される実施形態において、パス遅延は、入力スルーおよび出力ロードに関して特徴付けられ得るが、タイミングチェックは、入力スルーおよびクロックスルーに関して特徴付けられる。
【００１７】
図３ｃは、本発明によるモデル抽出メカニズム３９０のアーキテクチャの実施形態を示す。モデル抽出メカニズム３９０は、４つの基本的なコンポーネントを含む。モデルグラフビルダ３９１は、タイミングエンジン３９６から新しいモデルグラフにオリジナルタイミンググラフを複製する。モデルグラフリデューサ３９２は、モデルグラフを単純化するエキストラクタのコアエンジンである。モデルライタ３９４は、オリジナルタイミング制約を管理する。モデルライタ３９３は、縮小したモデルグラフからのタイミングモデルを書き改める。アサーションハンドラ３９４は、オリジナルタイミング制約を管理する。これらの機能のコンポーネントの各々は、より詳細に以下に記載される。
（モデルグラフビルダ）
このセクションは、モデルグラフを構築するためのプロセスおよびメカニズムの実施形態を記載する。このアプローチでは、オリジナルタイミンググラフにおける全てのチェックアークは、新しいモデルグラフに追加される。オリジナルタイミンググラフにおける遅延アークのほとんどまたは全ては、モデルグラフに複製される。例えば、（ａ）ラッチＤ−＞Ｑフラッシュアーク、および（ｂ）クロックゲーティングアーク（クロックゲート入力ピンからクロックゲート出力ピンまでの全てのアーク）。この実施形態において、例えば、ｓｅｔ＿ｄｉｓａｂｌｅ＿ｔｉｍｉｎｇといった遅延アークおよびチェックアークは、モデルグラフに含まれない。
【００１８】
モデルグラフは、ピン、遅延アーク、およびチェックアークに関連付けられたオブジェクトから成る。これらのオブジェクトの各々は、オリジナルタイミンググラフにおける対応するオブジェクトへのポインタを有する。入力から出力へ、ＢＦＳ順序にソートされるピンのアレイを戻すＢＦＳトラバーサルルーチンが使用される。オリジナルタイミンググラフに存在しなかったサイクルを導入することを避けるために、ＢＦＳグラフトラバーサルルーチンは、ラッチフラッシュアークおよびクロックゲーティングアークに配慮する。
（モデルグラフリデューサ）
図４ａは、グラフ縮小を実行するためのプロセスおよびメカニズムの実施形態について擬似コードを示す。このアプローチにおいて、タイミンググラフは、幅優先検索（ＢＦＳ）順序において各中間ピンにアクセスすることによって時間におけるあるピンを縮小させる。縮小は、さらなる変化が可能にならなくなるまで繰り返される。ＢＦＳトラバーサルを用いるための理由は、ピンが取り除かれる以前に、ピンに遅延アークを入来することがすでに処理されたこと、および遅延アークが入力スルー値の最小数に関して特徴付けられることを保証することを含む。ｒｅｍｏｖｅＰｉｎ（）は、マージ動作を実行するメインルーチンである。ｐｏｓｔＰｒｏｃｅｓｓ（）ルーチンは、初期入力ピン（または持続された中間ピン）から始まり、かつ初期出力ピン（または持続された中間ピン）で終端する遅延アークまたはチェックアークを管理する。このようなアークについて、値ｒン計算ルーチンは、ピンの移動がこのようなアークに対して実行されないので、明白になり得る。
【００１９】
ｒｅｍｏｖｅＰｉｎ（）ルーチンの実施形態に対する擬似コードが図４ｂに示される。セクション４７２は、特定のピンがモデルから移動されるか、または縮小プロセスから排他されるかどうかの決定が為される。セクション４７２のｒｅｔａｉｎＰｉｎ（）ルーチンの実施形態に対する擬似コードが図４ｃに示される。セクション４７４、４７６、および４７８は、タイミンググラフの対象部分を縮小するための擬似コードを含む。説明のため、タイミングモデルは、少なくとも２つの部分に分割される。組み合わせ部分は、遅延アークの間の相互作用に対処して、組み合わせモデルにおいて取り込まれる。シーケンシャル部分は、遅延アークとチェックアークとの間の相互作用に対処し、シーケンシャルモデルに取り込まれる。図４ｂにおける擬似コードのセクション４７４は、「ｓマージ」および「ｐマージ」動作を用いる縮小する組み合わせモデルに向けられる。セクション４７６は、「ｂａｃｋｗａｒｄ−ｓ−ｍｅｒｇｅ」動作を用いて連続モデルを減少させることに関する。セクション４７８は、「前方ｓマージ」操作を用いる縮小するシーケンシャルモデルに向けられる。これらの操作の各々は、以下にさらに詳細に記載される。
（縮小するか、縮小から排他するためのタイミンググラフエレメントを識別すること）
このセクションは、特定のタイミンググラフエレメントがモデル縮小プロセスに含まれるか、またはモデル縮小プロセスから排他されるかどうかを決定するためのプロセスおよび機構の実施形態を記載する。
【００２０】
タイミンググラフにおけるピンおよびアークは、さらなるピンが処理するために保持しなくなるまでＢＦＳ順序を用いて処理される。各エレメントは、縮小プロセスから排他されない限り、縮小の対象になる。タイミンググラフエレメントは、例えば、結果として生じるタイミングモデルにおけるある識別されたタイプの挙動／情報を持続するために、あるいは、縮小プロセスがタイミングモデルのサイズを不利益に増大しないことを保証するために、多様な理由のための縮小の適性から排他され得る。本アプローチは、経験則を用いて、例えばモデルサイズがオリジナル回路サイズ以下になるようなモデルサイズにおけるブローアップを避け得る。
【００２１】
縮小から排他するためのタイミンググラフエレメントの例示的エレメントの第１のセットは、ラッチに対するタイミングピンである。タイミングモデルにおける移動からラッチタイミングピンを排他することは、ラッチ挙動を持続するために役立つ。このことは、ラッチに関連付けられた透明度の感度が「ｔｉｍｅ−ｂｏｒｒｏｗｉｎｇ（時間借用）」に有益であり得るので、一部において生じる。「時間借用」は、ラッチエレメントの入力および出力ピンが縮小プロセスから排他される場合、持続される。本発明の実施形態において、ラッチのクロックピンが縮小の適性から排他されないことに留意されたい。ラッチポイントは、設計における構造情報にアクセスすることを含む多くの教示によって、あるいは、タイミンググラフにおけるラッチプロファイルの分析によって特定される。多くのラッチツーラッチ接続を有するラッチベースの設計は、この最適化から最も利益を得るように期待される。
【００２２】
他のこのようなピンは、縮小から排他され、オリジナルタイミング挙動を持続し得る。このようなピンの例示は、ラッチ入力ピン、ラッチ出力ピン、ゲートとクロック出力ピン、ゲートとクロック入力ピン、アサーションに関連付けられたピン、および出力ツー出力パスに関連付けられたピンを含む。
【００２３】
ピンが持続されるとき、入力遅延アークからピンに来るスルー値を用いて、ピンから生じるアークを横切って遅延を計算する。出力ツー出力に関連付けられたピンは、「ネットピン」によって供給された全ての中間ピンを参照する。ネットピンは、ネットアークを介して初期出力（「ＰＯ」）ポートに接続するピンである。この持続を用いて、出力ツー出力による正確な出力ローディングを取り込んで、正確な遅延アクロスネットアークを明らかにする。
【００２４】
別の例として、アサーションに関連付けられたタイミングピンはまた、縮小から排他し得る。以下にさらに詳細に説明されるように、アサーションは、タイミングモデルに直接組み込まれ、個々のタイミングモデルエレメントに関連付けられ得る。これらのエレメントを縮小のための適性から排他することは、アサーションとそれに関連付けられたタイミンググラフエレメントとの間の関連性の維持に役立つ。
【００２５】
モデル抽出の目的は、オリジナル回路より小さいモデルを生成することである。しかし、いくつかの場合、あるタイミングピンの移動は、タイミングアークの数におけるジオメトリックブロウアップを導く。「アンカーポイント」は、移動した場合、モデルサイズにおける増大を導き得る既存のピン（例えば、中間ピン）について言う。タイミングモデルを有することを避けるためには、オリジナルタイミンググラフより大きくなり、このようなアンカーポイントが縮小プロセスから排他され得る。遅延アークの数を用いて、モデルサイズを確立する。このアプローチにおいて、遅延アークが最終モデルサイズへの寄与を全て等しくさせることが想定される。この想定が与えられると、アンカーポイントの識別は、静的回路の最適化のコンテキストにおいて剪定のセットを見出す問題に類似する。この目的は、可変の数ではなく、遅延アークの数を最小化することである。また、入力スルー値の最小数に関する遅延アークを特徴付けることが望まれるので、このアプローチは、それらの入来遅延アークを最初に処理することなくランダムに中間ピンを移動しない。これは順序を制約する。この順序において、アンカーポイントは特定され、かつ維持される。
【００２６】
アンカーポイントを特定するために、ゲイン値は、以下のようなピンに対して決定される：
ゲイン＝（＃入来遅延アークの数  ×  ＃出て行く遅延アークの数）−＃入来遅延アークの数−＃出て行く遅延アークの数
この値は、ピンが移動される場合、遅延アークの数において増大を表す。ある実施形態において、ポジティブゲインを有し、かつ、観察可能である任意のピンは、アンカーポイントに対する候補である。ピンから初期の出力または持続されたピンへのパスがある場合、ピンは観察可能である。このアプローチにおいて、可観測性により、アンカーポイントは、最終的に移動されるピンの推移的ファンイン（ｆａｎｉｎ）錐体に形成されることが防止される。例えば、レジスタ入力ピンは、観測されず、最終的に移動され得る。
【００２７】
例えば、図１において、中間ピン１５０の移動以前に、オリジナルタイミンググラフ１００において６つの遅延アークがある（すなわち、アーク１０２、１０４、１０６、１０８、１１０、および１１２）。ピン１５０が移動される場合、遅延アークの数は、３つのゲインを残して９つになる（すなわち、アーク１２０〜１３６）。このゲイン値は、上記の式を用いて特定され得る。この式において、入来遅延アークの数は３になり（アーク１０２、１０４、および１０６）、出て行く遅延アークの数も３になる（アーク１０８、１１０、１１２）。従って、ゲイン＝（（３×３）−３−３）＝ピン１５０に対して３になる。故に中間ピン１５０に対するゲイン値がゼロを超えるので、ピン１５０は、縮小プロセスから排他されるアンカーポイントが考慮され得る。
【００２８】
一旦、アンカーポイントが特定されると、アンカーポイントは特定のパスに対して有効である。１つのパスが、全ての中間ピンの完全な掃引を構成する。アンカーポイントは、次のパスにおいて再び特定される。
【００２９】
アンカーポイントの決定に対する限界ゲイン値は、性能期待値を得るように、または変化するように調整され得る。ゲイン閾値に対する十分高い値と共に、全てのアンカーポイントは、設計から除去され得る。アンカーポイントの最大数は、ゲイン閾値を「１」の値にセットすることによって特定される。結果として生じるタイミングモデルがオリジナルタイミンググラフのサイズを超過しないことを保証するために、ゲイン閾値は１に設定され得る。
【００３０】
ゲイン閾値が高い値に設定されるとき、遅延の数は、最終モデルサイズがより大きくなるがより小さい閾値に対してよりも小さくなることが起こり得る。これが起こるのは、いくつかの遅延アークが遷移マトリックスの点に関して他の遅延アークよりも「濃く」なるからである。これは、全ての遅延アークが最終モデルサイズに等しく寄与させるという想定が局所的なレンジを越えて必然的に変化しないので、起こる。しかし、中間入来／出て行く遅延アークの数は全ての遅延アークではなく、このアプローチが観測されるので、これはアンカーポイントに関連付けられた見積もりに影響しない。
【００３１】
よりグローバルな観点に対して、遅延アークの異なる密度または重さはまた、アンカーポイントを決定するとき、考慮に取り入れられる。
（組み合わせモデルの縮小）
このセクションは、組み合わせモードを処理するために図４ｂのセクション４７４を実施するためのアプローチの実施形態を記載する。タイミンググラフを縮小するためのこのアプローチにおける２つの操作は、シリアル−マージ（「ｓマージ」）およびパラレル−マージ（「ｐマージ」）操作である。
【００３２】
この実施形態において、ｓマージ操作は、連続して２つの遅延アーク（ｄ１およびｄ２）を得て、第１のアーク（ｄ１）のソースから第２のアーク（ｄ２）のシンクに、ｄ１とｄ２との「合計」を表すように新しいアーク（ｄ３）を生じる。ｓマージは、精度を損なうことなくタイミンググラフからの中間ピンの除去を可能にする縮小操作である、基本的な縮小操作である。ｓマージが実行されると、マージされたアークの新しいアークの遅延が計算される。
【００３３】
図５ｂを参照して、中間ピン５０８にわたって連続である２つのアーク、アーク１  ５０２およびアーク２  ５０４を考慮する。アーク１  ５０２およびアーク２  ５０４は、図５ａに示される遅延値を有する。これら２つのアークは、中間ピン５０８を移動することによってシリアルにマージされる。アーク１  ５０２とアーク２  ５０４との間のｓマージから生じる新しいアーク３  ５０６は、アーク１  ５０２およびアーク２  ５０４の個々の遅延を合計することによって計算される遅延を有する。
【００３４】
この実施形態において、「レイジー」スルー計算が用いられ、ゆえに、出力スルーおよびアーク遅延は、遅延および出力スルー値における変化につながり得る新しい入力スルー値に対してのみ計算される。また、ロード−依存遅延計算は、出力ポートを駆動する最後のアークに制限され得る。
【００３５】
ｐマージ操作は、２つのパラレルアークを取り、それらを単一のアークにマージする。ｐマージ操作は、それが次のステージの計算において処理されることを必要とするアークの数を縮小させるように、モデル抽出時間にのける次の縮小に通じ得る。ある実施形態において、２つのパラレル遅延アークが与えられ、ｐマージは、２つのアークの「最も悪い」ものを選び、他のアークが廃棄されることを可能にする。
【００３６】
図６ｂを参照して、ピン６００から始まり、ピン６０８で終わる２つのパラレルアーク、アーク１  ６０２およびアーク２  ６０４を考慮する。これらのアークに対する遅延値は、図６ａの表に示される。単一のアーク３  ６０２を用いて２つのアークからの情報をマージすることが所望される。
【００３７】
アーク１  ６０２に対するアーク遅延ｄ１がアーク２  ６０４に対するアーク遅延ｄ２よりも少ないということを想定する（すなわち、ｄ１＜ｄ２）。当該のパスが遅い場合、次に、ｐマージ操作は、出力スルーを選定し、最悪の場合のアーク（この例示においては、より大きいアーク遅延値を有するのでアーク２  ６０４である）からアーク遅延を選定する。早いパスおよび遅いパスが共に当該である場合、次に、ｐマージは、アーク１  ６０２からｄ１の最悪の早い遅延、およびアーク２  ６０４からｄ２の最悪の遅い遅延を獲得し得る。次に、アーク６０２は、ｐマージの後の２つの遅延：ｄ１の早い遅延およびｄ２の遅い遅延を有する。
【００３８】
ある実施形態において、合成アーク３  ６０６は新しいアークではない。それは、ｐマージプロセスにおいて縮小するようにパラレルアーク６０２および６０４のセットから持続するために選択されたアークである。従って、アーク６０２および６０４に導入されるｐマージについて、遅いパスが当該の場合、かつ、アーク２  ６０４がアーク１  ６０２よりも大きいアークチンを有することが想定される場合、次に、ｐマージプロセスの後、アーク１  ６０２は移動され、アーク２  ６０４のみが合成アーク３  ６０６として残る。代替の実施形態において、アーク３  ６０６は、選択されたアーク値に基づいて必要とされるプロパティと共に形成される全体的に新しいアークである。
【００３９】
ｐマージ操作が入力スルー値における変化のために変化する重要なパスを考慮に入れるように構成され得ることに留意されたい。図７におけるタイミンググラフを考慮する。図７では、ｓ１からｓ２、ｓ３へと変化する入力スルー値と同様に、重要なパスは、ＡからＢ、Ｃへと変化する。２つのｐマージ操作の後に結果として生じるアーク遅延は、重要なパスにおける変化を反映する。従って、本アプローチは、オリジナルに選択される特定の重要なパスにロックされないが、例えば入力スルー値における反かに基づいて、重要なパスを動的に決定し得る。
【００４０】
図８は、タイミンググラフの一部を縮小するために実行され得る一連のｐマージおよびｓマージ動作を説明する。最初に、タイミンググラフ部分は、第２のタイミングピン８０４に接続される遅延アーク８１０を有する第１のタイミングピン８００を含む。別の遅延アーク８０６は、タイミングピン８００から中間タイミングピン８０２まで伸びる。遅延アーク８０８は、中間タイミングピン８０２からタイミングピン８０４まで伸びる。
【００４１】
遅延アーク８０６および遅延アーク８０８が中間タイミングピン８０２を介して連続的に伸びることが見られ得る。従って、ｓマージ動作は、これら２つのアークをマージされた遅延アーク８１２の中へ縮小するように実行され得る。遅延アーク８０６が遅延値ｄ１＝１を有し、遅延アーク８０８が遅延値ｄ２＝２を有する場合、次に、ｓマージされたアーク８１２に対する遅延値ｄ４は、２つの遅延値の合計（すなわち、ｄ４＝ｄ１＋ｄ２＝１＋２＝３）に等しくなる。ｓマージ操作の後、中間タイミングピン８０２は除去され、２つの遅延アーク８０６および８０８は遅延値ｄ４＝３を有する単一の遅延アーク８１２にマージされた。
【００４２】
この点について、マージされた遅延アーク８１２は、オリジナル遅延アーク８１０と平行になる。なぜなら、同様の入力タイミングピン８００から同様の出力タイミングピン８０４まで共に伸びるからである。ｐマージ操作は、これら２つのアークを単一のマージされたアーク８１０中にさらに縮小するように実行され得る。当該のパスが遅い場合、次に、マージされたアーク８１０は、より大きい遅延値を有するどちらのアーク８１０または８１２でも遅延値に関連付けられる。ここで、アーク８１０は、それに平行なアーク８１２よりも大きい遅延値を有するので、マージされたアーク８１０は、アーク８１０の遅延値に関連付けられる（すなわち、遅延値ｄ５＝（ｄ３またはｄ４の大きい方））。
【００４３】
縮小操作が完成されたとき、オリジナルタイミンググラフ部分において３つの遅延アークおよび３つのタイミングピンが存在されるので、最終的なタイミングもでるは、単一の遅延アークおよび２つのタイミングピンのみを含む。
【００４４】
例えば、ｐマージおよびｓマージの一方のマージングが実行されると、関連した遷移マトリクスもまた変化し得る。
（シーケンシャルモデル）
このセクションは、シーケンシャルモデルを処理するために、図４ｂのセクション４７６および４７８をインプリメントするためのアプローチの実施形態を記載する。チェックアークは、少なくとも２つのメイングループに分類化され得る。あるグループは、「セットアップ」グループと呼ばれる、ここではデータ信号が基準またはクロック信号より以前に到達するように予測される。「セットアップ」グループの例は、セットアップ、リカバリ、スキュー、クロック分離などである。他のグループは、「ホールド」グループと呼ばれ、ここでは、基準信号がデータ信号より以前に到達するように予測される。「ホールド」グループの例は、ホールド、および移動である。
【００４５】
レジスタまたはフリップ−フロップは移動され、上記のように、ラッチ情報の一部は、ラッチ挙動を持続するように維持される。この実施形態において、全てのラッチ入力ピンおよびラッチ出力ピンは、維持される。シーケンシャルエレメントの移動に関連付けられた操作は、組み合わせモデルに対する操作に類似する。遅延アークとチェックアークとの間の相互作用を正確にかたどるために、２つの異なるｓマージ操作が用いられる：前方ｓマージ４７８および後進ｓマージ４７６。シーケンシャルｐマージは、組み合わせｐマージと本質的に同様である。この差は、同様のタイプのチェックアークのみがマージされるということである。
【００４６】
レジスタ／ラッチクロックピンが移動されるとき、前方ｓマージ操作が用いられる。遅延アークおよびチェックアークがクロックピンに集まるとき、新しいチェックアークは、古いデータ信号（チェックアークの信号端）と新しいクロック信号（遅延アークのソース）との間に新しいチェック値を表すように生成される。仮に、ｄは遅延アーク上の遅延アークを示し、ｃはチェックアーク上のチェック値を示すとする。一実施形態において、セットアップグループに対して２つのアークをマージするとき、新しいチェック値はｃ−ｄになり、ホールドグループに対して、新しいチェック値はｃ＋ｄになる。
【００４７】
図９は、前方ｓマージ操作を示す。この図は、レジスタに対するタイミンググラフを示す。レジスタにおいて、チェックアーク９０２および遅延アーク９０４は、クロックピン９０６に関連付けられる。前方ｓマージ操作を用いて、２つのアークをマージし、クロックピン９０６を移動することによってこのタイミンググラフを縮小させる。マージされたアーク９０８は、セットアップグループに対してチェック値ｃ−ｄおよびホールドグループに対してｃ＋ｄを有するチェックアークである。
【００４８】
レジスタ入力ピンが移動されるとき、後進ｓマージ操作が用いられる。遅延アークおよびチェックアークがデータピンに集まるとき、新しいアークは、遅延アークのソースと古いクロック信号との間に新しいチェック値を表すように生成される（チェックアークの基準端）。セットアップグループに対して、新しいチェック値はｃ＋ｄになり、ホールドグループに対して、新しいチェック値はｃ−ｄになる。
【００４９】
図１０は後進ｓマージ操作を示す。この図は、レジスタに対するタイミンググラフを示し、レジスタにおいて、チェックアーク１００２および遅延アーク１００４は、入力ピン１００６に集まる。後進ｓマージ操作を用いて、２つのアークをマージし、入力ピン１００６を移動することによってこのタイミンググラフを縮小する。マージされたアーク１００８は、セットアップグループに対してチェック値ｃ＋ｄおよびホールドグループに対してｃ−ｄを有するチェックアークである。
（セルフループチェックアーク）
信号端および基準端が共に同様のピンを差す場合、ある「セルフループ」チェックアークがある。このようなタイミングチェックは、限定されないが、クロック上に最小パルス幅（ＭＰＷ）および最小周期（ＭＰ）チェックを含む。前方および後進ｓマージ操作を用いることによって、このようなセルフ−ループチェックアークは、正確なクロックパス遅延（非対称の起伏／落ち込みを含む）およびスルー伝播を用いてかたどられ得る。
【００５０】
図１１は、ＭＰＷセルフループチェックアーク１１０２を有するクロックパスのタイミンググラフフラグメントの例示を示す。入来遅延アーク１１０４は、セルフループチェックアーク１１０２の信号および基準端共に同じピン１１０６に接続されるように示される。
【００５１】
セルフループチェックアークは、入来遅延アークを概念的に複製することによってセルフループを有さないチェックアークとして「膨張」され得る。遅延アーク１１０４は、２つのアークｄ１  １１０４ａおよびｄ２  １１０４ｂを生成するように複製される。アーク１１０２の各端部を複製されたアーク１１０４ａおよび１１０４ｂに接続することによって、チェックアーク１１０２は変形され、故に、セルループアークになる。
【００５２】
従って、後進ｓマージは、遅延アークｄ１  １１０４ａおよびチェックアーク１１０２上で実行され、マージされたチェックアーク１１０６を生成し得る。次に、前方ｓマージ操作は、遅延アークｄ２  １１０４ｂおよびチェックアーク１１０６上で実行される。これは、クロックパス遅延およびスルー伝播を正確に反映する、ポートＣＫにおける別のセルフループチェックアーク１１０８につながる。遅延アークまたはピンは、ここで実際に複製される必要がないことに留意されたい。図１１において、説明のためのみの複製である。
（遅延計算およびロード特徴付け）
一実施形態において、遅延計算は、ｓマージおよびｐマージ操作の間に実行される。この操作中に、スルー、ロード、および／またはデータ値の固定レンジを越えて計算される。例えば、ロードレンジは、出力ポートで終端する遅延アークに利用され得る。レンジは、ある遅延アークまたはチェックアークから他のものへ変化し得る。
【００５３】
得られるロードおよびスルー値の精度のよいレンジに対して、所望される。表ベースのライブラリ（例えば、ＴＬＦ、．ｌｉｂ、またはＡＬＦ）に対して、ライブラリテンプレートにおいて明確化されるように、レンジが得られ得る。等式ベースのライブラリ（例えば、ＯＬＡ）に対して、レンジは特徴付けられ得る。次のセクションは、スルー／ロードレンジ値を得るためのアプローチの実施形態を記載する。
【００５４】
表ベースのライブラリに対して、ロードレンジは、遅延アークに関連付けられた表のテンプレートにおいて観測することによって得られ得る。（例えば、ＴＬＦライブラリから）以下のテンプレートと共に遅延アークを考慮する。
【００５５】
Ｔｉｍｉｎｇ＿Ｍｏｄｅｌ（“Ｍｏｄｅｌ０”
（Ｓｐｌｉｎ
（Ｉｎｐｕｔ＿Ｓｌｅｗ＿Ａｘｉｓ
０．０５００，０．３０００，０．５５００，０．８０００，１．０５００）
（Ｌｏａｄ＿Ａｘｉｓ
０．０８２０，０．１６３９，０．３２７９，０．６５５７．１．３１１５，２．６２３０，５．２４５９）
ｄａｔａ（）
）
）
このテンプレートの初期のロードレンジは、以下の７つの値、０．０８２０、０．１６３９、０．３２７９、０．６５５７、１．３１１５、２．６２３０、５．２４５９からなる。
【００５６】
スルー／ロードレンジを決定するためのアプローチは、許容値を確立して、レンジに対する所望の精度値を明確にすることである。このアプローチにおいて、初期レンジにおける全ての値は、それが所望の精度レベルを満たす間に降下され得る場合、チェックするように評価される。一旦、値がそのレンジから降下されると、遅延および出力スルー値は、その近傍からの点を用いて補間される必要がある。補間された遅延および出力スルー値が、特定の許容限界内にある場合、値はそのレンジから降下される。このアプローチにおいて、許容パーセンテージが高くなれば、より多くの値がそのレンジから外れ得る。このアプローチは、処理するための入力スルー値および出力ロード値を共に縮小する。
【００５７】
等式ベースのライブラリに対して、反復加重二分割法（ｉｔｅｒａｔｉｖｅ  ｗｅｉｇｈｔｅｄ  ｂｉ−ｓｅｃｔｉｏｎｉｎｇ  ｔｅｃｈｎｉｑｕｅ）が用いられ得る。プロセスは、初期レンジ｛０，ＭａｘＶａｌ｝で開始する。ＭａｘＶａｌは、最大出力ロードまたは入力スルー値であり得、ユーザによって明確にされ得る。レンジは、中間点において２つのレンジに分割される。その後、全ての既存のサブレンジによって、それ以上の加重を有するレンジが選択される。加重は、レンジの２つの端点間の出力遅延（または出力スルー）において勾配がある。所望の数のデータポイントが得られるまで、この二分割は継続される。一旦、レンジが決定されると、表ベースのライブラリに対して提案される許容ベースの剪定によってさらに縮小され得る。
【００５８】
別のアプローチにおいて、レンジにおけるロード値の数が出力ロードの最大数（Ｎ）を超える場合、その後、そのレンジは、隣接した近傍点への最も長い加重距離を有するＮ値を選択することによって剪定され得る。レンジが上向きの順序にソートされる場合、レンジにおける（ｉ）番目の値に対する距離は、（ｉ＋１）番目の値と（ｉ−１）番目の値との間のロード値における差によって見出される。レンジにおける第１の値に対する距離は、無限大になるように仮定され、最後の値に対する距離は無限大の半分になるように仮定される。これは、端点により高い加重を与えるためである（より高い加重は、レンジ置ける第１の値に与えられる）。上記の例示に対して、Ｎ＝６と想定する。距離表は、以下のように示される。
【００５９】
【表１】
2005512237.tif 000003
最も長い距離を有する６の値を選定することによって、レンジは、０．０８２０、０．３２７９、０．６５５７、１．３１１５、２．６２３０、５．２４５９に剪定され得る。
（複数のファンインおよびファンアウトの考慮）
入力ポートは、再改装パスにつながり得、これは、ｐマージにおいて問題を生じ得、再改装パスが異なるスルー値と共に関連付けられる。同様に、出力ポートは、マルチプレクサを含む設計から生じる複数のファンインパスを有し得る。この理由のため、全ての遅延アークおよび入力ポートから発散するチェックアークに対して同様のスルーレンジおよび出力ポートを終端する全ての遅延アークに対する同様の出力ロードレンジを用いることは適切である。レンジは、入力／出力ポートによって異なり得る。これを適応させるために、スルー（ロード）範囲は、入力ポートから発散する（出力ポートで終端する）全ての遅延アークおよびチェックアークに対して特徴付けられる。その後、全てのスルー／ロード値は、各入力／出力ポートに対するリストにマージされる。
（チェックアークの考慮）
本発明の実施形態のＢＦＳトラバーサルアプローチは、ピンへの遅延アークの入力が全て、ピンが移動される前に処理されることを確実にする。しかし、チェックアークは、時として、特別な考慮を必要とする。なぜなら、完全にチェックアークを特徴付けるために、スルー値のレンジが信号端および基準端において共に利用可能にされるからである。いくつかの場合において、ＢＦＳトラバーサルは、全てのチェックアークの信号端および基準端が共に、前方ｓマージまたは後進ｓマージ操作以前に処理されることを保証しない。
【００６０】
例えば、図１３のタイミンググラフを考慮する。ピンｃ１が移動されると、チェックアークの信号端（ｄ２）から生じるスルー値のレンジは、利用可能に成らない。一実施形態において、チェックアークは、全ての可能なスルー値に関して特徴付けられる（ほとんどの場合、６よりも少ないスルー値はチェックアークを特徴付けるためには、十分な値である）。ピンｄ２が処理された後で、チェックアークは、適切なスルー値に対して再び特徴付けられる。代替の実施形態において、ｃ１の移動後のｄ２におけるスルー値のレンジが推測される。ピンｄ２が処理されるときのみ、スルーレンジは利用可能になる。その後、チェックアーク遅延は、補間を実施することによって再計算され得る。
（挿入遅延）
挿入遅延は、クロックソースポートからレジスタおよびラッチに属する内部クロックピンまでの遅延について言う。挿入遅延は、セル内に組み込まれるクロックツリーを介するファースト（早い）パスおよびスロー（遅い）パスの特徴付けをイネーブルにする。挿入遅延を計算するために、さらなる計算が、内部クロックピンにおいて実行され得る。一実施形態において、プロセスがレジスタまたはラッチにおいてクロックピンに遭遇するときに、挿入遅延は計算される。下記は、本発明の一実施形態において挿入遅延を計算するための擬似コードである。
【００６１】
／＊ピンは、レジスタまたはラッチ用の内部クロックピンである＊／
ｃｏｍｐｕｔｅＩｎｓｅｒｔｉｏｎＤｅｌａｙ（ｐｉｎ）｛
Ｐａｔｈｓ＝ｔｒａｃｅＰａｔｈｓＴｏＣｌｏｃｋＳｏｕｒｃｅＰｉｎ（ｐｉｎ）；
ｆｏｒ  ｅａｃｈ  ｐａｔｈ  ｉｎ  ｐａｔｈｓ｛
ａｄｄＩｎｓｅｒｔｉｏｎＤｅｌａｙ（ｓｒｃ  ｐｉｎ  ｏｆ  ｐａｔｈ，ｐａｔｈ）；
｝
｝
パスは、遅延アークのリストである。ａｄｄＩｎｓｅｒｔｉｏｎＤｅｌａｙ（）の手続は、パス遅延を計算し、かつ、クロックソースポートであるパス発生ピンにそのパス遅延を格納する。前述したｓマージおよびｐマージ操作は、このルーチンにおいて用いられ得る。実質的に、ラッチまたはレジスタのクロックピンに遭遇するとき、プロセスは、オリジナルクロックソースまでさかのぼってパスをトレースし、かつ、最悪の挙動を有するあるピンをトラッキングする。
（縮小の例示）
図１４は、２つのレジスタ１３５０、１３５２、および１つのラッチ１３５４を有する回路上のグラフ縮小の例示を示す。この例示おいて、アーク１３０６および１３０７は、後進ｓマージ操作を用いてチェックアーク１３０８にマージされる。アーク１３０１、１３０２、１３０３、１３０４、および１３０５は、ｓマージ、後進ｓマージ、および前方ｓマージ操作の組み合わせを用いてセルフループチェックアーク１３００にマージされる。アーク１３０９および１３１０は、前方ｓマージ操作を用いてアーク１３１１にマージされる。アーク１３０５、１３１２、および１３１３は、ｓマージ操作を用いてアーク１３１４にマージされる。アーク１３０５が、最終タイミングモデルにおいて、結果としてアーク１３００および１３１４を共に生じる、２つの個々の操作のセットにかかわることに留意されたい。アーク１３１０および１３１３は、ｓマージ操作を用いてアーク１３１９にマージされる。
【００６２】
ピン１３３０および１３３２は、ラッチ１３５４の入力および出力ピンであるので、それらはモデルから移動される。最終モデルは、ラッチ挙動を持続するために２つの内部ピン１３３０および１３３２を含む。ｒｅｇ１  １３５２におけるセットアップ／ホールドが、クロックＣにおけるセルフループセットアップ／ホールドチェックアークとしてモデリングされることに留意されたい。
（モデルライタ）
このセクションは、タイミングモデルを書き込むためのプロセスおよびメカニズムの実施形態を記載する。モデルライタは、所望のフォーマットにおけるピン、遅延アーク、およびチェックアークを外へ放出するために縮小したモデルグラフを越えるか、または渡る。
【００６３】
縮小モデルサイズに対して、タイミングモデルは、異なる遅延アークおよびチェックアークの間で共有され得る。あるアプローチにおいて、これは、遅延テーブルをハッシングすることによって達成される。さらに、モデルサイズは、遅延テーブルをソートおよび縮小させることによって縮小され得る。スルー値がソートされ、複製がモデルグラフリデューサにおいて移動され得るが、いくつかの最終的なチューニングは、モデルリデューサが全ての遷移の可能性（起伏、降下、早い、遅い）を考慮するので、いくつかの最適化をし損なう場合、いくつかの最終的なチューニングが必要とされ得る。遅延テーブルに値が与えられると、モデルライタメカニズムは、軸に現れ、かつ複製のソーティングおよび移動を実行するスルー値を調べ得る。
【００６４】
他でより詳細に記載されるように、モデルライタメカニズムは、ａ）例外に関連付けられた全ての内部ピンを持続し、ｂ）モデルＩ／Ｏポートにおける例外をダミーの内部ピンに格納し、かつ、ｃ）モデルの一部として新しい例外を書き出す。これは、アサーションおよび制約の持続を容易にする。なぜなら、例外は、タイミングモデルに挿入されるからである。一実施形態において、オリジナル回路上にあるユーザのアサーションだけが、モデルの一部として書き込まれる。
（アサーションハンドラ）
このセクションは、本発明の一実施形態においてどのようにアサーションがモデル抽出に対して処理されるかを記載する。説明のため、アサーションの扱いは、モデル抽出のグラフ縮小のコンテキストおよび内部ピンのコンテキストに記載される。しかし、アサーションを扱うための本発明のコンセプトは、他のモデル抽出アプローチおよび非内部ピンに対して等しく利用可能であり（例えば、ブラックボックスモデルのパストレーシングに対するアサーションを扱う）、故に、説明のため、かつ、データの異なるソースからの抽出（例えば、ネットリスト、タイミンググラフなどからのタイミングモデルの抽出）のために本明細書中に開示される特定の実施形態に限定されるべきでないことに留意されたい。
【００６５】
例えば、バジェッタといったツールに由来するアサーションである「生成されたアサーション」の例は、
・クロック到達時刻
・クロック必要時間
・データ到達時刻
・データ必要時間
・スルー時間
・一定のタイミング
・駆動抵抗
・駆動セル
・入力遅延
・出力（外部）遅延
を含む。ユーザによるアサーションのセットである「ユーザアサーション」の例は、誤ったパス、マルチサイクルパス、またはディセーブルタイミングを含む。
【００６６】
公知のモデル抽出アプローチにおける問題の１つは、オリジナルアサーション／制約が抽出されたモデルに適用し難いことである。内部ピンの損失または名称変化は、この困難性に起因する。
【００６７】
図１５は、公知のアプローチのこの欠点を説明する。ピンａおよびｂを有するインスタンスｉ１として例示される回路ブロック１５０６を有するオリジナルネットリスト１５０２を考慮する。トップレベルにおけるアサーション１５０８は、以下のように存在する：「ｓｅｔ＿ｆａｌｓｅ＿ｐａｔｈ−ｆｒｏｍ  ｉ１／ａ−ｔｏ  ｉ１／ｂ」。異なるインスタンスにおいて、抽出されるタイミングモデルが例示される場合、アサーションは、ピンの名称における変化を反映するために異なる様態で変更されるか、または調達される必要がある。従来のモデル抽出において、マニュアルプロセスを使用して、抽出されるモデル１５１０に対してアサーション１５０８の適切な関連性を保証する。この例において、アサーション１５０８は、ｓｅｔ＿ｆａｌｓｅ＿ｐａｔｈ−ｆｒｏｍ  ｉ２／ａ−ｔｏ  ｉ２／ｂのように修正されたアサーション１５０８’に変換される。一般的な回路設計は、極めて多くの回路エレメント（可能性的に１００万の数）を制約し、これらのエレメントが、アサーションが対応するエレメントに適切に関連付けられることを保証するように検索され、再検討される必要があるので、手動訂正に依存する任意のプロセスおよびアサーションの関連性がエラーの導入または監視の可能性を伴う単調かつ時間消費の手続になる。さらに、一旦、アサーションが訂正されると、それらは、タイミングモデル１５２４の格納ロケーション１５２６とは別の格納ロケーション１５２２に格納される。これは、少なくとも２つの個々のデータ格納ロケーションは、タイミングモデル部分のモデル情報を取り出すようにアクセスされる必要があることを意味する。
【００６８】
本発明の一実施形態においてこれらの問題を解決するために、アサーションに関連付けられた内部ピンが維持される。これにより、オリジナルアサーションは、変更がないか、またはほとんど変更がないモデルに適用されることが可能になり、複数のブロックにかかるアサーションを含む。また、本アプローチは、それを、オリジナルタイミング制約／アサーションに持続させ、かつ適用し易くさせる。タイミング制約／アサーションは、モデルの一部として観測され、新しい制約のセットは、モデル抽出プロセスの一部として自動的に生成され得る。タイミング制約のサポートは、トップダウンの階層的なフローにとって重要である。
【００６９】
図１６は、本発明の実施形態を説明する。ここで、タイミンググラフ部分１６０２は、ピンａとｂとの間の回路ブロックを含む。アサーション１６０８は、前の例、「ｓｅｔ＿ｆａｌｓｅ＿ｐａｔｈ−ｆｒｏｍ  ａ−ｔｏ  ｂ」に類似する。しかし、モデル抽出が実施形態されるとき、ピンａおよびｂは、わざと移動、リネーム、または他の変更から外される。なぜなら、アサーション１６０８は、これらのピンに関連付けられるように特定されるからである。従って、ピンａおよびｂは、抽出したモデルグラフ１６１０において維持される。このアプローチは、本質的に、オリジナルアサーション１６０８の正当性および利用可能性を抽出したモデルにおいて対応するピンａおよびｂに持続する。
【００７０】
さらに、アサーションは、モデルグラフ１６１０およびタイミングモデル１６２４に書き改められるタイミングに自動的に書き込まれ、かつ、取り付けられ得る。この情報は、例えば、タイミングモデルにおけるセルレベル属性として格納され得る。従って、タイミングモデル１６２４の格納されたバージョンは、タイミングデータおよびタイミングモデルに対応する関連付けられたアサーションデータを共に含む。モデルは、オリジナルアサーションの統合性をより精度良く保証する。アサーションは、モデルの一部になり、モデルが読み込まれるときに、自動的に適用される。
【００７１】
図１７は、アサーションを処理するためのプロセスの実施形態のフローチャートを示す。図１７０４において、特定のピンがアサーションに関連付けられるかどうか、決定される。そうである場合、次に、ピンは維持され、移動の適性から除去される（１７０６）。１７０８において、特定されたピンは、アサーションに関連付けられるので、モデルが書き込まれるとき、アサーションは、自動的にモデルに組み込まれる。１７１０において、通常モデル抽出プロセスが継続する。
【００７２】
図１８を参照し、アサーションが複数のブロックにかかるときの状況を考慮する。ブロック１８０２において第１のピンｉ１８０２／ａと共に２つのブロック１８０２および１８０４、ならびにブロック１８０４において第２のピンｉ１８０４／ｂが示される。アサーションは、「ｓｅｔ＿ｆａｌｓｅ＿ｐａｔｈ−ｆｒｏｍ  ｉ１８０２／ａ−ｔｏ  ｉ１８０４／ｂ」として存在すると仮定する。
【００７３】
この実施形態において、複数ブロックにわたって伸長されるアサーションは、それぞれのブロック内の関連付けられたピンの全てがタイミングモデル内で保持されるようにする。従って、ピンｉｌ８０２／ａおよびｉｌ８０４／ｂが、ブロック１８０２および１８０４のモデル抽出プロセスの間保持され得る。１つのブロックの複数のピンに関わる状況において、複数ブロックのアサーション関連のピンを保持するこのアプローチは、モデル抽出の間、タイミング挙動が適切に保存されることを確実にするために役立つ。アサーション情報は、抽出後、タイミングモデルに自動的に書き込まれる。あるアプローチにおいて、アサーションが１より多いブロックにまたがる場合、モデルが読み込まれた後、このようなアサーションに変更を加えないことがある。
【００７４】
（階層ピンアサーション）
回路内に見られるピンには少なくとも２つのタイプがあり得る。インスタンスピンおよび階層ピンがある。階層ピンは、階層境界を確立する。信号が階層ピンを交差する場合、ある階層から他の階層へと移動する。階層ピンは、境界交差情報のプレースホルダーであり、基礎となる物理的なピン表現を有さない。
【００７５】
アサーションは、インスタンスピンだけでなく、階層ピンにも関連付けられ得る。多くのタイミングツールについて、階層ピンはタイミンググラフが作られるときには現れないことがある。本発明のある実施形態において、アサーションが階層ピンと関連付けられる場合、タイミンググラフは、階層ピンの新たに作製された内部ピンを挿入するために変更され、アサーションはこれらの新たなピンの点から再表現される。このマッピングは、概して、異なるタイプのアサーションをサポートするために用いられる。スルーを保存するゼロ遅延アーク（すなわち、出力スルー＝入力スルー）は、これらの新たな「ダミー」は内部ピンに向かって、またはそこから伸長される。
【００７６】
図１９ａに示す例示的な回路を考える。図の矩形のそれぞれは、インスタンスを表す。インスタンス１９０２、１９０４、１９０６および１９０８が示されている。ピンは黒い点で表されている。インスタンスピン「ａ」、「ｂ」、「ｃ」、および「ｄ」が示されている。ピン「ｈ」は、階層ピンである。
【００７７】
この回路のタイミンググラフを図１９ｂに示す。ここで、階層ピン「ｈ」は、２つの遅延ａ−＞ｃおよびｄ−＞ｂを通じてアクセスされ得る。
【００７８】
ピン「ｈ」についてのスルーピンアサーションがある場合、以下のように考えられる。
【００７９】
ｓｅｔ＿ｆａｌｓｅ＿ｐａｔｈ−ｆｒｏｍ  ａ-ｔｈｒｏｕｇｈ  ｈ−ｔｏ  ｃ
抽出されたモデルにおいてこのアサーションを捕捉するため、２つの新たな内部ピンがモデルに導入される。これらの新たなピンは、「ダミー」内部ピンと考えることができる。この例において、ａ−＞ｂおよびａ−＞ｃ遅延がｄ−＞ｂおよびｄ−＞ｃ遅延とは異なるので、２つのピンが用いられる。新たな内部ピン「ｈ１」および「ｈ２」を用いて伸長されたタイミンググラフを、図１９ｃに示す。新たなピンｈ１およびｈ２が導入される場合、新たなアークａ−＞ｈ１およびｄ−＞ｈ２も導入される。この例において、ａ−＞ｈ１およびｄ−＞ｈ２は、ゼロ遅延アークを表すことに留意されたい。ｈ１−＞ｃおよびｈ２−＞ｂ遅延は、それぞれ、元のタイミンググラフにおけるａ−＞ｃおよびｄ−＞ｂ遅延と同じである。
【００８０】
ピン「ｈ」が２つのピン「ｈ１」および「ｈ２」に分割されるので、元のアサーションは以下のように変換される。
【００８１】
ｓｅｔ＿ｆａｌｓｅ＿ｐａｔｈ−ｆｒｏｍ  ａ-ｔｈｒｏｕｇｈ  ｈ１−ｔｏ  ｃ
ｓｅｔ＿ｆａｌｓｅ＿ｐａｔｈ−ｆｒｏｍ  ａ-ｔｈｒｏｕｇｈ  ｈ２−ｔｏ  ｃ
階層ピンアサーションのサポートに関わる２つのアクションは、１）タイミンググラフ伸長、および２）モデルアサーションライターである。
【００８２】
タイミンググラフ伸長は、タイミンググラフに新たな内部ピンを挿入して、階層ピンアサーションを正確に捕捉するプロセスのことを指す。これは、遅延アークの全てを通じて反復し、アサーションを有する階層ピンをサーチすることによって行われ得る。このような階層ピンが遅延アークにおいて見つけられる場合、タイミンググラフを伸長するために、貪欲な「見つけるか、なければ作製する」という戦略が用いられ得る。図１２は、このようなプロセスの擬似コードを示す。コードには、２つのマッピングテーブルがある。
【００８３】
１．「ｍａｐ＿ｔａｂｌｅ」は、階層ピンを１つより多い新たに作製された内部ピンにマッピングする（１対複数マッピング）。これは、モデルアサーションライターにおいて用いられる。
【００８４】
２．「ｖｉｓｉｔｅｄ」は、階層ピンを一番最近作製された内部ピンにマッピングする（１対１マッピング）。
【００８５】
図２０ａに示すタイミンググラフを考える。階層ピンは、遅延アークにおいて、括アークに入れられている。タイミンググラフ伸長後の新たなタイミンググラフは、図２０ｂに示すようなグラフになる。
【００８６】
この例のｍａｐ＿ｔａｂｌｅのコンテンツは、以下のとおりである。
【００８７】
ｈ１：ｈ１１，ｈ１２
ｈ２：ｈ２１，ｈ２２
ｈ３：ｈ３１，ｈ３２
モデルアサーションライターは、モデルデータを変換し、モデル内のピンに関連付けられたアサーション情報を書き込むメカニズムのことを指す。階層ピンアサーションがサポートされていない場合、アサーションライターは、所与の階層の全てを単純に横切り、全てのモジュールポートおよび全てのインスタンスピンにおいてアサーションを書き出す。ある実施形態において、クロック定義のようなグローバルアサーションは、例えば、ある特定の状況において、モデルの構築の間このようなアサーションが有限ループにつながり得るので、書き込まれない。また、ある実施形態において、電気的ポートアサーションが書き込まれる。
【００８８】
階層ピンアサーションの実現は、さらなるアサーションの作製だけでなく、ピンの名前の変化につながり得る。これらのアクションの両方は、タイミンググラフを伸張する以前のアクションからのマッピングテーブルを用いて行われ得る。例えば、コールバック機能は、アサーションを手に入れるために行われ得る方法と同様のこのアクションを行うと規定され得る。
【００８９】
ピン「ａ」が２つの内部ピン「ａ１」および「ａ２」に分割された階層ピンである以下のアサーションを考える。
【００９０】
ｓｅｔ＿ｆａｌｓｅ＿ｐａｔｈ−ｆｒｏｍ  ａ−ｔｏ  ｂ
アサーションライターは、このアサーションを以下のアサーションにマッピングする。
【００９１】
ｓｅｔ＿ｆａｌｓｅ＿ｐａｔｈ−ｆｒｏｍ  ａ１−ｔｏ  ｂ
ｓｅｔ＿ｆａｌｓｅ＿ｐａｔｈ−ｆｒｏｍ  ａ２−ｔｏ  ｂ
（ポートアサーション）
空間的な考慮がＩ／Ｏポートのアサーションに対して為され得る。しばしば、モデルに関連付けられたアサーションが、モデルが用いられる場合に自動的に手に入れられ、モデルが取り除かれるか、または、交換される場合に自動的に取り除かれることが所望される。ある特定の状況において、Ｉ／Ｏポートのアサーションは、取り除くプロセスを困難にする。このため、ある実施形態において、Ｉ／Ｏポートのアサーションは、以前のセクションの類似のグラフ伸長技術を用いて内部ピンに移動される。これによって、モデルが、入力および出力ポートに直接付けられたアサーションを有さないことを可能にし、モデルをより自己充足的にする。
【００９２】
入力ポートまたはｂｉｄｉ入力部分のアサーションについて、この入力ポート用に新たな「ダミー」内部ピンが作製され、この入力ポートアサーションがこのピンに転送される。新たな内部ピンは、入力ポートによって駆動される全てのピンを駆動し、ゼロ遅延アークを通じて入力ポートによって駆動される。また、入力ポートに関連付けられたチェックアークの全ては、ここで、新たな内部ピンに関連付けられている。
【００９３】
この伸長の一例が図２１ａに示されている。ここで、元のグラフ２１０２は、それぞれ、ピンｂおよびｃへのアーク２１０４および２１０６を有する入力ポートａを含む。ポートａに関連付けられたアサーションがあると仮定する。変更されたグラフ２１１０は、アーク２１０４および２１０６に関連付けられた、新たな内部ピン「ａ＿ＩＮ＿ＡＳＲＴ」を含む。ポートａに関連付けられていたアサーションは、ここで、ピンａ＿ＩＮ＿ＡＳＲＴに関連付けられる。ピンａからピンａ＿ＩＮ＿ＡＳＲＴに伸長する、新たなアーク２１１２が作製される。この新たなアークは、出力スルーが入力スルーと同じになるように、ゼロ遅延値を用いて作製される。
【００９４】
出力ポートまたは双方向出力部のアサーションは、同様に処理される。内部ピンは、出力ポートに供給する遅延アークがここで全て内部ピンに供給するように作製される。ポートにおける出力ロードへの依存性を保存するため、新たな内部ピンに入る遅延アークの全てについて、三次元テーブルが作製される。
【００９５】
図２１ｂに示す例を考える。元のタイミンググラフ２１５０は、ピンａからピンｃに伸長する遅延アーク２１５２と、ピンｂから出力ポートｃに伸長する遅延アーク２１５４とを有する。変更されたグラフ２１６０は、新たなピン「ｃ＿ＯＵＴ＿ＡＳＲＴ」を含む。「ｃ＿ＯＵＴ＿ＡＳＲＴ」は、ポーとアサーションが転送される新たな内部ピンである。新たなゼロ遅延アーク２１６２が、出力スルーが入力スルーと同じになるように、出力ポートｃへのピンｃ＿ＯＵＴ＿ＡＳＲＴから作製される。ピンａからピンｃ＿ＯＵＴ＿ＡＳＲＴへのアーク２１５２と、ピンｂからピンｃ＿ＯＵＴ＿ＡＳＲＴへのアーク２１５４とは、ポートｃにおけるロード依存性を捕捉するため、三次元遅延テーブルに関連付けられ得ることに留意されたい。
【図面の簡単な説明】
【００９６】
【図１】図１は、既存のブラックボックスモデリング方法を有する問題を示す。
【図２ａ】図２ａは、例示のタイミンググラフを示す。
【図２ｂ】図２ｂは、図２ａの回路に対する例示の遷移マトリクスを示す。
【図３ａ】図３ａは、モデル抽出をインプリメントするためのプロセスの実施形態のフローチャートを示す。
【図３ｂ】図３ｂは、グラフ縮小のための処理の実施形態のフローチャートを示す。
【図３ｃ】図３ｃは、モデル抽出のためのアーキテクチャの実施形態を示す。
【図４ａ】図４ａは、本発明の実施形態によるグラフ縮小をインプリメントするための擬似コードの例を示す。
【図４ｂ】図４ｂは、本発明の実施形態によるグラフ縮小をインプリメントするための擬似コードの例を示す。
【図４ｃ】図４ｃは、本発明の実施形態によるグラフ縮小をインプリメントするための擬似コードの例を示す。
【図５ａ】図５ａは、本発明の実施形態によるシリアルマージ（ｓマージ）操作を示す。
【図５ｂ】図５ｂは、本発明の実施形態によるシリアルマージ（ｓマージ）操作を示す。
【図６ａ】図６ａは、本発明の実施形態によるパラレルマージ（ｐマージ）操作を示す。
【図６ｂ】図６ｂは、本発明の実施形態によるパラレルマージ（ｐマージ）操作を示す。
【図７】図７は、ｐマージ操作が本発明の実施形態による重要なパスにおける変化を正確に反映することを示す。
【図８】図８は、本発明の実施形態による回路部分を縮小するためのプロセスを示す。
【図９】図９は、本発明の実施形態による前方ｓマージ操作を示す。
【図１０】図１０は、本発明の実施形態による後進ｓマージ操作を示す。
【図１１】図１１は、本発明の実施形態によるセルフループチェックの処理を示す。
【図１２】図１２は、本発明の実施形態による階層的ピンアサーションのハンドリングを示す。
【図１３】図１３は、チェックアークの特別な処理を必要とするタイミンググラフ部分を示す。
【図１４】図１４は、本発明の実施形態による２つのレジスタおよびラッチを有する回路上のグラフ縮小の例を示す。
【図１５】図１５は、モデル抽出のアサーションハンドリングへの１つのアプローチを示す。
【図１６】図１６は、本発明の実施形態におけるモデル抽出のためのアサーションハンドリングへの代替のアプローチを示す。
【図１７】図１７は、アサーションハンドリングのためのプロセスの実施形態のフローチャートを示す。
【図１８】図１８は、本発明の実施形態による複数のブロックを越えるアサーションをハンドリングするためのアプローチを示す。
【図１９ａ】図１９ａは、モデル抽出のための階層的ピンアサーションを指定するためのプロセスの実施形態を示す。
【図１９ｂ】図１９ｂは、モデル抽出のための階層的ピンアサーションを指定するためのプロセスの実施形態を示す。
【図１９ｃ】図１９ｃは、モデル抽出のための階層的ピンアサーションを指定するためのプロセスの実施形態を示す。
【図２０ａ】図２０ａは、モデル抽出のための階層的ピンアサーションを指定するためのプロセスの実施形態を示す。
【図２０ｂ】図２０ｂは、モデル抽出のための階層的ピンアサーションを指定するためのプロセスの実施形態を示す。
【図２１ａ】図２１ａは、入力または出力ポートにおけるアサーションを指定するためのプロセスの実施形態を示す。
【図２１ｂ】図２１ｂは、入力または出力ポートにおけるアサーションを指定するためのプロセスの実施形態を示す。
【図１】
2005512237.tif 000004
【図２ａ】
2005512237.tif 000005
【図２ｂ】
2005512237.tif 000006
【図３ａ】
2005512237.tif 000007
【図３ｂ】
2005512237.tif 000008
【図３ｃ】
2005512237.tif 000009
【図４ａ】
2005512237.tif 000010
【図４ｂ】
2005512237.tif 000011
【図４ｃ】
2005512237.tif 000012
【図５ａ】
2005512237.tif 000013
【図５ｂ】
2005512237.tif 000014
【図６ａ】
2005512237.tif 000015
【図６ｂ】
2005512237.tif 000016
【図７】
2005512237.tif 000017
【図８】
2005512237.tif 000018
【図９】
2005512237.tif 000019
【図１０】
2005512237.tif 000020
【図１１】
2005512237.tif 000021
【図１２】
2005512237.tif 000022
【図１３】
2005512237.tif 000023
【図１４】
2005512237.tif 000024
【図１５】
2005512237.tif 000025
【図１６】
2005512237.tif 000026
【図１７】
2005512237.tif 000027
【図１８】
2005512237.tif 000028
【図１９ａ】
2005512237.tif 000029
【図１９ｂ】
2005512237.tif 000030
【図１９ｃ】
2005512237.tif 000031
【図２０ａ】
2005512237.tif 000032
【図２０ｂ】
2005512237.tif 000033
【図２１ａ】
2005512237.tif 000034
【図２１ｂ】
2005512237.tif 000035
【手続補正書】
【提出日】平成16年9月3日(2004.9.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
タイミングモデル抽出のためのアサーションハンドリングをインプリメントする方法であって、
アサーションと関連付けられている位置を識別するステップと、
タイミングモデルを抽出するステップと、
該アサーションを該タイミングモデルに自動的に関連付けるステップと
を包含する、方法。
【請求項２】
前記位置を識別するステップは、ピンを識別するステップを含む、請求項１に記載の方法。
【請求項３】
前記アサーションは、前記タイミングモデルのピンを保持することによって保存される、請求項２に記載の方法。
【請求項４】
前記アサーションは、階層ピンに関連付けられた階層ピンアサーションを含む、請求項１に記載の方法。
【請求項５】
新たな内部ピンを作成するステップをさらに包含する、請求項４に記載の方法。
【請求項６】
アークを作成するステップであって、該アークは、該アークのソースから前記新たな内部ピンへと伸びる、ステップをさらに含む、請求項５に記載の方法。
【請求項７】
前記アークは、ゼロ遅延アークを含む、請求項６に記載の方法。
【請求項８】
前記アークは、スルー保存アークを含む、請求項６に記載の方法。
【請求項９】
前記階層ピンを前記新たな内部ピンにマッピングするステップをさらに包含する、請求項５に記載の方法。
【請求項１０】
前記新たな内部ピンは、前記タイミングモデルに保持される、請求項５に記載の方法。
【請求項１１】
前記アサーションは、ポートアサーションを含む、請求項１に記載の方法。
【請求項１２】
前記ポートアサーションは、入力ポート、出力ポート、または双方向ポートのいずれかに関連付けられている、請求項１１に記載の方法。
【請求項１３】
前記ポートアサーションに関連付けられている新たな内部ピンを作成するステップをさらに包含する、請求項１１に記載の方法。
【請求項１４】
前記新たな内部ピンに対してアークを作成するステップをさらに包含する、請求項１３に記載の方法。
【請求項１５】
前記新たな内部ピンは、前記タイミングモデルに保持される、請求項１３に記載の方法。
【請求項１６】
前記アサーションに関連付けられている情報は、前記タイミングモデルに格納される、請求項１に記載の方法。
【請求項１７】
前記アサーションに関連付けられている情報は、セルレベルの属性として前記タイミングモデルに格納される、請求項１に記載の方法。
【請求項１８】
請求項１〜１７のいずれか１つに記載の方法を実行するシステム。
【請求項１９】
格納された命令のセットを有するコンピュータプログラム製品であって、該格納された命令のセットを実行することによって、請求項１〜１７のいずれか１つに記載の方法が実行される、コンピュータプログラム製品。
【国際調査報告】
2005512237.tif 000036
2005512237.tif 000037
2005512237.tif 000038