Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf•...

51
1 Multi Multi- layer General Area layer General Area Gridless Gridless Detailed Routing Detailed Routing Jason Cong, Jie Fang, and Kei-Yong Khoo Computer Science Department University of California, Los Angeles Challenges in High Challenges in High- performance performance Chip Design Chip Design Smaller feature size and higher Intergration [NTRS’97] DSM effects Variable wire sizes for delay Variable wire spacing for noise & delay Larger designs New design methodologies

Transcript of Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf•...

Page 1: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

1

MultiMulti--layer General Area layer General Area GridlessGridlessDetailed RoutingDetailed Routing

Jason Cong, Jie Fang, and Kei-Yong KhooComputer Science Department

University of California,Los Angeles

Challenges in HighChallenges in High--performance performance Chip DesignChip Design

• Smaller feature size and higher Intergration[NTRS’97]– DSM effects

• Variable wire sizes for delay• Variable wire spacing for noise & delay

– Larger designs• New design methodologies

Page 2: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

2

Traditional Routing FlowTraditional Routing Flow

Congestion-DrivenGlobal Routing

Detailed Routing &Ripup Re-routing

Floorplan/Partition Result

Final Layout

New Routing FlowNew Routing Flow

Performance-DrivenGlobal Routing

Congestion-DrivenWire Planning

Gridless Detailed RoutingRipup & Re-routing

Floorplan/Partition Result

Final Layout

Planning & Re-planning

Gridless DetailedRouting System

Page 3: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

3

Overview of Overview of Gridless Gridless Detailed Detailed Routing ProblemRouting Problem

• General design flow and problem formulations [ISPD’2000]

• Efficient routing graph construction and representation [ICCAD’99]

• Maze searching algorithm [ISPD’99, TCAD’00]• Wire planning, Ripup and re-planning

[ISPD’2000]• Summery and future works

Overview of Overview of GridlessGridless Detailed Detailed Routing ProblemRouting Problem

• General design flow and problem formulations

• Efficient routing graph construction and representation

• Maze searching algorithm• Wire planning, Ripup and re-planning• Summery and future works

Page 4: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

4

Physical Design FlowPhysical Design Flow

Structural Representation Logic Partition

Floorplanning & PlacementRouting

Routing Design FlowRouting Design Flow

•Global Routing

•Pin Assignment

•Detailed Routing

Page 5: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

5

Overview of Overview of GridlessGridless Detailed Detailed Routing ProblemRouting Problem

• General design flow and problem formulations

• Efficient routing graph construction and representation

• Maze searching algorithm• Wire planning, Ripup and re-planning• Summery and future works

Motivations & Challenges in Motivations & Challenges in Routing Graph ConstructionRouting Graph Construction

• Motivations in routing graph construction– Graph determines possible routes– Graph determines potential searching space– Graph representation determines searching

speed• Challenges in high performance design

– Gridless routing requirements– Large amount of objects

Page 6: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

6

Existing Routing Graph:Existing Routing Graph:TileTile--based Approachbased Approach

•Tile Partition

•Corner-StitchingData Structure

•A Tile-to-TileSearching

s

t

T1

T2 T4

T3

T7

T5

T6

Difficulties of TileDifficulties of Tile--based Approachbased Approach

•Point Finding

•Neighbor Finding

Page 7: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

7

Existing Routing Graph:Existing Routing Graph:Uniform Grid ApproachUniform Grid Approach

•Uniform Grids

•Large Searching Space

•Explicit or ImplicitRepresentations

•Huge Memory forExplicit Representation!

Existing Routing Graph:Existing Routing Graph:General GraphGeneral Graph

•Computed Based onBoundary Extensions

•Sparser than Uniform-Grids

•Difficult for ImplicitRepresentations

Page 8: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

8

Features of Our ApproachFeatures of Our Approach[ICCAD’99][ICCAD’99]

• Use non-uniform grid graph– Smaller comparing with uniform grid approach

• Use implicit representation – Further saves memory

• Efficient query data structure– Fast in answering rectangle intersection queries– Exploring localities in routing queries

Obstacle Expansion for Obstacle Expansion for Gridless Gridless RoutingRouting• Expansion of obstacles according to width

rule and spacing ruleWw=4 Sw=2Ew=Ww/2+Sw

Page 9: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

9

Obstacle Expansion forObstacle Expansion for GridlessGridless RoutingRouting• Expansion of obstacles according to width

rule and spacing ruleWw=4 Sw=2Ew=Ww/2+Sw

