(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-29
(45)【発行日】2023-09-06
(54)【発明の名称】レイアウト装置、レイアウト方法及びレイアウト用プログラム
(51)【国際特許分類】
G06F 30/394 20200101AFI20230830BHJP
H01L 21/82 20060101ALI20230830BHJP
H01L 21/822 20060101ALI20230830BHJP
H01L 27/04 20060101ALI20230830BHJP
【FI】
G06F30/394
H01L21/82 C
H01L27/04 D
(21)【出願番号】P 2020164196
(22)【出願日】2020-09-29
【審査請求日】2022-08-29
(73)【特許権者】
【識別番号】391016358
【氏名又は名称】東芝情報システム株式会社
(74)【代理人】
【識別番号】100156199
【氏名又は名称】神崎 真
(74)【代理人】
【識別番号】100090169
【氏名又は名称】松浦 孝
(74)【代理人】
【識別番号】100074147
【氏名又は名称】本田 崇
(74)【代理人】
【識別番号】100124497
【氏名又は名称】小倉 洋樹
(72)【発明者】
【氏名】長谷川 智洋
【審査官】合田 幸裕
(56)【参考文献】
【文献】特開2002-342401(JP,A)
【文献】特開2010-231631(JP,A)
【文献】特開2008-251599(JP,A)
【文献】特開2004-171076(JP,A)
【文献】米国特許出願公開第2015/0143309(US,A1)
【文献】米国特許第5987086(US,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/394
H01L 21/82
H01L 21/822
IEEE Xplore
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
複数層の各層に1以上の素子を配置し、当該1以上の素子に必要な配線を設ける設計を行うレイアウト装置において、
前記素子の配置情報に基づき前記各層の各ROWに素子を配置した場合に生じる配線の抵抗値の大小を予測し、予測結果に基づき前記配線を設計するROWの優先順位を決定する優先順位決定手段と、
前記決定されたROWの優先順に従って前記各ROWの配線トラックに対し結線対象ノードの配線を設けるトラック配線手段と
を具備することを特徴とするレイアウト装置。
【請求項2】
前記優先順位決定手段は、前記各ROWに配置する素子の数、前記各ROWの接続ポイントの数、ノードの単位抵抗値に基づき前記ROWの優先順位を決定することを特徴とする請求項1に記載のレイアウト装置。
【請求項3】
前記優先順位決定手段は、ROWの長手方向のレイヤが低抵抗でありROWの長手方向に直交する方向のレイヤが高抵抗である場合に、ROWの長手方向のレイヤの素子と繋がるピン数に、ROWの長手方向に直交する方向のレイヤの素子と繋がるピン数よりも大きな重みを持たせて加算を行って優先順位を決定することを特徴とする請求項1または2に記載のレイアウト装置。
【請求項4】
前記トラック配線手段は、前記ROW毎の配線トラックに対し前記結線対象ノードの配線を設ける際に、ROW内が障害物により混雑していないときには、レフトエッジアルゴリズムを用いて配線を設けることを特徴とする請求項1乃至3のいずれか1項に記載のレイアウト装置。
【請求項5】
前記トラック配線手段は、ROW毎の配線トラックに対し前記結線対象ノードの配線を設ける際に、ROW内が障害物により混雑しているときには、配線長の長いノードの配線を優先的に設けることを特徴とする請求項1乃至4のいずれか1項に記載のレイアウト装置。
【請求項6】
前記トラック配線手段は、電源ラインの配線により電源ライン以外の配線を挟むように電源ラインの配線を配置することを特徴とする請求項1乃至5のいずれか1項に記載のレイアウト装置。
【請求項7】
複数層の各層に1以上の素子を配置し、当該1以上の素子に必要な配線を設ける設計を行うレイアウト方法において、
レイアウト装置により、前記素子の配置情報に基づき前記各層の各ROWに素子を配置した場合に生じる配線の抵抗値の大小を予測し、予測結果に基づき配線を設ける設計を行うROWの優先順位を決定する優先順位決定工程と、
前記レイアウト装置により、前記決定されたROWの優先順に従って前記各ROWの配線トラックに対し結線対象ノードの配線を設けるトラック配線工程と
を具備することを特徴とするレイアウト方法。
【請求項8】
複数層の各層に1以上の素子を配置し、各素子間に必要な配線を設ける設計を行うレイアウト装置のコンピュータを、
前記素子の配置情報に基づき前記各層の各ROWに素子を配置した場合に生じる配線の抵抗値の大小を予測し、予測結果に基づき前記配線を設計するROWの優先順位を決定する優先順位決定手段、
前記決定されたROWの優先順に従って前記各ROWの配線トラックに対し結線対象ノードの配線を設けるトラック配線手段
として機能させることを特徴とするレイアウト用プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、レイアウト装置、レイアウト方法及びレイアウト用プログラムに関するものである。
【背景技術】
【0002】
従来の自動配線ツールにおける詳細配線のアルゴリズムは、基本的に配線経路における配線と配線の各交点である接続ポイントの結線とエラー修正を何度も繰り返して配線処理が行われるものであった。このため、長距離の接続は、配線に段差を生じるジョグや配線層の切り替えが乱雑に発生し、迂回配線が作られる傾向にある。一般的に、カスタムレイアウトはクリティカルパスの比率が高いことから、迂回配線による配線負荷の増大は致命的な問題につながることが多いものであった。また、カスタムレイアウトでは、機能モジュールごとに階層設計しているため、上層モジュールのために確保された予約配線経路を余分に消費してしまう問題も発生していた。
【0003】
特許文献1には、概略配線(グローバル配線)で複数のセル行を跨ぐ必要のある配線であるスルー配線の必要な、素子と素子間の配線を指すネットに対してスルー配線位置の割当ておよび幹線の入出力部の結線を行う配線が配置される領域であるチャネルへの割当てを決めて、概略配線経路を決定し、次にその結果に基いてチャネル配線法により、各チャネルに対して順次配線処理を行って、セル間の詳細な配線経路を決めて結線を行う配線方法が開示されている。この特許文献1の発明では、上記のセル間の詳細な配線経路を決めて結線を行うに際し、スルー配線位置の割当ておよび幹線のチャネルへの割当てをネット毎に逐次処理するのではなく、スルー配線の必要なネットに対して、ネット毎に必要となる幹線(セル行に平行な水平方向の配線)を抽出し、その幹線の集合を、配線に迂回が生じないための割当てチャネルの許容範囲やセル内のスルー配線可能な箇所の有無等を条件として考慮して、最小のトラック数で配置充填が実現する組み合せを求める。その後、その幹線の配置充填の組み合せに従って、幹線をチャネルに割当ることで、一挙に配線位置を決定するのである。
【0004】
この引用文献1の発明は、従来のチャネル配線法によるチャネルの配線処理を基本としながら、概略配線におけるスルー配線の必要なネットに対するスルー配線位置の割当ておよび幹線のチャネルへの割当てを、最小のトラック数で実現できる幹線の配置組合せに準拠して、一括して決定する。このため、常に最適に近い幹線のチャネルへの割当てと、それに従属して決められるスルー配線位置の割当てが可能になる。これにより、殆ど100%の配線率が達成できるチャネル配線法の利点を生かして配線領域の有効な圧縮が可能になるというものである。
【0005】
更に、特許文献2には、概略配線でスルー配線の必要なネットに対して、スルー配線位置の割り当て、および幹線のチャネルへの割り当てを決めて、概略配線径路を決定し、次にその結果に基いてチャネル配線法により、各チャネルに対して順次配線処理を行なって、セル間の詳細配線径路を決めて結線を行なう配線方法が開示されている。この特許文献2の発明では、上記結線を行うに際し、スルー配線位置の割り当て、および幹線のチャネルへの割り当てをネット毎に逐次処理するのではなく、スルー配線の必要な全ネットに対してネット毎に必要となる幹線(セル行に平行な水平方向の配線)を抽出し、その幹線の集合を配線に迂回が生じないための割り当てチャネルの許容範囲や、セル内のスルー配線可能な箇所の有無等を条件として考慮して、幹線のチャネル割当て範囲の狭い幹線を基に割当てチャネルを求め、その幹線とチャネルよりトラックへの配置充填の組合せを求め、配線位置を決定している。
【0006】
上記特許文献2の方法によれば、概略配線におけるスルー配線の必要なネットに対するスルー配線位置の割当て、幹線チャネルの割当てを、幹線のチャネル割当ての狭い幹線を基に処理するため、他の幹線と同チャネル上に乗せられる可能性の小さいものから処理を行なうこととなり、限られたチャネル上に多くの組合せを行なうので幹線とチャネル割当てを同時に決定し、かつ最小トラック数に近いトラック数で幹線を割り当てることが可能となる効果を奏するものである。
【0007】
更に、引用文献3には、素子が形成されない空き領域を配線領域に利用して電源供給を補強し、且つパターンレイアウトの自動設計に好適する半導体集積回路装置が開示されている。
【0008】
この引用文献3の発明では、1セル列に含まれる未使用セル及び論理セル上の空いた空き配線トラックやセル列間のスペース領域を検索し、それらの領域にメタル配線を形成し、電源の補強を必要とする論理セルに電源を補強供給するものである。
【先行技術文献】
【特許文献】
【0009】
【文献】特開昭63-278249号公報
【文献】特開昭64-81249号公報
【文献】特開平9-199601号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
以上のように従来においても配線領域を無駄なく有効利用を図るものはあったが、配線負荷増大の抑制を図る観点から、適切に配線設計するものではなかった。本発明は、このような従来のレイアウト技術の現状に鑑みてなされたもので、その目的は、配線負荷の増大を抑制し、適切に配線するようにしたレイアウト装置、レイアウト方法及びレイアウト用プログラムを提供することである。
【課題を解決するための手段】
【0011】
本発明の実施形態に係るレイアウト装置は、複数層の各層に1以上の素子を配置し、各素子間に必要な配線を設ける設計を行うレイアウト装置において、素子配置の情報に基づき前記各層である各ROWに素子を配置した場合に生じる配線の抵抗値の大小を予測し、予測結果に基づき配線を設ける設計を行うROWの優先順位を決定する優先順位決定手段と、前記決定されたROWの優先順に従ってROW毎の配線トラックに対し結線対象ノードの配線を設けるトラック配線手段とを具備することを特徴とする。
【図面の簡単な説明】
【0012】
【
図1】本発明の実施形態に係るレイアウト装置を実現するコンピュータシステムのブロック図。
【
図2】本発明の本実施形態において外部記憶装置23に記憶されているプログラムとデータの一例を示す図。
【
図3】本発明の本実施形態に係る動作を示すフローチャート。
【
図4】本発明に係る本実施形態において、各ROWとステップS13にて発生させた配線を示す図であり、複数のROWが配置された配線面の平面図。
【
図5】本発明に係る本実施形態において、各ROWに配置された素子とROW毎に求められたROW優先順位情報を示す図であり、複数のROWが配置された配線面の平面図。
【
図5A】本発明に係る本実施形態において、ROWの長手方向のレイヤの素子と繋がるピンとROWの長手方向に直交する方向のレイヤの素子と繋がるピンとに関する説明のための図。
【
図6】ROW優先順位情報を求めるための重みづけをするROWが存在する場合の重みづけ例を示す図であり、複数のROWが配置された配線面の平面図。
【
図6A】本発明に係る本実施形態において、複数の配線トラックへの配線のときに用いられる2通りの優先順位を説明する図。
【
図7】レフトエッジアルゴリズムを用いて配線を設ける例を示す図。
【
図8】ROW3内に予め設定されている優先配線トラックの順番で配線可能なトラックの検索をする過程を示す配線面の平面図。
【
図9】
図8に示した如くROW3内に配置した配線Bに対する支線を配置した例を示す図であり、複数のROWが配置された配線面の平面図。
【
図10】電源ラインの配線により電源ライン以外の配線を挟むように電源ラインの配線を配置した例を示す図であり、複数のROWが配置された配線面の平面図。
【発明を実施するための形態】
【0013】
以下添付図面を参照して本発明の実施形態に係るレイアウト装置、レイアウト方法及びレイアウト用プログラムを説明する。各図において同一の構成要素には、同一の符号を付して重複する説明を省略する。本実施形態に係るレイアウト装置は、複数層の各層に1以上の素子を配置し、各素子間に必要な配線を設ける設計を行うレイアウト装置である。レイアウトの対象装置は、この実施形態では、半導体装置とするが、多層基板により作成される半導体装置外の電子装置であっても良い。
【0014】
図1は、実施形態に係るレイアウト装置1を実現するコンピュータシステムのブロック図である。このコンピュータシステムは、パーソナルコンピュータやワークステーション、その他のコンピュータシステムにより構成することができる。このコンピュータシステムは、CPU10が主メモリ11に記憶されている或いは主メモリ11に読み込んだプログラムやデータに基づき各部を制御し、必要な処理を実行することにより本実施形態や他の実施形態に係るレイアウト装置1として動作を行うものである。
【0015】
CPU10には、バス12を介して外部記憶インタフェース13、入力インタフェース14、表示インタフェース15、通信インタフェース16が接続されている。外部記憶インタフェース13には、レイアウト用プログラム等のプログラムと必要なデータ等が記憶されている外部記憶装置23が接続されている。入力インタフェース14には、コマンドやデータを入力するための入力装置としてのキーボードなどの入力装置24とポインティングデバイスとしてのマウス22が接続されている。
【0016】
表示インタフェース15には、LEDやLCDなどの表示画面を有する表示装置25が接続されている。通信インタフェース16には、外部から必要な情報を得るためのポート26-1、26-2、・・・、26-mが接続されている。このコンピュータシステムには、他の構成が備えられていても良く、また、
図1の構成は一例に過ぎない。このコンピュータシステムによる構成は、この第1の実施形態に限らず、第2の実施形態以降の各実施形態やその変形例としても構成に採用される。
【0017】
図2には、本実施形態において外部記憶装置23に記憶されているプログラムとデータが示されている。即ち、外部記憶装置23には、CPU10を、優先順位決定手段231、トラック配線手段232として機能させるレイアウト用プログラムが記憶されていると共に、ネットリスト233、素子レイアウト情報ファイル234、ノードリスト235が記憶されている。
【0018】
優先順位決定手段231は、素子配置の情報(ネットリスト233、素子レイアウト情報ファイル234、ノードリスト235に記憶されている)に基づき上記各層である各ROWに素子を配置した場合に生じる素子間の配線の抵抗値の大小を予測し、予測結果に基づき配線を設ける設計を行うROWの優先順位を決定するものである。各ROWには、複数の配線トラックが設けられており、本実施形態では複数のROWにおいて優先して配線を行うべきROWを決定し、決定したROWにおける複数の配線トラックのいずれに配線を行うか決定している。トラック配線手段232は、上記優先順位決定手段231によって決定されたROWの優先順に従ってROW毎の配線トラックに対し結線対象ノードの配線を設けるものである。上述の通り、1つROWが決定され、そのROWにおいて配線する配線トラックが決定され、その配線トラックで配線する素子間のノード(結線対象ノード)における配線が行われる。
【0019】
ネットリスト233には、信号名(ネット名)とネットに繋がる素子(部品)の回路番号、端子番号等が記載されている。素子レイアウト情報ファイル234には、装置に用いられる素子の回路番号、素子の配置座標等が記載されている。ノードリスト235には、ノードに送られる信号の信号名、配線の長さ、始点と終点の座標等が記載される。素子レイアウト情報ファイル234、ノードリスト235は1つのファイルにまとめられていても良い。
【0020】
図3は、本実施形態の上記の優先順位決定手段231とトラック配線手段232との動作を示すフローチャートである。即ち、前述の通り、外部記憶装置23には、CPU10を、優先順位決定手段231、トラック配線手段232として機能させるレイアウト用プログラムが記憶されているので、上記プログラムを起動すると、CPU10によって
図3のフローチャートに示す動作が行われる。以下に、
図3に示すフローチャートに従って動作説明を行う。まず、この度の処理で結線する結線対象ノードのリストをノードリスト235から取り出す(S11)。
【0021】
繰り返し処理マークK11と繰り返し処理マークK12により挟まれるステップS13とS14を、上記のステップS11において取り出した数の結線対象ノードの全てについてノード毎に順次に繰り返して行う。
【0022】
ステップS13とS14の処理は、上記優先順位決定手段231が行う処理であって、各ROWに配置する素子の数、各ROWの接続ポイントの数、ノードの単位抵抗値に基づき各ROWに素子を配置した場合に配線によって生じる配線の抵抗値の大小を予測し、ROWの優先順位を決定する処理である。例えば、ROWに配置する素子については、素子数が多いときには配線数が多くなり、配線を施したときには抵抗値も多くなる予測されるから、ROWに素子を配置した場合に配線によって生じる配線の抵抗値の大小を予測するときのパラメータとなる。また、ROWの接続ポイントについても接続ポイントが多ければ接続ポイント間の配線が多くなると予測されることから、ROWに素子を配置した場合に配線によって生じる配線の抵抗値の大小を予測するときのパラメータとなる。ノードの単位抵抗値についても配線の長さにもよるが、ROWに素子を配置した場合に配線によって生じる配線の抵抗値の大小を予測するときのパラメータとなる。上記3つのパラメータを全て用いて、単純には3つのパラメータの加算や乗算等の演算の結果をROW毎に得て、この結果を比較し優先順位を得ることができる。配線作業によっては、上記3つのパラメータの重要度が変化するであろうことが予測される場合には、それぞれのパラメータに重みを乗じてから演算を行うこともできる。また、3つのパラメータのいずれか2つを用いることができ、また、3つのパラメータのいずれか1つを用いることもできる。また、パラメータの用い方も、例えばノードの単位抵抗値については、ROW内の全てのノードの長さとの乗算を行った結果をROW毎に得て、この結果を比較し優先順位を得ることができる。本実施形態では、各ROWの接続ポイントの数をパラメータとし、このパラメータの用い方は以下の通りである。即ち、ステップS13では、素子レイアウト情報ファイル234、ノードリスト235の情報を用いて、該当ノードに接続される素子の配置座標の最大値(Max)と最小値(Min)を検出し、これら最大と最小との座標に対応させた配線を発生させる(S13)。
【0023】
本実施形態では、配線の長さ比較や素子の位置比較などの数値による処理を行えばよいのであるが、ここでは、図示しながら処理の説明を行う。
図4は、各ROW(0~4)とステップS13にて発生させた配線を示す図であり、複数のROWが配置された配線面の平面図である。ここでは一例としてROWの数を5層とし、最下層からROW0、ROW1、・・・と続き最上層がROW4であるとする。
【0024】
ROW0には素子の配置は無く、ROW1には素子C1が配置され、ROW2には素子C2~C4が配置され、ROW3には素子C5~C9が配置され、ROW4には素子C10~C13が配置されている。ここで、座標は右側が大きいものとして、素子の配置座標の最大値(Max)は、素子C4の座標であり、素子の座標の最小値(Min)は、素子C1の座標であるから、ステップS13において発生される配線は、ROW0の下方に示した配線Bのような長さを有するものとなる。
【0025】
各ROWにおいて上記配線Bとの接続ポイントが多いROWを順に検出し、この接続ポイントの多い順にROWを当該結線対象ノードに対応させて、ROW優先順位情報として記憶する(S14)。本実施形態では、1素子の接続ポイントが「1」として計算する。
図5は、本発明に係る本実施形態において、各ROWに配置された素子と各ROWに求められたROW優先順位情報を示す図であり、複数のROWが配置された配線面の平面図である。ROW優先順位情報は、ROWに配置される素子数と一致し、その値は、
図5の各ROWの右側に示すように、ROW0=0、ROW1=1、ROW2=3、ROW3=5、ROW4=4となる。これにより、優先順位は、ROW3>ROW4>ROW2>ROW1>ROW0の順となり、これがROW優先順位情報として記憶される。本実施形態では、図の矢印Yにより示すROWの長手方向に直交する方向のレイヤへの配線の抵抗が、図の矢印Xにより示すROWの長手方向のレイヤへの配線の抵抗より大きいものとし、当該ROMに設けられた素子に接続されることから、ROWの長手方向のレイヤへの配線がなされることを前提とする。
【0026】
本実施形態では、各ROWの接続ポイントの数を用いてROW優先順位情報を求めたが、ネットリスト233には、端子番号等が記載されているので、この端子番号の数を素子ごとに計算してROW優先順位情報を求めるようにしても良い。また、図の矢印Yにより示すROWの長手方向に直交する方向のレイヤへの配線の抵抗が図の矢印Xにより示すROWの長手方向のレイヤへの配線の抵抗より大きい本実施形態の場合は、ROWの長手方向のレイヤの素子と繋がるピン数に、ROWの長手方向に直交する方向のレイヤの素子と繋がるピン数よりも大きな重みを持たせて加算を行っても良い。
図5Aは、ROWの長手方向のレイヤの素子と繋がるピンとROWの長手方向に直交する方向のレイヤの素子と繋がるピンとに関する説明のための図であり、ROWにおける配線を示す斜視図である。
図5Aに示すように、ROWにおける配線H1が矢印Xにより示すROWの長手方向に延びており、ROWの長手方向のレイヤの素子DX1、DX2、・・・が配置されている。配線H1の側部には、ROWの長手方向に直交する方向のレイヤの素子DY1、DY2、DY3、DY4、・・・が配線V1、V2、V3、V4、・・・によって接続されている。素子DX1、DX2、DX3、・・・と素子DY1、DY2、DY3、DY4、・・・は、出力ピンが1で入力ピンが複数である。これらのピンの間が配線となる。配線に使用する材料の関係で図の矢印Yにより示すROWの長手方向に直交する方向のレイヤへの配線の抵抗が図の矢印より示すROWの長手方向のレイヤへの配線の抵抗より大きいから、ROWの長手方向のレイヤの素子DX1、DX2、・・・と繋がるピン数に、ROWの長手方向に直交する方向のレイヤの素子DY1、DY2、DY3、DY4、・・・と繋がるピン数よりも大きな重みを持たせることになる。
図6は、ROW優先順位情報を求めるための重みづけをするROWが存在する場合の重みづけ例を示す図であり、複数のROWが配置された配線面の平面図である。この
図6は、ROW2に対してROWの長手方向に繋がるピンを持つ素子C00が配置されている場合に、通常の素子の数3に加えて、重み「5」の上記素子C00による加算を行い、全体ではポイントが「8」となることを示す。仮に、ROWの長手方向に繋がるピンを持つ素子配置されている場合に重みを付けないこととすると、ROW2のポイントが「3」となり、ROWに素子を配置した場合に配線によって生じる配線の抵抗値の大小を予測することが適正に行えなくなる。更に、ノードの単位抵抗値をノードリスト235に記載しておき、これを接続するセルとの距離に掛けて値の小さなROWを優先させるようにしても良い。
【0027】
上記の処理によってROW優先順位情報を求めることで、素子配置の情報に基づき上記各層である各ROWに素子を配置した場合に生じる配線の抵抗値の大小を予測し、予測結果に基づき配線を設ける設計を行っているため、配線負荷が小さなROWが優先されることになり、配線負荷の低減につながることが期待される。上記処理が、結線対象ノードの全てについて終了すると、
図3のステップS15へ進む。ステップS15において、処理するROW内が障害物により混雑しているか否かを優先順位のROM毎に検出し、ROW内が障害物により混雑していないときには、レフトエッジアルゴリズムを用いて配線を設け、ROW内が障害物により混雑しているときには、配線長の長いノードの配線を優先的に設ける。ここで障害物とは、配線の障害となる素子や他の配線を言う。
【0028】
このステップS15では、繰り返し処理マークK13と繰り返し処理マークK14により挟まれるステップS16において、空きトラック(未配線のトラック)を増やすことなどにより消費トラック数を最小限に抑制することを狙った処理とするか、負荷を大きくする迂回配線を回避し、優先順位の低い(短い)配線を他のROWへ配置する確率を上げ適切な配線となるようにするかを選択するために行われる。
【0029】
上記ステップS15の処理において、障害物とは、配線に接続されない素子を挙げることができる。また、混雑しているとは、ROMの面積に対する障害物の占有率が例えば40%以上となった場合である、と定めることができる。
以下の処理は、複数の配線トラックへの配線を説明する。ここでは、配線トラックに対しては優先順位は、2通りされている。
図6Aは複数の配線トラックへの配線のときに用いられる2通りの優先順位を説明する図である。
図6A(a)は、トラックへ配線する配線(配線図形)L1~L6の優先順が決められていることを示す図である。この
図6A(a)では、配線L1~L6の配線の優先順は、レフトエッジソートの左から順である。または配線の長いものの順である。いずれとするかは、プログラムが決めている。
配線トラックの順は、ROW毎に事前に設定されており(
図6A(b))、
図6A(a)に示される順で選択された配線L1~L6を配置する配線トラックについては、この
図6A(b)に示される順で検索する。
【0030】
ステップS15の次には、ステップS15で決まった処理方法により配線が行われる(S16)。
図7(a)~(c)は、CPU10が外部記憶装置23に記憶されたトラック配線手段232として機能し、レフトエッジアルゴリズムを用いて配線を設ける例を示す図である。処理対象である優先順位のROWに6本の配線トラックがある場合を想定する。CPU10はトラック配線手段232として、最初に、ネットリスト233、素子レイアウト情報ファイル234、ノードリスト235の情報に従って、デフォルトの位置に配線L1~L6を発生させて行く(
図7(Aa))。
【0031】
次に、レフトエッジソートを行う。つまり、デフォルトの位置の配線L1~L6について、ROWの左端に近い位置に発生した順は、L3、L1、L2、L4、L6、L5であるから、この順に下から、配線トラックを変えて配置する(
図7(b))。この場合に、配線の座標(図の左右方向の座標)を変えずに上下の位置である配線トラックを変更する。
【0032】
次に、配線トラックの空領域に、上側の配線トラックに配置されている短い配線を移動して、下方の配線トラックにおける空領域を詰めて行く(
図7(c))。この例では、配線L5、L6が移動されている。レフトエッジアルゴリズムで配線トラックの処理をしてゆくことにより、消費トラック数を最小限に抑えることが可能となる効果がある。また、上側に空きの配線トラックを発生させることができるため、カスタムレイアウトにおいて階層設計した場合の上位の機能ブロックを上側の空き配線トラックに配置することが可能となる。
【0033】
ステップS15で決まった処理方法が、配線長の長いノードの配線を優先的に設ける処理である場合の処理を以下に説明する。処理対象である優先順位のROWの空配線トラックを例えば、下方側の配線トラックから順に探してゆき、空きトラックが見つかると、ノードリスト235の情報に従って、未配線のノードの中で配線長の最も長いノードの配線を上記で見つかった空配線トラックに発生する。
【0034】
図8は、ROW3内に予め設定されている優先配線トラックの順番で配線可能なトラックの検索をする過程を示す配線面の平面図である。ROWにおける処理を開始するときに、既に第0配線トラックに配線B0が配置されており、第1配線トラックに配線B1が配置されており、第4配線トラックにB4が配置されているものとする(
図8(a))。また、配線すべきは
図8(a)の配線Bである。この場合、例えば、下側の配線トラックから順に空きトラックを探してゆき、第2配線トラックが空き配線トラックであることを検出する。すると、この第2配線トラックに、配線すべき配線Bを配置する(
図8(b))。係る処理によって、負荷を大きくする迂回配線を回避し、優先順位の低い(短い)配線を他のROWへ配置する確率を上げ適切な配線となることが期待できる。
【0035】
上記のようなステップS16の処理に続き、結線対象ノードに関し当該優先順のROW内で必要な配線を配置できたかを検出し(S17)、NOに分岐すると次の優先順位のROWに対する配線処理へ進み(S18)、更にステップS15以降の処理を行う。
【0036】
上記ステップS17においてYESへ分岐すると、ネットリスト233、素子レイアウト情報ファイル234、ノードリスト235の情報に従って、配置した配線の支線を配置する(S19)。
図9は、
図8に示した如くROW3内に配置した配線Bに対する支線P1~P8を配置した例を示す図であり、複数のROWが配置された配線面の平面図である。
図9において支線P1~P8が配線Bから細く短い棒線で示されている。以上の説明の通り、このROW3における結線対象ノードの配線によって、配線負荷の増大を抑制することができる。
【0037】
上記の実施形態では、
図7における複数の配線トラックの上側に空きの配線トラックを発生させることができるため、上位の機能ブロックを上側の空き配線トラックに配置すること示した。他の実施形態(第2の実施形態)では、トラック配線手段232は、電源ラインの配線により電源ライン以外の配線を挟むように電源ラインの配線を配置する。
図10は、電源ラインの配線L
DD、L
SSにより電源ライン以外の配線を挟むように電源ラインの配線を配置した例を示す図であり、複数のROWが配置された配線面の平面図である。この
図10では、図の最上位の配線トラックに電源V
DDの配線L
DDを配置し、図の最下位の配線トラックに電源V
SSの配線L
SSを配置している。電源V
DDの配線L
DDと電源V
SSの配線L
SSの間に、通常の信号線の配線N1~N3を配置し、シールド効果を生じさせている。
【0038】
更に他の実施形態では、ノード毎に処理順番の優先順位をつけた情報を、ノードリスト235に保持させており、トラック配線手段232は、ROW内トラックの選定処理については、上記優先順に従って配線トラック選定の最適解を得るようにしても良い。例えば、上位の機能ブロックに対応するノードの処理順が早くなるように設定し、ROW内の上位位置の空配線トラックに上位の機能ブロックに対応する配線を配置するようにすることもできる。これによって、上記の機能ブロックのための配線トラックが無い事態や、機能ブロックのための配線トラックにおいて迂回配線が生じ負荷増大が生じる事態を防げることが期待できる。
【0039】
本発明に係る複数の実施形態を説明したが、これらの実施形態は例として提示するものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0040】
1・・・レイアウト装置、11・・・主メモリ、12・・・バス、13・・・外部記憶インタフェース、14・・・入力インタフェース、15・・・表示インタフェース、16・・・通信インタフェース、22・・・マウス、23・・・外部記憶装置、24・・・入力装置、25・・・表示装置、26-1~26-m・・・ポート、231・・・・・・優先順位決定手段、232・・・トラック配線手段、233・・・ネットリスト、234・・・素子レイアウト情報ファイル、235・・・ノードリスト