190 likes | 288 Vues
Sidewinder is a sophisticated ILP-based router designed for advanced pattern routing with minimal via count. This router excels in finding routes with minimal vias, impacting timing and routing tracks. The algorithm leverages an iterative, congestion-driven ILP-based approach, utilizing patterns like L, Z, and C shapes, allowing at most three bends per two-pin nets. Sidewinder breaks up multi-pin nets into subnets, initially routing with L-shapes and then optimizing via ILP formulation. The empirical validation includes single-pass maze router integration and case studies on IBM03 and IBM10 layouts, showing significant improvement in routability. Sidewinder proves adept at handling vias pricing efficiently while maximizing the total number of routed nets.
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