Efficient Obstacle-Avoiding Rectilinear Steiner Tree

Download Report

Transcript Efficient Obstacle-Avoiding Rectilinear Steiner Tree

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
1
Outline
Introduction
Problem Formulation
Algorithm
Experimental Results
Conclusions
2
Outline
Introduction
Problem Formulation
Algorithm
Experimental Results
Conclusions
3
Introduction to OARSMT Problem
․Given a set of pins and a set of obstacles, an obstacleavoiding 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
IP block
Prerouted nets
4
Construction-by-Correction Approach
․Construct an initial tree without considering obstacles
․Correct edges overlapping obstacles
Construction
Correction
․Lack a global view of obstacles
․Have a limited solution quality
․Feng et al., ISPD-06

Construct OARSMT in the λ-geometry plane
5
Connection-Graph Based Approach
․Construct a connection graph in which there is a desired
OARSMT
․Apply searching techniques to find the desired OARSMT
Spanning graph
Spanning tree
OARSMT
․Prune many redundant edges to reduce problem size
․Obtain much better solution quality
․Shen et al., ICCD-05

Achieve good results but can be further improved
6
Outline
Introduction
Problem Formulation
Algorithm
Experimental Results
Conclusions
7
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
8
An OARSMT Example
Smaller wirelength
pin-vertex
obstacle
Larger wirelength
9
Outline
Introduction
Obstacle-Avoiding
Spanning Graph
Construction
Problem Formulation
Obstacle-Avoiding
Spanning Tree
Construction
Algorithm
Obstacle-Avoiding
Rectilinear Spanning Tree
Construction
Experimental Results
OARSMT Construction
Conclusions
10
Flow of Algorithms
Spanning Graph
Spanning Tree
Rectilinear Spanning Tree
OARSMT
pin-vertex
obstacle
corner-vertex
turning-vertex
Steiner-vertex
11
Flow of Algorithms
Spanning Graph
Spanning Tree
Rectilinear Spanning Tree
OARSMT
pin-vertex
obstacle
corner-vertex
turning-vertex
Steiner-vertex
12
Spanning Graph Construction
․The plane is divided into four regions for each vertex.
R2
R3
pin-vertex
ci,2
R1 of ci,2
obstacle
R1
corner-vertex
R3 of ci,2
R2 of ci,2
ci,1
ci,3
oi
ci,4
R4
․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.
p1
c1,1
c1,3 p2
o1
o2 c2,3
c1,4
o3
c3,1
p1
c1,1
c4,2
o4
c1,3 p2
o1
o2 c2,3
c1,4
o3
c3,1
c4,2
o4
Spanning graph for R2 of c4,2
13
Properties of Our Spanning Graph (1/2)
․Our spanning graph guarantees a shortest path of any two
vertices.
p1
pin-vertex
obstacle
corner-vertex
p1
p2
p2
p1
p1
waste
p2
OARSMT
p2
OARSMT
waste
․Spanning graph of Shen et al. (ICCD-05) does not
guarantee it.
14
Properties of Our Spanning Graph (2/2)
p2
p1
p3
…
pr
p2
p1
pr+1
p3
…
pr
pr+1
4
2
p1
2
2 2
Our spanning graph
p2
p3
…
pr
4r
OARSMT total wirelength = 4r
4
2 2 2
2
Spanning graph of Shen et al.
p1
pr+1
2
p2
2
p3
2
…
pr
pr+1
2
2
4r
OARSMT total wirelength = 6r+2
pin-vertex
obstacle
corner-vertex
15
Spanning Graph Construction – Example
․Apply a sweeping line algorithm for each region
․Use blocking information to check a vertex is blocked or
not
p1
c1,1
c1,3 p2
o1
o2 c2,3
c2,1 c2,4
c1,4
o3
c3,1
c4,2
o4
Candidate
set
Blocking
information
c1,1
c2,3
c1,4
p2
c3,1
o1
o2
o3
Spanning graph for R2 of c4,2
16
Flow of Algorithms
Spanning Graph
Spanning Tree
Rectilinear Spanning Tree
OARSMT
pin-vertex
obstacle
corner-vertex
turning-vertex
Steiner-vertex
17
Spanning Tree Construction
Spanning
graph
Pin-vertices shortest
path computation
G1
8 10
6
Minimum spanning tree
(MST) construction
T1
10
4
10
pin-vertex
obstacle
corner-vertex
T2
Edges mapping
G2
Edges insertion
T3
MST construction
18
Flow of Algorithms
Spanning Graph
Spanning Tree
Rectilinear Spanning Tree
OARSMT
pin-vertex
obstacle
corner-vertex
turning-vertex
Steiner-vertex
19
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’:
1. They are in opposite regions.
e
e
e is transformed randomly
2. They are in neighboring regions.
e
e
e and e’ are transformed with edge overlap
3. They are in the same region.
vb
e
e and e’ are transformed with edge overlap
va
(va,vb) is transformed randomly
e
20
Rectilinear Spanning Tree Construction – Example
p1
c1 c2
p2
p1
p3
p4
p5
c1 c2
p1
t3 t
4
p3
p2
c1
p2
p3
t2
t1 p5
p4
pin-vertex
corner-vertex
c1 c2 t5
p3
turning-vertex
1. They are in opposite regions.
e
e
e is transformed randomly
2. They are in neighboring regions.
e
e
e and e’ are transformed with edge overlap
3. They are in the same region.
vb
e
e and e’ are transformed with edge overlap
va
(va,vb) is transformed randomly
e
21
Flow of Algorithms
Spanning Graph
Spanning Tree
pin-vertex
obstacle
corner-vertex
turning-vertex
Steiner-vertex
Rectilinear Spanning Tree
OARSMT
22
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.
c1
c1 c2
t4
Overlapping
edge removal
Redundant
vertex removal
23
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
e1
e1
One of the vertices v1 and v2
e2
e2
must satisfy the refinement rule.
v2
v1
e5
e3
e3
e1
e1
e2
e5
e3
v2
v2
e4
e2
Both vertices v1 and v2 must
satisfy the refinement rules.
e3
e4
24
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-vertex
Steiner-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.
25
Complexity
Spanning Graph
Construction
Spanning Tree
Construction
Rectilinear
Spanning Tree
Construction
OARSMT
Construction
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)
․Overall time complexity



O(n3) in the worst case
O(n2 lgn) for practical applications
n: # of pin-vertices and corner-vertices
26
Outline
Introduction
Problem Formulation
Algorithm
Experimental Results
Conclusions
27
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
28
Experimental Results – Total Wirelength
Total Wirelength
Test
Cases
ind1
ind2
ind3
ind4
ind5
rc1
rc2
rc3
rc4
rc5
rc6
rc7
rc8
rc9
rc10
rc11
rc12
rt1
rt2
rt3
rt4
rt5
Avg.
# of
Pins
10
10
10
25
33
10
30
50
70
100
100
200
200
200
500
1,000
1,000
10
50
100
100
200
---
ASP-DAC# of
06
Obstacles
32
--43
--50
--79
--71
--10
26,970
10
41,700
10
62,380
10
66,560
10
80,010
500
--500
--800
--1,000
--100
--100
--10,000
--500
--500
--500
--1,000
--2,000
-------
ISPD-06
----------30,410
45,640
58,570
63,340
83,150
149,750
181,470
202,741
214,850
198,010
250,570
1,723,990
-------------
ICCD-05
646
101
623
1,121
1,392
27,730
42,840
56,440
60,840
76,970
86,403
117,427
123,366
119,744
171,450
238,111
843,529
2,438
6,498
8,783
10,619
55,557
---
Ours
632
96
613
1,121
1,364
26,900
42,210
55,750
60,350
76,330
83,365
113,260
118,747
116,168
170,690
236,615
789,288
2,267
6,055
8,368
10,316
53,993
---
Improvement (%)
To ASPTo
To
DAC-06
ISPD-06
ICCD-06
----2.17
----4.95
----1.61
----0.00
----2.01
0.26
11.54
2.99
-1.22
7.52
1.47
10.63
4.81
1.22
9.33
4.72
0.81
4.60
8.20
0.83
--44.33
3.52
--37.59
3.55
--41.43
3.74
--45.93
2.99
--13.80
0.44
--5.57
0.63
--54.23
6.45
----7.01
----6.82
----4.73
----2.95
----2.82
4.72
23.31
2.89
29
Experimental Results – Effectiveness
․Compared to previous works, our algorithm improves
4.72%, 23.31%, and 2.89%, respectively.
Total Wirelength

Since an optimal solution gives a lower bound, the improvements
are very significant.
1
Optimal solutions may be here.
0
ASP-DAC-06 ISPD-06
ICCD-05
Ours
30
Experimental Results – CPU Time
Test
Cases
# of
Pins
# of Obstacles
ind1
ind2
ind3
ind4
ind5
rc1
rc2
rc3
rc4
rc5
rc6
rc7
rc8
rc9
rc10
rc11
rc12
rt1
rt2
rt3
rt4
rt5
10
10
10
25
33
10
30
50
70
100
100
200
200
200
500
1,000
1,000
10
50
100
100
200
32
43
50
79
71
10
10
10
10
10
500
500
800
1,000
100
100
10,000
500
500
500
1,000
2,000
ASP-DAC-06
----------0.49
1.03
8.79
67.62
595.10
-------------------------
CPU Time
ISPD-06
ICCD-05
--<0.01
--<0.01
--<0.01
--<0.01
--<0.01
<0.01
<0.01
<0.01
<0.01
<0.01
<0.01
<0.01
<0.01
<0.01
0.01
0.06
0.17
0.06
0.30
0.10
0.48
0.13
0.64
0.03
0.27
0.04
0.95
2.82
65.73
--0.06
--0.11
--0.16
--0.34
--1.42
Ours
<0.01
<0.01
<0.01
<0.01
0.01
<0.01
<0.01
<0.01
<0.01
0.01
0.24
0.43
0.83
0.91
0.62
3.15
118.52
0.06
0.11
0.47
0.95
2.06
31
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).
1.5
2.0
2.5
3.0
log n
3.5
4.0
4.5
5.0
6.0
5.0
4.0
3.0
2.0
1.0
2.5
1.5
0.5
-2.5 -1.5 -0.5
log ( CPU Time )

It is far under the theoretical worst-case complexity of O(n2).
Our algorithm is very suitable to practical applications.
log ( # of edges )

1.5
2.0
2.5
3.0
3.5
4.0
4.5
5.0
log n
32
Experimental Results – Routing Result of rt3
33
Outline
Introduction
Problem Formulation
Algorithm
Experimental Results
Conclusions
34
Conclusions
․An algorithm has been proposed to construct an obstacleavoiding 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.
35
Thank You!
36