delay automation in cadence

Upload: panpanpan

Post on 11-Feb-2018

215 views

Category:

Documents


0 download

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.