![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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/1.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/2.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/3.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/4.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/5.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/6.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/7.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/8.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/9.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/10.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/11.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/12.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/13.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/14.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/15.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/16.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/17.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/18.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/19.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/20.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/21.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/22.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/23.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/24.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/25.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/26.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/27.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/28.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/29.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/30.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/31.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/32.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/33.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/34.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/35.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/36.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/37.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/38.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/39.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/40.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/41.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/42.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/43.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/44.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/45.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/46.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/47.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/48.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/49.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/50.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022051912/6003202ed1256272f16c9e9a/html5/thumbnails/51.jpg)
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