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

相互接続の方法と装置 Download PDF

Info

Publication number
JP2009087376A
JP2009087376A JP2009005831A JP2009005831A JP2009087376A JP 2009087376 A JP2009087376 A JP 2009087376A JP 2009005831 A JP2009005831 A JP 2009005831A JP 2009005831 A JP2009005831 A JP 2009005831A JP 2009087376 A JP2009087376 A JP 2009087376A
Authority
JP
Japan
Prior art keywords
routing
design
nodes
level
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
JP2009005831A
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.)
Cadence Design Systems Inc
Original Assignee
Cadence 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 Cadence Design Systems Inc filed Critical Cadence Design Systems Inc
Publication of JP2009087376A publication Critical patent/JP2009087376A/ja
Pending 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)

Abstract

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

Description

本発明は、一般にマイクロエレクトロニクス集積回路の分野に関する。特に、本発明は集積回路設計のルーティング(routing)に関する。
集積回路は、同じ及び/又は色々のサイズのセルと、セル間の結合を備える。セルは幾つかのピンを備え、このピンはワイヤにより1つ又はそれ以上の他のセルのピンに相互接続される。ネットは、ピン間の接続を形成するため、ワイヤにより相互接続された1組のピンを含む。ネットリスト(netlist)といわれる1組のネットが、ICの接続を画定する。
ルーターがICのネットリストを読込み、ネットリスト内のネットのピンを相互接続するワイヤを生成する。いったんネットリスト内のネットが接続されると、ICは正確に機能する。しかし、ネットリスト内に多数のネットがあるので、従来のルーターが接続タスクを終了するには長時間かかる。更に、接続は数が多すぎ及び/又は過密であり、従来のルーターは、1つ又はそれ以上の設計規則違反をしないと、ルーティングを終了させる、特に相互接続を生成することが出来ない。
これらの問題の多くは、ルーターが、層から層へ均一な構造を有するノードのグリッド表現に厳格に固執することにより、また全IC設計のルーティングを同時に行うことによる。このようなルーターは、過度の量のメモリーを要し、及び/又はIC設計のルーティングするのに非常に長時間かかる。
本発明のある実施例では、非常に大きいIC設計を、短時間で及び/又は少量のメモリーで取扱うことが出来るルーティング方法を提供する。本発明のある実施例は、標準インターフェースフォーマットにより現存するIC設計の流れにスムーズに一体化することが出来、それゆえ使用者のコストを著しく減少させる。
従来のグローバルルーターでは、全IC設計のルーティングタスクが考慮され、それゆえ大量のメモリーと実行時間が必要であった。マルチレベルグローバルルーター内で、全IC設計は、本発明のある実施例で定義するマルチレベルの階層に分割することが出来る。いかなる時も設計の一部のみが実行され、それゆえこの方法はメモリーと実行時間がずっと少なくてすむ。更に、ルーティングタスクが分割されたので、マルチスレッドの並行処理を適用して、グローバルルーターをスピードアップすることが出来る。他の実施例では、全てのとき又はある時シングルスレッドでもよく、及び/又はある時はマルチスレッドでも良い。
ある実施例では、ディテールルーターに、グラフベース表現と呼ばれる非常に小型で効率的な表現を用いる。グラフベース表現は、ルーターのある実施例に必要なメモリーの量と検索空間の量を著しく減少させる。
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つ又はそれ以上において相互接続される。
1実施例では、IC設計がアクセスされる。IC設計は、1つ又はそれ以上の層上のオブジェクトを含む。IC設計の第1レベルがアクセスされる。IC設計の第1レベルは、1つ又はそれ以上の区分の第1グループに区分される。IC設計のオブジェクトは、1つ又はそれ以上の区分の第1グループにある。IC設計の第2レベルが形成される。第2レベルは、第2グループの区分に区分される。区分のグループの1つ又はそれ以上の区分は、第2グループの区分の少なくとも2つの区分により表現される。第2グループの区分の各区分内で、オブジェクトは、第2グループの区分の他の区分と実質的に独立に相互接続される。
1実施例では、IC設計がアクセスされる。IC設計は、1つ又はそれ以上の層上のオブジェクトを含む。IC設計の第1レベルがアクセスされる。IC設計の第1レベルは、1つ又はそれ以上の区分の第1グループに区分される。IC設計のオブジェクトは、1つ又はそれ以上の区分の第1グループにある。IC設計の第2レベルが形成される。第2レベルは、第2グループの区分に区分される。第1グループの区分の1つ又はそれ以上の区分は、第2グループの区分の少なくとも2つの区分により表現される。第2グループの区分は、領域のグループ間に割り当てられる。領域のグループの各領域は、第2グループの区分の1つ又はそれ以上の区分を含む。領域のグループの各領域内で、オブジェクトは、領域のグループの他の領域と実質的に独立に相互接続される。
1実施例では、IC設計がアクセスされる。IC設計は、ブロッケージのグループと、ピンのグループを含む。グラフが形成される。グラフは、第1グループのノードを含む。第1グループのノードの各ノードは、ブロッケージ(blockage)のグループの各ブロッケージの外に形成される。ピンのグループは、グラフのノードを通って相互接続される。
1実施例では、第1層内にIC設計のオブジェクトを位置付けるために、第1グループのノードが形成される。第1グループのノードの少なくとも2つのノードは、第1間隔だけ間隔をおかれる。第2層内にIC設計のオブジェクトを位置付けるために、第2グループのノードが形成される。第2グループのノードの少なくとも2つのノードは、第1間隔だけ間隔をおかれる。第2グループのノードの少なくとも2つのノードは、第1間隔より大きい1つ又はそれ以上の間隔をおかれる。
1実施例では、第1層内にIC設計のオブジェクトを位置付けるために、第1グループのノードが形成される。第1グループのノードの少なくとも2つのノードは、第1間隔だけ間隔をおかれる。第2層内にIC設計のオブジェクトを位置付けるために、第2グループのノードが形成される。第2グループのノードの少なくとも2つのノードは、第1間隔だけ間隔をおかれる。第2グループのノードの少なくとも2つのノードは、第1間隔より小さい1つ又はそれ以上の間隔をおかれる。
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グループの共通ノードとは、実質的に同一なノードはなくなるであろう。
1実施例では、IC設計のボリュームが定義される。ボリュームのサブセットは、ワイヤリングを行う。ボリューム内にノードのグループが形成される。ノードのグループのノードは、ボリュームのサブセット内に形成されるように限定される。
1実施例では、IC設計の1つ又はそれ以上の層のルーティングピッチがアクセスされる。IC設計のボリュームが定義される。ボリュームのサブセットは、ワイヤリングを行う。ボリューム内に第1グループのノードが形成される。ボリュームの外に、1つ又はそれ以上のノードの第2グループが形成される。1つ又はそれ以上のノードの第2グループの少なくとも1つのノードは、1つ又はそれ以上のルーティングピッチの少なくとも1つより大きいピッチで形成される。
1実施例では、IC設計の第1セルインスタンス(instance)がアクセスされる。第1セルインスタンスに隣接するIC設計の第2セルインスタンスがアクセスされる。第1セルインスタンスと第2セルインスタンスとは、チャンネルにより間隔をおいている。チャンネルの第1端部の近くに第1ノードが形成される。チャンネルの第2端部の近くに第2ノードが形成される。第1ノードと第2ノードの間にワイヤが直接接続される。
1実施例では、IC設計の1つ又はそれ以上の層のルーティングピッチがアクセスされる。IC設計の第1セルインスタンスがアクセスされる。第1セルインスタンスに隣接するIC設計の第2セルインスタンスがアクセスされる。第1セルインスタンスと第2セルインスタンスとは、チャンネルにより間隔をおいている。チャンネル内に1つ又はそれ以上のノードのグループが形成される。チャンネル内の1つ又はそれ以上のノードのグループは、1つ又はそれ以上のルーティングピッチの少なくとも1つより大きいピッチを有する。
1実施例では、IC設計がアクセスされる。IC設計は、オブジェクトのグループを含む。ルーティングアルゴリズムのグループがアクセスされる。オブジェクトの1つ又はそれ以上のグループが、ルーティングアルゴリズムのグループの1つ又はそれ以上のルーティングアルゴリズムの第1組合わせに少なくとも部分的に応答して、第1グループの相互接続と相互接続される。第1グループの相互接続が記憶される。1つ又はそれ以上のルーティングアルゴリズムの第2組合わせが、自動的に求められる。ルーティングアルゴリズムのグループの1つ又はそれ以上のルーティングアルゴリズムの第2組合わせに少なくとも部分的に応答して、オブジェクトのグループの1つ又はそれ以上が、第2のグループの相互接続と相互接続される。第1グループの相互接続の結果と、第2グループの相互接続の結果とが、比較される。第2グループの相互接続の結果が第1グループの相互接続の結果より悪ければ、第1グループの相互接続がリストア(restore)される。
1実施例では、IC設計の少なくとも第1部分が、第1ルーティングピッチで相互接続される。もし、相互接続が1つ又はそれ以上の設計規則違反になるなら、IC設計の第1部分の少なくとも1部は、第1ルーティングピッチより小さい第2ルーティングピッチでルーティングされる。
1実施例では、IC設計の少なくとも第1部分が、少なくとも第1スレッド上で相互接続される。IC設計の少なくとも第2部分が、少なくとも第2スレッド上で相互接続される。
他の実施例は、ソフトウェア、電気回路、及び/又は本方法を実行する他の回路を含むだけでなく、少なくとも1部がソフトウェア又は回路で出来た集積回路、少なくとも1部がソフトウェア又は回路で出来た部品を含むコンピュータ、サーバー、又はルーター等のハードウェア製品の1つ又はそれ以上を含む。
ルーターシステムのある実施例の概略図である。 ルーティングエンジンのサブセットを示す。 マルチレベル領域ベースのグローバルルーターを示す。 マルチレベルグローバルルーティンググリッドを示す。 領域志向グラフベースのディテールルーターを示す。 ブロッケージ上のノードを避ける又は減らすグラフ表現を示す。 グラフ表現とグリッド表現の違いを例示する。 ワイヤを取囲むグラフ表現を例示する。 チャンネルのためのグラフ表現を示す。
次の詳細な記述は、特定の実施例を例示するためであり、本発明の範囲を限定するものではない。本発明の範囲内で色々の変形と調整が可能である。
図1は、ルーターの1実施例を示す。ルーター100は、ユーザーとの対話を与えるグラフィカルユーザーインターフェース(GUI)101と;データベース103と;ピンとブロッケージ等のセルの物理的情報を含むIC設計情報のデータベース103内に記憶するための、標準及び/又はカスタムの1つ又はそれ以上のフォーマットのパーサー102と;IC設計のネットを相互接続するワイヤ(次にデータベース103内に記憶される)を生成するルーティングエンジン104と;ワイヤリングと他の有用な情報を標準及び/カスタムのフォーマットのファイル内に出力する出力サブシステム105とを備える。
グラフィカルユーザーインターフェース(GUI)101は、ルーターにより生成したワイヤをユーザーに見えるようにする。又、ユーザーが、ルーティングトラック等の色々の情報を見えるようにする。それにより又、ユーザーはワイヤ等を対話的に追加又は削除できる。フォーマットファイルパーサー102は、工業標準フォーマット及び/又はカスタムフォーマット等のフォーマットで記憶されたIC設計情報を読み込む。セルと接続の全体又は一部がファイルに記述される。いったん本発明のある実施例がルーティングを終了すると、生成されたワイヤはファイル内へ出力される。データベース103は、IC設計情報とワイヤをコンパクトで効率的に記憶する。ルーティングエンジン104は、ワイヤを生成し、IC設計のネットリスト内に接続を実現する。
図2を参照すると、ルーティングエンジン200は、マルチレベル領域ベースのグローバルルーター201と、グラフベースのディテールルーター202とを備える。ある実施例のマルチレベル領域ベースのグローバルルーター201は、マルチレベルを構成し、その各々は1つ又はそれ以上の層のIC全体の設計をカバーするグローバルルーティンググリッドを有するようにする。グローバルルーター201は、設計ネットリスト210を受取る。任意のときにおいて、1つ又はそれ以上の区分の領域等の、設計の一部のみが、ルーティングされる。それゆえ、お金と実行時間はずっと少ない。ある実施例は、区分のサイズを有する部分をルーティングする。更に、ルーティングタスクは分割されたので、マルチスレッドの並行処理を適用して、グローバルルーター201をスピードアップすることが出来る。この段階で、グローバルルーター201は、トポロジカルワイヤリング220を生成し、それはディテールルーター202へ渡される。トポロジカルワイヤリング220を実現する物理的ワイヤ230を生成するためには、ディテールルーター202は、設計全体を小さい1組の領域及び/又は区分に分割することにより、完全な設計のルーティングをする。ディテールルーター202は、本発明のある実施例のマルチスレッドの並行計算能力を使用して、これらの領域を並行してルーティングすることが出来る。他の実施例は、いつも又はある時シングルスレッドでも良く、及び/又はいつも又はある時マルチスレッドでも良い。
図3は、多数のステップを実行するマルチレベル領域ベースのグローバルルーター300の1実施例を示す。ステップ301は、幾つかのレベルのグローバルルーティンググリッドを構成する。マルチレベルのグローバルルーティンググリッドを形成した後、ステップ302は、各レベルにおいて複数の区分と領域を生じる。ステップ303は、最も細かいレベルから最も粗いレベルへ、領域ベースのルーティングを実行する。ある実施例では、ステップ303の後、設計の全てのネットがルーティングされる。他の実施例では、ステップ303の後、設計の全てではないネットがルーティングされる。ステップ304は、最も粗いレベルから最も細かいレベルへ、領域ベースのリップアップリルーティング(rip up rerouting)を実行する。ある実施例では、ステップ301、ステップ302、ステップ303、ステップ304の一部又は全部の順番を変え、及び/又はステップ301、ステップ302、ステップ303、ステップ304の一部又は全てを1回又は複数回実行することが出来る。
図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レベル420の各区分は、第3レベル430において更に区分に分割することが出来る。例えば、P1_1は区分P1_1_1、と区分P1_1_2に分割することが出来る。あるグローバルルーターは、1つのレベルのグローバルルーティンググリッドしか使用しない。ある実施例は、複数レベルのグローバルルーティンググリッドを使用する。図示する実施例は3つのレベルを有し、他の実施例は、2レベル、4レベル、又はそれ以上のレベル等の異なる数のレベルを有する。他の実施例は、いつも又はある時シングルスレッドでも良く、及び/又はある時又はいつもマルチスレッドでも良い。
この階層的グローバルルーティンググリッドのレベル数は、設計のサイズに基づいて決められる。設計サイズが大きくなると、レベル数は増加しても良い。更に、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)に分割することが出来る。
ある実施例では、全ての区分が同じサイズと形状を有するように、グリッドが分割される。他の実施例では、少なくとも2つの区分が異なるサイズと形状を有するように、グリッドが分割される。
ある実施例では、粗いレベルの各区分は、同じ数の区分に分割され、細かいレベルで全てが同じ形状を有する。他の実施例では、粗いレベルの少なくとも2つの区分は、細かいレベルで異なる数の区分に分割される。他の実施例では、粗いレベルの少なくとも1つの区分は、細かいレベルで少なくとも2つの異なる形状を有する複数の区分に分割される。他の実施例では、粗いレベルの少なくとも1つの区分は、細かいレベルでそれ以上分割されない。
第1レベル410において、設計全体をカバーするのに1つの領域を形成することが出来る。他の実施例は、第1レベル410をカバーするのに複数の領域を形成することが出来る。次に、第2レベル420において、区分P1_1、P1_2、P1_3、P1_4を含む領域(領域_P1)を形成することが出来る。同じサイズのさらに3つの領域を形成して、第2レベルの設計全体をカバーすることが出来る。他の実施例は、1つのレベルを他の数の領域に分割し、各領域に異なる数の区分を割り当て、及び/又は各領域に異なる数の区分を割り当てることが出来る。我々は、また第3レベルにおいて領域を形成することが出来る。例えば、領域_P1_halfは、4つの区分P1_1_1、P1_1_2、P1_2_1、P1_2_2を含む。同様に、他の領域を形成し、これらの領域が第3レベルで設計全体をカバーすることも出来る。ある従来のグローバルルーターは、設計全体のグローバルルーティングを実行することに限定されていた。グローバルルーターの色々の実施例は、また設計全体のグローバルルーティングを実行し、及び/又は1つの領域においてグローバルルーティングを実行することができる。
各レベルの領域が形成された後、グローバルルーターは、第3レベル430の領域を最初にルーティングすることにより、初期のワイヤリングを生じる。若し、ネットが完全に第3レベル430の領域内に存在するなら、それがルーティングされる。そうでなければ、ルーティングされない。次に、グローバルルーターは、第2レベル420の領域に移動し、その領域に存在するルーティングされていないネットをルーティングする。最後に、それは第1レベル410の1つの領域に移動し、領域内のルーティングされていないネットをルーティングする。他の実施例では、グローバルルーターは、最も細かいレベル以外の1つ又はそれ以上のレベルで初期のワイヤリングを生じ、及び/又は粗いレベルから細かいレベルへ移動することが出来る。
ルーティングの品質は、リップアップリルーティングにより更に改善することが出来る。マルチレベルグローバルルーティンググリッド400の例では、リップアップリルーティングは、第2レベルから開始することが出来る。他の実施例は、他のレベルから開始することが出来る。第2レベルの各領域について、グローバルルーターは、領域内のネットをリルーティングし、ルーティングの品質を更に改善することが出来る。次に、それは第3レベルへ移動し、第3レベルの各領域をリルーティングする。他の実施例では、リップアップリルーティングは細かいレベルから粗いレベルへ移動することが出来、又第2レベル以外の他のレベルから開始することが出来る。
各レベルの初期及び/又はリップアップルーティングの間、複数の領域があり、これらの領域は2つの条件に従って独立にルーティングすることが出来る。第1に、1つの領域をルーティングするとき、他の領域にピン又はワイヤを有するネットについて、領域の4つの縁部に沿ったネットの境界位置が尊重される(honored)。こうすることによって、異なる領域のネットのワイヤリングは、適正に接続することが出来る。第2に、同じネットを共有する2つの異なる領域は、独立にルーティングすることが出来るが、ワイヤリングデータベースに同時に更新することは出来ない。同期機構により、異なる領域内の共有されたネットは、同時には更新されないことが保証される。ある実施例は、コンピュータオペレーティングシステムにより提供されるマルチスレッド機構を使用し、全て又は複数の領域を並行してルーティングする。同時にルーティングされる領域の数は、一部は第1に利用できる中央演算ユニット(CPU)の数による。領域AとBの間の共有されたネットを取扱うため、ロッキング機構が同期を保証することが出来る。例えば、共有されたネットが領域Aによりルーティングされるとき、領域Aは、ネットを更新する前に共有されたネットをロックする。領域Bは、共有されたネットをロックされたことを見るとき、共有されたネットを更新しない。他の実施例は、全て又はある時シングルスレッドでも良く、及び/又はある時はマルチスレッドでも良い。
図5は、領域志向マルチスレッドのグラフベースディテールルーター500を示す。本発明のある実施例のディテールルーターでは、設計全体を1組の多角形等のより小さい形状に分割することにより、設計はルーティングされる。多角形の例は、矩形である。これらの形状は、本発明のある実施例のマルチスレッド並列演算能力を使用して、並行してルーティングすることが出来る。他の実施例は、いつも又はある時シングルスレッドでも良く、及び/又はある時マルチスレッドでも良い。
第1に、ステップ501で、ディテールルーター500に関連する領域の内側に設計情報を読込む。例えば、それはセル、ピン、ネットリスト、及びグローバルルーティングを領域内に読込むことが出来る。次に、ステップ502で、効率的なルーティングを支持することが出来るルーティンググラフ表現を作る。ルーティンググラフが作られた後、ステップ503で、第1グラフ検索アルゴリズムを使用して、ネットのピンを相互接続するルーティング経路を見出すことが出来る。他の実施例は、いつも又はある時シングルスレッドでも良く、及び/又はある時マルチスレッドでも良い。
いったん効率的なルーティンググラフが作られると、グラフベースのルーティングステップ503を実行する。グラフベースのルーティングは、1組のヒューリスティックグラフ検索アルゴリズムを備える。それは、ルーティングするのが困難な設計を終了させる速度と能力を強調する。ヒューリスティックアルゴリズムのルーティング品質は、IC設計特性に大きく依存するので、本発明のある実施例では、幾つかのヒューリスティックアルゴリズムを有する。メインアルゴリズムは、メインのルーティングタスクを取扱う。メインアルゴリズムがルーティングを修了した後、それはルーティング後の最適化段階に入る。この段階で、幾つかの異なるヒューリスティックアルゴリズムが適用される。各アルゴリズムは、1つ又はそれ以上のある設計特性を目標とする。この段階で、設計の特性がアルゴリズムに適合しなければ、ルーティングの結果はより悪くなる場合がある。状況が修正されなければ、設計は違反なしでルーティングすることは出来ないであろう。
任意のルーターの実行時間とメモリー効率は、ルーティング表現に大きく依存する。大きいIC設計用の幾つかのルーターは、典型的にはルーティンググリッド表現を作ることを選択する。ルーティンググリッド表現の簡単さにより、ルータの実行が容易になる。しかし、ルーティンググリッド表現は、ある最近のIC設計の要求に適合できない。従って、本発明のある実施例は、ルーティングのため、簡単なグリッド表現より一般的なグラフ表現を選択する。グリッド表現は、厳格に均一な構造を有することが出来る。しかし、ルーティンググリッド表現を有するある実施例は、この制限を有さず、ルーティングラフ表現及び/又はルーティンググリッド表現を使用することが出来る。この融通性により、メモリー及び/又は実行時間の要求を減らすことが出来る。次は本発明のある実施例のグラフ表現を示す。
図6において、ルーティング領域内に大きいブロッケージ610がある。グリッドベースのルーティングでは、大きいブロッケージが存在するという事実にかかわらず、全領域はグリッドによりカバーされる。これはグリッド表現の均一構造要求による。グラフ表現では、我々が、ブロッケージ用のグラフノードを作ことなく、ブロッケージにより占められていない空のスペースのみに、グラフノードを構成できることを図が示している。空間の多くはブロッケージにより占められるので、結果のグラフは、より少ないノードを有する。グラフ表現を使用することにより、グラフノードの数は、グリッドの数よりずっと少なく、それゆえグリッド表現と比較して著しくメモリーが減る。更に、グラフベースのルーティングアルゴリズムは、横切るノードがより少なく、それゆえCPU時間を著しく減少させる。他の実施例では、ブロッケージの中又は周りのノード数は、グリッド表現と比較して少なくとも減少しているが、ブロッケージの中又は周りのノード数はゼロにはならない。
図7は、例を使用して、グラフ表現とグリッド表現の差を対比する。設計の典型的な状況では、ピンの形状は非常に複雑である。グリッドベースのルーターが問題を取扱うには、ルーティングを終了するために、ピン層上に多くの余分の「アクセスグリッド」を生じる必要がある。グリッドベースのルーターでは、グリッドの均一な構造要求のために、これらのアクセスグリッドは、他のルーティング層にも存在する必要がある。それゆえ、メモリー要求は著しく増加する。図7に示すように、多くの3角形状(非共通)ノードが層1(710)でピンにより作られる。グリッド表現では、均一な構造要求のために、層2(720)もまたこれらの3角形状ノードを有する必要がある。グラフ表現を使用することにより、層1(740)に多くの「アクセスグラフノード」を有し、層2(730)には非常に少ないノードにすることが出来る。層1(710)と層2(730)の共通ノードは、同じ構造を有する。このように、メモリーとルーティング時間を減らすことが出来る。他の実施例では、異なる層の共通ノードは、少なくとも一部異なる構造を有することが出来る。
図8は、ルーティング領域810内のグローバルルーティングされたワイヤを示す。従来のグリッドベースルーティングでは、ルーターは全領域をカバーするためルーティンググリッドを作る。我々のグラフ表現では、我々はグローバルルートワイヤ820を取囲む領域のみで、グラフノードを作ることが出来る。残りの領域830では、グラフノードは全くない。例えば図8では、本発明のある実施例はワイヤを取囲む幾つかのノードのみを作る。この能力により、我々はメモリーと実行時間を著しく減らすことが出来る。他の実施例では、幾つかのグラフノードは、グローバルルートワイヤの周囲を超える領域の部分に作られるが、グローバルルートワイヤの周囲より密度が低い。更に、グローバルルートワイヤがある層内でのみルーティングするなら、グラフノードはこれらの層内でのみ作る必要がある。他の層の全ては、グラフノードを有さない。他の実施例では、1つ又はそれ以上のグラフノードが、1つ又はそれ以上の他の層内で作られる。
図9は、2つのマクロセル920と930の間のチャンネル構造910を示す。もし、チャンネル910内のグローバルルーティングワイヤが真っ直ぐであれば、我々は、1つ又はそれ以上のルーティングトラックのために、2つのグラフノードを作り、1つを左入口又はその近くに、1つを右入口又はその近くに、配置すれば良い。このグラフ構造で、メモリーと実行時間は著しく減少する。これとは逆に、グリッドベースのルーターは、層のルーティングピッチに基づいて多数のグリッドを生成する必要がある。それゆえ、チャンネル構造が存在し、グローバルルーティングワイヤが真っ直ぐであっても、それは多数のグリッドを生成する。グローバルルーティングワイヤが真っ直ぐでないときは、更に幾つかのノードをチャンネル内に追加し、ルーティングを容易にすることが出来る。要するに、図9に示すアイデアを使用して、チャンネル領域により多く又はより少ないノードを追加することが出来る。他の実施例は、チャンネル内に、ルーティングピッチより小さい密度で、1つ又はそれ以上のノードを置くことが出来る。
1組のノードは、1つ以上のルーティングピッチを有することが出来る。例えば、1組の3つのノードは、第1ノードと第2ノードの間に1つのルーティングピッチを有し、第2ノードと第3ノードの間に他のルーティングピッチを有することが出来る。1つのノードの組は、無限大のルーティングピッチを有する。
本発明の幾つかの実施例は、最良のルーティング結果を記憶する機構を有する。もし、新しいヒューリスティックアルゴリズムを最良のルーティング解に適用した結果、悪い結果になるなら、最良のルーティング解をリストアすることができる。次に、他のヒューリスティックアルゴリズムが、最良の解に適用される。もし、結果が良くなれば、更新して最良の解とすることが出来る。このようにして、ルーティング後の最適化段階において、ルーティング結果はよりよくなり、より悪くなることはない。
幾つかの実施例は、IC設計の少なくとも第1部分を第1ルーティングピッチで相互接続した。相互接続の結果、1つ又はそれ以上の設計規則に違反するなら、IC設計の第1部分の少なくとも一部は、第1ルーティングピッチより小さい第2ルーティングピッチでルーティングされる。
101 グラフィカルユーザーインターフェース(GUI)
102 パーサー
103 データベース
104 ルーティングエンジン
105 出力サブシステム
200 ルーティングエンジン
201 グローバルルーター
202 ディテールルーター
710,740 層1
720,730 層2
810 ルーティング領域
820 グローバルルートワイヤ
830 残りの領域
910 チャンネル構造
920,930 マクロセル

