Integrated Circuit Simulation Using SPICE David W. Graham Lane Department of Computer Science and Electrical Engineering West Virginia University © David.

Slides:



Advertisements
Similar presentations
The uA741 Operational Amplifier
Advertisements

12- Agenda Introduction 1 Verilog-A Modules 2 DAY 1 Synopsys 60-I-032-BSG-005 © 2007 Synopsys, Inc. All Rights Reserved Simulating Variability – Design.
EEL102 Introduction to SPICE. Spice – Introduction Spice is a short form of : Simulated Program with Integrated Circuit Emphasis Used for circuit analysis.
PSPICE Tutorial Spring 2015
PSpice Tutorial October 13, 2004 Franklin Chiang.
PSPICE Tutorial. Introduction SPICE (Simulation Program for Integrated Circuits Emphasis) is a general purpose analog circuit simulator that is used to.
Introduction to SPICE. History  SPICE stands for Simulation Program with Integrated Circuit Emphasis  In 1960 ECAP was developed by a team of IBM programmers.
INTRODUCTION Spice Excel. SPICE Simulation Program with Integrated Circuit Emphasis.
1 References: G. W. Roberts, A. Sedra, SPICE, © Oxford University Press, 2/e, 1977 Tutorial on PSPICE.
Introduction to PSpice Simulation Software. The Origins of SPICE In the 1960’s, simulation software begins –CANCER Computer Analysis of Nonlinear Circuits,
EMT 251 SPICE NETLIST. Introduction SPICE (Simulation with Integrated Circuits Emphasis) SPICE (Simulation with Integrated Circuits Emphasis) General.
Using Spice in Lab Practicing for Analog ASIC Design Goran Jovanović, Faculty of Electronic Engineering University of Niš Serbia and Montenegro.
Black Box Electronics An Introduction to Applied Electronics for Physicists 5. Pushing the Limits With Spice University of Toronto Quantum Optics Group.
The George Washington University School of Engineering and Applied Science Department of Electrical and Computer Engineering ECE122 Lab 4: VTC & Power.
Experiment 11: An Inverting Amplifier
Computer Aided Design Course 2. Setting up Analyses In order to measure a circuit performance, it is necessary to simulate its behavior. PSpice A/D is.
CIRCUIT ANALYSIS USING PSPICE Writing Netlist
Introduction to PSpice R. E. Abdel-Aal February 2005.
EE141 Fall 2003 Discussion 1 Tips for Using SPICE.
SIMULINK Dr. Samir Al-Amer. SIMULINK SIMULINK is a power simulation program that comes with MATLAB Used to simulate wide range of dynamical systems To.
EE141 Spring 2003 Discussion 1 Tips for Using SPICE.
HossamTalaat - MATLAB Course - KSU - 21/1/24 1 IEEE Student Branch - College of Engineering - KSU Getting started with Simulink By Prof. Hossam Talaat.
Series RC Circuit. Shunt resistor It is good practice to short the unused pin on the trimpot when using it as a variable resistor Velleman function generator.
Week 9: Series RC Circuit Experiment 14. Circuit to be constructed Shunt resistor It is good practice to short the unused pin on the trimpot when using.
Experiment 17 A Differentiator Circuit
The George Washington University School of Engineering and Applied Science Department of Electrical and Computer Engineering Circuit Design Verification.
Chapter 8 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Electronic Circuits Laboratory EE462G Lab #4 DC Power Supply Circuits Using Diodes.
CIRCUIT ANALYSIS USING NGSPICE
 Lab assistants are: Dilara YALÇIN–Kami ÇEVİK  Labs are divided into two sections (same as course sections). Verify your section as soon as possible.
