• 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 keep pcell during stream out

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 144
  • Views 17330
  • 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 keep pcell during stream out

Soldier
Soldier over 13 years ago

Hi:

  while cadence change to IC6.1.1 or above,the option of stream out has not “keep pcell”,what could I do to keep pcell during stream out and stream in.

  Thanks!

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    You can't. Why do you want this? If it's to archive the design somehow, the right thing to do is to save the source database as well as the stream file - and then if you need to do re-work, use the design database. There is too much loss of data when exporting to stream (you lose the connectivity, lose pcells, and various other constructs) - so working from the orignal design database makes far more sense. Most of the time you're going to need that anyway for your schematics and simulation setup, so why not keep the layout database as the master?

    Maybe you have a good reason for wanting the "round trip" to work - if so, please elaborate.

    Regards

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • hvytpp
    hvytpp over 11 years ago

     Hi Andrew,

     When I stream in the gds to my local library, pcells are being copied to my local library and their names being renamed by unique suffix. But I need my layout should point to the pcells in the tech library. Als, Name should not be changed. I am using IC6.1.5 version. Is there some options during stream out or any code is required.

     

    Thanks in Advance,

    Regards,

    Praveen

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    Praveen,

    They are not being renamed - that's almost certainly what the cells are called in the stream file. Stream doesn't support pcells, so when a layout containing pcells is streamed out, each variant is saved as a separate STRUCTURE (i.e a separate cell), and the instances of pcells instantiate the appropriate structure. So all you're seeing when you stream it back in is that all the structures are read in too.

    Since stream is not recording the pcell instance's properties, it can't really do anything other than this. In the past (in IC5141) there was a mechanism to save some additional side file information to allow the round trip from Virtuoso->stream->Virtuoso to restore the pcells, but it was very limited for reasons I've discussed earlier - and this is not supported in IC61X. It only helped anyway if you had created (and kept) the side file info in the first place.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • hvytpp
    hvytpp over 11 years ago

    Hi Andrew,

    Thanks for your reply!

    I got your point. But one question I have. Is it possible to do with any scripts(skill or perl) or not at all possible in IC 6.1.5???

     

    Thanks & Regards,

    Praveen

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

     Praveen,

    I guess theoretically you could write an implementation of the poParamCellNameMap function which computed a name for the pcell variant and recorded (in a file) the original pcell, parameters used, and resulting mapped name.

    You could then do a stream in and then write some SKILL code which read the mapping file you saved during stream out, and then traversed the hierarchy and anywhere one of the mapped cells was used, replace that instance with an instance of the pcell with the same parameters. Once done it could clean up (delete) all the mapped cells from the library you streamed in.

    Doesn't strike me as being that hard to write, but I have not seen anyone actually do this so far. It's only ever going to work if you generate the data on the stream out and then use exactly the same information after stream in - so how useful that would be in practice, I'm not sure...

    Regards,

    Andrew. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • hvytpp
    hvytpp over 11 years ago

     Hi Andrew,

    I needed that feature because, I am running LVS by giving gds as input. Right now I dont have any other option except giving gds as input.

    Also somewhere I have seen that they were using same version of virtuoso and gds as input to LVS tool. Please comment on it.

     

    Thanks for your reply!

    Regards,

    Praveen

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    Hi Praveen,

    I don't see why you need that for LVS. The world has been streaming out and verifying with DRC and LVS from GDSII files for ever - I used to do this over 20 years ago with Dracula and nothing has changed in the meantime to prevent you from doing this - it's a common way to verify with Calibre, Assura, PVS etc - because you want what you verify to be what you send to the fab. Since stream format doesn't have the concept of pcells, each pcell variant is saved as an individual cell - and that shouldn't present a problem for LVS.

    Why do you need to stream back in again after LVS? That's a serious loss of data and seems a rather odd flow.

    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