• 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. pin information

Stats

  • Locked Locked
  • Replies 11
  • Subscribers 143
  • Views 17930
  • 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

pin information

LakshmanQual
LakshmanQual over 7 years ago

hi Team,

I had a list with some pins of layout.

I need to find those pin info of layout(only corresponding hierarchy and no need of lower instances) of the list like pin coordinates and pin layer. I tried using dbFindTermByName but its not taking names of the lists as input.

In those some pins might be repeated. So need co ordinates of all the locations.

Could you please help me in coding this?

pin1     layer    co-ordinates

pin2    layer     co-ordiantes

....

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

    You'll need to expand a bit more. What precisely does your input look like? "A list with some pins of layout" doesn't really explain it very well...

    If it was terminal names:

    termNameList=list("inm" "inp" "outm" "outp" "VDD" "VSS")
    pinInfoList=nil
    foreach(termName termNameList
      term=dbFindTermByName(cvId termName)
      foreach(pin term~>pins
        foreach(pinFig pin~>figs
          pinInfoList=cons(list(termName pinFig~>layerName centerBox(pinFig~>bBox)) pinInfoList)
        )
      )
    )

    At the end pinInfoList would be (maybe) what you want. However, I may have completely misinterpreted your question, since it wasn't clear.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • LakshmanQual
    LakshmanQual over 7 years ago in reply to Andrew Beckett

    Hi Andrew,

    By doing some other operations, i had a list of pins which are in layout.( A kind of sub-set of all layout pins of that level).

    If cv=geGetWindowCellView() and myList = ("inp" "inm" "out" "VSS" "VDD")

    Is cvId = cv~>view or cv~>viewName ? Both are throwing error. Its showing arg#1 should be a database object (type templete="dt") for "dbFindTermByName"

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to LakshmanQual

    cvId=cv  ; (i.e. cvId=geGetEditCellView() or geGetWindowCellView())

    The error (and documentation for dbFindTermByName) should have made that pretty clear - even the quick help in cdsFinder:

    dbFindTermByName(
    d_cellView
    t_name
    )
    => d_term / nil

    Finds a terminal in a cellview.

    If you have a list of pins, are these the pin objects, or the pin figures? If it was pin figures, then you'd just do:

    foreach(mapcar pinFig listOfPinFIgs list(pinFig~>pin~>term~>name pinFig~>layerName centerBox(pinFig~>bBox)))

    As I said, asking a clear question is pretty important here - otherwise we have to guess what your data  looks like.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to LakshmanQual

    cvId=cv  ; (i.e. cvId=geGetEditCellView() or geGetWindowCellView())

    The error (and documentation for dbFindTermByName) should have made that pretty clear - even the quick help in cdsFinder:

    dbFindTermByName(
    d_cellView
    t_name
    )
    => d_term / nil

    Finds a terminal in a cellview.

    If you have a list of pins, are these the pin objects, or the pin figures? If it was pin figures, then you'd just do:

    foreach(mapcar pinFig listOfPinFIgs list(pinFig~>pin~>term~>name pinFig~>layerName centerBox(pinFig~>bBox)))

    As I said, asking a clear question is pretty important here - otherwise we have to guess what your data  looks like.

    Regards,

    Andrew.

    • 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