TCL/Tk Based Environment for Mixed-Signal Circuit Design System Description Software Architecture Examples Future Directions Summary.
The George Washington University School of Engineering and Applied Science Department of Electrical and Computer Engineering ECE122 Lab 4: VTC & Power.
Voltage and Current Dividers
ECE122 – Digital Electronics & Design
EENG 2920: Circuit Design and Analysis Using PSpice Class 3: DC and Transient Analysis Oluwayomi Adamo Department of Electrical Engineering College of.
MATLAB Tutorial EE 327 Signals and Systems 1. What is MATLAB? MATLAB – Matrix Laboratory The premier number-crunching software Extremely useful for signal.
Lecture on PSpice. Introduction to SPICE  SPICE was originally developed at the University of California, Berkeley (1975).  Simulation Program for Integrated.
ELECTRIC CIRCUITS ECSE-2010 Spring 2003 Class 3. ASSIGNMENTS DUE Today (Thursday): Will introduce PSpice Activity 3-1 (In Class) using PSpice Will do.
The George Washington University School of Engineering and Applied Science Department of Electrical and Computer Engineering ECE122 – 30 Lab 3: Layout.
MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.
Experiment 21 Design a Traffic Arrow.
1 Small-Signal Modeling Dr. David W. Graham West Virginia University Lane Department of Computer Science and Electrical Engineering © 2010 David W. Graham.
TELECOMMUNICATIONS Dr. Hugh Blanton ENTC 4307/ENTC 5307.
PSPICE – Windows Version
Cadence tools Brandon Rumberg.
EE141 Fall 2004 Discussion 1 Tips for Using SPICE.
Introduction to PSpice
Simulation Using WinSPICE David W. Graham Lane Department of Computer Science and Electrical Engineering West Virginia University © David W. Graham 2007.
SJTU 2006 SPADE Manual Ma Diming
SIMULINK-Tutorial 1 Class ECES-304 Presented by : Shubham Bhat.
Modeling of Power Converters using Matlab and Simulink
Experiment 10: Inverting Amplifier With Modifications that Require the Use of the Velleman Oscilloscope.
Phasors and Kirchhoff’s Current Law
Simulated Inductance Experiment 25.
ECE122 – Digital Electronics & Design Tanner Tools Tutorial Ritu Bajpai September 4, 2008.
FUNCTION GENERATOR.
Introduction to LTspice IV
EMT 251 SPICE NETLIST.
Introduction to PSPICE
Frequency response I As the frequency of the processed signals increases, the effects of parasitic capacitance in (BJT/MOS) transistors start to manifest.
ORCAD PSPICE.
Week 9: Series RC Circuit
INTRODUCTION Spice Excel.
INTRODUCTION Spice.
Week 9a OUTLINE MOSFET ID vs. VGS characteristic
Week 9a OUTLINE MOSFET ID vs. VGS characteristic
Lecture #17 (cont’d from #16)
Frequency response I As the frequency of the processed signals increases, the effects of parasitic capacitance in (BJT/MOS) transistors start to manifest.
Introduction to PSpice
Presentation transcript:

Integrated Circuit Simulation Using SPICE David W. Graham Lane Department of Computer Science and Electrical Engineering West Virginia University © David W. Graham 2008

2 Why Simulation? Theoretical calculations only go so far… Find out the circuit behavior in a variety of operating conditions It is currently the best way of designing a circuit (industry standard) Provides intuitive “feel” for circuit operation (without requiring expensive equipment)

3 Simulator Options Wide variety of circuit simulators Specialized simulators (typically discrete-time) –Multitude of digital simulators –Switcap (for switched-capacitor circuits) Generic simulators (analog / continuous-time circuits typically use these ) – SPICE (Simulation Program with Integrated Circuit Emphasis)

4 SPICE Options Available at WVU PSPICE –Schematic capture –Node limitation (9 nodes maximum) HSPICE –Good –Expensive –In departmental computer labs with linux machines (e.g. 756 ESB and 813 ESB) WinSPICE –Free! (Plus, it is good in many other ways) –In departmental computer labs with Windows machines (e.g. 813 ESB)

