• 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. PCell Designer
  3. Pcell Designer identifying names within an instance

Stats

  • State Verified Answer
  • Locked Locked
  • Replies 4
  • Subscribers 9
  • Views 5683
  • 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

Pcell Designer identifying names within an instance

EMaz
EMaz over 1 year ago

Hello,

I am placing an instance of a pcell within a pcell and I want to identify the metal terminal locations within the instance I just placed. I know how to do this in skill code but not in Pcell Designer. I have found basic RAK for Pcell Designer but no reference or user guides. Any help here would be greatly appreciated. 

thanks!

  • Cancel
  • Andrew Beckett
    +1 Andrew Beckett over 1 year ago

    This is easily done with a geometric query. In any command which has a Geo parameter, such as the Geo command, but also could be when you create a rectangle, pick Expression and then use the ellipsis (...) button:

    Then with the geo editor, you can construct a set of nested operators to refine what you're looking for. In this case I have the MOS device in an instance in a variable mosInst

    and then I descend into that (note the highlighting of all shapes inside the instance):

    Then look for a specific terminal (note that there are two shapes on this terminal/pin - one on Oxide and one on Metal1):

    and then I can refine that further to pick a particular layer:

    Depending on what you're trying to do, you can use this geo query result to make a measurement, or to construct a new shape (there are further operators to find edges, etc)

    As for further documentation, we have a PCell Designer Reference Manual which is very close to being published on support.cadence.com (it's essentially finished, just having some final edits) and then a User Guide under development which should hopefully be published in the next couple of months or so.

    In addition, there are some videos on the support site too - for example Geometric Queries in PCell Designer (if you go to that, you can easily navigate to the other videos on the channel).

    Andrew

    • Cancel
    • Vote Up +2 Vote Down
    • Cancel
  • EMaz
    0 EMaz over 1 year ago in reply to Andrew Beckett

    Absolutely fantastic Andrew, many thanks! 

    Geo Query is extremely powerful, used it extensively to create the original pcell. Now that I am placing an instance of the original pcell within a new pcell I can descend into the instance original pcell as you instructed and see the terminals and pins and their names and can even see the various layers. I now have access to the bBox of the pcell and can dive in to see/query the terminals/pins and layers - yeah!  Last question here... I do not see the "names" or the "groups" defined in the original pcell. I also do not see a "rod name" which I assigned in the original pcell. I am attempting to see these with the Geo Query. 

    The NBL layer is identified here...  all good

    I cannot see anything using the "rod", "name" or "group" search query. Is there another way to find these?

    Thanks again and I am looking forward to the Reference Manual and the the User Guide!

    Regards,

    Erika

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

    Hi Erika,

    You can't access names inside the instance (because they are not persistent) but you can access groups and figSets (actually figSets might not work if you are using express pcells come to think of it, because figSets are also transient). So groups and rod names would be your best hope.

    The reason they don't work for you is that you have the nesting inverted. The innermost tree entry is the starting point and then each operator around that is refining it - with the root of the tree the result. You can add an operator around an existing tree node by using the insert around context (right mouse button) menu or the ctrl-H bindkey:

    So for example above, I actually started with name, then descended into that instance by using Insert Around with the descend operator selected (I could have used instance if I knew the instance name).

    In your case the first would be trying to find the given layer (which includes that layer down through the hierarchy), but descending into that makes no sense. In the second case you are looking for a top-level item with a given rod name, descending into that rod name (presumably the rod name would have to be the instance name) and then looking for an instance one level down in the hierarchy, which it probably wouldn't find.

    Andrew

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

    Thanks Andrew

    Initially when I place the pcell I checked the box "copy terminals" which is why I could see the terminals with the inverted nesting. With the correct nesting I can now see the terminals and groups. 

    Thanks again,

    Erika

    • 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