A tabular source approach to modelling and simulating ...

14
INTERNATIONAL JOURNAL OF NUMERICAL MODELLING: ELECTRONIC NETWORKS, DEVICES AND FIELDS Int. J. Numer. Model. 2010; 00:1–6 Prepared using jnmauth.cls [Version: 2002/09/18 v1.01] A tabular source approach to modelling and simulating device and circuit noise in the time domain M. E. Brinson 1* , S. Jahn 2 and H. Nabijou 3 1 Centre for Communications Technology, London Metropolitan University, London N7 8DB, U.K. 2 Qucs project manager, Munich, Germany. 3 Centre for Communications Technology, London Metropolitan University, London N7 8DB, U.K. SUMMARY Simulation of device and circuit noise at low frequencies is often done as part of small signal ac analysis. Moreover, circuit simulators with rf analysis capabilities usually specify circuit performance in terms of S parameters and model high frequency noise in terms of noise waves and correlation matrices. It is also unusual to find circuit simulators that extend noise simulation to the time domain. This is particularly true for software packages developed from SPICE 2g6 or 3f5. This paper introduces a simple tabular noise source technique which adds time domain noise to semiconductor device models and integrated circuit macromodels. The proposed technique is suitable for use with any general purpose circuit simulator. To demonstrate the power of the suggested approach the text describes time domain noise extensions to the SPICE diode, BJT, JFET, MOSFET and MESFET models. These noise extensions have been implemented and tested with the “Quite universal circuit simulator” (Qucs). Copyright c 2010 John Wiley & Sons, Ltd. key words: Tabular noise sources; thermal, shot and 1/f noise, mixed-mode equation-defined noise macromodels; Qucs: circuit simulation; Verilog-A 1. INTRODUCTION Computer aided noise analysis is important in the design of analogue and microwave integrated circuits. The popular SPICE 2g6 and 3f5 circuit simulators [1], [2] use dc non-linear component linearisation plus small signal ac analysis to determine noise. In this technique individual noise contributions are modelled by small signal ac current sources connected at a point in a circuit where the noise originates. The resulting signals propagate through a linearised circuit, appearing at an output as a signal equivalent to noise with modified spectral density. Due to the fact that individual noise contributions are uncorrelated, the total output power spectral density becomes the sum of the power spectrum densities resulting from each noise component. In microwave integrated circuit design it has become common practice to specify the circuit * Correspondence to: M. E. Brinson, Centre for Communications Technology, London Metropolitan University, London N7 8DB. E-mail: [email protected]. Received 15 April 2010 Copyright c 2010 John Wiley & Sons, Ltd.

Transcript of A tabular source approach to modelling and simulating ...

Page 1: A tabular source approach to modelling and simulating ...

INTERNATIONAL JOURNAL OF NUMERICAL MODELLING: ELECTRONIC NETWORKS, DEVICES AND FIELDS

Int. J. Numer. Model. 2010; 00:1–6 Prepared using jnmauth.cls [Version: 2002/09/18 v1.01]

A tabular source approach to modelling and simulating deviceand circuit noise in the time domain

M. E. Brinson1∗, S. Jahn2 and H. Nabijou3

1 Centre for Communications Technology, London Metropolitan University, London N7 8DB, U.K.2 Qucs project manager, Munich, Germany.

3 Centre for Communications Technology, London Metropolitan University, London N7 8DB, U.K.

SUMMARY

Simulation of device and circuit noise at low frequencies is often done as part of small signal ac analysis.Moreover, circuit simulators with rf analysis capabilities usually specify circuit performance in terms ofS parameters and model high frequency noise in terms of noise waves and correlation matrices. It is alsounusual to find circuit simulators that extend noise simulation to the time domain. This is particularlytrue for software packages developed from SPICE 2g6 or 3f5. This paper introduces a simple tabularnoise source technique which adds time domain noise to semiconductor device models and integratedcircuit macromodels. The proposed technique is suitable for use with any general purpose circuitsimulator. To demonstrate the power of the suggested approach the text describes time domain noiseextensions to the SPICE diode, BJT, JFET, MOSFET and MESFET models. These noise extensionshave been implemented and tested with the “Quite universal circuit simulator” (Qucs). Copyright c©2010 John Wiley & Sons, Ltd.

key words: Tabular noise sources; thermal, shot and 1/f noise, mixed-mode equation-defined noise

macromodels; Qucs: circuit simulation; Verilog-A

1. INTRODUCTION

Computer aided noise analysis is important in the design of analogue and microwave integratedcircuits. The popular SPICE 2g6 and 3f5 circuit simulators [1], [2] use dc non-linear componentlinearisation plus small signal ac analysis to determine noise. In this technique individualnoise contributions are modelled by small signal ac current sources connected at a point in acircuit where the noise originates. The resulting signals propagate through a linearised circuit,appearing at an output as a signal equivalent to noise with modified spectral density. Due tothe fact that individual noise contributions are uncorrelated, the total output power spectraldensity becomes the sum of the power spectrum densities resulting from each noise component.In microwave integrated circuit design it has become common practice to specify the circuit

∗Correspondence to: M. E. Brinson, Centre for Communications Technology, London Metropolitan University,London N7 8DB. E-mail: [email protected].

Received 15 April 2010Copyright c© 2010 John Wiley & Sons, Ltd.

Page 2: A tabular source approach to modelling and simulating ...

2 M. E. BRINSON, S. JAHN AND H. NABIJOU

properties of an n port network in terms of S parameters and to express circuit noise as noisewaves, where the noise characteristics are defined by an outgoing noise wave from each portand a matrix representing the correlation between noise sources [3]. Unfortunately, both smallsignal ac and S parameter noise analysis techniques are applicable only to the simulation ofcircuits in the frequency domain, implying that alternative analysis methods are required forthe simulation of analogue and mixed-mode circuit noise in the time domain. A number ofsuch techniques have been reported in the published literature. These are often based on thesolution of stochastic differential algebraic equations [4],[5]. In general however, there wouldappear to be no universally established practice for modelling time domain noise among theopen source General Public License (GPL) and commercial circuit simulators. Moreover, ahigh percentage of circuit simulators developed from SPICE 2g6 or 3f5 make no attempt tosimulate circuit noise in the time domain. This paper introduces a simple tabular noise sourcetechnique which allows time domain noise properties to be added to existing and new devicemodels and circuit macromodels. The proposed technique is suitable for use with any generalpurpose circuit simulator which allows subcircuits, equation-defined components (or Verilog-Acode models) and a text file (or a net-list statement) for listing tabulated voltage and currentsource noise data. To demonstrate the power of the proposed approach the paper describesextensions to the SPICE diode, BJT, JFET, MOSFET [6] and MESFET [7] models whichadd time domain noise properties to the published SPICE models. These models have beenimplemented and tested with the GPL “Quite universal circuit simulator” (Qucs) [8].

