Hi,
I am running a script (pasted below) in Ocean. The simulations have already finished fine. This script just selects the run and extracts measurements from it. It runs fine for a few iterations then it gives me this error (on the 12th iteration)
*Error* putprop: first arg must be either symbol, list, defstruct or user type - nil
This happens right after the plot command of IBIAS_FIN since I see this on the terminal:
*Warning* Wave82 is not a waveform object that can be displayed and
will be DELETED automatically.
name: "IBIAS_FIN"
But if I restart the script onwards from the 12th iteration, the12th iteration works fine it shows the same problem on the 13th iteration. If I execute the script commands 1 at a time for the 12th iteration they work fine.
Please help me figure out why I am getting this error. These measurement statements are from the ocean script generated by ADE, I did not change them so I don't know why they cause a problem.
Thanks,
Milind
OCEAN SCRIPT:
for(i 1 54
sprintf(corDir "%s%d/psf" "/home/milind/BIAS_TB_TRAN/corner" i)
openResults(corDir )
IBIAS_TEMP = IS("/I0/M38/D")
plot( IBIAS_TEMP ?expr '( "IBIAS_TEMP" ) )
IBIAS_FIN = value(IS("/I0/M38/D") VAR("gt"))
plot( IBIAS_FIN ?expr '( "IBIAS_FIN" ) )
IBIAS_AT_POK = value(IT("/I0/M38/D") cross(VT("/POK") (VAR("vsup") / 2) 1 "rising" nil nil))
plot( IBIAS_AT_POK ?expr '( "IBIAS_AT_POK" ) )
POK_Time = cross(VT("/POK") (VAR("vsup") / 2) 1 "rising" nil nil)
plot( POK_Time ?expr '( "POK_Time" ) )
IBIAS_DC = IDC("/I0/M38/D")
plot( IBIAS_DC ?expr '( "IBIAS_DC" ) )
ISUP_DC = IDC("/V0/MINUS")
plot( ISUP_DC ?expr '( "ISUP_DC" ) )
ISUP_FIN = value(IT("/V0/MINUS") VAR("gt"))
plot( ISUP_FIN ?expr '( "ISUP_FIN" ) )
IBIAS_AFGL = value(IS("/I0/M38/D") (2 * VAR("gt")))
plot( IBIAS_AFGL ?expr '( "IBIAS_AFGL" ) )
ISUP_AFGL = value(IT("/V0/MINUS") (2 * VAR("gt")))
plot( ISUP_AFGL ?expr '( "ISUP_AFGL" ) )
POK = VT("/POK")
plot( POK ?expr '( "POK" ) )
VSUP = VT("/VDD")
plot( VSUP ?expr '( "VSUP" ) )
IBIAS = IT("/I0/M38/D")
plot( IBIAS ?expr '( "IBIAS" ) )
LG_Phase = phaseDegUnwrapped(getData("loopGain" ?result "stb"))
plot( LG_Phase ?expr '( "LG_Phase" ) )
LG_dB20 = db(mag(getData("loopGain" ?result "stb")))
plot( LG_dB20 ?expr '( "LG_dB20" ) )
Phase_Margin = value(getData("phaseMargin" ?result "tran_stb_margin-tran_margin.stb") 0.01)
plot( Phase_Margin ?expr '( "Phase_Margin" ) )
PM_Freq = value(getData("phaseMarginFreq" ?result "tran_stb_margin-tran_margin.stb") 0.01)
plot( PM_Freq ?expr '( "PM_Freq" ) )
Gain_Margin = value(getData("gainMargin" ?result "tran_stb_margin-tran_margin.stb") 0.01)
plot( Gain_Margin ?expr '( "Gain_Margin" ) )
GM_Freq = value(getData("gainMarginFreq" ?result "tran_stb_margin-tran_margin.stb") 0.01)
plot( GM_Freq ?expr '( "GM_Freq" ) )
LG_DC = value(value(dB20(getData("loopGain" ?result "tran_stb-tran_stb")) 1e-05) "time" 0.01)
plot( LG_DC ?expr '( "LG_DC" ) )
if(i==1 then
fileHandle = outfile("/home/milind/BIAS_TB_TRAN/data.csv" "w")
ocnPrint( ?output fileHandle ?numberNotation 'engineering "vdd=5" "ttttttt" "-40" Phase_Margin PM_Freq )
close(fileHandle)
else
fileHandle = outfile("/home/milind/BIAS_TB_TRAN/data.csv" "a")
ocnPrint( ?output fileHandle ?numberNotation 'engineering "vdd=5" "ttttttt" "-40" Phase_Margin PM_Freq )
close(fileHandle)
)
)