AC ANALYSIS:
General form: .ac [curve] [points] [start] [final] Example 1: .ac lin 1 1000 1000
Comments: The [curve] field can be “lin” (linear), “dec” (decade), or “oct” (octave), specifying the (non)linearity of the frequency sweep. specifies how many points within the frequency sweep to perform analyses at (for decade sweep, the number of points per decade; for octave, the number of points per octave). The [start] and [final] fields specify the starting and ending frequencies of the sweep, respectively. One final note: the “start” value cannot be zero!
DC ANALYSIS:
General form: .dc [source] [start] [final] [increment] Example 1: .dc vin 1.5 15 0.5
Comments: The .dc card is necessary if you want to print or plot any voltage between two nonzero nodes. Otherwise, the default “small-signal” analysis only prints out the voltage between each nonzero node and node zero.
TRANSIENT ANALYSIS:
General form: .tran [increment] [stop_time] [start_time] + [comp_interval] Example 1: .tran 1m 50m uic Example 2: .tran .5m 32m 0 .01m
Comments: Example 1 has an increment time of 1 millisecond and a stop time of 50 milliseconds (when only two parameters are specified, they are increment time and stop time, respectively). Example 2 has an increment time of 0.5 milliseconds, a stop time of 32 milliseconds, a start time of 0 milliseconds (no delay on start), and a computation interval of 0.01 milliseconds.
Default value for start time is zero. Transient analysis always beings at time zero, but storage of data only takes place between start time and stop time. Data output interval is increment time, or (stop time - start time)/50, which ever is smallest. However, the computing interval variable can be used to force a computational interval smaller than either. For large total interval counts, the itl5 variable in the .options card may be set to a higher number. The “uic” option tells SPICE to “use initial conditions.”
PLOT OUTPUT:
General form: .plot [type] [output1] [output2] . . . [output n] Example 1: .plot dc v(1,2) i(v2) Example 2: .plot ac v(3,4) vp(3,4) i(v1) ip(v1) Example 3: .plot tran v(4,5) i(v2)
Comments: SPICE can’t handle more than eight data point requests on a single .plot or .print card. If requesting more than eight data points, use multiple cards!
Also, here’s a major caveat when using SPICE version 3: if you’re performing AC analysis and you ask SPICE to plot an AC voltage as in example #2, the v(3,4) command will only output the real component of a rectangular-form complex number! SPICE version 2 outputs the polar magnitude of a complex number: a much more meaningful quantity if only a single quantity is asked for. To coerce SPICE3 to give you polar magnitude, you will have to re-write the .print or .plot argument as such: vm(3,4).
PRINT OUTPUT:
General form: .print [type] [output1] [output2] . . . [output n] Example 1: .print dc v(1,2) i(v2) Example 2: .print ac v(2,4) i(vinput) vp(2,3) Example 3: .print tran v(4,5) i(v2)
Comments: SPICE can’t handle more than eight data point requests on a single .plot or .print card. If requesting more than eight data points, use multiple cards!
FOURIER ANALYSIS:
General form: .four [freq] [output1] [output2] . . . [output n] Example 1: .four 60 v(1,2)
Comments: The .four card relies on the .tran card being present somewhere in the deck, with the proper time periods for analysis of adequate cycles. Also, SPICE may “crash” if a .plot analysis isn’t done along with the .four analysis, even if all .tran parameters are technically correct. Finally, the .four analysis option only works when the frequency of the AC source is specified in that source’s card line, and not in an .ac analysis option line.
It helps to include a computation interval variable in the .tran card for better analysis precision. A Fourier analysis of the voltage or current specified is performed up to the 9th harmonic, with the [freq] specification being the fundamental, or starting frequency of the analysis spectrum.
MISCELLANEOUS:
General form: .options [option1] [option2] Example 1: .options limpts=500 Example 2: .options itl5=0 Example 3: .options method=gear Example 4: .options list Example 5: .options nopage Example 6: .options numdgt=6
Comments: There are lots of options that can be specified using this card. Perhaps the one most needed by beginning users of SPICE is the “limpts” setting. When running a simulation that requires more than 201 points to be printed or plotted, this calculation point limit must be increased or else SPICE will terminate analysis. The example given above (limpts=500) tells SPICE to allocate enough memory to handle at least 500 calculation points in whatever type of analysis is specified (DC, AC, or transient).
In example 2, we see an iteration variable (itl5) being set to a value of 0. There are actually six different iteration variables available for user manipulation. They control the iteration cycle limits for solution of nonlinear equations. The variable itl5 sets the maximum number of iterations for a transient analysis. Similar to the limpts variable, itl5 usually needs to be set when a small computation interval has been specified on a .tran card. Setting itl5 to a value of 0 turns off the limit entirely, allowing the computer infinite iteration cycles (infinite time) to compute the analysis. Warning: this may result in long simulation times!
Example 3 with “method=gear” sets the numerical integration method used by SPICE. The default is “trapezoid” rather than “gear,” trapezoid being a simple geometric approximation of area under a curve found by slicing up the curve into trapezoids to approximate the shape. The “gear” method is based on second-order or better polynomial equations and is named after C.W. Gear (Numerical Integration of Stiff Ordinary Equations, Report 221, Department of Computer Science, University of Illinois, Urbana). The Gear method of integration is more demanding of the computer (computationally “expensive”) and will sometimes give slightly different results from the trapezoid method.
The “list” option shown in example 4 gives a verbose summary of all circuit components and their respective values in the final output.
By default, SPICE will insert ASCII page-break control codes in the output to separate different sections of the analysis. Specifying the “nopage” option (example 5) will prevent such pagination.
The “numdgt” option shown in example 6 specifies the number of significant digits output when using one of the “.print” data output options. SPICE defaults at a precision of 4 significant digits.
WIDTH CONTROL:
General form: .width in=[columns] out=[columns] Example 1: .width out=80
In Partnership with Future Electronics
by Jake Hertz
by Robert Keim