• 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. spectre syntax

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 143
  • Views 15759
  • 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

spectre syntax

KOTB
KOTB over 6 years ago

Hello,

When I want to skip list of instances having the same name  with just the index number changing I must declare each instance separately

opt2 options skip=cut  inst=[X8SEG\<0\>.XSEG\<7\>   X8SEG\<0\>.XSEG\<6\>   X8SEG\<0\>.XSEG\<5\>   X8SEG\<0\>.XSEG\<4\>   X8SEG\<0\>.XSEG\<3\>   X8SEG\<0\>.XSEG\<2\>   X8SEG\<0\>.XSEG\<1\>]

Instead of entering the instances to be skipped one by one, I want to skip them all by using this command line :

opt2 options skip=cut  inst= [ X8SEG\<0\>.XSEG\<1:7\>  ]

i obtain this ERROR :

 Internal error found in spectre during circuit read-in.
Encountered a critical error during simulation. Submit a Service Request via Cadence Online Support, including the netlist, the Spectre log file, the behavioral model files, and any other information that can help identify the problem.
FATAL (SPECTRE-18): Segmentation fault.

Could you please tell me how to skip all of them without having to put each instance path separably.

thanks,

kotb

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago

    There's no such thing as a bus in spectre, but you can use wildcards. So you could use:

    opt2 options skip=cut  inst=[ X8SEG\<0\>.XSEG\<*\>  ]

    Or if it's all instances of the same subckt (say called SEG), you can do:

    opt2 options skip=cut  subckt=[SEG]

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • KOTB
    KOTB over 6 years ago in reply to Andrew Beckett

    Thanks Andrew,

    I am aware of your proposed solution. But usually we want to skip some blocks and kip only one. Let's say I want to skip XSEG<0:510> and keep XSEG<511>.

    If I use the proposed solution I will skip all of them, even the one I want to keep. And it is not practical at all if I have to cite every instance that need to be skipped inst=[XSEG<0>, [XSEG<1>,....[XSEG<510>].

    Is there a for loop in spectre to do so ? or a 'keep' option where I skip all instances XSEG and keep only XSEG<511>  ?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to KOTB

    There's no for loop, and no "keep" as such, but you can do (say - I'll leave you to give the full hierarchical name):

    mySkipOpts options skip=cut inst=[XSEG\<*\>]
    myKeepOpts options skip=none inst=[XSEG\<511\>]

    The wildcard first cuts all instances, but then you turn off the skip for a specific instance to keep it. I tried this with a simple example and it appeared to work OK.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • KOTB
    KOTB over 6 years ago in reply to Andrew Beckett

    Thanks Andrew, very smart idea ! 

    When using ultrasim can I find the same feature for this keep options ?

    What are the command lines that I should use ?

    Thanks again,

    Regards,

    kotb

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to KOTB

    usim_opt skip=2 inst=[m*]
    usim_opt skip=0 inst=[m2]

    (you can also use skip=1 for the "load" option - that you mentioned in your other post).

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • KOTB
    KOTB over 6 years ago in reply to Andrew Beckett

    Great !

    Thanks Andrew, you are making my flow wonderful !

    Regards,

    kotb

    • 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