Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf•...
Transcript of Multi-layer General Area Gridless Detailed Routingcadlab.cs.ucla.edu/~cong/CS258F/chap10_new.pdf•...
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
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
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
4
Physical Design FlowPhysical Design Flow
Structural Representation Logic Partition
Floorplanning & PlacementRouting
Routing Design FlowRouting Design Flow
•Global Routing
•Pin Assignment
•Detailed Routing
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
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
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
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
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
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
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
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
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
14
SegmentSegment--based Query:based Query:LineLine--sweepingsweeping
SegmentSegment--based Query:based Query:Ceiling QueryCeiling Query
pq
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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 =
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
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.
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
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
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
45
Planning Graph ConstructionPlanning Graph Construction
Congestion EstimationCongestion Estimation
T1
T2
T3 T4
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
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
48
Local RefinementLocal Refinement
S1
S2
S3
T1
T2T3
Local RefinementLocal Refinement
S1
S2
S3
T1
T2T3
49
Local RefinementLocal Refinement
S1
S2
S3
T1
T2T3
Ripup Ripup & Re& Re--planningplanning
S1
S2
S3
T1
T2T3
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
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