• 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 can I get the name of all instances in schematic

Stats

  • Locked Locked
  • Replies 9
  • Subscribers 142
  • Views 19066
  • 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 can I get the name of all instances in schematic

netbug
netbug over 5 years ago

Hi,

I would like to get the name of all the instances in a given schematic. It would be even better if I could narrow down the list to MOSFETs only.

Thanks in advance.

Best regards,

Pedro 

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

    Well:

    cv=geGetEditCellView()
    instNames=cv~>instances~>name

    will give you all the instance names. Determining whether they are MOSFETs or not is going to be slightly tricky because there's no real indication of that at schematic level. If you have a set of known component names for the MOSFETs then you could do:

    mosfetNames=list("nmos1v" "pmos1v")
    cv=geGetEditCellView()
    mosNames=setof(inst cv~>instances member(inst~>cellName mostfetNames))~>name

    Regards,

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 5 years ago

    Well:

    cv=geGetEditCellView()
    instNames=cv~>instances~>name

    will give you all the instance names. Determining whether they are MOSFETs or not is going to be slightly tricky because there's no real indication of that at schematic level. If you have a set of known component names for the MOSFETs then you could do:

    mosfetNames=list("nmos1v" "pmos1v")
    cv=geGetEditCellView()
    mosNames=setof(inst cv~>instances member(inst~>cellName mostfetNames))~>name

    Regards,

    Andrew

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

    Hi Andrew,

    Thanks a lot, it worked perfectly.

    Best regards,

    Pedro

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • netbug
    netbug over 5 years ago in reply to Andrew Beckett

    Hi Andrew,

    Thanks again for your answer. Just one more question, if you don't mind:

    Is it possible to do exactly the same thing, as above, but hierarchically, ideally by clicking on the cell?

    Best regards,

    Pedro

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to netbug

    Hi Pedro,

    There are numerous bits of code in these forums to do hierarchy traversal (generally done using a recursive approach) and then you could collect the instance names as you go along.

    Why do you want to do this?

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • netbug
    netbug over 5 years ago in reply to Andrew Beckett

    Hi Andrew,

    I did a small script, that served the purpose, but is very rudimentary. It accepts names of MOSFETs and op parameters (gm vdsat region etc), generates the OP expressions and adds them to ADE-XL/Maestro outputs.

    It's something like this:

    myScript(("nameOfTheTest") ("/M1" "/M2" "/M3" "/opamp/M1") ("gm" "ids" "vdsat"))

    I would like to polish it a bit more so that, instead of manually entering the name of every single device, a list of all devices could be displayed so the user  can select them.

    Cheers,

    Pedro

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • henker
    henker over 5 years ago in reply to netbug

    For the MOSFET detection, you could query the devices from the Custom Constraints registration, if available in your PDK setup.

    e.g. ciGetDeviceNames("fet") should give you a list with libName and cellName of all available fets. This you could use to check the libName/cellName of your instances.

    Regards,

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to netbug

    You might be better off adding device checks rather than a specific output for each of these operating point parameters for every transistor - that could explode the number of outputs. The device checks capability would allow you to add checks for the allowed values of gm, ids, vdsat for every instance of a model or subckt (say) and then report the failures in a queryable table.

    Other than that, you could do as I said before and traverse the hierarchy recursively to visit each hierarchical path and collect the hierarchical instance names that way.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • netbug
    netbug over 5 years ago in reply to Andrew Beckett

    Hi Andrew,

    I think I was not clear enough. Apologies for that.

    I just want to go down the hierarchy, so I can present a list of all the cells below the current one (on a drop down menu maybe), so the user can choose , for eg, 2 transistors from on level, 4 from the other, etc. Basically I would like to have a list of all the levels below the current cell.

    Thanks in advance.

    Best regards,

    Pedro

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to netbug

    Hi Pedro,

    I understand - I just don't have the bandwidth to write the code for you - hence me giving you suggestions as to the approach you could take.

    Regards,

    Andrew.

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