The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Simulators >> Circuit Simulators >> sensitivity analysis in Ocean script
https://designers-guide.org/forum/YaBB.pl?num=1292191819

Message started by c1000 on Dec 12th, 2010, 2:10pm

Title: sensitivity analysis in Ocean script
Post by c1000 on Dec 12th, 2010, 2:10pm

In the ocean script, I need to simulate the sensitivity of ids to l
(Leff) with respect to vds, vgs and vbs. For ids table, I used
****************************************************
analysis( 'dc ?saveOppoint t ) paramAnalysis("Vb" ?start Vground ?stop -Vsupply ?step -0.1
 paramAnalysis( "Vg" ?start Vground ?stop Vsupply ?step 0.05
  paramAnalysis( "Vd" ?start Vground ?stop Vsupply ?step 0.05
 )
)
)
paramRun()

selectResults('dcOpInfo)
idsAll = pv("n1" "ids")
*****************************************************
then how to 'sens??
I checked documents, it seems 'sens is only valid for dc not paramAnalysis. do I need to sweep vb,vg and vg in the script and simulate?

Then the other problem pops out.
if I use the following script for sensitivity analysis,
****************************************************
analysis( 'sens ?analyses_list "dc" ?output_variables_list "n1:ids"
?design_parameters_list "l" )
dc( "Vg" "dc" 0.00 0.05 0.10 )
run()
selectResults('sens)
*******************************************************
then how to save and display the sensitivities with respect to vds,vgs and vbs?? I used to use pv() to save ids values with respect to terminal voltages. but in .sens, the output is "n1:ids,n1:l", then I don't know how to use pv() and whether I should use pv(). how to do that?

Title: Re: sensitivity analysis in Ocean script
Post by Andrew Beckett on Jan 2nd, 2011, 9:22am

You don't need to do a parametric analysis to do a sensitivity analysis.

Assuming you have a source called "vds" and "vgs" in your schematic, the following OCEAN script can be used:

Code:
analysis('dc ?saveOppoint t  )
;analysis('sens ?analyses_list list("dcOp")  ?term list("/M0/S" "/M0/G" "/M0/B" "/M0/D")  )
analysis('sens ?analyses_list list("dcOp")  ?output_list list("M0:ids"))
desVar(   "Vds" 1       )
desVar(   "Vgs" 0.7     )
temp( 27 )
run()


Then afterwards, do:


Code:
selectResults('dcOpSens)
vdsSens=pv("/sens1" "M0:ids,vds:dc")
vgsSens=pv("/sens1" "M0:ids,vgs:dc")


The ?output_list is referencing the ids parameter of the transistor you want to measure the sensitivity to. ADE always produces a sensitivity analysis to all instance and model parameters (there's no way to be selective about it, unfortunately, despite the fact that this is supported in spectre). The results are presented in terms of pairs of output parameter to input parameter names - in this case I'm checking the sensitivity to the dc parameter on the two voltage sources.

Best Regards,

Andrew.

Title: Re: sensitivity analysis in Ocean script
Post by c1000 on Jan 3rd, 2011, 6:46am

Thanks a lot!!!

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