Obstacle Expansion forObstacle Expansion for GridlessGridless RoutingRouting-- The Via RulesThe Via Rules

• Expansion of obstacles according to width rule and spacing rule

Ww=4 Sw=2Ew=Ww/2+SwWv=6 Sv=2Ev=Wv/2+Sv

Page 10: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

10

Obstacle Expansion forObstacle Expansion for GridlessGridless Routing Routing --MultiMulti--layer Routinglayer Routing

• Expansion of obstacles according to width rule and spacing rule

Ww=4 Sw=2Ew=Ww/2+Sw

Ww=6 Sw=2

S

T

NonNon--uniform Grid Graph Guniform Grid Graph GSS• Given a set of obstacles and a source s and sink t• GS is an orthogonal grid graph

Page 11: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

11

Strong Connection Graph GStrong Connection Graph GSS

• Definition:– A graph contains at least on of shortest path

from source (s) to sink (t) if such paths exist• Theorem:

– The expansion graph Gs constructed by our algorithm is a strong connection graph

• Proof is based on a multi-layer extension of [zheng96]

S

T

Implicit Representation of GImplicit Representation of GSS

y1y2

y3

y4

y5

y6

y7

y8

x1 x3 x4x2 x5 x6 x7 x8 x9 x10

• Store x, y locations in arrays• Space Pre-construction)(NO )log( NNO

Page 12: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

12

S

T

Searching on GSearching on GSS

y1y2

y3

y4

y5

y6

y7

y8

x1 x3 x4x2 x5 x6 x7 x8 x9 x10

• Determine the location of neighboring node: easy

Free?

• Determine if the iocation is valid: difficult

Point Enclosure QueryPoint Enclosure Query• Given a set of rectangles and a query point q• Query: if the query point is contained by any of the

given rectangles

a

b

dc

q

Page 13: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

13

SegmentSegment--based Querybased Query

• Merge expanded rectangles into non-overlapping polygons– Line-sweeping algorithm [NP82]

• Represent the polygons using the boundary segments

• Determine the point enclosure query using a ceiling query

SegmentSegment--based Query:based Query:ExpansionExpansion

Expansion

Page 14: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

14

SegmentSegment--based Query:based Query:LineLine--sweepingsweeping

SegmentSegment--based Query:based Query:Ceiling QueryCeiling Query

pq

Page 15: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

15

SegmentSegment--based Querybased QueryAlgorithmsAlgorithms

• Range tree• Segment tree• Interval tree• Priority tree

Segment Query ProblemSegment Query Problem

Y1

Y2

Y3

Y4

Y5

Y6

Y7

Y8

X1 X2 X3 X4 X5

qS1 S2

S3

S4S5 S6

S8

S10S9

S7

Page 16: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

16

Range Tree [Ben79, BM80]Range Tree [Ben79, BM80]

• Two-level binary search tree structure– First-level is built on y coordinates– Second-level is a sorted list of segments using

their x coordinates• Complexity

– O(n) space;– O(n) query;– O(nlogn) build up and O(logn) insert & delete.

Range Tree ExampleRange Tree Example

S2

S1

S4

S5

S8

S7

S9

S10

S3

S6

Y1

Y2

Y3Y4

Y5

Y6

Y7

Y8

X1 X2 X3 X4 X5

qS1 S2 S3

S4S5 S6

S8

S10S9

S7

Page 17: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

17

Segment Tree [Ben77]Segment Tree [Ben77]• Two-level tree structure

– First-level uses x coordinates as leaves– Segments are stored in the highest tree nodes that is

fully covered by the segment– Second-level tree use sorted segments based on y

coordinate

• Complexity– O(nlogn) space– O(log2n) query– O(nlogn) build up and O(log2n) insert & delete

Segment Tree ExampleSegment Tree ExampleX1 X2 X3 X4 X5

S1 S4

S7 S9

S3 S6

S2 S5

S10S8S7 S9

S3 S6

S3 S6

Y1

Y2

Y3Y4

Y5

Y6

Y7

Y8

X1 X2 X3 X4 X5

qS1 S2 S3

S4S5 S6

S8

S10S9

S7

Page 18: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

18

Interval Tree [Ede83]Interval Tree [Ede83]

• Improvement over segment tree– Each edge is stored once in the lowest tree level that

contains it– Each node stores two sorted lists of left/right end-points

of segment

• Complexity– O(n) space– O(logn + k) query (where k is the # intervals cover p)– O(nlogn) build up and O(logn) insert & delete

Interval Tree ExampleInterval Tree ExampleX1 X2 X3 X4 X5

S1 S4

S3 S6

S2 S5

S10S8

S7 S9

Y1

Y2

Y3Y4

Y5

Y6

Y7

Y8

X1 X2 X3 X4 X5

qS1 S2 S3

S4S5 S6

S8

S10S9

S7

Page 19: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

19

Priority Tree [McC85]Priority Tree [McC85]

• Answers range query– Given a set of 2-D points <xi, yi>, returning the points that

falls into the range (-∞∞∞∞, xq], [yq, + ∞∞∞∞)– We can map the ceiling query into a range query by

considering the x coordinates

• Complexity– O(n) space– O(logn+k) query– O(nlogn) build up and O(logn) insert & delete

(xq, xq)

Range QueryRange Query

X1 X2 X3 X4 X5

(x1, x2)(x1, x3)

(x3, x4)

(x4, x5)

Y1

Y2

Y3

Y4

Y5

Y6

Y7

Y8

X1 X2 X3 X4 X5

qS1 S2

S3

S4S5 S6

S8

S10S9

S7

Page 20: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

20

Priority Tree ExamplePriority Tree Example

(x4, x5)

(x3, x4)(x1, x3)

(x1, x2)S1 S4

S7 S9S2 S5

S10S8

S3 S6

Summary of SegmentSummary of Segment--based based QueriesQueries

Algorithm Initialize Insert Delete Query Memory

Range Tree O(nlogn) O(logn) O(logn) O(n) O(n)

Segment Tree O(nlogn) O(log2n) O(log2n) O(log2n) O(nlogn)

Interval Tree O(nlogn) O(logn) O(logn) O(logn+k) O(n)

Priority Tree O(nlogn) O(logn) O(logn) O(logn+k) O(n)

Page 21: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

21

RectangleRectangle--based Querybased Query• Given a set of rectangles and a query point q• Query: if the query point is contained by any of the

given rectangles

a

b

dc

q

RectangleRectangle--based Query based Query AlgorithmsAlgorithms

• K-D tree• Quad-list quad tree• Multiple storage quad tree• HV/VH tree• 1-D and 2-D indexing

Page 22: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

22

KK--D Tree [Ben75]D Tree [Ben75]

• Binary tree is a binary tree that uses k-keys iteratively

• Complexity– O(n) space– O(logn) query– O(nlogn) build up and O(logn) insert & delete

KK--D Tree ExampleD Tree Example

c

a b

d

Use XR

Use YB

Use XL

Page 23: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

23

QuadQuad--list Quad Tree [Ked82]list Quad Tree [Ked82]

• Routing region is equally divided into four sub-regions

• Rectangles that intersect with the cut-lines are store in the quad-list implemented as a binary tree

• Rectangles that fall within the sub-regions are stored in the sub-trees

QuadQuad--list Quad Tree Examplelist Quad Tree Example

a

b

dc

q

b c

da

Page 24: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

24

Multiple Storage Quad TreeMultiple Storage Quad Tree[Bro86, WP89][Bro86, WP89]

• Do not store rectangles on cut-lines• Store multiple copies of rectangle at the

leave nodes

Multiple Storage Quad Tree Multiple Storage Quad Tree ExampleExample

a

b

dc

qdac

c b

b

Page 25: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

25

HV/VH Tree [LFW93]HV/VH Tree [LFW93]

• Contains two types of nodes: V-node and H-node

• Each node represents a vertical or horizontal cut-line

• H-nodes and V-nodes are interleaving in the overall tree structure

HV/VH Tree ExamplesHV/VH Tree Examples

a

b

dc

q

b

a

H-node

d

cV-nodes

Leaf nodes

Page 26: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

26

11--D and 2D and 2--D IndexingD Indexing

• Practical data structures• Taking advantages of VLSI designs• Simple to build up• Using 1-D or 2-D indexing to speedup

practical query operation

11--D Indexing ExampleD Indexing Example

a

b

dc

qb

c

a

a b

d

c d

Page 27: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

27

22--D Indexing ExampleD Indexing Example

a

b

dc

q

a

a

c

c

a

b, c, d

c, d

Our 2Our 2--D Query Data StructureD Query Data Structure• Drawbacks of existing 1/2-D indexing structure

– Inefficient in search many small objects in a slice– Need multiple expansion of all obstacles for routing

wires of different width and/or spacing– Do not explore the locality of maze queries

• Our data structure– 2-D query data structure– Do not pre-expand obstacles– Effective cache structure

Page 28: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

28

Our 2Our 2--D Query Data StructureD Query Data Structure

a

b

dc

q

Data Structure

Is q in free space

Query

c b,d

CachingCaching

a

b

dc

q

Cache is an array that storesprevious query results

Caching Obstacles

Caching Empty Area

Page 29: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

29

Summary of RectangleSummary of Rectangle--based based QueriesQueries

Algorithm Initialize Insert Delete Query Memeory K-D Tree O(nlogn) O(logn) O(logn) O(logn) O(n)

BQT O(n2) O(n) O(n) O(n) O(n) MSQT O(n2) O(n) O(n) O(n) O(n2)

HV/VH Tree O(n2) O(n) O(n) O(n) O(n) 1/2-D Indexing

O(n) O(1) O(1) O(n) O(n)

Slit+Interval O(n) O(logn) O(logn) O(n) O(n)

Run Time of SegmentRun Time of Segment--based based Query AlgorithmsQuery Algorithms

Range Tree Segment Tree Interval TreeDeutsch 1209 1186 1178 Bus100 1085 1096 1032 Tile0 4893 6559 4927 Tile1 3531 4528 3442 Tile2 5202 6971 5153 Tile3 5311 6727 5115 Tile4 3461 4154 3338

Page 30: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

30

Run Time of RectangleRun Time of Rectangle--based based Query AlgorithmsQuery Algorithms

Slit+Interval Tree K-D Tree Example QueriesInit Q.N.C. Q.C. Init Query

Biomedm1 1,000,000 2.86 9.71 1.97 1.15 18.30 Biomedm2 1,000,000 2.83 6.58 1.58 1.14 17.57 Biomeds1 1,000,000 2.86 7.60 1.74 1.17 16.83 Biomeds2 1,000,000 2.87 8.01 1.62 1.17 17.97 Mix1 1,000,000 3.05 9.87 1.75 1.36 18.51 Mix2 1,000,000 5.45 10.39 2.05 2.77 19.33 Mix3 1,000,000 3.13 8.36 1.50 1.33 17.79 Ratio 2.35 0.47 0.10 1.00 1.00

Run Time on RectangleRun Time on Rectangle--based based Query Algorithms [LFW93]Query Algorithms [LFW93]

BQT HV/VH K-D QLQT HQT

Init Qry Init Qry Init Qry Init Qry Init Qry

Test1 0.08 0.93 0.09 0.95 0.25 1.48 0.13 1.04 0.17 0.07

Test2 0.20 2.02 0.23 2.04 0.55 2.93 0.31 1.74 0.35 1.31

Test3 0.55 11.06 0.67 10.24 1.46 16.74 1.11 8.36 1.19 5.56

Ratio 0.40 0.66 0.41 0.65 1.00 1.00 0.60 0.59 0.70 0.41

Page 31: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

31

Experiment and Comparative StudiesExperiment and Comparative Studies

70117225668232741.5 x 3192.8Eco-737224013959232926.1 x 1676.8Eco-61969477542231556.6 x 1676.8Eco-52326336417231372.5 x 1608.6Eco-42320046417531372.5 x 1593.3Eco-32324536417231372.5 x 1593.3Eco-22323096417331372.5 x 1593.3Eco-1RectsCellsPinsLayersDimensionEx.

• Examples

• Comparing– Explicit Uniform Grid Graph– Iroute from Magic Layout Editor [Arnold 88]

Comparison of Memory Usage Comparison of Memory Usage Unit: MBUnit: MB

3.01.0014.3Ratio84.743.6641.1Eco-752.615.9359.4Eco-635.212.7191.0Eco-532.610.9161.7Eco-432.67.2160.2Eco-332.710.9160.2Eco-232.710.9160.2Eco-1IrouteNon-Uni. GridUni. GridsEx.

Page 32: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

32

Comparison of Comparison of Runtime and ECO Routing QualityRuntime and ECO Routing Quality

47591 / 2079.7935690 / 7438.2Eco-756423 / 2074.2937858 / 7024.7Eco-634543 / 1243.1427061 / 5412.3Eco-524385 / 15357.3921760 / 12224.0Eco-436593 / 10368.7034736 / 11034.5Eco-313162 / 6226.5811332 / 446.3Eco-222629 / 8942.1517374 / 6619.1Eco-1

IrouteResult(wl/vc)Time(s)

Non-UniformResult(wl/vc)Time(s)

Ex.

Conclusion of Routing Graph andConclusion of Routing Graph andQuery Data StructureQuery Data Structure

• Non-uniform grid graph GS and its implicit representation

• Efficient query data structures• Efficient for ECO routing

– Smaller : 14x smaller than uniform grid and 2-3x smaller than Iroute

– Faster : 2-4x faster than Iroute with comparable or better results

Page 33: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

33

Overview of Overview of GridlessGridless Detailed Detailed Routing ProblemRouting Problem

• General design flow and problem formulations

• Efficient routing graph construction and representation

• Maze searching algorithm• Wire planning, Ripup and re-planning• Summery and future works

Review of Maze Routing AlgorithmReview of Maze Routing Algorithm

• Basics of maze algorithms:

a

b c d

q

s

t Connection GraphPoint-by-point Expan-sion strategy based on the dynamic program-ming principleSort wavefront nodes according to their costs using a priority queue

L1

L2

L3

Page 34: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

34

Optimality of Maze AlgorithmOptimality of Maze Algorithm• Monotone cost function

– Longer path has a higher cost– Outward expansion

• Satisfies dynamic programming principle– Local optimality leads to global optimality– Every node is expanded at most once!

Variations of Maze AlgorithmVariations of Maze Algorithm

• Optimal solutions:– A* algorithm [hadlock’77]– Enhanced representations [soukup’92]

• Other solutions– Bounded solutions– Heuristics

• Soukup’s algorithm [soukup’78]• Line-probe algorithm

Page 35: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

35

Challenges in Implicit Graph Challenges in Implicit Graph RoutingRouting

• On-the-fly computation of graph nodes

a

b c d

q

s

t

L1

L2

L3 •Wavefront nodes vs.visited nodes

•Visited nodes storeback-links

Features of Our ApproachFeatures of Our Approach[ISPD’99, TCAD’00][ISPD’99, TCAD’00]

• Path-based maze routing algorithm– Distinguish the representation of routing graph

and the representation of maze searching– Removing visited nodes via explicit path

representation in Wavefront nodes– Flexible design rule supports in detailed routing

Page 36: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

36

PathPath--based Maze Algorithmbased Maze Algorithm• Seperation of routing graph and maze searching• Storing paths explicitly in the Wavefront nodes

a

b c d

q

s

t

L1

L2

L3 •Remove visited nodesand back-links

•Store back-pathsexplicitly in wavefrontnodes

Flexible Design Rule Support:Flexible Design Rule Support:Via Design RulesVia Design Rules

Metal1

Metal2

Metal3

Via1

Via2

W1 W2

W3

e1

W1S1

S1S2

S3 S5S4S3 S5S4

Page 37: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

37

a

b c d

q

s

t

L1

L2

L3

Min. via-to-via spacing = 2

Simple ExampleSimple ExampleOne-the-fly checking will not find connection!

Our ObservationOur Observation

a

b c d

q

s

t

We can find the optimal solution by exploringnodes multiple times!

L1

L2

L3

Min. via-to-via spacing = 2

Page 38: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

38

a

b c

s

t

L1

L2

L3

Definition: Definition: ββββββββ --NodesNodes

• Optimal path to ββββ -node is not part of an optimal design rule correct path

• Impact of ββββ -nodeDynamic Programming Principle no more holds!

β -node

Problem FormulationProblem Formulation

• Given– Given a gridded connection graph– Ki be the minimum via-to-via spacing between

layer i and i+1• Find

– Via-rule correct optimal path

Page 39: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

39

Our Solution to Via ProblemOur Solution to Via Problem

• Allow multiple expansion at each node• Encode distance to the last via

– Extended connection graph

a

b c d

q

s

t

L1

L2

L3K=2

Extended Connection Graph Extended Connection Graph

0-112

• Expand each nodeinto 2K nodes• Edge (ui, vi+1) ifv is to the right of u• Di-edge e(ui, vi-1) if v is to the left of u• Edge e(uk, v0) and e(vk, u0)|)|(|'| VKOV = |)|(|'| EKOE =|)|(|'| 2 VKOV = |)|(|'| 2 EKOE =

Page 40: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

40

Expansion on Ext. Conn. Graph Expansion on Ext. Conn. Graph

0-112

sa

bq

c dt

L1

L2

L3

0-112

sa

bq

c dt

Implicit MultiImplicit Multi--path Searching on path Searching on Ext. Conn. GraphExt. Conn. Graph

Step node priority queue dictionarystart {0,s} {s,s}1 s {1,c0}{1,a} {c0,sc}{a,sa}2 c0 {1,a}{2,b-1} {a,sa}{b-1, scb}

{2,d1} {d1,scd}… … Done

Page 41: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

41

Routing ExampleRouting Example

s

t

Comparison on Random ExamplesComparison on Random Examples

109/50.9%214/35.9%59696x964test4

160/79.6%201/39.6%50796x304Test3

81/56.3%144/17.8%80796x963Test2

94/66.2%142/15.7%90796x303Test1OptimalTotalLayers

Improved Examples# netsX/Y GridsNum.Ex.

Page 42: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

42

Conclusions of Maze Routing Conclusions of Maze Routing AglorithmAglorithm

• Distinguish routing graph and maze searching

• Efficient maze searching algorithm– Representing Wavefront nodes only– Path-based algorithm

• Flexible support for design rules• A multi-path algorithm for practical via rules

Overview of Overview of GridlessGridless Detailed Detailed Routing ProblemRouting Problem

• General design flow and problem formulations

• Efficient routing graph construction and representation

• Maze searching algorithm• Wire planning, Ripup and re-planning• Summery and future works

Page 43: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

43

New Routing FlowNew Routing Flow

Performance-DrivenGlobal Routing

Congestion-DrivenWire Planning

Gridless Detailed RoutingRipup & Re-routing

Floorplan/Partition Result

Final Layout

Planning & Re-planning

Gridless DetailedRouting System

Overview of Wire PlanningOverview of Wire Planning[ISPD’2000][ISPD’2000]

• Motivations– Design size– Gridless routing requirements in DSM designs

• Overall approaches– Partitioning of routing region– Modeling of routing resources– Minimize global congestion– Constraining each net’s topology

Page 44: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

44

Overview of Wire PlanningOverview of Wire Planning

• Partitioning of routing region• Modeling of routing resources• Minimize global congestion• Constraining each net’s topology

Planning Graph ConstructionPlanning Graph Construction

Page 45: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

45

Planning Graph ConstructionPlanning Graph Construction

Congestion EstimationCongestion Estimation

T1

T2

T3 T4

Page 46: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

46

Congestion EstimationCongestion Estimation

T1

T2

T3 T4

DDWCi

ii∑ ×=

MultiMulti--iteration Planning Algorithmiteration Planning Algorithm

• Net-by-net routing approach• Net ordering problem• Multi-iteration planning algorithm

– Negotiation-based planning• Intrinsic penalties for congested tiles

– Re-ordering of nets in each iteration

Page 47: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

47

Ripup Ripup & Re& Re--routeroute

• Traditional ripup & re-route approaches– Always design rule correct– Allow temporary violation

• Requirements for R&R in gridless routing– Accurate modeling of routing resources– Fast picking up alternatives globally

Planning Based RePlanning Based Re--routeroute

• Advantages of planning based re-route– More global picture– Accurate routing region information– Fast

• Our re-route approach– Local refinement based on existing planning– Ripup and re-plan

Page 48: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

48

Local RefinementLocal Refinement

S1

S2

S3

T1

T2T3

Local RefinementLocal Refinement

S1

S2

S3

T1

T2T3

Page 49: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

49

Local RefinementLocal Refinement

S1

S2

S3

T1

T2T3

Ripup Ripup & Re& Re--planningplanning

S1

S2

S3

T1

T2T3

Page 50: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

50

Experiment ResultsExperiment Results

43032760x1560Raytheon4004439000x45000Mcc1-4c4004639000x45000Mcc1-44963500x500BlockNetsLayersDimension(um)Example

• Comparing– Wire plan vs. No wire plan– Runtime & completion

Runtime and CompletionRuntime and Completion

Sp.

3.03.77.016.7

172.01508.51365.1270.0Plan

97.299.499.9100Plan

41839783998496Plan N.Pl.N.Pl.N.Pl.

Percent(%)Routed Nets

518.895.1409Raytheon5621.098.23931Mcc1-4c9499.698.43939Mcc1-44500.698.6489Block

Run TimeNumExample

Page 51: Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf• Binary tree is a binary tree that uses k-keys iteratively • Complexity – O(n)

51

Conclusion of Wire PlanningConclusion of Wire Planning

• New detailed routing system with wire planning– Accurate modeling of routing region & Gridless

design rules– Path-based maze routing algorithm– Planning-based pre-routing and ripup re-routing

Summary of Summary of Gridless Gridless Detailed Detailed RoutingRouting

• Implicit representation of non-uniform grid graph

• Efficient query data structure• Path-based maze search algorithm• Wire planning & Ripup re-planning in a three-

level routing