EE Prof. Dae Hyun Kim School of Electrical Engineering and Computer Science Washington State University Routing
Grid Routing
Grid Routing
Grid Routing
Grid Routing
Grid Routing Lee s algorithm (Maze routing) Grid routing If a path exists between two points, it is surely found. It is guaranteed to be the shortest available path. Filling (wave propagation) Retrace Label clearance
Grid Routing T S
Grid Routing Filling T S
Grid Routing Filling T S 9
Grid Routing Filling T S 0
Grid Routing Filling T S
Grid Routing Filling S T
Grid Routing Filling S T
Grid Routing Filling S T
Grid Routing Filling S T
Grid Routing Retrace S T
Grid Routing Complexity O(L ) L: the length of the path
Grid Routing How to reduce memory requirement (,,,,...) S T
9 Grid Routing How to reduce memory requirement (,,,,...) S T
0 Grid Routing How to reduce runtime S T
Grid Routing T S S T Starting point selection T T S S Double fan-out Framing
Grid Routing Speed-up l(p) = MD(S, T) + d(p) l: the length of a path P MD: Manhattan distance d(p): detour number of a path P S T MD(S,T)= d(p)= l(p)=+*=
Grid Routing Hadlock s algorithm T S 0 0
Grid Routing Hadlock s algorithm S 0 0 T
Grid Routing Hadlock s algorithm T S 0 0
Grid Routing Hadlock s algorithm T S 0 0
Grid Routing Soukup s algorithm T S 0 0
Grid Routing Soukup s algorithm S 0 0 T
9 Grid Routing Soukup s algorithm S T 0 0
0 Grid Routing Soukup s algorithm S T 0 0
Steiner Routing Routing topology generation for multi-fanout nets Steiner point
Steiner Routing Routing topology generation for multi-fanout nets
Steiner Routing 00 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 00
Steiner Routing 00 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 00
Steiner Routing FLUTE: Fast Lookup Table Based Rectilinear Steiner Minimal Tree Algorithm for VLSI Design, TCAD 0
FLUTE yy yy yy yy yy xx xx xx xx xx
FLUTE yy Horizontal edge yy yy vv vv yy yy vv h h h xx xx xx xx xx Vertical edge
FLUTE yy yy yy ss = ss = yy yy ss = ss = xx xx xx xx xx Characterization of the topology: ()
FLUTE () () () () () () () () 9
FLUTE WL=h + h + h + vv + vv + vv WL=h + h + h + vv + vv + vv WL=h + h + h + vv + vv + vv WL=aa h + aa h + aa h + bb vv + bb vv + bb vv 0
FLUTE Example WL=h + h + h + vv + vv + vv = (,,,,,) WL=h + h + h + vv + vv + vv = (,,,,,)
FLUTE POST Potentially Optimal Steiner Tree POWV Potentially Optimal Wirelength Vector
FLUTE POWV comparison (,,,,,) (,,,,,)
FLUTE How to obtain the minimum-length Steiner tree Create a look-up table. When a topology is given, get the best one. How can we generate all POSTs? For low-degree nets (# points =,,,...) Enumerate all POSTs. For high-degree nets Use compaction.
FLUTE Boundary compaction Left boundary compaction Steiner tree Expansion
FLUTE Left boundary compaction Top boundary compaction Bottom boundary compaction Right boundary compaction Steiner tree Expansion Expansion Expansion Expansion
FLUTE Left boundary compaction vs
ILP-Based Global Routing Problem formulation Layout Capacity of each edge:
ILP-Based Global Routing Routing topology generation Potential routing topologies for net Potential routing topologies for net Potential routing topologies for net 9
ILP-Based Global Routing ILP formulation For net i, prepare a few routing topologies. xx ii,jj tt ii, tt ii,, tt nn ii if net i is routed according to topology tt jj ii. 0 otherwise. xx ii,jj jj = Only one routing topology is used. 0
ILP-Based Global Routing ILP formulation Capacity constraints aa ii,pp xx ll,kk cc ii Objective function Minimize gg ii,jj xx ii,jj
ILP-Based Global Routing Example net Minimize xx, + xx, + xx, + xx, + xx, + xx, + xx, + xx, net xx, xx, xx, Subject to xx, + xx, + xx, = xx, + xx, + xx, = xx, + xx, = net xx, xx, xx, xx, + xx, + xx, + xx, + xx, xx, + xx, + xx, + xx, + xx, xx, + xx, + xx, + xx, + xx, xx, + xx, + xx, + xx, + xx, xx, xx, xx ii,jj = 0,
Congestion Minimization Just satisfying the routing capacity of each edge does not guarantee 00% routability. Can we minimize routing congestion by ILP?
Congestion Minimization We minimize routing congestion by spreading wires out. net net net xx, xx, xx, xx, xx, xx, xx, xx, Minimize C Subject to xx, + xx, + xx, = xx, + xx, + xx, = xx, + xx, = xx, + xx, + xx, + xx, + xx, CC xx, + xx, + xx, + xx, + xx, CC xx, + xx, + xx, + xx, + xx, CC xx, + xx, + xx, + xx, + xx, CC xx ii,jj = 0,
Box Router