The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl Modeling >> Semiconductor Devices >> Trouble changing NMOS threshold voltage with monte carlo simulation https://designers-guide.org/forum/YaBB.pl?num=1353049007 Message started by fjal on Nov 15th, 2012, 10:56pm |
Title: Trouble changing NMOS threshold voltage with monte carlo simulation Post by fjal on Nov 15th, 2012, 10:56pm I am attempting to use ADE XL in Cadence to simulate a monte carlo analysis of a cascaded set of inverters at near/sub threshold voltage levels. In order to test robustness, I want to use a mismatch monte carlo simulation to change the threshold voltage of the individual transistors in my cascaded chain. The problem is that the threshold voltage of nmos transistors is stored in their model file and aren't a parameter that can be changed via a simple monte carlo simulation. I attempted to add a statistics block into the NMOS_VTL.scs model file to allow the monte carlo sim to change the threshold voltage (vth0). The result is as follows, and it works for process variation changes, but for mismatch variation, all transistors in my schematic have the same vth0 value instead of them all being different. -------------------------------------------------------- * Customized PTM 45 NMOS nom simulator lang=spectre parameters TTHRESH = 0.322 statistics{ process{ vary TTHRESH dist=gauss std=10 percent=yes } mismatch{ vary TTHRESH dist=gauss std=100 percent=yes } } subckt NMOS_VTL (a b c d) parameters w=0 l=0 as=0 ad=0 ps=0 pd=0 ld=0 ls=0 Q1 (a b c d) jnmos w=w l=l as=as ad=ad ps=ps pd=pd ld=ld ls=ls vth0=TTHRESH simulator lang=spice .model jnmos nmos level = 54 * parameters related to the technology node +tnom = 27 epsrox = 3.9 +eta0 = 0.006 nfactor = 2.1 wint = 5e-09 +cgso = 1.1e-10 cgdo = 1.1e-10 xl = -2e-08 * parameters customized by the user +toxe = 1.14e-09 toxp = 1e-09 toxm = 1.14e-09 toxref = 1.14e-09 +dtox = 0.14e-09 lint = 3.75e-09 +vth0 = TTHRESH k1 = 0.4 u0 = 0.045 vsat = 148000 +rdsw = 155 ndep = 3.4e+18 xj = 1.98e-08 ... (more parameters, not important) simulator lang=spectre ends NMOS_VTL -------------------------------------------------------------------------- Any advice on an easy way to allow mismatch monte carlo simulations to modify the vth0 for this nmos model file? Thanks! |
Title: Re: Trouble changing NMOS threshold voltage with monte carlo simulation Post by Geoffrey_Coram on Nov 16th, 2012, 7:43am While the threshold voltage vth0 is in the model file, many simulators have implemented an instance parameter "deltvo" that can be used to shift the threshold for an instance. I would suggest you try using this parameter for monte-carlo. |
Title: Re: Trouble changing NMOS threshold voltage with monte carlo simulation Post by fjal on Nov 16th, 2012, 3:02pm Thanks, this was exactly what I needed! For future reference if anyone else sees this topic, spectre (and apparently other simulators) has an instance parameter called "delvto" that you can modify for individual transistors using a statistics block and Monte Carlo simulation. You need to create a subcircuit that contains the transistors you want to modify as you can't stick a statistics block directly into the model file. I created a subcircuit that only contains a transistor. This allows you to use mismatch variations. The "delvto" instance parameter is different from the process-specific "Vth0" parameter which is stored in the transistor model file and affects all transistors using that model (aka process variations only). |
The Designer's Guide Community Forum » Powered by YaBB 2.2.2! YaBB © 2000-2008. All Rights Reserved. |