• 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. Filtering data to plot for nested sweeps

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 129
  • Views 15714
  • 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

Filtering data to plot for nested sweeps

ZoltanT
ZoltanT over 7 years ago

Hi Everyone,

I've run nested sweeps in spectre and I would like to filter the data, what I postprocess and plot with OCEAN. Let's say I want to plot the results with a fixed value of the second sweep, or for a range of another sweep, or some combinations of them. I have not found any ready to use solution for that in OCEAN. I am aware of the value and famValue functions, but one can only select one value from the outer sweep.

Ideally I am looking for a function like "my_value(o_waveform "sweep_name" list(sweep_value_of_interest))" . I guess with the fam* functions one can create a multidimensional list of sweep names and values and filter that and get back the results point by point, which can be gathered into a waveform, but I feel it cumbersome (for me at least) and slow. I do not think this is the right way in OCEAN, but I do not know a better one.

Of course there is always the option to export all the data, and read it in with another program (python, matlab, etc) and do the filtering there, but there must have been an easy way to that in OCEAN.

To give a real life example why I would like to do that: I've just run some transistor characterisation simulation where I swept the gate, drain and bulk voltage relative to the source:
sw_b sweep param=VB values=[0 1 2] annotate=sweep {
sw_d sweep param=VDS start=0 stop=0.9 step=0.1 {
sw_g sweep param=VGS start=0 stop=0.9 step=0.1 {
...
}}}

  • Cancel
  • ZoltanT
    ZoltanT over 7 years ago

    Update: I can add value() the argument of the sweep parameter. I missed it, because I assumed that I have to state the sweep analysis name. User error. I am one step closer, though I do not know yet, how can I filter the parameter values. If I could have a list of all values for a given sweep parameter as a list, I can use some mapping and plot everything one-by-one.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to ZoltanT

    The value function (there's also the leafValue function if you want to conveniently give more than one sweep variable rather than having to nest multiple value() calls) doesn't accept a list of values.

    However, you can find out the swept values with sweepValues() - gives the outermost sweep values, sweepNames() - tells you the names of the swept parameters, and sweepVarValues() which allows you to find the values for a particular sweep name. So then you could do the loop you want, I think?

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • ZoltanT
    ZoltanT over 7 years ago in reply to Andrew Beckett

    Thanks for tips! They helped a lot.  I was able to create it.

    • 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