Claims (69)

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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US27151501P 2001-02-26 2001-02-26

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2002100659A Division JP2003016131A (ja) 2001-02-26 2002-02-26 相互接続の方法と装置

Publications (1)

Publication Number Publication Date
JP2009087376A true JP2009087376A (ja) 2009-04-23

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 Before (1)

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

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
US9177093B2 (en) * 2001-02-26 2015-11-03 Cadence Design Systems, Inc. Routing interconnect of integrated circuit designs with varying grid densities
US7036101B2 (en) * 2001-02-26 2006-04-25 Cadence Design Systems, Inc. Method and apparatus for scalable interconnect solution
US7516435B2 (en) * 2001-12-10 2009-04-07 Mentor Graphics Corporation Reservation of design elements in a parallel printed circuit board design environment
US7587695B2 (en) * 2001-12-10 2009-09-08 Mentor Graphics Corporation Protection boundaries in a parallel printed circuit board design environment
EP1451732A4 (en) * 2001-12-10 2007-08-08 Mentor Graphics Corp AUTOMATED ELECTRONIC DESIGN REALIZED IN PARALLEL: SHARED SIMULTANEOUS MODIFICATION
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
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
US7823162B1 (en) 2004-01-30 2010-10-26 Xilinx, Inc. Thread circuits and a broadcast channel in programmable logic
US7412682B2 (en) * 2004-06-04 2008-08-12 Cadence Design Systems, Inc Local preferred direction routing
US7340711B2 (en) * 2004-06-04 2008-03-04 Cadence Design Systems, Inc. Method and apparatus for 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
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
US8745565B2 (en) * 2009-08-31 2014-06-03 Synopsys, Inc. Satisfying routing rules during circuit design
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 配線経路処理方法
EP0741883A4 (en) * 1994-01-25 1997-02-05 Advantage Logic Inc APPARATUS AND METHOD FOR SHARING RESOURCES FOR ESTABLISHING 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
WO1997034316A2 (en) 1996-03-15 1997-09-18 The University Of Arizona 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
US5987086A (en) * 1996-11-01 1999-11-16 Motorola Inc. Automatic layout standard cell routing
US6006024A (en) * 1996-11-01 1999-12-21 Motorola, Inc. Method of routing an integrated circuit
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
US6324674B2 (en) * 1998-04-17 2001-11-27 Lsi Logic Corporation Method and apparatus for parallel simultaneous global and detail routing
US6289495B1 (en) * 1998-04-17 2001-09-11 Lsi Logic Corporation Method and apparatus for local optimization of the global 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
EP1235164A2 (en) 2002-08-28
US7036101B2 (en) 2006-04-25
US8365128B2 (en) 2013-01-29
US20090113371A1 (en) 2009-04-30
US8386984B2 (en) 2013-02-26
JP2003016131A (ja) 2003-01-17
US20060190897A1 (en) 2006-08-24
US20090106728A1 (en) 2009-04-23
TW529074B (en) 2003-04-21
US8291365B2 (en) 2012-10-16
US8255857B2 (en) 2012-08-28
US20130031524A1 (en) 2013-01-31
US20090113372A1 (en) 2009-04-30
US20020120912A1 (en) 2002-08-29
EP1235164A3 (en) 2005-09-28

