260 likes | 378 Views
ELEN 468 Advanced Logic Design. Lecture 28 Interconnect Timing Optimization III. Dependence on Steiner Tree. Timing critical. Timing critical. Rectilinear Steiner Minimum Tree. Given a signal net, find the best tree connecting them Minimize wire area Wire area implies Cost
E N D
ELEN 468Advanced Logic Design Lecture 28 Interconnect Timing Optimization III ELEN 468 Lecture 28
Dependence on Steiner Tree Timing critical Timing critical ELEN 468 Lecture 28
Rectilinear Steiner Minimum Tree • Given a signal net, find the best tree connecting them • Minimize wire area • Wire area implies • Cost • Capacitive load delay • Find Steiner minimum tree Spanning tree Steiner node Steiner tree ELEN 468 Lecture 28
Hanan Grid and Hanan Theorem • Hanan grid • Draw vertical and horizontal lines through all pins • Hanan Theorem • There is always a Steiner minimum tree on Hanan grid ELEN 468 Lecture 28
Iterative 1-Steiner Algorithm • In each step, add one Steiner node such that the spanning tree is minimized ELEN 468 Lecture 28
Area or Radius? Radius: the longest source-sink path length • Dijkstra’s shortest path tree • Short path to sinks • Large total wire length • Prim’s minimum spanning tree • Small total wire length • Long path to sinks ELEN 468 Lecture 28
Area Radius Trade-off • Find a solution in middle • Not too much area • Not too long radius • How to find an ideal point? ELEN 468 Lecture 28
d(i,j) Prim’s and Dijkstra’s Algorithms • d(i,j): length of edge (i, j) • p(i): length of path from source to i • Prim: min d(i,j) Dijkstra: min d(i,j) + p(i) p(i) i j ELEN 468 Lecture 28
The Prim-Dijkstra Trade-off • Prim: add edge minimizing d(i,j) • Dijkstra: add edge minimizing p(i) + d(i,j) • Trade-off: c●p(i) + d(i,j) for 0 ≤c ≤ 1 • When c=0, trade-off = Prim • When c=1, trade-off = Dijkstra ELEN 468 Lecture 28
Spanning Tree → Steiner Tree ELEN 468 Lecture 28
Rectilinear Steiner Arborescence (RSA) • Every source-sink path is the shortest • Minimum total wire length ELEN 468 Lecture 28
RSA Heuristic • Assume all sinks in first quadrant • Initially, each sink is a subtree • Iteratively merge or grow subtrees toward the source ELEN 468 Lecture 28
Merge Grow RSA Example ELEN 468 Lecture 28
Merging Rule In RSA Heuristic • Iteratively • Find subtrees rooted at p and q maximizing min(xp, xq) + min (yp, yq) • Merge them to a new subtree rooted at r = (min(xp, xq), min (yp, yq)) ELEN 468 Lecture 28
1 2 3 4 5 6 RSA Diagonal Line Sweep ELEN 468 Lecture 28
Buffered A-Tree ELEN 468 Lecture 28
SERT: Steiner Elmore Routing Tree • Similar to Prim’s minimum spanning tree algorithm • Connect one sink to partial tree in each step • Find the sink such that the max sink delay is minimized • First Elmore delay based Steiner tree algorithm ELEN 468 Lecture 28
A sink is connected to closest edge (x2 , y2) (x1 , y1) • The closest connection point • Xc = median(x1, x2, x3) • Yc = median(y1, y2, y3) (xc , yc) (x3 , y3) SERT: Connecting Sink ELEN 468 Lecture 28
SERT-C • Steiner Elmore Routing Tree with identified critical sink • Connect source with the critical sink directly • Connect one sink to tree each step • Do the connecting such that delay to the critical sink is minimized ELEN 468 Lecture 28
Delay is dominated by wire res And timing constraint is tight Connect to driver directly Delay is affected by both res and cap And timing constraint is in middle Connect in middle: non-Hanan point Exploit Non-Hanan Points Delay is dominated by capacitance Or timing constraint is loose Minimize total wirelength ELEN 468 Lecture 28
Non-Hanan Optimization Problem Formulation • Minimize total wirelength subject to min slack 0 • Maximize x subject to min slack 0 • Slack is convex function of x x L Slack Sink 1 Sink 3 x Sink 2 ELEN 468 Lecture 28
Non-Hanan Optimization Slack • Given a Steiner tree, disconnect each sink from the tree and reconnect it back • Binary search is performed when a sink is reconnected to an edge • If min slack < 0 at both ends with same critical sink, no feasible solution • If min slack > 0 at one end, < 0 at the other end, there is solution in between x Slack x ELEN 468 Lecture 28
i d j c a h b j h e i Abstract Tree a c d b a b c d P-Tree: Abstract Tree g d c f a e g b f ELEN 468 Lecture 28
Obtain sink permutation a c b d Traveling salesman d Optimal tree Topt{a,b,c,d} c a b Topt{a}+Topt{b,c,d} Topt{a,b}+Topt{c,d} Dynamic programming Topt{a,b,c}+Topt{d} P-Tree: Abstract Tree Generation ELEN 468 Lecture 28
j i d h c a b j h i a b c d P-Tree: Embedding Hanan grid j i d c a h b ELEN 468 Lecture 28
Topt{a}+Topt{b,c,d} Topt{a,b}+Topt{c,d} Topt{a,b,c}+Topt{d} Topt{a}+Tbuf_opt{b,c,d} Tbuf_opt{a,b,c}+Topt{d} Tbuf_opt{a,b}+Topt{c,d} Topt{a,b}+Tbuf_opt{c,d} Tbuf_opt{a,b}+Tbuf_opt{c,d} Buffered P-Tree Optimal tree Topt{a,b,c,d} ELEN 468 Lecture 28