Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
CS258F 1998F
Prof. J. Cong 1
Jason Cong 1
Jason Cong 2
Approaches to Multi-Layer Routing
• Multi-Layer Channel Routing• Multi-Layer General Area Routing
– Routing one layer-pair at a time => reduced to two layer routing problems
– 3D maze routing– Hierarchical routing – Global routing + detailed routing
CS258F 1998F
Prof. J. Cong 2
Jason Cong 3
A New Approach to Three Layer Channel Routing
Ref. Cong, J., D. F. Wong and C. L. Liu, "A New Approach to Three- or Four-Layer Channel Routing". IEEE Trans. Computer-Aided Design, 1988, Vol. 7, pp. 1094-1104.
Basic Idea
Transform two layer solutions into three layer solution
Reason:
Existence of good two layer channel routers
w(S) ≤ d+2
Jason Cong 4
Channel Routing Problem
Channel Density d
Max. # of crossings over all columns
Lower Bound
Two layer: d
Multi-layer [d/L]
(L: # of horizontal layers)
Layer Assignment
HVH
CS258F 1998F
Prof. J. Cong 3
Jason Cong 5
A Two-Layer Channel Routing Solution
1 2 43 4662 2
12 43 4 56 235
t1
t2
t3
t4
t5
t6
Jason Cong 6
Horizontal Track Assignmentt2k-1 →k-th track on layer 1
t2k →k-th track on layer 2
2 1 5 6 3 4 4 3 2 5
1 2 3 4 2 6 6 4 2
t1t2
t5t6
Horizontal Track AssignmentNo horizontal wire violation!
Folded track pair
t3t4
CS258F 1998F
Prof. J. Cong 4
Jason Cong 7
Vertical ConnectionsColumn by column
2 1 5 6 3 4 4 3 2 5
1 2 3 4 2 6 6 4 2
t1t2
t5t6
Vertical Connection after Track AssignmentProblem: Adjacent vias between a folded track pair
The only vertical wire violation is possible
t3t4
Jason Cong 8
Avoid Vertical Violation
Perfect Track PairingNo adjacent vias between every folded track pair
Resulted three layer solution [w/2]
How to obtain a solution with perfect track pairing?Insert empty tracks to break adjacent vias
CS258F 1998F
Prof. J. Cong 5
Jason Cong 9
Perfect Track Pairing2 1 5 6 3 4 4 3 2 5
1 2 3 4 2 6 6 4 2
t1
t2t3
t6
t4t5
An perfect tracking of the example dashed lines are the empty tracks inserted
Resulted three layer solution:[(w+e(S))/2](e(S): # of empty tracks inserted)
Jason Cong 10
Generate Perfect Track Pairing
Key Problem
Modify S to minimize e(S)
Solution Modification
S → S’ such that w’=w but e(S’)≤e(S)
Two Operations
1. Track permutation
2. Local re-routing
CS258F 1998F
Prof. J. Cong 6
Jason Cong 11
Simple Perfect Track Pairing of the Solution
2 1 5 6 3 4 4 3 2 5
1 2 3 4 2 6 6 4 2
t1
t3t2
t6
t4
t5
Jason Cong 12
After Exchanging Track 2 and 3
2 1 5 6 3 4 4 3 2 5
1 2 3 4 2 6 6 4 2
t1t3
t6
t5
t4
t2
CS258F 1998F
Prof. J. Cong 7
Jason Cong 13
After Rerouting
2 1 5 6 3 4 4 3 2 5
1 2 3 4 2 6 6 4 2
t1t3
t6
t5
t4
t2
Jason Cong 14
Compute Track PermutationTrack Permutation
1. What is a feasible track permutation?
2. What is the best track permutation?
Track Ordering Graph
The Track Ordering Graph of the Example
Feasible track permutation⇔ topological labeling
t1 t2
t4 t5 t6
t3
CS258F 1998F
Prof. J. Cong 8
Jason Cong 15
Two Processor Scheduling
The Task Precedence Graph An Scheduling SOlution
The best track permutation ⇔the optimal two processor scheduling solution
Solved in linear time
t1 t2
t4 t5 t6
t3P1 P2
t1 t3t4 t2t5t6
Time=1234
Jason Cong 16
Local Re-routing
Maze router
Wave propagation algorithm
Clean-up phase
h1
h2v2
v1
( a )
h1
h2v2
x
( b )
h1
h2v2
( c )
CS258F 1998F
Prof. J. Cong 9
Jason Cong 17
Singular Track Shiftingt1
t3t4t5t6
t2
( a )
t1
t3t4t5t6
t2
( b )
t1
t3t4t5t6
t2
( c )
t1
t3t4t5t6
t2
( d )
Singular Track Shifting.
Minimize the total # of adjacent vias
Jason Cong 18
Decide Relative Ordering Within Each Track Pair
Track group state graph
The track group state graph for the example
Shortest s-t path ⇔optimal relative ordering for every track pair
Solved in quadratic time
a(3,4)
s 1
23
32 54
45
6 ta(1,2)
a(4,6)
a(5,6)
a(2,5)
a(2,4)a(1,3)
0a(3,5)0
CS258F 1998F
Prof. J. Cong 10
Jason Cong 19
Table Experimental Results of Our Three Layer Channel Router
Ex. d w # ofsingulartracksafterpermutation
# ofadjacent viasre-moved
# ofemptytracksinserted
# oftracks inour 3Lsolution
Lowerbound for3Lsolution
YK3a 15 15 1 0 0 8 8
YK3b 17 17 1 0 0 9 9YK3c 18 18 2 1 0 9 9
D1 18 18 2 2 0 9 9
D3 15 15 1 0 0 9 8
D5 17 17 1 0 0 9 9
Diff. 19 19 11 8 1 10 10
Jason Cong 20
Comparison With Other Three Layer Channel Routers
Ex. d C&L B&S Cham E&D Ours Lower Bound
YK3a 15 8 8 8 8 8 8
YK3b 17 10 10 10 10 9 9
Yk3c 18 9 10 10 9 9 9
Diff. 19 14 11 11 13 10 10
CS258F 1998F
Prof. J. Cong 11
Jason Cong 21
Deutsch’s Difficult Example
CONG et al: THREE- OR FOUR-LAYER CHANNEL ROUTING
Jason Cong 22
Conclusions
Two layer solution → three layer solutionApply results for well studied combinatorial optimization problems
High quality solution and short running time ( < 20 CPU sec)
CS258F 1998F
Prof. J. Cong 12
MARS :An Enhanced Multilevel Routing System
Jason Cong, Jie Fang, Kei-Yong Khoo, Min Xie and Yan ZhangComputer Science Department
University of California,Los Angeles
Jason Cong 24
Challenges in High-performance 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
CS258F 1998F
Prof. J. Cong 13
Jason Cong 25
Traditional Two Level Routing Flow
Congestion-DrivenGlobal Routing
Detailed Routing &Ripup Re-routing
Floorplan/Partition Result
Final Layout
Floorplan/Placement Result
Final Layout
…
GR
DR
Jason Cong 26
Three-level Routing Flow [Cong, et al., ISPD 2000]
Performance-DrivenGlobal Routing
Congestion-DrivenWire Planning
Gridless Detailed RoutingRipup & Re-routing
Floorplan/Partition Result
Final Layout
Planning & Re-planning
Floorplan/Placement Result
Final Layout
…
…
CS258F 1998F
Prof. J. Cong 14
Jason Cong 27
Is Three-level Sufficient?• Larger designs require more levels of hierarchy
Floorplan/Placement Result
Final Layout
…
…30x30
100x100
100x100
–2.5x2.5 cm2 chip with 0.07μm / 360,000 tracks
Our Proposal: Use Multilevel Optimization Method
Jason Cong 28
MARS Outline• Introduction• Multilevel Routing System
– J. Cong, J. Fang and Y. Zhang, “Multilevel Approach to Full-Chip Gridless Routing” ICCAD 2001
– J. Cong, M. Xie and Y. Zhang, "An Enhanced Multilevel Routing System," ICCAD 2002
• Gridless Detailed Routing Engine - Dune – J. Cong, J. Fang and K. -Y. Khoo, "DUNE - A Multilayer Gridless
Routing System", IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 20, (no. 5), pp 633-647, May 2001
– J. Cong, J. Fang and K.-Y. Khoo , “Via Design Rule Consideration in Multi-Layer Maze Routing Algorithms”, ISPD 1999
– J. Cong, J. Fang and K.Y. Khoo, “An Implicit Connection Graph Maze Routing Algorithm for ECO Routing”, ICCAD 1999
• Conclusion and Future Work
CS258F 1998F
Prof. J. Cong 15
Jason Cong 29
Multilevel “V-shaped” Optimization
Downward Pass: Coarsening
Upward Pass: Refinement
Jason Cong 30
Brief Review of Multilevel Methods• General Applications
– Originally used to accelerate partial differential equations.
– Later used in image processing, combinatorial optimization, control theory, statistical mechanics, quantum electrodynamics, and linear algebra.
• Applications in VLSI CAD– Min-cut circuit partitioning, hMETIS [Karypis, et al.,
TVLSI’99]
– Balance delay and cut size partitioning, HPM [Cong, et al., DAC’00]
– Placement, mPL[Cong, et al., ICCAD’00]
CS258F 1998F
Prof. J. Cong 16
Jason Cong 31
Multilevel Routing Framework
G0
•Initial fine routing tile generation
•Use the gridless detailed router to finalize the paths
G1•Tile coarsening •Route
refinement
Gk
• Initial routing
•Scalable due to the hierarchical nature•Ability to integrate various routing and interconnect optimization algorithms
•WireSizng
•Buffer Insertion
•Wire Ordering and Spacing
•Multicommodity flow based algorithm
•Maze Refinement
•Implicit graph gridless routing
Jason Cong 32
Downward Pass —Finest Tile Generation+Capacity Estimation
• 3-D routing graph generation• Resource estimation: weighted sum of the height of
each empty “slice”
Planning Graph Construction Congestion Estimation
S1
S2
S3
w
D
D2
D1
D3
W1
W3
W2
DDWDDWDDWC 332211 ×+×+×=
G0
CS258F 1998F
Prof. J. Cong 17
Jason Cong 33
G0
G1
•Tile coarsening
Gk
Downward Pass — Capacity Propagation
Jason Cong 34
Downward Pass — Tile Coarsening• Tile Mergence
Ti,j
Ti,j+1 Ti+1,j+1
Ti+1,jGi Gi+1
T’i,j
level i level i+1
• Estimate resources on the coarser tiles from finer tiles
T1 T2
T3 T4
T
CS258F 1998F
Prof. J. Cong 18
Jason Cong 35
Downward Pass — Resource Reservation
• Motivation: consider local net effect– Accurate congestion estimation– Avoid wasting planning efforts
• Approach: estimate and reserve the resource for local nets– Maze routing for local nets during coarsening– Deduct resource on corresponding coarser level routing
edges– Incur little runtime increase – Flexible route
Jason Cong 36
Downward Pass — Reservation Calculation
• Example: given 2 pins s and t on horizontal layer
s
A B
C D
t
A B
C D
t
s
A B
C D
s
rCD= w*v2/vv2
• reservation amount = the total resource taken by the paths of local nets
rBD = w*h1/hrAC = 0h
h1
rBDrAC rAB = w*v1/vv
v1
rAB
rCD
CS258F 1998F
Prof. J. Cong 19
Jason Cong 37
Downward Pass — Effects: Approach
Without
Reservation
With
Reservation
Jason Cong 38
G0
G1
Gk
• Initial routing by flow-based algorithm
Initial Routing at Coarsest Level
CS258F 1998F
Prof. J. Cong 20
Jason Cong 39
• Start the planning at the coarsest level
Multicommodity Flow-based Initial Routing
• Advantages of flow-based algorithm– Fast enough for coarsest grids– More global view– Can be integrated with performance optimization by
including high-performance topologies, such as A-Tree, BA-Tree, and P-Tree
• Used the approximate algorithm in [Albrecht, ISPD’00]– Minimize the overall congestion– Randomized Rounding– Rely on later levels to remove overflow
Jason Cong 40
Multicommodity Flow-based Initial Routing • Global Routing Problem can be formed as a mixed integer linear programming (NP-
hard) problem : assuming there are li candidate Steiner tree for each net i
λ – maximum congestion, Ti,j – the jth Steiner tree for net i,e – edge of global routing graph, wi,e – cost of net i to go through e, c(e) – capacity of e, k – number of nets to be routed,xi,j – 0 or 1, indicating whether Pi,j is selected for net Ili – candidate tree number of net i
CS258F 1998F
Prof. J. Cong 21
Jason Cong 41
Multicommodity Flow-based Initial Routing• linear programming relaxation → fractional global routing
problem
• can be solved optimally by fast matrix multiplication: slow• approximate, combinatorial algorithms: faster, with error
bound
Jason Cong 42
Approximation Algorithm for Fractional Global Routing
• originally used as approximation for multi-terminal multi-commodity flow problem
• associate each edge with a length , which is related with the congestion at e
• at any step, route a unit flow along the minimum Steiner tree
• then multiply every edge on the tree with long edges ↔ congested edges
• after sufficient many steps, say X, there are a flow number Xi,j , assigned to the jth candidate tree of net i, and Xi,j /X is the fractional flow for net i on the jth tree.
CS258F 1998F
Prof. J. Cong 22
Jason Cong 43
Approximation Algorithm for Fractional Global Routing
– xi,ji is the flow on Ti,ji
– ye is the length of edge e– Zi is the current total
cost for net I– Wi,e is the width of net i
at edge e– δ , γ , ε are
parameters of the algorithm.
– Implementation: δ can be 1 (related to the error bound), γ between 7 and 10, ε between 0.6 and 2.0
Jason Cong 44
G0
G1
•Route refinement
Gk
Multilevel Routing Framework
CS258F 1998F
Prof. J. Cong 23
Jason Cong 45
Upward Pass — Incremental Refinement• Refine the coarser level results at the finer level• Use A* algorithm to refine the path for each net• Use the coarser level results as a guide
L1 L2
Local nets
N1
N2
N3
Global nets
preferred region for N3
Routing graph for N3
Lower cost
Higher cost
Jason Cong 46
Upward Pass — Graph Based Steiner Tree Heuristic : Motivation
• Minimum spanning tree in MRS– Decompose multi-pin connection into 2-pin connections using
geometric MST– Each 2-pin connection is treated as a different net– Unnecessary long wires cause extra congestion
• Steiner tree approach– Simplistic approach– Congestion driven construction– Whole tree refinement
CS258F 1998F
Prof. J. Cong 24
Jason Cong 47
c
ba
Upward Pass — Graph Based Steiner Tree Heuristic : Approach
(2)
• Tree Construction– Starting from a geometric MST– Hit and stop
• Steiner tree refinement– A list of edges first sorted by
length – Connect newly appeared nodes
first– Refine the remaining edges– Keep the order of subnets at every
level(1)
ba
c
d e
(2) (3)
(4)
(1)(1)
b
a
d
c
f
e
(1)
(3)
(4)
(2)
(5)
Jason Cong 48
Upward Pass — Multi-iteration Refinement: Motivation
• Problem of single iteration refinement– Level to level refinement– May suffer from net ordering within one level – Multi-iteration not meaningful due to local net
effect– Takes more effort to correct errors introduced
on coarser levels
CS258F 1998F
Prof. J. Cong 25
Jason Cong 49
Upward Pass — Multi-iteration Refinement: Approach
• History based multi-iteration refinement – First proposed in [Nair, TCAD’87 ], later used in PathFinder
[McMurchie et al, FPGA Symp’95]– Iteratively update each edge’s cost with the consideration of
historical congestion information – Reroute all the nets based on the new edge cost functions
• Cost function used in MARS( , ) * ( , ) * ( , )cost e i congestion e i history e iα β= +
( , ) ( , 1) * ( , 1)history e i history e i congestion e iγ= − + −
Jason Cong 50
Hierarchical vs. Multilevel Routing
Hierarchical MethodsCoarse-level decisions constrain the fine-level solution.
Multilevel Methods Coarse-level decisions only guide the fine-level solution.
CS258F 1998F
Prof. J. Cong 26
Jason Cong 51
Incremental Refinement
level i planning result
N1
N2
N3
Gi
N1
N2
N3
Gi
Multilevel Routing Hierarchical Routing
Jason Cong 52
Incremental Refinement
level i-1: local nets routing
N1
N2
N3
L1 L2
Gi-1
N1
N2
N3
L1 L2
Gi-1
Multilevel Routing Hierarchical Routing
CS258F 1998F
Prof. J. Cong 27
Jason Cong 53
Incremental Refinement
N1
N2
N3
L1 L2
Gi-1
N1
N2
N3
L1 L2
Gi-1
Hierarchical RoutingMultilevel Routing
level i-1: global nets refinement
Jason Cong 54
Incremental Refinement
preferred region for N3
N1
N2
N3
L1 L2
Gi-1
N1
N2
N3
L1 L2
Gi-1
Hierarchical RoutingMultilevel Routing
CS258F 1998F
Prof. J. Cong 28
Jason Cong 55
Incremental Refinement
refinement for N3
N1
N2
N3
L1 L2
Gi-1
N1
N2
N3
L1 L2
Gi-1
Local Congestion!
Hierarchical RoutingMultilevel Routing
Jason Cong 56
Overview of Gridless Detailed Routing Problem
• Gridless Routing Engine -- Efficient routing graph construction and representation [ICCAD’99]
• Extended maze searching algorithm [ISPD’99, TCAD’00]
• Summery and future works
CS258F 1998F
Prof. J. Cong 29
Jason Cong 57
Overview of Gridless Detailed Routing Problem
• Efficient routing graph construction and representation
• Maze searching algorithm• Summery and future works
Jason Cong 58
Motivations & Challenges in Routing 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
CS258F 1998F
Prof. J. Cong 30
Jason Cong 59
Existing Routing Graph:Tile-based Approach
•Tile Partition
•Corner-StitchingData Structure
•A Tile-to-TileSearching
s
t
T1
T2 T4
T3
T7
T5
T6
Jason Cong 60
Difficulties of Tile-based Approach
•Point Finding
•Neighbor Finding
CS258F 1998F
Prof. J. Cong 31
Jason Cong 61
Existing Routing Graph:Uniform Grid Approach
•Uniform Grids
•Large Searching Space
•Explicit or ImplicitRepresentations
•Huge Memory forExplicit Representation
Jason Cong 62
Existing Routing Graph:General Graph
•Computed Based onBoundary Extensions
•Sparser than Uniform-Grids
•Difficult for ImplicitRepresentations
CS258F 1998F
Prof. J. Cong 32
Jason Cong 63
Features of Our Approach[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
Jason Cong 64
Obstacle Expansion for Gridless Routing
• Expansion of obstacles according to width rule and spacing rule
Ww=4 Sw=2Ew=Ww/2+Sw
CS258F 1998F
Prof. J. Cong 33
Jason Cong 65
Obstacle Expansion for Gridless Routing
• Expansion of obstacles according to width rule and spacing rule
Ww=4 Sw=2Ew=Ww/2+Sw
Jason Cong 66
Obstacle Expansion for Gridless Routing- The 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
CS258F 1998F
Prof. J. Cong 34
Jason Cong 67
Obstacle Expansion for Gridless Routing -Multi-layer Routing
• Expansion of obstacles according to width rule and spacing rule
Ww=4 Sw=2Ew=Ww/2+Sw
Ww=6 Sw=2
Jason Cong 68
S
T
Non-uniform Grid Graph GS
• Given a set of obstacles and a source s and sink t• GS is an orthogonal grid graph
CS258F 1998F
Prof. J. Cong 35
Jason Cong 69
Strong Connection Graph GS
• 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]
Jason Cong 70
S
T
Implicit Representation of GS
y1
y2
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
CS258F 1998F
Prof. J. Cong 36
Jason Cong 71
Searching on GS
y1
y2
y3
y4
y5
y6
y7
y8
x1 x3 x4x2 x5 x6 x7 x8 x9 x10
• Determine the location of neighboring node: easy
T
S
• Determine if the location is valid: difficult
Free?
Jason Cong 72
Point 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
CS258F 1998F
Prof. J. Cong 37
Jason Cong 73
Segment-based 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
Jason Cong 74
Segment-based Query: Expansion
Expansion
CS258F 1998F
Prof. J. Cong 38
Jason Cong 75
Segment-based Query: Line-sweeping
Jason Cong 76
Segment-based Query: Ceiling Query
qp
CS258F 1998F
Prof. J. Cong 39
Jason Cong 77
Segment-based QueryAlgorithms
• Range tree• Segment tree• Interval tree• Priority tree
Jason Cong 78
Segment Query Problem
Y1
Y2
Y3Y4
Y5
Y6
Y7
Y8
X1 X2 X3 X4 X5
q
S1 S2S3
S4S5 S6
S8
S10S9
S7
CS258F 1998F
Prof. J. Cong 40
Jason Cong 79
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.
Jason Cong 80
Range Tree Example
Y1
Y2
Y3Y4
Y5
Y6
Y7
Y8
X1 X2 X3 X4 X5
S1 S2 S3
S4S5 S6
S8
S10S9
S7
S9
S2
S1
S4
S5
S8
S7
S3
S6
S10
CS258F 1998F
Prof. J. Cong 41
Jason Cong 81
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
Jason Cong 82
Segment Tree Example
X2X1 X3 X4 X5
S3 S6
S2 S5
S10S8S9
S3 S6
S3 S6
S1 S4
S7 S9
S2 S5
S8 S10
S9S7
Y1
Y2
Y3Y4Y5Y6
Y7
Y8
X1 X2 X3 X4 X5
S1 S2 S3
S4S5 S6
S8
S10S9
S7
CS258F 1998F
Prof. J. Cong 42
Jason Cong 83
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
Jason Cong 84
Interval Tree Example
X1 X2 X3 X4 X5
S1 S4
S3 S6
S2 S5
S10S8
S7 S9
Y1
Y2
Y3Y4Y5Y6
Y7
Y8
X1 X2 X3 X4 X5
S1 S2 S3
S4S5 S6
S8
S10S9
S7
CS258F 1998F
Prof. J. Cong 43
Jason Cong 85
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
Jason Cong 86
(xq, xq)
Range Query
X1 X2 X3 X4 X5
(x1, x2)(x1, x3)
(x3, x4)
(x4, x5)
Y1
Y2
Y3Y4Y5Y6
Y7
Y8
X1 X2 X3 X4 X5
S1 S2 S3
S4S5 S6
S8
S10S9
S7
CS258F 1998F
Prof. J. Cong 44
Jason Cong 87
Priority Tree Example
(x4, x5)
(x3, x4)(x1, x3)
(x1, x2)S1 S4
S7 S9
S3 S6
S2 S5
S8 S10
Jason Cong 88
Summary of Segment-based Queries
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)
CS258F 1998F
Prof. J. Cong 45
Jason Cong 89
Rectangle-based 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
Jason Cong 90
Rectangle-based Query Algorithms
• K-D tree• Quad-list quad tree• Multiple storage quad tree• HV/VH tree• 1-D and 2-D indexing
CS258F 1998F
Prof. J. Cong 46
Jason Cong 91
K-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
Jason Cong 92
K-D Tree Example
c
a b
d
Use XR
Use YB
Use XL
CS258F 1998F
Prof. J. Cong 47
Jason Cong 93
Quad-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
Jason Cong 94
Quad-list Quad Tree Example
a
b
dc
q
b c
da
CS258F 1998F
Prof. J. Cong 48
Jason Cong 95
Multiple Storage Quad Tree[Bro86, WP89]
• Do not store rectangles on cut-lines• Store multiple copies of rectangle at the leave
nodes
Jason Cong 96
Multiple Storage Quad Tree Example
a
b
dc
qdac
c b
b
CS258F 1998F
Prof. J. Cong 49
Jason Cong 97
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
Jason Cong 98
c
HV/VH Tree Examples
a
b
dc
q
b
a
H-node
d
V-nodes
Leaf nodes
CS258F 1998F
Prof. J. Cong 50
Jason Cong 99
1-D and 2-D 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
Jason Cong 100
1-D Indexing Example
a
d
db
a
b
dc
q
c
a
b
c
CS258F 1998F
Prof. J. Cong 51
Jason Cong 101
2-D Indexing Example
a
b
dc
q
a
a
c
c
a
b, c, d
c, d
Jason Cong 102
Our 2-D 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
CS258F 1998F
Prof. J. Cong 52
Jason Cong 103
Our 2-D Query Data Structure
a
b
dc
q
Data Structure
Is q in free space
Query
c b,d
Jason Cong 104
Caching
a
b
dc
q
Cache is an array that storesprevious query results
Caching Obstacles
Caching Empty Area
CS258F 1998F
Prof. J. Cong 53
Jason Cong 105
Summary of Rectangle-based Queries
Algorithm Initialize Insert Delete Query MemeoryK-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-DIndexing
O(n) O(1) O(1) O(n) O(n)
Slit+Interval O(n) O(logn) O(logn) O(n) O(n)
Jason Cong 106
Run Time of Segment-based Query Algorithms
Range Tree Segment Tree Interval TreeDeutsch 1209 1186 1178Bus100 1085 1096 1032Tile0 4893 6559 4927Tile1 3531 4528 3442Tile2 5202 6971 5153Tile3 5311 6727 5115Tile4 3461 4154 3338
CS258F 1998F
Prof. J. Cong 54
Jason Cong 107
Run Time of Rectangle-based Query Algorithms
Slit+Interval Tree K-D TreeExample QueriesInit Q.N.C. Q.C. Init Query
Biomedm1 1,000,000 2.86 9.71 1.97 1.15 18.30Biomedm2 1,000,000 2.83 6.58 1.58 1.14 17.57Biomeds1 1,000,000 2.86 7.60 1.74 1.17 16.83Biomeds2 1,000,000 2.87 8.01 1.62 1.17 17.97Mix1 1,000,000 3.05 9.87 1.75 1.36 18.51Mix2 1,000,000 5.45 10.39 2.05 2.77 19.33Mix3 1,000,000 3.13 8.36 1.50 1.33 17.79Ratio 2.35 0.47 0.10 1.00 1.00
Jason Cong 108
Run Time on Rectangle-based 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
CS258F 1998F
Prof. J. Cong 55
Jason Cong 109
Experiment 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]
Jason Cong 110
Comparison of Memory Usage Unit: MB
3.01.0014.3Ratio
84.743.6641.1Eco-7
52.615.9359.4Eco-6
35.212.7191.0Eco-5
32.610.9161.7Eco-4
32.67.2160.2Eco-3
32.710.9160.2Eco-2
32.710.9160.2Eco-1
IrouteNon-Uni. GridUni. GridsEx.
CS258F 1998F
Prof. J. Cong 56
Jason Cong 111
Comparison of Runtime and ECO Routing Quality
47591 / 2079.7935690 / 7438.2Eco-7
56423 / 2074.2937858 / 7024.7Eco-6
34543 / 1243.1427061 / 5412.3Eco-5
24385 / 15357.3921760 / 12224.0Eco-4
36593 / 10368.7034736 / 11034.5Eco-3
13162 / 6226.5811332 / 446.3Eco-2
22629 / 8942.1517374 / 6619.1Eco-1
IrouteResult(wl/vc)Time(s)
Non-UniformResult(wl/vc)Time(s)
Ex.
Jason Cong 112
Conclusion of Routing Graph andQuery 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
CS258F 1998F
Prof. J. Cong 57
Jason Cong 113
Overview of Gridless Detailed Routing Problem
• Efficient routing graph construction and representation
• Maze searching algorithm• Summery and future works
Jason Cong 114
Review 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
CS258F 1998F
Prof. J. Cong 58
Jason Cong 115
Optimality 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!
Jason Cong 116
Variations 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
CS258F 1998F
Prof. J. Cong 59
Jason Cong 117
Challenges in Implicit Graph Routing
• 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
Jason Cong 118
Features of Our Approach[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
CS258F 1998F
Prof. J. Cong 60
Jason Cong 119
Path-based Maze Algorithm
• Separation of routing graph and maze searching• Storing paths explicitly in the Wavefront nodes
•Remove visited nodesand back-links
•Store back-pathsexplicitly in wavefrontnodesa
b c d
q
s
t
L1
L2
L3
Jason Cong 120
Flexible Design Rule Support:Via Design Rules
Metal1
Metal2
Metal3
Via1
Via2
W1 W2
W3
e1
W1S1
S1S2
S3 S5S4
CS258F 1998F
Prof. J. Cong 61
Jason Cong 121
a
b c d
q
s
t
Min. via-to-via spacing = 2
Simple Example
One-the-fly checking will not find connection!
L1
L2
L3
Jason Cong 122
Our Observation
a
b c d
q
s
t
We can find the optimal solution by exploringnodes multiple times!
Min. via-to-via spacing = 2
L1
L2
L3
CS258F 1998F
Prof. J. Cong 62
Jason Cong 123
a
b c
s
t
L1
L2
L3
Definition: β -Nodes
• Optimal path to β -node is not part of an optimal design rule correct path
• Impact of β -node– Dynamic Programming Principle no more holds!
β -node
Jason Cong 124
Problem 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
CS258F 1998F
Prof. J. Cong 63
Jason Cong 125
Our Solution to Via Problem
• Allow multiple expansion at each node• Encode distance to the last via
– Extended connection graph
Jason Cong 126
a
b c d
q
s
t K=2
Extended Connection Graph
0-112
Expand each nodeinto 2K nodesEdge (ui, vi+1) ifv is to the right of uDi-edge e(ui, vi-1) if v is to the left of uEdge e(uk, v0) and e(vk, u0)
L1
L2
L3
|)|(|'| VKOV = |)|(|'| EKOE =
CS258F 1998F
Prof. J. Cong 64
Jason Cong 127
Expansion on Ext. Conn. Graph
0-112
sa
bq
c dt
L1
L2
L3
Jason Cong 128
0-112
sa
bq
c dt
Implicit Multi-path Searching on Ext. 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
CS258F 1998F
Prof. J. Cong 65
Jason Cong 129
Routing Example
s
t
Jason Cong 130
Comparison 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%90796x303Test1
OptimalTotalLayers
Improved Examples# netsX/Y GridsNum.Ex.
CS258F 1998F
Prof. J. Cong 66
Jason Cong 131
Conclusions of Maze Routing Algorithm
• 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
Jason Cong 132
Local Refinement
S1
S2
S3
T1
T2T3
CS258F 1998F
Prof. J. Cong 67
Jason Cong 133
Local Refinement
S1
S2
S3
T1
T2T3
Jason Cong 134
Local Refinement
S1
S2
S3
T1
T2T3
CS258F 1998F
Prof. J. Cong 68
Jason Cong 135
Ripup & Re-planning
S1
S2
S3
T1
T2T3
Jason Cong 136
Summary of Gridless Detailed Routing Engine ― Dune
• Implicit representation of non-uniform grid graph
• Efficient query data structure• Path-based maze search algorithm
CS258F 1998F
Prof. J. Cong 69
Jason Cong 137
Experimental Results
42589
32210
125661056241854734
1122629415471
25024
3101
Pin
4
3
44336656
4
Level
28177312940 × 6710S38584
21035311430 × 6180S38417
832137040 × 3880S15850699536590 × 3640S13207277434020 × 2230S9234312434330 × 2370S53788197310438 × 6468Primary2203737552 × 4988Primary1355134903 × 4904Struct75414152400 × 152400Mcc2
1694439000 × 45000Mcc1
NetLayerDimension (μm)Examples
• Examples
Jason Cong 138
N/A
5441.2
N/A
3356.2
2-level
Runtime(s)
N/A
90.9%
N/A
91.75%
2-level
Completion Rate
12333.6
1311
2515
1507.1
3-level
99.1%
99.4%
93.7%
96.5%
MRS
92.2%7644.8Mcc2
96%436.7Mcc1
90.7%1227.6standard cell (20k-30k)
93.1%548.9standard cell (2k-10k)
3-levelMRS
Experimental Results• MRS vs. 2-level and 3-level routing flows
2-level: wireplanning + detailed routing3-level: global routing + pin assignment + wireplanning + detailed routingMRS: first version of multilevel routing system, without resource reservation, steiner tree decomposition and iterative refinement
CS258F 1998F
Prof. J. Cong 70
Jason Cong 139
Experimental Results
circuit #failed nets runtime(s) #failed nets runtime(s)S5378 21 31.7 0 36.1S9234 14 20.4 0 25.4S13207 80 85.9 0 105.1S15850 89 171.2 1 130.4S38417 177 459.7 3 466.7S38584 304 791.9 1 664.9Struct 4 154.7 0 50
Primary1 1 135.8 0 36.9Primary2 0 533.5 0 134.2
Mcc1 17 521.3 0 134.6Mcc2 826 28833 46 4367.4
Raytheon 16 28 13 28.3Avg. 1 1 0.075 0.71
• MRS vs. MARS
Jason Cong 140
Future Work
• Non-uniform routing tiles for multilevel planning• Integration with other multilevel physical design
systems, i.e., partitioning, placement, etc.