I have performed the following MonteCarlo simulation through the ocean script to capture the current consumption for a time frame from 15ms to 25ms, how is it possible for me to re-collect the data, say from 50ms to 100ms, without re-run the simulation again? I am looking for a ocean script to do that. FYI, I am using IC5141.
Thanks in advance!
ocnWaveformTool( 'wavescan )simulator( 'spectre )design( "./design/netlist/netlist" )resultsDir( "./design" "a" )modelFile( '("./design/models/f35.scs" "tt"))analysis('tran ?stop "100m" ?errpreset "conservative" )desVar( "vdd" 2.15 )option( 'temp "25.0" )saveOption( ?outputParamInfo nil )saveOption( ?elementInfo nil )saveOption( ?modelParamInfo nil )saveOption( 'currents "selected" )saveOption( 'save "selected" )save( 'v "/OUT" )save( 'i "/V0/PLUS" )temp( 25.0 ) monteCarlo( ?numIters "1000" ?startIter "1" ?analysisVariation 'processAndMismatch ?sweptParam "Temperature" ?sweptParamVals "-20 100" ?saveData t ?nomRun nil ?append nil ?saveProcessParams t )monteExpr( "idd" "average(clip(IT(\"/V0/PLUS\") 15m 25m))" )monteRun()
The browser GUI window will not workout if the simulation data is very big, mostly it will clip the waveform for only about 400 iteration.
It shouldn't clip the data - not sure why that would be happening. There is no equivalent of ADE XL's "reevaluate" option in IC5141. So all you can do is build a calculator function which computes a scalar for each iteration, and then use stddev, average, or histogram() on the results ot process it.
In your case you ought to be able to do:
stddev(average(clip(IT("/V0/PLUS") 50m 100m))
average(average(clip(IT("/V0/PLUS") 50m 100m))