Maze Routing3
Maze Routing3
․Course contents
⎯ Routing basics
⎯ Maze (area) routing
⎯ Global routing
․Readings
⎯ Chapters 9.1, 9.2, 9.5
Filling
Unit 6 1
Y.-W. Chang
Routing
Unit 6 2
Y.-W. Chang
1
Routing 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?
Unit 6 3
Y.-W. Chang
Classification of Routing
Unit 6 4
Y.-W. Chang
2
Maze 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.
․Weaknesses
⎯ Requires large memory for dense layout.
⎯ Slow.
․Applications: global routing, detailed routing
Unit 6 5
Y.-W. Chang
Lee Algorithm
․Find a path from S to T by “wave propagation”.
Filling
․Time & space complexity for an M r N grid: O(MN)
(huge!)
Unit 6 6
Y.-W. Chang
3
Reducing Memory Requirement
․ Akers's Observations (1967)
Adjacent labels for k are either k-1 or k+1.
⎯
⎯ Want a labeling scheme such that each label has its preceding
Unit 6 7
Y.-W. Chang
Unit 6 8
Y.-W. Chang
4
Connecting Multi-Terminal Nets
․Step 1: Propagate wave from the source s to the closet
target.
․Step 2: Mark ALL cells on the path as s.
․Step 3: Propagate wave from ALL s cells to the other
cells.
․Step 4: Continue until all cells are reached.
․Step 5: Apply heuristics to further reduce the tree cost.
Unit 6 9
Y.-W. Chang
Unit 6 10
Y.-W. Chang
5
A Routing Example on a Weighted Grid
Unit 6 11
Y.-W. Chang
Hadlock's Algorithm
․ Hadlock, “A shortest path algorithm for grid graphs,”
Networks, 1977.
․ Uses detour number (instead of labeling wavefront in Lee's
router)
⎯ Detour number, 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, l(P): l(P) = MD(S, T) + 2 d(P).
⎯ MD(S, T) fixed! ⇒ Minimize d(P) to find the shortest path.
⎯ For any cell labeled i, label its adjacent unblocked cells away
from T i+1; label i otherwise.
․ Time and space complexities: O(MN), but substantially
reduces the # of searched cells.
․ Finds the shortest path between S and T.
Unit 6 12
Y.-W. Chang
6
Hadlock's Algorithm (cont'd)
․ 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, l(P): l(P) = MD(S, T) + 2d(P).
․ MD(S, T) fixed! ⇒ Minimize d(P) to find the shortest path.
․ For any cell labeled i, label its adjacent unblocked cells
away from T i+1; label i otherwise.
Unit 6 13
Y.-W. Chang
Soukup's Algorithm
․ Soukup, “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 Lee's algorithm.
․ Find a path between S and T, but may not be the shortest!
Unit 6 14
Y.-W. Chang
7
Features of Line-Search Algorithms
Unit 6 15
Y.-W. Chang
Mikami-Tabuchi's Algorithm
․Mikami & Tabuchi, “A computer program for optimal
routing of printed circuit connectors,” IFIP, H47, 1968.
․Every grid point is an escape point.
Unit 6 16
Y.-W. Chang
8
Hightower's 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.
Unit 6 17
Y.-W. Chang
Comparison of Algorithms
Unit 6 18
Y.-W. Chang
9
Multi-Layer Routing
․3-D grid:
Unit 6 19
Y.-W. Chang
Net Ordering
․Net ordering greatly affects routing solutions.
․In the example, we should route net b before net a.
Unit 6 20
Y.-W. Chang
10
Net Ordering (cont'd)
․ Order the nets in the ascending order of the # of pins within their
bounding boxes.
․ Order the nets in the ascending (or descending??) order of their
lengths.
․ Order the nets based on their timing criticality.
Unit 6 21
Y.-W. Chang
routed nets.
2. Route the blocked connections, and re-route the
ripped-up connections.
․ Repeat the above steps until all connections are
routed or a time limit is exceeded.
Unit 6 22
Y.-W. Chang
11
Graph Models for Global Routing: Grid Graph
․Each cell is represented by a vertex.
․Two vertices are joined by an edge if the corresponding
cells are adjacent to each other.
․The occupied cells are represented as filled circles,
whereas the others are as clear circles.
Unit 6 23
Y.-W. Chang
Unit 6 24
Y.-W. Chang
12
Global-Routing Problem
․Given a netlist N={N1, 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 is
minimized, where
⎯ c(ej): capacity of edge ej;
⎯ xij=1 if ej is in Ti; xij = 0 otherwise;
⎯ : # of wires that pass through the channel
corresponding to edge ej;
⎯ L(Ti): total wirelength of Steiner tree Ti.
․For high-performance, the maximum wirelength
( ) is minimized (or the longest path between
two points in Ti is minimized).
Unit 6 25
Y.-W. Chang
Unit 6 26
Y.-W. Chang
13
Global 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.
Unit 6 27
Y.-W. Chang
Unit 6 28
Y.-W. Chang
14
Global Routing in FPGA
․Objective
⎯ Guarantee 100% routability.
⎯ Consider switch-module architectural constraints.
․For performance-driven routing,
⎯ Minimize # of switches used.
⎯ Minimize the maximum wire length.
⎯ Minimize the maximum path length.
Unit 6 29
Y.-W. Chang
Unit 6 30
Y.-W. Chang
15
The Routing-Tree Problem
․ Problem: Given a set of pins of a net, interconnect the pins by a
“routing tree.”
Unit 6 31
Y.-W. Chang
Unit 6 32
Y.-W. Chang
16
A Simple Performance Bound
Unit 6 33
Y.-W. Chang
Unit 6 34
Y.-W. Chang
17
Iterated 1-Steiner Heuristic for MRST
․ Kahng & Robins, “A new class of Steiner tree heuristics with good
performance: the iterated 1-Steiner approach,” ICCAD-90..
Algorithm: Iterated_1-Steiner(P)
P: set P of n points.
1 begin
2 S ← ∅;
/* H(P ∪ S): set of Hanan points */
/* ∆MST(A, B) = Cost(MST(A)) - Cost(MST(A ∪ B)) */
3 while (Cand ← {x ∈ H(P ∪ S)| ∆ MST(P ∪ S, {x}) > 0 } ≠ ∅ ) do
4 Find x ∈ C and which maximizes ∆ MST(P ∪ S), {x});
5 S ← S ∪ {x};
6 Remove points in S which have degree ≤ 2 in MST(P ∪ S);
7 Output MST(P ∪ S);
8 end
Remove
degree-2 node
Unit 6 35
Y.-W. Chang
18