JP2006309748A - 矩形要素配置方法及び矩形要素配置装置並びに矩形要素配置用プログラム - Google Patents

矩形要素配置方法及び矩形要素配置装置並びに矩形要素配置用プログラム Download PDF

Info

Publication number
JP2006309748A
JP2006309748A JP2006096157A JP2006096157A JP2006309748A JP 2006309748 A JP2006309748 A JP 2006309748A JP 2006096157 A JP2006096157 A JP 2006096157A JP 2006096157 A JP2006096157 A JP 2006096157A JP 2006309748 A JP2006309748 A JP 2006309748A
Authority
JP
Japan
Prior art keywords
arrangement
constraint
rectangular
rectangular elements
symmetrical
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
JP2006096157A
Other languages
English (en)
Inventor
Kunihiro Fujiyoshi
邦洋 藤吉
Shinichi Koda
真一 甲田
Chikaaki Kodama
親亮 児玉
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.)
Tokyo University of Agriculture and Technology NUC
Tokyo University of Agriculture
Original Assignee
Tokyo University of Agriculture and Technology NUC
Tokyo University of Agriculture
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 Tokyo University of Agriculture and Technology NUC, Tokyo University of Agriculture filed Critical Tokyo University of Agriculture and Technology NUC
Priority to JP2006096157A priority Critical patent/JP2006309748A/ja
Publication of JP2006309748A publication Critical patent/JP2006309748A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】 平面上に複数の矩形要素を配置する際の対称配置制約及び相対位置関係に係る制約(sequence-pair制約)を共に満たす最適配置解を求める。
【解決手段】 データ/操作指示入力部301からの入力によって、矩形要素集合取得・保持部302が、複数の矩形要素のそれぞれの識別情報と、各矩形要素の高さ及び幅の値を取得、保持する。また、seq-pair制約条件取得・設定部303は、これらの複数の矩形要素の相対位置関係を示す制約条件を取得し、これらの制約条件を線形の制約式に変換する。また、対称配置制約条件取得・設定部304は、矩形要素の対称配置制約条件を取得し、この対称配置制約条件を線形の制約式に変換する。そして、線形計画法演算部305が、相対位置関係に基づく制約式、及び対称配置制約条件に基づく制約式を使用して、線形計画法による演算を行い、平面上に複数の矩形要素を最密に配置する際の各矩形要素の配置位置を決定する。
【選択図】 図3

Description

