Professional Documents
Culture Documents
Timing Verification and The Timing Analysis Program: Clock I
Timing Verification and The Timing Analysis Program: Clock I
I INTRODUCTION
Previously described techniques tend to group into Block oriented analysis techniques tend to run much
two main categories: path enumeration techniques and quicker than enumerative path analysis techniques,
block oriented analysis techniques. T he s e main but tend to be very pessimistic. Whereas, a path
techniques w i l l be introduced, and then the programs oriented algorithm can accept commands to ignore a
themselves w i l l be described, with a small c i r c u i t s p e c i f i c path, a block oriented algorithm cannot
used to i l l u s t r a t e how they would operate. Both of without c u t t i n g many other paths at the same time.
these techniques are quite d i f f e r e n t from simulators The block oriented algorithm i d e n t i f i e s the worst
or test generators. Contrary to what one would ex- path leading up to each block (the c r i t i c a l path up
Paper 34.2
595
to t h a t p o i n t ) and then feeds t h a t i n f o r m a t i o n f o r - and standard d e v i a t i o n f o r the sum of independent
ward. Once the worst case delay or time has been random v a r i a b l e s i f they are assumed to s t a r t out
c a l c u l a t e d , the i d e n t i t y of any s p e c i f i c path caus- w i t h a "Gaussian" d i s t r i b u t i o n .
ing t h a t information to be what i t is has been l o s t .
The programs or papers describing systems which, f o r Considering the example (Figure 3), the s t a r t points
purposes of t h i s discussion, have been assigned to are defined as the set of PO's: (P01, P02, P03, a n d
the block o r i e n t e d category are: P04), and the terminal points as the set of PI~s:
( P I t , PI2, PI3, and PI4). The a n a l y s i s then i d e n t i -
f i e s a l l 32 paths (see Figure 4). As an example, we
I. PERT as an Aid to Logic Design - (IBM), T. I . w i l l focus on one of these paths, PII-A-B-C-H-P02.
K i r k p a t r i c k and N. R. Clark, [K166].
Pll - A - B - C - D - P01
2. SCALD Timing V e r i f i e r (Stanford), T. M. - H P02
-
McWilliams, [MC80]. G - H - P02
J - H - P02
PATH ENUMERATION TECHNIQUES - K - L - P03
- 0 - P - P04
C o m p u t e r - A i d e d Prediction of Delays in LSI Logic PI2 - A - B - C - D - P01
Systems - F a i r c h i l d and A m d a h l , D. J. Pilling and - H - P02
H. B. Sun, [PI73]. G - H - P02
J - H - P02
P i l l i n g and Sun [PI73] describe a program to take - K - L - P03
the d e s c r i p t i o n of the physical c i r c u i t s in a chip - 0 - P - P04
design (both before and a f t e r the physical masks had PI2 - E - B - C - D - P01
been designed) and c a l c u l a t e an estimated delay f o r - H - PO2
the c i r c u i t . This is then fed i n t o the simulation G - H - P02
program f o r more accurate simulation and, by l i s t i n g F - G - H - P02
the c i r c u i t s in a c r i t i c a l path, the t o t a l delays in - K - L - P03
t h a t path are determined. PI3 - E - B - C - D - P01
- H - P02
The delays predicted by t h i s approximation technique G - H - P02
are reported to be w i t h i n 5% of the delays measured F - G - H - P02
on actual c i r c u i t s under i d e n t i c a l conditions. - K - L - P03
PI3 - I - J - H - P02
The exact d e t a i l s of the method f o r determining the - K - L - P03
c r i t i c a l paths and adding up the delays is not de- - 0 - P - P04
scribed. One block in t h e i r Figure 7 i n d i c at es a PI4 - I - J - H - P02
process "Compute Total Delay A l o n g Signal Paths" - K - L - P03
where the path could be manually s p e c i fi e d or com- - 0 - P - P04
puter traced, we are not t o l d which. Since there is PI4 - M - J - H - P02
a great deal of ambiguity in t h i s , no attempt w i l l be - K - L - P03
made to show how the process would attack the simple - O - P - PO4
l o g i c diagram in Figure 3. N- L - P03
G R A S P (Global Timing A n a l y s i s ) - H o n e y w e l l , M. A . Figure 4 - BasicLogic Diagram Paths
Wold [W078].
The designer s p e c i f i e s the set of s t a r t points and In the program, the delay is a c t u a l l y calculated f o r
the set of terminal p o i n t s , as well as the boundary each block by looking at the d e t a i l e d d e s c r i p t i o n of
values f o r path c l a s s i f i c a t i o n . GRASP enumerates the physical design, but f or our purposes a delay
a l l possible paths from the set of s t a r t points to value has been assigned to each block in the path.
the terminal points and c a l c u l a t e s the mean, MIN and The delay values are w r i t t e n in the lower part of the
MAX delays of each. Paths are then c l a s s i f i e d as blocks. The means of these delays are,
"critical", " m a r g i n a l " , "normal", or " t r i v i a l " ac- r e s p e c t i v e l y , 2, 4, I , and 5. Adding these up, the
cording to the designer s p e c i f i e d values. path nominal delay is 12. The sigma values f o r each
delay can be sizeable, the smaller delays often have
The delays are c a l c u l a t e d from the physical design the l a r g e s t r e l a t i v e sigmas, so t h a t the i n d i v i d u a l
data by using l i n e a r approximation equations when sigmas are assumed to be .3, .4, .2 and .45 respec-
the physical design c o n f i g u r a t i o n s are w i t h i n the tively. This y i e l d s an o v e r a l l sigma of .702, the
c o n s t r a i n i n g parameters, and by "network s i m u l a t i o n " square r o o t of the sum of the i n d i v i d u a l sigmas
(a Monte-Carlo a n a l y s i s of the behavior of the phys- squared. For t h i s path, t h e r e f o r e , the t o t a l e f -
i c a l network, w i t h enough points taken to be able to f e c t i v e (three-sigma) MAX delay is 14.1, the t o t a l
d e r i v e both a mean delay and a standard d e v i a t i o n e f f e c t i v e MIN delay is 9.9. The o n l y remaining op-
w i t h reasonable accuracy) when the r u l e s are not e r a t i o n from t h i s p o i n t would be to categorize the
met. The r e s u l t i n g delays include both a mean and net as being c r i t i c a l , marginal, normal or t r i v i a l .
standard d e v i a t i o n . This would depend on the parameters set by the de-
signer using the program.
For each path being evaluated, the mean path delay
is derived by t a k i n g the sum of the mean delays of N E L T A S ( N e t w o r k D e l a y Time A n a l y s i s S u b s y s t e m ) -
the blocks along the path. The standard d e v i a t i o n Nippon Electric, T. Sasaki, et. al.
of the path is c a l c u l a t e d by the root-sum-squared of
the standard d e v i a t i o n s of the blocks along the As described in [SA81], i t would appear t h a t , w i t h i n
path. This is the standard way to c a l c u l a t e the mean each packaging l e v e l , the NELTAS programs evaluate
Paper 34.2
596
the paths from a PI or r e g i s t e r o u t p u t to a PO or r e - MAX MIN Current Trace-back
gister input. The d e l a y a n a l y s i s operates in two Block Mean Sigma Mean Sigma Block Input
modes: logical path mode where a l l p o s s i b l e paths
are enumerated, and each i s analyzed in d e t a i l , and 2 .3 2 3 H 2
critical path mode where a t each i n t e r m e d i a t e p o i n t 3 .35 3 35 G 2
the c h a r a c t e r i s t i c of the w o r s t path up t o t h a t 7 .532 6 5 F *
p o i n t i s d e t e r m i n e d , and whenever t h a t p o i n t is 8 .566 7 539
reached by another t r a c e , the c h a r a c t e r i s t i c o f the 11 .667 10 642
w o r s t path i s used, r a t h e r than t r a c i n g f u r t h e r . 4 .403 4 403
In logical p a t h mode, the o p e r a t i o n o f NELTAS would Now G can be c a l c u l a t e d from i t s i n p u t s (B and F),
be v i r t u a l l y i d e n t i c a l to Woldls GRASP system, w i t h and so on.
each path from s t a r t p o i n t to t e r m i n a l p o i n t being
t r a c e d and e v a l u a t e d . Since the p r e v i o u s s e c t i o n By e x t e n d i n g t h i s a n a l y s i s t o a l l o w f o r d i f f e r i n g
illustrated t h i s o p e r a t i o n , i t w i l l not be d u p l i - r i s i n g and f a l l i n g d e l a y s , the expansion a n d / o r con-
cated here. t r a c t i o n o f c l o c k pulses can be determined (see F i g -
In c r i t i c a l p a t h mode, the NELTAS process i s more of ure 2). Since c l o c k r e - p o w e r i n g networks u s u a l l y
a b l o c k o r i e n t e d approach in t h a t each i n t e r m e d i a t e are in the form o f an expanding t r e e s t r u c t u r e , the
p o i n t would have the w o r s t - c a s e (MIN and MAX) d e l a y MIN and MAX delays would be, f o r the most p a r t , the
t i m e c a l c u l a t e d only once. same and the main concern would be w i t h the com-
p r e s s i o n of pulse w i d t h s due t o the asymmetric d e l a y
The i n f o r m a t i o n r e g a r d i n g the d e l a y s d e r i v e d from values themselves.
the lower l e v e l s i s s t o r e d in a l i b r a r y f o r use by
the h i g h e r l e v e l a n a l y s i s r o u t i n e s . The s p e c i f i c A C r i t i c a l Path Delay Check System - H i t a c h i , R.
d e t a i l s of t h i s h i e r a r c h i c a l process were not p r e - K a m i k a w a i , et. al. [ K A 8 1 ] .
sented in [SA81].
In t h i s system, d e l a y checks are made a t each stage
To i l l u s t r a t e the c r i t i c a l path mode, a t r a c e back of the design process. Delays are approximated a t
from P01 w i l l be c o n s i d e r e d . To show what w o r s t case the e a r l y stages in the process, w i t h the a p p r o x i -
"means" and "sigmas" are known, a t a b l e o f blocks mations becoming more r e a l i s t i c as the design p r o -
w i t h known w o r s t cases w i l l be shown a f t e r each s i g - gresses t o the l a t e r stages. Although t h e r e i s an
nificant step in the a l g o r i t h m . The t r a c e would i n d i c a t i o n t h a t once the sub-network connecting a
proceed through blocks D and C, since they o n l y have s t a r t node to a t e r m i n a l node has been t r a c e d out,
one i n p u t each, and a t b l o c k B would f i r s t s e l e c t i n - the b l o c k s in t h a t sub-network are analyzed only
p u t 1, which comes from b l o c k A. In t h i s example, A once; t h e r e i s every i n d i c a t i o n t h a t a b l o c k may be
r e e v a l u a t e d every time i t appears in a sub-network.
i s fed d i r e c t l y from Pls so i t s o u t p u t mean and sigma T h e r e f o r e , t h i s a l g o r i t h m has been c l a s s i f i e d more
are also the w o r s t mean and sigma. as a path o r i e n t e d enumeration r o u t i n e than a b l o c k
oriented analysis routine.
MAX MIN Current Trace-back
Block Mean Sigma Mean Sigma Block Input The d e l a y check takes p a r t in several stages. The
s t a r t and end p o i n t s ( d e f i n e d by the user) are used
A 2 .3 2 .3 D I to guide the "path t r a c e " . The " p a t h t r a c e " i s s i m i -
C I l a r t o the standard w i r e - r o u t i n g maze-running a l g o -
B 1 rithm. I t extends the nodes in the forward and
A *(all) backward f r o n t i e r stage by stage unless:
a) the f r o n t i e r node i s a f l i p - f l o p
At each stage, a l l i n p u t s w i l l be t e s t e d . I f an i n -
put has had i t s value c a l c u l a t e d by a p r e v i o u s ac- b) the f r o n t i e r node goes no f u r t h e r , or
t i o n , i t s MIN (MAX) w i l l be used d i r e c t l y . At the
end o f the t r a c e b a c k from D, the t a b l e s w i l l be: c) the user c o n t r o l l e d maximum number o f f r o n -
t i e r s has been reached.
MAX MIN Current Trace-back
Block Mean Sigma Mean Sigma Block Input d) f o r purposes of t h i s d i s c u s s i o n , another
c o n d i t i o n has been borrowed from w i r i n g p r o -
A 2 .3 2 .3 D * grams: no node w i l l be i n c l u d e d in one f r o n t i e r
E 3 .35 3 .35 as a c a n d i d a t e f o r f u r t h e r e x t e n s i o n i f i t i s
B 7 .532 6 .5 a l r e a d y in the o t h e r one.
C 8 .566 7 .539
D 11 .667 10 .642 When an end p o i n t i s reached, a t r a c e back from i t to
the s t a r t p o i n t marks the nodes to be kept. The
To i l l u s t r a t e why t h i s i s so p o w e r f u l , c o n s i d e r the t u r n - o n and t u r n - o f f t r a n s i t i o n delays are then c a l -
t r a c e b a c k from P02. The f i r s t i n p u t from H comes culated for each net connecting the marked nodes.
from C which is a l r e a d y marked as being on the w o r s t
case l i s t , so the t r a c e goes d i r e c t l y to G. G's The problem then i s to f i n d the c r i t i c a l path. A l -
first i n p u t comes from B, another b l o c k a l r e a d y though the a l g o r i t h m i s o n l y h i n t e d a t , t h e r e i s an
marked as being on the l i s t , so i t s t r a c e goes d i - i n d i c a t i o n t h a t each node i s processed once - when
r e c t l y t o F. F's i n p u t comes from E which a l r e a d y the d e l a y time from the s t a r t node t o a l l nodes f e e d -
has i t s w o r s t case values c a l c u l a t e d , so F can be ad- ing i t have been d e t e r m i n e d . By t h i s means, the o u t -
ded d i r e c t l y to the l i s t : put o f the node being analyzed w i l l j u s t be i t s own
Paper 34.2
597
delay time plus the time of the maximal input (the
f i r s t input whose delay time equals or exceeds a l l PIt O ~
other inputs). When the maximum delay times f o r a l l
nodes have been determined, the maximum time f or the POl
end p o i n t w i l l be known. Determining the c r i t i c a l
path then corresponds to j u s t tr a c i n g back through
the maximal inputs feeding each node u n t i l the s t a r t
node ( f l i p - f l o p or PI) is reached.
To i l l u s t r a t e t h i s technique, we w i l l f i r s t select
PI3 as the s t a r t point and P02 as the end p o i n t . The
forward and backward f r o n t i e r s f o r the tr a c ing w i l l
be shown in two tables at each stage. The i n i t i a l
stage w i l l j u s t include the two primary connections:
PI3~ i P02
Forward F r o n t i e r Backward F r o n t i e r
Blocks I level Blocks 1 . level
PO3
PI3 0 P02 O
Paper 34.2
598
T y p i c a l l y , the information being handed to PERT is other inputs. S i m i l a r l y , a ZERO at any input of an
the nominal, best-case and worst case time f o r com- AND block dominates the other inputs. An
p l e t i o n of a tasK. For example, i f one is analyzing "exclusive-OR" block, on the other hand, has no sin-
the time i t would take to b u i l d a house, one task gle value which dominates the others, and the
could be the time i t takes to b u i l d concrete forms, evaluation tables shown in [MC80] i n d i c a t e t h i s .
another could be the time i t takes to f i l l the forms Thus, in the absence of a dominating signal, the
with concrete, a t h i r d could be the time i t takes the output of a block w i l l be CHANGINGat time t as long
concrete to dry, and so on. Note t h a t with respect as any of i t s inputs was CHANGINGat time t minus the
to the concrete hardening task, the other two tasks c i r c u i t delay. This means t h a t i f several inputs to
would have had to be done ( i n order) before i t could a block go from being CHANGINGto STABLE and back to
even s t a r t . K i r k p a t r i c and Clark consider a task to CHANGING, then the output w i l l not s t a r t being STA-
be the time i t takes a signal t r a n s i t i o n to propa- BLE u n t i l the l a s t input becomes STABLE (plus the
gate from the output of one block to the output of delay of the c i r c u i t ) and w i l l i n d i c a t e p o t e n t i a l
the block i t feeds. See Figure 6 fo r the PERT model CHANGING when the f i r s t input indicates i t is CHANG-
of the Basic Logic Diagram. ING (plus the c i r c u i t delay). Note that t h i s means
t h a t the leading edge of the STABLE time w i l l be the
One way to analyze a PERT model is to l e v e l i z e the maximum time at which any input signal becomes sta-
nodes (as we often l e v e l i z e l o g i c blocks in Design ble, and the t r a i l i n g edge w i l l become CHANGING at
Automation programs - a block is in level k i f the the minimum time when any input signal becomes
maximum number of blocks back to a PI from that block CHANGING.
is k) and then process the blocks in level order:
f i r s t the blocks in level 1, then the blocks in level The use of "signal assertions" allows the designer
2, and so on. K i r k p a t r i c k and Clark were p r i m a r i l y to drive portions of the logic, for which the d r i v -
interested in f i n d i n g the c r i t i c a l l y long paths, so ing c i r c u i t r y has not yet been completely designed,
the analysis would have calculated the mean and sig- and permits the driving c i r c u i t r y to be checked when
ma f o r the MAX path from the START node. i t is f i n a l l y completed. A "signal assertion" is a
way of coding the timing f o r a clock or of asserting
Thus, blocks (nodes) being fed by the PI blocks of the time during which a signal is expected to be STA-
Figure 6 w i l l have a worst case a r r i v a l time ( i n BLE. The coding is appended to the end of the signal
PERT's terminology, t h i s is j u s t the "completion name which f a c i l i t a t e s d i s p l a y i n g i t on the hardcopy
time ,I ) equal to the time i t takes to get through the output of SCALD. Undefined signals, with no as-
block ("complete i t s task") plus the maximum a r r i v a l sertions, are taken to be always STABLE to avoid
time of any ]mary" input (which w i l l a l l be assumed spurious timing e r r o r messages.
to be zero).PrBlock B, which has one input at time
two and the other at time three, is t y p i c a l of other Timing checks are done by special blocks which check
blocks in the f i g u r e . Three is greater, the i n t e r - setup times, hold times, and minimum pulse width
nal delay is four, therefore seven is the maximum times. These blocks may be entered by the designer,
output a r r i v a l time f o r t h i s block. Thi~ is s i m i l a r but more often they are added to the design by the
to the critical path analysis calculations shown to expansion of macro blocks used to c a l l out latches,
describe the operation of NELTAS. r e g i s t e r s or e n t i r e RAM's.
These calculations y i e l d the outputs of blocks D, H, Due to the pessimistic nature of t h i s analysis, the
L and P, at times eleven, thirteen, nine and nine, occurrence of unbalanced designs can cause the anal-
respectively. y s i s to p r e d ic t p o i n t - t o - p o i n t delays l a r g e r or
smaller than permitted. When these conditions are
SCALD Timing Verifier - Stanford, T. M. i d e n t i f i e d , "case a n a ly s is " is used to introduce
McWilliams, [MC80]. some realism into the pessimistic analysis. For ex-
ample in Figure 7, taken from [MC80], the
The structure is presented to the Timing V e r i f i e r by pessimistic analysis would p r e d i c t the shortest path
other programs in the SCALD ( Structured to be 20ns and the longest to be 40ns. In f a c t , re-
Computer-Aided Logic Design, [MC78]) system along gardless of which s p e c i f i c value is assigned to CTL,
with models f o r each wire or component and any de- the delay fromA to B w i l l always be 30ns.
~
signer specifed overrides to wire delays.
What d i f f e r e n t i a t e s the Scald Timing V e r i f i e r from lOns pat h l ~ [
the ordinary simulator is the extension of the simu-
l a t i o n algebra to contain the values STABLE, (a sig-
nal would be at the correct value, e i t h e r ZERO or
ONE) and CHANGING (the signal would be p o t e n t i a l l y 20ns p a t h ~ I
changing from one stable value to another but be un-
stable during t h i s time period)[MC80]. Using these
values, the designer is able to specify the equiv-
a l e n t of many combinations of input values by simply
d e f i n i n g them to be STABLE at a c e r t a i n time. Like-
CTL t-
wise, the timing checks f o r storage elements,
r e g i s t e r s , and the l i k e are in terms of a comparison Figure 7 - Case Analysis Example
of the active time of the clock with the STABLE time
of the input data signal.
The evaluation tables are defined so that the most Assuming these extremes (20ns and 40ns) cause annoy-
dominant value is U (Undefined), with CHANGINGoften ing erroneous diagnostics, two cases are set up, the
running a close second. I f a l l inputs are defined f i r s t sets CTL to ZERO, the second sets i t to ONE.
(non-U), then i f any input is CHANGING, the output ( I f the extremes cause no extraneous diagnostics,
may be CHANGING. The exception to t h i s rule f o r an they can be ignored.) In each case, one path is ana-
OR, f o r example, is that a ONE on any input w i l l lyzed and the other is ignored. The result is a more
force the output to be a ONE regardless of what the accurate analysis (removing only enough ambiguity to
other inputs do. Thus, f o r an OR, ONE dominates the eliminate the erroneous diagnostics), without having
Paper 34.2
599
to go to the opposite extreme where a l l possible ZE- THE TIMING ANALYSIS CONCEPTS
RO and ONE patterns at the P l ' s are t r i e d to insure
proper timing. Timing Analysis is a program which establishes
whether a l l paths w i t h i n th~ design meet stated tim-
To parallel the results to be shown for the Timing ing c r i t e r i a , t h a t is , t h a t data signals a r r i v e at
Analysis i n i t i a l results, the PI assertions w i l l a l l storage elements e a r l y enough f o r v a l i d gating but
be OS (STABLE starting at time t=O). not so e a r l y as to cause premature gating (see Fig-
ure 1). The output of the TA program not only iden-
tifies any l o g i c with timing problems, but also
The r e s u l t of processing the blocks fed d i r e c t l y by provides slack as a measure of the s e v e r i t y of each
these primary inputs w i l l be derived assertions f o r problem. By t r e a t i n g the delays s t a t i s t i c a l l y , TA
Blocks A, E, I , and M (see below). Since we are as- permits the creation of a design with a shorter
suming t h a t the signals are CHANGINGu n t i l the f i r s t clock cycle than would a worst case analysis.
assertion that they are STABLE, t h i s means t h a t in
c a l c u l a t i n g the derived assertion f o r each block, As with the other programs mentioned e a r l i e r , t h e
several choices w i l l have to be made. At block B, at program does not require the input of a set of t e s t
le a s t one input remains CHANGING u n t i l time 3, so patterns, nor does i t overlook paths because pat-
i t s output cannot become STABLE u n t i l time 7. Simi- terns were omitted. In a d d i t i o n , the program pro-
l a r l y , block J cannot become STABLE u n t i l time 3. vides a mechanism, using delay modifiers, to a l t e r
As indicated, the Timing V e r i f i e r does not do sta- the propagation c h a r a c t e r i s t i c s of i n d i v i d u a l blocks
t i s t i c a l c a l c u l a t i o n s , so the times shown represent when i t is known t h a t l o g i c causes paths to never be
the mean r e s u l t . S i m i l a r c a l c u l a t i o n s f o r the re- sensitized or to c o r r e c t l y analyze abnormal timing
maining blocks give assertions as f o l l o w s : c r i t e r i a (such as a two-cycle path).
Signal Derived Signal Derived In order to apply the TA program, the design must be
Name Assertion Name Assertion a synchronous, sequential machine and i t must be
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Paper 34.2
600
At t h i s p o i n t , we d e f i n e the s l a c k S as the d i f f e r - From Figure 8, one can observe a f u n n e l i n g o f nega-
ence between the r e q u i r e d a r r i v a l time and the a c t u - t i v e s l a c k values through b l o c k B. I f B c o u l d be r e -
al a r r i v a l t i m e . The s l a c k value i s computed so t h a t placed by a c i r c u i t having a s m a l l e r d e l a y , a l l the
a n e g a t i v e number i n d i c a t e s a problem; t h a t i s , the n e g a t i v e slacks could be e l i m i n a t e d w i t h o u t changing
s i g n a l i s too l a t e . The o u t p u t o f b l o c k D a r r i v e s a t the f u n c t i o n a l design a t a l l . C l e a r l y , t h e r e are
time eleven, one u n i t l a t e ( s l a c k = - 1 ) . Block H i s also alternative techniques for resolving this tim-
t h r e e u n i t s l a t e ( s l a c k = - 3 ) ; b l o c k L is one e a r l y ing problem.
( s l a c k = +1); and P i s t h r e e e a r l y ( s l a c k = +3). The
In a d d i t i o n , n o t i c e t h a t t h e r e are many b l o c k s w i t h
positive slacks. These blocks could use c i r c u i t s
w i t h increased d e l a y and s t i l l be w i t h i n the t i m i n g
c o n s t r a i n t s [AG77, RU77].
2, 3) •
KEY
D = Block Delay
S
S = Slack
AT 7, 4)
AT = Arrival Time. I, D) 3, 4)
s l a c k i n f o r m a t i o n i s then propagated back through Figure 9 - Using Rising and Falling Delays
the b l o c k graph, w i t h a l l blocks being reprocessed
in o r d e r o p p o s i t e t o t h a t used f o r g e n e r a t i o n of the
arrival times.
Figure 9 shows how the Timing A n a l y s i s program j u s t
When each b l o c k i s processed in the backward d i r e c - d e s c r i b e d can a l s o handle r i s i n g and f a l l i n g delays
t i o n , the slacks are computed f o r the sources f o r and the i n v e r t i n g p r o p e r t i e s o f a b l o c k w i t h o u t r e -
each i n p u t , one a t a t i m e . For example, b l o c k D has q u i r i n g the " t w o - r a i l " model mentioned e a r l i e r in
a d e l a y o f t h r e e and a r e q u i r e d a r r i v a l time a t i t s the d i s c u s s i o n o f PERT. As the key a t the top of
o u t p u t of ten; t h e r e f o r e , the r e q u i r e d a r r i v a l time Figure 9 i n d i c a t e s , the f i r s t number i n s i d e the
a t i t s i n p u t i s seven ( t h e o u t p u t r e q u i r e d a r r i v a l b l o c k i s the d e l a y i f the o u t p u t i s r i s i n g ; the sec-
time minus the i n t e r n a l d e l a y ) . With r e s p e c t t o ond number i s the d e l a y i f the o u t p u t i s f a l l i n g ; and
t h i s b l o c k , the o u t p u t o f b l o c k C i s one u n i t l a t e , the a r r i v a l times are kept in a t w o - t u p l e w i t h the
so the s l a c k i s minus one. Block H has a d e l a y o f r i s i n g a r r i v a l time in the f i r s t p o s i t i o n and the
f i v e , so the r e q u i r e d a r r i v a l time a t i t s i n p u t s i s falling arrival time in the second p o s i t i o n . The
f i v e , and the s i g n a l feeding from b l o c k C i s t h r e e f a c t t h a t b l o c k 2 i n v e r t s i s i n d i c a t e d by the t r i a n -
u n i t s l a t e . Three u n i t s l a t e ( s l a c k = - 3 ) i s worse g u l a r wedge symbol a t i t s o u t p u t . This means t h a t
than one u n i t l a t e , so the program s t o r e s the most the r i s i n g o u t p u t w i l l be the g r e a t e r o f the two
n e g a t i v e value ( - 3 ) a t the o u t p u t o f b l o c k C. The falling i n p u t s ( a t times t h r e e and f o u r ) plus the
slack value s t o r e d a t the o u t p u t of the b l o c k c o r r e - b l o c k d e l a y ( t h r e e ) , so t h a t the r i s i n g a r r i v a l time
sponds t o the s l a c k value f o r the w o r s t path going w i l l be seven. The f a l l i n g o u t p u t w i l l be the g r e a t -
though t h a t b l o c k . er of the two r i s i n g i n p u t s ( a t times two and t h r e e )
plus the d e l a y ( o n e ) , so the f a l l i n g a r r i v a l time
Note t h a t each b l o c k i s processed once f o r w a r d and w i l l be f o u r . The same c a l c u l a t i o n can be done f o r
once backward; t h e r e f o r e , the process runs in a time each of these blocks so t h a t we can compute the r i s -
p r o p o r t i o n a l to the number o f b l o c k s . Note a l s o , ing and f a l l i n g p r i m a r y o u t p u t a r r i v a l time o f e i g h t
t h a t in a d d i t i o n t o c a l c u l a t i n g the a r r i v a l time f o r and t w e l v e , r e s p e c t i v e l y . Note t h a t i f ten were the
the w o r s t path to a b l o c k , we have a l s o c a l c u l a t e d a r e q u i r e d a r r i v a l time f o r both the r i s i n g and f a l l -
measure o f how bad t h a t path i s . ing a r r i v a l times, one would be e a r l y and the o t h e r
Paper 34.2
601
late. For t h i s reason the TA diagnostics d i s t i n - a f u l l screen manager, and a 618 storage tube w i t h
guish between block output "wising and f a l l i n g GRAPHPAK used t o draw r e l a t e d f i g u r e s .
a r r i v a l times, not j u s t between blocks.
The i n - c o r e formats from the Timing A n a l y s i s program
The calculation of a r r i v a l times also includes sta- are placed in a s o f t w a r e paging space f o r l a t e r ac-
t i s t i c s . As indicated e a r l i e r , each block delay ac- cess. This process i s done w h i l e the r e g u l a r batch
t u a l l y consists of two values - a mean delay and a j o b i s r u n n i n g , and removes the need t o produce a de-
delay standard deviation (sigma). The calculation
of a r i s i n g or f a l l i n g a r r i v a l time at each block of
the model involves the calculation of a mean a r r i v a l
time and an a r r i v a l time sigma. Mean a r r i v a l times
are computed by simply adding block mean delays to
CI LOGIC...(S.~E.) ,-.LOGIC~
previous mean a r r i v a l times. The a r r i v a l - t i m e sig-
mas are computed by applying standard convolutions. (S. E.)
C2
The a r r i v a l time actually stored at a block output
is the r e s u l t of propagating one of the input ar-
r i v a l times through the block. When the TA program
is looking for long paths, the one selected is the C1propagate~ .
one having the l a t e s t output a r r i v a l time. The l a t -
est a r r i v a l time is the one for which the expression I . L__
C1compare
+ Bo where ~ = nominal a r r i v a l time
B = confidence l e v e l , p r o v i d e d by
the d e s i g n e r
o = a r r i v a l time sigma .L_ . . . . . .
C2propagate
i s the g r e a t e s t . This e x p r e s s i o n i s used t o compute
an a r r i v a l time whenever one i s to be p r i n t e d o r a C2compare
s l a c k i s to be computed. Conclusions about the
probability o f a t i m i n g f a i l u r e can be drawn from
the c o n f i d e n c e l e v e l under the assumption t h a t the Figure 10 - Clock Descriptions
distributions are Gaussian. When the program i s
l o o k i n g f o r s h o r t p a t h s , the e x p r e s s i o n i s m o d i f i e d
by r e p l a c i n g the plus sign w i t h a minus s i g n . t a i l e d summary o f the t i m e s , come-froms, and g o - t o s
f o r each b l o c k ( t h i s can be q u i t e e x t e n s i v e f o r
large block graphs).
THE T I M I N G A N A L Y S I S SYSTEM
The data ( s t o r e d e a r l i e r ) i s then accessed by an
A complete TA model c o n s i s t s o f the c o m b i n a t i o n a l auxiliary p r o c e s s o r w r i t t e n to i n t e r f a c e w i t h the
l o g i c , the storage elements, and the c l o c k s . s o f t w a r e paging package and r e f o r m a t the accessed
The c l o c k s are d e f i n e d using two b a s i c t i m e i n t e r - data i n t o APL v a r i a b l e f o r m a t s .
v a l s , the propagate time and the compare time (see
Figure 10). The propagate time i s d e f i n e d so t h a t The e x t r a c t e d data i s i n t e r r o g a t e d by APL programs
the storage elements, which t r i g g e r the o r i g i n a t i o n which do the more mundane f u n c t i o n s o f name o r index
o f data s i g n a l s based on the times a t which the c l o c k s e a r c h i n g , r e f o r m a t t i n g of numbers t o be d i s p l a y e d
a r r i v e , w i l l know a t what time and in what time p e r i - and f i e l d i n g of user r e q u e s t s .
od the p r o p a g a t i o n should s t a r t . The compare time
i s d e f i n e d so t h a t the storage element w i l l know The b l o c k s e x t r a c t e d are d i s p l a y e d using the same
when t o expect data s i g n a l s ~o a r r i v e a t i t s i n p u t s . techniques used by the r e p o r t g e n e r a t i o n a l g o r i t h m s
w i t h i n Timing A n a l y s i s so t h a t the r e s u l t s may be
Figure 10 a l s o shows two storage elements, A and B, compared d i r e c t l y to any l i s t i n g s t h a t have been ob-
and some c o m b i n a t i o n a l l o g i c connecting them i n t o a tained.
loop. Clock 1 (C1) gates storage element A, and
c l o c k 2 gates storage element B. The propagate and Completeness
compare times are shown in the lower h a l f o f the f i g -
ure. The path from A to B and the path back from B As with the other techniques j u s t described, TA pro-
to A can be checked in the same Timing A n a l y s i s run gram is a complete system in the sense that a l l paths
w i t h o u t r e q u i r i n g a s p e c i a l t e s t - f o r each of the se- are potential candidates for i d e n t i f i c a t i o n as prob-
parate loops; the only requirement is a lem paths. This follows from the TA approach which
specification of the clocks in a consistent manner views storage elements as special functions and i g -
so that the signals resulting from the propagate nores the actual Boolean properties of other logic
time from CI w i l l be compared with the compare time blocks with the exception of t h e i r inverting proper-
of C2, and the signals resulting from the propagate ties.
time of C2 w i l l be comparedwith the compare time for
C1. There may be p a t h s , however, which are i d e n t i f i e d as
problem paths by TA which can never be s e n s i t i z e d by
To f a c i l i t a t e the rapid analysis of the TA results, l o g i c o r which meet s p e c i a l t i m i n g c r i t e r i a a t the
an i n t e r a c t i v e analysis program is included in the path o u t p u t s . One such example was shown in the d i s -
TA system (see Figure 11): cussion o f the SCALD Timing V e r i f i e r . Another exam-
p l e o f a s p e c i a l t i m i n g c r i t e r i a i s r e p r e s e n t e d by
Timing Analysis Results Analyzer [Ht82b] the s o - c a l l e d t w o - c y c l e path in which the path from
one s t o r a g e element t o another exceeds one c y c l e
The c h i e f elements o f the TARA (TA Results A n a l y z e r ) t i m e b u t l o g i c always ensures t h a t two machine cy-
p o r t i o n o f TA are the use o f a non-APL s o f t w a r e pag- c l e s are a v a i l a b l e f o r data t o propagate through the
ing system, APL ( f o r r a p i d a l g o r i t h m i c d e v e l o p m e n t ) , path. By inserting delay modifiers at the inputs to
Paper 34.2
602
selected blocks of the block model, one can e f f e c - • The accuracy of the answers are only as good as
t i v e l y block the propagation of a r r i v a l times or the accuracy of the delays c a l c u l a t e d f o r each
a d j u s t a r r i v a l times by f i x e d constants ( e . g . , minus b l o c k , and upon the assumption t h a t the delays
one cycle f o r the two cycle path). These delay modi- can be combined as one would f o r Gaussian d i s -
f i e r s are placed in the model based upon an tributions.
understanding of the l o g i c . The m o d i f i c a t i o n s im-
p l i e d are handled during the delay e x t r a c t i o n • Analyzing a path s t a t i s t i c a l l y is not the same
p o r t i o n of the basic block a l g o r i t h m of TA. as analyzing a machine s t a t i s t i c a l l y . What we
r e a l l y want is the p r o b a b i l i t y t h a t the machine
produced w i l l be free of t i m i n g problems. What
I SelectLogicto be Analyzed I we have c a l c u l a t e d i n d i c a t e s t h a t each path w i l l
be w i t h i n the desired bounds, w i t h a c e r t a i n
probability.
I' CalculateDelays I • Delay m o d i f i e r s can be used, and abused. They
are necessary, as was i n d i c a t e d e a r l i e r , to cut
paths t h a t w i l l never be a c t i v e or to a d j u s t de-
I Bui,d Mode,s 1 lays for "two-cycle ~ paths. However, inserting
them is a manual process, and the fewer times
~r"'User
Controls
~J~ Run Timing
~ Analysis ] they have to be inserted, the more l i k e l y the
design w i l l be t r u l y free of timing problems.
User
O=el than the block o r i e n t e d or non-enumerative path
methods, due to the explosive growth in the number
of paths as the number of blocks in the design i n -
creases.
Several of the previous techniques have been de ~
scribed along with b r i e f i l l u s t r a t i o n s showing how
Figure 11 - Timing Analysis System they would apply to a s i n g l e problem.
A d d i t i o n a l l y , the Timing Analysis approach has been
described in some d e t a i l as a method which not only
In c e r t a i n cases, i t may not be p o s s i b l e to place de- u t i l i z e s the less time consuming block o r i e n t e d
lay m o d i f i e r s in a model w i t h o u t having an undesira- method f o r a n a l y s i s , but also provides a new mech-
ble e f f e c t on other paths. For example, i t may not anism ( s l a c k c a l c u l a t i o n ) f o r h i g h l i g h t i n g a l l prob-
be possible to locate any block pin where the place- lems w i t h i n a design.
ment of a delay m o d i f i e r w i l l not adversely e f f e c t a
non-two-cycle path. I t is then necessary to make
one or more extra runs in which delay m o d i f i e r s are V ACKNOWLEDGMENTS
set to d i f f e r e n t values.
Many people have c o n t r i b u t e d to the Timing Analysis
Due to the use of a software paging system, i t is p r o j e c t since i t s i n c e p t i o n in 1973. In the e a r l y
possible to handle very large (over 100,000 f o r m u l a t i o n of the ideas, R. Bahnsen, W. Donath and
c i r c u i t s ) models in a single run. I f , f o r reasons G. L. Smith were major c o n t r i b u t o r s . In helping to
d i c t a t e d by machine a v a i l a b i l i t y , a model is too design a working program, D. D. Cheng, G. L. Smith
large to process in a single run, i t is broken up in- and H. Ofek c o n t r i b u t e d h e a v i l y . I t is not possible
to more manageablepieces and the values computed at to name a l l the many others on the 3081 p r o j e c t and
the primary outputs (inputs) of one piece are saved in the design automation (EDS), and technology areas
and automatically fed to the primary inputs who c o n t r i b u t e d to TA.
(outputs) of the other pieces to which i t is con-
nected. Thus, the total analysis is the same as i f
the whole model were processed at once. Vl REFERENCES
TIMING ANALYSIS A P P L I C A B I L I T Y B. J. Agule, J. D. Lesser, A. E. Ruehli, and
[AG77]
P. K. Wolff, Sr., "An Experimental System
There are three main concerns in evaluating the ap- for Power/Timing Optimization of LSI Chips,"
p l i c a b i l i t y of the timing analysis method. These Proceedings of the 14th Design Automation
were described in detail in [HI82a] and can be sum- Conference, New Orleans, (pp 147-152), 1977.
marized as:
Paper 34.2
603
[DO81] W. E. Donath and R. B. Hitchcock, Sr., "SCALD: Structured Computer-Aided Logic De-
"Method for determining the characteristics sign," Proceedings of the 15th Design Auto-
of a logic block graph diagram to provide an mation Conference, Las Vegas, (pp 271-277),
indication of path delays between the 1978.
blocks," U. S. Patent No. 4,263,651, April
1981. [MC80] T. M. McWilliams, " V e r i f i c a t i o n of Timing
Constraints on Large Digital Systems," Pro-
[H182a] R. B. Hitchcock, G. L. Smith, and D. D. ceedings of the 17th Design Automation Con-
Cheng, "Timing Analysis of Computer ference, Minneapolis, (pp 139-147), 1980.
Hardware," IBM Journal of Research and De-
velopment, Vol. 26, No. i , (pp 100-105), [P173] D. J. P i l l i n g , and H. B. Sun, "Computer -
1982. Aided Prediction of Delays in LSI Logic Sys-
tems," Proceedings of the lOth ACM/IEEE De-
[H182b] R. B. Hitchcock, B. L. Keller, E. Kellerman, sign Automation Workshop, Portland, Oregon
J. F. Schroeder, and A. M. Stankosky, "Tim- (pp 182-186), 1973.
ing Analysis Results Analyzer", IBM Techni- [RU77] A. E. Ruehli, P. K. Wolff, Sr., and G.
cal Disclosure B u l l e t i n , Vol. 24, No. 8, (p Goertzel, "Analytical Power/Timing Opti-
4229), 1982. mization Technique for Digital Systems,"
Proceedings of the 14th Design Automation
[KA81] R. Kamikawai, M. Yamada, T. Chiba, K. Furu- Conference, New Orleans, (pp 142-146), 1977.
maya and Y. Tsuchiya, "A C r i t i c a l Path Delay
Check System," Proceedings of the 18th De- [SA81] T. Sasaki, A. Yamada, T. Aoyama, K Hasegawa,
sign Automation Conference, Opryland, (pp S. Kato and S. Sato, "Hierarchical Design
118-123), 1981. V e r i f i c a t i o n for Large Digital Systems,"
Proceedings of the 18th design Automation
[K166] T. I. Kirkpatrick and N. R. Clark, "PERT as Conference, Nashville, (pp 105-112), 1981.
an Aid to Logic Design," IBM Journal of Re-
search and Development, Vol I0, No. 2, (pp [W078] M. A. Wold, "Design V e r i f i c a t i o n and Per-
135-141), March 1966. formance A n a l y s i s , " Proceedings of the 15th
Design Automation Conference, Las Vegas, (pp
[MC78] T. M. McWilliams and L. C. Widdoes J r . , 264-270), 1978.
,,J458