Advanced Interconnect Optimizations. Timing Driven Buffering Problem Formulation Given –A Steiner...
-
date post
22-Dec-2015 -
Category
Documents
-
view
222 -
download
0
Transcript of Advanced Interconnect Optimizations. Timing Driven Buffering Problem Formulation Given –A Steiner...
Timing Driven Buffering Problem Formulation
• Given– A Steiner tree– RAT at each sink– A buffer type– RC parameters– Candidate buffer locations
• Find buffer insertion solution such that the slack at the driver is maximized
Candidate Solution Characteristics
• Each candidate solution is associated with– vi: a node
– ci: downstream capacitance
– qi: RAT
vi is a sinkci is sink capacitance
v is an internal node
Solution Propagation: Add Wire
• c2 = c1 + cx
• q2 = q1 – rcx2/2 – rxc1
• r: wire resistance per unit length
• c: wire capacitance per unit length
(v1, c1, q1)(v2, c2, q2)x
7
Solution Propagation: Insert Buffer
• c1b = Cb
• q1b = q1 – Rbc1
• Cb: buffer input capacitance
• Rb: buffer output resistance
(v1, c1, q1)(v1, c1b, q1b)
Solution Propagation: Add Driver
• q0d = q0 – Rdc0 = slackmin
• Rd: driver resistance
• Pick solution with max slackmin
(v0, c0, q0)(v0, c0d, q0d)
Solution Pruning
• Two candidate solutions– (v, c1, q1)
– (v, c2, q2)
• Solution 1 is inferior if – c1 > c2 : larger load
– and q1 < q2 : tighter timing
14
Pruning Candidates
(3)
(a) (b)
Both (a) and (b) “look” the same to the source.Throw out the one with the worst slack
(4)
16
Candidate Example ContinuedAfter pruning
(5)
At driver, compute which candidate maximizesslack. Result is optimal.
Basic Data Structure
(c1, q1) (c2, q2) (c3, q3)
Sorted list such that
• c1 < c2 < c3
• If there is no inferior candidates q1 < q2 < q3
Worse load cap
Better timing
20
Prune Solution List
(c1, q1) (c2, q2) (c3, q3)
Increasing c
q1 < q2 ?
(c4, q4)
q3 < q4 ?
Y
NPrune 2 q1 < q3 ?
q2 < q3 ?
Y
q3 < q4 ?
Y
Prune 3 q1 < q4 ?
N Prune 3
N
N Prune 4N Prune 4
q2 < q4 ?
21
Pruning In Merging
(cl1, ql1)
(cl2, ql2)
(cl3, ql3)
(cr1, qr1)
(cr2, qr2)
ql1 < ql2 < qr1 < ql3 < qr2
Merged candidate
s
(cl1+cr1, ql1)
(cl2+cr1, ql2)
(cl3+cr1, qr1)
(cl3+cr2, ql3)
(cl1, ql1)
(cl2, ql2)
(cl3, ql3)
(cr1, qr1)
(cr2, qr2)
(cl1, ql1)
(cl2, ql2)
(cl3, ql3)
(cr1, qr1)
(cr2, qr2)
(cl1, ql1)
(cl2, ql2)
(cl3, ql3)
(cr1, qr1)
(cr2, qr2)
Left candidate
s
Right candidate
s