delay automation in cadence
Post on 11-Feb-2018
215 Views
Preview:
TRANSCRIPT
-
7/23/2019 Delay Automation in Cadence
1/7
Propagation DelayMeasurement AutomationUsing Cadence IC 1.6 Calculator and MS Excel
Furkan Ercan 10/30/14 VLSI
-
7/23/2019 Delay Automation in Cadence
2/7
Page 1of 6
Propagation Delay Measurement Automation in Cadence Virtuoso
There is no direct way of measuring the propagation delay fast and accurately. However, by
using the ADEXL calculator functions and Excel math, the measurement of delay in an automated
fashion is possible. This documentation describes how to measure propagation delay, where the delay
is independent of operating frequency. The methodology yields accurate results, but for a circuit,
operating conditions should be taken into consideration very carefully. Your circuit might need
different approaches from the methods described in this report.
To illustrate examples, a threshold logic function is used. Threshold logic (TL) is a function that
outputs whenever the number of inputs exceed a given threshold value. No further detail on threshold
logic is required for the rest of this report.
In Cadence IC 1.6, there are markers (bind keys: A, B) and vectors (bind key: V) that would help
track time and take difference on two highlighted points. However, for an 8-input TL, there are 28=
256 input combinations and a number of swinging outputs that would take a lot of time to identify the
worst case propagation delay by scanning all output swings and comparing them with the relevant
input swings. Also I noticed that when the time range is at its limits (i.e. very small range), the marker
points are very hard to manage, and even sometimes Cadence itself has hard time to identify what
youre trying to do.
Under certain circumstances and constraints, it is possible to exploit the cross function of the
Cadence calculator to find the worst case propagation delay. Cross function lists (or maps) the times
when a signal crosses a defined threshold value. The signal type can be selected (rising or falling or
either) as well as defining the threshold value. Edge Number is the number of crossing at which to
perform the function. For example, if edge number is 1, then the function returns the first crossing
value, and so on. If the edge number is negative, then the function counts the number of crossings
from the end of the waveform. If the edge number is 0, then it returns all crossings that satisfy the rest
of the constraints.
If edge number is zero, than the Number of Occurrences should be multiple. The last option
plot/print vs. identifies whether the values returned should be assigned to cycles or time. This option
is irrelevant to our methodology. Below figures show the waveform navigator and the cross function
window. In this case, a VDD of 1.8V is used, thus a 900 mV threshold is required.
-
7/23/2019 Delay Automation in Cadence
3/7
Page 2of 6
-
7/23/2019 Delay Automation in Cadence
4/7
Page 3of 6
Since the propagation delay does not depend on the input rate, I can safely use a slow rate in
order not to confuse my delay calculations. It has to be made sure that the input period should be
much larger than the worst anticipated delay value, otherwise this methodology is hazardous to use.
The crossing values should be returned in a list by clicking on Apply and then the button , as
below:
Note the the amount of significant digits are not enough to catch the propagation delay if it is
in nanosecond range (it is in ns range for this example). Right click on the column, select Format, and
type significant digits box something larger, 8 in this case (can be even larger). Click OK. Right click on
the column again and copy to clipboard.
-
7/23/2019 Delay Automation in Cadence
5/7
Page 4of 6
Save the column to an Excel sheet. Now we do the same for the output waveform. Copy the
selection to the next column in the Excel sheet you created.
As we guaranteed that the input period is much larger than maximum possible propagation
delay, with some Excel calculations we can figure what the actual propagation delay is. In this case, the
input rate is 10 MHz, namely, the input signal swings at each 50 ns. The propagation delay expected
from the subject circuit is far smaller than 50 ns.
For example, there is an output crossing at around ~250 ns. This crossing is due to the input
switching at around 250 ns, not 200 ns or not 300 ns. To make Excel find the time difference, each
output crossing value is first subtracted from each of the input crossings. For the crossing at 250 ns,
comparing it with earlier crossings at the input yields large positive values, and comparing it with later
crossings at the input yields large negative crossings. Comparing it with the input crossing around 250
ns should yield a very small positive number. At this point, this number has to be identified. The
following formula picks the minimum positive number from the selected sheet where COLUMN is
the column of the subtraction results column of the subject output crossing.
= (("COLUMN">0, "COLUMN", ""))
This action should be repeated for each output signal. Finally, among these positive minimums,
the maximum of them should be selected by simply using the MAX function in Excel. The result can be
multiplied with powers of 10 to scale it to the desired range. The result is multiplied with 10 9to scale
it to ns range in this case. In the figure below, column A and column B are input and output crossing
numbers respectively. The grey cells are the subtraction list, each column is calculated for one output
crossing. The blue row at the top are the selected positive minimum values at each column. In cell C2,
the maximum of these minimum positives are highlighted (multiplied with 109).
-
7/23/2019 Delay Automation in Cadence
6/7
Page 5of 6
-
7/23/2019 Delay Automation in Cadence
7/7
Page 6of 6
Using this method should save a lot of time, and it also provides most accurate values once the
constraints are carefully implemented.
So far, the methodology is explained using a combinational digital TL example. If an analog
circuit that uses a refresher clock signal should be the subject of measurement, then it takes a few
more steps. For circuits that has refreshing and evaluation periods, the propagation delay is divided
into two parts; delay in the refresh period and the delay in the evaluation period should be calculated
separately. Also, the propagation delay should be measured as clock-to-output rather than input-to
output.
Say the lower clock signal is the refreshing phase and the output signal in this case goes low in
this phase. Then the falling edge of the clocks should be listed with the falling edge of the output signal.
For the evaluation period, the rising edge of the clock should be listed with the rising (actually both
rising and falling, but there would be no falling edge in this case) edge of the output signal. Then the
two propagation delay values should be summed.
top related