SPICE, Flicker Noise, and Leakage CurrentThere is one point which should be mentioned in connection with my SPICE models of the seven germanium bipolar transistors: the flicker noise parameters KF and AF. These two parameters control the flicker noise characteristics of the respective transistor, commonly denoted as 1/f noise.
This noise phenomenon is observed in semiconductor devices under biasing and becomes evident towards lower frequencies. It is characterized by a power spectral density which is typically inversely proportional to frequency. The frequency where this noise component is equal in magnitude to the inherent white noise in a semiconductor is known as the 1/f corner frequency.
For the AC127, one of the rare NPN transistors of that era, I had obtained the following parameters from my optimizations, yet still without 1/f noise:
.model AC127_V1 npn (
+ is=10.4u
+ bf=165 nf=0.875 vaf=50 ikf=0.383 ise=0.252u ne=1.22
+ br=16.5 nr=0.875 var=50 ikr=0.383 isc=5.58u nc=1.79
+ rc=0.94 re=0.271 rb=70.4 rbm=14.4 irb=1.33m
+ cje=220p vje=0.3 mje=0.5
+ cjc=294p vjc=0.3 mjc=0.5
+ tf=65.5n tr=655n
+ eg=0.67 xti=13.9 xtb=1.5 fc=0.5
+ tnom=25 )
As regards noise, little can be found in such old datasheets. Nevertheless, I wanted to include at least some reasonable estimates for the 1/f noise characteristics of these BJTs. This, however, turned out to become the very root of a fundamental SPICE issue…
For the AC127, one just finds the following information in the Valvo datasheet:
Rauschzahl bei Ucb = 5V, −Ie = 0.5mA, Rg = 500 Ohm, f = 1kHz, B = 200Hz: F = 4dB (≤ 10dB)‘Rauschzahl’ is the German term for noise figure. After all I could find out with reasonable effort, the 1/f corner frequency of such germanium BJTs at emitter currents in the order of 1 mA ought to lie in the lower kHz range, in which case the above operating point would lie in a frequency range where 1/f noise already plays a more or less dominant role.
For my noise simulation, I firstly trimmed the operating point of the AC127 under test in common-base configuration towards the above conditions. With a noise-free load resistance of 500 ohm (at −273.15°C) and a supply voltage of +5.25 V, the resulting collector and emitter voltages were +4.99998 V and −84.832964 mV, respectively; the base was (indirectly) connected to ground. The trimmed DC component of VG1 was −334.832964 mV. The corresponding SPICE netlist without this final trimming was as follows:
**
** Basic test circuit for the AC127_V2 model...
**
** RL1 ____
** +----|____|----o +5.25V
** |
** ____ RG1 |
** +----|____|----+ +--------------o out
** | \ /
** _|_ e \ / c
** / ~ \ ----- o gnd
** \___/ VG1 | Q1 (npn) |
** | | |
** | | |
** === === ===
**
VX1 x1 0 DC 5.25V
VB1 b1 0 DC 0V
VG1 g1 0 DC 0V AC 1V
Q1 c1 b1 e1 AC127_V2
RG1 g1 e1 500 RMOD temp=25
RL1 x1 c1 500 RMOD temp=-273.15
.model RMOD r ( )
.model AC127_V2 npn (
+ is=10.4u
+ bf=165 nf=0.875 vaf=50 ikf=0.383 ise=0.252u ne=1.22
+ br=16.5 nr=0.875 var=50 ikr=0.383 isc=5.58u nc=1.79
+ rc=0.94 re=0.271 rb=70.4 rbm=14.4 irb=1.33m
+ cje=220p vje=0.3 mje=0.5
+ cjc=294p vjc=0.3 mjc=0.5
+ tf=65.5n tr=655n
+ eg=0.67 xti=13.9 xtb=1.5 fc=0.5
+ kf=854f af=1
+ tnom=25 )
The resistor model ‘RMOD’ is needed to specify operating temperatures for the two resistors, at least in MacSpice. I then obtained the following values for the (external) terminal currents of the above AC127:
Ic = 500.039 μA
Ib = −39.0182 nA
Ie = −500.000 μA
The reference direction of all three currents is into the terminals, that is, the base and emitter currents here flow out of the transistor. Besides the fact that the base current flows in the wrong direction (the AC127 is an NPN transistor), the absolute value of this current is significantly smaller than expected. Even for a modern silicon transistor, one would expect a base current in the order of 1 μA. But let me nonetheless continue.
For a noise figure of 4 dB at 1 kHz, and assuming AF=1 (i.e., genuine 1/f noise), a value of KF=854f was needed—provided that I haven't made a severe mistake in my noise simulation. The corresponding plot is attached (first plot below). From this plot, the 1/f corner frequency can be estimated to be a bit higher than 1 kHz, which is at least not unrealistic.
Yet another suspicious observation was that, following the same basic procedure as for the AC127, the finally obtained KF values for all my other germanium BJTs were significantly smaller, merely in the 15f to 40f range instead of the above 854f. To clarify this mismatch, I made a few more experiments with this otherwise seamlessly working AC127 model. And indeed, for a slightly higher emitter current of 503.571873 μA, MacSpice computed virtually no 1/f noise at all (second plot below).
After some further research, I was able to identify the reason behind this abnormal behavior: the base current of the AC127 at this particular operating point was virtually zero (Ib < 1 fA). It is well known that the leakage currents of germanium transistors are generally several orders of magnitude higher than for silicon transistors. And exactly this collector-base leakage current had completely overtaken the purpose of determining the operating point here. Thus, no additional external base current was required any more—and consequently, the respective SPICE equations didn't compute any 1/f noise!
From a physical point of view, however, such a behavior is not quite plausible. I am well aware that the noise figure of a BJT reaches a minimum for a certain emitter current under given circumstances (operating conditions, generator resistance, etc.), but it cannot really be that the 1/f noise vanishes completely at this operating point; otherwise, it would be relatively easy to construct amplifiers that are virtually free of 1/f noise.
To clarify this, I had to dive deeper into the respective SPICE equations. In the last attachment, you find excerpts from
The SPICE Book (by Andrei Vladimirescu, John Wiley & Sons, 1994, pp. 381–384) where the underlying equations are explicitly given. Section A.2.1 contains the set of equations used internally by SPICE to calculate the collector and the base current of a BJT, whereas Section A.2.4 contains the set of equations for noise calculations.
Using the above AC127 model parameters and high-accuracy values of ‘Vbe’ and ‘Vbc’ from a separate operating-point analysis, I was able to reproduce the above ‘Ic’, ‘Ib’, and ‘Ie’ values with an absolute accuracy of better than 1 nA by explicitly applying the corresponding equations (A.8), (A.9), and (A.10) from
The SPICE Book. Thus, these equations seem to be correct and also correctly implemented in MacSpice. The minor differences are most likely due to internally used older values for the physical constants and are therefore negligible.
According to equation (A.22), the 1/f noise calculation is exclusively based on the
external base current
IB. The collector current
IC does not contribute to the 1/f noise as equation (A.23) does not contain a corresponding term.
It should be noted that the notation used in equations (A.22) and (A.23) is a bit imprecise with respect to the currents
IB and
IC. Since the actual direction of these currents (i.e., their sign) does not matter in connection with noise calculations, only the absolute values are relevant. Hence, a more precise notation here would be |
IB| and |
IC|, respectively.
IB, in turn, is calculated according to equation (A.9) and consists of four distinct components:
IB,1 = (
IS/
BF) ⋅ (e
qVBE/NFkT − 1)
IB,2 = (
IS/
BR) ⋅ (e
qVBC/NRkT − 1)
IB,3 =
ISE ⋅ (e
qVBE/NEkT − 1)
IB,4 =
ISC ⋅ (e
qVBC/NCkT − 1)
IB,1 and
IB,3 are currents flowing from the base to the emitter, whereas
IB,2 and
IB,4 are currents flowing from the base to the collector. The resulting
external base current, which is later used in the 1/f noise calculation, is the sum of these four components:
IB =
IB,1 +
IB,2 +
IB,3 +
IB,4This may sound plausible, at least at first glance. When the operating point of the transistor is fully determined by its
internal leakage currents, however,
IB becomes zero, and this inevitably reduces the calculated 1/f noise to zero, too.
Therefore, let us look a bit closer at the above four current components. In the first instance, these are purely mathematical quantities appearing in equation (A.9), which need not necessarily have direct physical counterparts. In particular,
IB,1 and
IB,3 traverse the same junction, namely the base-emitter junction, whereas
IB,2 and
IB,4 traverse the base-collector junction. The internal charge transport across a junction in one or the other direction, however, cannot be distinguished in this way; only the resulting current is of interest here. Therefore, the above components can be pairwise combined as follows:
IB,13 =
IB,1 +
IB,3 IB,24 =
IB,2 +
IB,4Furthermore, as
IB,13 and
IB,24 can be considered as independent, the resulting ‘effective base current’ for 1/f noise calculations—and perhaps for noise calculations in general—ought to be as follows:
IB,eff = √(
IB,13² +
IB,24²)
I'm not really specialized in noise calculations, but this straightforward refinement would seem to be a simple, yet reasonable fix for the described 1/f noise issue. The attached plot illustrates this, here for a fixed Uce = 5 V (third plot below). In order to use a logarithmical y-scale, I had to plot the ‘IB’ curve in two parts: blue for negative values, green for positive values. The zero-crossing near 85 mV is clearly visible. The red ‘IB_eff’ curve illustrates my proposed fix for the described issue, revealing no abnormal behavior whatsoever.
As can be clearly seen from this plot, SPICE primarily fails in the vicinity of the zero-crossing of the
external base current, in which case the computed 1/f noise comes out much too low; in some distance from this critical operating point, SPICE nicely converges to my proposed solution. I therefore decided to derive the 1/f noise parameters for my seven germanium transistors on the basis of these ‘corrected’ SPICE equations instead of the current, highly questionable equations. Without this, most of my SPICE models would have totally wrong KF values, up to two orders of magnitude too high.
Some SPICE users may be tempted to say: “Who cares about such old germanium transistors?” However, the same issue can also be observed in connection with silicon transistors, yet at significantly lower currents and/or higher junction temperatures.
So, in conclusion, one can say:
– SPICE fails to correctly compute 1/f noise of leaky BJTs for certain base currents;
– BJT models with specified 1/f noise parameters should therefore be treated with caution;
– this issue currently seems to exist in virtually all SPICE-based implementations;
– the proposed equations would supposedly fix this issue, if implemented…
Unfortunately, the original SPICE code has not been maintained, at least not at Berkeley, since the last official release of 1993 (SPICE 3f5), and an official contact person for such bug reports does not seem to exist nowadays at Berkeley.
Any comments or suggestions are welcome!



