JP2006178958A - レイアウトドリブンの領域の制約された設計の最適化を行う論理プログラム、方法及びシステム - Google Patents

レイアウトドリブンの領域の制約された設計の最適化を行う論理プログラム、方法及びシステム Download PDF

Info

Publication number
JP2006178958A
JP2006178958A JP2005357161A JP2005357161A JP2006178958A JP 2006178958 A JP2006178958 A JP 2006178958A JP 2005357161 A JP2005357161 A JP 2005357161A JP 2005357161 A JP2005357161 A JP 2005357161A JP 2006178958 A JP2006178958 A JP 2006178958A
Authority
JP
Japan
Prior art keywords
design
net
layout
algorithm
critical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005357161A
Other languages
English (en)
Other versions
JP4673203B2 (ja
Inventor
Rajeev Murgai
ムルガイ ラジーヴ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2006178958A publication Critical patent/JP2006178958A/ja
Application granted granted Critical
Publication of JP4673203B2 publication Critical patent/JP4673203B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】デザイン及びデザインのレイアウトにアクセスするレイアウトドリブンのエリア制約されたデザインの最適化方法を提供する。
【解決手段】レイアウトはデザインのチップ領域を区分けするブロックを含む。各ブロックは1以上のゲートを含む。レイアウトはネットのグローバルルーティングをも含む。本方法はデザイン及びレイアウトの第1のタイミング分析を実行し、デザイン及びレイアウトを更新することも含む。本方法はデザイン及びレイアウトの第2のタイミング分析を実行することも含む。第2のタイミング分析はデザイン及びレイアウトの更新を考慮に入れる。本方法は、第2のタイミング分析の1以上の結果が、デザインが1以上の所定の設計目標に合致しないことを示す、及び第1のタイミング分析の1以上の結果に対する1以上の設計目標に向けて少なくとも所定量の進展を示す場合に、デザイン及びレイアウトを更に更新することも含む。
【選択図】図1

Description

本発明は一般に回路設計の技術分野に関し、特にレイアウトドリブン(layout-driven)の領域の制約された設計に関連する。
ディープサブミクロン(DSM:deep submicrom)技術の出現により、相互接続負荷及び遅延並びにレイアウトドリブン統合が重要になってきている。しかしながら、厳しいレイアウト制約(例えば利用可能性や混み具合)に起因して、ネットバッファリングやゲートリサイジング(gate resizing)のようなレイアウトフレンドリな論理変換のみが効果的である。
なお、本願は35U.S.C.§119(e)による西暦2004年12月14日付け米国仮出願番号第60/636,319号に関連する。
本発明の課題は回路設計に関する欠点及び問題点を軽減又は解消することである。
一形態によれば、レイアウトドリブンのエリア制限されたデザインを最適化する方法は、デザイン及び前記デザインのレイアウトにアクセスするステップを含む。前記デザインは1以上のゲート及び該ゲートに互に接続する1以上のネットを有する。前記レイアウトは前記デザインのチップ領域を区分けするブロックを有する。ブロックの各々は1以上のゲートを有する。前記レイアウトは更にネットのグローバルルーティングを有する。本方法は、前記デザイン及び前記レイアウトの第1のタイミング分析を行い、前記デザイン及び前記レイアウトの更新を次のように行う。デザイン及びレイアウトの更新はクリティカルな拡張されたネット全てを前記デザインの中で見分ける。拡張されたネットはバッファを通じて互に接続された1以上のネットを含む。デザイン及びレイアウトの更新は、前記クリティカルな拡張されたネットを並べるステップを有する。デザイン及びレイアウトの更新は、並べた順序で前記クリティカルな拡張されたネットの各々について、クリティカルな拡張されたネット上のシンクに極性を割り当てるステップ、クリティカルな拡張されたネットから全てのバッファを除去するステップ、クリティカルな拡張されたネットからバッファを除去したことによって、クリティカルな拡張されたネットの及ぶレイアウト内のブロックを更新するステップを有する。デザイン及びレイアウトの更新は、クリティカルな拡張されたネットの及ぶブロックの各々が、利用可能な領域を一切有しない又はバッファの挿入に関して唯1つのネットノードしか含まない場合に、タイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムをクリティカルな拡張されたネットに適用するステップ、及び修正されたヴァンギネケンアルゴリズム又は修正されたグローバルエリアアルゴリズムに従って、クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新するステップを含む。デザイン及びレイアウトの更新は、クリティカルな拡張されたネットが、ネットノードに関する第1の閾数より少ない場合であって、前記クリティカルな拡張されたネットの及ぶ1以上のブロックが、少なくともいくつかの利用可能な領域を有し且つ1より多くのネットノードを含む場合に、クリティカルな拡張されたネットを修正し、前記クリティカルな拡張されたネットの及ぶブロックの各々が、利用可能な領域を一切有しない或いはバッファの挿入に関して唯1つのネットノードしか有しないようにするステップ、タイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用するステップ、修正されたヴァンギネケンアルゴリズム又は修正されたグローバルエリアアルゴリズムに従って、クリティカルな拡張されたネットの及ぶレイアウト内のブロックを更新するステップを有する。デザイン及びレイアウトの更新は、クリティカルな拡張されたネットが、ネットノードに関する第2の閾数より多く且つネットノードに関する第3の閾数より少ない場合に、クリティカルな拡張されたネットに厳密なムルガイバッファリングアルゴリズムを適用するステップ、及び正確なムルガイバッファリングアルゴリズムのアプリケーションに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新するステップを有する。デザイン及びレイアウトの更新は、それ以外の場合には、拡張されたネットのルートで正当なソリューションを使用しないタイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムをクリティカルな拡張されたネットに適用するステップ、及びヴァンギネケンアルゴリズム又は前記グローバルエリアアルゴリズムのアプリケーションに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新するステップを有する。本方法は、デザイン及び前記レイアウトの第2のタイミング分析を行うステップを有する。第2のタイミング分析はデザイン及びレイアウトの更新を考慮に入れる。本方法は、第2のタイミング分析の1以上の結果が、前記デザインが所定の設計目標全てに合致していることを示す或いは前記第1のタイミング分析の1以上の結果に関する1以上の設計目標に向けて何らの進展も示さない場合に、前記デザイン及び前記レイアウトを分析用に通知するステップを有する。本方法は、第2のタイミング分析の1以上の結果が、前記デザインが1以上の所定の設計目標に合致しないことを示す、及び前記第1のタイミング分析の1以上の結果に対する1以上の設計目標に向けて少なくとも所定量の進展を示す場合に、前記デザイン及び前記レイアウトを更に更新するステップを有する。
本発明の特定の形態は1以上の技術的利益をもたらす。一例として特定の実施例はバッファ挿入及び/又は削除によるマッピングされる、大まかに配置される及び全体的にルーティングされる設計の遅延を、そのレイアウトに課せられるローカルな領域の制約を侵さずに最小化する問題に対処する。特定の実施例は実行時間を改善することで品質を実質的に犠牲にせずにタイミング最適化用の以前のアルゴリズムを更に実用的にする。特定の実施例はタイミング最適化の以前のアルゴリズムに一般的に付随する実行時間の12.5倍の速度向上効果をもたらす。
特定の実施例は上記の技術的利点の全部又は一部を備えていてもよいし、全く備えて無くてもよい。特定の実施例は1以上の他の技術的利点をもたらすかもしれないし、その利点の1以上は図面、詳細な説明及び特許請求の範囲により当該技術分野で通常の知識を有する者に更に明白になるであろう。
本発明並びにその特徴及び利点についての理解を更に完全にするため、添付図面に関連する以下の説明が参照される。
図1は設計フロー例10を示す。本発明の特定の実施例では、最適化されるロジック(logic)又は論理内容、完全にマッピングされる回路、ミンカット(min-cut)ベースのツールは水平及び垂直のカットを用いてチップ領域を複数ブロックに区分けする。ツールに関連するものは、ソフトウエア、ハードウエア、組み込まれた論理素子或いは適切ならばそのような2以上の素子の組み合わせを含む。1以上のコンピュータシステムは1以上のユーザにツールへのアクセスを与える。総チップ領域及びブロック数に依存して、配置ツールは各ブロックに固定された総領域を割り当て、そのブロックに配置可能なゲートの数及び種類を制約する。回路の各ゲートはブロック内に設けられる。ブロックは1より多くのゲートを含んでもよい。ネット各々のトポロジ及び全体的なルーティングがグローバルルーティングツールにより決定され、そのツールはブロック間のネットセグメントを生成する。これは図2に示されるように完全にマッピングされ、ブロック上に配置され及び全体的にルーティングされた設計様式モデル12である。本発明の特定の実施例では、次のようにしてモデル12に最適化法が施される。最適化法は所定の目標と共に一体化したタスクとして回路の設計を考察する。設計目標の具体例は、その領域の、負荷の及びスルー(slew)の制約を乱さずに回路遅延を最小化すること、時間的な違反を解消すること、回路遅延を増やさずに最大領域を復元すること、スルー及び過剰負荷の問題を解決すること等を含む。設計目標はそのような設計目標の1以上の組み合わせを含んでもよい。本発明の特定の実施例は設計目標を達成するための一連の最適化ステップを使用する。各ステップは設計内容に(例えば、ネットバッファリングやゲートサイズ変更等のような)ある変換を適用する。設計内容はこれらの変換によりタイミング情報と共に変化し、レイアウトツールに伝送され、レイアウトツールは図1に示されるようにより多くのカットを生成することで配置及びグローバルルーティングを細区分する。ロジック変換は、更に正確な位置及びワイヤ負荷や遅延と共に、細区分された設計内容について再び起動される。本発明の特定の実施例でのパラダイムは、ミンカットベースの配置ツール及びグローバルルーティングツールの一連の細区分(又は再生成)段階の間に特定の論理変換を組み込む。
マッピングされ、ブロック配置され及びグローバルにルーティングされた設計内容の下で、本発明の特定の実施例は領域制約に対してバッファ挿入及び/又は削除によりその遅延を最小化する問題を取り扱う。その領域制約は、各ブロック内で利用可能な領域が、バッファ最適化によりブロックに挿入される及びブロックから削除されるバッファに起因するネット領域増加よりも少なくあるべきことを規定する。あるブロックの領域制約が満たされていなかったならば、修正される設計内容は想定できない。設計プロセスが最終的なレイアウトに近づくほど、領域制約を満たすことは一層重要になる。
領域制約されたネットバッファリング問題を取り扱う従前のアルゴリズムはシングルネットでは比較的良好に機能するが、そのようなアルゴリズムの欠点は最悪の場合は指数関数的に増える実行時間であり、その欠点はアルゴリズムを多数のネットに使用することを不可能にする。本発明の特定の実施例は最終的な遅延や領域のような品質を犠牲にせずに実行時間を改善することでそのようなアルゴリズムをより実用的にする。本発明の特定の実施例は広々としたブロックにつき1ノード(ONPRB:one-node-per roomy-block)の条件を利用し、ネットにより満たされるならば、最適化における実質的な損失を引き起こさずに最悪の実行時間の複雑さを(指数関数的から)二次式的に改善する。更に実行時間を減らすため、本発明の特定の実施例はネットをその条件を満たすものに変換する技術を使用する。
物理的な合成設計のフローでは設計内容は一般的には非一様なブロックにおそらくは区分けされる。ブロックは(x,y)座標で表現される。ブロックPのトータルの領域はT(P)で表現される。T(P)はとりわけ総チップ領域及びブロック数を考慮しながらフロアプランニング及び配置ツールにより決定される。ブロックPの中でセル及びネットにより占められる領域はそのブロックの使用領域U(P)である。Pの残りの領域は利用可能な領域A(P)であり、その領域は新たなセルを挿入したり、或いは既存のものをより大きなもので置換するのに使用されてもよい。A(P)=T(P)-U(P)。ブロックPの領域制約は、Pに挿入した又はPから削除したバッファに起因するP内の領域増加がA(P)を超えてはならないことである。
ネットセグメントは水平又は垂直のワイヤ線分である。簡易なネットはセルピン及び回路パッドを互に接続するネットセグメントの一群である。ネットはドライバ(又はルート)及びシンクピン/パッドである。ネットでは、ピンでもパッドでもないネットセグメントの終点の全てはスタイナ(Steiner)ノードと呼ばれる。ピン、パッド及びスタイナノードのネット上の全てはネットノードと呼ばれる。ネットは根のあるツリーであるので、ネットノードの子、親及び祖先を議論することは有意義である。図3はノード例を示す。図3では、x及びyは子であり、rはνの祖先である。ネットノードでツリーの根のある概念が使用されている。例えば図3でTνはノードνに根のあるツリーである。スパンγ(ν)はTνが及ぶブロックの集合を表すものとする。図4は図3に示されるノードに対応するダミーノード例を示す。図4ではγ(Sb2)={(0,0),(1,0)}である。拡張されたネットはバッファを越えて行く一般化されたネットである。そのシンクはバッファでないセルのパッド又は入力ピンのいずれかである。図3はルートがrであり、4つのシンクp1-p4を有する拡張されたネットを示す。それは4つのブロック:(0,0),(0,1),(1,0),(1,1)にわたる。拡張されたネットは次の2点を除いて正規のネットとして表現される:(1)各バッファbはダミーのスタイナノードにより置換される、即ち図3のバッファb1,b2は図4でSb1,Sb2のように表現される点、及び(2)pがドライバから非反転の又は反転した信号を受信するか否かに依存して各シンクpには正(+)又は負(−)の極性が割り当てられる点である。スタイナノード、リアル又はダミーは新たなバッファが挿入されるかもしれないネット上の場所の候補である。
これらは通常的には回路遅延に関する2つの主要な要因:セルを介するピン間遅延及び相互接続遅延である。セルMの入力ピンi及び出力ピンoに対して、Mを通じてiからoに至るまでの遅延d(i,o)は、d(i,o)=αioioco により与えられる。coはoでの負荷容量であり、αioはiからoへの固有の遅延であり、βioは関連する負荷係数である。これらのパラメータは、セルライブラリ中の各セルのアーク(arc)を出力するために全ての入力について特定される。相互接続にエルモア(Elmore)遅延モデルが使用されてもよい。
如何なる領域制約にもよらずターゲットのタイミングを最適化するタイミング最適化の従前の手法では、領域が利用可能でないブロック又は場所にもバッファを挿入するおそれがある。これらの技術の中にはバッファ数(又はそれらの領域)のようなコストをバッファリングソリューション各々に関連付けることを示唆するものもあるが、そのデザインの局所的な部分の中での領域の利用可能性に従うバッファを挿入することの問題を取り扱うものではない。他の従前の技術は障害物のあるバッファ挿入の問題を取り扱うが、それらの作業内容はローカルなエリア制約のある場合のバッファリング問題を取り扱うものではない。これに対して本発明の特定の実施例は、障害物に起因して関連するブロック内で減少させられた領域利用可能性がそのような例で使用されるので、障害物に自動的に対処することができる。
n個のノードを有するネットN及びl(エル)個のバッファを有するライブラリの下では、Nについて(l+1)個のバッファリングソリューション(解)が存在する。タイミング最適化の従前の技法は、バッファリングによりNについてタイミングを最適化するための厳密な多項式時間ダイナミックプログラムアルゴリズムを利用する。Nの各ネットシンクで必要な時間及びバッファライブラリの下で、アルゴリズムはルートrで必要な時間を最大化するバッファの最適な選択肢及び場所を生成する。それはNのボトムアップのネットノードを伝搬する:シンクから始まり、ルートに向けて進行する。(スタイナノードのような)中間ノードνでは、l個のバッファのどれでもそれに対応する及びνで挿入しないどのバッファでもそれに対応する(l+1)個の可能性がある。アルゴリズムはこれらの可能性の全てを捕捉するためにνで一群のソリューションS(ν)を構築する。νでのソリューションはペア(c,q)であり、cはνに根を張るツリーTνの容量であり、qはνで必要な時間である。図5に示されるように、νでワイヤ及びバッファを介する容量及び遅延を適切に導入することで、νの子及びνでのバッファリングの可能性のソリューション群からS(ν)が構築される。各ソリューションはそれを生成したソリューションの子のポインタを有する。S(ν)はTνのネットノードで全てのバッファリングの可能性を捕捉する。ほとんどのソリューションは、それらはおそらくは最適ではないので破棄される。(c,q),(c’,q’)∈S(ν)について、((c’≧c’)且つ(q’<q))又は((c’≧c)且つ(q’≦q))ならば、(c’,q’)は最適ではない或いは劣ったものである。最終的にルートrを訪れ、S(r)が構築される。rの親のセルで必要な時間を最大にするS(r)のソリューションはネットNについての最適ソリューションである。子のソリューションの子のポインタを再帰的に続け、ネットノードについてバッファがどこに及びどのバッファが挿入されるべきかが見分けられる。このアルゴリズムはネットノード数に関して二次式の実行時間を有する。
本発明の特定の実施例では、タイミング最適化に関する領域の制約されたネットバッファリングの目標は、領域制約を満足しつつネットのルートで必要とする時間を最大化することである。削除済みのバッファと共に拡張されたネットN、設計の各ブロックPについて更新された利用可能な領域A(P)及びNのノードνの下で、σにより推奨されるようにTνにバッファを挿入し且つ影響のあるブロック領域を更新した後に、全てのPについてA(P)≧0ならば、σ∈S(ν)は正規のソリューションである。さもなくばσは正規でない。略式には、リーガルなソリューションはブロック領域制約を乱さないバッファリング選択肢に対応する。
タイミング最適化の従前の技法は、1つのネットに関する領域の制約されたバッファリング問題に対する厳密なアルゴリズムを含む。厳密なムルガイ(Murgai)バッファリングアルゴリズムに関連するものは、適切ならばそのようなアルゴリズムを包含する。そのようなアルゴリズムはシンクからルートへトポロジの順序でネットノードを横切る。ネットノードでは、アルゴリズムは先ず全ての正規のソリューションを生成し(但し、正規のソリューション以外はない)、劣っているソリューションを破棄する。ルートではアルゴリズムは最適なリーガルなソリューションを拾う。ブロックP内にあるネットノードνは図5に示されるように処理される。S(ν)の各ソリューションσνに関し、ブロック領域利用テーブルHνが保持される。このテーブルはνに根を持つサブツリーTνが及ぶ各ブロックについてバッファリングソリューションσνにより必要とされる領域リソース(エリアリソース)を捕捉する。Q∈γ(ν)の各ブロックについて、HνはHν(Q)に格納し、全てのバッファの合成される領域はブロックQ内のσνによって挿入される。従って、σν=(cν,qν,Hν)である。σνは三者から成るように見えるがそうではない、なぜならHνは複数のエントリを含むことができるからである。つまり、σνは2+|γ(ν)|個の成分を有する。
σν=(cν,qν,Hν)に関し、テーブルHνは次のように生成される。νがシンクノードならばHνは空(エンプティ)である。中間ノードνについて2つの可能性がある:
(1)σνはバッファリングされないソリューションであり、xでのσν=(c,q,H)及びyでのσ=(c,q,H)のソリューションを組み合わせることで生成される。ここでx及びyはνの子である。ソリューション構成はネットシンクからルートへ進むので、Hz及びHyは既に構築済みである。従ってHνは次のようにして生成される。各ブロックQ∈γ(ν)について:
・Hz(Q)もHy(Q)も存在しなければ、Hν(Q)を生成しない;
・Hz(Q)は存在するが、Hy(Q)は存在しないならば、Hν(Q)=Hz(Q) である;
・Hy(Q)は存在するが、Hz(Q)は存在しないならば、Hν(Q)=Hy(Q) である;
・それ以外については、Hν=Hz(Q)+Hy(Q) である。
(2)σνがバッファリングされるソリューションであり、νにバッファbを設けることによってバッファリングされないソリューションην=(c,q,H)から生成される。従ってHν(Q)=Hν(Q)∀Q≠P,Hν(P)= H(P)+area(b) である。H(P)が存在しなければ、H(P)=area(b) である。
Hνを生成した後にQ∈γ(ν)の各々についてHν(Q)≦A(Q)が検査される。もしそうであればσνは正規である。そうでなければそれは正規のものではなく、拒否される。ブロック領域利用テーブルの定義により、最適でないこと又は劣っていることについての以下の基準が使用されてもよい:
・定義1:2つのソリューションσ=(c,q,H)及びσ=(c,q,H)∈S(ν)の下で、1)c1≧c2、2)q1≦q2及び3)各ブロックQ∈γ(ν)についてH(Q)≧H(Q) であるならば、σはσと同程度に良好である。存在しない入力はゼロであることが仮定される。不等式が厳密ならば、σはσに対してcqHの劣ったものである(最適ではない)。
ソリューションの非最適性基準はH1及びH2の全てのエントリの比較に起因して比較的厳密なものである。劣っているソリューションについて、全てのブロック領域エントリは悪くなり、それに加えてc及びqのエントリも悪くなる。従って非常に少数の解が破棄され、最悪の場合、指数関数的に複雑さが増えるかもしれない。
以下の定義はソリューションの非最適性に関連する:
・定義2:νで別のソリューションσ=(c,q,H)が存在し、c1≧c2、2)q1≦q2であり、少なくとも1つの不等式が厳密であるならば、ネットノードνでのソリューションσ=(c,q,H)はcqの劣ったものである(或いはc及びqに関して劣っている)。
特定の実施例はネットに関するある条件を使用し、それが満たされると、タイミング最適化問題に対する多項式時間の正確なアルゴリズムになる。以前のタイミング最適化技法で使用されていたアルゴリズムの指数関数的な破裂の理由は次のとおりである:ノードνでの各ソリューションとともに、アルゴリズムはνで根を持つサブツリーTνが及ぶ各ブロックで使用される領域を記憶する必要がある。これは、あるネットノードwがあり、そのノードはνの祖先のノードであり且つブロックP∈γ(ν)内にある場合に取り扱われる。図6はブロックPにおけるエリア衝突の例を示す。図6ではrがネットルートであり、p1乃至p4がシンクである。νでのソリューション生成の後に、Pの利用可能な領域A(P)のあるものはノードp1,p2,uでソリューションをバッファリングすることで既に使用済みである。ノードwは同じ領域リソースに関して競合している。wで何らの正規でないソリューションも生成されてないことを確認するために、A(P)からどの程度多くの領域がσにより使用されたかが、ノードp1,p2,u,νで各ソリューションσと共に格納される。ブロック領域利用度を使用することが指数関数的な振る舞いを招く理由は次のとおりである:νでの多くのソリューションがcqの劣っているものであるが(ヴァンギネケン(Van Ginneken)アルゴリズムの基本的結果である)、それらのブロックエリア利用度は異なるので、それらは必然的に破棄することができないからである。あるソリューションσ1は別のソリューションσ2に対してcqは劣っているが、σ2に対してcqHは劣ってないことが起こるかもしれない。例えばσ2がブロックPの中でσ1より多くの領域を使用し尽くしていた場合にそれがおこり得る。wが図6に示されるようにp4で大きな容量性負荷を使用しているとする。そしてwでバッファを挿入することは最も利益がありそうである。残念なことにσ2はwでバッファされるソリューションを生成することができないかもしれない。なぜならそれはPでバッファリングに十分に利用可能な領域を有しないかもしれないからである。一方、σ1はそのようなバッファされるソリューションを生成することができ、そのネットについて全体的に良好な遅延を導出する。以前に指摘したように、cqHの劣性の基準は非常に厳しく:ソリューションは悪いことにブロック領域のエントリ全てを有する必要があり、更に悪いことにc及びqエントリも有する必要がある。ネットのスパンが大きくなるほど、ソリューションになるのは困難になり、劣るようになる。かくて比較的少数のソリューションしか破棄されず、指数関数的な複雑さを招く。
上述の説明では、w,νの祖先のノードはブロックPの中にある必要があり、Pはνで根を持つサブツリーTνの及ぶ範囲内にある。もしもネットNが、Nの及ぶ各ブロックQがNの1つのノードを正確に含むようであるなら、Qはアルゴリズムの間に正確に一度訪れる(Qに含まれるネットノードνのソリューションが生成される場合)。Nの他のネットノードはQの領域リソースについて競合していない。従ってブロック領域利用度は各ソリューションと共に格納されることを要しない。以下の修正されたvan Ginnekenアルゴリズムが使用されてもよく、そのアルゴリズムは本来のvan Ginnekenアルゴリズムと同様であるが、各ソリューションが2つの成分c及びqのみを有する。必要とされる唯一の修正はバッファされるソリューションの生成に関するものである。ブロックQのノードvでバッファbを挿入しようとする場合に、そのアルゴリズムは次の追加的な検査を実行する:バッファbを挿入することは正しいか?−即ち、領域A(Q)はバッファbの領域と少なくとも同量だけQ内で利用可能か? もしそうであれば、バッファbに関してバッファされないソリューションに対応するもの全てについて、バッファされるソリューションがνで生成されてもよい。かくて、他の如何なるノードからのエリア利用度情報も利用せずにソリューションに関して正当性の検査がノードでなされる。これに対して、一般的な場合では、ノードνでのソリューションの正当性は、νのブロックを共用する他のノードにより使用されるエリアに依存する。
・定義3:Nの及ぶ各ブロックが正確に1つのネットノードを含むならば、ネットNはONPB条件を満たす。
例えば、図7ではネットノードr1,ν及びp1の各々が異なるブロック内にあるので、ネットN1はONPB条件を満たす。w,p2,p3は全てブロック(1,0)の中にあるので、ネットN2はONPB条件を満足しない。
上記の説明から、以下の定理が成り立つ:
・定理1:ネットNがONPBを満たすならば、上述した修正されたvan Ginnekenアルゴリズムはシングルネットのエリア制約されたタイミング指向バッファリング問題を最適には二次関数的時間で解決する。
複雑な計算の実行時間はvan Ginnekenアルゴリズムのものと同程度である。
ONPB条件は、Pが利用可能な領域を有しない限り、1より多いネットノードと共にブロックPを越えてNが進行するのを許容することで強化されてもよいことに留意を要する。ここで使用されるブロック領域は更新されたブロック領域である−即ち、Nに当初存在していた全てのバッファが事前の処理ステップで消去された後である。
・定義4:Nの及ぶ各ブロックPが利用可能な領域を何ら有しない(即ち、A(P)=0)或いは正確に1ネットノードを含むならば、ネットNはONPRB条件を満たす。
次の定理が成り立つ:
・定理2:ネットNがONPRB条件を満たすならば、上述の修正されたvan Ginnekenアルゴリズムはシングルネットのエリア制約された時間指向ネットバッファリング問題を最適には二次関数的な時間で解決する。
実行時間を更に改善するため、ONPRB条件を満たさないクリティカルネットはそれらが充足するように修正されてもよい。その修正は以下の2つの方式の一方でなされてもよい:
(1)セル配置、ネットトポロジ及び/又はルーティングを変更し、2つのネットが同じブロックに一切属しないようにする。しかしながらこれは設計特性を劣化させるかもしれないので望ましくない。
(2)ネットの及ぶ各ブロックについて、1つのノードでのみバッファ挿入を許容する。例えば図7のネットN2に関し、バッファ挿入がシンクノードp2,p3については許容されず、wについて許容されたならば、N2はONPB条件を満たす。
本発明の特定の実施例は上記の第2の手法を使用する。主な問題は、潜在的にバッファ挿入がなされてもよいブロックごとに1つのノードを選択することである。ネット上のノードは以下のタイプの1つである:ピン及びパッド(ソース及びシンク)、分岐しているスタイナノード、(長いネットセグメントにおける)中間的なスタイナノード、(例えば図5のノードwのような分岐の1つにおける)分岐するスタイナノード直後のスタイナノード。バッファ挿入候補、スタイナノード及びパッド直後のスタイナノードはネットタイミングを改善する観点からは最小の効果をもたらす傾向がある。従ってこれら2種類ののどには最小の優先度が割り当てられてもよい。スタイナノード及び中間的スタイナノードは最も効果的である傾向があり、従ってそれに最高の優先度が与えられる。ピンには中間的な優先度が割り当てられる。次のように各ノードνに根を持つサブツリーTνを分析することで接続点(Tie)は分解される:バッファが挿入されるTνでのノード数及びTνの合計容量(全てのシンク及びワイヤの容量を含む)が算出される。これらにより、ノード当たりの平均的な容量が決定される。バッファ挿入候補としては、より高い平均容量を有するノードが好ましい。
ネットノードがONPRB条件を満たし、多くのノード数を有し、いくつものブロックに及ぶならば、実行時間及びメモリ利用度を改善するようにそのソリューション生成が制限されてもよい。ソリューションはcとqのみを又はcとqとグローバルエリアaの成分を用いて生成されてもよい。グローバルエリアaは現在のネットノードに根を持つサブツリーの全てのバッファにより使用される全領域を表現する。グローバルエリアアルゴリズムに関連するものは、ソリューションがc、q及びaの要素を含むバッファリングアルゴリズムを包含する。ソリューションが全てのネットノードで生成された後で、そのネットのルートでの正規のソリューションは破棄される。そして最良の正当なソリューションが選択される。この手法は非最適なものを導入するが、以前に最適化されたネットを取り扱うことができる。
非限定的な一例として、以下はシングルネットNのエリア制約されたタイミング最適化に関する改善されたバッファリングアルゴリズムの全体である:
1.(図4に示されるように)シンクの極性を割り当て、Nに関する全てのバッファを除去する;ブロックエリアを更新する;
2.NがONPRB条件を満たすならば、修正されたvan Ginnekenアルゴリズムを起動する;ブロック領域を更新する;戻る(リターン);
3.Nが小さかったならば、それがONPRB条件を満たすようにする;修正されたvan Ginnekenアルゴリズムを呼び出す;ブロックエリアを更新する;戻る;
4.Nが中間的な大きさだったならば、上述した厳密なMurgaiアルゴリズムを起動する;ブロック領域を更新する;戻る;
5.Nのルートで正規のソリューションを利用しないvan Ginneken又はグローバルエリアアルゴリズムを呼び出す;ブロックエリアを更新する。
アルゴリズムは上記の3つ全ての改善を組み入れる。アルゴリズムは設計全体に関するグローバルタイミング最適化アルゴリズム(これはタイミング最適化ツールにより実行されてもよい)に組み込まれてもよい。その一例は以下のとおりである:
1.ブロックが配置されグローバルにルーティングされたデザインについて遅延トレースを実行する
2.リピート(repeat){
3. クリティカルな拡張ネットの識別及び並び替え
4. その順序でネットNの各々につき、上記のアルゴリズムを適用する
5. 遅延とレースを実行する
6.}アンティル(until)(シンクに改善なし)
7.(最小の回路スラック(slack)が悪化した)ならば
8. 問題となっているネットを確認し、変更は実行されない。
エリア最小化の設計目標に関し、同様な手法が使用される。しかしながら、van Ginnekenアルゴリズム及び修正されたvan Ginnekenアルゴリズムの代わりに、グローバルエリアアルゴリズム及び修正されたグローバルエリアアルゴリズムがそれぞれ使用される。修正されたグローバルエリアアルゴリズムは1つの修正点を除いてグローバルエリアアルゴリズムと同様である。その修正はバッファソリューション生成におけるものである。ブロックQのノードνにバッファbを挿入しようとする場合に、そのアルゴリズムは追加的な次の検査を実行する:バッファbを挿入することは正当であるか?−即ち、バッファbの領域と少なくとも同量の領域A(Q)がQで利用可能であるか? もしそうであったならば、バッファbに関してバッファされないソリューションに対応するもの全てについてバッファされるソリューションがνで生成されてもよい。非限定的な一例として、以下はシングルネットNのエリア最小化のための改善されたバッファリングアルゴリズム全体である:
1.(図4に示されるように)シンクの極性を割り当て、Nに関する全てのバッファを除去する;ブロックエリアを更新する;
2.NがONPRB条件を満たすならば、修正されたグローバルエリアアルゴリズムを起動する;ブロック領域を更新する;戻る(リターン);
3.Nが小さかったならば、それがONPRB条件を満たすようにする;修正されたグローバルエリアアルゴリズムを呼び出す;ブロックエリアを更新する;戻る;
4.Nが中間的な大きさだったならば、エリア最小化に関する厳密なMurgaiアルゴリズムを起動する;ブロック領域を更新する;戻る;
5.Nのルートで正規のソリューションを利用しないグローバルエリアアルゴリズムを呼び出す;ブロックエリアを更新する。
図8はレイアウトドリブンのエリア制約設計の最適化方法例を示す。本方法はステップ100から始まり、論理的に最適化され完全にマッピングされた回路の設計内容にミンカットツールがアクセスする。ステップ102ではミンカットツールは設計するチップ領域を水平及び垂直カットを用いて複数のブロックに区分けする。ステップ104では配置ツールはブロック中のゲートを数及び種類で制限する固定領域を各ブロックに割り当てる。ステップ106では配置ツールが設計するゲートをブロックに配置する。ステップ108では設計するネット各々のトポロジ及びグローバルルーティングを決定するために、グローバルルーティングツールがブロック間のネットセグメントを生成する。ステップ110ではタイミング分析ツールがその設計内容に関するタイミング分析を実行する。ステップ112では最適化ツールが1以上の最適化アルゴリズムを設計中のネット各々に適用する。非限定的な一例として、最適化ツールは、そのレイアウトに課されるローカルエリア制約に違反せずに設計内容の遅延を最小化するためにネットバッファリングアルゴリズムを設計のレイアウト中のネット各々に適用してもよい。ステップ114では各ブロックが1より多くのゲートを一切含んでいなかったならば、本方法はステップ116に進む。ステップ116では最適化ツールは設計したレイアウトを分析用に通知し、その時点で本方法は終了する。
ステップ114で1以上のブロックの各々が1より多くのゲートを含んでいたならば、本方法はステップ118に進む。ステップ118ではミンカットツールは水平及び垂直カットを用いて設計するチップ領域を更に小さなブロックに再区分する。ステップ120では配置ツールは小さなブロック中のゲートを数及び種類で制限する固定領域を小さなブロック各々に割り当てる。ステップ122では配置ツールが設計する各ゲートを小さなブロックに配置する。ステップ124では設計するネット各々のトポロジ及びグローバルルーティングを決定するために、グローバルルーティングツールがより小さなブロック間のネットセグメントを生成する。ステップ126ではタイミング分析ツールがその設計内容に関するタイミング分析を実行する。ステップ128では最適化ツールが1以上の最適化アルゴリズムを設計中のネット各々に適用する。非限定的な一例として、最適化ツールは、そのレイアウトに課されるローカルエリア制約に違反せずに設計内容の遅延を最小化するためにネットバッファリングアルゴリズムを設計のレイアウト中のネット各々に適用してもよい。ステップ130では、より小さなブロック各々が1より多くのゲートを一切含んでいなかったならば、本方法はステップ116に進む。ステップ130で1以上の小さなブロックの各々が1より多くのゲートを含んでいたならば、本方法はステップ118に戻る。
図8に示される方法の特定のステップは特定の順序で生じるように図示及び説明されたが、本発明は図8に示される方法の適切などのステップでも適切な如何なる順序で生じてもよいことを想定している。
以上本発明を説明するために特定の実施例が使用されてきたが、当業者は本発明を説明するために使用された特定の実施例に対する変更、置換、変形、代替又は修正の1以上を理解するであろう。本発明はそのような変更、置換、変形、代替及び修正の全てを特許請求の範囲内に包含する。
以下、本発明により教示される手段が例示的に列挙される。
(付記1)
レイアウトドリブンのエリア制限されたデザインを最適化する論理プログラムであって、実行用に1以上の媒体中にエンコードされ、実行時に:
デザイン及び前記デザインのレイアウトにアクセスすること;
前記デザイン及び前記レイアウトの第1のタイミング分析を行うこと;
前記デザイン及び前記レイアウトの更新を行うこと;
前記デザイン及び前記レイアウトの更新を考慮に入れて、前記デザイン及び前記レイアウトの第2のタイミング分析を行うこと;
前記第2のタイミング分析の1以上の結果が、前記デザインが所定の設計目標全てに合致していることを示す或いは前記第1のタイミング分析の1以上の結果に関する1以上の設計目標に向けて何らの進展も示さない場合に、前記デザイン及び前記レイアウトを分析用に通知すること;及び
前記第2のタイミング分析の1以上の結果が、前記デザインが1以上の所定の設計目標に合致しないことを示す、及び前記第1のタイミング分析の1以上の結果に対する1以上の設計目標に向けて少なくとも所定量の進展を示す場合に、前記デザイン及び前記レイアウトを更に更新すること;
を行わせ、前記デザインは1以上のゲート及び該ゲートに互に接続する1以上のネットを有し、前記レイアウトは前記デザインのチップ領域を区分けするブロックを有し、ブロックの各々は1以上のゲートを有し、前記レイアウトは更にネットのグローバルルーティングを有し;
前記デザイン及び前記レイアウトの更新は:
バッファを通じて互に結合された1以上のネットより成るクリティカルな拡張されたネット全てを前記デザインの中で見分けること;
前記クリティカルな拡張されたネットを並べること;
並べた順序で前記クリティカルな拡張されたネットの各々について:
前記クリティカルな拡張されたネット上のシンクに極性を割り当てること;
前記クリティカルな拡張されたネットから全てのバッファを除去すること;
前記クリティカルな拡張されたネットからバッファを除去したことによって、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
前記クリティカルな拡張されたネットの及ぶブロックの各々が、利用可能な領域を一切有しない又はバッファの挿入に関して唯1つのネットノードしか含まない場合に:
タイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用すること;及び
前記修正されたヴァンギネケンアルゴリズム又は前記修正されたグローバルエリアアルゴリズムに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
前記クリティカルな拡張されたネットが、ネットノードに関する第1の閾数より少ない場合であって、前記クリティカルな拡張されたネットの及ぶ1以上のブロックが、少なくともいくつかの利用可能な領域を有し且つ1より多くのネットノードを含む場合に:
前記クリティカルな拡張されたネットを修正し、前記クリティカルな拡張されたネットの及ぶブロックの各々が、利用可能な領域を一切有しない或いはバッファの挿入に関して唯1つのネットノードしか有しないようにすること;
タイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用すること;
前記修正されたヴァンギネケンアルゴリズム又は前記修正されたグローバルエリアアルゴリズムに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
前記クリティカルな拡張されたネットが、ネットノードに関する第2の閾数より多く且つネットノードに関する第3の閾数より少ない場合に:
前記クリティカルな拡張されたネットに厳密なムルガイバッファリングアルゴリズムを適用すること;及び
前記正確なムルガイバッファリングアルゴリズムのアプリケーションに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
それ以外の場合には:
拡張されたネットのルートで正当なソリューションを使用しないタイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用すること;及び
前記ヴァンギネケンアルゴリズム又は前記グローバルエリアアルゴリズムのアプリケーションに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
により行われることを特徴とする論理プログラム。
(付記2)
前記デザイン及び前記レイアウトの更新の結果として最小回路スタックの改善が所定の閾値に到達するまで動作が反復される
ことを特徴とする付記1記載の論理プログラム。
(付記3)
前記レイアウトの最小スラックが前記デザイン及び前記レイアウトに対する更新結果を悪化させる場合には、前記デザインの中で最小スラックを悪化させている前記デザイン中の1以上のネットを確認し、前記デザインの最小スラックを悪化させる前記デザイン中のネットに関連する前記デザイン及び前記レイアウトになされる変更を止める
ことを特徴とする付記1記載の論理プログラム。
(付記4)
前記1以上の設計目標が:
前記デザインに関する領域の、負荷の又はスルーの制約に違反せずに前記デザインの遅延を最小化すること;
前記デザインにおける1以上のタイミング違反を解消すること;
前記デザインの中で遅延を増やさずに前記デザインから最大の領域を復元すること;
前記デザイン中の1以上のスルー又は過剰負荷の問題を解決すること;
の内の1以上より成ることを特徴とする付記1記載の論理プログラム。
(付記5)
前記クリティカルな拡張されたネットの及ぶ各ブロックが利用可能な領域を一切有しない又は唯1つのネットノードしか有しないように前記クリティカルな拡張されたネットを修正し:
前記クリティカルな拡張されたネットに関連する1以上のゲートの配置を変更し、前記クリティカルな拡張されたネットのトポロジを変更し、或いは前記クリティカルな拡張されたネットのルーティングを変更し;又は
前記クリティカルな拡張されたネットの及ぶブロック各々の中の唯1つのノードに1以上のバッファを挿入する;
ことを特徴とする付記1記載の論理プログラム。
(付記6)
1以上の基準に従って前記1以上のバッファを挿入するノードを選択する
ことを特徴とする付記5記載の論理プログラム。
(付記7)
前記修正されたヴァンギネケンアルゴリズムが、修正元のヴァンギネケンアルゴリズムによるものとは異なるバッファされるソリューションを生成し;及び
前記修正されたグローバルエリアアルゴリズムが、修正元のグローバルエリアアルゴリズムによるものとは異なるバッファされるソリューションを生成する;
ことを特徴とする付記1記載の論理プログラム。
(付記8)
レイアウトドリブンのエリア制限されたデザインを最適化する方法であって:
デザイン及び前記デザインのレイアウトにアクセスするステップ;
前記デザイン及び前記レイアウトの第1のタイミング分析を行うステップ;
前記デザイン及び前記レイアウトの更新を行うステップ;
前記デザイン及び前記レイアウトの更新を考慮して、前記デザイン及び前記レイアウトの第2のタイミング分析を行うステップ;
前記第2のタイミング分析の1以上の結果が、前記デザインが所定の設計目標全てに合致していることを示す或いは前記第1のタイミング分析の1以上の結果に関する1以上の設計目標に向けて何らの進展も示さない場合に、前記デザイン及び前記レイアウトを分析用に通知するステップ;及び
前記第2のタイミング分析の1以上の結果が、前記デザインが1以上の所定の設計目標に合致しないことを示す、及び前記第1のタイミング分析の1以上の結果に対する1以上の設計目標に向けて少なくとも所定量の進展を示す場合に、前記デザイン及び前記レイアウトを更に更新するステップ;
を有し、前記デザインは1以上のゲート及び該ゲートに互に接続する1以上のネットを有し、前記レイアウトは前記デザインのチップ領域を区分けするブロックを有し、ブロックの各々は1以上のゲートを有し、前記レイアウトは更にネットのグローバルルーティングを有し;
前記デザイン及び前記レイアウトの更新を行うステップは:
バッファを通じて互に結合された1以上のネットより成るクリティカルな拡張されたネット全てを前記デザインの中で見分けるステップ;
前記クリティカルな拡張されたネットを並べるステップ;
並べた順序で前記クリティカルな拡張されたネットの各々について:
前記クリティカルな拡張されたネット上のシンクに極性を割り当てるステップ;
前記クリティカルな拡張されたネットから全てのバッファを除去するステップ;
前記クリティカルな拡張されたネットからバッファを除去したことによって、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新するステップ;
前記クリティカルな拡張されたネットの及ぶブロックの各々が、利用可能な領域を一切有しない又はバッファの挿入に関して唯1つのネットノードしか含まない場合に:
タイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用するステップ;及び
前記修正されたヴァンギネケンアルゴリズム又は前記修正されたグローバルエリアアルゴリズムに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新するステップ;
前記クリティカルな拡張されたネットが、ネットノードに関する第1の閾数より少ない場合であって、前記クリティカルな拡張されたネットの及ぶ1以上のブロックが、少なくともいくつかの利用可能な領域を有し且つ1より多くのネットノードを含む場合に:
前記クリティカルな拡張されたネットを修正し、前記クリティカルな拡張されたネットの及ぶブロックの各々が、利用可能な領域を一切有しない或いはバッファの挿入に関して唯1つのネットノードしか有しないようにするステップ;
タイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用するステップ;
前記修正されたヴァンギネケンアルゴリズム又は前記修正されたグローバルエリアアルゴリズムに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新するステップ;
前記クリティカルな拡張されたネットが、ネットノードに関する第2の閾数より多く且つネットノードに関する第3の閾数より少ない場合に:
前記クリティカルな拡張されたネットに厳密なムルガイバッファリングアルゴリズムを適用するステップ;及び
前記正確なムルガイバッファリングアルゴリズムのアプリケーションに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新するステップ;
それ以外の場合には:
拡張されたネットのルートで正当なソリューションを使用しないタイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用するステップ;及び
前記ヴァンギネケンアルゴリズム又は前記グローバルエリアアルゴリズムのアプリケーションに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新するステップ;
を有することを特徴とする方法。
(付記9)
前記デザイン及び前記レイアウトの更新の結果として最小回路スタックの改善が所定の閾値に到達するまで動作が反復される
ことを特徴とする付記8記載の方法。
(付記10)
前記レイアウトの最小スラックが前記デザイン及び前記レイアウトに対する更新結果を悪化させる場合には、前記デザインの中で最小スラックを悪化させている前記デザイン中の1以上のネットを確認し、前記デザインの最小スラックを悪化させる前記デザイン中のネットに関連する前記デザイン及び前記レイアウトになされる変更を止める
ことを特徴とする付記8記載の方法。
(付記11)
前記1以上の設計目標が:
前記デザインに関する領域の、負荷の又はスルーの制約に違反せずに前記デザインの遅延を最小化すること;
前記デザインにおける1以上のタイミング違反を解消すること;
前記デザインの中で遅延を増やさずに前記デザインから最大の領域を復元すること;
前記デザイン中の1以上のスルー又は過剰負荷の問題を解決すること;
の内の1以上より成ることを特徴とする付記8記載の方法。
(付記12)
前記クリティカルな拡張されたネットの及ぶ各ブロックが利用可能な領域を一切有しない又は唯1つのネットノードしか有しないように前記クリティカルな拡張されたネットを修正し:
前記クリティカルな拡張されたネットに関連する1以上のゲートの配置を変更し、前記クリティカルな拡張されたネットのトポロジを変更し、或いは前記クリティカルな拡張されたネットのルーティングを変更し;又は
前記クリティカルな拡張されたネットの及ぶブロック各々の中の唯1つのノードに1以上のバッファを挿入する;
ことを特徴とする付記8記載の方法。
(付記13)
1以上の基準に従って前記1以上のバッファを挿入するノードを選択する
ことを特徴とする付記12記載の方法。
(付記14)
前記修正されたヴァンギネケンアルゴリズムが、修正元のヴァンギネケンアルゴリズムによるものとは異なるバッファされるソリューションを生成し;及び
前記修正されたグローバルエリアアルゴリズムが、修正元のグローバルエリアアルゴリズムによるものとは異なるバッファされるソリューションを生成する;
ことを特徴とする付記8記載の方法。
(付記15)
レイアウトドリブンのエリア制限されたデザインを最適化するシステムであって:
デザイン及び前記デザインのレイアウトにアクセスすること;
前記デザイン及び前記レイアウトの第1のタイミング分析を行うこと;
前記デザイン及び前記レイアウトの更新を行うこと;
前記デザイン及び前記レイアウトの更新を考慮に入れて、前記デザイン及び前記レイアウトの第2のタイミング分析を行うこと;
前記第2のタイミング分析の1以上の結果が、前記デザインが所定の設計目標全てに合致していることを示す或いは前記第1のタイミング分析の1以上の結果に関する1以上の設計目標に向けて何らの進展も示さない場合に、前記デザイン及び前記レイアウトを分析用に通知すること;及び
前記第2のタイミング分析の1以上の結果が、前記デザインが1以上の所定の設計目標に合致しないことを示す、及び前記第1のタイミング分析の1以上の結果に対する1以上の設計目標に向けて少なくとも所定量の進展を示す場合に、前記デザイン及び前記レイアウトを更に更新すること;
を行う最適化ツールを有し、前記デザインは1以上のゲート及び該ゲートに互に接続する1以上のネットを有し、前記レイアウトは前記デザインのチップ領域を区分けするブロックを有し、ブロックの各々は1以上のゲートを有し、前記レイアウトは更にネットのグローバルルーティングを有し;
前記デザイン及び前記レイアウトの更新は:
バッファを通じて互に結合された1以上のネットより成るクリティカルな拡張されたネット全てを前記デザインの中で見分けること;
前記クリティカルな拡張されたネットを並べること;
並べた順序で前記クリティカルな拡張されたネットの各々について:
前記クリティカルな拡張されたネット上のシンクに極性を割り当てること;
前記クリティカルな拡張されたネットから全てのバッファを除去すること;
前記クリティカルな拡張されたネットからバッファを除去したことによって、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
前記クリティカルな拡張されたネットの及ぶブロックの各々が、利用可能な領域を一切有しない又はバッファの挿入に関して唯1つのネットノードしか含まない場合に:
タイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用すること;及び
前記修正されたヴァンギネケンアルゴリズム又は前記修正されたグローバルエリアアルゴリズムに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
前記クリティカルな拡張されたネットが、ネットノードに関する第1の閾数より少ない場合であって、前記クリティカルな拡張されたネットの及ぶ1以上のブロックが、少なくともいくつかの利用可能な領域を有し且つ1より多くのネットノードを含む場合に:
前記クリティカルな拡張されたネットを修正し、前記クリティカルな拡張されたネットの及ぶブロックの各々が、利用可能な領域を一切有しない或いはバッファの挿入に関して唯1つのネットノードしか有しないようにすること;
タイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用すること;
前記修正されたヴァンギネケンアルゴリズム又は前記修正されたグローバルエリアアルゴリズムに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
前記クリティカルな拡張されたネットが、ネットノードに関する第2の閾数より多く且つネットノードに関する第3の閾数より少ない場合に:
前記クリティカルな拡張されたネットに厳密なムルガイバッファリングアルゴリズムを適用すること;及び
前記正確なムルガイバッファリングアルゴリズムのアプリケーションに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
それ以外の場合には:
拡張されたネットのルートで正当なソリューションを使用しないタイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用すること;及び
前記ヴァンギネケンアルゴリズム又は前記グローバルエリアアルゴリズムのアプリケーションに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
により行われることを特徴とするシステム。
(付記16)
前記デザイン及び前記レイアウトの更新の結果として最小回路スタックの改善が所定の閾値に到達するまで動作が反復される
ことを特徴とする付記15記載のシステム。
(付記17)
前記レイアウトの最小スラックが前記デザイン及び前記レイアウトに対する更新結果を悪化させる場合には、前記デザインの中で最小スラックを悪化させている前記デザイン中の1以上のネットを確認し、前記デザインの最小スラックを悪化させる前記デザイン中のネットに関連する前記デザイン及び前記レイアウトになされる変更を止める
ことを特徴とする付記15記載のシステム。
(付記18)
前記1以上の設計目標が:
前記デザインに関する領域の、負荷の又はスルーの制約に違反せずに前記デザインの遅延を最小化すること;
前記デザインにおける1以上のタイミング違反を解消すること;
前記デザインの中で遅延を増やさずに前記デザインから最大の領域を復元すること;
前記デザイン中の1以上のスルー又は過剰負荷の問題を解決すること;
の内の1以上より成ることを特徴とする付記15記載のシステム。
(付記19)
前記クリティカルな拡張されたネットの及ぶ各ブロックが利用可能な領域を一切有しない又は唯1つのネットノードしか有しないように前記クリティカルな拡張されたネットを修正し:
前記クリティカルな拡張されたネットに関連する1以上のゲートの配置を変更し、前記クリティカルな拡張されたネットのトポロジを変更し、或いは前記クリティカルな拡張されたネットのルーティングを変更し;又は
前記クリティカルな拡張されたネットの及ぶブロック各々の中の唯1つのノードに1以上のバッファを挿入する;
ことを特徴とする付記15記載のシステム。
(付記20)
1以上の基準に従って前記1以上のバッファを挿入するノードを選択する
ことを特徴とする付記15記載のシステム。
(付記21)
前記修正されたヴァンギネケンアルゴリズムが、修正元のヴァンギネケンアルゴリズムによるものとは異なるバッファされるソリューションを生成し;及び
前記修正されたグローバルエリアアルゴリズムが、修正元のグローバルエリアアルゴリズムによるものとは異なるバッファされるソリューションを生成する;
ことを特徴とする付記15記載のシステム。
(付記22)
レイアウトドリブンのエリア制限されたデザインを最適化するシステムであって:
デザイン及び前記デザインのレイアウトにアクセスする手段;
前記デザイン及び前記レイアウトの第1のタイミング分析を行う手段;
前記デザイン及び前記レイアウトの更新を行う手段;
前記デザイン及び前記レイアウトの第2のタイミング分析を行う手段であって、第2のタイミング分析は前記デザイン及び前記レイアウトの更新を考慮するところの手段;
前記第2のタイミング分析の1以上の結果が、前記デザインが所定の設計目標全てに合致していることを示す或いは前記第1のタイミング分析の1以上の結果に関する1以上の設計目標に向けて何らの進展も示さない場合に、前記デザイン及び前記レイアウトを分析用に通知する手段;及び
前記第2のタイミング分析の1以上の結果が、前記デザインが1以上の所定の設計目標に合致しないことを示す、及び前記第1のタイミング分析の1以上の結果に対する1以上の設計目標に向けて少なくとも所定量の進展を示す場合に、前記デザイン及び前記レイアウトを更に更新する手段;
を有し、前記デザインは1以上のゲート及び該ゲートに互に接続する1以上のネットを有し、前記レイアウトは前記デザインのチップ領域を区分けするブロックを有し、ブロックの各々は1以上のゲートを有し、前記レイアウトは更にネットのグローバルルーティングを有し;
前記デザイン及び前記レイアウトの更新を行う手段は:
バッファを通じて互に結合された1以上のネットより成るクリティカルな拡張されたネット全てを前記デザインの中で見分けること;
前記クリティカルな拡張されたネットを並べること;
並べた順序で前記クリティカルな拡張されたネットの各々について:
前記クリティカルな拡張されたネット上のシンクに極性を割り当てること;
前記クリティカルな拡張されたネットから全てのバッファを除去すること;
前記クリティカルな拡張されたネットからバッファを除去したことによって、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
前記クリティカルな拡張されたネットの及ぶブロックの各々が、利用可能な領域を一切有しない又はバッファの挿入に関して唯1つのネットノードしか含まない場合に:
タイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用すること;及び
前記修正されたヴァンギネケンアルゴリズム又は前記修正されたグローバルエリアアルゴリズムに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
前記クリティカルな拡張されたネットが、ネットノードに関する第1の閾数より少ない場合であって、前記クリティカルな拡張されたネットの及ぶ1以上のブロックが、少なくともいくつかの利用可能な領域を有し且つ1より多くのネットノードを含む場合に:
前記クリティカルな拡張されたネットを修正し、前記クリティカルな拡張されたネットの及ぶブロックの各々が、利用可能な領域を一切有しない或いはバッファの挿入に関して唯1つのネットノードしか有しないようにすること;
タイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用すること;
前記修正されたヴァンギネケンアルゴリズム又は前記修正されたグローバルエリアアルゴリズムに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
前記クリティカルな拡張されたネットが、ネットノードに関する第2の閾数より多く且つネットノードに関する第3の閾数より少ない場合に:
前記クリティカルな拡張されたネットに厳密なムルガイバッファリングアルゴリズムを適用すること;及び
前記正確なムルガイバッファリングアルゴリズムのアプリケーションに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
それ以外の場合には:
拡張されたネットのルートで正当なソリューションを使用しないタイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用すること;及び
前記ヴァンギネケンアルゴリズム又は前記グローバルエリアアルゴリズムのアプリケーションに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
を行うことを特徴とするシステム。
レイアウトドリブン最適化の設計フロー例を示す図である。 ブロックレイアウト設計例を示す図である。 拡張されたネットを示す図である。 図3に示される拡張されたネットの表現例を示す図である。 図3に示される拡張されたネット中のノードνに関するソリューション計算例を示す図である。 ブロックPにおける領域競合の例を示す図である。 1ノード対1ブロック(ONPB)条件を満たす又は満たさないネットの例を示す図である。 レイアウトドリブンの領域の制約された設計の最適化方法例を示すフローチャートである。
符号の説明
10 設計フロー例
12 設計様式例

