• 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. How to determine the direction of a wire out of a symbol...

Stats

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

How to determine the direction of a wire out of a symbol pin in schematic

Michele Ancis
Michele Ancis over 9 years ago

Hi,

I would like to write some SKILL to add wire stubs and labels to a certain symbol instantiated and selected in a schematic cellView.

I think I have the basics in place, i.e. reference to a selected cellView with geGetSelectedSet() and then dig into its instTerms and

from there to each instTerm~>term~>pins~>fig~>bBox, then transform it to the bBox relative to the cellview with dbTransformBBox()

basically:

cv = geGetSelSet()

foreach(instTerm cv~>instTerms

instTermBbox=car(instTerm~>term~>pins~>fig~>bBox)
instTermBboxInCv=dbTransformBBox(instTermBbox
                           car(inst~>transform))

)

code might need some polishing, especially when extracting the right item from the list returned by - for  instance - inst~>transform or ...~>bBox.

So from here, I can use schCreateWire() and schCreateLabel() to add a wire and label.

The point where I'm puzzled is: how to determine the direction of the wire? How do I determine the position of the pin within the shape?
I am thinking of using the symbol's bBox to infer whether the pin is on its top, bottom, left or right side, however when I query the bBox of the selected shape, I get something weird.

I have placed a single vcvs on an otherwise empty schematic. I select it in the window, and then call cv = geGetSelSet().

cv~>bBox returns the following:

(((-0.48125 -0.2125)
(0.91875 0.26875)
)

The strange thing about this bBox is that the y coords (I'm assuming they are the second elements in each tuple) are more or less correct, i.e. they correspond roughly to the bottom and top pin extremes, whereas the the x coords are further away from the boundaries of the symbol.

So I'm wondering what this means and how to interpret it.

Thanks for any help,

Michele

  • Cancel
Parents
  • fatcat1206
    fatcat1206 over 9 years ago
    Hi Michele

    I also wrote a piece of code to create the stub, exactly like yours.
    I hope you have implemented the code.

    Here I'd like to mention that, inside cadence, there is already an API to do it.

    schHiCreateWireStubs()

    And instead of only selecting the instance, you can also select the pins for creating the stub.

    Best Regards

    Yi
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • fatcat1206
    fatcat1206 over 9 years ago
    Hi Michele

    I also wrote a piece of code to create the stub, exactly like yours.
    I hope you have implemented the code.

    Here I'd like to mention that, inside cadence, there is already an API to do it.

    schHiCreateWireStubs()

    And instead of only selecting the instance, you can also select the pins for creating the stub.

    Best Regards

    Yi
    • 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