本発明は、平面上に複数の矩形要素(以下、モジュールと記載することもある)を最密に配置する際のレイアウト設計を行うための矩形要素配置方法及び矩形要素配置装置並びに矩形要素配置用プログラムに関し、特に、アナログICのレイアウト設計を行うための矩形要素配置方法及び矩形要素配置装置並びに矩形要素配置用プログラムに関する。なお、本明細書では、矩形とは、長方形及び正方形を含む直角四辺形を指す。
従来、ICチップ上に様々な回路を最密に配置するための配置位置を決定する方法として、例えば、特許文献1、2や非特許文献1に開示されているsequence−pair(シーケンスペア、以下seq−pairとも記載する)と呼ばれる概念を用いた方法が知られている。なお、seq−pairは、どんな矩形パッキングでも表現可能であるという特徴を有する。
seq−pairでは、n個の矩形要素の相対位置関係を、矩形要素名の順列Γ+及びΓ-の対により、(Γ+,Γ-)の形で表す。ここで、Γ+(i)はΓ+中で第i番目の矩形を指し、Γ+ -1(a)はΓ+中で矩形要素aが左から何番目かを指すものと定義すする。Γ-についても同様である。なお、当然、n個の矩形要素の配置について(n!)2通りの表現がある。
また、seq−pairでは、矩形要素対の相対位置関係を、以下に示す「上下左右制約」として表す。Γ+とΓ-で共にaがbの前にあるとき、すなわちΓ+ -1(a)<Γ+ -1(b)かつΓ- -1(a)<Γ- -1(b)であるとき、矩形aは矩形bの上に位置する。また、Γ+ではaがbの前にありΓ-ではaがbの後ろにあるとき、すなわちΓ+ -1(a)<Γ+ -1(b)かつΓ- -1(a)>Γ- -1(b)であるとき、矩形aは矩形bの上に位置する。例えば、seq−pair(blrcaldar;alcblrdar)は図8に図示されているような相対位置関係を表す。
一方、高性能アナログICにおけるレイアウト設計では、しばしば指定されたいくつかのモジュール対を線対称に配置配線する必要がある。その理由は、モジュールやそれと接続する配線のレイアウト、及びそれによって生ずる寄生素子(レイアウト設計時には予測が困難な相互作用によって発生する寄生キャパシタ、寄生インダクタ、寄生抵抗など)の整合を取ることで、オフセット電圧が高くなることや、電源電圧変動比(PSRR)の低下を避けるためである。また、熱に敏感なモジュール対においては熱の影響により生ずる不要な発振を避けるためにも、発熱の大きいモジュールに対して対称配置することで熱の影響のバランスを取るべきである。このように、指定されたモジュール対を線対称に配置しなければならないという制約を対称配置制約と呼ぶ。
対称配置制約は、複数のモジュール対からなる対称集合により表され、その中の各モジュール対を、共通の垂直な軸(y軸に平行な軸)又は水平な軸(x軸に平行な軸)に対して線対称になるように配置する制約である。また、対称集合には、1つのモジュールを対称軸に対して対称に配置する制約が課せられた自己対称モジュールが含まれる場合もある。これはたとえば、対称軸のx座標にその中心を合わせなければならないモジュールである。なお、対称集合は1つとは限らず、各々の対称集合ごとに1本の水平又は垂直な軸に対して対称に、その集合に含まれるモジュール対が配置される。
垂直な対称軸に対して、対称に配置するモジュール対の左のモジュールを左モジュール、右のモジュールを右モジュールと呼び、それぞれal、arのように添え字l(「エル」)、rを付けて表す。また、水平な対称軸に対して、対称に配置するモジュール対の上のモジュールを上モジュール、下のモジュールを下モジュールと呼び、それぞれau、abのように添え字u、bを付けて表す。また、対称軸に対して対称に配置する制約が課せられた自己対称モジュールに関しては、bsのように添え字sを付けて表す。また、対称集合は対称に配置するモジュール対を括弧でまとめ、{(al,ar),bs}のように表記する。そして、対称集合を列挙することで対称配置制約を表現する。
これまで、アナログIC設計では人手による設計が主流であったが、近年では、矩形配置表現とシミュレーテッドアニーリング(SA:Simulated Annealing)法とを組み合わせた自動配置手法に対し、対称配置制約を課して準最適な配置を得る手法(例えば特許文献3や非特許文献2を参照)が提案されている。
また、特許文献3や非特許文献2では、与えられた対称配置制約と、モジュール配置表現方法であるseq−pairが示唆する制約(seq−pair制約)とを共に満たす配置が存在することの必要十分条件は、各対称集合が式(1)を満たすことであると記載されている。
Γ+ -1(x)<Γ+ -1(y)
⇔Γ- -1(sym(y))<Γ- -1(sym(x)) ・・・(1)
なお、sym(x)は、あるモジュールxに対して対称に配置されるべきモジュールを表しており、対称軸が垂直線である場合には、上記の式(1)は、下記の式(2)のように表される。
Γ+ -1(xl)<Γ+ -1(yl
⇔Γ- -1(yr)<Γ- -1(xr) ・・・(2)
そして、特許文献3や非特許文献2では、この必要十分条件を満たすseq−pair(symmetric feasible sequence−pairと呼ばれている)をあらかじめ選択し、このsymmetric feasible sequence−pairのみを対象としてSA法を用いて探索を行うことにより、対称配置制約を満たす準最適なモジュール配置解を得る方法が提案されている。
また、さらに特許文献3及び非特許文献2の考え方に基づいて、seq−pairを高速にデコードするFAST−SP(FAST Sequence−Pair)を用いた手法、seq−pairよりも高速にデコード可能な矩形配置表現であるO−tree(Ordered−tree)を用いた手法(非特許文献3参照)、O−treeを2分木にしただけのB*−tree(Binary−tree)を用いた手法(非特許文献4、5、6参照)、平衡木の1つである赤黒木を用いた手法(非特許文献7、8参照)が提案されている。
一方、非特許文献9には、線形計画法を用いてseq−pair制約を解くことによって、seq−pair制約を満たす最適なモジュール配置解を得る手法が開示されている。
特開平9−108933号公報 特開平9−108934号公報 米国特許6550046号 H. Murata, K. Fujiyoshi, S. Nakatake and Y. Kajitani, "Rectangle−packing−based module placement", Proc. IEEE ICCAD, pp.472−479, 1995. F. Balasa and L. Lampaert, "Symmetry within the sequence−pair representation in the context of placement for analog design", IEEE Trans. CAD, vol.19, no.7, pp.721−731, 2000. Y. Pang, F. Balasa, K. Lampaert and C.−K. Cheng, "Block placement with symmetry constraints based on the O−tree non−slicing representation", Proc.DAC, pp.464−467, 2000. F. Balasa, S.C. Maruvada and K. Krishnamoorthy, "On the exploration of the solution space in analog placement with symmetry constraints", IEEE Trans. CAD, vol.23, no.2, pp.177−191, 2004. F. Balasa and S.C. Maruvada, "Using non−slicing topological representations for analog placement" IEICE Trans. Fundamentals, vol.E84−A, no.11, pp.2785−2792, 2001. F. Balasa, S.C. Maruvada and K. Krishnamoorthy, "Efficient solution space exploration based on segment trees in analog placement with symmetry constraints" Proc. ICCAD, pp.497−502, 2002. S.C. Maruvada, K. Krishnamoorthy, S. Annojvala and F. Balasa, "Placement with symmetry constraints for analog layout using red−black trees" Proc. ISCAS2003, pp.V−489−V−492, 2003. S.C. Maruvada, K. Krishnamoorthy, F. Balasa and L.M. Ionescu, "Red−black interval trees in device−level analog placement" IEICE Trans. Fundamentals, Vol.E86−A, no.12, pp.3127−3135, 2003. Jae−Gon Kim and Yeong−Dae Kim, "A linear programming−based algorithm for floorplanning in VLSI design", IEEE Trans.CAD, vol.22, no.5, pp584−592, 2003.
しかしながら、特許文献3や非特許文献2には、下記の4つの問題点(A)〜(D)が存在する。以下、問題点(A)〜(D)を順に説明する。
(A)symmetric feasible sequence−pairの妥当性
上述のように、特許文献3や非特許文献2に開示されている技術によれば、seq−pair制約及び対称配置制約の両方を満たす配置が存在するための必要十分条件は、式(1)や式(2)によって表される。
しかしながら、対称集合{(al,ar),(bl,br)}で表される対称配置制約を満たす最適なモジュール配置は図8に図示されている配置のみであり、この配置に対応するseq−pairはseq−pair(blrcaldar;alcblrdar)だけである。このseq−pairは、Γ+ -1(bl)<Γ+ -1(al)ではあるが、Γ- -1(ar)<Γ- -1(br)ではなく、式(1)や式(2)を満たしていない。したがって、式(1)や式(2)は、seq−pair制約及び対称配置制約の両方を満たす配置が存在するための十分条件ではあるかもしれないが、必要条件ではない。
特許文献3や非特許文献2に開示されている技術では、あらかじめ式(1)や式(2)に基づいてseq−pairの選択を行った後に、選択されたseq−pair(すなわち、symmetric feasible sequence−pair)に関してのみSA法による探索が行われるので、seq−pair制約及び対称配置制約の両方を満たす最密配置解が見落とされてしまう可能性があるという問題点がある。
(B)x座標決定アルゴリズム
また、特許文献3や非特許文献2に開示されている技術に係るx座標決定アルゴリズムは、対称軸が垂直軸(y軸に平行な軸)である対称集合が1つの場合にのみ対応している。このx座標決定アルゴリズムでは、モジュールの幅、対称配置制約、symmetric feasible sequence−pairが入力される。そして、最初にseq−pairに基づいて左詰めにx座標を求め、対称配置制約によって規定されている対称に配置すべきモジュール対に関して、左モジュールの左辺x座標と右モジュールの右辺x座標との中心のx座標(左モジュールの左辺x座標及び右モジュールの右辺x座標の両方から等距離となるx座標)、及び自己対称モジュールの中心のx座標のうちの最も大きいものを対称軸のx座標と決める。
その後、右モジュール及び自己対称モジュールをΓ+順に1つずつ、右に移動することによって上記の対称軸に対して線対称となる場合に移動し、また、このモジュールの移動に伴って、seq−pair制約により移動するモジュールよりも右にあると制約されているモジュールも、すべて同じ距離だけ移動させる。次に、左モジュールをΓ+の逆順に1つずつ、上記の対称軸に対して線対称となる位置まで移動し、seq−pair制約により移動するモジュールよりも左にあると制約されているモジュールも、すべて同じ距離だけ移動させる。
しかしながら、このx座標決定アルゴリズムに、例えば、すべて同じサイズの正方形モジュールの集合{as,bl,br,cl,cr}と対称配置制約{as,(bl,br),(cl,cr)}、そしてseq−pair(blslrr;bllrsr)を入力した場合には、まずseq−pairに基づいて左詰めにx座標が求められた後、clとcrとの中心のx座標が対称軸の座標として選択され、図9(A)に図示される配置となる。
そして、この対称軸に関して線対称となるように自己対称モジュールasが右に移動するが、このとき、seq−pairによってasよりも右にあると制約されているbrも同じ距離だけ右に移動されてしまい、その結果、図9(B)に図示される配置となってしまう。さらに、brとの対称性が満たされるようにblも左に移動するため、図9(D)に図示される最密な配置よりも幅の広がった図9(C)に図示される配置が導かれてしまう。このように、特許文献3や非特許文献2に開示されている技術に係るx座標決定アルゴリズムは、必ずしも対称配置制約及びseq−pair制約の下で最密な配置を導くことができるとは限らないという問題点がある。
(C)y座標決定アルゴリズム
また、特許文献3や非特許文献2に開示されている技術に係るy座標決定アルゴリズムも、上記のx座標決定アルゴリズムと同様に、対称軸が水平軸(x軸に平行な軸)である対称集合が1つの場合にのみ対応している。このy座標決定アルゴリズムでは、モジュールの高さ、対称配置制約、symmetric feasible sequence−pairが入力される。そして、seq−pairに基づいて、Γ+の逆順にモジュールのy座標を1つずつ決定していくが、対称に配置すべきモジュール対の一方(すなわち、左モジュール若しくは右モジュール)のy座標が決定された場合には、対となる他方のモジュールのy座標も同一の値とする。
このy座標決定アルゴリズムに、例えば、対称配置制約{(al,ar)}とseq−pair(albcar;balrc)とを入力すると、まずarのy座標が決定される。このとき、alのy座標もarのy座標と同じy座標となる。なお、図10(A)に示すように、seq−pair制約によってarの上にはcが存在する。その後、bのy座標を決定し、図10(B)に示すように、seq−pair制約に基づいてb上にalを配置してから、arのy座標をalのy座標と同じにする。しかしながら、arの上にはcが存在しており、その結果、図10(C)に示すように、cとarとが重なった配置が導かれることになる。このように、図10(D)に示されている配置が可能であるにもかかわらず、特許文献3や非特許文献2に開示されている技術に係るy座標決定アルゴリズムによれば、図10(C)に示されている配置が導かれることとなり、seq−pairの制約を満たさない配置を導いたり、モジュール同士が重なり合ってしまう配置を導いたりするという問題点がある。
(D)対称集合が複数存在する場合
対称集合が複数存在する場合については、特許文献3や非特許文献2では簡単に拡張できるとだけ記載されている。しかしながら、例えば対称配置制約{(al1,ar1)}及び{(bl2,br2)}をseq−pair(al1l2r2r1;bl2l1r1r2)に基づいて配置しようとすると、このseq−pairはそれぞれの対称集合についてsymmetric feasible sequence−pairであるが、al1の下にbl2が、ar1の上にbr2が制約され、seq−pair制約と対称配置制約とを同時に満たすことができない。特許文献3や非特許文献2では、このような配置不可能なseq−pairの存在については何も記載されていないという問題点がある。上記のような配置不可能な例に対しては、配置不可能であると出力されるべきである。なお、本明細書では、それぞれ異なる対称軸を有する複数の対称集合が存在する場合の対称配置制約を、上記の対称配置制約{(al1,ar1)}及び{(bl2,br2)}のように、対称集合の列挙によって表記する。
以上のように、特許文献3や非特許文献2に開示されている技術は、モジュールが重なってしまったり、全体の幅が広がって最密な配置を得ることができなかったり、表現できない配置が存在したりするなどの数多くの欠陥が存在している。したがって、特許文献3や非特許文献2に開示されている技術によって得られた配置をそのままLSI(Large Scale Integration)やVLSI(Very Large Scale Integration)のレイアウト設計に適用した場合には、チップ面積や配線長の増大を招くことになり、レイアウト設計上、望ましくない結果が得られてしまうことになる。
また、非特許文献3〜8に開示されている技術は、いずれも特許文献3や非特許文献2に開示されている技術に基づいて、効率的かつ迅速な処理を図るものであり、上述の問題点(A)〜(D)の解決は行われていない。
また、非特許文献9に開示されている技術では、対称配置制約に関しては全く考慮されておらず、仮に、特許文献3や非特許文献2に開示されている技術と組み合わせて対称配置制約を考慮した配置の導出を行った場合でも、例えば、特許文献3や非特許文献2に開示されている技術に係るsymmetric feasible sequence−pairがあらかじめ選択される時点で、最密配置解が見落とされてしまう可能性が発生してしまい、対称配置制約及びseq−pair制約を共に満たす最適配置解を見つけるために十分なアルゴリズムを実現することはできない。
上記の問題点に鑑み、本発明は、対称配置制約及び相対位置関係に係る制約を共に満たす最適配置解を求めることが可能な矩形要素配置方法及び矩形要素配置装置並びに矩形要素配置用プログラムを提供することを目的とする。
上記目的を達成するため、本発明によれば、たとえばアナログIC(Integrated Circuit:集積回路)のレイアウト設計において、矩形要素に関する所定の対称配置制約及び所定の相対位置関係に係る制約を同時に満たす最密な配置を、線形計画法を利用して得ることが可能となる。さらに、本発明によれば、矩形要素に関する所定の対称配置制約及び所定の相対位置関係に係る制約を同時に満たす解が存在しない場合には、その旨を通知することが可能となる。
すなわち、上記目的を達成するため、本発明の矩形要素配置方法によれば、
(1)「平面上における複数の矩形要素の配置が最密となるように、前記複数の矩形要素のそれぞれの配置位置を決定する矩形要素配置方法であって、
前記平面上に配置する前記複数の矩形要素の集合を取得する矩形要素集合取得ステップと、
前記複数の矩形要素のそれぞれに関して、左右方向及び上下方向の位置関係が記述された相対位置関係に係る制約条件を取得する相対位置関係制約条件取得ステップと、
前記複数の矩形要素のうち、対称軸を挟んで前記左右方向又は前記上下方向に対称となる前記矩形要素の組み合わせ、又は対称軸を挟んで自己対称となる前記矩形要素が記述された対称配置制約に係る制約条件を取得する対称配置制約条件取得ステップと、
前記矩形要素集合取得ステップで取得された前記複数の矩形要素の集合に対して、前記相対位置関係に係る制約条件及び前記対称配置制約に係る制約条件を課して、線形計画法による演算を行う線形計画法演算ステップと、
前記線形計画法演算ステップにおける前記演算によって得られた最適解を、前記平面上における前記複数の矩形要素の配置の最密配置解として出力する最密配置解出力ステップとを、
有する矩形要素配置方法。」が提供される。
この構成により、対称配置制約及び相対位置関係に係る制約を共に満たす最適配置解を求めることが可能となる。
本発明では、周知手法、たとえば従属変数の消去や式の消去により、前記線形計画法演算ステップにおける演算量を削減することは容易である。具体的には、本発明では、矩形要素の組み合わせ(すなわち、「seq−pair」)の全てについて、線形計画法による演算を行うことができる。
また、奥田等による、“対称性保持の制約を扱えるレイアウトコンパクションアルゴリズム”(電子情報通信学会論文誌(A),Vol.J70−A,No.3,pp.536−543,1990)に開示の手法を適用して、簡易化制約グラフを得ておき、対称性を持つseq−pairのみを、線形計画法の演算対象とすることができる。簡易化制約グラフは、その都度求めることもできるし、予めデータベース化しておくこともできる。これにより簡易化制約グラフおける節点についての経路長が他の節点を経由する経路長と同じ長さの経路となったときは、線形計画法における連立式のうちの1つまたは2つ以上を省略する演算を行うことができる。
線形計画法では、seq−pairから得られる不等式と対称配置制約から得られる等式とからなる連立式を解くことで、最密配置解を算出するので、対称性を持つseq−pairのみを線形計画法の演算対象とすることで、連立式の個数を削減できるケースが多くなる。すなわち、対称配置制約から得られる対応式を、前記対称軸を挟んで前記左右方向又は前記上下方向に対称となる前記矩形要素の組み合わせの一方の矩形に対応する変数、および前記自己対称となる前記矩形要素に対応する変数についてまとめることができる。まとめた式を、seq−pairから得られた不等式に代入することにより、線形計画法における連立式のうちのさらに1つまたは2つ以上を省略する演算を行うこともできる。さらに等式の数だけ、変数も省略することができる。
また、本発明の矩形要素配置方法によれば、上記の矩形要素配置方法に加えて、
(2)「前記線形計画法演算ステップにおける前記演算によって解が得られなかった場合には、前記相対位置関係に係る制約条件及び前記対称配置制約に係る制約条件の両方を満たす前記平面上における前記複数の矩形要素の配置が存在しない旨を出力する配置不可能通知ステップを有する矩形要素配置方法。」が提供される。
この構成により、対称配置制約及び相対位置関係に係る制約を共に満たす矩形要素の配置が不可能な旨を通知することが可能となる。
上記目的を達成するため、本発明の矩形要素配置装置によれば、
(3)「平面上における複数の矩形要素の配置が最密となるように、前記複数の矩形要素のそれぞれの配置位置を決定する矩形要素配置装置であって、
前記平面上に配置する前記複数の矩形要素の集合を取得する矩形要素集合取得手段と、
前記複数の矩形要素のそれぞれに関して、左右方向及び上下方向の位置関係が記述された相対位置関係に係る制約条件を取得する相対位置関係制約条件取得手段と、
前記複数の矩形要素のうち、対称軸を挟んで前記左右方向又は前記上下方向に対称となる前記矩形要素の組み合わせ、又は対称軸を挟んで自己対称となる前記矩形要素が記述された対称配置制約に係る制約条件を取得する対称配置制約条件取得手段と、
前記矩形要素集合取得手段で取得された前記複数の矩形要素の集合に対して、前記相対位置関係に係る制約条件及び前記対称配置制約に係る制約条件を課して、線形計画法による演算を行う線形計画法演算手段と、
前記線形計画法演算手段における前記演算によって得られた最適解を、前記平面上における前記複数の矩形要素の配置の最密配置解として出力する最密配置解出力手段とを、
有する矩形要素配置装置。」が提供される。
この構成により、対称配置制約及び相対位置関係に係る制約を共に満たす最適配置解を求めることが可能となる。
また、本発明の矩形要素配置装置によれば、上記の矩形要素配置装置に加えて、
(4)「前記線形計画法演算手段における前記演算によって解が得られなかった場合には、前記相対位置関係に係る制約条件及び前記対称配置制約に係る制約条件の両方を満たす前記平面上における前記複数の矩形要素の配置が存在しない旨を出力する配置不可能通知手段を有する矩形要素配置装置。」が提供される。
この構成により、対称配置制約及び相対位置関係に係る制約を共に満たす矩形要素の配置が不可能な旨を通知することが可能となる。
上記目的を達成するため、本発明の矩形要素配置用プログラムによれば、
(5)「平面上における複数の矩形要素の配置が最密となるように、前記複数の矩形要素のそれぞれの配置位置を決定する矩形要素配置方法をコンピュータによって実行させるための矩形要素配置用プログラムであって、
前記平面上に配置する前記複数の矩形要素の集合を取得する矩形要素集合取得ステップと、
前記複数の矩形要素のそれぞれに関して、左右方向及び上下方向の位置関係が記述された相対位置関係に係る制約条件を取得する相対位置関係制約条件取得ステップと、
前記複数の矩形要素のうち、対称軸を挟んで前記左右方向又は前記上下方向に対称となる前記矩形要素の組み合わせ、又は対称軸を挟んで自己対称となる前記矩形要素が記述された対称配置制約に係る制約条件を取得する対称配置制約条件取得ステップと、
前記矩形要素集合取得ステップで取得された前記複数の矩形要素の集合に対して、前記相対位置関係に係る制約条件及び前記対称配置制約に係る制約条件を課して、線形計画法による演算を行う線形計画法演算ステップと、
前記線形計画法演算ステップにおける前記演算によって得られた最適解を、前記平面上における前記複数の矩形要素の配置の最密配置解として出力する最密配置解出力ステップとを、
有する矩形要素配置方法をコンピュータによって実行させるための矩形要素配置用プログラム。」が提供される。
この構成により、対称配置制約及び相対位置関係に係る制約を共に満たす最適配置解を求めることが可能となる。
また、本発明の矩形要素配置用プログラムによれば、上記の矩形要素配置用プログラムに加えて、
(6)「前記線形計画法演算ステップにおける前記演算によって解が得られなかった場合には、前記相対位置関係に係る制約条件及び前記対称配置制約に係る制約条件の両方を満たす前記平面上における前記複数の矩形要素の配置が存在しない旨を出力する配置不可能通知ステップを有する矩形要素配置方法をコンピュータによって実行させるための矩形要素配置用プログラム。」が提供される。
この構成により、対称配置制約及び相対位置関係に係る制約を共に満たす矩形要素の配置が不可能な旨を通知することが可能となる。
本発明は、上記の構成を有しており、平面上に複数の矩形要素を配置する際の対称配置制約及び相対位置関係に係る制約を共に満たす最適配置解を求めることができるという効果を有している。
また、本発明は、対称配置制約及び相対位置関係に係る制約を共に満たす矩形要素の配置が不可能な場合には、その旨を通知することができるという効果を有している。
《第1実施形態》
以下、図面を参照しながら、本発明の第1実施形態について説明する。
まず、図1を参照しながら、本発明の適用が可能なLSIの製造工程について説明する。図1は、本発明の実施の形態に係るLSIの製造工程の一例を示すフローチャートである。なお、VLSIの製造工程も、図1に図示されているLSIの製造工程と同一である。
LSIは、設計から出荷までの製造工程において、CAD(Computer Aided Design)によるLSI設計工程(ステップS10)、半導体素子の加工を実際に行うLSIプロセス(ステップS20)、加工後のLSIの実装及びテストを行うLSI実装・テスト工程(ステップS30)の3つの工程を経て製造される。
LSI設計工程(S10)は、製造するLSI全体の機能や性能などの構成を決定する機能設計(ステップS11)、機能設計で決められた機能を電気的な流れで具体的に表現した基本論理回路の組み合わせを決定するとともに、基本論理回路を構成する最適な半導体(セル)の構成を決定する論理回路設計(ステップS12)、論理回路設計によって得られたセルの組み合わせをチップ上に効率的にレイアウト(配置)するとともに、回路間の接続を決定するレイアウト設計(ステップS13)を有している。なお、このLSI設計工程は、現在、CADなどのコンピュータを利用した省力化及び迅速化が進んでいる。
また、ステップS13のレイアウト設計では、通常、各セルの配置処理、概略配線処理、詳細配線処理の各手順が行われる。本発明は、このレイアウト設計の各セルの配置処理に適用され、チップ内のセルの配置の最適化を実現するために、各セルを表す複数のモジュールの配置が最密となる最密配置解の計算が行われる。
また、LSIプロセス(S20)は、レイアウト設計により生成されたレイアウトに基づくマスクパターン生成(ステップS21)、生成されたマスクパターンに基づくウェハ加工を行うウェハプロセス(ステップS22)を有している。
また、LSI実装・テスト工程(S30)は、ウェハに作り込まれたLSIの検査を行うウェハプロービング(ステップS31)、各LSIチップのダイシング、ボンディング、モールディング処理を行う実装組み立て(ステップS32)、最終的に生成されたLSIの信頼性のテスト(ステップS33)を有しており、以上の処理を経て生成されたLSIが商品として出荷される。
上述のように、本発明にかかる矩形要素配置は、特に、LSIの製造工程において、コンピュータにより行われる。次に、図2を参照しながら、本発明を実現することが可能なコンピュータの構成の一例について説明する。図2は、本発明の実施の形態において使用されるハードウェア構成の一例を示す図である。
図2には、演算処理や制御処理などを行うCPU(Central Processing Unit:中央演算制御装置)201、データを一時的に記憶するためのRAM(Random Access Memory)などのメモリ202、CRT(Cathode Ray Tube:陰極線管)ディスプレイや液晶ディスプレイなどの情報を視覚的に表示するためのディスプレイ203、キーボードやマウスなどの操作やユーザ指示情報などの入力を行う操作入力部204、様々なデジタルデータを格納するためのハードディスク205、CD−ROM(Compact Disk Read Only Memory)内に記憶されているデータの読み取りを行うためのCD−ROMドライブ206、ネットワークを介して、サーバやその他のネットワークに接続する通信装置との通信を行うためのネットワークカードドライブ207が、バス208によって接続されている状態が図示されている。
また、ハードディスク205には、ソフトウェア及びハードウェアの管理を行い、アプリケーションによる利用を可能とするための基本ソフトウェアであるOS(Operating System:オペレーティングシステム)2051、本発明に係る動作アルゴリズムが記述されている矩形要素配置用プログラム2052などが格納されている。なお、これらのオペレーティングシステム2051及び矩形要素配置用プログラム2052は、CPU201によって実行される。
CPU201、メモリ202、ディスプレイ203、操作入力部204、ハードディスク205、CD−ROMドライブ206、ネットワークカードドライブ207が、バス208によって接続されている上述のハードウェア構成は、例えば、汎用のPC(Personal Computer)などによって実現可能であり、また、本発明に係る処理に特化した装置が実現されてもよい。
また、例えば、ハードディスク205にLSI設計工程を実行するためのCAD用プログラムが格納されており、上述のハードウェア構成によってCAD装置が実現されてもよく、さらに、本発明に係る矩形要素配置用プログラム2052が、CAD用プログラムの一部を構成しており、矩形要素配置用プログラム2052によって、LSI設計工程における複数のモジュールの最密配置解の導出が行われるようにしてもよい。
また、CD−ROMドライブ206とCD−ROMとの組み合わせ以外にも、DVD(Digital Versatile Disk)読み取り用ドライブとDVDとの組み合わせを始めとして、様々な記憶媒体読み取り装置及び記憶媒体を使用することが可能である。また、ネットワークカードドライブ207を用いて、ネットワークに接続されている所定の通信装置内に格納されている制御プログラムやデータを取得することも可能である。
また、図3は、本発明の実施の形態における矩形要素配置装置の一例を示す機能ブロック図である。図3には、例えば、図2に示すハードウェア構成によって実現される本発明に係る矩形要素配置装置の機能が模式的に図示されている。なお、図3に図示されている矩形要素配置装置の機能は、例えば、矩形要素配置用プログラム2052がCPU201によって実行されることによって実現される。
図3に図示されている矩形要素配置装置は、データ/操作指示入力部301、矩形要素集合取得・保持部302、seq−pair制約条件取得・設定部303、対称配置制約条件取得・設定部304、線形計画法演算部305、演算結果判断部306、最密配置解出力部307、配置不可能通知部308、データ出力部309を有している。なお、矩形要素配置装置は、矩形要素配置装置全体の動作を制御するための制御部も有しているが、ここでは図示省略する。
データ/操作指示入力部301は、平面上に配置すべき複数の矩形要素(モジュール)に係るデータ、複数のモジュールに関するseq−pair制約条件に係るデータ、複数のモジュールに関する対称配置制約条件に係るデータなどのモジュールの配置位置を決定するために必要な各種データや、ユーザによる演算開始指示などを受ける機能を有している。なお、このデータ/操作指示入力部301によって実現される機能は、外部から情報を受ける機能であり、例えば、図2に図示されている操作入力部204、CD−ROMドライブ206、ネットワークカードドライブ207などによって実現可能である。
また、矩形要素集合取得・保持部302は、データ/操作指示入力部301から入力された平面上に配置すべき複数のモジュールに係るデータを取得して保持する機能を有している。矩形要素集合取得・保持部302によって保持されるデータは、例えば、複数のモジュールのそれぞれを識別するための識別情報と、各モジュールの矩形の高さ及び幅を示す値とのセット(モジュールの識別情報,高さ,幅)である。
また、seq−pair制約条件取得・設定部303は、データ/操作指示入力部301から入力された複数のモジュールに関するseq−pair制約条件に係るデータを取得し、これらのデータを後述の線形計画法演算部305で処理可能な制約式によって表すための機能を有している。
例えば、seq−pair制約条件取得・設定部303は、「bはaの右」(すなわち、Γ+ -1(a)<Γ+ -1(b)かつΓ- -1(a)<Γ- -1(b))というseq−pair制約を受けた場合に、矩形要素集合取得・保持部302からモジュールaの幅width(a)を取得して、このseq−pair制約を下記の式(3)の制約式に変換する。
x(a)+width(a)≦x(b) ・・・(3)
なお、x(a)はモジュールaの左辺x座標、x(b)はモジュールbの左辺x座標を表している。
また、seq−pair制約条件取得・設定部303は、「bはaの右」であり、「cはbの右」であるというseq−pair制約から得られる「cはaの右」であるという推移的な制約については、制約式への変換を省略することが可能であり、この結果、冗長な制約式を低減することが可能である。また、上述では、x方向に関するseq−pair制約を制約式に変換する一例について説明したが、y方向に関しても同様に、制約式に変換することが可能である。
また、seq−pair制約条件取得・設定部303は、後述の線形計画法演算部305における線形計画法の演算の際の目的関数を得るために、seq−pair制約条件を示すΓ+及びΓ-に対して、例えば幅がゼロである仮想モジュールを加える。
また、対称配置制約条件取得・設定部304は、データ/操作指示入力部301から入力された複数のモジュールに関する対称配置制約条件に係るデータを取得し、これらのデータを後述の線形計画法演算部305で処理可能な制約式によって表すための機能を有している。
例えば、対称配置制約条件取得・設定部304は、「alとarは垂直な対称軸に対称な対をなしている」(すなわち、{(al,ar)})という対称配置制約を受けた場合に、矩形要素集合取得・保持部302からモジュールalの幅width(al)を取得して、この対称配置制約を下記の式(4)及び式(5)の制約式に変換する。
axisx−{x(al)+width(al)}
=x(ar)−axisx ・・・(4)

y(al)=y(ar) ・・・(5)
なお、x(al)はモジュールalの左辺x座標、x(ar)はモジュールarの左辺x座標、axisxはalとarの対称軸のx座標を表しており、y(al)はモジュールalの下辺y座標、x(ar)はモジュールarの下辺y座標を表している。
また、例えば、対称配置制約条件取得・設定部304は、「asは自己対称である」という対称配置制約を受けた場合に、矩形要素集合取得・保持部302からモジュールasの幅width(as)を取得して、この対称配置制約を下記の式(6)の制約式に変換する。
2x(as)+width(as)=2axisx ・・・(6)
なお、x(as)はモジュールasの左辺x座標、axisxはasの自己対称軸のx座標を表している。
また、上述では、x方向に関する対称配置制約を制約式に変換する一例について説明したが、y方向に関しても同様に、制約式に変換することが可能である。
また、線形計画法演算部305は、seq−pair制約条件取得・設定部303においてseq−pair制約から得られた制約式や、対称配置制約条件取得・設定部304において対称配置制約から得られた制約式を受け、これらの制約式に対して所定の目的関数(例えば、上述のx(sink_x))を最小とする解を線形計画法によって演算する機能を有している。
なお、この線形計画法による演算の結果、各モジュールの左辺x座標及び対称軸のx座標や、各モジュールの下辺y座標及び対称軸のy座標によって表されるモジュールの最密配置解が得られる場合がある一方、これらの解の一部又は全部の解が得られず、モジュールの配置が不可能であるという結果が得られる場合もある。
また、演算結果判断部306は、上述のように、線形計画法による演算でモジュールの最密配置解が得られたか、あるいはモジュールの配置が不可能であるという結果が得られたかを判断する機能を有している。演算結果判断部306は、線形計画法による演算でモジュールの最密配置解が得られた場合には、線形計画法による演算結果を最密配置解出力部307に渡し、モジュールの配置が不可能であるという結果が得られた場合には、その旨を配置不可能通知部308に通知する。
また、最密配置解出力部307は、モジュールの最密配置解を演算結果判断部306から受けて、その最密配置解をデータ出力部309から出力するためのデータに加工する機能を有している。なお、最密配置解は、各モジュールが配置されるべきx座標及びy座標をそのまま出力してもよく、さらに、最密配置解を反映して各モジュールを所定の座標上に配置した視覚的なモジュール表示データとして出力してもよい。
また、配置不可能通知部308は、モジュールの配置が不可能であるという結果を演算結果判断部306から受けた場合に、例えば、「このseq−pair制約及び対称配置制約を同時に満たす配置は存在しません」などの報知を行うためのデータを出力する機能を有している。
また、データ出力部309は、最密配置解出力部307又は配置不可能通知部308から受けたデータを外部に出力する機能を有している。なお、このデータ出力部309によって実現される機能は、外部に対して情報を出力する機能であり、例えば、図2に図示されているディスプレイ203やネットワークカードドライブ207などによって実現可能である。
次に、図4を参照しながら、本発明の実施の形態における矩形要素配置に係る動作の一例について説明する。図4は、本発明の実施の形態における矩形要素配置に係る動作の一例を示すフローチャートである。なお、ここでは、図3に図示されている矩形要素配置装置によって矩形要素配置に係る動作が実行されている場合について説明する。
まず、矩形要素配置装置には配置を行うモジュールの集合(各モジュールを識別するための識別情報と、各モジュールの高さ及び幅を示す値)が入力され、その結果、矩形要素集合取得・保持部302に、配置を行うモジュールの集合が準備される(ステップS401)。なお、このとき、各モジュールに対して、配置位置を示す座標変数(例えば、各モジュールの左辺x座標及び下辺y座標)が設定される。
続いて、矩形要素配置装置にはseq−pair制約が入力され、その結果、seq−pair制約条件取得・設定部303に、seq−pair制約条件に係る制約式が設定される(ステップS402)。なお、このとき、例えば、x方向の座標を決定するときには、seq−pair制約条件を示すΓ+及びΓ-の末尾に仮想モジュールsink_xを挿入し、y方向の座標を決定するときには、Γ+の先頭及びΓ-の末尾にsin_yを挿入する。
さらに、矩形要素配置装置には対称配置制約が入力され、その結果、対称配置制約条件取得・設定部304に、対称配置制約条件に係る制約式が設定される(ステップS403)。なお、本発明の実施の形態では、ステップS402においてseq−pair制約条件に係る制約式を設定した後に、ステップS403において対称配置制約条件に係る制約式を設定しているが、先に対称配置制約条件に係る制約式を設定した後に、seq−pair制約条件に係る制約式を設定してもよい。
そして、上記のseq−pair制約条件に係る制約式、及び対称配置制約条件に係る制約式に基づいて、線形計画法演算部305が、所定の目的関数を最適化するモジュールの最密配置解の導出を行う(ステップS404)。線形計画法演算部305は、例えば最も右に位置するsink_xを左詰めすることによってモジュールの最密化が行われることを考慮して、sink_xのx座標であるx(sink_x)の最小化を目的とした線形計画法による演算を行い、その結果、最密な配置を実現するための各モジュールの左辺x座標を求める。なお、このようにして導出された最密配置解において、仮想モジュールsink_xは、x方向に最密化されたモジュール全体の幅を示している。
また、上述のようにx方向に関して最密な配置を実現する左辺x座標を求めた後、y方向に関しても同様の処理を行って、各モジュールの下辺y座標を求める。y方向に関しては、線形計画法演算部305は、例えば最も上に位置するsink_yを下詰めすることによってモジュールの最密化が行われることを考慮して、sink_yのy座標であるy(sink_y)の最小化を目的とした線形計画法による演算を行う。このとき、線形計画法による演算によって導出された最密配置解において、仮想モジュールsink_yは、y方向に最密化されたモジュール全体の高さを示している。なお、上述の動作では、x方向に関する最密配置解を求めた後に、y方向に関する最密配置解を求めているが、y方向に関する最密配置解を先に求めた後に、x方向に関する最密配置解を求めてもよい。
ステップS404における最密配置解の結果は、演算結果判断部306に供給され、最密配置解が得られたか、あるいは解が存在しなかったかの判断が行われる(ステップS405)。そして、最密配置解が得られた場合には、最密配置解出力部307において最密配置解は出力データに加工され、データ出力部309を通じて外部に出力される(ステップS406)。一方、解が存在せず、モジュールの配置が不可能であるという結果が得られた場合には、配置不可能通知部308において、入力されたseq−pair制約及び対称配置制約を同時に満たす配置が存在しない旨を報知するためのデータが、データ出力部309を通じて外部に出力される(ステップS407)。
また、以下に、上述の本発明の実施の形態における矩形要素配置に係る動作の具体例について説明する。なお、この具体例では、後述の図5に図示されているように、7つのモジュールに関して2つの対称軸(第1対称軸及び第2対称軸)を有する最密配置解が最終的に得られる。
ここでは、まず、矩形要素配置装置に、高さ及び幅が共に2である正方形モジュール(2×2の正方形モジュール)だけからなる集合{al,ar,bs,c,db,du,es}、対称配置制約{(al,ar),bs}及び{(du,db),es}、seq−pair制約(bslrcdubs;alrscdbus)が入力される。
x方向に関して、seq−pair制約から得られる線形の制約式は下記の通りである。
x(es)+2−x(sink_x)≦0
x(db)+2−x(es)≦0
x(du)+2−x(es)≦0
x(c)+2−x(du)≦0
x(c)+2−x(db)≦0
x(ar)+2−x(c)≦0
x(al)+2−x(ar)≦0
x(bs)+2−x(c)≦0
一方、対称配置制約{(al,ar),bs}の対称軸(第1対称軸)をaxis1とすると、axis1は垂直線なので、下記の式が得られる。
2axis1−x(bs)−2=0
2axis1−x(al)−2−x(ar)=0
また、対称配置制約{(du,db),es}の対称軸(第2対称軸)をaxis2とすると、axis2は水平線なので、下記の式が得られる。
y(du)−y(db)=0
そして、上記の制約式に対して、sink_xのx座標を最小とし、これらの制約式を線形計画法で解き、各モジュールの左辺x座標、及び第1対称軸のx座標を求める。また、y座標についても同様に、各モジュールの下辺y座標、及び第2対称軸のy座標を求める。
この結果、図5に図示されているような7つのモジュールに係る最密な配置が得られる。図5は、本発明の実施の形態における矩形要素配置に係る動作の具体例で得られる最密配置解の配置を示す図である。
図5に図示されている配置では、各モジュールの左辺x座標及び下辺y座標は、bs(1,2)、al(0,0)、ar(2,0)、c(4,0)、du(6,2)、db(6,0)、es(8,1)であり、対称軸の座標は、axis1のx座標が2、axis2のy座標が2である。なお、仮想モジュールsink_xの値は10となり(すなわち、モジュール全体の幅は10)、sink_yの値は4となる(すなわち、モジュール全体の高さは4)。
次に、本発明の実施の形態における矩形要素配置装置に配置不可能な条件が入力された場合について説明する。本発明の実施の形態における矩形要素配置装置は、配置不可能な条件が入力された場合には、その条件から最密配置解の導出を行うことが不可能である旨を正しく判断することが可能である。すなわち、本発明の実施の形態における矩形要素配置装置に、例えば、特許文献3や非特許文献2に記載されているsymmetric feasible sequence−pairの条件を満たす対称配置制約{al1,ar1}及び{bl2,br2}と、seq−pair制約(al1l2r2r1;bl2l1r1r2)とを入力した場合には、x方向に関しては座標(解)を得ることができるが、y方向に関しては解が得られない。その結果、矩形要素配置装置からは、「このseq−pair制約及び対称配置制約を同時に満たす配置は存在しません」などの報知が行われ、ユーザは、入力されたseq−pair制約及び対称配置制約を同時に満たす配置がない旨を明確に確認することが可能となる。
なお、上述の実施の形態では、矩形配置表現方法としてsequence−pairを利用する場合について説明したが、sequence−pair以外の任意の矩形配置表現方法に関しても、本発明は適用可能である。
なお、上述の実施の形態では、本発明をアナログICのレイアウト設計に適用した場合に関して説明を行ったが、本発明は、この適用に限定されるものではない。すなわち、例えば、タイルやパッチワークキルトなどの配置位置を決定するためのデザインに係る技術分野などにも、本発明は適用可能である。
また、本発明は、その目的と利点を損なうことのない適宜の変形を含み、さらに、上述の実施の形態に示した数値による限定は受けない。
《第2実施形態》
たとえば、より最密なパッキングを行うために、線形計画法における変数の数や連立式の数を削減することは容易である。
以下、図面を参照しながら、変数の数や連立式の数を削減する本発明の第2実施形態について説明する。
具体的には、x方向について考えると、シーケンスペアの制約に基づき、「aはbの左」という制約から、モジュールaの左辺x座標をx(a),幅をw(a)とすると、
x(a)+w(a)≦x(b)
を得る。なお、「aはbの左」かつ「bはcの左」と制約されているとき、シーケンスペアの定義から、必ず「aはcの左」という制約が得られるが、後者から得られる制約式である、x(a)+w(a)≦x(c)は、前の2つから得られる制約式、x(a)+w(a)≦x(b)と、x(b)+w(b)≦x(c)とから求められることから不要であり、したがって、高速化のために省略することができる。
対称配置制約を制約式に変換する場合、モジュールalとモジュールarが垂直軸に対して対称なモジュール対であるなら、x方向についての制約式は、対称軸のx座標をAxisxとすると、
Axisx−(x(al)+w(al))
=x(ar)−Axisx
となる。
y方向については、
y(al)=y(ar
となる。
自己対称モジュールasについては、x方向についての制約式は、
Axisx−(x(as)+w(as))=x(as)−Axisx
となる。この場合、y方向については、制約式は得られない。
以上の手順で得られた制約式を線形計画法によって解くことで、チップ等の最小の縦幅と横幅を求めることができる。
具体的には、対称なモジュールのソースとシンクに対応する節点間の全ての最長パスを求めて記録しておき、その1つずつについて、他の節点を経由して同じ長さ以下の経路となったなら不要であると判定する。この場合には、予め多数の制約グラフを仮想作成することができる。この方法により、結果取得がO(s3)時間で可能となる。なお、簡易制約グラフをデータベース化しておき、これから最長パスを求めるようにしてもよい。
更に、対称モジュールに対応する節点とソース点とシンク点には、制約枝が不要な対が多いことを利用し、得られる制約式の数をeとしてO(se)時間で必要か不要かを判定することができる。
最長パスを求め、必要であれば制約式を出力するためのアルゴリズム(計算複雑度がO(snloglogn+se))を以下に示す。
例えば、シーケンスペア(alscar;alcbsr)と、対称軸が垂直線である対称配置制約{(al,ar),bs}、モジュールの幅としてw(al)=1、w(ar)=1、w(bs)=1、w(c)=3が与えられたとする(図6参照)。
x方向について、下記の制約式集合〔I〕、
0≦x(al
x(al)+1≦x(bs
x(al)+1≦x(c)
x(bs)+1≦x(ar
x(c)+3≦x(ar
x(ar)+1≦x(sink)
Axisx−x(al)=(x(ar)+1)−Axisx
Axisx−x(bs)=(x(bs)+1)−Axisx
と、変数6個、制約式8個の制約式の集合が得られる。
これに対して、上に示したアルゴリズムでは、下記の制約式集合〔II〕、
0≦x(al
x(al)+1≦x(bs
x(al)+4≦x(ar
x(bs)+1≦x(ar
x(ar)+1≦x(sink)
Axisx−x(al)=(x(ar)+1)−Axisx ・・・(7)
Axisx−x(bs)=(x(bs)+1)−Axisx ・・・(8)
のように、変数5個、制約式7個の制約式の集合を得ることができ、変数1個、制約式1個を減少させることができる。
この制約式集合をx方向、y方向について求め、線形計画法でそれらを解くことで、全体の幅と高さを求め、配置面積を求めることができる。従属変数の代入による消去は、以下のようにして行われる。
対称配置制約から得られる制約式は等式で表され、対称軸と対称対との距離が等しいことを表す。
ここで、等式で表される制約式を右モジュール、もしくは自己対称モジュールに対応する変数でまとめ、他の制約式に代入することで、変数の数、および制約式の数を減らすことができる。
例えば、対称配置制約から得られる制約式(7),(8)を右モジュールおよび、自己対称モジュールに対応する変数についてまとめた、
x(ar)=2*Axisx−(x(al)+1)
x(bs)=Axisx−0.5
を制約式集合〔II〕に代入すると、
0≦x(al
x(al)−Axisx≦−1.5 ・・・(9)
x(al)−Axisx≦−2.5 ・・・(10)
x(al)−Axisx≦−1.5 ・・・(11)
2×Axisx−(x(al)+1)≦x(sink)・・・(12)
となり、変数変数2個、制約式2個がさらに減少する。
また、上の制約式集合の中で(10)があれば、(9),(10)は冗長であり、不要である。
この様な冗長な制約式を除去することで、更に制約式の数を減らすことができる。
上の例は、冗長な制約式を除去することで最終的に、
0≦x(al
x(al)−Axisx≦−2.5
2×Axisx−(x(al)+1)+1≦x(sink)
となり、変数3個、制約式3個の制約式集合が得られ、制約式2個がさらに減少した。
《SA法による配置実験》
提案手法がどれほど高速化したかを確認するために、seq−pairにおいてランダムに選んだ二つのモジュールをΓ+とΓ-の両方、またはいずれか片方で交換したものを隣接解として、提案手法をSA法に組み込み計算機に実装した。
(手法1)第1実施形態における手法
(手法2)第2実施形態において簡易化制約グラフを使った手法
(手法3)第2実施形態においてさらに連立式や変数を削減した手法
線形計画法を解く手法としては単体法(simplex法)を用いた。入力として、適当に作成した、対称軸が垂直線のみで、モジュール数、対称制約数の異なる5種類のモジュール集合を、初期温度と終了温度と探索回数を揃えて、解を得るまでの所要時間を比較した実験結果を表2に示す。
表2から、代入によって変数と制約式を減少させる手法では、処理時間が2倍から4.5倍ほど速くなっていることがわかる。
また、入力BおよびCは核問題を考慮しただけでは,さほど速くなっていないが、これは、対称モジュールの数が多い程、線形計画法で解く変数の数が増えてしまい、遅くなるからである。
提案手法が非常に高速化しているのは、y座標をグラフを用いて得ると共に、y方向制約グラフからその解がインフィージブルと判断した場合に、線形計画法を使うことなく、次の隣接解を生成し線形計画法を用いる回数が減少しているためである。
また、与えられた対称配置制約とモジュールのサイズから準最適な配置を探索するために上記の手法3のプログラムで配置実験を行った。
準最適従来手法に示されている図から抽出した、垂直軸についての3つの対称集合(対称対4,対称対6,対称対2自己対称1)を含んだ65個のモジュール集合を入力とし、内部クロック3.2GHzのマイクロプロセッサの計算機を用いて653.6秒で得られた。
パッキング率(配置面積/各モジュール面積の合計)が108.8%の配置を図6に示す。
この入力データは準最適従来手法と同様のものである。
なお、準最適従来手法では、パッキング率103%の配置をおよそ7分で求めており、この実験から、提案手法が非常に高速に、密に詰まった配置を得ることが可能であると分かった。
提案手法をSA法に組み込んでの配置実験結果(計算時間653.6秒,パッキング率108.8%)を図7に示す。
本発明は、平面上に複数の矩形要素を配置する際の対称配置制約及び相対位置関係に係る制約を共に満たす最適配置解を求めることができるという効果を有しており、平面上に複数の矩形要素を最密に配置する際のレイアウト設計に関する技術分野に適用可能であり、特に、アナログICのレイアウト設計に関する技術分野に適用可能である。
本発明の第1実施形態に係るLSIの製造工程の一例を示すフローチャートである。 本発明の第1実施形態において使用されるハードウェア構成の一例を示す図である。 本発明の第1実施形態における矩形要素配置装置の一例を示す機能ブロック図である。 本発明の第1実施形態における矩形要素配置に係る動作の一例を示すフローチャートである。 本発明の第1実施形態における矩形要素配置に係る動作の具体例で得られる最密配置解の配置を示す図である。 本発明の第2実施の形態における矩形要素配置に係る動作の具体例で得られる最密配置解の配置を示す図である。 本発明の実施形態における配置実験結果を示すレイアウト設計図である。 従来の技術のsymmetric feasible sequence−pairに関する問題点を説明するための図である。 (A)〜(D)は従来の技術のx座標決定アルゴリズムに関する問題点を説明するための図である。 (A)〜(D)は従来の技術のy座標決定アルゴリズムに関する問題点を説明するための図である。
符号の説明
201 CPU
202 メモリ
203 ディスプレイ
204 操作入力部
205 ハードディスク
206 CD−ROMドライブ
207 ネットワークカードドライブ
208 バス
301 データ/操作指示入力部
302 矩形要素集合取得・保持部
303 seq−pair制約条件取得・設定部
304 対称配置制約条件取得・設定部
305 線形計画法演算部
306 演算結果判断部
307 最密配置解出力部
308 配置不可能通知部
309 データ出力部
2051 OS(オペレーティングシステム)
2052 矩形要素配置用プログラム

Claims (6)

  1. 平面上における複数の矩形要素の配置が最密となるように、前記複数の矩形要素のそれぞれの配置位置を決定する矩形要素配置方法であって、
    前記平面上に配置する前記複数の矩形要素の集合を取得する矩形要素集合取得ステップと、
    前記複数の矩形要素のそれぞれに関して、左右方向及び上下方向の位置関係が記述された相対位置関係に係る制約条件を取得する相対位置関係制約条件取得ステップと、
    前記複数の矩形要素のうち、対称軸を挟んで前記左右方向又は前記上下方向に対称となる前記矩形要素の組み合わせ、又は対称軸を挟んで自己対称となる前記矩形要素が記述された対称配置制約に係る制約条件を取得する対称配置制約条件取得ステップと、
    前記矩形要素集合取得ステップで取得された前記複数の矩形要素の集合に対して、前記相対位置関係に係る制約条件及び前記対称配置制約に係る制約条件を課して、線形計画法による演算を行う線形計画法演算ステップと、
    前記線形計画法演算ステップにおける前記演算によって得られた最適解を、前記平面上における前記複数の矩形要素の配置の最密配置解として出力する最密配置解出力ステップとを、
    有する矩形要素配置方法。
  2. 前記線形計画法演算ステップにおける前記演算によって解が得られなかった場合には、前記相対位置関係に係る制約条件及び前記対称配置制約に係る制約条件の両方を満たす前記平面上における前記複数の矩形要素の配置が存在しない旨を出力する配置不可能通知ステップを有する請求項1に記載の矩形要素配置方法。
  3. 平面上における複数の矩形要素の配置が最密となるように、前記複数の矩形要素のそれぞれの配置位置を決定する矩形要素配置装置であって、
    前記平面上に配置する前記複数の矩形要素の集合を取得する矩形要素集合取得手段と、
    前記複数の矩形要素のそれぞれに関して、左右方向及び上下方向の位置関係が記述された相対位置関係に係る制約条件を取得する相対位置関係制約条件取得手段と、
    前記複数の矩形要素のうち、対称軸を挟んで前記左右方向又は前記上下方向に対称となる前記矩形要素の組み合わせ、又は対称軸を挟んで自己対称となる前記矩形要素が記述された対称配置制約に係る制約条件を取得する対称配置制約条件取得手段と、
    前記矩形要素集合取得手段で取得された前記複数の矩形要素の集合に対して、前記相対位置関係に係る制約条件及び前記対称配置制約に係る制約条件を課して、線形計画法による演算を行う線形計画法演算手段と、
    前記線形計画法演算手段における前記演算によって得られた最適解を、前記平面上における前記複数の矩形要素の配置の最密配置解として出力する最密配置解出力手段とを、
    有する矩形要素配置装置。
  4. 前記線形計画法演算手段における前記演算によって解が得られなかった場合には、前記相対位置関係に係る制約条件及び前記対称配置制約に係る制約条件の両方を満たす前記平面上における前記複数の矩形要素の配置が存在しない旨を出力する配置不可能通知手段を有する請求項3に記載の矩形要素配置装置。
  5. 平面上における複数の矩形要素の配置が最密となるように、前記複数の矩形要素のそれぞれの配置位置を決定する矩形要素配置方法をコンピュータによって実行させるための矩形要素配置用プログラムであって、
    前記平面上に配置する前記複数の矩形要素の集合を取得する矩形要素集合取得ステップと、
    前記複数の矩形要素のそれぞれに関して、左右方向及び上下方向の位置関係が記述された相対位置関係に係る制約条件を取得する相対位置関係制約条件取得ステップと、
    前記複数の矩形要素のうち、対称軸を挟んで前記左右方向又は前記上下方向に対称となる前記矩形要素の組み合わせ、又は対称軸を挟んで自己対称となる前記矩形要素が記述された対称配置制約に係る制約条件を取得する対称配置制約条件取得ステップと、
    前記矩形要素集合取得ステップで取得された前記複数の矩形要素の集合に対して、前記相対位置関係に係る制約条件及び前記対称配置制約に係る制約条件を課して、線形計画法による演算を行う線形計画法演算ステップと、
    前記線形計画法演算ステップにおける前記演算によって得られた最適解を、前記平面上における前記複数の矩形要素の配置の最密配置解として出力する最密配置解出力ステップとを、
    有する矩形要素配置方法をコンピュータによって実行させるための矩形要素配置用プログラム。
  6. 前記線形計画法演算ステップにおける前記演算によって解が得られなかった場合には、前記相対位置関係に係る制約条件及び前記対称配置制約に係る制約条件の両方を満たす前記平面上における前記複数の矩形要素の配置が存在しない旨を出力する配置不可能通知ステップを有する矩形要素配置方法をコンピュータによって実行させるための請求項5に記載の矩形要素配置用プログラム。

JP2006096157A 2005-03-30 2006-03-30 矩形要素配置方法及び矩形要素配置装置並びに矩形要素配置用プログラム Pending JP2006309748A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006096157A JP2006309748A (ja) 2005-03-30 2006-03-30 矩形要素配置方法及び矩形要素配置装置並びに矩形要素配置用プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005099830 2005-03-30
JP2006096157A JP2006309748A (ja) 2005-03-30 2006-03-30 矩形要素配置方法及び矩形要素配置装置並びに矩形要素配置用プログラム

Publications (1)

Publication Number Publication Date
JP2006309748A true JP2006309748A (ja) 2006-11-09

Family

ID=37476509

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006096157A Pending JP2006309748A (ja) 2005-03-30 2006-03-30 矩形要素配置方法及び矩形要素配置装置並びに矩形要素配置用プログラム

Country Status (1)

Country Link
JP (1) JP2006309748A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008140011A (ja) * 2006-11-30 2008-06-19 Shigehisa Nakatake 集積回路設計装置及び集積回路設計用プログラム
JP2010531505A (ja) * 2007-06-28 2010-09-24 サガンテック イスラエル リミテッド 設計規則及びユーザ制約に基づく半導体レイアウト修正方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61267344A (ja) * 1985-05-22 1986-11-26 Hitachi Ltd Lsiのチツプレイアウト方式
JPS6366674A (ja) * 1986-09-08 1988-03-25 Hitachi Ltd レイアウト処理装置
JPH06110978A (ja) * 1992-09-30 1994-04-22 Toshiba Corp 電子部品のレイアウト設計支援装置
JPH08305745A (ja) * 1995-05-11 1996-11-22 Hitachi Ltd 半導体集積回路のセル配置方法
JP2000231577A (ja) * 1999-02-09 2000-08-22 Mitsubishi Electric Corp 部品配置装置および部品配置方法
JP2001084281A (ja) * 1999-09-10 2001-03-30 Toshiba Corp レイアウトエディタ装置、レイアウト方法、及びレイアウトプログラムを格納したコンピュータ読み取り可能な記録媒体
JP2003085225A (ja) * 2001-09-13 2003-03-20 Seiko Instruments Inc 集積回路設計装置、集積回路設計方法及びコンピュータに集積回路設計処理を行わせるためのプログラム
JP2005062943A (ja) * 2003-08-12 2005-03-10 Jedat Innovation:Kk 集積回路設計装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61267344A (ja) * 1985-05-22 1986-11-26 Hitachi Ltd Lsiのチツプレイアウト方式
JPS6366674A (ja) * 1986-09-08 1988-03-25 Hitachi Ltd レイアウト処理装置
JPH06110978A (ja) * 1992-09-30 1994-04-22 Toshiba Corp 電子部品のレイアウト設計支援装置
JPH08305745A (ja) * 1995-05-11 1996-11-22 Hitachi Ltd 半導体集積回路のセル配置方法
JP2000231577A (ja) * 1999-02-09 2000-08-22 Mitsubishi Electric Corp 部品配置装置および部品配置方法
JP2001084281A (ja) * 1999-09-10 2001-03-30 Toshiba Corp レイアウトエディタ装置、レイアウト方法、及びレイアウトプログラムを格納したコンピュータ読み取り可能な記録媒体
JP2003085225A (ja) * 2001-09-13 2003-03-20 Seiko Instruments Inc 集積回路設計装置、集積回路設計方法及びコンピュータに集積回路設計処理を行わせるためのプログラム
JP2005062943A (ja) * 2003-08-12 2005-03-10 Jedat Innovation:Kk 集積回路設計装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008140011A (ja) * 2006-11-30 2008-06-19 Shigehisa Nakatake 集積回路設計装置及び集積回路設計用プログラム
JP2010531505A (ja) * 2007-06-28 2010-09-24 サガンテック イスラエル リミテッド 設計規則及びユーザ制約に基づく半導体レイアウト修正方法

Similar Documents

Publication Publication Date Title
US11847397B1 (en) Barycenter compact model to determine IR drop exact solution for circuit network
US10860769B2 (en) Method and system for integrated circuit design with on-chip variation and spatial correlation
US8103996B2 (en) Method and apparatus for thermal analysis of through-silicon via (TSV)
US7971174B1 (en) Congestion aware pin optimizer
US10713410B2 (en) Method for legalizing mixed-cell height standard cells of IC
TW201009624A (en) Method and system for model-based design and layout of an integrated circuit
US10558772B1 (en) Partitioning a system graph for circuit simulation to obtain an exact solution
CN116151179B (zh) 芯片设计的布局规划方法及相关设备
Chen et al. Routability-driven blockage-aware macro placement
US9471733B1 (en) Solving a circuit network in multicore or distributed computing environment
Kahng et al. TritonRoute-WXL: The open-source router with integrated DRC engine
Kahng et al. PROBE: A placement, routing, back-end-of-line measurement utility
Kahng et al. RosettaStone: connecting the past, present, and future of physical design research
CN116090396B (zh) 显示芯片设计的数据流的方法及相关设备
JP2006309748A (ja) 矩形要素配置方法及び矩形要素配置装置並びに矩形要素配置用プログラム
US20150302137A1 (en) Expanded Canonical Forms Of Layout Patterns
CN110096725A (zh) 用于单元交换的方法
US8132141B2 (en) Method and apparatus for generating a centerline connectivity representation
US8181143B2 (en) Method and apparatus for generating a memory-efficient representation of routing data
US11176303B2 (en) Constrained cell placement
US20050138587A1 (en) Analysis of congestion attributed to component placement in an integrated circuit topology floor-plan
Sham et al. Congestion prediction in early stages of physical design
US20160063172A1 (en) Connectivity-Aware Layout Data Reduction For Design Verification
US20200364316A1 (en) Circuit layout similarity metric for semiconductor testsite coverage
Arnaldo et al. Boosting the 3D thermal‐aware floorplanning problem through a master‐worker parallel MOEA

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090123

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101026

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101221

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110329