boldbutcaution
New Member
Offline
Posts: 3
|
Yes, I can modify CDF data. Some people told me that I can write the followings in the component parameters inside CDF. In fact, the generated spectre nestlist does not automatically calculate but just lists out the equations of ad, as, pd & ps respectively (e.g. P1 (D G S B) ne2 w=nw l=nl as=0.48*(nw) ad=0.48*(nw) ps=0.96+2*(nw) pd=0.96+2*(nw)) Since I use .option scale=1e-6 to insert um, the above equations automatically multiple 1e-6 & 1e-12 to their length and area respectively.
Please kindly help to show step-by-step how to set automatic calculation of ad,as,pd,ps without using fixed constant equations shown above because this mos symbol cannot be used in any other process with different constant!
Thank you for your help & kindness cdfCreateParam( cdfId ?name "model" ?prompt "Modelname" ?defValue "ne2" ?type "string" ?parseAsCEL "yes" ) cdfCreateParam( cdfId ?name "m" ?prompt "Multiplier" ?defValue "" ?type "string" ?display "artParameterInToolDisplay('m)" ?parseAsCEL "yes" ) cdfCreateParam( cdfId ?name "l" ?prompt "length" ?defValue "pPar(\"ln\")" ?type "string" ?callback "nMOSl()" ?parseAsCEL "yes" ) cdfCreateParam( cdfId ?name "w" ?prompt "width" ?defValue "pPar(\"wn\")" ?type "string" ?callback "nMOSw()" ?parseAsCEL "yes" ) cdfCreateParam( cdfId ?name "ad" ?prompt "Drain diffusion area" ?defValue "0.48*iPar(\"w\")" ?type "string" ?display "artParameterInToolDisplay('ad)" ?parseAsNumber "yes" ?parseAsCEL "yes" ) cdfCreateParam( cdfId ?name "as" ?prompt "Source diffusion area" ?defValue "0.48*iPar(\"w\")" ?type "string" ?display "artParameterInToolDisplay('as)" ?parseAsNumber "yes" ?parseAsCEL "yes" ) cdfCreateParam( cdfId ?name "pd" ?prompt "Drain diffusion periphery" ?units "lengthMetric" ?defValue "0.96+2*iPar(\"w\")" ?type "string" ?display "artParameterInToolDisplay('pd)" ?parseAsNumber "yes" ?parseAsCEL "yes" ) cdfCreateParam( cdfId ?name "ps" ?prompt "Source diffusion periphery" ?units "lengthMetric" ?defValue "0.96+2*iPar(\"w\")" ?type "string" ?display "artParameterInToolDisplay('ps)" ?parseAsNumber "yes" ?parseAsCEL "yes" ) cdfCreateParam( cdfId ?name "nrd" ?prompt "Drain diffusion resistor squares" ?defValue "(0.16+0.22/2)/iPar(\"w\")" ?type "string" ?display "artParameterInToolDisplay('nrd)" ?parseAsNumber "yes" ?parseAsCEL "yes" ) cdfCreateParam( cdfId ?name "nrs" ?prompt "Source diffusion resistor squares" ?defValue "(0.16+0.22/2)/iPar(\"w\")" ?type "string" ?display "artParameterInToolDisplay('nrs)" ?parseAsNumber "yes" ?parseAsCEL "yes" )
The simulation information is shown below. cdfId->simInfo->spectre = '( nil modelParamExprList nil optParamExprList nil opParamExprList nil stringParameters nil propMapping nil netlistProcedure ansSpectreDevPrim otherParameters (model) instParameters (w l as ad ps pd nrd nrs rsc rdc ld ls m trise region) termOrder (D G S B) termMapping (nil D d G g S s B b) namePrefix "M" componentName mos2 current port ) cdfId->simInfo->hspiceD = '( nil termMapping (nil D \,D G \,G S \,S B \,B) netlistProcedure hspiceDCompPrim instParameters (m w l ad as pd ps nrd nrs rdc rsc off Vds Vgs Vbs dtemp geo) otherParameters (model) componentName nmos termOrder (D G S B) dataAccessMap (IDC((D "id"))) propMapping (nil vds Vds vgs Vgs vbs Vbs) namePrefix "M"
|