BJT LTSpice Gummel-poon Model

Thread Starter

alexandre1908

Joined Feb 17, 2025
2
I've been trying to write a Python code that recreates the simulation of a simple NPN BJT in LTSpice, but i have been having difficulties on finding the exact equations they use in the software, i have stumble upon some equations that is used in the gummel poon model, but the results in the simulator never matches exacly on the code i create based in these equations. Does anyone know where i can find these equations ?
 

LvW

Joined Jun 13, 2013
1,994
I've been trying to write a Python code that recreates the simulation of a simple NPN BJT in LTSpice, but i have been having difficulties on finding the exact equations they use in the software, i have stumble upon some equations that is used in the gummel poon model, but the results in the simulator never matches exacly on the code i create based in these equations. Does anyone know where i can find these equations ?
Perhaps the following can help? (Sorry for the long reply).
Recently, I have created a new model for a classical gain stage with a bipolar transistor (BJT, npn only). This model can be used to simulate all the important BJT properties (V-I characteristics) as well as the voltage gain of the complete circuit (with/without DC or signal feedback and with/without a capacitively connected external load resistor)

It is primarily intended for educational purposes since not all second-order effects are included. All the relevant parameters can be varied - that means: One can play with these parameters and watch how the properties of the BJT (or the circuit) change.
Unlike previous classical models based on parts and ideal signal sources, this model contains only function blocks and should, therefore, only be used in simulation programs which also contain such built-in modules (addition, multiplication, amplification, complex transfer function, etc.) - such as PSpice, LTspice, VISSIM, PSIM etc...
This novel model shows the signal transfer and the amplification process of an npn-transistor in a logical sequence from input to output.
The shown block diagram was created with „SCHEMATICS“, Orcad/PSpice)

A) Explanation: Basic functions (DC operating point and amplification)
1.) The sum of DC bias (V_BIAS) and signal voltage (Vsignal) - reduced by the voltage drop (see point 6) caused by the base current IB and a series resistor (RS) and/or the internal base path resistance (RB_i) - give the inherent base voltage (VB_i) .
2.) A summing junction produces the inherent base-emitter voltage (VBE_i) which drives a VCVS (E-BE) with an output signal which represents the emitter current IE according to Shockleys equation IE=f(VBE_i). The influence of the Early-voltage VEA is included.
3.) This output signal (current IE) causes an emitter voltage VE (multiplikation with a complex impedance (block E-ZE), if applicable) and is fed back to the summing junction (see point 2). The block E-ZE contains the transfer function for a complex impeance in the emitter path: RE||CE= RE/(1+s * RE * CE).
4.) The signal representing the emitter current IE - multiplied with the factor B/(1+B) - gives the collector-emitter current ICE=IC (for IBC=0, see point B1). After multiplication with a complex inpedance E-ZC the output signal is identical to the voltage drop IC*ZC.
The impedance function ZC represents the combination of the collector resistor RC in parallel with a coupling capacitor CL and a load resistor RL: ZC=(RC+s*RC*RL*CL)/(1+s*CL*(RC+RL))
5.) The difference (VCC-IC*ZC) gives the ouput voltage at the collector node VC.
6.) The difference of the signals representing IE and ICE is used to derive the base-emitter current IBE. After multiplikation with a series base resistor RS (if applicable) and the internal base path resistance (RB_i) the corresponding voltage drop is subtracted from the external applied base voltages (V_BIAS and Vsignal), see point 1.

B) Explanation: Added functions (switching applications, saturation)
1.) During saturation, the base-collector junction is forward biased. Therefore, the positive difference between the base voltage (VB_i) and the collector voltage VC (signal VBC) drives another VCVS (E-BC) representing another Shockley-equation (base-collector junction). The output signal of this block represents the current (IBC) from base to collector.
Note that this path is not active for linear operation (amplification mode, VC>VB_i).
2.) This current IBC is used (a) to be substracted from the „normal“ current ICE and (b) to be added to the „normal“ base current IBE. This an important feature to correctly simulate saturation conditions for switching applications as well as realistic output characteristics IC=f(VCC) in the saturation region for constant values V_BIAS.

C) Parameter selection
The most important parameters for application purposes are given (and can be selected) in the „PARAMETERS“ sections. Other parameters can be changed directly in the respective blocks, as for example „Vsignal“ and the saturation current Is=1E-15 (pn-junction properties, Shockleys equation).

D) Simulation features
1.)
To be noted: All signals (voltages and currents) are represented as voltages (Example: 1mV is equivalent to 1mA).
2.) Possible simulations: DC, OP, AC, Transient (time domain)
3.) The presented block diagram for a BJT-model (npn) can be used to simulate and to display:
3.1) All relevant npn-BJT characteristics:
a) Output characteristics (including saturation and Early effect): IC=f(VCE) for V_BIAS=const.,
b) Control characteristics: IC=f(VBE),
c) Input characteristics Ib=f(V_BIAS)
d) Dynamic parameters: Input resistance hie=vbe/ib , transconductance gm=ic/vbe=IC/Vth
3.2) Voltage gain for all three amplifier configurations: CE, CC or CB - with or without DC resp. signal feedback (frequency-dependent). Without modification, the shown form of the model is suited for CE and CC configuration.
3.3) Output voltage response VC=f(Vsw) for switching applications (saturation) with a pulse like input voltage Vsw. In this case, the bias voltage VBIAS is to be replaced with a pulsed voltage source Vsw.

E) Important note: This block-oriented BJT-model is not as universally applicable as the popular Gummel-Poon model (Spice). As mentioned already, it is primarily intended for educational purposes, since it visualizes the contribution of the internal BJT parameters to the external transistor behaviour.
It can be interesting to play with some internal BJT parameters (Is, RB_i, VEA, B) and evaluate the influence on amplifcation properties or on characteristic BJT functions.
Due to the nature of such block diagrams, no external parts (resistors, capacitors) must be added/connected.
All signals are given as equivalent voltages (1mV equivalent to 1mA).
The presented block diagram (from Microsim/Schematics) contains the simulation profile for a certain Example, see the specified parameters and parts values as given in the PARAMETERS boxes.
The shown (displayed) voltages are the DC values describing the quiescent operational point for tis example.

Schematics.jpg
 
Last edited:

WBahn

Joined Mar 31, 2012
32,702
Here are some resources that might help you along:

Bctm98VbicText

Don't forget to use the references in this document to help further your exploration.

chapter_17.pdf

In general, transistor modeling (device modeling as a whole) is somewhat of a kludgy black art. I had the bright idea of trying to tweak the IBM 130 nm FET models to address some behavior that was relevant to us at temperatures away from where the devices were characterized. That temptation ended as soon as I saw the each transistor in their model file was a subcircuit with over three hundred devices in it. It's not about trying to get better physics-based models, but rather getting better curve fitting to empirical data -- and doing it in a way that is still computationally tolerable.
 
Last edited:

MrAl

Joined Jun 17, 2014
13,667
I've been trying to write a Python code that recreates the simulation of a simple NPN BJT in LTSpice, but i have been having difficulties on finding the exact equations they use in the software, i have stumble upon some equations that is used in the gummel poon model, but the results in the simulator never matches exacly on the code i create based in these equations. Does anyone know where i can find these equations ?
Hi,

I would suggest that you start with the simpler model and go from there. That would be with two diodes and a current controlled current source CCCS.
 

Attachments

Top