2. TABULAR TEXT FILES AS VOLTAGE AND CURRENT NOISE SOURCES

The analysis of noise in the time domain can be undertaken with transient simulation providedcomponent or circuit noise is modelled by time dependent voltage or current sources whichgenerate random signals with the correct magnitudes and spectral distributions. Duringtransient simulation, at each time step, injected noise perturbs circuit voltage and currentsignals, leading to output waveforms which have noise components superimposed on the signalsbeing processed. Circuit simulators that do not incorporate time dependent noise operateessentially in a noise free environment which leads to output waveforms that exhibit idealsignal characteristics rather than those observed with measured signals. Time domain noisesimulation is not intended to replace small signal ac or S parameter noise analysis but isintroduced as an additional CAD technique which allows the effects of noise to be observed onac time domain and mixed-mode signal waveforms, particularly at small signal levels commonlyfound in low noise circuits. The Qucs circuit simulator is one of a number of General PublicLicense (GPL) software packages which have become very popular amongst the science andengineering communities for rf and non-linear transient domain simulation. A second highlyrespected GPL program is the numerical mathematics package Octave [9]. By linking Qucs andOctave it becomes possible to use Octave programming features and numerical data processingfacilities to firstly generate Qucs time dependent tabular voltage and current source data filesor secondly to post-process Qucs simulation output data. Shown in Figure 1 are the schematicsfor Qucs file type voltage and current generators [10], where generator output voltage v2(t)and current i

2(t) are normalised functions of white noise pseudo random distribution ξn(t)

and 1/f noise pseudo random distribution ξf (t). The equations listed in Table I indicate how

Copyright c© 2010 John Wiley & Sons, Ltd. Int. J. Numer. Model. 2010; 00:1–6Prepared using jnmauth.cls

Page 3: A tabular source approach to modelling and simulating ...

MODELLING AND SIMULATION OF NOISE IN THE TIME DOMAIN 3

V1

File=vfile.dat

Interpolator=linear

G=gain

I1

File=ifile.dat

Interpolator=linear

G=gain

(a) (b)

Figure 1. Qucs text file based signal generator schematics: (a) voltage; (b) current.

Table I. Thermal, shot and 1/f noise source equations

Noise type Equation

R thermal noise voltage vTHn2(t) = SWTH · 4 · k · T · R · 4f · ξn(t)

R thermal noise current iTHn2(t) = SWTH · 4 · k · T

R· 4f · ξn(t)

Shot noise current iSHn2(t) = SWSH · 2 · q · IDC · 4f · ξn(t)

1/f (flicker) noise current iFn2(t) = SWF · Kf · IDC · 4f · ξf (t)

Where 4f is the noise frequency bandwidth in Hz, R is a resistance value in Ω, k is Boltzmann’s constant,

T is temperature in Kelvin, q is the electron charge, IDC is dc current in A, and Kf is a 1/f noise coefficient.

ξn(t) is a white noise sequence (values against time) with a pseudo random distribution having zero average

value and a variance of one. ξf (t) is a normalised noise sequence with a 1/fAf pseudo random distribution

with Af a 1/f noise exponent. Parameters SWTH, SWSH and SWF act as on-off switches; when 1 individual

noise contributions are turned on, when 0 contributions are off.

time dependent thermal, shot and 1/f (flicker) noise sources can be formed from ξn(t) andξf (t). Qucs allows linear, hold or spline interpolation of tabular data with the data sequenceeither repeating, when its end is reached, or held at its final value for all future values of time.Qucs files “vfile.dat” and “ifile.dat” list the tabulated data and its associated time values inseconds. A basic Octave m script is given in Table II which is suitable for generating Qucs“xx.dat” text files [11].

3. MODELLING THERMAL NOISE IN THE TIME DOMAIN

Figure 2 shows a simple time domain test circuit for recording the thermal noise [12] generatedby a number of different resistors. The resistor noise model consists of a tabular voltagegenerator, formed from one million pseudo random white noise voltage samples taken overa one second period, in series with a noise free resistor. Qucs equation block Eqn5 is usedto calculate the voltage source parameters prior to the start of a transient simulation. Inthis context variable Scale−factor defines a scaling constant which is a function of the noiserms to peak conversion crest factor (1 to approximately 3.2 depending on the type of noise[13]). Scale−factor supports scaling of the Qucs generated noise values to fit theoretical ormeasured noise data. Similarly, equation script Eqn1 forms part of the transient simulationcontrol instructions. This script is also actioned before the start of transient simulation. Posttransient simulation data analysis is undertaken by the code listed in Qucs equation blockEqn6. Eqn6 calculates the rms values of the resistor noise voltages from the Qucs time domain

Copyright c© 2010 John Wiley & Sons, Ltd. Int. J. Numer. Model. 2010; 00:1–6Prepared using jnmauth.cls

Page 4: A tabular source approach to modelling and simulating ...

4 M. E. BRINSON, S. JAHN AND H. NABIJOU

Table II. Octave m script for generating Qucs “xxx.dat” noise data files.

filename = input(’Enter name of dat file [format ’’file1.dat’’] > ’);Version = input(’Enter Qucs version number [format ’’x.x.xx’’] > ’);Npoints = input(’Enter the number of data points in noise sequence > ’);Ftime = input(’Enter the finish time of the noise sequence [in seconds] > ’);IorV = input(’Enter current or voltage generator [format ’’I’’ or ’’V’’ ] > ’);Type = input(’Enter type of noise required [format ’’n’’ or ’’f’’] > ’);% n = normally distributed pseudo-random elements having zero mean% and varience one.% f = 1/(f^Af) power law pseudo-random elements.if (Type == ’n’)

x = randn(1,Npoints);elseif (Type == ’f’)

alpha = input(’Enter power law coefficient > ’);x = powernoise(alpha, Npoints, ’normalize’);

