Propagation Delay. Measurement Automation. Using Cadence IC 1.6 â Calculator and MS Excel. Furkan Ercan. 10/30/14. VLSI ...
Propagation Delay Measurement Automation Using Cadence IC 1.6 – Calculator and MS Excel
Furkan Ercan
10/30/14
VLSI
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 you’re 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.
Page 1 of 6
Page 2 of 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’.
Page 3 of 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 109 to 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).
Page 4 of 6
Page 5 of 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.
Page 6 of 6