arbil
Newbie level 6
Hi all,
I am trying to use ocean to print Vth-Length waveform. What i do is to use ocean to submit a series simulations with dc OP simulation, and then open each result and print the vth value.
But vth value keep the same with my script. When i run this script, vth_nm or vth_pm is always a same value. But if i open each sim result from ADE calculator and print vth, it is correct for each length. I don't know why vth_nm and vth_pm keep unchanged by this ocean script.
Is it environment problem or script problem?
Script:
length_list = list(0.18u 0.3u 0.5u 0.7u 1u 1.5u 2.5u 5u 7u 10u )
corner_list = list("tt" "ff" "ss")
p0 = outfile("/vth.txt" "w")
fprintf(p0 "%s %s %s %s \n" "corner" "length" "vth_n" "vth_p")
foreach(cornervalue corner_list
foreach(lengthvalue length_list
sprintf(job, "%s_%2.2f" cornervalue lengthvalue*1e6)
sprintf(results_dir, /simulation/tb_Vth/spectre/schematic/%s/psf" job)
openResults(results_dir t)
selectResult( 'dcOp)
vth_nm = OP("/M0","vth")
vth_pm = OP("/M1","vth")
fprintf(p0 "%s %2.2f %2.3f %2.3f \n" cornervalue lengthvalue*1e6 vth_nm vth_pm)
clearAll()
))
close(p0)
I am trying to use ocean to print Vth-Length waveform. What i do is to use ocean to submit a series simulations with dc OP simulation, and then open each result and print the vth value.
But vth value keep the same with my script. When i run this script, vth_nm or vth_pm is always a same value. But if i open each sim result from ADE calculator and print vth, it is correct for each length. I don't know why vth_nm and vth_pm keep unchanged by this ocean script.
Is it environment problem or script problem?
Script:
length_list = list(0.18u 0.3u 0.5u 0.7u 1u 1.5u 2.5u 5u 7u 10u )
corner_list = list("tt" "ff" "ss")
p0 = outfile("/vth.txt" "w")
fprintf(p0 "%s %s %s %s \n" "corner" "length" "vth_n" "vth_p")
foreach(cornervalue corner_list
foreach(lengthvalue length_list
sprintf(job, "%s_%2.2f" cornervalue lengthvalue*1e6)
sprintf(results_dir, /simulation/tb_Vth/spectre/schematic/%s/psf" job)
openResults(results_dir t)
selectResult( 'dcOp)
vth_nm = OP("/M0","vth")
vth_pm = OP("/M1","vth")
fprintf(p0 "%s %2.2f %2.3f %2.3f \n" cornervalue lengthvalue*1e6 vth_nm vth_pm)
clearAll()
))
close(p0)