5 WinSPICE Pros Free Small Size Can run it from MATLAB Works well No node limitations Can use the EKV model (good for subthreshold simulations) Works in Windows Cons No schematic capture (However, XCircuit can perform schematic capture) Only works in Windows (Occasional convergence problems – but improving)

6 How to Obtain WinSPICE Free download Go to “Download” –Download “Current Full Version” –Then, download the current stable release (this is simply an update)

7 HSPICE Pros Industry standard Very, very good numerical solver Many extra features –Incorporation into layout editors (like Cadence) –Parameterized sweeps –Solid functionality when using libraries –Many, many more Effectively no node limitations (limitation on the order of 100k nodes) Can use the EKV model (good for subthreshold simulations) Works in Windows/Linux/Unix Cons No schematic capture (However, XCircuit and Cadence can perform schematic capture) Expensive Only in Linux machines in CSEE department

8 HSPICE – How to Use in CSEE Department Location –Shell server (complete instructions for logging in can be found on the CAD page of the class website) –Linux computer labs (756 and 813 ESB) Cosmos Scope –Waveform viewer –Type cscope & at the prompt

9 Writing SPICE Decks / Netlists SPICE Deck/Netlist is a text description of a circuit Consists of the following parts Header Circuit connections Subcircuit descriptions (if needed) Model descriptions (if needed – usually only for transistors) Analyses to be performed Outputs to be saved / displayed

10 Basic Circuit Elements Resistor R node1 node2 value Capacitor C node1 node2 value Inductor L node1 node2 value Examples R CIN IN OUT 0.1u 1 2 R 1 = 100Ω in out C in = 0.1μF Signifies resistor Resistor “name” Signifies “micro” (1e-6) Nodes can be signified by words instead of numbers

11 Independent Voltage and Current Sources Voltage Source V n+ n- DC dcvalue AC acvalue Current Source I n+ n- DC dcvalue AC acvalue Examples 1 0 VDD 1 0 DC 3.3 AC 0 V dd = 3.3V Ground is always node 0 1 I1I1 I1 1 0 DC 1n AC 0.5e-9 n = 1e-9 (equivalent forms) Direction of current flow

12 Independent Voltage and Current Sources Independent sources can also output functions PULSE – Pulse function PWL – Piecewise linear function SIN – Sinusoidal waveform EXP – Exponential waveform SFFM – Single-frequency FM For more information, see the SPICE manual (WinSPICE manual) Example – Sinusoidal voltage with a DC offset of 1V, an amplitude of 0.5V, and a frequency of 1kHz (between nodes 1 and 0) V n+ n- SIN(dcvalue amplitude frequency) V1 1 0 SIN( k)

13 Voltage-controlled voltage source (VCVS) E n+ n- nref+ nref- gain Current-controlled current source (CCCS) F n+ n- voltagesourceref gain Voltage-controlled current source (VCCS) G n+ n- nref+ nref- transconductance Current-controlled voltage source (CCVS) H n+ n- voltagesourceref transconductance Voltage-controlled sources reference the voltage across two nodes Current-controlled sources reference the current flowing through a voltage source –Can be a “dummy” voltage source –A voltage source with no voltage supplied –VDUMMY 3 4 DC 0 AC 0 Current sources flow from n+ to n- Dependent Voltage and Current Sources

14 Transistors nFETs M drain gate source bulk modelname W=value L=value pFETs M drain gate source well modelname W=value L=value Examples (Assume models “NFET” and “PFET” are defined elsewhere) M NFET W=100u L=4.8u Assume the bulk connection is tied to ground M PFET W=100u L=4.8u

15 Model Files Two major models for simulating transistors BSIM –Great for above threshold simulations –Essentially empirical fits –Many, many parameters (upwards of hundreds) –Does not do subthreshold very well, at all EKV Model –Mathematical model of the MOSFET operation –Much fewer parameters –Does subthreshold operation very well