endifTs = Ftime/Npoints; n = 0:length(x)-1; t=Ts*n;fid = fopen(filename, "w");fprintf(fid, "<Qucs Dataset %s>\n", Version);fputs(fid, "<indep time ");fprintf(fid, "%d>\n", Npoints);for i= 1 : length(t)

fprintf(fid, "%12.3e\n", t(i));endforfputs(fid, "</indep>\n");if (IorV == ’I’)

fputs(fid, "<dep IOctave.It time>\n");else

fputs(fid, "<dep VOctave.Vt time>\n");endiffor i= 1 : length(t)

fprintf(fid, "%11.4e\n", x(i));endforfputs(fid, "</dep>\n");fclose(fid);

Octave function “powernoise” generates 1/fAf pseudo random sequences, where Af ≈ 1 [16].

simulation output data. The waveforms plotted in Figure 2 show the time domain noise datagenerated by Qucs. Waveform inserts give values for both the Qucs time domain and ac smallsignal voltage rms values obtained from simulation. Clearly this data confirms agreementbetween the time and ac domain noise models. Current generator thermal noise models showsimilar behaviour. Careful inspection of the waveforms in Figure 2 also confirm that the fournoise voltage generator signals are uncorrelated.

4. MODELLING SHOT NOISE IN THE TIME DOMAIN

Figure 3 introduces a tabular time domain model for transient simulation of current shot noise[12]. In Figure 3(a) a schematic symbol for the shot noise subcircuit is drawn where the left-hand side of the circuit is used to sense the dc current generating the shot noise, and ξn(t)and iSHn are as defined in Table I. The body of the time domain shot noise model is givenin Figure 3(b). Resistor Rx and capacitor Cx act as a low pass filter that ensures the value

Copyright c© 2010 John Wiley & Sons, Ltd. Int. J. Numer. Model. 2010; 00:1–6Prepared using jnmauth.cls

Page 5: A tabular source approach to modelling and simulating ...

MODELLING AND SIMULATION OF NOISE IN THE TIME DOMAIN 5

Equation

Eqn6

Vn1rms=rms(Vn1.Vt)

Vn3rms=rms(Vn3.Vt)

Vn4rms=rms(Vn4.Vt)

Vn2rms=rms(Vn2.Vt)

transient

simulation

TR1

Type=lin

Start=0

Stop=Ftime

Points=16384

IntegrationMethod=Gear

Order=4

MaxIter=1500

abstol=10 pA

vntol=10 uV

R2

R=R1

V4

File=VN3_1s_1e6_1.dat

G=gain1

R3

R=R3

V6

File=VN3_1s_1e6_3.dat

G=gain3

Equation

Eqn5

gain1=SWTH*Scale_factor*sqrt(4*kB*TK*R1)

gain2=SWTH*Scale_factor*sqrt(4*kB*TK*R2)

gain3=SWTH*Scale_factor*sqrt(4*kB*TK*R3)

gain4=SWTH*Scale_factor*sqrt(4*kB*TK*R4)

TK=26.85+Temp

R1=1

R2=100

R3=10000

R4=1000000

SWTH=1

Temp=273.15

Scale_factor=1.2

Equation

Eqn1

Points=16384

Ftime=1

dc simulation

DC1

V5

File=VN3_1s_1e6_2.dat

G=gain2

R1

R=R2

V7

File=VN3_1s_1e6_4.dat

G=gain4

R4

R=R4

Vn1

Vn3

Vn2

Vn4

0 0.1 0.2

-5e-10

0

5e-10

Time (s)

Vn1 (V)

0 0.1 0.2

-5e-7

0

5e-7

Time (s)

Vn4 (V)

0 0.1 0.2

-5e-8

0

5e-8

Time (s)

VN3 (V)

0 0.1 0.2

-5e-9

0

5e-9

Time (s)

Vn2 (V)

Vn3: tran=1.26e-8 (V rms); ac=1.287e-8 (V/sqrt(Hz)))

Vn1: tran=1.26e-10 (V rms); ac=1.287e-10 (V/sqrt(Hz)))

Vn3: tran=1.26e-8 (V rms); ac=1.287e-8 (V/sqrt(Hz))

Vn2: tran=1.274e-9 (V rms); ac=1.287e-9 (V/sqrt(Hz))

Figure 2. Time domain resistor noise test circuit, Qucs equation scripts for transientdomain simulation and post processing noise waveforms: simulation period 1 second,and linear interpolation with Gaussian voltage noise variance; file VN3−1s−1e6−1.dat= 0.942 V 2, file VN3−1s−1e6−2.dat = 0.950 V 2, file VN3−1s−1e6−3.dat = 0.952 V 2,file VN3−1s−1e6−4.dat = 0.958 V 2, and average values (dc); file VN3−1s−1e6−1.dat =0.0124 V , file VN3−1s−1e6−2.dat = -0.00789 V , file VN3−1s−1e6−3.dat = 0.0111 V , file

VN3−1s−1e6−4.dat = 0.0047 V .

of the current used to calculate shot noise is purely dc and does not contain any time varyingcomponents. Shot noise is computed during simulation by Qucs non-linear equation-defineddevice EDD D1 [14]. The graph plotted in Figure 3(c) presents a set of shot noise resultsobtained from simulation of the shot noise subcircuit model over the dc current range 1µAto 1A. Table III lists a Verilog-A [15] analogue module for the current shot noise model. Thestructure of the model and the basis for the current contribution statements can be identifiedby comparing the Verilog-A code with the Qucs schematic drawn in Figure 3(b).

5. MODELLING 1/f NOISE IN THE TIME DOMAIN

The tabular time domain model for transient simulation of 1/f noise [12] is similar to the shotnoise model illustrated in Figure 3. The major change required is to replace EDD D1 equation

Copyright c© 2010 John Wiley & Sons, Ltd. Int. J. Numer. Model. 2010; 00:1–6Prepared using jnmauth.cls

Page 6: A tabular source approach to modelling and simulating ...

6 M. E. BRINSON, S. JAHN AND H. NABIJOU

IDC iSHnξn(t)

SHnoise1

Rsense=0.1

Rx=10k

Cx=1u

SWSH=1

Scale_factor=1

R3

R=Rsense

R4

R=Rx

C2

C=Cx

NoiseOut3

SRC2

G=K1

123

D2

I1=K2*sqrt(1e-30+V3*K3)*V2

I2=V2

I3=0

