• 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. Probe net across schematic hierarchy through vsource

Stats

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

Probe net across schematic hierarchy through vsource

Shankar P16
Shankar P16 over 7 years ago

Hi

I generally have lot of current probes in schematics using 0V Voltage sources. I add a net probe with geAddNetProbe() and I would like to continue the probe(on the otherside of the 0V sources) passing through the voltage sources.

I have written a following script which does the job partially. The following script looks for the currently probed net, runs across all the instances connected to the net. If there is a 0V vsource, I add another probe(with same color) on the other side of the 0V vsource.

wId = hiGetCurrentWindow()
pList = car(geGetAllProbe(wId))
pC = pList~>probeColor
pNvdc = setof(x pList~>objectId~>instTerms~>inst x~>cellName == "vsource")
foreach(p0vdc pNvdc

figs=p0vdc~>conns~>net~>figs
xy1=car(nth(0 nth(0 figs))~>points)
xy2=car(nth(0 nth(1 figs))~>points)

geAddNetProbe(wId pC xy1)
geAddNetProbe(wId pC xy2)
)

This works great at a particular schematic hierarchy. But doesn't work across hierarchies. For e.g. consider few lines of a netlist

I0 ( net1 netA) vsource type=dc dc=0
I1 ( net2 netB) vsource type=dc dc=0
I2 ( net3 netC) vsource type=dc dc=0
IX ( netA netB netC) myInst

subckt myInst (netA netB netC)
IY ( netA netA1) vsource type=dc dc=0
IZ ( netB netB1) vsource type=dc dc=0
.
.
.
ends myInst

If net1 is probed first and the aforementioned skill code is run, netA alone gets probed. But I would like to continue the probe on netA1 inside the hierarchy IX. How do I modify the code to achieve this. If there is totally a different line of thinking to achieve the same effect, that would also help!

Thanks
Shankar

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

    Hi Shankar,

    Actually, the simplest thing to do is to ask the probe to traverse "feedthrough" cells and register the vsource as a feedthrough.

    envSetVal("graphic" "probeTraverseFeedThrough" 'boolean t)
    ciRegisterDevice("probeShort" '( (nil "vsource" nil (nil shortedTerminalMap ( ("PLUS" "MINUS") ) )) ))
    envSetVal("graphic" "probeTraverseHierarchy" 'boolean t)
    envSetVal("graphic" "probeNetDisplayHierarchyLevel" 'int 20)

    Then you can probe one of the nets and it will probe through the vsource components. Note that the code above will only have an effect on schematic windows opened after you define the env vars. You can do it for an open window with:

    ciRegisterDevice("probeShort" '( (nil "vsource" nil (nil shortedTerminalMap ( ("PLUS" "MINUS") ) )) ))
    hiGetCurrentWindow()->probeTraverseFeedThrough=t
    hiGetCurrentWindow()->probeTraverseHierarchy=t
    hiGetCurrentWindow()->probeNetDisplayHierarchyLevel=20

    This way you don't need to write code to follow through the vsource yourself.

    Regards,

    Andrew.



    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Juan Pons
    Juan Pons over 6 years ago in reply to Andrew Beckett

    Hi Andrew, I think that this "feedthrough" feature is just great! But I have a question.

    Is there a way of obtain what nets are probed after you use this technique? I have tried the geGetAllProbe(win_id) but only reports me the net I probed with the pointer. The others nets are just visually probed, they do not even appear probed in the cadence navigator.

    Regards, Juan.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to Juan Pons

    Hi Juan,

    I don't think so. You might be able to see them in the Probe Assistant (I didn't have time to check - I'm catching up after vacation) (Window->Assistants->Probes) and then you can export them from there (assuming this works).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Juan Pons
    Juan Pons over 6 years ago in reply to Andrew Beckett

    Hi Andrew, thanks for the response!

    Well, you are right about the probe assistant (I didn't know about it), it gives the correct information about the nets probed. I noticed that the navigator updates the information after opening the probe assistant. However, geGetAllProbe() function still gives me just those nets I probe with the pointer using geEnterAddNetProbe() function :/

    Do you know about other function to consult the correct info? Or maybe there is a way of refreshing the data that geGetAllProbe() shows.

    Regards, Juan.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to Juan Pons

    Hi Juan,

    There isn't a way of getting geGetAllProbe() to show all the other nets that are probed (it's not a matter of refresh - there is in fact only a single probe, but the probing system itself takes care of identifying all the actual nets to be highlighted; geGetAppProbe returns the list of probes, not the list of nets).

    One approach could be to use the schTraceNet function that was added in IC618/ICADVM181. This uses the probe infrastructure and so also supports the feedthrough definition in the same way. You can then use this to collect info on all the nets that are actually traced throughout the hierarchy. It's documented, and my colleague in R&D has just mentioned to me that a video is in preparation that will appear on support.cadence.com soon covering this new function. So maybe that would help you?

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Juan Pons
    Juan Pons over 6 years ago in reply to Andrew Beckett

    Hi Andrew,

    that function seems to be what I just need but unfortunately here we have the IC617 version. I think I'll just program something to recognize the groups of nets interconnected by, in my case, a metal connector. Thanks anyway!

    Regards, Juan.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Juan Pons
    Juan Pons over 6 years ago in reply to Andrew Beckett

    Hi Andrew,

    that function seems to be what I just need but unfortunately here we have the IC617 version. I think I'll just program something to recognize the groups of nets interconnected by, in my case, a metal connector. Thanks anyway!

    Regards, Juan.

    • 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