JP2003016131A - 相互接続の方法と装置 - Google Patents

相互接続の方法と装置

Info

Publication number
JP2003016131A
JP2003016131A JP2002100659A JP2002100659A JP2003016131A JP 2003016131 A JP2003016131 A JP 2003016131A JP 2002100659 A JP2002100659 A JP 2002100659A JP 2002100659 A JP2002100659 A JP 2002100659A JP 2003016131 A JP2003016131 A JP 2003016131A
Authority
JP
Japan
Prior art keywords
routing
design
level
nodes
sections
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.)
Pending
Application number
JP2002100659A
Other languages
English (en)
Inventor
Limin He
ヘ リミン
So-Zen Yao
ヤオ ソーゼン
Wenyong Deng
デン ウェンヨン
Jing Chen
チェン ジン
Liang-Jih Chao
チャオ リアン−ジー
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.)
Plato Design Systems Inc
Original Assignee
Plato Design Systems Inc
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 Plato Design Systems Inc filed Critical Plato Design Systems Inc
Publication of JP2003016131A publication Critical patent/JP2003016131A/ja
Pending legal-status Critical Current

Links

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)

Abstract

(57)【要約】 【課題】 集積回路設計レイアウト用のルーティング方
法。 【解決手段】 レイアウトは、設計ネットリストとライ
ブラリセルを備えることが出来る。マルチレベルグロー
バルルーティングは、各ネットにトポロジカルワイヤを
生成することが出来る。設計には、領域志向グラフベー
スのディテールルーティングを実行することが出来る。
ディテールルーティング後のルーティング最適化を実施
し、更にルーティング品質を改善することが出来る。幾
つかの方法は、いつも又はある時シングルスレッドでも
良く、及び/又はある時又はいつもマルチスレッドでも
良い。

Description

