Quantcast
Channel: Cadence Custom IC Skill Forum
Viewing all articles
Browse latest Browse all 5201

Strange error putprop

$
0
0

 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)   
    )
)


Viewing all articles
Browse latest Browse all 5201

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>