Sei sulla pagina 1di 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
http://www-cad.eecs.berkeley.edu/~niraj/ee244/index.htm
[Gupta] Rajesh Gupta
UC-Irvine
http://www.ics.uci.edu/~rgupta/ics280.html
[Kang] Steve Kang, UIUC http://www.ece.uiuc.edu/ece482/
[Bazargan] Kia Bazargan

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:
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
Bazargan

Routing Anatomy
3D
view

Top
view

Symbolic
Layout

Metal layer 3
Via
Metal layer 2
Metal layer 1

Note: Colors used


in this slide are not
standard
Bazargan

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


Routers
Global
Graph
Search
Steiner

Detailed
Restricted

Iterative
Maze

Hierarchical

Specialized

General
Purpose

River

Maze

Switchbox

Line Probe

Channel

Line Expansion

Greedy

Power/Gnd
Clock

Left-Edge
[Keutzer]

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)
Steiner routing is generally performed on the
routing graph using edge lengths as cost and
considering edge capacities

[Sarrafzadeh]

M2
M1

M3

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

t3

t4

t1 t2

1
t1 t2

t3

2
t4

t3
t4
1

2
1

1
1

1
[Sherwani]

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

Bazargan

(2-side
routing,
solvable
optimally in
linear time
w/o vertical
constraints)

switch-boxes
(maroon) in rest
if the areas

(4-side routing, requires Steiner


channels (blue)
covering adjacent routing, NP-hard)
overlapping module
boundary pairs

Dutt for channel


& sw-box definition
in the left figure

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

Optimality of the Left Edge Algorithm

Case 2b:

Case 2a:

Closest non-ov
net to e crosses L

s(e)

Closest non-ov
net to e does not
cross L

e(e)

e: Most recently

e: Most recently

routed net

routed net

s(e)
s(e) e

S(L)

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 #
Dutt
tracks. Hence the Left-Edge algorithm is optimal in the # of tracks

Update the VCG by deleting all Ij s (and their arcs) routed in track t-1 > 0;

(no arcs in the


VCG incoming to Ij)

Acyclic VCG

Cyclic VCG

1a
a

2
b
1b

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

Potrebbero piacerti anche