【発明の詳細な説明】
【0001】
【発明の技術分野】本発明は、一般にマイクロエレクト
ロニクス集積回路の分野に関する。特に、本発明は集積
回路設計のルーティング(routing)に関する。
【0002】
【従来の技術】集積回路は、同じ及び/又は色々のサイ
ズのセルと、セル間の結合を備える。セルは幾つかのピ
ンを備え、このピンはワイヤにより1つ又はそれ以上の
他のセルのピンに相互接続される。ネットは、ピン間の
接続を形成するため、ワイヤにより相互接続された1組
のピンを含む。ネットリスト(netlist)といわれる1組
のネットが、ICの接続を画定する。
【0003】ルーターがICのネットリストを読込み、
ネットリスト内のネットのピンを相互接続するワイヤを
生成する。いったんネットリスト内のネットが接続され
ると、ICは正確に機能する。しかし、ネットリスト内
に多数のネットがあるので、従来のルーターが接続タス
クを終了するには長時間かかる。更に、接続は数が多す
ぎ及び/又は過密であり、従来のルーターは、1つ又は
それ以上の設計規則違反をしないと、ルーティングを終
了させる、特に相互接続を生成することが出来ない。
【0004】
【発明が解決しようとする課題】これらの問題の多く
は、ルーターが、層から層へ均一な構造を有するノード
のグリッド表現に厳格に固執することにより、また全I
C設計のルーティングを同時に行うことによる。このよ
うなルーターは、過度の量のメモリーを要し、及び/又
はIC設計のルーティングするのに非常に長時間かか
る。
【0005】
【課題を解決するための手段】本発明のある実施例で
は、非常に大きいIC設計を、短時間で及び/又は少量
のメモリーで取扱うことが出来るルーティング方法を提
供する。本発明のある実施例は、標準インターフェース
フォーマットにより現存するIC設計の流れにスムーズ
に一体化することが出来、それゆえ使用者のコストを著
しく減少させる。
【0006】従来のグローバルルーターでは、全IC設
計のルーティングタスクが考慮され、それゆえ大量のメ
モリーと実行時間が必要であった。マルチレベルグロー
バルルーター内で、全IC設計は、本発明のある実施例
で定義するマルチレベルの階層に分割することが出来
る。いかなる時も設計の一部のみが実行され、それゆえ
この方法はメモリーと実行時間がずっと少なくてすむ。
更に、ルーティングタスクが分割されたので、マルチス
レッドの並行処理を適用して、グローバルルーターをス
ピードアップすることが出来る。他の実施例では、全て
のとき又はある時シングルスレッドでもよく、及び/又
はある時はマルチスレッドでも良い。
【0007】ある実施例では、ディテールルーターに、
グラフベース表現と呼ばれる非常に小型で効率的な表現
を用いる。グラフベース表現は、ルーターのある実施例
に必要なメモリーの量と検索空間の量を著しく減少させ
る。
【0008】1実施例では、IC設計がアクセスされ
る。IC設計は1つ又はそれ以上の層上のオブジェクト
を含む。レベルが形成される。レベルは、第1レベル
と、第2レベルと、第3レベルとを含むことが出来る。
第1レベルは第1グリッド密度におけるIC設計を表
す。第2レベルは第2グリッド密度におけるIC設計を
表す。第2グリッド密度は、少なくとも第1グリッド密
度より細かい。第3レベルは第3グリッド密度における
IC設計を表す。第3グリッド密度は、少なくとも第1
グリッド密度と第2グリッド密度より細かい。少なくと
も部分的にIC設計に基づいて、各レベルはオブジェク
トが配置される。オブジェクトは、第1レベルと第2レ
ベルと第3レベルのうち1つ又はそれ以上において相互
接続される。
【0009】1実施例では、IC設計がアクセスされ
る。IC設計は、1つ又はそれ以上の層上のオブジェク
トを含む。IC設計の第1レベルがアクセスされる。I
C設計の第1レベルは、1つ又はそれ以上の区分の第1
グループに区分される。IC設計のオブジェクトは、1
つ又はそれ以上の区分の第1グループにある。IC設計
の第2レベルが形成される。第2レベルは、第2グルー
プの区分に区分される。区分のグループの1つ又はそれ
以上の区分は、第2グループの区分の少なくとも2つの
区分により表現される。第2グループの区分の各区分内
で、オブジェクトは、第2グループの区分の他の区分と
実質的に独立に相互接続される。
【0010】1実施例では、IC設計がアクセスされ
る。IC設計は、1つ又はそれ以上の層上のオブジェク
トを含む。IC設計の第1レベルがアクセスされる。I
C設計の第1レベルは、1つ又はそれ以上の区分の第1
グループに区分される。IC設計のオブジェクトは、1
つ又はそれ以上の区分の第1グループにある。IC設計
の第2レベルが形成される。第2レベルは、第2グルー
プの区分に区分される。第1グループの区分の1つ又は
それ以上の区分は、第2グループの区分の少なくとも2
つの区分により表現される。第2グループの区分は、領
域のグループ間に割り当てられる。領域のグループの各
領域は、第2グループの区分の1つ又はそれ以上の区分
を含む。領域のグループの各領域内で、オブジェクト
は、領域のグループの他の領域と実質的に独立に相互接
続される。
【0011】1実施例では、IC設計がアクセスされ
る。IC設計は、ブロッケージのグループと、ピンのグ
ループを含む。グラフが形成される。グラフは、第1グ
ループのノードを含む。第1グループのノードの各ノー
ドは、ブロッケージ(blockage)のグループの各ブロッケ
ージの外に形成される。ピンのグループは、グラフのノ
ードを通って相互接続される。
【0012】1実施例では、第1層内にIC設計のオブ
ジェクトを位置付けるために、第1グループのノードが
形成される。第1グループのノードの少なくとも2つの
ノードは、第1間隔だけ間隔をおかれる。第2層内にI
C設計のオブジェクトを位置付けるために、第2グルー
プのノードが形成される。第2グループのノードの少な
くとも2つのノードは、第1間隔だけ間隔をおかれる。
第2グループのノードの少なくとも2つのノードは、第
1間隔より大きい1つ又はそれ以上の間隔をおかれる。
【0013】1実施例では、第1層内にIC設計のオブ
ジェクトを位置付けるために、第1グループのノードが
形成される。第1グループのノードの少なくとも2つの
ノードは、第1間隔だけ間隔をおかれる。第2層内にI
C設計のオブジェクトを位置付けるために、第2グルー
プのノードが形成される。第2グループのノードの少な
くとも2つのノードは、第1間隔だけ間隔をおかれる。
第2グループのノードの少なくとも2つのノードは、第
1間隔より小さい1つ又はそれ以上の間隔をおかれる。
【0014】1実施例では、第1層内にIC設計のオブ
ジェクトを位置付けるために、第1グループのノードが
形成される。第1グループのノードは、第1グループの
共通ノードと、第1グループの非共通ノードとを含む。
第2層内にIC設計のオブジェクトを位置付けるため
に、第2グループのノードが形成される。第2層は少な
くとも実質的に第1層に平行である。第2層は、層の軸
に沿って1層の距離だけ第1層から間隔をおいている。
第2グループのノードは、第2グループの共通ノードを
含む。第1グループの共通ノードと第2グループの共通
ノードとは、位置を共有する。もし、第2グループの共
通ノードが、層に軸に沿ってほぼ1層の距離だけ第1グ
ループの共通ノードに向かってシフトすると、第1グル
ープの共通ノードと第2グループの共通ノードとは、実
質的に同一となるであろう。もし、第2グループの共通
ノードが、層に軸に沿ってほぼ1層の距離だけ第1グル
ープの非共通ノードに向かってシフトすると、第1グル
ープの非共通ノードと第2グループの共通ノードとは、
実質的に同一なノードはなくなるであろう。
【0015】1実施例では、IC設計のボリュームが定
義される。ボリュームのサブセットは、ワイヤリングを
行う。ボリューム内にノードのグループが形成される。
ノードのグループのノードは、ボリュームのサブセット
内に形成されるように限定される。
【0016】1実施例では、IC設計の1つ又はそれ以
上の層のルーティングピッチがアクセスされる。IC設
計のボリュームが定義される。ボリュームのサブセット
は、ワイヤリングを行う。ボリューム内に第1グループ
のノードが形成される。ボリュームの外に、1つ又はそ
れ以上のノードの第2グループが形成される。1つ又は
それ以上のノードの第2グループの少なくとも1つのノ
ードは、1つ又はそれ以上のルーティングピッチの少な
くとも1つより大きいピッチで形成される。
【0017】1実施例では、IC設計の第1セルインス
タンス(instance)がアクセスされる。第1セルインスタ
ンスに隣接するIC設計の第2セルインスタンスがアク
セスされる。第1セルインスタンスと第2セルインスタ
ンスとは、チャンネルにより間隔をおいている。チャン
ネルの第1端部の近くに第1ノードが形成される。チャ
ンネルの第2端部の近くに第2ノードが形成される。第
1ノードと第2ノードの間にワイヤが直接接続される。
【0018】1実施例では、IC設計の1つ又はそれ以
上の層のルーティングピッチがアクセスされる。IC設
計の第1セルインスタンスがアクセスされる。第1セル
インスタンスに隣接するIC設計の第2セルインスタン
スがアクセスされる。第1セルインスタンスと第2セル
インスタンスとは、チャンネルにより間隔をおいてい
る。チャンネル内に1つ又はそれ以上のノードのグルー
プが形成される。チャンネル内の1つ又はそれ以上のノ
ードのグループは、1つ又はそれ以上のルーティングピ
ッチの少なくとも1つより大きいピッチを有する。
【0019】1実施例では、IC設計がアクセスされ
る。IC設計は、オブジェクトのグループを含む。ルー
ティングアルゴリズムのグループがアクセスされる。オ
ブジェクトの1つ又はそれ以上のグループが、ルーティ
ングアルゴリズムのグループの1つ又はそれ以上のルー
ティングアルゴリズムの第1組合わせに少なくとも部分
的に応答して、第1グループの相互接続と相互接続され
る。第1グループの相互接続が記憶される。1つ又はそ
れ以上のルーティングアルゴリズムの第2組合わせが、
自動的に求められる。ルーティングアルゴリズムのグル
ープの1つ又はそれ以上のルーティングアルゴリズムの
第2組合わせに少なくとも部分的に応答して、オブジェ
クトのグループの1つ又はそれ以上が、第2のグループ
の相互接続と相互接続される。第1グループの相互接続
の結果と、第2グループの相互接続の結果とが、比較さ
れる。第2グループの相互接続の結果が第1グループの
相互接続の結果より悪ければ、第1グループの相互接続
がリストア(restore)される。
【0020】1実施例では、IC設計の少なくとも第1
部分が、第1ルーティングピッチで相互接続される。も
し、相互接続が1つ又はそれ以上の設計規則違反になる
なら、IC設計の第1部分の少なくとも1部は、第1ル
ーティングピッチより小さい第2ルーティングピッチで
ルーティングされる。
【0021】1実施例では、IC設計の少なくとも第1
部分が、少なくとも第1スレッド上で相互接続される。
IC設計の少なくとも第2部分が、少なくとも第2スレ
ッド上で相互接続される。
【0022】他の実施例は、ソフトウェア、電気回路、
及び/又は本方法を実行する他の回路を含むだけでな
く、少なくとも1部がソフトウェア又は回路で出来た集
積回路、少なくとも1部がソフトウェア又は回路で出来
た部品を含むコンピュータ、サーバー、又はルーター等
のハードウェア製品の1つ又はそれ以上を含む。
【0023】
【発明の実施の形態及び実施例】次の詳細な記述は、特
定の実施例を例示するためであり、本発明の範囲を限定
するものではない。本発明の範囲内で色々の変形と調整
が可能である。
【0024】図1は、ルーターの1実施例を示す。ルー
ター100は、ユーザーとの対話を与えるグラフィカルユ
ーザーインターフェース(GUI)101と;データベー
ス103と;ピンとブロッケージ等のセルの物理的情報を
含むIC設計情報のデータベース103内に記憶するため
の、標準及び/又はカスタムの1つ又はそれ以上のフォ
ーマットのパーサー102と;IC設計のネットを相互接
続するワイヤ(次にデータベース103内に記憶される)
を生成するルーティングエンジン104と;ワイヤリング
と他の有用な情報を標準及び/カスタムのフォーマット
のファイル内に出力する出力サブシステム105とを備え
る。
【0025】グラフィカルユーザーインターフェース
(GUI)101は、ルーターにより生成したワイヤをユ
ーザーに見えるようにする。又、ユーザーが、ルーティ
ングトラック等の色々の情報を見えるようにする。それ
により又、ユーザーはワイヤ等を対話的に追加又は削除
できる。フォーマットファイルパーサー102は、工業標
準フォーマット及び/又はカスタムフォーマット等のフ
ォーマットで記憶されたIC設計情報を読み込む。セル
と接続の全体又は一部がファイルに記述される。いった
ん本発明のある実施例がルーティングを終了すると、生
成されたワイヤはファイル内へ出力される。データベー
ス103は、IC設計情報とワイヤをコンパクトで効率的
に記憶する。ルーティングエンジン104は、ワイヤを生
成し、IC設計のネットリスト内に接続を実現する。
【0026】図2を参照すると、ルーティングエンジン
200は、マルチレベル領域ベースのグローバルルーター2
01と、グラフベースのディテールルーター202とを備え
る。ある実施例のマルチレベル領域ベースのグローバル
ルーター201は、マルチレベルを構成し、その各々は1
つ又はそれ以上の層のIC全体の設計をカバーするグロ
ーバルルーティンググリッドを有するようにする。グロ
ーバルルーター201は、設計ネットリスト210を受取る。
任意のときにおいて、1つ又はそれ以上の区分の領域等
の、設計の一部のみが、ルーティングされる。それゆ
え、お金と実行時間はずっと少ない。ある実施例は、区
分のサイズを有する部分をルーティングする。更に、ル
ーティングタスクは分割されたので、マルチスレッドの
並行処理を適用して、グローバルルーター201をスピー
ドアップすることが出来る。この段階で、グローバルル
ーター201は、トポロジカルワイヤリング220を生成し、
それはディテールルーター202へ渡される。トポロジカ
ルワイヤリング220を実現する物理的ワイヤ230を生成す
るためには、ディテールルーター202は、設計全体を小
さい1組の領域及び/又は区分に分割することにより、
完全な設計のルーティングをする。ディテールルーター
202は、本発明のある実施例のマルチスレッドの並行計
算能力を使用して、これらの領域を並行してルーティン
グすることが出来る。他の実施例は、いつも又はある時
シングルスレッドでも良く、及び/又はいつも又はある
時マルチスレッドでも良い。
【0027】図3は、多数のステップを実行するマルチ
レベル領域ベースのグローバルルーター300の1実施例
を示す。ステップ301は、幾つかのレベルのグローバル
ルーティンググリッドを構成する。マルチレベルのグロ
ーバルルーティンググリッドを形成した後、ステップ30
2は、各レベルにおいて複数の区分と領域を生じる。ス
テップ303は、最も細かいレベルから最も粗いレベル
へ、領域ベースのルーティングを実行する。ある実施例
では、ステップ303の後、設計の全てのネットがルーテ
ィングされる。他の実施例では、ステップ303の後、設
計の全てではないネットがルーティングされる。ステッ
プ304は、最も粗いレベルから最も細かいレベルへ、領
域ベースのリップアップリルーティング(rip up rerout
ing)を実行する。ある実施例では、ステップ301、ステ
ップ302、ステップ303、ステップ304の一部又は全部の
順番を変え、及び/又はステップ301、ステップ302、ス
テップ303、ステップ304の一部又は全てを1回又は複数
回実行することが出来る。
【0028】図4は、マルチレベルグローバルルーティ
ンググリッド400の例を示す。図4において、第1レベ
ル410において、全体の設計は「2×2」の区分された
グローバルルーティンググリッドに分割される。P1
は、この「2×2」のグローバルルーティンググリッド
により形成された区分を表す。第2レベル420におい
て、グローバルルーティンググリッドは第1レベルグロ
ーバルルーティンググリッドのより細かいバージョンで
ある。例えば、P1区分は、第2レベル420において更
に例えば4つの区分(即ち、P1_1、P1_2、P1_3、P1_4)に
分割することが出来る。同様に、第3レベル430のグロ
ーバルルーティンググリッドが形成され、第2レベル42
0の各区分は、第3レベル430において更に区分に分割す
ることが出来る。例えば、P1_1は区分P1_1_1、と区分P1
_1_2に分割することが出来る。あるグローバルルーター
は、1つのレベルのグローバルルーティンググリッドし
か使用しない。ある実施例は、複数レベルのグローバル
ルーティンググリッドを使用する。図示する実施例は3
つのレベルを有し、他の実施例は、2レベル、4レベ
ル、又はそれ以上のレベル等の異なる数のレベルを有す
る。他の実施例は、いつも又はある時シングルスレッド
でも良く、及び/又はある時又はいつもマルチスレッド
でも良い。
【0029】この階層的グローバルルーティンググリッ
ドのレベル数は、設計のサイズに基づいて決められる。
設計サイズが大きくなると、レベル数は増加しても良
い。更に、2つの連続するレベル間のグローバルルーテ
ィンググリッドの細分の程度は異なっても良い。例え
ば、第1レベル410の区分P1は、第2レベル420で4区分
(即ち、P1_1、P1_2、P1_3、P1_4)になる。第2レベル
420の区分P1_1は、第3レベル430において2つの区分
(例えば、P1_1_1とP1_1_2)に分割することが出来る。
【0030】ある実施例では、全ての区分が同じサイズ
と形状を有するように、グリッドが分割される。他の実
施例では、少なくとも2つの区分が異なるサイズと形状
を有するように、グリッドが分割される。
【0031】ある実施例では、粗いレベルの各区分は、
同じ数の区分に分割され、細かいレベルで全てが同じ形
状を有する。他の実施例では、粗いレベルの少なくとも
2つの区分は、細かいレベルで異なる数の区分に分割さ
れる。他の実施例では、粗いレベルの少なくとも1つの
区分は、細かいレベルで少なくとも2つの異なる形状を
有する複数の区分に分割される。他の実施例では、粗い
レベルの少なくとも1つの区分は、細かいレベルでそれ
以上分割されない。
【0032】第1レベル410において、設計全体をカバ
ーするのに1つの領域を形成することが出来る。他の実
施例は、第1レベル410をカバーするのに複数の領域を
形成することが出来る。次に、第2レベル420におい
て、区分P1_1、P1_2、P1_3、P1_4を含む領域(領域_P
1)を形成することが出来る。同じサイズのさらに3つ
の領域を形成して、第2レベルの設計全体をカバーする
ことが出来る。他の実施例は、1つのレベルを他の数の
領域に分割し、各領域に異なる数の区分を割り当て、及
び/又は各領域に異なる数の区分を割り当てることが出
来る。我々は、また第3レベルにおいて領域を形成する
ことが出来る。例えば、領域_P1_halfは、4つの区分P1
_1_1、P1_1_2、P1_2_1、P1_2_2を含む。同様に、他の領
域を形成し、これらの領域が第3レベルで設計全体をカ
バーすることも出来る。ある従来のグローバルルーター
は、設計全体のグローバルルーティングを実行すること
に限定されていた。グローバルルーターの色々の実施例
は、また設計全体のグローバルルーティングを実行し、
及び/又は1つの領域においてグローバルルーティング
を実行することができる。
【0033】各レベルの領域が形成された後、グローバ
ルルーターは、第3レベル430の領域を最初にルーティ
ングすることにより、初期のワイヤリングを生じる。若
し、ネットが完全に第3レベル430の領域内に存在する
なら、それがルーティングされる。そうでなければ、ル
ーティングされない。次に、グローバルルーターは、第
2レベル420の領域に移動し、その領域に存在するルー
ティングされていないネットをルーティングする。最後
に、それは第1レベル410の1つの領域に移動し、領域
内のルーティングされていないネットをルーティングす
る。他の実施例では、グローバルルーターは、最も細か
いレベル以外の1つ又はそれ以上のレベルで初期のワイ
ヤリングを生じ、及び/又は粗いレベルから細かいレベ
ルへ移動することが出来る。
【0034】ルーティングの品質は、リップアップリル
ーティングにより更に改善することが出来る。マルチレ
ベルグローバルルーティンググリッド400の例では、リ
ップアップリルーティングは、第2レベルから開始する
ことが出来る。他の実施例は、他のレベルから開始する
ことが出来る。第2レベルの各領域について、グローバ
ルルーターは、領域内のネットをリルーティングし、ル
ーティングの品質を更に改善することが出来る。次に、
それは第3レベルへ移動し、第3レベルの各領域をリル
ーティングする。他の実施例では、リップアップリルー
ティングは細かいレベルから粗いレベルへ移動すること
が出来、又第2レベル以外の他のレベルから開始するこ
とが出来る。
【0035】各レベルの初期及び/又はリップアップル
ーティングの間、複数の領域があり、これらの領域は2
つの条件に従って独立にルーティングすることが出来
る。第1に、1つの領域をルーティングするとき、他の
領域にピン又はワイヤを有するネットについて、領域の
4つの縁部に沿ったネットの境界位置が尊重される。こ
うすることによって、異なる領域のネットのワイヤリン
グは、適正に接続することが出来る。第2に、同じネッ
トを共有する2つの異なる領域は、独立にルーティング
することが出来るが、ワイヤリングデータベースに同時
に更新することは出来ない。同期機構により、異なる領
域内の共有されたネットは、同時には更新されないこと
が保証される。ある実施例は、コンピュータオペレーテ
ィングシステムにより提供されるマルチスレッド機構を
使用し、全て又は複数の領域を並行してルーティングす
る。同時にルーティングされる領域の数は、一部は第1
に利用できる中央演算ユニット(CPU)の数による。
領域AとBの間の共有されたネットを取扱うため、ロッ
キング機構が同期を保証することが出来る。例えば、共
有されたネットが領域Aによりルーティングされると
き、領域Aは、ネットを更新する前に共有されたネット
をロックする。領域Bは、共有されたネットをロックさ
れたことを見るとき、共有されたネットを更新しない。
他の実施例は、全て又はある時シングルスレッドでも良
く、及び/又はある時はマルチスレッドでも良い。
【0036】図5は、領域志向マルチスレッドのグラフ
ベースディテールルーター500を示す。本発明のある実
施例のディテールルーターでは、設計全体を1組の多角
形等のより小さい形状に分割することにより、設計はル
ーティングされる。多角形の例は、矩形である。これら
の形状は、本発明のある実施例のマルチスレッド並列演
算能力を使用して、並行してルーティングすることが出
来る。他の実施例は、いつも又はある時シングルスレッ
ドでも良く、及び/又はある時マルチスレッドでも良
い。
【0037】第1に、ステップ501で、ディテールルー
ター500に関連する領域の内側に設計情報を読込む。例
えば、それはセル、ピン、ネットリスト、及びグローバ
ルルーティングを領域内に読込むことが出来る。次に、
ステップ502で、効率的なルーティングを支持すること
が出来るルーティンググラフ表現を作る。ルーティング
グラフが作られた後、ステップ503で、第1グラフ検索
アルゴリズムを使用して、ネットのピンを相互接続する
ルーティング経路を見出すことが出来る。他の実施例
は、いつも又はある時シングルスレッドでも良く、及び
/又はある時マルチスレッドでも良い。
【0038】いったん効率的なルーティンググラフが作
られると、グラフベースのルーティングステップ503を
実行する。グラフベースのルーティングは、1組のヒュ
ーリスティックグラフ検索アルゴリズムを備える。それ
は、ルーティングするのが困難な設計を終了させる速度
と能力を強調する。ヒューリスティックアルゴリズムの
ルーティング品質は、IC設計特性に大きく依存するの
で、本発明のある実施例では、幾つかのヒューリスティ
ックアルゴリズムを有する。メインアルゴリズムは、メ
インのルーティングタスクを取扱う。メインアルゴリズ
ムがルーティングを修了した後、それはルーティング後
の最適化段階に入る。この段階で、幾つかの異なるヒュ
ーリスティックアルゴリズムが適用される。各アルゴリ
ズムは、1つ又はそれ以上のある設計特性を目標とす
る。この段階で、設計の特性がアルゴリズムに適合しな
ければ、ルーティングの結果はより悪くなる場合があ
る。状況が修正されなければ、設計は違反なしでルーテ
ィングすることは出来ないであろう。
【0039】任意のルーターの実行時間とメモリー効率
は、ルーティング表現に大きく依存する。大きいIC設
計用の幾つかのルーターは、典型的にはルーティンググ
リッド表現を作ることを選択する。ルーティンググリッ
ド表現の簡単さにより、ルータの実行が容易になる。し
かし、ルーティンググリッド表現は、ある最近のIC設
計の要求に適合できない。従って、本発明のある実施例
は、ルーティングのため、簡単なグリッド表現より一般
的なグラフ表現を選択する。グリッド表現は、厳格に均
一な構造を有することが出来る。しかし、ルーティング
グリッド表現を有するある実施例は、この制限を有さ
ず、ルーティングラフ表現及び/又はルーティンググリ
ッド表現を使用することが出来る。この融通性により、
メモリー及び/又は実行時間の要求を減らすことが出来
る。次は本発明のある実施例のグラフ表現を示す。
【0040】図6において、ルーティング領域内に大き
いブロッケージ610がある。グリッドベースのルーティ
ングでは、大きいブロッケージが存在するという事実に
かかわらず、全領域はグリッドによりカバーされる。こ
れはグリッド表現の均一構造要求による。グラフ表現で
は、我々が、ブロッケージ用のグラフノードを作ことな
く、ブロッケージにより占められていない空のスペース
のにみ、グラフノードを構成できることを図が示してい
る。空間の多くはブロッケージにより占められるので、
結果のグラフは、より少ないノードを有する。グラフ表
現を使用することにより、グラフノードの数は、グリッ
ドの数よりずっと少なく、それゆえグリッド表現と比較
して著しくメモリーが減る。更に、グラフベースのルー
ティングアルゴリズムは、横切るノードがより少なく、
それゆえCPU時間を著しく減少させる。他の実施例で
は、ブロッケージの中又は周りのノード数は、グリッド
表現と比較して少なくとも減少しているが、ブロッケー
ジの中又は周りのノード数はゼロにはならない。
【0041】図7は、例を使用して、グラフ表現とグリ
ッド表現の差を対比する。設計の典型的な状況では、ピ
ンの形状は非常に複雑である。グリッドベースのルータ
ーが問題を取扱うには、ルーティングを終了するため
に、ピン層上に多くの余分の「アクセスグリッド」を生
じる必要がある。グリッドベースのルーターでは、グリ
ッドの均一な構造要求のために、これらのアクセスグリ
ッドは、他のルーティング層にも存在する必要がある。
それゆえ、メモリー要求は著しく増加する。図7に示す
ように、多くの3角形状(非共通)ノードが層1(710)
でピンにより作られる。グリッド表現では、均一な構造
要求のために、層2(720)もまたこれらの3角形状ノー
ドを有する必要がある。グラフ表現を使用することによ
り、層1(740)に多くの「アクセスグラフノード」を有
し、層2(730)には非常に少ないノードにすることが出
来る。層1(710)と層2(730)の共通ノードは、同じ構造
を有する。このように、メモリーとルーティング時間を
減らすことが出来る。他の実施例では、異なる層の共通
ノードは、少なくとも一部異なる構造を有することが出
来る。
【0042】図8は、ルーティング領域810内のグロー
バルルーティングされたワイヤを示す。従来のグリッド
ベースルーティングでは、ルーターは全領域をカバーす
るためルーティンググリッドを作る。我々のグラフ表現
では、我々はグローバルルートワイヤ820を取囲む領域
のみで、グラフノードを作ることが出来る。残りの領域
830では、グラフノードは全くない。例えば図8では、
本発明のある実施例はワイヤを取囲む幾つかのノードの
みを作る。この能力により、我々はメモリーと実行時間
を著しく減らすことが出来る。他の実施例では、幾つか
のグラフノードは、グローバルルートワイヤの周囲を超
える領域の部分に作られるが、グローバルルートワイヤ
の周囲より密度が低い。更に、グローバルルートワイヤ
がある層内でのみルーティングするなら、グラフノード
はこれらの層内でのみ作る必要がある。他の層の全て
は、グラフノードを有さない。他の実施例では、1つ又
はそれ以上のグラフノードが、1つ又はそれ以上の他の
層内で作られる。
【0043】図9は、2つのマクロセル920と930の間の
チャンネル構造910を示す。もし、チャンネル910内のグ
ローバルルーティングワイヤが真っ直ぐであれば、我々
は、1つ又はそれ以上のルーティングトラックのため
に、2つのグラフノードを作り、1つを左入口又はその
近くに、1つを右入口又はその近くに、配置すれば良
い。このグラフ構造で、メモリーと実行時間は著しく減
少する。これとは逆に、グリッドベースのルーターは、
層のルーティングピッチに基づいて多数のグリッドを生
成する必要がある。それゆえ、チャンネル構造が存在
し、グローバルルーティングワイヤが真っ直ぐであって
も、それは多数のグリッドを生成する。グローバルルー
ティングワイヤが真っ直ぐでないときは、更に幾つかの
ノードをチャンネル内に追加し、ルーティングを容易に
することが出来る。要するに、図9に示すアイデアを使
用して、チャンネル領域により多く又はより少ないノー
ドを追加することが出来る。他の実施例は、チャンネル
内に、ルーティングピッチより小さい密度で、1つ又は
それ以上のノードを置くことが出来る。
【0044】1組のノードは、1つ以上のルーティング
ピッチを有することが出来る。例えば、1組の3つのノ
ードは、第1ノードと第2ノードの間に1つのルーティ
ングピッチを有し、第2ノードと第3ノードの間に他の
ルーティングピッチを有することが出来る。1つのノー
ドの組は、無限大のルーティングピッチを有する。
【0045】本発明の幾つかの実施例は、最良のルーテ
ィング結果を記憶する機構を有する。もし、新しいヒュ
ーリスティックアルゴリズムを最良のルーティング解に
適用した結果、悪い結果になるなら、最良のルーティン
グ解をリストアすることができる。次に、他のヒューリ
スティックアルゴリズムが、最良の解に適用される。も
し、結果が良くなれば、更新して最良の解とすることが
出来る。このようにして、ルーティング後の最適化段階
において、ルーティング結果はよりよくなり、より悪く
なることはない。
【0046】幾つかの実施例は、IC設計の少なくとも
第1部分を第1ルーティングピッチで相互接続した。相
互接続の結果、1つ又はそれ以上の設計規則に違反する
なら、IC設計の第1部分の少なくとも一部は、第1ル
ーティングピッチより小さい第2ルーティングピッチで
ルーティングされる。
【図面の簡単な説明】
【図1】ルーターシステムのある実施例の概略図であ
る。
【図2】ルーティングエンジンのサブセットを示す。
【図3】マルチレベル領域ベースのグローバルルーター
を示す。
【図4】マルチレベルグローバルルーティンググリッド
を示す。
【図5】領域志向グラフベースのディテールルーターを
示す。
【図6】ブロッケージ上のノードを避ける又は減らすグ
ラフ表現を示す。
【図7】グラフ表現とグリッド表現の違いを例示する。
【図8】ワイヤを取囲むグラフ表現を例示する。
【図9】チャンネルのためのグラフ表現を示す。
【符号の説明】
101 グラフィカルユーザーインターフェース(GU
I) 102 パーサー 103 データベース 104 ルーティングエンジン 105 出力サブシステム 200 ルーティングエンジン 201 グローバルルーター 202 ディテールルーター 710,740 層1 720,730 層2 810 ルーティング領域 820 グローバルルートワイヤ 830 残りの領域 910 チャンネル構造 920,930 マクロセル
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成14年5月28日(2002.5.2
8)
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
フロントページの続き (72)発明者 ソーゼン ヤオ アメリカ合衆国 カリフォルニア州 94539 フリーモント ベナヴェンテ ア ヴェニュー 39586 (72)発明者 ウェンヨン デン アメリカ合衆国 カリフォルニア州 95132 サン ホセ ヴェスヴリウス レ ーン 3015 (72)発明者 ジン チェン アメリカ合衆国 カリフォルニア州 94536 フリーモント リッチフィールド サークル 38855 (72)発明者 リアン−ジー チャオ アメリカ合衆国 カリフォルニア州 94539 フリーモント ティシアック シ ーティー 40 Fターム(参考) 5B046 AA08 BA06 5F064 DD02 HH07 HH11 HH12 HH15