Claims (10)

  1. レイアウトドリブンのエリア制限されたデザインを最適化する論理プログラムであって、実行用に1以上の媒体中にエンコードされ、実行時に:
    デザイン及び前記デザインのレイアウトにアクセスすること;
    前記デザイン及び前記レイアウトの第1のタイミング分析を行うこと;
    前記デザイン及び前記レイアウトの更新を行うこと;
    前記デザイン及び前記レイアウトの更新を考慮に入れて、前記デザイン及び前記レイアウトの第2のタイミング分析を行うこと;
    前記第2のタイミング分析の1以上の結果が、前記デザインが所定の設計目標全てに合致していることを示す或いは前記第1のタイミング分析の1以上の結果に関する1以上の設計目標に向けて何らの進展も示さない場合に、前記デザイン及び前記レイアウトを分析用に通知すること;及び
    前記第2のタイミング分析の1以上の結果が、前記デザインが1以上の所定の設計目標に合致しないことを示す、及び前記第1のタイミング分析の1以上の結果に対する1以上の設計目標に向けて少なくとも所定量の進展を示す場合に、前記デザイン及び前記レイアウトを更に更新すること;
    を行わせ、前記デザインは1以上のゲート及び該ゲートに互に接続する1以上のネットを有し、前記レイアウトは前記デザインのチップ領域を区分けするブロックを有し、ブロックの各々は1以上のゲートを有し、前記レイアウトは更にネットのグローバルルーティングを有し;
    前記デザイン及び前記レイアウトの更新は:
    バッファを通じて互に結合された1以上のネットより成るクリティカルな拡張されたネット全てを前記デザインの中で見分けること;
    前記クリティカルな拡張されたネットを並べること;
    並べた順序で前記クリティカルな拡張されたネットの各々について:
    前記クリティカルな拡張されたネット上のシンクに極性を割り当てること;
    前記クリティカルな拡張されたネットから全てのバッファを除去すること;
    前記クリティカルな拡張されたネットからバッファを除去したことによって、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
    前記クリティカルな拡張されたネットの及ぶブロックの各々が、利用可能な領域を一切有しない又はバッファの挿入に関して唯1つのネットノードしか含まない場合に:
    タイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用すること;及び
    前記修正されたヴァンギネケンアルゴリズム又は前記修正されたグローバルエリアアルゴリズムに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
    前記クリティカルな拡張されたネットが、ネットノードに関する第1の閾数より少ない場合であって、前記クリティカルな拡張されたネットの及ぶ1以上のブロックが、少なくともいくつかの利用可能な領域を有し且つ1より多くのネットノードを含む場合に:
    前記クリティカルな拡張されたネットを修正し、前記クリティカルな拡張されたネットの及ぶブロックの各々が、利用可能な領域を一切有しない或いはバッファの挿入に関して唯1つのネットノードしか有しないようにすること;
    タイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用すること;
    前記修正されたヴァンギネケンアルゴリズム又は前記修正されたグローバルエリアアルゴリズムに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
    前記クリティカルな拡張されたネットが、ネットノードに関する第2の閾数より多く且つネットノードに関する第3の閾数より少ない場合に:
    前記クリティカルな拡張されたネットに厳密なムルガイバッファリングアルゴリズムを適用すること;及び
    前記正確なムルガイバッファリングアルゴリズムのアプリケーションに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
    それ以外の場合には:
    拡張されたネットのルートで正当なソリューションを使用しないタイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用すること;及び
    前記ヴァンギネケンアルゴリズム又は前記グローバルエリアアルゴリズムのアプリケーションに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
    により行われることを特徴とする論理プログラム。
  2. レイアウトドリブンのエリア制限されたデザインを最適化する方法であって:
    デザイン及び前記デザインのレイアウトにアクセスするステップ;
    前記デザイン及び前記レイアウトの第1のタイミング分析を行うステップ;
    前記デザイン及び前記レイアウトの更新を行うステップ;
    前記デザイン及び前記レイアウトの更新を考慮して、前記デザイン及び前記レイアウトの第2のタイミング分析を行うステップ;
    前記第2のタイミング分析の1以上の結果が、前記デザインが所定の設計目標全てに合致していることを示す或いは前記第1のタイミング分析の1以上の結果に関する1以上の設計目標に向けて何らの進展も示さない場合に、前記デザイン及び前記レイアウトを分析用に通知するステップ;及び
    前記第2のタイミング分析の1以上の結果が、前記デザインが1以上の所定の設計目標に合致しないことを示す、及び前記第1のタイミング分析の1以上の結果に対する1以上の設計目標に向けて少なくとも所定量の進展を示す場合に、前記デザイン及び前記レイアウトを更に更新するステップ;
    を有し、前記デザインは1以上のゲート及び該ゲートに互に接続する1以上のネットを有し、前記レイアウトは前記デザインのチップ領域を区分けするブロックを有し、ブロックの各々は1以上のゲートを有し、前記レイアウトは更にネットのグローバルルーティングを有し;
    前記デザイン及び前記レイアウトの更新を行うステップは:
    バッファを通じて互に結合された1以上のネットより成るクリティカルな拡張されたネット全てを前記デザインの中で見分けるステップ;
    前記クリティカルな拡張されたネットを並べるステップ;
    並べた順序で前記クリティカルな拡張されたネットの各々について:
    前記クリティカルな拡張されたネット上のシンクに極性を割り当てるステップ;
    前記クリティカルな拡張されたネットから全てのバッファを除去するステップ;
    前記クリティカルな拡張されたネットからバッファを除去したことによって、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新するステップ;
    前記クリティカルな拡張されたネットの及ぶブロックの各々が、利用可能な領域を一切有しない又はバッファの挿入に関して唯1つのネットノードしか含まない場合に:
    タイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用するステップ;及び
    前記修正されたヴァンギネケンアルゴリズム又は前記修正されたグローバルエリアアルゴリズムに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新するステップ;
    前記クリティカルな拡張されたネットが、ネットノードに関する第1の閾数より少ない場合であって、前記クリティカルな拡張されたネットの及ぶ1以上のブロックが、少なくともいくつかの利用可能な領域を有し且つ1より多くのネットノードを含む場合に:
    前記クリティカルな拡張されたネットを修正し、前記クリティカルな拡張されたネットの及ぶブロックの各々が、利用可能な領域を一切有しない或いはバッファの挿入に関して唯1つのネットノードしか有しないようにするステップ;
    タイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用するステップ;
    前記修正されたヴァンギネケンアルゴリズム又は前記修正されたグローバルエリアアルゴリズムに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新するステップ;
    前記クリティカルな拡張されたネットが、ネットノードに関する第2の閾数より多く且つネットノードに関する第3の閾数より少ない場合に:
    前記クリティカルな拡張されたネットに厳密なムルガイバッファリングアルゴリズムを適用するステップ;及び
    前記正確なムルガイバッファリングアルゴリズムのアプリケーションに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新するステップ;
    それ以外の場合には:
    拡張されたネットのルートで正当なソリューションを使用しないタイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用するステップ;及び
    前記ヴァンギネケンアルゴリズム又は前記グローバルエリアアルゴリズムのアプリケーションに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新するステップ;
    を有することを特徴とする方法。
  3. レイアウトドリブンのエリア制限されたデザインを最適化するシステムであって:
    デザイン及び前記デザインのレイアウトにアクセスすること;
    前記デザイン及び前記レイアウトの第1のタイミング分析を行うこと;
    前記デザイン及び前記レイアウトの更新を行うこと;
    前記デザイン及び前記レイアウトの更新を考慮に入れて、前記デザイン及び前記レイアウトの第2のタイミング分析を行うこと;
    前記第2のタイミング分析の1以上の結果が、前記デザインが所定の設計目標全てに合致していることを示す或いは前記第1のタイミング分析の1以上の結果に関する1以上の設計目標に向けて何らの進展も示さない場合に、前記デザイン及び前記レイアウトを分析用に通知すること;及び
    前記第2のタイミング分析の1以上の結果が、前記デザインが1以上の所定の設計目標に合致しないことを示す、及び前記第1のタイミング分析の1以上の結果に対する1以上の設計目標に向けて少なくとも所定量の進展を示す場合に、前記デザイン及び前記レイアウトを更に更新すること;
    を行う最適化ツールを有し、前記デザインは1以上のゲート及び該ゲートに互に接続する1以上のネットを有し、前記レイアウトは前記デザインのチップ領域を区分けするブロックを有し、ブロックの各々は1以上のゲートを有し、前記レイアウトは更にネットのグローバルルーティングを有し;
    前記デザイン及び前記レイアウトの更新は:
    バッファを通じて互に結合された1以上のネットより成るクリティカルな拡張されたネット全てを前記デザインの中で見分けること;
    前記クリティカルな拡張されたネットを並べること;
    並べた順序で前記クリティカルな拡張されたネットの各々について:
    前記クリティカルな拡張されたネット上のシンクに極性を割り当てること;
    前記クリティカルな拡張されたネットから全てのバッファを除去すること;
    前記クリティカルな拡張されたネットからバッファを除去したことによって、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
    前記クリティカルな拡張されたネットの及ぶブロックの各々が、利用可能な領域を一切有しない又はバッファの挿入に関して唯1つのネットノードしか含まない場合に:
    タイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用すること;及び
    前記修正されたヴァンギネケンアルゴリズム又は前記修正されたグローバルエリアアルゴリズムに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
    前記クリティカルな拡張されたネットが、ネットノードに関する第1の閾数より少ない場合であって、前記クリティカルな拡張されたネットの及ぶ1以上のブロックが、少なくともいくつかの利用可能な領域を有し且つ1より多くのネットノードを含む場合に:
    前記クリティカルな拡張されたネットを修正し、前記クリティカルな拡張されたネットの及ぶブロックの各々が、利用可能な領域を一切有しない或いはバッファの挿入に関して唯1つのネットノードしか有しないようにすること;
    タイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用すること;
    前記修正されたヴァンギネケンアルゴリズム又は前記修正されたグローバルエリアアルゴリズムに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
    前記クリティカルな拡張されたネットが、ネットノードに関する第2の閾数より多く且つネットノードに関する第3の閾数より少ない場合に:
    前記クリティカルな拡張されたネットに厳密なムルガイバッファリングアルゴリズムを適用すること;及び
    前記正確なムルガイバッファリングアルゴリズムのアプリケーションに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
    それ以外の場合には:
    拡張されたネットのルートで正当なソリューションを使用しないタイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用すること;及び
    前記ヴァンギネケンアルゴリズム又は前記グローバルエリアアルゴリズムのアプリケーションに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
    により行われることを特徴とするシステム。
  4. 前記デザイン及び前記レイアウトの更新の結果として最小回路スタックの改善が所定の閾値に到達するまで動作が反復される
    ことを特徴とする請求項3記載のシステム。
  5. 前記レイアウトの最小スラックが前記デザイン及び前記レイアウトに対する更新結果を悪化させる場合には、前記デザインの中で最小スラックを悪化させている前記デザイン中の1以上のネットを確認し、前記デザインの最小スラックを悪化させる前記デザイン中のネットに関連する前記デザイン及び前記レイアウトになされる変更を止める
    ことを特徴とする請求項3記載のシステム。
  6. 前記1以上の設計目標が:
    前記デザインに関する領域の、負荷の又はスルーの制約に違反せずに前記デザインの遅延を最小化すること;
    前記デザインにおける1以上のタイミング違反を解消すること;
    前記デザインの中で遅延を増やさずに前記デザインから最大の領域を復元すること;
    前記デザイン中の1以上のスルー又は過剰負荷の問題を解決すること;
    の内の1以上より成ることを特徴とする請求項3記載のシステム。
  7. 前記クリティカルな拡張されたネットの及ぶ各ブロックが利用可能な領域を一切有しない又は唯1つのネットノードしか有しないように前記クリティカルな拡張されたネットを修正し:
    前記クリティカルな拡張されたネットに関連する1以上のゲートの配置を変更し、前記クリティカルな拡張されたネットのトポロジを変更し、或いは前記クリティカルな拡張されたネットのルーティングを変更し;又は
    前記クリティカルな拡張されたネットの及ぶブロック各々の中の唯1つのノードに1以上のバッファを挿入する;
    ことを特徴とする請求項3記載のシステム。
  8. 1以上の基準に従って前記1以上のバッファを挿入するノードを選択する
    ことを特徴とする請求項3記載のシステム。
  9. 前記修正されたヴァンギネケンアルゴリズムが、修正元のヴァンギネケンアルゴリズムによるものとは異なるバッファされるソリューションを生成し;及び
    前記修正されたグローバルエリアアルゴリズムが、修正元のグローバルエリアアルゴリズムによるものとは異なるバッファされるソリューションを生成する;
    ことを特徴とする請求項3記載のシステム。
  10. レイアウトドリブンのエリア制限されたデザインを最適化するシステムであって:
    デザイン及び前記デザインのレイアウトにアクセスする手段;
    前記デザイン及び前記レイアウトの第1のタイミング分析を行う手段;
    前記デザイン及び前記レイアウトの更新を行う手段;
    前記デザイン及び前記レイアウトの第2のタイミング分析を行う手段であって、第2のタイミング分析は前記デザイン及び前記レイアウトの更新を考慮するところの手段;
    前記第2のタイミング分析の1以上の結果が、前記デザインが所定の設計目標全てに合致していることを示す或いは前記第1のタイミング分析の1以上の結果に関する1以上の設計目標に向けて何らの進展も示さない場合に、前記デザイン及び前記レイアウトを分析用に通知する手段;及び
    前記第2のタイミング分析の1以上の結果が、前記デザインが1以上の所定の設計目標に合致しないことを示す、及び前記第1のタイミング分析の1以上の結果に対する1以上の設計目標に向けて少なくとも所定量の進展を示す場合に、前記デザイン及び前記レイアウトを更に更新する手段;
    を有し、前記デザインは1以上のゲート及び該ゲートに互に接続する1以上のネットを有し、前記レイアウトは前記デザインのチップ領域を区分けするブロックを有し、ブロックの各々は1以上のゲートを有し、前記レイアウトは更にネットのグローバルルーティングを有し;
    前記デザイン及び前記レイアウトの更新を行う手段は:
    バッファを通じて互に結合された1以上のネットより成るクリティカルな拡張されたネット全てを前記デザインの中で見分けること;
    前記クリティカルな拡張されたネットを並べること;
    並べた順序で前記クリティカルな拡張されたネットの各々について:
    前記クリティカルな拡張されたネット上のシンクに極性を割り当てること;
    前記クリティカルな拡張されたネットから全てのバッファを除去すること;
    前記クリティカルな拡張されたネットからバッファを除去したことによって、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
    前記クリティカルな拡張されたネットの及ぶブロックの各々が、利用可能な領域を一切有しない又はバッファの挿入に関して唯1つのネットノードしか含まない場合に:
    タイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用すること;及び
    前記修正されたヴァンギネケンアルゴリズム又は前記修正されたグローバルエリアアルゴリズムに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
    前記クリティカルな拡張されたネットが、ネットノードに関する第1の閾数より少ない場合であって、前記クリティカルな拡張されたネットの及ぶ1以上のブロックが、少なくともいくつかの利用可能な領域を有し且つ1より多くのネットノードを含む場合に:
    前記クリティカルな拡張されたネットを修正し、前記クリティカルな拡張されたネットの及ぶブロックの各々が、利用可能な領域を一切有しない或いはバッファの挿入に関して唯1つのネットノードしか有しないようにすること;
    タイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用すること;
    前記修正されたヴァンギネケンアルゴリズム又は前記修正されたグローバルエリアアルゴリズムに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
    前記クリティカルな拡張されたネットが、ネットノードに関する第2の閾数より多く且つネットノードに関する第3の閾数より少ない場合に:
    前記クリティカルな拡張されたネットに厳密なムルガイバッファリングアルゴリズムを適用すること;及び
    前記正確なムルガイバッファリングアルゴリズムのアプリケーションに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
    それ以外の場合には:
    拡張されたネットのルートで正当なソリューションを使用しないタイミング最適化用の修正されたヴァンギネケンアルゴリズム又は領域最小化用の修正されたグローバルエリアアルゴリズムを前記クリティカルな拡張されたネットに適用すること;及び
    前記ヴァンギネケンアルゴリズム又は前記グローバルエリアアルゴリズムのアプリケーションに従って、前記クリティカルな拡張されたネットの及ぶ前記レイアウト内のブロックを更新すること;
    を行うことを特徴とするシステム。
