You are on page 1of 26

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 es s(e) can be = watermark if current net e and e belong to the same net