• 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. Skill script to write the name and direction of pins from...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 143
  • Views 1129
  • 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

Skill script to write the name and direction of pins from a symbol veiw- pin name for bus are not printing

Nisanth SS
Nisanth SS 10 months ago

Hi,

I'm developing a script to print the names and directions of all pins, including buses, from the selected symbol view.

The current script successfully prints the names of individual pins and their directions, but it crashes when it encounters a bus pin.

Could you please assist me in modifying the script to handle bus pins and print their names and directions as well?

(procedure lmExtractPin()
workid= geGetEditCellView()
foreach(inst workid~>signals
a=inst~>terms
printf("PIN: %s Direction: %s \n" car(a~>name) car(a~>direction))
)
dbClose(workid)
)

Thanks

Nisanth SS

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett 10 months ago

    Slightly strange variable names in your code. Something like this would work:

    procedure(CCFreportPins(@optional (cv geGetEditCellView()))   
      foreach(term cv~>terminals
        printf("PIN: %s Direction: %s\n" term~>name term~>direction)
      )
    )

    Starting from the signals is not a particularly good place to start, I think.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Nisanth SS
    Nisanth SS 10 months ago in reply to Andrew Beckett

    Hi Andrew,

    Thank you for the feedback and for providing the example code. I appreciate the clarification regarding the variable names and your suggestion.

    Your code works perfectly for me.

    Is there a way to determine whether it’s a pin or a bus from its properties?

    Thanks,

    Nisanth SS

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett 10 months ago in reply to Nisanth SS

    Nisanth,

    I'm not sure what you mean by "whether it's a pin or a bus". That's like asking whether something is "an apple or a car". 

    If you are asking whether the pin (strictly the terminal) is a scalar (single signal) or a vector (multi-bit), you could do this:

    procedure(CCFreportPins(@optional (cv geGetEditCellView()))   
      foreach(term cv~>terminals
        printf("PIN: %s Direction: %s Bits: %d\n" term~>name term~>direction term~>numBits)
      )
    )

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Nisanth SS
    Nisanth SS 10 months ago in reply to Andrew Beckett

    Thank you for this additional information; it will help simplify my program.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Nisanth SS
    Nisanth SS 10 months ago in reply to Andrew Beckett

    Thank you for this additional information; it will help simplify my program.

    • 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