FOARS: FLUTE Based Obstacle- Avoiding Rectilinear Steiner Tree - - PowerPoint PPT Presentation

foars flute based obstacle avoiding rectilinear steiner
SMART_READER_LITE
LIVE PREVIEW

FOARS: FLUTE Based Obstacle- Avoiding Rectilinear Steiner Tree - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

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

slide-2
SLIDE 2

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

slide-3
SLIDE 3

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

slide-4
SLIDE 4

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?

slide-5
SLIDE 5

5

Obstacle-Aware FLUTE (OA-FLUTE)

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

T = FLUTE(P) // ignore obstacles If (T overlaps with obstacle) Partition into several sub-problems P1,…,Pt T = 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

slide-6
SLIDE 6

6

Type 1: Edge over Obstacle

 Partition pins according to the overlapping edge

 Include obstacle corners

 Apply OA-FLUTE recursively on sub-problems to

  • btain sub-trees

 Merge sub-trees and exclude corners

a b a b

slide-7
SLIDE 7

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

  • btain sub-trees

 Merge sub-trees and exclude corners

slide-8
SLIDE 8

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 pins

Reason: 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

slide-9
SLIDE 9

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

slide-10
SLIDE 10

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

slide-11
SLIDE 11

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 R3 R2 R4 R1

slide-12
SLIDE 12

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

R1 R2 R3 R4 R5 R6 R7 R8 R3 R4 R5 R6 R1 R2 R3 R4 R5 R6 R7 R8

slide-13
SLIDE 13

13

OASG Example

slide-14
SLIDE 14

14

Minimum Terminal Spanning Tree (MTST)

 Use the technique proposed by Wu et al. [ACTA

INFORMATICA 86]

slide-15
SLIDE 15

15

Obstacle Penalized Minimum Spanning Tree MTST OPMST

Edge weight = Wirelength considering detour

slide-16
SLIDE 16

16

Partitioning Pins

OPMST

Partition:

  • 1. If an edge is completely blocked by an obstacle
  • 2. If # pins in sub-tree > 20

Apply OA-FLUTE to each sub-problem

slide-17
SLIDE 17

17

Wirelength 25980

Tree After OA-FLUTE

slide-18
SLIDE 18

18

 Four possible cases for any slanted edge

1.Both L-shape paths are obstacle free 2.Both L-shape paths are blocked by one obstacle 3.One L-shape path is blocked and other is free 4.Both L-shape path are blocked but by different obstacles

Rectilinearization of Slanted Edges

slide-19
SLIDE 19

19

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

V-Shape Refinement

slide-20
SLIDE 20

20

Wirelength 25290

After Rectilinearization & Refinement

slide-21
SLIDE 21

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

slide-22
SLIDE 22

22

Lin et al. I SPD 07 Long et al. I SPD 08 Li et al. I CCAD 08 FOARS Normalized Wirelength 1.023 1.027 0.995 1 Normalized Runtime 78.45 1.20 29.36 1

Wirelength and Runtime Comparison

slide-23
SLIDE 23

23

OARSMT for RT10

10 Pins, 500 Obstacles

slide-24
SLIDE 24

24

Obstacle-Free Testcase

FLUTE-2.5 Wirelength: 53400 FOARS Wirelength: 53050

RC03 without obstacles, 50 Pins

slide-25
SLIDE 25

25

THANK YOU