(57)【特許請求の範囲】
【請求項１】
プログラム格納デバイス上に格納されたコンピュータ・プログラムによって、ネットの端子（Ａ１〜Ａ４；Ｂ１〜Ｂ２；Ｃ１〜Ｃ２：Ｄ１〜Ｄ３）の相互接続のために、電子デバイスのチャネル（１００）のトラックにおいて多数のネット（Ａ，Ｂ，Ｃ，Ｄ）のルーティングを自動的に実行する自動レイアウト・システムを用いて電子デバイスの設計を行う方法であって：
前記自動レイアウト・システムが、
ａ）前記チャネルの垂直制約グラフ（２００）を生成する段階；
ｂ）最大サイクル数を有するノードである、前記垂直制約グラフのクリティカル・ノード（Ａ）を選択する段階；
ｃ）前記クリティカル・ノード（Ａ）が表す前記ネット（Ａ）に属する各前記端子（Ａ１〜Ａ４）についてサブノード（１〜４）を含むように前記クリティカル・ノードを拡張することによって、拡張垂直制約グラフ（３００）を生成する段階；
ｄ）前記サブノードからなる端子グラフ（４００）を生成する段階であって、前記サブノードのうち第１サブノードおよび第２サブノードは、前記拡張垂直制約グラフにおいて前記第１サブノードと前記第２サブノードとの間に経路がある場合に、前記端子グラフにおいてエッジ（４０１〜４０５）によって接続される段階；
ｅ）前記端子グラフにおける全ての前記エッジ（４０１〜４０５）を断つために、前記クリティカル・ノードを新たなノード（Ａ，′Ａ″，Ａ″′）に分割し、それにより分割されたクリティカル・ノードにはもうサイクルがないところの変換済み垂直制約グラフ（６００）を生成する段階；
ｆ）前記変換済み垂直制約グラフにおける全てのサイクルが除去されるまで、段階ｂ）ないしｅ）を繰り返す段階；ならびに
ｇ）前記変換済み垂直制約グラフに従って前記トラックを割り当てる段階；
によって構成されることを特徴とする方法。
【請求項２】
前記クリティカル・ノードを分割する前記段階ｅ）は：
ｅ１）グラフ・カラーリング方法に従って前記端子グラフを処理する段階；および
ｅ２）同じ色を有する前記サブノードの全てを、前記新たなノードの同じ色にまとめる段階；
によって構成されることを特徴とする請求項１記載の方法。
【発明の詳細な説明】
発明の分野
本発明は、一般に、プリント回路板および半導体デバイスなどの電子デバイスの設計の分野に関し、さらに詳しくは、電子装置のチャネルのトラックにおいて多数のネットのルーティング(routing)の改善に関する。
発明の背景
多くの自動レイアウト・システム、特にＶＬＳＩ回路は、基本的な相互接続機能としてチャネル・ルーティング(channel routing)を適用する。しかし、多くのルータ(router)は、標準的なセルおよびゲート・アレイ設計の幾何学的規則性(geometric regularity)にしか対応できない。その結果、これらの従来の自動レイアウト・システムは幾何学的一般性(geometric generality)を持つチャネル、すなわち、異なる幅および不規則な間隔を有しうる端子、をルーティングできず、しかも同時に全てのルートの完成を保証できない。
Bryan Pearsによる″Channel Routing With Non-Terminal Design″, Proc. The European Design Automation Conference, Glasgow, Scotland, 1990, pp 451-458によれば、一般化チャネル・モデルを利用して循環的な垂直制約(cyclic vertical constrains)を解決する方法が知られている。この方法を制約方式のチャネル・ルータと組み合わせると、多くのクラスのチャネル形状(channel geometries)に対してルーティング完成が保証できる。この方法は、制約方式の交互エッジ・ドグレッグ(alternating-edge doglegs)チャネル・ルータで実施される。本方法は、全ての制約サイクルを断つために十分な配線部分に対して非端子ドグレッグを追加することにより、循環的な制約を解決する。交互の配線部分およびそれによって生じる非循環的な制約グラフは、ほとんどの制約方式のチャネル・ルータに入力として利用できる。
全ての従来のチャネル・ルータの共通の欠点は、垂直制約を解決できないので、重複する端子を有する多層チャネルに対応できないことである。また、チャネルの２つ以上の側面に端子がある場合、従来のルータは機能しない。
従って、本発明の基本的な課題は、チャネルの多数のネットおよびトラックをルーティングする改善された方法，電子デバイスを製造する方法および改善されたルーティングを有する電子デバイスを提供することである。
発明の概要
本発明の課題は、独立請求項に記載される特徴を適用することによって基本的に解決される。さらに、好適な実施例については従属項に記載される。
本発明は、個別の端子が対応する垂直制約グラフにおいて入エッジ(incoming edge)および出エッジ(outgoing edge)を同時に作成できるところのチャネル形状に対処できるという点で有利である。これにより、異なる層上で重複する端子を有する多層チャネルや、各側に端子を有するチャネルのルーティングのために本発明を利用できる。また、本発明は、その汎用性のため、他の種類のチャネルにも適用可能である。
本発明の好適な実施例によれば、ルーティングすべきチャネルの垂直制約グラフのクリティカル・ノードは、垂直制約を解決するために、２つまたはそれ以上の新たなノードに分割される。新たなノードの最適数を見つけるため、グラフ・カラーリング(graph coloring)方法が採用される。これは、分割動作によって最小限の新ノードしか生成されず、ひいては同一ネットをルーティングするために最小限の数の行部分(row segments)しか生成されないことを保証する。
本発明の方法の別の利点は、入力データとして、チャネル形状と、ルーティングすべきネットとを表すデータを必要とするコンピュータ・プログラムによって、自動的に実行されるように適応されることである。これにより、設計サイクル時間を最小限に抑えることができる。
本発明の原理に従ってルーティング・製造された電子デバイスは、改善されたルーティングにより改善された小型設計を有する。また、改善されたルーティングにより、全体的な配線長さが最小限に抑えられ、また半導体デバイスの場合の貴重なシリコン面積の条件が最小限に押さえられる。
これらの利点は、信号伝播遅延および電力散逸に対して有益な効果がある。その結果、このような電子デバイスの全体的な動作速度が改善される。クロック方式の電子デバイスの場合には、従来のデバイスに比べて、クロック周波数を増加できる。
【図面の簡単な説明】
第１図は、循環的なコンフリクトを有するチャネルの概略図を示す。
第２図は、第１図に示すチャネルの垂直制約グラフを示す。
第３図は、拡張クリティカル・ノードを有する拡張垂直制約グラフである。
第４図は、第３図に示す拡張クリティカル・ノードの端子グラフである。
第５図は、グラフ・カラーリング方法を適用した後の第４図の端子グラフである。
第６図は、ノード分割した後の変換済み垂直制約グラフである。
第７図は、チャネル・ルーティングによって得られた電子デバイスを示す。
第８図は、本発明の一実施例のフロー図を示す。
好適な実施例の詳細な説明
第１図は、本発明の原理に従ってルーティング・製造される電子デバイスのチャネル１００の形状を示す。４つの異なるネットＡ，Ｂ，Ｃ，Ｄがチャネル１００においてルーティングされる。実際には、ルーティングされるさらに多くのネットがありうる。
端子Ａ１，Ａ２，Ａ３，Ａ４は、ネットＡに属し、端子Ｂ１，Ｂ２はネットＢに属し、端子Ｃ１，Ｃ２はネットＣに属し、端子Ｄ１，Ｄ２，Ｄ３はネットＤに属する。同一ネットに属する端子は、チャネル・エリア１０２においてルーティングすることにより相互接続しなければならない。ネットＡ，Ｂ，Ｃ，Ｄの端子間の矢印１０３〜１１１は、異なるネットの端子対間の垂直制約の存在を示す。垂直制約(vertical constraint)とは、２つの異なるネットのそれぞれがチャネル１００の列(column)に端子を有する場合に存在する制約のことである。
例えば、端子Ａ１，Ｂ１は、矢印１０３によって示される垂直制約を生じる、チャネル１００の同じ最左列にある。同じことは、端子対Ｂ１，Ｄ１と、端子対Ａ１，Ｄ１についても同様にあてはまり、それぞれ矢印１０５，１０４によって示される垂直制約が生じる。
チャネル・エリア１０２の左から右側に移動して、垂直制約が生じる次の端子対は、端子Ａ２，Ｄ３である。これは、矢印１０６によって示される。さらに右に移動して、端子Ｂ２，Ｃ１，Ａ３は、同じチャネル１００の列内、あるいは少なくともチャネル１００の重複する列内にある。これにより、Ｂ２，Ａ３間およびＣ１，Ａ３間に垂直制約が生じ、これらはそれぞれ矢印１０７，１０８によって示される。
チャネル１００の最右列では、端子Ｄ２，Ａ２，Ｃ２は、チャネル・エリア１０２の縦の境界線上にある。これにより、Ｄ２とＡ４との間、さらにＡ４とＣ２の間およびＤ２とＣ２の間に垂直制約が生じる。これらの垂直制約は、それぞれ矢印１０９，１１０，１１１によって表される。
第２図は、ノードがネットを表し、またエッジが垂直制約を表すグラフとして、垂直制約グラフを示す。ここで検討する例では、４つのネットＡ，Ｂ，Ｃ，Ｄがあり、それぞれのネットは、第２図の垂直制約グラフ２００における対応するノードによって表される。
一般的な場合、ノードｉおよびノードｊは、対応するネットｉおよびｊの端子の少なくとも一対の間に垂直制約がある場合、ノードｉからノードｊへの方向エッジによって相互接続される。
例えば、第１図の矢印１０３によって表される垂直制約により、垂直制約グラフ２００のノードＡとノードＢとの間にエッジ２０１が生じる。同様に、グラフ２００におけるノードＢからノードＡへのエッジ２０２は、第１図の矢印１０７によって表される垂直制約から生じる。同じ原理は、グラフ２００の他の全てのエッジ２０３〜２０８に当てはまり、ノードＢからノードＤへのエッジ２０３は、第１図の矢印１０５によって示される垂直制約を表し、グラフ２００におけるノードＤからノードＣへのエッジ２０４は、第１図の矢印１１１によって示される垂直制約を表し、グラフ２００におけるノードＣからノードＡへのエッジ２０５は、第１図の矢印１０８によって示される垂直制約を表し、グラフ２００におけるノードＡからノードＣへのエッジ２０６は、第１図の矢印１１０によって示される垂直制約を表し、グラフ２００におけるノードＤからノードＡへのエッジ２０７は、第１図の矢印１０９によって示される垂直制約を表し、ノードＡからノードＤへのエッジ２０８は、第１図の矢印１０４，１０６によって示される垂直制約を表す。
本好適な実施例において検討されない多層チャネルについて、同じ原理は、チャネル領域におけるネット配線の垂直制約をモデリングする垂直制約グラフの生成に適用される。
グラフ２００において表される垂直制約を基本にして、ルーティングについて生じる問題点は、いわゆるサイクルの除去である。望ましくない短絡(short circuits)を生じさせずに、少なくとも２つの端子を単純な垂直部分で接続できない場合、２つの異なるネットの間でサイクルが存在する。これは、垂直制約グラフ２００における２つのノードが、反対方向(opposite sense of direction)を有する２つの異なるエッジによって相互接続される場合に常にいえることである。すなわち、サイクルとは、垂直制約グラフにおける、あるノードからそれ自身への経路である。
例えば、ノードＡ，Ｂは、グラフ２００においてエッジ２０１，２０２によって相互接続され、それによりエッジ２０１，２０２は反対方向を有する。その結果、ネットＡとＢとの間にサイクルが生じる。同じことは、エッジ２０７，２０８よって相互接続されたネットＡ，Ｄや、エッジ２０５，２０６によって相互接続されたネットＡ，Ｃについても同様に当てはまる。この例で検討されるそれぞれのノードは、サイクル（Ａ−Ｃ−Ａ），（Ａ−Ｂ−Ａ），（Ａ−Ｄ−Ａ），（Ａ−Ｄ−Ｃ−Ａ），（Ａ−Ｂ−Ｄ−Ａ），（Ａ−Ｂ−Ｄ−Ｃ−Ａ）を有する。Ａは６つのサイクルを有し、Ｂは３つのサイクルを有し、Ｃは３つのサイクルを有し、Ｄは４つのサイクルを有する。
第１図のチャネル１００をルーティングするためには、グラフ２００からサイクルを除去する必要がある。
本発明の教示に従って、これは、元の垂直制約グラフ２００においてクリティカル・ノード(critical node)を識別した後に、拡張垂直制約グラフ(enhanced vertical constraint graph)を生成することによって達成される。垂直制約グラフにおけるクリティカル・ノードは、最大サイクル数を有するノードとして一般に定義される。
ノードＡはグラフ２００の全６サイクルの一部を形成し、他のノードＢ，Ｃ，Ｄはそれぞれ３サイクル，３サイクル，４サイクルに属する。そのため、ノードＡがグラフ２００のクリティカル・ノードである。
さらに複雑なグラフでは、同じ最大サイクル数を有する２つ以上のノードが存在する場合も生じうる。この場合、同じ最大サイクル数を有するノードのうち任意のノードがクリティカル・ノードとして選ばれる。
第２図について検討した例では、クリティカル・ノードＡは、ルーティングされるネットＡを表す。端子Ａ１，Ａ２，Ａ３，Ａ４は、ネットＡに属する。拡張垂直制約グラフを生成するため、ネットＡの端子は対応する拡張グラフのノードＡ内で表される。
これは第３図に示される。第３図は、クリティカル・ノードＡが拡張された、拡張垂直制約グラフを示す。ここでも、グラフ３００におけるノードＡ，Ｂ，Ｃ，Ｄは、その対応するネットＡ，Ｂ，Ｃ，Ｄを表す。
拡張クリティカル・ノードＡは、サブノード(subnode)１，２，３，４を含む。サブノード１，２，３，４は、それぞれ端子Ａ１，Ａ２，Ａ３，Ａ４を表す。
すなわち、クリティカル・ノードＡによって表されるネットＡの各端子について、選択されたクリティカル・ノードＡを拡張するために、サブノードが追加される。クリティカル・ノードＡのサブノードと、他のノードＢ，Ｃ，Ｄとの間のエッジは、個別の垂直制約を表し、サブノード１からノードＢへのエッジ３０１は、第１図における端子Ａ１と端子Ｂ１との間の矢印１０３によって示される垂直制約を表す。
同様に、サブノード１とノードＤとの間のエッジ３０２は、第１図における矢印１０４を表し、サブノード２とノードＤとの間のエッジ３０３は、第１図における矢印１０６によって示される垂直制約を表し、ノードＢからサブノード３へのエッジ３０４は、矢印１０７の垂直制約を表し、ノード１０とサブノード３との間のエッジ３０５は、矢印１０８の垂直制約を表し、サブノード４とノードＣとの間のエッジ３０６は、矢印１１０の垂直制約を表し、ノードＤとサブノード４との間のエッジ３０７は、矢印１０９の垂直制約を表す。
グラフ３００においてクリティカル・ノードＡに接続しないエッジは、第２図の元のグラフについて同じままである。従って、ノードＢ，Ｄは、エッジ２０４によって接続されるエッジＤ，Ｃと同様に、エッジ２０３によって接続されたままである。
拡張垂直制約グラフ３００に基づいて、端子グラフ(terminal graph)が生成される。ここで検討される例について、第４図は端子グラフ４００を示す。端子グラフ４００は、選択されたクリティカル・ノードＡと、このクリティカル・ノードＡのサブノード１，２，３，４によって構成される。
クリティカル・ノードＡおよびそのサブノードが接続されている限り、グラフ３００とグラフ４００との間に相違はない。グラフ４００においてサブノードを相互接続するエッジは、グラフ３００に含まれる情報から抽出される。
グラフ４００における２つの異なるサブノードは、グラフ３００においてこれら２つのサブノード間に経路がある場合に、エッジによって相互接続される。このような経路は、一つまたはそれ以上のエッジによって相互接続される一つまたはそれ以上のノードによって構成できる。経路に沿って、エッジの方向は常に同じでなければならない。
例えば、グラフ４００におけるサブノード１，３は、エッジ４０１によって相互接続される。これは、グラフ３００においてサブノード１と３との間に対応する経路が存在するためである。サブノード１を始点とすると、経路の要素はエッジ３０１，ノードＢおよびエッジ３０４である。
同様に、第４図のグラフ４００におけるエッジ４０２は、サブノード１からサブノード４への経路を表す。この経路は、エッジ３０２，ノードＤおよびエッジ３０７からなる。同様に、グラフ４００におけるサブノード３と４との間のエッジ４０３は、エッジ３０６，ノードＣおよびエッジ３０５からなる、グラフ３００のサブノード３と４との間の経路を表す。
グラフ４００におけるエッジ４０４は、グラフ３００におけるサブノード２と３との間の経路を表す。この経路は、エッジ３０３，ノードＤ，エッジ２０４，ノードＣおよびエッジ３０５からなる。さらに、グラフ４００におけるエッジ４０５は、グラフ３００におけるサブノード２と４との間の経路を表す。この経路は、エッジ３０３，ノードＤおよびエッジ３０７からなる。
グラフ４００において、サブノード１と２との間にはエッジは存在しない。これは、グラフ３００においてサブノード１と２を相互接続する経路がないためである。元の垂直制約グラフ２００におけるサイクルを断つため、端子グラフ４００におけるエッジは断たなければならない。これは、選択されたクリティカル・ノードを新たなノードに分割することにより、サブノードをグループに分割することによって行われる。
これを第５図に示す。クリティカル・ノードＡを３つの異なる新ノードＡ'，Ａ''、Ａ'''に分割することにより、端子グラフ４００の全てのエッジ４０１〜４０４は、第５図の対応するグラフ５００に示すように断たれる。一般に、端子グラフ４００においてエッジによって相互接続されていないサブノードは、その間でエッジを断つ必要がないので、同じグループに置くことができる。その結果、クリティカル・ノードＡを４つの新たなサブノードに分割する必要がないが、グラフ４００の４つのサブノード間の全てのエッジを分割するために、３つの新たなサブノードで十分である。
さらに複雑なグラフでは、必要なサブノードのグループを定めるのはさらに困難である。以下で検討される本発明の好適な実施例に従って、この一般タスクは、グラフ・カラーリング方法を適用することによって解決される。このようなグラフ・カラーリング方法によれば、端子グラフにおける全てのエッジを分割するために必要なサブノードのグループの最小数は、端子グラフの色彩数(chromatic number)に等しい。色彩数は次のように定められる。
正の整数ｐが与えられると、グラフＧのノードが、グラフＧにおけるエッジによって接続された２つのノードが同じ色ではないように、ｐ個の個別の色で塗ることができる場合に、グラフＧはｐ色彩(p-chromatic)であるという。グラフＧがｐ色彩となる最小数ｐは、グラフＧの色彩数という。
色彩数を見つけるためにグラフをカラーリングする方法は従来技術から周知であり、例えば、Claude Bergeによる″Theorie Des Graphes Et Ses Application″, Dunod, Paris, 1958や、J.A. Bondy, U.S.R. Murtyによる″Graph Theory with Applicatioons″, Elsevier North Holland, New York, 1980, Chapter 8 (Vertex Colourings), page 133およびN. Christofidesによる″An Algorithm for the chromatic number of a graph″, The Computer Joural, Vol.14, page 38-39からわかる。
色彩数ｐを見つけるため、このようなグラフ・カラーリング方法をグラフ５００に適用すると、３つの異なる色Ｃ１，Ｃ２，Ｃ３が得られる。サブノード１，２は同じ色Ｃ１を有し、一方サブノード３，４はそれぞれ異なる色Ｃ２，Ｃ３を有する。この結果は、サブノード１，２のみがエッジによって相互接続されておらず、同じ色を有することができるので、この結果は正しい。
グラフ・カラーリング方法の結果、色彩数ｐは見つけられ、この場合には３に等しい。同じ色を有するノードは、一つの個別のグループを構成する。クリティカル・ノードを３つの新たなノードに分割する動作は、全てのエッジ４０１〜４０５に交差するライン５０１，５０２，５０３によって表される。それにより、端子グラフにおける全てのエッジは除去される。こうして得られる変換済み垂直制約グラフ(transformed vertical constraint graph)を第６図に示す。
第２図の元の垂直制約グラフ２００と比較して、第６図の変換済み垂直制約グラフ６００は、選択されたクリティカル・ノードＡに代わる新たなノードＡ'，Ａ''，Ａ'''を有する。第６図におけるノードＡ’は、サブノード１，２である色Ｃ１を有するサブノードのグループを表し、新たなノードＡ''は、色Ｃ２を有するグラフ５００におけるサブノード３を表し、新たなノードＡ'''は、色Ｃ３を有するサブノード４を表す。
第６図に示すグラフ６００は、第３図の拡張垂直制約グラフ３００において実行されるクリティカル・ノードＡの分割動作の結果である。クリティカル・ノードＡがそれぞれサブノード１，２，３，４を表す新たなノードＡ'，Ａ''，Ａ'''に分割されると、このことはサブノード３に接続するエッジ３０４，３０５を新たなノードＡ''に接続しなければならず、また第３図のサブノード４に接続するエッジ３０６，３０７を第６図における新たなノードＡ'''に接続しなければならないことを意味する。また、エッジ３０１は、変換済みグラフ６００における新たなノードＡ’に接続するため、サブノード１に接続される。
グラフ３００について、エッジ３０２，３０３の両方は、ノードＤと同じグループに属するサブノード１，２を接続する。これら２つのエッジは、変換済みグラフ６００において一つのエッジ６０１によって表される。新たなグラフ６００におけるエッジ２０３，２０４は、グラフ３００と同じままである。
グラフ２００からグラフ６００に変換した後、垂直制約グラフにはサイクルは存在しない。
本発明の他の応用例では、さらにサイクルがありうる。このような場合、サイクルが解決されるまで、次の変換のために変換済み垂直制約グラフを始点として、同じ変換が実行される。
すなわち、グラフ６００において、サイクルが存在する場合、新たなクリティカル・ノードを選択しなければならず、またグラフ２００で実行したのと同じ変換がグラフ６００の変換に適用される。この手順は、全てのサイクルが解決されるで繰り返される。
全てのサイクルが解決されると、それによって得られる垂直制約グラフは、ネットをルーティングすべくチャネル内のトラックを割り当てるために利用できる。変換済み垂直制約グラフにおける各ノードは、このノードが表すところの端子を相互接続する水平配線部分に相当する。垂直制約グラフにおける各エッジは、エッジの先行(antecedent)の水平部分は、チャネルにおけるその派生(descendent)の部分より上におかなければならないことを意味する。そのため、垂直制約グラフは、チャネルのトラックに割り当てられる水平部分の順序を定める。
ここで検討される例について、第６図のグラフ６００に基づくルーティングの結果を第７図に示す。端子Ｂ１，Ｂ２を相互接続するチャネル・エリア１０２内の部分７００は、第６図のノードＢに相当する。端子Ｄ１，Ｄ２，Ｄ３を相互接続する部分７０１は、第６図のノードＤに相当し、また端子Ｃ１，Ｃ２を相互接続する部分７０２は、第６図のノードＣに相当する。同様に、端子Ａ１，Ａ２を相互接続する部分７０３と、端子Ａ３のみを相互接続する部分７０４と、端子Ａ４のみを相互接続する部分７０５は、第６図におけるノードＡ'，Ａ''，Ａ'''にそれぞれ相当する。またチャネル１０２における水平部分の水平位置は、第６図のグラフ６００におけるエッジによって決定される。例えば、ノードＢに属する部分７００を、ノードＡ’に属する部分７０３に対して劣勢位置に置くエッジ３０１のために、部分７００は部分７０３より下に置かなければならない。
第６図のグラフ６００に含まれる情報に従ってチャネル・エリア１０２内に水平部分７００〜７０５を配置した後、それぞれの相互接続は、水平部分を配線７０７によって相互接続する垂直配線部分７０６を追加することによって完成される。ルーティングが完了すると、対応する電子デバイス７１０が作成される。ルーティングは、フォトリソグラフィ工程および／またはエッチング工程などの任意の周知の手法によって実施できる。
第８図は、本発明の方法の実施例のフロー・チャートを示す。手順の第１ステップ８００において、ルーティングすべきチャネルについて、垂直制約グラフ（ＶＣＧ：vertical constraint graph）が生成される。このようなグラフの生成については、この特定の例について第１図および第２図で説明した。一般的な場合には、同じ原理が適用される。
ステップ８０１において、ステップ８００で得た垂直制約グラフにサイクルがあるかどうか判定される。サイクルが存在しない場合、サイクル除去の必要はなく、この垂直制約グラフは、第６図および第７図で説明したように、ステップ８０２におけるトラック割り当てのための基準として採用できる。
ステップ８００で生成された垂直制約グラフにサイクルが存在する場合、制御はステップ８０３に進み、ここで垂直制約グラフにおけるクリティカル・ノードが選択される。これについては、第２図および第３図に示した例でさらに詳しく説明した。それにより、第３図で説明した原理に従って、ステップ８０４において拡張垂直制約グラフが生成される。
ステップ８０５において、第４図のグラフ４００と同様な端子グラフが生成され、また適切なグラフ・カラーリング方法に従って、ステップ８０６においてこの端子グラフはカラーリングが施される。ステップ８０７において、選択されたクリティカル・ノードは分割され、制御はステップ８０１に戻る。ここで、サイクルがまだ存在するかどうか再度判定される。サイクルが存在しない場合、変換済み垂直制約グラフは、ステップ８０２においてチャネル内のトラックを割り当てるために用いられる。まだサイクルが存在する場合、ステップ８０３〜８０７の同じシーケンスは、全てのサイクルが除去されるまで再度実行される。
本発明のルーティング方法の特定の利点は、コンピュータ・プログラムによって容易に実行でき、かつ人間を介在せずに自動的に実行できることである。コンピュータ・プログラムに必要な唯一の入力パラメータは、チャネル形状と、配線すべきネットである。このようなコンピュータ・プログラムは、ハードディスク，テープまたはＣＤ−ＲＯＭなど、任意のプログラム格納デバイス上に格納できる。
【図１】
0003755669.tif 000002
【図３】
0003755669.tif 000003
【図２】
0003755669.tif 000004
【図４】
0003755669.tif 000005
【図５】
0003755669.tif 000006
【図６】
0003755669.tif 000007
【図７】
0003755669.tif 000008
【図８】
0003755669.tif 000009