SPICE
Original author(s)  Laurence Nagel 

Initial release  1973 
Written in  Fortran 
Type  Electronic circuit simulation 
Initial release  1975 

Stable release  2G.6 / 1983 
Written in  Fortran 
Type  Electronic circuit simulation 
Original author(s)  Thomas Quarles 

Initial release  1989 
Stable release  3f.4 / July 1993 
Written in  C 
Type  Electronic circuit simulation 
License  BSD license 
SPICE (Simulation Program with Integrated Circuit Emphasis)^{[1]}^{[2]} is a generalpurpose, open source analog electronic circuit simulator. It is a powerful program that is used in integrated circuit and boardlevel design to check the integrity of circuit designs and to predict circuit behavior.
Contents
 Introduction 1
 Origins 2

Transient Analysis 3
 Initial conditions for transient analysis 3.1
 Adoption 4

Program features and structure 5
 Analyses 5.1
 Device models 5.2
 Input and output: Netlists, schematic capture and plotting 5.3
 See also 6
 References 7

External links 8
 Histories, original papers 8.1
 Tutorials, user information 8.2
 Applications 8.3
 Online Versions 8.4
Introduction
Unlike boardlevel designs composed of discrete parts, it is not practical to breadboard integrated circuits before manufacture. Further, the high costs of photolithographic masks and other manufacturing prerequisites make it essential to design the circuit to be as close to perfect as possible before the integrated circuit is first built. Simulating the circuit with SPICE is the industrystandard way to verify circuit operation at the transistor level before committing to manufacturing an integrated circuit.
Boardlevel circuit designs can often be breadboarded for testing. Even with a breadboard, some circuit properties may not be accurate compared to the final printed wiring board, such as parasitic resistances and capacitances. These parasitic components can often be estimated more accurately using SPICE simulation. Also, designers may want more information about the circuit than is available from a single mockup. For instance, circuit performance is affected by component manufacturing tolerances. In these cases it is common to use SPICE to perform Monte Carlo simulations of the effect of component variations on performance, a task which is impractical using calculations by hand for a circuit of any appreciable complexity.
Circuit simulation programs, of which SPICE and derivatives are the most prominent, take a text netlist describing the circuit elements (transistors, resistors, capacitors, etc.) and their connections, and translate^{[3]} this description into equations to be solved. The general equations produced are nonlinear differential algebraic equations which are solved using implicit integration methods, Newton's method and sparse matrix techniques.
Origins
SPICE was developed at the Electronics Research Laboratory of the University of California, Berkeley by Laurence Nagel with direction from his research advisor, Prof. Donald Pederson. SPICE1 was largely a derivative of the CANCER program,^{[4]} which Nagel had worked on under Prof. Ronald Rohrer. CANCER was an acronym for "Computer Analysis of Nonlinear Circuits, Excluding Radiation," a hint to Berkeley's liberalism in the 1960s:^{[5]} at these times many circuit simulators were developed under the United States Department of Defense contracts that required the capability to evaluate the radiation hardness of a circuit. When Nagel's original advisor, Prof. Rohrer, left Berkeley, Prof. Pederson became his advisor. Pederson insisted that CANCER, a proprietary program, be rewritten enough that restrictions could be removed and the program could be put in the public domain.^{[6]}
SPICE1 was first presented at a conference in 1973.^{[7]} SPICE1 was coded in FORTRAN and used nodal analysis to construct the circuit equations. Nodal analysis has limitations in representing inductors, floating voltage sources and the various forms of controlled sources. SPICE1 had relatively few circuit elements available and used a fixedtimestep transient analysis. The real popularity of SPICE started with SPICE2^{[8]} in 1975. SPICE2, also coded in FORTRAN, was a muchimproved program with more circuit elements, variable timestep transient analysis using either the trapezoidal (second order AdamsMoulton method) or the Gear integration method (also known as BDF), equation formulation via modified nodal analysis^{[9]} (avoiding the limitations of nodal analysis), and an innovative FORTRANbased memory allocation system developed by another graduate student, Ellis Cohen. The last FORTRAN version of SPICE was 2G.6 in 1983. SPICE3^{[10]} was developed by Thomas Quarles (with A. Richard Newton as advisor) in 1989. It is written in C, uses the same netlist syntax, and added X Window System plotting.
As an early open source program, SPICE was widely distributed and used. Its ubiquity became such that "to SPICE a circuit" remains synonymous with circuit simulation.^{[11]} SPICE source code was from the beginning distributed by UC Berkeley for a nominal charge (to cover the cost of magnetic tape). The license originally included distribution restrictions for countries not considered friendly to the USA, but the source code is currently covered by the BSD license.
Transient Analysis
Since transient analysis is dependent on time, it uses different analysis algorithms, control options with different convergencerelated issues and different initialization parameters than DC analysis. However, since a transient analysis first performs a DC operating point analysis (unless the UIC option is specified in the .TRAN statement), most of the DC analysis algorithms, control options, and initialization and convergence issues apply to transient analysis.
Initial conditions for transient analysis
Some circuits, such as oscillators or circuits with feedback, do not have stable operating point solutions. For these circuits, either the feedback loop must be broken so that a DC operating point can be calculated or the initial conditions must be provided in the simulation input. The DC operating point analysis is bypassed if the UIC parameter is included in the .TRAN statement. If UIC is included in the .TRAN statement, a transient analysis is started using node voltages specified in an .IC statement. If a node is set to 5 V in a .IC statement, the value at that node for the first time point (time 0) is 5 V.
You can use the .OP statement to store an estimate of the DC operating point during a transient analysis.
.TRAN 1ns 100ns UIC .OP 20ns
The .TRAN statement UIC parameter in the above example bypasses the initial DC operating point analysis. The .OP statement calculates transient operating point at t = 20 ns during the transient analysis.
Although a transient analysis might provide a convergent DC solution, the transient analysis itself can still fail to converge. In a transient analysis, the error message "internal timestep too small" indicates that the circuit failed to converge. The convergence failure might be due to stated initial conditions that are not close enough to the actual DC operating point values. See the later part of this chapter for a discussion of transient analysis convergence aids.
Adoption
SPICE inspired and served as a basis for many other circuit simulation programs, in academia, in industry, and in commercial products. The first commercial version of SPICE was ISPICE,^{[12]} an interactive version on a timeshare service, semiconductor device simulation. The integrated circuit industry adopted SPICE quickly, and until commercial versions became well developed many IC design houses had proprietary versions of SPICE.^{[13]}
Today a few IC manufacturers, typically the larger companies, have groups continuing to develop SPICEbased circuit simulation programs. Among these are ADICE at Analog Devices, LTspice at Linear Technology (available to the public as freeware), Mica at Freescale Semiconductor, and TINA at Texas Instruments. Similarly to Linear Technology, Texas Instruments makes available a freeware Windows version of the TINA software^{[14]} (called TINATI^{[15]}), which also includes their version of SPICE and comes preloaded with models for the company's integrated circuits.^{[16]}^{[17]} Analog Devices offers a similar free tool called ADIsimPE (based on the SIMetrix/SIMPLIS^{[18]} implementation of SPICE).^{[19]} Other companies maintain internal circuit simulators which are not directly based upon SPICE, among them PowerSpice at IBM, Titan at Infineon Technologies, Lynx at Intel Corporation, and Pstar at NXP Semiconductor.
The birth of SPICE was named an IEEE Milestone in 2011; the entry mentions that SPICE "evolved to become the worldwide standard integrated circuit simulator."^{[20]}
Program features and structure
SPICE became popular because it contained the analyses and models needed to design integrated circuits of the time, and was robust enough and fast enough to be practical to use.^{[21]} Precursors to SPICE often had a single purpose: The BIAS^{[22]} program, for example, did simulation of bipolar transistor circuit operating points; the SLIC^{[23]} program did only smallsignal analyses. SPICE combined operating point solutions, transient analysis, and various smallsignal analyses with the circuit elements and device models needed to successfully simulate many circuits.
Analyses
SPICE2 included these analyses:
 AC analysis (linear smallsignal frequency domain analysis)
 DC analysis (nonlinear quiescent point calculation)
 DC transfer curve analysis (a sequence of nonlinear operating points calculated while sweeping an input voltage or current, or a circuit parameter)
 Noise analysis (a small signal analysis done using an adjoint matrix technique which sums uncorrelated noise currents at a chosen output point)
 Transfer function analysis (a smallsignal input/output gain and impedance calculation)
 Transient analysis (timedomain largesignal solution of nonlinear differential algebraic equations)
Since SPICE is generally used to model nonlinear circuits, the small signal analyses are necessarily preceded by a quiescent point calculation at which the circuit is linearized. SPICE2 also contained code for other smallsignal analyses: sensitivity analysis, polezero analysis, and smallsignal distortion analysis. Analysis at various temperatures was done by automatically updating semiconductor model parameters for temperature, allowing the circuit to be simulated at temperature extremes.
Other circuit simulators have since added many analyses beyond those in SPICE2 to address changing industry requirements. Parametric sweeps were added to analyze circuit performance with changing manufacturing tolerances or operating conditions. Loop gain and stability calculations were added for analog circuits. Harmonic balance or timedomain steady state analyses were added for RF and switchedcapacitor circuit design. However, a publicdomain circuit simulator containing the modern analyses and features needed to become a successor in popularity to SPICE has not yet emerged.^{[21]}
It is very important to use appropriate analyses with carefully chosen parameters. For example application of linear analysis to nonlinear circuits should be justified separately. Also, application of transient analysis with default simulation parameters can lead to qualitatively wrong conclusions on circuit dynamics.^{[24]}
Device models
SPICE2 included many semiconductor device compact models: three levels of MOSFET model, a combined Ebers–Moll and GummelPoon bipolar model, a JFET model, and a model for a junction diode. In addition, it had many other elements: resistors, capacitors, inductors (including coupling), independent voltage and current sources, ideal transmission lines, active components and voltage and current controlled sources.
SPICE3 added more sophisticated MOSFET models, which were required due to advances in semiconductor technology. In particular, the BSIM family of models were added, which were also developed at UC Berkeley.
Commercial and industrial SPICE simulators have added many other device models as technology advanced and earlier models became inadequate. To attempt standardization of these models so that a set of model parameters may be used in different simulators, an industry working group was formed, the Compact Model Council,^{[25]} to choose, maintain and promote the use of standard models. The standard models today include BSIM3, BSIM4, BSIMSOI, PSP, HICUM, and MEXTRAM.
Input and output: Netlists, schematic capture and plotting
SPICE2 took a text netlist as input and produced lineprinter listings as output, which fit with the computing environment in 1975. These listings were either columns of numbers corresponding to calculated outputs (typically voltages or currents), or lineprinter character "plots". SPICE3 retained the netlist for circuit description, but allowed analyses to be controlled from a commandline interface similar to the C shell. SPICE3 also added basic X plotting, as UNIX and engineering workstations became common.
Vendors and various free software projects have added schematic capture frontends to SPICE, allowing a schematic diagram of the circuit to be drawn and the netlist to be automatically generated. Also, graphical user interfaces were added for selecting the simulations to be done and manipulating the voltage and current output vectors. In addition, very capable graphing utilities have been added to see waveforms and graphs of parametric dependencies. Several free versions of these extended programs are available, some as introductory limited packages, and some without restrictions.
See also
 List of free electronics circuit simulators
 Input Output Buffer Information Specification (IBIS)
 Transistor models
