• 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. SKIP Circuit or instance in spectre

Stats

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

SKIP Circuit or instance in spectre

KOTB
KOTB over 7 years ago

Hello,

When using Ultrasim the 'skip' option allows to simulate the circuit and skip some blocks and instances ( usim_opt skip=1 inst=[x0.x1] ).

Could you please tell me if it is possible to do the same with spectre. If yes, which option or command line I sould use ?

Thank you,

Kotb

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago

    Hi Kotb,

    The best way to do this if using ADE is to create a config using the hierarchy editor, and then you can use the Right Mouse -> Bind to Open over the instance in the tree, or over the cell table if you want all instances of that cell to be omitted.

    It is also supported in spectre itself though - from ADE you'd have to go to the Simulation->Options->Analog, Misc tab, and then in the additional arguments field enter: skip=cut inst=[I7] (if I7 is the instance you wish to omit). Note that one downside of doing this in ADE is that it also scopes other parameters such as reltol, as outlined in article How to set different reltol settings for different instances or subcircuits when running with Spectre

    So you might want to just add an option line:

    myScopedOpts options skip=1 inst=[x0.x1]

    in your netlist (you can include this in ADE via an included additional model file).

    Currently ADE doesn't yet have a UI for entering these scoped parameters.

    Regards,

    Andrew.

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

    Thanks Andrew,

    I am adding the following line in my spectre netlist. But it is ignored. Please advise.

    simulatorOptions2 options skip=cut inst=[x0.x1]

    WARNING (SFE-30): "stimulis.sp" 65: simulatorOptions2: `inst' is not a valid parameter for an instance of `options'. Ignored.

    Regards,

    Kotb

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

    Hi Kotb,

    My guess is that you're using too old a version of spectre. From a quick check, this seems to be supported from MMSIM15.1 onwards.

    Regards,

    Andrew.

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

    Thanks Andrew, you are right. Now, I am using (Version 15.1.0.803.isr18 64bit -- 21 Jun 2017) and it works fine.

    - Andrew, skip=cut, will remove the block without considering its load. In spectre userguide it is mentioned that (skip=load) is not supported. Do you know any simple trick to consider the loading of the block ?

    - When using spectre, I found two possibilities to include the layout parasitics (backannotate/stitch)

    dspf_include “path-to-block.SPF“   OR   opt1 options spf="block   path-to-block.SPF"

    Could you please clarify to me the difference and which way is better ?

    - Also when using skip=1 for ultrasim, it will only consider the loading from the schematic netlist, even if the block is stitched/backannotated with an spf file:

    I compared the simulation results of a circuit with a non-backannotated skipped block and a backannotated skipped block (skip=1 to consider the load). But the result is exactly the same. It means that the loading of the additional parasitics backannotation is not considered.

    Do you have any idea how to skip the block while considering its load (including parasitics from the .spf file)

    Thanks,

    Regards,

    Kotb

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to KOTB
    KOTB said:
    Do you know any simple trick to consider the loading of the block ?

    No. I'm not sure there is one, other than adding some (say) resistors or capacitors from the pins that are now floating to represent the load.

    In general the dspf_include approach is preferred. The alternative is stitching parasitics, which is much harder to make robust because of potential differences between the netlist used for LVS and extraction and the netlist used for simulation. Given that the DSPF contains all the designed devices as well, there's really not a downside to just including it entirely. DSPF stitching tended to be more important for FastSPICE tools that needed the original design hierarchy for partitioning and recognition of repeat structures - that isn't necessary with spectre, APS or XPS for example though. 

    I suggest if you need more than the current capability you contact customer support.

    Andrew

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

    Hi Andrew,

    Can I omit elements of an array of instances using hierarchy editor? I have an array like subblock[0:511] and I only want to keep only subblock[0] in my netlist and simulation. I could not find a good way to do it using the config view and the hierarchy editor.

    I can use the below Spectre options:

    opt1 options skip=cut inst=[SUBBLOCK\<*\>]
    opt2 options skip=none inst=[SUBBLOCK\<0\>]


    However, this keeps the subblock[*] in the netlist and my netlist becomes too big and I run out of memory even when I try to create the netlist(in my case memory becomes more than 30G and Virtual memory as well) and I would like to remove them all together from the netlist.

    Regards,

    Ali

    • 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