Title: Slope Propagation in Static Timing Analysis
1Slope Propagation in Static Timing Analysis
- David Blaauw, Vladimir Zolotov, Savithri
Sundareswaran, Chanhee Oh and Rajendran Panda - Motorola Inc. Austin, TX
- Motorola India Electronics Ltd., Bangalore,
India - Presented by Boaz Ribak
2Agenda
- Timing analysis.
- Timing Graph, Critical Path, and Delay Function.
- Latest Propagation Algorithm (LPA).
- Proposed Propagation Algorithm.
- Backward Propagation of Required Times.
- Results.
- Conclusions.
3Timing Analysis
- Dynamic simulation.
- Exercises all possible paths in a circuit.
- Good only for small circuits.
- Tends to be error prone.
- Static timing analysis.
- Large designs timing verification.
- Circuits optimization tools.
- transistor and gate sizing tools.
- Logic synthesis tools.
4Static Timing Analysis
- Arrival time / signal
- The latest time a signal can transition at a
node due to a signal change at a circuit input. -
from input to output - Required times
- The latest time a signal is required to
transition at a node in order to meet performance
constraints. -
from output to input
5Arrival time / Signal
- Crossing time the time the signal reaches the ½
Vdd. - Slope the total transition time.
- As signals are propagated across a gate, their
crossing times and slopes are updated with the
gates delay.
6Timing graph
- A directed graph, G N, E, ns,nf , having
exactly 1 source node and 1 sink node. - N n1,n2,...,nk nodes in the circuit.
- E e1,e2,...,el the connections in the
circuit between gate inputs and outputs. eij
exists iff there is a gate in the circuit such
that ni is connected to its input and nj to its
output. - ns the source node.
- nf the sink node.
nf
ns
7Timing graph (cont)
- Each edge e in G is assigned 2 functions
- de de(sI) the signal propagation delay from a
gates input to its output. - se se(sI) the slope of the signal at the
gates output. - Both de and se are functions of sI - the gate
input slope. - Different input slopes in the same edge will give
different delay and output slopes. - Property 1 If slope saltsb then delay de(sa
)ltde(sb ) -
slope se(sa )ltse(sb ). - For any given path P in graph G we can find the
slopes of all the nodes in the path, if the slope
of the first node is given. sjsij(si )
8The critical path
dij(si)
- Path delay dP
- A path having the maximum delay among all paths
with the same ending node is called critical. - The critical path - The critical path of the sink
node nf. - The delay of the timing graph, d(G) the delay
of the critical path. - Finding the critical path and the delay of the
timing graph is the goal in timing analysis.
9Finding the critical path
- Obvious approach - In a given timing graph,
enumerate all paths from its source to sink,
compute their delays, and select the path with
the worst delay. - Worst-case number of paths in a circuit is
exponential with circuit size. - The traditional approach Use the propagations
of signals from the source node to the sink node. - A signal at a node Sn n, Tn, s, P
- n the node.
- Tn the signal crossing time.
- s the signal slope at node n.
- P the signal propagation path from ns to the
node n.
10 Latest Propagation Algorithm (LPA)
- 1. Assign to the source node n0 the signal S0
n0 ,T0 ,s0 ,P0 where T0 0, P0 (n0 ). - 2. Visit each node, ni, in the graph in
topological order doing the following - 2.1. For each edge eki with signal Sk nk ,Tk
,sk ,Pk - create a new signal Ski ni ,Tki
,ski ,Pki where - Tki Tk dki(sk ), ski
ski(sk ), Pki (Pk ,ni ). - 2.2. From all signal Ski select Slatest
ni,Tlatest ,slatest ,Platest
where Tlatest max(Tki ). - 2.3. Assign the computed signal Slatest
to node ni.
11 Latest Propagation Algorithm (LPA)
Example
S7n7,0.6,0.4,(ns,n1,n2,n7)
n7
S7-13n13,1.1,0.7,(ns,n1,n2,n7,n13)
S10-13n13,1.5,0.3,(ns,n3,n10,n13)
d7-13(0.4)0.5 s7-13(0.4)0.7
S12-13n13,1.35,0.7,(ns,n4,n8,n12,n13)
d10-13(0.2)0.6 s10-13(0.2)0.3
n10
S10n10,0.9,0.2,(ns,n3,n10)
n13
d12-13(0.8)0.8 s12-13(0.8)0.7
S12n12,0.55,0.8,(ns,n4, n8,n12)
n12
12 Latest Propagation Algorithm (LPA)
- 1. Assign to the source node n0 the signal S0
n0 ,T0 ,s0 ,P0 where T0 0, P0 (n0 ). - 2. Visit each node, ni, in the graph in
topological order doing the following - 2.1. For each edge eki with signal Sk nk ,Tk
,sk ,Pk - create a new signal Ski ni ,Tki
,ski ,Pki where - Tki Tk dki(sk ), ski
ski(sk ), Pki (Pk ,ni ). - 2.2. From all signal Ski select Slatest
ni,Tlatest ,slatest ,Platest
where Tlatest max(Tki ). - 2.3. Assign the computed signal Slatest
to node ni.
13 Latest Propagation Algorithm (LPA)
Example
S7n7,0.6,0.4,(ns,n1,n2,n7)
n7
S7-13n13,1.1,0.7,(ns,n1,n2,n7,n13)
S10-13n13,1.5,0.3,(ns,n3,n10,n13)
d7-13(0.4)0.5 s7-13(0.4)0.7
S12-13n13,1.35,0.7,(ns,n4,n8,n12,n13)
d10-13(0.2)0.6 s10-13(0.2)0.3
n10
S10n10,0.9,0.2,(ns,n3,n10)
S13n13,1.5,0.3,(ns,n3,n10,n13)
n13
d12-13(0.8)0.8 s12-13(0.8)0.7
S12n12,0.55,0.8,(ns,n4, n8,n12)
n12
14LPA (cont)
- Run time complexity is linear with the number of
edges in the timing graph. - Does LPA always find the correct critical path?
- LPA is a greedy algorithm, based on the
assumption that at each node, the arriving signal
with the latest crossing time results in the
longest path delay and is therefore propagated
forward, while all earlier arriving signals are
not. - Is this assumption always correct?
15LPA (cont)
- Example
- LPA The critical path starts from B. Circuit
delay 0.82ns. - The correct critical path starts from A. Circuit
delay 0.95ns.
at node D
at node E
(c)
(b)
16LPA (cont)
Example LPA results in discontinuities in the
calculated worst circuit delay with respect to
transistor and gate sizes.
Worst circuit delay as a function of the size of
gate G1.
- Crossing time of signal B at node D becomes
earlier than A. - LPA switches from signal B to A.
- The slope used for G3 delay changes from 0.1ns to
1.36 - A sudden increase in G3s delay, and in the worst
circuit delay.
17LPA - Conclusions
- LPA may identify the incorrect critical path and
report an optimistic delay for the circuit. - The circuit delay calculated by LPA is a
discontinuous function with respect to transistor
and gate sizes. - severe problem for efficient gradient-based
optimization methods.
18Proposed Propagation Algorithm
- 1. Assign to the source node n0 the signal set
C0 S0, - where S0 n0 ,T0 ,s0 ,P0, T0 0, P0 (n0).
- 2. Visit each node, ni, in topological order and
compute its - signal set CkSk1 , Sk2 ,... as follows
- 2.1. For each edge eki with signal set
Ck Sk1 , Sk2 ,... - create a new signal set CkiSki1
, Ski2 ,..., with - Skij (ni ,Tkij ,skij ,Pki ),
where - Tkij Tkj dki(skj ), skij
ski(skj ), Pki (Pk,ni ). - 2.2. Assign to node ni signal set Ci
the union of signal - sets Cki.
- 2.3. Remove from Ci any signal Sij if Ci
has another - signal Sik such as TijltTik and
sijltsik.
19Proposed Algorithm (cont)
Example
S7-1n7,0.6,0.4,(ns,n1,n7)
C7
S7-2n7,0.3,0.6,(ns,n2,n7)
n7
S7-13-1n13,1.1,0.7,(ns,n1,n7,n13)
d7-13 (0.4)0.5
C7-13
S7-13-2n13,0.9,1,(ns,n2,n7,n13)
d7-13 (0.6)0.6
s7-13 (0.4)0.7
S12-13-1n13,1.6,0.1,(ns,n3,n10,n13)
s7-13 (0.6)1
C12-13
S12-13-2n13,1.15,0.8,(ns,n12,n13)
d12-13 (0.2)0.7
d12-13 (0.8)0.6
s12-13 (0.2)0.1
n13
s12-13 (0.8)0.8
S12-1n12,0.9,0.2,(ns,n3,n10)
C12
n12
S12-2n12,0.55,0.8,(ns,n12)
20Proposed Propagation Algorithm
- 1. Assign to the source node n0 the signal set
C0 S0, - where S0 n0 ,T0 ,s0 ,P0, T0 0, P0 (n0).
- 2. Visit each node, ni, in topological order and
compute its - signal set CkSk1 , Sk2 ,... as follows
- 2.1. For each edge eki with signal set
Ck Sk1 , Sk2 ,... - create a new signal set CkiSki1
, Ski2 ,..., with - Skij (ni ,Tkij ,skij ,Pki ),
where - Tkij Tkj dki(skj ), skij
ski(skj ), Pki (Pk,ni ). - 2.2. Assign to node ni signal set Ci
the union of signal - sets Cki.
- 2.3. Remove from Ci any signal Sij if Ci
has another - signal Sik such as TijltTik and
sijltsik.
21Proposed Algorithm (cont)
Example
S7-1n7,0.6,0.4,(ns,n1,n7)
C7
S7-2n7,0.3,0.6,(ns,n2,n7)
n7
d7-13 (0.4)0.5
S13-1n13,1.1,0.7,(ns,n1,n7,n13)
d7-13 (0.6)0.6
S13-2n13,0.9,1,(ns,n2,n7,n13)
s7-13 (0.4)0.7
C13
S13-3n13,1.6,0.1,(ns,n3,n10,n13)
s7-13 (0.6)1
S13-4n13,1.15,0.8,(ns,n12,n13)
d12-13 (0.2)0.7
d12-13 (0.8)0.6
s12-13 (0.2)0.1
n13
s12-13 (0.8)0.8
S12-1n12,0.9,0.2,(ns,n3,n10)
C12
n12
S12-2n12,0.55,0.8,(ns,n12)
22Proposed Propagation Algorithm
- 1. Assign to the source node n0 the signal set
C0 S0, - where S0 n0 ,T0 ,s0 ,P0, T0 0, P0 (n0).
- 2. Visit each node, ni, in topological order and
compute its - signal set CkSk1 , Sk2 ,... as follows
- 2.1. For each edge eki with signal set
Ck Sk1 , Sk2 ,... - create a new signal set CkiSki1
, Ski2 ,..., with - Skij (ni ,Tkij ,skij ,Pki ),
where - Tkij Tkj dki(skj ), skij
ski(skj ), Pki (Pk,ni ). - 2.2. Assign to node ni signal set Ci
the union of signal - sets Cki.
- 2.3. Remove from Ci any signal Sij if Ci
has another - signal Sik such as TijltTik and
sijltsik.
23Proposed Algorithm (cont)
Example
S7-1n7,0.6,0.4,(ns,n1,n7)
C7
S7-2n7,0.3,0.6,(ns,n2,n7)
n7
T13-1ltT13-4 s13-1lts13-4 Signal S13-1 is
removed from C13.
d7-13 (0.4)0.5
d7-13 (0.6)0.6
s7-13 (0.4)0.7
s7-13 (0.6)1
S13-1n13,1.1,0.7,(ns,n1,n7,n13)
S13-2n13,0.9,1,(ns,n2,n7,n13)
C13
S13-3n13,1.6,0.1,(ns,n3,n10,n13)
d12-13 (0.2)0.7
S13-4n13,1.15,0.8,(ns,n12,n13)
d12-13 (0.8)0.6
s12-13 (0.2)0.1
n13
s12-13 (0.8)0.8
S12-1n12,0.9,0.2,(ns,n3,n10)
C12
n12
S12-2n12,0.55,0.8,(ns,n12)
24Proposed Algorithm (cont)
- Differences from LPA
- All the signals that might have the longest delay
are propagated (in LPA just 1 signal is
propagated). - The algorithm also checks signals slopes (in LPA
just crossing times) - Only signals that are clearly not the latest are
pruned (in LPA all signals except the chosen
one are pruned).
25Proposed Algorithm (cont)
- The proposed algorithm can be shown to be
correct, since it has 2 properties - A signal that could be critical is never pruned.
- Since signal Sij is pruned only if there exists
another signal Sik such that TijltTik and sijltsik,
and since all signals propagate through the same
edges after the node ni ,it is clear that Sij
will always be earlier than Sik - All potentially critical signals are propagated
to the sink node, where the critical path and
graph delay are determined by identifying the
latest signal.
26Proposed Algorithm (cont)
- The timing graph delay of the proposed algorithm
is a continuous function if the edge delay or
slope function are continuous functions of the
chosen parameters. - If there is no information available regarding
the timing graph beyond node ni ,it is necessary
for the algorithm to propagate all selected
signals. It is impossible to reduce the number of
propagated signals (except for in digital
circuits).
27Backward Propagation of Required Times
- Optimization algorithms require node slacks (the
difference between the required time and the
crossing time of a signal) for all nodes. - As required times are propagated backward across
edges, their crossing times are decreased by the
edge delay. - The arrival signal and associated require times
are updated with the same edge delays as they are
propagated, and remain consistent.
28Backward Propagation (cont)
- Slack along the sub-critical path must always be
higher than the slack of the critical path at
node ni. - If a signal Sia is pruned at node ni, a new
required time must be created. - Solution select from among the propagated
signals at node ni, the signal Sip with a slope
that has the least slope greater than Sia, and
propagate backward its required time as Sias
required time.
- The new required time will overestimate the
delay between ni and nf (the new required time
will be earlier than the exact required time).
i
- The over-estimated slack on
- sias path will guarantee the
- higher slack rule.
29Results
Average error in LPA 19
30Results (cont)
31Results (cont)
- The area/delay trade-off produced during the
optimization of circuit mux. - The trade-off curve produced by LPA suffers
discotinuances. - The trade-off curve produced by the proposed
algorithm is free of such discotinuances.
32Conclusions
- LPA can significantly underestimate the delay of
a circuit (in the results - as much as 38). - LPA can lead to discontinuities in the circuit
delay as a function of its transistor sizes. - The presented algorithm proved to correctly
calculate the critical path in a circuit and its
circuit delay. - This algorithm propagates the minimum number of
possible arrival signals for a general timing
graph. - In digital logic gates, this number can be
reduced. - The algorithm increases the run time of timing
analysis. - An algorithm was presented for propagating the
required times in a manner consistent with the
arrival signal propagation for calculation of
node slacks at all circuit nodes.
33Backup
34The continuous function of the delay
- Theorem 1 If the edge delay and slope functions
are continuous with respect to some parameters,
then the timing graph delay is also continuous
with respect to these parameters. - Proof The delay of each path in a graph is a
finite sum of finite compositions of delay and
slope functions of individual edges. - The path delay is a continuous function with
respect to the parameters of the slope and delay
functions. - The graph delay is the maximum of all path delays
in the timing graph and is therefore also
continuous, since the maximum operation is a
continuous function.
35LPA (cont)
- Lemma Given two signals Sa, Sb at the same node
n, where salt sa then for any signal path Q from
node n to nf the path delay da(Q) of signal Sa is
always less then the path delay db(Q) of signal
Sb. - Proof Follows directly from Property 1 of delay
and slope functions, the recurrent dependence of
gate output slopes on gate input and the additive
property of path delay.
36LPA (cont)
- Theorem 2 If, for some node ni of timing graph
G, the slope slatest of LPAs selected signal
Slatest is less than the slope sk of another
signal Sik ni ,Tk ,sk ,Pk propagated to ni,
then we can construct a new graph H, containing
all nodes and edges in G that have already been
visited by LPA, such that in H Sik is critical
but Slatest latest is not. - Proof Construct H such that it contains only
the nodes from G that have been visited by LPA. - Add a sink node nf and an edge ek (nk, nf) for
each node nk of H that does not have an outgoing
edge. To all edges ek assign delay functions
di(s)0, except for ei (ni, nf). - dmax - the maximum path delay of the set of all
paths that dont pass through node ni. For ei
(ni, nf) assign di(slatest ) dmax and di(sk)
dmax Tlatest - Tk D , D gt 0. - It is clear that signal Sik will arrive at nf
later than signal Slatest.
37LPA (cont)
- Corollary 1 There exist timing graphs for which
LPA computes an incorrect critical path and
delay. - Theorem 3 It is possible to construct a Timing
Graph G with edge delay functions de depending
continuously on a certain edge parameter xe ,but
such that the timing graph delay d(xe) computed
by LPA is a discontinuous with respect to xe. - Proof We use the timing graph H constructed in
the proof of Theorem 2. Assuming that the edge
delay function de of subpath Platest depends
strongly and monotonically on parameter xe, we
set xx0 such that the path delays of subpath
Slatest and Pki are equal. Then, a small
variation of x around x0 will result in a
variation of the graph delay by D.
38Proposed Algorithm (cont)
- Theorem 4 For any G and any of its nodes ni,
any signal Sij ni ,Tij ,sij ,Pij that is
pruned by the algorithm doesnt have the latest
crossing time at any node nl following node ni. - Proof Signal Sij is pruned only if there
exists another signal Sik such that TijltTik and
sijltsik. Since both signals propagate through the
same edges after ni, and from the property of the
slope function, it follows that at any node nl
after ni the slope slj will be less than the
slope slk. From this and the property of the edge
delay function it follows that the edge delay
along the path of signal Slj from ni to nl will
always be less than the edge delay along the same
path for signal Slk . Since the crossing time is
the summation of edge delays from ni to nl, and
since TijltTik at node ni , it follows that Sij
will always be earlier than Sik .
39Reduction in Propagated Signals in Digital
Circuits
- Property 2 For a digital gate connecting input
node ni with output node nj , if two input signal
waveforms Sia and Sib are related such that at
any point along their transition Sia is earlier
than Sib, then for all time points along the
outputs Sja and Sjb, waveform Sja will be earlier
than Sjb.
a digital gate can only produce an output signal
waveform Sjb that is earlier than signal Sja, if
the input signal Sib is earlier than signal Sia
on at least one time instance along its
transition.
40Reduction in Propagated Signals in Digital
Circuits (cont)
- Finding a bound on the difference in crossing
times at nf. - (sib sia)/2
41Reduction in Propagated Signals in Digital
Circuits (cont)
- Sia ni ,Tia ,sia ,Pia , Sib ni ,Tib ,sib
,Pib - If Tib-Tia gt (sia-sib)/2 , Sia can be pruned from
the propagation. - Using this condition in step 2.3 of the algorithm
limits the propagated signals.