PIDCin2

PIDCout2

PSHnoise2

NoiseOut4

Equation

Eqn2

K1=1/Rsense

K2=SWSH*Scale_factor

K3=2*q/Rx

1e-6 1e-5 1e-4 1e-3 0.01 0.1 13e-13

1e-12

1e-11

1e-10

1e-9

Idc (A)

Shot noise (A rms)

(a)(b)

(c)

Figure 3. Time domain shot noise subcircuit model: (a) Qucs schematicsymbol; (b) model body; (c) shot noise plotted against dc current.

Table III. Verilog-A code for a current shot noise time domain model.

‘include "disciplines.vams"‘include "constants.vams"module TDShotNoise(PIDCin, PIDCout, PSHnoise, NoiseOut1, NoiseOut2);inout PIDCin, PIDCout, PSHnoise, NoiseOut1, NoiseOut2;electrical PIDCin, PIDCout, PSHnoise, NoiseOut1, NoiseOut2;electrical n1;‘define attr(txt) (*txt*)parameter real Rsense = 0.1 from [1e-3 : inf]

‘attr(info = "Current sense resistor" unit="Ohm");parameter real Rx = 10e3 from [1 : inf]

‘attr(info = "Low pass filter resistance resistance" unit = "Ohm");parameter real Cx = 1e-6 from [1e-12 : inf]

‘attr(info = "Low pass filter capacitance" unit = "F");parameter integer SWSH = 1 from [0 : 1]

‘attr(info = "Noise on-off switch: on=1; off=0");parameter real Scale_factor = 1.2 from [1 : inf]

‘attr(info = "function of the noise rms to peak conversion factor");real K1, K2, K3;analog begin@(initial_model)beginK1 = 1/Rsense; K2 = SWSH*Scale_factor; K3 = 2*‘P_Q/Rx;

end// Current contributionsI(PIDCin,PIDCout) <+ V(PIDCin,PIDCout)*K1;I(n1) <+ -V(PIDCin,PIDCout)*K1;I(n1) <+ V(n1)/Rx;I(n1) <+ ddt(Cx*V(n1));I(PSHnoise) <+ V(PSHnoise);I(NoiseOut1, NoiseOut2) <+ K2*sqrt(1e-30+V(n1)*K3)*V(PSHnoise);endendmodule

Copyright c© 2010 John Wiley & Sons, Ltd. Int. J. Numer. Model. 2010; 00:1–6Prepared using jnmauth.cls

Page 7: A tabular source approach to modelling and simulating ...

MODELLING AND SIMULATION OF NOISE IN THE TIME DOMAIN 7

IDCR2

R=1

V3

U=1 IDC iFnξf(t)Fnoise1

Rsense=1e-4

Rx=10k

Cx=1u

SWF=1

Scale_factor=12

Kf=1e-14

I2

File=IF3_1s_1e6_1.dat

Inoise R1

R=1

Equation

Eqn1

Len=Points

LenO2=Len/2

f=linspace(0, LenO2-1, LenO2)/Ftime

Inoise=abs(fft(Inoise.It))/LenO2

InMagNoise=PlotVs(Inoise,f)

Equation

Eqn2

Points=16384

Ftime=1

transient

simulation

TR1

Type=lin

Start=0

Stop=Ftime

Points=16384

dc simulation

DC1

0 0.2 0.4 0.6 0.8 1

-1e-6

0

1e-6

Time (s)

Inoise (A)

1 10 100 1e31e-10

1e-9

1e-8

1e-7

1e-10

1e-9

1e-8

1e-7

Frequency (Hz)

Inoise spectra (A/sqrt(Hz))

Inoise

ac (A

/sqrt(H

z))

Figure 4. Time domain 1/f noise test circuit and simulation waveforms: frequency domain plot; solidline left hand scale, dashed line right hand scale.

I1 by equation 1.I1 = K2 ∗ sqrt(1e − 30 + V 3 ∗ Kf) ∗ V 2 (1)

Where K2 = SWF ∗Scale−factor. Parameter SWSH also needs changing to SWF. Similarly,note variable K3 is no longer required. Corresponding changes are also needed to adapt theVerilog-A shot noise module code, including changing the Verilog-A module name to sayTDFlickerNoise. Figure 4 gives a basic simulation test circuit which allows the 1/f noise tobe recorded as a function of time. Central to the time domain 1/f model is a tabular currentgenerator, I2 in Figure 4, formed from one million noise samples with normalised 1/f pseudorandom distribution. The waveforms in Figure 4 show the generated 1/f noise for a period of onesecond. Qucs equation block Eqn1 lists a post simulation script that extracts the noise spectraof the 1/f time domain data. FFT techniques were used to assemble the frequency domainplot. Comparison between the time domain and the small signal ac noise data indicates goodagreement. However, one feature of the shot and 1/f noise data is worth commenting on, namelythat the Scale−factor for each type of noise is different, namely roughly 1 for shot noise and12 for 1/f noise. One possible explanation for this is crest factors for the two different noisesequences; with shot noise a crest factor of around 1 (Scale−factor ≈ 1.2) seems correct,while for 1/f noise a crest factor of around 3.2 (Scale−factor ≈ 3.22) appears to be moreappropriate [17].

6. MODELLING DIODE NOISE IN THE TIME DOMAIN

The SPICE semiconductor diode model includes small signal ac series resistive thermal noise,shunt shot noise and shunt 1/f noise. However, standard SPICE does not model burst (popcorn)[6] noise. The thermal noise, shot noise and 1/f noise contributions are given by equations 2

Copyright c© 2010 John Wiley & Sons, Ltd. Int. J. Numer. Model. 2010; 00:1–6Prepared using jnmauth.cls

Page 8: A tabular source approach to modelling and simulating ...

8 M. E. BRINSON, S. JAHN AND H. NABIJOU

LSN

DLSN1

ScaleSH=1.2

Rs=1e-6

Kf=1e-14

Temp=26.85

SWR=1

SWSH=1

SWF=1

ScaleF=12

ScaleR=1

Anode1

R1

R=Rs

I1

File=IT_1s_65536_2.dat

G=gain_Rs

Cathode1IDC iFnξf(t)

Fnoise1

Rsense=1e-3

Rx=10k

Cx=1u

SWF=SWF

Scale_factor=ScaleF

Kf=Kf

IDC iSHnξn(t)

SHnoise1

Rsense=1e-3

