• 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 Design
  3. Getting/highlighting all input pins of a design in sche...

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 129
  • Views 3983
  • 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

Getting/highlighting all input pins of a design in schematic

SunnyB
SunnyB over 5 years ago

Hi,

I am working on a huge schematic in virtuoso with lot of pins. I wanted to know if there is any way that I could highlight or get a list of all the input pins only in the design.

Thanks,

Sunny

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago

    Sunny,

    You could use this code:

    procedure(CCFselectPinsByDir(@key (cellView geGetEditCellView()) 
        (direction "input"))
      foreach(term cellView~>terminals
        when(term~>direction==direction
          foreach(pin term~>pins
            foreach(fig pin~>figs
              geSelectFig(fig)
            )
          )
        )
      )
      t
    )
    

    If you just call CCFselectPinsByDir() it will select all input pins; if you use CCFselectPinsByDir(?direction "output") it will select all output pins. You can then see the names in the navigator (note, this will add to the selection, so you may want to deselect everything first), or you can list their names by doing:

    geGetSelSet()~>pin~>term~>name

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • SunnyB
    SunnyB over 5 years ago in reply to Andrew Beckett

    Thanks Andrew! This was very helpful. Any way this selection of input terminals could also show up on the symbol for the schematic? I tried this code on the schematic and it works, but if I come one level up from the schematic and see it as a symbol, there is no selection made there. I assume this is happening because the symbol does not have actual pins and this code is meant for cellviews with actual pins. I tried playing around with the code and modifying it to see if I can get it working for the symbol too, but couldn't do so.

    Tried something like the code below but it seems that instance terminals do not have figs as their attributes.


    procedure(CCFselectPinsByDir(@key (cellView geGetEditCellView()) 
        (direction "input"))
      foreach(inst cellView~>instances
        foreach(term inst~>instTerms
          when(term~>direction==direction
            foreach(fig term~>figs
                geSelectFig(fig)
            )
          )
        )
      )
      t
    )
    
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to SunnyB

    You can't select instance pins using geSelectFig since they are not level-0 objects (i.e. shapes or instances within the schematic directly). They live within the master that of the symbol that is instantiated. So your code wouldn't work for two reasons - one there are no figs on the term object, and secondly, geSelectFig wouldn't have been able to select them anyway.

    This code would work however:

    procedure(CCFselectInstPinsByDir(@key (cellView geGetEditCellView()) 
        (direction "input"))
      foreach(inst cellView~>instances
        foreach(instTerm inst~>instTerms
          when(instTerm~>direction==direction
            foreach(pin instTerm~>term~>pins
              foreach(fig pin~>figs
                geSelectObject(fig list(list(inst 1 0 0)))
              )
            )
          )
        )
      )
      t
    )

    Note that to see the results of the selection, geGetSelSet() won't help - you'd need to use geGetObjectSelectedSet() instead. This also depends on you having "pin" checked in the instance objects part of Edit->Select->Filter - otherwise you're not allowed to select the lower level shape.

    You can also use hsmGetSelectedSet() to get a different representation fo the hierarchical selections.

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 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