Following an example in the Verilog-AMS LRM (4.5.3.5 on
page 4-33), I believe the following code should produce
the correlated gate noise of the MOS11 model (level 1101).
I think Colin said that his simulator doesn't allow you
to assign noise to a variable, and ADMS doesn't do noise
at all, so I'm not quite sure anyone can test this out.
But here goes.
------------------
// extra module items
electrical noi; // extra internal node
branch (noi) noiI, noiR, noiC;
real n1, n2, n12;
real rho_igth, nf1, nf2;
// extra code for the analog block
rho_igth = 0.4;
nf1 = 27.0/40.0;
nf2 = 1.0/(sqrt(nf1));
n1 = white_noise(1.0 - rho_igth);
n2 = white_noise(1.0 - rho_igth);
n12 = white_noise(rho_igth);
I(d,s) <+ NT_T / (Gmob*Gmob) * (Rideal - Tc_square * Ids * delpsi_s)
* (n1 + n12);
I(noiI) <+ NT_T * (3*Gm) * nf1 * (n2 + n12);
I(noiR) <+ V(noiR) * (3*Gm) * nf2;
I(noiC) <+ ddt(COX * V(noiC));
I(g,s) <+ I(noiC);
------------------
The variables Gmob, Rideal, Tc_square, Ids, delpsi_s, and Gm
are taken from the simkit_1.2.1 code for device_m1101i.c
NT_T = temperature-adjusted value of parameter NT
This does not account for drain/source swapping.
What I've done is create an RC filter (R = 1/(3*Gm*nf2),
C=Cox) driven by a white noise current source with PSD
of NT_T * (3*Gm) * nf1. The power spectral density of
the capacitor current is then
NT_T * (3*Gm) * nf1 * || (2*pi*f*Cox)/(3*Gm*nf2 + j*2*pi*f*Cox) ||**2
= NT_T * nf1 / (3*Gm*nf2*nf2) * pow(2*pi*f*Cox,2)
-----------------------------------------------
1 + 1/(9*nf2*nf2)*pow(2*pi*f*Cox/Gm,2)
With my particular choice of nf1 and nf2, this reduces to
= NT_T * / (3*Gm) * pow(2*pi*f*Cox,2)
-----------------------------------
1 + 0.075*pow(2*pi*f*Cox/Gm,2)
The Philips documentation talks about 1/3 of the channel
resistance in series with the oxide capacitance; in an
ac noise analysis, you get a parallel combination of
the noise current source, the R, and the C. I think
this should give you nf1=nf2=1.0, but to match the
equations implemented, you have to use the funny values
given above.
I think the fact that I'm sensing the capacitor current
will give the factor of j (=sqrt(-1)) to match the value
of rho_igth = 0.4j in the Philips report (eq. 2.120 in
NLUR2002_802.pdf).
-Geoffrey
Received on Mon May 17 11:14:26 2004
This archive was generated by hypermail 2.1.8 : Mon May 17 2004 - 11:14:30 PDT