190 likes | 284 Views
Sidewinder A Scalable ILP-Based Router. Jin Hu, Jarrod A. Roy, and Igor L. Markov SLIP ’ 08. Outline. Introduction Routing Approaches Sidewinder ■ Algorithm Design ■ ILP formulation Empirical validation Conclusion. Introduction. Two main approaches of global routing - heuristics
E N D
SidewinderA Scalable ILP-Based Router Jin Hu, Jarrod A. Roy, and Igor L. Markov SLIP’08
Outline • Introduction • Routing Approaches • Sidewinder ■Algorithm Design ■ILP formulation • Empirical validation • Conclusion
Introduction • Two main approaches of global routing - heuristics - (integer) linear programming • Sidewinder is good at finding routes with minimal via count • via - impacts timing and may block several routing tracks
Introduction • An iterative , congestion-driven ILP-based advanced pattern router • Pattern router - L shape - Z shape - C shape • Sidewinder’s pattern routes allow at most three bends per two-pin nets
Metal 2: Horizontal tracks • Directional preference on each metal layer • Bends require change in metal layers → vias □Tungsten vs. copper or aluminum □More resistant , larger area, less reliable Metal 1: Vertical tracks via
Routing Approaches • Pattern Routing - reduces the problem’s solution space and improves runtime - each net is limited to a small number of shapes - minimizes the via count • Maze Routing - uses standard search algorithms such as BFS - must be applied many times with net orderings • SAT- and ILP-based Routing - modeling routing constraints by Boolean formulas in CNF - a faster ILP solver may facilitate a more comprehensive ILP formulation
Gcell (0,0) Sidewinder • Problem Framework - Routing grid G with capacities Y x
. . . Net 1 Net 2 Net n Sidewinder • Problem Framework - net list N with n nets
Initial Routing Generate Congestion Map Path Selection for ILP ILP Routing Improve? Final Routing Algorithm1 Sidewinder • Breaks up multi-pin nets into subnets • using FLUTE • Routes with L-shape initially • Calculates total congestion • Chooses best 2 options for each net • ILP route for new solution New solution is never worse than previous • Repeats until no improvement yes no • Routes remaining nets with maze router • Allows overflow
Path Selection Sidewinder
2 2 2 2 2 2 2 2 2 0.2 2 2 2 2 2 0.2 2 2 2 2 capacity = 2 Sidewinder • Create congestion map - for each routed net, edge capacity = (total capacities – usage*0.9)
1.5 0.5 1 -0.3 1.2 Sidewinder Pathfree = 0 Pathtotal = 3 Pathfree = 0 Pathtotal = 1.5 Pathfree = -1 Pathtotal = 3 Pathfree = 0 Pathtotal = 2 Pathfree = -1 Pathtotal = 4.2 pathFree: minimum number of free segments pathTotal: total number of free segments
ILP Formulation Maximizes total number of nets routed Ensures at most 1 path is selected Capacity constraint in N direction Capacity constraint in S direction Capacity constraint in E direction Capacity constraint in W direction
Empirical Validation • ILP only
single pass of a maze router Empirical Validation
Empirical Validation ibm03 ibm10
Conclusions • Propose the first ILP router that can handle the entire global routing grid • Introduce C shape pattern to significantly improve routability • Sidewinder is adept at handling pricing for vias