• 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 SKILL
  3. Saving nodes in spectre include file

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 144
  • Views 16832
  • 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

Saving nodes in spectre include file

akrebs
akrebs over 11 years ago

I am trying to adjust my list of saved nodes in a simulation depending on an ADE design variable.  i.e. if a certain part of a circuit is enabled for a simulation, the nodes in that part will get saved.

I have been trying to do this using a spectre include file within ADE-XL to define nodes to save.

 //start

save I131.*                //save all nodes inside instance I131

// This section is where I was trying to save depending on a design variable

// Couldn't get it to work

// diff_ac is a design variable in ADE

if ( diff_ac < 0.5 ) {

save I129.*

} else {

save I128.*

} 

//end 

 

The first save statement works, so the script is definitely getting read in. But, neither of the save statements in the if() statement working.  No errors, but no save either.  My understanding is that ADE design variables become parameters in spectre.  Is my if() statement used correctly?  Do I need to reference the design variables in a different way?

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    You cannot use "if" for this. The "if" statement in spectre is a "structural if" - which means it can only be used for conditional inclusion of instances and not arbitrary other statements. See "spectre -h if" for more details.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • akrebs
    akrebs over 11 years ago

    Thanks.

    Is there different way you can suggest to define nodes to save based on an ADE design variable?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    You could do this with ADE XL, because ADE XL supports SKILL expressions in the global variables.

    First of all, create two files, with the two different save statements you want:

    saveI129.scs
      save I129.*

    saveI128.scs
      save I128.*

    then in the ADE test editor, in the Setup->Model Libraries form, specify the filename to include as VAR("SAVEFILE"). This will create a design variable (and global variable) called "SAVEFILE". 

    In the global variables (not the design variable for the test - SKILL expressions are only supported in global variables), you can set SAVEFILE to:

    if(diff_ac<0.5 "saveI129.scs" "save128.scs")

    Then as you sweep diff_ac in ADE XL, the netlists will get created with different include statements...

    It worked for me, anyway!

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • PirateKing2008
    PirateKing2008 over 9 years ago
    Brilliant Andrew. I have just used this trick to save all nodes or not; if(saveAllNodes>0.5 "path/saveAllNodes.scs" nil). As designers sometimes forget they have left all the nodes saved in the test editor then run corners in ADEXL and fill up the disk space then this global variable when set to 1 will be a good visual reminder before hitting run that you may be saving more data than you intend. Perhaps i need to open a new topic but for me a better idea is to have a warning come up before running corners if all the nodes are saved. Could there be a clever way at doing this?
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    Hi Lance,

    Sorry about the delay - just having a bit of a catch up on old posts. This could be done with an ADE XL "preRun" signal trigger. It would need some custom code, but it could be done potentially. axlSessionConnect() is the function to register the trigger.

    Regards,

    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