• 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. Need to reduce the height of a particular text layer inside...

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 144
  • Views 15086
  • 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

Need to reduce the height of a particular text layer inside all layout views of a standard cell library

dwheeler
dwheeler over 5 years ago

I am using a std_cell library from Global Foundries for which all cells have text [on the ALPHA audit LPP] with a height of "1" [which extends far, far beyond the meaningful data extent].  This makes viewing/editing block layouts difficult, especially when trying to select a particular cell with so many overlapping data extents.

I'd like a skill script that would go [recursively] inside each std_cell layout of the library and reduce the height of this particular text layer from 1 to say, .01, or .001

Seems simple enough for a skill script, if so, please advise.

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

    Not sure if you really meant to do this recursively, but if you wanted to do this for every cell in the library, something like this will do (no need for it to be recursive then):

    procedure(CCFfixText(libName layerName purpose newHeight @optional (saveAndClose t))
      let((lib master cv textLPP)
        lib=ddGetObj(libName)
        foreach(cell lib~>cells
          foreach(view cell~>views
            ; Check if the view is a layout viewType
            master=ddGetObj(libName cell~>name view~>name "*")
            when(master && ddMapGetFileViewType(master)=="maskLayout"
              printf("Updating %s %s %s\n" libName cell~>name view~>name)
              cv=dbOpenCellViewByType(libName cell~>name view~>name "" "a")
              ; find the layer purpose in this view and then fix
              ; the height of any labels
              textLPP=car(exists(lpp cv~>lpps lpp~>layerName==layerName && lpp~>purpose==purpose))
              foreach(shape textLPP~>shapes
                when(shape~>objType=="label"
                  shape~>height=newHeight
                )
              )
              when(saveAndClose
                dbSave(cv)
                dbClose(cv)
              )
            )
          )
        )
        t
      )
    )
    
    

    To use it, you'd then do:

    CCFfixText("std_cell" "ALPHA" "audit" 0.01)

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dwheeler
    dwheeler over 5 years ago in reply to Andrew Beckett

    Thanks, Andrew-

      This is just what I needed. Thanks again!

    Cheers!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • dwheeler
    dwheeler over 5 years ago in reply to Andrew Beckett

    Thanks, Andrew-

      This is just what I needed. Thanks again!

    Cheers!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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