Efficient Obstacle-Avoiding Rectilinear Steiner Tree Construction
description
Transcript of Efficient Obstacle-Avoiding Rectilinear Steiner Tree Construction
1
Efficient Obstacle-Avoiding Rectilinear Steiner Tree Construction
Chung-Wei Lin, Szu-Yu Chen, Chi-Feng Li, Yao-Wen Chang, Chia-Lin Yang
National Taiwan University
2
Outline
Conclusions
Introduction
Problem Formulation
Algorithm
Experimental Results
3
Outline
Conclusions
Introduction
Problem Formulation
Algorithm
Experimental Results
4
Introduction to OARSMT Problem․ Given a set of pins and a set of obstacles, an obstacle-
avoiding rectilinear Steiner minimal tree (OARSMT) Connect those pins, possibly through some Steiner points Use only vertical and horizontal edges Avoid running through any obstacle Have a minimal total wirelength
․ It becomes more important than ever for modern nanometer IC designs.
The design needs to consider numerous routing obstacles incurred from
Prerouted nets Large-scale power networks IP blocks, etc IP block
Prerouted nets
IP block
5
Construction-by-Correction Approach
Construction Correction
․ Construct an initial tree without considering obstacles․ Correct edges overlapping obstacles
․ Lack a global view of obstacles ․ Have a limited solution quality․ Feng et al., ISPD-06
Construct OARSMT in the λ-geometry plane
6
Connection-Graph Based Approach
․ Construct a connection graph in which there is a desired OARSMT
․ Apply searching techniques to find the desired OARSMT
․ Prune many redundant edges to reduce problem size․ Obtain much better solution quality
Spanning graph Spanning tree OARSMT
․ Shen et al., ICCD-05 Achieve good results but can be further improved
7
Outline
Conclusions
Introduction
Problem Formulation
Algorithm
Experimental Results
8
Problem Formulation
․ Given m pins {p1, p2, …, pm} and k obstacles {o1, o2, …, ok}, construct an OARSMT such that the total wirelength of the tree is minimized.
Obstacles overlap each other Obstacles are point-touched or line touched
A pin locates inside an obstacle A pin is at the corner or on the boundary of an obstacle
An edge intersects an obstacle An edge is point-touched or line-touched with an obstacle
9
An OARSMT Example
Larger wirelength
Smaller wirelength
pin-vertexobstacle
10
Outline
Obstacle-Avoiding Spanning Tree Construction
Obstacle-Avoiding Spanning Graph
Construction
Obstacle-Avoiding Rectilinear Spanning Tree
Construction
OARSMT Construction
Conclusions
Introduction
Problem Formulation
Algorithm
Experimental Results
11
Flow of Algorithms
pin-vertexobstacle
Steiner-vertex
corner-vertexturning-vertex
Spanning Graph
OARSMT
Spanning Tree
Rectilinear Spanning Tree
12
Flow of Algorithms
Spanning Graph Spanning Tree
Rectilinear Spanning Tree OARSMT
pin-vertexobstacle
Steiner-vertex
corner-vertexturning-vertex
13
Spanning Graph Construction․ The plane is divided into four regions for each vertex.
pin-vertexobstacle
corner-vertexR1
R2 R3
R4
R1 of ci,2 ci,1
ci,2 ci,3
ci,4
R3 of ci,2R2 of ci,2
․ v1 and v2 are connected if no other vertex or obstacle is inside or on the boundary of the bounding box of v1 and v2.
Spanning graph for R2 of c4,2
o4
p1 p2 o3
o2
o1 c1,4c3,1
c4,2c2,3
c1,3
c1,1
o4
p1 p2 o3
o2
o1 c1,4c3,1
c4,2c2,3
c1,3
c1,1
oi
14
․ Our spanning graph guarantees a shortest path of any two vertices.
Properties of Our Spanning Graph (1/2)
p1
p2p1
p2
OARSMT
p1
p2
․ Spanning graph of Shen et al. (ICCD-05) does not guarantee it.
pin-vertexobstacle
corner-vertexwastewaste
p1
p2
OARSMT
15
Properties of Our Spanning Graph (2/2)
4r
…p1 prp2 p3 pr+1
…p1 pr
p2 p3 pr+1
2 2 2
4
2
2…
4r
22 2 2
p1 prp2 p3 pr+1
Spanning graph of Shen et al.
…p1 pr
p2 p3 pr+1
2 2 2
4
2
Our spanning graph
OARSMT total wirelength = 6r+2
OARSMT total wirelength = 4r
pin-vertexobstacle
corner-vertex
16
o4
p2 o3
o2
o1 c1,4c3,1
c4,2c2,3
c1,1
p1 c1,3
c2,4c2,1
Spanning Graph Construction – Example ․ Apply a sweeping line algorithm for each region․ Use blocking information to check a vertex is blocked or
notCandidate
setBlocking
informationc1,1
c2,3
c1,4
p2
c3,1
o1
o2
o3
Spanning graph for R2 of c4,2
17
Flow of Algorithms
Spanning Graph Spanning Tree
Rectilinear Spanning Tree OARSMT
pin-vertexobstacle
Steiner-vertex
corner-vertexturning-vertex
18
Spanning Tree Construction
pin-vertexobstacle
corner-vertex
8 10104
106
Spanning graph
T2 T3
T1
G2
G1
Pin-vertices shortest path computation
Minimum spanning tree (MST) construction
Edges insertion MST constructionEdges mapping
19
Flow of Algorithms
Spanning Graph Spanning Tree
Rectilinear Spanning Tree OARSMT
pin-vertexobstacle
Steiner-vertex
corner-vertexturning-vertex
20
Rectilinear Spanning Tree Construction․ Transform slant edges into vertical and horizontal edges
Longer edges are transformed first. Three cases for a slant edge e and its neighboring edge e’:
ee
vb
vaee
2. They are in neighboring regions.
3. They are in the same region.
ee
e is transformed randomly
e and e’ are transformed with edge overlap
e and e’ are transformed with edge overlap(va,vb) is transformed randomly
1. They are in opposite regions.
21
Rectilinear Spanning Tree Construction – Example
p3
p4
p5p2
p1 c1 c2
p3
p4
p5t1
t2
p1
p2
c1t3 t4
pin-vertex corner-vertex turning-vertex
ee
vb
vaee
ee
2. They are in neighboring regions.
3. They are in the same region.
1. They are in opposite regions.
p2
p1 c1
p3
c2 t5c1
p3
c2c1
e is transformed randomly
e and e’ are transformed with edge overlap
e and e’ are transformed with edge overlap(va,vb) is transformed randomly
22
Flow of Algorithms
Spanning Graph Spanning Tree
Rectilinear Spanning Tree OARSMT
pin-vertexobstacle
Steiner-vertex
corner-vertexturning-vertex
23
OARSMT Construction (1/2)․ Overlapping edge removal
․ Redundant vertex removal A redundant-vertex is a non-pin-vertex with the degree of 2, and
the two edges connecting to it are parallel.
Overlappingedge removal
Redundantvertex removal
c1
t4
c2c1
24
OARSMT Construction (2/2)․ U-shaped pattern refinement
A vertex satisfies the “U-shaped pattern refinement rules” if it is not a pin-vertex, and its degree is 2.
Two cases for the U-shaped pattern refinement:v1
v2
e1
e3
e2
v2 e3
e2
e1
One of the vertices v1 and v2 must satisfy the refinement rule.
v1
v2
e1
e4
e2
e3
e5
e2
e3
e1
e5
e4
Both vertices v1 and v2 must satisfy the refinement rules.
25
Properties of Our OARSMT․ Our OARSMT is an optimal solution for:
Any 2-pin net Any 3-pin net without obstacles Any net whose topology of an optimal solution contains only simple
paths
pin-vertexSteiner-vertex
Two simple paths Three paths with Steiner-vertex
․ They are not guaranteed by any previous work.․ They give the sufficient but not necessary conditions for an
optimal solution. More optimal solutions may still be generated in other cases.
26
Complexity
․ Overall time complexity O(n3) in the worst case O(n2 lgn) for practical applications n: # of pin-vertices and corner-vertices
Spanning GraphConstruction
Spanning TreeConstruction
Rectilinear Spanning TreeConstruction
OARSMTConstruction
Worst Case
O(n2 lgn) O(n3) O(n lgn) O(n2)
Practical Applications (# of edges in spanning graph is O(n).)
O(n lgn) O(n2 lgn) O(n lgn) O(n2)
27
Outline
Conclusions
Introduction
Problem Formulation
Algorithm
Experimental Results
28
Experimental Settings․ The algorithm is compared with
Shi et al., ASP-DAC-06 Feng et al., ISPD-06 Shen et al., ICCD-05
․ 22 benchmark circuits classified into 3 categories 5 industrial test cases from Synopsys (ind1--ind5) 12 test cases used by Feng et al. (rc1--rc12) 5 random test cases generated by us (rt1--rt5) # of pin-vertices ranges from 10 to 1,000 # of obstacles ranges from 10 to 10,000
29
TestCases
# of Pins
# of Obstacles
Total Wirelength Improvement (%)ASP-DAC-
06 ISPD-06 ICCD-05 OursTo ASP-DAC-06
To ISPD-06
ToICCD-06
ind1 10 32 --- --- 646 632 --- --- 2.17ind2 10 43 --- --- 101 96 --- --- 4.95ind3 10 50 --- --- 623 613 --- --- 1.61ind4 25 79 --- --- 1,121 1,121 --- --- 0.00ind5 33 71 --- --- 1,392 1,364 --- --- 2.01rc1 10 10 26,970 30,410 27,730 26,900 0.26 11.54 2.99rc2 30 10 41,700 45,640 42,840 42,210 -1.22 7.52 1.47rc3 50 10 62,380 58,570 56,440 55,750 10.63 4.81 1.22rc4 70 10 66,560 63,340 60,840 60,350 9.33 4.72 0.81rc5 100 10 80,010 83,150 76,970 76,330 4.60 8.20 0.83rc6 100 500 --- 149,750 86,403 83,365 --- 44.33 3.52rc7 200 500 --- 181,470 117,427 113,260 --- 37.59 3.55rc8 200 800 --- 202,741 123,366 118,747 --- 41.43 3.74rc9 200 1,000 --- 214,850 119,744 116,168 --- 45.93 2.99rc10 500 100 --- 198,010 171,450 170,690 --- 13.80 0.44rc11 1,000 100 --- 250,570 238,111 236,615 --- 5.57 0.63rc12 1,000 10,000 --- 1,723,990 843,529 789,288 --- 54.23 6.45rt1 10 500 --- --- 2,438 2,267 --- --- 7.01rt2 50 500 --- --- 6,498 6,055 --- --- 6.82rt3 100 500 --- --- 8,783 8,368 --- --- 4.73rt4 100 1,000 --- --- 10,619 10,316 --- --- 2.95rt5 200 2,000 --- --- 55,557 53,993 --- --- 2.82
Avg. --- --- --- --- --- --- 4.72 23.31 2.89
Experimental Results – Total Wirelength
30
Experimental Results – Effectiveness․ Compared to previous works, our algorithm improves
4.72%, 23.31%, and 2.89%, respectively. Since an optimal solution gives a lower bound, the improvements
are very significant.
0
1
ISPD-06 ICCD-05
Tota
l Wire
leng
th
ASP-DAC-06 Ours
Optimal solutions may be here.
31
TestCases
# of Pins # of Obstacles
CPU TimeASP-DAC-06 ISPD-06 ICCD-05 Ours
ind1 10 32 --- --- <0.01 <0.01ind2 10 43 --- --- <0.01 <0.01ind3 10 50 --- --- <0.01 <0.01ind4 25 79 --- --- <0.01 <0.01ind5 33 71 --- --- <0.01 0.01rc1 10 10 0.49 <0.01 <0.01 <0.01rc2 30 10 1.03 <0.01 <0.01 <0.01rc3 50 10 8.79 <0.01 <0.01 <0.01rc4 70 10 67.62 <0.01 <0.01 <0.01rc5 100 10 595.10 <0.01 0.01 0.01rc6 100 500 --- 0.06 0.17 0.24rc7 200 500 --- 0.06 0.30 0.43rc8 200 800 --- 0.10 0.48 0.83rc9 200 1,000 --- 0.13 0.64 0.91
rc10 500 100 --- 0.03 0.27 0.62rc11 1,000 100 --- 0.04 0.95 3.15rc12 1,000 10,000 --- 2.82 65.73 118.52rt1 10 500 --- --- 0.06 0.06rt2 50 500 --- --- 0.11 0.11rt3 100 500 --- --- 0.16 0.47rt4 100 1,000 --- --- 0.34 0.95rt5 200 2,000 --- --- 1.42 2.06
Experimental Results – CPU Time
32
Experimental Results – Discussions․ Empirical time complexity by the least squares fitting
Our algorithm: O(n1.46) The algorithm in ICCD-05 work: O(n1.40)
․ By the least squares fitting, # of edges in our spanning graph grows only about O(n1.03).
It is far under the theoretical worst-case complexity of O(n2). Our algorithm is very suitable to practical applications.
-2.5
-1.5
-0.5
0.5
1.5
2.5
1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
log n
log
( CP
U T
ime
)
1.0
2.0
3.0
4.0
5.0
6.0
1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
log n
log
( # o
f edg
es )
33
Experimental Results – Routing Result of rt3
34
Outline
Conclusions
Introduction
Problem Formulation
Algorithm
Experimental Results
35
Conclusions․ An algorithm has been proposed to construct an obstacle-
avoiding rectilinear Steiner tree (OARSMT).
․ It can achieve an optimal solution for any 2-pin net and nets with more pins in many cases.
․ Experimental results have shown that it is very effective and efficient.
․ With the completeness of our spanning graph, it provides key insights into the search for more desirable OARSMT solutions.
36
Thank You!