Global routing Global routing Global routing Global routing
Bill Swartz Bill Swartz InternetCAD.com InternetCAD.com InternetCAD.com InternetCAD.com
Global routing Global routing Global routing Global routing Bill - - PowerPoint PPT Presentation
Global routing Global routing Global routing Global routing Bill Swartz Bill Swartz InternetCAD.com InternetCAD.com InternetCAD.com InternetCAD.com Disclaimer Disclaimer Disclaimer Disclaimer Paper written in 5 days Paper written
Bill Swartz Bill Swartz InternetCAD.com InternetCAD.com InternetCAD.com InternetCAD.com
Paper written in 5 days
Paper written in 5 days
Please forgive any errors, typos,
Please forgive any errors, typos,
transgressions transgressions
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
TimberWolf Systems / InternetCAD.com
TimberWolf Systems / InternetCAD.com f d i 1994 f d i 1994 formed in 1994. formed in 1994.
Concentrated on producing high quality
Concentrated on producing high quality Concentrated on producing high quality Concentrated on producing high quality results for small chips and block designs. results for small chips and block designs.
Claim to fame: 486, Pentium series, Alpha,
Claim to fame: 486, Pentium series, Alpha, and Centrino and Centrino and Centrino and Centrino
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
One company no longer uses the product
One company no longer uses the product d l i t d l i t and one no longer exists… and one no longer exists…
Business is now predominantly DRAM
Business is now predominantly DRAM Business is now predominantly DRAM. Business is now predominantly DRAM.
Wrote grouter (2D) and igrouter (3D).
Wrote grouter (2D) and igrouter (3D). H l d it Ti b W lfGR d SGGR H l d it Ti b W lfGR d SGGR
Helped write TimberWolfGR and SGGR.
Helped write TimberWolfGR and SGGR.
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Introduction A li i A li i
Applications
Previous work / state-of
the art
Previous work / state-of
the art
Advanced objectives and requirements j q j q
Alternative methodologies
Itools global router
Summary
Summary
InternetCAD.com, Inc. InternetCAD.com, Inc. 2008 2008
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Assign net segments to physical regions. Assign net segments to physical regions. Assign net segments to physical regions.
Model regions as a graph.
Nets are embedded into graph g p g p
Minimize the total overflow on all global edges
Global Bins Global Bins Cells Global Edges
(a)
Global Edges
(b)
From Pan M, Chu C.
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
∈N n
B b b 1 B b P subject
c
≤ ≤ = 1 ,
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Easiest of three primary subtasks F
Fast
Detail router can ignore global routing to
Detail router can ignore global routing to complete design complete design
Global routing is not necessary for sufficiently small designs sufficiently small designs sufficiently small designs sufficiently small designs
Negotiated detail router (Pathfinder) + A* g ( ) g ( ) search performs poor man's global routing search performs poor man's global routing
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Combination of base, meta, and hierarchical Combination of base, meta, and hierarchical algorithms algorithms algorithms. algorithms. Base : how to route a single net or net segment Base : how to route a single net or net segment
Maze, pattern, line search, gridded, etc. Maze, pattern, line search, gridded, etc.
Meta : how to route a set of nets Meta : how to route a set of nets Meta : how to route a set of nets Meta : how to route a set of nets
Ripup and Reroute, Pathfinder, Graph Ripup and Reroute, Pathfinder, Graph-
Based, Lagrange Relaxation Linear Programming Network Lagrange Relaxation Linear Programming Network Lagrange Relaxation, Linear Programming, Network Lagrange Relaxation, Linear Programming, Network Flows, etc. Flows, etc.
Hi hi l h t t t f i Hi hi l h t t t f i Hierarchical : how to route a set of regions Hierarchical : how to route a set of regions
Multilevel, channel Multilevel, channel-
based methods, wire ordering
InternetCAD.com, Inc. InternetCAD.com, Inc. 2008 2008
(Groeneveld) (Groeneveld)
Now appear in global routers
Now appear in global routers
Ripup and Reroute
Ripup and Reroute
Ripup and Reroute
Ripup and Reroute
Graph
Graph-
based Conflict Removal p
Congestion Negotiation (Pathfinder)
Congestion Negotiation (Pathfinder)
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Shaded area keepouts; pins blue; fly-lines denote net connections p p y Single routing layer From Tatsuo Ohtsuki, “Layout Design and Verification” 1986
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
, y g
R t t 2 fi t Route net 2 first
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
O d i t ’t l bl Ordering nets won’t solve problem
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Ripup and reroute net segments
Ripup and reroute net segments -
not the ti t! ti t! entire net! entire net!
Ripup of entire net does not work
Ripup of entire net does not work Ripup of entire net does not work. Ripup of entire net does not work.
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Initial state Recursion depth 0 Recursion depth 0
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
R t b i t 1’ t Route borrowing net 1’s segment Recursion depth 1
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Recursion depth 0 Remove net 1 segments Recursion depth 0
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
But we fail to route 1 Recursion depth 0
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Back at start Recursion depth 0 Recursion depth 0
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Bl k i f il d t b i f t 1 Block previous failure and route borrowing from net 1 Recursion depth 1 Recursion depth 1
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Prepare to route net 2 Recursion depth 0
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Recursion depth 0 Routing succeeds for net 2 Recursion depth 0
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Recursion depth 0 Routing succeeds for net 1
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Conflicts shown in orange
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
InternetCAD.com, Inc. InternetCAD.com, Inc. 2008 2008
1 2 2
Alternative route
3 1 4 5
Alternative route
Each candidate route becomes a node in conflict graph Conflicting route candidates form edges Find set of nodes with no conflicting edges
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Relative Speed of Relative Speed of Relative Speed of Relative Speed of Convergence Convergence Weakness Weakness Easy Instance Easy Instance Difficult Difficult Instance Instance Ripup and Ripup and Reroute Reroute Fast Fast Slow Slow Recursion tree Recursion tree traversal order traversal order Graph Graph-
based Medium Medium Medium Medium Missing Missing candidates candidates candidates candidates Congestion Congestion N ti ti N ti ti Sl Sl F t F t Penalty Penalty Negotiation Negotiation (Pathfinder) (Pathfinder) Slow Slow Faster Faster Penalty Penalty increment increment
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Advantages Advantages
N l it bl N l it bl No granularity problem No granularity problem
Disadvantages Disadvantages Disadvantages Disadvantages
Doesn't scale well Doesn't scale well Impractical for large problems Impractical for large problems
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Today problems involve many millions of Today problems involve many millions of gates gates gates gates
Time to market and productivity important Time to market and productivity important p y p p y p
The age of global routing
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Full chip Full chip S b hi bl k l l S b hi bl k l l Subchip or block level Subchip or block level Specialty Specialty Specialty Specialty
Analog Analog
Symmetry Symmetry Length constraints Length constraints g
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Fixed die V i bl di V i bl di
Variable die
Constrained die
Constrained die
InternetCAD.com, Inc. InternetCAD.com, Inc. 2008 2008
Dominates industry and academia Dominates industry and academia f Placement consists of two stages: Placement consists of two stages:
Coarse Coarse Coarse Coarse Detail Detail
Global routing Global routing
Timing / Congestion Driven Timing / Congestion Driven Timing / Congestion Driven Timing / Congestion Driven
Detail routing Detail routing
Multilevel to increase capacity and fix problems Multilevel to increase capacity and fix problems due to abstraction due to abstraction
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
due to abstraction due to abstraction
Multicommodity Flow Albrecht C (2001) B R Ch M d P D (2006) B R Ch M d P D (2006)
BoxRouter Cho M. and Pan D., (2006)
Lagrange Relaxation Roy J and Markov I
Lagrange Relaxation Roy J, and Markov I (2007) (2007)
FastRoute Pan M. and Chu C. (2007) Ri h lit t T t ti Ri h lit t T t ti
Rich literature. Too many to mention
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Each region becomes a node in the graph Each region becomes a node in the graph Adjacent regions form edges in the graph Graph may be 2D or 3D
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Bin Model Granularity Errors Bin Model Granularity Errors Extending the Domain of Global Routing Extending the Domain of Global Routing
Placement Placement Placement Placement Detail Routing Detail Routing
Methodology issues Methodology issues
Variable Die Variable Die Variable Die Variable Die Constrained Die Constrained Die
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Bin model counts edge
Bin model counts edge Bin model counts edge Bin model counts edge crossings crossings
Bin model fails to capture in
Bin model fails to capture in- Bin model fails to capture in Bin model fails to capture in bin density bin density
Bin size 15
Bin size 15-50 tracks 50 tracks s e 5 s e 5 50 ac s 50 ac s typically typically
ISPD benchmark contest 30
ISPD benchmark contest 30-
50 tracks
Effect prominent in better
Effect prominent in better p placements placements
Obvious during detail routing
Obvious during detail routing g g g g
Wire widths not taken into
Wire widths not taken into account account
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Pin locations are known Pin locations are known E i h i h i l E i h i h i l Exact is easy enough with interval trees Exact is easy enough with interval trees Non Non-uniform wire pitches (3D case) uniform wire pitches (3D case) Non Non-uniform wire pitches (3D case) uniform wire pitches (3D case) Use layer direction orthogonality Use layer direction orthogonality y g y y g y
Layers either horizontal or vertical Layers either horizontal or vertical
O(l N) ti l it O(l N) ti l it O(logN) time complexity O(logN) time complexity
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Half-
perimeter wire length is replaced with Steiner trees Steiner trees Steiner trees Steiner trees
Far more accurate wire length Far more accurate wire length
Accurate density calculations
Detail routing possible if Detail routing possible if
B b k
s d
b b
∈ ∀ + ≤ ,
g p g p
Why not detail placement?
s d
b b
,
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Cost = wirelength + congestion + timing
Cost = wirelength + congestion + timing
Cost = wirelength + congestion + timing
Cost = wirelength + congestion + timing P P W C
c c t t w
β β β + + =
c t w
β β β
∑ =
= N n
n W W
1
) (
∑ =
= N p p D p
Pt
1
( )
t l C R f D
g p
, , , =
( )
B
F il di i l i
( )
∑ =
= B b c c
b P P
1
Fails dimension analysis Reliance on benchmarks for tuning
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Reliance on benchmarks for tuning
Rewrite timing penalty in terms of net length
Rewrite timing penalty in terms of net length
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
p lowerBound p length p length p lowerBound p upperBound p length p upperBound p length P { < > −
( ) ( ) ( ) ( )
p lowerBound p length p length p lowerBound Pt
< − =
( )
∑ = W p length
where
( )
∑ =
∈ ∀ p n n
W p length
Successfully used on many microprocessor designs
InternetCAD.com, Inc. InternetCAD.com, Inc. 2008 2008
Detour length replaces congestion term
Detour length replaces congestion term How far to travel to get to uncongested area How far to travel to get to uncongested area
How far to travel to get to uncongested area
How far to travel to get to uncongested area
Timing and congestion rewritten in terms of
Timing and congestion rewritten in terms of g g g g length length
All terms in cost function are length
All terms in cost function are length based based
All terms in cost function are length
All terms in cost function are length-based based
Scales properly
Scales properly
Tradeoffs between terms straightforward
Tradeoffs between terms straightforward
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
During placement, use congestion map to detour length
But during global routing, we have all the information to directly compute it. directly compute it.
Possible metrics
How far are we outside the bounding box of a net’s pins
Excess wire length above minimum Steiner tree bound
Net segment detour length
Use traditional congestion metric as a tie breaker. g
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Alignment of orthogonal resources within the bin or region the bin or region the bin or region the bin or region
Known as virtual pin resources or feedthru Known as virtual pin resources or feedthru Known as virtual pin resources or feedthru assignment assignment
Long range planning
Minimize vertical constraint cycles
Minimize vertical constraint cycles
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Forces new column
InternetCAD.com, Inc. InternetCAD.com, Inc. 2008 2008
A B A B C C A B B C A A B C A B C C B C A B
Most detail routing fails at the pins Detail router appreciates help from the global router pp p g
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Ways to break cycle Ways to break cycle
M i t l i i t M i t l i i t Move virtual pin assignment Move virtual pin assignment Swap equivalent pins of a gate (rewrite netlist) Swap equivalent pins of a gate (rewrite netlist) p q p g ( ) p q p g ( ) Rotate a cell Rotate a cell M ll M ll Move a cell Move a cell
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
1D routing C lk C lk
Crosstalk
Noise
Noise
Early channel-
based detail routers (Greedy, y ( y ( y Mighty) Mighty) S l i li i t titi i S l i li i t titi i
Solve using linear assignment, partitioning, linear programming... linear programming... p g g p g g
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Power, clock, signal routed simultaneously
Wid i i l i Wid i i l i
Wide wire requires planning
Wide wire requires planning
Verified Saxena and Gupta (2003)
Verified Saxena and Gupta (2003) p ( ) p ( )
InternetCAD.com, Inc. InternetCAD.com, Inc. 2008 2008
Buffer synthesis G i i G i i
Gate resizing
Scan chain synthesis
Scan chain synthesis
Clock tree synthesis y
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Variable die C i d di C i d di
Constrained die
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
White space is manipulated to insure no overflow Placement is not fixed. Relative placement may change as well
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Applicable to block level E l f hi l l E l f hi l l
Early stages of chip level
Minimize area
Minimize area
Trade off # of routing layers versus cost g y g y
Guarantees completion
Minimizes congestion (controversial)
Original P&R algorithm using channels
Original P&R algorithm using channels
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Virtual pin assignment determines Virtual pin assignment determines
Partition into virtual regions to determine Partition into virtual regions to determine Partition into virtual regions to determine Partition into virtual regions to determine horizontal resources horizontal resources If all pins at center of standard cell If all pins at center of standard cell
Perfect decomposition Perfect decomposition Perfect decomposition Perfect decomposition Global router decouples virtual regions Global router decouples virtual regions Perfect parallelism Perfect parallelism – – all core regions at once. all core regions at once. Blocks/macros complicate things Blocks/macros complicate things
InternetCAD.com, Inc. InternetCAD.com, Inc. 2008 2008
Blocks/macros complicate things Blocks/macros complicate things
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Chip design process uses iterative Chip design process uses iterative refinement not one refinement not one shot shot refinement not one refinement not one-shot shot Design space exploration at beginning Design space exploration at beginning Design space exploration at beginning Design space exploration at beginning
What is possible? What is possible?
As knowledge is acquired, more and more As knowledge is acquired, more and more aspects become fixed aspects become fixed aspects become fixed aspects become fixed
Die size become fixed Die size become fixed I/Os become fixed I/Os become fixed
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Designer cares only about interface of block Designer cares only about interface of block
Footprint important Footprint important p p p p Physical location of internals irrelevant Physical location of internals irrelevant
Propose Constrained Die Methodology Propose Constrained Die Methodology Propose Constrained Die Methodology Propose Constrained Die Methodology
InternetCAD.com, Inc. InternetCAD.com, Inc. 2008 2008
Constrained die compaction graph in y direction Constrained die compaction graph in y direction. Dotted line shows constrained die fixed edge.
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Global router compacts virtual regions such that block/chip constraints maintained. constraints maintained.
Maximize degrees of freedom
Delay whitespace allocation as much as possible
Delay whitespace allocation as much as possible
Guarantee solution T d ff h i T d ff h i
Trade offs much easier
ECO compatible
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Detail routing slow if not in parallel Detail routing slow if not in parallel C i i d b b C i i d b b Compaction is done by maze router because Compaction is done by maze router because topology changes topology changes Global router errors Global router errors Estimate off by 1 track Estimate off by 1 track Estimate off by 1 track Estimate off by 1 track Assignments to wrong region Assignments to wrong region Solved by Multilevel but this negates parallelism Solved by Multilevel but this negates parallelism C li t d C li t d Complicated Complicated
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
Itools Global Routing Algorithm Itools Global Routing Algorithm
globe(void) { globe(void) { setup_routing_regions() ; setup_routing_regions() ; create prerouting() ; create prerouting() ; create_prerouting() ; create_prerouting() ; instantiate_power_ground_networks() ; instantiate_power_ground_networks() ; process_scan_chains() ; process_scan_chains() ; process clocktrees() ; process clocktrees() ; process_clocktrees() ; process_clocktrees() ; steiner() ; steiner() ; initialize_gr_cost() ; initialize_gr_cost() ; switchable segment opt() ; switchable segment opt() ; switchable_segment_opt() ; switchable_segment_opt() ; area_minimization() ; area_minimization() ; freeway_assign() ; freeway_assign() ; f d h i () f d h i () feedthru_assign() ; feedthru_assign() ; for( c = 1 ;c <= reassign_limitG ; c++){ for( c = 1 ;c <= reassign_limitG ; c++){ cell_swap_opt() ; cell_swap_opt() ; detour_minimization() detour_minimization() ; } /* end for( loop_cnt = 1... */ } /* end for( loop_cnt = 1... */ switchable segment opt() ; switchable segment opt() ; _ g _ p () ; _ g _ p () ; area_minimization() ; area_minimization() ; congestion_minimization() ; congestion_minimization() ; vertical constraint min() ; vertical constraint min() ; vertical_constraint_min() ; vertical_constraint_min() ; }
void area_minimization(GRAPHPTR region_graph,const int MLIMIT) { f ( t 1 t < G t++ ){ for( count=1; count <= area_passesG; count++ ){ // Compact & find longest path but don't move cells. compact_fixed_area() ; // Determine set of regions where area opt is warranted // Determine set of regions where area opt is warranted. xpaths = find_M_longestPath(region_graph,ICCOMPACT_X,MLIMIT) ; xcritical = assign_critical_regions( xpaths, ICCOMPACT_X ) ; ypaths = find_M_longestPath(region_graph,ICCOMPACT_Y,MLIMIT) ; yp _ _ g ( g _g p _ ) ycritical = assign_critical_regions( ypaths, ICCOMPACT_Y ) ; // Reroute paths on the critical path. for( p = 1 ; p <= xcritical.num ; p++ ){ th iti l th [ ] path_p = xcritical.paths[p] ; reroute_critical_nets(path_p,ICCOMPACT_X) ; } for( q = 1 ; q <= ycritical num; q++ ){ for( q = 1 ; q <= ycritical.num; q++ ){ path_p = ycritical.paths[q] ; reroute_critical_nets(path_p,ICCOMPACT_Y) ; } } /* end for( count=1; count <= area_passeS... */ // Move the cells and rebuild the tile database and graph. compact_variable_area() ; } /* () */
InternetCAD.com, Inc. InternetCAD.com, Inc. 2008 2008
} /* end area_minimization() */
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
void detour_minimization(void) {
for( row = 1 ; row <= numRowsG ; row++ ){ comb_a_row(row,obstacles) ; } free_feed_obstacles() ; } /* end detour_minimization() */ void comb_a_row(int row,TILEPLANEPTR obstacles) { // A detour is a C or inverted C. d t fi d t f d t ( ) detours = find_set_of_detours(row) ; // Remove net segments containing the detour // making the virtual pin now unused. remove detour feeds(detours) ; remove_detour_feeds(detours) ; // Determine the set of unused virtual pin locations. feeds = unused_feeds(row,obstacles) ; // Use linear assignment to assign detour // Use linear assignment to assign detour // segment to virtual pins. new_cost = reassign_feeds(row,detours,feeds) ; } /* end comb a row() */
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008
} / end comb_a_row() /
Global routers should do detail placement
Global routers should aid detail routers Global routers should aid detail routers Global routers should aid detail routers Minimize cycles in constraint graphs Minimize cycles in constraint graphs L li t ti l t i t L li t ti l t i t Long range alignment vertical constraints Long range alignment vertical constraints
Simultaneous routing of signals, power and clocks
Variable die and constrained die methodologies to remove congestion remove congestion remove congestion remove congestion
Integral component to floorplanning
InternetCAD.com, Inc. 2008 InternetCAD.com, Inc. 2008