JP2005357161A 2004-12-14 2005-12-12 レイアウトドリブンの領域の制約された設計の最適化を行う論理プログラム、方法及びシステム Expired - Fee Related JP4673203B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US63631904P 2004-12-14 2004-12-14
US11/210,182 US7197732B2 (en) 2004-12-14 2005-08-22 Layout-driven, area-constrained design optimization

Publications (2)

Publication Number Publication Date
JP2006178958A true JP2006178958A (ja) 2006-07-06
JP4673203B2 JP4673203B2 (ja) 2011-04-20

Family

ID=36788201

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005357161A Expired - Fee Related JP4673203B2 (ja) 2004-12-14 2005-12-12 レイアウトドリブンの領域の制約された設計の最適化を行う論理プログラム、方法及びシステム

Country Status (3)

Country Link
US (1) US7197732B2 (ja)
JP (1) JP4673203B2 (ja)
CN (1) CN100498800C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8631375B2 (en) 2012-04-10 2014-01-14 International Business Machines Corporation Via selection in integrated circuit design

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070283301A1 (en) * 2006-06-05 2007-12-06 Karandikar Arvind K System and Method of Eliminating Electrical Violations
US7657855B1 (en) * 2007-05-25 2010-02-02 Xilinx, Inc. Efficient timing graph update for dynamic netlist changes
US8255196B2 (en) * 2008-08-25 2012-08-28 Fujitsu Limited Constructing a replica-based clock tree
TWI389004B (zh) * 2009-03-19 2013-03-11 Mstar Semiconductor Inc 防止壅塞配置方法及裝置
US20100257499A1 (en) * 2009-04-02 2010-10-07 International Business Machines Corporation Techniques for fast area-efficient incremental physical synthesis
US8266570B2 (en) * 2010-01-29 2012-09-11 Synopsys, Inc. Density-based area recovery in electronic design automation
WO2017200706A1 (en) * 2016-05-17 2017-11-23 Google Llc Systems and methods for automatic determination of layout constraints
EP3333735B1 (en) * 2016-12-12 2021-07-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Method and computer program for determining a placement of at least one circuit for a reconfigurable logic device
CN112733484B (zh) * 2021-01-22 2022-06-14 福州大学 基于多策略优化的Slew约束下的X结构Steiner树构造方法
CN114595903B (zh) * 2022-05-10 2022-07-29 安徽智享云科技有限公司 一种基于bim的施工现场布局优化系统及方法
CN117151018B (zh) * 2023-10-25 2024-03-12 深圳鸿芯微纳技术有限公司 缓冲器和反相器的布局方法、装置和电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6286128B1 (en) * 1998-02-11 2001-09-04 Monterey Design Systems, Inc. Method for design optimization using logical and physical information
US6591407B1 (en) * 2000-03-01 2003-07-08 Sequence Design, Inc. Method and apparatus for interconnect-driven optimization of integrated circuit design
US7127696B2 (en) * 2003-12-17 2006-10-24 International Business Machines Corporation Method and apparatus for generating steiner trees using simultaneous blockage avoidance, delay optimization and design density management

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JPN6010053230, R. Murgai, et al, "Layout−driven Timing Optimization by Generalized DeMorgan Transform", In the Proceedings of VLSI Design, 2002, IEEE *
JPN6010053231, R. Murgai, et al, "Layout−driven Logic Optimization", in Designer’s forum proceedings of IEEE Design, Automation and Test in Europe, 2001 *
JPN6010053232, R. Murgai, "Layout−driven Area−constrained Timing Optimization by Net Buffering", In the Proceedings of the International Conference on Computer−Aided Design, 2000, pp. 379−386, IEEE *
JPN6010053233, R. Murgai, "Net Buffering in the Presence of Multiple Timing Views", Published in the Proceedings of VLSI Design, 200401, IEEE *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8631375B2 (en) 2012-04-10 2014-01-14 International Business Machines Corporation Via selection in integrated circuit design