Rx=10k

Cx=1u

SWSH=SWSH

Scale_factor=ScaleSH

Equation

Eqn1

gain_Rs=SWR*ScaleR*sqrt(4*kB*TK/Rs)

TK=273.15+Temp

D1

Is=1e-16 A

N=1

Cj0=10 fF

Rs=0.0 Ohm

Kf=0

I2

File=IN3_1s_1e6_4.dat

G=1

I3

File=IF3_1s_1e6_2.dat

G=1

A

C

A

C

C A

(b)

(a)

Figure 5. A semiconductor diode model with time domain noise additions: (a)Qucs schematic symbol; (b) model body.

and 3 respectively.

i2RS(t) =

4 · k · TRS

· 4f · ξn(t) (2)

i2D(t) = 2 · q · ID · 4f · ξn(t) + Kf · ID

fAf· 4f · ξf (t) (3)

Where ID is the diode dc current in A and RS is the diode series resistance in Ω. Theother symbols have the same meaning as previously defined. Time domain equivalent noisecomponents can be added to the SPICE diode model by combining the published diode modelwith the tabular noise models introduced in previous sections. Figure 5 gives such a model.In Figure 5 a resistance RS is connected in series with the shot and 1/f noise generationcomponents and a standard SPICE diode (D1), ensuring that the dc current flows between theQucs diode subcircuit anode and cathode terminals. The diode internal value of RS is set tozero to ensure that only one copy of RS is included in the large signal diode noise model. Thesimulation test results illustrated in Figure 6 confirm good agreement between the small signalac and time domain noise models. Again a best fit value for the 1/f Scale−factor was foundto be approximately 3.22, suggesting that the rms to peak crest factor for 1/f noise signals isroughly 3.2. With SWF set to 0 the rms value of the diode shot noise can be extracted fromthe time domain diode noise waveform, yielding a figure of 5.592e-10 A rms which is very closeto the theoretical value of 5.762e-10 A/sqrt(Hz).

Copyright c© 2010 John Wiley & Sons, Ltd. Int. J. Numer. Model. 2010; 00:1–6Prepared using jnmauth.cls

Page 9: A tabular source approach to modelling and simulating ...

MODELLING AND SIMULATION OF NOISE IN THE TIME DOMAIN 9

IdV1

U=0.9545

dc simulation

DC1

transient

simulation

TR1

Type=lin

Start=0

Stop=Ftime

Points=16384

IntegrationMethod=Gear

Order=4

abstol=100 pA

vntol=100 uV

Equation

Eqn2

Points=16384

Ftime=1

Equation

Eqn1

Id_noise=Id.It-Id.I

Equation

Eqn4

Len=Points

LenO2=Len/2

f=linspace(0, LenO2-1, LenO2)/Ftime

Inoise=abs(fft(Id_noise))/LenO2

MagNoise=PlotVs(Inoise,f)

LSN

DLSN1

ScaleSH=1.2

Rs=1e-6

Kf=1e-14

Temp=26.85

SWR=1

SWSH=1

SWF=1

ScaleF=12

ScaleR=1

0 0.2 0.4 0.6 0.8 1

-1e-6

0

1e-6

Time (s)

Id noise (A)

1 10 100 1e31e-10

1e-9

1e-8

1e-7

1e-10

1e-9

1e-8

1e-7

Frequency (Hz)

Id noise spectrum (A/sqrt(Hz))

Id ac noise (A

/sqrt(H

z))

Figure 6. Time domain diode noise test circuit and simulation waveforms:frequency domain plot; solid line left hand scale, dashed line right hand scale.

7. MODELLING BJT NOISE IN THE TIME DOMAIN

A time domain noise model for an npn bipolar junction transistor (BJT) is illustrated inFigure 7. The noise contributions in this model are given by equations 4 and 5 respectively.

i2RB(t) =

4 · k · TRB

·4f · ξn(t), i2RC(t) =

4 · k · TRC

·4f · ξn(t) i2RE(t) =

4 · k · TRE

·4f · ξn(t) (4)

i2C(t) = 2 · q · IC · 4f · ξn(t), i

2B(t) = 2 · q · IB · 4f · ξn(t) + KF · IB

fAf· 4f · ξf (t) (5)

Where IC is the BJT dc collector current in A, IB is the BJT dc base current in A, Rc isthe BJT series collector resistance in Ω, RB is the BJT series base resistance in Ω, and REis the BJT series emitter resistance in Ω. Unlike the diode time domain noise model shownin Figure 5 the npn BJT model has been optimized for run time speed by minimizing thenumber of circuit nodes, subcircuit blocks and standard components. The structure of the npnBJT model is arranged to allow easy conversion to Verilog-A code using the example shownin Table III as a template. Figure 8 gives a basic BJT noise test circuit and a set of time andfrequency domain simulation waveforms. The latter being obtained using FFT techniques. Toensure that the noise current can flow in the BJT base lead a 50k Ω resistor has been added tothe test circuit, resulting in a base noise current that depends on the ratio of the 50kΩ resistorand the value of rπ in the BJT ac equivalent circuit at its dc operating point. The frequencydomain plots show Qucs small signal ac noise analysis results superimposed on the noise dataextracted from the npn BJT time domain noise model. The ac domain results were obtainedusing the same test circuit as the one shown in Figure 8. Comparison of the small signal ac andtime domain collector current noise data indicates good agreement between both sets of noisedata. This is very much expected as frequency dependent 1/f noise dominates the collectorcurrent noise. A similar comparison of base current noise appear to suggest differences, athigher frequencies, between the small signal ac and time domain results. However, both setsof data plotted in Figure 8 are correct: at low frequencies 1/f noise again dominates yielding

Copyright c© 2010 John Wiley & Sons, Ltd. Int. J. Numer. Model. 2010; 00:1–6Prepared using jnmauth.cls

Page 10: A tabular source approach to modelling and simulating ...

10 M. E. BRINSON, S. JAHN AND H. NABIJOU

T1

Type=npn

Is=1e-16

Nf=1

Vaf=0

Bf=100

SRC1

G=1R2

R=Rb

R1

R=Rc

R3

R=Re

B

C

Num=1

E

I3

File=IN3_1s_1e6_2.dat

G=gain_RbI4

File=IN3_1s_1e6_3.dat

G=gain_Re

I6

File=IN3_1s_1e6_1.dat

G=gain_Rc

