Transcript Document
Agenda
DAY
1
Synopsys 60-I-032-BSG-005
1
Introduction
2
Verilog-A Modules
3
Simulating Variability – Design for
Yield
© 2007 Synopsys, Inc. All Rights Reserved
1- 1
Unit Objectives
After completing this unit, you should be able to:
Explain the HSPICE file structure
List what files HSPICE outputs
Demonstrate how to start HSPICE
Use .measure statements
Use .alter blocks
Use the Discovery AMS Simulation Interface
Use CosmosScope
1- 2
HSPICE Fundamentals
Files and suffixes
Netlist structure
Naming conventions
Units and scale factors
1- 4
3
Files and Suffixes
HSPICE Input
Input netlist
.sp
Model/libraries
.inc, .lib
HSPICE Output
Run Status
.st0
Output listing
.lis
Analysis data, transient
.tr# (e.g;. .tr0)
Analysis data, dc
.sw# (e.g. .sw0)
Analysis data, ac
.ac# (e.g. .ac0)
FFT
.ft# (e.g. .ft0)
Measure output
.m*# (e.g. .mt0)
CosmosScope Input
All analysis data files
1- 6
4
Starting HSPICE
Typical command line invocations:
hspice design.sp > design.lis (UNIX only)
hspice –i design.sp -o design.lis (Windows and UNIX)
.lis file contains results of:
.print
.op (operating point)
.options (results)
1- 8
5
Netlist Structure
One main program and one or more optional
submodules:
High-level call statements can restructure netlist
file modules:
.INCLUDE
.LIB
Calls to external data files:
.ALTER
.DATA
Order independent:
Last definition is used for parameters and options
1- 10
6
Netlist Structure: Overview
Title
First line is always the title
Comment character
* - comment for a line
$ - comment after a command
Options
.option post
Print/Probe/Analysis
.print v(d) i(rl)
.probe
v(g)
.tran .1n 5n
Initial Conditions
.ic v(b) = 0 $ input state
Sources
Vg g 0 pulse 0 1 0 0.15 0.15 0.42
* example of a voltage source
Circuit Description
MN d g gnd n nmos
RL vdd d 1K
Model Libraries
.model n nmos level = 49
+ vto = 1 tox = 7n
* ‘+’ continuation character
END
.end
$ terminates the simulation
1- 12
7
Netlist Structure: Topology
+
+
V
+
V
V
-
-
No voltage loops
-
No dangling nodes
+
+
I
V
+
-
I
-
Every node must have a DC path to ground
No stacked current sources
+
+
I
V
-
No ideal voltage source in closed inductor loop
-
No ideal current source in closed capacitor loop
1- 14
8
Node Naming Conventions (1/2)
Node names:
Can be up to 1024 characters
Either names or numbers (e.g. n1, 33, in1, 100)
Numbers: 1 to 9999999999999999
Nodes with number followed by letter are all the same
(e.g. 1a=1b)
Leading zeros in node names are ignored
Can begin with these characters: # _ ! %
0 is ALWAYS ground
Global vs. local
(1 to 1e16)
1- 16
9
Node Naming Conventions (2/2)
Guidelines for node naming:
Do not begin with a “/”
May contain: + - * / : ; $ # . [ ] ! < > _ %
May NOT contain: ( ) , = ‘ <space>
Ground may be either 0, GND, !GND or GROUND
The period (.) is reserved to indicate hierarchy
TIME, TEMPER, HERTZ, TRANSFORMER, VCVS,
CCCS, VCCAP, VCR, CCVS, DELAY and OPAMP are
reserve keywords
Every node must have at least two connections:
Except Tline or MOS substrate
1- 18
10
Element Naming Conventions
Element names:
Names must begin with an alphabetic character, but
thereafter can contain numbers and the following
characters: ! # $ % * + - / < > [ ] _
Names can be up to 1024 characters long
Names are not case sensitive
Element instances begin with the element key letter
Subcircuit instance names begin with X
Parameter names:
Follow the name syntax rules except that names must
begin with an alphabetic character
The other characters must be either a number, or one of
these characters: ! # $ % [ ] _
1- 20
11
Units and Scale Factors
Units:
R - ohm
A = 1e-18
K = 1e3
F = 1e-15
MEG = X = 1e6
P = 1e-12
G = 1e9
C - Farad
N = 1e-9
L - Henry
U = 1e-6
Technology scaling:
T = 1e12
M = 1e-3
SCALE and SCALM
ALL lengths and widths are in METERS
Scale factors
MIL(S) = 25.4e-6
FT = .3048 (METERS)
DB = 20log10
1- 22
12
.MEASURE
.MEASURE:
Prints user-defined electrical specifications of a circuit
.MEASURE is a post processor
Used extensively for optimization and curve fitting
Seven fundamental measurement modes
Rise, Fall, Delay
Average, RMS, Min, Max, and Peak-to-Peak
Find-When
Equation Evaluation
Derivative Evaluation
Integral Evaluation
Relative Error
1- 24
13
.MEASURE: Rise/Fall (1/2)
Syntax:
.MEASURE <DC|TRAN|AC> result TRIG TARG
+ <optimization options>
Result - name given the measured value in the HSPICE output
TRIG trig_var VAL=trig_val <TD=timedelay>
+ <CROSS=#of> <RISE=#of> <FALL=#of>
TRIG AT=value
TARG targ_var VAL=targ_val <TD=timedelay>
+ <CROSS=#of|LAST><RISE=#of|LAST>
+ <FALLS=#of|LAST>
1- 26
14
.MEASURE: Rise/Fall (2/2)
Example:
.MEAS TRAN TDELAY TRIG V(1)
+ VAL=2.5 TD=10ns RISE=2
+ TARG V(2)VAL=2.5 FALL=2
Delay 10ns
TDLAY
V(1)
V(2)
2.5v
…
…
2.5v
1- 28
15
.MEASURE: AVG, RMS, MIN, MAX, PP (1/2)
Syntax:
.MEASURE <DC|TRAN|AC> result func out_var
+ <FROM=val> <TO=val> <optimization options>
Func
Result
AVG, RMS, MIN, MAX, PP
Name given the measured value in the HSPICE output
Out_var
Name of the output variable to be measured
1- 30
16
.MEASURE: AVG, RMS, MIN, MAX, PP (2/2)
Examples:
.MEAS TRAN avgval AVG V(10)From=10ns To=55ns
Print out average nodal voltage of node 10 during tran
time 10 to 55ns
Print as “avgval”
.MEAS TRAN maxval MAX V(1,2)
+ From=15ns To=100ns
Find the maximum voltage difference between nodes 1
and 2 from time 15ns to 100ns
Print as “maxval”
1- 32
17
.MEASURE: FIND-WHEN
Allows any independent variables (time, frequency,
parameter), by using WHEN syntax, or any
dependent variables (voltage, current, etc), by using
Find-When syntax, to be measured when some
specific event occurs
Syntax:
.MEASURE <DC|TRAN|AC> result WHEN out_var=val
+ <TD=val> <RISE=#of>|LAST> <FALL=#of|LAST>
+ <CROSS=#of|LAST> <optimization options>
1- 34
18
.MEASURE: FIND-WHEN Examples
Example of WHEN:
.MEAS TRAN fifth WHEN V(osc_out)=2.5v RISE=5
Measure the time of the 5th rise of node “osc_out” at 2.5v
Store in variable fifth
Example of FIND-WHEN:
.MEAS TRAN result FIND v(out) WHEN v(in)=40m
Measure v(out) when v(in)=40m
Store in variable result
1- 36
19
.MEASURE: Equation Evaluation
Equation Evaluation:
Use this statement to evaluate an equation that can be a
function of the results of previous .MEASURE statements
The equation must not be a function of node voltages or
branch currents
Syntax
.MEASURE <DC|TRAN|AC> result PARAM=‘equation’
+ <optimization options>
Result - name given the measured value in the HSPICE
output file
Example:
.MEAS TRAN T_from WHEN V(out)=’0.5*vcc’ CROSS=1
.MEAS TRAN T_to WHEN V(out)=’0.5*vcc’ CROSS=2
.MEAS TRAN Tmid PARAM=‘(T_from+T_to)/2’
1- 38
20
.MEASURE: Derivative Function
Derivative Function:
Provides the derivative of an output variable at a given
time or frequency or for any sweep variable
Provides the derivative of a specified output variable
when some specific event occurs
Syntax:
.MEASURE <DC|TRAN|AC> result DERIVATIVE
+ out_var WHEN var2=val <TD=val>
+ <RISE=#of>|LAST> <FALL=#of|LAST>
+ <CROSS=#of|LAST> <optimization options>
Example:
.MEAS TRAN slewrate DERIV v(1)
+ WHEN V(osc_out)=2.5v RISE=5
1- 40
21
.MEASURE: Integral Function
Integral Function:
Provides the integral of an output variable over a specified
period
Syntax:
.MEASURE <DC|TRAN|AC> result INTEGRAL out_var
+ <FROM=val1> <TO=val2> <optimization options>
Example:
.MEAS TRAN charge INTEG I(cload)
+ FROM=10ns TO=100ns
1- 42
22
.ALTER: Description
Rerun a simulation several times with different:
Circuit topology
Models
Library components
Elements
Parameter values
Options
Source stimulus
Analysis variables
Print/probe commands
Must be parameterized
1- 44
23
.ALTER: Limitations
CAN include:
Element Statements
.DATA, .LIB, .DEL LIB, .INCLUDE, .MODEL statements
.IC, .NODESET statements
.OP, .OPTIONS, .PARAM, .TEMP, .TF, .TRAN, .DC, .AC
CANNOT include:
.PRINT, .PROBE, or any other i/o statements
Unless they are parameterized
AVOID:
Adding analysis statements under each .ALTER block
Will cause huge penalty in simulation time and confusion in the
output results
1- 46
24
.ALTER Rules (1/2)
If the name of a new element, .MODEL statement, or
a subckt is identical to the name of an original
statement of the same type, the new statement
replaces the old
Element and .MODEL statements within a subckt
definition can be changed and new element and
.MODEL statements can be added to a subckt
definition
Topology modifications to subckt definitions
should be put into libraries and added with .LIB and
deleted with .DEL LIB
If elements or model parameter values were
parameterized when using .ALTER, these parameter
values must be changed through the .PARAM
statement
1- 48
25
.ALTER Rules (2/2)
If a parameter name of a new .PARAM statement in the
.ALTER module is identical to a previous parameter name,
the new assigned value replaces the old
Do not re-describe the elements or model parameters with
numerical values
Options turned on by an .OPTIONS statement in an original
input file or an .ALTER submodule can be turned off
Only the actual altered input is printed for each .ALTER run
A special .ALTER title identifies the run
But a .INCLUDE statements within a file called with a .LIB
statement can be accepted by .ALTER processing
1- 50
26
.ALTER: Example
* ALTER Test
* CMOS Inverter
.OPTIONS ACCT LIST
.OP
.DC VIN 0 5 0.1
.PRINT DC v(3) v(2)
.PRINT tran v(3)
.PARAM VDD=5
.LIB ‘MOS.LIB’ NORMAL
VDD 1 0 VDD
VIN 2 0
M1 3 2 1 1 P 6U 15U
M2 3 2 0 0 N 6U 15U
.ALTER Change Supply
.PARAM VDD=10
.ALTER Fast Process
.DEL LIB ‘MOS.LIB’ NORMAL
.LIB ‘MOS.LIB’ FAST
.ALTER Add Transient
.TRAN .1 2
.END
.OP
DC Sweep
change VDD to 10v
.OP
DC Sweep
alter change to fast library
(MUST delete first)
(VDD=10v still in effect)
.OP
DC Sweep
alter to add transient
(VDD=10v still in effect)
(.lib ‘mos.lib’ FAST still in effect)
.OP
DC Sweep
Transient
1- 52
27
Discovery AMS Simulation Interface Basics
To start the Discovery AMS Simulation Interface
% simif
Setup a new project
Project name
Project location
New directory for all project test benches
Location of project directory
Open an existing project
1- 54
28
Discovery AMS Simulation Interface
1- 56
29
Discovery AMS Simulation Interface – Project Management
Manage the project test benches
Close the project
Delete the project
Create a new test
Import an older simulation (.wrk) file
1- 58
30
Discovery AMS Simulation Interface – Project Management
1- 60
31
Discovery AMS Simulation Interface – Setup
HSPICE simulation is divided into 3 major tasks
Setup
Netlist and Simulation
HSPICE Setup
Run
Output
Selected by buttons near the top, left of the
workbench
Each button selects a new set of screens
The GUI always starts in the Setup mode
Each task contains either tabs or buttons that allow
the user to enter specific information and data
required by HSPICE
1- 62
32
Discovery AMS Simulation Interface – Netlist & Simulation
Netlist & Simulation is select from the tree on the
left of the GUI
Model Setup
Design Variables
Design parameters
Analog Options
Name and corner of any model files used by the design
Set SCALE and TNOM options
External Files
Specify the netlist file(s) used by the design
Specify the Verilog-A behavioral model files by the design
Specify the name of any vector file(s) used by the design
1- 64
33
Discovery AMS Simulation Interface – Netlist & Simulation
1- 66
34
Discovery AMS Simulation Interface – HSPICE Setup
Analysis
Supports all HSPICE analyses
Waveform
Output waveforms setup
Select waveform viewer
Frequently used HSPICE options in its own category
Commands
.IC and .NODESET setup
.SAVE and .LOAD
Options
Setups for .MEAS, .STIM and .BIASCHK statements
Convergence
Cosmos Scope (default)
AvanWaves
Post Proc
supports both .PROBE and .PRINT
Setup any options or commands not available from the setup screens
Behavioral
Verilog-A
1- 68
35
Discovery AMS Simulation Interface – HSPICE Setup
1- 70
36
Discovery AMS Simulation Interface – Run
Run any simulation that is setup
View listing (.lis) file
Errors and warnings are highlighted
View run script and header file
Start waveform viewer
CosmosScope
1- 72
37
Discovery AMS Simulation Interface – Run
1- 74
38
Discovery AMS Simulation Interface - Output
View Status file (*.st#)
View Subcircuit cross-listing (*.pa#)
View Initial condition (*.ic#)
View .MEASURE results
AC measures (*.ma#)
DC measures (*.ms#)
Transient measures (*.mt#)
.MEASURE file processing
1- 76
39
Discovery AMS Simulation Interface - Simulation
1- 78
40
Invoking CosmosScope
Unix/Linux Users
Type cscope at the command prompt:
% cscope
Windows Users:
Select Start Programs Synopsys 2006.03
Cosmos-Scope CosmosScope
1- 80
41
CosmosScope Basics
Pulldown Menu Bar
CosmosScope Icon Bar
Graph Window
Tool Bar
Help Field
1- 82
42
CosmosScope Pulldown Menu Bar
Graph/Plot
File Control
Graph Window
Control
Edit/Preferences
CosmosScope
Window Control
Alternate Tool Bar
Icon Control
CosmosScope
Help
1- 84
43
CosmosScope Icon Bar
Reload
Print
New XY New Polar
Graph
Chart
New Smith
Open
Save
Chart
Cascade
Windows
Clear
Tile
Windows
Toggle
Signal Grid
Toggle
Grid
Copy
Cut
Create
Bus
Burst
Configure
Bus
Dynamic
Waveform Display
Zoom
In
Paste
At X
Meas.
Zoom
Out
Zoom
to Fit
Point to
Point Meas.
At Y
Meas.
1- 86
44
CosmosScope Tool Bar
AIM Command
Signal Manager
Waveform
Line
Calculator
Drawing Tool
Measurement
Macro
Tool
Recorder
RF Tool
Matlab
Command
Line
1- 88
45
CosmosScope Mouse Usage
Left click to select (buttons, objects, etc.)
Right click on anything to get a context-sensitive menu
Middle-click to paste what is selected in the pointed-to
location
Drag with the middle button held down for panning
For a two-button mouse, middle-click can be emulated by
clicking the right and left mouse buttons simultaneously
Shift-clicking the left mouse button adds to your selection if
working with graphical objects, and adds everything from
your current selection to the click point in list boxes
Control-clicking the left mouse button adds to your selection
Dragging the left mouse button zooms (expands) the
contents inside the box
1- 90
46
Opening a Plotfile
In the Scope Window
select File Open
Plotfiles or press the
button
Navigate to the
directory where the
desired plotfile is
located
In the Files of type
field, select the type
of plotfile you would
like to open
Select the plotfile and
click
1- 92
47
CosmosScope File/Signal Control Forms
Plotfile
Manager
Signal
Manager
1- 94
48
Scope Plotting Techniques (1/2)
Plot one signal at a time:
Method 1
Method 2
Left click on the signal name in the signal manager
Press the plot button
Double-click on the signal name
Plot multiple consecutive signals:
Method 1
Click on the first signal
Hold and drag to the last signal
Press the plot button
Method 2
Click on the first signal and release
Hold down the shift key and click on the last desired signal
Press the plot button
1- 96
49
Scope Plotting Techniques (2/2)
Plot multiple non-consecutive signals:
Click on the first signal
Hold down the control key while clicking on other signals
Then press the plot button
Plot signals on top of each other:
Plot the first signal using any of the above approaches
Select the signal to plot on top of the first signal
Middle click in the region of the first signal
1- 98
50
CosmosScope Measurements
Measurements are the the key to design analysis
Over 50 built-in measurements at your fingertips
Can be applied graphically in CosmosScope or in
"Batch" mode for automatic data collection
You can add custom measurements
1- 100
51
CosmosScope Measurements
1- 102
52
CosmosScope Measurements
General Measurements:
Time Domain:
Lowpass, highpass, bandpass (Q, ripple, etc.), stopband, phase
margin, gain margin, slope, magnitude, dB, phase, real,
imaginary, Nyquist plot frequency
S Domain
Max, min, X at max, X at min, peak to peak, topline, baseline,
amplitude, average, RMS, AC-coupled RMS
Frequency Domain:
Duty cycle, frequency, period, pulsewidth, risetime, falltime, slew
rate, delay, overshoot, undershoot, settle time, eye diagram
Reference or level measurements:
At X, at Y, delta X, delta Y, length, slope, local min/max, crossing,
horiz. level, vert. level, vert. cursor, point marker, point to point
Damping ratio, natural frequency, quality factor
Statistics:
Max, min, range, mean, median, std. deviation, mean (+/- 3 std
dev), histogram, yield, Dpu, Cpk, pareto
1- 104
53
CosmosScope Calculator
Pulldown Menus
Icon Bar
Entry Field (Register)
Stack Display
Programmable Buttons
Extended Operation Buttons
Keypad
1- 106
54
Using the Calculator
To get a waveform into the Register:
Select the waveform name on the graph window (or in
the Plot File Window)
Middle-click in the Register
You can also select Edit Paste in the calculator to
accomplish this task
Either Reverse Polish Notation (RPN) or Algebraic
input modes can be selected
To plot results from the calculator:
Click on the left-most icon in the Icon Bar
1- 108
55
Lab 1: HSPICE
Netlist
During this lab, you will:
90 minutes
1. Create a HSPICE netlist
2. Use the Discovery AMS
Simulation Interface to
set up and start HSPICE
to simulate the netlist
Setup
Simulation
3. View the results in
CosmosScope
CosmosScope
1- 110
56