SPICE(1) SPICE(1)
NAME
spice - circuit simulator
SYNOPSIS
spice [ -n ] [ -t term ] [ -r rawfile] [ -b ] [ -i ] [ input file ... ]
DESCRIPTION
This manual page describes the commands available for interactive use
of SPICE3. For details of circuit descriptions and the process of simu-
lating a circuit, see the SPICE3 User’s Manual. The commands available
are a superset of those available for nutmeg - only the additional com-
mands available in SPICE3 are described here. You should be familiar
with the manual page for nutmeg(1) before reading this manual page.
Arguments are:
-n (or --no-spiceinit)
Don’t try to source the file ".spiceinit" upon startup. Normally
SPICE3 tries to find the file in the current directory, and if
it is not found then in the user’s home directory.
-q (or --completion)
Enable command completion.
-t term (or --term=term)
The program is being run on a terminal with mfb name term.
-b (or --batch)
Run in batch mode. SPICE3 will read the standard input or the
specified input file and do the simulation. Note that if the
standard input is not a terminal, SPICE3 will default to batch
mode, unless the -i flag is given.
-s (or --server)
Run in server mode. This is like batch mode, except that a tem-
porary rawfile is used and then written to the standard output,
preceded by a line with a single "@", after the simulation is
done. This mode is used by the spice daemon.
-i (or --interactive)
Run in interactive mode. This is useful if the standard input is
not a terminal but interactive mode is desired. Command comple-
tion is not available unless the standard input is a terminal,
however.
-r rawfile (or --rawfile=file)
Use rawfile as the default file into which the results of the
simulation are saved.
-c circuitfile (or --circuitfile=circuitfile)
Use circuitfile as the default input deck.
-h (or --help)
Display a verbose help on the arguments available to the pro-
gram.
-v (or --version)
Display a version number and copyright information of the pro-
gram.
Further arguments are taken to be SPICE3 input decks, which are read
and saved. (If batch mode is requested then they are run immediately.)
SPICE3 will accept any SPICE2 input decks, and output ascii plots,
fourier analyses, and node printouts as specified in .plot, .four, and
.print cards. If a out parameter is given on a .width card, the effect
is the same as set width = .... Since SPICE3 ascii plots do not use
multiple ranges, however, if vectors together on a .plot card have dif-
ferent ranges they will not provide as much information as they would
in SPICE2. The output of SPICE3 is also much less verbose than SPICE2,
in that the only data printed is that requested by the above cards.
Vector names are the same as in nutmeg, with this addition: a name such
as @name[param], where name is either the name of a device instance or
model, denotes the value of the param parameter of the device or model.
See the SPICE3 User’s Manual for details of what parameters are avail-
able. The value is a vector of length 1. This function is also avail-
able with the show command, and is available with variables for conve-
nience for command scripts.
SPICE3 commands are as follows (these are only those commands not also
available in nutmeg - consult the nutmeg manual page for more com-
mands):
setcirc [circuit name]
Change the current circuit. The current circuit is the one that
is used for the simulation commands below. When a circuit is
loaded with the source command (see below) it becomes the cur-
rent circuit.
op [.op card args]
Do an operating point analysis.
tran [.tran card args]
Do a transient analysis.
ac [.ac card args]
Do an ac analysis.
dc [.dc card args]
Do a dc transfer curve analysis.
listing [logical] [physical] [deck] [expand]
Print a listing of the current circuit. If the logical argument
is given, the listing is with all continuation lines collapsed
into one line, and if the physical argument is given the lines
are printed out as they were found in the file. The default is
logical. A deck listing is just like the physical listing,
except without the line numbers it recreates the input file ver-
batim (except that it does not preserve case). If the word
expand is present, the circuit will be printed with all subcir-
cuits expanded.
edit [file]
Print the current SPICE3 deck into a file, call up the editor on
that file and allow the user to modify it, and then read it back
in, replacing the origonal deck. If a filename is given, then
edit that file and load it, making the circuit the current one.
resume Resume a simulation after a stop.
show Show a device parameter.
alter Alter a device parameter.
state Print the state of the circuit. (This command is largely unim-
plemented.)
save [all] [output ...] or .save [all] [output ...]
Save a set of outputs, discarding the rest. If a node has been
mentioned in a save command, it will appear in the working plot
after a run has completed, or in the rawfile if spice is run in
batch mode. If a node is traced or plotted (see below) it will
also be saved. For backward compatibility, if there are no save
commands given, all outputs are saved.
stop [ after n] [ when something cond something ] ...
Set a breakpoint. The argument after n means stop after n itera-
tion number n, and the argument when something cond something
means stop when the first something is in the given relation
with the second something, the possible relations being eq or =
(equal to), ne or <> (not equal to), gt or > (greater than), lt
or < (less than), ge or >= (greater than or equal to), and le or
<= (less than or equal to). IO redirection is disabled for the
stop command, since the relational operations conflict with it
(it doesn’t produce any output anyway). The somethings above
may be node names in the running circuit, or real values. If
more than one condition is given, e.g. stop after 4 when v(1) >
4 when v(2) < 2, the conjunction of the conditions is implied.
trace [ node ...]
Trace nodes. Every iteration the value of the node is printed to
the standard output.
iplot [ node ...]
Incrementally plot the values of the nodes while SPICE3 runs.
step [number]
Iterate number times, or once, and then stop.
status Display all of the traces and breakpoints currently in effect.
delete [debug number ...]
Delete the specified breakpoints and traces. The debug numbers
are those shown by the status command. (Unless you do status >
file, in which case the debug numbers aren’t printed.)
reset Throw out any intermediate data in the circuit (e.g, after a
breakpoint or after one or more analyses have been done
already), and re-parse the deck. The circuit can then be re-run.
(Note: this command used to be end in SPICE 3a5 and earlier ver-
sions -- end is now used for control structures.) The run com-
mand will take care of this automatically, so this command
should not be necessary...
run [rawfile]
Run the simulation as specified in the input file. If there were
any of the control cards .ac, .op, .tran, or .dc, they are exe-
cuted. The output is put in rawfile if it was given, in addition
to being available interactively.
source file
Read the SPICE3 input file file. Nutmeg and SPICE3 commands may
be included in the file, and must be enclosed between the lines
.control and .endc. These commands are executed immediately
after the circuit is loaded, so a control line of ac ... will
work the same as the corresponding .ac card. The first line in
any input file is considered a title line and not parsed but
kept as the name of the circuit. The exception to this rule is
the file .spiceinit. Thus, a SPICE3 command script must begin
with a blank line and then with a .control line. Also, any line
beginning with the characters *# is considered a control line.
This makes it possible to imbed commands in SPICE3 input files
that will be ignored by earlier versions of SPICE. Note: in
spice3a7 and before, the .control and .endc lines were not
needed, and any line beginning with the name of a front-end com-
mand would be executed.
linearize vec ...
Create a new plot with all of the vectors in the current plot,
or only those mentioned if arguments are given. The new vectors
will be interpolated onto a linear time scale, which is deter-
mined by the values of tstep, tstart, and tstop in the currently
active transient analysis. The currently loaded deck must
include a transient analysis (a tran command may be run interac-
tively before the last reset, alternately), and the current plot
must be from this transient analysis. This command is needed
because SPICE3 doesn’t output the results from a transient anal-
ysis in the same manner that SPICE2 did.
There are several set variables that SPICE3 uses but nutmeg does not.
They are:
editor
The editor to use for the edit command.
modelcard
The name of the model card (normally .model).
noaskquit
Do not check to make sure that there are no circuits
suspended and no plots unsaved. Normally SPICE3 will
warn the user when he tries to quit if this is the
case.
nobjthack
Assume that BJT’s have 4 nodes.
noparse
Don’t attempt to parse decks when they are read in
(useful for debugging). Of course, they cannot be run
if they are not parsed.
nosubckt
Don’t expand subcircuits.
renumber
Renumber input lines when a deck has .include’s.
subend
The card to end subcircuits (normally .ends).
subinvoke
The prefix to invoke subcircuits (normally x).
substart
The card to begin subcircuits (normally .subckt).
There are a number of rusage parameters available, in addition to the
ones available in nutmeg:
If there are subcircuits in the input file, SPICE3 expands instances of
them. A subcircuit is delimited by the cards .subckt and .ends, or
whatever the value of the variables substart and subend is, respec-
tively. An instance of a subcircuit is created by specifying a device
with type ’x’ - the device line is written
xname node1 node2 ... subcktname
where the nodes are the node names that replace the formal parameters
on the .subckt line. All nodes that are not formal parameters are
prepended with the name given to the instance and a ’:’, as are the
names of the devices in the subcircuit. If there are several nested
subcircuits, node and device names look like subckt1:subckt2:...:name.
If the variable subinvoke is set, then it is used as the prefix that
specifies instances of subcircuits, instead of ’x’.
VMS NOTES
The standard suffix for rawspice files in VMS is ".raw".
You may have to redefine the value EDITOR if you wish to use the edit
command, since the default for VMS is "vi".
SEE ALSO
nutmeg(1), sconvert(1), spice(1), mfb(3), writedata(3) SPICE3 User’s
Guide
AUTHORS
SPICE3: Tom Quarles (quarles@cad.berkeley.edu)
nutmeg / User interface: Wayne Christopher (faustus@cad.berkeley.edu)
BUGS
SPICE3 will recognise all the notations used in SPICE2 .plot cards, and
will translate vp(1) into ph(v(1)), and so forth. However, if there are
spaces in these names it won’t work. Hence v(1, 2) and (-.5, .5) aren’t
recognised.
BJT’s can have either 3 or 4 nodes, which makes it difficult for the
subcircuit expansion routines to decide what to rename. If the fourth
parameter has been declared as a model name, then it is assumed that
there are 3 nodes, otherwise it is considered a node. To disable this
kludge, you can set the variable "nobjthack", which will force BJT’s to
have 4 nodes (for the purposes of subcircuit expansion, at least).
The @name[param] notation might not work with trace, iplot, etc. yet.
The first line of a command file (except for the .spiceinit file)
should be a comment. Otherwise SPICE may create an empty circuit
structure.
CAVEATS
SPICE3 files specified on the command line are read in before the .spi-
ceinit file is read. Thus if you define aliases there that you call in
a SPICE3 source file mentioned on the command line, they won’t be
recognised.
4th Berkeley Distribution 20 March 1986 SPICE(1)