• 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. Mixed-Signal Design
  3. Rise/Fall time calculation

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 65
  • Views 5351
  • 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

Rise/Fall time calculation

mxm14
mxm14 over 2 years ago

Hello, 

I need to calculate rise and fall time of a square waveform with a ripple:I see that the measurement tool gives this information: it self evaluate a sort of average value for the amplitude considering the ripple: 

If i plot the rise/fall time from Transient measurement I have: 

riseTime(leafValue( diff_out_clk "CONFIG/s_port_monclk" "schematic_ac" "corner_name" "[0]Typ" "modelFiles" "....." "dvdd" 0.75 "avdd" 0.93 "avddh" 1.15 "temperature" 60 "avddl" 0.94 "vbgscale" 1 "Iload" 0.01972 ) -0.416185 nil 0.415602 nil 10 90 t "time")

Where the bold number I suppose are the values obtained from the amplitude with ripple.

Since i want to calculate the rise/fall for several corners,i want to substitute those numbers with a formula....  Which is the formula used to extract the average amplitude from the amplitude with ripple?

Thank you in advance

  • Cancel
Parents
  • ShawnLogan
    ShawnLogan over 2 years ago

    Dear mxm14,

    mxm14 said:
    Since i want to calculate the rise/fall for several corners,i want to substitute those numbers with a formula....  Which is the formula used to extract the average amplitude from the amplitude with ripple?

    One possibility that will provide a reasonable estimate for the average logic low and logic high amplitudes (for most waveforms - but not all cases!) is to utilize apply a moving average function to the periodic waveform of interest. In a few tests I conducted, if I use about 10% of the points per period of the waveform, the maximum and minimum values of the moving average appear to be reasonable estimates of the average logic low and logic high amplitudes. Figure 1 details a couple of cases showing the waveform (orange) and moving average trace (dotted blue). Mr. Andrew Beckett has written a moving average function in SKILL that can be used in both the Calculator as weill as in an Assembler or Explorer output expression. The latest version I have of his function, "abMovingAvg.il" is dated Jan 13, 2020. it is available from the Cadence on-line support site. Hence, I might suggest your define the two outputs average_logic_low and average_logic_high where each is defined as follows for your output waveform "/vout".

    average_logic_low = ymin(abMovingAvg(v("/vout" ?result 'tran)  <time_interval_corresponding_to_10%_of points_per_waveform_period>))

    average_logic_high = ymax(abMovingAvg(v("/vout" ?result 'tran)  <time_interval_corresponding_to_10%_of points_per_waveform_period>))

    Use these two variables, average_logic_low and average_logic_high in your riseTime() expression. This will make the average logic high and low values a function of the simulation corner.

    I hope this helps mxm14!

    Shawn

    Figure 1

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 2 years ago in reply to ShawnLogan

    The functions you are looking for are the baseLine() and topLine() functions which return the statistical peaks of the signal. These are documented, but aren't in the calculator (yet). I filed a change request (CCR 2855771) for two things - one to ensure they handle family waveforms, and two to add them to the calculator/expression builder. For now you'll need to type (say) topLine(VT("/out"))

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 2 years ago in reply to ShawnLogan

    The functions you are looking for are the baseLine() and topLine() functions which return the statistical peaks of the signal. These are documented, but aren't in the calculator (yet). I filed a change request (CCR 2855771) for two things - one to ensure they handle family waveforms, and two to add them to the calculator/expression builder. For now you'll need to type (say) topLine(VT("/out"))

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Children
  • mxm14
    mxm14 over 2 years ago in reply to Andrew Beckett

    Thank you Shawn and Andrew!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

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