Circuit Simulation Using SPICE
Circuit Simulation Using SPICE
Neuromorphic Engineering II
Institute of Neuroinformatics University | ETH Zurich
Outline
What is SPICE?
S-Edit
SPICE Origins
SPICE is a computer program designed to simulate analog electronic circuits. It original intent was for the development of integrated circuits, from which it derived its name: Simulation Program with Integrated Circuit Emphasis. 1967 Prof. Ronald Rohrer of U.C. Berkeley develop Computer Analysis of Nonlinear Circuits, Excluding Radiation (CANCER) 1972 CANCER was re-written and re-named to SPICE (Version 1) and released to the public domain. 1975 Version 2 of SPICE was released (Version 2g6) 1985 Version 3 of SPICE was rewritten in C (rather than FORTRAN) and released to the public domain.
http: //bwrc.eecs.berkeley.edu/Classes/IcBook/SPICE/
Public Domain Original Berkeley SPICE3f4 code:
ftp://ic.eecs.berkeley.edu/pub/Spice3/
NGSpice
http://sourceforge.net/projects/ngspice
Commercial HSPICE (Synopsis) PSCPICE (OrCAD) SYMETRIX TSpice (Tanner Tools)
SPICE Programming
SPICE is an interpreted language: In order for a computer to understand the SPICE instructions you type, it must have the SPICE program (interpreter) installed. SPICE source les are commonly referred to as netlists (or "decks") with each line in the le being called a "card." Writing a SPICE deck is like writing a good program Plan: sketch schematic on paper or in editor. Modify existing decks whenever possible. Code: strive for clarity. Start with name, email, date, purpose. Generously comment. Test: Predict what results should be. Compare with actual. Garbage In, Garbage Out!
SPICE uses numerical techniques to solve nodal analysis of circuit. The nature of SPICEs iterative process allows it to simulate many types of systems that can be modelled through standard equations and differential equations. Hodgkin and Huxley model of a neurons spike generating mechanism. Chaotic and Dynamical Systems Diffusion equations
You can use SPICE to specify these circuit components: Resistors, Capacitors, Inductors Independent sources (V, I), Dependent sources (V, I) Transmission lines Active devices (diodes, BJTs, JFETS, MOSFETS) You can use SPICE to perform the following types circuit analysis: Non-linear d.c. Non-linear transient Linear a.c. Noise and temperature
All Mosfet devices in SPICE reference a model by its instance name. Each Mosfet model in SPICE has a keyword NMOS or PMOS, as well as a Level parameter. MOSFET TRANSISTOR MODELS: General form: .model [modelname] [nmos or pmos] [parmtr1=x] . . . .model mod1 pmos .model mod2 nmos level=2 phi=0.65 rd=1.5
Levels 1,2,3 (Berkeley SPICE 2g6): basic transistor equations. Not very accurate, but fast. Level 4 (BSIM1): accurate, based on the Berkeley short-channel IGFET model. Level 5 (Tanner, Maher-Mead): accurate physically based model, continuous over all regions of operation, including subthreshold. Levels 13, 28, 39, and 47: Based on Berkeley IGFET models (BSIM, BSIM2, and BSIM3 models). Levels 49 and 53 (BSIM3 Revision 3): most accurate models. Supported by most foundries and SPICE simulation engines.
Integrated with L-Edit and S-Edit Affordable (<2K, low maintenance fees) Optimized for subthreshold circuits simulations Table-based mode
Vdd
Vin
Vout
.include mosis.md *(Include device models) MP1 MN1 Mosfet Vout Vout D Vin Vin G Vdd Gnd S Vdd Gnd B pmos nmos model L=10 L=10 L W=10 W=10 W
Vdd
options
.options scale=0.8u deftables=0 .options maxmsg=1 modelmode=direct .options abstol=1e-17 reltol=1e-7 chargetol=1e-19 .options absdv=0.01 accurate=1 .options js=1e-5 circuit .include "inverter.sp" elements vdd Vdd gnd 5 vin in gnd pwl( 0 0 5u 5 10u 0) commands .tran/powerup 1u 10u .print tran in out
Vin
Vout
Not very well! Dont ever believe it completely models reality. Problems: Very computer intensive. Doesnt model transistor mismatch. Doesnt model Early effects well. Doesnt model distributed characteristics like resistance and capacitance. Makes you lazy about thinking.