References
 ^ Nagel, L. W, and Pederson, D. O., SPICE (Simulation Program with Integrated Circuit Emphasis), Memorandum No. ERLM382, University of California, Berkeley, Apr. 1973
 ^ Nagel, Laurence W., SPICE2: A Computer Program to Simulate Semiconductor Circuits, Memorandum No. ERLM520, University of California, Berkeley, May 1975
 ^
 ^ Nagel, L. W., and Rohrer, R. A. (August 1971). "Computer Analysis of Nonlinear Circuits, Excluding Radiation". IEEE Journal of Solid State Circuits SC–6: 166–182.
 ^ Life of SPICE
 ^ Perry, T. (June 1998). "Donald O. Pederson". IEEE Spectrum 35: 22–27.
 ^ 2nd spice1 ref
 ^ 2nd spice2 ref
 ^ Ho, Ruehli, and Brennan (April 1974). "The Modified Nodal Approach to Network Analysis". Proc. 1974 Int. Symposium on Circuits and Systems, San Francisco. pp. 505–509.
 ^ Quarles, Thomas L., Analysis of Performance and Convergence Issues for Circuit Simulation, Memorandum No. UCB/ERL M89/42, University of California, Berkeley, Apr. 1989.
 ^ Pescovitz, David (20020502). "1972: The release of SPICE, still the industry standard tool for integrated circuit design". Lab Notes: Research from the Berkeley College of Engineering. Retrieved 20070310.
 ^ Vladimirescu, Andrei, SPICE  The Third Decade, Proc. 1990 IEEE Bipolar Circuits and Technology Meeting, Minneapolis, Sept. 1990, pp. 96–101
 ^ K. S. Kundert, The Designer’s Guide to SPICE and Spectre, Kluwer. Academic Publishers, Boston , 1995
 ^ TINA  Circuit Simulator for Analog, Digital, MCU & Mixed Circuit Simulation
 ^ SPICEBased Analog Simulation Program  TINATI  TI Software Folder
 ^ Art Kay (2012). Operational Amplifier Noise: Techniques and Tips for Analyzing and Reducing Noise. Elsevier. p. 41.
 ^ Ron Mancini (2012). Op Amps for Everyone. Newnes. p. 162.
 ^ SIMertrix/SIMPLIS
 ^ [1] Archived July 6, 2014 at the Wayback Machine
 ^ "List of IEEE Milestones". IEEE Global History Network. IEEE. Retrieved 4 August 2011.
 ^ ^{a} ^{b} Nagel, L., Is it Time for SPICE4?, 2004 Numerical Aspects of Device and Circuit Modeling Workshop, June 23–25, 2004, Santa Fe, New Mexico. Retrieved on 20071110 Archived September 26, 2006 at the Wayback Machine
 ^ McCalla and Howard (February 1971). "BIAS3 – A program for nonlinear D.C. analysis of bipolar transistor circuits". IEEE J. of Solid State Circuits 6 (1): 14–19.
 ^ Idleman, Jenkins, McCalla and Pederson (August 1971). "SLIC—a simulator for linear integrated circuits". IEEE J. of Solid State Circuits 6 (4): 188–203.
 ^ Bianchi, Giovanni (2015). "Limitations of PLL simulation: hidden oscillations in SPICE analysis" (PDF).
 ^ "CMC  Compact Model Council". GEIA.
External links
Histories, original papers
 The original SPICE1 paper
 L. W. Nagel's dissertation (SPICE2)
 Thomas Quarles' dissertation (SPICE3)
 A brief history of SPICE
 SPICE2 and SPICE3 at UC Berkeley
 Cider at UC Berkeley
Tutorials, user information
 Comprehensive, detailed PSpice tutorial and user guide at Wilfrid Laurier University, Canada
 Comprehensive, detailed LTSpice tutorial and user guide at Wilfrid Laurier University, Canada
 The Spice Page
 LTspice circuit simulation tutorial videos
 SPICE on gEDA HOWTO
 Spice 3 Userguide
 Spice 3 Quickstart Tutorial
 Designer's Guide Community
 SPICE Simulation tutorial
 eCircuit Center  A free source of SPICE and Excel files for the handson learning of circuit design and analysis.
Applications
 Sample Spice code and output for various circuits
 NanoDotTek Report NDT14082007, 12 August 2007
Online Versions
 SPICE Online
 All articles with unsourced statements
 Articles with unsourced statements from October 2014
 All articles with dead external links
 Articles with dead external links from March 2015
 Commons category without a link on Wikidata
 1973 software
 Electronic design automation software
 Free software programmed in C
 Free software programmed in Fortran
 Simulation programming languages
 Electronic circuit simulators
 Free simulation software
 Electronic design automation software for Linux