16 EKV Model Enz, Krummenacher, and Vittoz Model –(3 Swiss engineers who wanted a better MOSFET model, specifically for low-current applications) Model is a “single expression” that preserves continuity of the operation Based on the physics of the MOS device (not just empirical fits) We will be using the 0.5μm model available at the EKV website – More information can be found at – –Liu, et al. pg Level –Level = 5 in PSPICE –Level = 44 in WinSPICE –Level = 55 in HSPICE

17 Analysis Several types of analyses can be performed Operating point DC sweep AC sweep Transient analysis Additional useful analyses – distortion, noise, pole-zero, sensitivity, temperature, transfer function We will be making use of these analyses extensively

18 Analysis Analysis declaration is given by a line of code near the end of the SPICE deck Operating point analysis (.OP) –Provides DC operating point (capacitors shorted, inductors opened) –.OP DC sweep (.DC) –Can sweep a DC voltage or current to determine a DC transfer function –.DC sourcename startval stopval incrementval –e.g. .DC VIN (This would sweep source VIN from 0V to 5V with steps of 0.1V)

19 Analysis AC analysis (.AC) –Can sweep an AC voltage or current over a specified frequency range to determine the transfer function / frequency response –Does not take distortion and nonlinearities into account –.AC {DEC,OCT,LIN} numpoints freqstart freqstop DEC – numpoints per decade OCT – numpoints per octave LIN – linear spacing of points, numpoints = total number of points –e.g. .AC DEC E5 AC sweep from 10Hz to 100kHz, points spaced logarithmically, 10 simulation points per decade –Must have a source with an AC component in the circuit

20 Analysis Transient analysis (.TRAN) –Determines the response of a circuit to a transient signal / source (sine wave, PWL function, etc.) –Allows you to achieve the most results with a simulation (distortion, nonlinearity, operation, etc.) –.TRAN timestep timestop {timestart {maxstepsize}} {UIC} –Optional arguments timestart = start time (default is 0) maxstepsize = maximum time increment between simulation points UIC – “Use Initial Conditions” – allows the user to define initial conditions for start of simulation, e.g. initial voltage on a capacitor –e.g. .TRAN 1n 100n Perform a transient analysis for 100nsec (100e-9 seconds) with a step increment of 1nsec

21 Displaying Outputs Saving variables –Saving the values of the voltages / currents for use in later plotting them –.SAVE variable1 variable2 … –Examples.SAVE V(1) (Saves the voltage at node 1).SAVE VIN (Saves the voltages at nodes VIN and VOUT, also saves the drain current through transistor M1).SAVE ALL (Saves all variables) –WinSPICE does not save anything as a default –HSPICE saves everything as a default (assuming you use the.OPTIONS POST line included

22 Displaying Outputs Plotting variables –Plot type depends on the analysis performed –.PLOT analysistype variable1 variable2 … –Examples.PLOT DC V(1) V(2) (Plots the voltages at nodes 1 and 2 on the same graph. The x axis is voltage (DC sweep)).PLOT AC VDB(3) (Plots the decibel value of the voltage at node 3. The x axis is frequency (AC analysis)).PLOT TRAN I(VIN) (Plots the current through the voltage source VIN. The x axis is time (transient analysis)) –(Must use Cosmos Scope ( cscope ) to view waveforms for HSPICE)

23 A Circuit Example 2 1 out V in = 0.4V V DD = 3.3V R 1 = 100kΩ C L = 1nF M1M1 COMMON SOURCE AMPLIFIER *BEGIN CIRCUIT DESCRIPTION VIN 1 0 DC 1 AC 0 VDD 2 0 DC 3.3 AC 0 R1 OUT 2 100K CL OUT 0 1N M1 OUT NFET L=10U W=100U.OPTIONS POST.OP.DC VIN PLOT DC V(OUT).END Only needed for HSPICE

24 A Circuit Example Header – First line is always a title / comment * Comments out the entire line Analyses and outputs to be displayed Must end with a.END command COMMON SOURCE AMPLIFIER *BEGIN CIRCUIT DESCRIPTION VIN 1 0 DC 1 AC 0 VDD 2 0 DC 3.3 AC 0 R1 OUT 2 100K CL OUT 0 1N M1 OUT NFET L=10U W=100U.OPTIONS POST.OP.DC VIN PLOT DC V(OUT).END Only needed for HSPICE Only needed for HSPICE (viewing waveforms)

25 WinSPICE – Running a Simulation Save your SPICE Deck as a.cir file Simply double-click on the file – WinSPICE will automatically run As long as WinSPICE is open, every time you save the.cir file, WinSPICE will automatically re-simulate The WinSPICE executable must be in a path with no “spaces” in it

26 Controlling Simulations with MATLAB One nice feature of WinSPICE is that it can be controlled from MATLAB. This allows post-processing of the simulation results to be done in the easy-to-use MATLAB environment. Download the MATLAB.m file from the class website named runwinspice.m Place a copy of the WinSPICE executable file (.exe file) in the same directory as your.cir file Make sure you save the variables you want to view with the.SAVE command (the fewer variables you save, the faster the simulation runs) Comment out / remove all lines that display outputs (plots) in the.cir file Run the simulation from MATLAB using –[data, names] = runwinspice(‘mycircuit.cir’); –data Matrix of all variables that were saved with the.SAVE line Each variable is saved as a column In AC analyses, two columns are required for each variable –Odd-numbered columns are the real part of the simulation data –Even-numbered columns are the imaginary part of the simulation data –names List of the names of the variables corresponding to each column in “data” In AC analyses, there are half as many “names” as there are columns in “data”

27 HSPICE – Running a Simulation At the command line in Linux –hspice input_filename.sp > output_filename.lis –Returns hspice job concluded at successful completion of simulation Many new files will be created. Examples include –filename.tr0 Transient response data –filename.sw0 DC sweep response data –filename.fr0 AC sweep (frequency) response data View simulated waveforms with Cosmos Scope –Open with cscope & –Permits viewing of node voltages and currents

28 HSPICE MATLAB Toolbox For post-processing of simulation data Downloadable at Makes output binary files (e.g. sw0, tr0, fr0) readable in MATLAB Useful functions –x = loadsig(‘hspice_output_filename’); Reads in simulation data into variable x –lssig(x) Lists all plottable signals (e.g. time, node voltages, currents, etc.) –y = evalsig(x,’nodename’); Writes one particular signal to a variable for postprocessing –plotsig(x,’plot_expression’,’optional_plotspec’) Built-in plot function for viewing signals

29 Advanced Features in SPICE Subcircuits (for reusable circuit elements) Global lines “Include” statements Many, many more (see the SPICE manual)

30 Subcircuits Creates a reusable circuit so you do not have to unnecessarily write identical lines of code over and over again Has external nodes (for connections) Has internal nodes (for the operation of the subcircuit) Usage.SUBCKT subcktname extnode1 extnode2 ….ENDS subcktname Connection to the circuit (Subcircuit calls) X node1 node2 … subcktname

31 Subcircuit Example Define a subcircuit with the following lines of code.SUBCKT INV 1 2 M PFET W=1.5 L=1.5U M NFET W=1.5 L=1.5U VSUPPY 3 0 DC 3.3 AC 0.ENDS INV Call the subcircuit INV in the circuit declaration part of the SPICE deck using the following line X1 8 9 INV Declares this will be a subcircuit Subcircuit label “1” Nodes to connect to in the overall circuit Declares this subcircuit will be INV

32 Global Lines Global nodes are valid in all levels of the circuit, including the subcircuits Especially useful for power supplies (V DD ) Usage.GLOBAL node1 node2 …

33 Include Statements Useful for adding large, reusable lines of code –Model files –Subcircuits –Large, specific input signals (PWL) Usage –.INCLUDE filename –Effectively replaces the.INCLUDE line with the lines of code in the file