Claims (69)

    【特許請求の範囲】
  1. 【請求項1】 集積回路(IC)設計をルーティングす
    る方法において、 1つ又はそれ以上の層上に複数のオブジェクトを含むI
    C設計にアクセスし、 複数のレベルを形成し、該複数のレベルは、第1グリッ
    ド密度におけるIC設計を表す第1レベルと、少なくと
    も前記第1グリッド密度より細かい第2グリッド密度に
    おけるIC設計を表す第2レベルと、少なくとも前記第
    1グリッド密度と前記第2グリッド密度より細かい第3
    グリッド密度におけるIC設計を表す第3レベルとを含
    み、 前記IC設計に少なくとも部分的に基づいて、前記複数
    のレベルの各レベルに複数のオブジェクトを配置し、 前記第1レベルと前記第2レベルと前記第3レベルのう
    ち1つ又はそれ以上において、前記オブジェクトを相互
    接続するステップを備えることを特徴とする方法。
  2. 【請求項2】 前記ルーティングは、少なくとも第1回
    はマルチスレッドである請求項1に記載の方法。
  3. 【請求項3】 前記ルーティングは、少なくとも第1回
    はシングルスレッドである請求項1に記載の方法。
  4. 【請求項4】 各IC設計で、前記第1レベルと前記第
    2レベルと前記第3レベルは、少なくとも2つの層を備
    える請求項1に記載の方法。
  5. 【請求項5】 各IC設計で、前記第1レベルと前記第
    2レベルと前記第3レベルは、1つの層を備える請求項
    1に記載の方法。
  6. 【請求項6】 集積回路(IC)設計をルーティングす
    る方法において、 1つ又はそれ以上の層上に複数のオブジェクトを含むI
    C設計にアクセスし、 前記IC設計の第1レベルにアクセスし、前記IC設計
    の前記第1レベルは、1つ又はそれ以上の区分の第1の
    複数の区分に区分され、前記IC設計の前記複数のオブ
    ジェクトは、1つ又はそれ以上の区分の前記第1の複数
    の区分にあり、 前記IC設計の第2レベルを形成し、該第2レベルの形
    成は、 前記第2レベルを第2の複数の区分に区分し、前記第1
    の複数の区分の1つ又はそれ以上の区分は、前記第2の
    複数の区分の少なくとも2つの区分により表現され、 前記第2の複数の区分の各区分内で、前記第2の複数の
    区分の他の区分と実質的に独立に、前記オブジェクトを
    相互接続することを含む、ステップを備えることを特徴
    とする方法。
  7. 【請求項7】 前記ルーティングは、少なくとも第1回
    はマルチスレッドである請求項6に記載の方法。
  8. 【請求項8】 前記ルーティングは、少なくとも第1回
    はシングルスレッドである請求項6に記載の方法。
  9. 【請求項9】 1つ又はそれ以上の区分の前記第1の複
    数の区分の1つ又はそれ以上の区分は、前記複数のオブ
    ジェクトのオブジェクトを有さない請求項6に記載の方
    法。
  10. 【請求項10】 1つ又はそれ以上の区分の前記第1の
    複数の区分の各区分は、前記複数のオブジェクトの1つ
    又はそれ以上のオブジェクトを有する請求項6に記載の
    方法。
  11. 【請求項11】 オブジェクトを実質的に独立に相互接
    続することは、前記第2の複数の区分の境界条件に従属
    する請求項6に記載の方法。
  12. 【請求項12】 オブジェクトを実質的に独立に相互接
    続することは、少なくとも前記第1区分と前記第2の複
    数の区分の第2区分とにより共有されるネットにおいて
    ロッキングしている前記第2の複数の区分の第1区分に
    従属し、前記第2の複数の区分の前記第2区分によりネ
    ットの変化を防ぐ請求項6に記載の方法。
  13. 【請求項13】 前記第1の複数の区分の各区分は、前
    記第2の複数の区分の少なくとも2つの区分により表さ
    れる請求項6に記載の方法。
  14. 【請求項14】 各IC設計で、前記第1レベルと前記
    第2レベルと前記第3レベルは、少なくとも2つの層を
    備える請求項6に記載の方法。
  15. 【請求項15】 各IC設計で、前記第1レベルと前記
    第2レベルと前記第3レベルは、1つの層を備える請求
    項6に記載の方法。
  16. 【請求項16】 集積回路(IC)設計をルーティング
    する方法において、 1つ又はそれ以上の層上に複数のオブジェクトを含むI
    C設計にアクセスし、 前記IC設計の第1レベルにアクセスし、前記IC設計
    の前記第1レベルは、1つ又はそれ以上の区分の第1の
    複数の区分に区分され、前記IC設計の複数のオブジェ
    クトは、1つ又はそれ以上の区分の前記第1の複数の区
    分内にあり、 前記IC設計の第2レベルを形成し、該第2レベルの形
    成は、 前記第2レベルを第2の複数の区分に区分し、前記第1
    の複数の区分の1つ又はそれ以上の区分は、前記第2の
    複数の区分の少なくとも2つの区分により表現され、 複数の領域に前記第2の複数の区分を割り当て、前記複
    数の領域の各領域は、前記第2の複数の区分の1つ又は
    それ以上の区分を含み、 前記第2の複数の区分の各区分内で、前記複数の領域の
    他の領域と実質的に独立に、前記オブジェクトを相互接
    続することを含む、ステップを備えることを特徴とする
    方法。
  17. 【請求項17】 前記ルーティングは、少なくとも第1
    回はマルチスレッドである請求項16に記載の方法。
  18. 【請求項18】 前記ルーティングは、少なくとも第1
    回はシングルスレッドである請求項16に記載の方法。
  19. 【請求項19】 1つ又はそれ以上の区分の前記第1の
    複数の区分の1つ又はそれ以上の区分は、前記複数のオ
    ブジェクトのオブジェクトを有さない請求項16に記載
    の方法。
  20. 【請求項20】 1つ又はそれ以上の区分の前記第1の
    複数の区分の各区分は、前記複数のオブジェクトの1つ
    又はそれ以上のオブジェクトを有する請求項16に記載
    の方法。
  21. 【請求項21】 オブジェクトを実質的に独立に相互接
    続することは、前記第2の複数の区分の境界条件に従属
    する請求項16に記載の方法。
  22. 【請求項22】 オブジェクトを実質的に独立に相互接
    続することは、前記複数の領域の境界条件に従属する請
    求項16に記載の方法。
  23. 【請求項23】 オブジェクトを実質的に独立に相互接
    続することは、少なくとも前記第1区分と前記第2の複
    数の区分の第2区分により共有されるネットにおいてロ
    ックしている前記第2の複数の区分の第1の区分に従属
    し、前記第2の複数の区分の前記第2区分によりネット
    の変化を防ぐ請求項16に記載の方法。
  24. 【請求項24】 オブジェクトを実質的に独立に相互接
    続することは、少なくとも前記第1領域により共有され
    るネットにおいてロックしている前記第2の複数の領域
    の第1の領域に従属し、前記第2の複数の領域の第2の
    領域に従属し、前記複数の領域の前記第2の領域により
    ネットの変化を防ぐ請求項16に記載の方法。
  25. 【請求項25】 各IC設計で、前記第1レベルと前記
    第2レベルと前記第3レベルは、少なくとも2つの層を
    備える請求項16に記載の方法。
  26. 【請求項26】 各IC設計で、前記第1レベルと前記
    第2レベルと前記第3レベルは、1つの層を備える請求
    項16に記載の方法。
  27. 【請求項27】 集積回路(IC)設計をルーティング
    する方法において、 複数のブロッケージと複数のピンを含むIC設計にアク
    セスし、 第1の複数のノードを含むグラフを形成し、前記第1の
    複数のノードの各ノードは、前記複数のブロッケージの
    各ブロッケージの外側に形成され、 前記複数のピンを前記グラフのノードを通って相互接続
    するステップを備えることを特徴とする方法。
  28. 【請求項28】 前記ルーティングは、少なくとも第1
    回はマルチスレッドである請求項27に記載の方法。
  29. 【請求項29】 前記ルーティングは、少なくとも第1
    回はシングルスレッドである請求項27に記載の方法。
  30. 【請求項30】 集積回路(IC)設計をルーティング
    する方法において、 前記IC設計のオブジェクトを第1層に位置決めするた
    め第1の複数のノードを形成し、前記第1の複数のノー
    ドの少なくとも2つのノードは、第1間隔だけ離れてい
    て、 前記IC設計のオブジェクトを第2層に位置決めするた
    め第2の複数のノードを形成し、前記第2の複数のノー
    ドの少なくとも2つのノードは、第1間隔だけ離れてい
    て、前記第2の複数のノードの少なくとも2つのノード
    は、前記第1間隔より大きい1つ又はそれ以上の間隔だ
    け離れていることを特徴とする方法。
  31. 【請求項31】 前記ルーティングは、少なくとも第1
    回はマルチスレッドである請求項30に記載の方法。
  32. 【請求項32】 前記ルーティングは、少なくとも第1
    回はシングルスレッドである請求項30に記載の方法。
  33. 【請求項33】 集積回路(IC)設計をルーティング
    する方法において、 前記IC設計のオブジェクトを第1層に位置決めするた
    め第1の複数のノードを形成し、前記第1の複数のノー
    ドの少なくとも2つのノードは、第1間隔だけ離れてい
    て、 前記IC設計のオブジェクトを第2層に位置決めするた
    め第2の複数のノードを形成し、前記第2の複数のノー
    ドの少なくとも2つのノードは、第1間隔だけ離れてい
    て、前記第2の複数のノードの少なくとも2つのノード
    は、前記第1間隔より小さい1つ又はそれ以上の間隔だ
    け離れていることを特徴とする方法。
  34. 【請求項34】 前記ルーティングは、少なくとも第1
    回はマルチスレッドである請求項33に記載の方法。
  35. 【請求項35】 前記ルーティングは、少なくとも第1
    回はシングルスレッドである請求項33に記載の方法。
  36. 【請求項36】 集積回路(IC)設計をルーティング
    する方法において、 前記IC設計のオブジェクトを第1層に位置決めするた
    め第1の複数のノードを形成し、前記第1の複数のノー
    ドは、第1の複数の共通ノードと、第1の複数の非共通
    ノードとを含み、 前記IC設計のオブジェクトを第2層に位置決めするた
    め第2の複数のノードを形成し、 前記第2層の少なくとも一部は前記第1の層に平行であ
    り、前記第2の層は前記第1層から、層の軸に沿ってほ
    ぼ1層の距離だけ間隔をおいていて、 前記第2の複数のノードは第2の複数の共通ノードを含
    み、前記第1の複数の共通ノードと前記第2の複数の共
    通ノードとは位置を共有し、前記第2の複数の共通ノー
    ドが前記第1の複数の共通ノードに向かって、前記層の
    軸に沿ってほぼ1層の距離だけシフトすると、前記第1
    の複数の共通ノードと前記第2の複数の共通ノードとは
    ほぼ同一になり、 前記第2の複数の共通ノードが前記第1の複数の非共通
    ノードに向かって、前記層の軸に沿ってほぼ1層の距離
    だけシフトすると、前記第1の複数の非共通ノードと前
    記第2の複数の共通ノードとはほぼ同一のノードがなく
    なることを特徴とする方法。
  37. 【請求項37】 前記ルーティングは、少なくとも第1
    回はマルチスレッドである請求項36に記載の方法。
  38. 【請求項38】 前記ルーティングは、少なくとも第1
    回はシングルスレッドである請求項36に記載の方法。
  39. 【請求項39】 各IC設計で、前記第1レベルと前記
    第2レベルと前記第3レベルは、少なくとも2つの層を
    備える請求項36に記載の方法。
  40. 【請求項40】 各IC設計で、前記第1レベルと前記
    第2レベルと前記第3レベルは、1つの層を備える請求
    項36に記載の方法。
  41. 【請求項41】 集積回路(IC)設計をルーティング
    する方法において、前記IC設計のボリュームを定義
    し、前記ボリュームのサブセットは、ワイヤリングを行
    い、 前記ボリューム内に複数のノードを形成し、前記複数の
    ノードのノードは、前記ボリュームの前記サブセット内
    に形成されるように制限されることを特徴とする方法。
  42. 【請求項42】 前記ルーティングは、少なくとも第1
    回はマルチスレッドである請求項41に記載の方法。
  43. 【請求項43】 前記ルーティングは、少なくとも第1
    回はシングルスレッドである請求項41に記載の方法。
  44. 【請求項44】 前記ボリュームは1つの層を含む請求
    項41に記載の方法。
  45. 【請求項45】 前記ボリュームは少なくとも2つの層
    を含む請求項41に記載の方法。
  46. 【請求項46】 集積回路(IC)設計をルーティング
    する方法において、前記IC設計の1つ又はそれ以上の
    層の1つ又はそれ以上のルーティングピッチにアクセス
    し、 前記IC設計のボリュームを定義し、前記ボリュームの
    サブセットは、ワイヤリングを行い、 前記ボリューム内に第1の複数のノードを形成し、 前記ボリューム外に第2の複数のノードを形成し、前記
    第2の複数のノードの少なくとも1つのノードは、前記
    1つ又はそれ以上のルーティングピッチより大きいピッ
    チで形成されることを特徴とする方法。
  47. 【請求項47】 前記ルーティングは、少なくとも第1
    回はマルチスレッドである請求項46に記載の方法。
  48. 【請求項48】 前記ルーティングは、少なくとも第1
    回はシングルスレッドである請求項46に記載の方法。
  49. 【請求項49】 前記ボリュームは1つの層を含む請求
    項46に記載の方法。
  50. 【請求項50】 前記ボリュームは少なくとも2つの層
    を含む請求項46に記載の方法。
  51. 【請求項51】 集積回路(IC)設計をルーティング
    する方法において、 前記IC設計の第1セルインスタンスにアクセスし、 前記第1セルインスタンスに隣接する前記IC設計の第
    2セルインスタンスにアクセスし、前記第1セルインス
    タンスと前記第2セルインスタンスとは、チャンネルに
    より間隔をおいていて、 前記チャンネルの第1端部の近くに第1ノードを形成
    し、 前記チャンネルの第2端部の近くに第2ノードを形成
    し、 前記第1ノードと前記第2ノードの間に直接ワイヤを接
    続するステップを備えることを特徴とする方法。
  52. 【請求項52】 前記ルーティングは、少なくとも第1
    回はマルチスレッドである請求項51に記載の方法。
  53. 【請求項53】 前記ルーティングは、少なくとも第1
    回はシングルスレッドである請求項51に記載の方法。
  54. 【請求項54】 集積回路(IC)設計をルーティング
    する方法において、 前記IC設計の1つ又はそれ以上の層の1つ又はそれ以
    上のルーティングピッチにアクセスし、 前記IC設計の第1セルインスタンスにアクセスし、 前記第1セルインスタンスに隣接する前記IC設計の第
    2セルインスタンスにアクセスし、前記第1セルインス
    タンスと前記第2セルインスタンスとは、チャンネルに
    より間隔をおいていて、 前記チャンネル内に複数の1つ又はそれ以上のノードを
    形成し、前記チャンネル内の前記複数の1つ又はそれ以
    上のノードは、前記1つ又はそれ以上のルーティングピ
    ッチの少なくとも1つより大きいピッチを有することを
    特徴とする方法。
  55. 【請求項55】 前記ルーティングは、少なくとも第1
    回はマルチスレッドである請求項54に記載の方法。
  56. 【請求項56】 前記ルーティングは、少なくとも第1
    回はシングルスレッドである請求項54に記載の方法。
  57. 【請求項57】 集積回路(IC)設計をルーティング
    する方法において、 複数のオブジェクトを有するIC設計にアクセスし、 複数のルーティングアルゴリズムにアクセスし、 前記複数のルーティングアルゴリズムの1つ又はそれ以
    上のルーティングアルゴリズムの第1組合わせに少なく
    とも部分的に応じて、第1の複数の相互接続により、前
    記複数のオブジェクトの1つ又はそれ以上を相互接続
    し、 前記第1の複数の相互接続を記憶し、 1つ又はそれ以上のルーティングアルゴリズムの第2組
    合わせを自動的に求め、 前記複数のルーティングアルゴリズムの前記1つ又はそ
    れ以上のルーティングアルゴリズムの第2組合わせに少
    なくとも部分的に応じて、第2の複数の相互接続によ
    り、複数のオブジェクトの1つ又はそれ以上を相互接続
    し、 前記第1の複数の相互接続と前記第2の複数の相互接続
    の結果を比較し、 前記第2の複数の相互接続の結果が前記第1の複数の相
    互接続の結果より悪ければ、前記第1の複数の相互接続
    の結果をリストアするステップを備えることを特徴とす
    る方法。
  58. 【請求項58】 前記ルーティングは、少なくとも第1
    回はマルチスレッドである請求項57に記載の方法。
  59. 【請求項59】 前記ルーティングは、少なくとも第1
    回はシングルスレッドである請求項57に記載の方法。
  60. 【請求項60】 集積回路(IC)設計をルーティング
    する方法において、 前記IC設計の少なくとも第1部分を第1ルーティング
    ピッチで相互接続し、 相互接続の結果1つ又はそれ以上の設計規則違反になれ
    ば、前記IC設計の少なくとも第1部分の一部を前記第
    1ルーティングピッチより小さい第2ルーティングピッ
    チでルーティングすることを特徴とする方法。
  61. 【請求項61】 前記ルーティングは、少なくとも第1
    回はマルチスレッドである請求項60に記載の方法。
  62. 【請求項62】 前記ルーティングは、少なくとも第1
    回はシングルスレッドである請求項60に記載の方法。
  63. 【請求項63】 前記第1ルーティングピッチより小さ
    い第2ルーティングピッチでルーティングした前記IC
    設計の前記第1部分の一部は、少なくとも1つの設計規
    則違反を起こすIC設計の部分を含む請求項60に記載
    の方法。
  64. 【請求項64】 集積回路(IC)設計をルーティング
    する方法において、 前記IC設計の少なくとも第1部分を少なくとも第1ス
    レッド上に相互接続し、 前記IC設計の少なくとも第2部分を少なくとも第2ス
    レッド上に相互接続することを特徴とする方法。
  65. 【請求項65】 前記第1スレッドは少なくとも第1プ
    ロセッサー上を走り、前記第2スレッドは少なくとも前
    記第1プロセッサー上を走る請求項64に記載の方法。
  66. 【請求項66】 前記第1スレッドは少なくとも第1プ
    ロセッサー上を走り、前記第2スレッドは少なくとも第
    2プロセッサー上を走る請求項64に記載の方法。
  67. 【請求項67】 第1回は、前記第1スレッドと前記第
    2スレッドの両方が走る請求項64に記載の方法。
  68. 【請求項68】 第1回は、前記第1スレッドと前記第
    2スレッドのうち少なくとも1つは走らない請求項64
    に記載の方法。
  69. 【請求項69】 第1回は前記第1スレッドと前記第2
    スレッドの両方が走り、第2回は、前記第1スレッドと
    前記第2スレッドのうち少なくとも1つは走らない請求
    項64に記載の方法。
