• 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. Help on code that identifies cellnames which contains specified...

Stats

  • Locked Locked
  • Replies 1
  • Subscribers 143
  • Views 12784
  • 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

Help on code that identifies cellnames which contains specified device

Sarvani
Sarvani over 13 years ago

 hi experts,

                 I am  trying for a code  that shows cellnames which contains device what I specified. And it also counts how many devices through "counter"(variable). Code works for top level only. But I need hierarchy also.

counter=0
procedure(CCFfindViewsUsed(@optional
    (cv geGetEditCellView())  cellsfound
    (visited makeTable('visited nil)))
  foreach(master cv~>instances
    unless(visited[master]
      visited[master]=t
      if(strcmp(master~>cellName "INV")==0 then
        counter++
unless(member(cv~>cellName cellsfound)
      cellsfound=cons(cv~>cellName cellsfound)
))
      cellsfound=CCFfindViewsUsed(master cellsfound  visited)
    )
  )
cellsfound
 )

Thankyou

  • Cancel
Parents
  • Quek
    Quek over 13 years ago

    Hi Sarvani

    Here is some sample codes to do a hierarchical search for empty cells. Perhaps it can study it and implement the hierarchical search for your script. : )


    Best regards
    Quek


    procedure( CCSdeleteEmptyCells(lib cell view)
       let( (cv)
          cv=dbOpenCellViewByType(lib cell view "" "a")
          CCShierarchicalSearch(cv list())
       ) ;let
    ) ;procedure


    procedure( CCShierarchicalSearch(cv cellList)
       prog( (masterList cvm)
          foreach(inst cv~>instances
             if(inst~>master && inst~>master~>bBox != list(0:0 0:0) then
                masterList=cons(inst~>master masterList)
             else
                printf("Removing empty inst %s using cell %s\n" inst~>name inst~>cellName)
                dbDeleteObject(inst)
             ) ;if
          ) ;foreach
          foreach(master masterList
             cvm=dbOpenCellViewByType(master~>libName master~>cellName master~>viewName)
             cellList=cons(master cellList)
             CCShierarchicalSearch(cvm cellList)
             dbClose(cvm)
          ) ;foreach
          return(t)
       ) ;prog
    ) ;procedure

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Quek
    Quek over 13 years ago

    Hi Sarvani

    Here is some sample codes to do a hierarchical search for empty cells. Perhaps it can study it and implement the hierarchical search for your script. : )


    Best regards
    Quek


    procedure( CCSdeleteEmptyCells(lib cell view)
       let( (cv)
          cv=dbOpenCellViewByType(lib cell view "" "a")
          CCShierarchicalSearch(cv list())
       ) ;let
    ) ;procedure


    procedure( CCShierarchicalSearch(cv cellList)
       prog( (masterList cvm)
          foreach(inst cv~>instances
             if(inst~>master && inst~>master~>bBox != list(0:0 0:0) then
                masterList=cons(inst~>master masterList)
             else
                printf("Removing empty inst %s using cell %s\n" inst~>name inst~>cellName)
                dbDeleteObject(inst)
             ) ;if
          ) ;foreach
          foreach(master masterList
             cvm=dbOpenCellViewByType(master~>libName master~>cellName master~>viewName)
             cellList=cons(master cellList)
             CCShierarchicalSearch(cvm cellList)
             dbClose(cvm)
          ) ;foreach
          return(t)
       ) ;prog
    ) ;procedure

    • 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