• 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 Design
  3. probing current through an inherited pin

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 126
  • Views 7322
  • 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

probing current through an inherited pin

paulinho
paulinho over 2 years ago

I use inherited pins for my supply. If I had used an explicit supply pin, I could have probed the current entering that pin to get to know the current consumed by that subcircuit. But since I'm using an inherited supply pin and thus not having an physical pin to probe the current, how do I probe the current at this hierarchy ? Can I somehow use 'deepprobe' to do this ?

  • Cancel
  • ShawnLogan
    ShawnLogan over 2 years ago

    Dear paulinho,

    paulinho said:
    But since I'm using an inherited supply pin and thus not having an physical pin to probe the current, how do I probe the current at this hierarchy ? Can I somehow use 'deepprobe' to do this ?

    A deepprobe is really designed for use with a layout based netlist (i.e., extracted view). I am not sure if your netlist is derived from its layout or from its schematic view. Further, if you are using an extracted view based netlist, there are usually many conductors that form the supply connection to a circuit of interest. Hence, if you only select one of the conductors, it is likely the current measurement will not be an accurate representation of the total current. There are ways to overcome this limitation, but I don't think that is really the subject of your question.

    Perhaps this is obvious to you, and if it is I apologize for mentioning it, but Figure 1 shows one means to measure the current to a set of circuits powered by the inherited net. In effect, you are creating a local net derived from the inherited net, to serve as the supply pin for the circuit(s) for which you want to measure the supply current.

    Shawn

    Figure 1

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 2 years ago in reply to ShawnLogan
    ShawnLogan said:
    A deepprobe is really designed for use with a layout based netlist (i.e., extracted view).

    That's nonsense. I created deepprobe in the first place, and that wasn't why I created it - it simply is a means (in simulation) of being able to create a connection to a hierarchical internal node without needing pins - this allows you to inject signals into a hierarchical block, or add a load onto some internal net. There are some usages of it which work well with extracted representations, but that's definitely not what it's "designed for".

    Anyway, the key reason why deepprobe is not the answer here is that it's for connecting to a node - you can't use it to observe currents within a hierarchical block (other than through the deepprobe itself potentially, which is not going to help in this case).

    There is a long-standing enhancement request (CCR 21487, which I filed in fact) with lots of duplicates asking for a way to do this. The first problem is that there's nothing in the schematic editor to probe - so a mechanism to select inherited connections in the navigator is needed - and then that could be used by ADE to construct the save statement. However, this enhancement request is still not planned - you might want to contact customer support and request a duplicate. 

    I just came up with a workaround which avoids having to use external spectre syntax files with save statements. You can use (abuse?) the "OP Parameters" output in ADE to do this. It's not an operating point parameter of course, but you can use this UI.

    1. In ADE Explorer (when editing the test - you can do the same in Assembler too) use Outputs→Add→OP Parameters
    2. In the row in the output table, there are two boxes - one for the instance name, and one for the list of operating point parameters.
      1. You can't use the "..." button to select the instance (it won't let you choose a block), but instead type in the hierarchical path name to the instance which has the inherited connections you want to probe the current through - for example "/I0/I1"
      2. In the second box, type the pin name as it appears in the netlist - for example inh_VDD (to be sure, look at the subckt definition of the block in question in the netlist that ADE generates and see what it's called).

    This will case a save statement to be generated of the form:

    save I0.I1:inh_VDD

    If you have the plot checkbox checked, it will get plotted automatically. If you need it in an expression, you can either use the results browser or use (abuse?) the OT() function - e.g. OT("/I0/I1" "inh_VDD") to retrieve the current.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • paulinho
    paulinho over 2 years ago in reply to Andrew Beckett

    Hi Andrew,

    Thanks for the reply. I was trying to do what you said above. 

    I'm running an ams sim, and the block , the current of which I'm trying to probe is a pure analog block. I have used inherited connections and net expressions for the supplies. A snippet of the netlist is as shown below

      

    In this case what is the pin name which I should be using in the workaround which you explained ?

    Also, like you mentioned , where do I give the external spectre syntax files with save statements? Is it in Setup->Simulation Files->Include Paths ?  I could try that option as well. And what should the commands in that file be ? 

    After all, how can I verify if the simulator has taken account of the above save operation ?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 2 years ago in reply to paulinho

    You missed out the rather important piece of information that you were using AMS. The approach I suggested won't work with AMS (which uses out-of-module references for the inherited connections rather than netlisting additional ports to the module). Because of this, there's no single place to measure the current through. All you can do is (I think) use the mechanism that Shawn suggested (I'd use a probe rather than a small resistor - very tiny resistors are a bad idea for circuit convergence anyway). You could potentially also use the current browser in SimVision MS, but I'm not sure even then you can sum all the currents from a "global" node to a subset of the devices in one part of the hierarchy. 

    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