Hello. Is there any way to know Avt(threshold volt...
# gf180mcu
j
Hello. Is there any way to know Avt(threshold voltage mismatch parmeter) and Abeta in Gf180mcuD nmos3.3V device?
t
$PDK_ROOT/gf180mcuD/libs.tech/ngspice/sm141064.ngspice
line 47015 is the
nfet_03v3
model:
Copy code
.subckt nfet_03v3 d g s b w=1e-5 l=2.8e-7
+ as=0 ad=0 ps=0 pd=0 nrd=0 nrs=0 par=1 dtemp=0
+ sa=0 sb=0 nf=1 sd=0 m=1

.param
+ par_vth=0.007148
+ par_k=0.007008
+ par_l=1.5e-7
+ par_w=-1e-7
+ par_leff='l-par_l'
+ par_weff='par*(w-par_w)'
+ p_sqrtarea='sqrt((par_leff)*(par_weff))'

.param
+ var_k='0.7071*par_k* 1e-06 / p_sqrtarea'
+ mis_k=agauss(0,var_k,1)

.param
+ var_vth='0.7071*par_vth* 1e-06 / p_sqrtarea'
+ mis_vth=agauss(0,var_vth,1)

m0 d g s b nfet_03v3 w=w l=l as=as ad=ad ps=ps pd=pd nrd=nrd nrs=nrs
+delvto='mis_vth*sw_stat_mismatch'  sa=sa sb=sb nf=nf sd=sd m=m
.ends nfet_03v3
The Vth mismatch is parameter
delvto
and is based on the values
mis_vth
,
var_vth
, and
par_vth
.
h
@Tim Edwards there is a bug in the model that gives wrong mismatch results when the multiplier is used. Please check this article for a detailed explanation: https://www.linkedin.com/pulse/why-using-device-multiplier-can-make-your-monte-carlo-hesham-omran/
t
@Hesham Omran: Thank you for pointing that out. Most foundry PDKs (like sky130, for example) define a parameter like
mult
which is set to the same value as
m
; the difference is that
mult
can be used inside expressions but
m
cannot. I agree that the model should define
mult
and define area as
mult*par_leff*par_weff
. Otherwise, multiplicity is not factored into the area for mismatch analysis.
👍 1
j
@Tim Edwards @Hesham Omran Thanks, all of you :)