(57)【特許請求の範囲】
【請求項１】
チャネルを有する電子デバイスを設計するための電子デバイス設計装置であって、前記チャネルはある境界および該境界上に位置する１組の端子を有し、前記チャネルは数多くのネットを配線するためのトラックおよび列を有し、前記ネットの各々は前記１組の端子の内の部分集合を有し、前記端子は空きの端子ではなく、前記チャネルは前記ネットの配線を有し、前記電子デバイス設計装置は、
ａ１）端子の垂直制限グラフを発生する手段であって、該端子の垂直制限グラフはノードおよびエッジを備え、前記ノードの各々は前記端子の１つを表わし、前記エッジの各々は同じ列に位置する少なくとも一対の前記端子の間の垂直制限を表わしかつ前記エッジの各々はそこに割り当てられたエッジレーティングを有し、それによって前記１組の端子の内の全ての端子が前記端子の垂直制限グラフにおいて表現され、かつ前記端子の垂直制限グラフはある合計のレーティングを有する、前記端子の垂直制限グラフを発生する手段、
ａ２）前記ノードの内の選択された２つの併合を行なう手段であって、該併合を行なう手段は、
ａ２．１）第１の予め規定された値によって前記エッジの各々に対して前記エッジレーティングを初期化する手段、
ａ２．２）前記エッジの内の前記１つが併合された前記ノードの内の１つに接続される場合に第２の予め規定された値によって前記エッジの内の１つの前記エッジレーティングを変更する手段、
ａ２．３）前記エッジの内の前記１つが空きの端子を表わす前記ノードの内の１つに接続する場合に第３の予め規定された値によって前記エッジの内の１つの前記エッジレーティングを変更する手段、
ａ２．４）前記エッジレーティングを統合することにより前記合計のレーティングを決定する手段、
ａ２．５）前記合計のレーティングに基づき併合されるべき前記ノードの内の前記選択された２つを選択する手段、
を具備する前記併合を行なう手段、そして
ａ３）前記結果として得られる端子の垂直制限グラフに従って前記チャネルにトランクを割り当てる手段、
を具備することを特徴とする電子デバイス設計装置。
【請求項２】
前記垂直制限グラフを発生する手段は、
ａ１．１）前記端子の各々に対する前記端子の垂直制限グラフにおける前記ノードの１つを作成する手段であって、空きの端子を表わす前記ノードは空きのノードとなる前記手段、
ａ１．２）前記列の内の同じ１つに位置する前記端子を表わす前記ノードの各対の間の端子の垂直制限グラフにおいて前記エッジの１つを作成する手段であって、前記エッジの内の前記１つは上部境界上に位置する前記端子を表わす前記一対のノードの内の１つから発出する前記手段、
を具備することを特徴とする請求項１に記載の電子デバイス設計装置。
【請求項３】
前記併合を行なう手段はさらに、
前記ネットの内の各々の１つに対して、
ａ２．６）前記ネットの内の前記１つが前記列の内の同じ１つを占有する前記端子の内のちょうど２つを有する場合に、前記端子の内の前記ちょうど２つを表わす前記ノードの内の２つを併合する手段、
ａ２．７）前記エッジレーティングに従ってソートされた、前記エッジの第１のリストを発生する手段、
ａ２．８）前記エッジの第２のリストを発生する手段であって、前記第２のリストに含まれるエッジの前記エッジレーティングの合計は第１の予め規定されたしきい値より高くされる前記手段、
ａ２．９）垂直制限グラフを発生し、前記ネットの内の前記１つを表わす前記垂直制限グラフの内の１つのノードを選択し、前記選択された１つのノードを前記選択された１つのノードと同じネットを表わす前記端子の垂直制限グラフの前記ノードの内の他のものによって置き換える手段、
ａ２．１０）前記端子の垂直制限グラフの前記置き換えられたノードおよび前記垂直制限グラフを通る経路を有する前記置き換えられたノードの間のエッジを備えたローカル垂直制限グラフを発生する手段、
ａ２．１１）前記ローカル垂直制限グラフをエッジによって接続されないノードのみが同じカラーを有するように最小数のカラーで色づけし、同じカラーを有する前記ローカル垂直制限グラフの内の前記ノードを別個のグループにグループ分けする手段、
ａ２．１２）前記合計のレーティングが第２の予め規定された第２のしきい値より低くない場合に、前記グループの１つに属する前記ノードが前記第２のリストの前記エッジに接続された前記端子の垂直制限グラフのノードに対応しなければ前記グループの１つに属する前記ノードを併合し、そうでない場合は、前記グループの１つに属する前記ノードが前記同じ列に位置しない端子を表わす前記端子の垂直制限グラフのノードに対応しない場合に前記グループの１つに属する前記ノードを併合する手段、
を具備することを特徴とする請求項１に記載の電子デバイス設計装置。
【請求項４】
チャネルを有する電子装置を設計するためにそこに格納されたコンピュータプログラムを有するコンピュータが読取り可能な媒体であって、前記チャネルはある境界および該境界上に位置する１組の端子を有し、前記チャネルは数多くのネットを配線するためのトラックおよび列を有し、前記ネットの各々は前記１組の端子の内の部分集合を有し、前記部分集合の前記端子は空きの端子ではなく、前記チャネルは前記ネットの配線を有し、前記コンピュータプログラムは、
ａ１）端子の垂直制限グラフを発生する段階であって、該端子の垂直制限グラフはノードおよびエッジを備え、前記ノードの各々は前記端子の１つを表わし、前記エッジの各々は同じ列に位置する少なくとも一対の前記端子の間の垂直制限を表わしかつ前記エッジの各々はそこに割り当てられたエッジレーティングを有し、それによって前記１組の端子の内の全ての端子が前記端子の垂直制限グラフにおいて表現され、かつ前記端子の垂直制限グラフはある合計のレーティングを有する、前記端子の垂直制限グラフを発生する段階、
ａ２）前記ノードの内の選択された２つの併合を行なう段階であって、該併合を行なう段階は、
ａ２．１）第１の予め規定された値によって前記エッジの各々に対して前記エッジレーティングを初期化する段階、
ａ２．２）前記エッジの内の前記１つが併合された前記ノードの内の１つに接続される場合に第２の予め規定された値によって前記エッジの内の１つの前記エッジレーティングを変更する段階、
ａ２．３）前記エッジの内の前記１つが空きの端子を表わす前記ノードの内の１つに接続する場合に第３の予め規定された値によって前記エッジの内の１つの前記エッジレーティングを変更する段階、
ａ２．４）前記エッジレーティングを統合することにより前記合計のレーティングを決定する段階、
ａ２．５）前記合計のレーティングに基づき併合されるべき前記ノードの内の前記選択された２つを選択する段階、
を具備する前記併合を行なう段階、そして
ａ３）前記結果として得られる端子の垂直制限グラフに従って前記チャネルにトランクを割り当てる段階、
を実行することによって前記配線の設計を行なうよう構成されていることを特徴とするコンピュータが読取り可能な媒体。
【請求項５】
前記垂直制限グラフを発生する段階は、
ａ１．１）前記端子の各々に対する前記端子の垂直制限グラフにおける前記ノードの１つを作成する段階であって、空きの端子を表わす前記ノードは空きのノードとなる前記段階、
ａ１．２）前記列の内の同じ１つに位置する前記端子を表わす前記ノードの各対の間の端子の垂直制限グラフにおいて前記エッジの１つを作成する段階であって、前記エッジの内の前記１つは上部境界上に位置する前記端子を表わす前記一対のノードの内の１つから発出する前記段階、
を具備することを特徴とする請求項４に記載のコンピュータが読取り可能な媒体。
【請求項６】
前記併合を行なう段階はさらに、
前記ネットの内の各々の１つに対して、
ａ２．６）前記ネットの内の前記１つが前記列の内の同じ１つを占有する前記端子の内のちょうど２つを有する場合に、前記端子の内の前記ちょうど２つを表わす前記ノードの内の２つを併合する段階、
ａ２．７）前記エッジレーティングに従ってソートされた、前記エッジの第１のリストを発生する段階、
ａ２．８）前記エッジの第２のリストを発生する段階であって、前記第２のリストに含まれるエッジの前記エッジレーティングの合計は第１の予め規定されたしきい値より高くされる前記段階、
ａ２．９）垂直制限グラフを発生し、前記ネットの内の前記１つを表わす前記垂直制限グラフの内の１つのノードを選択し、前記選択された１つのノードを前記選択された１つのノードと同じネットを表わす前記端子の垂直制限グラフの前記ノードの内の他のものによって置き換える段階、
ａ２．１０）前記端子の垂直制限グラフの前記置き換えられたノードおよび前記垂直制限グラフを通る経路を有する前記置き換えられたノードの間のエッジを備えたローカル垂直制限グラフを発生する段階、
ａ２．１１）前記ローカル垂直制限グラフをエッジによって接続されないノードのみが同じカラーを有するように最小数のカラーで色づけし、同じカラーを有する前記ローカル垂直制限グラフの内の前記ノードを別個のグループにグループ分けする段階、
ａ２．１２）前記合計のレーティングが第２の予め規定された第２のしきい値より低くない場合に、前記グループの１つに属する前記ノードが前記第２のリストの前記エッジに接続された前記端子の垂直制限グラフのノードに対応しなければ前記グループの１つに属する前記ノードを併合し、そうでない場合は、前記グループの１つに属する前記ノードが前記同じ列に位置しない端子を表わす前記端子の垂直制限グラフのノードに対応しない場合に前記グループの１つに属する前記ノードを併合する段階、
を具備することを特徴とする請求項４に記載のコンピュータが読取り可能な媒体。
【発明の詳細な説明】
【０００１】
【発明の分野】
この発明は一般的には、プリント回路基板および半導体装置のような、電子装置の設計および製造の分野に関し、かつより特定的にはチャネルの配線の設計における改善に関する。
【０００２】
【発明の背景】
チャネルの配線の設計に対しては、従来技術から多数の手法が知られている。ナビード・シャワニによる参考書「ＶＬＳＩ物理設計の自動化のためのアルゴリズム（Ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  ＶＬＳＩ  Ｐｈｙｓｉｃａｌ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ）」、第２版、１９９５年、クルーワ・アカデミック・パブリッシャーズにおいては、特に頁２６７〜３３９において、従来技術のルーティング手法の概説が与えられている。
【０００３】
チャネルルーティングのために従来技術において通常使用されている一つの手法は垂直制限グラフ（ｖｅｒｔｉｃａｌ  ｃｏｎｓｔｒａｉｎｔ  ｇｒａｐｈ）の手段によるルーティング問題のモデリングまたはモデル化（ｍｏｄｅｌｉｎｇ）である。垂直制限グラフにおいては、ルーティングされるべき各々のネット（ｎｅｔ）は該グラフにおける一つのノード（ｎｏｄｅ）によって表わされる。もしあるネットのいずれかの端子と他のネットのいずれかの端子の間に垂直制限（ｖｅｒｔｉｃａｌ  ｃｏｎｓｔｒａｉｎｔ）が存在すれば、垂直制限グラフにおける二つの対応するノードは前記垂直制限を表わすためにダイレクテッド・エッジまたは有向エッジ（ｄｉｒｅｃｔｅｄ  ｅｄｇｅ）によって接続される。このようにして、始めはルーティングされるべき各々のネットはチャネルにおける一つだけの水平トランクによってルーティングできるものと仮定される。
【０００４】
前記垂直制限グラフに何らかのサイクル（ｃｙｃｌｅｓ）が存在すれば、これらはトランクの実際の割当ての前に「ドッグレッギング（ｄｏｇｌｅｇｇｉｎｇ）」と称される技術によって除去されなければならない。ドッグレッギング技術はまた上で述べたナビード・シャワニによる文献の、７．４．２．２章、２９９〜３０１頁に述べられている。ドッグレッギング技術のより詳細な説明はディー・エヌ・ドイッチ、「ドッグレッグ・チャネル・ルータ（Ａ  ｄｏｇｌｅｇ  ｃｈａｎｎｅｌ  ｒｏｕｔｅｒ）」、Ｐｒｏｃｅｅｄｉｎｇ  ｏｆ  １３ｔｈ  ＡＣＭ／ＩＥＥＥ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ  Ｃｏｎｆｅｒｅｎｃｅ、４２５〜４３３頁、１９７６年に、かつプレアス、「ノンターミナル・ドックレッグによるチャネルルーティング（Ｃｈａｎｎｅｌ  Ｒｏｕｔｉｎｇ  ｗｉｔｈ  Ｎｏｎ−Ｔｅｒｍｉｎａｌ  Ｄｏｇｌｅｇｓ）」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｅｕｒｏｐｅａｎ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ  Ｃｏｎｆｅｒｅｎｃｅ、１９９０年３月、グラスゴー、英国、４５１〜４５８頁に与えられている。
【０００５】
図１を参照して、垂直制限グラフおよびチャネルルーティングのためのドッグレッギングを使用する一般的な従来技術の手法をより詳細に説明する。
【０００６】
ステップ１００において、ルーティングされるべき同じネットの全ての端子（ｔｅｒｍｉｎａｌｓ）がチャネルにおける一つの単一の仮想のトランク（ｉｍａｇｉｎａｒｙ  ｔｒｕｎｋ）に論理的に統合される。ステップ１０２において、垂直制限グラフ（ＶＣＧ）がこの抽象化（ａｂｓｔｒａｃｔｉｏｎ）に従って構築される。
【０００７】
ステップ１０４において、ステップ１０２において構築された垂直制限グラフがサイクル（ｃｙｃｌｅｓ）を有するか否かが判定される。もし何らのサイクルも存在しなければ、これは該チャネルが実際にステップ１００で規定された仮想のトランクを使用することにより導くことができることを意味する。この場合、配線レイアウトを生成するためにステップ１０６においてトランクが実際にチャネルに割り当てられる。
【０００８】
もし垂直制限グラフにサイクルがあれば、制御はステップ１０４からステップ１０８に進む。ステップ１０８において、垂直制限グラフにおけるサイクルがドッグレッギングの手段によって除去される。ドッグレッギングによって、ステップ１００において定義された仮想のトランクがセグメントに分解されて競合する垂直制限を除去する。次に、ステップ１０６において、チャネルに対するトランクの割当てが行なわれる。
【０００９】
この従来技術の手法の主な不都合はネットの数によって４の累乗で（ｔｈｅ  ｐｏｗｅｒ  ｏｆ  ｆｏｕｒ）増大する計算機的な要求および、長い計算の後でも、実際に遭遇する全ての種別のチャネルルーティング問題に対してトランクがチャネルに割り当てられる前にステップ１０８において全てのサイクルが除去できるという保証がないという事実である。したがって、電子装置を設計しかつ製造するための強化された方法の必要性が存在する。
【００１０】
【発明の概要】
本発明の基礎をなす問題は基本的には独立請求項に記載された構成要件を適用することにより解決される。好ましい実施形態は従属請求項に与えられている。
【００１１】
本発明の方法はそれがいずれの従来技術の設計方法によっても解決方法が見つからなかった競合する垂直制限を有する集積回路チップまたはプリント回路基板のような、電子装置を設計および製造できるようにすることにある。
【００１２】
本発明の方法によって解決できる問題の種別は知られた従来技術の設計方法では解決できなった以下の種別を含む。
１．分割（ｓｐｌｉｔｔｉｎｇ）はサイクルの数を低減する結果とならないため垂直制限グラフにおけるノードの分割によって解決できない競合する垂直制限、および
２．それぞれのノードの分割はサイクルを生成しないため解決できない競合する垂直制限。
【００１３】
本発明はそれが構成的または合成的手法（ｃｏｍｐｏｓｉｔｉｏｎａｌ  ａｐｐｒｏａｃｈ）を使用する点で有利である。始めに、ルーティングされるべきチャネルの全ての端子が個々に端子の垂直制限グラフにおいて表現されかつまた個々の端子の間に存在する垂直制限が前記端子の垂直制限グラフにおいて表現される。このようにして、解決されるべきルーティング問題に関する完全な情報が端子の垂直制限グラフに含まれる。
【００１４】
さらに、本発明の構成的な手法はそれがはるかに少ない計算時間を要求するという点で有利である。計算機的な要求はネットの数とともに３の累乗で増大するのみである。さらに、本発明によれば、解の存在が早い段階で予測できるから不必要な計算時間が節約できる。
【００１５】
さらに、本発明の方法は従来技術と比較してより弱い制限の下で適用でき、従ってチャネルルーティング品質が改善できる。
【００１６】
これは、より小型のチャネル配線設計を特徴としかつ従ってより少ないシリコン基板スペースおよびより少ない電力消費を要求する強化された電子装置の設計および製造につながる。本発明の方法から生じるより小型のチャネル配線設計はまた信号伝搬遅延によい影響を与えかつ従って電子デバイスおよび／またはそれが集積された、デジタル無線機またはオーディオ装置のような、電子装置の総合的な動作速度によい影響を与える。
【００１７】
さらに、本発明はそれがコンピュータで読取り可能な記憶媒体に格納されたコンピュータプログラムによって容易に実施できる点で有利である。
【００１８】
【好ましい実施形態の詳細な説明】
図２は、チャネル２０２を有する電子デバイスまたは電子装置２００を示す。該電子装置２００は、デジタル電話またはオーディオ装置のような、任意の種類の電子装置とすることができる。前記チャネルは上側または上部境界２０４および下側または下部境界２０６を有する。上部境界２０４に沿って端子１．１，２．１，３．１および３．２が左から右へとそれぞれコラムまたは列２０８，２１０，２１２および２１４に配置されている。
【００１９】
下部境界２０６には、端子２．２，１．２，３．３および３．４がそれぞれ列２０８，２１０，２１２および２１４に配置されている。端子１．１および１．２はルーティングされるべき同じネット位置に属する。同様に、端子２．１および２．２はネット２にかつ端子３．１，３．２，３．３および３．４はネット３に所属する。
【００２０】
端子１．１〜３．４は一組の端子またはターミナル（ｔｅｒｍｉｎａｌｓ）を構成し、かつ同じネットに所属する端子はこの組の端子の部分集合またはサブセット（ｓｕｂ−ｓｅｔｓ）を構成する。さらに、チャネル２０２はビア（ｖｉａｓ）２１８および２２０を備えた配線（ｗｉｒｉｎｇ）２１６を有する。ビア２１８および２２０はいずれかの知られた従来技術のルーティングアルゴリズムに従ってルーティングすることはできず、それは利用できる空の列がないという事実に鑑みてドッグレッギングが可能ではないからである。対応する解決されない競合する垂直制限が両側矢印（ｄｏｕｂｌｅ−ｈｅａｄｅｄ  ａｒｒｏｗ）２２２によって示されている。本発明の教示は後により詳細に説明するようにそのような種類のルーティング問題を解決できるようにする。
【００２１】
図３のフローチャートは本発明の設計方法の総合的な処理の流れを示す。ステップ３００において、ルーティングされるべきチャネルの端子の垂直制限グラフが構築される。端子の垂直制限グラフにおいては、ルーティングされるべき各々のネットの各端子が始めに別個のノードで表わされかつ個々の端子の間の制約または制限は端子の垂直制限グラフ内の個々の有向エッジによって表わされる。
【００２２】
ステップ３０２において、端子の垂直制限グラフのそのようなノードは併合されこれは許容されない競合を生じることなくチャネルにおける一つの垂直ルーティングセグメントを表わすことができる。二つの他のノードの併合から生じる結果として得られる端子の垂直制限グラフにおける対応するノードは始めは個々のノードで表わされた端子を表わし、さらに、結果として得られる併合されたノードもまた新しいノードによって表わされる端子の共通の仮想トランクを表わす。
【００２３】
ステップ３０４において、全てのネットが併合（ｍｅｒｇｉｎｇ）および／またはドッグレッギング操作によって端子の垂直制限グラフにおいて接続されたか否かが判定される。もし接続されておれば、トランクは実際にステップ３０６においてチャネルに割り当てることができ、それによって配線の設計は完了する。
【００２４】
もし接続されないネットがあれば、制御はステップ３０８に進む。ステップ３０８において、端子の垂直制限グラフの合計のレーティングまたは評点（ｒａｔｉｎｇ）が所定のしきい値と比較される。ここで考えられている例では、前記しきい値は４である。もし合計のまたは総合のレーティングが前記しきい値より低ければ、これはチャネルはルーティングできないことを示し（ステップ３１０）、もしそうであれば設計プロセスは停止してさらなる計算機的な努力が節約できるようにする。
【００２５】
もし前記総合のレーティングが前記しきい値以上であれば、制御はステップ３１２に進みドッグレッギングによって接続されないネットの端子を接続する。ドッグレッギングの後に、制御はステップ３０２に戻る。
【００２６】
図４は、端子の垂直制限グラフの発生をより詳細に示す。ここで考慮される好ましい実施形態においては、処理はルーティングされるべきチャネルの最も左の列またはコラムからスタートする（ステップ４００）。ステップ４０２において、全ての列が処理されたか否かが判定される。もし処理されておれば、端子の垂直制限グラフは完了する。もしそうでなければ、制御はステップ４０４に進む。
【００２７】
ステップ４０４において最も左の列が現在の列と考えられる。現在の列に位置する端子はチャネルの上部および下部境界に位置する端子へとソートされる（ｓｏｒｔｅｄ）。
【００２８】
ステップ４０６において、現在の列における上部境界上に端子が存在するか否かが判定される。もし存在すれば、ステップ４０８において、現在の列におけるチャネルの上部境界上に位置するステップ４０６において識別された端子を表わす端子の垂直制限グラフにおいて新しいノードが作成される。
【００２９】
ステップ４１０において、現在の列またはコラムがさらに他の端子を含むか否かが判定される。もし含んでおれば、ステップ４１２において、現在のものから新しいノードへのエッジとともに新しいノードが端子の垂直制限グラフにおいて作成される。その後、前記新しいノードは現在のノードであると規定される。これはステップ４１２において行なわれる。
【００３０】
ステップ４１２が実行された後に、制御はステップ４１０に戻る。もしステップ４１０において現在のコラムが前に処理されなかったさらに他の端子を含まないことが判定されれば、制御はステップ４１４に進む。
【００３１】
ステップ４１４において、現在のコラムにおいて、下部境界上に端子が存在するか否かが判定される。もし存在しなければ、制御はステップ４１６に進む。ステップ４１６においては、ステップ４１４において識別されたチャネルの境界上の空のまたは空きの（ｖａｃａｎｔ）位置を表わす端子の垂直制限グラフにおいて空きのノードが作成される。さらに、ステップ４１６において、現在のものから前記空きのノードへとエッジが作成される。ステップ４１６が実行された後、制御はステップ４０２に移る。
【００３２】
もしステップ４１４においてチャネルの下部境界上に端子が存在することが判定されれば、制御は直接ステップ４０２に移る。
【００３３】
もしステップ４０６においてチャネルの上部境界上に端子が存在しないことが判定されれば、制御はステップ４１８に進む。ステップ４１８においては、チャネルの上部境界上の空きの位置を表わす空のノードとして端子の垂直制限グラフにおいて新しいノードが作成される。新しいノードは現在のノードであると規定される。ステップ４１８が実行された後、制御はステップ４１０に移る。
【００３４】
図４に示される処理の結果として、ルーティングされるべき全てのネットの各々の個々の端子は別個のノードによって端子の垂直制限グラフにおいて表わされる。さらに、その上に端子が配置されていないが配置することができるチャネルの境界に沿った空きの位置は前記端子の垂直制限グラフにおける空きのノードまたは空のノード（ｖａｃａｎｔ  ｎｏｄｅｓ）によって表わされる。
【００３５】
端子の間にかつまた空きの端子の間に存在する垂直制限はノードの間の有向エッジによって表わされる。本発明の好ましい実施形態に従って端子の垂直制限グラフが発生される方法から、端子の垂直制限グラフはサイクルを持ち得ないことが分かる。その理由は、各エッジは同じコラムに位置する一対の端子の間に存在する垂直制限を表わすのみであるからである。
【００３６】
図５を参照すると、図３のステップ３０２がより詳細に説明されている。ステップ５００において、ルーティングされるべきネットの内の任意の一つが現在のネットとして選択される。主たる手順が開始する前に、ちょうど二つの端子を有するネットが識別される。もし該二つの端子がチャネルの同じコラムに位置しておれば、そのような端子を表わす対応するノードがステップ５０２において併合される。
【００３７】
ステップ５０４において主たる手順が開始される。以下の説明において一般性を失うことなく、ステップ３００において作成される端子の垂直制限グラフはｉの数のエッジＥ１，Ｅ２，Ｅ３，…，Ｅｉを有するものと仮定する。
【００３８】
始めに、ステップ５０４において、エッジの各々の１つに対してレーティング（ｒａｔｉｎｇ）が計算される。エッジＥｊの個々のレーティングＲｊ（Ｅｊ）は加算されて総合のまたは合計のレーティングを生じる。次に、エッジがそれらのレーティングに従って降下順（ｄｅｓｃｅｎｄｉｎｇ  ｏｒｄｅｒ）でソートされ、これによってリストＬ１を生じ、この場合Ｌ１＝｛Ｅ１，Ｅ２，Ｅ３，…，Ｅｉ｝であり、Ｅ１が最も高いレーティングＲ１を有する。
【００３９】
次に、ステップ５０６において、リストＬ２を発生するために、前記ソートされたリストＬ１の始めから開始して最小数のエッジが識別される。リストＬ２はＬ１の始めからのそのようなエッジのみを含み、これは予め規定されたしきい値より上の総合のレーティングを生じ、この場合これは３である。リストＬ２を発生するために、以下の条件が満たされるようにｋの最小値が見出されなければならない。
【数１】
0003567134.tif 000002
これはリストＬ２を生じる。
【数２】
Ｌ２＝｛Ｅ１，Ｅ２，Ｅ３，…，Ｅｋ｝
【００４０】
ステップ５０８において、全てのネットが既に処理されたか否かが判定される。もし処理されておれば、図５のプロセスフローは終了し、かつ図３に示されるプロセスフローに戻り、そこではステップ３０４が次に実行されるステップとなる。
【００４１】
処理されていないネットがあれば、図５に示されるステップ５１０が次に実行される。ステップ５１０においては、まだ処理されていない任意のネットが現在のネットとして選択される。その現在のネットに対して、ルーティングされるべきチャネルの垂直制限グラフおよび端子制限グラフに鑑みて、局所的またはローカル垂直制限グラフが発生される。ローカル端子グラフの発生は次のように行なわれる。
【００４２】
始めに、垂直制限グラフが従来技術からよく知られているようにして発生される。該垂直制限グラフにおいて、現在のネットを表わすノードが選択される。該垂直制限グラフにおける選択されたノードは現在のネットに属する端子を表わす端子の垂直制限グラフのノードによって置き換えられる。該垂直制限グラフの影響を受けた（アフェクテッド：ａｆｆｅｃｔｅｄ）エッジは前記端子の垂直制限グラフの対応する置換ノード（ｓｕｂｓｔｉｔｕｅｎｔ  ｎｏｄｅｓ）に接続される。
【００４３】
現在のネットに対して発生されるべきローカル端子グラフは前記置換ノードを備えている。さらに、前記ローカル端子グラフのいずれかの対のノードが方向のないエッジによって接続されるべきか否かは次の条件によって決定される。もし前記垂直制限グラフの置換ノードの内の１つから考慮される対の他の置換ノードへの経路またはパスがあれば、前記ローカル端子グラフにおける考慮される対のノードの間にエッジがなければならない。
【００４４】
ステップ５１２において、前記ローカル端子グラフが最小数の色またはカラーによってペイントされ、それによってエッジによって接続されないローカル端子グラフのノードのみが同じカラーを持つようにされる。いわゆる色彩数を見つけるためにグラフをカラーリングまたは色づけする方法は従来技術から知られており、例えば次の文献に記載されている。すなわち、クロード・バージ、「グラフ理論および応用（Ｔｈｅｏｒｉｅ  Ｄｅｓ  Ｇｒａｐｈｅｓ  Ｅｔ  Ｓｅｓ  Ａｐｐｌｉｃａｔｉｏｎ）」、デュノド、パリ、１９５８年、並びにジェイエイ・ボンディおよびユーエスアール・マーティ、「グラフ理論および応用（Ｇｒａｐｈ  Ｔｈｅｏｒｙ  ｗｉｔｈ  Ａｐｐｌｉｃａｔｉｏｎｓ）」、エルスビア・ノース・ホランド、ニューヨーク、１９８０年、第８章「頂点の色付け」、１３３頁、およびエヌ・クリストファイズ、「グラフの色彩数のためのアルゴリズム（Ａｎ  Ａｌｇｏｒｉｔｈｍ  ｆｏｒ  ｔｈｅ  ｃｈｒｏｍａｔｉｃ  ｎｕｍｂｅｒ  ｏｆ  ａ  ｇｒａｐｈ）」、コンピュータ・ジャーナル、Ｖｏｌ．１４、３８〜３９頁を参照することができる。
【００４５】
ステップ５１４においては、全てのエッジのレーティングの合計によって与えられる合計のレーティングがあるしきい値、ここで考慮される例では４、より下であるか否かが判定される。
【００４６】
もし合計のレーティングが４より下であれば、制御はステップ５１６に移る。ステップ５１６においては、同じカラーを有するローカル端子グラフにおけるノードが識別される。これらのノードは元の端子の垂直制限グラフからの置換ノードである。もしローカル端子グラフにおいて同じカラーを有するノードによって表わされる端子が同じ列に位置しておれば、前記端子の垂直制限グラフにおけるこれらの端子を表わす対応するノードが併合される。次に、制御はステップ５０４に戻り、変換された端子の垂直制限グラフによって再び前記主たるプロセスを実行する。
【００４７】
もし合計のレーティングが４より小さくなければ、制御はステップ５１４からステップ５１８に移る。ステップ５１８においては、再び同じカラーを有するローカル垂直制限グラフのノードがグループ分けされる。同じカラーを有し、かつしたがって同じグループにあり、そしてリストＬ２のエッジに接続されないローカル垂直制限グラフのそのようなノードが前記端子の垂直制限グラフに併合される。次に、制御はステップ５０４に戻る。
【００４８】
次に図６を参照して、前記端子の垂直制限グラフのエッジのレーティングの計算の好ましい実施形態をより詳細に説明する。ステップ６００において、端子の垂直制限グラフの全てのエッジが既に処理されたか否かが判定される。もし処理されておれば、前記端子の垂直制限グラフの合計のレーティングが、ステップ６０２において、前記端子の垂直制限グラフに含まれる全てのエッジのエッジレーティングの全てを合計することにより計算される。
【００４９】
もし前記端子の垂直制限グラフの全てのエッジがまだ処理されていなければ、ステップ６００において処理されていないエッジから任意のエッジが選択される。該選択されたエッジは現在のまたは現行のエッジ（ｃｕｒｒｅｎｔ  ｅｄｇｅ）であり、制御はステップ６０４に移り、そこで前記現在のエッジのレーティングが始めに予め規定された値、この例では０、にセットされる。
【００５０】
ステップ６０６において、現在のエッジが併合操作（図３のステップ３０２を参照）の結果である端子の垂直制限グラフにおけるノードから発出しているか否かが判定される。もしこの条件が満たされれば、現在のエッジのレーティングが予め規定された値、この場合は１、だけ増大される。これはステップ６０８において行なわれる。もしステップ６０６の条件が満たされなければ、ステップ６０８はバイパスされる。
【００５１】
次に、ステップ６１０において、現在のエッジが前の併合操作から生じる端子の垂直制限グラフにおけるノードに向けられているか否かが判定される。もしそうであれば、ステップ６１２において、現在のエッジのレーティングが予め規定された値、この場合は１、だけ増大される。もしそうでなければ、ステップ６１２はバイパスされる。
【００５２】
次に、ステップ６１４において、あるエッジが前記端子の垂直制限グラフにおける空きのノード（ｖａｃａｎｔ  ｎｏｄｅ）に向けられているか否かが判定される。もしそうであれば、ステップ６１６において、現在のエッジのレーティングが予め定められた値、この場合は２、だけ増大される。もしそうでなければ、ステップ６１６はバイパスされる。
【００５３】
次に、ステップ６１８において、現在のエッジが空きのノードから発出しているか否かが判定される。もしそうであれば、現在のネットのレーティングが予め規定された値、この場合は２、だけ増大される。これはステップ６２０において行なわれる。そうでない場合は、ステップ６２０はバイパスされる。次に、制御はステップ６００に戻る。この処理は端子の垂直制限グラフの全てのエッジが処理されるまで反復される。
【００５４】
次に、図３のステップ３１２につき図７のフローチャートを参照してより詳細に説明する。ステップ７００において、前記端子の垂直制限グラフの任意のエッジが現在のエッジとして選択される。ステップ７０２において、端子の垂直制限グラフの全てのエッジが既に処理されたか否かが判定される。もし処理されていなければ、制御はステップ７０４に進み、そこで現在のエッジのレーティングが予め規定された値、この場合は４、に等しいか否かが判定される。もし等しければ、制御はステップ７０６に移り、そこで現在のエッジに対してドッグレギングが可能であるか否かが判定される。もし可能であれば、制御はステップ７０８に移り、そこで現在のエッジを使用してドッグレッグが作成される。ドッグレギングが行なわれた後に、図７に示されるフローはステップ７１０で停止し、かつ制御は図３に戻り、図３のステップ３０２が次に実行される。
【００５５】
図７のステップ７０６において、現在のエッジに対してドッグレッグが許容されないことが判定されれば、制御はステップ７１２に移り、そこで他の任意のエッジが現在のエッジとして選択される。ステップ７１２から制御はステップ７０２に移る。
【００５６】
もしステップ７０４において現在のエッジのレーティングが予め規定された値の４に等しいことが判定されれば、制御は直接ステップ７０８に移る。ステップ７０２において、全てのエッジが既に処理されたことが判定されれば、ステップは直接ステップ７１０に移る。
【００５７】
以下の説明では、本発明の方法の好ましい実施形態を図２に示されるチャネルルーティング問題に適用する場合につき説明する。図８を参照すると、図３のステップ３００を実行したことから生じる端子の垂直制限グラフ８００が示されている。
【００５８】
前記端子の垂直制限グラフ８００は各々の別個の端子に対して別個のノードを有する。前記端子の垂直制限グラフ８００の個々のノードは図２に示されるチャネル２０２から明らかなように対応する垂直制限を表わすエッジａ，ｂ，ｃおよびｄによって相互接続される。ステップ３０２が最初に実行される場合、前記エッジのレーティングが計算される。ここで考えている例では空きのノードも併合されたノードもないから、全てのエッジの初期レーティングは０である。その結果、合計のレーティングも０である。
【００５９】
図９は、ネット３が現在のネットとして選択された後のステップ５１０の状況を示している。図２のチャネルルーティング問題の垂直制限グラフにおいて、ノード３はノード３に属する端子を表わす端子の垂直制限グラフのノードによって置換される。ノード３に対する垂直制限グラフにおいては垂直制限が無いため、その置換ノードは分離され、したがって図９からも明らかなように任意の対の置換ノードの間にパスまたは経路が存在しない。
【００６０】
その結果、全ての置換ノードは同じカラーによってペイントされかつ同じグループへとグループ分けすることができ、それは合計のレーティングが０に等しいからである。制御はステップ５１４から５１６に移り、そこで同じカラーを有し同じ列を占有しない現在のネットのノードが併合される。これは結果としてネット３に属する端子を表わす２つの対のノードが、図１０に示されるように、併合されることになる。
【００６１】
次に制御はステップ５０４に移り、そこでレーティングが再び計算される。図８から図１０への端子の垂直制限グラフの最初の変換の後に、エッジｃおよびｄのレーティングは０から２へと変化する。その結果、リストＬ２は２つのエッジｃおよびｄを含む。
【００６２】
次に、ステップ５１０においてネット１が現在のネットとして選択される。図１１は端子の垂直制限グラフのネット１のノードの垂直制限グラフへの置換を示している。図１２はネット１に対するローカル垂直制限グラフを示している。２つの置換ノードは１つのエッジによって接続され、それは図１１におけるネット１に所属する端子を表わす２つのノードの間にパスまたは経路があるからであるる。このため、前記ローカル垂直制限グラフの２つのノードは同じカラーによってペイントされる必要がなくしたがって併合は生じ得ない。同じ状況はネット２がその後現在のネットとして選択された場合にも同様に当てはまる。
【００６３】
ステップ３０８においてその後テストされる合計のレーティングは４に等しいから、ステップ３１２が実行される。ドッグレギングの結果が図１３に示されている。エッジｃは２つのエッジｃ１およびｃ２によって置き換えられる。次にステップ５０４において合計のレーティングが再び更新される。その結果はエッジａ，ｂ，ｄに対するレーティングが同じにとどまっており、一方新しいエッジｃ１およびｃ２に対するレーティングは１となる。リストＬ２は｛ｄ，ｃ１，ｃ２｝に等しくなる。図１４は図１３の端子の垂直制限グラフの対応するノードによるノードの置換の後の対応する垂直制限グラフを示している。ノード１および３は前のドッグレギングのためそれぞれノード１′，１″および３′，３″へと分割される。
【００６４】
ノード２の間にパスまたは経路がないため、それらはローカル垂直制限グラフにおいて同じカラーによってペイントできる。合計のレーティングが４より下でないから、ステップ５１８が実行される。端子の垂直制限グラフにおいてノード２が接続されるエッジａおよびｂの双方はリストＬ２に属さないから、それらは併合できる。結果は図１５に示されている。
【００６５】
図１５に示される変換された端子の垂直制限グラフに対するエッジの更新されたレーティングは次の通りである。すなわち、ｄ＝２，ａ＝１，ｂ＝１，ｃ１＝１およびｃ２＝１である。対応するリストはＬ２＝｛ｄ，ａ，ｂ｝である。合計のレーティングは６である。図１６は図１５の変換された端子の垂直制限グラフに基づくチャネルへのトランクの結果としての割当てを示す（図３のステップ３０６を参照）。結果として得られる配線は任意の知られた適切な製造工程によって電子装置２００へと実施することができる。
【図面の簡単な説明】
【図１】チャネルの配線を設計するための従来技術の方法を示すフローチャートである。
【図２】本発明の１実施形態によって解くことができるチャネルルーティング問題の模式図である。
【図３】本発明の好ましい実施形態の全体を示すフローチャートである。
【図４】端子の垂直制限グラフの作成を示すフローチャートである。
【図５】端子の垂直制限グラフにおける端子の併合プロセスを示すフローチャートである。
【図６】前記端子の垂直制限グラフにおけるエッジのレーティングの決定手順を示すフローチャートである。
【図７】ドッグレギングによる端子の接続手順を示すフローチャートである。
【図８】図２に示されるルーティング問題に対する端子の垂直制限グラフを示す説明図である。
【図９】図１２のネット３に対するローカル垂直制限グラフの構造を示す説明図である。
【図１０】併合操作の後の図８の端子の垂直制限グラフを示す説明図である。
【図１１】図２のネット１に対するローカル垂直制限グラフの設計を示す説明図である。
【図１２】図２のネット１に対するローカル垂直制限グラフの設計を示す説明図である。
【図１３】ドッグレギングの後の図１２の端子の垂直制限グラフを示す説明図である。
【図１４】図１３に基づく図２のネット２に対するローカル垂直制限グラフの構造を示す説明図である。
【図１５】第２の併合操作の後の図１３の端子の垂直制限グラフを示す説明図である。
【図１６】配線設計が完了した後の図２のチャネルを示す説明図である。
【符号の説明】
２００  電子装置
２０２  チャネル
２０４  上部境界
２０６  下部境界
２０８，２１０，２１２，２１４  列
【図１】
0003567134.tif 000003
【図２】
0003567134.tif 000004
【図３】
0003567134.tif 000005
【図４】
0003567134.tif 000006
【図５】
0003567134.tif 000007
【図６】
0003567134.tif 000008
【図７】
0003567134.tif 000009
【図８】
0003567134.tif 000010
【図９】
0003567134.tif 000011
【図１０】
0003567134.tif 000012
【図１１】
0003567134.tif 000013
【図１２】
0003567134.tif 000014
【図１３】
0003567134.tif 000015
【図１４】
0003567134.tif 000016
【図１５】
0003567134.tif 000017
【図１６】
0003567134.tif 000018