I1

File=IN3_1s_1e6_4.dat

G=gain_shot

I2

File=IF_1s_65536_1.dat

G=gain_flicker

SRC2

G=1

I5

File=IN3_1s_1e6_5.dat

G=gain_shot

R4

R=20k

123D1

I1=V2*sqrt(V3+1e-30)

I2=V2

I3=0

C1

C=Cx

R5

R=RxC2

C=Cx

123

D2

I1=V2*sqrt(V3+1e-30)

I2=V2

I3=0

Equation

Eqn1

gain_shot=SWSH*ScaleSH*sqrt(K4)

gain_flicker=SWF*ScaleF*sqrt(K5)

gain_Rc=SWR*sqrt(4*kB*TK/Rc)

gain_Rb=SWR*sqrt(4*kB*TK/Rb)

gain_Re=SWR*sqrt(4*kB*TK/Re)

TK=273.15+Temp

K4=2*q/Rx

K5=Kf/Rx

Rx=20k

Cx=1u

LSN

TLSN1

ScaleSH=1.2

Rc=1e-3

Rb=1e-3

Re=1e-3

SWR=1

SWSH=1

SWF=1

ScaleF=12

Kf=1e-16

Temp=26.85

Bint

Cint

Eint

Cint

Eint

Bint

Eint

(a)(b)

Figure 7. An npn BJT model with time domain noise additions: (a) Qucs schematicsymbol; (b) model body.

Ib

R2

R=50k

I1

I=500u

Equation

Eqn1

Points=16384

Ftime=1

Equation

Eqn3

Len=Points

LenO2=Len/2

f=linspace(0, LenO2-1, LenO2)/Ftime

Iboise=abs(fft(Ib_noise))/LenO2

Icoise=abs(fft(Ic_noise))/LenO2

Ibmag=PlotVs(Iboise,f)

Icmag=PlotVs(Icoise,f)

Ic

V1

U=5 V

LSN

TLSN1

ScaleSH=1.2

Rc=1

Rb=10

Re=0.01

SWR=1

SWSH=1

SWF=1

ScaleF=12

Kf=1e-14

Temp=26.85

Equation

Eqn2

Ic_noise=Ic.It-Ic.I

Ib_noise=Ib.It-Ib.I

dc simulation

DC1

transient

simulation

TR1

Type=lin

Start=0

Stop=Ftime

Points=16384

IntegrationMethod=Gear

Order=4

abstol=100 pA

vntol=100 uV

0 0.2 0.4 0.6 0.8 1

-2e-6

0

2e-6

Time (s)

Ic noise (A)

0 0.2 0.4 0.6 0.8 1

-2e-11

0

2e-11

Time (s)

Ib noise (A)

1 10 100 1e31e-14

1e-13

1e-12

1e-11

1e-14

1e-13

1e-12

1e-11

Frequency (Hz)

Ib noise spectrum (A/sqrt(Hz))

Ib ac noise (A

/sqrt(H

z))

1 10 100 1e31e-9

1e-8

1e-7

1e-9

1e-8

1e-7

Frequency (Hz)

Ic noise spectrum (A/sqrt(Hz))

Ic ac noise (A

/sqrt(H

z))

Figure 8. Time domain npn BJT noise test circuit and simulation waveforms:frequency domain plots; solid line left hand scales, dashed line right hand scales.

very similar noise values for both the ac and time domain data; at higher frequencies the 1/fnoise declines until it eventually equals the base current shot noise in value. The small signalac noise result show this occurs at around 50Hz. As shot noise is Gaussian distributed whitenoise its signal power is equally spread across all the FFT frequency bins (16384 in the testexample) and hence it does not appear in the signal range plotted in Figure 8.

Copyright c© 2010 John Wiley & Sons, Ltd. Int. J. Numer. Model. 2010; 00:1–6Prepared using jnmauth.cls

Page 11: A tabular source approach to modelling and simulating ...

MODELLING AND SIMULATION OF NOISE IN THE TIME DOMAIN 11

RD1R=Rd

RS1R=Rs

I1File=IN3_1s_1e6_7.datG=gain_Rd

I2File=IN3_1s_1e6_8.datG=gain_Rs

T1Type=nfetVt0=Vt0Beta=BetaLambda=Lambda

SRC1G=1

123

D2I1=(V3<0) ? ( 0 < (V3-Vt0) ) ? 2*Beta*(1+Lambda*V2)*(V3-Vt0) : 0 : 0I2=0I3=0

I3File=IF3_1s_1e6_2.datG=gain_flicker

12345

D3I1=(V3+1e-30)*sqrt(V4+1e-30) + (V2+1e-30)*sqrt(V5/Rx+1e-30) I2=V2I3=V3I4=V4I5=0

I4File=IN3_1s_1e6_6.datG=gain_gm

Equation

Eqn1gain_flicker=SWF*ScaleF*sqrt(Kf)gain_gm=SWGM*ScaleGM*sqrt(8*kB*TK/3)gain_Rd=SWR*sqrt(4*kB*TK/Rd)gain_Rs=SWR*sqrt(4*kB*TK/Rs)TK=273.15+Temp

Equation

Eqn2Rx=20kCx=2u

C1C=Cx

R1R=Rx

D

S

G

LSN

TLSN1SWF=1SWGM=1SWR=1Rd=2Rs=2ScaleF=12ScaleGM=1Temp=26.85Vt0=-2Beta=1e-4Lambda=0Kf=1e-14

source

sint

gate

drain

dint

dintgate

sint

dint

sint

nId

nId(a)

(b)

Figure 9. An n type JFET model with time domain noise additions: (a) Qucsschematic symbol; (b) model body.

8. MODELLING FET, MOSFET AND MESFET NOISE IN THE TIME DOMAIN

FET, MOSFET and MESFET noise contributions are specified by equations 6 and 7.

i2RD(t) =

4 · k · TRD

· 4f · ξn(t), i2RS(t) =

4 · k · TRS

· 4f · ξn(t) (6)

i2D(t) =

8 · k · T · gm

3· 4f · ξn(t) + Kf · ID

fAf· 4f · ξf (t) (7)

