Getting the best performance out of your silicon means
squeezing every little bit of extra time out of your circuit. One way to improve system speed is to
perform a delay correlation analysis during the early stages of your design and optimize your circuit
to take advantage of the delay tracking between gates. The variation in delays between gates within
a given IC is smaller than between gates on different ICs of the same type because of process and temperature
variations across the ICs. Delay correlation between on-chip gates gives designers the ability to build
circuits that can run faster than might seem possible when performing timing analysis using the worst
case across-chip min/max delays provided by most chip manufacturers.

Experienced digital designers have been taking advantage of delay correlation for many years to build
high speed circuits, but until recently there has been no tool for systematically designing a circuit
that optimizes system timing by accounting for delay correlation effects. SynaptiCAD's WaveFormer program
enables a designer to interactively specify and analyze delay correlation effects on system timing as
his design takes shape, allowing the designer to visualize the true timing bottlenecks in his system
and make system changes to achieve optimal system performance

Introduction

One of the most important initial steps in digital design is to perform a preliminary timing analysis
to determine if the system can be designed to meet performance requirements. Without it, no circuit
can proceed from the conceptual phase. Even with it, most errors in design occur because of timing mistakes.
The traditional method of timing analysis, pencil and paper, quickly overwhelms a design engineer, especially
for a large circuit. Fortunately, the recent past has seen the emergence of software which automates
the construction of complex timing models. The user is now able to optimize a design relatively quickly,
without having to redraw the entire diagram each time a tweak is made.

The critical data entered into a timing diagram is the delay times and operating constraints of the
system components. These timing parameters are generally expressed as a range (e.g. 5-10 ns) because
there is some uncertainty associated with high volume component manufacture and circuit operating conditions.
To combat these uncertainties in component delays and constraints, designers have traditionally been
forced to assume worst case operating conditions that are overly pessimistic with regard to maximum
operating speed. This is because the probabilities associated with these ranges are generally treated
as independent quantities.

It is known that components placed on the same circuit have a correlation between their delay times.
If one component has an actual delay time at the high end of its uncertainty range, others on the same
circuit will tend to be at the high end also. This idea forms the basis for narrowing the delay time
uncertainty and, with appropriate design techniques, enables circuit speed-ups.

Delay correlation will be reviewed by first defining the concept and then showing, through specific
examples, how it can enhance circuit design. Some mathematical and algorithmic problems associated with
it will be discussed. It will become apparent that computer solution is vital for properly handling
delay correlation.

Delay Correlation Defined

Delay correlation is simply a relationship between two propagation delays (or more) in a circuit. Slide
3 illustrates this formally. If one delay can be expressed as a function of the other, then some correlation
between them is said to exist. This function is normally piecewise linear and expressed in terms of
a correlation factor (or percentage) between 0-1.

Although it is unnecessary to construct the exact functional relationship, it is instructive to see
how delay correlation affects a specific delay. If, somehow, we are given a certain delay within an
interval, the equations on slide 4 show how the second interval is a function of the first interval
and the delay correlation. The max and min functions serve only to ensure that the delay range never
exceeds the maximum and minimum absolutes given by the physical component. From the equations it is
apparent that correlation serves to narrow the interval over which the delay can occur. For no correlation
(cf = 0), the interval simply reduces to the absolute limits [a2 , b2].

Delay correlation thus serves to decrease the overall uncertainty difference between delays. If one
delay is known to be at the high end of its range, then the other will be at the high end as well. As
with the delay ranges themselves, the exact correlation to use is based on component vendor information.

Design Example: Circuit 1

Consider the simple circuit shown in slide 5 comprised of two gates and some range of delay times. Let.s
assume that D1 lies in the range 5-10 ns and CLKDELAY2 lies in the range 0-5 ns. If the two gates have
no delay correlation (the usual assumption) then the actual delay times for each could fall anywhere
in the shown ranges. For instance, if D1=10 ns, then CLKDELAY2 could have a delay time as low as 0 ns.
We will call this condition 0% correlation.

At the other end of the spectrum is 100% correlation. This means that if D1=5 ns, then CLKDELAY2=0ns.
If DO=7.5ns then CLKDELAY2 will be at 2.5ns, and so forth. Clearly 100% correlation greatly reduces
the difference between the two delays. The numbers shown here can be arrived at through the equations
on slide 4. However, for these simple cases, visual inspection is easier.

What happens for, say, 80% correlation? If D1=5 ns, then CLKDELAY2 will be in the range 0-1 ns. In other
words the possible range for CLKDELAY2 spans 20% (100% - 80%) of its total range. Now, if D1=10 ns,
then CLKDELAY2 would have a range of delay times from 4-5ns. This is because the CLKDELAY2 range is
.20% around 5ns, it.s corresponding point. Obviously, since a higher delay time than 5 ns is not possible,
the range is 4-5 ns rather than 4-6 ns.

Slide 6 shows a timing diagram for this case with 0% correlation. The table below the diagram makes
reference to a required setup time of 5 ns. Since the actual setup time equals 5 ns, the margin, or
slack time is 0 ns.

However, with correlation the slack time would increase, as shown in slide 7. Here we generate a table
showing the possible intervals for CLKDELAY2 given each D1 in the range 5-10 ns. By inspection of the
timing diagram (or circuit itself) a simple formula can be written to be solved for slack time. It is
important to note that this formula is a function of the difference between the two correlated delays.
By inspection of the table we find the minimum (most negative) difference between CLKDELAY2 and D1.
When inserted into the formula for SLACK we arrive at the most conservative estimate for the slack time.
As expected, the higher the correlation, the higher the slack time.

Clearly, an increase in slack time allows an increase in clock frequency. Going from 0% to 100% delay
correlation would allow an increase in clock frequency from 40 MHz to 50 MHz, a 20% increase. For 80%
correlation a 47 MHz clock would be permissible, still a sizable increase. Use of delay corrrelation
can significantly impact circuit speed.

It can also be shown for this example a timing failure which disappears when the effect of delay correlation
is introduced. To illustrate this, consider the reverse of the above case, a 50 MHz clock initially
with the case of no correlation. Since the margin was zero with the 40 MHz clock, this case will certainly
fail. However, as we just saw, the case is successful if the delay correlation is known to be 100% and
properly accounted for. Thus, delay correlation can correct pessimistic calculation errors which might
cause a good circuit design to be rejected.

Another example based on the same circuit illustrates a potential benefit of clock delay and shows how
delay correlation can correct a possible failure in the timing verification. Suppose that the delay
time interval for D1 is increased to 12-17 ns. In a worst case scenario (0% correlation), D1 would be
17 ns and CLKDELAY2 would be 0 ns. The total path from the clock through D1 is then 27 ns (CLKOUT1+D1).
Since the available clock time is 25 ns (CLKPERIOD+CLKDELAY2), the clock would be clocking the input
signal to FF2 when it was still low (ie, before it had a chance to change to the correct high value
for this cycle). However, for 80% correlation, if CLKDELAY2 were 0 ns, then D1 would be at 13 ns and
the clock would be seeing a correct high input signal. This is a result which could only be achieved
by first having clock delay, and second making use of delay correlation.

Design Example: Circuit 2

Our second example is a slightly more complex version of the first employing, in addition, a return
loop and a clock delay for FF1. Slide 8 provides a schematic. The return loop with D2 provides an additional
constraint on the system, illustrated in slide 9. Any time increase in the D1 path will reduce the time
available to the D2 path.

The equations in slide 9 help make this point. Assume the system has no slack time. Then, if D1 is increased,
CLKDELAY1 must decrease by an equal amount. This causes less time available for the D2 path, and D2
must decrease a corresponding amount to make up for this deficiency.

This effect is important because it can arise when making use of delay correlation to get more time
through one path. A designer must keep in mind that in most practical circuits, gains in one path will
be offset by losses in other paths.

Slide 10 shows the effect of correlation between the two clock delays. As with the previous example,
the clock period is affected by delay correlation. For a worst case analysis a clock period 4 ns higher
must be specified than the case where we can count on 80% correlation between the delays.

Design Example: Circuit 3

A further example is illustrated in slide 11. This case is similar to circuit 2 except we assume that
one path is much longer than the other. Furthermore we suppose that we can locate the clock generator
such that it falls very close to FF1, very close to FF2, or somewhere in the middle. This amounts to
saying the clock is on the left, right, or middle, respectively. We assume that located on the left
the clock delay to FF1 will be zero, on the right the clock delay to FF2 will be zero, and in the middle
the clock delay to either flip flop will be split evenly.

The first question is where to locate the clock to achieve maximum clock frequency. The timing equations
shown in slide 12 indicate that if we place the clock on the right side, the required clock period would
have to be greater than or equal to 35 ns. Slides 13-14 go through the same procedure for the clock
located on the left and in the middle. Slide 15 summarizes the results by showing that the lowest clock
period occurs if the clock is located on the left side. Incidentally, this result contradicts many engineering
assumptions which would place the clock in the middle in an attempt to minimize the difference in clock
arrival times at the flip-flop clock inputs.

Despite correctly locating the clock, by using delay correlation we can improve even more on our specification
of the clock period. Slide 15 shows that if CLKDELAY is correlated 100% with D1A and D1B (as if they
were a single delay) the specified clock would need to have a period greater than or equal to only 20
ns. Thus, in order to achieve an optimal solution, the clock must be placed in the correct location
and delay correlation effects should be accounted for.

Multiple Path Delay Correlation

So far the examples have treated cases in which there were two correlated delays in a circuit. In reality,
however, each circuit under consideration will have many delays and correlation factors may exist between
any two delays or group of delays. This situation makes the timing analysis considerably more complex.

Consider the figures shown in slide 16. In the first case we have three gates, each having some correlation
to the other two. We assume for simplicity that the delay interval for all the gates is 0-10 ns. Furthermore
let.s assume that the delay for gate 1 is known with certainty and is equal to 0 ns. Since gate 2 is
100% correlated with gate 1, it also has a delay of 0 ns. Now, since gate 3 is 30% correlated with gate
2, its delay range is in the interval 0-7 ns. However gate 3 also has 90% correlation with gate 1, making
its delay interval 0-1 ns. Which is the correct interval to choose for gate 3? The answer is the one
that satisfies all the other constraints. If 0-7 ns is chosen, then it is conceivable for gate 3 to
have a delay outside the interval 0-1 ns (the constraint imposed by the 30% correlation). Therefore
the correct choice is 0-1 ns, since it will always satisfy the other constraint.

The second example of slide 16 shows a case with four gates. Now we must choose the correct correlation
for gate 2 and gate 4. We do so in the same manner. However, it is easy to see that by increasing the
number of gates the problem quickly becomes too complex to do by visual inspection. Virtually any gate
on a circuit can be correlated with any other gate, or group of gates. The only restriction is that
no two gates can have more than one correlation between them. This problem necessarily lends itself
to computer solution.

Mathematical Problem/Solution

In the preceding examples it should be noted that the effect of delay correlation on a timing analysis
is through the difference between the two delays. Slide 18 states the problem of calculating these differences
more formally. In essence, given a correlation factor and two delay intervals, we are interested in
the minimum possible difference between the two delay intervals, and the maximum possible difference.
This gives us the limits on the range of possible differences.

The solution to the problem is given on slide 19. Although it involves just a series of simple algebraic
steps, many such calculations are required for a real design. Again, computer solution is recommended.

Conclusions and Recommended Resources

Delay correlation effects play an important role in timing analysis for digital circuits. Properly accounting
for them can both lead to an increase in clock speed and prevent timing analysis errors. Unfortunately
delay correlation is too infrequently used in most analyses, forcing designers to use overly pessimistic
delay information.

Given the complexity of a real timing analysis problem using delay correlation, computer solution is
the ideal way to proceed. SynaptiCAD.s line of timing analysis tools properly computes the effect of
delay correlation for any digital design problem.

WaveFormer Pro.s timing diagram editor is an ideal tool for beginning a delay correlation based timing
analysis. It.s basic features include a modeless drawing and editing environment; delays, setups, and
holds for performing any timing analysis; time markers; seven graphical waveform states; virtual and
group buses; clocks with formulas; as well as a variety of ways to document the resulting work. You
can automatically determine critical paths, verify timing margins, adjust for reconvergent fanout effects,
and perform "what if" analysis to determine optimum clock speed. Entry of correlation data into WaveFormer
is simple. Any delay combination can be specified along with its correlation. Correlation data is then
automatically accounted for during subsequent analysis. An option exists to turn off correlation data
for any delay combination, effectively making the correlation 0%.

In addition to being a timing diagram editor, WaveFormer Pro has a stimulus generator and an interactive
HDL simulator. These features allow the user to automatically generate and simulate timing diagrams
using common Boolean and registered logic equations. It can also import or export waveforms to VHDL,Verilog,
HP's logic analyzers & pattern generators, SPICE, ABEL, and a variety of gate level simulators. These
import capabilities also aid in the acquisition of delay correlation data.

Peter Menegay is a Senior Research Engineer, where he is the lead designer for SynaptiCAD's WaveFormer
Pro product. Menegay received his Ph.D in engineering from Virginia Polytechnic Institute and State
University, and comes to SynaptiCAD from a research position at Dupont. Menegay's industry experience
includes over 6 years of hardware and software modeling experience.

Daniel L. Notestein is president of SynaptiCAD Inc., where he directs and performs research and
development in electrical design automation software and object-oriented framework technology. Notestein
received his BS degree in electrical engineering and minors in computer science and math from Virginia
Polytechnic Institute and State University and an MS degree in electrical engineering from the University
of Texas at Arlington. Notestein worked as a software design engineer and a hardware design engineer
at Texas Instruments and Burr-Brown Corporation before founding SynaptiCAD in 1992.