The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
Apr 19th, 2024, 7:25pm
Pages: 1
Send Topic Print
Noise implementation in verilog-a (Read 5573 times)
Ben
New Member
*
Offline



Posts: 3

Noise implementation in verilog-a
Apr 01st, 2003, 8:05am
 
Hi All,

I am currently working on putting the channel induced gate noise source into mosfet model using verilog-a.  Such noise source has a different frequency dependence than the flicker noise provided in verilog-a.  For example, the spectral density of the noise used in the MOS!! model of Philips is like:

Sig=A*f2/(B+Cf2),

where f is the frequecy.

Do you have any suggestion on how to put this kind of noise source using verilog-a?

Thanks a lot!
Ben
Back to top
 
 
View Profile   IP Logged
Eugene
Senior Member
****
Offline



Posts: 262

Re: Noise implementation in verilog-a
Reply #1 - Apr 2nd, 2003, 1:48pm
 
Your power spectral density looks like it could be created by passing white noise through a simple first order filter. The filter has a zero at the origin and a pole at sqrt(B/C). For frequency domain analysis, it should be easy drive a parallel LR circuit with a white noise current source to get the desired PSD.

For time domain analysis, you will have to drive a digital filter with a Gaussian random number generator. The digital filter can be found using text book methods to map analog filters into equivalent digital filters. The sampling frequency of the filter should be at least twice any frequency of interest, probably more like 4-10 times  higher. The standard deviation of the random number generator must be scaled by the sampling frequency. Actually, to do this in the time domain, you may have to refine your PSD model to make it band limited and then set your sampling frequency well beyond that bandwidth.
Back to top
 
 
View Profile   IP Logged
Geoffrey_Coram
Senior Fellow
******
Offline



Posts: 1998
Massachusetts, USA
Re: Noise implementation in verilog-a
Reply #2 - Jun 24th, 2003, 1:23pm
 
Ben -
Pushing Eugene's response a little further: you could implement it with an LR circuit on an internal node, but I think you can use the laplace_nd operator, also.  Depending on the simulator and how it implements Laplace transforms, this might not be computationally efficient, though.
x = white_noise(1);
I(g,s) <+ laplace_nd(x, {0, sqrt(A)}, {sqrt(B), sqrt(C)});


The Laplace transform filter I've defined is
H(s) = 0 + sqrt(A) s / (sqrt(B) + sqrt(C) s)
but you're only interested in its response on the imaginary axis, ie, s = 0 + jw = j 2 pi f.  (The mos11 equations actually have 2 pi f, so I'll leave this in terms of w.)  The output power spectral density for the current noise between gate and source is then |H(s)|^2  times the power spectral density of x (which is 1), so you get
Sig = |H(s)|^2 = sqrt(A) jw / (sqrt(B) + sqrt(C) jw) * sqrt(A) (-jw) / (sqrt(B) + sqrt(C)(-jw)) = A w^2 / (B + C w^2)
Back to top
 
 

If at first you do succeed, STOP, raise your standards, and stop wasting your time.
View Profile WWW   IP Logged
Geoffrey_Coram
Senior Fellow
******
Offline



Posts: 1998
Massachusetts, USA
Re: Noise implementation in verilog-a
Reply #3 - Sep 28th, 2004, 9:31am
 
Ben -
I assume you are also interested in the correlation of channel and gate noises. In that case, try the implementation below.

Code:
// extra module-level declarations
electrical noi;
branch (noi) noiI, noiR, noiC;
real n1, n2, n12, rho_igth, nf1, nf2;

// behavioral code
rho_igth = 0.4;
nf1 = 40.0/27.0;
nf2 = 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 / (Gmob*Gmob) * (Rideal - Tc_square * Ids * delpsi_s) * (n1 + n12);
I(noiI) <+ NT * (3*gm) * nf1 * (n2 + n12);
I(noiR) <+ V(noiR) * (3*gm) * nf2;
I(noiC) <+ ddt(Cox * V(noiC));
I(g,s) <+ I(noiC);
 



The transfer function from the internal node noi to the branch (g,s) implements the filtering. The fact that the noise source n12 is used in both the gate-source and drain-source noise currents causes them to be correlated.
Back to top
 
 

If at first you do succeed, STOP, raise your standards, and stop wasting your time.
View Profile WWW   IP Logged
Pages: 1
Send Topic Print
Copyright 2002-2024 Designer’s Guide Consulting, Inc. Designer’s Guide® is a registered trademark of Designer’s Guide Consulting, Inc. All rights reserved. Send comments or questions to editor@designers-guide.org. Consider submitting a paper or model.