• 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. get the difference between two wave forms after parametric...

Stats

  • Replies 5
  • Subscribers 131
  • Views 615
  • Members are here 0

get the difference between two wave forms after parametric sweep.

Svilen64
Svilen64 20 days ago

Hello,

I have run a parametric sweep to get different delays of a clock signal and I created an expression that extracts the delay of the rising edge with respect to a reference depending on the parameter. Then I shifted that by one index count, index being swept. Now I want to take the difference between those two so I can plot the delay for each two consecutive values of the swept parameter . Can I do that without starting scripting in Skill or Ocean? 
Thanks
Svilen

  • Cancel
  • Sign in to reply
Parents
  • Andrew Beckett
    Andrew Beckett 20 days ago

    Svilen,

    Almost certainly this could be done with an expression using the eval type set to “sweeps”, but could you please share the expressions used and what you are sweeping too - it’s hard to be certain precisely what you are doing and I’d like to make sure that any specific suggestion I make has been tested and is close to what you actually need.

    Maybe also sharing a screenshot of the results you get in ADE and then showing which you want to get the difference between?

    Thanks,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Svilen64
    Svilen64 19 days ago in reply to Andrew Beckett

    Hi Andrew,

    Thanks for replying.

    I did try to attach an image yesterday but the system didn't allow me. A while back I also replied to you with the information you requested and also gave the URL to where I uploaded the image online and my reply was flagged as spam. So, I will again explain in words what I was doing and provide no visual material unfortunately. Which is sort of ridiculous not being able to do.

    I have a variable in my testbench called bits which controls the delay of a clock and I want to sweep that variable and get different delays. The sweep is over a list of values which are non-uniform, say 0 1 3 7 15 31 etc. I also created another variable ind (for index) which is uniform 1 2 3 4 5 6 etc. That variable doesn't control anything in the test bench but I grouped it in a parametric set with the first one, so they go together.
    The output I am interested in is VT("/out"). 
    I have defined my reference with respect to which I measure the delay as ref=value(VT("/out") "bits" 0)
    I have defined the family of clocks from the sweep as family=VT("/out")
    Then I define the delay from the rising edge of the ref to the rising edges of each clock in the family del=delay(ref 0.4 2 "rising family 0.4 2 "rising")
    Also defined index=VAR("ind")
    All those are evalType sweeps.
    Form the calculator I plot two things
    waveVsWave(?x index ?y del)
    rshift(waveVsWave(?x index ?y del) 1)
    I can plot those and now I have two delay sets of points shifted with respect to each other by one index count. The idea being to take the difference and have the delay between each two consecutive edges of the clock, which ultimately I wanted to plot. However, the difference returns just 0.

    Regards
    Svilen


    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • Svilen64
    Svilen64 19 days ago in reply to Andrew Beckett

    Hi Andrew,

    Thanks for replying.

    I did try to attach an image yesterday but the system didn't allow me. A while back I also replied to you with the information you requested and also gave the URL to where I uploaded the image online and my reply was flagged as spam. So, I will again explain in words what I was doing and provide no visual material unfortunately. Which is sort of ridiculous not being able to do.

    I have a variable in my testbench called bits which controls the delay of a clock and I want to sweep that variable and get different delays. The sweep is over a list of values which are non-uniform, say 0 1 3 7 15 31 etc. I also created another variable ind (for index) which is uniform 1 2 3 4 5 6 etc. That variable doesn't control anything in the test bench but I grouped it in a parametric set with the first one, so they go together.
    The output I am interested in is VT("/out"). 
    I have defined my reference with respect to which I measure the delay as ref=value(VT("/out") "bits" 0)
    I have defined the family of clocks from the sweep as family=VT("/out")
    Then I define the delay from the rising edge of the ref to the rising edges of each clock in the family del=delay(ref 0.4 2 "rising family 0.4 2 "rising")
    Also defined index=VAR("ind")
    All those are evalType sweeps.
    Form the calculator I plot two things
    waveVsWave(?x index ?y del)
    rshift(waveVsWave(?x index ?y del) 1)
    I can plot those and now I have two delay sets of points shifted with respect to each other by one index count. The idea being to take the difference and have the delay between each two consecutive edges of the clock, which ultimately I wanted to plot. However, the difference returns just 0.

    Regards
    Svilen


    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
  • Andrew Beckett
    Andrew Beckett 19 days ago in reply to Svilen64

    Svilen,

    Unfortunately there's a bug with the forum system that it intermittently disallows image updates (this affects me too). It's known and we hope that this will be fixed when we upgrade to the next version of the forum software provided by the vendor. The workaround of using an external site for images works, but external URLs are flagged as potential spam and have to be appealed, reviewed and the approved (which I did - so it's in the thread above).

    I'll look into your situation and see whether I can reproduce something similar. May not be until later today or tomorrow though...

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Svilen64
    Svilen64 18 days ago in reply to Andrew Beckett

    Hi Andrew,

    Thanks for unblocking that reply. I hope now with the image and my previous description it is more or less clear what I was trying to do.

    Svilen

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • 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.

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

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