Where ID is the drain to source dc current in A, gm is the transconductance of the deviceat the dc operating point, RD is the series drain resistance in Ω, and RS is the series sourceresistance in Ω. Figure 9 presents a time domain noise model for n type FET devices. Qucsequation-defined device D2 models gm, making the model slightly more complex than thediode and BJT time domain models. In Figure 9 the dc gate current is assumed to be zeroor so small that it does not generate any significant noise components. Similarly, gate seriesresistance is not included in the model as it has negligible effect on the time domain noiseproperties of the device. A similar strategy is adopted with the standard SPICE FET model.A test circuit for determining FET noise is shown in Figure 10. In this example circuit a lowpass RC filter is used to apply dc voltage to the gate of the FET under test. Without thisfilter the gate potential would be clamped at a constant dc voltage, causing malfunction of thetest circuit. The waveforms illustrated in Figure 10 confirm that at low frequencies 1/f noisedominates the FET noise performance. Level one MOSFET and MESFET [7] time domainextended noise models are very similar to the FET model given in Figure 9. For completenessthe body of a MOSFET and a MESFET time domain noise model are shown in Figure 11.

Copyright c© 2010 John Wiley & Sons, Ltd. Int. J. Numer. Model. 2010; 00:1–6Prepared using jnmauth.cls

Page 12: A tabular source approach to modelling and simulating ...

12 M. E. BRINSON, S. JAHN AND H. NABIJOU

R7R=10k

R8R=10k

R9R=10k

C4C=200uF

C5C=200uF

C6C=200uF

R10R=10k

V7U=-0.2

V2U=5

Ids

LS

N

TLSN1SWF=1SWGM=1SWR=1Rd=2Rs=2ScaleF=12ScaleGM=1Temp=26.85Vt0=-2Beta=1e-3Lambda=0Kf=1e-14

Equation

Eqn1Ids_noise=Ids.It-Ids.I

transient

simulation

TR1Type=linStart=0Stop=FtimePoints=16384abstol=100 pAvntol=100 uV

Equation

Eqn5Len=PointsLenO2=Len/2f=linspace(0, LenO2-1, LenO2)/FtimeIdsnoise=abs(fft(Ids_noise))/LenO2Idsmag=PlotVs(Idsnoise,f)

Equation

Eqn3Points=16384Ftime=1

dc simulation

DC1

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1

-5e-8

0

5e-8

Time (s)

Ids_

no

ise

(A

)

1 10 100 1e3 8e31e-11

1e-10

1e-9

1e-8

1e-11

1e-10

1e-9

1e-8

Frequency (Hz)

Ids

no

ise

sp

ect

rum

(A

/sq

rt(H

z)) Id

s ac sp

ectru

m (A

/sqrt(H

z))

Figure 10. Time domain n type FET noise test circuit and simulation waveforms:frequency domain plots; solid line left hand scales, dashed line right hand scales.

9. CONCLUSIONS

Transient simulation of time domain noise is rarely undertaken by the current generation ofcircuit simulators. This paper introduces a tabular noise source approach to time domainnoise modelling and analysis which is suitable for simulating noise generated by resistivecomponents, semiconductor devices and integrated circuits. In the text the proposed modellingtechnique is introduced by a series of example model designs which add time domain noise tothe standard SPICE diode, BJT, JFET, MOSFET and MESFET models. Experience with thenew noise modelling technique has shown that it is suitable for use with any general purposecircuit simulator provided it can handle subcircuits, equation-defined devices (or Verilog-Acode models) and a text files, or a net-list statement, for listing tabulated voltage and currentsource noise data. By combining the Qucs GPL simulator with the Octave GPL numericalmathematics package it becomes possible to easily generate pseudo random time domain noisedata, allowing very realistic noise current or voltage waveforms to be added to transient circuitsimulation, Good agreement was found between the noise results obtained by small signal acand transient noise simulation.

REFERENCES

1. Newton AR, Pederson DO, Sangiovanni-Vincentelli A. SPICE Version 2g User’s Guide. Department ofElectrical Engineering and Computer Sciences, University of California, Berkeley, CA, 1981.

2. Johnson B, Quarles T, Newton AR, Pederson DO, Sangiovanni-Vincentelli A. SPICE3 Version 3f User’sManual. Department of Electrical Engineering and Computer Sciences, University of California, Berkeley,CA, 1992.

3. Wedge SW, Rutledge DB. Wave Techniques for Noise Modeling and Measurement. IEEE Transactions onMicrowave Theory and Techniques, 1992; 40(11):2004-2012.

Copyright c© 2010 John Wiley & Sons, Ltd. Int. J. Numer. Model. 2010; 00:1–6Prepared using jnmauth.cls

Page 13: A tabular source approach to modelling and simulating ...

MODELLING AND SIMULATION OF NOISE IN THE TIME DOMAIN 13

123

D1

I1= 2*Beta*(1+Lambda*V2)*(V3-Vto)*tanh(Alpha*V2)

I2=0

I3=0

I1

File=IF3_1s_1e6_2.dat

G=gain_flicker

I2

File=IN3_1s_1e6_6.dat

G=gain_gm

Equation

Eqn1

gain_flicker=SWF*ScaleF*sqrt(Kf)

gain_gm=SWGM*ScaleGM*sqrt(8*kB*TK/3)

gain_Rd=SWR*sqrt(4*kB*TK/Rd)

gain_Rs=SWR*sqrt(4*kB*TK/Rs)

TK=273.15+Temp

RD1

R=Rd

RS1

R=Rs

G1

S1

D3

I3

File=IN3_1s_1e6_7.dat

G=gain_Rd

I4

File=IN3_1s_1e6_8.dat

G=gain_Rs

T1

Vto=Vto

Beta=Beta

Alpha=Alpha

Lambda=Lambda

QLEVELS=1

QLEVELD=1

QLEVELDS=1

Kf=Kf

RD2

R=Rd

RS2

R=Rs

G2

S2

D4

I5

File=IN3_1s_1e6_7.dat

G=gain_Rd

I6

File=IN3_1s_1e6_8.dat

G=gain_Rs

T2

Vt0=Vt0

Kp=Kp

Lambda=Lambda

W=W

L=L

Kf=Kf

SRC2

G=1

C1

C=Cx

R1

R=Rx

12345

D5

I1=(V3+1e-30)*sqrt(V4+1e-30) + (V2+1e-30)*sqrt(V5/Rx+1e-30)

I2=V2

I3=V3

I4=V4

I5=0

I7

File=IF3_1s_1e6_2.dat

G=gain_flicker

I8

File=IN3_1s_1e6_6.dat