Also Published As

Publication number Publication date
US20060129960A1 (en) 2006-06-15
CN1790354A (zh) 2006-06-21
CN100498800C (zh) 2009-06-10
JP4673203B2 (ja) 2011-04-20
US7197732B2 (en) 2007-03-27

Similar Documents

Publication Publication Date Title
JP4673203B2 (ja) レイアウトドリブンの領域の制約された設計の最適化を行う論理プログラム、方法及びシステム
US8484602B2 (en) Optimizing integrated circuit design based on cell library
US6557145B2 (en) Method for design optimization using logical and physical information
Pan et al. FastRoute 2.0: A high-quality and efficient global router
US7065730B2 (en) Porosity aware buffered steiner tree construction
Cong et al. Matching-based methods for high-performance clock routing
US20050289499A1 (en) High level synthesis method for semiconductor integrated circuit
US7412680B1 (en) Method and apparatus for performing integrated global routing and buffer insertion
US6925628B2 (en) High-level synthesis method
WO2009100237A2 (en) Optimization of integrated circuit design and library
US8930870B2 (en) Optimized buffer placement based on timing and capacitance assertions
US7168057B2 (en) Targeted optimization of buffer-tree logic
Gu et al. Peak current reduction by simultaneous state replication and re-encoding
Moon et al. Design and allocation of loosely coupled multi-bit flip-flops for power reduction in post-placement optimization
Rafiq et al. Integrated floorplanning with buffer/channel insertion for bus-based microprocessor designs
Zhu et al. Minideviation: an efficient multi-stage bus-aware global router
Wu et al. Antenna avoidance in layer assignment
Lin et al. Critical-trunk-based obstacle-avoiding rectilinear Steiner tree routings and buffer insertion for delay and slack optimization
US7949976B2 (en) Systematic approach for performing cell replacement in a circuit to meet timing requirements
Wei et al. ECO timing optimization with negotiation-based re-routing and logic re-structuring using spare cells
Kahng et al. Boosting: Min-cut placement with improved signal delay
Rafiq et al. Integrated floorplanning with buffer/channel insertion for bus-based designs
KR101929440B1 (ko) 노화현상 및 전압변이를 고려한 클럭 트리 합성 방법
Chen et al. Buffered routing tree construction under buffer placement blockages
Dutt et al. A search-based bump-and-refit approach to incremental routing for ECO applications in FPGAs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100914

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110111

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110120

R150 Certificate of patent or registration of utility model

Ref document number: 4673203

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140128

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees