• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. Worst case delay measurement

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 125
  • Views 15800
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Worst case delay measurement

Aalelai
Aalelai over 5 years ago

Hi,

I have simulated an inverter in 180nm. I'm told to calculate the propagation delay and worst case delay of the circuit.

What is the method to calculate worst case delay either using calculator or graphical output ?

  • Cancel
Parents
  • ShawnLogan
    ShawnLogan over 5 years ago

    Dear Aalelai,

    The cross() function in the Calculator may be used with a waveform to determine the time at which the waveform crosses a specific voltage threshold. One of its options allows you to select the slope of the waveform at which it crosses and a second option allows you to select which edge number of the waveform to use to determine the crossing time.

    Its options from the ocean reference manual follow. You may also use the cross function in combination with the clip() function to window the output of your delay cell to only consider the time after the input edge to the delay cell is applied to guarantee your propagation delay time is positive. I hope this helps.

    Shawn

    cross

    cross(

    o_waveform

    n_crossVal

    x_n

    s_crossType

    [ g_multiple [ s_Xname ] ]

    )

    => o_waveform / g_value / nil

    Description

    Computes the X-axis value at which a particular crossing of the specified edge type of the

    threshold value occurs.

    Gets the time value (X axis) corresponding to specified voltage "/net9"=2.5V (Y axis) for

    the second rising edge.

    -------------------------

    Arguments

    Value Returned

    Example

    cross( v( "/net9" ) 2.5 2 ’rising )

    o_waveform Waveform object representing simulation results that can be

    displayed as a series of points on a grid. (A waveform object

    identifier looks like this: srrWave:XXXXX.)

    n_crossVal Y-axis value at which the corresponding values of X are

    calculated.

    x_n Number that specifies which X value to return. If x_n equals 1,

    the first X value with a crossing is returned. If x_n equals 2, the

    second X value with a crossing is returned, and so on. If you

    specify a negative integer for x_n, the X values with crossings

    are counted from right to left (from maximum to minimum). If

    you specify x_n equals to 0, it returns all occurrences of the

    crossing events.

    s_crossType Type of the crossing.

    Valid values: ’rising, ’falling, ’either.

    g_multiple An optional boolean argument that takes the value nil by

    default. If set to t, the value specified for the x_n argument is

    ignored and the function returns all occurrences of the crossing

    event.

    s_xName An optional argument that is used only when g_multiple is

    set to t. It takes the value time by default. It controls the

    contents of the x vector of the waveform object returned by the

    function.

    Valid values: ’time, ’cycle

    o_waveform Returns a waveform if the input argument is a family of

    waveforms.

    g_value Returns the X-axis value of the crossing point if the input

    argument is a single waveform.

    nil Returns nil and an error message otherwise.

    ----------

    Example

    cross( v( "/net9" ) 2.5 2 ’rising )

    Gets the time value (X axis) corresponding to specified voltage "/net9"=2.5V (Y axis) for

    the second rising edge.

    cross( v( "/net9" ) 1.2 1 ’either )

    Gets the time value (X axis) corresponding to specified voltage "/net9"=1.2V (Y axis) for

    the first edge, which can be a rising or falling edge.

    cross(VT("/out") 2.5 0 0 t "time") (s)

    Returns multiple occurrences of crossing events specified against time-points at which each

    crossing event occurs.

    cross(VT("/out") 2.5 0 0 t "cycle") (s)

    Returns multiple occurrences of crossing events specified against cycle numbers, where a

    cycle number refers to the n’th occurrence of the crossing event in the input waveform.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Aalelai
    Aalelai over 5 years ago in reply to ShawnLogan

    Thank you shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to Aalelai

    There's also the delay function in the calculator too...

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to Aalelai

    There's also the delay function in the calculator too...

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information