• 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 Design
  3. How to streamout a gds and will have an output that is ...

Stats

  • Locked Locked
  • Replies 9
  • Subscribers 126
  • Views 21049
  • 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 streamout a gds and will have an output that is flattened

jorenrefuerzo
jorenrefuerzo over 12 years ago

 Hi,

 

I need a flattened GDS output from a stream out in IC6.1.5, the usual output of the  File>Export>Stream is a GDS file with Hierarchical information.
Can anyone tell me how to have an output gds file which is in a flattened state?.

 

 

Thanks... 

  • Cancel
  • skillUser
    skillUser over 12 years ago

    Hi,

    Have you tried looking at Solution 11739836 ?

    Regards,

    Lawrence.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jorenrefuerzo
    jorenrefuerzo over 12 years ago

    Hi Lawrence,

     

    sorry i forgot to mention.. I need it to be executed in command line only, so maybe a use of skill code or etc...

    Thanks,

     

    Joren

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

     Joren,

    The same approach as described in the solution could be used from the command line - it uses a trigger in the User Defined SKILL  file - you'd pass this to strmout with the -userSkillFile command line argument.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jorenrefuerzo
    jorenrefuerzo over 12 years ago

     it worked!.

     Thanks Andrew and Lawrence ...

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jorenrefuerzo
    jorenrefuerzo over 12 years ago

     Hi Andrew and Lawrence,

     

    Looks like the skill script can only flatten into limited levels only... when i tried a bigger block which has a no. of levels, it did not flatten down to the lowest level... Do you have suggestions or inputs?..

    thanks in advance...

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • skillUser
    skillUser over 12 years ago

     Hi,

    Have you tried putting a value larger than 32 for the x_levels argument to dbFlattenInst() SKILL function?  I tested briefly that a value larger than 32 would be accepted and it was, but I don't have a layout with this many levels of hierarchy in it for testing purposes...

    Regards,

    Lawrence.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jorenrefuerzo
    jorenrefuerzo over 12 years ago

     Hi Lawrence,

     

    It seems that the 32 and higher value is working, i just found out that the erros is due to the layout that is to be flattened cannot be checkout out.. it seems that for the script to work. The layout must be editable by the user...

     

    Thanks,

     

    Joren

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RVERP
    RVERP over 9 years ago
    I have a followup question on this one. The script used during stream out works fine, only I also want to delete the pins/labels of the flattened layouts, but keep the pins/labels of the top level.

    How should I do this?
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    The lower level pins won't be preserved because the dbFlattenInst in the solution has nil for the fourth argument. For the labels, you could first record the dbIds of all the labels before you flatten:

    labelTable=makeTable('labelTable nil)
    foreach(shape cv~>shapes
      when(shape~>objType=="label" || shape~>objType=="textDisplay"
        labelTable[shape]=t
      )
    )

    then after the flatten, delete any label that's not in the table:

    foreach(shape cv~>shapes
      when(shape~>objType=="label" || shape~>objType=="textDisplay"
        unless(labelTable[shape]
          dbDeleteObject(shape)
        )
      )
    )

    This is completely untested. Just wanted to make a suggestion. Oh, and you broke the forum guidelines by posting on the end of a 4 year old post. Better to post a new one and reference the original.

    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