General Routing Overview and Channel Routing

Shantanu Dutt ECE Dept. UIC

References and Copyright (cont.)
• Slides used: (Modified by Shantanu Dutt when necessary) – [©Sarrafzadeh] © Majid Sarrafzadeh, 2001; Department of Computer Science, UCLA – [©Sherwani] © Naveed A. Sherwani, 1992 (companion slides to [She99]) – [©Keutzer] © Kurt Keutzer, Dept. of EECS, UC-Berekeley – [©Gupta] © Rajesh Gupta UC-Irvine – [©Kang] © Steve Kang, UIUC – [©Bazargan] © Kia Bazargan

• 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: • Global routing • Detailed routing • Objectives – Cost components: • Area (channel width) – min congestion in prev levels helped • Wire delays – timing minimization in previous levels • Number of layers (fewer layers  less expensive) • Additional cost components: number of bends, vias

Top view

Routing Anatomy 3D

Symbolic Layout

Metal layer 3 Via
Metal layer 2 Metal layer 1 Note: Colors used in this slide are not standard

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]

Taxonomy of VLSI Routers

Graph Search Steiner Iterative Maze

Restricted River Switchbox Channel General Purpose Maze Line Probe Line Expansion Left-Edge

Power/Gnd Clock




Global Routing
• Stages – Routing region definition – Routing region ordering – Steiner-tree / area routing • Grid – Tiles super-imposed on placement – Regular or irregular – Smaller problem to solve, higher level of abstraction – Terminals at center of grid tiles • Edge capacity – Number of nets that can pass a certain grid edge (aka congestion) – On edge Eij, Capacity(Eij)  Congestion(Eij)




Grid Graph
• Course or fine-grain • Vertices: routing regions, edges: route exists? • Weights on edges – How costly is to use that edge – Could vary during the routing (e.g., for congestion) – Horizontal / vertical might have different weights

t1 t2



t1 t2

t3 t4 1 1 1 1

1 t1 t2


2 t4 1

2 1


Global Routing – Graph Search
• • • • • Good for two-terminal nets Build grid graph (Coarse? Fine?) Use graph search algorithms, e.g., Dijkstra Iterative: route nets one by one How to handle: – Congestion? – Critical nets? • Order of the nets to route? – Net criticality – Half-perimeter of the bounding box – Number of terminals


• Otherwise, depth of VCG is lower bound on channel density • A cycle in the VCG  an unroutable placement unless a net can be routed on more than 1 track

Optimality of the Left Edge Algorithm
Case 2a:
Closest non-ov net to e crosses L

Case 2b:
Closest non-ov net to e does not cross L

s(e) e: Most recently
routed net routed net

e(e) s(e’) s(e’) e’ e’

e: Most recently





Case 1: Max density line L cuts e

Case 2: Max density line L does not cut e

• In Case 1, the density of L reduces by 1 after current track t (e is on t) is routed • In Case 2, let e’ be the net not overlapping e & whose s(e’) is closest to e(e). • Case 2a: If e’ crosses L, then since e’ will be on t, density of L reduces by 1 after t is routed • Case 2b: If not, then the set S(L) of all other nets crossing L are overlapping w/ e (otherwise one of them will be e’ and crossing L, and we will not be in Case 2b). Then there exists another cut line L’ that cuts S(L) and e, and thus have density > density of L, and we reach a contradiction (that L is the max density line) • Thus after current track t is routed, the density of L reduces by 1. This applies to all max density lines. Thus # of tracks needed = density of initial max density line which is a lower bound on # tracks. Hence the Left-Edge algorithm is optimal in the # of tracks ©Dutt

(no arcs in the VCG incoming to Ij)

Update the VCG by deleting Ij from it;

Acyclic VCG Cyclic VCG a b 1b 1a 2

w/ the added flexibility that the new net e’s s(e’) can be = watermark if current net e and e’ belong to the same net