JPH0414244A - 回路レイアウト方法およびシステム - Google Patents

回路レイアウト方法およびシステム

Info

Publication number
JPH0414244A
JPH0414244A JP2115789A JP11578990A JPH0414244A JP H0414244 A JPH0414244 A JP H0414244A JP 2115789 A JP2115789 A JP 2115789A JP 11578990 A JP11578990 A JP 11578990A JP H0414244 A JPH0414244 A JP H0414244A
Authority
JP
Japan
Prior art keywords
wiring
layout
circuit
circuit layout
layout method
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
JP2115789A
Other languages
English (en)
Inventor
Toshinori Watanabe
俊典 渡辺
Keiko Komatsu
啓子 小松
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.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP2115789A priority Critical patent/JPH0414244A/ja
Publication of JPH0414244A publication Critical patent/JPH0414244A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はLSI等の回路の配置・配線を行なうレイアラ
1〜方法およびシステムに関する。
〔従来の技術〕
LSIの配置・配線を行なうレイアウト方法は枚挙にい
とまが無い程多様で、例えば、■ ―、 K、 Luk
、 et al、 ”HierarchicalGlo
bal Wiring for Custom Chi
p Design”、 Proc。
23rd DAC,、pp、481−489(1986
)。
■ R,0tten、 ”Automatic flo
orplan design”。
Proc、 19th DAC,pp、261−267
(1982)。
が知られている。上記公知例の内■は、配置に関し、■
は配線に関するものである。公知例■は、配置のために
本構造を用いることを提案している。
二こでは、LSI全体の配置は、平面分割の繰り返し構
造(Slicing 5tructure Tree)
として表現される。ブロック間配線は配線チャネルを用
いることとしてあり、かつ逐次処理方法である。配線方
法の詳細は与えられていない。公知例■は配線にパター
ンを用いる方法を示している。
〔発明が解決しようとする課題〕
公知例■では、ブロック間の配線引き回し計画結果を、
互いのブロック内での、引続く配線計画処理に引き継ぐ
メカニズムが無い。このため、階層記述された回路木の
各親ノード(親ブロックと呼ぶ)において、子ノード(
子ブロックと呼ぶ)間を配線パターンで結ぶという配線
計画を、木の全ノードについて実施する際に、子ブロッ
ク間での配線接続端子位置の正確な同一化が困難となる
結果として、配線接続端子位置が同一化できなくなり、
端子間を接続するための配線エリアである、配線チャネ
ルが必要となるか、別途特別の方法を用意して端子位置
整合化をおこなう必要が生じる。
次に、配置・配線を実行するプログラムを開発する立場
から見ると、プログラムの規模が草大になるため、プロ
グラム開発にきわめて多くの労力がかかるという問題が
ある。さらに、LSIを例に取った場合、対象とするデ
バイスがバイポーラ(Bipolar)系であるか、M
OS系であるかによって基本素子形状やレイアウトルー
ルが異るために別個のプログラムを開発しなくてはなら
ないといった問題もあった。
さらに、従来のレイアウトシステムでは、プログラムの
開発性の問題がある。一般にレイアウトプログラムは、
特定のレイアウトモデル(配置・配線の基本規則)を定
めて、これに専用のものとすることが多い。それにもか
かわらず、プログラム規模はきわめて大きく、104ス
テツプ以上となることが多い。特定のレイアウトモデル
を定めることから、LSI製造プロセスやバイポーラ、
CMO5といったデバイスの多様性に対応することがむ
つかしく、それら各々に応じたレイアウトモデルに、ひ
いてはレイアウトプログラムを開発することも多い。
逐次処理によるLSIの配置配線アルゴリズムは数多く
提案されてきた。並列処理方法については、例えば、複
数個の端点間を配線する際に必要となる、平面上の配線
可能格子点の探索を、専用の並列ハードウェアで実施す
る方法が提案されているが、単に格子点の探索を並列に
実施して高速化を図っているに留まっており、配置・配
線双方を互いに協調しながら並列処理することによって
、ブロックの形状や相互間の動線引出し位置を整合化す
る方法は、未だ提案されていない。
本発明の目的は、LSIの配置配線の並列協調処理を行
なうレイアウト方法を提供することにある。具体的には
、並列処理によって処理速度が向上することは当然のこ
とであるが、それ以外に、問題全体を階層的に分割とし
て処理する場合に、分割後の各部分問題の間の相互干渉
の調整を実施する協調機能によって、逐次処理した場合
には解決不可能な異ブロック間の配線不要な屈曲防止(
従って屈曲部分の配線チャネルの発生防止)などが可能
となる。すなわち、大規模回路への対応のだめに、階層
的に問題を解いているにもかかわらず、非階層的に(平
盤的に)異ブロックの配置状況を同時に考慮しつつ配線
したのと同様の結果を得ることが可能となる。
本発明の他の目的は、少い規模のプログラムで複雑なレ
イアウト問題を解けるレイアウト方法を提供することに
ある。
〔課題を解決するための手段〕
上記目的を達成するために、本発明の概要は下言己の通
りである。
(1)システム構成 回路ネットデータ(回路を構成する素子と素子間の配線
データ、以下原データとよぶ)、状態メモリ、入出力プ
ロセス、問題解決推論プロセス、レイアウト基本プロセ
スからなる。
(2)動作概要 原データは、入出力プロセスによって階層化されて、状
態メモリに格納される。この時、配置配線の制約条件を
考慮した回路の階層化をおこなう。
原データがもともと階層化されている場合には、レイア
ウトに都合の良いものに変更する。問題解決推論プロセ
スは、階層回路を配置・配線する。
各々は再帰形式のプログラムとして実現されている。レ
イアウト基本プロセスでは、回路階層水の親ブロックの
配置配線問題を子ブロックの部分問題に分割したり、逆
に完成した子ブロックのレイアウトを統合して親ブロッ
クのレイアウトを作成する。問題解決推論プロセスでは
、適当なものを自動的に選んで問題分割や統合に使用す
る。生成された部分問題に対応するプロセスは、互いに
並列に実行される。得られるレイアウト結果は状態メモ
リに随時記入され、必要に応じて種々のプロセスから参
照されたり、更新されたりする。親ブロックを複数の子
ブロックに分割した結果、各子ブロックの外形状や配線
端子位置が目標値として得られるので、これらのデータ
を状態メモリ中に保持しておき、子プロセス間で互いに
参照し合いながらレイアウト作成処理をすすめる。すな
わち、情報共有による協調処理をおこなう。
〔作用〕
本発明では、親ブロックが分割されて複数の子ブロック
のレイアウトを分担処理するプロセス群は互いに並列に
走行する。各子ブロックがレイアウトを完了したのち親
ブロックが確定する。以上のように並列処理が実現され
る。
この場合、並列走行する子ブロック同士は、状態メモリ
中の外形状や配線引き出し端子位置を情報的に共有し合
って各自の問題解決をすすめる。
すなわち、協調処理をおこなう。これにより、形状や端
子位置不整合による不要チャネルの発生が防止でき、チ
ップ面積が小さくなる。
また、問題解決推論プロセスは、配置・配線いずれも再
帰形アルゴリズムとして構成されているため、同一プロ
グラムが、入力回路水の全ブロックに共通に使用できる
ことになり、レイアウトプログラムの規模は著るしく縮
少できる。これによって、プログラム開発労力が著るし
く縮少可能となる。
レイアウト基本プロセスは親ブロックの分割様相に応じ
た形状テンプレートや各種の基本部品(トランジスタや
抵抗など)の形状生成機能を有するモジュール化された
プログラムライブラリである。この内容を取り替えるこ
とによって、各種のデバイスや製造プロセスに対応した
レイアウトプログラムを実現でき、バイポーラやCMO
5といった回路実現用デバイスに応じて個別のプログラ
ムを開発する必要が無くなり、全体としての汎用性を高
めることが可能となっている。
〔実施例〕
以下、並列論理言語GHCに類似のプログラム仕様記述
を併用しつつ、本発明を実現する実施例を示す。アルゴ
リズム記述のために並列論理型言語様式を用いるが、こ
の種の言語にも多様なものがあるので、事前に記述規則
は概説する。
なお、上述した並列論理言語GHCについては、例えば
、Lleda、 K、、 Guarded Horn 
C1auses。
Logic Programmj、ng、 LNC52
21,pp、168−179゜(Springer −
Verlag、 1986)に詳細に示されている。
1、本発明のシステム機能構成 並列論理言語による電子回路レイアウト問題解決システ
ム(本発明の実現例)のシステム機能構成を第1図に示
す。レイアウト基本プロセス(1500)を用いて階層
問題解決を行う問題解決推論プロセス(1400)が、
双方向ストリーム(1600)を介して状態メモリ(1
200)に接続されている。
原データ(1100)は入出力プロセス(1300)に
よって回路水(1210)に変換された後、問題解決推
論プロセス(1400)によってレイアウトされ、状態
メモリ内に結果がレイアウト本等の形式のデータ(12
20)として格納される。この結果を入出力プロセス(
1300)でデイスプレィ上に出力描画する構成として
いる。
2、本発明の階層再帰並列協調レイアウトモデル(以下
、HRCT L : HierarchjcalRec
ursive Concurrent Theorem
 prover forLayoutと呼ぶ) 2.1 モデルの概要 HRCTLは、第1図システムの基本計算モデルである
本図等を用いてモデルの概要を述べる。
後に述べるGHC形式によるモデル記述の中で使用する
諸定義も、ここで併せて示しておく。
1)原データ(1100):第2図に示すように、本モ
デルへの入力である回路ネットデータC1rNet (
1110)すなわち素子群object(−)(111
1)と素子間の接続関係データ群node(・・・)(
1112)、及びそれらの配置・配線上の制約条件のり
ストCon5tr (1120)とから成る。Con5
trの内容は1121に例示したような配置・配線上の
制約記述項である。
2)状態メモリ(1200):第3図に示すように、レ
イアウト対象回路データC1rNet を階層化した回
路木C1rTree (1210) 、これを平面上に
レイアウトした結果である配置・配線図の階層木LTr
ee (1221) 、配線用コネクタConLayo
ut (1223) 、コネクタ間の配線LineLa
yout (1224)などが記憶される。状態モメリ
の内容は、以下の諸プロセスによって書き替えられ、最
終レイアウトとなる。各データの内容詳細は後述する。
3)入出力プロセス(1300):第4図に示すように
、入力機能の一部に、原データ内のC1rNet (1
110)をCon5tr (1120)や他の情報を用
いてC1rTree (1210)に変換する等の機能
prepare−placement (1310)が
ある。
出力機能の一部に、LTree (1221)、Con
Layout (1223) 、 LineLayou
t (1224)を出力描画する機能draw−1ay
out (1320)がある。
4)問題解決推論プロセス(1400):第5図に示す
ように、C1rTree (1210)をLTree(
1221)に変換することによってレイアウトを生成す
る機能place−and−routeである。オブジ
ェクトの配置処理place by、−qtree (
1410)のあと、配線前処理prepare rou
ting (図示略)を実行して、各オブジェクト(1
232のgo3など)の配置位置(左上点の座標値。局
所座標系で配置するため、(0,0)となっている)を
チップ(1230)の世界座標系に変換する。続いて配
線処理route−by−qtree (1430)を
行う。
配置処理では、配線の概略を計画し、配線を無視した配
置とならぬようにする。C1rTree(1210)に
配置データが追加されてLTree(1221)が作ら
れる。配線処理ではLTree(1221)の各階層ノ
ードにおいて、子回路間の配線ネットの引き回し計画を
立てる。当階層ノードの配置計画に使用したlayou
tframe(1520)に付随して定義しである配線
パターネクタ名称等を配線リストLineLayout
(1224)に記入する。
配置・配線いずれの処理も、C1rTree及びL T
 r e eの非終端部を下降方向にたどる問題分割フ
ェイズ(1412,1432)、木の終端部でのセル処
理フェイズ(1414,1434)、木を上昇方向にた
どる統合フェイズ(1416゜1436)を備えた階層
問題解決を行う。雨水とも木の非終端ノードはブロック
(1440)、終端ノードはセル(1450)と呼んで
いる。
5)レイアウト基本プロセス(1500):第6図に示
すように、問題解決推論プロセスplaceand r
outeが使用する各種のプログラム群から成る。配線
幅、間隔等の制限事項であるプロセス制約を製造プロセ
ス名ごとに記述したレイアウトルール1ayoutru
le群(1530)、ブロックやセルレベルでの配置形
状や配線形状のパラメタラ二7−− ”°−イズされたテンプレート群であるレイアウトフレ
ーム1ayou tframe群(1520)、及びこ
れらのテンプレートを用いてLTreeの各ノードにお
ける問題分割や統合処理を行うプランフレームplan
ftame群(1510)とから成る。
2.2 モデル記述規約 階層並列レイアウトモデルHRCTLの記述を与える。
モデルの機能的性質、並列処理を含めた計算量、メモリ
量等の計算論的性質、デバイスやプロセス変化への適合
性という適応的性質等を同時に表象可能とするために、
並列論理言語GHC様式を用いて、モデル記述を行う。
(定義1)述語f (s(Sold)、 s(SNew
)、 Env、 Comp)によって、処理fが、パラ
メタEnvのもとで状態5O1dを5Netyに変換す
ること、及びその計算複雑度がCompであることを表
わす。
(定義2)変数に↑、↓↑を後付けすることにより各出
力、入出力変数であることを表わす。
入力変数は無印とする。
(定義3)p ニーGl、G2. ・−、Gr l G
r十1.Gr+2.・・・、Gn、によって、ヘッド述
語P、ボディ述語G1〜Gnの節を表わす。G1〜Gr
は逐次処理されるガード、Gr+1〜Onは並列処理さ
れるゴールである。1はコミットバーである。P=(空
)の場合にはゴール節を表わす。
2.3 モデルHRCTLの記述 (Goal) HRCT Lの解く最上位ゴール節(第
8図参照) : −gejinitial−data(C1rNet
↑、 TopCircuit↑。
Playout↑、ConLayout↑、 Proc
↑、Con5tr↑)solve、−a−1ayout
problem (TopCircuit 、 C1r
Net 。
PLayout、Proc、Con5tr、Compl
exity↑)。
get−initial−data (第7図2000
)は、レイアウト対象回路ネットC1rNet、これを
階層水化した時の最上位ノードの名称TopCircu
it、及びその計画レイアウトPLayout、外端子
の計画位置ConLayout (第7図2010)、
使用プロセス名Proc、レイアウト制御条件リストC
on5trを読み出す。solve−a−1ayout
problem (第7図2010)は、これらの情報
を用いてC1rNetのレイアウトを計算複雑度Com
plexityのオーダで作成する。
各変数の詳細定義例を示す。
C1rNet  =  [[0bjectlObjTa
ilコ。
[NodelNodeTailココ。
0bject = object(ObjNeme、0
bjType。
Re1atedNodes、0therprops)。
第2図の名ではobject(gol、tr(npn)
、 [in、n3wvee]、j、 (第2図中111
1)Node = node(NodeNarne+N
ocJeType。
Re1atedObjects、0therprops
)。
第2図の例ではnode(in、signal。
[cin、gO1コ、−)、 (第3図中1212)T
opCircuit = circuit(Name、
Level、5tatus)。
Nameは名称、Levelは階層レベル、5tatu
sは形状可変状況。
第3図のgoではcircuit(gO,block、
free) 。
(第3図中1211) PLayout = [PlannedShape、N
orthCons。
WestCons、5outhCons、EastCo
nsコ。
PlannedShape = [Wp、Hpl、wh
ere 1llp =PlannedWidth、Hp
 = PlannedHeight、長方形状のみ許す
WestCons =con(Name、NodeNa
me)ITailコ2図の例ではcon(cin、in
)、 (第3図中1233)。
ConLayout =  [con(Name、Ex
istRange、Type。
ConnectedLayers、Connected
Liners。
otherprops)l Ta1lコ。
Proc = ”procesloo”等のチップ製造
プロセス名称。
Con5tr  =  [Con5traintICo
nstrTail]。
Con5traint = constr(Type、
Level、among(ObjectsListl 
、0bjectsList2) +Nameofthi
sConstraint) +第2図の例ではcons
tr(pair、a、among([gO1コ+ [g
04]+pair−trsool)、(第2中1121
)6 Complexity =[TimeComplexi
ty。
SpceComplexity]。
(Prog、1)HRCT Lの最上位の推論側である
5olve−a ]−ayoutprobl−arrI
定義節(第8図参照)solve−a Iayoutp
roblem(Topcircuit、C1rNet。
PLayout、Proc、Con5tr、 [add
 (Tcl、add (Tc2゜Tc3))、max(
Sc2,5c3))]↑: trueprepare 
placement(TopCiucuit、C1rN
et。
PLayout、Con5tr、C1rTree↑、L
Tree↑r [T e l rScl]↑、end、
El↑)。
place−and−route(s(CirTree
、LTree、ConLayout。
[])。
5(CirTreel、LTree、ConLayou
t。
LineLayoutl)↑、Proc、Con5tr
、 [Tc2.Sc2]↑。
El、E2]↑、El、E2↑)。
draw 1ayout(s(CirTreel、LT
reel、ConLayoutl。
LineLayoutl)、−、Proc、−、[Tc
3.Sc3コ、end、−)。
prepare−placement  (第8図20
20)は、回路木C1rTreeとレイアウト木LTr
eeを、入力されるC1rNet等より作成する。LT
reeはC1rTreeと同型の木であり、C1rTr
eeの各ノード(ブロックやセル)のレイアウト形状デ
ータ5hapeを保持させる。
原則として第6図に示した平面の4分割スライス5on
sCirTrees) 、−は回路特性記入用である。
LTree =  1ayout(TopCircui
t、−,5hape。
PeriConns、PeriCons、5onsLT
rees) 、−はlayoutframe名記入用。
MyNodes = TopCircuitの周辺ノー
ド名。第3図ではTopCircuitはgo(第3図
1211)であり MyNode  =  [in、out、vcc、ve
e]。
5onsCirTrees =子の回路本のリスト。第
3図ではgo1〜g04の回路木リスト(第3図121
2など)。
5hape = [Wp、Hp、−、−,0,]Ta1
lコ、 TopCircuj tである回路モジュール
goの目標形状1’P + HP−後での実形状記入用
変数−9−、レイアウト長方形状の左上原点(第3象限
系を利用。この段階では長方形毎の局所座標系に変更す
る (prepare routingによる))。Ta1
lは長方形状を子回路のレイアウトに分割した際の、分
割点の座標を記入する部分。
PeriConns  =  [NorthCons、
WestCons、EastConsコ。
周辺端子群。
第3図の例では(第3図1233) IjestCons  =     [con(cin
、in)コ等。
end、El =終了フラグである。preparep
lacement終了時にEl = endとなる。
5onsLTrees =子のレイアウト木のリスト。
この段階では未定義(−)となっている。
Place and rout(第8図2030)は、
状態5(CirTree 、 LTree 、 Con
Layout r [] )を5(CirTreel。
LTreel、ConLayout、LineLayo
utl)に変換する処理iにより、回路木C1rTre
eのレイアウトを生成する。
態メモリの内容を陽に表現したものである。
5(CirTree、LTree、ConLayout
、 [コ)=レイアウト開始時点の状態であり、pre
pare−placementによって作成されたC1
rTree、最上位のみに計画レイアウトを持ったLT
ree、コネクタのレイアウトConLayout (
外周分のみ)、配線データ無しく[])の組みで定義さ
れている。
5(CirTree、LTree、ConLayout
、LineLayoutl) =レイアウト完了時点で
の状態であり、 C1rTreeにレイアウト起因の寄生効果等を追加し
たC1rTreel 、最上位のみが計画レイアウトを
持っていたLTreeに対して全階層のノートに回路モ
ジュールの実配置データ(長方形の分割データとなって
いる)を記入したLTree、配線用全コネクタ群の配
置を表わす ConLayoutl 、全配線データLineLay
outlの組みで定義される。
clraw−1ayout (第8図2040)はレイ
アウト完了時点での状態の内のLTree、 ConL
ayout。
Lj neLayoutを外部描画装置に出力表示する
ボディ部の3ゴールは逐次実行されるべきものであり、
終了フラグend、El、E2によってこれを突合して
いる。よって各ゴールの計算及びエリア複雑度を各々[
Tci、Sci]、CI+2.3とするとき、5olv
ea layoutproblem全体の複雑度は上記
定式に記入したごとく次のようになる。
[add(Tel、add(Tc2.Tc3))、ma
x(Scl。
aax(Sc2,5c3))]。
ここに項add(A、B)、max(A、B)は各1項
A、Bに加算。
max算を適用した結果を示す計算量である。
(Prog、2)配置配線用述語place−and 
routeの定義n(第9図参照) place−and−route(s(CTI、LTI
、CLI、LLI) 、5(CT4゜LT4.Cl3.
LL4)↑、Proc、Con5tr。
[add(Tel、Tc2)、ll1ax(Scl、5
c2)コ↑、end、Out↑):true processor−matrix (Matrix↑
)。
Place−by−qtree(s(CTI、LTI、
CLI、LLI)、5(CT2゜LT2.Cl3.LL
2)↑。
Proc、Con5tr、[丁cl、Scl]、Mat
rix、end、El ↑)。
prepare−routing(s(CT2.LT2
.Cl3.LL2)、5(CT3゜LT3.Cl3.C
l3.LL3)↑。
Proc、Con5try [−+−コ、El、E2 
 ↑ )。
routeJy−qtree (s (CT3 、 L
T3 、 Cl3 、 LL3) 、 s (CT4 
LT4.Cl3.LL4)↑。
Prpc、Con5tr、 [Tc2.Sc2]、Ma
trix、E2.Out↑)。
Processor−mitrix (第9図2050
)は、負荷分散の目的で用いるPE格子を変数matr
ixに読み出す。
place−and−routeは+place−by
−qtree (第9図2080)を実行する。4分木
処理を主体とするアルゴリズムであるため述語名にby
−(ltreeをつけた。ボディ部3ゴールによって、
 place androuteの初期状態5(CTI
、LTI、CLI、LLI)は、レイアウトが完了した
最終状態5(CT4.LT4.Cl3.LL4)に変換
される(表現簡略化のためにC1rTree1等と略記
した)。3ゴールの実行は逐次であり、 prepar
eroutingの計算量は他に比較して微小であり、
メモリ量はPlaceJy−qtreeと同量であるの
で[−、−]として無視している。よって全体の複雑度
は[add(Tel、Tc2)、wax(Scl、5c
2)]となる。
(Prog、3)配置述語placeJy−qtree
の定義節(第10図参照) placeJy−qtree(Sold、SNew↑、
Proc、Con5tr。
[add(Tel、add(Tel、add(Tc2.
add(Tc3.Tc4)))。
rnax(Scl、max(Sc2.max(Sc3,
5c4)))]↑、Matrix。
end、Out↑)ニー 5old ” S(CTI−1−1−)1getjop
circuit−property (CT + [b
lock 、 free]↑) planframe(LFName↑、choos+、
a layoutframe。
5O1d、Sl↑。
Proc、Con5tr、[Tcl 、Sclコ↑、e
nd、El ↑)。
Planframe(LFName、generate
−subproblems、Sl、 。
S2↑、Proc、Con5tr、 [Tc2.Sc2
]↑、El、E2↑)。
Place−all−sons(LFName、S2.
S3↑、 prOc 。
Con5tr、[Tc3.Sc3コ ↑ 、Matri
x、E2.E3 ↑ )。
Planframe(LFName、aggregat
e−Placement、S3゜5Ne11↑、Pro
c、Con5tr、[Tc4.Sc4]↑、E3.Ou
t↑)。
placeJy−qtree(SOld、SNe!1↑
、Proc、Con5tr。
[add(Tel 、Tc2)、max(Scl、5c
2)コ↑、Matrix。
end、Out↑)ニー 5old ” 5(CT、−+−+−)+5NeW ”
 S(−+LT+−+−)+getJopCircui
t  property(CT、[cell。
freeコ ↑ )、putjfname(LT ↓ 
↑ 、LFName ↑ )plaframe (LF
Name↑、 choose−a−1ayoutfra
me 。
5old、−、Proc、Con5tr、 [Tcl、
Scl]↑、end、El↑)。
planframe(LFName、generate
−a−cell、Sl 、5Nev↑、 Proc↓、
Con5tr、 [TX2.SC2]↑、El、Out
↑)。
Place−by−qtree(Sold、SNwew
↑、Proc、Con5tr。
[Tel、Scl]↑、Matrix、end、Out
↑)ニー5old = 5(CT、−+−+−)+ge
t−topcircuit−property(CT、
 [−、fix]↑)plaframe(fixedm
odule、take−a−1ayout、5old。
SNew ↑ 、Proc、Con5tr、[Tcl、
Sclコ↑ tend、out↑)。
place、、−all−sons(LFName、5
(CTI、LTI、CLI 、LLI)。
5(CTI、LTI、CLI、LLI)↑、Proc、
Con5tr。
[max(Tel、max(Tc2.max(Tc3.
Tc4))) 、add(Scl。
add(Sc2.add(Sc3,5c4)))コ↑ 
、Matrix、end、Out↑)ニー get−sons−trees (CT 1 、 [S
Ct 1 、 SCt 2 、5Ct3 。
5et4]↑)。
get−sons−trees(LTI、[5Ltl、
5Lt2,5Lt3゜5Lt4コ ↑ )。
get−sons−trees(LT2.[5Ltnl
、5Ltn2,5Ltn3゜5Ltn4]↓↑) assign−matrix(LFName、Matr
ix、 [LuM、LvM、RbM。
RuMコ ↑ 、[LupE、LbPE、RbPE、R
uPEコ ↑ )。
place−by−qtree(s(SCtl、5Lt
l、CLI、LLI)。
5(SCtl、5Ltnl、Cl3.LLI)↑。
proc、Con5tr、[Tel、Scl]↑、Ln
M、end、El↑)@processor (LuP
E) +place−by−qtree(s(SCt2
,5Lt2.Cl3.LLI) 。
5(SCt2,5Ltn2.Cl3.LLI)↑。
proc、Con5tr、 [Tc2.Sc2]↑、L
bM、end、E2↑)@processor (Lb
PE) 。
place−by−qtree(s(SCt3,5Lt
3.Cl3.LLI)。
5(SCt3,5Ltn3.Cl3.LLI)↑。
proc、Con5tr、 [Tc3.Sc3]↑、R
bM、end、E3↑)@processor (Rb
PE) 。
place by−qtree(s(SCt4,5Lt
4.Cl3.LLI)。
5(SCt4,5Ltn4.Cl3.LLI)↑。
proc、Con5tr、 [Tc4.Sc4]↑、R
bM、end、E4↑)@processor (Rb
PE) 。
judge−end ([El 、E2.E3.E4]
 、Out↑)。
第1.2.3節は各々階層非終端部blockで配置形
状が可変freeの時(第10図2090)、階層終端
部cellで形状可変の時(第1o図2130)、階層
レベルを間合ずスタンダードセルのような既存の形状固
定物fixの利用が可能な時(第10図2160)の処
理を表わしている。planframeは、配置形状テ
ンプレートlayoutframeの依存の階層本のノ
ード処理述語であり、第6図のレイアウト基本プロセス
(1500)の一部(1510)を成している。メツセ
ージによって異なる働きをする。第1節は、テンプレー
ト群の中から適切な形って子供の計画レイアウトを作成
する(第10図’7H1o5)、次のplace−a、
1l−sonsの節(第10図2120、。)−、、各
1供。配置2再帰ゎ1o実施tお。
゛各子供は並列に実行される。最後にaggregat
e″placementのWJ(第10図2120)で
子の実形状から親の実形状を求める。実形状が当初予定
のLFNameのテンプレート定義に合致せぬ場合には
LFNameを合致するものに変更する。第2節では、
使用すべきテンプレートを決定したのち(第10図21
40)当テンプレートによってレイアウトを生成して記
憶する(第10図2150)。第3節では生成済のレイ
アウトデータを取り込むのみである(第10図2170
)。
配置処理再帰述語place−all−sonsは、親
ノードの各子供(4個)に対してplaceJy−qt
reeを再帰的に実施する(第11図)。各々の子供は
終結フラグendを同時に与えられ、−斉に動作する(
第11図、2200,2210,2220゜2230)
。各子供のTreeについてはレイアウトデータ(SL
ti;i=1〜4)とコネクタデータ(CLi  ; 
i= 1〜4)とが変化する。回路や配線−は資化しな
い。計算オーダは子供の内の最大値、メモリーオーダは
子供の合計となる。PE格子を示すMatrixは、p
lace−all−sons内でassign−mat
rix述廃によって、使用中のテンプレート名LFNa
meに依存した分割処理をうける(第11図2190)
。結果として、各子供に下降させるへき部分マトリクス
[LuM、LbM、RbM、RuMコと、各部分マトリ
クスからの代表PEのリスト[LuPE、LbPE。
RbPE、PuPE]が作成される。各子供は、それぞ
れ”’:LuPE、LbPE等に割り当てられる。再帰
の途中で−Matrixが単一PEに縮退して、それ以
上の分割が1、−不可能となった時点以降では、分割は
中止され、−各子供には同−Matrixが下降される
。すなわち、負荷分散は自動的に中止される。
(Prog、4)配線前処理述語prepare−ro
utingの定義節(第12図参照) prepare routing(s(CTI、LTI
、CLI、LLI)。
5(CTI、LT3.Cl3.j↑r P r OCp
 COn S i r + [0+ m a X(Sc
l、5c2)end、Out↑)ニーgeJorigi
n (LTI ↓ r [Xorg、Yorgコ ↑ 
)local to−global(CTI、LTI、
LT2↑、 Xorg 、 Yorg 。
[−、Scl]↑、end、El↑)。
choose 1nit connectors(LT
2.CLI、LT3↑CL2↑IC−15c2]、El
、Out↑)。
LocalJo−global(CT、Layout(
Circuit、LFName。
5hape、PeriConnes、−)。
1ayout(Circuit、LFName、5ha
pe。
PeriConns、j ↑+XQrgyYOrgy 
[−yo(1)コ↑。
end、Out↑)ニー getJopciucuit−property(CT
、[cell、−コ ↑)。
adJvector (Shape* [Xorg、Y
orgコ、NewShape ↑)ltrue。
1ocalJo−global(CT、1ayout(
Circuit、LFName。
5hape、PeriConns。
[Lu5on、LbSon、Rb5onコ)。
Layout (Circuit 、 LFName 
、 NewShape 、 PeriConns 。
[NLu5.NLbs、NRb5.NRu5])↑、X
orgyYorgy[−+add(Scl、add(S
c2.add(Sc3,5c4)))コ↑、end。
Out↑)ニー get−topcirciut−property(C
T、 [block、−]↑)。
adcjvector (Shape 、[Xorg、
YorgコツNewShape↑) get−sons−origins(NewShape
、 [Xlu、Ylu、Xlb。
Ylb、Xrb、Yrb 、Xru 、Yruコ ↑ 
)。
1ocaljo−global (LuSon 、 N
Lu5↑、Xlu、Y]、u、[Sclコ ↑ 、en
d、El ↑)。
1ocal to−global、(LbSon、NL
bs↑、Xlb、Ylb、 cjSc2]↑、end、
E2↑)。
1oca1−to−global(RbSon、NRb
5↑、Xlb、Ylb、 E−。
Sc3コ↑ 、end、E2 ↑)。
1ocaJto−global(RuSon、NRu5
↑、Xru、Yru+[−+Sc4コ↑ 、end 、
E4 ↑)、judge−end([El、E2.E3
.E4コ。
Out↑)。
prepare、routingではlocal−to
−global述語(第12図2260)によって配置
済オブジェクトの、左上原点位置をチップの世界座標に
変換すると共伜こ、choos+、1nit−conn
ectors (第12図2270)」; −によって外周部に初期計画したコネクタ以外のコーネ
クタ(配置処理中に生成されたもの)を全て消去する。
これらは、配置計画のtopJown相であるgene
rate−subproblems中での概略配線計画
の際に生成したものであり、計画位置の妥当性が低いた
めである。
]、ocaljo−globalは、配置物の位置座標
をチップ全体の世界座標に変換する。adcjvect
orによって世界座標上での親の長方形の左上点[Xo
rg 、 Yorg]の示すベクトル分だけ親のフロア
ランプの座標を移動させ、各子供の左上点の世界座4m
 ([Xlu、Ylulなど)を取り出して子ノードに
伝えて再帰処理する。各プロセスは一斉にendフラグ
を受は取って並列に実行される。このため全体のメモリ
量は各プロセスでの所要量の合計となる。
(Prog、5)配線処理述語routeJy−qtr
eeの定義節(第13図参照) routeJy−qtree(Sold、SNew↑、
Proc、Con5tr。
[add(Tel、add(Tc2.Tc3)) 、m
ax(Scl、max(Sc2゜5c3))]、Mat
rix、end、Out↑)ニー5old  = s(
CT、LT、−、−)。
get−topcircuit−property(C
T、[block、freeコ↑)、get lfna
me(LT、LFName↑月p1anframe (
LFNerne 、 generate−subpro
blemss 。
501d、Sl↑、Proc、Con5tr、[Tel
、Scl]+end+E1↑)。
route−all−sons(LFName、52,
52↑、 Proc 。
Con5trTc2.Sc2コ、Matrix、El、
E2 ↑ )。
planframe(LFName、aggregat
e−routes、S2゜SNew↑+Proc、Co
n5tr、 [Tc3.Sc3]、E2.E3↑)。
route by−qtree(Sold、SNew↑
、Proc、Con5tr。
[add(Tcl 、Tc2)、rnax (Scl、
5c2)コ、Matrix、end。
Out↑)ニー 5old =s(CTI、LTI、CLI、LLI)、
SNew =s(CTI。
LTI、C10,LL2)↑。
getjopcircuit−property (C
TI 、[cell 、freeコ↑)、getjfn
ame(LTI、LFName↑)planframe
 (LFName 、add−qtrees 、Soコ
d、5(CT2゜LT2.CLI 、LLI)↑。
Proc、Con5tr、[Tel 、Sclコ、en
d、El ↑)。
route−by−qtree(s(CT2.LT2.
CLI、LLI)↓、5(CT2.LT2.C10,L
L2)↑。
Proc、Con5tr、[Tc2.Sc2]、Mat
rix、El、Out↑)。
routeJy−qtree(SOld、Snew↑、
Proc、Con5tr。
[Tcl、Sclコ、阿atrix、end、Out 
↑)二一5old  =  5(CT、LT、、−)。
get−topcircuit−property (
CT 、 [1eaf−in−cel 1−、free
コ ↑ )。
getjfname(LT、LFName↑)plan
frame(LFName、route−a−1eaf
−in−cell。
5old、5Neti↑。
Proc、Con5tr、 [Tel 、Scl] 、
end、Out↑)。
route−by−qtree (Sold 、 Sn
ew↑、Proc、Con5trs[Tel、Sclコ
、Matrix、end、Out ↑)ニー5old 
= 5(CT、LT、、−)。
getJopcircuit−property (C
T 、 [−fix]↑)planframe(fix
edmodule、take−routes、5old
SNew ↑ 、Proc、Con5tr、[Tel、
Sclコ、end、Out ↑ )。
[max(Tel、max(Tc2.max(Tc3.
Tc4)))、add(Scl。
add(Sc2.add(Sc3,5c4)))コ↑、
Matrix、end。
Out↑)ニー get−sons−trees(CT1[5CT1 +
5CT2,5CT3゜5CT4コ ↑)。
get−sons−trees(LTI [5LT1.
5LT2,5LT3゜5LT4]↑)。
geJsons trees(CT2[5CTnl、5
CTn2,5CTn3゜5CTn4コ↑) assign−matrix(LFName、Matr
ix、[LuM、LbM、RbM。
Rub]、[LuPE、LbPE、RbPE、RuPE
コ)。
routeJy−qtree(s(SCTI、5LTI
、CLI、LLI)。
5(SCTnl、5LTI、C10,L12)↑pro
c、Con5tr、LuM、end、El↑)@pro
cessor(’LuPE)。
routy−by−qtree(s(SCT2,5LT
2.C10,L12) 。
5(SCTn2,5LT2.Cl3.LL3)↑。
Proc、Con5tr、LbM、end、E2↑)@
processor (LbPE) 。
routy−by−qtree(s(SCT3,5LT
3.Cl3.LL3)。
5(SCTn3,5LT3.C10,L12)↑。
Proc、Con5tr、RbM、end、E3↑)@
processor(RbPE)。
routy by−qtree(s(SCT4,5LT
4.C10,L12)。
5(SCTn4,5LT4.Cl3.LL5)↑。
Proc、Con5tr、RbM、end、E4↑)@
processor (RuPE) 。
judge−end ([Wl 、E2.E3.E4]
 、Out↑)。
配線も配置と同様に再帰処理を行う。配置においては、
セルは分割不可能な配置単位であり階層終端ノートとな
るが、配線はセル内のコネクタ、例えばトランジスタの
ベースのコンタクト等が終点となる点が異なっている。
そこでセル内のコネクタが階層終端部となるような局所
4分本(及び対応する局所回路水)を作成し、再帰処理
をさらに二界上に配線ネット名付きのコネクタを作成し
た後、力3れを子供に与えて各子供の配線の再帰処理に
移る(第13図2350)。各子供の処理が完了した後
aggregate−routesによって配線の電気
特性分析のように統合処理を行う(第13図2360)
以上の各ステップで、初期状態5O1dは、Sl、S2
゜SNewに逐次変換される。
第2節は上述したセルの細分による配線を行う(第13
図2310)。本節起動時には、状態5O1d中の回路
水CTIとレイアウト木LTIは終端となっている。こ
れらを上記の局所4分本で置き換え(第13図2370
)だ断状態を(add−qtreesメツセージでpl
anframeを起動し5oldを5(CT2.LT2
゜CLI、LLI)に変換。ここでCLIとLLIはブ
ロックや他のセルも含めた配線データ)、route 
by−qtreeによる配線(第13図(2380)に
よって、5(CT2.LT2.C10,L12)に変換
する。得られた配線データCL2.LL2と、もとのC
TI、LTIとで断状態SNewを定義することにより
、2つの局所水を消去して、セル内配線データのみを残
す。
第3節は、セル内配線における局所水の終端部上eaf
−in−cellでの配線処理を行う(第13図232
0.2390)。第5図1434部のセル−〒 :ll内線線おいて、セル内の最小区画内での配線を…
へ1第4節は形状固定モジュール配線用である(第13
図(2330)。単に外部ファイルから配線データを取
り込む(第13図2400)。
配線処理再帰述語route−all−sonsは、各
子供についてrouteJy−qtreeを用いて、再
帰的に配線を行う。後述の配線統合処理aggrega
te、、−routesによって配線の寄生インピーダ
ンスを求めて回路水上に付記することによりCTIはC
T2に変化するが、配置データLTIは変化しない。配
線によって、コネクタデータがCLIからC10に、配
線データがLLIからLL2に各々変化する。
負荷分散については配置の場合と同様の方式で良い。
(Peog、6)描画出力述語dtaw−1ayout
の定義節(第14図参照) draw 1ayput(s(Cirtree、Ltr
ee、ConLayout)、。
Proc、−。
[max(Tel、max(Tc2.Tc3))、ad
d(Sc2,5c3))コ。
end、−)ニー true draw−placements(LTree、Pro
c、[Tel、Se2コ。
end r −) + draw−connectors (ConLayou
r + Proc 、 [Tc2 、 Sc2] 。
end 、〜〕。
draii−1ines(LineLayour+Co
nLayout、Proc。
[Tc3.Sc3]、end、−)− 配置・配線処理が終了した時の内部状態を出力表示する
。LTree内の配置データ(第14図2410)及び
ConLayout、LineLayout内のコネク
タ(第14図2420)及び線分データ(第14図24
30)を並列に出力する。セルやコネクタや線分の形状
はデータ削減のために内部状態に記憶せず、それらのタ
イプ名や場所のみを記憶しているa Procを与えて
いるのは、タイプ名で形状テンプレートlayputf
rameを検索し、プロセス名Procと場所データと
から実形状を生成しつつ描画させるためである。
(Prog、7)階層水のノード処理用planfra
me述語群回路木やレイアウト本を用いた階層処理にお
いて、木の名ノードでの問題分割や統合等の様々の機能
が必要となるにれらの機能を実現するための述語群を一
括して定義する。各述語の形式及びその−船釣機能は次
の通りである。
planf’rame(LFName、Message
、5old 、SNew↑、 Proc 。
Con5tr、Complexity、EIE2↑)ニ
ー名称がLFNameの形状テンプレートlayout
frameを用いて、与えられたMessageのもと
に、状態5O1dをSNewに変換する。
以下、Messageの内容毎にplanframeの
定義を示す。
(Prog、7.1)形状テンプレートlayoutf
rame選択用planframeの定義(第15図参
照)planframe(LFName→、choos
e−a−1ayoutframe。
5(CTI、LTI、CLl、LLI)、s(CT1.
Li2.CLI、LLI)↑ 。
Proc、Con5tr、 [o(no、oflayo
utframes)]↑。
end 、 Out↑)ニー getjopcircuit−property (C
T 1 + [cel 1、−]↑)。
getJopcircuit−type (CT1.[
Kind、5pecコ ↑)。
geJshape(LTI、5hape↓↑)usab
le−1ayoutframs(にind、5pec、
5hape、Proc。
Layoutframes↑)。
choose−a−best−1frame(Layo
utframes、Con5tr。
LFName↑)。
layoutframe(LFName、Blocks
↑l−1−11−1−1−Lgenerate−rea
l−shapl−1−1−Li、Blocks) 、a
ddreal−shape(LTI、Li2↑、5ha
pe、end、Out↑)。
planframe(LFName、choose−a
−1,ayoutframe。
5(CTI、LTI、CLI、LLI)、5(CT2.
Li2.CLl、LLI)↑。
Pr0c、Con5tr、 [o(1)、o(no、o
flayoutframes)]↑、end、Out↑
)ニー get−topcircuit−property (
CT 1 、 [bl ock 、−]↑)。
get−sons−with−nodes(CTI、[
[5onl、NSI]+[5on2.NS2コy [5
on3.NS3コ、[5on4.NS4コ] ↑)。
get−sons−1ayout−trees(LTI
、[5onl、NS2,5on3゜5on4]、[LT
SI、LTS2.LTS3.LTS4コ↑)。
geJplanned−1ayout (LT 1 +
 [[Wp + HP l −] r Ncon 。
Wcon 、 5can 、 Econ ]]↑月mi
n1−wire−placement([Ncon 、
 IIIcon 、 5con 。
Econコ、[[NS1.LTSll、[NS2.LT
S2]、[NS3.LTS3コ。
[NS4 、LTS4ココ、[Lus、Lbs、Rbs
、Rusコ ↑ 、Con5tr)。
generate−place−message−to
−a 1.11ayoutframes ([Lus 
、 Lbs 、 Rbs 、 Rus] +Mesag
eList↑)。
findJest−1ayoutframe ([Wp
、Hpコ!MessageList、Be5tShar
eplan↑、LFName↑)。
put−planned−1ayout (LTI 、
 LT2↑Be5tShareplan、end、Ou
t↑)。
第1節はセルのレイアウトフレーム(形状テンプレート
)を選択する(第15図2450)。回路木CTI内に
与えられたモジュールのタイプやスぺJll、490)
。第2節はブロックレベル用であるLl−7第15図2
45 Q ) 。get=planned−1ayou
t (第ン、15図2500)によって親の計画形状[
υp + Hp]計と北、西、南、東辺上の配線ノード
名付きコネクタNeon−Econを得る。これと各子
供が持つ配線ノードとの配線長が短くなるように、mi
n、jwireplacement (第15図251
0)によりレイアウト木LTIの子供に子回路を配置す
る(第1子〜第4子は平面の4分スライスの左上部分か
ら始めて反時計回りに配置すると約束) 、 [Lus
、Lbs、Rbs、Rusコは配置結果である。この計
画は全てのテンプレートにMessageListとし
て伝達される。各テンプレートは外形状[Wp、Hp]
平面内に各自の平面分割トポロジーに従って各子供を配
置し、全体形状、アスペクト比、デッドスペースを算呂
する(第15図2520)。最も良好な計画を作れるテ
ンプレート名称LFNameと平面分割計画Be5tS
hareplanがfindJest−1ayoutf
rameによって選出される□結果はpuJplann
e−1ayoutによってLTIの親と子レベルとに記
憶される(第15図2530)。並列にR)16図参照
) planframe(LFName、generate
−subproblems。
5(CTI、LTI 、CLI 、LLI)、5(CT
I 、LT2.Cl3.LLI)↑。
Proc、Con5tr、 [o(no、ofnode
sinthisblock)。
o(no、ofnodesinthisblock)]
、end、Out↑)ニーrue get planned−1ayout(LTI、[P
lannedShape、Neon。
Wcon、Sco、Econコ↑)。
get−sons−nodes(CTI、[N5onl
、N5on2.N5on3゜N5on4コ↑ )。
generate−nodeprofiles (LF
Name 、 [Ncon 、 Wcon 。
5con 、Econコ。
[N5onl、N5on2.N5on3.N5on4]
、CLI。
NodeProfileList↑)。
layoutframe(LFName、−、−、−、
−、RoutePatterns↑。
GoalVect↑、−)。
planframe(LFName、generate
−goal−vector。
GoalVect↓↑。
In1tVect↑、In1tCost↑、Plann
edShape、Proc)。
gen、−subproblems−by−routi
ng (NodeProfileList 。
GoalVect、In1tVect、In1tCor
s、RoutePatterns。
CLI、CL2↑ 、El、Out↑)。
propaga te−p 1ans (LFName
 、 RoutedNodeProf s 、 LT 
l 。
KT2↑、El、Out↑)。
子回路の配置と各々の形状とが親平面内に決定さ九た状
態のLTIを用いて、generate−nodepr
ofilesまでで(第16図2550.2560.2
570)親の外周コネクタ(Neon等)の存在辺、各
ノードのネットの4分画上のバラツキ具合 NodeProfileListを分析する。次にテン
プレート名称LFNameのlayoutframeか
ら、4分画間を結ぶ配線パターンテンプレート群Rou
tepatternsを呼び出すと共に配線が通過し得
る各子供の外周境界線分数を次元数とする変数ベクトル
GoalVectを作成する(第16図2580)、次
のplanframeは親平面の分画形状を表わすpl
annedshopeを用いて各境界線長を計算し、配
線可能本数を求めてGoalVectの各要素に記入す
る(第6図2590)。
配線間隔や配線幅はプロセス依存のレイアウトルールで
あるので、プロセス名Procも引数としておき、 1
ayoutrule(後述)を検索できるようにしであ
る。In1tVectは配線可能路を障害する固定セル
の影響などを事前考慮するためのベクトルである。
2差分GoalVect−InitVectが実配線可
能容量ペクト2局辺境界上に存在する配線コネクタの旧
存在範囲データ(CLI内にある)が内部の4分区画の
いずれ)11かの境界辺上に来るまでに充分縮小されて
いるが否かを調査する。否の場合には縮小可能が否かを
調査し、可能の場合には縮小する。これでも不可能な配
線ノードについては、配線処理を先送りし、隣りのブロ
ックが該コネクタの存在範囲を縮小するのを待つ。すな
わち、並列走行ブロック同士は、共有コネクタをめぐっ
て協調動作する。最終的に各ノード毎に配線テンプレー
ト名称や子回路間の境界上の新コネクタの属性(名称及
び、存在域など)が作成され、CLIに記入されてCl
3に変更される。最後にpropagete−plan
s (第16図261Q)によって親レベルで求めた新
コネクタ名称4個の子供の外周辺N、li、S、Eに下
降させる(LTIはLT2)となる。時間は、親ブロッ
ク内で配線すべきノートを逐次処理するのでo(no、
ofnodesinthisblock)、メモリは、
各ノードについての配線を蓄積するためo(no、of
nodesinthisblok)となる。
(Prog、7.3)配置部分問題統合用planfr
ameの定義節(第17図参照) planframe(LFName、aggregat
e−placen+ent。
5(s(CTI、LTI、CLI、LLI)、5(CT
I、LT2.CLI、LLI)↑。
Proc、Con5tr、[o(no、ofsons)
コo(no、ofsons)]、end、Out↑)ニ
ー trueget  5ons−shapes(LT
I、[LbShape、Ru5hapeコ ↑)。
aggrate−sons−shapers (LuS
hape 、 LbShape 。
Rb5hape、Ru5hapeコ、MyShape 
↑ 、NewLFName ↑ )。
renetg−1tree(MyShape、NewL
FName、LTI、LT2→+end、Out↑)。
get 5ons−shaoes (第17図2630
)によって子供の外周形状を調べ、aggregate
、5ons−shoapes(第17図2640)でL
FName依存の形状統合演算法によって全体形状(外
形と分割点座標からなるMyShape)を求める。M
yShape内の区画形状がLFNameの定義する形
状トポロジーと異なる場合には、合致するNe+yLF
Nameを求める。最後にMyShapeとNe吐FN
ameとでLTIを更新しLT2とする(第17図26
50)、計算量、メモリ共にaggregateson
s 5hapesが主体であり招う子供の数に比例する
のでo(no、ofsons)となる。
ture  1 get−planned−1ayout (LTI 、
 [P1annedShaoePeriConnsコ 
↑ )。
renew−cont−rangeflag(stop
−narrow−down。
PeriConns、CLI、CL2↑、Out↑)。
本節以前のchoose−a−1ayoutframe
によってレイアウト木LTI内にセルの外形状は作成さ
れているので、ここでは当セルの周辺コネクタ上の状態
フラグに・メツセージstop−narroty−do
wnを記入して、周辺コネクタ位置をこれ以上絞り込め
ない旨が隣接ブロックに判るようにしてやる。
(Prog、7.5 )セル内配線における終端部処理
planframeの定義節(第18図参照)plan
frame(LFName、route−a 1eaf
−in−cell、5(CTI、LTI、CLI、LL
I)、5(LT2,1丁1.C10,LL2ン ↑ 。
Proc、Con5tr、[o(1)、o(])コ↑ 
、end、Out↑)=geJp 1anned−1a
yout (LT 1 、 [P 1annedsha
or 。
Ncon、Wcon、5con、Econ]↑)。
get−my−node(CTI、InNode)ge
nera te−nodeprofi les (LF
Name 、 [Ncon 、 Wcon 。
5con、Econ] 、InNode、CLI、No
deProfj 1eList↑)。
Layoutframe(LFNalIle、−、−、
−、−、RoutePatterns→、GoalVe
ct↑、−)。
planframe (LFName 、 gener
at+、goa 1.−vector 。
GoalVect↓↑。
In1tVect↑、 In1tCost↑、5hap
e、Proc) 。
gen、、−routes (NodeProfile
List [1+ [1rRoutedNodes↑、
GoalVect、In1tVect、In1tCos
t。
RoutePatterns、、−、CLI、CL2↑
、El↑)。
make  1ines(RoutedNodes↑、
Cl3.CL3↑、LLI。
KK2↑、El、Out↑)。
セルの最小分画内での配線を行う。配線コネクタの分画
周辺及び内部での存在状況を表わすNodeProfi
leListを作成しく第18図2970゜2680.
2690)、配線パターンを用いて配線する(第18図
2700.2710.2720)。
配線結果はRoutedNodesとなる。これをもと
にn+ake 1inesで配線を作成する(第18図
2730>。
(Prog、7.6)分画境界辺の配線容量算出pla
nframeの定義節(第19図参照) panframe (LFName 、 grnera
te−goal−vector 。
GoalVect↑l In1tVect↑、 In1
tCost↑、5hape。
Proc)ニー true layoutrule(usablejayrs、Pr
oc、Layers↑)。
layoutrule(mini−1ine−widh
t、Pr0c、−、−、−。
す1dth↑−2−)。
layoutrule(mini  1ine dis
tance、Proc、−、−、−。
−tl)1st↑)。
gen−vectors−for−route (LF
Name 、 5hape 。
Layers 、 Width 、 Dist 、 G
oalVect↑、 In1tVect↑。
In1tCost↑)。
layoutfram上に配置された子回路及び外部間
の全境界線上を通過し得る配線本数を要素としたベクト
ルGoalVectを作る(第19図2780)、プロ
セスProc依存の1ayoutruleを参照して(
第19図2750.2760.2770)可能本数が求
められる。
(Prog、7.7)配線統合用planframeの
定義節planframe (LFName 、 ag
gregate、、−routes 、 s (CT 
l 。
LTI、CLI、LLI)、5(CT2.LTI、CL
I、LLI)↑。
Pr0C,Con5try[−+−]tend+oui
↑)ニー trueBody。
配線電気特性分析や不具合の改良用。
(Prog、8)形状テンプレートlayoutfra
meの定義節1ayoutfraIIle(type(
tr、Proc、5pec) 、Blocks↑。
Connectors↑、 Liners↑、Prop
s↑l−1−10bstacles↑)ニー true
 l Body。
layoutframe(type(res、Proc
、5pec) 、Blocks↑。
Connectors↑、Lines↑、Props↑
t−1−10bstacles↑)ニー true l
 Body。
layoutframe (type (block 
、 Proc + 5pec) 、 Blocks↑。
Connectors↑、 Lines↑、 Prop
s↑。
RoutePatterns↑、 Goa IVect
or↑。
0bstacles↑)ニーtrue  Body。
トランジスタや抵抗などのセル、あるいはブロックなど
の形状テンプレートである。上記はその代表例である。
プロセスProcや仕様5pecに応じて種々定義して
おく。出力は形状構成要素Blocks。
Connectors 、 Lines等、電気特性P
rops、配線障害物形状0bstacles等である
。左辺のこれらはBody部に定義文が与えである。b
lockについては配線パターンRoutePatte
rnsや配線容量定義ベクトルGoalVectも出力
できるようになっている。
(Prog、9)プロセス制約1ayoutruleの
定義部1ayoutle(usable 1ayers
、Proc、Layers↑)ニーtrue  Bod
y。
layoutle(mini−1ine−distan
ce、Proct−+−+−y−+Dist↑)ニー 
true l Body。
layoutle(miniJine−ewidth、
Proc、−、−、−、Width2.3  HRCT
Lの評価 HRCTLの評価をアルゴリズム面、機能面から行う。
2.3.1  アルゴリズムの時間・空間複雑度HRC
TLの時間・空間複雑度について考察する。
(定義1)B (d、r)によって深さd−1のバラン
スr分水を表わす。rは木の各ノードの持つ枝の数、d
は木の頂点ノードから終端ノードまでのノードの数であ
る。
(定理1)B (d、r)の総ノード数は、1+r+=
−+r’−’=(r’−1)/(r  1)である。
(定理2)総終端ノード数NL、技末rのB (d。
r)の深さはd ” logr N L + 1である
。(+4−1=NLより) (定義2)−B (d、r)をHRCTLによって充分
多量のプロセッサ上でレイアウトする時の時間複雑度、
領域複雑度を各々tcomp(d、r) 、scomp
(d、r)で表わす。
routeの複雑詞は主として、place−by−q
tree(Prog。
3)とrouteJy−qtree (Prog、 5
)によって決まり、かつ双方は類似の雑複度項を有する
。そこでplaceby−qtreeを考察する。帰納
法を用いる。
d=1 (セルのレイアウト)の時: (Prog、7
.4)よりtcomp(1+r)=o(1)+5con
+(Lr)−o(1)。
d=d(ブロックのレイアウト)の時: (Prog、
3)(PrOg、7.1〜7.3)を用いて次を得る。
tcomp (d 、 r )=add (0(1) 
yadd (o (no、ofnodesinthsb
loc) 。
add(wax(A) 、o(no、ofsons))
) 。
scomp(d、r):max(o(no、ofl、a
youtfrarnes)、rnax(。
(no、ofnodesinthisblock)、m
ax(add(B) +0(no。
ofsons))) 。
Aはr個の子供の各々のtcomp(d −1、r’)
、Bは同じ<scomp (cl −1+  r)に渡
る。考察中の木が完全バランス木B (d、r)である
ので、max一般のrについて考察する。Place 
and平均ノード数)、no、ofsons == r
として、tcomp (d 、 r):o (1)+o
 (n)+5con+ (d−1r r)+o (r)
=d :(o(1)+o(n)+o(r)9=o(d)
5coIIlp(d、r)=r*scomp(d−1,
r)=r’−”o(1)=o(r”)。
但し、上記tcomp (1、r )=o (1) 、
 scomp (1、r )=o (1)を再帰の終結
部で使用した。
(Considerations)充分なメモリがあれ
ば、HRCTLは木の深さdのオーダの時間で、(素子
シンボル数で言うと、(Theorem、2)よりlo
grNLオーダ)で、r′−1のサイズメモリを用いて
解ける。
但し、並列プロセス間のコミュケーションコストはここ
では無視した。並列論理言語の筒形式中に複雑度項を加
えることによって、アルゴリズムの意味、構文、複雑度
を同時に記述し解析し得ることを示した。
2.3.2  レイアウトの特性向上 HRCTLは計画(Prog、7.1.7.2)と統合
(Prog、7.3)の両相を持つ。計画時に概略計画
を適切に立案し、統合時に不具合を修正させることによ
りレイアウトの特性向上を図れる。
2.3.3  プログラムの汎用性 プロセスやデバイスに依存する(Prog、8.9)を
差し替えることにより、各種の対象に適用できる構造と
なっている。なお、第6図内のプロセス制約(1530
)、形状テンプレート(1520)、;分割統合機能(
1510)は、本実施例では2次−し元手面内でのレイ
アウトを対象としたが、これらニーを3次元空間内での
レイアウトを対象とするもの二に拡張することは非常に
容易である。すなわち、平面の4分割方式を用いるかわ
りに、空間の8分割方式を用いれば良い。この変更に対
応するには、主として形状テンプレート(1520)を
直方体の8分画パターンとすると共に、分割統合機能(
1510)を、この3次元直方体に対する分割・統合操
作を行うものに変更すればよい。
さらに、付言すると、上記実施例では平面の4分割を基
本として説明したが、これを縮退させることによって3
分割、2分割等の場合も扱えることは自明である。
2.3.4  プログラムの開発性 再帰式の定式化により一般のレイアウトプログラムに比
べて記述量は大きく圧縮されている。
3、レイアウト実験 q5の固定ベース電位をq6* q’7+q8等のベー
スに伝えて、それらのコレクター電流を一定化し、回路
の動作点を固定化する。差動アンプは電圧入力電圧出力
増幅器、出力tr (q3.q4)はレベルシフタであ
り、継続段の差動アンプのベース入力に直接接続できる
よう電圧レベルを下降させている。
(2)レイアウト時の考慮制約二本発明の電子回路の並
列処理による配置配線機能を実現することが本実験の目
標であるため、各素子の形状はほぼ同一化した。配置配
線時のペア条件、素子のアイソレーション、配線層、レ
イアウトルール等につ、請イポーラアナログ回路(21
000)(tr=1、・1.1個、reS:8個、ca
pa=o個、信号入出力端子=各2個、vcc、gnd
端子端子側1個本回路は入力(inl、1n2)(22
100)を差動アンプ(ql、q2系)で増幅し、端子
(outl、out2)(22200)に出力する。電
圧源(q5+  r 1 g r 5 )はダイオード
iJ−,(3)入力データ作成:実験1では、第20図
′ILiIA)のアンプ回路を階層化して回路水とした
階層図を図中(B)に示す(22000)。
(4)確認事項: Tl装機能:並列処理によって配置が作成されること。
制約条件として考慮した配線長が短くなること。面積の
少ない配置が得られること。
−1線機能:並列処理によって配線が作成されること。
ネット端点が接続されること。
3.1.2  実験結果 チップの左辺に入力コネクタ、右辺に出力コネクタを指
定して自動レイアウトした結果および入出力コネクタを
これと左右逆にした時のレイアウト結果、並列推論マシ
ンマルチPSl上で約20秒を要した。
3.2 実験結果の評価 3.2.2  配置機能 素子形状がほぼ同一である回路を、デッドスペース無く
配置できたことで、面積縮小機能が確認できた。配線長
をできるだけ短くする配置を作る機能は、入出力端子位
置変更に対して素子配置が自動的に適応したことで確認
できた。
3.2.3  配線機能 一部の配線が混み合っているケースもあるが、配線すべ
きコネクタ間をできるだけ直線で結ぶ機能があることが
目視確認できた。内部では階層的に分割して処理してい
るにもかかわらず素子の間の配線が不要に屈曲せず、従
った配線専用のチャネルを必要としていない。
〔発明の効果〕
周知の如く、LSI開発において、レイアウト自動化は
古くから重要な問題であり、数多くの方式が開発、実用
化されてきた。しかしながら、従来の方式では、特に階
層処理において顕著に出てくる。異ブロック間の形状や
配線端子位置の不整合によるチップ面積増加やプログラ
ム規模の太きさ、汎用性の低さ等が問題であった。従来
技術に対する本発明方式の特徴を次にまとめる。
(1)レイアウト方式としての特徴:著名なものとして
、配置・配線が不要であるPLA、配線のみを必要とす
るゲートアレイ、固定かつ形状のは属する。
プロセス内のレイアウトルールやレイアウトフレームの
差し替えによって種々のデバイスやプロセスに適用でき
るソフトウェア構成となっている。
(4)プログラム規模:回路水をレイアウト木に変換す
る上記の過程は、再帰アルゴリズムとして実現している
。第10図2110に示すように、同一のプログラムの
繰り返し利用によって大規模問題を処理しているため、
レイアウトプログラムの規模は、従来の方式(104〜
105オーダ)にために大規模なメモリや並列プロセッ
サが必要となるが、応分の処理スピード向上は期待でき
る。
レイアウト面積の縮小、配線率の向上、配置・配線にお
ける電気特性の考慮等の問題については、問題分割フェ
イズ(第10図2100.2105等)に種々の制約を
考慮する機能を追加することで対応できる。
(3)汎用性:第1図1500のレイアウト基本環に従
って階層処理が行われる。階層処理においi〒 −では本来ならば分割せずに解きたい原問題(本例では
原回路ネットリスト)を無理に分割処理する。
二;分割結果生じる各部分問題が相互関係の調整(本例
では隣り合う子回路のレイアウト形状の整合や、子回路
間境界線上の配線コネクタ位置の整合)を要する場合が
一般的である。逐次処理によってこの問題を解く場合に
は、禁止的な時間を要するバックトラックによるか、収
束計算によって解を漸近的に改良する方式をとる。本発
明の並動処理によって解く場合には、並列走行するプロ
セスに、各自が動作可能となるだけの情報が充分に集ま
るまで待つという遅延機能を持たせることで効率的に解
を求めることができた。すなわち、階層処理を部分問題
間の相互関係を自動調整しつつ並列モードで高速処理す
ることが可能となった。この機能を持たない通常の並列
処理では、部分問題間でコミュニケーション不足のため
にブロック形状や境界上の配線コネクタ位置のずれのた
め、ブロック間にデッドスペースや配線用チャネルが必
要と一図、第6図は、レイアウト基本プロセス説明図、
第7図は、最上位プログラムの流れ図、第8図は、入力
、配置・配線、出力プログラムの流れ図、第一9図は、
配置・配線プログラムの流れ図、第10図は、配置プロ
グラムの全体流れ図、第11図は、配置における再帰処
理部の流れ図、第12図は、配線前処理プログラムの流
れ図、第13図は、配線プログラムの全体流れ図、第1
4図は、出力表示プログラム流れ図、第15図は、配置
問題分割プログラムの流れ図、第16図は、配線プログ
ラム流れ図、第17図は、形状統合プログラム流れ図、
第18図は、セル内末端区画内の配線プログラム流れ図
、第19図は、配線可能本数ベクトル算出プログラム流
れ図、第20図は、実験結果説明図である。
1100:原データ、]−200:状態メモリ、ニ態メ
モリの内容説明図、第4図は、入出力プロセ”Afj;
6 nfi @ 、第、4よ、□8ヶ決プ。ヤニ内容読
色1;ノrンj 〒ll−図 不乙閑 条S図 を7 図 半2(2) ″”f=tλ図 )r ノS二 図 穿ノb図 第7r図 質D 第2θ図 (峻捗未 (、A) 入力回路体ットヘ〆、2(oo。
(F3)静ロト〜xxoo。

Claims (1)

  1. 【特許請求の範囲】 1、配置物とそれらの間の接続関係を与える回路データ
    、及び該回路データをレイアウトする際のチップの外形
    状と外端子位置とが与えられたもとで、チップ全体をレ
    イアウトする方法において、 (a)目標の形状と外端子位置とを利用して回路間題全
    体を複数個の部分問題に分割する ステップと、 (b)各部分問題を互いに共有した制約条件を守りなが
    ら、互いに並列に処理するステッ プと、 (c)処理を終了した部分問題を統合して親のレイアウ
    トを生成するステップと、 からなることを特徴とする回路レイアウト方法。 2、部分問題の構造を、チップの外形状と外端子位置と
    することを特徴とする請求項1記載の回路レイアウト方
    法。 3、上記処理ステップは、並列処理する各部分問題を有
    限個の計算機の上に負荷分散するステップを有すること
    を特徴とする請求項1記載の回路レイアウト方法。 4、各部分問題のレイアウト外形状と、外端子位置を互
    いのレイアウト作成上の制約条件とすることを特徴とす
    る請求項1記載の回路レイアウト方法。 5、制約条件を満足させるために、外形状と外端子位置
    からなる制約データを状態メモリに記憶しておき、並列
    走行中のプログラムからアクセスするようにしたことを
    特徴とする請求項4記載の回路レイアウト方法。 6、外端子位置を存在許容範囲形式のデータで保持する
    ことを特徴とする請求項4記載の回路レイアウト方法。 7、外端子存在範囲を、自ブロックの内部の配線ネット
    のトポロジーに応じてメインテナンスするステップを有
    することを特徴とする請求項6記載の回路レイアウト方
    法。 8、上記分割ステップあるいは上記生成ステップを実現
    するために、空間の複数部分空間への分割代替案と、各
    代替案に依存して定まる部分空間の間の配線引き回し方
    式の代替案とを少くとも要素として持つプログラムライ
    ブラリを用いることを特徴とする請求項1記載の回路レ
    イアウト方法。 9、上記ライブラリを用いて、上記分割又は生成ステッ
    プの動的手続きを行うことを特徴とする請求項8記載の
    回路レイアウト方法。 10、上記分割ステップにおいて、上記ライブラリの中
    から適切なものを選び出すステップを持つことを特徴と
    する請求項8記載の回路レイアウト方法。 1、上記生成ステップの処理の結果、選んだライブラリ
    が不適切なものと判明した場合に、適切なものに変更す
    るステップを有することを特徴とする請求項10記載の
    回路レイアウト方法。 12、階層の親ブロックがさらに上位から伝達された使
    用可能な計算機の集合を部分集合に分割し、各部分集合
    を各子ブロックに伝達すると共に、各部分集合の中から
    ひとつの代表計算機を選んで、これに当該部分集合を受
    理する子ブロックを割り当てることを特徴とする請求項
    3記載の回路レイアウト方法。 13、階層非終端部では、上記分割、処理、生成ステッ
    プを繰り返し適用すると共に、階層終端部では終端部処
    理を行なうことを特徴とする請求項1記載の回路レイア
    ウト方法。 14、階層内の各ブロックの配置形状とブロック代表点
    の局所座標系での位置を決め、次に配置位置を全体座標
    系に変換したのち、階層内の各ブロックの配線をおこな
    うことを特徴とする請求項13記載の回路レイアウト方
    法。 15、子ブロックの面積と形状に応じて親ブロックの目
    標形状を分割して子ブロックの目標形状を生成すること
    を特徴とする請求項9記載の回路レイアウト方法。 16、子ブロック間の配線用き回しに採用したパターン
    が、各子ブロック間の境界辺上を横切る点に仮想端子を
    設けて、これを子ブロックの目標外端子とすることを特
    徴とする請求項9記載の回路レイアウト方法。 17、空間分割ライブラリとして、平面の複数部分平面
    への分割パターンと共に、分画間配線パターンを保有さ
    せることにより2次元レイアウトを並列実施することを
    特徴とする請求項8記載の回路レイアウト方法。 18、空間分割ライブラリとして空間の複数部分空間へ
    の分割パターンと共に、分画間配線パターンを保有させ
    ることにより3次元レイアウトを並列実施することを特
    徴とする請求項8記載の回路レイアウト方法。 19、原回路データファイル、これを階層化するととも
    に出力描画を行う入出力プロセスと、回路階層データと
    レイアウト階層データ及び各ブロックの外端子と配線デ
    ータを記憶する状態メモリと、該メモリを用いて階層問
    題解決を行なう問題解決推論プロセスと、問題解決推論
    中に使用するプロセス制約、形状テンプレート、問題分
    割、統合機能を要素とするレイアウト基本プロセスとを
    備え、上記各プロセスと状態メモリとを双方向ストリー
    ムで接続した構成の回路レイアウトシステム。
JP2115789A 1990-05-07 1990-05-07 回路レイアウト方法およびシステム Pending JPH0414244A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2115789A JPH0414244A (ja) 1990-05-07 1990-05-07 回路レイアウト方法およびシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2115789A JPH0414244A (ja) 1990-05-07 1990-05-07 回路レイアウト方法およびシステム

Publications (1)

Publication Number Publication Date
JPH0414244A true JPH0414244A (ja) 1992-01-20

Family

ID=14671110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2115789A Pending JPH0414244A (ja) 1990-05-07 1990-05-07 回路レイアウト方法およびシステム

Country Status (1)

Country Link
JP (1) JPH0414244A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6134671A (ja) * 1984-07-27 1986-02-18 Hitachi Ltd 電子回路構造理解方式
JPS6145364A (ja) * 1984-08-10 1986-03-05 Hitachi Ltd 自動レイアウト方法
JPS63124169A (ja) * 1986-11-14 1988-05-27 Hitachi Ltd 配線経路決定方法
JPS63308676A (ja) * 1987-06-10 1988-12-16 Fujitsu Ltd 木構造を用いたフロアプラン処理方式

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6134671A (ja) * 1984-07-27 1986-02-18 Hitachi Ltd 電子回路構造理解方式
JPS6145364A (ja) * 1984-08-10 1986-03-05 Hitachi Ltd 自動レイアウト方法
JPS63124169A (ja) * 1986-11-14 1988-05-27 Hitachi Ltd 配線経路決定方法
JPS63308676A (ja) * 1987-06-10 1988-12-16 Fujitsu Ltd 木構造を用いたフロアプラン処理方式

Similar Documents

Publication Publication Date Title
Lengauer Combinatorial algorithms for integrated circuit layout
Kuh et al. Recent advances in VLSI layout
US5197016A (en) Integrated silicon-software compiler
US6442745B1 (en) Method and apparatus for layout-constrained global routing
US5696693A (en) Method for placing logic functions and cells in a logic design using floor planning by analogy
US5604680A (en) Virtual interface representation of hierarchical symbolic layouts
Keshavarzi et al. GenFloor: Interactive generative space layout system via encoded tree graphs
Grötschel et al. Packing Steiner trees: A cutting plane algorithm and computational results
Protsko et al. Towards the automatic generation of software diagrams
JPH08123836A (ja) 会話型回路設計装置
CN112332306A (zh) 一种电缆自动敷设方法及存储介质
US6480993B1 (en) Accurate layout modeling for centerline-based detail routing
CN104063558A (zh) 基于线性规划的大规模集成电路通道布线方法
US10885256B1 (en) Method and system for integrated circuit (IC) layout migration integrated with layout expertise
CN116882340A (zh) 一种自动生成环形振荡器版图的方法
Fontana et al. ILPGRC: ILP-based global routing optimization with cell movements
Lengauer Exploiting hierarchy in VLSI design
JPH0414244A (ja) 回路レイアウト方法およびシステム
CN118297027B (zh) 一种基于图结构的芯片多行详细布局方法和装置
Chen et al. On crossing minimization problem
Peneda et al. Effective routing probability maps via convolutional neural networks for analog IC layout automation
Luhukay et al. A layout synthesis system for NMOS gate-cells
Slenter A generalised approach to gate array layout design automation
Gupta et al. A new representation in 3D VLSI floorplan: 3D O-Tree
Pedram et al. Combining technology mapping with layout