Continue to Site

# Vth Variation and Monte Carlo simulations in HSpice

Status
Not open for further replies.

#### Salt

##### Newbie level 2
Hello,

After many hours of online searches and reading and re-reading the documentations I am still stuck...

I am trying to run Monte Carlo simulations to vary Vth in my model file for all of my transistors. I want them all to be different for each transistor (independent) so I figured I should be using the .local_variation instead of .global_variation. After reading the Hspice documents over and over I think this is what I am supposed to have:

.variation
.local_variation
nmos N_50n vth0=sigma
pmos P_50n vth0=sigma
.end_local_variation
.end_variation

My concern is the sigma value itself. I want to simulate with a mean 0 and sigma 3. The simulator by default does a mean=0 so I am not worried about that. I guess I am having trouble understand what is happening in their examples files:

.variation
.global_variation
nmos snps20N vth0=0.07
pmos snps20P vth0=0.08
.end_global_variation
.local_variation
nmos snps20N vth0='1.234e-9/sqrt(get_E(W)*get_E(L)*get_E(M))'
pmos snps20P vth0='1.234e-9/sqrt(get_E(W)*get_E(L)*get_E(M))'
.end_local_variation
.end_variation

Where did they get the 0.07 and 0.08 values for their global variation? Does that represent 7sigma or 70mV? Also for the local_variation, where are they getting these equations? If they are process specific do you know where I can find the equations for 50nm BSIM4 models with VDD=1V?

Thanks in advance for any help!

Hey,

1. The vth0=0.07 line means model vth0 as a Gaussian with 1sigma variation = 70mV.

2. The equation for vth sigma is roughly P/sqrt(W * L), where W and L are width and length and P is a process dependent parameter. They also include M since it's a multiplier on W and L I guess. So yes, for your BSIM 50nm process you will have to calculate P.

Calculating P is kind of a pain, you're a bit on your own for that. There are a couple equations out there that you can use. Here's one of them:

σ_vth = ((4 * q³ * ε_si * θ_B)¼ / 2) * (T_ox / ε_ox) * (N)¼ / (W * L)½

where

θ_B = 2 * k_B * T * ln(N/n_i)

and

q = charge of an electron
k_B = boltzmann's constant
T = temperature
n_i = intrinsic carrier concentration
ε_si = permittivity of silicon
T_ox = gate oxide thickness
ε_ox = permittivity of gate oxide
N = channel dopant concentation
W = width
L = length

Kind of a pain to write out but there it is. You're going to have to try to pull some of those numbers out of your model. If you are familiar with the BSIM model it shouldn't be that bad. If not, well, good luck! For a reference on where this equation came from see "Modeling Statistical Dopant Fluctuations in MOS Transistors", Stolk et al.

I've now done my good deed for the day

dnanar

Points: 2