VLSI Routing
Routing Problem Given a placement, and a fixed number of metal layers, find a valid pattern of horizontal and vertical wires that connect the terminals of the nets Levels of abstraction: oGlobal routing oDetailed routing Objectives Cost components: oArea (channel width) oWire delays oNumber of layers oAdditional cost components: number of bends, vias
Global vs. Detailed Routing Global routing Input: detailed placement, with exact terminal locations Determine “channel” (routing region) for each net Objective: minimize area (congestion), and timing (approximate) Detailed routing Input: channels and approximate routing from the global routing phase Determine the exact route and layers for each net Objective: valid routing, minimize area (congestion), meet timing constraints Additional objectives: min via, power Figs. [©Sherwani]
Routing Environment Chip architecture Full-custom Standard cell Gate Array
Routing Environment Chip architecture Full-custom: oNo constraint on routing regions Objective functions are the objective functions of general routing problem. Routability Area Minimization Total wire length minimization Maximum wire length minimization
Routing Environment Chip architecture Standard cell: oVariable channel height? oFeed-through cells connect channels Failed net Channel Feedthroughs Channels do not have predetermined capacity Feedthroughs have predetermined capacty Area minimization Minimization to total wire length Minimization of maximum wire lenght
Routing Environment Chip architecture Gate Array: oFixed channel height oLimited switchbox connections oPrefabricated wire segments have different weights Figs. [©Sherwani] Tracks Failed connection Routability Minimize total wire length Minimize maximum wire length
Maze Routing (Lee Algorithm) Similar to breadth-first search Very simple algorithm Works on grid graph Time complexity: grid size (NxN) Algorithm Propagate a “wave” from source until hit the sink (implemented using a queue) Trace back to find the path Guaranteed to find the optimal solution Usually multiple optimal solutions exist More than two terminals? For the third terminal, use the path between the first two as the source of the wave s t
Maze Routing Key to popularity: Simplicity Guaranteed to find the optimal solution Can realize more complex cost functions too (e.g., number of bends in a path) Weakness: Multiple terminals not handled efficiently Dependent on grid, a two dimensional data structure Different variations exist Soukup’s alg: oFirst use DFS, when get to an obstacle, use BFS to get around oNo guarantee to find the shortest path
Multiple Terminal Nets A E B C D
D E C B A
D E C B A
D E C B A
Finding More Desirable Paths
Finding More Desirable Paths
Finding More Desirable Paths
Finding More Desirable Paths
Speed Improvement ST
Hadlock’s Algorithm S T
Soukup’s Algorithm S T
Line Search (Probe) Algorithm Mikami-Tabuchi’s Algorithm
Line Search (Probe) Algorithm Hightower’s Algorithm
Multi Terminal Nets Steiner Tree Steiner tree Steiner point MST Rectilinear Steiner Tree Minimize Wire length