"第1の回路設計の実装において、起こりうる設計制約違反の確率分布を決定する手段と、該決定手段の設計制約違反の確率分布に基づいて、前記第1の回路設計の1以上の部分を修正する手段とを含む回路設計用のツール。回路のその後の実装例えば、配置と配線で発生しうる逸脱に関する設計パラメータの感度に応じて回路設計例えば、合成ソリューションを自動的に修正する方法と装置が本明細書では説明される。本発明のいくつかの実施形態は、この節で要約されている。本発明の一態様では、回路を設計する方法は、第1の回路設計例えば、配置ソリューションがある場合またはない場合の技術特有のネットリストの実装で設計制約条件例えば、タイミング制約条件、最大静電容量、最大遷移、最大クロストークに違反する可能性を判定することと、設計制約条件に違反する可能性を低減するように第1の回路設計を修正することを含む。一例では、第1の回路設計の実装は、第1の回路設計を実装するための配線ソリューションを含み、第1の回路は、論理素子のインスタンスのサイズ設定、信号のバッファリング、信号の負荷遮蔽、論理素子の最も弱いドライバのサイズ設定、またはその他の操作を通じて修正される。一例では、設計制約条件は、タイミング制約条件を含む例えば、回路の最悪ネガティブスラック、第1の回路設計における論理素子のインスタンスのスラック、第1の回路設計におけるパス上の遅延、回路のトータルネガティブスラックなど。回路のトータルネガティブスラックは、回路のすべての端点におけるすべてのネガティブスラックの総和である。回路の端点は、パスの終端となる回路内の一点である。一例では、第1の回路設計を修正することは、第1の回路設計の実装における不確定性による論理素子のパラメータに対する設計制約条件により制約されるパラメータの感度に応じて修正の論理素子のインスタンスを選択することを含む。別の例では、第1の回路設計を修正することは、第1の回路設計の実装における不確定性によるパス上の論理素子の少なくとも1つのパラメータに対する設計制約条件により制約されるパラメータの感度に応じて修正対象のパスを選択することを含む。一例では、設計制約条件に違反する可能性は、第1の回路設計における論理素子のインスタンスに接続するネットの推定されるパラメータ例えば、ネット長、ネット静電容量、ネット抵抗、ネットトポロジの発生しうる変化から決定される。一例では、多数の候補が第1の回路設計の実装における不確定性に対する感度に基づいて第1の回路設計の論理素子のインスタンスから決定された後、その数の候補の部分集合が選択的に修正される例えば、候補を通る多数のパスを表す流れに応じてその多数の候補のうちから1つの候補を選択し、選択された候補をサイズアップする、または候補のグラフに対し最小カットを実行する、そのカット上の候補をサイズアップする。一例では、サイズアップは、全体的設計制約条件を下げない範囲でのみ実行される例えば、最悪のネガティブスラック。本発明は、これらの方法を実行するデータ処理システムを含むこれらの方法を実行する方法と装置、およびデータ処理システム上で実行した場合にこれらの方法をシステムに実行させるコンピュータ可読媒体を含む。本発明の他の特徴は、付属の図面と以下で述べる詳細な説明とから明らかになる。本発明は、付属の図面の図において限定されることなく例を使用して説明され、類似の参照番号は類似の要素を示す。以下の説明および図面は、本発明を例示するものであり、本発明を制限するものと解釈すべきではない。本発明を完全に理解できるようにするため、多数の具体的詳細を説明する。しかし、いくつかの場合には、本発明の説明をわかりにくくすることを避けるため、よく知られているまたは従来の内容については詳述しない。本開示の一実施形態を参照していても、同じ実施形態を参照する必要があるわけではなく、そのような参照は少なくとも1つを意味する。本発明の少なくとも1つの実施形態は、回路設計の実装において設計制約条件に違反する可能性が低減されるように例えば、配置と配線の後に回路設計例えば、技術特有の設計の合成ソリューションを最適化しようとする。一実施形態では、タイミング目標の違反に関わる確率を低くするための変換についてインスタンスの最小の集合が選択される。本発明の方法の多くは、従来の汎用コンピュータシステムなどのデジタル処理システムにより実行することができる。1つの機能のみを実行するように設計またはプログラムされた専用コンピュータも使用することができる。図1は、本発明とともに使用できる代表的なコンピュータシステムの一例の図である。図1はコンピュータシステムのさまざまなコンポーネントを例示しているが、そのような詳細は本発明と密接に関連していないためコンポーネントを相互接続する特定のアーキテクチャまたは方法を表すことは意図されていないことに注意されたい。また、より少ないコンポーネントまたはおそらくより多いコンポーネントを有するネットワークコンピュータやその他のデータ処理システムも、本発明とともに使用できることは理解されるであろう。図1のコンピュータシステムは、例えば、Sunワークステーション、またはWindows登録商標オペレーティングシステムが稼働しているパーソナルコンピュータ、またはAppleMacintoshコンピュータとすることができる。図1に示されているように、コンピュータシステム101は、データ処理システムの一形態であり、マイクロプロセッサ103に結合されているバス102を含み、さらにROM107、RAM105、不揮発性メモリ106を備える。マイクロプロセッサ103は、図1の例に示されているように、キャッシュメモリ104に結合される。バス102は、これらのさまざまなコンポーネントを相互接続してつなぎ合わせ、またこれらのコンポーネント103、107、105、106をディスプレイコントローラやディスプレイデバイス108に相互接続し、またマウス、キーボード、モデム、ネットワークインターフェイス、プリンタ、スキャナ、ビデオカメラ、その他の当業でよく知られているデバイスとすることができる入出力I/Oデバイスなどの周辺デバイスに相互接続する。通常、入出力デバイス110は、入出力コントローラ109を通じてシステムに結合される。揮発性RAM105は、通常、メモリ内のデータをリフレッシュまたは保持するために絶えず電力を必要とするダイナミックRAMDRAMとして実装される。不揮発性メモリ106は、通常、磁気ハードドライブまたは磁気光ドライブまたは光ドライブまたはDVDRAMまたはシステムの電源を切った後もデータを保持する他の種類のメモリシステムである。通常、不揮発性メモリは、ランダムアクセスメモリであるが、そうである必要はない。図1は、不揮発性メモリがデータ処理システム内の残りのコンポーネントに直接結合されているローカルデバイスであることを示しているが、本発明では、モデムまたはEthernet登録商標インターフェイスなどのネットワークインターフェイスを通じてデータ処理システムに結合されているネットワーク記憶デバイスなどのシステムから離れた場所にある不揮発性メモリを使用することができることは理解されるであろう。バス102は、当業でよく知られているように、さまざまなブリッジ、コントローラ、および/またはアダプタを通じて互いに接続されている1つまたは複数のバスを備えることができる。一実施形態では、I/Oコントローラ109は、USB周辺機器を制御するためのUSBUniversalSerialBusアダプタ、および/またはIEEE-1394周辺機器を制御するためのIEEE-1394バスアダプタを備える。この説明から、本発明の複数の態様は、少なくとも一部は、ソフトウェアで実現できることは明白であろう。つまり、これらの手法は、ROM107、揮発性RAM105、不揮発性メモリ106、キャッシュ104、またはリモート記憶デバイスなどのメモリに格納されている命令シーケンスを実行するマイクロプロセッサなどのプロセッサに対する応答として、コンピュータシステムまたはその他のデータ処理システム内で実行することができる。さまざまな実施形態において、本発明を実装するために、配線接続されている回路をソフトウェア命令と組み合わせて使用することができる。したがって、これらの手法は、ハードウェア回路とソフトウェアの特定の組み合わせに限定されず、またデータ処理システムにより実行される命令の特定のソースにも限定されない。さらに、この説明全体を通して、説明を簡単にするため、さまざまな機能や操作はソフトウェアコードにより実行されるか、またはソフトウェアコードにより引き起こされるものとして説明されている。しかし、当業者であれば、そのような表現が意味しているのは、それらの機能がマイクロプロセッサ103などのプロセッサによるコードの実行から結果として生じるということであると理解するであろう。機械可読媒体が、データ処理システムにより実行されたときに本発明のさまざまな方法をシステムに実行させるソフトウェアとデータを格納するために用いられる。この実行可能ソフトウェアとデータは、図1に示されているように、例えば、ROM107、揮発性RAM105、不揮発性メモリ106、および/またはキャッシュ104をはじめとするさまざまな場所に格納することができる。このソフトウェアおよび/またはデータの一部分を、これらの記憶デバイスのうちのいずれか1つに格納することができる。したがって、機械可読媒体は、機械によりアクセス可能な形態で情報を提供つまり、格納および/または伝送するメカニズムを備える例えば、コンピュータ、ネットワークデバイス、パーソナルデジタルアシスタント、製造装置、1つまたは複数のプロセッサの集まりを含むデバイスなど。例えば、機械可読媒体は、記録可能/記録不可能媒体例えば、読み取り専用メモリROM、ランダムアクセスメモリRAM、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、などだけでなく、電気、光、音響、またはその他の形態の伝搬信号例えば、搬送波、赤外線信号、デジタル信号などなどをも含む。標準的な回路設計プロセスでは、論理合成ツールで、与えられた機能の集合を実行する論理素子回路網を作成する。論理合成ツールでは、遅延、領域、その他の設計目標を最適化するため論理回路を変形し再構成することができる。ゲートレベル論理素子は、ベンダ固有のプリミティブにマッピングされ、技術特有のネットリストを生成する。その後、マッピングされた技術特有のネットリストは、チップ上のさまざまなブロックに割り当てられる。次に、配置と配線ツールでは、マッピングされたネットリストのベンダ特有のプリミティブをチップ上に配置し、それらのプリミティブの間に配線を行う。配置と配線の後、インプレース最適化は、通常、さらにタイミングを最適化するために実行される。インプレース最適化は、論理素子の配置を著しく変更することなく論理素子に対する制約付き変更を行う。配置と配線情報が利用できるようになった後、詳細なタイミング解析を実行して、タイミング制約条件がすべて満たされているかどうかを正確に判別することができる。タイミング要件すべてが満たされているわけではないと判断された場合、論理合成により生成された設計は、タイミング要件を満たすように変更される。そのため、回路設計のための合成ツールの遅延予測の正確さは、よい品質の結果の生成のためには重要である。通常、バックエンドソフトウェアプログラムは、合成ツールの設計結果を回路の詳細実装に使用する。例えば、配置と配線ツールは、合成ツールの設計結果を設計レイアウトに使用する。合成推定遅延に基づいて合成ツールにより予測されるクリティカルパスの遅延は、設計の後段階例えば、配線、レイアウトなどから抽出された詳細データ例えば、寄生データ、詳細配線情報に基づいて計算されたタイミング目標との密接な忠実関係になければならない。合成ツールは、ハンドオフに先立ってこのバックエンド遅延を正確に予測する場合、合成ツールとバックエンドソフトウェアプログラムを伴う費用のかかる反復を実行する必要性が避けられる。しかし、合成ツールは、常にこのバックエンド遅延を正確に予測できるわけではない。ほとんどのタイミング目標は、長い配線によって引き起こされるセル遅延とネット遅延が関わる。長い配線遅延は、通常、長い配線をバッファリングし、それから、さらに小さな配線に効果的に分割することにより、合成において標準的な形で取り扱われる。そのため、セルの遅延を正確に予測することで、タイミング目標のよい予測を出すことができる。セルの遅延は、通常、セルの静電容量性負荷の関数である。静電容量性負荷の主要コンポーネントは、セルのドライバに接続されたネットの静電容量と負荷ピンの容量性負荷を含む。負荷ピンの静電容量は、設計の論理接続属性に基づいて推論できる。しかし、ネットの静電容量は、設計レイアウトが完了したときにしか正確に得ることができない。そのため、合成ツールは、最終的に設計レイアウトを作成するバックエンドソフトウェアのビヘイビアを予測する負担を有する。正確な遅延を予測するのではなく、回路の一部分例えば、ゲート、またはパスがタイミング目標の違反に関わる確率を評価できるように、遅延の確率分布を決定することができる。本発明の少なくとも一実施形態では、バックエンドソフトウェアプログラムを伴う反復の必要性を軽減するためにタイミング制約条件に違反する確率の高い回路の部分に対し変換を実行しようとする。例えば、その後の実装に発生しうる逸脱例えば、合成ツール内に埋め込まれたタイミングエンジンにより推定されるものから逸脱するによるタイミング制約条件に関するタイミングパラメータの感度は、その後の実装における違反の確率を示す指標となる。本発明のいくつかの実施形態による合成ツールは、変換を実行して、タイミング目標の変化が、設計のレイアウトの実行後に、タイミング制約条件に関して、重要な意味を持たないようにする。本発明のいくつかの実施形態では、遅延推定からの可能な逸脱は、クリティカルパスにそって小さく、かつクリティカルに近いパスにそって小さいことが望ましい。そのため、本発明の実施形態による合成ツールでは、回路の可能なレイアウト後クリティカル部分やクリティカルに近い部分を識別し、それらの部分に対して変換を実行し、クリティカルパスとクリティカルに近いパス上の遅延の変動を低減し、それによって、設計レイアウトが実装された場合にタイミング制約条件違反が生じる可能性を低減する。タイミング目標と合成ツールの推定におけるその不確定性は、主に、ネットファンアウト、インスタンスの駆動長、配線負荷などのその他の推定因子、また物理的合成では、経路長、輻輳効果、配線の単位長さ当たりの抵抗と容量などの技術情報に依存する。輻輳は、結合容量と配線長例えば、迂回路を引き起こすの両方に影響を及ぼす。例えば、長いネットを駆動する低い駆動強度のセルがある場合、ネットの長さの小さな変動であっても、駆動セルの遅延に大きな影響を及ぼす可能性がある。すべての低い駆動強度セルを完全に排除し、高い駆動強度セルのみを使用することができるが、このようなアプローチでは、領域と負荷のペナルティが増大し、ひいては、すべてのタイミング目標に悪影響を及ぼす。そのため、本発明の少なくとも一つの実施形態では、駆動強度を改善する必要があるセルを選択的に選ぶ。本発明の少なくとも一実施形態では、回路設計のネットリスト内のセルの部分集合に対し設計変更を選択的に実行する。変換のインスタンスの縮小された集合例えば、最長集合を識別するためのさまざまなアルゴリズムについて、以下で説明する。本発明の少なくとも一実施形態では、推定された物理データに基づいてタイミング制約条件違反の確率を推定する。例えば、感度値に基づく違反の確率を使用して、インスタンスの改善を優先順位付けし、物理設計後に違反の確率が高いものが違反の確率が低いものに先立って改善されるようにする。それによって、候補リストは、違反の確率に基づき最小にすることができる。改善後の面積利用度がネガティブスラックを持つすべてのインスタンスの改善よりも小さくなるように、通常、候補リストの小さな集合を改善のために選択することができる。本発明の一実施形態では、設計変更のために回路の一部分が選択され、部分例えば、論理素子のインスタンス、または回路内のパスがタイミング目標の違反に関わりうる確率に基づき、設計の後の方の段階でタイミング制約条件に違反する確率を低減するようにする。例えば、選択は、タイミング目標の違反に関与するそれぞれのゲートの確率例えば、ゲートによる不確定性への感度に基づいて実行できるか、または選択は、タイミング目標の違反に関与するそれぞれのパスの確率に基づいて実行できる。本発明の一実施形態では、タイミング目標の違反に関わるかどうかを判別するために、インスタンスを一度に1つずつ調べる。例えば、駆動強度を改善するためにインスタンスの部分集合を選択することができ、サイズアップが設計の最悪のネガティブスラックの低下を引き起こさない、またサイズアップがさらに、あらかじめ決められている上限の範囲内で設計の面積利用度を保持するもののみを含めることによりインスタンスの部分集合のサイズを最小にする。本発明の一実施形態では、設計の最悪のネガティブスラックに応じて、インスタンスの部分集合が選択される。例えば、回路の一部分が、スラックがしきい値よりも悪い例えば、しきい値と最悪のネガティブスラックの間にあるインスタンスに対する設計変更に対して選択される。負荷の変化に対するこれらのインスタンスの感度を判別することができるが、これについては、以下で詳述する。負荷の増大によりインスタンスのスラックが最悪のネガティブスラックを超える場合、サイズ改善のため候補のリスト上でインスタンスが選択される。本発明の他の実施形態では、スラックがネガティブであるインスタンスの部分集合が選択される。この部分集合内のすべてのインスタンスの感度が計算され、それらのインスタンスが、減少する感度値に基づいて設計変更に対して優先順位付けされる。このシナリオでは、設計のトータルネガティブスラックは低下しないことが保証される。負荷の変化は、インスタンスの配置情報が利用可能でない場合に配線負荷モデルの摂動に基づいて推定することができる。物理的合成の場合、インスタンス上の負荷のこの変化は、さらに正確な物理的情報に基づいて判定することができる。例えば、物理的合成時に詳細な配置が実行される場合、設計の中のすべてのインスタンスの正当な場所が利用可能である。ネットで推定する最も可能性の高い経路を決定するために、高速大域配線経路推定を実行できる。これらの推定された経路から、経路の予測される輻輳マップが決定される。輻輳により、配線の結合容量が変動する。ひどく輻輳している領域内を引き回されるネットが輻輳領域の周りを迂回される可能性は、経路資源がその領域内で引き回される必要のあるネットの要求量よりも小さい場合に、最も高い。これらのタイプのネットは、ネット長の増大が生じる可能性が最も高い。詳細配線の後のネットのレイヤ割り当てでも、配線の抵抗と静電容量の予測不可能な変化が生じる可能性がある。輻輳領域内のインスタンスの感度を下げると、詳細配線の後のタイミング要件の違反を引き起こす可能性のある予測不可能な変化の効果を低減することができる。ネットが引き回される領域の過剰な輻輳に加えて、近隣領域内にも過剰な輻輳が存在する場合、迂回路の量が増える可能性がある。したがって、これらのタイプのネットに対し発生する可能性のある長さの変化も、それに応じて推定できる。一実施形態では、配線長の増大は、ネットのセグメントの経路輻輳だけでなく近隣領域経路輻輳にも依存する関数を使用して推定することができる。典型的な大域的配線経路推定では、ネットの実際の長さに対する下限が得られる。そのため、一実施形態では、下限の長さを超えるネット長の経時的摂動の量を表す実験的または統計的結果に基づく因子が加えられる。ネット長の摂動により、インスタンスのスラックが最悪のネガティブスラックを超える場合、ネットの駆動素子は、摂動の効果がスラックの著しい変化に寄与しなくなる例えば、スラックがしきい値よりも悪くなるまでサイズアップする必要がある。本発明の一実施形態では、非最適経路el、経路の推定長であることによるネット長の増大、ネットのファンアウトf、ネットセグメントの輻輳係数cg、ネットセグメントの近隣の輻輳係数ncg、輻輳しきい値ct、標準セル行の高さrtに応じて、発生しうるネット静電容量nccの変化が推定される。例えば、発生しうるネット静電容量nccの変化は、以下のように推定できる。ncc=k0×el×fk1×rtcg≦ctの場合ncc=k2×cgk3×ncgcg>ctの場合ただし、k0、k1、k2、k3は、統計データに基づいて導かれるパラメータである。例えば、バックエンドソフトウェアツールを使用して多数の合成ソリューションの配置と配線が行われた後、合成ソリューションに基づいて推定されたものと設計レイアウトの後に決定されたものとの間のネット静電容量の実際の変化を決定することができる。これらのソリューションに対する実際の変化と輻輳係数との相関を計算して、パラメータk0、k1、k2、k3を決定することができる。前の設計ソリューションに対する設計レイアウトの後の実際の変化に基づいて例えば、異なる回路の集合、所定の回路に対する前の多数の反復、その他に基づいてパラメータk0、k1、k2、k3を導くために、曲線当てはめ手法を使用できる。曲線当てはめ手法は、さらに、ネット静電容量の発生しうる変化の推定に対する公式の形を決定するためにも使用することができる。そのため、上で例示されているものと異なる式または方程式も使用できるが、異なる数の統計学に基づくパラメータを必要とする場合がある。ネット長の変化も、同様にして決定できることに注意されたい。輻輳係数が推定できない場合例えば、回路の素子のインスタンスに関する位置情報が利用できない場合、輻輳係数を輻輳しきい値よりも小さい値に設定し、ネット静電容量またはネット長の推定された変化が輻輳係数に基づかないようにすることができる。タイミング目標パラメータ例えば、遅延、スラックなどは、通常、ネット静電容量の関数である。そのため、ネット静電容量の変化は、タイミング目標パラメータの変化を判別するために使用することができる。感度係数は、i発生しうる変化を考慮しないタイミング目標パラメータtobjと、ii発生しうる変化のあるタイミング目標パラメータtobjnから決定することができる。さらに、タイミング目標パラメータtobjtは、感度係数の決定の際に使用することができる。例えば、しきい値は、タイミング制約条件に違反する結果を超える、タイミング目標パラメータに対する限界値とすることができる。例えば、感度係数sfは以下のように評価することができる。sf=tobjn-tobj/tobjtそのため、感度係数は、発生しうる実装の変化による基準値例えば、しきい値に関してタイミング目標パラメータの変化が増大すると増大する。さまざまな代替感度係数定義を使用して、感度を定量化し、その後の実装における制約条件違反の確率を示すことができることが理解される。例えば、定式化は、以下のように、しきい値に近いタイミング目標を持つインスタンスについてより高い感度を示すために使用することができる。一実施形態では、感度係数を使用して、修正または設計変更対象の回路設計の部分を選択する。例えば、インスタンスベースのアプローチでは、個々のインスタンス要素によるタイミングパラメータに対する感度を評価し、修正対象の敏感な素子を判別し、パスベースのアプローチでは、個々のパスに対するインスタンス要素によるタイミングパラメータの感度を評価して、修正対象の敏感なパスおよびパス上の敏感な素子を決定する。さらに、敏感な素子の部分集合を修正対象の敏感なパスから選択することができる。それとは別に、インスタンスのパス感度は、設計内のタイミング終点から開始するすべてのパスの順方向と逆方向の幅優先探索を実行することから決定することができる。タイミング終点の集合は、ラッチ、レジスタ、フリップフロップ、I/Oポートを含む。例えば、パス感度spathを決定することは、以下を含む。a設計内のすべてのインスタンスでインスタンス感度sinstanceを計算する。b逆方向幅優先探索を実行して、以下のように駆動インスタンスJnn=0,1,...,Nを持つインスタンスIでの逆方向パス感度sbackwardを計算する。sbackwardI=sinstanceIMaxsbackwardJ0,sbackwardJ1,...,sbackwardJN、c同様に、順方向幅優先探索を実行して、以下のように負荷インスタンスJmm=0,1,...,Mを持つインスタンスIでの順方向パス感度sforwardを計算する。sforwardI=sinstanceIMaxsforwardJ0,sforwardJ1,...,sforwardJM、d以下からインスタンスIのパス感度を決定する。spathI=MaxsforwardI,sbackwardl駆動インスタンスは、負荷インスタンスへの直接入力として出力を生成し、負荷インスタンスは、駆動インスタンスから直接入力を受け取ることに注意されたい。インスタンスまたはパスについて感度を定義する方法は多数あることは理解されるであろう。例えば、完全に確率論的なアプローチを使用することにより、タイミングパラメータの変化の確率と平均期待値を決定することができ、これから、感度指標が決定されるが、確率および平均期待値の評価は多量の計算を必要とする場合がある。それとは別に、感度指標は、輻輳領域を回避するために発生する再配線によるネット長の変化などのさまざまな要因により識別された決定論的変化に基づいて評価することができる。さらに、輻輳係数などの統計学に基づくパラメータや決定論的に決定されたパラメータを組み合わせて、感度係数に対する実験式を定式化することができる。例えば、合成時に、ネット長は、ネットのファンアウトとブロックサイズに従って配線負荷テーブルから求めることができる。ルックアップ値に基づく変化の特定の割合がネット長の可能な変化であると仮定することができる。それとは別に、配線負荷テーブルでネット長の変化の平均値を生成し、可能な変化を、ファンアウトとブロックサイズに従ってルックアップするようにもできる。パスに基づくアプローチでは、パス遅延がタイミング目標の違反を引き起こす可能性がある確率が評価される。例えば、多数の低駆動セルを持つパスに対するタイミング目標は、低駆動セルが少ししかないパスに比べて違反される可能性が高い。タイミング目標の違反の確率を正確に評価することは困難であるが、発見的アプローチを使用すると、タイミング目標の違反の確率を示す指標を決定することができる。例えば、パスに対するすべてのネットセグメントの決定論的変化を識別し、パスの新しいタイミング目標の評価に組み込み、パス内の感度を決定することができる。その場合、バックエンドツール内のパスに対し適用されるすべての変化の最悪の場合のシナリオが仮定される。タイミング目標の違反の確率を低減することを目的としてまた、変換を適用する順序を決定するため変換される必要のあるインスタンスの最小集合を選択するために、異なる選択方式を使用することができる。例えば、複数の候補を、感度に基づいて選択することができる。例えば、インスタンスのタイミング目標例えば、遅延、またはゲートのスラックがネットのネット長またはネット静電容量の変化に敏感な場合、ネットの駆動素子はサイズアップの候補として選択される。それとは別に、ネットの駆動素子を複製することができ、これにより駆動素子は効果的にサイズアップされる。駆動素子が複製された後、元の駆動素子の負荷素子は、元の駆動素子と新しい駆動素子の負荷素子として分割することができる。それとは別に、元の駆動素子と新しい駆動素子は、負荷素子をまとめて駆動することができる。同様に、パスのタイミング目標例えば、パスにそっての遅延がパス上の1つまたは複数のネットのネット長またはネット静電容量の変化に敏感な場合、パスは変換の候補として選択される。さらに、候補は、設計目標に対する影響に応じて選択することができる。例えば、クリティカルパスまたはクリティカルに近いパス上の敏感な素子を選択することができる。さらに、回路内の影響の相対的重要度または範囲に基づいて、敏感な素子を選択することができる。例えば、多くのパス上にある敏感な素子は、少ないパス上にある類似の素子よりも優先度が高い。例えば、1パスの物理的合成が実行された後、インスタンスの正当な位置を決定することができる。その後、敏感なインスタンスの候補集合を、感度基準に基づいて選択することができる。候補は、流れに基づいてソートされ、多数の異なるパスはそれらの候補のそれぞれを流れる。流れの大きな候補は、流れの小さな候補が処理される前に処理される。1つの素子のサイズアップは、他の関連するタイミングパラメータに悪影響を及ぼす可能性があるため例えば、上流素子のスラック、サイズアップオペレーションは、これらの関連するタイミングパラメータを許容不可能なレベルにまで低下させない範囲に限り実行される。したがって、例えば、候補のサイズアップが設計目標を悪化させないと判断された場合例えば、最悪のネガティブスラック、候補はサイズアップされ例えば、所定の量だけ、そうでなければ、候補は設計目標が低下しない限りサイズアップされ、バッファリングオプションされる。感度を十分に引き下げるために候補のサイズアップおよびバッファリングを実行できない場合例えば、他の設計制約条件のため、候補の最も弱い駆動がサイズアップされ、本発明の一実施形態のさらに大きなインスタンスを駆動できる。バックエンドにハンドオフされるネットリスト内に敏感なインスタンスが存在しない場合、実際の経路トポロジ内にある程度の変動があっても、設計内のクリティカルパスの変化例えば、合成段階の推定からの逸脱によりタイミング制約条件には違反しないまたは違反される可能性がきわめて小さい。本発明の他の実施形態では、敏感なインスタンスを通るパスを表すグラフが構築され、サイズアップするインスタンスを選択するためにグラフの最小カットを実行できる。最小カットオペレーションにより、グラフを2つの非連結部分に分離するグラフ内の最小要素の集合を見つける。最小カットオペレーションを実行する知られているアルゴリズムを使用することができる。最小カットの上の敏感な素子の集合は、回路の2つの部分の間の通信に影響を及ぼす最小の敏感な素子の部分集合を表す。そのため、最小カットの上のそのような敏感な素子の集合のサイズアップは、回路設計における感度を低減する費用効果のある手段である。そのカット内のインスタンスをサイズアップした後例えば、所定の量について、または最悪のネガティブスラックを悪化させない範囲で、さらに最小カットオペレーションを実行することができる。最小カットベースの選択は、繰り返し、または他の選択方式と組み合わせて実行することができる。一例では、このグラフは、信号パスを通るパス上の敏感なインスタンスの位置決めを表し、敏感でないインスタンスは、このグラフ上には表されない。この説明から、当業者であれば、さまざまな異なる選択と順序付け方式例えば、異なる組み合わせや変更形態とともに、この説明の例で例示されているようにを使用して、サイズアップする必要のあるインスタンスの個数を効果的に減らし、インスタンスのサイズアップの費用有効性を高めることができる。図2は、本発明の一実施形態により回路を設計する方法を示す図である。オペレーション201で第1の回路設計例えば、技術特有のネットリスト、技術マッピングネットリスト、または回路図を受け取った後、オペレーション203で、第1の回路設計を実装するために生成される第2の回路設計内で複数の設計制約条件例えば、タイミングに違反する可能性を判別する。例えば、合成ソリューションについて詳細設計レイアウトの後例えば、配置と配線後にタイミング制約条件に違反する可能性を決定することができる。オペレーション205では、第1の回路設計例えば、素子のサイズ設定、信号のバッファリング、負荷の遮蔽などを修正して、第1の回路設計の実装において複数の設計制約条件に違反する可能性を低減する。図3は、本発明の一実施形態により回路を最適化する方法を示す図である。オペレーション221で第1の回路設計例えば、ネットリスト、技術特有のネットリスト、配置ソリューション、配置と配線前の設計ソリューションを受け取った後、オペレーション223で、第1の回路設計に対する1つの設計制約条件パラメータ例えば、ネット上またはパス上の遅延、最悪ネガティブスラック、最速のシステムクロックを推定する。オペレーション225では、第1の回路設計内の不確定性による設計制約条件パラメータの感度を判別する。例えば、合成ツールにより推定される経路と異なる配線ソフトウェアツールで決定された経路によるタイミングパラメータの変化である例えば、輻輳領域を回避する迂回路、または推定からの逸脱によるもの。オペレーション227では、第1の回路設計内の不確定性による設計制約条件パラメータの少なくとも感度に基づいて第1の回路設計を最適化する。この最適化は、さらに、修正、関連設計パラメータの許容される低下レベル、感度がクリティカルであるかどうかなどの費用有効性に基づくこともできる。図4は、本発明の一実施形態により回路を最適化する詳細な方法を示す図である。オペレーション241で第1の回路設計例えば、ネットリスト、技術特有のネットリスト、配置ソリューション、配置と配線前の設計ソリューションを受け取った後、オペレーション243で、複数の設計制約条件パラメータ例えば、ネットまたはパスによる遅延を推定する。オペレーション245では、第1の回路設計を実装する際の不確定性を判別する例えば、第1の回路設計の実装においてネット長および/またはネット静電容量に発生しうる変化。オペレーション247で、第1の回路設計を実装する際の不確定性による設計制約条件パラメータの不確定性を表す指標例えば、感度係数を決定する。オペレーション249で、少なくともそれらの指標に基づいて第1の回路設計の一部分を選択的に修正する。図5~6は、本発明のいくつかの実施形態により回路を選択的に修正する詳細な方法を示す図である。図5のオペレーション301で、設計ソリューション例えば、技術特有のネットリストを生成するため第1の回路の物理的合成を実行する。オペレーション303では、状況に応じて、インスタンス例えば、論理素子の位置を決定する。オペレーション305で、第1の回路設計を実装する際の不確定性による1つまたは複数の設計制約条件パラメータの不確定性を表す指標を決定する。オペレーション307で、修正する少なくともいくつかの指標に基づいて第1の回路の複数の部分例えば、インスタンスまたはパスを決定する。オペレーション309では、複数の部分から1つを選択する例えば、複数の流れを持つ1つのインスタンスを選択するか、または最小カットの上の敏感な素子の集合を選択するか、または敏感なパスから敏感なインスタンスを選択する。一実施形態では、選択は、オペレーション305で決定された指標に基づく。例えば、最も敏感な指標を持つものが、変換対象として最初に選択される。オペレーション311で、選択されたものに対し修正を実行する例えば、サイズアップ、負荷の遮蔽、信号のバッファリング。オペレーション313で、その修正が受け入れ可能である例えば、選択されたものに対する修正が、最悪のネガティブスラックを低下しないと判断された場合には、オペレーション315は修正のために次のものを選択することに進み、そうでない場合には、オペレーション317は、他の候補を処理するために修正を破棄する。図6のオペレーション331では、第1の回路設計の実装に際して設計制約に違反する可能性があるかどうかを示す指標を決定する。オペレーション333で、少なくともそれらの指標に基づいて第1の回路設計から複数の修正候補を決定する。オペレーション335で、修正候補をソートする例えば、流れ、それぞれの候補を通る異なるパスの個数に応じて。オペレーション337で、候補を選択する例えば、最大の流れとともに。オペレーション339では、候補をサイズアップする。オペレーション341で、その修正がタイミング制約条件全体を悪化すると判断した場合、オペレーション345で、サイズを修正し、および/またはバッファまたは負荷遮蔽を使用しすなわち他の設計変更を適用し、そうでなければ、次の候補をサイズ設定対象として選択する。一実施形態では、この候補は、感度を低減するまたは感度を十分に下げるためにサイズアップもバッファリングも行えない場合、その候補の最も弱い駆動がサイズアップされる。本発明の一実施形態では、修正対象に候補を選択するループ例えば、図5のオペレーション315から309まで、または図6のオペレーション343から337までは、最大利用限度に到達するまで、または感度を低減する改善がしきい値を下回るまで、続けられる。例えば、最大領域利用度制約条件または、領域使用度の最大増加を使用して、サイズアップおよび/またはバッファリングの対象の候補を選択する反復を停止することができる。さらに、候補のサイズアップおよび/またはバッファリングを行っても感度の改善は非常に限られている場合には、反復を終了させることができる。本発明のさまざまな例は、この説明からタイミング制約条件とともに設計制約条件として例示されているが、当業者には、本発明のさまざまな方法は、さらに、初期段階の設計の部分例えば、敏感なインスタンスを選択的に変換し、初期段階の設計に基づく後の段階の設計において他の設計制約条件に違反する可能性を低減することもできることは明白であろう。感度解析を実行して、設計規則違反のインスタンスの感度を判定する回路内の最大静電容量、最大遷移、および/または最大クロストークなど。これらの設計規則または制約条件に違反する可能性を減じるために、回路の部分例えば、インスタンスまたはパスの感度に基づいて変換例えば、サイズ設定を選択的に実行できる。本発明のほとんどの実施形態はHDL設計合成ソフトウェアプログラムで使用することが意図されているが、本発明は、そのような使用に必ずしも限定されない。他の言語とコンピュータプログラムの使用も可能である。例えば、コンピュータプログラムは、ハードウェアを記述するように書くことができ、したがって、HDLの式とみなすことができる。それとは別に、本発明は、いくつかの実施形態では、HDLを使用せずに作成された論理表現、例えば、ネットリストの割り当て、と割り当て解除を実行することができる。本発明のいくつかの実施形態は、限定はしないがHDL合成システムで使用する文脈で説明し、特に、ベンダ特有の技術/アーキテクチャを含む集積回路とともに使用するように設計されたものについて説明する。よく知られているように、ターゲットアーキテクチャは、通常、ICの製造会社により決定される。本発明のいくつかの実施形態は、LSILogic、NEC、IBM、ArtisanComponentsIncなどのベンダから出されている、構造化ASICとプラットフォームASICを含む、特定用途向け集積回路ASICと併用することができる。本発明のいくつかの実施形態は、プログラマブルICと併用することもできる。ターゲットアーキテクチャの一例は、カリフォルニア州サンノゼのXilinx,Inc.社から市販されているフィールドプログラマブルゲートアレイである集積回路のプログラマブルルックアップテーブルLUTと関連する論理回路である。ターゲットアーキテクチャ/技術の他の例は、Altera、LucentTechnology、AdvancedMicroDevices、とLatticeSemiconductorなどのベンダから出ているフィールドプログラマブルゲートアレイと複雑なプログラマブル論理デバイスのよく知られているアーキテクチャを含む。本明細書では、発明は特定の例示的な実施形態を参照しつつ説明がなされている。本発明は、付属の請求項で定められているように、本発明の広い精神と範囲を逸脱することなくさまざまな修正を加えられることは明白であろう。したがって、明細書および図面は、限定ではなく、説明することを目的としているものとみなすべきである。"