説明

自動回路設計のための方法および装置

回路のその後の実装(例えば、配置と配線)で発生しうる逸脱に関する設計パラメータの感度に応じて回路設計(例えば、合成ソリューション)を自動的に修正する方法と装置を提供する。本発明の一態様では、回路を設計する方法は、第1の回路設計(例えば、配置ソリューションがある場合またはない場合の技術特有のネットリスト)の実装で設計制約条件に違反する可能性を判定することと第1の回路設計を修正して設計制約条件に違反する可能性を低減することとを含む。一例では、第1の回路設計の実装は、第1の回路設計を実装する配線ソリューションを含み、第1の回路は、論理素子のインスタンスのサイズ設定、信号のバッファリング、信号の負荷遮蔽、またはその他のオペレーションを通じて修正される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、参照により本明細書に組み込まれる、2003年5月30日に発明者Champaka Ramachandran、Andrew Crews、およびKenneth S.McElvainにより出願された「Method and Apparatus for Automated Circuit Design」という表題の仮出願第60/475,059号の出願日の利益を主張するものである。
【0002】
本発明は、自動回路設計に関するものであり、より具体的には、詳細な設計レイアウトを実行する前の回路設計の自動最適化に関するものである。
【背景技術】
【0003】
デジタル回路の設計(例えば、超大規模集積回路技術のスケールの)では、設計者はコンピュータ援用手法を採用することが多い。デジタル回路の記述のためハードウェア記述言語(HDL)などの標準言語が開発されたことで、複雑なデジタル回路の設計とシミュレーションを楽に行うことができる。VHDLやVerilogなどのいくつかのハードウェア記述言語は、業界標準として発展してきた。VHDLやVerilogは、汎用ハードウェア記述言語であって、これらの言語を利用することにより、抽象データ型を使用してゲート・レベル、レジスタ転送レベル(RTL)、またはビヘイビア・レベルでハードウェア・モデルを決めることができる。デバイス技術の進歩に合わせて、HDLをより新しいデバイスや設計スタイルに対応させるため、さまざまな製品設計ツールが開発されてきた。
【0004】
HDLコードを使って集積回路を設計する場合、まずコードを書き、その後、HDLコンパイラによりそのコードをコンパイルする。HDLソース・コードではあるレベルで回路素子を記述し、コンパイラが、このコンパイル結果からRTLネットリストを出力する。RTLネットリストは、通常、フィールド・プログラマブル・ゲート・アレイ(FPGA)または特定用途向け集積回路(ASIC)などの特定のベンダの集積回路の技術/アーキテクチャに依存しないという点で、技術独立のネットリストである。RTLネットリストは、回路素子の回路図表現に対応する(ビヘイビア図とは反対に)。そこで、技術独立のRTLネットリストからベンダの技術/アーキテクチャで回路を作成するために使用できる技術特有のネットリストに変換するマッピング・オペレーションが実行される。FPGAベンダはその集積回路内に論理回路を実装するためにさまざまな技術/アーキテクチャを使用することはよく知られている。したがって、技術独立のRTLネットリストは、特定のベンダの技術/アーキテクチャに特有のネットリストを作成するようにマッピングされる。
【0005】
このプロセスでは多くの場合望ましい1つのオペレーションで、特定の集積回路のレイアウトのプランニングを実行し、タイミング問題の制御と集積回路の領域間の相互接続の管理を行う。これは、ときには「フロア・プランニング」と呼ばれることもある。通常のフロア・プランニング・オペレーションでは、集積回路の回路エリアを、ときには「ブロック」とも呼ばれる複数の領域に分割し、その後、ブロック内に置かれるようにロジックを割り当てる。これらの領域は、矩形でも非矩形でもよい。このオペレーションの結果として、論理回路の位置に対する見積もり誤差が集積回路のサイズからブロックのサイズ(タイミング見積もりの誤差を小さくする傾向がある)に低減されることと、1つの非常に大きな問題から一連のより単純な問題に還元されるため配置と配線が通常高速化されることの2点が実現される。
【0006】
チップ上にコンポーネントを配置し、コンポーネント間に配線した後、タイミング解析(例えば、タイミング・シミュレーション、または静的タイミング解析)を実行して、論理素子間の信号遅延を正確に決定することができる。バック・アノテーションを実行し、後の設計段階からの情報でより抽象的な設計を更新することができる。例えば、バック・アノテーションでは、配置と経路のデータベースから配線遅延情報と配置情報を読み込んで、論理合成設計のアノテーションを実行する。バック・アノテーションされた遅延情報は、タイミング要件が満たされていないクリティカル・パスを識別するために使用することができ、タイミング要件を満たすように論理合成を改善することもできる。
【0007】
論理合成用の典型的なソフトウェア・プログラムでは、ネットのファンアウトに基づく遅延推定器機能を使用する。特定のファンアウトを持つネットに対応するすべての論理素子は、同じ配線遅延を持つと仮定されているため、推定された遅延情報はあまり正確ではない。実際には、配線遅延は、一方の論理素子から次の論理素子へ引き回される線の長さに依存する。配置距離と配線遅延との間の相関は、ファンアウトと配線遅延との間の相関よりも高い。論理合成の遅延推定器内の誤差のため、ソリューションが論理合成時には有効であるように見えても、配置と配線作業の後に無効であると判明することがある。
【0008】
設計レイアウト(例えば、配置と配線)の後、サイズ変更またはバッファリングのような制限付きの最適化(インプレース最適化と呼ばれる)のみが通常実行される。しかし、インプレース最適化では、制限付きの改善しか得られない。インプレース最適化で、タイミング制約条件を満たすようにソリューションを調整できない場合、論理合成の調整を実行することにより、論理合成や配置と配線の反復が生じて費用が増大する。
【0009】
クリティカル・パスの遅延短縮のための合成と論理回路の最適化は、論理回路を設計し、実装するうえで重要なステップである。合成段階で不正確な遅延推定だと、設計レイアウトが無効になる可能性があるため、よい品質の最適化結果を得るために正確な配線遅延情報を用意するのが望ましい。タイミング要件(例えば、スラック要件)を満たすように論理合成を改善しなければならない場合、合成と設計レイアウトとを繰り返さなければならず費用がかかる。スラックとは、望む遅延と実際の(推定または計算された)遅延との差のことであることに注意されたい。望む遅延が実際の遅延よりも大きい場合、スラックは正であり、そうでない場合、スラックは負である。通常、タイミング要件を満たすためにはスラックを正にする(またはゼロに近づける)必要がある(例えば、配線遅延を減らしてスラックを高めることで)。例えば、合成中に、トータル・ネガティブ・スラック・アルゴリズム(例えば、カリフォルニア州のSynplicity,Inc.社が販売している回路設計コンパイラSynplifyで使用されている)では、スラックが改善に対する候補としてネイティブであるすべての場合を考慮するが、それは、ネガティブ・スラックを持つ候補はどれも、物理設計後、クリティカルになりうるからである。タイミング要件が満たされるようにスラックを正の値にするのがふつうである。
【発明の開示】
【発明が解決しようとする課題】
【0010】
回路のその後の実装(例えば、配置と配線)で発生しうる逸脱に関する設計パラメータの感度に応じて回路設計(例えば、合成ソリューション)を自動的に修正する方法と装置が本明細書では説明される。本発明のいくつかの実施形態は、この節で要約されている。
【課題を解決するための手段】
【0011】
本発明の一態様では、回路を設計する方法は、第1の回路設計(例えば、配置ソリューションがある場合またはない場合の技術特有のネットリスト)の実装で設計制約条件(例えば、タイミング制約条件、最大静電容量、最大遷移、最大クロストーク)に違反する可能性を判定することと、設計制約条件に違反する可能性を低減するように第1の回路設計を修正することを含む。一例では、第1の回路設計の実装は、第1の回路設計を実装するための配線ソリューションを含み、第1の回路は、論理素子のインスタンスのサイズ設定、信号のバッファリング、信号の負荷遮蔽、論理素子の最も弱いドライバのサイズ設定、またはその他の操作を通じて修正される。一例では、設計制約条件は、タイミング制約条件を含む(例えば、回路の最悪ネガティブ・スラック、第1の回路設計における論理素子のインスタンスのスラック、第1の回路設計におけるパス上の遅延、回路のトータル・ネガティブ・スラックなど)。回路のトータル・ネガティブ・スラックは、回路のすべての端点におけるすべてのネガティブ・スラックの総和である。回路の端点は、パスの終端となる回路内の一点である。一例では、第1の回路設計を修正することは、第1の回路設計の実装における不確定性による論理素子のパラメータに対する設計制約条件により制約されるパラメータの感度に応じて修正の論理素子のインスタンスを選択することを含む。別の例では、第1の回路設計を修正することは、第1の回路設計の実装における不確定性によるパス上の論理素子の少なくとも1つのパラメータに対する設計制約条件により制約されるパラメータの感度に応じて修正対象のパスを選択することを含む。一例では、設計制約条件に違反する可能性は、第1の回路設計における論理素子のインスタンスに接続するネットの推定されるパラメータ(例えば、ネット長、ネット静電容量、ネット抵抗、ネット・トポロジ)の発生しうる変化から決定される。一例では、多数の候補が第1の回路設計の実装における不確定性に対する感度に基づいて第1の回路設計の論理素子のインスタンスから決定された後、その数の候補の部分集合が選択的に修正される(例えば、候補を通る多数のパスを表す流れに応じてその多数の候補のうちから1つの候補を選択し、選択された候補をサイズアップする、または候補のグラフに対し最小カットを実行する、そのカット上の候補をサイズアップする)。一例では、サイズアップは、全体的設計制約条件を下げない範囲でのみ実行される(例えば、最悪のネガティブ・スラック)。
【0012】
本発明は、これらの方法を実行するデータ処理システムを含むこれらの方法を実行する方法と装置、およびデータ処理システム上で実行した場合にこれらの方法をシステムに実行させるコンピュータ可読媒体を含む。
【0013】
本発明の他の特徴は、付属の図面と以下で述べる詳細な説明とから明らかになる。
【0014】
本発明は、付属の図面の図において限定されることなく例を使用して説明され、類似の参照番号は類似の要素を示す。
【発明を実施するための最良の形態】
【0015】
以下の説明および図面は、本発明を例示するものであり、本発明を制限するものと解釈すべきではない。本発明を完全に理解できるようにするため、多数の具体的詳細を説明する。しかし、いくつかの場合には、本発明の説明をわかりにくくすることを避けるため、よく知られているまたは従来の内容については詳述しない。本開示の一実施形態を参照していても、同じ実施形態を参照する必要があるわけではなく、そのような参照は少なくとも1つを意味する。
【0016】
本発明の少なくとも1つの実施形態は、回路設計の実装において設計制約条件に違反する可能性が低減されるように(例えば、配置と配線の後に)回路設計(例えば、技術特有の設計の合成ソリューション)を最適化しようとする。一実施形態では、タイミング目標の違反に関わる確率を低くするための変換についてインスタンスの最小の集合が選択される。
【0017】
本発明の方法の多くは、従来の汎用コンピュータ・システムなどのデジタル処理システムにより実行することができる。1つの機能のみを実行するように設計またはプログラムされた専用コンピュータも使用することができる。
【0018】
図1は、本発明とともに使用できる代表的なコンピュータ・システムの一例の図である。図1はコンピュータ・システムのさまざまなコンポーネントを例示しているが、そのような詳細は本発明と密接に関連していないためコンポーネントを相互接続する特定のアーキテクチャまたは方法を表すことは意図されていないことに注意されたい。また、より少ないコンポーネントまたはおそらくより多いコンポーネントを有するネットワーク・コンピュータやその他のデータ処理システムも、本発明とともに使用できることは理解されるであろう。図1のコンピュータ・システムは、例えば、Sunワークステーション、またはWindows(登録商標)オペレーティング・システムが稼働しているパーソナル・コンピュータ、またはApple Macintoshコンピュータとすることができる。
【0019】
図1に示されているように、コンピュータ・システム101は、データ処理システムの一形態であり、マイクロプロセッサ103に結合されているバス102を含み、さらにROM 107、RAM 105、不揮発性メモリ106を備える。マイクロプロセッサ103は、図1の例に示されているように、キャッシュ・メモリ104に結合される。バス102は、これらのさまざまなコンポーネントを相互接続してつなぎ合わせ、またこれらのコンポーネント103、107、105、106をディスプレイ・コントローラやディスプレイ・デバイス108に相互接続し、またマウス、キーボード、モデム、ネットワーク・インターフェイス、プリンタ、スキャナ、ビデオカメラ、その他の当業でよく知られているデバイスとすることができる入出力(I/O)デバイスなどの周辺デバイスに相互接続する。通常、入出力デバイス110は、入出力コントローラ109を通じてシステムに結合される。揮発性RAM 105は、通常、メモリ内のデータをリフレッシュまたは保持するために絶えず電力を必要とするダイナミックRAM(DRAM)として実装される。不揮発性メモリ106は、通常、磁気ハード・ドライブまたは磁気光ドライブまたは光ドライブまたはDVD RAMまたはシステムの電源を切った後もデータを保持する他の種類のメモリ・システムである。通常、不揮発性メモリは、ランダム・アクセス・メモリであるが、そうである必要はない。図1は、不揮発性メモリがデータ処理システム内の残りのコンポーネントに直接結合されているローカル・デバイスであることを示しているが、本発明では、モデムまたはEthernet(登録商標)インターフェイスなどのネットワーク・インターフェイスを通じてデータ処理システムに結合されているネットワーク記憶デバイスなどのシステムから離れた場所にある不揮発性メモリを使用することができることは理解されるであろう。バス102は、当業でよく知られているように、さまざまなブリッジ、コントローラ、および/またはアダプタを通じて互いに接続されている1つまたは複数のバスを備えることができる。一実施形態では、I/Oコントローラ109は、USB周辺機器を制御するためのUSB(Universal Serial Bus)アダプタ、および/またはIEEE−1394周辺機器を制御するためのIEEE−1394バス・アダプタを備える。
【0020】
この説明から、本発明の複数の態様は、少なくとも一部は、ソフトウェアで実現できることは明白であろう。つまり、これらの手法は、ROM 107、揮発性RAM 105、不揮発性メモリ106、キャッシュ104、またはリモート記憶デバイスなどのメモリに格納されている命令シーケンスを実行するマイクロプロセッサなどのプロセッサに対する応答として、コンピュータ・システムまたはその他のデータ処理システム内で実行することができる。さまざまな実施形態において、本発明を実装するために、配線接続されている回路をソフトウェア命令と組み合わせて使用することができる。したがって、これらの手法は、ハードウェア回路とソフトウェアの特定の組み合わせに限定されず、またデータ処理システムにより実行される命令の特定のソースにも限定されない。さらに、この説明全体を通して、説明を簡単にするため、さまざまな機能や操作はソフトウェア・コードにより実行されるか、またはソフトウェア・コードにより引き起こされるものとして説明されている。しかし、当業者であれば、そのような表現が意味しているのは、それらの機能がマイクロプロセッサ103などのプロセッサによるコードの実行から結果として生じるということであると理解するであろう。
【0021】
機械可読媒体が、データ処理システムにより実行されたときに本発明のさまざまな方法をシステムに実行させるソフトウェアとデータを格納するために用いられる。この実行可能ソフトウェアとデータは、図1に示されているように、例えば、ROM 107、揮発性RAM 105、不揮発性メモリ106、および/またはキャッシュ104をはじめとするさまざまな場所に格納することができる。このソフトウェアおよび/またはデータの一部分を、これらの記憶デバイスのうちのいずれか1つに格納することができる。
【0022】
したがって、機械可読媒体は、機械によりアクセス可能な形態で情報を提供(つまり、格納および/または伝送)するメカニズムを備える(例えば、コンピュータ、ネットワークデバイス、パーソナルデジタルアシスタント、製造装置、1つまたは複数のプロセッサの集まりを含むデバイスなど)。例えば、機械可読媒体は、記録可能/記録不可能媒体(例えば、読み取り専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュ・メモリ・デバイス、などだけでなく、電気、光、音響、またはその他の形態の伝搬信号(例えば、搬送波、赤外線信号、デジタル信号など)などをも含む。
【0023】
標準的な回路設計プロセスでは、論理合成ツールで、与えられた機能の集合を実行する論理素子回路網を作成する。論理合成ツールでは、遅延、領域、その他の設計目標を最適化するため論理回路を変形し再構成することができる。ゲート・レベル論理素子は、ベンダ固有のプリミティブにマッピングされ、技術特有のネットリストを生成する。その後、マッピングされた技術特有のネットリストは、チップ上のさまざまなブロックに割り当てられる。次に、配置と配線ツールでは、マッピングされたネットリストのベンダ特有のプリミティブをチップ上に配置し、それらのプリミティブの間に配線を行う。配置と配線の後、インプレース最適化は、通常、さらにタイミングを最適化するために実行される。インプレース最適化は、論理素子の配置を著しく変更することなく論理素子に対する制約付き変更を行う。配置と配線情報が利用できるようになった後、詳細なタイミング解析を実行して、タイミング制約条件がすべて満たされているかどうかを正確に判別することができる。タイミング要件すべてが満たされているわけではないと判断された場合、論理合成により生成された設計は、タイミング要件を満たすように変更される。
【0024】
そのため、回路設計のための合成ツールの遅延予測の正確さは、よい品質の結果の生成のためには重要である。通常、バックエンド・ソフトウェア・プログラムは、合成ツールの設計結果を回路の詳細実装に使用する。例えば、配置と配線ツールは、合成ツールの設計結果を設計レイアウトに使用する。合成推定遅延に基づいて合成ツールにより予測されるクリティカル・パスの遅延は、設計の後段階(例えば、配線、レイアウトなど)から抽出された詳細データ(例えば、寄生データ、詳細配線情報)に基づいて計算されたタイミング目標との密接な忠実関係になければならない。合成ツールは、ハンドオフに先立ってこのバックエンド遅延を正確に予測する場合、合成ツールとバックエンド・ソフトウェア・プログラムを伴う費用のかかる反復を実行する必要性が避けられる。
【0025】
しかし、合成ツールは、常にこのバックエンド遅延を正確に予測できるわけではない。ほとんどのタイミング目標は、長い配線によって引き起こされるセル遅延とネット遅延が関わる。長い配線遅延は、通常、長い配線をバッファリングし、それから、さらに小さな配線に効果的に分割することにより、合成において標準的な形で取り扱われる。そのため、セルの遅延を正確に予測することで、タイミング目標のよい予測を出すことができる。セルの遅延は、通常、セルの静電容量性負荷の関数である。静電容量性負荷の主要コンポーネントは、セルのドライバに接続されたネットの静電容量と負荷ピンの容量性負荷を含む。負荷ピンの静電容量は、設計の論理接続属性に基づいて推論できる。しかし、ネットの静電容量は、設計レイアウトが完了したときにしか正確に得ることができない。そのため、合成ツールは、最終的に設計レイアウトを作成するバックエンド・ソフトウェアのビヘイビアを予測する負担を有する。
【0026】
正確な遅延を予測するのではなく、回路の一部分(例えば、ゲート、またはパス)がタイミング目標の違反に関わる確率を評価できるように、遅延の確率分布を決定することができる。本発明の少なくとも一実施形態では、バックエンド・ソフトウェア・プログラムを伴う反復の必要性を軽減するためにタイミング制約条件に違反する確率の高い回路の部分に対し変換を実行しようとする。
【0027】
例えば、その後の実装に発生しうる逸脱(例えば、合成ツール内に埋め込まれたタイミング・エンジンにより推定されるものから逸脱する)によるタイミング制約条件に関するタイミング・パラメータの感度は、その後の実装における違反の確率を示す指標となる。本発明のいくつかの実施形態による合成ツールは、変換を実行して、タイミング目標の変化が、設計のレイアウトの実行後に、タイミング制約条件に関して、重要な意味を持たないようにする。本発明のいくつかの実施形態では、遅延推定からの可能な逸脱は、クリティカル・パスにそって小さく、かつクリティカルに近いパスにそって小さいことが望ましい。そのため、本発明の実施形態による合成ツールでは、回路の可能なレイアウト後クリティカル部分やクリティカルに近い部分を識別し、それらの部分に対して変換を実行し、クリティカル・パスとクリティカルに近いパス上の遅延の変動を低減し、それによって、設計レイアウトが実装された場合にタイミング制約条件違反が生じる可能性を低減する。
【0028】
タイミング目標と合成ツールの推定におけるその不確定性は、主に、ネット・ファンアウト、インスタンスの駆動長、配線負荷などのその他の推定因子、また物理的合成では、経路長、輻輳効果、配線の単位長さ当たりの抵抗と容量などの技術情報に依存する。輻輳は、結合容量と配線長(例えば、迂回路を引き起こす)の両方に影響を及ぼす。
【0029】
例えば、長いネットを駆動する低い駆動強度のセルがある場合、ネットの長さの小さな変動であっても、駆動セルの遅延に大きな影響を及ぼす可能性がある。すべての低い駆動強度セルを完全に排除し、高い駆動強度セルのみを使用することができるが、このようなアプローチでは、領域と負荷のペナルティが増大し、ひいては、すべてのタイミング目標に悪影響を及ぼす。そのため、本発明の少なくとも一つの実施形態では、駆動強度を改善する必要があるセルを選択的に選ぶ。
【0030】
本発明の少なくとも一実施形態では、回路設計のネットリスト内のセルの部分集合に対し設計変更を選択的に実行する。変換のインスタンスの縮小された集合(例えば、最長集合)を識別するためのさまざまなアルゴリズムについて、以下で説明する。
【0031】
本発明の少なくとも一実施形態では、推定された物理データに基づいてタイミング制約条件違反の確率を推定する。例えば、感度値に基づく違反の確率を使用して、インスタンスの改善を優先順位付けし、物理設計後に違反の確率が高いものが違反の確率が低いものに先立って改善されるようにする。それによって、候補リストは、違反の確率に基づき最小にすることができる。改善後の面積利用度がネガティブ・スラックを持つすべてのインスタンスの改善よりも小さくなるように、通常、候補リストの小さな集合を改善のために選択することができる。
【0032】
本発明の一実施形態では、設計変更のために回路の一部分が選択され、部分(例えば、論理素子のインスタンス、または回路内のパス)がタイミング目標の違反に関わりうる確率に基づき、設計の後の方の段階でタイミング制約条件に違反する確率を低減するようにする。例えば、選択は、タイミング目標の違反に関与するそれぞれのゲートの確率(例えば、ゲートによる不確定性への感度)に基づいて実行できるか、または選択は、タイミング目標の違反に関与するそれぞれのパスの確率に基づいて実行できる。
【0033】
本発明の一実施形態では、タイミング目標の違反に関わるかどうかを判別するために、インスタンスを一度に1つずつ調べる。例えば、駆動強度を改善するためにインスタンスの部分集合を選択することができ、サイズアップが設計の最悪のネガティブ・スラックの低下を引き起こさない、またサイズアップがさらに、あらかじめ決められている上限の範囲内で設計の面積利用度を保持するもののみを含めることによりインスタンスの部分集合のサイズを最小にする。
【0034】
本発明の一実施形態では、設計の最悪のネガティブ・スラックに応じて、インスタンスの部分集合が選択される。例えば、回路の一部分が、スラックがしきい値よりも悪い(例えば、しきい値と最悪のネガティブ・スラックの間にある)インスタンスに対する設計変更に対して選択される。負荷の変化に対するこれらのインスタンスの感度を判別することができるが、これについては、以下で詳述する。負荷の増大によりインスタンスのスラックが最悪のネガティブ・スラックを超える場合、サイズ改善のため候補のリスト上でインスタンスが選択される。
【0035】
本発明の他の実施形態では、スラックがネガティブであるインスタンスの部分集合が選択される。この部分集合内のすべてのインスタンスの感度が計算され、それらのインスタンスが、減少する感度値に基づいて設計変更に対して優先順位付けされる。このシナリオでは、設計のトータル・ネガティブ・スラックは低下しないことが保証される。
【0036】
負荷の変化は、インスタンスの配置情報が利用可能でない場合に配線負荷モデルの摂動に基づいて推定することができる。物理的合成の場合、インスタンス上の負荷のこの変化は、さらに正確な物理的情報に基づいて判定することができる。
【0037】
例えば、物理的合成時に詳細な配置が実行される場合、設計の中のすべてのインスタンスの正当な場所が利用可能である。ネットで推定する最も可能性の高い経路を決定するために、高速大域配線経路推定を実行できる。これらの推定された経路から、経路の予測される輻輳マップが決定される。
【0038】
輻輳により、配線の結合容量が変動する。ひどく輻輳している領域内を引き回されるネットが輻輳領域の周りを迂回される可能性は、経路資源がその領域内で引き回される必要のあるネットの要求量よりも小さい場合に、最も高い。これらのタイプのネットは、ネット長の増大が生じる可能性が最も高い。
【0039】
詳細配線の後のネットのレイヤ割り当てでも、配線の抵抗と静電容量の予測不可能な変化が生じる可能性がある。輻輳領域内のインスタンスの感度を下げると、詳細配線の後のタイミング要件の違反を引き起こす可能性のある予測不可能な変化の効果を低減することができる。
【0040】
ネットが引き回される領域の過剰な輻輳に加えて、近隣領域内にも過剰な輻輳が存在する場合、迂回路の量が増える可能性がある。したがって、これらのタイプのネットに対し発生する可能性のある長さの変化も、それに応じて推定できる。
【0041】
一実施形態では、配線長の増大は、ネットのセグメントの経路輻輳だけでなく近隣領域経路輻輳にも依存する関数を使用して推定することができる。典型的な大域的配線経路推定では、ネットの実際の長さに対する下限が得られる。そのため、一実施形態では、下限の長さを超えるネット長の(経時的)摂動の量を表す実験的(または統計的)結果に基づく因子が加えられる。
【0042】
ネット長の摂動により、インスタンスのスラックが最悪のネガティブ・スラックを超える場合、ネットの駆動素子は、摂動の効果がスラックの著しい変化に寄与しなくなる(例えば、スラックがしきい値よりも悪くなる)までサイズアップする必要がある。
【0043】
本発明の一実施形態では、非最適経路(el、経路の推定長)であることによるネット長の増大、ネットのファンアウト(f)、ネット・セグメントの輻輳係数(cg)、ネット・セグメントの近隣の輻輳係数(ncg)、輻輳しきい値(ct)、標準セル行の高さ(rt)に応じて、発生しうるネット静電容量(ncc)の変化が推定される。例えば、発生しうるネット静電容量(ncc)の変化は、以下のように推定できる。
【0044】
ncc=k0×el×f+k1×rt cg≦ctの場合
【0045】
ncc=k2×cg+k3×ncg cg>ctの場合
【0046】
ただし、k0、k1、k2、k3は、統計データに基づいて導かれるパラメータである。例えば、バックエンド・ソフトウェア・ツールを使用して多数の合成ソリューションの配置と配線が行われた後、合成ソリューションに基づいて推定されたものと設計レイアウトの後に決定されたものとの間のネット静電容量の実際の変化を決定することができる。これらのソリューションに対する実際の変化と輻輳係数との相関を計算して、パラメータk0、k1、k2、k3を決定することができる。前の設計ソリューションに対する設計レイアウトの後の実際の変化に基づいて(例えば、異なる回路の集合、所定の回路に対する前の多数の反復、その他に基づいて)パラメータk0、k1、k2、k3を導くために、曲線当てはめ手法を使用できる。曲線当てはめ手法は、さらに、ネット静電容量の発生しうる変化の推定に対する公式の形を決定するためにも使用することができる。そのため、上で例示されているものと異なる式(または方程式)も使用できるが、異なる数の統計学に基づくパラメータを必要とする場合がある。
【0047】
ネット長の変化も、同様にして決定できることに注意されたい。輻輳係数が推定できない場合(例えば、回路の素子のインスタンスに関する位置情報が利用できない場合)、輻輳係数を輻輳しきい値よりも小さい値に設定し、ネット静電容量(またはネット長)の推定された変化が輻輳係数に基づかないようにすることができる。
【0048】
タイミング目標パラメータ(例えば、遅延、スラックなど)は、通常、ネット静電容量の関数である。そのため、ネット静電容量の変化は、タイミング目標パラメータの変化を判別するために使用することができる。
【0049】
感度係数は、i)発生しうる変化を考慮しないタイミング目標パラメータ(tobj)と、ii)発生しうる変化のあるタイミング目標パラメータ(tobjn)から決定することができる。さらに、タイミング目標パラメータ(tobjt)は、感度係数の決定の際に使用することができる。例えば、しきい値は、タイミング制約条件に違反する結果を超える、タイミング目標パラメータに対する限界値とすることができる。例えば、感度係数(sf)は以下のように評価することができる。
【0050】
sf=(tobjn−tobj)/tobjt
【0051】
そのため、感度係数は、発生しうる実装の変化による基準値(例えば、しきい値)に関してタイミング目標パラメータの変化が増大すると増大する。
【0052】
さまざまな代替感度係数定義を使用して、感度を定量化し、その後の実装における制約条件違反の確率を示すことができることが理解される。例えば、定式化は、以下のように、しきい値に近いタイミング目標を持つインスタンスについてより高い感度を示すために使用することができる。
【0053】
【数1】

