JPH04568A - レイアウトのコンパクション方法 - Google Patents
レイアウトのコンパクション方法Info
- Publication number
- JPH04568A JPH04568A JP2101283A JP10128390A JPH04568A JP H04568 A JPH04568 A JP H04568A JP 2101283 A JP2101283 A JP 2101283A JP 10128390 A JP10128390 A JP 10128390A JP H04568 A JPH04568 A JP H04568A
- Authority
- JP
- Japan
- Prior art keywords
- layout
- boundary
- processing
- memory
- processor
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 265
- 238000012545 processing Methods 0.000 claims abstract description 200
- 238000013461 design Methods 0.000 claims abstract description 53
- 238000005056 compaction Methods 0.000 claims description 54
- 238000005452 bending Methods 0.000 description 17
- 238000005429 filling process Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000007781 pre-processing Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 125000006850 spacer group Chemical group 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 240000002989 Euphorbia neriifolia Species 0.000 description 1
- 241001274216 Naso Species 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 210000001124 body fluid Anatomy 0.000 description 1
- 239000010839 body fluid Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000001035 drying Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Document Processing Apparatus (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
産業上の利用分野
本発明11VLsI等のレイアウトシステムにおいてデ
ザインルールを満たし最小面積のレイアウトを得ること
によりVLSI等の製造コスト削減を目指すレイアウト
コンパクション方法に関するものである。 従来の技術 半導体製造技術の向上により、配線最小間隔等を決める
デザインルールの微細化が進んでいる。 より安価なチップ製造を実現するためにζよ 従来のレ
イアウト資源を有効利用する必要がある。また レイア
ウトを実現する過程で一般に生じる空き領域を削減する
必要がある。そのた人 既に設計された従来のデザイン
ルールから新しいデザインルールへの自動変換や、レイ
アウトにおける空き領域を少なくし デザインルールに
矛盾を生じさせないレイアウトを得る方法としてコンパ
クション技術が不可欠となる。 従来の実用的なコンパクション手法の代表的なものとし
て計算機幾何学の分野における平面掃目法に基づくコン
パクション手法の提案がされていも 例えば拡張平面掃
引法を用いた方法として(よ”ビア削除を伴った高速多
機能チャネルスペーサ(電子情報通信学会論文誌AVo
1.J72−A No、2 pp、349−358 1
989年2月)がある 平面掃引法ζ友 以下に示す長所を持つ。 (1)配線 コンタクトなどを幾何学的な情報のまま取
り扱1.L 単純な処理によりコンパクションを行う
ので複雑な設計規則に追従しゃすい暮 柔軟性があも (2)配線の折り曲げが容易であ4 (3)不規則な形状のレイアウトにも有効であ4平面掃
引法とは 平面上に走査線と呼ばれる水平な直線を想定
し 前記走査線を下から上に(または上から下に)移動
させながら前記走査線と交差する線分などの幾何学デー
タを探索する手法である。通常は2つのフェーズからな
り、第1フエーズでは幾何データを上端九 下端点のX
座標の小さい順に整列し この整列された端点をリスト
y−queueに保持しておく。第2フエーズでは 前
記y−queueから端点を一つずつ取り出し 各端点
に対しそれが下端点ならばワークリストx−table
に挿入し 上端点ならば削除するという操作を繰り返す
。 こうすることにより前記z−tableには常に走査線
と交差するデータが保持されも データ数をn (nは
正整数)とすると、第1フエーズはO(nlogn)の
手肌 第2フ−ニーズは前記x−tableのデータ構
造にX座標をキーとした平衡2分木を用いれば各挿入
削除などが0(nlogn)の手間で抑えられるので全
体としてはO(nlogn)の手間で実行される。従っ
て、平面掃引法の時間複雑度はQ(nl。 gn)となム 発明が解決しようとする課題 平面掃引法(よ 前述のように多くの利点を持つ力丈
取り扱うデータnの増加に伴い処理の手間は11ogn
(nは正整数)で増加するため処理効率が悪(℃ また
平面掃引法ではデータを逐次処理することを前提とす
るためへ 複数個のプロセッサを用いたマルチプロセス
処理を行うことによる高速化が困難であム 本発明ζよ 上記の従来の問題点を解決するものて 上
記の平面掃引法の利点を持板 さらに前記データn (
nは正整数)の増加に対して処理の手間がnに比例する
程度の増加で処理ができ、またマルチプロセス処理によ
る高速化も可能とする高速なレイアウトのコンパクショ
ン手法を提供することを目的とする。 課題を解決するための手段 本発明(1)ζよ レイアウト要素を高さ方向の座標で
、同じ高さのレイアウト要素を一つのグループとするレ
イアウト要素グループ化手段と、直接呼び出しメモリー
に境界情報を登録した境界メモリーを作成する手段と、
レイアウト境界に隣接する同じ高さのレイアウト要素グ
ループをグループ単位で境界メモリーを用いて下詰め操
作する手段と、下詰めの際同じグループであったレイア
ウト要素をグループ単位で境界メモリーを用いて上詰め
操作する手段とを有するレイアウトのコンパクション方
法である。 また本発明(2)l;l、 レイアウト要素を高さ方
向の座標で、同じ高さのレイアウト要素を一つのグルー
プとするレイアウト要素グループ化手段と、直接呼び出
しメモリーに境界の幾何学的を情報を登録した境界メモ
リーを作成する手段と、前記レイアウト要素グループ化
手段により得られたレイアウト要素グループに対しグル
ープ毎にプロセッサを割り当てる手段と、前記プロセッ
サ間で処理の遅延を持たせて前記全プロセッサにより同
時に境界メモリを用いて、各々の前記レイアウト要素グ
ループを独立に下詰めおよび上詰め操作をする手段とを
備えたレイアウトのコンパクション方法であも 作用 本発明は 上記構成(1)により直接呼び出しメモリー
に境界情報を登録した境界メモリーを作成することによ
り、 コンパクション対象のデータの検索は 座標に対
応するアドレスの内容を取り出すだけで行えるので前記
境界メモリを用いた上詰め下詰め処理は高速なものにな
ム また 上記構成(2)により境界の区分は メモリーの
アドレスに対応し 各々の座標毎に独立に参照すること
が可能なため複数個のプロセッサを用いた高速マルチプ
ロセス処理も可能となる。 実施例 (実施例1) 本発明の実施例1のレイアウトコンパクション手法につ
いて、第5図のレイアウトに適応し總第5図のBはレイ
アウトの下側境界を示LTはレイアウトの上側境界を示
L LHI〜LH3は水平配線を示り、、LVI〜L
V6は垂直配線を示L gridl 〜grid3は
レイアウト要素グループ名を示している。以下実施例1
の詳細な説明を図面を用いて行なう。ただし コンパク
ションはy軸方向(垂直方向)に行うものとする。 第1図(よ 本発明の実施例1におけるレイアウトのコ
ンパクション方法の処理の手順を示す流れ図であム 処
理11でζよ レイアウト要素データの前処理を行う。 処理11の処理内容は第2図に示す処理21〜25であ
ム 処理21でレイアウト要素データとレイアウト領域
データとデザインルールを入力すも デザインルールと
しては配線幅を最小単位長さ1 (レイアウト要素の分
割可能な最小の長さ)、 レイアウト要素とレイアウト
要素とのデザインルールを守る間隔と、レイアウト要素
とレイアウトの下側境界Bとのデザインルールを守る間
隔と、 レイアウト要素とレイアウトの上側境界Tとの
デザインルールを守る間隔は各々最小単位距離2 (レ
イアウト要素の分割可能な最小の長さ1が最小単位距離
1である。)とすム(ただり、、LVIとLV2のデザ
インルールを守る間隔は特別に最小単位距離1とす4
)次に処理22で、前記レイアウト要素を、水平方向配
線垂直方向配線 コンタクト、矩形に分類する。次に処
理23で、 レイアウト領域の形状よりレイアウトの上
側境界Tとレイアウト下側境界Bを設定すム 次に処理
24で垂直方向配線を除いたレイアウト要素を垂直方向
の高さ座標でソートし 同じ高さを持つレイアウト要素
をグループ化する。 ここではgridl〜grid3にグループ化する。処
理25により、第6図(a)に示すようにコンパクショ
ン処理を終了した領域の幾何学的情報を参照するたべ
レイアウト領域の最小単位に対応する境界メモリー50
を設定する。前記コンパクション処理を終了した領域と
(よ 境界メモリー50を用いた下詰め処理により拡張
されていくレイアウトの下側境界Bである。以後下詰め
処理により拡張されていく領域R1の境界を簡単のため
境界RBIと呼J% 境界メモリー50(よ それぞ
れの配線層に対して設定されており、レイアウト領域の
X軸方向の座標値が境界メモリー50のアドレスに対応
り、x軸方向の座標に対応するy方向の座標値が境界メ
モリー50の内容に対応すも 境界メモリー50の最小
単位距離(また(よ最小単位長さ)(ヨ 各々のレイ
アウト要素の分割可能な最小の幅と長さに対応できるよ
うに設定する。例えば 各々のレイアウト要素の長汝
幅はすべて1μm以上とし分割可能な最小の幅と長さが
0.1μmとすると、境界メモリーの最小単位距離1は
011μmとする。 第1図に示す処理12で(よ 各レイアウト要素グルー
プの境界メモリーを用いた下詰め処理を行う5、第6図
(a)(よ コンパクション処理対象のレイアウト要素
LHI〜LH3と、 レイアウトの下側境界Bの形状よ
り初期設定した境界メモリー5(1を示したものである
。第6図(b)〜第6図(1)は処理12による境界メ
モリーを用いた下詰め処理過程のLHI〜LH3とレイ
アウトの下側境界Bを更新した領域R1の境界RBIと
境界メモリー50の変化を示すものある。処理12の処
理手順は 第3図に示す処理31〜処理38であ4 処
理31により、第6図(b)に示すようへ レイアウト
の下側境界Bに凹凸がないので上方向に(もし凹凸があ
れば上方向と凹凸に合わせて左右方向に)デザインルー
ルを守るだけ拡張し境界RBIの初期設定をする。この
ときR1が拡張されたレイアウトの下側境界Bの領域で
あ4そして、領域R1の境界RBIの幾何学的情報を境
界メモリー50に格納する。 (X軸方向の座標に対応
ずAyX軸方向座標値を境界メモリー50に格納する。 この場合デザインルールが最小単位距離2なので、境界
RBIの高さのy座標値はX座標の0〜20範囲ですべ
て2であり、境界RB1の幾何学的情報を格納した境界
メモリー50の内容は 境界メモリー50のアドレスの
0〜20の範囲ですべて2にな7)。) 次に 第3図に示す処理32により、第6図(b)に示
す境界RBIに隣接するgridl上のレイアウト要素
グループのレイアウト要素LHIを検索すも 処理33
により、 LHIが水平配線データであるかどうかを判
定す、4LH11& 水平配線であるので、処理34
により、境界RBIの幾何学的情報を参照するためLH
Iの左端から右端までの範囲で境界メモリー50を検索
する。 LHIの左端から右端までの範囲で境界RBIに凹凸は
ないので、折れ曲がり点は設定しなt、% 次へ 処
理35により、前記処理34で探索した境界メモリー5
0の幾何学的情報より第6図(c)に示すようにLHI
を前記境界とのデザインルールを守る最隣接点に移動す
ム 次へ 処理36により、第6図(d)に示すよう置
LHIの上方向と左右方向に境界RBIを拡張し 拡
張された境界RBIに対応する境界メモリー50の内容
の値を更新する。この時、X座標11に対応する境界メ
モリー50の内容が5に更新されていないのは 境界R
BIがX座標値4以上11未満の範囲で拡張されたため
であム 境界RBIの更新に対し 境界メモリー50の
内容の更新は 更新される境界RBIの始点のX座標以
上終点のX座標未満で行われる。次に処理37により全
データの処理が終了したかどうかを判定する。この場合
データが残っているので、処理32から37を繰り返
す。第6図(d)に示す境界RBIに隣接するgr i
dZ上のレイアウト要素グループのレイアウト要素LH
2を検索すム 処理33により、LH2が水平配線デー
タであるかどうかを判定すムL H21,L、 水平
配線であるので、処理34により、境界RBIの幾何学
的情報を参照するためにLH2の左端から右端までの範
囲で境界メモリー50を検索す& LH2の左端から
右端までの範囲で境界RBIに凹凸が存在するので、境
界RBIに凹凸に合わせて折れ曲がり点を設定し 第6
図(e)に示すようにLH2をLH2−1とLH2−2
とLH2−3に分割し 処理35により前記処理34で
探索した境界メモリー50の幾何学的情報よりLH2−
1とLH2−2とLH2−3を境界RBIに接する位置
に移動する。次+Q 処理36により、第6図(f)
に示すように LH2−1とLH2−2とLH2−3の
上方向と左右方向に境界50を拡張し 拡張された領域
R1の境界RBIに対応すべ 境界メモリー50の内容
の値を更新すム 次に処理37により全データの処理が
終了したかどうかを判定する。この場合、grid3に
レイアウト要素グループがあるの℃処理32から37
を第6図(f)〜第6図(h)に示すように同様にして
繰り返も 全てのレイアウト要素グループのレイアウト要素の処理
を終了したなぺ 処理38により、第6図(h)に示す
境界メモリー50を参照L−第6図(i)に示すように
レイアウトのF側境界Tの高さ位置を決定すム 第7図
力(処理12により得られたレイアウト結果であも こ
こで、LJIとL J 2はLH2の折り曲げにより発
生した垂直方向配線である。しかば 処理12により得
られたし・rアウト結果にはLJIのように無駄な配線
の折れ曲がりがあるのて、無駄な配線の折れ曲がりを取
り除くことによりシー1−アウト・つ整形を行なう、第
1図に示す処理13を行う。 処理130処理手順ζ上 第4図に示す処理41〜45
である。第” 図(a ) Ii 処理12により得
られたレイアウト結果の上詰め処理対象となる水平配線
LHIとLH2−]とL H2−2とL H2−3とL
H3と初期比された境界メモリー50であん 第8図(
b)・−・第s B−2(r l)は処理13に、よる
境界メモリーをハ1いたJ、 、i−、j:、、、Aい
理過程の1゜H1〜LH3と境界RB2と境界メモリー
50の変化を示すものであム 処理41により第8図(
b)に示すように レイアウトの上側境界Tを凹凸がな
いので下方向に(もし凹凸があれば下方向と凹凸に合わ
せて左右方向に)デザインルールを守るだけ拡張し 処
理31と同様に拡張したレイアウトの上側境界Tの領域
R2の幾何学的情報を境界メモリー50に格納する。以
後拡張された領域R2の境界を簡単のため境界RB2と
呼水 処理42によりg r ld 3のレイ/ウド要
素グループのLH3の左端から右端の範囲で境界メモリ
ー50の幾何学的情報を検索L 処理43によりLH3
を無駄な折れ曲がりを減らす位置に移動させる。 しか
しLH3に折れ曲かりはなく、 しかも境界RB2に接
しているので実際に移動することはなI、% 次に処
理44によりT−H3から下方向と左右方向に前記レイ
アウトの上側境界Tをデザインルールを守るだけ拡張し
拡張された領域R2の境界RB2に対1.フする境界
メモリー50の内容の値を更新する01次に処理45に
、〈り全データの処理が完了し、たかどうかを判定す9
へ この場合、gridlおよびgrid2のレイアウ
ト要素グループが残っているのへ 処理42から処理4
5を繰り返す。処理42により第3図(C)に示すgr
id2のレイアウト要素グループのレイアウト要素LH
2−1とLH2−2とI−、、H2−3の各々の左端か
ら右端の範囲で境界メモリー50の幾何学的情報を検索
すム 処理43により、境界メモリーの幾何学的情報よ
りLH2−1とLH2−2とL H2−3を無駄な折れ
曲がりを減らす位置に移動させる。このKLHz−2は
境界RB2に接し、 しかもL H2−1とL上12−
2とり、 H2−3の中で最も高い位置にあるので、L
H2−2の高さを土詰め基準位置どし、前記上詰め基準
位置より下にあるL H2−3とり、 )−12−3を
できるたけ前記士詰め基準位置まで移動させる。この場
合Li(21は前記上詰め基準位置に移動できる力交1
、、、 H2−3It 場界R132に接しているた
め移動できなしXo 処理43 ”)?−’D L
Ff /l ”” 1とLH22とL H2−3・D各
・′・の位置は5仁・;〕い′□I)に示すL H2−
1とL l−(2−2とI−、H2−3である。 処理44により、境界RB2を第8図(e)に示すよう
に拡張する。次に処理45により全データの処理が完了
したかどうかを判定する。この場合、gridlのレイ
アウト要素グループが残っているので、gr id 1
のレイアウト要素グループに処理42から処理45を繰
り返し 第9図に示すレイアウト結果を得る。また 配
線の折れ曲がりを考虜しない場合α レイアウト結果を
第10図に示す。第9図に示すレイアウト結果と第10
図に示すレイアラ[・結果を比較するとレイアウト領域
の高さは第9図に示すレイアウト結果力<、第10図に
示すレイアウト結果の3分の2となり、配線の折り曲げ
が十分効果的であ4J−とが分かる。 本実施例1で1よ 直接呼び出しメモリーに幾何学的な
境界RBの情報を登17:1−だ境界メモリー50を作
成する手段により、コンバクシム1ン対象のデータの検
索3表 レイアラ!・領域のX座標に対応する境界メモ
リー” 500)アト1/スの内容を取り出すだけです
むたへ境界メモリー50を用いたト詰め下詰め処理(よ
従って高速なものになる。本実施例1の時間複雑度は
コンパクション処理の対象となるデータ数N、レイア
ウト領域幅W、レイアウトグループ数Tとして、次のよ
うな関係がある。 N Cx:TW (1)境界メモ
リーの範囲Kcヨ 前記境界メモリの最小単位をUと
すると、 K = W/u (2) データを境界メモリーへ詰め込むために要する処理の時
間複雑度Cは C= T*K T*W/u ((2)より) C1*N (3) (Cs は比例常数で、 U項も含む。)したがって
、時間複雑度Cは0(N)になる。さらに ソート手法
として″係数情報の整列処理方法″(日本国特許出願番
号]−67011)によれば 実施例1は全体として○
(N)の時間複雑度で処理できる。 (垂直方向配線の
処理(上 水平方向配線の両端とコンタクトをレイアウ
ト領域を左から(または右から)1度だけ探索すること
で0(N)の時間複雑度で処理できるからであ7)6)
このソート手法の特徴(よ すべてのソート対象となる
データのグローバル情報をあらかじめ頻度情報Vとして
求めておき、その後に頻度情報Vに基づく積算情報をV
上に作成すも この積算情報VM 各々ソートキーを
持つ情報の最小からの順番を指している点に着目すれば
後は データを書き出すのみでソートが完了する。第
16図に示した0(N)ソートアルゴリズムcヨ1つの
ソートキーをもつデータについてのインデックスソト処
理であ’+s[i]?! データの読み取り順番を示
すもので、 i番目の情報が元のデータ順番の何番目に
書かれているかを示すインデックスである。第16図に
おいて、min key、max keyl友 ソー
トキーの値の範囲であも このソートアルゴリズムで(
よ ソート処理後の順番について、もしも同一のソート
キーを持つ情報については ソート処理前の順番が保存
されていも 従って、 2つ以上のソートキーを持つデ
ータ(例えfE、 x座標とy座標等)については
従って、このソートアルゴリズムを優先順位の低いソー
トキーから順番に直列に繰り返すのみで得ることができ
る。上記の手法によれば 高々3 (N+K)から4(
N+K)の繰り返し処理によってソートが完了する。こ
こでK(友 座標などに相当する値がもつ範囲である。 以上説明したようC,、、本実施例1によれは 境界メ
モリー50を作成する手段と、レイアウト要素を高さ方
向の座標でグループ化する手段と、レイアウト境界に隣
接する同じ高さのレイアウト要素グループをグループ単
位で境界メモリー50を用いて下詰めする手段と、下詰
めの際同じグループであったレイアウト要素をグループ
単位で境界メモリー50を用いて上詰めする手段により
、最小のレイアウト結果を、非常に高速に得ることがで
き、その実用的効果は太きしも また 複数の層を持つ
レイアウトに対して境界メモリーは各々のレイアウト領
域層に設定できるので、複数のレイアウト領域層を持つ
レイアウトのコンパクション処理にL 簡単に適用でき
も な抵 本手法(上 水平配線を例に上げ説明しため(水
平配線ばかりでなく、機能回路ブロック等のデザインル
ールを守りかつ面積最小を目的としたレイアウト一般の
コンパクションにおいても有効であることはいうまでも
なu% (実施例2) 実施例2に適用したレイアウトは第5図に示す実施例1
と同じでものあり、デザインルールも実施例1に適用し
たものと同じである。第11図に実施例2の処理手順を
示す。以下本実施例2の詳細な説明を図面を用いて行な
う。 第11図に示す処理111で(よ レイアウト要素デー
タの前処理を行う。前記処理111の処理内容は第12
図に示す処理121〜128で、処理121から処理1
24までは実施例1の第2図に示す処理21から処理2
4までと同じである。 処理121によりレイアウト要素データとレイアウト領
域データとデザインルールを入力する。次に処理122
で、前記レイアウト要素を、水平方面配線 垂直方向配
線 コンタクト、矩形に分類す4 次に処理123で、
レイアウト領域形状データよりレイアウトの上側境界と
レイアウトの下側境界を設定すム 次に処理124で垂
直方向配線を除いたレイアウト要素を垂直方向の高さ方
向の座標でソートし 同じ高さを持つレイアウト要素を
グループ化すも 処理125により、各レイアウト要素
グループのレイアウト要素を最小単位長さ1で分割する
。 (例えばあるレイアウト要素の長さが10μmとし
最小単位長さを0.1μmとすると、前記レイアウト
要素(よ 最小単位長さ工のレイアウト要素に100等
分されム )処理126により、第14図(a)に示す
ようにレイアウトの下側境界Bの拡張処理をプロセッサ
0が行1.X、 レイアウト要素グループgridl
の処理をプロセッサ1が行(\ レイアウト要素グルー
プgrid2の処理をプロセッサ2が行1.% レイ
アウト要素グループgrid3の処理をプロセッサ3を
割り当ても 処理127で処理されている最小単位長さ
1のレイアウト要素の下の境界RBの幾何学的情報を参
照するため?ニ 実施例1と同様に境界メモリー50の
初期設定を行なう。 処理112では 各レイアウト要素グループの下詰め処
理を行う。第14図(b)は各プロセッサ0〜3のコン
パクション処理における開始から終了までの様子を示す
タイムチャートである。プロセッサ0は1=0からレイ
アウトの下側境界Bの拡張処理を行う。プロセッサ1は
t=△Wからgridlの処理を行う。プロセッサ2は
t=2△Wからgrid2の処理を行う。プロセッサ3
はt=3ΔWからgrid3の処理を行う。ここで△W
は境界メモリ50の1アドレスを処理する時間*デザイ
ンルールを守るために必要な距離を示しデザインルール
を守るために必要な距離とは デザインルール(2)十
最小単位に分割されたレイアウト要素の長さ(1)で、
3である。また1アドレスを処理する時間を1とし
△W=3とする。 第15図(a)に示すように プロセッサ3が処理を開
始するときには プロセッサ0はレイアウト領域のX軸
座標9まで処理を終了し プロセッサ1はレイアウト領
域のX軸座標6まで処理を終了し プロセッサ2はレイ
アウト領域のX軸座標3まで処理を終了していも プロ
セッサ0が処理を終了したX軸座標の位置情報はプロツ
セサ1に送られ プロセッサ1が処理を終了したX軸座
標の位置情報はブロッセサ2に送られ プロセッサ2が
処理を終了したX軸座標の位置情報はブロッセサ3に送
られも このように位置情報が送られた各プロセッサは
どこまで処理可能であるかを認識すも 走査線DLは各
プロセッサ0〜3の処理を終了した最新のX軸座標の相
対位置の関係を視覚的に示したものであも 第13図は下詰め処理112、上詰め処理113におい
て用いれる各プロセッサの処理の流れを示すフロー図で
ある。第15図(b)に示すように 各プロセッサの処
理を最小単位長さ1だけ進めも 各プロセッサ0〜3は
以下に示す処理を並行に行う。プロセッサ0の処理は他
のプロセッサと違1.X、下にレイアウト要素グループ
が存在しないた敢 処理】3】〜134を行う必要はな
く、処理135から開始すム 処理135によりレイア
ウト領域のX軸座標値9のレイアウトの下側境界Bを拡
張し対応する境界メモリー50の内容を2としく境界R
Bの更新に対し 境界メモリー50の内容の更新ζよ
更新されるレイアウト境界の始点のX軸座標以上終点の
X軸座標未満で行われるためX軸座標10に対応する境
界メモリー50の境界メモリーのアドレス10の境界メ
モリーの内容は 更新されていなLy )処理136
により処理の終了したX軸座標情報をプロセッサ1に送
も 処理137によりプロセッサ終了条件を満たせば処
理を終了し 前記条件を満たしていなければ プロセッ
サ0の処理を最小単位長さ1だけ進める。 プロセッサl J& 処理131によりプロセッサ0
の処理を終了したレイアウト領域のX軸座標の位置情報
を参照し プロセッサOの処理がプロセッサ1の処理よ
り最小単位距離3だけ進むまで待機し プロセッサ0の
処理が△W(最小単位距離3を処理する時間)だけ進め
ば 処理132によリレイアウド要素グループgrid
lのレイアウト要素を探索する。処理133でgrjd
lのレイアウト要素1.Hlの最小単位長さ1に分割さ
れたレイアウト要素があるかないかを判定し レイアウ
ト要素があれば 処理134により第15図(b)に示
すようにLHIの最小単位長さ1に分割されたレイアウ
ト要素のX軸座標値と対応する境界メモリー50の内容
を参照し 境界RBと最小単位長さ1に分割され′F、
LH1のレイアウト要素を境界RBに接する位置に移動
させる。次側へ処理135により第15図(c)に示す
ようにデザインルールを守るように境界メモリー50の
X軸座標4以上〜6未満を2から5に更新する。処理1
36によりプロセッサ1カ(処理が終了したX軸座標情
報をプロセッサ2・\送る。処理137によt)処理の
終了条件を判定する。プロセッサ1はこの場合処理終了
条件を満たしていないたヘプロセッサ1の処理を最小巣
位長さ1だけ進める。 プロセッサ2の処理は 処理131によりプロセッサ1
の処理を終了した境界RBのX軸座標情報を参照し プ
ロセッサ1の処理が△Wだけ進むまで待機すム その後
、プロセッサ1の処理が△Wだけ進めば 処理132に
よりレイアウト要素グループgrid2のレイアウト要
素を探索り処理133により、第15図(b)に示すよ
うに前記LH2の最小単位に分割されたレイアウト要素
があるかないかを判定する。1 レイアウト要素があれ
ば処理134によりX軸座標値と対応する境界メモリー
50の内容を参照し 境界RBと■、H2の最小単位に
分割されたレイアウト要素を境界RBに接する位置まで
移動させる。次に 処理135により第15図(c)に
示すように境界、メモリー50のX軸座標3以上を4未
満に対応するアドレスの内容を2から5に更新する。
(境界RBを更新する範囲としてはX軸座標の2以上を
4未満である力\ 2はすてに:f I[l!座標値が
5になっており、更新する必要がないためである。)プ
ロセッサ1と同様に 処理の終了したプロセッサ2のX
軸座標情報をプロセッサ3−・送りプロセッサ2の処理
を最小単位長さ1だけ進める。 プロセッサ3の処理対象であるしイアウド要素グループ
g r i d 3 Lt、 処理132でレイアウ
ト要素がみつから力!:いた取 処理133〜135を
行う必要はなく、また最上位レイアウト要素グループを
処理するプロセッサであるため処理136は行う必要も
なし\、第15図(d)に第15図(C)に対して更に
最小単位長さ1進めた処理状況を示す。 上記に示しまた方法を8hのプロセッサ0〜3の処理を
繰り返し5、第7図に示す下詰め処理の結果を14
第9図に示すレイアウト結果はレイアウトの上側境界1
′から、無駄な水平配線の折り曲げを取り除くように
上記に示した下詰め処理と同様に 上詰め処理を行うこ
とにより得ることができる。 実施例2に−1:、(7、マルチプロセス処理において
、コンパクション側皮のデータ数N、 レイアウト領域
幅W、 レイアウトグループ数1とする。−、T個のL
イアウド要素グループとレイアウトの下側境界を処理す
<3 T + 14−のプロセッサを用意する。各レイ
ア“ウド要素グループを処理する各プロセッサが処理し
ているX!!!標位置が 各レイアウト要素グループの
下に存在するすべてのレイアウト要素グループを処理す
る各プロセッサの処理を終了し7たX座標位置を越えて
はならなu% そのため、各プロッセサ間で距離的お
よび時間的な処理の遅れが存在する。各ブロッセサ間で
処理の遅れは 最小単位距離1の処理に要する時間△W
1とし 各プロッセサがデザインルールを守るために必
要な距離的な処理の遅れを・」・、とすれ(L 各ブロ
ッセサ間の時間的な遅れ△Wは △W=du−△w+ (4) となる。L・・イアウドの下側境界から最上位のレイア
ウトグループTの各々のブロッセサの処理時間T@、T
1.T2.Ts、・・・・・、1丁はTo =
W/v 牢 △ vII 1丁゛ +
= W/u* △W1 +T 2 =
W、、□’ u *ムvvz+T 3 = W /
b* I’、1 vi、4 +’111 = W/’
u*、:へが′1 →△W 2 ・ /\W 3 ・ △V7 4 ・ △W TT = W/u*△w++T・△W であり、前記最下位のレイアウトの下側境界を処理する
プロッセサと最上位のレイアウトグループTのブロッセ
サとの処理時間の差はT・△Wてあり、全体の処理時間
T8はTTと同じとなり、T、=W/u*△W1+T・
△W(5)したがって処理の時間複雑度CPlは CI!−〇(W+T)であり前記(1)式よりCガニ○
(W+T)<○ (N)=O(W−T)(6)となり
、非常に有効なマルチプロセス処理が実現し高速化がで
きる。また 複数の層を持つレイアウトに刻して境界メ
モリーは各々のレイアウト領域層に設定できるのてミ
複数のレイアウト領域層を持つレイアウトのコンパクシ
ョン処理にも、簡単に適用できる。 な壮 本実施例ではプロセッサ0〜プロ七ソサ3までの
4個のプロセッサで説明してきたが レイアウト要素グ
ループ数に応じたプロセ・ソサを用いればよく、プロセ
ッサ数は4つに限定されなu%全発明詳細 な説明したように 本発明によれILLsI等のレイア
ウトパターンに関して、直接呼び出しメモリーに境界情
報を登録した境界メモリーを作成する手段により、コン
パクション対象のデータの検索力(座標に対応するアド
レスの内容を取り出すだけですむだ敦 前記境界メモリ
を用いた高速な上詰め下詰め処理が実現できる。ざら(
ミ 境界の区分は メモリーのアドレスに対応し各々の
座標毎に独立に参照することが可能なため複数個のプロ
セッサを用いた高速マルチプロセス処理も可能となり、
その実用的効果は犬きl、X。
ザインルールを満たし最小面積のレイアウトを得ること
によりVLSI等の製造コスト削減を目指すレイアウト
コンパクション方法に関するものである。 従来の技術 半導体製造技術の向上により、配線最小間隔等を決める
デザインルールの微細化が進んでいる。 より安価なチップ製造を実現するためにζよ 従来のレ
イアウト資源を有効利用する必要がある。また レイア
ウトを実現する過程で一般に生じる空き領域を削減する
必要がある。そのた人 既に設計された従来のデザイン
ルールから新しいデザインルールへの自動変換や、レイ
アウトにおける空き領域を少なくし デザインルールに
矛盾を生じさせないレイアウトを得る方法としてコンパ
クション技術が不可欠となる。 従来の実用的なコンパクション手法の代表的なものとし
て計算機幾何学の分野における平面掃目法に基づくコン
パクション手法の提案がされていも 例えば拡張平面掃
引法を用いた方法として(よ”ビア削除を伴った高速多
機能チャネルスペーサ(電子情報通信学会論文誌AVo
1.J72−A No、2 pp、349−358 1
989年2月)がある 平面掃引法ζ友 以下に示す長所を持つ。 (1)配線 コンタクトなどを幾何学的な情報のまま取
り扱1.L 単純な処理によりコンパクションを行う
ので複雑な設計規則に追従しゃすい暮 柔軟性があも (2)配線の折り曲げが容易であ4 (3)不規則な形状のレイアウトにも有効であ4平面掃
引法とは 平面上に走査線と呼ばれる水平な直線を想定
し 前記走査線を下から上に(または上から下に)移動
させながら前記走査線と交差する線分などの幾何学デー
タを探索する手法である。通常は2つのフェーズからな
り、第1フエーズでは幾何データを上端九 下端点のX
座標の小さい順に整列し この整列された端点をリスト
y−queueに保持しておく。第2フエーズでは 前
記y−queueから端点を一つずつ取り出し 各端点
に対しそれが下端点ならばワークリストx−table
に挿入し 上端点ならば削除するという操作を繰り返す
。 こうすることにより前記z−tableには常に走査線
と交差するデータが保持されも データ数をn (nは
正整数)とすると、第1フエーズはO(nlogn)の
手肌 第2フ−ニーズは前記x−tableのデータ構
造にX座標をキーとした平衡2分木を用いれば各挿入
削除などが0(nlogn)の手間で抑えられるので全
体としてはO(nlogn)の手間で実行される。従っ
て、平面掃引法の時間複雑度はQ(nl。 gn)となム 発明が解決しようとする課題 平面掃引法(よ 前述のように多くの利点を持つ力丈
取り扱うデータnの増加に伴い処理の手間は11ogn
(nは正整数)で増加するため処理効率が悪(℃ また
平面掃引法ではデータを逐次処理することを前提とす
るためへ 複数個のプロセッサを用いたマルチプロセス
処理を行うことによる高速化が困難であム 本発明ζよ 上記の従来の問題点を解決するものて 上
記の平面掃引法の利点を持板 さらに前記データn (
nは正整数)の増加に対して処理の手間がnに比例する
程度の増加で処理ができ、またマルチプロセス処理によ
る高速化も可能とする高速なレイアウトのコンパクショ
ン手法を提供することを目的とする。 課題を解決するための手段 本発明(1)ζよ レイアウト要素を高さ方向の座標で
、同じ高さのレイアウト要素を一つのグループとするレ
イアウト要素グループ化手段と、直接呼び出しメモリー
に境界情報を登録した境界メモリーを作成する手段と、
レイアウト境界に隣接する同じ高さのレイアウト要素グ
ループをグループ単位で境界メモリーを用いて下詰め操
作する手段と、下詰めの際同じグループであったレイア
ウト要素をグループ単位で境界メモリーを用いて上詰め
操作する手段とを有するレイアウトのコンパクション方
法である。 また本発明(2)l;l、 レイアウト要素を高さ方
向の座標で、同じ高さのレイアウト要素を一つのグルー
プとするレイアウト要素グループ化手段と、直接呼び出
しメモリーに境界の幾何学的を情報を登録した境界メモ
リーを作成する手段と、前記レイアウト要素グループ化
手段により得られたレイアウト要素グループに対しグル
ープ毎にプロセッサを割り当てる手段と、前記プロセッ
サ間で処理の遅延を持たせて前記全プロセッサにより同
時に境界メモリを用いて、各々の前記レイアウト要素グ
ループを独立に下詰めおよび上詰め操作をする手段とを
備えたレイアウトのコンパクション方法であも 作用 本発明は 上記構成(1)により直接呼び出しメモリー
に境界情報を登録した境界メモリーを作成することによ
り、 コンパクション対象のデータの検索は 座標に対
応するアドレスの内容を取り出すだけで行えるので前記
境界メモリを用いた上詰め下詰め処理は高速なものにな
ム また 上記構成(2)により境界の区分は メモリーの
アドレスに対応し 各々の座標毎に独立に参照すること
が可能なため複数個のプロセッサを用いた高速マルチプ
ロセス処理も可能となる。 実施例 (実施例1) 本発明の実施例1のレイアウトコンパクション手法につ
いて、第5図のレイアウトに適応し總第5図のBはレイ
アウトの下側境界を示LTはレイアウトの上側境界を示
L LHI〜LH3は水平配線を示り、、LVI〜L
V6は垂直配線を示L gridl 〜grid3は
レイアウト要素グループ名を示している。以下実施例1
の詳細な説明を図面を用いて行なう。ただし コンパク
ションはy軸方向(垂直方向)に行うものとする。 第1図(よ 本発明の実施例1におけるレイアウトのコ
ンパクション方法の処理の手順を示す流れ図であム 処
理11でζよ レイアウト要素データの前処理を行う。 処理11の処理内容は第2図に示す処理21〜25であ
ム 処理21でレイアウト要素データとレイアウト領域
データとデザインルールを入力すも デザインルールと
しては配線幅を最小単位長さ1 (レイアウト要素の分
割可能な最小の長さ)、 レイアウト要素とレイアウト
要素とのデザインルールを守る間隔と、レイアウト要素
とレイアウトの下側境界Bとのデザインルールを守る間
隔と、 レイアウト要素とレイアウトの上側境界Tとの
デザインルールを守る間隔は各々最小単位距離2 (レ
イアウト要素の分割可能な最小の長さ1が最小単位距離
1である。)とすム(ただり、、LVIとLV2のデザ
インルールを守る間隔は特別に最小単位距離1とす4
)次に処理22で、前記レイアウト要素を、水平方向配
線垂直方向配線 コンタクト、矩形に分類する。次に処
理23で、 レイアウト領域の形状よりレイアウトの上
側境界Tとレイアウト下側境界Bを設定すム 次に処理
24で垂直方向配線を除いたレイアウト要素を垂直方向
の高さ座標でソートし 同じ高さを持つレイアウト要素
をグループ化する。 ここではgridl〜grid3にグループ化する。処
理25により、第6図(a)に示すようにコンパクショ
ン処理を終了した領域の幾何学的情報を参照するたべ
レイアウト領域の最小単位に対応する境界メモリー50
を設定する。前記コンパクション処理を終了した領域と
(よ 境界メモリー50を用いた下詰め処理により拡張
されていくレイアウトの下側境界Bである。以後下詰め
処理により拡張されていく領域R1の境界を簡単のため
境界RBIと呼J% 境界メモリー50(よ それぞ
れの配線層に対して設定されており、レイアウト領域の
X軸方向の座標値が境界メモリー50のアドレスに対応
り、x軸方向の座標に対応するy方向の座標値が境界メ
モリー50の内容に対応すも 境界メモリー50の最小
単位距離(また(よ最小単位長さ)(ヨ 各々のレイ
アウト要素の分割可能な最小の幅と長さに対応できるよ
うに設定する。例えば 各々のレイアウト要素の長汝
幅はすべて1μm以上とし分割可能な最小の幅と長さが
0.1μmとすると、境界メモリーの最小単位距離1は
011μmとする。 第1図に示す処理12で(よ 各レイアウト要素グルー
プの境界メモリーを用いた下詰め処理を行う5、第6図
(a)(よ コンパクション処理対象のレイアウト要素
LHI〜LH3と、 レイアウトの下側境界Bの形状よ
り初期設定した境界メモリー5(1を示したものである
。第6図(b)〜第6図(1)は処理12による境界メ
モリーを用いた下詰め処理過程のLHI〜LH3とレイ
アウトの下側境界Bを更新した領域R1の境界RBIと
境界メモリー50の変化を示すものある。処理12の処
理手順は 第3図に示す処理31〜処理38であ4 処
理31により、第6図(b)に示すようへ レイアウト
の下側境界Bに凹凸がないので上方向に(もし凹凸があ
れば上方向と凹凸に合わせて左右方向に)デザインルー
ルを守るだけ拡張し境界RBIの初期設定をする。この
ときR1が拡張されたレイアウトの下側境界Bの領域で
あ4そして、領域R1の境界RBIの幾何学的情報を境
界メモリー50に格納する。 (X軸方向の座標に対応
ずAyX軸方向座標値を境界メモリー50に格納する。 この場合デザインルールが最小単位距離2なので、境界
RBIの高さのy座標値はX座標の0〜20範囲ですべ
て2であり、境界RB1の幾何学的情報を格納した境界
メモリー50の内容は 境界メモリー50のアドレスの
0〜20の範囲ですべて2にな7)。) 次に 第3図に示す処理32により、第6図(b)に示
す境界RBIに隣接するgridl上のレイアウト要素
グループのレイアウト要素LHIを検索すも 処理33
により、 LHIが水平配線データであるかどうかを判
定す、4LH11& 水平配線であるので、処理34
により、境界RBIの幾何学的情報を参照するためLH
Iの左端から右端までの範囲で境界メモリー50を検索
する。 LHIの左端から右端までの範囲で境界RBIに凹凸は
ないので、折れ曲がり点は設定しなt、% 次へ 処
理35により、前記処理34で探索した境界メモリー5
0の幾何学的情報より第6図(c)に示すようにLHI
を前記境界とのデザインルールを守る最隣接点に移動す
ム 次へ 処理36により、第6図(d)に示すよう置
LHIの上方向と左右方向に境界RBIを拡張し 拡
張された境界RBIに対応する境界メモリー50の内容
の値を更新する。この時、X座標11に対応する境界メ
モリー50の内容が5に更新されていないのは 境界R
BIがX座標値4以上11未満の範囲で拡張されたため
であム 境界RBIの更新に対し 境界メモリー50の
内容の更新は 更新される境界RBIの始点のX座標以
上終点のX座標未満で行われる。次に処理37により全
データの処理が終了したかどうかを判定する。この場合
データが残っているので、処理32から37を繰り返
す。第6図(d)に示す境界RBIに隣接するgr i
dZ上のレイアウト要素グループのレイアウト要素LH
2を検索すム 処理33により、LH2が水平配線デー
タであるかどうかを判定すムL H21,L、 水平
配線であるので、処理34により、境界RBIの幾何学
的情報を参照するためにLH2の左端から右端までの範
囲で境界メモリー50を検索す& LH2の左端から
右端までの範囲で境界RBIに凹凸が存在するので、境
界RBIに凹凸に合わせて折れ曲がり点を設定し 第6
図(e)に示すようにLH2をLH2−1とLH2−2
とLH2−3に分割し 処理35により前記処理34で
探索した境界メモリー50の幾何学的情報よりLH2−
1とLH2−2とLH2−3を境界RBIに接する位置
に移動する。次+Q 処理36により、第6図(f)
に示すように LH2−1とLH2−2とLH2−3の
上方向と左右方向に境界50を拡張し 拡張された領域
R1の境界RBIに対応すべ 境界メモリー50の内容
の値を更新すム 次に処理37により全データの処理が
終了したかどうかを判定する。この場合、grid3に
レイアウト要素グループがあるの℃処理32から37
を第6図(f)〜第6図(h)に示すように同様にして
繰り返も 全てのレイアウト要素グループのレイアウト要素の処理
を終了したなぺ 処理38により、第6図(h)に示す
境界メモリー50を参照L−第6図(i)に示すように
レイアウトのF側境界Tの高さ位置を決定すム 第7図
力(処理12により得られたレイアウト結果であも こ
こで、LJIとL J 2はLH2の折り曲げにより発
生した垂直方向配線である。しかば 処理12により得
られたし・rアウト結果にはLJIのように無駄な配線
の折れ曲がりがあるのて、無駄な配線の折れ曲がりを取
り除くことによりシー1−アウト・つ整形を行なう、第
1図に示す処理13を行う。 処理130処理手順ζ上 第4図に示す処理41〜45
である。第” 図(a ) Ii 処理12により得
られたレイアウト結果の上詰め処理対象となる水平配線
LHIとLH2−]とL H2−2とL H2−3とL
H3と初期比された境界メモリー50であん 第8図(
b)・−・第s B−2(r l)は処理13に、よる
境界メモリーをハ1いたJ、 、i−、j:、、、Aい
理過程の1゜H1〜LH3と境界RB2と境界メモリー
50の変化を示すものであム 処理41により第8図(
b)に示すように レイアウトの上側境界Tを凹凸がな
いので下方向に(もし凹凸があれば下方向と凹凸に合わ
せて左右方向に)デザインルールを守るだけ拡張し 処
理31と同様に拡張したレイアウトの上側境界Tの領域
R2の幾何学的情報を境界メモリー50に格納する。以
後拡張された領域R2の境界を簡単のため境界RB2と
呼水 処理42によりg r ld 3のレイ/ウド要
素グループのLH3の左端から右端の範囲で境界メモリ
ー50の幾何学的情報を検索L 処理43によりLH3
を無駄な折れ曲がりを減らす位置に移動させる。 しか
しLH3に折れ曲かりはなく、 しかも境界RB2に接
しているので実際に移動することはなI、% 次に処
理44によりT−H3から下方向と左右方向に前記レイ
アウトの上側境界Tをデザインルールを守るだけ拡張し
拡張された領域R2の境界RB2に対1.フする境界
メモリー50の内容の値を更新する01次に処理45に
、〈り全データの処理が完了し、たかどうかを判定す9
へ この場合、gridlおよびgrid2のレイアウ
ト要素グループが残っているのへ 処理42から処理4
5を繰り返す。処理42により第3図(C)に示すgr
id2のレイアウト要素グループのレイアウト要素LH
2−1とLH2−2とI−、、H2−3の各々の左端か
ら右端の範囲で境界メモリー50の幾何学的情報を検索
すム 処理43により、境界メモリーの幾何学的情報よ
りLH2−1とLH2−2とL H2−3を無駄な折れ
曲がりを減らす位置に移動させる。このKLHz−2は
境界RB2に接し、 しかもL H2−1とL上12−
2とり、 H2−3の中で最も高い位置にあるので、L
H2−2の高さを土詰め基準位置どし、前記上詰め基準
位置より下にあるL H2−3とり、 )−12−3を
できるたけ前記士詰め基準位置まで移動させる。この場
合Li(21は前記上詰め基準位置に移動できる力交1
、、、 H2−3It 場界R132に接しているた
め移動できなしXo 処理43 ”)?−’D L
Ff /l ”” 1とLH22とL H2−3・D各
・′・の位置は5仁・;〕い′□I)に示すL H2−
1とL l−(2−2とI−、H2−3である。 処理44により、境界RB2を第8図(e)に示すよう
に拡張する。次に処理45により全データの処理が完了
したかどうかを判定する。この場合、gridlのレイ
アウト要素グループが残っているので、gr id 1
のレイアウト要素グループに処理42から処理45を繰
り返し 第9図に示すレイアウト結果を得る。また 配
線の折れ曲がりを考虜しない場合α レイアウト結果を
第10図に示す。第9図に示すレイアウト結果と第10
図に示すレイアラ[・結果を比較するとレイアウト領域
の高さは第9図に示すレイアウト結果力<、第10図に
示すレイアウト結果の3分の2となり、配線の折り曲げ
が十分効果的であ4J−とが分かる。 本実施例1で1よ 直接呼び出しメモリーに幾何学的な
境界RBの情報を登17:1−だ境界メモリー50を作
成する手段により、コンバクシム1ン対象のデータの検
索3表 レイアラ!・領域のX座標に対応する境界メモ
リー” 500)アト1/スの内容を取り出すだけです
むたへ境界メモリー50を用いたト詰め下詰め処理(よ
従って高速なものになる。本実施例1の時間複雑度は
コンパクション処理の対象となるデータ数N、レイア
ウト領域幅W、レイアウトグループ数Tとして、次のよ
うな関係がある。 N Cx:TW (1)境界メモ
リーの範囲Kcヨ 前記境界メモリの最小単位をUと
すると、 K = W/u (2) データを境界メモリーへ詰め込むために要する処理の時
間複雑度Cは C= T*K T*W/u ((2)より) C1*N (3) (Cs は比例常数で、 U項も含む。)したがって
、時間複雑度Cは0(N)になる。さらに ソート手法
として″係数情報の整列処理方法″(日本国特許出願番
号]−67011)によれば 実施例1は全体として○
(N)の時間複雑度で処理できる。 (垂直方向配線の
処理(上 水平方向配線の両端とコンタクトをレイアウ
ト領域を左から(または右から)1度だけ探索すること
で0(N)の時間複雑度で処理できるからであ7)6)
このソート手法の特徴(よ すべてのソート対象となる
データのグローバル情報をあらかじめ頻度情報Vとして
求めておき、その後に頻度情報Vに基づく積算情報をV
上に作成すも この積算情報VM 各々ソートキーを
持つ情報の最小からの順番を指している点に着目すれば
後は データを書き出すのみでソートが完了する。第
16図に示した0(N)ソートアルゴリズムcヨ1つの
ソートキーをもつデータについてのインデックスソト処
理であ’+s[i]?! データの読み取り順番を示
すもので、 i番目の情報が元のデータ順番の何番目に
書かれているかを示すインデックスである。第16図に
おいて、min key、max keyl友 ソー
トキーの値の範囲であも このソートアルゴリズムで(
よ ソート処理後の順番について、もしも同一のソート
キーを持つ情報については ソート処理前の順番が保存
されていも 従って、 2つ以上のソートキーを持つデ
ータ(例えfE、 x座標とy座標等)については
従って、このソートアルゴリズムを優先順位の低いソー
トキーから順番に直列に繰り返すのみで得ることができ
る。上記の手法によれば 高々3 (N+K)から4(
N+K)の繰り返し処理によってソートが完了する。こ
こでK(友 座標などに相当する値がもつ範囲である。 以上説明したようC,、、本実施例1によれは 境界メ
モリー50を作成する手段と、レイアウト要素を高さ方
向の座標でグループ化する手段と、レイアウト境界に隣
接する同じ高さのレイアウト要素グループをグループ単
位で境界メモリー50を用いて下詰めする手段と、下詰
めの際同じグループであったレイアウト要素をグループ
単位で境界メモリー50を用いて上詰めする手段により
、最小のレイアウト結果を、非常に高速に得ることがで
き、その実用的効果は太きしも また 複数の層を持つ
レイアウトに対して境界メモリーは各々のレイアウト領
域層に設定できるので、複数のレイアウト領域層を持つ
レイアウトのコンパクション処理にL 簡単に適用でき
も な抵 本手法(上 水平配線を例に上げ説明しため(水
平配線ばかりでなく、機能回路ブロック等のデザインル
ールを守りかつ面積最小を目的としたレイアウト一般の
コンパクションにおいても有効であることはいうまでも
なu% (実施例2) 実施例2に適用したレイアウトは第5図に示す実施例1
と同じでものあり、デザインルールも実施例1に適用し
たものと同じである。第11図に実施例2の処理手順を
示す。以下本実施例2の詳細な説明を図面を用いて行な
う。 第11図に示す処理111で(よ レイアウト要素デー
タの前処理を行う。前記処理111の処理内容は第12
図に示す処理121〜128で、処理121から処理1
24までは実施例1の第2図に示す処理21から処理2
4までと同じである。 処理121によりレイアウト要素データとレイアウト領
域データとデザインルールを入力する。次に処理122
で、前記レイアウト要素を、水平方面配線 垂直方向配
線 コンタクト、矩形に分類す4 次に処理123で、
レイアウト領域形状データよりレイアウトの上側境界と
レイアウトの下側境界を設定すム 次に処理124で垂
直方向配線を除いたレイアウト要素を垂直方向の高さ方
向の座標でソートし 同じ高さを持つレイアウト要素を
グループ化すも 処理125により、各レイアウト要素
グループのレイアウト要素を最小単位長さ1で分割する
。 (例えばあるレイアウト要素の長さが10μmとし
最小単位長さを0.1μmとすると、前記レイアウト
要素(よ 最小単位長さ工のレイアウト要素に100等
分されム )処理126により、第14図(a)に示す
ようにレイアウトの下側境界Bの拡張処理をプロセッサ
0が行1.X、 レイアウト要素グループgridl
の処理をプロセッサ1が行(\ レイアウト要素グルー
プgrid2の処理をプロセッサ2が行1.% レイ
アウト要素グループgrid3の処理をプロセッサ3を
割り当ても 処理127で処理されている最小単位長さ
1のレイアウト要素の下の境界RBの幾何学的情報を参
照するため?ニ 実施例1と同様に境界メモリー50の
初期設定を行なう。 処理112では 各レイアウト要素グループの下詰め処
理を行う。第14図(b)は各プロセッサ0〜3のコン
パクション処理における開始から終了までの様子を示す
タイムチャートである。プロセッサ0は1=0からレイ
アウトの下側境界Bの拡張処理を行う。プロセッサ1は
t=△Wからgridlの処理を行う。プロセッサ2は
t=2△Wからgrid2の処理を行う。プロセッサ3
はt=3ΔWからgrid3の処理を行う。ここで△W
は境界メモリ50の1アドレスを処理する時間*デザイ
ンルールを守るために必要な距離を示しデザインルール
を守るために必要な距離とは デザインルール(2)十
最小単位に分割されたレイアウト要素の長さ(1)で、
3である。また1アドレスを処理する時間を1とし
△W=3とする。 第15図(a)に示すように プロセッサ3が処理を開
始するときには プロセッサ0はレイアウト領域のX軸
座標9まで処理を終了し プロセッサ1はレイアウト領
域のX軸座標6まで処理を終了し プロセッサ2はレイ
アウト領域のX軸座標3まで処理を終了していも プロ
セッサ0が処理を終了したX軸座標の位置情報はプロツ
セサ1に送られ プロセッサ1が処理を終了したX軸座
標の位置情報はブロッセサ2に送られ プロセッサ2が
処理を終了したX軸座標の位置情報はブロッセサ3に送
られも このように位置情報が送られた各プロセッサは
どこまで処理可能であるかを認識すも 走査線DLは各
プロセッサ0〜3の処理を終了した最新のX軸座標の相
対位置の関係を視覚的に示したものであも 第13図は下詰め処理112、上詰め処理113におい
て用いれる各プロセッサの処理の流れを示すフロー図で
ある。第15図(b)に示すように 各プロセッサの処
理を最小単位長さ1だけ進めも 各プロセッサ0〜3は
以下に示す処理を並行に行う。プロセッサ0の処理は他
のプロセッサと違1.X、下にレイアウト要素グループ
が存在しないた敢 処理】3】〜134を行う必要はな
く、処理135から開始すム 処理135によりレイア
ウト領域のX軸座標値9のレイアウトの下側境界Bを拡
張し対応する境界メモリー50の内容を2としく境界R
Bの更新に対し 境界メモリー50の内容の更新ζよ
更新されるレイアウト境界の始点のX軸座標以上終点の
X軸座標未満で行われるためX軸座標10に対応する境
界メモリー50の境界メモリーのアドレス10の境界メ
モリーの内容は 更新されていなLy )処理136
により処理の終了したX軸座標情報をプロセッサ1に送
も 処理137によりプロセッサ終了条件を満たせば処
理を終了し 前記条件を満たしていなければ プロセッ
サ0の処理を最小単位長さ1だけ進める。 プロセッサl J& 処理131によりプロセッサ0
の処理を終了したレイアウト領域のX軸座標の位置情報
を参照し プロセッサOの処理がプロセッサ1の処理よ
り最小単位距離3だけ進むまで待機し プロセッサ0の
処理が△W(最小単位距離3を処理する時間)だけ進め
ば 処理132によリレイアウド要素グループgrid
lのレイアウト要素を探索する。処理133でgrjd
lのレイアウト要素1.Hlの最小単位長さ1に分割さ
れたレイアウト要素があるかないかを判定し レイアウ
ト要素があれば 処理134により第15図(b)に示
すようにLHIの最小単位長さ1に分割されたレイアウ
ト要素のX軸座標値と対応する境界メモリー50の内容
を参照し 境界RBと最小単位長さ1に分割され′F、
LH1のレイアウト要素を境界RBに接する位置に移動
させる。次側へ処理135により第15図(c)に示す
ようにデザインルールを守るように境界メモリー50の
X軸座標4以上〜6未満を2から5に更新する。処理1
36によりプロセッサ1カ(処理が終了したX軸座標情
報をプロセッサ2・\送る。処理137によt)処理の
終了条件を判定する。プロセッサ1はこの場合処理終了
条件を満たしていないたヘプロセッサ1の処理を最小巣
位長さ1だけ進める。 プロセッサ2の処理は 処理131によりプロセッサ1
の処理を終了した境界RBのX軸座標情報を参照し プ
ロセッサ1の処理が△Wだけ進むまで待機すム その後
、プロセッサ1の処理が△Wだけ進めば 処理132に
よりレイアウト要素グループgrid2のレイアウト要
素を探索り処理133により、第15図(b)に示すよ
うに前記LH2の最小単位に分割されたレイアウト要素
があるかないかを判定する。1 レイアウト要素があれ
ば処理134によりX軸座標値と対応する境界メモリー
50の内容を参照し 境界RBと■、H2の最小単位に
分割されたレイアウト要素を境界RBに接する位置まで
移動させる。次に 処理135により第15図(c)に
示すように境界、メモリー50のX軸座標3以上を4未
満に対応するアドレスの内容を2から5に更新する。
(境界RBを更新する範囲としてはX軸座標の2以上を
4未満である力\ 2はすてに:f I[l!座標値が
5になっており、更新する必要がないためである。)プ
ロセッサ1と同様に 処理の終了したプロセッサ2のX
軸座標情報をプロセッサ3−・送りプロセッサ2の処理
を最小単位長さ1だけ進める。 プロセッサ3の処理対象であるしイアウド要素グループ
g r i d 3 Lt、 処理132でレイアウ
ト要素がみつから力!:いた取 処理133〜135を
行う必要はなく、また最上位レイアウト要素グループを
処理するプロセッサであるため処理136は行う必要も
なし\、第15図(d)に第15図(C)に対して更に
最小単位長さ1進めた処理状況を示す。 上記に示しまた方法を8hのプロセッサ0〜3の処理を
繰り返し5、第7図に示す下詰め処理の結果を14
第9図に示すレイアウト結果はレイアウトの上側境界1
′から、無駄な水平配線の折り曲げを取り除くように
上記に示した下詰め処理と同様に 上詰め処理を行うこ
とにより得ることができる。 実施例2に−1:、(7、マルチプロセス処理において
、コンパクション側皮のデータ数N、 レイアウト領域
幅W、 レイアウトグループ数1とする。−、T個のL
イアウド要素グループとレイアウトの下側境界を処理す
<3 T + 14−のプロセッサを用意する。各レイ
ア“ウド要素グループを処理する各プロセッサが処理し
ているX!!!標位置が 各レイアウト要素グループの
下に存在するすべてのレイアウト要素グループを処理す
る各プロセッサの処理を終了し7たX座標位置を越えて
はならなu% そのため、各プロッセサ間で距離的お
よび時間的な処理の遅れが存在する。各ブロッセサ間で
処理の遅れは 最小単位距離1の処理に要する時間△W
1とし 各プロッセサがデザインルールを守るために必
要な距離的な処理の遅れを・」・、とすれ(L 各ブロ
ッセサ間の時間的な遅れ△Wは △W=du−△w+ (4) となる。L・・イアウドの下側境界から最上位のレイア
ウトグループTの各々のブロッセサの処理時間T@、T
1.T2.Ts、・・・・・、1丁はTo =
W/v 牢 △ vII 1丁゛ +
= W/u* △W1 +T 2 =
W、、□’ u *ムvvz+T 3 = W /
b* I’、1 vi、4 +’111 = W/’
u*、:へが′1 →△W 2 ・ /\W 3 ・ △V7 4 ・ △W TT = W/u*△w++T・△W であり、前記最下位のレイアウトの下側境界を処理する
プロッセサと最上位のレイアウトグループTのブロッセ
サとの処理時間の差はT・△Wてあり、全体の処理時間
T8はTTと同じとなり、T、=W/u*△W1+T・
△W(5)したがって処理の時間複雑度CPlは CI!−〇(W+T)であり前記(1)式よりCガニ○
(W+T)<○ (N)=O(W−T)(6)となり
、非常に有効なマルチプロセス処理が実現し高速化がで
きる。また 複数の層を持つレイアウトに刻して境界メ
モリーは各々のレイアウト領域層に設定できるのてミ
複数のレイアウト領域層を持つレイアウトのコンパクシ
ョン処理にも、簡単に適用できる。 な壮 本実施例ではプロセッサ0〜プロ七ソサ3までの
4個のプロセッサで説明してきたが レイアウト要素グ
ループ数に応じたプロセ・ソサを用いればよく、プロセ
ッサ数は4つに限定されなu%全発明詳細 な説明したように 本発明によれILLsI等のレイア
ウトパターンに関して、直接呼び出しメモリーに境界情
報を登録した境界メモリーを作成する手段により、コン
パクション対象のデータの検索力(座標に対応するアド
レスの内容を取り出すだけですむだ敦 前記境界メモリ
を用いた高速な上詰め下詰め処理が実現できる。ざら(
ミ 境界の区分は メモリーのアドレスに対応し各々の
座標毎に独立に参照することが可能なため複数個のプロ
セッサを用いた高速マルチプロセス処理も可能となり、
その実用的効果は犬きl、X。
第1図は本発明の実施例1におけるり、イアウドのコン
パクション方法の処理手順を示す流れ巨第2図は処理I
Jのレイアウトデータの前処理および境界メモリー作成
処理の処理手順を示す流れ巨 第3図は処理12である
境界メモリーを用いた丁詰め処理の処理手順を示す流れ
医 第4図は処理13である境界メモリーを用いた干詰
め処理の処理手順を示す流れ医 第5図は本発明を適用
したレイアウトを示す医 第6図(a)〜第6図(i)
は境界メモリーを用いた下詰め処理によるレイアウト要
素と前記境界メモリーの処理過程での様子を示す医 第
7図は境界メモリーを用いた下詰め処理によるレイアウ
ト結果を示す匝 第8図(a)〜第8図(f)は境界メ
モリーを用いた上詰め処理によるレイアウト要素と前記
境界メモリの処理過程での様子を示す医 第9図は境界
メモリーを用いた上詰め処理による最終的なし・イアウ
ド結果を示す医 第を図は配線の折り曲げを考虜せずく
レイアウトのコンパクション処理を行った場合のレイ
アウト結果を示す@ 第11図は実施例2におけるマル
チブロッセサを用いたレイアウトのコンパクション処理
の処理手順を示す流れは 第12図は処理111のレイ
アウトデータの前処理および境界メモリー作成処理の処
理手順を示す流れ医 第13図は実施例2における各プ
ロセッサの処理の処理手順を示す流れ王 第14図(a
)は実施例2における各1ノイアウト要素グループに割
り当てられたプロセッサの各プロセッサ間での通信の様
子と、各プロセッサと境界メモリーとの通信の様子を示
す構成は 第14図(b)は実施例2におけるプロセッ
サの処理のタイムチャート医 第15図(a)〜第15
図(e)は実施例2におけるマルチプロッセサを用いた
レイアウトのコンパクション処理によるレイアウト要素
と境界メモリの処理過程の様子を示すは 第16図は1
つのソートキーをもつデータについてのインデックスソ
ート処理であるソートアルゴリズム図である。 11・・・レイアウトデータの前処理および境界メモリ
ー作成手段、 12・・・境界メモリーを用(・た下詰
め処理手段、 13・・・境界メモリ・−を用いた士詰
め処理手段 14・・・出力処理手龍 代理人の氏名 弁理士 粟野重孝 はか1名第 図 第 図 第 図 概 図 (α) 第 図 箆 図 C) 図 紀 図 (e、ン 第 図 結 Iな G) 賂 図 第 図 弔 10因 (L:/ン 纂 図 第 図 第130 第15図 第15図 第15図 (C) 第16図 Hfgh 5pead 5ort 0 netV[MAXKEYコ、SX[MAXDATAll
rrt i+ Sum、 k+ jfor
(k−ynin−key V[k]=Q。 、k<広μ−key 。 k 十ト ) for (r −i + i <−N 、
H++ ) (k −1)ata[5ri1F
、5opt、Jey 、 vrにコ − V[k
l + 1 。 )/卑称ソートキーの頻度情報体液q Sun=l+ fo” (j y rnin kay r
ゴ <−maX key I ゴ ++)(k
−V[jl 、 V[jl −sum 、
5uyr+ −5LIJL 十 K ?1
戸各ソートキーの槽算情報作穢田for(ニーirL<
−Npi++)(K −1)icc[s[I]]、5
oht−key 、 j −V[K] 。 sx[jl −s[tl I V[K] +
+ r) がソー#−粕泉作へ”/ 子or (L = I r I <−y+
f ++ ) (s[i] 〜 sx[L
] ) /4ソートmusr:フピー’/ 手続補正音 明細書 平成3年q月/6日 平成2年特許願第 101283 号 2 発明の名称 レイアウトのコンパクション方法 3 補正をする者 4代理人〒571 5 補正の対象 1、発明の名称 レイアウトのコンパクション方法 2、特許請求の範囲 (1)LSI等のレイアウトパターンに関してデザイン
ルールを満足し かつ空き領域を可能な限り詰めること
により、最小レイアウトパターンを生成するレイアウト
コンパクション方法において、 直接呼び出しメモリーに境界の幾何学的情報を登録した
境界メモリーを作成する手段と、境界に隣接するレイア
ウト要素を探索し 前記1ノイアウト要素を前記境界メ
モリーを用いて下詰めおよび上詰め操作する手段とを備
えたレイアウトのコンパクション方法。 (2)LSI等のレイアウトパターンに関してデザイン
ルールを満足じ かつ空き領域を可能な限り詰めること
により、最小レイアウトパターンを生成するレイアウト
コンパクション方法におい6 補正の内容 レイアウト要素を高さ方向の座標て 同じ高さのレイア
ウト要素を一つのグループとするレイアウト要素グルー
プ化手段と、直接呼び出しメモリーに境界の幾何学的情
報を登録した境界メモリーを作成する手段と、レイアウ
ト境界に隣接する同じ高さのレイアウト要素グループを
グループ単位で前記境界メモリーを用いて下詰め操作す
る手段と、下詰めの際同じグループであったレイアウト
要素をグループ単位で前記境界メモリーを用いて上詰め
操作する手段とを備えたレイアウトのコンパクション方
法。 (3)LSI等のレイアウトパターンに関してデザイン
ルールを満足し かつ空き領域を可能な限り詰めること
により、最小レイアウトパターンを生成するレイアウト
コンパクション方法において、 レイアウト要素を高さ方向の座標で、同じ高さのレイア
ウト要素を一つのグループとするレイアウト要素グルー
プ化手段と、直接呼び出しメモリーに境界の幾何学的情
報を登録した境界メモリーを作成する手段と、前記レイ
アウト要素グループ化手段により得られたレイアウト要
素グループに対しグループ毎にプロセッサを割り当てる
手段と、前記プロセッサ間で処理の遅延を持たせて前記
全プロセッサにより同時に境界メモリーを用いて、各々
の前記レイアウト要素グループを独立に下詰めおよび上
詰め操作をする手段とを備えたレイアウトのコンパクシ
ョン方訴 3、発明の詳細な説明 産業上の利用分野 本発明+1VLSI等のレイアウトシステムにおいてデ
ザインルールを満たし最小面積のレイアウトを得ること
によりVLSI等の製造コスト削減を目指すレイアウト
コンパクシクン方法に関するものである。 従来の技術 半導体製造技術の向上により、配線最小間隔等を決める
デザインルールの微細化が進んでいる。 より安価なチップ製造を実現するためには 従来のレイ
アウト資源を有効利用する必要がある。また レイアウ
トを実現する過程で一般に生じる空き領域を削減する必
要がある。そのたム 既に設計された従来のデザインル
ールから新しいデザインルールへの自動変換や、レイア
ウトにおける空き領域を少なくし デザインルールに矛
盾を生じさせないレイアウトを得る方法としてコンパク
ション技術が不可欠となる。 従来の実用的なコンパクション手法の代表的なものとし
て計算機幾何学の分野における平面掃目法に基づくコン
パクション手法の提案がされていも 例えば拡張平面掃
引法を用いた方法として(よビア削除を伴った高速多機
能チャネルスペーサ(電子情報通信学会論文誌AVo1
.J72A No、2 pp、349−358 198
9年2月)がある。 平面掃引法ば 以下に示す長所を持つ。 (1)配線 コンタクトなどを幾何学的な情報のまま取
り扱し\ 単純な処理によりコンパクションを行うので
複雑な設計規則に追従しゃすい啄 柔軟性がある。 (2)配線の折り曲げが容易である。 (3)不規則な形状のレイアウトにも有効であも平面掃
引法と(上 平面上に走査線と呼ばれる水平な直線を想
定し 前記走査線を下から上に(または上から下に)移
動させながら前記走査線と交差する線分などの幾何学デ
ータを探索する手法であム 通常は2つのフェーズから
なり、第1フエーズでは幾何データを上端、弧 下端点
のX座標の小さい順に整列し この整列された端点をリ
ストy−queueに保持しておく。第27エーズでは
前記y−queueから端点を一つずつ取り出し 各
端点に対しそれが下端点ならばワークリストx−tab
leに挿入し 上端点ならば削除するという操作を繰り
返す。 こうすることにより前記x−tableには常に走査線
と交差するデータが保持される。データ数をn (nは
正整数)とすると、第17エーズは○(nlogn)の
手肌 第2フエーズは前記x−tableのデータ構造
にX座標をキーとした平衡2分木を用いれば各挿入、削
除などが0(nlogn)の手間で抑えられるので全体
としては0(nlogn)の手間で実行される。従って
、平面掃引法の時間複雑度は○(nlogn)となる。 発明が解決しようとする課題 平面掃引法(よ 前述のように多くの利点を持つ力交
取り扱うデータnの増加に伴い処理の手間はnlogn
(nは正整数)で増加するため処理効率が悪1z%
また 平面掃引法ではデータを逐次処理することを前提
とするために 複数個のプロセッサを用いたマルチプロ
セス処理を行うことによる高速化が困難である。 本発明(よ 上記の従来の問題点を解決するもので、上
記の平面掃引法の利点を持板 境界情報を登録した境界
メモリーを用いることにより、高速な上詰め下詰め処理
が実現できるレイアウトのコンパクション方法を提供す
ることを目的とする。 さらに本発明はデータn (nは正整数)の増加に対し
て処理の手間がnに比例する程度の増加で処理ができる
レイアウトのコンパクション手法を提供することを目的
とする。また本発明はマルチプロセス処理による高速化
も可能とする高速なレイアウトのコンパクション方法を
提供することを目的とすも 課題を解決するための手段 本発明(1)は直接呼び出しメモリーに境界の幾何学的
情報を登録した境界メモリーを作成する手段と、境界に
隣接するレイアウト要素を探索し前記レイアウト要素を
前記境界メモリーを用いて下詰めおよび上詰め操作する
手段とを有するレイアウトのコンパクション方法である
。 本発明(2)4L、 レイアウト要素を高さ方向の座
標で、同じ高さのレイアウト要素を一つのグループとす
るレイアウト要素グループ化手段と、直接呼び出しメモ
リーに境界の幾何学的情報を登録した境界メモリーを作
成する手段と、 レイアウト境界に隣接する同じ高さの
レイアウト要素グループをグループ単位で前記境界メモ
リーを用いて下詰め操作する手段と、下詰めの際同じグ
ループであったレイアウト要素をグループ単位で前記境
界メモリーを用いて上詰め操作する手段とを有するレイ
アウトのコンパクション方法である。 また本発明(3)は レイアウト要素を高さ方向の座標
で、同じ高さのレイアウト要素を一つのグループとする
レイアウト要素グループ化手段と、直接呼び出しメモリ
ーに境界の幾何学的情報を登録した境界メモリーを作成
する手段と、前記レイアウト要素グループ化手段により
得られたレイアウト要素グループに対しグループ毎にプ
ロセッサを割り当てる手段と、前記プロセッサ間で処理
の遅延を持たせて前記全プロセッサにより同時に境界メ
モリーを用いて、各々の前記レイアウト要素グループを
独立に下詰めおよび上詰め操作をする手段とを備えたレ
イアウトのコンパクション方法であ4 作用 本発明は 上記構成(1)により直接呼び出しメモリー
に境界情報を登録した境界メモリーを作成することによ
り、 コンパクション対象のデータの分割点の探索とデ
ザインルールを守る境界との最隣接位置情報の検索は座
標に対応するアドレスの内容を取り出すだけで行えるの
で前記境界メモリーを用いた上詰め下詰め処理は高速な
ものになム また 上記構成(2)により、 レイアウト要素グルー
プ化手段により前もって同じ高さのレイアウト要素を1
つのグループとすることで、 レイアウト要素の処理の
順番は確定され コンパクション対象データの探索を不
要とL 上詰め下詰め処理はさらに高速なものとなる。 また 上記構成(3)により境界の区分(よ メモリー
のアドレスに対応し 各々の座標毎に独立に参照するこ
とが可能なため複数個のプロセッサを用いた高速マルチ
プロセス処理も可能となる。 実施例 (実施例1) 本発明の実施例1のレイアウトコンパクション手法につ
いて、図面を参照しながら説明する。本実施例では第5
図のレイアウトに適用した場合について示す。第5図の
Bはレイアウトの下側境界を示LTはレイアウトの上側
境界を示L LHl−LH3は水平配線を示り、LV
I 〜LV64;i垂直配線を示L gridl 〜
grid3はレイアウト要素グループ名を示している。 ただし コンパクションはy軸方向(垂直方向)に行う
ものとすム 第1図(友 本発明の実施例1におけるレイアウトのコ
ンパクション方法の処理の手順を示す流れ図である。処
理11で↓瓜 レイアウト要素データの前処理を行う。 処理Ifの処理内容は第2図に示す処理21〜25であ
る。処理21でレイアウトデータとしてLH1〜LH3
、Lv1〜Lv6のデータを示すレイアウト要素データ
とこのレイアウト要素データが配置されるレイアウト領
域データとデザインルールを入力する。デザインルール
としては配線幅を最小単位長さ1 (レイアウト要素の
分割可能な最小の長さ)、レイアウト要素とレイアウト
要素とのデザインルールを守る間隔と、 レイアウト要
素とレイアウトの下側境界Bとのデザインルールを守る
間隔と、レイアウト要素とレイアウトの上側境界Tとの
デザインルールを守る間隔は各々最小単位距離2(レイ
アウト要素の分割可能な最小の長さ1が最小単位距離1
である。)とする。 (ただり、、LVIとLV2のデ
ザインルールを守る間隔は特別に最小単位距離1とすム
) 次に処理22で、前記レイアウト要素を、水平方向配線
垂直方向配線 コンタクト、矩形に分類する。 次に処理23て レイアウト領域の形状よりレイアウト
の上側境界Tとレイアウト下側境界Bを設定する。 次に処理24で垂直方向配線を除いたレイアウト要素を
垂直方向の高さ座標でソートL 同じ高さを持つレイ
アウト要素をグループ化する。ここではgridl〜g
rid3にグループ化する。 処理25により、第6図(a)に示すようにコンパクシ
ョン処理を終了した領域の幾何学的情報を参照するたべ
レイアウト領域の最小単位に対応する境界メモリー5
0を設定する。前記コンパクション処理を終了した領域
と(よ 境界メモリー50を用いた下詰め処理により拡
張されていくレイアウトの下側境界Bであム 以後下詰
め処理により拡張されていく領域R1の境界を簡単のた
め境界RBIと呼」t 境界メモリー50は それぞれ
の配線層に対して設定されており、レイアウト領域のX
軸方向の座標値が境界メモリー50のアドレスに対応L
x軸方向の座標に対応するy方向の座標値が境界メモリ
ー50の内容に対応する。 境界メモリー50の最小単位距離(または 最小単位長
さ)(ヨ 各々のレイアウト要素の分割可能な最小の
幅と長さに対応できるように設定する。 例え番え 各々のレイアウト要素の長ま 幅はすべて1
μm以上とし分割可能な最小の幅と長さが0.1μmと
すると、境界メモリーの最小単位距離1は0.1μmと
する。 第1図に示す処理12では 各レイアウト要素グループ
の境界メモリーを用いた下詰め処理を行う。第6図(a
)It コンパクション処理対象のレイアウト要素L
HI−LH3と、 レイアウトの下側境界Bの形状より
初期設定した境界メモリー50を示したものである。第
6図(b)〜第6図(i)は処理12による境界メモリ
ーを用いた下詰め処理過程のLHI〜LH3とレイアウ
トの下側境界Bを更新した領域R1の境界RBIと境界
メモリー50の変化を示すものあム 処理12の処理手
順は 第3図に示す処理31〜処理38であa 処理31により、第6図(b)に示すようζへレイアウ
トの下側境界Bに凹凸がないので上方向に(もし凹凸が
あれば上方向と凹凸に合わせて左右方向に)デザインル
ールを守るだけ拡張し 境界RBIの初期設定をする。 このときR1が拡張されたレイアウトの下側境界Bの領
域である。そして、領域R1の境界RBIの幾何学的情
報を境界メモリー50に格納する。 (X軸方向の座標
に対応ず&yX軸方向座標値を境界メモリー50に格納
する。この場合デザインルールが最小単位距離2なので
、境界RBIの高さのy座標値(友X座標のO〜20範
囲ですべて2であり、境界RB1の幾何学的情報を格納
した境界メモリー50の内容法 境界メモリー50のア
ドレスの0〜20の範囲ですべて2になる。) 次へ 第3図に示す処理32により、第6図(b)に示
す境界RBIに隣接するgridl上のレイアウト要素
グループのレイアウト要素LHIを検索(search
) L、 L HIの左端から右端までの範囲で境界
RBIの幾何学的情報(境界RBIの形状)を認識り、
、LHIの左端から右端までの範囲に対応する境界メモ
リー50の幾何学的情報(ここで6表 境界メモリー5
0のアドレス6〜9までの境界メモリー50の内容)を
検索する。LHlの左端から右端までの範囲で境界RB
Iに凹凸はないので(境界メモリーのアドレス6〜9ま
での境界メモリーの内容はすべて2で値が変化する所は
ない)、折れ曲がり候補点は設定されな1.X。 処理33により、LHIが水平配線データであるかどう
かを判定す4 LHIζ友 水平配線であるので、処
理34により、処理32で求めた折れ曲がり候補点をも
とにLHIに折れ曲がり点は設定する。この場合、折れ
曲がり候補点は設定されていないので、折れ曲がり点は
設定されなし−次側:、。 処理35により、前記処理32により、保持している境
界メモリー50の幾何学的情報より第6図(C)に示す
ようにLHIを前記境界とのデザインルールを守る最隣
接点(境界RBIと接する力(決して重ならない位置)
に移動する。 次に 処理36により、第6図(d)に示すようG;L
HIの上方向と左右方向に境界RBIを拡張し 拡張さ
れた境界RBIに対応する境界メモリー50の内容の値
を更新する。この時、X座標11に対応する境界メモリ
ー50の内容が5に更新されていないの(よ 境界RB
IがX座標値4以上11未満の範囲で拡張されたためで
ある。境界RBIの更新に対し 境界メモリー50の内
容の更新!表 更新される境界RBIの始点のX座標以
上終点のxJI標未満で行われる。次に処理37により
全データの処理が終了したかどうかを判定する。この場
合、データが残っているので、処理32から37を繰り
返す。 処理32により、第6図(d)に示す境界RBlに隣接
するgrid2上のレイアウト要素グル−プのレイアウ
ト要素LH2を探索L LH2の左端から右端までの
範囲で境界RBIの幾何学的情報(境界RBIの形状)
を認識L LH2の左端から右端までの範囲に対応す
る境界メモリー50の幾何学的情報(ここでは 境界メ
モリーのアドレス1〜18までの境界メモリーの内容)
を検索す、L LH2の左端から右端までの範囲で境
界RBIに凹凸が存在するので(境界メモリーのアドレ
ス4と11で境界メモリーの内容が変化している)、境
界RBIに凹凸に合わせて折れ曲がり候補点を設定する
。処理33により、LH2が水平配線データであるかど
うかを判定す& LH2(表 水平配線であるので、
処理34により、第6図(e)に示すように処理32で
求めた折れ曲がり候補点よりLH2に折れ曲がり点を設
定し 前記折れ曲がり点でLH2をLH2−1とLH2
−2とLH2−3に分割すム この時、LH2−2はL
H2−1とLH2−3とを垂直線で結ぶ必要があるた敢
マージンを持たせる必要がある。この場合、 LH2
−2は第6図(e)に示すように両端の分割点より、配
線巾だけ拡張する。次に処理35により前記処理32で
探索した境界メモリー50の幾何学的情報よりLH2−
1とLH2−2とLH2−3を境界RBIに接する位置
に移動すム 次区 処理36により、第6図(f)に示
すよう+;、LH2−1とLH!−2とLH2−3の上
方向と左右方向に境界50を拡張L 拡張された領域R
1の境界RBIに対応すぺ 境界メモリー50の内容の
値を更新すム 次に処理37により全データの処理が終
了したかどうかを判定する。この場合 g r i d
3 JQ レイアウト要素グループがあるの)処理
32から37を第6図(f)〜第6図(h)に示すよう
に同様にして繰り返す。 全てのレイアウト要素グループのレイアウト要素の処理
を終了したなら、処理38により、第6図(h)に示す
境界メモリー50を参照L−第6図(i)に示すように
レイアウトの上側境界Tの高さ位置を決定する。第7図
力(処理12により得られたレイアウト結果である。こ
こで、 LJIとLJ2はLH2の折り曲げにより発生
した垂直方向配線であa しかし 処理12により得ら
れたレイアウト結果にはLJIのように無駄な配線の折
れ曲がりがあるので、無駄な配線の折れ曲がりを取り除
くことによりレイアウトの整形を行なう、第1図に示す
処理13を行う。 処理13の処理手順ζ友 第4図に示す処理41〜45
である。第8図(a)ζよ 処理12により得られたレ
イアウト結果の上詰め処理対象となる水平配線LHIと
LH2−1とLH2−2とLH2−3とLH3と初期化
された境界メモリー50である。第8図(b)〜第8図
(f)は処理13による境界メモリーを用いた上詰め処
理過程のLH1〜LH3と境界RB2と境界メモリー5
0の変化を示すものである。処理41により第8図(b
)に示すよう番ミ レイアウトの上側境界Tを凹凸が
ないので下方向に(もし凹凸があれば下方向と凹凸に合
わせて左右方向に)デザインルールを守るだけ拡張し
処理31と同様に拡張したレイアウトの上側境界Tの領
域R2の幾何学的情報を境界メモリー50に格納する。 以後拡張された領域R2の境界を簡単のため境界RB2
と呼、G% 処理42によりgrid3のレイアウト
要素グループのLH3の左端から右端の範囲で境界メモ
リー50の幾何学的情報を検索し 処理43によりLH
3を無駄な折れ曲がりを減らす位置に移動させも しか
しLH3に折れ曲がりはなく、 しかも境界RB2に接
しているので実際に移動することはなt、% 次に処
理44によりLH3から下方向と左右方向に前記レイア
ウトの上側境界Tをデザインルールを守るだけ拡張し
拡張された領域R2の境界RB2に対応する境界メモリ
ー50の内容の値を更新する。次に処理45により全デ
ータの処理が完了したかどうかを判定する。この場合
gridlおよびgrid2のレイアウト要素グループ
が残っているので、処理42から処理45を繰り返す。 処理42により第8図(c)に示すgrid2のレイア
ウト要素グループのレイアウト要素LH2−1とLH2
−2とLH2=3の各々の左端から右端の範囲で境界メ
モリー50の幾何学的情報を検索する。処理43により
、境界メモリーの幾何学的情報よりLH2−1とLH2
−2とLH2−3を無駄な折れ曲がりを減らす位置に移
動させも この時、LH2−2は境界RB2に接し し
かもLH2−1とLH2−2とLH23の中で最も高い
位置にあるので、LH2−2の高さを上詰め基準位置と
し 前記上詰め基準位置より下にあるLH2−1とLH
2−3をできるだけ前記上詰め基準位置まで移動させる
。この場合LH2−1は前記上詰め基準位置に移動でき
る力丈L H2−3ζ戴 境界RB2に接しているため
移動できなしも 処理43の後のLH2−1とLH2−
2とLH2−3の各々の位置は第8図(d)に示すLH
2−]とLH2−2とLH2−3である。 処理44により、境界RB2を第8図(e)に示すよう
に拡張する。次に処理45により全データの処理が完了
したかどうかを判定する。この場合、gridlのレイ
アウト要素グループが残っているので、 gridlの
レイアウト要素グループに処理42から処理45を繰り
返し 第9図に示すレイアウト結果を得る。 また 配線の折れ曲がりを考慮しない場合へレイアウト
結果を第1O図に示す。第9図に示すレイアウト結果と
第1O図に示すレイアウト結果を比較するとレイアウト
領域の高さは第9図に示すレイアウト結果力交 第10
図に示すレイアウト結果の3分の2となり、配線の折り
曲げが十分効果的であることが分かる。 本実施例1で(表 直接呼び出しメモリーに幾何学的な
境界RBの情報を登録した境界メモリー50を作成する
手段により、コンパクション対象のデータの検索(よ
レイアウト領域のX座標に対応する境界メモリー50の
アドレスの内容を取り出すだけですむた数 境界メモリ
ー50を用いた上詰め下詰め処理cヨ 従って高速な
ものになる。本実施例1の時間複雑度は コンパクショ
ン処理の対象となるデータ数N、レイアウト領域幅W、
レイアウトグループ数Tとして、次のような関係がある
。 NCx−TW (1)境界メモリ
ーの範囲にζ山 前記境界メモリーの最小単位をUとす
ると、 K = W/u (2) データを境界メモリーへ詰め込むために要する処理の時
間複雑度Cは C= T*に = T*W/u ((2)より) = C**N (3) (C−は比例常数で、 U項も含む。)したがって、時
間複雑度Cは0(N)になる。さらに ソート手法とし
て”係数情報の整列処理方法″(日本国特許出願番号1
−67011)によれは 実施例1は全体として○(N
)の時間複雑度で処理できる。 (垂直方向配線の処理
(よ 水平方向配線の両端とコンタクトをレイアウト領
域を左から(または右から)1度だけ探索することで○
(N)の時間複雑度で処理できるからである。)このソ
ート手法の特徴(表 すべてのソート対象となるデータ
のグローバル情報をあらかじめ頻度情報Vとして求めて
おき、その後に頻度情報Vに基づく積算情報をV上に作
成する。この積算情報Vカ(各々ソートキーを持つ情報
の最小からの順番を指している点に着目すれば 後1よ
データを書き出すのみでソートが完了する。第16図
に示した0(N)ソートアルゴリズムt1 1つのソー
トキーをもつデータについてのインデックスソート処理
であ&s[i]に1.、 データの読み取り順番を示
すもので、 i番目の情報が元のデータ順番の何番目に
書かれているかを示すインデックスである。第16図に
おいて、m1n−key、max keyf上 ソー
トキーの値の範囲である。このソートアルゴリズムでζ
友 ソート処理後の順番について、もしも同一のソート
キーを持つ情報については ソート処理前の順番が保存
されている。従って、 2つ以上のソートキーを持つデ
ータ(例えl;!、 X座標とX座標等)について(
よ 従って、このソートアルゴリズムを優先順位の低い
ソートキーから順番へ直列に繰り返すのみで得ることが
できる。上記の手法によれ4款 高々3 (N+K)
から4(N+K)の繰り返し処理によってソートが完了
する。ここでK 41 座標などに相当する値がもつ
範囲であム以上説明したように 本実施例1によれば
境界メモリー50を作成する手段と、レイアウト要素を
高さ方向の座標でグループ化する手段と、レイアウト境
界に隣接する同じ高さのレイアウト要素グループをグル
ープ単位で境界メモリー50を用いて下詰めする手段と
、下詰めの際同じグループであったレイアウト要素をグ
ループ単位で境界メモリー50を用いて上詰めする手段
により、最小のレイアウト結果を、非常に高速に得るこ
とができ、その実用的効果は太きb℃ また 複数の層
を持つレイアウトに対して境界メモリーは各々のレイア
ウト領域層に設定できるので、複数のレイアウト領域層
を持つレイアウトのコンパクション処理にL 簡単に適
用できる。 な耘 本手法は 水平配線を例に上げ説明したバ 水平
配線ばかりでなく、機能回路ブロック等のデザインルー
ルを守りかつ面積最小を目的としたレイアウト一般のコ
ンパクションにおいても有効であることはいうまでもな
賎 (実施例2) 実施例2に適用したレイアウトは第5図に示す実施例1
と同じものであり、デザインルールも実施例1に適用し
たものと同じである。第11図〈実施例2の処理手順を
示す。以下本実施例2の詳細な説明を図面を用いて行な
う。 第11図に示す処理111では レイアウト要素データ
の前処理を行う。前記処理111の処理内容は第12図
に示す処理221〜128 T、 処理121から処
理124までは実施例1の第2図に示す処理21から処
理24までと同じである。 処理121によりレイアウト要素データとレイアウト領
域データとデザインルールを入力する。次に処理122
で、前記レイアウト要素を、水平方向配線 垂直方向配
線 コンタクト、矩形に分類する。次に処理123で、
レイアウト領域形状データよりレイアウトの上側境界
とレイアウトの下側境界を設定すa 次に処理124で
垂直方向配線を除いたレイアウト要素を垂直方向の高さ
方向の座標でソートし 同じ高さを持つレイアウト要素
をグループ化すも 処理125により、各レイアウト要
素グループのレイアウト要素を最小単位長さ1で分割す
も (例えばあるレイアウト要素の長さが10μmとし
最小単位長さを0.1μmとすると、前記レイアウト
要素は 最小単位長さ1のレイアウト要素に100等分
される。)処理126により、第14図(a)に示すよ
うにレイアウトの下側境界Bの拡張処理をプロセッサ0
が行数 レイアウト要素グループgridlの処理をプ
ロセッサ1が行1.X、 レイアウト要素グループg
rid2の処理をプロセッサ2が行しくレイアウト要素
グループgrid3の処理をプロセッサ3を割り当て4
処理127で処理されている最小単位長さ1のレイア
ウト要素の下の境界RBの幾何学的情報を参照するため
く 実施例1と同様に境界メモリー50の初期設定を行
なう。 処理112で(よ 各レイアウト要素グループの下詰め
処理を行う。第14図(b)は各プロセッサ0〜3のコ
ンパクション処理における開始から終了までの様子を示
すタイムチャートである。プロセッサOは1=0からレ
イアウトの下側境界Bの拡張処理を行う。プロセッサl
はt=△Wからgridlの処理を行う。プロセッサ2
はt=2△Wからgrid2の処理を行う。プロセッサ
3はt=3△Wからgr id3の処理を行う。ここで
△Wは境界メモリー50の1アドレスを処理する時間*
デザインルールを守るために必要な距離を示し デザイ
ンルールを守るために必要な距離とは デザインルール
(2)十最小単位に分割されたレイアウト要素の長さ(
1)で、 3である。 また1アドレスを処理する時間を1とし △W−3とす
ム 第15図(a)に示すように プロセッサ3が処理
を開始するときに(よ プロセッサ0はレイアウト領域
のX軸座標9まで処理を終了しプロセッサ1はレイアウ
ト領域のX軸座標6まで処理を終了し プロセッサ2は
レイアウト領域のX軸座標3まで処理を終了している。 プロセッサ0が処理を終了したX軸座標の位置情報はプ
ロセッサ1に送られ プロセッサ1が処理を終了したX
軸座標の位置情報はプロセッサ2に送られ ブロセッサ
2が処理を終了したX軸座標の位置情報はプロセッサ3
に送られも このように位置情報が送られた各プロセッ
サはどこまで処理可能であるかを認識すも 走査線DL
は各プロセッサO〜3の処理を終了した最新のX*ll
I座標の相対位置の関係を視覚的に示したものである。 第13図は下詰め処理112、上詰め処理113におい
て用いれる各プロセッサの処理の流れを示すフロー図で
ある。第15図(b)に示すようC,、、各プロセッサ
の処理を最小単位長さ1だけ進める。各プロセッサ0〜
3は以下に示す処理を並行に行う。プロセッサOの処理
は他のプロセッサと違(\ 下にレイアウト要素グルー
プが存在しないた数 処理131〜134を行う必要は
なく、処理135から開始すム 処理135によりレイ
アウト領域のX軸座標値9のレイアウト下側境界Bを拡
張し対応する境界メモリー50の内容を2としく境界R
Bの更新に対し 境界メモリー50の内容の更新ζ戴
更新されるレイアウト境界の始点のX軸座標以上終点の
xU座標未満で行われるためX軸座標10に対応する境
界メモリー50の境界メモリーのアドレス10の境界メ
モリーの内容(よ 更新されていな賎 )処理136に
より処理の終了したxl$座標情報をプロセッサ1に送
本処理137によりプロセッサ終了条件を満たせば処理
を終了し 前記条件を満たしていなければプロセッサO
の処理を最小単位長さ1だけ進める。 プロセッサ1(友 処理131によりプロセッサ0の処
理を終了したレイアウト領域のX軸座標の位置情報を参
照限 プロセッサOの処理がプロセッサ1の処理より最
小単位距離3だけ進むまで待機し プロセッサ0の処理
が△W(最小単位距離3を処理する時間)だけ進めば
処理132によりレイアウト要素グループgridlの
レイアウト要素を探索すも 処理133でgridlの
レイアウト要素LHIの最小単位長さIに分割されたレ
イアウト要素があるかないかを判定し レイアウト要素
があれば 処理134により第15図(b)に示すよう
にLHIの最小単位長さlに分割されたレイアウト要素
のX軸座標値と対応する境界メモリー50の内容を参照
し 境界RBと最小単位長さlに分割されf、LHlの
レイアウト要素を境界RBに接する位置に移動させる。 次に処理135により第15図(c)に示すようにデザ
インルールを守るように境界メモリー50のX軸座標4
以上〜6未満を2から5に更新する。処理136により
プロセッサ1が処理が終了したX軸座標情報をプロセッ
サ2へ送る。処理137により処理の終了条件を判定す
a プロセッサ1はこの場合処理終了条件を満たしてい
ないた八 プロセッサ1の処理を最小単位長さ1だけ進
める。 プロセッサ2の処理は 処理131によりプロセッサ1
の処理を終了した境界RBOX軸座標情報を参照し プ
ロセッサ1の処理が△Wだけ進むまで待機する。その後
、プロセッサ1の処理が△Wだけ進めLL 処理132
によりレイアウト要素グループgrid2のレイアウト
要素を探索し処理133により、第15図(b)に示す
ように前記LH2の最小単位に分割されたレイアウト要
素があるかないかを判定する。レイアウト要素があれば
処理134によりX*Ill座標値と対応する境界メモ
リー50の内容を参照し 境界RBとLH2の最小単位
に分割されたレイアウト要素を境界RBに接する位置ま
で移動させる。次へ 処理135により第15図(C)
に示すように境界メモリー50のX軸座標3以上を4未
満に対応するアドレスの内容を2から5に更新する。
(境界RBを更新する範囲としてはX軸座標の2以上を
4未満である力(2はすでにX軸座標値が5になってお
り、更新する必要がないためである。)プロセッサ1と
同様へ 処理の終了したプロセッサ2のX軸座標情報を
プロセッサ3へ送りプロセッサ2の処理を最小単位長さ
1だけ進める。 プロセッサ3の処理対象であるレイアウト要素グループ
g r i d 3 LL 処理132でレイアウト
要素がみつからないたべ 処理133〜135を行う必
要はなく、また最上位レイアウト要素グループを処理す
るプロセッサであるため処理136は行う必要もなL〜
第15図(d)に第15図(C)に対して更に最小単
位長さ1進めた処理状況を示す。上記に示した方法を各
々のプロセッサ0〜3の処理を繰り返し 第7図に示す
下詰め処理の結果を得る。第9図に示すレイアウト結果
はレイアウトの上側境界Tか収 無駄な水平配線の折り
曲げを取り除くようへ 上記に示した下詰め処理と同様
に 上詰め処理を行うことにより得ることができる。 実施例2に示したマルチプロセス処理において、コンパ
クション対象のデータ数N、レイアウト領域幅W、レイ
アウトグループ数Tとする。T個のレイアウト要素グル
ープとレイアウトの下側境界を処理するT+1個のプロ
セッサを用意する。各レイアウト要素グループを処理す
る各プロセッサが処理しているX座標位置力丈 各レイ
アウト要素グループの下に存在するすべてのレイアウト
要素グループを処理する各プロセッサの処理を終了した
X座標位置を越えてはならな(−そのた数 各プロセッ
サ間で距離的および時間的な処理の遅れが存在すa 各
プロセッサ間で処理の遅れ(よ 最小単位距離1の処理
に要する時間△W1とし 各プロセッサがデザインルー
ルを守るために必要な距離的な処理の遅れをd□とすれ
ば 各プロセッサ間の時間的な遅れ△Wは ΔW=d、−△w+ (4) となる。レイアウトの下側境界から最上位のレイアウト
グループTの各々のプロセッサの処理時間T @、 T
1. T 2 、 T s 、・・・・・、TTはT
s = W/u*△w1 T+ = W/u*△w1 + △WT2 =
W/u*△w1 + 2・△WTs = W
/ u * △w+ + 3 ・ △WT
a = W/u* 6w1 + 4 ・
△WTt = W/u*△w1 + T
・△Wであり、前記最下位のレイアウトの下側境界を処
理するプロセッサと最上位のレイアウトグループTのプ
ロセッサの処理時間の差はT・△Wであり、全体の処理
時間T、はTTと同じとなり、T−=W/u*△w1
+T・△W(5)したがって処理の時間複雑度CMは Cれ= O(W+T)であり前記(1)式よりCM=
O(W+T)<O(N)=O(W−T)となり、非常に
有効なマルチプロセス処理が実現し高速化ができも ま
た 複数の層を持つレイアウトに対して境界メモリーは
各々のレイアウト領域層に設定できるので、複数のレイ
アウト領域層を持つレイアウトのコンパクション処理に
L 簡単に適用できも な耘 本実施例ではプロセッサ0〜プロセツサ3までの
4個のプロセッサで説明してきた力交 レイアウト要素
グループ数に応じたプロセッサを用いればよく、プロセ
ッサ数は4つに限定されなL%発明の詳細 な説明したようく 本発明によれにE、LSI等のレイ
アウトパターンに関して、直接呼び出しメモリーに境界
情報を登録した境界メモリーを作成する手段により、
コンパクション対象のデータの検索力(座標に対応する
アドレスの内容を取り出すだけですむた教 前記境界メ
モリーを用いた高速な上詰め下詰め処理が実現できる。 また レイアウト要素グループ化手段により前もって同
じ高さのレイアウト要素を1つのグループとすることで
、 レイアウト要素の処理の順番は確定されコンパクシ
ョン対象データの探索を不要とし 上詰め下詰め処理は
さらに高速なものとなる。さら凶 境界の区分ζ友 メ
モリーのアドレスに対応し各々の座標毎に独立に参照す
ることが可能なため複数個のプロセッサを用いた高速マ
ルチプロセス処理も可能となり、その実用的効果は犬き
1.%
パクション方法の処理手順を示す流れ巨第2図は処理I
Jのレイアウトデータの前処理および境界メモリー作成
処理の処理手順を示す流れ巨 第3図は処理12である
境界メモリーを用いた丁詰め処理の処理手順を示す流れ
医 第4図は処理13である境界メモリーを用いた干詰
め処理の処理手順を示す流れ医 第5図は本発明を適用
したレイアウトを示す医 第6図(a)〜第6図(i)
は境界メモリーを用いた下詰め処理によるレイアウト要
素と前記境界メモリーの処理過程での様子を示す医 第
7図は境界メモリーを用いた下詰め処理によるレイアウ
ト結果を示す匝 第8図(a)〜第8図(f)は境界メ
モリーを用いた上詰め処理によるレイアウト要素と前記
境界メモリの処理過程での様子を示す医 第9図は境界
メモリーを用いた上詰め処理による最終的なし・イアウ
ド結果を示す医 第を図は配線の折り曲げを考虜せずく
レイアウトのコンパクション処理を行った場合のレイ
アウト結果を示す@ 第11図は実施例2におけるマル
チブロッセサを用いたレイアウトのコンパクション処理
の処理手順を示す流れは 第12図は処理111のレイ
アウトデータの前処理および境界メモリー作成処理の処
理手順を示す流れ医 第13図は実施例2における各プ
ロセッサの処理の処理手順を示す流れ王 第14図(a
)は実施例2における各1ノイアウト要素グループに割
り当てられたプロセッサの各プロセッサ間での通信の様
子と、各プロセッサと境界メモリーとの通信の様子を示
す構成は 第14図(b)は実施例2におけるプロセッ
サの処理のタイムチャート医 第15図(a)〜第15
図(e)は実施例2におけるマルチプロッセサを用いた
レイアウトのコンパクション処理によるレイアウト要素
と境界メモリの処理過程の様子を示すは 第16図は1
つのソートキーをもつデータについてのインデックスソ
ート処理であるソートアルゴリズム図である。 11・・・レイアウトデータの前処理および境界メモリ
ー作成手段、 12・・・境界メモリーを用(・た下詰
め処理手段、 13・・・境界メモリ・−を用いた士詰
め処理手段 14・・・出力処理手龍 代理人の氏名 弁理士 粟野重孝 はか1名第 図 第 図 第 図 概 図 (α) 第 図 箆 図 C) 図 紀 図 (e、ン 第 図 結 Iな G) 賂 図 第 図 弔 10因 (L:/ン 纂 図 第 図 第130 第15図 第15図 第15図 (C) 第16図 Hfgh 5pead 5ort 0 netV[MAXKEYコ、SX[MAXDATAll
rrt i+ Sum、 k+ jfor
(k−ynin−key V[k]=Q。 、k<広μ−key 。 k 十ト ) for (r −i + i <−N 、
H++ ) (k −1)ata[5ri1F
、5opt、Jey 、 vrにコ − V[k
l + 1 。 )/卑称ソートキーの頻度情報体液q Sun=l+ fo” (j y rnin kay r
ゴ <−maX key I ゴ ++)(k
−V[jl 、 V[jl −sum 、
5uyr+ −5LIJL 十 K ?1
戸各ソートキーの槽算情報作穢田for(ニーirL<
−Npi++)(K −1)icc[s[I]]、5
oht−key 、 j −V[K] 。 sx[jl −s[tl I V[K] +
+ r) がソー#−粕泉作へ”/ 子or (L = I r I <−y+
f ++ ) (s[i] 〜 sx[L
] ) /4ソートmusr:フピー’/ 手続補正音 明細書 平成3年q月/6日 平成2年特許願第 101283 号 2 発明の名称 レイアウトのコンパクション方法 3 補正をする者 4代理人〒571 5 補正の対象 1、発明の名称 レイアウトのコンパクション方法 2、特許請求の範囲 (1)LSI等のレイアウトパターンに関してデザイン
ルールを満足し かつ空き領域を可能な限り詰めること
により、最小レイアウトパターンを生成するレイアウト
コンパクション方法において、 直接呼び出しメモリーに境界の幾何学的情報を登録した
境界メモリーを作成する手段と、境界に隣接するレイア
ウト要素を探索し 前記1ノイアウト要素を前記境界メ
モリーを用いて下詰めおよび上詰め操作する手段とを備
えたレイアウトのコンパクション方法。 (2)LSI等のレイアウトパターンに関してデザイン
ルールを満足じ かつ空き領域を可能な限り詰めること
により、最小レイアウトパターンを生成するレイアウト
コンパクション方法におい6 補正の内容 レイアウト要素を高さ方向の座標て 同じ高さのレイア
ウト要素を一つのグループとするレイアウト要素グルー
プ化手段と、直接呼び出しメモリーに境界の幾何学的情
報を登録した境界メモリーを作成する手段と、レイアウ
ト境界に隣接する同じ高さのレイアウト要素グループを
グループ単位で前記境界メモリーを用いて下詰め操作す
る手段と、下詰めの際同じグループであったレイアウト
要素をグループ単位で前記境界メモリーを用いて上詰め
操作する手段とを備えたレイアウトのコンパクション方
法。 (3)LSI等のレイアウトパターンに関してデザイン
ルールを満足し かつ空き領域を可能な限り詰めること
により、最小レイアウトパターンを生成するレイアウト
コンパクション方法において、 レイアウト要素を高さ方向の座標で、同じ高さのレイア
ウト要素を一つのグループとするレイアウト要素グルー
プ化手段と、直接呼び出しメモリーに境界の幾何学的情
報を登録した境界メモリーを作成する手段と、前記レイ
アウト要素グループ化手段により得られたレイアウト要
素グループに対しグループ毎にプロセッサを割り当てる
手段と、前記プロセッサ間で処理の遅延を持たせて前記
全プロセッサにより同時に境界メモリーを用いて、各々
の前記レイアウト要素グループを独立に下詰めおよび上
詰め操作をする手段とを備えたレイアウトのコンパクシ
ョン方訴 3、発明の詳細な説明 産業上の利用分野 本発明+1VLSI等のレイアウトシステムにおいてデ
ザインルールを満たし最小面積のレイアウトを得ること
によりVLSI等の製造コスト削減を目指すレイアウト
コンパクシクン方法に関するものである。 従来の技術 半導体製造技術の向上により、配線最小間隔等を決める
デザインルールの微細化が進んでいる。 より安価なチップ製造を実現するためには 従来のレイ
アウト資源を有効利用する必要がある。また レイアウ
トを実現する過程で一般に生じる空き領域を削減する必
要がある。そのたム 既に設計された従来のデザインル
ールから新しいデザインルールへの自動変換や、レイア
ウトにおける空き領域を少なくし デザインルールに矛
盾を生じさせないレイアウトを得る方法としてコンパク
ション技術が不可欠となる。 従来の実用的なコンパクション手法の代表的なものとし
て計算機幾何学の分野における平面掃目法に基づくコン
パクション手法の提案がされていも 例えば拡張平面掃
引法を用いた方法として(よビア削除を伴った高速多機
能チャネルスペーサ(電子情報通信学会論文誌AVo1
.J72A No、2 pp、349−358 198
9年2月)がある。 平面掃引法ば 以下に示す長所を持つ。 (1)配線 コンタクトなどを幾何学的な情報のまま取
り扱し\ 単純な処理によりコンパクションを行うので
複雑な設計規則に追従しゃすい啄 柔軟性がある。 (2)配線の折り曲げが容易である。 (3)不規則な形状のレイアウトにも有効であも平面掃
引法と(上 平面上に走査線と呼ばれる水平な直線を想
定し 前記走査線を下から上に(または上から下に)移
動させながら前記走査線と交差する線分などの幾何学デ
ータを探索する手法であム 通常は2つのフェーズから
なり、第1フエーズでは幾何データを上端、弧 下端点
のX座標の小さい順に整列し この整列された端点をリ
ストy−queueに保持しておく。第27エーズでは
前記y−queueから端点を一つずつ取り出し 各
端点に対しそれが下端点ならばワークリストx−tab
leに挿入し 上端点ならば削除するという操作を繰り
返す。 こうすることにより前記x−tableには常に走査線
と交差するデータが保持される。データ数をn (nは
正整数)とすると、第17エーズは○(nlogn)の
手肌 第2フエーズは前記x−tableのデータ構造
にX座標をキーとした平衡2分木を用いれば各挿入、削
除などが0(nlogn)の手間で抑えられるので全体
としては0(nlogn)の手間で実行される。従って
、平面掃引法の時間複雑度は○(nlogn)となる。 発明が解決しようとする課題 平面掃引法(よ 前述のように多くの利点を持つ力交
取り扱うデータnの増加に伴い処理の手間はnlogn
(nは正整数)で増加するため処理効率が悪1z%
また 平面掃引法ではデータを逐次処理することを前提
とするために 複数個のプロセッサを用いたマルチプロ
セス処理を行うことによる高速化が困難である。 本発明(よ 上記の従来の問題点を解決するもので、上
記の平面掃引法の利点を持板 境界情報を登録した境界
メモリーを用いることにより、高速な上詰め下詰め処理
が実現できるレイアウトのコンパクション方法を提供す
ることを目的とする。 さらに本発明はデータn (nは正整数)の増加に対し
て処理の手間がnに比例する程度の増加で処理ができる
レイアウトのコンパクション手法を提供することを目的
とする。また本発明はマルチプロセス処理による高速化
も可能とする高速なレイアウトのコンパクション方法を
提供することを目的とすも 課題を解決するための手段 本発明(1)は直接呼び出しメモリーに境界の幾何学的
情報を登録した境界メモリーを作成する手段と、境界に
隣接するレイアウト要素を探索し前記レイアウト要素を
前記境界メモリーを用いて下詰めおよび上詰め操作する
手段とを有するレイアウトのコンパクション方法である
。 本発明(2)4L、 レイアウト要素を高さ方向の座
標で、同じ高さのレイアウト要素を一つのグループとす
るレイアウト要素グループ化手段と、直接呼び出しメモ
リーに境界の幾何学的情報を登録した境界メモリーを作
成する手段と、 レイアウト境界に隣接する同じ高さの
レイアウト要素グループをグループ単位で前記境界メモ
リーを用いて下詰め操作する手段と、下詰めの際同じグ
ループであったレイアウト要素をグループ単位で前記境
界メモリーを用いて上詰め操作する手段とを有するレイ
アウトのコンパクション方法である。 また本発明(3)は レイアウト要素を高さ方向の座標
で、同じ高さのレイアウト要素を一つのグループとする
レイアウト要素グループ化手段と、直接呼び出しメモリ
ーに境界の幾何学的情報を登録した境界メモリーを作成
する手段と、前記レイアウト要素グループ化手段により
得られたレイアウト要素グループに対しグループ毎にプ
ロセッサを割り当てる手段と、前記プロセッサ間で処理
の遅延を持たせて前記全プロセッサにより同時に境界メ
モリーを用いて、各々の前記レイアウト要素グループを
独立に下詰めおよび上詰め操作をする手段とを備えたレ
イアウトのコンパクション方法であ4 作用 本発明は 上記構成(1)により直接呼び出しメモリー
に境界情報を登録した境界メモリーを作成することによ
り、 コンパクション対象のデータの分割点の探索とデ
ザインルールを守る境界との最隣接位置情報の検索は座
標に対応するアドレスの内容を取り出すだけで行えるの
で前記境界メモリーを用いた上詰め下詰め処理は高速な
ものになム また 上記構成(2)により、 レイアウト要素グルー
プ化手段により前もって同じ高さのレイアウト要素を1
つのグループとすることで、 レイアウト要素の処理の
順番は確定され コンパクション対象データの探索を不
要とL 上詰め下詰め処理はさらに高速なものとなる。 また 上記構成(3)により境界の区分(よ メモリー
のアドレスに対応し 各々の座標毎に独立に参照するこ
とが可能なため複数個のプロセッサを用いた高速マルチ
プロセス処理も可能となる。 実施例 (実施例1) 本発明の実施例1のレイアウトコンパクション手法につ
いて、図面を参照しながら説明する。本実施例では第5
図のレイアウトに適用した場合について示す。第5図の
Bはレイアウトの下側境界を示LTはレイアウトの上側
境界を示L LHl−LH3は水平配線を示り、LV
I 〜LV64;i垂直配線を示L gridl 〜
grid3はレイアウト要素グループ名を示している。 ただし コンパクションはy軸方向(垂直方向)に行う
ものとすム 第1図(友 本発明の実施例1におけるレイアウトのコ
ンパクション方法の処理の手順を示す流れ図である。処
理11で↓瓜 レイアウト要素データの前処理を行う。 処理Ifの処理内容は第2図に示す処理21〜25であ
る。処理21でレイアウトデータとしてLH1〜LH3
、Lv1〜Lv6のデータを示すレイアウト要素データ
とこのレイアウト要素データが配置されるレイアウト領
域データとデザインルールを入力する。デザインルール
としては配線幅を最小単位長さ1 (レイアウト要素の
分割可能な最小の長さ)、レイアウト要素とレイアウト
要素とのデザインルールを守る間隔と、 レイアウト要
素とレイアウトの下側境界Bとのデザインルールを守る
間隔と、レイアウト要素とレイアウトの上側境界Tとの
デザインルールを守る間隔は各々最小単位距離2(レイ
アウト要素の分割可能な最小の長さ1が最小単位距離1
である。)とする。 (ただり、、LVIとLV2のデ
ザインルールを守る間隔は特別に最小単位距離1とすム
) 次に処理22で、前記レイアウト要素を、水平方向配線
垂直方向配線 コンタクト、矩形に分類する。 次に処理23て レイアウト領域の形状よりレイアウト
の上側境界Tとレイアウト下側境界Bを設定する。 次に処理24で垂直方向配線を除いたレイアウト要素を
垂直方向の高さ座標でソートL 同じ高さを持つレイ
アウト要素をグループ化する。ここではgridl〜g
rid3にグループ化する。 処理25により、第6図(a)に示すようにコンパクシ
ョン処理を終了した領域の幾何学的情報を参照するたべ
レイアウト領域の最小単位に対応する境界メモリー5
0を設定する。前記コンパクション処理を終了した領域
と(よ 境界メモリー50を用いた下詰め処理により拡
張されていくレイアウトの下側境界Bであム 以後下詰
め処理により拡張されていく領域R1の境界を簡単のた
め境界RBIと呼」t 境界メモリー50は それぞれ
の配線層に対して設定されており、レイアウト領域のX
軸方向の座標値が境界メモリー50のアドレスに対応L
x軸方向の座標に対応するy方向の座標値が境界メモリ
ー50の内容に対応する。 境界メモリー50の最小単位距離(または 最小単位長
さ)(ヨ 各々のレイアウト要素の分割可能な最小の
幅と長さに対応できるように設定する。 例え番え 各々のレイアウト要素の長ま 幅はすべて1
μm以上とし分割可能な最小の幅と長さが0.1μmと
すると、境界メモリーの最小単位距離1は0.1μmと
する。 第1図に示す処理12では 各レイアウト要素グループ
の境界メモリーを用いた下詰め処理を行う。第6図(a
)It コンパクション処理対象のレイアウト要素L
HI−LH3と、 レイアウトの下側境界Bの形状より
初期設定した境界メモリー50を示したものである。第
6図(b)〜第6図(i)は処理12による境界メモリ
ーを用いた下詰め処理過程のLHI〜LH3とレイアウ
トの下側境界Bを更新した領域R1の境界RBIと境界
メモリー50の変化を示すものあム 処理12の処理手
順は 第3図に示す処理31〜処理38であa 処理31により、第6図(b)に示すようζへレイアウ
トの下側境界Bに凹凸がないので上方向に(もし凹凸が
あれば上方向と凹凸に合わせて左右方向に)デザインル
ールを守るだけ拡張し 境界RBIの初期設定をする。 このときR1が拡張されたレイアウトの下側境界Bの領
域である。そして、領域R1の境界RBIの幾何学的情
報を境界メモリー50に格納する。 (X軸方向の座標
に対応ず&yX軸方向座標値を境界メモリー50に格納
する。この場合デザインルールが最小単位距離2なので
、境界RBIの高さのy座標値(友X座標のO〜20範
囲ですべて2であり、境界RB1の幾何学的情報を格納
した境界メモリー50の内容法 境界メモリー50のア
ドレスの0〜20の範囲ですべて2になる。) 次へ 第3図に示す処理32により、第6図(b)に示
す境界RBIに隣接するgridl上のレイアウト要素
グループのレイアウト要素LHIを検索(search
) L、 L HIの左端から右端までの範囲で境界
RBIの幾何学的情報(境界RBIの形状)を認識り、
、LHIの左端から右端までの範囲に対応する境界メモ
リー50の幾何学的情報(ここで6表 境界メモリー5
0のアドレス6〜9までの境界メモリー50の内容)を
検索する。LHlの左端から右端までの範囲で境界RB
Iに凹凸はないので(境界メモリーのアドレス6〜9ま
での境界メモリーの内容はすべて2で値が変化する所は
ない)、折れ曲がり候補点は設定されな1.X。 処理33により、LHIが水平配線データであるかどう
かを判定す4 LHIζ友 水平配線であるので、処
理34により、処理32で求めた折れ曲がり候補点をも
とにLHIに折れ曲がり点は設定する。この場合、折れ
曲がり候補点は設定されていないので、折れ曲がり点は
設定されなし−次側:、。 処理35により、前記処理32により、保持している境
界メモリー50の幾何学的情報より第6図(C)に示す
ようにLHIを前記境界とのデザインルールを守る最隣
接点(境界RBIと接する力(決して重ならない位置)
に移動する。 次に 処理36により、第6図(d)に示すようG;L
HIの上方向と左右方向に境界RBIを拡張し 拡張さ
れた境界RBIに対応する境界メモリー50の内容の値
を更新する。この時、X座標11に対応する境界メモリ
ー50の内容が5に更新されていないの(よ 境界RB
IがX座標値4以上11未満の範囲で拡張されたためで
ある。境界RBIの更新に対し 境界メモリー50の内
容の更新!表 更新される境界RBIの始点のX座標以
上終点のxJI標未満で行われる。次に処理37により
全データの処理が終了したかどうかを判定する。この場
合、データが残っているので、処理32から37を繰り
返す。 処理32により、第6図(d)に示す境界RBlに隣接
するgrid2上のレイアウト要素グル−プのレイアウ
ト要素LH2を探索L LH2の左端から右端までの
範囲で境界RBIの幾何学的情報(境界RBIの形状)
を認識L LH2の左端から右端までの範囲に対応す
る境界メモリー50の幾何学的情報(ここでは 境界メ
モリーのアドレス1〜18までの境界メモリーの内容)
を検索す、L LH2の左端から右端までの範囲で境
界RBIに凹凸が存在するので(境界メモリーのアドレ
ス4と11で境界メモリーの内容が変化している)、境
界RBIに凹凸に合わせて折れ曲がり候補点を設定する
。処理33により、LH2が水平配線データであるかど
うかを判定す& LH2(表 水平配線であるので、
処理34により、第6図(e)に示すように処理32で
求めた折れ曲がり候補点よりLH2に折れ曲がり点を設
定し 前記折れ曲がり点でLH2をLH2−1とLH2
−2とLH2−3に分割すム この時、LH2−2はL
H2−1とLH2−3とを垂直線で結ぶ必要があるた敢
マージンを持たせる必要がある。この場合、 LH2
−2は第6図(e)に示すように両端の分割点より、配
線巾だけ拡張する。次に処理35により前記処理32で
探索した境界メモリー50の幾何学的情報よりLH2−
1とLH2−2とLH2−3を境界RBIに接する位置
に移動すム 次区 処理36により、第6図(f)に示
すよう+;、LH2−1とLH!−2とLH2−3の上
方向と左右方向に境界50を拡張L 拡張された領域R
1の境界RBIに対応すぺ 境界メモリー50の内容の
値を更新すム 次に処理37により全データの処理が終
了したかどうかを判定する。この場合 g r i d
3 JQ レイアウト要素グループがあるの)処理
32から37を第6図(f)〜第6図(h)に示すよう
に同様にして繰り返す。 全てのレイアウト要素グループのレイアウト要素の処理
を終了したなら、処理38により、第6図(h)に示す
境界メモリー50を参照L−第6図(i)に示すように
レイアウトの上側境界Tの高さ位置を決定する。第7図
力(処理12により得られたレイアウト結果である。こ
こで、 LJIとLJ2はLH2の折り曲げにより発生
した垂直方向配線であa しかし 処理12により得ら
れたレイアウト結果にはLJIのように無駄な配線の折
れ曲がりがあるので、無駄な配線の折れ曲がりを取り除
くことによりレイアウトの整形を行なう、第1図に示す
処理13を行う。 処理13の処理手順ζ友 第4図に示す処理41〜45
である。第8図(a)ζよ 処理12により得られたレ
イアウト結果の上詰め処理対象となる水平配線LHIと
LH2−1とLH2−2とLH2−3とLH3と初期化
された境界メモリー50である。第8図(b)〜第8図
(f)は処理13による境界メモリーを用いた上詰め処
理過程のLH1〜LH3と境界RB2と境界メモリー5
0の変化を示すものである。処理41により第8図(b
)に示すよう番ミ レイアウトの上側境界Tを凹凸が
ないので下方向に(もし凹凸があれば下方向と凹凸に合
わせて左右方向に)デザインルールを守るだけ拡張し
処理31と同様に拡張したレイアウトの上側境界Tの領
域R2の幾何学的情報を境界メモリー50に格納する。 以後拡張された領域R2の境界を簡単のため境界RB2
と呼、G% 処理42によりgrid3のレイアウト
要素グループのLH3の左端から右端の範囲で境界メモ
リー50の幾何学的情報を検索し 処理43によりLH
3を無駄な折れ曲がりを減らす位置に移動させも しか
しLH3に折れ曲がりはなく、 しかも境界RB2に接
しているので実際に移動することはなt、% 次に処
理44によりLH3から下方向と左右方向に前記レイア
ウトの上側境界Tをデザインルールを守るだけ拡張し
拡張された領域R2の境界RB2に対応する境界メモリ
ー50の内容の値を更新する。次に処理45により全デ
ータの処理が完了したかどうかを判定する。この場合
gridlおよびgrid2のレイアウト要素グループ
が残っているので、処理42から処理45を繰り返す。 処理42により第8図(c)に示すgrid2のレイア
ウト要素グループのレイアウト要素LH2−1とLH2
−2とLH2=3の各々の左端から右端の範囲で境界メ
モリー50の幾何学的情報を検索する。処理43により
、境界メモリーの幾何学的情報よりLH2−1とLH2
−2とLH2−3を無駄な折れ曲がりを減らす位置に移
動させも この時、LH2−2は境界RB2に接し し
かもLH2−1とLH2−2とLH23の中で最も高い
位置にあるので、LH2−2の高さを上詰め基準位置と
し 前記上詰め基準位置より下にあるLH2−1とLH
2−3をできるだけ前記上詰め基準位置まで移動させる
。この場合LH2−1は前記上詰め基準位置に移動でき
る力丈L H2−3ζ戴 境界RB2に接しているため
移動できなしも 処理43の後のLH2−1とLH2−
2とLH2−3の各々の位置は第8図(d)に示すLH
2−]とLH2−2とLH2−3である。 処理44により、境界RB2を第8図(e)に示すよう
に拡張する。次に処理45により全データの処理が完了
したかどうかを判定する。この場合、gridlのレイ
アウト要素グループが残っているので、 gridlの
レイアウト要素グループに処理42から処理45を繰り
返し 第9図に示すレイアウト結果を得る。 また 配線の折れ曲がりを考慮しない場合へレイアウト
結果を第1O図に示す。第9図に示すレイアウト結果と
第1O図に示すレイアウト結果を比較するとレイアウト
領域の高さは第9図に示すレイアウト結果力交 第10
図に示すレイアウト結果の3分の2となり、配線の折り
曲げが十分効果的であることが分かる。 本実施例1で(表 直接呼び出しメモリーに幾何学的な
境界RBの情報を登録した境界メモリー50を作成する
手段により、コンパクション対象のデータの検索(よ
レイアウト領域のX座標に対応する境界メモリー50の
アドレスの内容を取り出すだけですむた数 境界メモリ
ー50を用いた上詰め下詰め処理cヨ 従って高速な
ものになる。本実施例1の時間複雑度は コンパクショ
ン処理の対象となるデータ数N、レイアウト領域幅W、
レイアウトグループ数Tとして、次のような関係がある
。 NCx−TW (1)境界メモリ
ーの範囲にζ山 前記境界メモリーの最小単位をUとす
ると、 K = W/u (2) データを境界メモリーへ詰め込むために要する処理の時
間複雑度Cは C= T*に = T*W/u ((2)より) = C**N (3) (C−は比例常数で、 U項も含む。)したがって、時
間複雑度Cは0(N)になる。さらに ソート手法とし
て”係数情報の整列処理方法″(日本国特許出願番号1
−67011)によれは 実施例1は全体として○(N
)の時間複雑度で処理できる。 (垂直方向配線の処理
(よ 水平方向配線の両端とコンタクトをレイアウト領
域を左から(または右から)1度だけ探索することで○
(N)の時間複雑度で処理できるからである。)このソ
ート手法の特徴(表 すべてのソート対象となるデータ
のグローバル情報をあらかじめ頻度情報Vとして求めて
おき、その後に頻度情報Vに基づく積算情報をV上に作
成する。この積算情報Vカ(各々ソートキーを持つ情報
の最小からの順番を指している点に着目すれば 後1よ
データを書き出すのみでソートが完了する。第16図
に示した0(N)ソートアルゴリズムt1 1つのソー
トキーをもつデータについてのインデックスソート処理
であ&s[i]に1.、 データの読み取り順番を示
すもので、 i番目の情報が元のデータ順番の何番目に
書かれているかを示すインデックスである。第16図に
おいて、m1n−key、max keyf上 ソー
トキーの値の範囲である。このソートアルゴリズムでζ
友 ソート処理後の順番について、もしも同一のソート
キーを持つ情報については ソート処理前の順番が保存
されている。従って、 2つ以上のソートキーを持つデ
ータ(例えl;!、 X座標とX座標等)について(
よ 従って、このソートアルゴリズムを優先順位の低い
ソートキーから順番へ直列に繰り返すのみで得ることが
できる。上記の手法によれ4款 高々3 (N+K)
から4(N+K)の繰り返し処理によってソートが完了
する。ここでK 41 座標などに相当する値がもつ
範囲であム以上説明したように 本実施例1によれば
境界メモリー50を作成する手段と、レイアウト要素を
高さ方向の座標でグループ化する手段と、レイアウト境
界に隣接する同じ高さのレイアウト要素グループをグル
ープ単位で境界メモリー50を用いて下詰めする手段と
、下詰めの際同じグループであったレイアウト要素をグ
ループ単位で境界メモリー50を用いて上詰めする手段
により、最小のレイアウト結果を、非常に高速に得るこ
とができ、その実用的効果は太きb℃ また 複数の層
を持つレイアウトに対して境界メモリーは各々のレイア
ウト領域層に設定できるので、複数のレイアウト領域層
を持つレイアウトのコンパクション処理にL 簡単に適
用できる。 な耘 本手法は 水平配線を例に上げ説明したバ 水平
配線ばかりでなく、機能回路ブロック等のデザインルー
ルを守りかつ面積最小を目的としたレイアウト一般のコ
ンパクションにおいても有効であることはいうまでもな
賎 (実施例2) 実施例2に適用したレイアウトは第5図に示す実施例1
と同じものであり、デザインルールも実施例1に適用し
たものと同じである。第11図〈実施例2の処理手順を
示す。以下本実施例2の詳細な説明を図面を用いて行な
う。 第11図に示す処理111では レイアウト要素データ
の前処理を行う。前記処理111の処理内容は第12図
に示す処理221〜128 T、 処理121から処
理124までは実施例1の第2図に示す処理21から処
理24までと同じである。 処理121によりレイアウト要素データとレイアウト領
域データとデザインルールを入力する。次に処理122
で、前記レイアウト要素を、水平方向配線 垂直方向配
線 コンタクト、矩形に分類する。次に処理123で、
レイアウト領域形状データよりレイアウトの上側境界
とレイアウトの下側境界を設定すa 次に処理124で
垂直方向配線を除いたレイアウト要素を垂直方向の高さ
方向の座標でソートし 同じ高さを持つレイアウト要素
をグループ化すも 処理125により、各レイアウト要
素グループのレイアウト要素を最小単位長さ1で分割す
も (例えばあるレイアウト要素の長さが10μmとし
最小単位長さを0.1μmとすると、前記レイアウト
要素は 最小単位長さ1のレイアウト要素に100等分
される。)処理126により、第14図(a)に示すよ
うにレイアウトの下側境界Bの拡張処理をプロセッサ0
が行数 レイアウト要素グループgridlの処理をプ
ロセッサ1が行1.X、 レイアウト要素グループg
rid2の処理をプロセッサ2が行しくレイアウト要素
グループgrid3の処理をプロセッサ3を割り当て4
処理127で処理されている最小単位長さ1のレイア
ウト要素の下の境界RBの幾何学的情報を参照するため
く 実施例1と同様に境界メモリー50の初期設定を行
なう。 処理112で(よ 各レイアウト要素グループの下詰め
処理を行う。第14図(b)は各プロセッサ0〜3のコ
ンパクション処理における開始から終了までの様子を示
すタイムチャートである。プロセッサOは1=0からレ
イアウトの下側境界Bの拡張処理を行う。プロセッサl
はt=△Wからgridlの処理を行う。プロセッサ2
はt=2△Wからgrid2の処理を行う。プロセッサ
3はt=3△Wからgr id3の処理を行う。ここで
△Wは境界メモリー50の1アドレスを処理する時間*
デザインルールを守るために必要な距離を示し デザイ
ンルールを守るために必要な距離とは デザインルール
(2)十最小単位に分割されたレイアウト要素の長さ(
1)で、 3である。 また1アドレスを処理する時間を1とし △W−3とす
ム 第15図(a)に示すように プロセッサ3が処理
を開始するときに(よ プロセッサ0はレイアウト領域
のX軸座標9まで処理を終了しプロセッサ1はレイアウ
ト領域のX軸座標6まで処理を終了し プロセッサ2は
レイアウト領域のX軸座標3まで処理を終了している。 プロセッサ0が処理を終了したX軸座標の位置情報はプ
ロセッサ1に送られ プロセッサ1が処理を終了したX
軸座標の位置情報はプロセッサ2に送られ ブロセッサ
2が処理を終了したX軸座標の位置情報はプロセッサ3
に送られも このように位置情報が送られた各プロセッ
サはどこまで処理可能であるかを認識すも 走査線DL
は各プロセッサO〜3の処理を終了した最新のX*ll
I座標の相対位置の関係を視覚的に示したものである。 第13図は下詰め処理112、上詰め処理113におい
て用いれる各プロセッサの処理の流れを示すフロー図で
ある。第15図(b)に示すようC,、、各プロセッサ
の処理を最小単位長さ1だけ進める。各プロセッサ0〜
3は以下に示す処理を並行に行う。プロセッサOの処理
は他のプロセッサと違(\ 下にレイアウト要素グルー
プが存在しないた数 処理131〜134を行う必要は
なく、処理135から開始すム 処理135によりレイ
アウト領域のX軸座標値9のレイアウト下側境界Bを拡
張し対応する境界メモリー50の内容を2としく境界R
Bの更新に対し 境界メモリー50の内容の更新ζ戴
更新されるレイアウト境界の始点のX軸座標以上終点の
xU座標未満で行われるためX軸座標10に対応する境
界メモリー50の境界メモリーのアドレス10の境界メ
モリーの内容(よ 更新されていな賎 )処理136に
より処理の終了したxl$座標情報をプロセッサ1に送
本処理137によりプロセッサ終了条件を満たせば処理
を終了し 前記条件を満たしていなければプロセッサO
の処理を最小単位長さ1だけ進める。 プロセッサ1(友 処理131によりプロセッサ0の処
理を終了したレイアウト領域のX軸座標の位置情報を参
照限 プロセッサOの処理がプロセッサ1の処理より最
小単位距離3だけ進むまで待機し プロセッサ0の処理
が△W(最小単位距離3を処理する時間)だけ進めば
処理132によりレイアウト要素グループgridlの
レイアウト要素を探索すも 処理133でgridlの
レイアウト要素LHIの最小単位長さIに分割されたレ
イアウト要素があるかないかを判定し レイアウト要素
があれば 処理134により第15図(b)に示すよう
にLHIの最小単位長さlに分割されたレイアウト要素
のX軸座標値と対応する境界メモリー50の内容を参照
し 境界RBと最小単位長さlに分割されf、LHlの
レイアウト要素を境界RBに接する位置に移動させる。 次に処理135により第15図(c)に示すようにデザ
インルールを守るように境界メモリー50のX軸座標4
以上〜6未満を2から5に更新する。処理136により
プロセッサ1が処理が終了したX軸座標情報をプロセッ
サ2へ送る。処理137により処理の終了条件を判定す
a プロセッサ1はこの場合処理終了条件を満たしてい
ないた八 プロセッサ1の処理を最小単位長さ1だけ進
める。 プロセッサ2の処理は 処理131によりプロセッサ1
の処理を終了した境界RBOX軸座標情報を参照し プ
ロセッサ1の処理が△Wだけ進むまで待機する。その後
、プロセッサ1の処理が△Wだけ進めLL 処理132
によりレイアウト要素グループgrid2のレイアウト
要素を探索し処理133により、第15図(b)に示す
ように前記LH2の最小単位に分割されたレイアウト要
素があるかないかを判定する。レイアウト要素があれば
処理134によりX*Ill座標値と対応する境界メモ
リー50の内容を参照し 境界RBとLH2の最小単位
に分割されたレイアウト要素を境界RBに接する位置ま
で移動させる。次へ 処理135により第15図(C)
に示すように境界メモリー50のX軸座標3以上を4未
満に対応するアドレスの内容を2から5に更新する。
(境界RBを更新する範囲としてはX軸座標の2以上を
4未満である力(2はすでにX軸座標値が5になってお
り、更新する必要がないためである。)プロセッサ1と
同様へ 処理の終了したプロセッサ2のX軸座標情報を
プロセッサ3へ送りプロセッサ2の処理を最小単位長さ
1だけ進める。 プロセッサ3の処理対象であるレイアウト要素グループ
g r i d 3 LL 処理132でレイアウト
要素がみつからないたべ 処理133〜135を行う必
要はなく、また最上位レイアウト要素グループを処理す
るプロセッサであるため処理136は行う必要もなL〜
第15図(d)に第15図(C)に対して更に最小単
位長さ1進めた処理状況を示す。上記に示した方法を各
々のプロセッサ0〜3の処理を繰り返し 第7図に示す
下詰め処理の結果を得る。第9図に示すレイアウト結果
はレイアウトの上側境界Tか収 無駄な水平配線の折り
曲げを取り除くようへ 上記に示した下詰め処理と同様
に 上詰め処理を行うことにより得ることができる。 実施例2に示したマルチプロセス処理において、コンパ
クション対象のデータ数N、レイアウト領域幅W、レイ
アウトグループ数Tとする。T個のレイアウト要素グル
ープとレイアウトの下側境界を処理するT+1個のプロ
セッサを用意する。各レイアウト要素グループを処理す
る各プロセッサが処理しているX座標位置力丈 各レイ
アウト要素グループの下に存在するすべてのレイアウト
要素グループを処理する各プロセッサの処理を終了した
X座標位置を越えてはならな(−そのた数 各プロセッ
サ間で距離的および時間的な処理の遅れが存在すa 各
プロセッサ間で処理の遅れ(よ 最小単位距離1の処理
に要する時間△W1とし 各プロセッサがデザインルー
ルを守るために必要な距離的な処理の遅れをd□とすれ
ば 各プロセッサ間の時間的な遅れ△Wは ΔW=d、−△w+ (4) となる。レイアウトの下側境界から最上位のレイアウト
グループTの各々のプロセッサの処理時間T @、 T
1. T 2 、 T s 、・・・・・、TTはT
s = W/u*△w1 T+ = W/u*△w1 + △WT2 =
W/u*△w1 + 2・△WTs = W
/ u * △w+ + 3 ・ △WT
a = W/u* 6w1 + 4 ・
△WTt = W/u*△w1 + T
・△Wであり、前記最下位のレイアウトの下側境界を処
理するプロセッサと最上位のレイアウトグループTのプ
ロセッサの処理時間の差はT・△Wであり、全体の処理
時間T、はTTと同じとなり、T−=W/u*△w1
+T・△W(5)したがって処理の時間複雑度CMは Cれ= O(W+T)であり前記(1)式よりCM=
O(W+T)<O(N)=O(W−T)となり、非常に
有効なマルチプロセス処理が実現し高速化ができも ま
た 複数の層を持つレイアウトに対して境界メモリーは
各々のレイアウト領域層に設定できるので、複数のレイ
アウト領域層を持つレイアウトのコンパクション処理に
L 簡単に適用できも な耘 本実施例ではプロセッサ0〜プロセツサ3までの
4個のプロセッサで説明してきた力交 レイアウト要素
グループ数に応じたプロセッサを用いればよく、プロセ
ッサ数は4つに限定されなL%発明の詳細 な説明したようく 本発明によれにE、LSI等のレイ
アウトパターンに関して、直接呼び出しメモリーに境界
情報を登録した境界メモリーを作成する手段により、
コンパクション対象のデータの検索力(座標に対応する
アドレスの内容を取り出すだけですむた教 前記境界メ
モリーを用いた高速な上詰め下詰め処理が実現できる。 また レイアウト要素グループ化手段により前もって同
じ高さのレイアウト要素を1つのグループとすることで
、 レイアウト要素の処理の順番は確定されコンパクシ
ョン対象データの探索を不要とし 上詰め下詰め処理は
さらに高速なものとなる。さら凶 境界の区分ζ友 メ
モリーのアドレスに対応し各々の座標毎に独立に参照す
ることが可能なため複数個のプロセッサを用いた高速マ
ルチプロセス処理も可能となり、その実用的効果は犬き
1.%
第1図は本発明の実施例1におけるレイアウトのコンパ
クション方法の処理手順を示す流れは第2図は処理11
のレイアウトデータの前処理および境界メモリー作成処
理の処理手順を示す流れ医 第3図は処理12である境
界メモリーを用いた下詰め処理の処理手順を示す流れ医
第4図は処理13である境界メモリーを用いた上詰め
処理の処理手順を示す流れ医 第5図は本発明を適用し
たレイアウトを示す医 第6図(a)〜第6図(i)は
境界メモリーを用いた下詰め処理によるレイアウト要素
と前記境界メモリーの処理過程での様子を示す医 第7
図は境界メモリーを用いた下詰め処理によるレイアウト
結果を示す@ 第8図(a)〜第8図(f)は境界メモ
リーを用いた上詰め処理によるレイアウト要素と前記境
界メモリーの処理過程での様子を示す医 第9図は境界
メモリーを用いた上詰め処理による最終的なレイアウト
結果を示す医 第10図は配線の折り曲げを考虜せずに
レイアウトのコンパクション処理を行った場合のレイ
アウト結果を示す医 第11図は本実施例2におけるマ
ルチプロセッサを用いたレイアウトのコンパクション処
理の処理手順を示す流れ医 第12図は処理111のレ
イアウトデータの前処理および境界メモリー作成処理の
処理手順を示す流れ医 第13図は実施例2における各
プロセッサの処理の処理手順を示す流れ1第14図(a
)は実施例2における各レイアウト要素グループに割り
当てられたプロセッサの各プロセッサ間での通信の様子
と、各プロセッサと境界メモリーとの通信の様子を示す
構成は 第14図(b)は実施例2におけるプロセッサ
の処理のタイムチャート医 第15図(a)〜第15図
(e)は実施例2におけるマルチプロセッサを用いたレ
イアウトのコンパクション処理によるレイアウト要素と
境界メモリーの処理過程の様子を示す医 第16図は1
つのソートキーをもつデータについてのインデックスソ
ート処理であるソートアルゴリズム図である。 11・・・レイアウトデータの前処理および境界メモリ
ー作成手段、 12・・・境界メモリーを用いた下詰め
処理手段、 13・・・境界メモリーを用いた上詰め処
理平成 14・・・出力処理手比 代理人の氏名 弁理士 小鍜治 明 ほか2名第 第 214 第 図 第 図 第 図 (It) 第 図 (C) 第 図 第 図 第 (Cン 第 図 第 [。
クション方法の処理手順を示す流れは第2図は処理11
のレイアウトデータの前処理および境界メモリー作成処
理の処理手順を示す流れ医 第3図は処理12である境
界メモリーを用いた下詰め処理の処理手順を示す流れ医
第4図は処理13である境界メモリーを用いた上詰め
処理の処理手順を示す流れ医 第5図は本発明を適用し
たレイアウトを示す医 第6図(a)〜第6図(i)は
境界メモリーを用いた下詰め処理によるレイアウト要素
と前記境界メモリーの処理過程での様子を示す医 第7
図は境界メモリーを用いた下詰め処理によるレイアウト
結果を示す@ 第8図(a)〜第8図(f)は境界メモ
リーを用いた上詰め処理によるレイアウト要素と前記境
界メモリーの処理過程での様子を示す医 第9図は境界
メモリーを用いた上詰め処理による最終的なレイアウト
結果を示す医 第10図は配線の折り曲げを考虜せずに
レイアウトのコンパクション処理を行った場合のレイ
アウト結果を示す医 第11図は本実施例2におけるマ
ルチプロセッサを用いたレイアウトのコンパクション処
理の処理手順を示す流れ医 第12図は処理111のレ
イアウトデータの前処理および境界メモリー作成処理の
処理手順を示す流れ医 第13図は実施例2における各
プロセッサの処理の処理手順を示す流れ1第14図(a
)は実施例2における各レイアウト要素グループに割り
当てられたプロセッサの各プロセッサ間での通信の様子
と、各プロセッサと境界メモリーとの通信の様子を示す
構成は 第14図(b)は実施例2におけるプロセッサ
の処理のタイムチャート医 第15図(a)〜第15図
(e)は実施例2におけるマルチプロセッサを用いたレ
イアウトのコンパクション処理によるレイアウト要素と
境界メモリーの処理過程の様子を示す医 第16図は1
つのソートキーをもつデータについてのインデックスソ
ート処理であるソートアルゴリズム図である。 11・・・レイアウトデータの前処理および境界メモリ
ー作成手段、 12・・・境界メモリーを用いた下詰め
処理手段、 13・・・境界メモリーを用いた上詰め処
理平成 14・・・出力処理手比 代理人の氏名 弁理士 小鍜治 明 ほか2名第 第 214 第 図 第 図 第 図 (It) 第 図 (C) 第 図 第 図 第 (Cン 第 図 第 [。
Claims (3)
- (1)LSI等のレイアウトパターンに関してデザイン
ルールを満足し、かつ空き領域を可能な限り詰めること
により、最小レイアウトパターンを生成するレイアウト
コンパクション方法において、直接呼び出しメモリーに
境界の幾何学的情報を登録した境界メモリーを作成する
手段と、境界に隣接するレイアウト要素を探索し、前記
レイアウト要素を前記境界メモリーを用いて下詰めおよ
び上詰め操作する手段とを備えたレイアウトのコンパク
ション方法。 - (2)LSI等のレイアウトパターンに関してデザイン
ルールを満足し、かつ空き領域を可能な限り詰めること
により、最小レイアウトパターンを生成するレイアウト
コンパクション方法において、レイアウト要素を高さ方
向の座標で、同じ高さのレイアウト要素を一つのグルー
プとするレイアウト要素グループ化手段と、直接呼び出
しメモリーに境界の幾何学的情報を登録した境界メモリ
ーを作成する手段と、レイアウト境界に隣接する同じ高
さのレイアウト要素グループをグループ単位で下詰め操
作する手段と、下詰めの際同じグループであったレイア
ウト要素をグループ単位で上詰め操作する手段とを備え
たレイアウトのコンパクション方法。 - (3)LSI等のレイアウトパターンに関してデザイン
ルールを満足し、かつ空き領域を可能な限り詰めること
により、最小レイアウトパターンを生成するレイアウト
コンパクション方法において、レイアウト要素を高さ方
向の座標で、同じ高さのレイアウト要素を一つのグルー
プとするレイアウト要素グループ化手段と、直接呼び出
しメモリーに境界の幾何学的を情報を登録した境界メモ
リーを作成する手段と、前記レイアウト要素グループ化
手段により得られたレイアウト要素グループに対しグル
ープ毎にプロセッサを割り当てる手段と、前記プロセッ
サ間で処理の遅延を持たせて前記全プロセッサにより同
時に境界メモリを用いて、各々の前記レイアウト要素グ
ループを独立に下詰めおよび上詰め操作をする手段とを
備えたレイアウトのコンパクション方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2101283A JP2626153B2 (ja) | 1990-04-17 | 1990-04-17 | レイアウトのコンパクション方法 |
US07/686,461 US5267177A (en) | 1990-04-17 | 1991-04-17 | Method for VLSI layout pattern compaction by using direct access memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2101283A JP2626153B2 (ja) | 1990-04-17 | 1990-04-17 | レイアウトのコンパクション方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04568A true JPH04568A (ja) | 1992-01-06 |
JP2626153B2 JP2626153B2 (ja) | 1997-07-02 |
Family
ID=14296535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2101283A Expired - Fee Related JP2626153B2 (ja) | 1990-04-17 | 1990-04-17 | レイアウトのコンパクション方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5267177A (ja) |
JP (1) | JP2626153B2 (ja) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2501726B2 (ja) * | 1991-10-08 | 1996-05-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュ―タ・イメ―ジ生成装置及びデ―タ減縮方法 |
US5353235A (en) * | 1992-06-17 | 1994-10-04 | Vlsi Technology, Inc. | Wire length minimization in channel compactor |
JPH0677324A (ja) * | 1992-06-23 | 1994-03-18 | Fujitsu Ltd | 導体部分のレイアウトデータの変換方法及びその装置 |
JPH06102659A (ja) * | 1992-09-22 | 1994-04-15 | Toshiba Corp | マスク・レイアウト生成方法 |
US5416722A (en) * | 1992-11-19 | 1995-05-16 | Vlsi Technology, Inc. | System and method for compacting integrated circuit layouts |
US5625568A (en) * | 1993-12-22 | 1997-04-29 | Vlsi Technology, Inc. | Method and apparatus for compacting integrated circuits with standard cell architectures |
US5515293A (en) * | 1993-12-22 | 1996-05-07 | Vlsi Technology, Inc. | Method and apparatus for generating a linked data structure for integrated circuit layout |
US5638293A (en) * | 1994-09-13 | 1997-06-10 | Lsi Logic Corporation | Optimal pad location method for microelectronic circuit cell placement |
US5636132A (en) * | 1994-11-22 | 1997-06-03 | Mentor Graphics Corporation | Method and apparatus for constraining the compaction of components of a circuit layout |
US5852562A (en) * | 1994-12-13 | 1998-12-22 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for designing an LSI layout utilizing cells having a predetermined wiring height in order to reduce wiring zones |
JPH09129735A (ja) * | 1995-10-31 | 1997-05-16 | Toshiba Corp | 半導体集積回路のレイアウト生成方法 |
US5914888A (en) * | 1996-06-28 | 1999-06-22 | Lsi Logic Corporation | Advanced modular cell placement system with coarse overflow remover |
US5867398A (en) * | 1996-06-28 | 1999-02-02 | Lsi Logic Corporation | Advanced modular cell placement system with density driven capacity penalty system |
US5835381A (en) * | 1996-06-28 | 1998-11-10 | Lsi Logic Corporation | Advanced modular cell placement system with minimizing maximal cut driven affinity system |
US5808899A (en) * | 1996-06-28 | 1998-09-15 | Lsi Logic Corporation | Advanced modular cell placement system with cell placement crystallization |
US5870311A (en) * | 1996-06-28 | 1999-02-09 | Lsi Logic Corporation | Advanced modular cell placement system with fast procedure for finding a levelizing cut point |
US5870312A (en) * | 1996-06-28 | 1999-02-09 | Lsi Logic Corporation | Advanced modular cell placement system with dispersion-driven levelizing system |
US5963455A (en) * | 1996-06-28 | 1999-10-05 | Lsi Logic Corporation | Advanced modular cell placement system with functional sieve optimization technique |
US5812740A (en) * | 1996-06-28 | 1998-09-22 | Lsi Logic Corporation | Advanced modular cell placement system with neighborhood system driven optimization |
US5831863A (en) * | 1996-06-28 | 1998-11-03 | Lsi Logic Corporation | Advanced modular cell placement system with wire length driven affinity system |
US6067409A (en) * | 1996-06-28 | 2000-05-23 | Lsi Logic Corporation | Advanced modular cell placement system |
US6030110A (en) * | 1996-06-28 | 2000-02-29 | Lsi Logic Corporation | Advanced modular cell placement system with median control and increase in resolution |
US6026223A (en) * | 1996-06-28 | 2000-02-15 | Scepanovic; Ranko | Advanced modular cell placement system with overlap remover with minimal noise |
US5844811A (en) * | 1996-06-28 | 1998-12-01 | Lsi Logic Corporation | Advanced modular cell placement system with universal affinity driven discrete placement optimization |
US5892688A (en) * | 1996-06-28 | 1999-04-06 | Lsi Logic Corporation | Advanced modular cell placement system with iterative one dimensional preplacement optimization |
US6085032A (en) * | 1996-06-28 | 2000-07-04 | Lsi Logic Corporation | Advanced modular cell placement system with sinusoidal optimization |
US5872718A (en) * | 1996-06-28 | 1999-02-16 | Lsi Logic Corporation | Advanced modular cell placement system |
US6507930B1 (en) * | 2000-06-30 | 2003-01-14 | International Business Machines Corporation | Method and system for improving yield of semiconductor integrated circuits |
EP1405228B1 (en) | 2001-06-29 | 2012-09-05 | Cadence Design Systems, Inc. | Two dimensional compaction system and method |
US7448012B1 (en) | 2004-04-21 | 2008-11-04 | Qi-De Qian | Methods and system for improving integrated circuit layout |
US8006207B2 (en) * | 2008-08-26 | 2011-08-23 | International Business Machines Corporation | Parallel intrusion search in hierarchical VLSI designs with substituting scan line |
US8704850B2 (en) | 2010-08-31 | 2014-04-22 | Microsoft Corporation | Two-dimensional object packing |
CN106815650B (zh) * | 2015-11-27 | 2020-08-18 | 中国科学院微电子研究所 | 自动优化片上系统层次化模块布局的方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4500963A (en) * | 1982-11-29 | 1985-02-19 | The United States Of America As Represented By The Secretary Of The Army | Automatic layout program for hybrid microcircuits (HYPAR) |
US4965739A (en) * | 1987-03-26 | 1990-10-23 | Vlsi Technology, Inc. | Machine process for routing interconnections from one module to another module and for positioning said two modules after said modules are interconnected |
JPH0731695B2 (ja) * | 1988-10-26 | 1995-04-10 | 三菱電機株式会社 | 半導体集積回路装置のマスクパターンのコンパクション処理方法 |
-
1990
- 1990-04-17 JP JP2101283A patent/JP2626153B2/ja not_active Expired - Fee Related
-
1991
- 1991-04-17 US US07/686,461 patent/US5267177A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5267177A (en) | 1993-11-30 |
JP2626153B2 (ja) | 1997-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH04568A (ja) | レイアウトのコンパクション方法 | |
Chazelle et al. | Fractional cascading: I. A data structuring technique | |
Hinrichs et al. | The grid file: a data structure designed to support proximity queries on spatial objects | |
CN103593298B (zh) | 内存回收方法和装置 | |
JPS63225869A (ja) | 配線経路探索方式 | |
US20070136709A1 (en) | Floorplanning A Hierarchical Physical Design To Improve Placement And Routing | |
Suzuki et al. | Binary picture thinning by an iterative parallel two-subcycle operation | |
CN105930500A (zh) | 数据库系统中事务恢复的方法与数据库管理系统 | |
Nam et al. | A fast hierarchical quadratic placement algorithm | |
US5113451A (en) | Method for labelling polygons | |
US7197736B2 (en) | Adaptive power routing and shield sharing to reduce shield count | |
CN104573112B (zh) | Oltp集群数据库中页面查询方法及数据处理节点 | |
CN103514098B (zh) | 用于回收存储空间的方法和系统 | |
US6496968B1 (en) | Hierarchical wiring method for a semiconductor integrated circuit | |
US20130198702A1 (en) | Implementing z directional macro port assignment | |
US6577991B1 (en) | Recordable method of processing figure | |
JP3095475B2 (ja) | マスクパターンの検査方法 | |
Wu et al. | Bus-pin-aware bus-driven floorplanning | |
CN101556607B (zh) | 一种在线收缩ext2/3文件系统的方法 | |
JP2590327B2 (ja) | 図面情報の管理方法 | |
JP2921001B2 (ja) | パタン抽出方法 | |
JPH02156348A (ja) | 複数のハッシュ表のあふれ領域管理方法 | |
JP4096071B2 (ja) | 図形データ管理方法及び図形データ管理装置 | |
Berkman et al. | Top-bottom routing around a rectangle is as easy as computing prefix minima | |
JPH0348981A (ja) | 閉領域判別方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |