JPH1145940A - Method for shortening interconnection - Google Patents

Method for shortening interconnection

Info

Publication number
JPH1145940A
JPH1145940A JP9201518A JP20151897A JPH1145940A JP H1145940 A JPH1145940 A JP H1145940A JP 9201518 A JP9201518 A JP 9201518A JP 20151897 A JP20151897 A JP 20151897A JP H1145940 A JPH1145940 A JP H1145940A
Authority
JP
Japan
Prior art keywords
wiring
node
objects
load
moved
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
Application number
JP9201518A
Other languages
Japanese (ja)
Other versions
JP3367869B2 (en
Inventor
Takeichiro Nishikawa
武一郎 西川
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP20151897A priority Critical patent/JP3367869B2/en
Priority to US09/122,634 priority patent/US6122443A/en
Publication of JPH1145940A publication Critical patent/JPH1145940A/en
Application granted granted Critical
Publication of JP3367869B2 publication Critical patent/JP3367869B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

PROBLEM TO BE SOLVED: To move objects so that the interconnection cost can be lowered by forming a tree having a plurality of nodes of objects and calculating the load on a master node for a slave node based on the load of the slave load sequentially from the leaf side of each tree. SOLUTION: A compaction processor comprises an input section 2, a processing direction determining section 4, a limit graph forming section 6, an area reducing section 8, an interconnection shortening section 10, an end decision section 12, and an output section 14. The compaction processor may be implemented with a computer and a program. A tree is then formed while having objects in specified positional relationship at respective nodes and the load at each node is determined sequentially from the downstream side toward the upstream side of the tree while reflecting the load at the downstream side node. According to the method, an object is moved such that the interconnection cost is lowered efficiently and effectively by determining a group of objects to be moved easily is determined based on the load.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、半導体集積回路の
レイアウト・データを一次元コンパクションする際の面
積縮小処理に続いて行われる、優先度を考慮した総配線
長を短縮する配線短縮方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a wiring shortening method for reducing the total wiring length in consideration of priority, which is performed following an area reduction process when one-dimensionally compacts layout data of a semiconductor integrated circuit.

【0002】[0002]

【従来の技術】半導体集積回路(以下、ICと呼ぶ)の
レイアウト設計において、オブジェクトを移動させてそ
の間隔を詰めることによりICレイアウトの面積を小さ
くする処理を、コンパクション処理と呼ぶ。コンパクシ
ョン処理を行うツールはコンパクタと呼ばれる。なお、
オブジェクトとは、コンパクション処理において同時に
同方向に同距離だけ移動させる(あるいは局所的に相対
的位置関係が固定された)一纏まりのレイアウト部分で
ある。
2. Description of the Related Art In a layout design of a semiconductor integrated circuit (hereinafter, referred to as an IC), a process of reducing an area of an IC layout by moving an object and reducing an interval between the objects is called a compaction process. A tool that performs compaction processing is called a compactor. In addition,
An object is a group of layout parts that are simultaneously moved in the same direction by the same distance in the compaction processing (or the relative positional relationship is locally fixed).

【0003】大規模ICレイアウトを設計する際に、設
計者が概略だけを設計し、これをコンパクタで最適化す
ることにより、設計者の負担を軽減することが可能であ
る。製造技術の進歩によりデザインルールを変更して当
初のオブジェクト間隔を詰めることが可能になった場合
に、コンパクタを使って自動的にレイアウトの面積を小
さくすることができる。その他、様々な局面でコンパク
タは利用される。
When designing a large-scale IC layout, it is possible to reduce the burden on the designer by designing the outline only and optimizing the outline with a compactor. When the design rule is changed and the initial object interval can be reduced by the advance of the manufacturing technology, the area of the layout can be automatically reduced by using the compactor. In addition, compactors are used in various aspects.

【0004】後述する配線長短縮問題は、このコンパク
ション処理において現れる重要な問題である。
[0004] The wiring length reduction problem described below is an important problem that appears in this compaction processing.

【0005】人手を減らすという観点から、コンパクタ
は大規模レイアウトの最適化において重要であるが、大
規模レイアウト上の二次元的な配線を高速かつ厳密に最
適化することは困難である。ただし、一般に厳密に最適
化できなくても、実用に耐え得る程度のコンパクトなレ
イアウトを高速に作成できれば良いので、一方向毎に順
番にコンパクション処理を行うことが多い(一次元コン
パクション)。
[0005] From the viewpoint of reducing manpower, compactors are important in optimizing large-scale layouts, but it is difficult to quickly and strictly optimize two-dimensional wiring on large-scale layouts. However, in general, even if the optimization cannot be strictly performed, compaction enough to be practical can be created at a high speed, and compaction processing is often performed in order in each direction (one-dimensional compaction).

【0006】図28に一次元コンパクションを行うコン
パクタの構成を示す。以下では、説明の便宜上、ICレ
イアウトの左右方向をx方向と呼び、上下方向をy方向
と呼ぶものとする。
FIG. 28 shows the structure of a compactor that performs one-dimensional compaction. Hereinafter, for convenience of description, the left-right direction of the IC layout is referred to as an x direction, and the up-down direction is referred to as a y direction.

【0007】まず、入力部202からレイアウトデータ
を入力する。
First, layout data is input from an input unit 202.

【0008】次に、処理方向決定部204で、処理対象
をx方向とy方向のいずれかに定める。例えば、1回目
と3回目のコンパクションをx方向、2回目と4回目の
コンパクションをy方向とする。
Next, a processing direction determination unit 204 determines a processing target in either the x direction or the y direction. For example, the first and third compactions are in the x direction, and the second and fourth compactions are in the y direction.

【0009】次に、制約グラフ作成部206では、オブ
ジェクトの処理方向についての位置的な制約関係を表現
する制約グラフを作成する。詳しくは後述するが、制約
グラフは、オブジェクトを制約グラフの頂点(ノード)
に対応させ、2頂点を結ぶ枝に対して該2頂点に対応す
る2つのオブジェクトの接近可能な限界距離を格納させ
たものである。以降、この制約グラフを参照しながら処
理が行われる。
Next, a constraint graph creation unit 206 creates a constraint graph expressing a positional constraint relationship with respect to the processing direction of the object. As will be described in detail later, the constraint graph is obtained by connecting an object to a vertex (node) of the constraint graph.
And stores a limit distance to which two objects corresponding to the two vertices can approach each other with respect to a branch connecting the two vertices. Thereafter, processing is performed with reference to this constraint graph.

【0010】次に、面積縮小部208では、制約グラフ
を参照しながら出来るだけオブジェクトを処理方向の片
側に詰める処理を行う。例えば、x方向の処理において
オブジェクトを出来るだけ左側に詰める。以下では、面
積縮小部208は、頂点の座標をより小さくする方向に
オブジェクトを詰めるものとする。
Next, the area reducing unit 208 performs a process of packing the object to one side in the processing direction as much as possible while referring to the constraint graph. For example, in the processing in the x direction, the object is shifted to the left as much as possible. In the following, it is assumed that the area reducing unit 208 packs objects in a direction to make the coordinates of the vertices smaller.

【0011】次に、配線短縮部210では、制約グラフ
を参照しながら配線を短縮するように素子を移動させ
る。なお、面積縮小部208により既に各オブジェクト
は頂点の座標を出来るだけ小さくする方向に詰められて
おり、頂点の座標をより小さくする素子の移動はできな
いので、配線短縮部208では、頂点の座標を大きくす
る処理のみを考えれば良いことになる。
Next, the wiring shortening unit 210 moves the element so as to shorten the wiring while referring to the constraint graph. Note that each object is already packed by the area reducing unit 208 in a direction to reduce the coordinates of the vertices as much as possible, and the element that reduces the coordinates of the vertices cannot be moved. It is only necessary to consider the process for increasing the size.

【0012】次に、終了判定部212では、終了条件が
成立したか否かを判断する。終了条件が成立したならば
終了して出力部214から結果を出力し、終了条件が成
立していないならば、処理方向決定部204に戻り、処
理方向を変えて同様のコンパクション処理が繰り返して
行われる。
Next, the termination determination section 212 determines whether the termination condition is satisfied. If the end condition is satisfied, the process ends and the result is output from the output unit 214. If the end condition is not satisfied, the process returns to the processing direction determination unit 204, and the same compaction process is repeated by changing the processing direction. Will be

【0013】ここで、面積縮小部208の処理と配線短
縮部210の処理について説明する。上記のように面積
縮小部208ではオブジェクトを処理方向の片側に詰め
る処理を行う。この結果、面積縮小部208の処理が終
了した段階で、配線が伸びてしまう部分が生じる。図2
9を参照して面積縮小部208での処理により配線が伸
びてしまう様子を説明する。
Here, the processing of the area reducing section 208 and the processing of the wiring reducing section 210 will be described. As described above, the area reducing unit 208 performs a process of packing the object to one side in the processing direction. As a result, at the stage where the processing of the area reducing unit 208 is completed, there is a portion where the wiring extends. FIG.
With reference to FIG. 9, a description will be given of how the wiring is extended by the processing in the area reducing unit 208.

【0014】図29(a)に示されるようなA〜Dの4
つのオブジェクからなるトレイアウトをx方向に縮小す
るために、面積縮小部208によりオブジェクトを左側
に寄せる処理を行った結果、オブジェクトCが左側に寄
せられた例が図29(b)である。ところで、オブジェ
クトCが図29(b)と比較して少し右側にある(c)
のような場合でも、レイアウト全体の面積は変わらな
い。つまり、面積を最小にするためには、必ずしもオブ
ジェクトCを左端いっぱいに寄せる必要はないことがわ
かる。しかも、図29(b)と(c)のレイアウトを比
較した場合、以下の2点において、(b)の配線が劣っ
ていることがわかる。 (1)図29(b)の方が、配線が長すぎるため、与え
られたレイアウトに比べて抵抗が大きくなる。 (2)図29(b)は、次にy方向にコンパクションを
実行する際、オブジェクトCがじゃまになって、オブジ
ェクトAを下側に詰めることができない。このため、最
終的に出力されるレイアウトの面積が大きくなる。
[0014] As shown in FIG.
FIG. 29B shows an example in which the object C is shifted to the left as a result of performing the process of shifting the object to the left by the area reducing unit 208 in order to reduce the layout of the two objects in the x direction. By the way, the object C is slightly on the right side as compared with FIG.
In such a case, the area of the entire layout does not change. That is, in order to minimize the area, it is understood that the object C does not necessarily have to be moved all the way to the left end. Moreover, when comparing the layouts of FIGS. 29B and 29C, it can be seen that the wiring of FIG. 29B is inferior in the following two points. (1) In FIG. 29B, the wiring is too long, so that the resistance is larger than the given layout. (2) FIG. 29B shows that when compaction is next performed in the y direction, the object C becomes an obstacle and the object A cannot be packed down. For this reason, the layout area finally output becomes large.

【0015】一般に、オブジェクトを出来る限り片側に
寄せて面積縮小を行ったとき、オブジェクトを移動させ
ても面積の変化しない範囲がある。図29(b)と
(c)の比較から推測できるように、配線長を短くする
ことが全体の面積を小さくすることにつながることが多
い(例えば文献“Y.E.Cho: A Subjec
tive Review of Compactio
n, Proc. 22ndDesign Autom
ation Conferenve,1985,pp.
396−404”)。従って、配線短縮部210の処理
では、この許容範囲内で配線長を短くすることが解くべ
き問題となる。
In general, when the area is reduced by moving the object to one side as much as possible, there is a range in which the area does not change even if the object is moved. As can be inferred from the comparison between FIGS. 29B and 29C, shortening the wiring length often leads to reducing the entire area (for example, the document “YE Cho: A Subject”).
five Review of Compaction
n, Proc. 22ndDesign Autom
ation Conferenve, 1985, pp.
Accordingly, in the processing of the wiring shortening unit 210, shortening the wiring length within this allowable range is a problem to be solved.

【0016】このような問題は配線長短縮問題と呼ば
れ、一次元コンパクションにおいて、重要な問題であ
る。
Such a problem is called a wiring length shortening problem, and is an important problem in one-dimensional compaction.

【0017】より一般的には、配線短縮問題は、「制約
条件のもとにコストを最小化する問題である」と定義す
ることができる。より効果的な一次元コンパクションを
実現するためには、この問題を効率的に解くことが重要
となる。以下、この配線短縮問題に関連して説明を行
う。
More generally, the wiring shortening problem can be defined as "a problem that minimizes costs under constraints". In order to achieve more effective one-dimensional compaction, it is important to solve this problem efficiently. Hereinafter, a description will be given in connection with this wiring shortening problem.

【0018】まず、「コスト」について説明する。以下
では、x方向の処理について説明するがy方向の処理に
ついても同様である。
First, "cost" will be described. Hereinafter, processing in the x direction will be described, but the same applies to processing in the y direction.

【0019】総配線長を短縮する際、個々の配線に着目
して、それぞれが短くなるようにするだけでは、全体の
配線を十分に短くすることはできない。また、配線毎に
短縮の際の優先度が異なるときに、これらの優先度を考
慮することも不可能である。そこで、全ての配線に基づ
いたコストを定義し、このコストが小さくなるように個
々の素子を移動することが考えられる。
When reducing the total wiring length, it is not possible to sufficiently shorten the entire wiring simply by focusing on the individual wirings and shortening each of them. Further, when the priorities at the time of shortening differ for each wiring, it is impossible to consider these priorities. Therefore, it is conceivable to define a cost based on all the wirings and move individual elements so as to reduce the cost.

【0020】ここで、一直線の配線と、折れ線からなる
配線の各線分とを、ラインと呼ぶものとする。x方向の
配線の長さは、x方向のラインの和をとることで、求め
ることができる。
Here, the straight line and each line segment of the broken line are referred to as a line. The length of the wiring in the x direction can be obtained by taking the sum of the lines in the x direction.

【0021】各配線は、それぞれ短縮の際の優先度が異
なる。例えば、一般に抵抗の大きなマスクレイヤーに属
する配線は、優先的に短くしたいという要求がある。そ
こで、コストを計算する際に、ラインの長さに、一定の
優先度を乗じて、コストを算出する。配線の折れ曲がり
点毎のx座標をxi 、優先度をcijとして、コストを式
(1)のように表すことができる。なお、優先度の値の
大きいラインほど優先的に短くしなければならないライ
ンであるものとする。ここで、Jはラインの両端と対応
する添字の組合せの集合である。
Each wiring has a different priority in shortening. For example, in general, there is a demand to preferentially shorten wiring belonging to a mask layer having a large resistance. Therefore, when calculating the cost, the cost is calculated by multiplying the line length by a certain priority. Assuming that the x coordinate of each bending point of the wiring is x i and the priority is c ij , the cost can be expressed as in equation (1). It is assumed that a line having a higher priority value is a line that must be preferentially shortened. Here, J is a set of combinations of subscripts corresponding to both ends of the line.

【0022】[0022]

【数1】 (Equation 1)

【0023】式(1)の絶対値を外すと式(2)のよう
になる。
If the absolute value of equation (1) is removed, equation (2) is obtained.

【0024】[0024]

【数2】 (Equation 2)

【0025】式(1)と式(2)はライン両端のx座標
の大小関係が逆転しない範囲で等価である。
Equations (1) and (2) are equivalent as long as the magnitude relationship of the x coordinates at both ends of the line does not reverse.

【0026】式(2)では、係数wi が正なら座標xi
を小さくし、係数wi が負なら座標xi を大きくするこ
とで、コストを下げることができる。式(1)と式
(2)が等価でなければならないので、この操作はライ
ンの左右が入れ替わらない範囲で行われなければならな
い。式(1)を最小化するためにラインの左右を入れ替
える必要が生じるが、一本のラインでも左右が入れ替わ
った時点で、式(2)を修正しなければならない。
In equation (2), if the coefficient w i is positive, the coordinates x i
Is reduced, and if the coefficient w i is negative, the coordinates x i are increased, whereby the cost can be reduced. Since the equations (1) and (2) must be equivalent, this operation must be performed within a range where the left and right sides of the line do not interchange. In order to minimize the expression (1), it is necessary to exchange the left and right of the line. However, when the left and right of even one line are exchanged, the expression (2) must be corrected.

【0027】適当なタイミングで、長さが0になったラ
インを反転して式(2)のコストを書き直すことで、式
(1)のコストを最小化することができる。
At an appropriate timing, the cost of equation (1) can be minimized by rewriting the cost of equation (2) by inverting the line whose length has become zero.

【0028】次に、上記の「制約条件」について説明す
る。
Next, the above "restriction conditions" will be described.

【0029】以下では、特に指定しない限りxi は配線
の折れ曲り点を含む、素子を示すポリゴンの辺のx座標
を表すものとする。デザインルールは、製造工程により
定まる条件で、素子間の位置関係に関する制約条件であ
る。この条件は一般に以下のように表すことができる。 xi −xj ≧dij (3) このxi と制約グラフの頂点を対応させ、式(3)を図
30のような制約グラフに表現する。
[0029] In the following, in particular x i unless specified including break bend point of the wiring, denote the x-coordinate of the polygon edges representing the element. The design rule is a condition determined by a manufacturing process, and is a constraint condition regarding a positional relationship between elements. This condition can generally be expressed as: x i -x j ≧ d ij ( 3) in correspondence with the vertices of the constraint graph the x i, representing equation (3) to the constraint graph as shown in FIG. 30.

【0030】制約グラフでは、頂点vに座標X(v)、
枝eに制約条件の値D(e)が格納されており、図30
の枝は制約条件 X(vq )−X(vp )≧D(epq) (4) を表している。
In the constraint graph, a vertex v has coordinates X (v),
The value of the constraint condition D (e) is stored in the branch e.
Branch represents the constraint X (v q) -X (v p) ≧ D (e pq) (4).

【0031】一般にラインの端点xiと、これに対応す
る頂点の座標X(vp )との間には、ci を定数とし
て、xi =X(vp )+ci なる関係がある。従って、
コストは、定数項を除いて式(5)のように表すことが
できる。
In general, there is a relationship between a line end point xi and a corresponding vertex coordinate X (v p ), where c i is a constant, and x i = X (v p ) + c i . Therefore,
The cost can be expressed as in equation (5) except for the constant term.

【0032】[0032]

【数3】 (Equation 3)

【0033】図31は一般の制約グラフの一例で、レイ
アウトの右端の点に対応するシンクと左端の点に対応す
るソースを追加してあるため、制約グラフは連結なグラ
フである。
FIG. 31 shows an example of a general constraint graph. Since a sink corresponding to the right end point of the layout and a source corresponding to the left end point are added, the constraint graph is a connected graph.

【0034】配線長短縮問題は、制約グラフの表す制約
条件を満たす範囲で、式(1)のコストを最小にする問
題である。
The wiring length shortening problem is a problem that minimizes the cost of equation (1) as long as the constraints represented by the constraint graph are satisfied.

【0035】ここで従来の配線短縮方法である局所的改
善法とグループ改善法について説明する。
Here, the local improvement method and the group improvement method which are the conventional wiring shortening methods will be described.

【0036】コストを小さくするためには、頂点vp
重みW(vp )が正であれば頂点の位置を小さくすれば
良く、頂点の重みが負であれば頂点の位置を大きくすれ
ば良い。ところで、配線短縮処理に先だって面積縮小処
理を行って、各頂点の座標を可能な限り小さくするの
で、配線短縮部では頂点の座標をより小さくすることは
できない。そこで、前述したように、配線短縮部では頂
点の座標を大きくする処理のみを考えれば良い。
In order to reduce the cost, if the weight W (v p ) of the vertex v p is positive, the position of the vertex may be reduced, and if the weight of the vertex is negative, the position of the vertex may be increased. good. By the way, since the area reduction processing is performed prior to the wiring shortening processing to make the coordinates of each vertex as small as possible, the wiring shortening unit cannot make the coordinates of the vertices smaller. Therefore, as described above, only the process of increasing the coordinates of the vertices in the wire shortening unit may be considered.

【0037】各頂点の重みが負であれば、制約条件に違
反しない範囲で頂点の座標を大きくすると、コストをか
なり小さくできる。このような方法は局所改善法と呼ば
れる。
If the weight of each vertex is negative, the cost can be considerably reduced by increasing the coordinates of the vertex within a range that does not violate the constraints. Such a method is called a local improvement method.

【0038】しかしながら、局所改善法のみでは最適解
と離れたところで収束してしまうことが知られている。
局所改善法で配線を十分に短縮できない例を表したの
が、図32である。図32の配線の近傍に付した黒丸は
その両側のオブジェクトがこれ以上近付けないことを示
している。
However, it is known that the local improvement method alone converges away from the optimal solution.
FIG. 32 shows an example in which the wiring cannot be sufficiently shortened by the local improvement method. The black circles in the vicinity of the wiring in FIG. 32 indicate that the objects on both sides cannot approach any more.

【0039】ところが、図32の例では、複数個のオブ
ジェクトを同時に動かすことで、よりコストの小さな配
置に到達できる。例えば、図32のオブジェクト(A〜
H)の全体を1つにまとめた一団を考えた場合、この一
団には右から優先度4の配線が繋がっているのに対し、
左からは優先度1の配線と優先度2に配線が繋がってい
る。このため、全体のオブジェクトをまとめて右側に動
かせば優先度1の配線と優先度2の配線が延びるもの
の、優先度4の配線が縮むため、コストが小さくなるこ
とがわかる。同様に、斜線の3つのオブジェクト(B,
D,E)をまとめて動かしてもコストを小さくできる。
However, in the example of FIG. 32, by moving a plurality of objects at the same time, an arrangement with lower cost can be achieved. For example, the objects (A to
If you consider a group that combines the whole of H) into one, this group is connected to wiring with priority 4 from the right,
From the left, wiring of priority 1 and wiring of priority 2 are connected. Therefore, if the entire object is moved to the right side, the wiring of the priority 1 and the wiring of the priority 2 are extended, but the wiring of the priority 4 is contracted, so that the cost is reduced. Similarly, three objects (B,
Even if D and E) are moved together, the cost can be reduced.

【0040】このように、複数の頂点を1つのグループ
として、グループ内の頂点を同時に動かす方法はグルー
プ改善法と呼ばれる。グループ全体を右側に移動させ
て、コストが下がるかどうかは、グループに含まれる全
ての頂点の重みの和をとって見れば分かる。局所改善法
の場合と同様にこの値が負であれば右側に移動させてコ
ストが下がることが分かる。
As described above, a method in which a plurality of vertices are regarded as one group and the vertices in the group are simultaneously moved is called a group improvement method. Whether the cost is reduced by moving the entire group to the right can be determined by taking the sum of the weights of all the vertices included in the group. As in the case of the local improvement method, if this value is negative, it can be seen that it is moved to the right to reduce the cost.

【0041】グループ改善法では、グループ内の同時に
動かすべき頂点を木(ツリー)に格納することで、効率
よく処理を実行できる。ここで作成される木では、親か
ら子に向かうタイトな制約グラフの枝が存在する。処理
中、同時に移動させるべき頂点のグループは刻々と変わ
って行くので、グループを移動させる毎に木のメンバを
修正しなければならない。
In the group improvement method, vertices to be moved simultaneously in a group are stored in a tree, so that processing can be executed efficiently. In the tree created here, there is a tight constraint graph branch from the parent to the child. During processing, the group of vertices to be moved simultaneously changes every moment, so the tree members must be modified each time the group is moved.

【0042】図32では、全オブジェクトを右に移動す
るよりも、斜線の3つのオブジェクト(B、D、E)を
右に移動する方が、コストが小さくでき、この3つのオ
ブジェクト(B、D、E)を右に移動させることがこの
状態では最適な操作である。この3つのオブジェクト
(B、D、E)をメンバに持つ木をいかに効率よく求め
るかが課題となる。
In FIG. 32, moving three hatched objects (B, D, E) to the right can reduce the cost, rather than moving all objects to the right. , E) to the right is the optimal operation in this state. The challenge is how to efficiently find a tree having these three objects (B, D, and E) as members.

【0043】従来の手法(例えば文献“W.L.Sch
iele,Improved Compaction
by Minnimized Length of W
ires, Proc. 20th Design A
utomation Conf.,1983,pp.1
21−127”、文献“G.Lakhani,R.Va
radarajan:A Wire−Length M
inimazation Algorithm for
Circuit Layout Compactio
n.IEEE Internatonal Sympo
sium onCircuits and Syste
ms,Vol.1,pp.276−279”、文献
“C.Kingsley:A Hiererachic
al,Error−Tolerant Compact
or,IEEE 21st Design Autma
tion Conf.,1984,pp.126−13
2”)では、木の根から各頂点までの経路上の頂点の重
みの和を求めて蓄積値とし、ある葉(リーフ)の蓄積値
が正であれば、この経路上の頂点を固定して、それ以外
の頂点を分離して移動させた。この方法について図33
を参照しながら説明する。
The conventional method (for example, the document "WL Sch
iele, Improved Compaction
by Minimized Length of W
ires, Proc. 20th Design A
automation Conf. 1983. pp. 1
21-127 ", reference" G. Lakhani, R .; Va
radarajan: A Wire-Length M
Initialization Algorithm for
Circuit Layout Compact
n. IEEE International Sympo
sium onCircuits and System
ms, Vol. 1, pp. 276-279 "and reference" C. Kingsley: A Hierarchic
al, Error-Tolerant Compact
or, IEEE 21st Design Outma
tion Conf. 1984 pp. 126-13
In 2 ”), the sum of the weights of the vertices on the path from the root of the tree to each vertex is obtained as an accumulated value. If the accumulated value of a certain leaf is positive, the vertex on this path is fixed. The other vertices were moved separately.
This will be described with reference to FIG.

【0044】図33(a)では、頂点を表す円の中の数
値が頂点の重みであり、頂点の脇に記した括弧内の数値
が蓄積値である。従来法によれば、一番下の経路上の頂
点301〜303を固定すべきことが分かり、図33
(b)のように分離する。次に、分離された部分木のう
ち、重みの合計が負となるものを探す。この結果、
(b)の点線で囲んだ2つの頂点をさらに右側に移動さ
せれば良いことが分かる。
In FIG. 33 (a), the numerical value in the circle representing the vertex is the weight of the vertex, and the numerical value in parentheses beside the vertex is the accumulated value. According to the conventional method, it is found that the vertices 301 to 303 on the lowest route should be fixed.
Separate as in (b). Next, among the separated subtrees, those having a negative total weight are searched. As a result,
It can be seen that the two vertices surrounded by the dotted line in (b) should be moved further to the right.

【0045】しかしながら、この方法を採用しても、図
32のレイアウトの場合は、うまく斜線の3つのオブジ
ェクト(B,D,E)を移動させることができない。
However, even if this method is adopted, the three objects (B, D, and E) cannot be moved in the layout shown in FIG.

【0046】図32と対応するグループで蓄積値を算出
したものが図34である。図34から分かる通り、全て
の木の葉の蓄積値は負であるため、この木を分解してオ
ブジェクトBとDとEを分離することはできない。
FIG. 34 shows the calculation of the accumulated values in the group corresponding to FIG. As can be seen from FIG. 34, since the accumulated values of the leaves of all the trees are negative, it is not possible to separate the objects B, D and E by decomposing this tree.

【0047】また、以上に示した方法以外にも、線形計
画法をグラフ上で実行することで、良い解を得ようとす
る方法(文献“J.Lee,C.K.Wong:A P
erformance−Aimed Cell Com
pactor with Automatic Jog
s,IEEE Trans. Computer−Ai
ded Design,Vol.11,No.12,1
992,pp.1495−1507,1992”、文献
“T. Yoshimura: A Graph Th
eoretical Compaction Algo
rithm,IEEE Proc. ISCA 85,
1985,pp.1455−1458”)も提案されて
いるが、これらの方法では、処理速度が遅くなる問題が
あった。
In addition to the above-described method, a method of obtaining a good solution by executing a linear programming method on a graph (refer to the document "J. Lee, CK Wong: AP").
erformance-Aimed Cell Com
vector with Automatic Jog
s, IEEE Trans. Computer-Ai
ded Design, Vol. 11, No. 12,1
992, pp. 1495-1507, 1992 "and the document" T. Yoshimura: A Graph Th
eorical Compaction Algo
ritm, IEEE Proc. ISCA 85,
1985, pp. 1455-1458 ") have been proposed, but these methods have a problem in that the processing speed is reduced.

【0048】[0048]

【発明が解決しようとする課題】従来の一次元コンパク
ション処理では、面積縮小処理に続いて行われる配線短
縮処理でグループ改善法を用いたものにあっては、配線
のコストの値を下げるようなオブジェクトの移動が可能
であるにもかかわらず当該オブジェクトを移動させるこ
とができないために、十分なコンパクションができない
という問題点があった。また、配線短縮処理で線形計画
法を用いたものにあっては処理に時間がかかる問題点が
あった。
In the conventional one-dimensional compaction processing, when the group improvement method is used in the wiring shortening processing performed after the area reduction processing, the value of the wiring cost is reduced. There is a problem that sufficient compaction cannot be performed because the object cannot be moved even though the object can be moved. Further, in the case of using the linear programming method in the wiring shortening processing, there is a problem that the processing takes time.

【0049】本発明は、上記事情を考慮してなされたも
ので、半導体集積回路のレイアウトに対する一次元コン
パクション処理における面積縮小処理に続いて行われる
配線を短縮する配線短縮処理方法であって、効率的にか
つ効果的に配線のコストを下げるようなオブジェクトの
移動を実行可能な配線短縮処理方法を提供することを目
的とする。
The present invention has been made in view of the above circumstances, and is a wiring shortening processing method for shortening wirings performed following an area reduction processing in a one-dimensional compaction processing for a layout of a semiconductor integrated circuit. It is an object of the present invention to provide a wiring shortening processing method capable of executing an object movement that can reduce the wiring cost effectively and effectively.

【0050】[0050]

【課題を解決するための手段】本発明は、オブジェクト
間を配線してなる配線パターンにおける特定のオブジェ
クトを、配線ごとに設定された優先度を考慮した配線短
縮のパフォーマンスを示す負荷に従って移動することに
より、前記配線の長さを短縮する配線短縮処理方法であ
って、所定の位置関係を持つ複数のオブジェクトをそれ
ぞれノードとしてツリーを形成し、前記各ツリーについ
て、該ツリーのリーフ側から順次、子ノードの負荷に基
づく該子ノードに対する親ノードの負荷を算出し、所定
の条件を満たす負荷を持つノードをルートノードとする
ツリー部分に対応するオブジェクトを移動対象として特
定することを特徴とする。
SUMMARY OF THE INVENTION According to the present invention, a specific object in a wiring pattern formed by wiring between objects is moved in accordance with a load showing performance of wiring shortening in consideration of a priority set for each wiring. A method for shortening the length of the wiring, wherein a tree is formed by using a plurality of objects having a predetermined positional relationship as nodes, and child trees are sequentially formed for each tree from the leaf side of the tree. The load of the parent node for the child node is calculated based on the load of the node, and an object corresponding to a tree portion having a node having a load satisfying a predetermined condition as a root node is specified as a movement target.

【0051】好ましくは、前記所定の位置関係は、2つ
のオブジェクトが互いに接近可能な限界距離に位置する
関係であり、前記ツリーにおいて該2つのオブジェクト
のうちオブジェクト移動方向の上流側に位置するオブジ
ェクトを親ノード、下流側に位置するオブジェクトを子
ノードとし、リーフノードを含む子ノードを持たないノ
ードの負荷を、該ノードに一端を持つ配線線分のうち該
ノードを移動すると配線が伸張されるものの短縮優先度
の総和から該ノードに一端を持つ配線線分のうち該ノー
ドを移動すると配線が短縮されるものの短縮優先度の総
和を減じて得た重み値とし、子ノードを持つノードの負
荷を、該ノードの重み値に、該ノードの子ノードの負荷
のうち正の値のものをすべて加算したものとし、前記負
荷の満たすべき所定の条件は、前記負荷が負の値である
ようにしてもよい。
Preferably, the predetermined positional relationship is a relationship in which two objects are located at a limit distance within which the two objects can approach each other, and an object located upstream of the two objects in the object moving direction in the tree. The parent node and the object located downstream are taken as child nodes, and the load of a node that does not have a child node including a leaf node is moved when the node is moved among the line segments having one end at the node. From the sum of the shortening priorities, the wiring is shortened when the node is moved among the wiring segments having one end at the node, but the weight is obtained by subtracting the sum of the shortening priorities. , The positive value of the load of the child node of the node is added to the weight value of the node, Conditions, the load may be a negative value.

【0052】好ましくは、前記レイアウト面積の縮小の
ための移動は、オブジェクトを一次元コンパクション方
向の一方の側に可能な限り詰めて配置するように移動す
るものであり、前記手順においては、前記一次元コンパ
クション方向の他方の側に位置するオブジェクトから順
に移動対象とするようにしてもよい。
Preferably, the movement for reducing the layout area is to move the object so as to be as compact as possible on one side in the one-dimensional compaction direction. The objects to be moved may be arranged in order from the object located on the other side in the original compaction direction.

【0053】好ましくは、前記手順を実行しても全ての
オブジェクトが移動できなかったことが2回繰り返され
た条件、前記手順を実行しても全てのオブジェクトが移
動できなかった条件、繰り返し回数が規定回数を越えた
条件、配線の各線分の長さの重み付け総和値に相当する
コストの変化が規定値より小さくなった条件のうちの1
つの条件または所定の組合せで定められた条件からなる
終了条件が成立するまで、前記手順を繰り返し実行する
ようにしてもよい。
Preferably, the condition that all the objects could not be moved even when the above procedure was executed was repeated twice, the condition that all the objects could not be moved even after the above procedure was executed, and the number of repetitions was One of the condition that exceeds the prescribed number of times and the condition that the change in cost corresponding to the weighted total value of the length of each line segment of the wiring becomes smaller than the prescribed value
The above procedure may be repeatedly executed until an end condition consisting of one condition or a condition determined by a predetermined combination is satisfied.

【0054】好ましくは、各オブジェクト間の関係を制
約グラフにより表現し、配線線分の両端の位置関係が逆
転しない範囲で、前記オブジェクトを移動するようにし
てもよい。
Preferably, the relationship between the objects is represented by a constraint graph, and the object may be moved within a range in which the positional relationship between the two ends of the wiring line is not reversed.

【0055】好ましくは、配線線分の両端の位置関係が
逆転しない範囲で、前記オブジェクトを移動するととも
に、前記オブジェクトの移動が完了した時点で、配線線
分の長さが0となったものがあれば、該配線線分の両端
の位置関係を反転して、前記ツリーの構造を修正し、改
めて前記負荷を求めた後に、所定の条件を満たす負荷を
持つノードをルートノードとするツリー部分に対応する
全オブジェクトを一体として移動させるようにしてもよ
い。
Preferably, the object is moved within a range in which the positional relationship between both ends of the wiring line segment does not reverse, and the length of the wiring line segment becomes 0 when the movement of the object is completed. If so, the positional relationship between both ends of the wiring line segment is inverted, the tree structure is corrected, and the load is obtained again. Then, a node having a load satisfying a predetermined condition is set as a root node. All corresponding objects may be moved together.

【0056】好ましくは、配線線分の両端の位置関係が
逆転しない範囲で、前記オブジェクトを移動するととも
に、前記終了条件が成立した時点で、配線線分の長さが
0となったものがあれば、該配線線分の両端の位置関係
を反転した上で、改めて前記終了条件が成立するまで、
前記手順を繰り返し実行するようにしてもよい。
Preferably, the object is moved within a range in which the positional relationship between both ends of the wiring line segment does not reverse, and the length of the wiring line segment becomes 0 when the end condition is satisfied. For example, after inverting the positional relationship between both ends of the wiring line segment, until the end condition is satisfied again,
The above procedure may be repeatedly executed.

【0057】好ましくは、配線線分の両端の位置関係が
逆転しない範囲で、前記オブジェクトを移動するととも
に、前記終了条件が成立した時点で、配線線分の長さが
0となったものまたは配線線分の両端と対応する頂点間
の枝がタイトな枝になったものがあれば、該配線線分の
両端をマージした上で、改めて前記終了条件が成立する
まで、前記手順を繰り返し実行するようにしてもよい。
Preferably, the object is moved within a range in which the positional relationship between both ends of the wiring line segment is not reversed, and the length of the wiring line segment becomes zero or the wiring line when the end condition is satisfied. If there is a tight branch between the ends of the line segment and the corresponding vertices, the ends of the wiring line segment are merged, and the above procedure is repeatedly executed until the end condition is satisfied again. You may do so.

【0058】好ましくは、レイアウトの変更が発生して
いる部分を特定して、変更前と変更後の違いを表示する
形態または総配線長および前記コストの少なくとも一方
の変化状態を表示する形態により収束状態を提示すると
ともに、ユーザから入力された繰り返し回数を前記終了
条件として用いるようにしてもよい。
Preferably, the portion where the layout change has occurred is specified and the difference between before and after the change is displayed or the change state of at least one of the total wiring length and the cost is displayed. The state may be presented, and the number of repetitions input by the user may be used as the end condition.

【0059】好ましくは、各配線線分の短縮優先度を、
該配線線分の長さと該配線線分の幅と該配線線分の属す
るマスク・レイヤの関数とするようにしてもよい。
Preferably, the shortening priority of each wiring line is
The function may be a function of the length of the wiring line segment, the width of the wiring line segment, and the mask layer to which the wiring line segment belongs.

【0060】好ましくは、前記レイアウトの特定の部分
に限定して特定のデザインルールおよび配線線分別の短
縮優先度を設定可能とするようにしてもよい。
Preferably, a specific design rule and a shortening priority of wiring line classification may be set only for a specific part of the layout.

【0061】なお、以上の方法に係る各発明は装置に係
る発明としても成立する。また、以上の方法に係る発明
は、相当する手順あるいは手段をコンピュータに実行さ
せるためのプログラムを記録した機械読取り可能な媒体
としても成立する。
Each invention according to the above-described method is also valid as an invention relating to an apparatus. Further, the invention according to the above-described method is also realized as a machine-readable medium storing a program for causing a computer to execute the corresponding procedure or means.

【0062】本発明によれば、所定の位置関係を持つ複
数のオブジェクトをそれぞれノードとしてツリーを形成
し、ツリーの下流側から上流側に向かって、各ノードの
負荷を下流側ノードの負荷を反映させながら順次求めて
いくので、負荷に基づいて容易に移動すべきオブジェク
トのグループを求めることができ、効率的にかつ効果的
に配線のコストを下げるようなオブジェクトの移動を実
行することができる。
According to the present invention, a tree is formed by using a plurality of objects having a predetermined positional relationship as nodes, and the load of each node reflects the load of the downstream node from the downstream side of the tree toward the upstream side. Since the object groups are sequentially obtained while moving, the group of the objects to be moved can be easily obtained based on the load, and the object can be moved efficiently and effectively so as to reduce the wiring cost.

【0063】[0063]

【発明の実施の形態】以下、図面を参照しながら発明の
実施の形態を説明する。
Embodiments of the present invention will be described below with reference to the drawings.

【0064】本発明は、前述したグループ改善法により
配線長を短縮するものであり、グループを特定するため
の木の構成方法を改善したものである。
According to the present invention, the wiring length is reduced by the above-described group improvement method, and a tree construction method for specifying a group is improved.

【0065】図1に、本発明の一実施形態に係るコンパ
クション処理装置の構成例を示す。図2に、本コンパク
ション処理装置の処理手順の一例を示す。
FIG. 1 shows a configuration example of a compaction processing apparatus according to one embodiment of the present invention. FIG. 2 shows an example of a processing procedure of the compaction processing apparatus.

【0066】図3に、本実施形態の配線短縮部の内部構
成例を示す。図4に、本配線短縮部の処理手順の一例を
示す。また、図5に、本実施形態の配線短縮部の重み決
定処理および素子移動処理の手順の一例を示す。
FIG. 3 shows an example of the internal configuration of the wiring shortening section of this embodiment. FIG. 4 shows an example of a processing procedure of the wiring shortening unit. FIG. 5 shows an example of the procedure of the weight determination processing and the element movement processing of the wiring shortening unit according to the present embodiment.

【0067】図1に示されるように本実施形態のコンパ
クション処理装置は、入力部2、処理方向決定部4、制
約グラフ作成部6、面積縮小部8、配線短縮部10、終
了判定部12、出力部14を備えている。本コンパクシ
ョン処理装置は、計算機とプログラム(あるいは計算機
およびオペレーティング・システムならびにプログラ
ム)で構成することが可能である。
As shown in FIG. 1, the compaction processing apparatus of the present embodiment comprises an input unit 2, a processing direction determining unit 4, a constraint graph creating unit 6, an area reducing unit 8, a wiring shortening unit 10, an end determining unit 12, An output unit 14 is provided. The compaction processing apparatus can be configured by a computer and a program (or a computer, an operating system, and a program).

【0068】説明の便宜上、ICレイアウトの左右方向
をx方向と呼び、上下方向をy方向と呼ぶものとする。
また、具体例を用いて説明する場合には、まずオブジェ
クトを左側に詰めるように移動した後にコストを低くす
るようにオブジェクトを右側に移動する場合を用いるも
のとする。
For convenience of explanation, the left-right direction of the IC layout is called the x direction, and the up-down direction is called the y direction.
Further, in the description using a specific example, it is assumed that the object is first moved to the left and then moved to the right to reduce the cost.

【0069】入力部2は、処理対象となるICのレイア
ウト・データを入力する(ステップS11)。
The input unit 2 inputs layout data of an IC to be processed (step S11).

【0070】レイアウト・データは、例えば、各マスク
レイヤごとの各パターンの座標(例えば素子を示すポリ
ゴンの対角にある2点の座標値)からなる。
The layout data includes, for example, the coordinates of each pattern for each mask layer (eg, the coordinate values of two points on the diagonal of a polygon indicating an element).

【0071】また、入力部2は、デザインルールのデー
タを入力する。なお、デザインルール・データベースを
備えて、外部からは入力部2を通じてデザインルールの
識別情報を入力し、この識別情報をキーとしてデザイン
ルール・データベースから該当するデザインルールのデ
ータを検索して得るようにしてもよい。
The input unit 2 inputs design rule data. A design rule database is provided, and design rule identification information is input from the outside through the input unit 2, and the design rule data is searched and obtained from the design rule database using the identification information as a key. You may.

【0072】各配線の優先度は、その配線の属性(例え
ばマスク・レイヤ)に応じて決まるものとする。配線の
優先度のデータ(例えば配線の属性と優先度の対応を示
すデータ)は、入力部2から入力するか、またはデータ
ベースを備えて、外部からは入力部2を通じて識別情報
を入力し、この識別情報をキーとしてデータベースから
該当するデータを検索して得るものとする。
The priority of each wiring is determined according to the attribute (eg, mask layer) of the wiring. The wiring priority data (for example, data indicating the correspondence between the wiring attribute and the priority) is input from the input unit 2 or provided with a database, and identification information is input from the outside through the input unit 2. It is assumed that the corresponding data is retrieved from the database using the identification information as a key.

【0073】また、優先度をライン別に設定するように
してもよい。例えば、ラインの優先度を、ラインの長さ
とライン幅とラインが作成されるマスク・レイヤの関数
としてもよい。この関数は、例えば、マスク・レイヤに
応じて定められた値が大きくなるほど関数値が大きくな
り、ライン長が長くなるほど関数値が大きくなり、ライ
ンの幅が広くなるほど関数値が小さくなるような関数で
ある。また、この関数を選択可能としてもよい。
Further, the priority may be set for each line. For example, the priority of a line may be a function of the line length, the line width, and the mask layer on which the line is created. This function is, for example, a function in which the function value increases as the value determined according to the mask layer increases, the function value increases as the line length increases, and the function value decreases as the line width increases. It is. This function may be selectable.

【0074】また、レイアウトの特定の部分に限定し
て、特定のデザインルールおよびライン別の優先度を設
定可能としてもよい。
Further, it is possible to set a specific design rule and a priority for each line only for a specific portion of the layout.

【0075】処理方向決定部4は、処理対象をx方向と
y方向のいずれかに定める(ステップS12)。例え
ば、1回目のコンパクションをx方向、2回目のコンパ
クションをy方向と決定する。例えば、これを1セット
として、2セット分のコンパクションを行う場合、x方
向、y方向、x方向、y方向の順に処理方向を決定す
る。
The processing direction determination unit 4 determines the processing target in either the x direction or the y direction (step S12). For example, the first compaction is determined as the x direction, and the second compaction is determined as the y direction. For example, when two sets of compaction are performed with this set as one set, the processing direction is determined in the order of x direction, y direction, x direction, and y direction.

【0076】制約グラフ作成部6は、レイアウト・デー
タおよびデザインルール・データを参照して、処理方向
についての制約グラフを作成する(ステップS13)。
The constraint graph creating unit 6 creates a constraint graph for the processing direction with reference to the layout data and the design rule data (step S13).

【0077】例えば、図10のような8つのオブジェク
トA〜Hを含むレイアウトに対して、図14のような制
約グラフが作成される。図14において、各頂点を表す
円の中には対応するオブジェクトの識別情報A〜Hと頂
点の座標を示してある。また、頂点間を結ぶ枝に対して
その頂点間に最低限必要な間隔(接近限界距離と呼ぶ)
を記している。
For example, for a layout including eight objects A to H as shown in FIG. 10, a constraint graph as shown in FIG. 14 is created. In FIG. 14, the circle representing each vertex indicates the identification information A to H of the corresponding object and the coordinates of the vertex. In addition, the minimum required distance between the vertices for the branch connecting the vertices (called the approach limit distance)
Is written.

【0078】なお、図10においては、各配線に対して
その優先度の値を記している。また、図14の両頂点座
標の差から接近限界距離を減じて得られる、両頂点に対
応する両オブジェクトがあとどれだけ接近できる余裕が
あるかを示す接近余裕距離(スラックと呼ぶ)が0以上
のものを、図10の配線に対して括弧書きの数字で記
し、スラックが0のものを図10の配線に対して黒丸で
示している。なお、制約グラフにおいてスラックが0の
枝をタイトな枝と呼ぶものとする。
In FIG. 10, the value of the priority is shown for each wiring. In addition, the approach margin distance (referred to as slack) indicating how much the two objects corresponding to both vertices can still approach can be obtained by subtracting the approach limit distance from the difference between the coordinates of both vertices in FIG. 10 are indicated by parenthesized numbers with respect to the wiring in FIG. 10, and those with slack of 0 are indicated by black circles with respect to the wiring in FIG. In the constraint graph, a branch having a slack of 0 is referred to as a tight branch.

【0079】なお、制約グラフにおいて枝はオブジェク
ト間の位置的制約関係を与えるもので、必ずしも配線に
対応するものではない(ある枝の両端の2頂点に対応す
るオブジェクト間が配線で結合されていないこともあ
る)。
In the constraint graph, a branch gives a positional constraint relationship between objects, and does not always correspond to a wiring (objects corresponding to two vertexes at both ends of a branch are not connected by a wiring. Sometimes).

【0080】ここで、各素子パターンとオブジェクトと
制約グラフの頂点(ノード)との関連について説明す
る。
Here, the relationship between each element pattern, the object, and the vertex (node) of the constraint graph will be described.

【0081】図6に、上記の関連を説明するためのIC
のレイアウト・パターン例(一部分を抜き出してきたも
の)を示す。前述のように処理方向はx方向とする。図
6において、30は(処理対象となる)配線パターンで
あり、31と33は拡散層のパターンであり、36と3
8は他の配線パターンであり、32と37と34と39
はコンタクト・ホールのパターンであり、35は拡散層
31と結合を持つ他の配線のパターンである。図6の場
合、31,32,36,37のパターンと配線30の左
側端部と配線35の右側端部とがまとめて移動するパタ
ーン群あるいは素子群であり、これが1つのオブジェク
ト(Jとする)を形成する。同様に、33,34,3
8,39と配線30の右側端部がまとめて移動するパタ
ーン群あるいは素子群であり、これが1つのオブジェク
ト(Iとする)を形成する。
FIG. 6 shows an IC for explaining the above relation.
2 shows a layout pattern example (a part of which is extracted). As described above, the processing direction is the x direction. In FIG. 6, 30 is a wiring pattern (to be processed), 31 and 33 are diffusion layer patterns, and 36 and 3
8 is another wiring pattern, and 32, 37, 34 and 39
Is a contact hole pattern, and 35 is another wiring pattern having a bond with the diffusion layer 31. In the case of FIG. 6, patterns 31, 32, 36, and 37, a left end of the wiring 30 and a right end of the wiring 35 are collectively moved patterns or element groups, and this is one object (J). ) Is formed. Similarly, 33, 34, 3
8, 39 and the right end of the wiring 30 are a group of patterns or elements that move together, and form one object (I).

【0082】制約グラフは、オブジェクトJに対応する
頂点(頂点jとする)からオブジェクトIに対応する頂
点(頂点iとする)の向きに結合を持つものとなる。ま
た、例えば、オブジェクトJの基準点をパターン31の
左下の角のx座標をXj とし、オブジェクトIの基準点
をパターン33の左下の角のx座標をXi とすると、頂
点jの座標としてXj が記憶され、頂点iの座標として
i が記憶される。また、両オブジェクト間すなわち両
頂点間に与えられる制約条件の値(接近限界距離)は、
両オブジェクトに該当するデザインルールのうち最も接
近限界距離を小さくするものにより規定されることにな
る。接近限界距離は、対応する2頂点間を結ぶ枝に対応
して記憶される。
The constraint graph has a connection in the direction from the vertex corresponding to the object J (vertex j) to the vertex corresponding to the object I (vertex i). Further, for example, if the reference point of the object J is the x coordinate of the lower left corner of the pattern 31 as X j, and the reference point of the object I is the x coordinate of the lower left corner of the pattern 33 as X i , the coordinates of the vertex j are obtained. X j is stored, and X i is stored as the coordinates of vertex i. Also, the value of the constraint condition (approach limit distance) given between both objects, that is, between both vertices is
The design rule corresponding to both objects is defined by the one that minimizes the approach limit distance. The approach limit distance is stored corresponding to a branch connecting two corresponding vertices.

【0083】面積縮小処理での移動、配線短縮処理での
移動は、この制約グラフの頂点の座標すなわちオブジェ
クトIの基準点の座標を処理方向に移動することにより
行われる。ここで、1つのオブジェクトでは、その基準
点と各パターンとの相対的位置関係は常に固定されたも
のとなっている。よって、例えば図7のように各パター
ンについて、それが属するオブジェクトに対応する頂点
の識別情報とその頂点の座標(オブジェクトの基準点)
からの相対座標とを記憶しておくことにより、頂点の座
標を移動した場合、各パターンの座標は、図7のような
テーブルと制約グラフから求めることができる。
The movement in the area reduction processing and the movement in the wiring reduction processing are performed by moving the coordinates of the vertices of the constraint graph, that is, the coordinates of the reference point of the object I, in the processing direction. Here, in one object, the relative positional relationship between the reference point and each pattern is always fixed. Therefore, for example, as shown in FIG. 7, for each pattern, the identification information of the vertex corresponding to the object to which the pattern belongs and the coordinates of the vertex (reference point of the object)
When the coordinates of the vertices are moved, the coordinates of each pattern can be obtained from the table and the constraint graph as shown in FIG.

【0084】例えば、配線パターン30の左側端部のx
座標をxt とし、対応頂点jの座標Xj からの相対座標
をd2 とすると、xt は、xt =Xj +d2 で表され
る。同様に、配線パターン30の右側端部のx座標をx
s とし、対応頂点iの座標Xiからの相対座標をd1
すると、xs は、xs =Xi +d1 で表される。
For example, x at the left end of the wiring pattern 30
Assuming that the coordinates are x t and the relative coordinates of the corresponding vertex j from the coordinates X j are d 2 , x t is represented by x t = X j + d 2 . Similarly, the x coordinate of the right end of the wiring pattern 30 is x
and s, the relative coordinates from the coordinates X i of the corresponding vertex i and d 1, x s is expressed by x s = X i + d 1 .

【0085】また、配線パターン30のx方向の長さを
Lとすると、Lは、 L=xs −xt =(Xi +d1 )−(Xj +d2 ) =(Xi −Xj )+(d1 −d2 ) =Lij+定数 のように、配線パターン30の右側端部の属するオブジ
ェクトIと左側端部の属するオブジェクトJとの基準点
間の距離Lijにオフセット差(d1 −d2 )を加えたも
のになる。つまり、オブジェクトIとオブジェクトJの
基準点間距離Lijによって、一意に配線パターン30の
x方向の長さをLが決定される。したがって、前述のよ
うに、コストは、定数項を除いて式(5)のように表す
ことができる。コストを評価する際に、式(1)を用い
るためには、各配線の長さを求める必要があるが、式
(5)は頂点の座標だけで算出できる利点がある。
[0085] Further, when the length in the x direction of the wiring pattern 30 and L, L is, L = x s -x t = (X i + d 1) - (X j + d 2) = (X i -X j ) + (D 1 −d 2 ) = L ij + constant The offset difference (L ij) between the distance L ij between the reference point of the object I to which the right end of the wiring pattern 30 belongs and the object J to which the left end of the wiring pattern 30 belongs. d 1 −d 2 ). That is, the length L of the wiring pattern 30 in the x direction is uniquely determined by the distance L ij between the reference points of the object I and the object J. Therefore, as described above, the cost can be expressed as in Expression (5) except for the constant term. In order to use the equation (1) when evaluating the cost, it is necessary to determine the length of each wiring, but the equation (5) has an advantage that it can be calculated only by the coordinates of the vertices.

【0086】面積縮小処理での移動、配線短縮処理での
移動やコストの計算・評価等は、オブジェクトの基準点
すなわち制約グラフの頂点座標や頂点座標間の制約条件
を扱うことで処理可能となり、各パターンの移動後の座
標は最後に求めればよいことになる。
The movement in the area reduction processing, the movement in the wiring shortening processing, the calculation / evaluation of the cost, and the like can be processed by handling the reference point of the object, that is, the vertex coordinates of the constraint graph and the constraints between the vertex coordinates. The coordinates after movement of each pattern may be obtained last.

【0087】なお、図8の示す折れ曲り部分を持つ配線
のように、x方向処理におけるy方向の配線線分40や
y方向処理におけるx方向の配線線分43のように、配
線線分自体が1つのオブジェクトを形成する場合があ
る。また、図8において、例えばy方向処理を考える
と、x方向の配線線分42,43,44がそれぞれオブ
ジェクトを形成するが、このような場合には、配線線分
43を上方に移動する際、配線線分43のy座標が配線
線分42,44のy座標を越えない範囲で配線線分43
を上方に移動するものとする(つまり接近限界距離=0
となる)。配線線分43のy座標が配線線分42,44
のy座標を越える移動を可能にするには、後述するライ
ン反転処理を行う。配線線分42,43,44をまとめ
て上方に移動させるためには、後述するマージ処理を行
う。
As shown in the wiring having a bent portion shown in FIG. 8, the wiring line segment itself such as the wiring line segment 40 in the y direction in the x direction processing and the wiring line segment 43 in the x direction in the y direction processing. May form one object. In FIG. 8, for example, considering the y-direction processing, the wiring segments 42, 43, and 44 in the x direction each form an object. In such a case, when moving the wiring segment 43 upward, Wiring segment 43 within a range where the y-coordinate of wiring segment 43 does not exceed the y-coordinate of wiring segments 42 and 44.
Move upward (that is, the approach limit distance = 0).
Becomes). The y-coordinate of the wiring segment 43 is the wiring segments 42 and 44
In order to enable the movement exceeding the y coordinate, a line inversion process described later is performed. In order to move the wiring segments 42, 43, and 44 collectively upward, a merge process described later is performed.

【0088】次に、面積縮小部8では、制約グラフを参
照しながら出来るだけオブジェクトを処理方向の片側に
詰める処理を行う(ステップS14)。例えば、x方向
の処理においてオブジェクトを出来るだけ左側に詰め
る。以下では、面積縮小部8は、頂点の座標をより小さ
くする方向(x方向の処理では左側、y方向の処理では
下側とする)にオブジェクトを詰めるものとする。
Next, the area reducing unit 8 performs a process of packing the object to one side in the processing direction as much as possible while referring to the constraint graph (step S14). For example, in the processing in the x direction, the object is shifted to the left as much as possible. In the following, it is assumed that the area reducing unit 8 packs the objects in a direction in which the coordinates of the vertices are made smaller (the left side in the processing in the x direction and the lower side in the processing in the y direction).

【0089】実際には、制約グラフを参照して頂点の座
標を出来るだけ小さくするとともに、制約グラフのうち
移動した頂点の座標値を更新する操作を行う。
In practice, the coordinates of the vertices are reduced as much as possible with reference to the constraint graph, and the coordinate values of the moved vertices in the constraint graph are updated.

【0090】次に、配線短縮部10では、後述する木
(ツリー)を作成するとともに、制約グラフを参照・更
新しながら配線を短縮するように(より詳しくはなるべ
くコストを小さくするように)オブジェクトを移動させ
る(ステップS15)。なお、面積縮小部8により既に
各オブジェクトは頂点の座標を出来るだけ小さくする方
向に詰められており、頂点の座標をより小さくするオブ
ジェクトの移動はできないので、配線短縮部10では、
頂点の座標を大きくする処理のみを考えれば良いことに
なる。
Next, the wire shortening unit 10 creates a tree (to be described later), and reduces the wires while referring to and updating the constraint graph (more specifically, to reduce the cost as much as possible). Is moved (step S15). Since the objects are already packed by the area reducing unit 8 in the direction of reducing the coordinates of the vertices as much as possible, and the objects that reduce the coordinates of the vertices cannot be moved, the wiring reducing unit 10
Only the process of increasing the coordinates of the vertices should be considered.

【0091】ところで、本実施形態では、従来のグルー
プ改善法における「蓄積値」に代わって、頂点の「負
荷」を求め、この負荷に基づいて最適な頂点のグループ
を求める。そこで、まず、図9を参照しながら本実施形
態にて用いる「負荷」について説明する。
In the present embodiment, the "load" of the vertex is obtained instead of the "accumulated value" in the conventional group improvement method, and the optimum vertex group is obtained based on this load. Therefore, first, the “load” used in the present embodiment will be described with reference to FIG.

【0092】図9に頂点のグループを求めるために作成
される木の一例を示す。図9は、図32のレイアウトに
対応するものである。図9では、頂点を表す円の中に、
対応するオブジェクトの識別情報と頂点の重みを記入し
てある。ここで、重みは、式(5)の重みW(vp )の
ことである。例えば、オブジェクトAは、優先度1の配
線の右側端部を含み、優先度1と優先度5の2つの配線
の左側端部を含むので、オブジェクトAの重みは、+1
−1−5=−5となる。
FIG. 9 shows an example of a tree created for obtaining a group of vertices. FIG. 9 corresponds to the layout of FIG. In FIG. 9, in the circle representing the vertex,
The identification information of the corresponding object and the weight of the vertex are entered. Here, the weight is the weight W (v p ) in equation (5). For example, since the object A includes the right end of the wiring of the priority 1 and the left end of the two wirings of the priority 1 and the priority 5, the weight of the object A is +1.
−1−5 = −5.

【0093】頂点vの負荷R(v)を求めるには、式
(6)に従って、木の葉となる頂点(リーフ・ノード)
から順に枝に向かって計算を進めて行けば良い。ここ
で、S(v)は木における頂点vの子の集合である。ま
た、θ(x)はx<0のとき0となりx≧0のとき1と
なる関数(またはx≦0のとき0となりx>0のとき1
となる関数)である。
In order to obtain the load R (v) of the vertex v, a vertex (leaf node) which is a leaf of the tree is obtained according to the equation (6).
The calculation should be performed in order from the branch toward the branch. Here, S (v) is a set of children of vertex v in the tree. Θ (x) is 0 when x <0 and 1 when x ≧ 0 (or 0 when x ≦ 0 and 1 when x> 0)
Function).

【0094】[0094]

【数4】 (Equation 4)

【0095】つまり、リーフ・ノードの負荷は、リーフ
・ノードの重みと等しくなる。そして、親となる頂点
(親ノード)の負荷は、その親ノードの重みに、その子
となる頂点(子ノード)の負荷であって正のものを加算
して得た値となる。
That is, the load of the leaf node becomes equal to the weight of the leaf node. The load on the parent vertex (parent node) is a value obtained by adding the positive load of the child vertex (child node) to the weight of the parent node.

【0096】この値は、各頂点を右側に移動しようとし
た際の負荷に相当する。例えば、頂点vAの場合、頂点
vAの重みは−5であるが、これより右にある子孫達に
よって右側への移動を妨げられる。どの程度妨げられる
かは、子供の頂点の負荷の値を見れば良い。具体的に
は、頂点vCの負荷は+7であるから、これは頂点vA
が右側に行くことを妨げる。一方、頂点vBの負荷は−
3であるから、頂点vAが右側に行くことを妨げない。
つまり、θ(R(vB))=θ(−3)=0、θ(R
(vC))=θ(+7)=1であるから、頂点vAの負
荷R(vA)は、R(vA)=W(vA)+R(vC)
=(−5)+(+7)=+2と求まる。
This value corresponds to the load when moving each vertex to the right. For example, in the case of the vertex vA, the weight of the vertex vA is -5, but the right descendants are prevented from moving to the right. The degree of hindrance can be determined by looking at the value of the child's peak load. Specifically, since the load of the vertex vC is +7, this corresponds to the vertex vA
Block him from going to the right. On the other hand, the load on vertex vB is-
Since it is 3, it does not prevent the vertex vA from going right.
That is, θ (R (vB)) = θ (−3) = 0, θ (R
Since (vC)) = θ (+7) = 1, the load R (vA) of the vertex vA is R (vA) = W (vA) + R (vC)
= (− 5) + (+ 7) = + 2.

【0097】図9の場合、負荷が負である頂点vBを木
の根(ルート)とする全ての頂点(すなわち、頂点v
B,vD,vE)の座標を大きくする(右に移動する)
ことができる。
In the case of FIG. 9, all the vertices (ie, vertex v
B, vD, vE) (to move to the right)
be able to.

【0098】図33を参照しながら説明したように、従
来のグループ改善法では、図32のレイアウトはこれ以
上移動させることができないが、本実施形態によれば、
図32のレイアウトのオブジェクトB,D,Eを移動し
て、コストをより小さくすることができる。
As described with reference to FIG. 33, the layout of FIG. 32 cannot be moved any more by the conventional group improvement method.
The objects B, D, and E in the layout of FIG. 32 can be moved to further reduce the cost.

【0099】次に、配線短縮部10の構成や動作につい
て説明する。
Next, the configuration and operation of the wiring shortening unit 10 will be described.

【0100】図3に示されるように、本配線短縮部10
は、重み決定部100、素子移動部102、終了判定部
104、ライン反転部106を備えている。
[0100] As shown in FIG.
Includes a weight determining unit 100, an element moving unit 102, an end determining unit 104, and a line inverting unit 106.

【0101】重み決定部100は、各オブジェクトに対
応する頂点の重みを求める(ステップS21)。素子移
動部102は、処理方向のライン両端の座標の大小関係
が逆転しない範囲で、オブジェクトの移動、すなわち移
動すべき頂点の選択、移動量の決定、制約グラフの頂点
の座標の更新、木の構造の更新、負荷の更新などを行う
(ステップS22)。終了判定部104は、配線短縮処
理を終了するか、ライン反転処理を行って再度処理を実
行するか、ライン反転処理を行わずに再度処理を実行す
るかを判定する(ステップS23,S24)。ライン反
転部106は、図8のような場合にラインの長さが0に
なったものについて、対応する2つの頂点の結合関係を
逆転させるように、制約グラフ、木、コスト関数を修正
するライン反転処理を行う(ステップS25)。
The weight determining section 100 calculates the weight of the vertex corresponding to each object (step S21). The element moving unit 102 moves the object, that is, selects the vertices to be moved, determines the moving amount, updates the coordinates of the vertices of the constraint graph, and updates the tree in a range in which the magnitude relationship of the coordinates at both ends of the line in the processing direction does not reverse. The structure is updated, the load is updated, and the like (step S22). The end determination unit 104 determines whether to terminate the wiring shortening processing, perform the line inversion processing and execute the processing again, or execute the processing again without performing the line inversion processing (steps S23 and S24). The line inverting unit 106 corrects the constraint graph, the tree, and the cost function so as to invert the connection relationship between the corresponding two vertices in the case where the line length becomes 0 in the case as shown in FIG. An inversion process is performed (Step S25).

【0102】以下、図4のステップS21,S22の重
み決定処理および素子移動処理について図5を参照しな
がらかつまた具体例の処理過程を追いながら詳しく説明
する。なお、図5のステップS31がステップS21に
対応し、図5のその他のステップがステップS22に対
応する。
Hereinafter, the weight determining process and the element moving process in steps S21 and S22 in FIG. 4 will be described in detail with reference to FIG. 5 and while following the process of a specific example. Step S31 in FIG. 5 corresponds to step S21, and the other steps in FIG. 5 correspond to step S22.

【0103】図10〜図13に、配線短縮処理における
オブジェクトの移動の様子を示す。図10〜図13で
は、配線毎にその優先度を示し、オブジェクトの間隔が
これ以上詰めることができない状態のものについてはオ
ブジェクト間の配線に対して黒丸を付記し、詰めるだけ
の余裕があればその値(スラック)を括弧内に示してあ
る。例えば、図10のオブジェクトAとBではその間隔
を3だけ詰めることが可能である。また、BとDの間は
これ以上詰めることができない。
FIGS. 10 to 13 show the movement of the object in the wiring shortening process. In FIGS. 10 to 13, the priority is shown for each wiring, and in the case where the distance between the objects cannot be reduced any more, black circles are added to the wiring between the objects, and if there is room to close the wiring. The value (slack) is shown in parentheses. For example, the distance between the objects A and B in FIG. 10 can be reduced by three. Further, the space between B and D cannot be further reduced.

【0104】図14は、制約グラフ作成処理部6におい
てレイアウト・データとデザインルールから作成される
制約グラフを表している。図14では、頂点を示す円の
中には、対応するオブジェクトの識別情報と頂点の座標
を示してあるが、頂点の座標の値は、オブジェクトの移
動にともない、図15〜図17のように順次更新され
る。すなわち、図14〜図17の頂点の座標は、それぞ
れ、図10〜図13における配置と対応している。ま
た、枝に与えられた値は、その枝に対応する2つの頂点
間に必要な間隔(接近限界距離)を表している。
FIG. 14 shows a constraint graph created by the constraint graph creation processing unit 6 from layout data and design rules. In FIG. 14, the identification information of the corresponding object and the coordinates of the vertex are shown in the circle indicating the vertex, but the value of the coordinates of the vertex changes as shown in FIGS. Updated sequentially. That is, the coordinates of the vertices in FIGS. 14 to 17 correspond to the arrangements in FIGS. 10 to 13, respectively. Further, the value given to a branch represents a necessary interval (approach limit distance) between two vertices corresponding to the branch.

【0105】制約グラフの2の頂点の座標とその枝の接
近限界距離から、対応するオブジェクト間のスラックを
求めることができる。例えば、図14において、頂点B
の位置は26、頂点Aの位置は20で、その差が6であ
るのに対して、AとBの間に必要な間隔は3であること
が分かるので、AB間の余裕は3であることが分かる。
これは、図10において、オブジェクトAB間に3の余
裕があることと対応している。実際の処理では、この制
約グラフを利用して、個々のオブジェクト間にどれだけ
の余裕(スラック)があるかを算出する。
From the coordinates of the two vertices of the constraint graph and the approach limit distance of the branch, slack between the corresponding objects can be obtained. For example, in FIG.
Is 26, the position of vertex A is 20 and the difference is 6. On the other hand, the necessary interval between A and B is 3 so that the margin between AB is 3. You can see that.
This corresponds to the fact that there is a margin of 3 between the objects AB in FIG. In the actual processing, this constraint graph is used to calculate how much slack there is between individual objects.

【0106】図18〜図21は、処理中に木がどのよう
に変化しているかを表している。
FIGS. 18-21 show how the tree changes during processing.

【0107】さて、グループで移動させるための条件
は、木の根の負荷が負であることであり、負荷が負であ
る根を持つ木に含まれる全ての頂点の座標を大きくす
る。そこで、ステップS35でYESの場合は木の頂点
の座標を大きくする処理を行い、NOの場合は次の木を
選択する。
The condition for moving the group is that the load on the root of the tree is negative, and the coordinates of all vertices included in the tree having a root with a negative load are increased. Therefore, in the case of YES in step S35, a process of increasing the coordinates of the vertices of the tree is performed, and in the case of NO, the next tree is selected.

【0108】先に説明したように本配線短縮処理は、例
えば、左側一杯に寄せた素子を右側に移動させる処理で
あった。この場合、右側の素子を移動させたときに、左
側の素子との間に隙間ができて、左側の素子の移動範囲
が広がる。従って、右側の素子から順に移動させること
で、処理が終了するまでの繰り返し回数を減らすことが
できる。そこで、ステップS33では、座標の大きな木
から順に選択すると良い。
As described above, the present wiring shortening process is, for example, a process of moving an element which is fully brought to the left side to the right side. In this case, when the right element is moved, a gap is formed between the right element and the left element, and the moving range of the left element is widened. Therefore, the number of repetitions until the processing ends can be reduced by sequentially moving the elements from the right side. Therefore, in step S33, it is preferable to select trees in order from the tree having the largest coordinates.

【0109】実際に木を移動させようとするとき、移動
量を決める必要がある。木を右側に移動させて行くと、
木に含まれるある頂点と、木に含まれない別の頂点との
間の制約条件の等号が成立してそれ以上右に移動すると
この制約条件に違反する限界まで到達する。このとき
の、木に含まれる頂点のことをクリティカルノード、木
に含まれない頂点のことをリミットノードと呼び、この
ときの木の移動量がスラックである。ステップS37で
は木をスラックの大きさだけ移動させる。また、ステッ
プS38ではリミットノードを木に加えているため、こ
れ以降はリミットノードも木の一部として他の頂点と共
に移動する。
When actually moving a tree, it is necessary to determine the amount of movement. If you move the tree to the right,
When an equality of a constraint between a certain vertex included in the tree and another vertex not included in the tree is satisfied and the right is moved further, a limit that violates this constraint is reached. At this time, vertices included in the tree are called critical nodes, and vertices not included in the tree are called limit nodes, and the amount of movement of the tree at this time is slack. In step S37, the tree is moved by the size of the slack. In addition, since the limit node is added to the tree in step S38, the limit node also moves as a part of the tree with other vertices thereafter.

【0110】ここで、オブジェクトの配置が図10の状
態に(木が図18の状態に)あるものとする。処理開始
直後は、ステップS31にて各頂点で負荷=重みとして
処理を始めるが、後のステップS38が実行されるごと
に木が更新される。
Here, it is assumed that the arrangement of the objects is in the state of FIG. 10 (the tree is in the state of FIG. 18). Immediately after the start of the process, the process is started with the load = weight at each vertex in step S31, but the tree is updated each time subsequent step S38 is executed.

【0111】ステップS33で根Aを選択したとする
と、ステップS35にて図18を参照すると根の負荷が
負であることから、ステップS36に進む。
If the root A is selected in step S33, the process proceeds to step S36 since the root load is negative in FIG. 18 in step S35.

【0112】図10に示されるようにAを右側へ移動す
ることを考えたときに、余裕の最も小さいものはBであ
るから、ステップS36において、リミットノードは頂
点B、クリティカルノードは頂点A、スラックは3であ
ることがわかる。これらは、図14の制約グラフを参照
することにより算出することができる。頂点Aから出て
いる枝の値(接近限界距離)と、その枝の終点の座標と
始点の座標との差を比較してスラックを求めることがで
きるので、頂点Aから出ているすべての枝のスラックを
求め、その中から最小のスラック、およびそれに対応し
たリミットノードとクリティカルノードを求めればよ
い。
Considering that A is moved to the right as shown in FIG. 10, since the one with the smallest margin is B, the limit node is vertex B, the critical node is vertex A, and the critical node is vertex A in step S36. It can be seen that the slack is 3. These can be calculated by referring to the constraint graph of FIG. Since the slack can be obtained by comparing the difference between the value of the branch coming out of the vertex A (the approach limit distance) and the coordinates of the end point and the start point of the branch, all the branches coming out of the vertex A can be obtained. And the minimum slack and the limit nodes and critical nodes corresponding to the slack may be obtained.

【0113】次に、ステップS37に進む。ここで、ス
ラックが3であることから図15のように頂点Aの座標
は20から23に変更され、AB間の枝がタイトな枝と
なる。
Next, the process proceeds to a step S37. Here, since the slack is 3, the coordinates of the vertex A are changed from 20 to 23 as shown in FIG. 15, and the branch between AB becomes a tight branch.

【0114】この結果、配置は図11の様に変化し、A
B間には黒丸が記されていることになる。また、ステッ
プS38により木も変更されて、図19の様になる。
As a result, the arrangement changes as shown in FIG.
A black circle is written between B. Also, the tree is changed in step S38, as shown in FIG.

【0115】その後、ステップS35に進むが、ここ
で、木の根Aの負荷が負であることから、再びステップ
S36に進む。
Thereafter, the process proceeds to step S35. Here, since the load on the root A of the tree is negative, the process again proceeds to step S36.

【0116】以下、ステップS36からステップS38
まで先程と同様に進んで、図12、図16、図20のよ
うな状態に変化するが、今回は根の負荷が正となってい
ることから、ステップS35ではステップS33に進
む。ここで、頂点Aを根とする木に対する処理は一段落
し、次の木の処理に移る。
Hereinafter, steps S36 to S38
Up to this point, the state changes to the state shown in FIGS. 12, 16, and 20, but this time, since the root load is positive, the flow proceeds to step S33 in step S35. Here, the processing for the tree having the vertex A as a root is settled, and the processing proceeds to the next tree.

【0117】次に、ステップS33で頂点Cが選ばれた
とする。図20を参照すると、頂点Cの負荷は正である
ので、ステップS35から再びステップS33に戻る。
このように、負荷が正である頂点はスキップされること
になる。
Next, it is assumed that the vertex C is selected in step S33. Referring to FIG. 20, since the load on the vertex C is positive, the process returns from step S35 to step S33 again.
In this way, vertices having a positive load are skipped.

【0118】次に、ステップS33で頂点Bが選ばれた
とする。図20を参照すると、頂点Cの負荷は−5と負
であるので、ステップS36に進む。このときに処理の
対象となる木は、Bを根とする木であるから、この時点
で木は図21の様になっているとする。さらに、先程と
同様の処理を繰り返すことで、オブジェクトB、D、E
は右側に移動し、図13、図17の様になる。
Next, it is assumed that the vertex B is selected in step S33. Referring to FIG. 20, since the load on the vertex C is negative such as -5, the process proceeds to step S36. At this time, the tree to be processed is a tree having B as a root, and it is assumed at this point that the tree is as shown in FIG. Further, by repeating the same processing as before, the objects B, D, E
Moves to the right, as shown in FIGS.

【0119】次に、図22に重み決定処理および素子移
動処理の手順の他の例を示す。図22の手順は図5の手
順を若干修正したものである。ここでは、相違点につい
て説明する。
Next, FIG. 22 shows another example of the procedure of the weight determination processing and the element movement processing. The procedure in FIG. 22 is a slightly modified version of the procedure in FIG. Here, the differences will be described.

【0120】オブジェクトをグループで移動させるため
の条件は、木の根の負荷が負であることであったので、
負荷が常に正である頂点を根とする木を構成する必要は
ない。しかして、式(6)から分かる通り、木の根の重
みが正であれば、木の根の負荷が負になることはない。
そこで、ステップS42では、重みが負の頂点だけを選
んでいる。
The condition for moving the objects in groups was that the load on the root of the tree was negative.
It is not necessary to construct a tree whose root is a vertex whose load is always positive. Thus, as can be seen from equation (6), if the weight of the root of the tree is positive, the load on the root of the tree does not become negative.
Thus, in step S42, only vertices having a negative weight are selected.

【0121】また、図22の処理に先だって、制約グラ
フのシンクからタイトな枝を逆向に辿って、辿れる範囲
の頂点にBLOCKEDのマークを付けておく。この処
理は、面積縮小部8の処理が終了した直後に実行してお
くことが望ましい。ここで、タイトな枝とは、枝の示す
制約条件の大きさと、枝の両端の頂点の距離が等しい枝
である。このとき、BLOCKEDのマークの付いた頂
点を移動させると、グラフのシンクの座標が大きくなる
ため、レイアウトの面積が大きくなる。
Prior to the processing in FIG. 22, a tight branch is traced in the reverse direction from the sink of the constraint graph, and a mark of BLOCKED is added to the vertices of the traceable range. This process is desirably executed immediately after the process of the area reducing unit 8 ends. Here, a tight branch is a branch in which the size of the constraint indicated by the branch is equal to the distance between the vertices at both ends of the branch. At this time, when the vertex marked with BLOCKED is moved, the coordinates of the sink of the graph become large, and the layout area becomes large.

【0122】そこで、ステップS47にてリミットノー
ドにBLOCKEDのマークが付加されているか否か調
べ、付加されていればステップS50にてクリティカル
ノードから木の根までの経路上のすべての頂点にBLO
CKEDのマークを付加し、付加されていなければステ
ップS48とS49にて移動処理を行うようにする。こ
れによって、レイアウトの面積を大きくしてはならない
場合には、BLOCKEDのマークの付いた頂点を移動
しないようにする。
In step S47, it is checked whether or not a BLOCKED mark has been added to the limit node. If the mark has been added, in step S50, all the vertices on the path from the critical node to the root of the tree are BLOCKed.
A CKED mark is added, and if not, the moving process is performed in steps S48 and S49. As a result, when the layout area should not be increased, the vertices marked with BLOCKED are not moved.

【0123】さて、素子移動処理が終了すると、配線短
縮部10の終了判定部104は、ライン反転処理を行っ
て処理サイクルを再度実行するか、ライン反転処理を行
わずに処理サイクルを再度実行するか、処理を終了する
かを判定する。
When the element moving process is completed, the end determining unit 104 of the wiring shortening unit 10 performs the line inversion process and executes the processing cycle again, or executes the processing cycle again without performing the line inversion process. Or whether to end the processing.

【0124】終了判定部104での終了の判定条件には
以下のようなものが考えられる。 (1)全てのオブジェクトの位置が修正されなかった。 (2)全てのオブジェクトの位置が修正されないことが
2回続いた。 (3)ユーザの指定した一定の繰り返し回数t1を越え
た。 (4)コストの変化(例えば(前回コスト−今回コス
ト)あるいは(前回コスト−今回コスト)/今回コスト
等)がユーザの指定した値s1より小さくなった。 (5)上記の条件1または条件2と条件3と条件4のい
くつかを論理和などにて適宜組み合わせたもの。
The following conditions can be considered as the conditions for judging the end in the end judging unit 104. (1) The positions of all objects were not corrected. (2) It has been twice that the positions of all objects are not corrected. (3) Exceeding a certain number of repetitions t1 specified by the user. (4) The change in cost (for example, (previous cost-current cost) or (previous cost-current cost) / current cost, etc.) has become smaller than the value s1 specified by the user. (5) Some of the above conditions 1 or 2 and some of conditions 3 and 4 are appropriately combined by a logical OR or the like.

【0125】なお、収束状態を提示し、上記の繰り返し
回数をユーザが決定して入力あるいは更新できるように
してもよい。あるいは、収束状態を提示し、ユーザから
終了を指示された場合には上記の条件の成立にかかわら
ず終了するようにしてもよい。
Note that the convergence state may be presented so that the user can determine and input or update the number of repetitions. Alternatively, the convergence state may be presented, and when the user instructs termination, the termination may be performed irrespective of the satisfaction of the above condition.

【0126】収束状態の提示としては、例えば、レイア
ウトの変更が発生している部分を特定して、変更前と変
更後の違いを表示する方法、コストの変化状態あるいは
総配線長とコストの変化状態を表示するようにしてもよ
い。
As the presentation of the convergence state, for example, a method of identifying a portion where a layout change has occurred and displaying a difference between before and after the change, a change in cost, or a change in total wiring length and cost The state may be displayed.

【0127】なお、収束状態の提示は、ユーザの指示に
よって、頂点の移動の都度行うモードと、終了判定のと
きに行うモードとを切り替え可能としてもよい。
The convergence state may be presented in a mode that can be switched between a mode that is performed each time the vertex is moved and a mode that is performed when the end is determined, according to a user instruction.

【0128】次に、上記の終了条件が成立しない場合に
は処理サイクルを再度実行することになるが、その際
に、ライン反転処理を行うか否かの判定には以下のよう
なものが考えられる。 (a)全てのオブジェクトの位置が修正されなかった
(上記の(1)を採用する場合は除く)。 (b)ユーザの指定した一定の繰り返し回数t2(上記
の(3)を採用する場合はt2<t1とする)を越え
た。 (c)上記の条件aと条件bを論理和にて組み合わせた
もの。
Next, when the above-mentioned end condition is not satisfied, the processing cycle is executed again. At this time, the following judgment may be made as to whether or not to perform the line inversion processing. Can be (A) The positions of all objects were not corrected (except when the above (1) was adopted). (B) Exceeding the fixed number of repetitions t2 specified by the user (t2 <t1 when employing the above (3)). (C) A combination of the above conditions a and b by a logical sum.

【0129】この他に、上記の終了条件が成立した場合
に、ライン処理を行った上で、もう1回だけ終了条件が
成立するまで重み決定処理および素子移動処理を実行す
る方法、図23のように処理サイクルを再度実行する場
合には、常にライン反転処理を実行する方法、図24の
1つの木に対応するオブジェクトを移動するごとにライ
ン反転処理を実行する方法など、種々の方法が考えられ
る。
In addition, in the case where the above-described termination condition is satisfied, a line process is performed, and then the weight determination process and the element moving process are executed only once until the termination condition is satisfied. When the processing cycle is executed again, various methods such as a method of always executing the line inversion processing and a method of executing the line inversion processing every time an object corresponding to one tree in FIG. 24 is moved are considered. Can be

【0130】さて、ライン反転部106は、前述のよう
にラインの長さが0になった場合に、ラインの左右を入
れ替えるライン反転処理を行う。具体的には、ラインの
両端に対応する2つの頂点の始点と終点の関係を逆転さ
せるように、制約グラフの結合関係と接近限界距離、木
の構造、木の頂点の重みと負荷を修正する。コスト関数
は、修正後の頂点の重みを用いる。本素子移動処理は、
頂点の位置関係が逆転しない範囲でオブジェクトを移動
させるので、オブジェクトが移動できなくなったとき
に、頂点間の距離が0であるものがあれば、頂点の位置
関係が逆になるように制約グラフ、木、コスト関数を修
正することで、さらにオブジェクトの移動が可能となる
場合がある。
The line reversing unit 106 performs a line reversing process for exchanging the left and right of the line when the length of the line becomes 0 as described above. Specifically, the connection relation of the constraint graph, the approach limit distance, the tree structure, and the weight and load of the tree vertex are modified so that the relation between the start point and the end point of the two vertices corresponding to both ends of the line is reversed. . The cost function uses the corrected vertex weights. This element movement processing
Since the object is moved within the range where the positional relationship of the vertices does not reverse, when the object cannot move, if there is a distance between the vertices that is 0, a constraint graph such that the positional relationship of the vertices is reversed, In some cases, the object can be further moved by modifying the tree and the cost function.

【0131】配線短縮処理が終了すると、図7のような
各パターンとそれに対応する頂点とその頂点の座標に対
する処理方向の相対座標との関係を示すテーブルと、制
約グラフから得られる各頂点の座標とをもとにするなど
して、全レイアウト・パターンの座標データを計算し直
して、線短縮処理終了後におけるICレイアウト・デー
タを生成する。なお、面積縮小処理や配線短縮処理にお
いて、各頂点を移動するごとに、その頂点に対応するオ
ブジェクトに属する各パターンの座標を求めてその都度
ICレイアウト・データを更新するようにしてもよい。
When the wiring shortening process is completed, a table as shown in FIG. 7 showing the relationship between each pattern, its corresponding vertex, and the relative coordinates in the processing direction with respect to the coordinates of the vertex, and the coordinates of each vertex obtained from the constraint graph Based on the above, the coordinate data of all the layout patterns is recalculated, and the IC layout data after the completion of the line shortening process is generated. In the area reduction processing and the wiring reduction processing, every time a vertex is moved, the coordinates of each pattern belonging to the object corresponding to the vertex may be obtained, and the IC layout data may be updated each time.

【0132】次に、終了判定部12では、終了条件が成
立したか否かを判断する(ステップS16)。終了条件
が成立したならば終了し、終了条件が成立していないな
らば、処理方向決定部4に戻り、処理方向を変えて同様
のコンパクション処理を繰り返して行う。終了条件に
は、一例として、規定回数の繰り返しが終了した条件が
考えられる。例えば、x方向の処理とy方向の処理が交
互に2回ずつで計4回の繰り返しが終了した場合であ
る。
Next, the end determination section 12 determines whether or not an end condition has been satisfied (step S16). If the end condition is satisfied, the process ends. If the end condition is not satisfied, the process returns to the processing direction determination unit 4 to change the processing direction and repeat the same compaction processing. As an example of the termination condition, a condition in which a specified number of repetitions have been completed can be considered. For example, this is a case where the processing in the x direction and the processing in the y direction are alternately performed twice each, and a total of four repetitions are completed.

【0133】終了判定部12にて終了条件が成立したと
判断されたならば、出力部14は、コンパクション処理
されたICレイアウト・データを出力する(ステップS
17)。
If the end determining unit 12 determines that the end condition is satisfied, the output unit 14 outputs the compacted IC layout data (step S).
17).

【0134】次に、移動可能なオブジェクトを上記した
基本的な手順では移動できない場合について図25の例
を参照しながら説明する。
Next, a case where a movable object cannot be moved by the above-described basic procedure will be described with reference to the example of FIG.

【0135】図25(a)のラインL1,L2,L3
は、それぞれ、(b)の頂点v1,v2,v3と対応し
ていて、ライン両端の入れ替えを伴う移動を禁止してい
るために、v1とv2、v3とv2の間に制約条件の値
が0の枝がある。このとき、制約条件のために、L1と
L3はL2を越えて右側に移動することはできない。ま
た、各ラインの優先度を1として各頂点の重みを求める
と、(b)の各頂点の横に記したような重みが求まり、
L2の重みは2(>0)なので、L2は単独では右に移
動しない。一方、全ての頂点の重みの合計は負であるか
ら、全体を右側に移動することで、配線長は短縮される
はずであるが、このグラフは木に格納することができな
いため、全体を右側に移動させることはできず、(c)
に示す状態で処理は終了してしまう。
Lines L1, L2, L3 in FIG.
Respectively correspond to the vertices v1, v2, and v3 of (b), and prohibit movement involving the exchange of both ends of the line. Therefore, the value of the constraint condition between v1 and v2 and between v3 and v2 There are 0 branches. At this time, L1 and L3 cannot move to the right over L2 due to the constraint condition. Further, when the priority of each line is set to 1 and the weight of each vertex is obtained, the weight as described beside each vertex in (b) is obtained,
Since the weight of L2 is 2 (> 0), L2 alone does not move to the right. On the other hand, since the sum of the weights of all the vertices is negative, the wiring length should be shortened by moving the whole to the right, but since this graph cannot be stored in a tree, the whole is Cannot be moved to (c)
The process ends in the state shown in FIG.

【0136】そこで、ラインの長さが0になっている場
合、またはラインの左端と右端に対応する頂点の間の枝
がタイトな枝になっている場合は、ラインの両端が同一
の頂点を参照することにする。このとき、頂点の重み
は、元々参照されていた頂点の重みの合計に等しくす
る。(a)の3頂点の重みの合計は−2であるから、
(d)のように、新しい頂点vの重みは−2になる。
(d)の場合は、ラインは右側に移動して、配線長を短
縮できる。
Therefore, when the length of the line is 0, or when the branch between the vertices corresponding to the left end and the right end of the line is a tight branch, both ends of the line have the same vertex. I will refer to it. At this time, the weight of the vertex is made equal to the sum of the weight of the vertex originally referred to. Since the sum of the weights of the three vertices in (a) is -2,
As shown in (d), the weight of the new vertex v is -2.
In the case of (d), the line moves to the right, and the wiring length can be reduced.

【0137】この処理を実行するための配線短縮部10
の内部構成の一例を図26に示し、その手順の一例を図
27に示す。マージ処理部108以外の部分は、基本的
には上記したような図3の配線短縮部10と同様である
が、終了判定部104でマージ処理が必要であると判断
した場合に、マージ処理部108で、上記したラインと
頂点のマージ処理と制約グラフの変更、負荷の修正を行
った後、再度処理を続行する。
The wire shortening unit 10 for executing this processing
FIG. 26 shows an example of the internal configuration of the system, and FIG. 27 shows an example of the procedure. The parts other than the merge processing unit 108 are basically the same as the wiring shortening unit 10 of FIG. 3 as described above, but when the end determination unit 104 determines that the merge processing is necessary, the merge processing unit At 108, after the above-described merge processing of the line and the vertex, the change of the constraint graph, and the correction of the load, the processing is continued again.

【0138】なお、終了判定部104でのマージ処理の
必要の有無の判断としては、例えば、終了判定部104
にてライン反転処理を行うと判断された蓄積回数が規定
回数の整数倍に当たる場合にライン反転処理の代わりに
マージ処理を行う方法が考えられる。例えば、規定回数
を4回とすると、3回のライン反転処理が行われた後
に、またライン反転処理を行うと判断されたならば、そ
の回はライン反転処理に代えてマージ処理を行う。
The end determination unit 104 determines whether or not the merging process is necessary, for example, by the end determination unit 104.
In the case where the number of accumulations determined to perform the line inversion process is equal to an integral multiple of the specified number, a method of performing a merge process instead of the line inversion process can be considered. For example, assuming that the prescribed number of times is 4, after the line inversion processing is performed three times, if it is determined that the line inversion processing is to be performed, the merge processing is performed instead of the line inversion processing in that time.

【0139】あるいは、前述の終了条件が成立し、ライ
ン処理を行った上で、再度重み決定処理および素子移動
処理を実行した後に、再度前述の終了条件が成立した場
合に、マージ処理を行った上で、再度重み決定処理およ
び素子移動処理を実行する方法、図23のように処理サ
イクルを再度実行する場合には常にライン反転処理を実
行しあるいは図24の1つの木に対応するオブジェクト
を移動するごとにライン反転処理を実行する場合に、ラ
イン反転処理を行った蓄積回数が規定回数の整数倍に当
たる場合にライン反転処理の代わりにマージ処理を行う
方法、図23のように処理サイクルを再度実行する場合
には常にライン反転処理を実行しあるいは図24の1つ
の木に対応するオブジェクトを移動するごとにライン反
転処理を実行するとともに、前述のライン反転処理を行
うための条件と同じ条件(a,bなど)が成立した場合
にマージ処理を行う方法など、種々の方法が考えられ
る。
Alternatively, after the above-mentioned ending condition is satisfied, the line processing is performed, the weight determining process and the element moving process are performed again, and then, when the above-mentioned ending condition is satisfied again, the merging process is performed. Above, a method of executing the weight determination processing and the element moving processing again, and when executing the processing cycle again as shown in FIG. 23, always execute the line inversion processing or move the object corresponding to one tree of FIG. When the line inversion processing is executed every time the number of accumulations in which the line inversion processing is performed is equal to an integral multiple of the specified number, a merge processing is performed instead of the line inversion processing. When it is executed, the line inversion processing is always executed, or the line inversion processing is executed every time an object corresponding to one tree in FIG. 24 is moved. Both a method of performing the merge processing when the same conditions as the conditions for performing line inversion process described above (a, b, etc.) is satisfied, various methods are conceivable.

【0140】ところで、以上の説明においては、オブジ
ェクトは、処理方向のラインの両端を包含しないもので
あったが、短縮対象から外したいラインを指定可能とし
てもよい。この場合、短縮対象から外したいラインを、
他の配線ではないパターンと同様に扱えばよい。
By the way, in the above description, the object does not include both ends of the line in the processing direction. However, it is possible to specify a line that is not to be shortened. In this case, the line that you want to remove
What is necessary is just to handle similarly to other patterns which are not wiring.

【0141】また、レイアウトのうちの配置変更させた
くない特定範囲を指定可能としてもよい。この場合、該
特定範囲に包含されるラインをすべて他の配線ではない
パターンと同様に扱えばよい。
It is also possible to specify a specific range of the layout that the user does not want to change the layout. In this case, all the lines included in the specific range may be handled in the same manner as other non-wiring patterns.

【0142】なお、本実施形態にて説明した各機能は、
ハードウェアとしてもソフトウェアとしても実現可能で
ある。また、ソフトウェアとしても実現する場合、上記
した各手順あるいは手段をコンピュータに実行させるた
めのプログラムを記録した機械読取り可能な媒体として
実施することもできる。
The functions described in the present embodiment are as follows.
It can be realized as hardware or software. In the case where the present invention is also realized as software, the present invention can be implemented as a machine-readable medium storing a program for causing a computer to execute the above-described procedures or means.

【0143】本発明は、上述した実施の形態に限定され
るものではなく、その技術的範囲において種々変形して
実施することができる。
The present invention is not limited to the above-described embodiments, but can be implemented with various modifications within the technical scope.

【0144】[0144]

【発明の効果】本発明によれば、所定の位置関係を持つ
複数のオブジェクトをそれぞれノードとしてツリーを形
成し、ツリーの下流側から上流側に向かって、各ノード
の負荷を下流側ノードの負荷を反映させながら順次求め
ていくので、負荷に基づいて容易に移動すべきオブジェ
クトのグループを求めることができ、効率的にかつ効果
的に配線のコストを下げるようなオブジェクトの移動を
実行することができる。
According to the present invention, a tree is formed by using a plurality of objects having a predetermined positional relationship as nodes, and the load of each node is reduced from the downstream side of the tree toward the upstream side. Are sequentially obtained while reflecting the load, so that it is possible to easily obtain a group of objects to be moved based on the load, and to efficiently and effectively execute the movement of the object that reduces the cost of wiring. it can.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の一実施形態に係るコンパクション処理
装置の構成の一例を示す図
FIG. 1 is a diagram illustrating an example of a configuration of a compaction processing apparatus according to an embodiment of the present invention.

【図2】本発明の一実施形態に係るコンパクション装置
の処理手順の一例を示すフローチャート
FIG. 2 is a flowchart illustrating an example of a processing procedure of a compaction device according to an embodiment of the present invention.

【図3】配線短縮部の内部構成の一例を示す図FIG. 3 is a diagram illustrating an example of an internal configuration of a wiring shortening unit;

【図4】配線短縮部の処理手順の一例を示すフローチャ
ート
FIG. 4 is a flowchart illustrating an example of a processing procedure of a wiring shortening unit;

【図5】配線短縮部の重み決定処理および素子移動処理
の手順の一例を示すフローチャート
FIG. 5 is a flowchart illustrating an example of a procedure of a weight determination process and an element moving process of the wiring shortening unit.

【図6】レイアウト・パターンの一例を示す図FIG. 6 is a diagram showing an example of a layout pattern.

【図7】各パターンと頂点と相対座標との対応を記憶し
たテーブルの一例を示す図
FIG. 7 is a diagram illustrating an example of a table storing correspondence between each pattern, a vertex, and relative coordinates;

【図8】レイアウト・パターンの他の例を示す図FIG. 8 is a diagram showing another example of a layout pattern.

【図9】負荷を説明するための木の一例を示す図FIG. 9 is a diagram illustrating an example of a tree for explaining a load;

【図10】オブジェクトの配置状態の一例を示す図FIG. 10 is a diagram illustrating an example of an arrangement state of objects.

【図11】オブジェクトの配置状態の一例を示す図FIG. 11 is a diagram illustrating an example of an arrangement state of objects.

【図12】オブジェクトの配置状態の一例を示す図FIG. 12 is a diagram showing an example of an arrangement state of objects.

【図13】オブジェクトの配置状態の一例を示す図FIG. 13 is a diagram illustrating an example of an arrangement state of objects.

【図14】制約グラフの一例を示す図FIG. 14 is a diagram showing an example of a constraint graph.

【図15】制約グラフの一例を示す図FIG. 15 is a diagram showing an example of a constraint graph.

【図16】制約グラフの一例を示す図FIG. 16 is a diagram showing an example of a constraint graph.

【図17】制約グラフの一例を示す図FIG. 17 is a diagram illustrating an example of a constraint graph.

【図18】木の一例を示す図FIG. 18 illustrates an example of a tree.

【図19】木の一例を示す図FIG. 19 shows an example of a tree.

【図20】木の一例を示す図FIG. 20 shows an example of a tree.

【図21】木の一例を示す図FIG. 21 shows an example of a tree.

【図22】配線短縮部の重み決定処理および素子移動処
理の手順の他の例を示すフローチャート
FIG. 22 is a flowchart illustrating another example of the procedure of the wiring determination section weight determination processing and element movement processing;

【図23】配線短縮部の処理手順の他の例を示すフロー
チャート
FIG. 23 is a flowchart illustrating another example of the processing procedure of the wiring shortening unit;

【図24】配線短縮部の処理手順のさらに他の例を示す
フローチャート
FIG. 24 is a flowchart showing still another example of the processing procedure of the wiring shortening unit;

【図25】マージ処理を説明するための図FIG. 25 is a diagram for explaining a merge process;

【図26】配線短縮部の内部構成の他の例を示す図FIG. 26 is a diagram showing another example of the internal configuration of the wiring shortening unit.

【図27】配線短縮部のマージ処理を含む処理手順の一
例を示すフローチャート
FIG. 27 is a flowchart illustrating an example of a processing procedure including a merging process of a wiring shortening unit;

【図28】従来のコンパクショタの構成の一例を示す図FIG. 28 is a diagram showing an example of a configuration of a conventional compactor.

【図29】面積縮小処理を説明するための図FIG. 29 is a diagram for explaining area reduction processing;

【図30】制約グラフを説明するための図FIG. 30 is a diagram for explaining a constraint graph.

【図31】シンクとソースを持つ一般的な制約グラフの
一例を示す図
FIG. 31 is a diagram showing an example of a general constraint graph having a sink and a source

【図32】オブジェクトの配置状態の一例を示す図FIG. 32 is a diagram illustrating an example of an arrangement state of objects.

【図33】蓄積値を説明するための木の一例を示す図FIG. 33 is a diagram showing an example of a tree for explaining accumulated values;

【図34】蓄積値を説明するための他の木の一例を示す
FIG. 34 is a diagram showing an example of another tree for explaining accumulated values;

【符号の説明】[Explanation of symbols]

2…装置入力部 4…処理方向決定部 6…制約グラフ作成部 8…面積縮小部 10…配線短縮部 12…終了判定部 14…出力部 100…重み決定部 102…素子移動部 104…終了判定部 106…ライン反転部 108…マージ処理部 2. Device input unit 4. Processing direction determination unit 6. Constraint graph creation unit 8. Area reduction unit 10. Wiring reduction unit 12. Termination determination unit 14. Output unit 100. Weight determination unit 102. Element moving unit 104. Termination determination. Unit 106: line inversion unit 108: merge processing unit

Claims (11)

【特許請求の範囲】[Claims] 【請求項1】オブジェクト間を配線してなる配線パター
ンにおける特定のオブジェクトを、配線ごとに設定され
た優先度を考慮した配線短縮のパフォーマンスを示す負
荷に従って移動することにより、前記配線の長さを短縮
する配線短縮処理方法であって、 所定の位置関係を持つ複数のオブジェクトをそれぞれノ
ードとしてツリーを形成し、 前記各ツリーについて、該ツリーのリーフ側から順次、
子ノードの負荷に基づく該子ノードに対する親ノードの
負荷を算出し、 所定の条件を満たす負荷を持つノードをルートノードと
するツリー部分に対応するオブジェクトを移動対象とし
て特定することを特徴とする配線短縮処理方法。
An object according to claim 1, wherein a specific object in a wiring pattern formed by wiring between objects is moved in accordance with a load indicating performance of wire shortening in consideration of a priority set for each wire, thereby reducing the length of said wire. A wiring shortening processing method for shortening, wherein a tree is formed by using a plurality of objects having a predetermined positional relationship as nodes, and for each of the trees, sequentially from a leaf side of the tree,
A wiring that calculates a load of a parent node for the child node based on a load of the child node, and specifies, as a movement target, an object corresponding to a tree part having a node having a load satisfying a predetermined condition as a root node; Shortening method.
【請求項2】前記所定の位置関係は、2つのオブジェク
トが互いに接近可能な限界距離に位置する関係であり、
前記ツリーにおいて該2つのオブジェクトのうちオブジ
ェクト移動方向の上流側に位置するオブジェクトを親ノ
ード、下流側に位置するオブジェクトを子ノードとし、 リーフノードを含む子ノードを持たないノードの負荷
を、該ノードに一端を持つ配線線分のうち該ノードを移
動すると配線が伸張されるものの短縮優先度の総和から
該ノードに一端を持つ配線線分のうち該ノードを移動す
ると配線が短縮されるものの短縮優先度の総和を減じて
得た重み値とし、 子ノードを持つノードの負荷を、該ノードの重み値に、
該ノードの子ノードの負荷のうち正の値のものをすべて
加算したものとし、 前記負荷の満たすべき所定の条件は、前記負荷が負の値
であることを特徴とする請求項1に記載の配線短縮処理
方法。
2. The predetermined positional relationship is a relationship in which two objects are located at a limit distance within which the two objects can approach each other.
Of the two objects in the tree, the object located upstream in the object movement direction is a parent node, the object located downstream is a child node, and the load of a node having no child nodes including a leaf node is calculated by When the node is moved, the wiring is expanded when the node is moved, but the shortening priority is given from the sum of the shortening priorities, when the node is moved from the wiring line having one end to the node, the wiring is shortened. Weights obtained by subtracting the sum of the degrees, the load of the node having the child node is added to the weight value of the node,
The load according to claim 1, wherein all of the positive values of the loads of the child nodes of the node are added, and the predetermined condition to be satisfied by the load is that the load is a negative value. Wiring shortening processing method.
【請求項3】前記レイアウト面積の縮小のための移動
は、オブジェクトを一次元コンパクション方向の一方の
側に可能な限り詰めて配置するように移動するものであ
り、 前記手順においては、前記一次元コンパクション方向の
他方の側に位置するオブジェクトから順に移動対象とす
ることを特徴とする請求項1または2に記載の配線短縮
処理方法。
3. The movement for reducing the layout area is to move the object so as to be packed as close as possible on one side in the one-dimensional compaction direction. 3. The wiring shortening processing method according to claim 1, wherein the objects are sequentially moved from an object located on the other side in the compaction direction.
【請求項4】前記手順を実行しても全てのオブジェクト
が移動できなかったことが2回繰り返された条件、前記
手順を実行しても全てのオブジェクトが移動できなかっ
た条件、繰り返し回数が規定回数を越えた条件、配線の
各線分の長さの重み付け総和値に相当するコストの変化
が規定値より小さくなった条件のうちの1つの条件また
は所定の組合せで定められた条件からなる終了条件が成
立するまで、前記手順を繰り返し実行することを特徴と
する請求項1ないし3のいずれか1項に記載の配線短縮
処理方法。
4. A condition that two times that all objects could not be moved even after the above procedure was repeated, a condition that all objects could not be moved even after the above procedure was performed, and the number of repetitions were defined. An end condition consisting of one of the conditions exceeding the number of times and the condition that the change in cost corresponding to the weighted total value of the length of each line segment becomes smaller than a specified value or a condition determined by a predetermined combination The method according to any one of claims 1 to 3, wherein the procedure is repeatedly executed until the following condition is satisfied.
【請求項5】各オブジェクト間の関係を制約グラフによ
り表現し、配線線分の両端の位置関係が逆転しない範囲
で、前記オブジェクトを移動することを特徴とする請求
項1ないし4のいずれか1項に記載の配線短縮処理方
法。
5. The object according to claim 1, wherein the relationship between the objects is represented by a constraint graph, and the objects are moved within a range in which the positional relationship between the two ends of the wiring line segment is not reversed. Wiring shortening processing method described in the paragraph.
【請求項6】配線線分の両端の位置関係が逆転しない範
囲で、前記オブジェクトを移動するとともに、 前記オブジェクトの移動が完了した時点で、配線線分の
長さが0となったものがあれば、該配線線分の両端の位
置関係を反転して、前記ツリーの構造を修正し、改めて
前記負荷を求めた後に、所定の条件を満たす負荷を持つ
ノードをルートノードとするツリー部分に対応する全オ
ブジェクトを一体として移動させることを特徴とする請
求項1ないし3のいずれか1項に記載の配線短縮処理方
法。
6. An object in which the object is moved within a range in which the positional relationship between both ends of the wiring line segment does not reverse, and the length of the wiring line segment becomes 0 when the movement of the object is completed. For example, after reversing the positional relationship between both ends of the wiring line segment, correcting the tree structure, and obtaining the load again, the tree portion corresponding to a tree portion having a node having a load satisfying a predetermined condition as a root node is obtained. 4. The wiring shortening processing method according to claim 1, wherein all objects to be moved are moved as a unit.
【請求項7】配線線分の両端の位置関係が逆転しない範
囲で、前記オブジェクトを移動するとともに、 前記終了条件が成立した時点で、配線線分の長さが0と
なったものがあれば、該配線線分の両端の位置関係を反
転した上で、改めて前記終了条件が成立するまで、前記
手順を繰り返し実行することを特徴とする請求項4に記
載の配線短縮処理方法。
7. If the object is moved within a range in which the positional relationship between both ends of the wiring line segment does not reverse, and if the length of the wiring line line becomes 0 when the end condition is satisfied, 5. The wiring shortening method according to claim 4, wherein, after reversing a positional relationship between both ends of the wiring line segment, the procedure is repeatedly executed until the end condition is satisfied again.
【請求項8】配線線分の両端の位置関係が逆転しない範
囲で、前記オブジェクトを移動するとともに、 前記終了条件が成立した時点で、配線線分の長さが0と
なったものまたは配線線分の両端と対応する頂点間の枝
がタイトな枝になったものがあれば、該配線線分の両端
をマージした上で、改めて前記終了条件が成立するま
で、前記手順を繰り返し実行することを特徴とする請求
項4に記載の配線短縮処理方法。
8. An object in which the object is moved within a range in which the positional relationship between both ends of the wiring line segment does not reverse, and the length of the wiring line becomes 0 or the wiring line when the end condition is satisfied. If there is a tight branch between the two ends of the minute and the corresponding vertex, the ends of the wiring line are merged, and the above procedure is repeatedly executed until the end condition is satisfied again. 5. The wiring shortening processing method according to claim 4, wherein:
【請求項9】レイアウトの変更が発生している部分を特
定して、変更前と変更後の違いを表示する形態または総
配線長および前記コストの少なくとも一方の変化状態を
表示する形態により収束状態を提示するとともに、ユー
ザから入力された繰り返し回数を前記終了条件として用
いることを特徴とする請求項4に記載の配線短縮処理方
法。
9. A convergence state by specifying a portion where a layout change has occurred and displaying a difference between before and after the change or displaying a change state of at least one of the total wiring length and the cost. 5. The method according to claim 4, wherein the number of repetitions input by a user is used as the end condition.
【請求項10】各配線線分の短縮優先度を、該配線線分
の長さと該配線線分の幅と該配線線分の属するマスク・
レイヤの関数とすることを特徴とする請求項1に記載の
配線短縮処理方法。
10. A reduction priority of each wiring line is defined by a length of the wiring line, a width of the wiring line, and a mask to which the wiring line belongs.
2. The wiring shortening processing method according to claim 1, wherein the method is a function of a layer.
【請求項11】前記レイアウトの特定の部分に限定して
特定のデザインルールおよび配線線分別の短縮優先度を
設定可能とすることを特徴とする請求項1に記載の配線
短縮処理方法。
11. The wiring shortening processing method according to claim 1, wherein a specific design rule and a shortening priority of wiring line classification can be set only for a specific portion of the layout.
JP20151897A 1997-07-28 1997-07-28 Wiring reduction processing method, wiring reduction processing device, and storage medium for storing wiring reduction processing program Expired - Fee Related JP3367869B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP20151897A JP3367869B2 (en) 1997-07-28 1997-07-28 Wiring reduction processing method, wiring reduction processing device, and storage medium for storing wiring reduction processing program
US09/122,634 US6122443A (en) 1997-07-28 1998-07-27 Wire length minimization apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20151897A JP3367869B2 (en) 1997-07-28 1997-07-28 Wiring reduction processing method, wiring reduction processing device, and storage medium for storing wiring reduction processing program

Publications (2)

Publication Number Publication Date
JPH1145940A true JPH1145940A (en) 1999-02-16
JP3367869B2 JP3367869B2 (en) 2003-01-20

Family

ID=16442382

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20151897A Expired - Fee Related JP3367869B2 (en) 1997-07-28 1997-07-28 Wiring reduction processing method, wiring reduction processing device, and storage medium for storing wiring reduction processing program

Country Status (1)

Country Link
JP (1) JP3367869B2 (en)

Also Published As

Publication number Publication date
JP3367869B2 (en) 2003-01-20

Similar Documents

Publication Publication Date Title
US6122443A (en) Wire length minimization apparatus and method
KR101741402B1 (en) Design of a part modeled by parallel geodesic curves
JP2753085B2 (en) Shape modeling method and apparatus
US4953106A (en) Technique for drawing directed graphs
JP3195498B2 (en) Method and apparatus for creating three-dimensional shape
US7721243B2 (en) Method and apparatus for routing
WO2000038228A1 (en) Rough wiring method and apparatus and recording medium storing rough wiring program
JP2010176347A (en) Shortest path retrieval method and device
JPH0362266A (en) Computer-alded drawing making method
US5701404A (en) Method and system for efficiently trimming a nurbs surface with a projected curve
JP2004529402A5 (en)
JP2004100148A (en) Road linear design method, device, and program
JP2627512B2 (en) Network diagram creation device
JP3557839B2 (en) How to create mesh data on a curved surface
JP4564506B2 (en) Evolutionary Design Optimization by Extended Direct Manipulation Method of Free Form Deformation (FreeForm Deformation)
JP2003022285A (en) Computer-aided product designing device
US20060017721A1 (en) Reduction of a mesh with preservation of flow lines
JPH0421910B2 (en)
JP2666750B2 (en) Figure placement device
JP2003030172A (en) Optimization method with constraint condition and program
JPH1145940A (en) Method for shortening interconnection
JP2946506B2 (en) Object surface shape data creation method
JP2638851B2 (en) Numerical control processing method
JP2745565B2 (en) How to create curve data representing the shape of an object
JP3845137B2 (en) Automatic polygon record creation method around reference line and polygon record automatic creation device around reference line

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071108

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081108

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091108

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees