25
1 FOARS: FLUTE Based Obstacle- Avoiding Rectilinear Steiner Tree Construction Gaurav Ajwani and Chris Chu Iowa State University Wai-Kei Mak National Tsing Hua University

FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

1

FOARS: FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree

Construction

Gaurav Ajwani and Chris ChuIowa State University

Wai-Kei MakNational Tsing Hua University

Page 2: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

2

OARSMT Problem Formulation

Obstacle-avoiding rectilinear Steiner minimal tree Input

A set of pins A set of rectilinear obstacles

Output A rectilinear Steiner tree

Minimizing total wirelength Connecting all pins Avoiding all obstacles

Applications in routing, wirelength estimation, etc. NP-complete More than ten heuristics proposed since 2005

Page 3: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

3

Our Contributions

An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient Scalable: O(n log n) time

where n = # pins + # obstacle corners

New Ideas: Approach to leverage FLUTE for OARSMT construction An efficient obstacle-aware partitioning technique Algorithm to construct obstacle-avoiding spanning graph

with good properties

Page 4: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

4

If There Is No Obstacle

Rectilinear Steiner Minimal Tree (RSMT) problem

FLUTE -- Fast LookUp Table Estimation [TCAD 08] Extremely fast and accurate

More accurate than BI1S heuristic Almost as fast as minimum spanning tree

construction

Can we leverage FLUTE for OARSMT construction?

Page 5: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

5

Obstacle-Aware FLUTE (OA-FLUTE)

// P = set of pins, OB = set of obstaclesFunction OA-FLUTE(P, OB)

T = FLUTE(P) // ignore obstaclesIf (T overlaps with obstacle)

Partition into several sub-problems P1,…,PtT = OA-FLUTE(P1, OB) + ... + OA-FLUTE(Pt, OB)

Return T

Two possible types of overlap:1. An edge is completely blocked by an obstacle

2. A Steiner node is on top of an obstacle

Page 6: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

6

Type 1: Edge over Obstacle

Partition pins according to the overlapping edge Include obstacle corners

Apply OA-FLUTE recursively on sub-problems to obtain sub-trees

Merge sub-trees and exclude corners

a b a b

Page 7: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

7

Type 2: Steiner Node over Obstacle

a b a b

Partition pins according to the overlapping Steiner node Include obstacle corners

Apply OA-FLUTE recursively on sub-problems to obtain sub-trees

Merge sub-trees and exclude corners

Page 8: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

8

Problems with OA-FLUTE

Does not work well if:1. Routing region is too cluttered by obstacles

Reason: Partitioning based on initial tree which ignores obstacles

2. There are too many pinsReason: Performance of FLUTE starts to deteriorate

for more than a hundred pins

Need a better way to partition the pins Then OA-FLUTE can be called to handle each sub-

problem

Page 9: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

9

FOARS Overview

1. Partitioning Pins Obstacle-Avoiding Spanning Graph (OASG) Minimum Terminal Spanning Tree (MTST) Obstacle Penalized Minimum Spanning Tree (OPMST) Partition according to OPMST to obtain sub-problems

2. Fixing tree topology and Steiner node locations Applying OA-FLUTE to Sub-problems

3.Routing edges between Steiner nodes / pins Rectilinearize edges to create OARSMT V-shape refinement

Page 10: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

10

Connection Graphs

To capture the proximity information amongst pins and obstacle corners

Previous connection graphs: Escape Graph (Ganley et al. [ISCAS 94])

O(n2) edges

Delaunay Triangulation O(n2) edges

Obstacle-Avoiding Spanning Graph (OASG) Extension of spanning graph (Zhou et al. [ASPDAC 01]) O(n) edges

Page 11: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

11

Problem with Previous OASG

Previous OASG Approaches: Shen et al. [ICCD 05] Lin et al. [ISPD 07]

Adding “essential edges” O(n2) edges

Long et al. [ISPD 08] All considered quadrant partition

May not contain RMST even in the absence of obstacle

R4 of C1,4

R4 of C1,3

R3 of C1,4

R4 of C1,1

R1 of C1,4

R3 of C1,3

R1 of C1,1

R2 of C1,1

R1 of C1,2

R2 of C1,2 R3 of C1,2 R2 of C1,3

C1,2

C1,1 C1,4

C1,3

R3R2

R4R1

Page 12: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

12

Our OASG Approach

Generalization of Zhou’s Approach If no obstacle, same as Zhou’s original algorithm,

i.e., presence of RMST guaranteed Octant partition

O(n) edges

R1R2

R3R4R5

R6

R7

R8

R3R4R5

R6

R1R2

R3R4R5

R6

R7

R8

Page 13: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

13

OASG Example

Page 14: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

14

Minimum Terminal Spanning Tree (MTST)

Use the technique proposed by Wu et al. [ACTA INFORMATICA 86]

Presenter
Presentation Notes
MTST
Page 15: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

15

Obstacle Penalized Minimum Spanning Tree

MTST OPMST

Edge weight = Wirelength considering detour

Presenter
Presentation Notes
OPMST
Page 16: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

16

Partitioning Pins

OPMST

Partition:1. If an edge is completely blocked by an obstacle2. If # pins in sub-tree > 20

Apply OA-FLUTE to each sub-problem

Page 17: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

17

Wirelength 25980

Tree After OA-FLUTE

Page 18: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

18

Four possible cases for any slanted edge 1.Both L-shape paths are obstacle free2.Both L-shape paths are blocked by one obstacle3.One L-shape path is blocked and other is free4.Both L-shape path are blocked but by different obstacles

Rectilinearization of Slanted Edges

Page 19: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

19

Replace any two adjacent edges with a Steiner tree Improve wirelength by 1-2%

V-Shape Refinement

Page 20: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

20

Wirelength 25290

After Rectilinearization & Refinement

Presenter
Presentation Notes
OARSMT
Page 21: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

21

Algorithm implemented in C Comparison with latest binaries from:

Lin et al. [ISPD 07] Long et al. [ISPD 08] Li et al. [ICCAD 08]

All experiments were performed on a 3GHz AMD Athlon 64 X2 Dual Core Machine (use only 1 core)

Four sets of benchmarks, 27 benchmark circuits RC01-RC12: randomly generated by Feng et al. [ISPD 06] RT01-RT05: randomly generated by Lin et al. [ISPD 07] IND1-IND5: Synopsys industrial testcases from Synopsys in Lin

et al. [ISPD 07] RL01-RL05: larger testcases randomly generated by Long et

al. [ISPD 08]

Experimental Results

Page 22: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

22

Lin et al. ISPD 07

Long et al. ISPD 08

Li et al. ICCAD 08 FOARS

Normalized Wirelength 1.023 1.027 0.995 1

Normalized Runtime 78.45 1.20 29.36 1

Wirelength and Runtime Comparison

Page 23: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

23

OARSMT for RT1010 Pins, 500 Obstacles

Page 24: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

24

Obstacle-Free Testcase

FLUTE-2.5 Wirelength: 53400FOARS Wirelength: 53050

RC03 without obstacles, 50 Pins

Page 25: FOARS: FLUTE based Obstacle Avoiding Rectilinear Steiner ... · An OARSMT algorithm called FOARS (FLUTE Based Obstacle-Avoiding Rectilinear Steiner Tree) Outstanding wirelength Efficient

25

THANK YOU