• 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. Stream out GDS and maintain its hierarchy as it appears...

Stats

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

Stream out GDS and maintain its hierarchy as it appears in design database (library manager)

DeyanLevski
DeyanLevski over 2 years ago

Hi all,

I want to stream out a gds file of a top-level design layout cell from a library which contains instantiations of cells from the same, as well as other libraries. No matter what Stream Out settings I use, the streamed out GDS hierarchy is widely different from the original design hierarchy. For example the top-level layout of a chip, can be split to 10 different top-level cells, usually auto-named top, top_0, top_1, top_2 etc...

It it possible to export a gds which maintains its hierarchy in a way which is as close as possible to the original design hierarchy?

Thanks,
Deyan

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 2 years ago

    Deyan,

    That's very odd. I'm not aware of anything that can split the top level cell like this. In general, the hierarchy should be preserved, with the exception that PCells usually end up with a separate STRUCT (cell) per variant, although they can also be flattened if the "Flatten Pcells" is checked (on Geometry::Transformation) or similarly the Flatten Vias (on the same settings page.

    Can you share the stream out log file?

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 2 years ago

    Deyan,

    That's very odd. I'm not aware of anything that can split the top level cell like this. In general, the hierarchy should be preserved, with the exception that PCells usually end up with a separate STRUCT (cell) per variant, although they can also be flattened if the "Flatten Pcells" is checked (on Geometry::Transformation) or similarly the Flatten Vias (on the same settings page.

    Can you share the stream out log file?

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • DeyanLevski
    DeyanLevski over 2 years ago in reply to Andrew Beckett

    Hi Andrew,

    Upon a second look today, it seems the hierarchical structure is indeed preserved and I was wrong. The automatic naming is what has confused us. Since there are different instances of cells (which share the same name) from multiple libraries, to avoid name collision the stream out tool adds a _0, _1, 0_13, _X... after the names of the colliding cells.

    Is it possible to set the stream out exporter to append (or pre-pend) the library name of the colliding cells, instead of just an incremented number?

    Here is an excerpt from the stream out log file:

    WARNING (XSTRM-145): The structure name 'top' has been changed to 'top_0' by the translator. This could be because multiple cells with the same cell name exist in different libraries, the same cell name has been mapped to multiple cell names, or the cell name length is greater than the '32' that was specified using the '-respectGDSIINameLimit' or '-gdsCellNameLength' option.

    Regards,
    Deyan

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 2 years ago in reply to DeyanLevski

    Deyan,

    I couldn't find anything that quite does this, but maybe the code snippets in this article could be adapted?

    XStream Out: How to add or remove a Prefix or suffix to/from all Cells during Stream Out and Oasis translation; How to avoid rename of top cell and some specific cells during the streamOut or strmout

    If not, I suggest you create a case on the customer support site.

    Kind Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • DeyanLevski
    DeyanLevski over 2 years ago in reply to Andrew Beckett

    Good morning Andrew,

    Thank you for these tips. It seems what I want to achieve is a bit more involved than what I initially thought.

    This inspired an idea to create an export tool which appends library names to cells with expressions in an unique way, such that when exporting a gds one would still be able to edit reasonably well with an open-source layout tool e.g. KLayout. I currently get lost with all auto-generated cell names and what comes from where.

    Then one can export back from KLayout a gds which would be imported back to Virtuoso and parsed with a script which would generate libraries and cells based on the unique cell naming contained in the gds.

    Regards,
    Deyan

    • 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