Title: CSE%20494:%20Electronic%20Design%20Automation
1CSE 494 Electronic Design Automation
2Routing
placement
- Generates a loose route for each net.
- Assigns a list of routing regions to each net
without specifying the actual layers of wires. - Finds the actual geometric layout of each net
within the assigned routing regions.
global Routing
Global Routing
detailed Routing
compaction
Detailed Routing
3Routing Constraints
- 100 routing completion area minimization,
under a set of constraints - Placement constraint usually based on fixed
placement - Number of routing layers
- Geometrical constraints must satisfy design
rules - Timing constraints (performance-driven routing)
must satisfy delay constraints - Crosstalk?
Two-layer routing
Geometrical constraint
4Classification of Routing
R O U T E R S
5Maze Router Lee Algorithm
- Lee, An algorithm for path connection and its
application, IRE Trans. Electronic Computer,
EC-10, 1961 - Discussion mainly on single-layer routing
- Strengths
- Guarantee to find connection between 2 terminals
if it exists - Guarantee minimum path
- Weakness
- Requires large memory for dense layout
- Slow
- Applications global routing, detailed routing
6Lee Algorithm
- Find a path from S to T by wave propagation
Filing
Retrace
- Time space complexity for an M X N grid O(M N)
(huge!)
7Reducing Memory Requirement
- Akerss Observation (1967)
- Adjacent labels for K are either k - 1 or k 1
- Want a labeling scheme such that each label has
its preceding label different from its succeeding
label - Way 1 coding sequence 1,2,3,1,2,3, states
1,2,3, empty, blocked (3 bits required) - Way 2 coding sequence 1,1,2,2,1,1,2,2 states
1,2, empty, blocked (only 2 bits)
sequence 1,2,3,1,2,3,
sequence 1,1,2,2,1,1,2,2
8Reducing Running Time
- Starting point selection Choose the point
farthest from the center as the starting point. - Double fan out Propagate waves from both fan out
and target cells. - Framing Search inside a rectangle area 10-20
larger than the bounding box containing the
source and target. - --Need to enlarge the rectangle and redo if the
search fails
9Connecting Multiple Terminal Nets
Step 1 Propagate wave from the source s closest
target Step 2 Mark ALL cells on the path as
s Step 3 Propagate wave from ALL s cells to
other cells Step 4 Continue until all cells are
reached Step 5 Apply heuristics to further
reduce the tree cost.
10Routing on a Weighted Grid
Motivation Finding more desirable
paths Weight(grid,cells) unblocked grid cell
segments -1
11A Routing Example on a Weighted Grid
Initialize cell weights
Wave propagation
First wave reaches target
Finding other paths min-cost path found
12Hadlocks Algorithm
- Hadlock, A shortest path algorithm for grid
graphs, Networks, 1977. - Uses detour number (instead of labeling wave
front in Lees router. - Detour number, d(P) of grid cells directed
away from its target on path P - M D(S,T) fixed! ? Minimize d(P) to find the
shortest path. - Path length of P, I(P) M D(S,T) 2d(P)
- For any cell labeled i, label its adjacent
unblocked cells away from Ti1, label i
otherwise. - Time and space complexities O(MN), but
substantially reduces the of searched cells. - Find the shortest path between S and T.
13Hadlocks Algorithm
- D(P) of grid cells directed away from its
target on Path P. - MD(S,T) the Manhattan distance between S and T.
- Path length of P, I(P) M D(S,T) 2d(P)
- M D(S,T) fixed! ? Minimize d(P) to find the
shortest path. - For any cell labeled i, label its adjacent
unblocked cells away from Ti1, label i otherwise.
14Soukups Algorithm
- Scoukup, Fast maze router, DAC-78
- Combined breadth-first and depth-first search
- Depth-first (line) search is first directed
toward target T until an obstacle or T is reached - Breadth-first (Lee-type) search is used to
bubble around an obstacle if an obstacle is
reached - Time and space complexities O(MN), but 10-50
times faster than Lees algorithm - Find A path between S and T, but may not be the
shortest!
15Features of Line-Search Algorithms
Works on line segment
Lines generated by escape points
source
target
generate lines
generate lines
Every point is An escape point
One escape point Per line segment
Set A
Set B
Some line From B
Some line From A
intersect
Mikami-Tabuchi
Hightower
Path is found
- Time and space complexities O(L), where L is
the of line segments generated
16Mikami- Tabuchis Algorithm
- Mikami Tabuchi, A computer program for optimal
routing of printed circuit connectors. IFIP,
H47, 1968 - Every grid point is an escape
17Hightowers Algorithm
- Hightower, A solution to line-routing problem on
the continuous plane, DAC-69 - A single escape point on each line segment
- If a line parallels to the blocked cells, the
escape point is placed just past the endpoint of
the segment
18(No Transcript)
19Comparison of Algorithms
Maze Soukup Hadlock Mikami Hightower
Time O(MN) O(MN) O(MN) O(L) O(L)
Space O(MN) O(MN) O(MN) O(L) O(L)
Finds path if one exists? yes yes yes yes no
Is the path shortest? yes no yes no no
Works on grids or lines? grid grid grid line line
- Soukup, Mikami, and Hightower all adopt some sort
of line-search operations gt cannot guarantee
shortest paths
20Multilayered Routing
- 3-D grid
- Two Planer arrays
- Neglect the weight of inter-layer connections
through via. - Pins are accessible from both layers.
21Multilayered Routing
22Net Ordering
- Net ordering greatly affects routing solutions
- In the example, we should route net b before
net a
23Net Ordering
24Net Ordering
- Order the nets in the ascending order of the
number of pins within their bounding boxes - Order the nets in their ascending (or descending
?) order of their lengths - Order the nets based on their timing criticality
25Net Ordering
- A mutually intervening case
26Rip-up and Re routing
- Rip up and re routing is required if a global or
a local router fails to route all nets - Approach Manual or Automated
- Two steps in rip-up and re-routing
- Identify bottleneck regions, rip-off some already
routed nets - Route the blocked connections, then re-route the
ripped connections - Repeat the two steps until all connections are
routed, or a time limit is exceeded
27Graph Models for Global Routing Grid Graph
- Each cell is denoted by a vertex
- Two vertices are joined by an edge if they are
adjacent to each other - The occupied cells are represented as filled
circles, while the unoccupied cells are
represented by empty circles
28Graph Model Channel Intersection Graph
- Channels are represented as edges
- Channel intersections are represented as vertices
- Edge weight denotes channel capacity
- Extended channel intersection graph terminals
are also represented as vertices
29Global Routing Problem
- Given a netlist NN1, N2,.,Nn , a routing
graph G (V, E), find a Steiner tree Ti for
each net Ni , 1? i ? n, such that U(ej) ? c(ej),
?ej ? E and ?ni1 L(Ti) is minimized, where - c(ej) capacity of edge ej
- xij 1 if ej is in Ti xij 0 otherwise
- U(ej) ?ni1 xij of wires that pass through
the channel corresponding to the ej - L(Ti) total length of Steiner tree Ti
- For high-performance, the maximum wirelength
(maxni1 L(Ti) ) is minimized (or the longest
path between two points in Ti is minimized)
30Global Routing in different Design Styles
global routing
full custom
standard cell
gate array
FPGA
flexible channels most general problem
flexible channels fixed feedthroughs
fixed channels
fixed routing tracks switchbox constraints
31Global Routing in Standard Cell
- Objective
- Minimize total channel height
- Assignment of feedthrough Placement ? Global
Routing? - For high performance,
- Minimize the maximum wire length
- Minimize the maximum path length
feedthrough
failed net
32Global Routing in Gate Array
- Objective
- Guarantee 100 routability.
- For high performance
- Minimize the maximum wire length
- Minimize the maximum path length
Each Channel has a capacity of 2 tracks
33Global Routing in FPGA
- Objective
- Guarantee 100 routability.
- Consider switch-mobile architectural constraints.
- For performance-driven routing,
- Minimize of switches used
- Minimize the maximum wire length
- Minimize the maximum path length
Each Channel has a capacity of 2 tracks
34Classification of Global-Routing Algorithm
- Sequential approach Assigns priority to nets
routes one net at a time based on its priority
(net ordering?). - Concurrent approach All nets are considered at
the same time (complexity?).
35Global Routing Maze Routing
- Routing channels can be modeled by a weighted
undirected graph called channel connectivity
graph - Channel node, edge connection between
channels, capacity weight
36Global Routing by Integer Programming
- Suppose that for each net i, there are n(i)
possible trees t(i,1) , t(i,2) t (i,n) - Constraint 1 For each net i, only one t(i,j)
will be selected - The capacity of each cell boundary c(i) is not
exceeded - Minimize the total tree cost
- Feasible for practical problem sizes?
- Key Hierarchical approach
37An Integer Programming Example
Boundary t11 t21 t31 t12 t22 t32 t13 t23
B1 B2 B3 B4 0 1 0 1 1 0 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 1 0 1 1 1 0 0 0 0 1 1
- gi,j Cost of tree tij gt g1,1 2, g1,2 3, g1,3
3, g2,1 2, g2,2 3, g2,3 3, g3,1 2, g3,2
2.
Minimize 2x1,1 3x1,2 3x1,3 2x2,1 3x2,2
3x2,3 2x3,1 2x3,1 Subject to
x1,1 x1,2 x1,3 1 (Constraint I
t1) x2,1 x2,2 x2,3 1
(Constraint I t2) x3,2 x3,2
1 (Constraint I t3) x1,2
x1,3 x2,1 x2,3 x3,1 lt 2 (Constraint II
B1) x1,1 x1,3 x2,2 x2,3
x3,1 lt 2 (Constraint II B2) x1,2
x1,3 x2,1 x2,2 x3,2 lt 2 (Constraint
II B3) x1,1 x1,2 x2,2 x2,3
x3,2 lt 2 (Constraint II B4)
xi,j 0,1,1 lt i, j lt 3
38Hierarchical Global Routing
- Marek-Sadowska, Router planner for custom chip
design, ICCAD, 86. - At each level of the hierarchy, an attempt is
made to minimize the cost of nets crossing cut
lines. - At the lowest level of the hierarchy, the layout
surface is divided into R x R grid regions with
boundary capacity equal to C tracks. - Let Rl be the of grid regions of a given cut
line l a cut line can be divided into M Rl/C
sections. - Global routing can be formulated as a linear
assignment problem - - xi,j 1 if net i is assigned to
section j xi,j 0 otherwise - - Each net crosses the cut line exactly
once Smj1 xjj 1,1 lt i lt N. - - Capacity constraint of each section
Sni1 xij lt C,1 lt i lt M. - - wi,j cost of assignment net i to
section j. Minimize Sni1 Smj1 wij xij
39The Routing-Tree Problem
- Problem Given a set of net, interconnect the
pins by a routing tree.
- Minimum Rectilinear Steiner Tree (MRST) Problem
Given n points in the plane, find a
minimum-length tree of rectilinear edges which
connects the points. - MRST(P) MST(P U S), where P and S are the sets
of original points and Steiner points,
respectively
40Theoretic Results for MRST Problem
- Hanans Thm There exists an MRST with all
Steiner points (set S) chosen from the
intersection points of horizontal and vertical
lines drawn points of P. - - Hanan, On Steiners problem with
rectilinear distance, SIAM J. Applied Math.,
1966. - Hwangs Thm For any point set P,cost(MST(P))/Cost
(MRST(P))lt 3/2. - - Hwang, On Steiners minimal tree with
rectilinear distance, SIAM J. Applied Math.,
1976. - Best existing approximation algorithm Performs
bound 61/48 by Fossmeier et al. - - Fossmeier et al, Fast approximation
algorithm for rectilinear Steiner problem,
Wilhelm Scickard-Institut fur informatik, TR
WSI-93-14, 93. - - Zelikovsky, An 11/6 approximation
algorithm for the network Steiner problem,
Algorithmica., 1993.
41A Simple Performance Bound
- Easy to show that cost(MST(P))/cost(MRST(P)) lt
2. - Given any MRST T on points set P with a Steiner
point set S, construct a spanning tree T on P as
follows - Select any point in T as a root.
- Perform a depth-first traversal on the rooted
tree T. - Construct T based on the traversal.
42Coping with MRST problem
- Ho, Vijayan, Wong, New algorithms for the
rectilinear Steiner problem, IEEE TCAD, 1990. - Construct an MRST from an MST.
- Each edge is straight or L-shaped.
- Maximize overlaps by dynamic programming.
- About 8 smaller that Cost(MST).
43The Iterated 1-Steiner heuristic for the MRST
problem
- Smith Liebman, Steiner trees, Steiner Circuits
and the interference problem in the building
design, Engineering optimization 4, 1979. - Extended by Kahng Robins, A new class of
Steiner tree heuristics with good performance
the iterated 1-Steiner approach, ICCAD, 1990.
- Algorithm Iterated_1-Steiner(P)
- P set P of n points.
- Begin
- S lt F / H(P U S) set of Hanan points /
- / ?MST(A,B) Cost(MST(A))
Cost(MST(A U B)) / - While (Cand lt x H(P U S) ?MST (P U S,xgt0
! F) do - Find x C and which maximizes ?MST(P U
S), x) - s lt s U x
- Remove points in S which have degree lt
2 in MST(P U S) - Output MST(P U S)
- end
44Bounded-Radius (-Diameter) Minimum Spanning Tree
- Problem Given a problem e gt 0 and a signal net
with radius R (diameter D), find a minimum-cost
spanning tree T with radius r(T) lt (1e)R (d(t)
lt (1 e)D). - - Awerbuch, et al., Cost-sensitive analysis
of communication protocols, ACM symp. Principles
of Distributed Computing, 1990. - - Cong, Kahng, Robins, Sarrafzadeh, Wong,
Performance-driven global routing for cell based
ICs, ICCD-91 ( TCAD, June 1992). - MST (minimun spanning tree) ?? minimum cost SPT
(shortest path tree) ?? minimum radius. - Question How to find a spanning tree with a
good trade-off between cost and radius ?
Cost(T) 1251211 Radius(T)max12,151,15
28
45MST vs SPT Trade-off
- Cost(SPT) may be O (n) times larger than cost
(MST). -
Cost(SPT)
T(n)
Cost(MST)
r(T) lt (1e)R
e 0 Cost 17 Radius 6
e 1 Cost 15 Radius 10
e infinite Cost 14 Radius 14
46Algorithm Bounded-Radius Bounded-Cost Spanning
Tree(G)
- begin
- Compute MSTG and SPTG
- Q lt MSTG
- L lt depth-first tour of MSTG
- S lt 0
- for i lt 1 to (L - 1)
- S lt S cost (Li , Li1)
- if S gt e . distG(s , Li1) then
- Q lt Q ? minpathG(s , Li1)
- S lt 0
- T shortest path tree of Q
- end
L depth-first tour of MST cost(L) 2 cost(MSTG)
47Bounded-Radius Bounded-Cost Spanning Tree(G)
- For any weighted graph and parameter e, the
routing tree T constructed by algorithm has
radius r(T) lt (1 e) R. - vi 1 the last node before v on L for which we
added minpathG(s,vi-1) to Q. - distT lt distT(s,vi-1)
distL(vi-1, v) - lt distG(s,vi-1) e R
- lt R e R
- (1 e) R
48Bounded-Radius Bounded-Cost Spanning Tree
- For any weighted graph and parameter e, the
routing tree T constructed by algorithm has cost
cost(T) lt (12/e) cost(MSTG). - Let v1, v2,., vm be the set of nodes to which
the algorithm added the shorted paths from source
s.
m
cost(T) lt cost(MSTG) S distG (s,vi)
i 1
distL (vi-1,vi) gt e distG (s,vi)
m
cost(T) lt cost(MSTG) S distG (vi-1,vi)
i 1
e
lt cost(MSTG) cost(L)
e
lt cost(MSTG) 2 . cost(MSTG)
e
lt (12/e) cost(MSTG).
49Channel and Switchbox Routing
50Order of Routing Regions and N-Channels
- No conflicts in case of routing in the order of
1, 2, and 3 - No ordering is possible to avoid conflicts
- The saturation of (b) can be resolved by using
L-channels - An L-channel can be decomposed into a channel and
a switchbox
Switchbox
1
2
(d)
51Routing Considerations
- Number of terminals (two-terminals vs.
multi-terminal nets) - Net widths (power and ground vs. signal nets)
- Via restrictions (stacked vs. conventional vias)
- Boundary types (regular vs. irregular)
- Number of layers (two vs. three, more layers?)
- Net types (critical vs. non-critical nets)
52Routing Models
- Grid-based model
- A grid is super-imposed on the routing region.
- Wires follow paths along the grid lines.
- Gridless model
- Any model that does not follow the gridded
approach
gridless
grid-based
53Models for Multi-Layer Routing
- Unreserved layer model Any net segment is
allowed to be placed in any layer. - Reserved layer model Certain types of segments
are restricted to particular layer(s). - Two-layer HV (horizontal-Vertical), VH
- Three-layer HVH, VHV
3 types of 3-layer models
54Terminology for Channel Routing Problems
- Local density at column i total of nets that
crosses column i - Channel density maximum local density of
horizontal tracks required gt channel density
55Channel Routing Problem
- Assignments of horizontal segments of nets to
tracks. - Assignments of vertical segments to connect.
- horizontal segments of same nets in different
tracks, and - the terminals of the net to horizontal segments
of the net. - Horizontal and vertical constraints must not be
violated. - Horizontal constraint between two nets The
horizontal span of the two nets overlap each
other. - Vertical constraint between two nets There
exists a column such that a terminal on top of
the column belongs to one net and the terminal at
the bottom of the column belongs to the other
net. - Objective Channel height is minimized ( i.e.
channel area is minimized)