• 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. How to set a stop point per cell for a config view using...

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 143
  • Views 4177
  • 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

How to set a stop point per cell for a config view using SKILL

MFahmy
MFahmy over 1 year ago
Hello, 
1. 
In a config view using the hierarchy editor, "stop points" can be added per cell (using the table view) or per instance (using the Tree view), however when checking the SKILL manual I found the two command "cphSetInstStopPoint" and "cphSetOccurStopPoint" which both seem to set the stop point attribute on a given instance, 
I couldn't find a function to set the stop point on a cell, so what would be the equivalent of "Add stop point" for a cell in SKILL
2. 
Same question goes to "Add bind to open (Skip instance)" on the instance and cell level, is their an equivalent function or can I use cphSetInstViewBinding / cphSetCellViewBinding with the "t_logViewToUse" set to a special value to indicate that the cell/instance is unbound 
Thanks, 
Fahmy 
  • Cancel
  • Andrew Beckett
    Andrew Beckett over 1 year ago

    Fahmy,

    The CPH APIs are for physConfigs (with Configure Physical Hierarchy - used to drive the mapping from schematic to layout in Virtuoso Layout Suite XL) and are a (sort of) superset of the HDB (hierarchical database APIs). They shouldn't be used with config views.

    You'd use hdbSetObjBindRule with a rule of list('hdbcStopRule t) to add a stop point; the document describes how to do this for a cell, an instance or an occurrence.

    For binding to open you'd use list('hdbcBindingRule list(nil nil nil)) as the rule. 

    See SKILL: How to create a config view, define the top cell, declare the global bindings, set stop/binding rule etc. Bind a SPICE source file, Specify Reference Verilog, Mark as External HDL text etc.

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • MFahmy
    MFahmy over 1 year ago in reply to Andrew Beckett

    Hi Andrew, 

    Thanks for the prompt reply, 

    I noticed that when a cell or instance is marked as a stop point, the subckt definition is removed from the netlist which is expected, and the instances definition points to a generic subckt/model keyword "subcircuit" , so including an external file with the definition of the subckt does not work, and with multiple stop points the definitions get ambiguous as they all point to "subcircuit" is this the intended behavior ? 

    Thanks, 

    Fahmy 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 1 year ago in reply to MFahmy

    Fahmy,

    This is due to what you have in the Spectre simulation information in the CDF for that cell. It has to know how to netlist it - what order the terminals are in, and what to call the component - you can change that in the CDF easily.

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • MFahmy
    MFahmy over 1 year ago in reply to Andrew Beckett

    going through the cellviews I noticed that some have the component name blank and other have "subcircuit" in it , I am not sure what is the reason behind that, but if I update the component name in the CDF , where is the information saved , I noticed already that if I change the CDF simulation info in one virtuoso session, it is not visible in a different virtuoso session launched in the same directory, also I can modify the CDF simulation information for read only libraries, so could you help me understand what is the scope of the modifications in this case 

    Thanks, 

    Fahmy 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 1 year ago in reply to MFahmy

    If you only change the "Effective" CDF, then it's not saved to disk. You need to update the Base CDF.

    As a result, you can't fix this for readonly libraries because it needs to be on disk so that even background netlisting (e.g. in ADE when you are simulating more than one point or have single run optimisation turned off) can pick up the change. If you have an external subckt you're trying to add to simulation this way (and I'm not sure why you'd do it this way rather than picking a view in Virtuoso) you have to start taking care of ensuring the terminal orders match in the CDF too - if they don't match the external file, then it will not be hooked up correctly.

    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