G=gain_gmEquation

Eqn2

Beta=Kp*W/L

Rx=20k

Cx=2u

Equation

Eqn3

gain_flicker=SWF*ScaleF*sqrt(Kf)

gain_gm=SWGM*ScaleGM*sqrt(8*kB*TK/3)

gain_Rd=SWR*sqrt(4*kB*TK/Rd)

gain_Rs=SWR*sqrt(4*kB*TK/Rs)

TK=273.15+Temp

1234

D6

I1=(0<(V4-Vt0)) ? ( (V4-Vt0)<V3) ?2* Beta*(1+Lambda*V3)*(V4-Vt0) : 0 : 0

I2=(V3<(V4-Vt0)) ? 2*Beta*(1+Lambda*V3)*V3 : 0

I3=0

I4=0

SRC3

G=1

C2

C=Cx

R2

R=Rx

Equation

Eqn4

Rx=20k

Cx=2u

12345

D2

I1=(V3+1e-30)*sqrt(V4+1e-30) + (V2+1e-30)*sqrt(V5/Rx+1e-30)

I2=V2

I3=V3

I4=V4

I5=0

nId

nId

dint

sint

gate

sint

source

sint

gate

drain

dint

source

sint

gate

drain

dint

dint

sint

nId

dint

sint

gate

sint

dint

sint

nId

(a)

(b)

Figure 11. MOSFET and MESFET time domain noise models: (a) SPICE level 1nMOSFET; (b) Curtice level 1 nMESFET.

4. Winkler R. Stochastic differential algebraic equations in transient noise analysis. Mathematics in Industry.(part 2), Springer, Berlin, 2008; 151-156.

5. Denk G, Winkler R. Modelling and simulation of transient noise in circuit simulation. Mathematical andcomputer modelling of dynamical systems, 2007; 13(4):383-394.

6. Fasce C, Massobrio G, Meda E, Profumo E. Semiconductor device modeling with SPICE. Antognetti P,Massobrio G.(eds). McGraw-Hill Book Company: New York, 1988; 289–309.

7. Brinson ME, Jahn S, Parruitte H. Verilog-A compact device models for GaAs MESFETs.Qucs: Report Book - Technical reports and descriptions, 2006. 1(5):88-127. Available from:http://sourceforge.net/docs/html [30 March 2010].

8. Margraf M, Jahn S, Flucke J, Jacob R, Habchi V, Ishikawa T, Gopala Krishna A, Brinson ME, ParruitteH, Roucaries B, Kraut G. Qucs (Quite universal circuit simulator). Version 0.0.15. 2010. Available from:http://sourceforge.net/index.html. [30 March 2010].

9. GNU Octave. 1992. Available from: http://www.gnu.orge/software/octave/ [30 March 2010].10. Kraut G. Qucs File type voltage and current sources. 2007. Available from:

http://sourceforge.net/docs/html [30 March 2010].11. Jahn S, Margraf M, Habchi V, Jacob R. Appendix A: Qucs file formats. Qucs: Technical papers, 2003;

226-229. Available from: http://sourceforge.net/docs/html [30 March 2010].12. Bell DA. Electrical Noise - Fundamentals and physical Mechanisms. D. Van Nostrand Company Ltd:

London, 1960.13. Blake K. OP AMP precision design: random noise. Microchip Technology Inc: Application note AN1228,

2008 Available from: http://ww1.microchip.com/downloads/en/AppNotes/01228a.pdf [30 March 2010].14. Jahn S, Brinson ME. Interactive compact device modelling using Qucs equation-defined devices.

International Journal of Numerical Modelling: Electronic Networks, Devices and Fields, 2008 21(3):335-349.

15. Accellera. Verilog-AMS Language Reference Manual, Version 2.2, 2004. Available from:

Copyright c© 2010 John Wiley & Sons, Ltd. Int. J. Numer. Model. 2010; 00:1–6Prepared using jnmauth.cls

Page 14: A tabular source approach to modelling and simulating ...

14 M. E. BRINSON, S. JAHN AND H. NABIJOU

http://www.accellera.org. [30 March 2010].16. Little M, Powernoise.m MATLAB/Octave code for generating power law noise 1/fα. samp, University

of Oxford, U.K. 20008. Available from http://www.eng.ox.ac.uk/samp/powernoise-soft.html. [31 March2010]

17. Anderson B. Crest factor analysis for complex signal processing. RF integrated subsystems.www.rfdesign.com. Available from: http://www.mobiledevdesign.com/hardware/news/radio−crest−factor−analysis/.[11 April 2010]

AUTHORS’ BIOGRAPHIES

M.E. Brinson received a first class honours BSc degree in the Physicsand Technology of Electronics from the United Kingdom Council forAcademic Awards in 1965, and a PhD in Solid State Physics fromthe University of London in 1968. Since 1968 Dr Brinson has heldacademic posts in Electronics and Computer Science. From 1997 to 2000he was a visiting Professor of Analogue Microelectronics at Hochschule,Bremen, Germany. Currently, he is a visiting Professor at the Centerfor Communication Technology, London Metropolitan University, UK.He is a Chartered Engineer (CEng) and a Fellow of the Institution ofEngineering and Technology (FIET), a Chartered Physicist (CPhys) anda Member of the Institute of Physics (MinstP). Dr Brinson joined theQucs project development team in 2006, specializing in device and circuitmodelling, testing and document preparation.

S. Jahn received a diploma in Electrical Engineering from the TechnicalUniversity of Berlin in 2005. His specialist interests include high-frequency engineering and opto electronics. He completed his diplomathesis on EMC of integrated circuits while at Infineon Technologies AG.Stefan joined the Qucs project in 2003, specializing in circuit simulatordevelopment.

H. Nabijou received his BSc in Electronic Communications, his MSc inDigital Systems and Instrumentation and his PhD in Statistical SignalProcessing from UK universities. His research interests include modellingof non-linear stochastic systems. He is currently an academic memberof staff in the Faculty of Computing, and a member of the Center forCommunication Technology, London Metropolitan University, UK. Heis a member of the IEEE and a fellow of the Royal Statistical Society.Dr Nabijou has recently joined the Qucs Development Project, as anassociate, working on the modelling of signal processing components andalgorithms.

Copyright c© 2010 John Wiley & Sons, Ltd. Int. J. Numer. Model. 2010; 00:1–6Prepared using jnmauth.cls