36
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

Efficient Obstacle-Avoiding Rectilinear Steiner Tree Construction

  • Upload
    jetta

  • View
    46

  • Download
    1

Embed Size (px)

DESCRIPTION

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. Introduction. Problem Formulation. Algorithm. Experimental Results. Conclusions. Outline. Introduction. - PowerPoint PPT Presentation

Citation preview

Page 1: 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

Page 2: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

2

Outline

Conclusions

Introduction

Problem Formulation

Algorithm

Experimental Results

Page 3: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

3

Outline

Conclusions

Introduction

Problem Formulation

Algorithm

Experimental Results

Page 4: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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

Page 5: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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

Page 6: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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

Page 7: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

7

Outline

Conclusions

Introduction

Problem Formulation

Algorithm

Experimental Results

Page 8: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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

Page 9: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

9

An OARSMT Example

Larger wirelength

Smaller wirelength

pin-vertexobstacle

Page 10: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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

Page 11: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

11

Flow of Algorithms

pin-vertexobstacle

Steiner-vertex

corner-vertexturning-vertex

Spanning Graph

OARSMT

Spanning Tree

Rectilinear Spanning Tree

Page 12: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

12

Flow of Algorithms

Spanning Graph Spanning Tree

Rectilinear Spanning Tree OARSMT

pin-vertexobstacle

Steiner-vertex

corner-vertexturning-vertex

Page 13: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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

Page 14: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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

Page 15: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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

Page 16: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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

Page 17: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

17

Flow of Algorithms

Spanning Graph Spanning Tree

Rectilinear Spanning Tree OARSMT

pin-vertexobstacle

Steiner-vertex

corner-vertexturning-vertex

Page 18: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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

Page 19: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

19

Flow of Algorithms

Spanning Graph Spanning Tree

Rectilinear Spanning Tree OARSMT

pin-vertexobstacle

Steiner-vertex

corner-vertexturning-vertex

Page 20: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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.

Page 21: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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

Page 22: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

22

Flow of Algorithms

Spanning Graph Spanning Tree

Rectilinear Spanning Tree OARSMT

pin-vertexobstacle

Steiner-vertex

corner-vertexturning-vertex

Page 23: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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

Page 24: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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.

Page 25: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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.

Page 26: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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)

Page 27: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

27

Outline

Conclusions

Introduction

Problem Formulation

Algorithm

Experimental Results

Page 28: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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

Page 29: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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

Page 30: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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.

Page 31: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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

Page 32: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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 )

Page 33: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

33

Experimental Results – Routing Result of rt3

Page 34: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

34

Outline

Conclusions

Introduction

Problem Formulation

Algorithm

Experimental Results

Page 35: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

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.

Page 36: Efficient Obstacle-Avoiding Rectilinear  Steiner Tree Construction

36

Thank You!