(57)【要約】階層的に分解された集積回路設計におけるタイミングのバジェット方法が開示され、この方法は１）ブロックピンを通る少なくとも１つのパスを最適化し、最適化は前記少なくとも１つのパスに沿った全てのセルに対する利得の割当てを行い、２）少なくとも１つのパスでタイミング解析を行い、そのタイミングの解析は前記ブロックピンにおける信号の到着時間を生成するために割当てられた利得を使用し、３）前記ブロックピンにおける前記評価された到着時間を検査することによりタイミングバジェットを得ることを含んでいる。
2005517223.tif 000002
【特許請求の範囲】
【請求項１】
レジスタセルと組合わせ論理セルとを有し、トップレベルと複数のブロックに階層的に分解されている表示を有する集積回路設計の生成で使用されるタイミングのバジェット方法において、複数のブロックの少なくとも幾つかはさらに階層的に分解されることが可能であり、前記レジスタセルおよび組合わせ論理セルは少なくとも１つのセルピンを有し、前記ブロックは境界を有し、前記ブロック境界は少なくとも１つのブロックピンにより表されており、
ブロックピンを通る少なくとも１つのパスを最適化し、前記最適化において前記少なくとも１つのパスに沿った全ての前記セルでの利得の割当てを行い、
前記少なくとも１つのパスにおいてタイミング解析を行い、前記タイミング解析は前記ブロックピンにおける信号の到着時間を生成するために前記割当てられた利得を使用し、
前記ブロックピンにおける前記到着時間を検査することによりタイミングバジェットを得ることを含んでいる方法。
【請求項２】
ブロック間の長いネットのバッファをさらに含んでいる請求項１記載の方法。
【請求項３】
さらに、前記ブロックをクラスタへ区分する請求項１記載の方法。
【請求項４】
さらに、前記クラスタを位置付けする請求項３記載の方法。
【請求項５】
さらに、前記トップレベルおよび前記ブロックに含まれるセルの位置付けを含んでいる請求項４記載の方法。
【請求項６】
さらに、前記セルが位置付けされた場合に、前記セル間でルート設定をする請求項５記載の方法。
【請求項７】
前記最適化は、前記少なくとも１つのパスに沿ってスラックを配分するためのゼロスラックトリミングを含んでいる請求項１記載の方法。
【請求項８】
前記ゼロスラックトリミングは、
前記割当てられた利得を正規値へ設定し、
これらの割当てられた利得に基づいて各セルのスラック値を得ることを含んでいる請求項７記載の方法。
【請求項９】
ほぼゼロ値のある許容度を超えて発散するスラック値を有するセルの前記割当てられた利得を調節し、
前記セルがある許容度内のスラック値を有するまで、またはセルの割当てられた利得がそれらの限度に到達するまで、獲得およびほぼゼロへの調節を反復することをさらに含んでいる請求項８記載の方法。
【請求項１０】
調節は、
得られたスラック値が負であるセルの割当てられた利得を減少させ、
得られたスラック値が正であるセルの割当てられた利得を増加させることを含んでいる請求項９記載の方法。
【請求項１１】
割当てられた利得が調節される量は、得られたスラック値の大きさに比例している請求項１０記載の方法。
【請求項１２】
割当てられた利得が調節される量は、セルを通る臨界的なパスの長さにさらに関連される請求項１１記載の方法。
【請求項１３】
前記トリミングはワイヤ遅延の影響の考慮を含んでいる請求項７記載の方法。
【請求項１４】
前記トリミングに先行して再マップ、アーキテクチャ選択およびスピードアップ再構成を含む構造の最適化の少なくとも１つのステップが行われる請求項７記載の方法。
【請求項１５】
前記ブロックピンの前記タイミングバジェットはブロック入力における前記タイミング解析到着時間とブロック出力における必要とされる時間から保存することにより得られる請求項１記載の方法。
【請求項１６】
前記入力到着時間と出力の必要とされる時間は前記タイミングバジェットに基準クロックの定義を含むことにより考慮される請求項１５記載の方法。
【請求項１７】
前記タイミングバジェットはユーザに特定された定数、得られた定数、限定およびマージンを表す制約の少なくとも１つを含んでいる請求項１記載の方法。
【請求項１８】
前記タイミングバジェットはまたパス例外を含んでいる請求項１記載の方法。
【請求項１９】
パス例外は誤ったパス、マルチサイクルパス、特定された遅延限界を有するように制約されたパスを含んでいる請求項１８記載の方法。
【請求項２０】
前記ブロックの外部のピンを指すパス例外は外部ピンまたはピンのグループに特有に対応するマークを指すように変形される請求項１９記載の方法。
【請求項２１】
別々の到着時間はブロック入力のファンインセットのピンに対応できるマークの各可能な組合わせに対して各ブロック境界で特定される請求項２０記載の方法。
【請求項２２】
別々の必要とされる時間はブロック出力のファンインセットのピンに対応できるマークの各可能な組合わせに対して各ブロック出力で特定される請求項２０記載の方法。
【請求項２３】
さらに、設計に関する入力のセットを読込む請求項１記載の方法。
【請求項２４】
最適化は、
前記ブロックの抽象化を随意的にマークし、
スーパーセルを生成するために入力の前記セットを処理することを含んでいる請求項２３記載の方法。
【請求項２５】
入力の前記セットは初期ネットリスト、セルライブラリの記述、使用されるプロセス技術の記述、トップレベルのネットリストのタイミング制約の少なくとも１つを含んでいる請求項２３記載の方法。
【請求項２６】
レジスタセルと組合わせ論理セルとを有し、トップレベルと複数のブロックに階層的に分解されている表示を有する集積回路設計の生成で使用されるタイミングのバジェット方法を行うための命令を記憶しているコンピュータの読取り可能な媒体を具備しているアーティクルにおいて、複数の前記ブロックの少なくとも幾つかはさらに階層的に分解されることが可能であり、前記レジスタセルおよび組合わせ論理セルは少なくとも１つのセルピンを有し、前記ブロックは境界を有し、前記ブロック境界は少なくとも１つのブロックピンにより表され、前記命令はそれが実行されるとき、
ブロックピンを通る少なくとも１つのパスを最適化し、前記最適化は前記少なくとも１つのパスに沿った全ての前記セルでの利得の割当てを行い、
前記少なくとも１つのパスでタイミング解析を行い、前記タイミング解析は前記ブロックピンにおける信号の到着時間を生成するために前記割当てられた利得を使用し、
前記ブロックピンにおける前記評価された到着時間を検査することによりタイミングバジェットを得るアーティクル。
【請求項２７】
さらに、ブロック間の長いネットをバッファする請求項２６記載のアーティクル。
【請求項２８】
さらに、前記ブロックをクラスタへ区分する請求項２６記載のアーティクル。
【請求項２９】
さらに、存在するならば、前記クラスタを位置付けする請求項２８記載のアーティクル。
【請求項３０】
さらに、前記トップレベルおよび前記ブロックに含まれるセルの位置付けをする請求項２９記載のアーティクル。
【請求項３１】
さらに、前記セルが位置付けられた場合には、前記セル間でルート設計をすることをさらに含んでいる請求項３０記載のアーティクル。
【請求項３２】
前記最適化は前記少なくとも１つのパスに沿ってスラックを配分するためにゼロスラックトリミングを含んでいる請求項２６記載のアーティクル。
【請求項３３】
前記ゼロスラックトリミングは、
前記割当てられた利得を正規値へ設定し、
これらの割当てられた利得に基づいて各セルのスラック値を得ることを含んでいる請求項３２記載のアーティクル。
【請求項３４】
ほぼゼロ値のある許容度を超えて発散するスラック値を有するセルの前記割当てられた利得を調節し、
前記全てのセルがある許容度内のスラック値を有するまで、またはセルの割当てられた利得がそれらの限度に到達するまで、獲得およびほぼゼロへの調節を反復することをさらに含んでいる請求項３３記載のアーティクル。
【請求項３５】
調節は、
得られたスラック値が負であるセルの割当てられた利得を減少させ、
得られたスラック値が正であるセルの割当てられた利得を増加させることを含んでいる請求項３４記載のアーティクル。
【請求項３６】
割当てられた利得が調節される量は、得られたスラック値の大きさに比例している請求項３５記載のアーティクル。
【請求項３７】
割当てられた利得が調節される量は、セルを通る臨界的なパスの長さにさらに関連される請求項３６記載のアーティクル。
【請求項３８】
前記トリミングはワイヤ遅延の影響を考慮している請求項３２記載のアーティクル。
【請求項３９】
前記トリミングに先行して、再マップ、アーキテクチャ選択およびスピードアップ再構成を含む構造の最適化の少なくとも１つのステップが行われる請求項３２記載のアーティクル。
【請求項４０】
前記ブロックピンの前記タイミングバジェットはブロック入力における前記タイミング解析到着時間とブロック出力における必要とされる時間から保存することにより得られる請求項１記載のアーティクル。
【請求項４１】
前記入力到着時間と出力の必要とされる時間は前記タイミングバジェットに基準クロックの定義を含むことにより考慮される請求項４０記載のアーティクル。
【請求項４２】
前記タイミングバジェットはユーザに特定された定数、得られた定数、限定およびマージンを表す制約の少なくとも１つを含んでいる請求項２６記載のアーティクル。
【請求項４３】
前記タイミングバジェットはまたパス例外を含んでいる請求項２６記載のアーティクル。
【請求項４４】
パス例外は誤ったパス、マルチサイクルパス、特定された遅延限界を有するように制約されたパスを含んでいる請求項４３記載のアーティクル。
【請求項４５】
モジュールの外部のピンを指すパス例外は外部ピンまたはピンのグループに特有に対応するマークを指すように変形される請求項４４記載のアーティクル。
【請求項４６】
別々の到着時間はモジュール入力のファンインセットのピンに対応できるマークの各可能な組合わせに対して各モジュール入力で特定される請求項４５記載のアーティクル。
【請求項４７】
別々の必要とされる時間はモジュール出力のファンインセットのピンに対応できるマークの各可能な組合わせに対して各モジュール出力で特定される請求項４５記載のアーティクル。
【請求項４８】
さらに、設計に関する入力のセットを読込む請求項２６記載のアーティクル。
【請求項４９】
最適化は、
前記ブロックの抽象化を随意的にマークし、
スーパーセルを生成するために入力の前記セットを処理することを含んでいる請求項２６記載のアーティクル。
【請求項５０】
入力の前記セットは初期ネットリスト、セルライブラリの記述、使用されるプロセス技術の記述、トップレベルのネットリストのタイミング制約の少なくとも１つを含んでいる請求項４９記載のアーティクル。
【請求項５１】
前記ブロックは１以上の抽象化により表されることができる請求項１記載の方法。
【請求項５２】
前記ブロックは１以上の抽象化により表されることができる請求項２６記載のアーティクル。
【請求項５３】
前記最適化はブロック境界を横切る全てのパス間で同時的な方法で実行される請求項１記載の方法。
【請求項５４】
前記最適化はブロック境界を横切る全てのパス間で同時的な方法で実行される請求項２６記載のアーティクル。
【発明の詳細な説明】
【技術分野】
【０００１】
電子コンピュータエイド設計（ＥＣＡＤ）ソフトウェアシステムでは、集積回路設計仕様および構成データはデータベース記録のセットとして記憶されなければならず、これらの記録はソフトウェアが動作しているコンピュータの仮想メモリ容量に基づいて幾つかの有限の最大寸法を有する。さらに、ＥＣＡＤソフトウェアの実行時間は通常設計の寸法と共に増加する。非常に大きい集積回路設計を表すためのデータは非常に大きいためコンピュータのメモリに適合できず、または設計全体を設計またはシミュレートするのに必要な実行時間は不可能である。これは特に多数のコンポーネント（即ちゲート）および集積回路内の付随する接続が千万または一億以上であるときに不可能である。
【背景技術】
【０００２】
階層的な分解または“区画化”は設計を完成するのに必要なメモリおよび／または実行時間が管理可能な状態であるように、大きい集積回路設計仕様の複雑性を減少するために使用される技術である。設計を単一のフラットなデータベースとして表す代わりに、設計は“ブロック”と呼ばれるピースに区分され、独立して設計され、確認されることができる。階層の所定の単一レベルでは、設計仕様は１セットのブロックおよびこれらのブロック間のトップレベルの相互接続からなる。階層の多数のレベルでは、ブロックはそれら自体、さらに小さいサブブロックおよびそれらの相互接続からなる。
【０００３】
階層的な分解はまた幾つかの設計者間の設計プロジェクトを区分する方法として設計チームにより単に組織的ツールとしても使用される。しかしながら設計仕様における設計チームにより生成されたこの論理的な階層は実行のために設計を区分するのに使用される物理的階層と同一である必要はない。しばしば論理的階層は物理的階層よりも非常に深い。ブロックの平坦化プロセスは論理的階層を適切な物理的階層へ変換することに使用される。
【０００４】
通常の階層設計プロジェクトは典型的に２つの主なステップ、即ちトップダウンブロック計画ステップとそれに後続するボトムアップ確認ステップで進行する。ブロック自体がトップダウン相中に構成される（即ち各ブロックがその子供の前に構成される）ならば、フローはトップダウンフローと呼ばれる。反対に、ブロックがボトムアップ相中に構成される（即ち各ブロックがその全ての子供が完成した後に構成される）ならば、フローはボトムアップフローと呼ばれる。トップダウンおよびボトムアップフローはそれぞれ利点と欠点を有する。一般性を失うことなく、トップダウンフローをこの明細書の残りの部分で１例として使用する。ボトムアップフローは同一の技術を使用して実行することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
図１は典型的なトップダウンブロック計画および構成のフローを示している。論理的階層を物理的階層へマップするために設計ネットリストの区画化で開始し、構成されるようにトップレベルのブロックとサブブロックのセットとを規定する（ステップ110 ）。各サブブロックはその後、幅および高さ値ならびにフロアプランにおける位置を割当てられる（ステップ115 ）。位置はその後各サブブロック上のピンに割当てられ、これはネットがサブブロック境界を横切る位置を表している（ステップ120 ）。これに時間バジェットステップが続き、サブブロック境界を横切るタイミングパスに割当てられるクロックサイクル部分を示す（ステップ135 ）。
【０００６】
トップダウンフローのこの点で、トップレベルのブロックが計画された後、プロセスはブロックを実行する準備をされる。ブロックが所有する全てのリーフセル（標準的なセルおよびマクロ）は配置を割当てられ、ブロックが所有している全てのネットはルートされる（ステップ140 ）。任意のネットがサブブロック（いわゆる“フィードスルーネット”）にわたってルートされるならば、これらのワイヤはオーバーラップするサブブロックにプッシュダウンされ、新しいピンはワイヤがサブブロック境界を横切るサブブロックで生成される（ステップ145 ）。その後反復的に同じプロセスにしたがってサブブロックを構成する（ステップ150 ）。これは各サブブロックをトップレベルブロックとして扱いながらステップ110 から170 を反復的に実行することを含んでいる。
【０００７】
形状、ピン位置、各ブロックに割当てられたタイミングバジェットを適切に完成するための前述のプロセス（ステップ115 からステップ135 ）では実現可能な制約を表さなければならない。そうでなければ、システムはそれらの仕様にしたがって幾つかのブロックの構成を完成できない。このような場合、仕様は正確にされる必要があり、トップダウンプロセスは正確な構成が実現されることができる前に反復される必要がある。このような反復的な正確化は時間を浪費し、避けなければならない。したがって、これらのステップで高品質の結果を実現する方法は臨界的に重要である。
【０００８】
反復的なトップダウン計画および構成ステップが完了されたとき、ボトムアップ確認プロセスは開始できる。最低レベルのブロックからトップレベルへ進行し、各ブロックは論理の正確さと、そのタイミングおよび電気的性能を独立して解析され、その仕様に対して比較される（ステップ155 ）。ブロックの全てのサブブロックが独立して確認された後、ブロック自体がサブブロックが正確であるという仮定の下で解析されることができる（ステップ170 ）。
【０００９】
個々のモジュールで動作するため、設計者またはソフトウェアツールはそのモジュールが動作しなければならない環境の表示を必要とする。これはモジュールが位置づけられる空間の物理的形状、その入力および出力ピンの位置、パワーおよび他の重要な信号の伝送情報、動作状態（温度および電圧）、モジュールの製造に使用されるプロセスの予測される詳細、モジュールとその環境間のインターフェースのタイミング特性を含んでいる。この方法の焦点はタイミング特性の表示を提供することである。この表示は他のモジュールまたはトップレベルのネットリストが完了される前に生成されなければならないことにより、問題は複雑になる。その結果、設計に使用されるタイミング特性は最終的な製品のタイミング特性に近くなければならない。
【００１０】
このタイミング特性のセットはモジュールの“タイミングバジェット”と呼ばれる。良好なタイミングバジェットは次の特性、完成度、バランス、実現能力をもたなればならない。
【００１１】
完成度はブロック境界でのバジェットの特性を示している。完全なタイミングバジェットはモジュールの全体的な関連する文脈を説明している。これは（双方向ピンを含む）全ての入力ピンの信号到着時間の制約、（双方向ピンを含む）全ての出力ピンの信号が必要とする時間制約を含むべきである。これは設計内で生成されまたはモジュール出力で与えられるタイミング制約の基準として使用される設計の入力として与えられる全てのクロックの説明を含まなければならない。信号転移時間の全般的な限定（即ちスリュー限界）等、モジュール内で満足されなければならない任意の他の特別な制約も含むべきである。モジュールのタイミングバジェットが完全ではないとき、モジュールはその文脈内で十分に設計されることができず、最終的な設計はバジェットから省かれた違反された制約に関連するエラーを含む可能性がある。これはタイミングバジェットに対する最小の要件である。
【００１２】
次に、トップレベルの設計の適切な集積では、タイミングバジェットのセットは平衡されなければならない。バランスはバジェット、トップレベルのタイミング、設計の他のバジェット間の関係を説明している。平衡されたタイミングバジェットは全てのモジュールのタイミング制約が満たされたならばトップレベルのタイミング制約もまた満たされることを保証する。タイミングバジェットが平衡されないとき、設計者はトップレベルの集積中に現れる問題を解決するために最終的な設計を再動作することを強制される。この再動作は設計プロセスで非常に遅い時期にしばしば生じ、劇的で困難な変化を必要とする。平衡されたタイミングバジェットを発生することに対する失敗は設計の規律の欠如として見られ、設計方法におけるタイミングの閉鎖（closure ）を遅延している。
【００１３】
完成度とバランスの要求は実現能力を時間バジェット問題の最も挑戦的な局面にしている。実現能力はタイミングバジェットと、それが与えられるブロックとの関係に関する。バランスと完成度を維持しながら実現可能なバジェットを生成することは困難である。迅速な設計閉鎖を実現するために、設計者または設計ツールが各モジュールに対して特定されるタイミング制約に合致する能力を有することは重要である。モジュールのタイミングバジェットが実現可能ではないとき、設計者はバジェットの反復的な実行および再交渉の困難なサイクルを強制される。各反復はトップレベルのネットリストのタイミング要求と、設計の他のモジュールおよび設計されるモジュールの構成で見られる困難との衝突を解決しようと試みる。実現能力を測定する能力がないことが今日、設計チームが直面する最大の問題であり、現代の設計方法で経験するタイミングの閉鎖（closure ）の実現に対する失敗の最大の要因である。
【００１４】
必要とされる完成度、バランス、実現能力に良好にしたがうがリソース−使用に好都合の方法でそれを行うタイミングバジェット策を提供する必要がある。
【課題を解決するための手段】
【００１５】
集積回路設計の生成で使用されるタイミングのバジェット方法を開示する。この回路設計はレジスタセルと組合わせ論理セルとを有し、トップレベルと複数のブロックに階層的に分解されている表示を有する。複数のブロックの少なくとも幾つかはさらに階層的に分解されることができる。レジスタセルおよび組合わせ論理セルは少なくとも１つのセルピンを有する。ブロックは境界を有し、これらのブロック境界は少なくとも１つのブロックピンにより表される。本発明の方法は、
１）ブロックピンを通る少なくとも１つのパスを最適化し、最適化はそのパスに沿った全てのセルでの利得の割当てを行い、
２）そのパスでタイミング解析を行い、タイミングの解析はそのブロックピンにおける信号の到着時間を生成するために割当てられた利得を使用し、
３）ブロックピンにおける評価された到着時間を検査することによりタイミングバジェットを得ることを含んでいる。タイミング解析は幾つかの実施形態で実行され、スラックがゼロのある許容度に集中するまでセルの利得を調節するゼロスラックタイミングアルゴリズムがそれに続いて行われる。
【発明を実施するための最良の形態】
【００１６】
本発明のこれらおよび他の目的、特徴、利点は添付図面を伴った以下の詳細な説明により良好に理解されるであろう。  
トップダウン階層設計プロセスを実行する１方法は図２で示され説明されている階層設計フローである。図２で示されている設計フローは図１で示されているトップダウンフローの洗練化であり、３つの付加的なステップ230 、260 、265 を有する。洗練化はトップダウンバジェットおよびブロック構成ステップおよびボトムアップ確認ステップ中での、親および子孫ブロックの文脈でサブブロックをモデル化する方法に関する。これらのステップは公正な階層境界が違反され、クロス境界解析が必要とされるフローにおける位置を表す。このクロス境界解析を管理する効率的な技術なしには、階層設計プロセスの主要な利点、即ち大きい集積回路の設計に必要なメモリと実行時間を減少する能力は失われる。
【００１７】
トップダウンバジェットステップ中の１つの目的は、１以上の階層境界を交差する組合わせ論理パス（レジスタ（ラッチおよび／またはフリップフロップ）間の組合わせ論理ゲート）を解析し、そのパスの各セグメントでバジェットされるべきクロックサイクル部分を決定することである。
【００１８】
トップダウンブロック構成ステップ中、そのサブブロックが構成される前にブロックは配置され、ルートされる。多くの場合、位置付けとルーティングは階層境界を横切って公正に分断される。しかしながら、多くの新しい製造プロセスは階層境界の両側に存在するルーティングワイヤの詳細な知識を必要とする“アンテナルール”と呼ばれるルールのセットにしたがうためにルーティングワイヤを必要とする。
【００１９】
ボトムアップ確認プロセス中、階層境界を横切る組合わせ論理パスを解析する必要もある。サブブロックを含んだブロックを解析するとき、サブブロックは予め確認されていることを利用し、それらの親を解析しながらサブブロックを再度解析する必要をなくすことが望ましい。
【００２０】
これを行うために、本発明の幾つかの実施形態はその親ブロックとその子孫ブロックとのインターフェースが正確に解析される程度に十分詳細にブロックの構造と性質を捕捉するブロック“抽象化”と呼ばれる減少されたモデルの使用を開示する。抽象化の目標は階層の先祖へのブロックを表すのに必要なメモリの量を減少し、その親および子孫ブロックの文脈でブロックの各インスタンスを解析するのに必要な実行時間量を減少することである。
【００２１】
前述したように、これに関して図１の階層設計フローは付加的なステップ230 、260 、265 により補足され強化されている。ステップ230 では、時間バジェットステップ前に、各サブブロックの抽象化はバジェット中に使用されるために生成される。サブブロックはまだ構成されていないので、物理的構成データを含んでおらず、ネットリストの説明だけを含んでいる。それ故、バジェット中に使用される抽象化はサブブロックのみの論理的性質をモデル化することを意図され、物理的および電気的性質の詳細はまだ利用可能ではない。この初期的な抽象化はバジェット中に使用され、その後、破棄される。
【００２２】
トップダウンブロック構成フローとボトムアップブロック構成フローとの１つの主な差は、前者ではブロックはその子供の前に構成され、後者ではブロックはその子供の後に構成されることである。図２の階層構成フローはブロック265 と270 との間にブロック240 と245 を位置するように変更されている。主な影響は、トップダウンフローではトップレベルのブロックはその子供の構成が完成される前に構成されることである。それ故、本発明はそれらの親を構成している期間中、理想化された最適ターゲットとしてサブブロックバジェットを使用する。他方で、ボトムアップフローではブロックはその親または子孫のブロックの構成が知られる前に構成されなければならない。それ故、理想化された最適化ターゲットとしてそのタイミングバジェットを使用しなければならない。
【００２３】
設計プロセスはさらに2002年６月10日出願の米国特許出願明細書（発明の名称“Representing the Design of a Sub-module in a Hierarchical Integrated Circuit Design and Analysis System ”（参照番号054355-0193259））に詳細に記載されている。全体的な設計プロセスで１つの臨界的なステップは時間バジェットである（ステップ235 に概要が示されている）。
【００２４】
図３は前述のブロックまたはブロックの抽象化を生成する階層システムで使用されることのできる時間バジェット方法を示している。ここで説明する時間バジェット方法が使用されることができ、ここではブロックは階層的に分解されることが可能でありながら、抽象化されていない。規定により、“セル”はここではラッチまたはフリップフロップ等の“レジスタ”セル、またはＡＮＤゲート、ＯＲゲート、その他の非メモリ回路コンポーネント等の“組合わせ論理”セルを意味する。各セルは入力“ピン”と出力“ピン”を有する。この文脈のピンは実際のピンおよび／またはワイヤ等の相互接続を表す方法を指している。“トップレベル”はそれ自体以外のブロックにより含まれない集積回路設計の部分を指している。トップレベルおよびブロックの両者はそれらの中に含まれるセルを有する。さらに、各ブロックは前述したように、論理または物理的或いはその両者である“境界”を有する。
【００２５】
時間バジェットは本発明の１実施形態では、第１にステップ310 にしたがって、トップレベルのレジスタセルと、ブロックおよび／またはブロックの抽象化のレジスタセルとの間のパスを最適化する。次にステップ312 にしたがって、随意選択的にブロックをクラスタへ区分する。また随意選択的に、ステップ312 が実行されてもされなくても、ステップ314 にしたがって（存在するならば）クラスタまたは設計内のセルの位置付けを行う。次に、ステップ316 で、配置されたセル間のルーティングを随意選択的に行う。このルーティングはしばしばグローバルルーティングと呼ばれる。その後、ブロック320 にしたがって、随意的にブロック間の長いネットをバッファする。次にトップレベルと、ブロック（および／または抽象化）のタイミング解析が実行され（ブロック330 ）、到着時間を生成する。本発明の１つの主な特徴は、タイミング解析がセルの利得に基づいていることである。結果として、時間バジェットはゼロスラックを実現するために（利得を使用して）遅延を割当て、ブロック境界のピンでの到着時間を検査することにより得られる（ブロック340 ）。
【００２６】
前述の時間バジェット方法は幾つかのコンポーネントを共通のプラットフォームへ集積することにより実行されることができる。これらは以下のことを含んでいる。  
（１）タイミング解析エンジン。タイミングエンジンは階層設計記述の段階的増加のタイミング解析をサポートし、種々の遅延モジュールを一体化する。  
（２）利得の関数としてのセル遅延の特徴のエンジンおよび方法。等化論理機能を有するセルのファミリは共にグループ化され、それらの利得の関数としてそれらのセルの遅延を表すために特徴付けされ、これはセルがその入力キャパシタンスへ駆動するキャパシタンスの比率に比例するように規定された量である。利得は最適であると考えられるローディングに遅延１．０が対応するように正規化される。この特徴では、セルの遅延はそれらのロードと独立している。これは特別なセルサイズまたはワイヤキャパシタンス情報がタイミング解析を実行する必要がないことを示している。これはサイズ決定を後の設計プロセスまで延期することを可能にし、また設計の実現能力の測定に使用されることができる重要な計量を与える。  
（３）“トリミング”と呼ばれる利得ベースのゼロスラックプロセス。トリミングアルゴリズムは論理労力の理論から引出され、これはそのパスに沿ったセルの利得が等しいときにパスの最適な性能が得られることを述べている。ゼロスラック策を得るために、トリミングアルゴリズムはスムースに増加し、タイミング解析エンジンにより与えられる局部的なスラック情報に応答して利得を減少する。  
（４）選択的なクラスタリングプロセス。セルは随意選択的にグループ化され、全般的な位置付けを促進するためにクラスタに位置される。  
（５）随意選択的な粗セルプレイサ。このプレイサは近似的なセルサイズが最小のオーバーラップで位置付けを発生するために使用されることを可能にするために前述の各コンポーネントからの情報を含ませる。初期の位置が利用可能になるとすぐに、この位置の効果を含んでいるタイミング解析エンジンはワイヤキャパシタンス、抵抗、ピン間のマンハッタン距離に基づく遅延を使用することにより開始する。  
（６）随意選択的な粗ルーティングツール。位置をトップレベル設計のワイヤに割当てるために先のコンポーネントのそれぞれからの誘導を集積する。含まれるならば、全般的なルーティングトポロジに基づいたワイヤモデルがタイミングエンジンにより実行される解析へ含まれることを可能にする。
【００２７】
入力に対しては、図３の時間バジェットプロセスは以下のことを必要とする。  
（１）初期のネットリスト。このネットリストは所望の階層設計構造に対応して階層的に区画されるべきである。階層の各ブロックは好ましくはネットリストによりまたは代わりに標準的なセルライブラリの記述で見られるような予め特徴付けされたブロックの形態で表されなければならない。両者の表示はブロックの最終的な特徴の単なる評価である。典型的な階層設計は２レベルの階層で構成されるが、その方法が任意の複数のレベルによる設計に適用されることができることに注意することが重要である。  
（２）セルライブラリの記述。これは各セルにより実行される論理機能の記述を含んでおり、それによってセルは等しい入力、出力、機能を有するセルのクラスにグループ化されることができる。セルライブラリ記述はまたそれが駆動するロードキャパシタンスの機能およびセルの入力での信号転移時間等の他の随意的なパラメータとして各セルの遅延の計算を可能にする情報を含むべきである。  
（３）ＶＬＳＩ設計技術等のプロセス技術の記述。主にこれはワイヤキャパシタンスおよび抵抗がワイヤの長さおよびルーティング層の関数として計算されることを可能にするのに十分な情報を含むべきである。  
（４）トップレベルのネットリストのタイミング制約。これらはタイミング解析の任意の正常なルール、信号転移時間のようなタイミング解析により計算される量についての限定またはその他の制限を除いて、設計、トップレベル入力および出力信号タイミング制約で使用される任意のクロックの定義を含んでいる。
【００２８】
図４は本発明の１以上の実施形態にしたがった時間バジェットプロセスを表している。最初に、ステップ410 にしたがって、全ての入力は読込まれる。これはライブラリ記述、階層ネットリスト、トップレベルのタイミング制約の読込みを含んでいる。ライブラリはライブラリ中の利用可能なセル、各セルの機能、各セルの遅延および出力信号転移時間の計算に使用されることができる情報を与えるテキストフォーマットで表されてもよい。ネットリストはハードウェア記述言語（例えばVerilog ）で表されてもよい。次に、ブロックネットリストの減少された記述が所望であるならば（ステップ415 でチェックされる）、ブロックは境界のタイミングに影響しないそれぞれのネットリストのコンポーネントを除去することにより減少される（ステップ420 ）。このようなステップは設計を処理するのに必要とされるリソース量を減少する。
【００２９】
本発明の１特徴にしたがって、次のステップは“スーパーセル”を生成するためにライブラリを処理する（ブロック425 ）。“スーパーセル”は共通のピンと機能を有するゲートのファミリを指す。このファミリは異なる入力キャパシタンスと出力駆動強度を有する広範囲の装置サイズを含んでいることが理想的である。スーパーセルの遅延はその利得および利用可能であるならばスーパーセルの入力転移時間の関数として特徴付けられる。解析を容易にするために、遅延は“良好な”利得として利得１．０を考慮することを可能にするスケールされた利得の関数として特徴付けられる。この１の利得は約４の“典型的な”ファンアウトを駆動するインバータの利得にゆるやかに関連する。遅延は利得によりほぼ線形に変化し、利得が増加するとき増加し、利得が減少するとき低下する。
【００３０】
クラスタリング、位置付けまたはルーティングの任意の１以上のものが所望／必要とされるならば（ステップ430 でチェックされる）、これらの随意的なルーチンが実行される（ステップ435 ）。クラスタリングは位置されるオブジェクトの数を減少し、これは全般的な位置付けステップの性能を改良できる。位置付けは全てのセルに対する初期位置を与える。セルがクラスタの一部として位置付けられたならば、その位置はクラスタ位置から取られる。この全般的な位置付けは“事実上平坦に”行われるべきであり、階層的境界を無視する。全般的なルーティングはワイヤモデルの正確性を増加する。
【００３１】
次に、利得はトップレベルのタイミング制約が満たされるまで調節される（ステップ440 ）。利得は図５に関して以下説明する強化されたゼロスラックトリミングアルゴリズムを使用して調節されることができる。また本発明の幾つかの実施形態によれば、これらの利得は達成度を測定するためにチェックされることができる（ステップ445 ）。本発明の１実施形態の実行では、１つの状態として、０．２よりも小さい利得はなく、多くの状態ではより厳密な境界がさらに適切である。通常、達成度は設計におけるセルの利得プロフィールの関数として測定され、１．０よりも少ない利得を有するセルの割合が２．５％を超えて増加するとき、設計の集中を実現することが益々困難になることを示し、全てのセルが１．０よりも大きい利得を有するとき、設計の成功が事実上保証されることに注意する設計実験を観察する。
【００３２】
［ゼロスラックベースの解析］  
バジェットを発生するための最も好ましいタイミング解析結果は設計の全てのスラックがゼロであるような結果である。スラックはタイミング制約が満足される度合を測定する。正のスラックは制約がスラック値に等しい安全マージンで満足されることを示している。スラックは回路が高速度で動作されるか少ない領域またはパワーを使用して同一速度で動作するかのいずれかのように再設計されることを示すので、正のスラックを有する回路は通常、過剰設計されていると考えられる。回路の遅延がスラック量により変更されないならば、負のスラックは制約が満たされておらず満足できないことを示している。理想的には、ゼロスラックは制約がエラーに対するマージンなく、不必要にリソースを浪費せずに丁度満足されていることを示している。しかしながら、全てのタイミング制約が丁度ゼロのスラックを有する回路を見つけることは稀である。設計の最も臨界的なパスがゼロのスラックを有するときでさえも、ほとんどの残りのパスは大きいマージンにより正であるスラックを有する。
【００３３】
種々の実施形態において本発明はパスに沿ってスラックを配分するための優秀なゼロスラックアルゴリズムを使用する。ゼロスラックアルゴリズムは典型的にバジェットされた遅延に基づいた回路のスラックがゼロになるまで個々のゲートおよびワイヤに対する遅延バジェットを増加または減少させることにより動作する。多くの異なる通常のゼロスラックアルゴリズムが流行し、これらはしばしばゲート遅延を変更するための最良の方法を得るためにアルゴリズム設計者による試行錯誤に基づいた特別の発見的アルゴリズムである。優秀なゼロスラックアルゴリズムの詳細は図５を参照して与えられ、以下説明する。
【００３４】
図５は本発明の１以上の実施形態にしたがったゼロスラック“トリミング”アルゴリズムを示している。最初に、全ての利得は公称値に設定される（ブロック510 ）。次に、静的タイミング解析を使用して各セルのスラックを得る（ブロック520 ）。方法は任意の得られたスラックがゼロではないか否かをチェックする（ブロック525 ）（この文脈のゼロではないはゼロを超えるある許容限度よりも大きいことを意味している）。イエスであるならば、ゼロではないスラックを有するセルの利得は調節される（ブロック530 ）（実現可能な限度内）。この方法で利得を調節した後、フロー制御はブロック520 へ戻り、静的タイミング解析は再度各セルのスラックを得るために使用される。このタイミング解析は段階的であるが、幾つかのセルのみの利得が変化するときでさえも多数のセルのスラックは影響される可能性があることに注意する。トリミングアルゴリズムについて以下さらに詳細に説明する。
【００３５】
トリミングアルゴリズムはスーパーセルのネットワークに作用する。各スーパーセルはゲートのファミリ（２入力ＡＮＤゲート等）の遅延を表している。スーパーセルの遅延はその利得の関数であり、出力キャパシタンス対ゲート入力キャパシタンスの比を決定する。スーパーセルの利得の増加はその遅延を増加し、利得の減少は遅延を減少する。
【００３６】
トリミングアルゴリズムは回路の全てのスラックがゼロになるか、変更される全てのゲートが最大または最小の許容可能な利得になるまでゲートの駆動強度を調節する。公称利得値に初期化された全てのスーパーセルで開始する（ブロック510 ）。その後、静的タイミング解析は各ゲートの最悪のタイミングスラックを計算するために使用される（ブロック520 ）。各ゲートの利得はこのスラック値がゼロではないならばこのスラック値に基づいた量だけ調節される（ブロック525 、530 ）。負のスラックを有するゲートは（ゲートを高速度にするために）それらの利得を減少され、正のスラックを有するゲートは（これらのゲートは低速度にされているので）利得を増加される。各利得調節のサイズは調節プロセスをスムースに集中させるように選択されている。各変化の量はスラックの大きさに関連し、大きい利得の減少は、小さい負のスラックを有するゲートではなく大きい負のスラックを有するゲートのために行われる。同様に、大きい利得の増加は、小さい正のスラックを有するゲートではなく大きい正のスラックを有するゲートのために行われる。各変化の量は各ゲートを通る臨界的なパスの長さにも関連される。小さい変化は短いパスに位置するゲートではなく長いパス（多数のゲートを有するパス）に位置するゲートに対して行われる。これらの変化が行われた後、新しい静的タイミング解析が行われ、新しい利得セットの調節が行われる。全てのスラックがゼロである（変化は必要ない）か、変化される全てのゲートが既にそれらの最大または最小の利得を有するように設定されているために変化が行われなくなったときプロセスは停止する。
【００３７】
トリミングアルゴリズムは特別にセルの遅延を調節するが、ワイヤ遅延の効果を含むこともできる。初期的位置付けおよび説明したバジェット手順におけるルーティングが行われるとき、このような含有は可能である。位置付けはセル間の距離の関数としてワイヤ遅延のモデル化を可能にする。ルーティングも行われるならば、タイミング解析は各ワイヤの全般的にルート設定されたパスを後続することによりさらに正確にワイヤ遅延をモデル化できる。位置付けと寸法決めが同時に集中するように全般的な位置付けとトリミングアルゴリズムのステップ間のルーティングをインターリーブすることも可能である。
【００３８】
図６は本発明の１以上の実施形態を使用して時間バジェット策が評価されることができる例示的な回路を示している。示されている回路はトップレベル部分の他のコンポーネントと接続するブロック650 へ論理的に分割されている。トップレベル部分はバッファ611 へ出力するレジスタ素子610 を含んでいる。バッファ611 と特定されていない他の信号はＡＮＤゲート612 への入力の役目をする。ＡＮＤゲートの結果はバッファ613 を通って緩衝され、その後ブロック650 の境界に接近する。613 の出力はブロック650 内のバッファ614 の入力に接続されている。バッファ614 と特定されていない信号はＡＮＤゲート615 への入力として作用する。ＡＮＤゲート615 の出力はレジスタ素子620 へ送られる。レジスタ素子620 は他の組合わせ論理装置625 に出力し、組合わせ論理装置625 はその後レジスタ630 に出力する。レジスタ610 、620 、630 はクロック信号ＣＬＫ（図示せず）により全てクロックされる。
【００３９】
この回路のタイミングはブロック内で生じたことおよびブロック外で生じたことに依存する。しかしながら、ブロック650 内および外の幾つかのパスはトップレベルとブロック650 の境界のタイミングに関連しない。バジェット中、これらのパスは完全に無視される。例えば、組合わせ論理ブロック625 を通るパスは完全にブロック内に含まれる。クロック入力を除外すれば、このパスのタイミングはブロック境界の全ての信号による影響を受けない。クロック期間が一定に維持される限り、このパスのタイミングはクロック信号がブロックに入る特定の時間による影響を受けない。
【００４０】
境界のタイミングに貢献しないこれらのゲート／素子は前述した抽象化プロセスにしたがて廃棄されることができる。この抽象化は関連しないものを破棄しながら必要とされる寄生情報を維持する。図６の例では、ブロック625 の論理装置はタイミング解析およびトリミング中に除去されるか無視されることができる。トリミングアルゴリズムはその後、610 から620 までのパスのスラックがゼロになるまでゲート611 −615 の遅延を調節する。ブロック650 の境界における信号到着時間はこの入力に対するバジェットされた到着時間になる。
【００４１】
初期的な位置付けは設計中のワイヤの遅延の有効な評価を与える。ネットリストに非常に多くのセルが存在するので個々に位置付けることができないとき、それらを共にグループに組合わせるためのクラスタリングアルゴリズムを使用することができ、そのグループはその後グループ間の接続性に基づいて位置付けられる。個々のセルの位置はその後、配置されたクラスタの位置から得られる。
【００４２】
初期的な位置付けにより、設計の個々のワイヤにおける評価された抵抗、キャパシタンス、遅延を計算するためにマンハッタンベースのワイヤモデルを使用できる。ここで示すセル遅延モデルはキャパシタンスに依存しないが、ワイヤ遅延評価は各セルの利得を調節することにより設計を最適化しようとするゼロスラックトリミングアルゴリズムを改良するのに非常に有効である。
【００４３】
トリミングアルゴリズムは設計のセル毎に利得を潜在的に調節できる利得調節ステップにより全般的なタイミング解析を反復的にインターリーブする。各利得調節ステップでは、各ゲートの利得は、ゲートの局部的スラックに比例し、ゲートを通る最大のトポロジのパス長に反比例する量だけスムースに増加または減少される。これは臨界的なパスに沿った利得がそれらの最終的なトリムされた値の方向にスムースに同時に移動し、臨界的なパスに沿った各セルのトリムされた利得が等しいことを確実にする。
【００４４】
トリミングはタイミングの最適化に利用可能な唯一のツールではない。トリミングが危険な程に低い利得を発生する状態のワークアラウンドとして、随意選択的なステップはネットリストの構造上の問題を固定するために実行されることができる。このようなステップは以下のものを含んでいる。  
・リマッピング  
・アーキテクチャ選択（メタセルスワッピング）  
・スピードアップ再構成  
これらの各動作はゼロではないスラックをスムースに吸収するために個々のゲート遅延バジェットへさらにトリミングすることを必要とする回路に対するディスクリートな変更である。
【００４５】
シェル抽象化はインターフェースで可視ではないモジュール部分を切取るために使用されることができる。これらの部分はトップレベルのタイミング解析、トップレベルで行われる任意のトリミングまたは構造上の最適化から除外されることができる。同様に、トップレベルのネットリストはバジェットが必要とされる特定のブロックに対して可視ではないネットリストの部分を除外するために取除かれることができる。
【００４６】
［モジュールに対するタイミング制約の生成］  
バジェットは低いレベルのモジュールに対する制約へトップレベルのモデルの特性を変換することにより生成される（ステップ450 ）。ゼロスラックタイミング策が得られるとき、回路の各ノードの到着および必要な時間は等しい。モジュール境界において、これらの時間はバジェットされた値として解釈されてもよい。モジュール入力では、これらは信号転移が環境からブロック境界へ与えられる到着時間、最新または早期の時間を表している。モジュール出力では、これらの時間はモジュール出力における信号転移が回路の別の部分のタイミング故障を起こさずに行われることができる必要な時間、最新または早期の時間を表している。
【００４７】
入力の到着および出力の必要とされる時間は１以上の基準クロックに関連し、内部記憶素子を制御するためにクロックがモジュールに入ることも可能である。結果として、タイミングバジェット中にこれらのクロックの定義を含めることも望ましい。これらのクロック定義はバジェットされたモジュールに対するタイミングモデル中のクロックを記述する特別な制約により表される。各クロックの理想時間と、クロックが入力に到着する実際の時間との差はクロックの外部の待ち時間を特定する別の特別な制約で表される。
【００４８】
トップレベルのタイミングモデルの幾つかの他の雑タイミング制約はモジュールのタイミングバジェットにコピーされる。ユーザに特定された制約は、あるネットが常に一定の論理値であることを示している。これはこれらのネットの信号転移のタイミングが無視されることを示し、また他の制約がユーザの特定された制約を設計のゲートの論理関数と組合わせることにより得られることを可能にする。モジュールに影響する全てのユーザに特定されたまたは得られた制約はそのバジェットに含まれている。また、限度とマージンを表す任意の制約もまたモジュールのタイミングバジェットにコピーされる。
【００４９】
タイミングバジェットで表されなければならない残りのタイプの制約が１つ存在し、これらの制約はパス例外と呼ばれる。パス例外はタイミング解析の正常なルールに対する例外を記述しており、回路内のユーザに特定されたパスに適用される。これらは誤ったパス、マルチサイクルパス、最小または最大の特定された遅延を有するように制約されたパスを識別する。モジュールに影響する全てのパス例外はそのバジェットに含まれなければならない。しかしながら、多数のパス例外はモジュール自体の外部のピンを指している。このことにより、モジュールのタイミング解析に適した形態にこれらの例外を書直すことが必要とされる。
【００５０】
この書直しについて説明するため、パス例外が静的タイミング解析装置でサポートされる１方法について考える。パス例外を適切に適用するために、ピンにおける信号到着時間を一方は例外により影響され、他方は影響されない２つのグループに区分することが必要である。この区分を可能にするために、“マーク”と呼ばれる特別なシンボルを、パス例外で指名された各ピンに関連付ける。各ピンは特有のマークを有し、またはリソースの使用を減少するためにマークはピンのグループに割当てられてもよい。これらのマークはその後、各マークされたピンへの信号到着時間に関連され、マークされたピンにおける到着時間に依存する全ての到着時間に伝播する。設計内の任意のピンはそれに関連する多数の異なる到着時間を有し、各到着時間はマークの異なる組合わせと同一である。これは多数の異なるパスが設計における任意のピンに対して存在し、これらのパスの幾つかがパス例外による影響を受け、その他は影響を受けないために生じることができる。各マークされた到着時間は異なるパス例外による影響を受けるので、ピンに関連された各マークされた到着時間は異なる必要な時間および対応するスラック値を有する。
【００５１】
例えば、“Ａ”の名称のピンと“Ｂ”の名称のピンから特定されたマルチサイクルパス制約は、ピンＡを通るパスから生じる全ての到着時間のマークおよびピンＢを通るパスから生じる全ての到着時間の第２のマークを生成する。任意のエンドポイントで、マークＡおよびＢの両者を有する到着時間だけが例外による影響を受ける。
【００５２】
例外がモジュールの外部のピンを指すとき、外部ピンへの各参照を関連するマークの名称で置換することにより変更される。マークは基本的に外部ピンの別名であり、外部ピンを直接指すことができないので、明確に含まれている。
【００５３】
モジュール入力を横切るパス例外をサポートするために、モジュール入力に対する到着時間制約は特にマークをこれらがモジュール入力に与える到着時間に関連付けされる。各モジュール入力はしたがって複数の到着時間を有し、これによって異なる到着時間をブロック入力を通る異なるパスへ関連付けることが可能にされる。
【００５４】
モジュール出力を横切るパス例外をサポートするため、モジュール出力において必要とされる時間制約は特にマークをモジュール出力で強制される必要とする時間に関連付けされる。各マークされた必要な時間は正確に同一のマーキングを有する到着時間に適用するだけである。これは異なる必要な時間をブロック出力を通る異なるパスと関連付けすることを可能にする。パス例外がモジュール内に全体的に含まれるならば、全ての関連するピンはモジュール内で利用可能であるので、それが変更される必要はない。
【００５５】
図７は本発明の１以上の実施形態を構成することのできるコンピュータシステムを示している。コンピュータシステム710 が示されており、これはネットワーク700 に随意選択的に結合されることができるＰＣ（パーソナルコンピュータ）等の任意の汎用または特別な目的のコンピュータまたはデータ処理機械であってもよい。コンピュータシステム710 のメモリ711 は全体的な回路設計をバジェットするのには不十分であり、したがってバジェットプロセスは分解される必要がある。このようにして、バジェットのピースはそれぞれコンピュータシステム710 に類似の幾つかの異なるコンピュータシステムにより管理されることができる。
【００５６】
当業者は本発明の種々の実施形態で説明したように、ゼロスラックトリミングアルゴリズムによるバジェットと、静的タイミング解析のタスクを実行するためのコンピュータシステム710 をプログラムする。このようなプログラムコードはＣＰＵ（中央処理装置）等のプロセッサ712 およびＲＡＭ（ランダムアクセスメモリ）等のメモリ711 を使用して実行されてもよく、このメモリ711 は必要に応じて命令、アドレス、結果データを記憶／ロードするために使用される。時間バジェットおよびタイミング解析の機能の実行に使用されるアプリケーションはＣ++等の言語で書かれたソースコードからコンパイルされた実行可能な装置から得られる。実行可能な命令はメモリ711 へロードされ、その実行可能な命令はプロセッサ712 により実行される。その実行可能なファイルの命令は時間バジェットとタイミング解析を行うのに必要な命令に対応し、フロッピー駆動装置等のディスク718 、ハードドライブまたは光学ドライブ717 またはメモリ711 へ記憶される。ネットリスト等の種々の入力、制約、遅延、キャパシタンス、ワイヤモデル、セルライブラリ、その他のこのような情報はディスク718 、光学ドライブ717 またはデータベースおよび／またはフラットファイルの形態でネットワーク700 を経て書込まれ／そこからアクセスされる。
【００５７】
コンピュータシステム710 はプロセッサ712 およびメモリ711 と、Ｉ／Ｏバス715 へ結合するブリッジ714 との間で情報の転送を容易にするシステムバス713 を有する。Ｉ／Ｏバス715 はネットワークインターフェースカード（ＮＩＣ）716 、ディスク718 、光学ドライブ717 のような種々のＩ／Ｏ装置をシステムメモリ711 とプロセッサ712 へ接続する。Ｉ／Ｏ装置、バス、ブリッジの多数のこのような組合わせは本発明により使用されることができ、示されている組合わせは単に１つのこのような可能な組合わせの例示にすぎない。
【００５８】
本発明をその好ましい実施形態を伴って前述したが、これは単なるの目的で行われたものであり、本発明はそれに限定されない。勿論、本発明の変化は当業者に容易に明白であり、それらもまた本発明の技術的範囲内に含まれる。
【図面の簡単な説明】
【００５９】
【図１】例示的な階層設計プロセスのフロー図。
【図２】抽象化を使用した階層設計フローにおける時間バジェットの役割を示したフロー図。
【図３】設計モジュールの抽象化を生成する階層システムで使用されることのできる時間バジェット方法を示した図。
【図４】本発明の少なくとも１以上の実施形態にしたがった時間バジェットプロセスを表したフロー図。
【図５】本発明の１以上の実施形態にしたがったゼロスラック“トリミング”アルゴリズムを示したフロー図。
【図６】本発明の１以上の実施形態を使用して時間バジェット策が評価されることができる例示的な回路図。
【図７】本発明の１以上の実施形態を実行できるコンピュータシステムの図。
【図１】
2005517223.tif 000003
【図２】
2005517223.tif 000004
【図３】
2005517223.tif 000005
【図４】
2005517223.tif 000006
【図５】
2005517223.tif 000007
【図６】
2005517223.tif 000008
【図７】
2005517223.tif 000009
【国際調査報告】
2005517223.tif 000010
2005517223.tif 000011
2005517223.tif 000012