JP2002100659A 2001-02-26 2002-02-26 相互接続の方法と装置 Pending JP2003016131A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US27151501P 2001-02-26 2001-02-26
US60/271515 2001-02-26

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009005831A Division JP2009087376A (ja) 2001-02-26 2009-01-14 相互接続の方法と装置

Publications (1)

Publication Number Publication Date
JP2003016131A true JP2003016131A (ja) 2003-01-17

Family

ID=23035913

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2002100659A Pending JP2003016131A (ja) 2001-02-26 2002-02-26 相互接続の方法と装置
JP2009005831A Pending JP2009087376A (ja) 2001-02-26 2009-01-14 相互接続の方法と装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2009005831A Pending JP2009087376A (ja) 2001-02-26 2009-01-14 相互接続の方法と装置

Country Status (4)

Country Link
US (6) US7036101B2 (ja)
EP (1) EP1235164A3 (ja)
JP (2) JP2003016131A (ja)
TW (1) TW529074B (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7594196B2 (en) * 2000-12-07 2009-09-22 Cadence Design Systems, Inc. Block interstitching using local preferred direction architectures, tools, and apparatus
US7441220B2 (en) * 2000-12-07 2008-10-21 Cadence Design Systems, Inc. Local preferred direction architecture, tools, and apparatus
US7036101B2 (en) * 2001-02-26 2006-04-25 Cadence Design Systems, Inc. Method and apparatus for scalable interconnect solution
US9177093B2 (en) * 2001-02-26 2015-11-03 Cadence Design Systems, Inc. Routing interconnect of integrated circuit designs with varying grid densities
US7587695B2 (en) * 2001-12-10 2009-09-08 Mentor Graphics Corporation Protection boundaries in a parallel printed circuit board design environment
AU2002360535A1 (en) * 2001-12-10 2003-06-23 Mentor Graphics Corporation Parallel electronic design automation: shared simultaneous editing
US7516435B2 (en) * 2001-12-10 2009-04-07 Mentor Graphics Corporation Reservation of design elements in a parallel printed circuit board design environment
GB2393533A (en) * 2002-09-27 2004-03-31 Zuken Ltd Routing of interconnected regions e.g. of electrical circuits
US7305648B2 (en) * 2003-11-21 2007-12-04 Mentor Graphics Corporation Distributed autorouting of conductive paths in printed circuit boards
US7590963B2 (en) * 2003-11-21 2009-09-15 Mentor Graphics Corporation Integrating multiple electronic design applications
US7823162B1 (en) 2004-01-30 2010-10-26 Xilinx, Inc. Thread circuits and a broadcast channel in programmable logic
US7552042B1 (en) 2004-01-30 2009-06-23 Xilinx, Inc. Method for message processing on a programmable logic device
US7770179B1 (en) * 2004-01-30 2010-08-03 Xilinx, Inc. Method and apparatus for multithreading on a programmable logic device
US7412682B2 (en) * 2004-06-04 2008-08-12 Cadence Design Systems, Inc Local preferred direction routing
US7707537B2 (en) * 2004-06-04 2010-04-27 Cadence Design Systems, Inc. Method and apparatus for generating layout regions with local preferred directions
US7340711B2 (en) * 2004-06-04 2008-03-04 Cadence Design Systems, Inc. Method and apparatus for local preferred direction routing
US7546571B2 (en) * 2004-09-08 2009-06-09 Mentor Graphics Corporation Distributed electronic design automation environment
US20060101368A1 (en) * 2004-09-08 2006-05-11 Mentor Graphics Corporation Distributed electronic design automation environment
JP2007026170A (ja) * 2005-07-19 2007-02-01 Matsushita Electric Ind Co Ltd 半導体集積回路の自動レイアウト方法、自動レイアウトプログラム、および自動レイアウト装置
US8326926B2 (en) * 2005-09-13 2012-12-04 Mentor Graphics Corporation Distributed electronic design automation architecture
US8250514B1 (en) 2006-07-13 2012-08-21 Cadence Design Systems, Inc. Localized routing direction
US7886260B2 (en) * 2007-05-31 2011-02-08 Intel Corporation Focused ion beam defining process enhancement
US8234614B1 (en) 2008-06-05 2012-07-31 Synopsys, Inc. Multi-threaded global routing
US8307309B1 (en) 2008-08-20 2012-11-06 Synopsys, Inc. Automated circuit design using active set solving process
US8095906B2 (en) 2008-12-29 2012-01-10 Altera Corporation Method and apparatus for performing parallel routing using a multi-threaded routing procedure
US8458640B2 (en) * 2009-08-31 2013-06-04 Synopsys, Inc. Routing using a dynamic grid
US8495551B2 (en) * 2009-12-17 2013-07-23 International Business Machines Corporation Shaping ports in integrated circuit design
US8527930B2 (en) * 2010-01-28 2013-09-03 Synopsys, Inc. Generating and using route fix guidance
KR101996825B1 (ko) 2013-01-18 2019-10-01 삼성전자 주식회사 3d 반도체 패키지 디자인 방법 및 컴퓨팅 시스템
US9087172B2 (en) 2013-10-07 2015-07-21 International Business Machines Corporation Implementing enhanced net routing congestion resolution of non-rectangular or rectangular hierarchical macros
US9003351B1 (en) 2014-01-08 2015-04-07 Freescale Semiconductor, Inc. System and method for reducing power consumption of integrated circuit
JP6488911B2 (ja) * 2015-06-24 2019-03-27 富士通株式会社 回路設計支援プログラム、回路設計支援方法、および情報処理装置
US9558313B1 (en) 2015-09-08 2017-01-31 King Fahd University Of Petroleum And Minerals Method and system for providing a game theory based global routing
US20230282635A1 (en) * 2022-02-23 2023-09-07 D2S, Inc. Integrated circuit with non-preferred direction curvilinear wiring

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4612618A (en) * 1983-06-10 1986-09-16 Rca Corporation Hierarchical, computerized design of integrated circuits
US4688072A (en) * 1984-06-29 1987-08-18 Hughes Aircraft Company Hierarchical configurable gate array
JPS62186351A (ja) 1986-02-12 1987-08-14 Fujitsu Ltd 高多重並列配線処理方式
JPH0743742B2 (ja) * 1990-09-12 1995-05-15 株式会社日立製作所 自動配線方法
JPH0512382A (ja) 1991-07-05 1993-01-22 Hokuriku Nippon Denki Software Kk 配線処理方式
JPH0567178A (ja) 1991-07-10 1993-03-19 Toshiba Corp 自動配線処理方法
JP3219500B2 (ja) * 1991-12-27 2001-10-15 株式会社東芝 自動配線方法
US5353235A (en) * 1992-06-17 1994-10-04 Vlsi Technology, Inc. Wire length minimization in channel compactor
JPH0645443A (ja) 1992-07-21 1994-02-18 Hitachi Ltd 階層化配線方法
US5761664A (en) * 1993-06-11 1998-06-02 International Business Machines Corporation Hierarchical data model for design automation
JPH07121600A (ja) 1993-10-22 1995-05-12 Hitachi Ltd 配線経路処理方法
AU1562195A (en) * 1994-01-25 1995-08-08 Advantage Logic, Inc. Apparatus and method for partitioning resources for interconnections
US5875117A (en) * 1994-04-19 1999-02-23 Lsi Logic Corporation Simultaneous placement and routing (SPAR) method for integrated circuit physical design automation system
US5636129A (en) * 1994-04-20 1997-06-03 Her; One-Hsiow A. Electrical routing through fixed sized module and variable sized channel grids
US5629860A (en) 1994-05-16 1997-05-13 Motorola, Inc. Method for determining timing delays associated with placement and routing of an integrated circuit
US5877091A (en) * 1995-05-19 1999-03-02 Matsushita Electric Industrial Co. Ltd, Multilayer routing method and structure for semiconductor integrated circuit
US5990502A (en) * 1995-12-29 1999-11-23 Lsi Logic Corporation High density gate array cell architecture with metallization routing tracks having a variable pitch
US5841664A (en) * 1996-03-12 1998-11-24 Avant| Corporation Method for optimizing track assignment in a grid-based channel router
AU2327997A (en) * 1996-03-15 1997-10-01 University Of Arizona, The Interconnection routing system
US5793643A (en) * 1996-04-30 1998-08-11 Avant| Corporation Method for handling variable width wires in a grid-based channel router
US5808896A (en) * 1996-06-10 1998-09-15 Micron Technology, Inc. Method and system for creating a netlist allowing current measurement through a sub-circuit
US5798936A (en) * 1996-06-21 1998-08-25 Avant| Corporation Congestion-driven placement method and computer-implemented integrated-circuit design tool
US5839142A (en) * 1996-07-09 1998-11-24 Thermo Fibertek Inc. Stock washer for washing, thickening and classifying solids
US5847965A (en) * 1996-08-02 1998-12-08 Avant| Corporation Method for automatic iterative area placement of module cells in an integrated circuit layout
US6006024A (en) * 1996-11-01 1999-12-21 Motorola, Inc. Method of routing an integrated circuit
US5987086A (en) * 1996-11-01 1999-11-16 Motorola Inc. Automatic layout standard cell routing
US6002857A (en) * 1996-11-14 1999-12-14 Avant! Corporation Symbolic constraint-based system for preroute reconstruction following floorplan incrementing
US5980093A (en) * 1996-12-04 1999-11-09 Lsi Logic Corporation Integrated circuit layout routing using multiprocessing
US5841684A (en) * 1997-01-24 1998-11-24 Vlsi Technology, Inc. Method and apparatus for computer implemented constant multiplication with multipliers having repeated patterns including shifting of replicas and patterns having at least two digit positions with non-zero values
JP3766733B2 (ja) 1997-02-05 2006-04-19 松下電器産業株式会社 部品間結線の表示方法及び装置
US5930500A (en) * 1997-02-11 1999-07-27 Lsi Logic Corporation Parallel processor implementation of net routing
JPH10321728A (ja) * 1997-05-19 1998-12-04 Fujitsu Ltd 半導体集積回路のレイアウトシステムにおける階層化配線処理方法および階層化配線処理プログラムを記録した媒体
US6205570B1 (en) * 1997-06-06 2001-03-20 Matsushita Electronics Corporation Method for designing LSI circuit pattern
US6230304B1 (en) 1997-12-24 2001-05-08 Magma Design Automation, Inc. Method of designing a constraint-driven integrated circuit layout
US6249902B1 (en) * 1998-01-09 2001-06-19 Silicon Perspective Corporation Design hierarchy-based placement
US6027479A (en) * 1998-02-27 2000-02-22 Via Medical Corporation Medical apparatus incorporating pressurized supply of storage liquid
US6269469B1 (en) * 1998-04-17 2001-07-31 Lsi Logic Corporation Method and apparatus for parallel routing locking mechanism
US6175950B1 (en) * 1998-04-17 2001-01-16 Lsi Logic Corporation Method and apparatus for hierarchical global routing descend
US6289495B1 (en) * 1998-04-17 2001-09-11 Lsi Logic Corporation Method and apparatus for local optimization of the global routing
US6324674B2 (en) * 1998-04-17 2001-11-27 Lsi Logic Corporation Method and apparatus for parallel simultaneous global and detail routing
US7065729B1 (en) * 1998-10-19 2006-06-20 Chapman David C Approach for routing an integrated circuit
US6651232B1 (en) * 1998-11-05 2003-11-18 Monterey Design Systems, Inc. Method and system for progressive clock tree or mesh construction concurrently with physical design
WO2000038228A1 (fr) * 1998-12-22 2000-06-29 Fujitsu Limited Appareil et procede de cablage brute et support d'enregistrement conservant un programme de cablage brute
US6507941B1 (en) 1999-04-28 2003-01-14 Magma Design Automation, Inc. Subgrid detailed routing
US6207479B1 (en) * 1999-06-14 2001-03-27 Taiwan Semiconductor Manufacturing Co., Ltd. Place and route method for integrated circuit design
US6305004B1 (en) * 1999-08-31 2001-10-16 International Business Machines Corporation Method for improving wiring related yield and capacitance properties of integrated circuits by maze-routing
US6766502B1 (en) * 1999-12-30 2004-07-20 Intel Corporation Method and apparatus for routing using deferred merging
US6898773B1 (en) * 2002-01-22 2005-05-24 Cadence Design Systems, Inc. Method and apparatus for producing multi-layer topological routes
US6858928B1 (en) * 2000-12-07 2005-02-22 Cadence Design Systems, Inc. Multi-directional wiring on a single metal layer
US7036101B2 (en) * 2001-02-26 2006-04-25 Cadence Design Systems, Inc. Method and apparatus for scalable interconnect solution
US6957411B1 (en) * 2001-06-03 2005-10-18 Cadence Design Systems, Inc. Gridless IC layout and method and apparatus for generating such a layout
US6957408B1 (en) * 2002-01-22 2005-10-18 Cadence Design Systems, Inc. Method and apparatus for routing nets in an integrated circuit layout
US6829757B1 (en) * 2001-06-03 2004-12-07 Cadence Design Systems, Inc. Method and apparatus for generating multi-layer routes
JP5067178B2 (ja) 2008-01-28 2012-11-07 日本ゼオン株式会社 グリッド偏光子

Also Published As

Publication number Publication date
US20090113372A1 (en) 2009-04-30
US20090113371A1 (en) 2009-04-30
JP2009087376A (ja) 2009-04-23
US8291365B2 (en) 2012-10-16
US8255857B2 (en) 2012-08-28
US8365128B2 (en) 2013-01-29
US20090106728A1 (en) 2009-04-23
US20060190897A1 (en) 2006-08-24
EP1235164A3 (en) 2005-09-28
EP1235164A2 (en) 2002-08-28
US7036101B2 (en) 2006-04-25
TW529074B (en) 2003-04-21
US20130031524A1 (en) 2013-01-31
US8386984B2 (en) 2013-02-26
US20020120912A1 (en) 2002-08-29

Similar Documents

Publication Publication Date Title
JP2003016131A (ja) 相互接続の方法と装置
Liu et al. NCTU-GR 2.0: Multithreaded collision-aware global routing with bounded-length maze routing
US9262577B2 (en) Layout method and system for multi-patterning integrated circuits
US5838583A (en) Optimized placement and routing of datapaths
US7137097B1 (en) Constraint-based global router for routing high performance designs
US6543043B1 (en) Inter-region constraint-based router for use in electronic design automation
US9177093B2 (en) Routing interconnect of integrated circuit designs with varying grid densities
Hsu et al. A DAG-based algorithm for obstacle-aware topology-matching on-track bus routing
US6766502B1 (en) Method and apparatus for routing using deferred merging
Ding et al. Detailed routing for spacer-is-metal type self-aligned double/quadruple patterning lithography
Kahng et al. More practical bounded-skew clock routing
Qi et al. VFGR: A very fast parallel global router with accurate congestion modeling
Torabi et al. Efficient ILP-based variant-grid analog router
Khasawneh et al. HydraRoute: A novel approach to circuit routing
Abel On the automated layout of multi-layer planar wiring and a related graph coloring problem
Torabi et al. A fast hierarchical adaptive analog routing algorithm based on integer linear programming
Saha et al. An efficient intersection avoiding rectilinear routing technique in VLSI
Mo et al. Fishbone: a block-level placement and routing scheme
Bai et al. AN EFFECTIVE DETAILED ROUTING ALGORITHM CONSIDERING ADVANCED TECHNOLOGY NODES
Raman et al. Datapath routing based on a decongestion metric
Majumder et al. On finding a staircase channel with minimum crossing nets in a vLSI floorplan
Kar et al. Early Routability Assessment in VLSI Floorplans: A Generalized Routing Model
Téllez et al. Routing
Salowe Rip-up and reroute
Cynn Incremental algorithms for general purpose layout system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050218

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20050615

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080218

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080519

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080522

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080818

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080916

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081215