The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Measurements >> Other Measurements >> Measuring average current in spectre
https://designers-guide.org/forum/YaBB.pl?num=1375869726

Message started by Dushyant Juneja on Aug 7th, 2013, 3:02am

Title: Measuring average current in spectre
Post by Dushyant Juneja on Aug 7th, 2013, 3:02am

Hi,

Possibly this goes a bit trivial, but I am having trouble measuring average current from spectre netlist. Its all hand written and command line based, so I am not using ADE calculator and stuff. Here's what I mention in my options file:

Code:
tranExpt1 tran stop=300n errpreset=conservative

save dut:vdd
save dut:pwr

// Now measure average currents
simulator lang=spice
.measure tran pwr_mem1 avg i(dut:vdd) from=0.3ns to=32ns
.measure tran pwr_mem2 avg i(dut:vdd) from=32.3ns to=64ns


However, this spits out an error during spectre simulation like this:

Code:
Warning from spectre during transient analysis `transient1', during task
       `MDLControl'.
   WARNING:  Probe 'I( dut:vdd:1 )' is invalid or argument dut:vdd:1 is
       unknown.
Error found by spectre during transient analysis `transient1', during task
       `MDLControl'.
   ERROR: line `6': Unable to validate access function 'I( dut:vdd:1 )' with
       specified parameters
   ERROR: line `6': Operand 'I' of function 'avg' contains an error.
   ERROR: line `6': The function 'avg' contains no arguments


Now, the point is:
1. My analysis name is *not* transient1, but tranExpt1. Why does it keep warning about something else? I have no analysis named transient1 in my netlist/options file. :o
2. How do I measure average currents for the experiment? I basically intend to measure power consumed by DUT during some time window through this. :-/

Would be grateful if you can kindly help. I am not open to going through the ADE GUI because I need to do numerous such experiments and am biased to scripting them out, eventually. Hence am looking for text based alternative.

Dushyant.

Title: Re: Measuring average current in spectre
Post by Dushyant Juneja on Aug 14th, 2013, 5:02am

A prospective, equivalent MDL script obtained using the spectre's spp utility gave the following output for the .measure statements:


Code:
alias measurement transient {
     export real pwr_mem1, pwr_mem2
     run tran( step=1n, stop=300n )
     pwr_mem1=avg(trim(sig=I(dut\:vdd:1), from=0.3n, to=32n ))
     pwr_mem2=avg(trim(sig=I(dut\:vdd:1), from=32.3n, to=64n ))
}

run transient as transient1


So, that clarifies why my analysis is being called transient1 in the log file errors. Its spp playing a part to give a proper analysis name for MDL. One thing cleared!!!  ;D

Am still doing experiments to get things going!

Dushyant

The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.