• 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 flatten Pcell in schematic

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 143
  • Views 12482
  • 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 flatten Pcell in schematic

morrris
morrris over 4 years ago

Hi, Cadence Family

I've created some schematic with Pcell, then I try to make a hierarchical copy to flatten whole design for backup a standalone library.

However it copies whole schematic but without Pcell which still mapping original library not standalone library.

       

How can I do to to flatten Pcell in hierarchical copy?

Your help will be appreciated.

Virtuoso version IC6.1.7-64b.500.21

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago

    OK, there are a few points to make here:

    1. There is nothing in hierarchical copy to "flatten" anything - neither layout nor schematic
    2. There is nothing to handle pcells (layout or schematic) differently - maybe you were expecting to be able to convert them into "fixed" cells? rather than parameterised cells?
    3. It can't change the library used for instances within a PCell, because the PCell SKILL code still runs, and so it will use whatever library that code is trying to generate (that's presumably why analogLib is being used here?)

    It's not really that clear why you would want to do this, so maybe I've totally misunderstood what you are trying to achieve?

    Regards,

    Andrew

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

    Hi, Andrew

    1. The "flatten" what I mean is to merge multiple reference libraries into one standalone library, usually for backup schematic to fixed version.

    3. I got it, but I try to copy the Pcell ( which is provided by fab's PDK )  to a standalone library, it does work. 

    For example,

    A schematic which has one Pcell res from fab's PDK named "AAA", and do copy hierarchical to another library named "backup".

    As below, when I descend into the copied Pcell res, not only eval Pcell successfully but also changed the library name.

    I cannot figure out how to do this.

    Regards,

    Morrris

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

    Hi Morris,

    OK, "flatten" normally means removal of hierarchy, but you weren't suggesting that - I understand what you meant now.

    This is not going to be due to anything that copy is taking care of (in the foundry PDK situation where it appears to work). What's probably happening is that they've not hardcoded the library name when opening the symbol master to be instantiated, but instead doing something like:

    master=dbOpenCellViewByType(pcCellView~>libName "primRes3" "symbol")
    inst=dbCreateInst(pcCellView master x:y)

    So that way the code is just looking for the component in the same library as the PCell. There's really nothing that copy could do to handle this for you - it would have to rewrite the SKILL code in the PCell to achieve this, which is not realistic (whilst it's theoretically possible for it to rewrite the top-level pcell code, if there are embedded functions that would soon become totally impractical; so this is not being done because it would have very limited effect).

    Maybe you need to do something similar with your PCells? That may not be feasible if they are referencing PDK components, but perhaps you could have your PCell look first for the symbol in the same library as the schematic PCell, and failing that, fall back to the PDK? That said, I can't see a great deal of point in trying to copy stuff wholly into a backup library because almost certainly there still remain dependencies on the PDK library (there may be SKILL code needed which remains loaded by the original PDK).

    Regards,

    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