Custom Implementation of Noise Models Using the SmartSpice Interpreter


Noise analysis is a desirable feature in the design and development of simulated GaAs based models, HBT models and high frequency analyses. Further to this is the desire to provide an end user with the ability to define his own noise analyses for custom developed models. SmartSpice 1.5.4 provides an interface which allows an end user to provide his own noise analyses functions for user defined models. This article briefly overviews the SmartSpice 1.5.4 noise analysis interface and how it is employed by an end user in the development of noise analysis for a user defined model using the SmartSpice C-Interpreter.


Interpreted Analyses

SmartSpice currently provides a user with the facility to provide user defined analyses functions for DC, AC, Temperature and Pole Zero analyses for user defined models via a common interactive C interpreter. SmartSpice 1.5.4 extends this interface in order to allow a user to provide functions for noise analyses for user defined models.

Noise Analysis

Noise analysis in SmartSpice is the calculation of the noise contributions of each device in the circuit to a specified output port the noise spectral density and integrated noise are calculated and reported over a specified frequency range. The underlying noise calculations are based on thermal and shot noise associated with DC currents in semiconductors and the thermal noise associated with resistance and other phenomena such as flicker noise being modeled. The noise analysis interface allows the user to define his own noise analysis routine appropriate to the device under simulation.


Interpreted Noise Analysis Interface

The SmartSpice noise analysis interface extends those already present within SmartSpice and is shown in Figure 1.


Figure 1. Interpreted noise and analysis overview


The model parameters file in Figure 1. contains any model and model instance parameters (parameters which are used to encode the behavioral characteristics of the device) which the user wishes to access in order to perform calculations. For example a model parameters file for a JFET model contains parameters such as transconductance parameter gain, modulation coefficient, saturation current, and threshold voltage, required to define the behavior of the analyses functions for the model.

SmartSpice translates the model parameters file into template files (including one for noise analysis) which contains data definitions and a function definition with appropriate parameters into which the user defined code for the noise analysis function is placed. This modified file is interpreted by the SmartSpice C-Interpreter in order to perform the noise analysis.1

Noise analysis is initiated via the .noise card from the SmartSpice input deck. In order to use a user defined noise analysis function to perform noise analysis for a user defined model, the user needs to modify the .model card for the associated user defined model, modify the element statement which instantiates the model and direct SmartSpice to the user defined noise analysis function within the interpreted C file.


Example of Syntax Required

The following example illustrates some excerpts from SmartSpice statements which show how noise analysis may be employed. Once the user has produced the template file for noise analysis via SmartSpice translation of a model parameters file2, the .model is modified in order to direct SmartSpice to the location of the noise function and file it is contained within. This is shown below:

The line noisesourcecode = noisefunction = jfetnoise provides SmartSpice with the noise function name jfetnoise and filename


The model element definition indicates whether or not the SmartSpice interactive debugger is activated during execution of the interpreted code.

The line + dcdebug = 0 tempdebug = 0 acdebug = 0 noisedebug = 1 indicates that the interactive debugger should be activated on interpreting the noise analysis function but not the dc, temperature or ac analyses functions.

The .noise card directs SmartSpice to perform a noise analysis of the circuit.

.noise V(1) VGS DEC 10 1 10G

This performs a noise analysis of the circuit with 10 frequency points from 1 to 10 GigaHertz with V(1) the output port referred to VGS.

Finally, shown below is a portion of an interpreted noise analysis function to give a flavor of what is required.



The scope of this paper is not to describe the calculations involved. The above serves only to show the outline of the noise function given to the user and some of the parameters which are accessed and used from within the noise function. The instance and model parameters at the top of the files are used to access arrays containing their corresponding values. A fuller description of this process is provided in [1].



  1. SmartSpice User Manual Vol 2 Silvaco International, March 1997