【0054】
一実施形態では、感度係数を使用して、修正(または設計変更)対象の回路設計の部分を選択する。例えば、インスタンス・ベースのアプローチでは、個々のインスタンス要素によるタイミング・パラメータに対する感度を評価し、修正対象の敏感な素子を判別し、パス・ベースのアプローチでは、個々のパスに対するインスタンス要素によるタイミング・パラメータの感度を評価して、修正対象の敏感なパス(およびパス上の敏感な素子)を決定する。さらに、敏感な素子の部分集合を修正対象の敏感なパスから選択することができる。
【0055】
それとは別に、インスタンスのパス感度は、設計内のタイミング終点から開始するすべてのパスの順方向と逆方向の幅優先探索(breadth first)を実行することから決定することができる。タイミング終点の集合は、ラッチ、レジスタ、フリップ・フロップ、I/Oポートを含む。例えば、パス感度spathを決定することは、以下を含む。
【0056】
a)設計内のすべてのインスタンスでインスタンス感度(sinstance)を計算する。
【0057】
b)逆方向幅優先探索を実行して、以下のように駆動インスタンスJn(n=0,1,...,N)を持つインスタンスIでの逆方向パス感度(sbackward)を計算する。
【0058】
backward(I)=sinstance(I)+Max(sbackward(J0),sbackward(J1),...,sbackward(JN))、
【0059】
c)同様に、順方向幅優先探索を実行して、以下のように負荷インスタンスJm(m=0,1,...,M)を持つインスタンスIでの順方向パス感度(sforward)を計算する。
【0060】
forward(I)=sinstance(I)+Max(sforward(J0),sforward(J1),...,sforward(JM))、
【0061】
d)以下からインスタンスIのパス感度を決定する。
【0062】
path(I)=Max(sforward(I),sbackward(l))
【0063】
駆動インスタンスは、負荷インスタンスへの直接入力として出力を生成し、負荷インスタンスは、駆動インスタンスから直接入力を受け取ることに注意されたい。
【0064】
インスタンスまたはパスについて感度を定義する方法は多数あることは理解されるであろう。例えば、完全に確率論的なアプローチを使用することにより、タイミング・パラメータの変化の確率と平均期待値を決定することができ、これから、感度指標が決定されるが、確率および平均期待値の評価は多量の計算を必要とする場合がある。それとは別に、感度指標は、輻輳領域を回避するために発生する再配線によるネット長の変化などのさまざまな要因により識別された決定論的変化に基づいて評価することができる。さらに、輻輳係数などの統計学に基づくパラメータや決定論的に決定されたパラメータを組み合わせて、感度係数に対する実験式を定式化することができる。例えば、合成時に、ネット長は、ネットのファンアウトとブロック・サイズに従って配線負荷テーブルから求めることができる。ルックアップ値に基づく変化の特定の割合がネット長の可能な変化であると仮定することができる。それとは別に、配線負荷テーブルでネット長の変化の平均値を生成し、可能な変化を、ファンアウトとブロック・サイズに従ってルックアップするようにもできる。
【0065】
パスに基づくアプローチでは、パス遅延がタイミング目標の違反を引き起こす可能性がある確率が評価される。例えば、多数の低駆動セルを持つパスに対するタイミング目標は、低駆動セルが少ししかないパスに比べて違反される可能性が高い。タイミング目標の違反の確率を正確に評価することは困難であるが、発見的アプローチを使用すると、タイミング目標の違反の確率を示す指標を決定することができる。例えば、パスに対するすべてのネット・セグメントの決定論的変化を識別し、パスの新しいタイミング目標の評価に組み込み、パス内の感度を決定することができる。その場合、バックエンド・ツール内のパスに対し適用されるすべての変化の最悪の場合のシナリオが仮定される。
【0066】
タイミング目標の違反の確率を低減することを目的として(また、変換を適用する順序を決定するため)変換される必要のあるインスタンスの最小集合を選択するために、異なる選択方式を使用することができる。例えば、複数の候補を、感度に基づいて選択することができる。例えば、インスタンスのタイミング目標(例えば、遅延、またはゲートのスラック)がネットのネット長(またはネット静電容量)の変化に敏感な場合、ネットの駆動素子はサイズアップの候補として選択される。それとは別に、ネットの駆動素子を複製することができ、これにより駆動素子は効果的にサイズアップされる。駆動素子が複製された後、元の駆動素子の負荷素子は、元の駆動素子と新しい駆動素子の負荷素子として分割することができる。それとは別に、元の駆動素子と新しい駆動素子は、負荷素子をまとめて駆動することができる。同様に、パスのタイミング目標(例えば、パスにそっての遅延)がパス上の1つまたは複数のネットのネット長(またはネット静電容量)の変化に敏感な場合、パスは変換の候補として選択される。さらに、候補は、設計目標に対する影響に応じて選択することができる。例えば、クリティカル・パスまたはクリティカルに近いパス上の敏感な素子を選択することができる。さらに、回路内の影響の相対的重要度または範囲に基づいて、敏感な素子を選択することができる。例えば、多くのパス上にある敏感な素子は、少ないパス上にある類似の素子よりも優先度が高い。
【0067】
例えば、1パスの物理的合成が実行された後、インスタンスの正当な位置を決定することができる。その後、敏感なインスタンスの候補集合を、感度基準に基づいて選択することができる。候補は、流れに基づいてソートされ、多数の異なるパスはそれらの候補のそれぞれを流れる。流れの大きな候補は、流れの小さな候補が処理される前に処理される。1つの素子のサイズアップは、他の関連するタイミング・パラメータに悪影響を及ぼす可能性があるため(例えば、上流素子のスラック)、サイズアップ・オペレーションは、これらの関連するタイミング・パラメータを許容不可能なレベルにまで低下させない範囲に限り実行される。したがって、例えば、候補のサイズアップが設計目標を悪化させないと判断された場合(例えば、最悪のネガティブ・スラック)、候補はサイズアップされ(例えば、所定の量だけ)、そうでなければ、候補は設計目標が低下しない限りサイズアップされ、バッファリング(オプション)される。感度を十分に引き下げるために候補のサイズアップおよびバッファリングを実行できない場合(例えば、他の設計制約条件のため)、候補の最も弱い駆動がサイズアップされ、本発明の一実施形態のさらに大きなインスタンスを駆動できる。
【0068】
バックエンドにハンドオフされるネットリスト内に敏感なインスタンスが存在しない場合、実際の経路トポロジ内にある程度の変動があっても、設計内のクリティカル・パスの変化(例えば、合成段階の推定からの逸脱)によりタイミング制約条件には違反しない(または違反される可能性がきわめて小さい)。
【0069】
本発明の他の実施形態では、敏感なインスタンスを通るパスを表すグラフが構築され、サイズアップするインスタンスを選択するためにグラフの最小カットを実行できる。最小カット・オペレーションにより、グラフを2つの非連結部分に分離するグラフ内の最小要素の集合を見つける。最小カット・オペレーションを実行する知られているアルゴリズムを使用することができる。最小カットの上の敏感な素子の集合は、回路の2つの部分の間の通信に影響を及ぼす最小の敏感な素子の部分集合を表す。そのため、最小カットの上のそのような敏感な素子の集合のサイズアップは、回路設計における感度を低減する費用効果のある手段である。そのカット内のインスタンスをサイズアップした後(例えば、所定の量について、または最悪のネガティブ・スラックを悪化させない範囲で)、さらに最小カット・オペレーションを実行することができる。最小カット・ベースの選択は、繰り返し、または他の選択方式と組み合わせて実行することができる。一例では、このグラフは、信号パスを通るパス上の敏感なインスタンスの位置決めを表し、敏感でないインスタンスは、このグラフ上には表されない。
【0070】
この説明から、当業者であれば、さまざまな異なる選択と順序付け方式(例えば、異なる組み合わせや変更形態とともに、この説明の例で例示されているように)を使用して、サイズアップする必要のあるインスタンスの個数を効果的に減らし、インスタンスのサイズアップの費用有効性を高めることができる。
【0071】
図2は、本発明の一実施形態により回路を設計する方法を示す図である。オペレーション201で第1の回路設計(例えば、技術特有のネットリスト、技術マッピング・ネットリスト、または回路図)を受け取った後、オペレーション203で、第1の回路設計を実装するために生成される第2の回路設計内で複数の設計制約条件(例えば、タイミング)に違反する可能性を判別する。例えば、合成ソリューションについて詳細設計レイアウトの後(例えば、配置と配線後)にタイミング制約条件に違反する可能性を決定することができる。オペレーション205では、第1の回路設計(例えば、素子のサイズ設定、信号のバッファリング、負荷の遮蔽など)を修正して、第1の回路設計の実装において複数の設計制約条件に違反する可能性を低減する。
【0072】
図3は、本発明の一実施形態により回路を最適化する方法を示す図である。オペレーション221で第1の回路設計(例えば、ネットリスト、技術特有のネットリスト、配置ソリューション、配置と配線前の設計ソリューション)を受け取った後、オペレーション223で、第1の回路設計に対する1つの設計制約条件パラメータ(例えば、ネット上またはパス上の遅延、最悪ネガティブ・スラック、最速のシステム・クロック)を推定する。オペレーション225では、第1の回路設計内の不確定性による設計制約条件パラメータの感度を判別する。例えば、合成ツールにより推定される経路と異なる配線ソフトウェア・ツールで決定された経路によるタイミング・パラメータの変化である(例えば、輻輳領域を回避する迂回路、または推定からの逸脱によるもの)。オペレーション227では、第1の回路設計内の不確定性による設計制約条件パラメータの少なくとも感度に基づいて第1の回路設計を最適化する。この最適化は、さらに、修正、関連設計パラメータの許容される低下レベル、感度がクリティカルであるかどうかなどの費用有効性に基づくこともできる。
【0073】
図4は、本発明の一実施形態により回路を最適化する詳細な方法を示す図である。オペレーション241で第1の回路設計(例えば、ネットリスト、技術特有のネットリスト、配置ソリューション、配置と配線前の設計ソリューション)を受け取った後、オペレーション243で、複数の設計制約条件パラメータ(例えば、ネットまたはパスによる遅延)を推定する。オペレーション245では、第1の回路設計を実装する際の不確定性を判別する(例えば、第1の回路設計の実装においてネット長および/またはネット静電容量に発生しうる変化)。オペレーション247で、第1の回路設計を実装する際の不確定性による設計制約条件パラメータの不確定性を表す指標(例えば、感度係数)を決定する。オペレーション249で、少なくともそれらの指標に基づいて第1の回路設計の一部分を選択的に修正する。
【0074】
図5〜6は、本発明のいくつかの実施形態により回路を選択的に修正する詳細な方法を示す図である。
【0075】
図5のオペレーション301で、設計ソリューション(例えば、技術特有のネットリスト)を生成するため第1の回路の物理的合成を実行する。オペレーション303では、状況に応じて、インスタンス(例えば、論理素子)の位置を決定する。オペレーション305で、第1の回路設計を実装する際の不確定性による1つまたは複数の設計制約条件パラメータの不確定性を表す指標を決定する。オペレーション307で、修正する少なくともいくつかの指標に基づいて第1の回路の複数の部分(例えば、インスタンスまたはパス)を決定する。オペレーション309では、複数の部分から1つを選択する(例えば、複数の流れを持つ1つのインスタンスを選択するか、または最小カットの上の敏感な素子の集合を選択するか、または敏感なパスから敏感なインスタンスを選択する)。一実施形態では、選択は、オペレーション305で決定された指標に基づく。例えば、最も敏感な指標を持つものが、変換対象として最初に選択される。オペレーション311で、選択されたものに対し修正を実行する(例えば、サイズアップ、負荷の遮蔽、信号のバッファリング)。オペレーション313で、その修正が受け入れ可能である(例えば、選択されたものに対する修正が、最悪のネガティブ・スラックを低下しない)と判断された場合には、オペレーション315は修正のために次のものを選択することに進み、そうでない場合には、オペレーション317は、他の候補を処理するために修正を破棄する。
【0076】
図6のオペレーション331では、第1の回路設計の実装に際して設計制約に違反する可能性があるかどうかを示す指標を決定する。オペレーション333で、少なくともそれらの指標に基づいて第1の回路設計から複数の修正候補を決定する。オペレーション335で、修正候補をソートする(例えば、流れ、それぞれの候補を通る異なるパスの個数に応じて)。オペレーション337で、候補を選択する(例えば、最大の流れとともに)。オペレーション339では、候補をサイズアップする。オペレーション341で、その修正がタイミング制約条件全体を悪化すると判断した場合、オペレーション345で、サイズを修正し、および/またはバッファまたは負荷遮蔽を使用し(すなわち他の設計変更を適用し)、そうでなければ、次の候補をサイズ設定対象として選択する。一実施形態では、この候補は、感度を低減する(または感度を十分に下げる)ためにサイズアップもバッファリングも行えない場合、その候補の最も弱い駆動がサイズアップされる。
【0077】
本発明の一実施形態では、修正対象に候補を選択するループ(例えば、図5のオペレーション315から309まで、または図6のオペレーション343から337まで)は、最大利用限度に到達するまで、または感度を低減する改善がしきい値を下回るまで、続けられる。例えば、最大領域利用度制約条件(または、領域使用度の最大増加)を使用して、サイズアップおよび/またはバッファリングの対象の候補を選択する反復を停止することができる。さらに、候補のサイズアップおよび/またはバッファリングを行っても感度の改善は非常に限られている場合には、反復を終了させることができる。
【0078】
本発明のさまざまな例は、この説明からタイミング制約条件とともに設計制約条件として例示されているが、当業者には、本発明のさまざまな方法は、さらに、初期段階の設計の部分(例えば、敏感なインスタンス)を選択的に変換し、初期段階の設計に基づく後の段階の設計において他の設計制約条件に違反する可能性を低減することもできることは明白であろう。感度解析を実行して、設計規則違反のインスタンスの感度を判定する(回路内の最大静電容量、最大遷移、および/または最大クロストークなど)。これらの設計規則(または制約条件)に違反する可能性を減じるために、回路の部分(例えば、インスタンスまたはパス)の感度に基づいて変換(例えば、サイズ設定)を選択的に実行できる。
【0079】
本発明のほとんどの実施形態はHDL設計合成ソフトウェア・プログラムで使用することが意図されているが、本発明は、そのような使用に必ずしも限定されない。他の言語とコンピュータ・プログラムの使用も可能である。例えば、コンピュータ・プログラムは、ハードウェアを記述するように書くことができ、したがって、HDLの式とみなすことができる。それとは別に、本発明は、いくつかの実施形態では、HDLを使用せずに作成された論理表現、例えば、ネットリストの割り当て、と割り当て解除を実行することができる。本発明のいくつかの実施形態は、限定はしないがHDL合成システムで使用する文脈で説明し、特に、ベンダ特有の技術/アーキテクチャを含む集積回路とともに使用するように設計されたものについて説明する。よく知られているように、ターゲット・アーキテクチャは、通常、ICの製造会社により決定される。本発明のいくつかの実施形態は、LSI Logic、NEC、IBM、Artisan Components Incなどのベンダから出されている、構造化ASICとプラットフォームASICを含む、特定用途向け集積回路(ASIC)と併用することができる。本発明のいくつかの実施形態は、プログラマブルICと併用することもできる。ターゲット・アーキテクチャの一例は、カリフォルニア州サンノゼのXilinx,Inc.社から市販されているフィールド・プログラマブル・ゲート・アレイである集積回路のプログラマブル・ルックアップ・テーブル(LUT)と関連する論理回路である。ターゲット・アーキテクチャ/技術の他の例は、Altera、Lucent Technology、Advanced Micro Devices、とLattice Semiconductorなどのベンダから出ているフィールド・プログラマブル・ゲート・アレイと複雑なプログラマブル論理デバイスのよく知られているアーキテクチャを含む。
【0080】
本明細書では、発明は特定の例示的な実施形態を参照しつつ説明がなされている。本発明は、付属の請求項で定められているように、本発明の広い精神と範囲を逸脱することなくさまざまな修正を加えられることは明白であろう。したがって、明細書および図面は、限定ではなく、説明することを目的としているものとみなすべきである。
【図面の簡単な説明】
【0081】
【図1】本発明とともに使用できるデータ処理システムのブロック図の例である。
【図2】本発明の一実施形態により回路を設計する方法を示す図である。
【図3】本発明の一実施形態により回路を最適化する方法を示す図である。
【図4】本発明の一実施形態により回路を最適化する詳細な方法を示す図である。
【図5−6】本発明のいくつかの実施形態により回路を選択的に修正する詳細な方法を示す図である。

