Abstract - PowerPoint PPT Presentation

About This Presentation
Title:

Abstract

Description:

Enforcing Parity Constraints. Inverting buffers change the polarity of the signal ... Parity constraints for the #buffers on each routed source-sink path ... – PowerPoint PPT presentation

Number of Views:48
Avg rating:3.0/5.0
Slides: 14
Provided by: ionma
Learn more at: https://vlsicad.ucsd.edu
Category:
Tags: abstract | parity

less

Transcript and Presenter's Notes

Title: Abstract


1

On the Skew-Bounded Minimum Buffer Routing Tree
Problem C. Albrecht (Synopsys), A.B. Kahng, B.
Liu, I. Mandoiu (UCSD), A. Zelikovsky (GSU)
  • ABSTRACT
  • We consider the problem of buffering a given tree
    with the minimum number of buffers under load cap
    and buffer skew constraints. Our contributions
    include
  • A proof that the greedy algorithm proposed by
    Tellez and Sarrafzadeh (TCAD97) is suboptimal
    for all non-zero skew bounds
  • An optimal dynamic programming algorithm for the
    problem
  • Experimental results on test cases extracted
    from recent industrial designs showing that the
    dynamic programming algorithm has practical run
    time and saves up to 20 of the buffers inserted
    by the algorithm of Tellez and Sarrafzadeh

2
Motivation
  • In order to initiate meaningful placement and
    timing optimizations, every design flow requires
    early elimination of all electrical violations
    (e.g., load cap and slew violations), even for
    non-critical nets. Bounds on load caps
  • - Serve as proxies for signal slew rate bound
  • - Improve coupling noise immunity
  • - Reduce delay uncertainty due to coupling noise
  • - Improve reliability with respect to hot-carrier
    and AC self-heating effects
  • - Facilitate technology migration since designs
    are more balanced
  • - Guarantee bounded input rise/fall times at
    buffers and sinks
  • For clock and test distribution an additional
    design requirement is bounding the buffer skew,
    i.e., the difference between the maximum and the
    minimum number of buffers over all source-to-sink
    paths in a routing tree, since buffer skew is one
    of the main factors affecting the actual delay
    skew
  • To make progress with any methodology, it is
    crucial to have a fast and resource efficient
    method for fixing load cap and buffer skew
    violations. Of particular interest are practical
    methods for buffering non-critical nets that have
    up to tens of thousands of sinks (e.g., scan
    enable)

3
Minimum-Buffered Routing Problem
  • Given
  • Net N with source r and set of sinks S
  • Binary routing tree T (r, V, E) for N
  • Input capacitance cs for each sink s ? S
  • Buffer input capacitance Cb
  • Unit-length wire capacitance Cw
  • Capacitive load upper-bound CU
  • Buffer-skew bound D
  • Find buffering of the routing tree T such
    that
  • The load cap of each buffer and of the source r
    is at most CU
  • The buffer skew is at most D
  • The number of inserted buffers is minimized

4
The Greedy Algorithm
  • Proposed by Tellez and Sarrafzadeh (IEEE Trans.
    on CAD, vol. 16, 1997, pp. 333-342)
  • packNode(u) w/ buffer skew bound D
  • A.0 If l(Tv) lt l(Tw) (longest path of v is less
    than longest path of w) then swap v and w.
  • A.1 If l(Tv) - l(Tw) gt D then insert l(Tv) -
    l(Tw) - D buffers at the topmost position of
    (u,w) exit if cap(Tu)ltCu
  • A.2 Perform packNode(u) excluding child branches
    with maximum longest path exit if cap(Tu)ltCu
  • A.3 Insert buffers at topmost position of child
    branches with shortest path equal to l(u) D
  • A.4 Perform packNode(u) considering only child
    branches with maximum longest path
  • Bounded load cap w/o buffer skew bound
  • For each u ? V, in bottom-up order, do
  • A. packNode(u) Let v and w be the two children
    of u. If cap(Tv) cap(Tw) gt Cu add a buffer at
    the topmost position of the child branch with the
    largest cap (the greedy choice) then remove the
    subtree driven by the buffer
  • B. packEdge(u) While cap(Tu) gt Cu add a buffer
    on edge (u,parent(u)) at the highest possible
    position still meeting the load cap bound Cu

5
The Greedy Algorithm is Suboptimal
  • The greedy algorithm of Tellez and Sarrafzadeh
    finds the optimum buffering when D 0
  • However, the algorithm is suboptimal for any
    buffer skew D gt 0

Buffer skew D 1, sink input cap CuCU,
CvCx0.75CU Interconnect and buffer have zero
cap
0.75CU
0.75CU
CU
0.75CU
CU
0.75CU
Greedy buffering
Optimum buffering
Counterexample 1.
6
Why No Greedy Algorithm Will Work
  • To guarantee optimality, solutions w/ D different
    longest path lengths may be required for a
    subtree in any bottom-up algorithm
  • Counterexample 3 CwCb0,
  • D u leaves, each with cu CU e, one v
    leaf with cv e
  • Optimum depending on upstream tree topology,
    each of the following D bufferings may be the
    only way to complete the optimum solution
  • To guarantee optimality, arbitrarily many
    solutions may be need for a subtree in any
    bottom-up algorithm
  • Counterexample 2 D1, CwCb0, cuCU and cv
    satisfies cv2d-2ltCU and cv(2d-21)gtCU where d is
    depth of Ta
  • Greedy buffers one of the two branches into node
    a, this triggers the insertion of arbitrarily
    many buffers upstream due to the skew constraint
  • Optimum buffers as many of the v nodes as
    needed in one of the two subtrees of node a

v
u
u
u
a
v
u
u
u
v
u
u
u
u
u
u
u
v
v
v
v
7
Dynamic Programming Algorithm
  • Initialize solution set L(u) ? , ? u ? V
  • For each u ? V, in bottom-up order, do
  • (1) Let v and w be the children of u
  • (2) For each buffering X ? L(v) and Y ? L(w),
    with l(X) l(Y), do
  • (a) Let Z be X?Y with max0,l(X)-s(Y) buffers
    added at the top
  • (b) For each i 0, , minmax0, s(X) s(Y),
    l(X) l(Y) do
  • Let Zi be Z with i buffers added at the top of
    edge (w,u)
  • EdgeBuffering(Zi,u)
  • (3) Remove from L(u) all bufferings with more
    than NB buffers
  • (4) For each buffering with (nb, l, s) buffers in
    total, on longest path, and on shortest path,
    respectively, remove from L(u) all bufferings
    with parameters (nbk, lk, sk) where k 2
  • Return the buffering X ? L(v) with minimum number
    of buffers
  • Procedure EdgeBuffering(X,u)
  • While cap(X) gt CU, add a buffer on edge (u,
    parent(u)) at the highest position meeting the
    load cap bound Cu
  • L(u) ? L(u) X
  • If cap(X) gt Cb then L(u) ? L(u) X where X is
    X with an additional buffer just below parent(u)

8
Analysis
  • Corectness
  • By induction for each buffering X of the branch
    driven by (u,parent(u)) there exists k gt 0 and a
    buffering Y? L(u) such that X is dominated by Y
    with k buffers added at the top
  • The dynamic programming algorithm returns an
    optimum feasible buffering
  • Runtime
  • For each node u ? T, the solution set L(u)
    computed by the dynamic programming algorithm
    contains at most 2(D1)NB bufferings
  • The running time of the algorithm is
    O(n(D1)3NB2) time, where n, D and NB are the
    number of sinks, the given skew bound and a given
    upper-bound on the optimum number of buffers,
    respectively
  • The bound is not known to be tight, in practice
    the runtime is much better

9
Experimental Results
CU D0 D0 D1 D1 D1 D2 D2 D2 D3 D3 D3 D4 D4 D4 LB D?
CU TS97 DP TS97 DP Gain TS97 DP Gain TS97 DP Gain TS97 DP Gain LB D?
500 266 266 238 211 11.3 229 204 10.9 226 198 12.4 227 196 13.7 196
500 0.04 0.14 0.03 0.33 0.04 0.60 0.03 0.82 0.04 1.02 196
1000 125 125 117 104 11.1 109 99 9.2 106 98 7.5 106 98 7.5 97
1000 0.03 0.10 0.04 0.27 0.03 0.50 0.04 0.71 0.04 0.87 97
2000 64 64 55 50 9.1 52 49 5.8 52 48 7.7 52 48 7.7 48
2000 0.03 0.10 0.04 0.29 0.03 0.50 0.04 0.69 0.04 0.86 48
4000 34 34 30 26 13.3 29 23 20.7 28 22 21.4 28 22 21.4 22
4000 0.03 0.10 0.04 0.28 0.04 0.50 0.04 0.70 0.04 0.88 22
8000 15 15 15 12 20.0 13 11 15.4 13 11 15.4 13 11 15.4 11
8000 0.04 0.11 0.04 0.28 0.06 0.48 0.04 0.66 0.05 0.81 11
  • DP has practical runtime (less than 1 second for
    the above 2676-sink test)
  • DP saves up to 20 of the buffers inserted by
    Tellez-Sarrafzadeh algorithm
  • Compared to zero-skew buffering, DP achieves a
    significant reduction in the number of inserted
    buffers even with a very small buffer skew (D1
    or 2)

10

On the Skew-Bounded Minimum Buffer Routing Tree
Problem C. Albrecht (Synopsys Inc.) A.B. Kahng,
B. Liu, I. Mandoiu (UC San Diego) A. Zelikovsky
(Georgia State U.)
11
Minimum-Buffered Routing
  • Early elimination of load cap and slew
    violations is needed for all nets, even for
    non-critical ones. Bounds on load caps
  • - Serve as proxies for signal slew rate bound
  • - Improve coupling noise immunity
  • - Reduce delay uncertainty due to coupling noise
  • - Improve reliability with respect to hot-carrier
    and AC self-heating effects
  • - Facilitate technology migration since designs
    are more balanced
  • Guarantee bounded input rise/fall times at
    buffers and sinks
  • For clock and test distribution an additional
    design requirement is bounding the buffer skew,
    i.e., the difference between the maximum and the
    minimum number of buffers over all source-to-sink
    paths in a routing tree
  • Minimum-Buffered Routing Problem Given a routed
    net, sink/buffer input caps, and unit-wire cap,
    insert the minumum number of buffers to satisfy
    given load cap and buffer skew constraints
  • Introduced by Tellez and Sarrafzadeh (IEEE
    TCAD97) who gave a greedy algorithm

12
Our Contributions
  • A proof that the greedy algorithm of Tellez and
    Sarrafzadeh is suboptimal for all non-zero skew
    bounds
  • - We give examples showing that no greedy
    algorithm can achieve optimality
  • An optimal dynamic programming algorithm for the
    problem
  • The algorithm computes lists of undominated
    feasible solutions for all subtrees, in bottom-up
    order
  • Worst-case runtime is O(n(D1)3NB2) time, where
    n, D and NB are the number of sinks, the skew
    bound, and a given upper-bound on the optimum
    number of buffers, respectively
  • Runtime is much better in practice
  • Experimental study of buffering algorithms on
    test cases extracted from recent industrial
    designs
  • - The dynamic programming algorithm uses
    significantly fewer buffers than the algorithm of
    Tellez and Sarrafzadeh

13
Results on a 2676-sink testcase
CU D0 D0 D1 D1 D1 D2 D2 D2 D3 D3 D3 D4 D4 D4 LB D?
CU TS97 DP TS97 DP Gain TS97 DP Gain TS97 DP Gain TS97 DP Gain LB D?
500 266 266 238 211 11.3 229 204 10.9 226 198 12.4 227 196 13.7 196
500 0.04 0.14 0.03 0.33 0.04 0.60 0.03 0.82 0.04 1.02 196
1000 125 125 117 104 11.1 109 99 9.2 106 98 7.5 106 98 7.5 97
1000 0.03 0.10 0.04 0.27 0.03 0.50 0.04 0.71 0.04 0.87 97
2000 64 64 55 50 9.1 52 49 5.8 52 48 7.7 52 48 7.7 48
2000 0.03 0.10 0.04 0.29 0.03 0.50 0.04 0.69 0.04 0.86 48
4000 34 34 30 26 13.3 29 23 20.7 28 22 21.4 28 22 21.4 22
4000 0.03 0.10 0.04 0.28 0.04 0.50 0.04 0.70 0.04 0.88 22
8000 15 15 15 12 20.0 13 11 15.4 13 11 15.4 13 11 15.4 11
8000 0.04 0.11 0.04 0.28 0.06 0.48 0.04 0.66 0.05 0.81 11
  • DP has practical runtime (less than 1 second per
    run)
  • DP saves up to 20 of the buffers inserted by
    Tellez-Sarrafzadeh algorithm
  • Compared to zero-skew buffering, DP achieves a
    significant reduction in the number of inserted
    buffers even with a very small buffer skew (D1
    or 2)
Write a Comment
User Comments (0)
About PowerShow.com