• 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. What is the fastest way to find all cells used in design...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 143
  • Views 12257
  • 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

What is the fastest way to find all cells used in design hierarchy

alexstepanov75
alexstepanov75 over 3 years ago

Hi,

I need to create a list of all cells used in the design hierarchically (schematic and layout only).

I am currently using a recursive function that opens cells with cv=dbOpenCellViewByType() and then getting a list of instances as cv->instanceMasters

Somehow instList=cv->instanceMasters takes a lot of time and when I use profiler I see that a lot of time going to functions related to pCells (pcGenCell)

It seems like pCell creation scripts called for pCells in the design and it takes a lot of time.

Is it a faster way to get a list of all cells used in a design (all the hierarchy of cause)?

Thank you,

Alex.

  • Cancel
  • mbracht
    mbracht over 3 years ago

    Hi Alex,

    I don't think there is a way to not have to evaluate the pcells, in other words descending into the sub masters. After all you might have instances of pcells that can be - depending on there parameters - hierarchical or not. How would you know that without descending into them. I'am not sure whether a non recursive approach (a so called breadth first search) would improve things a lot...quite honestly I don't think so.

    Max

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • alexstepanov75
    alexstepanov75 over 3 years ago in reply to mbracht

    Hi mbracht,

    Of cause I understand that there is no way to know what inside pCell without evaluating it. The thing is, I know there is nothing interesting inside pCells and I don't want to descend into pCells. As far as I understand pCells evaluation happens when I do instList=cv->instanceMasters

    I just want to get a list of instances at the current level. So the question is, is it possible to get a list of instances in the cell without evaluenting pCells

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Marben
    Marben over 3 years ago

    Hi Alex,

    Try to use Shift - T, or Edit - Hierarchy- Tree.

    Best Regards,

    Marben

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to alexstepanov75

    Hi Alex,

    Rather than going via the instanceMasters, it would be better to go via instHeaders:

    cv~>instHeaders

    For each instHeader you can get to ~>instances - which is a list of the instances of that type. You can also get to the ~>master this way (but that will trigger the evaluation/loading of the underlying cellView and PCell code if it's a PCell). You'll also notice that the same libName/cellName/viewName may appear more than once - that's because there is one instHeader for each variant, plus an instHeader for the superMaster (the superMaster won't have any instances because you can't directly instantiate it). There's also a ~>variants slot on the instHeader which will only be non-nil for the instHeader for a PCell superMaster, and that is a list of the instHeaders for each of the variants of the PCell.

    Note that also going via cv~>instances will also not cause the sub-cellView/PCell to be loaded/evaluated unless you start looking at the ~>master of each instance - but that may be less efficient if you're trying to figure out the cells used - you don't really need to visit the same cellView multiple times if you're doing that (and presumably you're not concerned about the instances if you're already using instanceMasters).

    There's also abNewLibraryRefs.il might be of use, in this post:  RE: How to get the list of cells used by a Config view by using SKILL?  but to be honest given that this doesn't know that it should stop at PCells, it will still evaluate any PCells in order to uncover any hierarchy within those PCells - so that's possibly not useful for you.

    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