【特許請求の範囲】
【請求項1】
第1の回路設計の実装の際に設計制約条件に違反する可能性を判定することと、
前記設計制約条件に違反する前記可能性を低減するように前記第1の回路設計を修正すること
を含む回路を設計する方法。
【請求項2】
前記第1の回路設計の実装の際に前記設計制約条件に違反する前記可能性は、前記第1の回路設計の実装が決定される前に前記設計制約条件により制約されるパラメータの推定の不確定性によるものである請求項1に記載の方法。
【請求項3】
前記可能性は、前記設計制約条件により制約される前記パラメータの第1の推定と前記設計制約条件により制約される前記パラメータの第2の推定との間の差から判定される請求項2に記載の方法。
【請求項4】
前記設計制約条件により制約される前記パラメータの前記第2の推定は、前記第1の回路設計の実装において発生しうる少なくとも1つの変更を含み、前記可能性は、前記設計制約条件のしきい値により正規化される請求項3に記載の方法。
【請求項5】
前記可能性は、さらに、前記設計制約条件のしきい値から判定される請求項3に記載の方法。
【請求項6】
前記判定することは、
前記第1の回路設計内のタイミング終点の間のパスの順方向幅優先探索と逆方向幅優先探索のうちの少なくとも一方を実行して前記パスの感度指標を判定し、前記パスの前記感度指標は前記第1の回路設計の実装の際に前記パス上で前記設計制約条件に違反する前記可能性を示すことを含む請求項1に記載の方法。
【請求項7】
前記第1の回路設計は、技術特有のネットリストを含む請求項1に記載の方法。
【請求項8】
前記第1の回路設計は、さらに、配置ソリューションを含む請求項7に記載の方法。
【請求項9】
前記第1の回路設計の実装は、前記第1の回路設計を実装するための配線ソリューションを含む請求項1に記載の方法。
【請求項10】
前記修正することは、
a)論理素子のインスタンスのサイズを設定すること、
b)信号をバッファリングすること、
c)信号を負荷遮蔽すること、と
d)論理素子のインスタンスを複製することのうちの少なくとも1つを含む請求項1に記載の方法。
【請求項11】
前記設計制約条件は、タイミング制約条件を含む請求項1に記載の方法。
【請求項12】
前記タイミング制約条件は、
a)前記回路の最悪ネガティブ・スラック、
b)前記第1の回路設計内の論理素子のインスタンスに対するスラック、
c)前記第1の回路設計内のパス上の遅延、
d)前記回路のトータル・ネガティブ・スラックのうちの1つを含む請求項11に記載の方法。
【請求項13】
前記修正することは、
前記第1の回路設計の実装内の論理素子の不確定性に敏感な前記設計制約条件により制約されるパラメータの感度に応じて修正対象の論理素子のインスタンスを選択することを含む請求項1に記載の方法。
【請求項14】
前記修正することは、
前記第1の回路設計の実装内の前記パス上の論理素子の不確定性に敏感な前記設計制約条件により制約されるパラメータの感度に応じて修正対象のパスを選択することを含む請求項1に記載の方法。
【請求項15】
前記設計制約条件に違反する前記可能性を前記判定することは、
a)ネット長、
b)ネット静電容量、
c)ネット抵抗、
d)ネット・トポロジ
のうちの1つで発生しうる変化を、
前記第1の回路設計内の論理素子のインスタンスに接続するネットについて、判定することを含む請求項1に記載の方法。
【請求項16】
前記修正することは、
前記第1の回路設計の実装における不確定性に対する感度に基づき前記第1の回路設計の論理素子の複数のインスタンスから多数の候補を決定することと、
前記多数の候補の部分集合を選択的に修正することとを含む請求項1に記載の方法。
【請求項17】
前記多数の候補の前記部分集合を前記選択的に修正することは、
流れに従って前記多数の候補から1つを選択し、前記流れは候補を通る多数のパスを表すことを含む請求項16に記載の方法。
【請求項18】
前記多数の候補の前記部分集合を前記選択的に修正することは、さらに、
前記多数の候補のうちから選択された前記1つをサイズアップすることを含む請求項17に記載の方法。
【請求項19】
前記サイズアップは、全体的な設計制約条件のレベルを落とすことなく、ある範囲内で実行される請求項18に記載の方法。
【請求項20】
前記全体的な設計制約条件は、最悪ネガティブ・スラックを含む請求項19に記載の方法。
【請求項21】
前記多数の候補の前記部分集合を前記選択的に修正することは、
修正する前記部分集合を決定するために前記多数の候補を含むグラフに対し最小カットを実行することを含む請求項16に記載の方法。
【請求項22】
デジタル処理システムにより実行された場合に回路を設計する方法を前記システムに実行させる実行可能コンピュータ・プログラム命令を格納する機械可読媒体であって、前記方法は、
第1の回路設計の実装の際に設計制約条件に違反する可能性を判定することと、
前記設計制約条件に違反する前記可能性を低減するように前記第1の回路設計を修正することを含む機械可読媒体。
【請求項23】
前記第1の回路設計の実装の際に前記設計制約条件に違反する前記可能性は、前記第1の回路設計の実装が決定される前に前記設計制約条件により制約されるパラメータの推定の不確定性によるものである請求項1に記載の媒体。
【請求項24】
前記可能性は、前記設計制約条件により制約される前記パラメータの第1の推定と前記設計制約条件により制約される前記パラメータの第2の推定との間の差から判定される請求項23に記載の媒体。
【請求項25】
前記設計制約条件により制約される前記パラメータの前記第2の推定は、前記第1の回路設計の実装において発生しうる少なくとも1つの変更を含み、前記可能性は、前記設計制約条件のしきい値により正規化される請求項24に記載の媒体。
【請求項26】
前記可能性は、さらに、前記設計制約条件のしきい値から判定される請求項24に記載の媒体。
【請求項27】
前記判定することは、
前記第1の回路設計内のタイミング終点の間のパスの順方向幅優先探索と逆方向幅優先探索のうちの少なくとも一方を実行して前記パスの感度指標を判定し、前記パスの前記感度指標は前記第1の回路設計の実装の際に前記パス上で前記設計制約条件に違反する前記可能性を示すことを含む請求項1に記載の媒体。
【請求項28】
前記第1の回路設計は、技術特有のネットリストを含む請求項22に記載の媒体。
【請求項29】
前記第1の回路設計は、さらに、配置ソリューションを含む請求項28に記載の媒体。
【請求項30】
前記第1の回路設計の実装は、前記第1の回路設計を実装するための配線ソリューションを含む請求項22に記載の媒体。
【請求項31】
前記修正することは、
a)論理素子のインスタンスをサイズ設定すること、
b)信号をバッファリングすること、
c)信号を負荷遮蔽すること、
d)論理素子のインスタンスを複製すること
のうちの少なくとも1つを含む請求項22に記載の媒体。
【請求項32】
前記設計制約条件は、タイミング制約条件を含む請求項22に記載の媒体。
【請求項33】
前記タイミング制約条件は、
a)前記回路の最悪ネガティブ・スラック、
b)前記第1の回路設計内の論理素子のインスタンスに対するスラック、
c)前記第1の回路設計内のパス上の遅延、
d)前記回路のトータル・ネガティブ・スラック
のうちの1つを含む請求項32に記載の媒体。
【請求項34】
前記修正することは、
前記第1の回路設計の実装内の論理素子の不確定性に敏感な前記設計制約条件により制約されるパラメータの感度に応じて修正対象の論理素子のインスタンスを選択することを含む請求項22に記載の媒体。
【請求項35】
前記修正することは、
前記第1の回路設計の実装内の前記パス上の論理素子の不確定性に敏感な前記設計制約条件により制約されるパラメータの感度に応じて修正対象のパスを選択することを含む請求項22に記載の媒体。
【請求項36】
前記設計制約条件に違反する前記可能性を前記判定することは、
a)ネット長、
b)ネット静電容量、
c)ネット抵抗、
d)ネット・トポロジ
のうちの1つで発生しうる変化を、
前記第1の回路設計内の論理素子のインスタンスに接続するネットについて、判定することを含む請求項22に記載の媒体。
【請求項37】
前記修正することは、
前記第1の回路設計の実装における不確定性に対する感度に基づき前記第1の回路設計の論理素子の複数のインスタンスから多数の候補を決定することと、
前記多数の候補の部分集合を選択的に修正することとを含む請求項22に記載の媒体。
【請求項38】
前記多数の候補の前記部分集合を前記選択的に修正することは、
流れに従って前記多数の候補から1つを選択し、前記流れは候補を通る多数のパスを表すことを含む請求項37に記載の媒体。
【請求項39】
前記多数の候補の前記部分集合を前記選択的に修正することは、さらに、
前記多数の候補のうちから選択された前記1つをサイズアップすることを含む請求項38に記載の媒体。
【請求項40】
前記サイズアップは、全体的な設計制約条件のレベルを落とすことなく、ある範囲内で実行される請求項39に記載の媒体。
【請求項41】
前記全体的な設計制約条件は、最悪ネガティブ・スラックを含む請求項40に記載の媒体。
【請求項42】
前記多数の候補の前記部分集合を前記選択的に修正することは、
修正する前記部分集合を決定するために前記多数の候補を含むグラフに対し最小カットを実行することを含む請求項37に記載の媒体。
【請求項43】
回路を設計するためのデータ処理システムであって、
第1の回路設計の実装の際に設計制約条件に違反する可能性を判定する手段と、
前記設計制約条件に違反する前記可能性を低減するように前記第1の回路設計を修正する手段と
を備えるデータ処理システム。
【請求項44】
前記第1の回路設計の実装の際に前記設計制約条件に違反する前記可能性は、前記第1の回路設計の実装が決定される前に前記設計制約条件により制約されるパラメータの推定の不確定性によるものである請求項1に記載のデータ処理システム。
【請求項45】
前記可能性は、前記設計制約条件により制約される前記パラメータの第1の推定と前記設計制約条件により制約される前記パラメータの第2の推定との間の差から判定される請求項44に記載のデータ処理システム。
【請求項46】
前記設計制約条件により制約される前記パラメータの前記第2の推定は、前記第1の回路設計の実装において発生しうる少なくとも1つの変更を含み、前記可能性は、前記設計制約条件のしきい値により正規化される請求項45に記載のデータ処理システム。
【請求項47】
前記可能性は、さらに、前記設計制約条件のしきい値から判定される請求項45に記載のデータ処理システム。
【請求項48】
前記判定する手段は、
前記第1の回路設計内のタイミング終点の間のパスの順方向幅優先探索と逆方向幅優先探索のうちの少なくとも一方を実行して前記パスの感度指標を判定し、前記パスの前記感度指標は前記第1の回路設計の実装の際に前記パス上で前記設計制約条件に違反する前記可能性を示すことを含む請求項1に記載のデータ処理システム。
【請求項49】
前記第1の回路設計は、技術特有のネットリストを含む請求項43に記載のデータ処理システム。
【請求項50】
前記第1の回路設計は、さらに、配置ソリューションを含む請求項49に記載のデータ処理システム。
【請求項51】
前記第1の回路設計の実装は、前記第1の回路設計を実装するための配線ソリューションを含む請求項43に記載のデータ処理システム。
【請求項52】
前記修正する手段は、
a)論理素子のインスタンスをサイズ設定する手段、
b)信号のバッファリングを適用する手段、
c)信号の負荷遮蔽を適用する手段、
d)論理素子のインスタンスを複製する手段
のうちの少なくとも1つを含む請求項43に記載のデータ処理システム。
【請求項53】
前記設計制約条件は、タイミング制約条件を含む請求項43に記載のデータ処理システム。
【請求項54】
前記タイミング制約条件は、
a)前記回路の最悪ネガティブ・スラック、
b)前記第1の回路設計内の論理素子のインスタンスに対するスラック、
c)前記第1の回路設計内のパス上の遅延、
d)前記回路のトータル・ネガティブ・スラック
のうちの1つを含む請求項53に記載のデータ処理システム。
【請求項55】
前記修正する手段は、
前記第1の回路設計の実装内の論理素子の不確定性に敏感な前記設計制約条件により制約されるパラメータの感度に応じて修正対象の論理素子のインスタンスを選択する手段を含む請求項43に記載のデータ処理システム。
【請求項56】
前記修正する手段は、
前記第1の回路設計の実装内の前記パス上の論理素子の不確定性に敏感な前記設計制約条件により制約されるパラメータの感度に応じて修正対象のパスを選択する手段を含む請求項43に記載のデータ処理システム。
【請求項57】
前記設計制約条件に違反する前記可能性を判定する前記手段は、
a)ネット長、
b)ネット静電容量、
c)ネット抵抗、
d)ネット・トポロジのうちの1つで発生しうる変化を、
前記第1の回路設計内の論理素子のインスタンスに接続するネットについて、判定する手段を含む請求項43に記載のデータ処理システム。
【請求項58】
前記修正する手段は、
前記第1の回路設計の実装における不確定性に対する感度に基づき前記第1の回路設計の論理素子の複数のインスタンスから多数の候補を決定する手段と、
前記多数の候補の部分集合を選択的に修正する手段とを含む請求項43に記載のデータ処理システム。
【請求項59】
前記多数の候補の前記部分集合を前記選択的に修正する手段は、
流れに従って前記多数の候補から1つを選択し、前記流れは候補を通る多数のパスを表す手段を含む請求項58に記載のデータ処理システム。
【請求項60】
前記多数の候補の前記部分集合を前記選択的に修正する手段は、さらに、
前記多数の候補のうちから選択された前記1つをサイズアップする手段を含む請求項59に記載のデータ処理システム。
【請求項61】
前記選択された1つは、全体的な設計制約条件のレベルを落とすことなく、ある範囲内でサイズアップされる請求項60に記載のデータ処理システム。
【請求項62】
前記全体的な設計制約条件は、最悪ネガティブ・スラックを含む請求項61に記載のデータ処理システム。
【請求項63】
前記多数の候補の前記部分集合を前記選択的に修正する手段は、
修正する前記部分集合を決定するために前記多数の候補を含むグラフに対し最小カットを実行する手段を備える請求項58に記載のデータ処理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2006−527429(P2006−527429A)
【公表日】平成18年11月30日(2006.11.30)
【国際特許分類】
【出願番号】特願2006−515054(P2006−515054)
【出願日】平成16年5月28日(2004.5.28)
【国際出願番号】PCT/US2004/017207
【国際公開番号】WO2004/109562
【国際公開日】平成16年12月16日(2004.12.16)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
Macintosh
【出願人】(300056440)シンプリシティ・インコーポレーテッド (5)
【Fターム(参考)】