Similar Documents

Publication Publication Date Title
US8291365B2 (en) Conditionally routing a portion of an integrated circuit design with a different pitch to overcome a design rule violation
US5838583A (en) Optimized placement and routing of datapaths
US9177093B2 (en) Routing interconnect of integrated circuit designs with varying grid densities
Cong et al. An implicit connection graph maze routing algorithm for ECO routing
Nieberg Gridless pin access in detailed routing
Cho et al. BoxRouter 2.0: A hybrid and robust global router with layer assignment for routability
Hsu et al. A DAG-based algorithm for obstacle-aware topology-matching on-track bus routing
Kang et al. Fast and precise routability analysis with conditional design rules
US6766502B1 (en) Method and apparatus for routing using deferred merging
Chen et al. Novel full-chip gridless routing considering double-via insertion
Ding et al. Detailed routing for spacer-is-metal type self-aligned double/quadruple patterning lithography
Igusa et al. ORCA A sea-of-gates place and route system
Kahng et al. More practical bounded-skew clock routing
Qi et al. VFGR: A very fast parallel global router with accurate congestion modeling
Gester et al. Algorithms and data structures for fast and good VLSI routing
Swartz et al. A new generalized row-based global router
Khasawneh et al. HydraRoute: A novel approach to circuit routing
Shelar et al. A predictive distributed congestion metric and its application to technology mapping
Chen et al. A novel framework for multilevel full-chip gridless routing
Abel On the automated layout of multi-layer planar wiring and a related graph coloring problem
Scheffer Routing
Mo et al. Fishbone: a block-level placement and routing scheme
Saha et al. An efficient intersection avoiding rectilinear routing technique in VLSI
Raman et al. Datapath routing based on a decongestion metric
Bai et al. An effective detailed routing algorithm considering advanced technology nodes

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090120

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090406

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090706

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090709

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091006

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091119