• 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. Getting data from an "intersect"

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 125
  • Views 3828
  • 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

Getting data from an "intersect"

CSCNalu
CSCNalu over 4 years ago

Hi

I have a dumb question - I want to know where two waveforms from an ADE sim intersect so I used the "intersect" command but how do I access the values of the coordinate pair?  I want to use them to measure other signals against (like use the x value for some other calculations and use the Y value for other calculations).

Thanks

Chris

  • Cancel
Parents
  • ShawnLogan
    ShawnLogan over 4 years ago

    Dear Chris,

    CSCNalu said:
    I want to know where two waveforms from an ADE sim intersect so I used the "intersect" command but how do I access the values of the coordinate pair? 

    Did you happen to try the xval() function on the resulting intersect operation? For example, in Figure 1, I show two waveforms (divout_p and divout_n) that intercept twice every waveform period.  I use the following Calculator intersect expression and plot the result in Figure 2:

    intersect(leafValue( VT("/divout_p") "freq_GHz" 16 ) leafValue( VT("/divout_n") "freq_GHz" 16 ) )

    In Figure 3, I then apply the xval function to the result with the Calculator expression and plot the result in Figure 3. There are many waveform intersections and hence the result appears as a waveform. Alternately, you could append the result to a table or select the waveform in Figure 3 and export it. Since the waveforms intersect at the same timepoints the x and y coordinates of the waveform are identical.

    xval(intersect(leafValue( VT("/divout_p") "freq_GHz" 16 ) leafValue( VT("/divout_n") "freq_GHz" 16 ) ))

    I hope I understood your question and this example is somewhat relevant and helps you Chris.

    Shawn

    Figure 1

    Figure 2

    Figure 3

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • CSCNalu
    CSCNalu over 4 years ago in reply to ShawnLogan

    Hi Shawn

    Thanks - yes - that's mostly what I was looking for.  Is there a way to pull off the first value?  I want to use this as a threshold for subsequent measurements.

    Chris

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 4 years ago in reply to CSCNalu

    Dear Chris,

    CSCNalu said:
    Is there a way to pull off the first value?  I want to use this as a threshold for subsequent measurements.

    Please try the following in the calculator using my prior waveform expression as an example:

    drGetElem(drGetWaveformXVec( xval(intersect(leafValue( VT("/divout_p") "freq_GHz" 16 ) leafValue( VT("/divout_n") "freq_GHz" 16 ) )) ) 1)

    Basically, this creates a vector from the waveform of intersecting times using its "x" component. The function drGetElem() takes the resulting vector and returns the element you select from the vector. In my example, since you wanted the first value, I used "1".

    I hope this manages to explain it well enough for you to try Chris.

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to ShawnLogan

    You could also just use the firstVal function in the calculator. That will get the first yVal, and so if you've used xval it will give the x-value. Hence:

    firstVal(intersect(leafValue( VT("/divout_p") "freq_GHz" 16 ) leafValue( VT("/divout_n") "freq_GHz" 16 ) ))
    firstVal(xval(intersect(leafValue( VT("/divout_p") "freq_GHz" 16 ) leafValue( VT("/divout_n") "freq_GHz" 16 ) )))

    A bit simpler than messing around with drGetElem, plus I think they also work if the argument is a family waveform (the drGetElem approach may not do what you want).

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • CSCNalu
    CSCNalu over 4 years ago in reply to Andrew Beckett

    Hi Shawn, Andrew

    Thanks!  Andrew's is simplest for this one but Shawn's tells me how to get other values that I didn't know how to get.  Thanks everyone!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • CSCNalu
    CSCNalu over 4 years ago in reply to Andrew Beckett

    Hi Shawn, Andrew

    Thanks!  Andrew's is simplest for this one but Shawn's tells me how to get other values that I didn't know how to get.  Thanks everyone!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • ShawnLogan
    ShawnLogan over 4 years ago in reply to CSCNalu

    Dear Chris and Andrew,

    I am happy to read, Chris, that you were able to understand my comments! I hope it solves your problem...and thank you, Andrew, for your added suggestion, I was not thinking of a family of waveforms so your comment was insightful for me!

    Shawn

    • 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