JP4376670B2 - スタイナー木処理装置、スタイナー木処理方法及びスタイナー木処理プログラム - Google Patents

スタイナー木処理装置、スタイナー木処理方法及びスタイナー木処理プログラム Download PDF

Info

Publication number
JP4376670B2
JP4376670B2 JP2004087754A JP2004087754A JP4376670B2 JP 4376670 B2 JP4376670 B2 JP 4376670B2 JP 2004087754 A JP2004087754 A JP 2004087754A JP 2004087754 A JP2004087754 A JP 2004087754A JP 4376670 B2 JP4376670 B2 JP 4376670B2
Authority
JP
Japan
Prior art keywords
steiner tree
edge
steiner
slide
edges
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.)
Expired - Fee Related
Application number
JP2004087754A
Other languages
English (en)
Other versions
JP2005275780A (ja
Inventor
則之 伊藤
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
Priority to JP2004087754A priority Critical patent/JP4376670B2/ja
Priority to US10/893,935 priority patent/US7266799B2/en
Publication of JP2005275780A publication Critical patent/JP2005275780A/ja
Application granted granted Critical
Publication of JP4376670B2 publication Critical patent/JP4376670B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • G06F30/394Routing

Landscapes

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

Description

本発明は、与えられたスタイナー木の変形を行うアルゴリズムを提供すると共に、この変形により、スタイナー木が存在し得る範囲を判断し、さらに変形によるスタイナー木のバリエーション数を得ることができて配線混雑度評価を行うことができるスタイナー木ハンドリング装置、スタイナー木ハンドリング方法及びスタイナー木ハンドリングプログラムに関するものである。
従来からスタイナー木は、LSIのレイアウト設計でも、特に配線問題に広く応用されている。この設計では、ネットの配線長や配線経路の予測、グローバル配線での経路決定などが代表的である。また、このスタイナー木の作成アルゴリズムでは、エッジに重み付けられたトータルコストが最小になるスタイナー木が一つ作成される。しかし、実際にはコスト最小になるスタイナー木は複数存在する。この性質を柔軟性という。同一コストで複数存在するスタイナー木から設計目的にあったスタイナー木を得る手法として、スタイナー木のフリップに着目した手法が提案されている(例えば非特許文献1,2参照)。
フリップとは、同一の水平線や垂直線の上にない2点間のエッジ上にスタイナーポイントを持たないもので、upper-Lかlower-Lのどちらかの接続が可能となるものを言う。非特許文献1に記述されているHuの手法は、フリップ可能なエッジをソフトエッジと定義して、そのエッジの確定は後に延ばす手法である。
非特許文献2のBozorgzadeh等の手法は、与えられたスタイナー木に対して、フリップ可能な部分を最大にするための変形を行う。このように、スタイナー木のフリップという柔軟性を利用して、設計目的に合ったスタイナー木を得ることは、非常に有効な手法である。
上述したようなフリップを用いない方法でのスタイナー木の変形は、ブロッケージを回避したリピータ挿入に適用されている(非特許文献3参照)。このAlpertの手法では、ブロッケージを無視して作成されたスタイナー木に対して、スタイナー木のパスを削除して、新たに迷路法で経路サーチすることにより変形を行う。この場合、最初に与えられるスタイナー木はガイドであり、そのガイドをもとにリピータ挿入の目的に合ったスタイナー木に変形する。
このように、スタイナー木の柔軟性は非常に応用範囲の広い性質であり、従来、このスタイナー木の柔軟性を利用した変形により、スタイナー木のバリエーション数を求め、それによって配線性評価(配線混雑度評価)を得ることが行われている。この配線性評価は、実際に配線する前に、配線領域を小さな領域に分割して、各領域についての実際の配線量と配線を許容できる配線通過可能容量を比較した混雑度を計算して、配線可能性を示すことである。
配線性評価の重要性は、素子の配置段階で評価を行い、配線できるように配置を改善するための指標を提供できることにある。配線性評価で配線できると判断された場合には、詳細配線まで配線できることを保証しなければならない。
配線性評価(配線混雑度評価)の手法としては、経験的手法、確率的手法、グローバル配線手法の3つが代表的である。
経験的手法としては、バウンディングボックスをベースにした手法が知られる(非特許文献4,5参照)。またRent'sの法則を利用した手法も知られる(非特許文献6参照)。
確率的手法としては、Houの手法とLouの手法が知られる(非特許文献7,8参照)。
グローバル配線手法としては、Parakh等およびWang等の手法がある(非特許文献9,10参照)。
J. Hu, S. Sapatnekar. "A Timing-constrained Algorithm for Simultaneous Global Routing of Mutiple Nets", Proc. ICCAD, 2000 E. Bozorgzadeh, Ryan Kastner, Majid Sarrafzadeh, "Creating and Exploiting Flexibility in Steiner Trees", Proc. DAC, 2001 C. J. Alpert, G. Gandham, et al, "Steiner Tree Optimization for Buffers, Blockages, and Bays", IEEE TCAD vol.20, No.4, 2001 M. Wang and M. Sarrafzadeh, "Behavior of Congestion Minimization During Placement", Proc. ISPD, 1999 C. E. Cheng, "RISA: Accurate and Efficient Placement Routability Modeling", Proc. ICCAD, 1994 X. Yang, R. Kastner, and M. Sarrafzadeh, "Congestion Estimation During Top-down Placement", IEEE Transactions on Computer-Aided Design, Vol.21, No.1, 2002 W. Hou, H. Yu and W. H. Kao, "A New Congestion-Driven Placement Algorithm Based on Cell Inflation", Proc. ASPDAC, 2001 J. Lou, S. Thakur, et al, "Estimating Routing Congestion Using Probabilistic Analysis", IEEE Transactions on Computer-Aided Design, Vol.21, No.1, 2002 P. N. Parakh, R. B. Brown and K. A. Sakallah, "Congestion Driven Quadratic Placement", Proc. DAC, 1998 M. Wang and M. Sarrafzadeh, "Modeling and Minimization of Routing Congestion", Proc. ASPDAC, 2000
しかしながら、スタイナー木の作成及び変形について上述した非特許文献1〜3に示される手法に関しては、スタイナー木の柔軟性をより有効利用して現実により即した変形を行うことによりスタイナー木の存在する範囲及びその変形によるスタイナー木のバリエーションを求めるようにすることが要望されている。
また、配線混雑度評価について上述した非特許文献4〜10に示される手法に関しては以下のような課題がある。
非特許文献4によるバウンディングボックスの手法は、バウンディングボックス周囲長さの半分を配線経路と仮定する方法が一番単純なモデルであるが、実用的ではない。
非特許文献5に紹介されるRISAの手法では、バウンディングボックス内のあるロケーションを配線が通る確率を、複数のスタイナー木から作成された配線分布マップに基づいて得る。この手法では、一つのネットについて、配線が通過する領域をバウンディングボックスの範囲内にしている。そして、その範囲内のロケーション(x,y)を配線が通過する可能性は、ピン数を変化させると共に、各ピン数についての複数のピンをランダムに配置して得られる複数のセットに対してスタイナー木を生成して、配線分布マップとして求める。また、非特許文献6の手法では、Rent'sの法則から配線長予測ができる点を利用している。
これら経験的手法では、実際には通らない経路についてもそこに配線が行われるものと、ある程度仮定してしまうため、配線混雑度評価の精度としては高くない。
確率的な手法として、非特許文献7に示されるHouの手法では、ネットのピン配置の中心から各ピンと接続するstar-modelを利用し、2ピン間はlower-Lかupper-Lのどちらかが実配線では使われるという前提の確率となっている。非特許文献8に示されるLouの手法では、スタイナー木作成をベースに2ピンペアを作成し、その2ピンペア間のすべての経路数から確率的に求めている。
これら確率的手法では、2ピン間の混雑度は、複数の折れ曲がりも含めて計算が可能であるが、ネットのかたちを決めるスターやスタイナー木が一つに決められてしまうため、作成されるスタイナー木に依存した評価となるという問題がある。
グローバル配線による手法として、非特許文献9に示されるParakh等の手法及び非特許文献10に示されるWang等の手法に関する配線性混雑度の見積では、実際の配線について評価に使用されたと同じグローバル配線を使う場合には精度は高くなるが、一般的にグローバル配線エンジンの能力に依存した評価になる。また、使うグローバル配線の能力によって評価結果が異なってくるという問題がある。
本発明は、上述した課題を解決するためになされたものであり、スタイナー木の柔軟性を利用したスタイナー木の変形を行うことができ、またそれにより、スタイナー木の存在する範囲を求めることができ、あるいはその変形によるスタイナー木のバリエーション数を求めることができ、さらにはまた、その結果を用いて高い精度で配線混雑度の評価を行うことができるスタイナー木のハンドリング装置、ハンドリング方法及びハンドリングプログラムを提供することを目的としている。
上述した課題を解決するため、本発明は、複数のノードを接続する水平または垂直な複数のエッジから構成されるスタイナー木を扱うスタイナー木ハンドリング装置であって、少なくとも一つの形状を有するスタイナー木を取得するスタイナー木取得部と、取得されたスタイナー木のサイズを変更することなく、異なる形状のスタイナー木に変形するスタイナー木変形部とを備えてなるものである。
また、本発明のスタイナー木ハンドリング装置において、前記スタイナー木変形部は、前記スタイナー木の連続性を維持したままで変形することを特徴とする。
また、本発明のスタイナー木ハンドリング装置において、前記スタイナー木変形部は、前記スタイナー木の一つのエッジを削除することにより生じる二つのエッジの連続体を、前記削除したエッジとは異なるエッジを用いて再接続することによりスタイナー木を変形することを特徴とする。
また、本発明のスタイナー木ハンドリング装置においては、一つのエッジがスライド可能であるか否かを所定の判断基準に基づいて判断するスライド判断部を備え、前記スタイナー木変形部は前記一つのエッジをスライドさせてスタイナー木を変形することを特徴とすることができる。
また、本発明のスタイナー木ハンドリング装置において、前記スライド判断部は、スタイナー木より形成される一つのビンにおける向かい合う辺上にスタイナー木のエッジが存在し、且つ前記向かい合う辺のそれぞれの両端に他のエッジの端又はノードが存在する場合に、前記辺上のスタイナー木のエッジはパラレルスライドが可能であると判断することを特徴とすることができる。
また、本発明のスタイナー木ハンドリング装置において、前記スライド判断部は、スタイナー木より形成される一つのビンを囲む長方形の4辺のうちの隣り合う2辺上にスタイナー木のエッジが存在し、且つ前記隣り合う2辺の交点にスタイナー木のノードが存在しない場合に、フリップスライドが可能であると判断することを特徴とすることができる。
また、本発明のスタイナー木ハンドリング装置において、前記スライド判断部は、パラレルスライドまたはフリップスライドまたはこれらの組み合わせによる変形においては、該変形によって生じるスタイナー木により形成される複数のビンのそれぞれにより定まる横列上にあるスタイナー木の垂直エッジの数は一定であり、且つ、前記複数のビンのそれぞれにより定まる縦列上にあるスタイナー木の水平エッジの数は一定であるというルールをスタイナー木の変形特性として用いることを特徴とすることができる。
また、本発明のスタイナー木ハンドリング装置において、前記スライド判断部は、あるエッジをスライド可能にする同一ビン内の両エッジ上に、パラレルスライドまたはフリップスライドまたはこれらの組み合わせによる変形により、スタイナー木の他のエッジが位置付けられることがあり得ない場合、そのエッジはスライド可能ではないというルールをスタイナー木の変形特性として用いることを特徴とすることができる。
また、本発明のスタイナー木ハンドリング装置において、前記スライド判断部は、一つのビンにより定まる横列上にある垂直エッジの数が一つの場合、スタイナー木の全ての水平エッジはパラレルスライドによりその横列を横切ることはできず、また一つのビンにより定まる縦列上にある水平エッジの数が一つの場合、スタイナー木の全ての垂直エッジはパラレルスライドによりその縦列を横切ることはできないというルールをスタイナー木の変形特性として用いることを特徴とすることができる。
また、本発明のスタイナー木ハンドリング装置において、前記スライド判断部は、スタイナー木のノードではない位置に接続するエッジが一つのみの場合、そのエッジはパラレルスライドできないというルールをスタイナー木の変形特性として用いることを特徴とすることができる。
また、本発明のスタイナー木ハンドリング装置において、前記スタイナー木変形部による変形に際して、各エッジのスライドが他のエッジのスライドに依存するか否かの依存関係を判断して依存グラフを作成する依存グラフ作成部を備えているものである。
また、本発明のスタイナー木ハンドリング装置において、前記依存グラフ作成部により作成されたグラフに基づいて、エッジを独立にスライドすることができるグループを判断する独立スライドグループ判断部を備えているものである。
また、本発明のスイナー木ハンドリング装置において、前記独立スライドグループ判断部による判断結果に基づいて、スタイナー木の変形バリエーションの総数を求めるバリエーション総数計算部を備えているものである。
また、本発明のスタイナー木ハンドリング装置において、前記独立スライドグループ判断部による判断結果に基づいて、スタイナー木のエッジが所定の範囲を移動する場合において、該移動するエッジを有するスタイナー木の変形バリエーション数を計算する部分バリエーション計算部を備えているものである。
また、本発明のスタイナー木ハンドリング装置において、前記部分バリエーション計算部は、一つの形状のスタイナー木の一つのエッジを一つの配線として、所定領域ごとの配線量を縦方向と横方向のそれぞれについて計算することを特徴とすることができる。
また、本発明のスタイナー木ハンドリング装置において、前記バリエーション総数計算部により計算されたスタイナー木のバリエーションの総数と、前記部分バリエーション計算部により計算されたスタイナー木のバリエーション数とに基づいて、所定領域のエッジの混雑度を計算する混雑度計算部を備えている。
また、本発明のスタイナー木ハンドリング装置においては、スタイナー木の変形に伴って、複数の所定領域のうちのいずれかの所定領域を通過するエッジの数が所定数を越えた場合には、当該所定領域においてはエッジのスライドができないものとして、再度スタイナー木の変形を行って前記バリエーション総数計算部によるバリエーションの総数と前記部分バリエーション計算部によるバリエーション数を計算することを特徴とすることができる。
また、本発明のスタイナー木ハンドリング装置において、前記再度の変形と計算は、前記スタイナー木取得部で取得される複数のスタイナー木であって、それぞれ異なる複数のノードの組に対応して取得されたスタイナー木に対して行われることを特徴とすることができる。
また、本発明は、複数のノードを接続する水平または垂直な複数のエッジから構成されるスタイナー木を扱うスタイナー木ハンドリング方法であって、一つのスタイナー木を取得する取得ステップと、前記取得ステップで得られたスタイナー木のサイズを変更することなく、異なる形状のスタイナー木に変形するスタイナー木変形ステップとを備えてなるものである。
また、本発明のスタイナー木ハンドリング方法において、前記スタイナー木変形ステップにおいては、各エッジのスライドが他のエッジのスライドに依存するか否かの依存関係を判断して依存グラフを作成する依存グラフ作成ステップを備えることができる。
また、本発明のスタイナー木ハンドリング方法において、前記依存グラフ作成ステップにおいて作成されたグラフに基づいて、エッジを独立にスライドすることができるグループを判断する独立スライドグループ判断ステップを備えることができる。
また、本発明のスタイナー木ハンドリング方法において、前記独立スライドグループ判断ステップによる判断結果に基づいて、スタイナー木の変形バリエーションの総数を求めるバリエーション総数計算ステップを備えることができる。
また、本発明のスタイナー木ハンドリング方法において、前記独立スライドグループ判断ステップによる判断結果に基づいて、スタイナー木のエッジが所定の範囲を移動する場合において、該移動するエッジを有するスタイナー木の変形バリエーションの数を計算する部分バリエーション計算ステップを備えることができる。
また、本発明のスタイナー木ハンドリング方法において、前記バリエーション総数計算ステップにより計算されたスタイナー木のバリエーション総数と、前記部分バリエーション計算ステップにより計算されたスタイナー木のバリエーション数とに基づいて、所定領域のエッジの混雑度を計算する混雑度計算ステップを備えることができる。
また、本発明のスタイナー木ハンドリング方法において、スタイナー木の変形に伴って、複数の所定領域のうちのいずれかの所定領域を通過するエッジの数が所定数を越えた場合には、当該所定領域においてはエッジのスライドができないものとして再度スタイナー木変形ステップとバリエーション総数計算ステップと部分バリエーション計算ステップとを繰り返すことを特徴とすることができる。
また、本発明は、複数のノードを接続する水平または垂直な複数のエッジから構成されるスタイナー木を扱う処理をコンピュータに実行させるスタイナー木ハンドリングプログラムであって、一つのスタイナー木を取得する取得ステップと、前記取得ステップで得られたスタイナー木のサイズを変更することなく、異なる形状のスタイナー木に変形するスタイナー木変形ステップとをコンピュータに実行させるものである。
また、本発明のスタイナー木ハンドリングプログラムにおいて、前記スタイナー木変形ステップにおいては、各エッジのスライドが他のエッジのスライドに依存するか否かの依存関係を判断して依存グラフを作成する依存グラフ作成ステップを備えてコンピュータに実行させることができる。
また、本発明のスタイナー木ハンドリングプログラムにおいて、前記依存グラフ作成ステップにおいて作成されたグラフに基づいて、エッジを独立にスライドすることができるグループを判断する独立スライドグループ判断ステップを備えてコンピュータに実行させることができる。
また、本発明のスタイナー木ハンドリングプログラムにおいて、前記独立スライドグループ判断ステップによる判断結果に基づいて、スタイナー木の変形バリエーションの総数を求めるバリエーション総数計算ステップを備えてコンピュータに実行させることができる。
また、本発明のスタイナー木ハンドリングプログラムにおいて、前記独立スライドグループ判断ステップによる判断結果に基づいて、スタイナー木のエッジが所定の範囲を移動する場合において、該移動するエッジを有するスタイナー木の変形バリエーションの数を計算する部分バリエーション計算ステップを備えてコンピュータに実行させることができる。
また、本発明のスタイナー木ハンドリングプログラムにおいて、前記バリエーション総数計算ステップにより計算されたスタイナー木のバリエーション総数と、前記部分バリエーション計算ステップにより計算されたスタイナー木のバリエーション数とに基づいて、所定領域のエッジの混雑度を計算する混雑度計算ステップを備えてコンピュータに実行させることができる。
また、本発明のスタイナー木ハンドリングプログラムにおいて、スタイナー木の変形に伴って、複数の所定領域のうちのいずれかの所定領域を通過するエッジの数が所定数を越えた場合には、当該所定領域においてはエッジのスライドができないものとして再度スタイナー木変形ステップとバリエーション総数計算ステップと部分バリエーション計算ステップとを繰り返してコンピュータに実行させることができる。
なお、上述したプログラムは、コンピュータにより読取り可能な記録媒体に記憶させることによって、スタイナー木ハンドリング装置を構成するコンピュータに実行させることが可能となる。なお、上記コンピュータにより読取り可能な記録媒体としては、CD−ROMやフレキシブルディスク、DVDディスク、光磁気ディスク、ICカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
本発明によれば、スタイナー木の多くの変形バリエーションを得ることができ、また配線プロセスにおいて使用される配線ツールの種類に依存することなく、高い精度が要求される配線混雑度評価に適用でき、もって種々の配線仕様を満たす回路の配線設計を容易に行うことができるという効果を奏する。
以下、本発明の実施の形態を図面を用いて説明する。
<装置全体構成>
図1は、本発明の実施の形態におけるスタイナー木のハンドリング装置を示すブロック図である。この装置は、ネットの情報を入力するネット情報入力部1、グリッドグラフ(Grid graph)を作成するグリッドグラフ作成部2、アンダーライインググリッドグラフ(Underlying grid graph)を作成するアンダーライインググリッドグラフ作成部3、スタイナー木を作成するスタイナー木作成部4、作成された一つのスタイナー木の情報を入力するスタイナー木情報入力部5、入力されたスタイナー木のエッジを選択するスタイナー木エッジ選択部6、エッジを前方向(FORWARD)にスライド可能か否かを判断するエッジ前方向スライドチェック部7、エッジを後方向(BACKWARD)にスライド可能か否かを判断するエッジ後方向スライドチェック部8を備えている。
また、このスタイナー木ハンドリング装置は、作成されたスタイナー木の情報とスライドチェック部7,8のチェック結果に基づいてフリップ(Flip)可能な場所の検出を行うフリップ検出部9、スライドチェックと検出フリップとに基づいて依存グラフを作成し管理する依存グラフ管理部10、依存グラフから独立グラフ(補グラフ)を作成する独立グラフ作成部11、独立グラフとグリッドグラフに基づいてスタイナー木のバリエーションの数を計算するスタイナー木のバリエーション数計算部12及びそれらの結果に基づいて配線混雑度を計算する配線混雑度計算部(エッジの混雑度計算部)13、その結果を出力する配線混雑度計算結果出力部14を備えている。
なお、スタイナー木のバリエーション数計算部12は本発明のスタイナー木のバリエーションの総数を計算するバリエーション総数計算部と、あるエッジが所定領域にあるときのスタイナー木のバリエーション数を計算する部分バリエーション計算部を構成している。また、ネット情報入力部1〜スタイナー木作成部4は、本発明のスタイナー木取得部を構成している。さらにスタイナー木エッジ選択部6〜フリップ検出部9は、本発明のスタイナー木変形部を構成している。また、依存グラフ管理部10は本発明の依存グラフ作成部を構成している。さらに独立グラフ作成部は本発明の独立スライドグループ判断部にて構成されている。
<スタイナー木の作成>
図2は、グリッドグラフ作成部2、アンダーライインググリッドグラフ作成部3及びスタイナー木作成部4によるスタイナー木の作成動作について説明するフローチャート、図3はグリッドグラフを示す図、図4はアンダーライインググリッドグラフを示す図、図5はスタイナー木の作成部4の動作の一例を示す概念図である。
以下スタイナー木の作成動作について説明する。
まず、ネット情報入力部1より一つのネットについての複数のピンを入力する(ステップS1)。これらピンについて、グリッドグラフ作成部2はグリッドグラフを作成する(ステップS2)。
グリッドグラフについては、図3に示されるように配線領域を概念的にm×n矩形領域に分割し、すべての矩形の幅wと高さhは同一とされる。一つの矩形領域をバーテックス(vertex)とし、隣接するバーテックスの間にはエッジ(edge)があるものとしてG(Vg,Eg)を定義する。
この配線領域で配線が行われる対象となる回路は、ハイパーグラフH(Pall,Nall)で表現される。ここで、Pallはセルのピンの集合であり、各ピンはグラフのバーテックスとなる。Nallはグラフのエッジの集合であり、各エッジは2個以上のピンからなるPallの部分集合であり、回路のネットを表現する。また配線対象となる回路において、セルの配置はすべて完了していると仮定する。つまり、H(Pall,Nall)において、各ピンがG(Vg,Eg)上のどのバーテックスに存在するかすでに決定していることとする。
次に、アンダーライインググリッドグラフ作成部3により作成される(ステップS3)アンダーライインググリッドグラフについて説明する。
一つのネットN∈Nallを構成するピンの集合P∈Pallについて、直線からなる(rectilinear)スタイナー木(以下RSTという)とは、ネット内のすべてのピンを接続する木の中で総線長が最小で、エッジが垂直または水平であるものを言う。 このRST はバーテックスとエッジからなり、S(Vs,Es)と定義する。
アンダーライインググリッドグラフとは、図4に示されるように、ネット内のすべてのピンPを通過するすべての水平線および垂直線からなるグリッドグラフであり、U(Vu,Eu)と定義する。
RST作成部は、図5(a)に示すように入力された複数のピン情報に基づいて、図5(b)に示すようにピンのそれぞれに1つずつのグループを設定する(ステップS4)と共に、2つのグループ間の距離が一番近いところを接続する(ステップS5)。そして図5(c)に示すように接続された2つのグループを1つのグループにしていく(ステップS6)という処理を繰り返し(ステップS7)、図5(d)に示すように最終的にグループを一つにする処理を行ってRSTを作成する。作成されたRSTの一例を示す図4のU(Vu,Eu)において、4つのエッジ(グラフのグリッドエッジ)に囲まれて、その内部に他のエッジを持たない領域(長方形領域)をビン(Bin)と呼ぶ。
文献「M. Hanan. On Steiner's problem with rectilinear distance, SIAM J. Appl. Math., 14 (1966), pp. 255?265.」によれば、このアンダーライインググリッドグラフはHanan gridとも呼ばれ、RSTは少なくともこのHanan gridのサブグラフとして存在していることが知られている。
RSTのバーテックスの中で、ピンPではないバーテックスで、しかも3つ以上のエッジと接続がある時、そのバーテクスをスタイナー点と呼ぶ。図4のRSTでは、ビン(2,3)におけるSouth-Eastのコーナーのバーテックスはスタイナー点である。RSTのサイズとは、RSTを構成するエッジの長さの総和であり、|S(Vs,Es)|と定義する。
文献「J. Ho, G. Vijayan and C. K. Wong, "New Algorithms for the Rectilinear Steiner Tree Problem", IEEE Transactions on Computer-Aided Design, Vol.9, No.2, 1990」によれば、RSTにおいて、フリップによって他のエッジと重なることがないとき、このRSTは安定若しくは不変(stable)であるという。
<RSTの変形>
(RSTの変形意義)
マルチピンネットN∈Nall に含まれるすべてのピンPを接続する一つのRST S(Vs,Es)が与えられたとき、そのRSTのサイズ|S(Vs,Es)|を変えず、しかもネットNのRSTであるという条件を保ちながら、RSTを変形する。この変形は、G(Vg,Eg)上で、既存のエッジのスライドおよびフリップのみで行う。RSTの変形により作成されるすべてのRSTの集合をT(S(Vs,Es))とする。G(Vg,Eg)において、ロケーション(x,y)にあるバーテックスをv(x,y)とし、このバーテックスに対応する配線領域の4辺をそれぞれEast, West, North, Southとする。
T(S(Vs,Es))の中でv(x,y)に対応する配線領域の4辺のいずれかの辺を通過するRSTの集合をTx,y,dir(S(Vs,Es))と定義する。dirは、East, West, North, Southのいずれかである。また、G(Vg,Eg)の各バーテックスに対応する配線領域の4辺は、それぞれ所定の配線通過可能な容量を持っており、それをC(x,y,dir)と定義する。
|Tx,y,dir(S(Vs,Es))| > 0となるG(Vg,Eg)上のバーテックスの集合は、与えらたRSTがその変形により通過する可能性のある領域を示す。一つのネットに与えられたRST S(Vs,Es)ついて、RSTの変形により、ロケーション(x,y)の辺dirをエッジiが通過するRSTの集合をTi,x,y,dir(S(Vs,Es))とすると、ロケーション(x,y)の辺dirをエッジiが通過する確率Pi,x,y,dirは式(1)となる。このPi,x,y,dirをエッジiによるロケーション(x,y)の辺dirでの確率的な配線要求量と呼ぶ。
RSTのすべての変形により生成されるRSTによるロケーション(x,y)の辺dirでの確率的な配線要求量の総和Qx,y,dirは式(2)で計算できる。なお、式(2)の加算はiについて行われる。すべてのネットについてQx,y,dirを求めた総和を配線通過可能容量C(x,y,dir)で割ることにより、ロケーション(x,y)の辺dirでの配線混雑度を求めることができる。
従って、解くべき問題は、一つのRST S(Vs,Es) が与えられた場合、このRSTに対する変形によるRSTの数|T(S(Vs,Es))|およびRSTの各エッジについて|Ti,x,y,dir(S(Vs,Es))|を求めることである。
Pi,x,y,dir=|Ti,x,y,dir(S(Vs,Es))|/|T(S(Vs,Es))| (1)
Qx,y,dir=ΣPi,x,y,dir (2)
(RSTの変形アルゴリズム)
一つの安定したRST S(Vs,Es)が与えられたとき、このRSTに対するアンダーライインググリッドグラフU(Vu,Eu)を利用して、|T(S(Vs,Es))|および|Ti,x,y,dir(S(Vs,Es))|を求める機能的(greedy)なアルゴリズムを提案する。
アルゴリズムは、まずRSTのU(Vu,Eu)での各エッジの可動範囲とエッジ可動の依存関係を求め、この依存関係からRSTのバリエーション数を求める。また、このバリエーション数の中で、U(Vu,Eu)上の各ビンにエッジを持つバリエーション数を各ビン毎に求める。
RSTのバリエーション数は、変形によるRSTの数|T(S(Vs,Es))|を求めるに使われ、ビン毎に求められたバリエーション数はロケーション(x,y)のdirをエッジiが通過するRSTの集合|Ti,x,y,dir(S(Vs,Es))|を求めるのに使われる。図6では、左側の図6(a)のようなRSTが与えらた時、A,B,Cのようなエッジの移動が可能である。A,Cのようにエッジを移動した場合、図6(b)のようにさらにDのようにエッジが可動となる。本実施の形態におけるアルゴリズムは、このようにエッジの移動によってできるRSTの数を数え上げる手続きが基本となっている。また、水平および垂直の位置にない2点の経路については、L-shapeまたはZ-shapeの2回の折れ曲がり経路を仮定する。
(基本変形)
RSTの変形はまず、図7(a)(b)に示される2つのオペレーション、パラレルスライド(parallel slide)及びフリップスライド(flip slide)の任意の組み合わせによるオペレーションで実行する。このオペレーションは、RSTの接続を切断することなく変形が可能であるので、連続変形と呼ぶ。これらのオペレーションはすべてU(Vu,Eu)上で行う。
(定義1:平行スライド)
U(Vu,Eu)上のビンにおける向かい合う平行エッジ上にまたがってRSTのエッジが存在し得て、向かい合うエッジのそれぞれの両端に他のエッジの端またはノードが存在する場合、その平行エッジをまたがるエッジはパラレルスライド可能である。
(定義2:フリップスライド)
U(Vu,Eu)上のビンを囲む4辺の隣り合う2辺上にRSTのエッジが存在し得て、その2つのエッジの交点にピンまたはスタイナーノード(ノード)がない場合、フリップスライドが可能である。
(スライドの特性)
与えられるRSTは安定であるので、パラレルスライドによりRSTの別のエッジと重なることはなく、またフリップスライドにより別のエッジと重なることもない。スライドに関しては重要な4つの特性(property)があり、スライド範囲の検索の際に、検索空間を小さくするために利用される。
(特性1)
パラレルスライドおよびフリップスライドの組み合わせによる変形によりできるRSTでは、横列(U(Vu,Eu)における各行(raw))にある垂直エッジ(vertical edge)の数は一定であり、縦列(U(Vu,Eu)における各列(column))にある水平エッジ(horizontal edge)の数は一定である。
(特性2)
あるエッジをスライド可能にする同一ビン内の両エッジ上に、パラレルスライドおよびフリップスライドの組み合わせではRSTの他のエッジが来ることがあり得ないとき、そのエッジはスライド可能(slidable)ではない。
(特性3)
一つの行にある垂直エッジの数が1の場合、RSTのすべての水平エッジはパラレルスライドによりその行(横列)を横切ることはできない。列(縦列)についても同様である。
(特性4)
RSTのスタイナー点ではないバーテックスに接続するエッジが1つのみの場合、そのエッジはパラレルスライドはできない。
(RST変形処理1)
ネットNに対して与えられたRST S(Vs,Es)の各エッジEj∈Esに対して、まず図8に示すように、U(Vu,Eu)上で連続変形だけで最大のスライド可能(slidable)範囲を探索する。このとき、一つのエッジがスライド可能であること(slidability)は、他のエッジがスライド可能であるか否かに依存する。つまり、パラレルスライドは、定義1により、パラレルスライドを可能とする2つのエッジが存在できることが必要である。この依存関係を作りながら、すべてのエッジについてその最大スライド可能範囲を探索する。この結果、各エッジのスライドが可能である範囲と他のエッジがスライド可能であることとの依存関係が図9に示す依存グラフとして作成される。
(スライドと依存性)
各エッジのスライド可能範囲を示す図8に示されるように、一つのエッジが複数のビン上をスライド可能である場合には、それぞれのビン毎のスライド範囲を定義する。エッジがスライド可能である場合(エッジのslidability)は、図8に示すAからGまでの7つがある。図9に示す依存グラフは、これら7つがスライド可能となるための依存関係を示している。たとえば、ビン(1,2)のWestエッジは、一つのエッジがスライド可能とされる(slidability)AとCに関連しているので、AとCはそれぞれお互いに依存関係を持つ。
スライド可能とされる(slidability)Cはまた、スライド可能とされるBに依存している。これは、スライド可能とされるCがスライド可能とされるBによるエッジの移動では、ビン(2,3)のSouthとEastにエッジが存在していることが必要であるためである。スライド可能とされるEは、ビン(3,3)のNorthエッジがスライド可能とされる DとEに関連しているため、スライド可能とされるDに依存している。さらに、Eが可能となるためには、ビン(3,3)のEastとWestにエッジがあることが必要であるため、スライド可能とされるCとGにも依存している。
以上の考え方より、一つのRSTに対する連続変形を適用して配線混雑度を計算するアルゴリズムの擬似コードは、図10のように与えられる。
図10において、「Check#flip#slide」は、フリップスライド(flip slide)可能なところを検索して依存グラフに登録する。「Check#para#slide」は、与えられたRSTにおいて指定されたエッジが指定された方向にパラレルスライド(parallel slide)可能であるか否かをチェックする。
このとき、このパラレルスライドが他のパラレルスライドやフリップスライドに依存する場合には、図9の依存グラフに登録される。また、「Get#independent#complete#graph」は、依存グラフから図13において後述する補グラフ(独立グラフ)を作成して、その補グラフから部分完全グラフのすべてを抽出する。「Calculate#congestion」は、補グラフから求められた部分完全グラフを使って、<配線混雑度の計算>において後述するグリッドグラフ上の配線混雑度を計算する。「Check#para#slide」の擬似コードは図11に示される。
図11において、「Get#destination」は、RSTの指定されたエッジを指定された方向にパラレルスライドするときの目的地を返してくれる関数である。目的地は、アンダーライインググリッドグラフにおいて、指定されたエッジの隣のエッジの中で、指定された方向にあるものである。「Move#edges#to#both#sides」は、「Get#destination」で得られた場所にエッジをパラレルスライド可能とするために、スライドしようとしているエッジと目的のエッジを含むビンにおいて、ビン上の他の2つのエッジにRSTのエッジをslideさせる関数である。このときのスライドはパラレルスライドでもフリップスライドでも構わない。
ビン上の2つのエッジにRSTのエッジをスライドできた場合には、「result」に「SUCCESSFUL」が返される。「SUCCESSFUL」の場合には、「Parallel#slide Check#para#slide」に入力されたエッジを実際にスライドさせ、その後で「Check#flip#slide」は、フリップスライド可能なところを検索して依存グラフに登録する。この後、アンダーライインググリッドグラフでさらに隣のエッジを対象に繰り返す。「Move#edges#to#both#sides」では、「Check#para#slide」が繰り返し可能(recursive)に呼ばれ、その繰り返しが終了するのはRSTのエッジが最早パラレルスライドできない場合であり、その判定は既述した特性3及び特性4を使って行われる。
以上に述べたRSTの変形処理の動作を図12のフローチャートに示す。このフローチャートの動作を上述した変形処理の纏めとして説明すると、作成されたRSTにおいて、まずフリップ可能な場所を見つけ、アンダーライインググラフ上の該当するビンにマークを付ける(ステップS11)。次にRSTを構成するエッジから一つのエッジを選択して(ステップS12)、そのエッジがスライド可能か否かをチェックする(ステップS13、ステップS14)。スライドは前方向(右方又は上方)及び後方向(左方又は下方)のそれぞれについて順次行う。このステップS13における処理については後で詳述する。
そして、このスライド可能性のチェックが終了すると、RSTの次のエッジを選択し(ステップS15、ステップS16)、そのエッジがスライド可能であるか否かを同様にチェックする(ステップS13〜ステップS16)。全てのエッジに対してスライド可能性のチェックが終了する(ステップS16、no)とスライドについての依存グラフができあがるので、この依存グラフについて補グラフ(独立グラフ)を作成する(ステップS17)。この補グラフはスライドの独立性を表す独立グラフとなる。
そして、<配線混雑度の計算>において後述するが、この独立グラフから独立にスライドできるものを判定しながらRSTの変形によるバリエーション数を計算する。RSTのバリエーションの中で、グリッドグラフの各バーテックスを通るRSTの数を求めることにより、グリッドグラフの各バーテックスにおける配線混雑度を計算することができる(ステップS18)。
次に、ステップS13の動作について、図14〜図17を用いて説明する。
まず、エッジが前方向にアンダーライインググリッドグラフ上で1グリッドだけスライドする場合の目的地を決定する(ステップS131)。これは、例えば図15に示す対象エッジが(1)のとき、目的地は(2)の位置として決定することを意味する。次にエッジが前方向に目的地までスライド可能となるための両サイドを求める(ステップS132)。図15においては、(3)(4)が両サイドとなる。
そして、両サイドのうちの一方(図15における(3)の場所)にエッジがあるか否かを判断し(ステップS133)、エッジがある場合は更に両サイドのうちの他方(図15における(4)の場所)にもエッジがあるか否かを判断する(ステップS134)。これら両サイドのいずれか一方にエッジが無い場合は、図16に示す処理が行われる。双方にエッジがあると判断された場合は、対象としているエッジを前方向に目的地までスライドさせる(ステップS135)。そして、RSTでフリップ可能な場所を見つけ、アンダーライインググリッドグラフの該当するビンにマークを付ける(ステップS136)。その後、移動したエッジを全てもとに戻して処理を終了する(ステップS137)。
次に、図16により両サイドのいずれか一方にエッジが無い場合の処理について説明する。
まず、両サイドのうちの一方(例えば図17で(4)の場所)にエッジが移動することができるか否かを判断するため、上記目的地(図17の(4)の場所)と平行なエッジが2以上あるか否かを判断する(ステップS1331)。2以上あると判断された場合は、両サイドのうちの一方(図17で(4)の場所)にエッジ(図17で(5)のエッジ)をスライドさせる(ステップS1332)。
なお、ここでのスライドの手順は、図14で示した処理と基本的に同じである。ただし、図14の処理では、アンダーライインググリッドグラフを1グリッドずつ順に進めるだけ進ませるのに対して、ここでは1グリッドずつ順に進めるものの、どこまでも進めるのではなく、所定の目的地まで進めるという点が異なっている。そして、両サイドのうちの一方(図17で(4)の場所)にエッジをスライドできたか否かを判断し(ステップS1333)、スライドできた場合は、依存グラフを作成する(ステップS1334)。
この場合、図17において〔1〕の移動は〔2〕と〔3〕の移動に依存する。依存グラフの作成後、あるいは、ステップS1331において平行なエッジが2以上ないと判断された場合、またはステップS1333において両サイドのうちの一方にエッジをスライドできないと判断された場合は、移動したエッジを全てもとに戻して処理を終了する(ステップS1335)。
(RST変形処理2)
上述したRSTの変形処理に対し、削除と再接続による変形を行うことによるRSTの異なるバリエーションを付加することもできる。
図18及び図19はこの削除と再接続によるRSTの変形を説明する図である。削除と再接続の処理では、ステップS16−1〜ステップS16−3が図12で示したステップS16の後に挿入される。
ステップS16−1は削除と再接続を可能な全てのエッジに対して行うための判断であり、未だ削除と再接続されるべきエッジがある場合はステップS16−2に進んでそのエッジに削除と再接続変形処理を適用する。この削除と再接続処理は、図19に示すように、例えば、(1)〜(6)までのどれか一つのエッジを削除すると共に、削除されたエッジと同じ長さで違う方向に再接続する処理を行うものである。
図19においては、(a)において、(1)のエッジを削除して(b)を得た後、(c)のように(1)´を再接続してRSTの変形を行う。
この変形によっても、新たなRSTの変形バリエーションの一つを得ることができ、それに対して更にステップS11〜ステップS16の連続変形処理を施す(ステップS16−3,y)。
そして、全ての変形処理が終了すると(ステップS16−1、yes)、ステップS17に進み、上述したと同様に独立グラフの作成(ステップS17)、配線混雑度の計算を行う(ステップS18)。
<配線混雑度の計算>
変形アルゴリズムのあとに出力されるエッジのスライド可能(edge slidability)の依存関係グラフから、Qx,y,dirを求める方法を説明する。RSTの変形による異なるトポロジーを持つRSTの総数は、スライドの独立性を判定することにより求めることができる。RSTのエッジによる一つのビン上でのスライドをslide(kind,dir,x,y)と定義する。kindはスライド(slide)の種類を表し、パラレル(parallel)またはフリップ(flip)である。また、dirはEast, West, South, Northのいずれかである。
例えば、slide(parallel,East,x,y)は、ビン(x,y)上のWestの辺にあるRSTのエッジがEastにパラレルスライド可能であることを意味する。同様に、slide(flip,dir,x,y)はdirの方向にフリップスライドが可能なことを意味する。dirはフリップスライドの対象となる2本のエッジ間のバーテックス(頂点若しくは交点)がフリップスライドで動く方向を示しており、NE(North-East), NW(North-West), SE(South-East), SW(South-West)のいずれかである。
各スライドは、他のスライドと依存関係を持っている。スライドが独立であるとは、スライドの対象となるエッジが通過するエッジがスライド可能ではないとき、そのslide (parallel,East,x,y)は他のスライドに独立であるという。逆に、通過するエッジがslide (parallel,dir,x',y')またはslide(flip,dir,x',y')であるとき、そのスライドはそれらに依存しているという。
この依存関係は図9に一例と示された依存グラフD(Vd,Ed)に表現される。このグラフにおける各頂点(vertexA~G)は、slide(kind,dir,x,y)を表している。エッジはスライドの依存関係を表し、有向エッジである。これからRSTの変形によるバリエーション数が計算可能となる。
グラフD(Vd,Ed)におけるVj∈Vdは、Vj∈Vd に対応するRSTのエッジがRST上で可動であることを意味している。そのRST上でのスライド可能な距離をdjとし、グラフD(Vd,Ed)のvertex数(頂点の数)|Vd|をrとする。スライド可能な距離djはG(Vg,Eg)上のグリッド単位で、エッジの両端を含むグリッド数とする。このとき、もしすべてのスライド可能エッジが独立にスライド可能である場合には、つまりグラフD(Vd,Ed)におけるエッジ数|Ed|が0の場合、RSTのバリエーション数Pは式(3)で表せる。式(3)における積は全てのjについて行われる。
p(d1,d2,d3,…dr)=Πdj (3)
複数のエッジが独立に移動できるグループを独立スライダビリティ(slidability)グループと呼ぶ。このグループが存在する場合、つまりグラフD(Vd,Ed)において相互に有向エッジを持たない頂点(vertex)の集合vが存在する場合、これら頂点(vertex)に対応するスライドによるRSTのバリエーション数は、式(3)においてvの各要素に対応するスライド可能な距離を1に固定して求めたものとなる。このように、独立に移動できるグループを全て求め、各グループについてバリエーション数pkとすると、|T(S(Vs,Es))|は式(4)で求まる。ここでのΣによる積算は各kについて行われる。
|T(S(Vs,Es))|=Σpk (4)
このようにRSTのバリエーション数に対して、グラフD(Vd,Ed)のVj∈Vd に対応するエッジがスライドするU(Vu,Eu)上のビンを通過するバリエーション数|T(S(Vs,Es),bin(Vj∈Vd))|は、Vjを含む独立スライダビリティグループのバリエーション数pkの総和となる。
|T(S(Vs,Es),bin(Vj∈Vd))|=Σpk (5)
独立スライダビリティグループは、エッジのスライド可能に関する依存グラフから求めることができる。まず、図9に示した依存関係グラフD(Vd,Ed)から図13に示す補グラフ(独立グラフ)Dc(Vd,Ed)、つまりD(Vd,Ed)エッジの存在しないところにエッジを作成したグラフDc(Vd,Ed)を作成する。この補グラフDc(Vd,Ed)は、各エッジが無関係にスライド可能であるとされる独立関係を表している。
そして、次にDc(Vd,Ed)より、すべての部分完全グラフ(補グラフ)を見つける。各部分完全グラフに対して、式(4)により各独立スライダビリティグループから生成可能なRSTのバリエーション数を求める。その後、式(5)によって、与えられたRSTに対して一回の連続変形を適用することにより得られるRSTのバリエーション数を求めることができる。図8で示したRSTに一回の連続変形を適用することにより得られるRSTに対する式(3)の具体例は、式(6)のように表現できる。
なお、式(6)における|AN|の表記は、Aでのスライド可能な距離を表しており、AのあるビンのN(North)の辺の長さを表す。AとCでは、ビン(1,2)のWestにある一つのエッジを共有しているため、式(3)におけるdjはAとCをまとめた一つに対して定義され、このときのdjは|AN|+|CN|となる。また、フリップスライドのB(図8)では、上下のスライドと左右のスライドがあるため、Bに対するdjは|BS|+|BE|となる。
(|AN|+|CN|)×(|BS|+|BE|)×(|DW|+|EW|)×|FN|×|GN| (6)
この例の場合、図13から独立スライダビリティグループは、[A,B,F,G], [C,F,G], [C,D], [A,D], [E]の5つのグループが存在する。これら5つのグループのそれぞれに対して、RSTのバリエーション数を式(6)をもとに求めると、式(4)の各項の定義よりそれぞれ(7)〜(11)となる。
(|AN|+0)×(|BS|+|BE|)×1×|FN|×|GN| (7)
(0+|CN|)×1×1×|FN|×|GN| (8)
(0+|CN|)×1×(|DW|+0×1×1 (9)
(|AN|+0)×1×(|DW|+0)×1×1 (10)
1×1×(0+|EW|)×1×1 (11)
従って、与えられたRSTに対して一回の連続変形を適用することにより得られるRSTのバリエーション数|T(S(Vs,Es))|は、式(7)〜(11)の和となる。また、Aのあるビンを通過するRSTのバリエーション数は、式(7)〜(11)の中にAを含むものの和となる。図8の例において、An,Be,Bs,Cn,Dw,Gn=4, Ew=6, Fn=8の場合、独立スライダビリティグループ[A,B,F,G], [C,F,G], [C,D], [A,D], [E]それぞれでのRSTのバリエーション数は、1024, 128, 16, 16, 6となる。従って、一回の連続変形の適用によるRSTのバリエーション数の総和は、1190となる。以上から、与えられたRSTの各エッジのスライド可動範囲とその範囲にあるRSTのバリエーション数がわかる。
ただし、あるエッジが一つのビンをスライド可能範囲として持つとき、RSTのバリエーション数はそのビンの境界および内部では異なる。たとえば、スライド可能範囲Gのビンでは、そのビンの左右の境界および内部を含めてRSTのバリエーション数は[A,B,F,G], [C,F,G]のバリエーション数の和となる。このとき、ビンGの左側境界では、エッジがそこに固定された場合、独立スライダビリティグループの中でGを含まないグループ[C,D], [A,D], [E]のバリエーション数の和も加算される。
このように、一つのエッジに対する可動範囲のビン集合に対して、そのエッジは必ずビン集合のどこかに存在するため、一つのエッジが可動範囲にあるRSTのバリエーション数は|T(S(Vs,Es))|に等しい。ビンGにおける配線要求量は、左側境界以外の領域上にある1グリッドの上下境界での縦配線については、式(12)で計算される。左側境界の1グリッドの上下境界での縦配線については、式(13)で計算される。
(1024+128)/1190/4≒0.242 (12)
(1024+128)/1190/4+(16+16+6)/1190/1≒0.2739 (13)
以上のような配線要求量の計算を図8に示されるRSTに対して、An,Be,Bs,Cn,Dw,Gn=4, Ew=6, Fn=8の場合について、RSTのバリエーションをベースにした配線要求量を計算して各ロケーション(x、y)に対して表示すると図20のようになる。
なお、配線要求量の計算を複数のネットに対して行っていく場合、最初一つのネットについて、図21(a)に示すようなスライド可能領域AからGまでのビン及びその境界に対する配線要求量を計算した後、各ネットから計算された配線要求量をグリッドグラフの各バーテックス(vertex)の4辺(East,West,South,North)に積算していくが、予め設定されている配線可能容量を積算配線要求量が越えた場合には、越えた場所を一部でも含む図21(a)のスライド可能領域をスライド可能でない領域として、再度配線要求量を計算するようにすることができる。
例えば、図1(a)におけるスライド可能領域Gの領域に対する積算配線要求量がその配線可能容量を越える場合、図21(b)のようにスライド可能領域Gをスライド可能ではない領域として他の領域に対して再度配線要求量を計算する。もし、全てのスライド可能領域がスライド可能ではない領域となってしまう場合には、全てのスライド可能領域はスライド可能領域のままにしておいて計算処理を行う。
以上に詳述したように、本発明の実施の形態では、RSTの変形の手法、またそれに基づく確率的手法による配線性評価の手法を提案した。RSTの幾何学的な変形は、確率的手法による配線性評価のみならず、配線混雑度の高いところを回避するRSTの作成、また縦の配線チャネルと横の配線チャネルの容量に大きな違いがあるとき、RSTの変形により縦エッジと横エッジのそれぞれの総長が目的に合ったものに近づくような変形も可能となる。本手法に基づく配線性評価が、実際の配線結果との高い相関関係を持つことが示された。この実験結果は、我々のアイディアをサポートしている。ここで提案された配線性評価がセル配置のステージで適用されることを確信する。
(付記1) 複数のノードを接続する水平または垂直な複数のエッジから構成されるスタイナー木を扱うスタイナー木ハンドリング装置であって、
少なくとも一つの形状を有するスタイナー木を取得するスタイナー木取得部と、
取得されたスタイナー木のサイズを変更することなく、異なる形状のスタイナー木に変形するスタイナー木変形部と
を備えてなるスタイナー木ハンドリング装置。
(付記2) 付記1に記載のスタイナー木ハンドリング装置において、
前記スタイナー木変形部は、前記スタイナー木の連続性を維持したままで変形することを特徴とするスタイナー木ハンドリング装置。
(付記3) 付記1に記載のスタイナー木ハンドリング装置において、
前記スタイナー木変形部は、前記スタイナー木の一つのエッジを削除することにより生じる二つのエッジの連続体を、前記削除したエッジとは異なるエッジを用いて再接続することによりスタイナー木を変形することを特徴とするスタイナー木ハンドリング装置。
(付記4) 付記2に記載のスタイナー木ハンドリング装置において、
一つのエッジがスライド可能であるか否かを所定の判断基準に基づいて判断するスライド判断部を備え、
前記スタイナー木変形部は前記一つのエッジをスライドさせてスタイナー木を変形することを特徴とするスタイナー木ハンドリング装置。
(付記5) 付記4に記載のスタイナー木ハンドリング装置において、
前記スライド判断部は、スタイナー木より形成される一つのビンにおける向かい合う辺上にスタイナー木のエッジが存在し、且つ前記向かい合う辺のそれぞれの両端に他のエッジの端又はノードが存在する場合に、前記辺上のスタイナー木のエッジはパラレルスライドが可能であると判断することを特徴とするスタイナー木ハンドリング装置。
(付記6) 付記4に記載のスタイナー木ハンドリング装置において、
前記スライド判断部は、スタイナー木より形成される一つのビンを囲む長方形の4辺のうちの隣り合う2辺上にスタイナー木のエッジが存在し、且つ前記隣り合う2辺の交点にスタイナー木のノードが存在しない場合に、フリップスライドが可能であると判断することを特徴とするスタイナー木ハンドリング装置。
(付記7) 付記4に記載のスタイナー木ハンドリング装置において、
前記スライド判断部は、パラレルスライドまたはフリップスライドまたはこれらの組み合わせによる変形においては、該変形によって生じるスタイナー木により形成される複数のビンのそれぞれにより定まる横列上にあるスタイナー木の垂直エッジの数は一定であり、且つ、前記複数のビンのそれぞれにより定まる縦列上にあるスタイナー木の水平エッジの数は一定であるというルールをスタイナー木の変形特性として用いることを特徴とするスタイナー木ハンドリング装置。
(付記8) 付記4に記載のスタイナー木ハンドリング装置において、
前記スライド判断部は、あるエッジをスライド可能にする同一ビン内の両エッジ上に、パラレルスライドまたはフリップスライドまたはこれらの組み合わせによる変形により、スタイナー木の他のエッジが位置付けられることがあり得ない場合、そのエッジはスライド可能ではないというルールをスタイナー木の変形特性として用いることを特徴とするスタイナー木ハンドリング装置。
(付記9) 付記4に記載のスタイナー木ハンドリング装置において、
前記スライド判断部は、一つのビンにより定まる横列上にある垂直エッジの数が一つの場合、スタイナー木の全ての水平エッジはパラレルスライドによりその横列を横切ることはできず、また一つのビンにより定まる縦列上にある水平エッジの数が一つの場合、スタイナー木の全ての垂直エッジはパラレルスライドによりその縦列を横切ることはできないというルールをスタイナー木の変形特性として用いることを特徴とするスタイナー木ハンドリング装置。
(付記10) 付記4に記載のスタイナー木ハンドリング装置において、
前記スライド判断部は、スタイナー木のノードではない位置に接続するエッジが一つのみの場合、そのエッジはパラレルスライドできないというルールをスタイナー木の変形特性として用いることを特徴とするスタイナー木ハンドリング装置。
(付記11) 付記2に記載のスタイナー木ハンドリング装置において、
前記スタイナー木変形部による変形に際して、各エッジのスライドが他のエッジのスライドに依存するか否かの依存関係を判断して依存グラフを作成する依存グラフ作成部を備えているスタイナー木ハンドリング装置。
(付記12) 付記11に記載のスタイナー木ハンドリング装置において、
前記依存グラフ作成部により作成されたグラフに基づいて、エッジを独立にスライドすることができるグループを判断する独立スライドグループ判断部を備えているスタイナー木ハンドリング装置。
(付記13) 付記12に記載のスタイナー木ハンドリング装置において、
前記独立スライドグループ判断部による判断結果に基づいて、スタイナー木の変形バリエーションの総数を求めるバリエーション総数計算部を備えているスタイナー木ハンドリング装置。
(付記14) 付記12または付記13に記載のスタイナー木ハンドリング装置において、
前記独立スライドグループ判断部による判断結果に基づいて、スタイナー木のエッジが所定の範囲を移動する場合において、該移動するエッジを有するスタイナー木の変形バリエーション数を計算する部分バリエーション計算部を備えているスタイナー木ハンドリング装置。
(付記15) 付記14に記載のスタイナー木ハンドリング装置において、
前記部分バリエーション計算部は、一つの形状のスタイナー木の一つのエッジを一つの配線として、所定領域ごとの配線量を縦方向と横方向のそれぞれについて計算することを特徴とするスタイナー木ハンドリング装置。
(付記16) 付記14に記載のスタイナー木ハンドリング装置において、
前記バリエーション総数計算部により計算されたスタイナー木のバリエーションの総数と、前記部分バリエーション計算部により計算されたスタイナー木のバリエーション数とに基づいて、所定領域のエッジの混雑度を計算する混雑度計算部を備えているスタイナー木ハンドリング装置。
(付記17) 付記15に記載のスタイナー木ハンドリング装置において、
スタイナー木の変形に伴って、複数の所定領域のうちのいずれかの所定領域を通過するエッジの数が所定数を越えた場合には、当該所定領域においてはエッジのスライドができないものとして、再度スタイナー木の変形を行って前記バリエーション総数計算部によるバリエーションの総数と前記部分バリエーション計算部によるバリエーション数を計算することを特徴とするスタイナー木ハンドリング装置。
(付記18) 付記17に記載のスタイナー木ハンドリング装置において、
前記再度の変形と計算は、前記スタイナー木取得部で取得される複数のスタイナー木であって、それぞれ異なる複数のノードの組に対応して取得されたスタイナー木に対して行われることを特徴とするスタイナー木ハンドリング装置。
(付記19) 複数のノードを接続する水平または垂直な複数のエッジから構成されるスタイナー木を扱うスタイナー木ハンドリング方法であって、
一つのスタイナー木を取得する取得ステップと、
前記取得ステップで得られたスタイナー木のサイズを変更することなく、異なる形状のスタイナー木に変形するスタイナー木変形ステップと
を備えてなるスタイナー木ハンドリング方法。
(付記20) 付記19に記載のスタイナー木ハンドリング方法において、
前記スタイナー木変形ステップにおいては、各エッジのスライドが他のエッジのスライドに依存するか否かの依存関係を判断して依存グラフを作成する依存グラフ作成ステップを備えているスタイナー木ハンドリング方法。
(付記21) 付記20に記載のスタイナー木ハンドリング方法において、
前記依存グラフ作成ステップにおいて作成されたグラフに基づいて、エッジを独立にスライドすることができるグループを判断する独立スライドグループ判断ステップを備えているスタイナー木ハンドリング方法。
(付記22) 付記21に記載のスタイナー木ハンドリング方法において、
前記独立スライドグループ判断ステップによる判断結果に基づいて、スタイナー木の変形バリエーションの総数を求めるバリエーション総数計算ステップを備えているスタイナー木ハンドリング方法。
(付記23) 付記21に記載のスタイナー木ハンドリング方法において、
前記独立スライドグループ判断ステップによる判断結果に基づいて、スタイナー木のエッジが所定の範囲を移動する場合において、該移動するエッジを有するスタイナー木の変形バリエーションの数を計算する部分バリエーション計算ステップを備えているスタイナー木ハンドリング方法。
(付記24) 付記23に記載のスタイナー木ハンドリング方法において、
前記バリエーション総数計算ステップにより計算されたスタイナー木のバリエーション総数と、前記部分バリエーション計算ステップにより計算されたスタイナー木のバリエーション数とに基づいて、所定領域のエッジの混雑度を計算する混雑度計算ステップを備えているスタイナー木ハンドリング方法。
(付記25) 付記23に記載のスタイナー木ハンドリング方法において、
スタイナー木の変形に伴って、複数の所定領域のうちのいずれかの所定領域を通過するエッジの数が所定数を越えた場合には、当該所定領域においてはエッジのスライドができないものとして再度スタイナー木変形ステップとバリエーション総数計算ステップと部分バリエーション計算ステップとを繰り返すことを特徴とするスタイナー木ハンドリング方法。
(付記26) 複数のノードを接続する水平または垂直な複数のエッジから構成されるスタイナー木を扱う処理をコンピュータに実行させるスタイナー木ハンドリングプログラムであって、
一つのスタイナー木を取得する取得ステップと、
前記取得ステップで得られたスタイナー木のサイズを変更することなく、異なる形状のスタイナー木に変形するスタイナー木変形ステップと
をコンピュータに実行させるスタイナー木ハンドリングプログラム。
(付記27) 付記26に記載のスタイナー木ハンドリングプログラムにおいて、
前記スタイナー木変形ステップにおいては、各エッジのスライドが他のエッジのスライドに依存するか否かの依存関係を判断して依存グラフを作成する依存グラフ作成ステップを備えてコンピュータに実行させるスタイナー木ハンドリングプログラム。
(付記28) 付記27に記載のスタイナー木ハンドリングプログラムにおいて、
前記依存グラフ作成ステップにおいて作成されたグラフに基づいて、エッジを独立にスライドすることができるグループを判断する独立スライドグループ判断ステップを備えてコンピュータに実行させるスタイナー木ハンドリングプログラム。
(付記29) 付記28に記載のスタイナー木ハンドリングプログラムにおいて、
前記独立スライドグループ判断ステップによる判断結果に基づいて、スタイナー木の変形バリエーションの総数を求めるバリエーション総数計算ステップを備えてコンピュータに実行させるスタイナー木ハンドリングプログラム。
(付記30) 付記28に記載のスタイナー木ハンドリングプログラムにおいて、
前記独立スライドグループ判断ステップによる判断結果に基づいて、スタイナー木のエッジが所定の範囲を移動する場合において、該移動するエッジを有するスタイナー木の変形バリエーションの数を計算する部分バリエーション計算ステップを備えてコンピュータに実行させるスタイナー木ハンドリングプログラム。
(付記31) 付記30に記載のスタイナー木ハンドリングプログラムにおいて、
前記バリエーション総数計算ステップにより計算されたスタイナー木のバリエーション総数と、前記部分バリエーション計算ステップにより計算されたスタイナー木のバリエーション数とに基づいて、所定領域のエッジの混雑度を計算する混雑度計算ステップを備えてコンピュータに実行させるスタイナー木ハンドリングプログラム。
(付記32) 付記30に記載のスタイナー木ハンドリングプログラムにおいて、
スタイナー木の変形に伴って、複数の所定領域のうちのいずれかの所定領域を通過するエッジの数が所定数を越えた場合には、当該所定領域においてはエッジのスライドができないものとして再度スタイナー木変形ステップとバリエーション総数計算ステップと部分バリエーション計算ステップとを繰り返してコンピュータに実行させるスタイナー木ハンドリングプログラム。
本発明の実施の形態におけるスタイナー木のハンドリング装置を示すブロック図である。 スタイナー木の作成動作について説明するフローチャートである。 グリッドグラフを示す図である。 アンダーライインググリッドグラフを示す図である。 スタイナー木の作成部の動作の一例を示す概念図である。 エッジの可動条件を説明する図である。 スタイナー木の基本変形を示す図であり、図7(a)はパラレルスライド、図7(b)はフリップスライドを示す図である。 アンダーライインググリッドグラフ上で連続変形だけで最大のスライド可能範囲を探索する場合の説明図である。 依存グラフを示す図である。 一つのRSTに対する連続変形を適用して配線混雑度を計算するアルゴリズムの擬似コードを示す図である。 「Check#para#slide」の擬似コードを示す図である。 RSTの変形処理の動作を示すフローチャートである。 補グラフ(独立グラフ)を示す図である。 スライド可能のチェック動作を示すフローチャート(その1)である。 図14の動作の補足説明図である。 スライド可能のチェック動作を示すフローチャート(その2)である。 図16の動作の補足説明図である。 エッジの削除と再接続の動作を示すフローチャートである。 図18の動作の補足説明図である。 RSTのバリエーションをベースにした配線要求量を計算して各ロケーション(x、y)に対して表示した状態を示す図である。 配線要求量の計算を複数のネットに対して行っていく場合の動作の一例を示す説明図である。
符号の説明
1 ネット情報入力部、2 グリッドグラフ作成部、3 アンダーライインググリッドグラフ作成部、4 スタイナー木作成部、5 スタイナー木情報入力部、6 スタイナー木エッジ選択部、7 エッジ前方向スライドチェック部、8 エッジ後方向スライドチェック部、9 フリップ検出部、10 依存グラフ管理部、11 独立グラフ作成部、12 スタイナー木のバリエーション数計算部、13 配線混雑度計算部(エッジの混雑度計算部)。

Claims (15)

  1. 複数のノードを接続する水平方向または垂直方向の複数のエッジを有するスタイナー木を処理するスタイナー木処理装置において
    一の形状を有し、変形の対象とするスタイナー木を取得するスタイナー木取得部と、
    前記取得されたスタイナー木が有するエッジの長さの総和であるサイズを変更せずに前記一の形状とは異なる形状のスタイナー木に変形するスタイナー木変形部と、
    前記スタイナー木変形部による変形に際し、前記変形の対象とするスタイナー木が有する各エッジについての平行移動であるスライドが前記スライドを行うエッジ以外の他のエッジのスライドに依存するか否かの依存関係を表す依存情報を生成する依存情報生成部と
    前記依存情報生成部が生成する依存情報に基づいて、前記変形の対象とするスタイナー木が有する各エッジのスライドが前記スライドを行うエッジ以外の他のエッジのスライドと独立であるか否かの独立関係を表す独立情報を生成する独立情報生成部と
    前記独立情報生成部が生成する独立情報に基づき、前記変形の対象とするスタイナー木が有する所定のエッジが所定の領域に存在する場合において、前記変形の対象とするスタイナー木の変形バリエーション数を計算する部分バリエーション計算部と
    有することを特徴とするスタイナー木処理装置。
  2. 前記スタイナー木処理装置において、
    前記スタイナー木変形部は、前記スタイナー木の連続性を維持したままで、前記変形対象のスタイナー木を変形することを特徴とする請求項1記載のスタイナー木処理装置。
  3. 前記スタイナー木処理装置において、
    前記スタイナー木変形部は、前記変形対象とするスタイナー木が有するエッジのうち、一のエッジを削除することにより生じる二つのエッジの連続体を、前記削除したエッジとは異なるエッジを用いて接続することによりスタイナー木を変形することを特徴とする請求項1記載のスタイナー木処理装置。
  4. 前記スタイナー木処理装置はさらに
    前記独立情報生成部が生成する独立情報に基づいて、スタイナー木の変形バリエーションの総数を求めるバリエーション総数計算部を有することを特徴とする請求項1記載のスタイナー木処理装置。
  5. 前記スタイナー木処理装置はさらに
    前記バリエーション総数計算部により計算されたスタイナー木のバリエーションの総数と、前記部分バリエーション計算部により計算されたスタイナー木のバリエーション数とに基づいて、所定領域のエッジの混雑度を計算する混雑度計算部を有することを特徴とする請求項1記載のスタイナー木処理装置。
  6. 複数のノードを接続する水平方向または垂直方向の複数のエッジを有するスタイナー木を処理するスタイナー木処理方法において
    コンピュータに、
    スタイナー木取得部が、一の形状を有し、変形の対象とするスタイナー木を取得するステップと、
    スタイナー木変形部が、前記取得されたスタイナー木が有するエッジの長さの総和であるサイズを変更せずに前記一の形状とは異なる形状のスタイナー木に変形するステップと、
    依存情報生成部が、前記スタイナー木変形部による変形に際し、前記変形の対象とするスタイナー木が有する各エッジについての平行移動であるスライドが前記スライドを行うエッジ以外の他のエッジのスライドに依存するか否かの依存関係を表す依存情報を生成するステップと、
    独立情報生成部が、前記依存情報生成部が生成する依存情報に基づいて、前記変形の対象とするスタイナー木が有する各エッジのスライドが前記スライドを行うエッジ以外の他のエッジのスライドと独立であるか否かの独立関係を表す独立情報を生成するステップと、
    部分バリエーション計算部が、前記独立情報生成部が生成する独立情報に基づき、前記変形の対象とするスタイナー木が有する所定のエッジが所定の領域に存在する場合において、前記変形の対象とするスタイナー木の変形バリエーション数を計算するステップと、
    実行させることを特徴とするスタイナー木処理方法。
  7. 前記スタイナー木処理方法において、
    前記スタイナー木変形部は、前記スタイナー木の連続性を維持したままで、前記変形対象のスタイナー木を変形することを特徴とする請求項6記載のスタイナー木処理方法。
  8. 前記スタイナー木処理方法において、
    前記スタイナー木変形部は、前記変形対象とするスタイナー木が有するエッジのうち、一のエッジを削除することにより生じる二つのエッジの連続体を、前記削除したエッジとは異なるエッジを用いて接続することによりスタイナー木を変形することを特徴とする請求項6記載のスタイナー木処理方法。
  9. 前記スタイナー木処理方法はさらに、
    前記コンピュータに、
    バリエーション総数計算部が、前記独立情報生成部が生成する独立情報に基づいて、スタイナー木の変形バリエーションの総数を求めるステップを実行させることを特徴とする請求項6記載のスタイナー木処理方法。
  10. 前記スタイナー木処理方法はさらに、
    前記コンピュータに、
    混雑度計算部が、前記バリエーション総数計算部により計算されたスタイナー木のバリエーションの総数と、前記部分バリエーション計算部により計算されたスタイナー木のバリエーション数とに基づいて、所定領域のエッジの混雑度を計算するステップを実行させることを特徴とする請求項6記載のスタイナー木処理方法。
  11. 複数のノードを接続する水平方向または垂直方向の複数のエッジを有するスタイナー木を処理するスタイナー木処理プログラムにおいて、
    コンピュータに、
    スタイナー木取得部が、一の形状を有し、変形の対象とするスタイナー木を取得するステップと、
    スタイナー木変形部が、前記取得されたスタイナー木が有するエッジの長さの総和であるサイズを変更せずに前記一の形状とは異なる形状のスタイナー木に変形するステップと、
    依存情報生成部が、前記スタイナー木変形部による変形に際し、前記変形の対象とするスタイナー木が有する各エッジについての平行移動であるスライドが前記スライドを行うエッジ以外の他のエッジのスライドに依存するか否かの依存関係を表す依存情報を生成するステップと、
    独立情報生成部が、前記依存情報生成部が生成する依存情報に基づいて、前記変形の対象とするスタイナー木が有する各エッジのスライドが前記スライドを行うエッジ以外の他のエッジのスライドと独立であるか否かの独立関係を表す独立情報を生成するステップと、
    部分バリエーション計算部が、前記独立情報生成部が生成する独立情報に基づき、前記変形の対象とするスタイナー木が有する所定のエッジが所定の領域に存在する場合において、前記変形の対象とするスタイナー木の変形バリエーション数を計算するステップと、
    を実行させることを特徴とするスタイナー木処理プログラム。
  12. 前記スタイナー木処理プログラムにおいて、
    前記スタイナー木変形部は、前記スタイナー木の連続性を維持したままで、前記変形対象のスタイナー木を変形することを特徴とする請求項11記載のスタイナー木処理プログラム。
  13. 前記スタイナー木処理プログラムにおいて、
    前記スタイナー木変形部は、前記変形対象とするスタイナー木が有するエッジのうち、一のエッジを削除することにより生じる二つのエッジの連続体を、前記削除したエッジとは異なるエッジを用いて接続することによりスタイナー木を変形することを特徴とする請求項11記載のスタイナー木処理プログラム。
  14. 前記スタイナー木処理プログラムはさらに、
    前記コンピュータに、
    バリエーション総数計算部が、前記独立情報生成部が生成する独立情報に基づいて、スタイナー木の変形バリエーションの総数を求めるステップを実行させることを特徴とする請求項11記載のスタイナー木処理プログラム。
  15. 前記スタイナー木処理プログラムはさらに、
    前記コンピュータに、
    混雑度計算部が、前記バリエーション総数計算部により計算されたスタイナー木のバリエーションの総数と、前記部分バリエーション計算部により計算されたスタイナー木のバリエーション数とに基づいて、所定領域のエッジの混雑度を計算するステップを実行させることを特徴とする請求項11記載のスタイナー木処理プログラム。
JP2004087754A 2004-03-24 2004-03-24 スタイナー木処理装置、スタイナー木処理方法及びスタイナー木処理プログラム Expired - Fee Related JP4376670B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004087754A JP4376670B2 (ja) 2004-03-24 2004-03-24 スタイナー木処理装置、スタイナー木処理方法及びスタイナー木処理プログラム
US10/893,935 US7266799B2 (en) 2004-03-24 2004-07-20 Steiner tree handling device, Steiner tree handling method, and Steiner tree handling program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004087754A JP4376670B2 (ja) 2004-03-24 2004-03-24 スタイナー木処理装置、スタイナー木処理方法及びスタイナー木処理プログラム

Publications (2)

Publication Number Publication Date
JP2005275780A JP2005275780A (ja) 2005-10-06
JP4376670B2 true JP4376670B2 (ja) 2009-12-02

Family

ID=35061989

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004087754A Expired - Fee Related JP4376670B2 (ja) 2004-03-24 2004-03-24 スタイナー木処理装置、スタイナー木処理方法及びスタイナー木処理プログラム

Country Status (2)

Country Link
US (1) US7266799B2 (ja)
JP (1) JP4376670B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7376926B1 (en) * 2005-04-29 2008-05-20 Xilinx, Inc. Run-time efficient methods for routing large multi-fanout nets
US7401313B2 (en) * 2005-10-26 2008-07-15 Lsi Corporation Method and apparatus for controlling congestion during integrated circuit design resynthesis
US8108819B2 (en) * 2009-04-08 2012-01-31 International Business Machines Corporation Object placement in integrated circuit design
US9747406B2 (en) * 2010-11-29 2017-08-29 Synopsys, Inc. Spine routing with multiple main spines
JP5590725B2 (ja) 2010-12-28 2014-09-17 株式会社日本マイクロニクス 配線経路作成プログラム及び配線経路作成方法
JP5776413B2 (ja) * 2011-07-28 2015-09-09 富士通株式会社 回路設計支援装置、回路設計支援方法および回路設計支援プログラム
US8464196B1 (en) * 2012-03-28 2013-06-11 Cadence Design Systems, Inc. Method and system for routing optimally between terminals through intermediate vias in a circuit design
US10719653B2 (en) 2013-10-09 2020-07-21 Synopsys, Inc. Spine routing and pin grouping with multiple main spines
GB2571333B (en) 2018-02-26 2021-12-01 Advanced Risc Mach Ltd Integrated circuit design
CN110096823B (zh) * 2019-05-08 2022-10-04 深圳职业技术学院 基于二进制编码的数字集成电路布线方法及终端设备
CN113947057B (zh) * 2021-12-20 2022-04-01 南京集成电路设计服务产业创新中心有限公司 一种基于查找表的完备最优斯坦纳树构建方法

Also Published As

Publication number Publication date
US20050229137A1 (en) 2005-10-13
US7266799B2 (en) 2007-09-04
JP2005275780A (ja) 2005-10-06

Similar Documents

Publication Publication Date Title
Sun et al. Efficient and effective placement for very large circuits
US7062743B2 (en) Floorplan evaluation, global routing, and buffer insertion for integrated circuits
US7653884B2 (en) Methods and systems for placement
US6449761B1 (en) Method and apparatus for providing multiple electronic design solutions
US6446239B1 (en) Method and apparatus for optimizing electronic design
CN115315703A (zh) 使用神经网络生成集成电路布局
JP4376670B2 (ja) スタイナー木処理装置、スタイナー木処理方法及びスタイナー木処理プログラム
US7089521B2 (en) Method for legalizing the placement of cells in an integrated circuit layout
US20030005398A1 (en) Timing-driven global placement based on geometry-aware timing budgets
Xing et al. Shortest path search using tiles and piecewise linear cost propagation
JPH07334565A (ja) 物体の配置方法
US8028263B2 (en) Method, system, and computer program product for implementing incremental placement in electronics design
Chen et al. Routability-driven blockage-aware macro placement
Hutton et al. Automatic generation of synthetic sequential benchmark circuits
US6601226B1 (en) Tightloop method of timing driven placement
US6766500B1 (en) Multiple pass optimization for automatic electronic circuit placement
CN113761783A (zh) 信息处理设备、信息处理方法以及计算机可读存储介质
Chan et al. mPL6: Enhanced multilevel mixed-size placement with congestion control
US6928401B1 (en) Interactive repeater insertion simulator (IRIS) system and method
US20080244490A1 (en) Sequence-pair creating apparatus and sequence-pair creating method
US6609238B1 (en) Method of control cell placement to minimize connection length and cell delay
Chu Placement
Chu ABOUT THIS CHAPTER
Kahng et al. Digital Layout: Placement
Pfeiffer et al. Synthesis of multiplexed biofluidic microchips

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070305

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090526

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090723

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: 20090908

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: 20090909

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120918

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120918

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130918

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees