CommunityForums Custom IC Design How to streamout a gds and will have an output that is ...

Stats

  • Locked Locked
  • Replies 9
  • Subscribers 118
  • Views 154416
  • 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 9 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 9 years ago

    Hi,

    Have you tried looking at Solution 11739836 ?

    Regards,

    Lawrence.

    • Cancel
    • Up 0 Down
    • Cancel
  • jorenrefuerzo
    jorenrefuerzo over 9 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
    • Up 0 Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 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
    • Up 0 Down
    • Cancel
  • jorenrefuerzo
    jorenrefuerzo over 9 years ago

     it worked!.

     Thanks Andrew and Lawrence ...

    • Cancel
    • Up 0 Down
    • Cancel
  • jorenrefuerzo
    jorenrefuerzo over 9 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
    • Up 0 Down
    • Cancel
  • skillUser
    skillUser over 9 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
    • Up 0 Down
    • Cancel
  • jorenrefuerzo
    jorenrefuerzo over 9 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
    • Up 0 Down
    • Cancel
  • RVERP
    RVERP over 5 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
    • Up 0 Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 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
    • Up 0 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.