• 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. Viewed Layers

Stats

  • Locked Locked
  • Replies 8
  • Subscribers 143
  • Views 16275
  • 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

Viewed Layers

J Wilwert
J Wilwert over 14 years ago

Hi,

I am using cadence - virtuoso - version 6.1.5

I am interested in THE most efficeint method - using skill - to return a list of all viewed layers.  I thought that:

mapc('leIsLayerVisible leGetValidLayerList(techGetTechFile(hiGetCurrentWindow()~>cellView~>lib)))

would be it - however - it did work so well!   Any IDEAS?

MEGA THANKS!! in advance,

John Wilwert

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

    John,

    procedure(JWgetUsedVisibleValidLayers(@optional (cv geGetEditCellView()))
      let(((tf techGetTechFile(cv)))
        setof(lp foreach(mapcar lpp cv~>lpps list(lpp~>layerName lpp~>purpose))
          leIsLayerValid(lp tf) && leIsLayerVisible(lp tf)
        )
      )
    )

    Will do what you want. cv~>lpps will give you the list of layer-purpose pair objects used in this cellView or anything instantiated (will only appear once the subcells have been loaded though - similar to the palette).

    Regards,

    Andrew.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 14 years ago

    John,

    procedure(JWgetUsedVisibleValidLayers(@optional (cv geGetEditCellView()))
      let(((tf techGetTechFile(cv)))
        setof(lp foreach(mapcar lpp cv~>lpps list(lpp~>layerName lpp~>purpose))
          leIsLayerValid(lp tf) && leIsLayerVisible(lp tf)
        )
      )
    )

    Will do what you want. cv~>lpps will give you the list of layer-purpose pair objects used in this cellView or anything instantiated (will only appear once the subcells have been loaded though - similar to the palette).

    Regards,

    Andrew.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • 2Qforall
    2Qforall over 5 years ago in reply to Andrew Beckett

    Hi Andrew,

    Is there a way to pipe or print the output in to a file instead of CIW?

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

    Assuming you're talking about JWgetUsedVisibleValidLayers in the 9 year old post above, then this doesn't print anything - it simply is a function that returns a list of lists. You can choose to do with that whatever you want - if you want it in a text file, you could just do:

    procedure(JWreportUsedVisibleValidLayers(fileName @optional (cv geGetEditCellView()) "td")
      let((prt)
        if(prt=outfile(fileName) then
          foreach(lpp JWgetUsedVisibleValidLayers(cv)
            fprintf(prt "%s %s\n" car(lpp) cadr(lpp))
          )
          close(prt)
        else
          error("JWreportUsedVisibleValidLayers: could not write to file %L\n" fileName)
        )
     )
    )

    Then use: JWreportUsedVisibleValidLayers("./dump.txt")

    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