• 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. Remapping the LSW

Stats

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

Remapping the LSW

JoeV
JoeV over 16 years ago

I hope this is going into the custom ic skill forum this time...

I want to be able to remap my LSW to contain only the layers that are in the active window, hence getting rid of all the "clutter" of unused layers.

I have been given a hint that the commands

cvId = geGetWindowCellView() 

lpps = cvId~>lpps

will place into lpps all of the layer:purposes that are in the active window. How can I use this to then redraw the LSW? i would imagine that merely setting to valid only the layer:purposes in lpps would do the trick.

Thanks

JoeV

  • Cancel
  • Manu81
    Manu81 over 16 years ago

    complete code is there man...

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Manu81
    Manu81 over 16 years ago

    Enjoy !!!!

    The program that you are looking for :

     procedure( CCSupdateLSWwithUsedLayers(@optional (cv geGetEditCellView()))
      let((techFile lppList lswLayerList)

        when(and(dbIsId(cv) dbGetq(cv objType))
          ;; get the tech file database ID
          techFile = techGetTechFile(cv)

          ;; foreach layer-purpose pair in the cellviews' layer-purpose
          ;; pairs in use, store a list of layer-purpose pairs
          lppList = foreach( mapcar (layer purpose)
          cv~>lpps~>layerName cv~>lpps~>purpose
        list(layer purpose)
      )

          ;; get the current list of layer-purpose pairs in the LSW
          lswLayerList = leGetValidLayerList(techFile)

          ;; for each layer-purpose pair in the LSW, check if this is in
          ;; use in the cellview, if not, use the leSetLayerAttributes
          ;; function to remove the layer from the LSW
          foreach( lswLayer lswLayerList
     unless(member(lswLayer lppList)
       leSetLayerAttributes(techFile list(lswLayer nil nil nil))
     )
          )

          ;; for each layer-purpose pair in the cellview, check if this is
          ;; in the LSW already, if not, add the layer to the LSW
          foreach( lppLayer lppList
     unless(member(lppLayer lswLayerList)
       leSetLayerAttributes(techFile list(lppLayer t t t))
     )
          )
          t
        ); when given a valid db object for a cellview
      ); let
    ); procedure CCSUpdateLSWwithUsedLayers

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

     Hi,

    The code is avaliable in the following SourceLink solution :

    How to update LSW window to only display layers used in a given layout window ?

    I include the SourceLink link as the full code is there with the header and disclaimer etc.and this code may be updated (but the community post probably would not be).

    Please get the code from SourceLink

    Best regards,

    Lawrence.

    • 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