Physics and Astronomy 

Physics Home  Study here  Our Teaching  Our Research  Our Centres  News  Work here  EMPS 
Back to top
SPICE 3 User's Manual  Section 4
4 ANALYSES AND OUTPUT CONTROLThe following command lines are for specifying analyses or plots within the circuit description file. Parallel commands exist in the interactive command interpreter (detailed in the following section). Specifying analyses and plots (or tables) in the input file is useful for batch runs. Batch mode is entered when either the b option is given or when the default input source is redirected from a file. In batch mode, the analyses specified by the control lines in the input file (e.g. ".AC", ".TRAN", etc.) are immediately executed (unless ".CONTROL" lines exists; see the section on the interactive command interpreter). If the r rawfile option is given then all data generated is written to a Spice3 rawfile. The rawfile may be read by either the interactive mode of Spice3 or by nutmeg; see the previous section for details. In this case, the .SAVE line (see below) may be used to record the value of internal device variables (see Appendix B). If a rawfile is not specified, then output plots (in "lineprinter" form) and tables can be printed according to the .PRINT, .PLOT, and .FOUR control lines, described next. .PLOT, .PRINT, and .FOUR lines are meant for compatibility with Spice2. 4.1 SIMULATOR VARIABLES (.OPTIONS)Various parameters of the simulations available in Spice3 can be altered to control the accuracy, speed, or default values for some devices. These parameters may be changed via the set command (described later in the section on the interactive frontend) or via the ".OPTIONS" line: General form: .OPTIONS OPT1 OPT2 ... (or OPT=OPTVAL ...)Examples: .OPTIONS RELTOL=.005 TRTOL=8 The options line allows the user to reset program control and user options for specific simulation purposes. Additional options for Nutmeg may be specified as well and take effect when Nutmeg reads the input file. Options specified to Nutmeg via the 'set' command are also passed on to SPICE3 as if specified on a .OPTIONS line. See the following section on the interactive command interpreter for the parameters which may be set with a .OPTIONS line and the format of the 'set' command. Any combination of the following options may be included, in any order. 'x' (below) represents some positive number.
[Note: items marked with an asterisk '*' in the above table are in the source code but not listed in the original documentation and are therefore 'unsupported' in SPICE 3f5. CDHW] In addition, the following options have the listed effect when operating in spice2 emulation mode:
4.2 INITIAL CONDITIONS4.2.1 .NODESET: Specify Initial Node Voltage GuessesGeneral form:.NODESET V(NODNUM)=VAL V(NODNUM)=VAL ...Examples: .NODESET V(12)=4.5 V(4)=2.23 The Nodeset line helps the program find the dc or initial transient solution by making a preliminary pass with the specified nodes held to the given voltages. The restriction is then released and the iteration continues to the true solution. The .NODESET line may be necessary for convergence on bistable or astable circuits. In general, this line should not be necessary. 4.2.2 .IC: Set Initial ConditionsGeneral form:.IC V(NODNUM)=VAL V(NODNUM)=VAL ...Examples: .IC V(11)=5 V(4)=5 V(2)=2.2The .IC line is for setting transient initial conditions. It has two different interpretations, depending on whether the UIC parameter is specified on the .TRAN control line. Also, one should not confuse this line with the .NODESET line. The .NODESET line is only to help dc convergence, and does not affect final bias solution (except for multistable circuits). The two interpretations of this line are as follows:
4.3 ANALYSES4.3.1 .AC: SmallSignal AC AnalysisGeneral form:.AC DEC ND FSTART FSTOP .AC OCT NO FSTART FSTOP .AC LIN NP FSTART FSTOPExamples: .AC DEC 10 1 10K .AC DEC 10 1K 100MEG .AC LIN 100 1 100HZDEC stands for decade variation, and ND is the number of points per decade. OCT stands for octave variation, and NO is the number of points per octave. LIN stands for linear variation, and NP is the number of points. FSTART is the starting frequency, and FSTOP is the final frequency. If this line is included in the input file, SPICE performs an AC analysis of the circuit over the specified frequency range. Note that in order for this analysis to be meaningful, at least one independent source must have been specified with an ac value. 4.3.2 .DC: DC Transfer FunctionGeneral form:.DC SRCNAM VSTART VSTOP VINCR [ SRC2 START2 STOP2 INCR2 ]Examples: .DC VIN 0.25 5.0 0.25 .DC VDS 0 10 .5 VGS 0 5 1 .DC VCE 0 10 .25 IB 0 10U 1U The inclusion of this line in an input file directs SPICE to perform a dc analysis of the circuit. The DC line defines the dc transfer curve source and sweep limits (again with capacitors open and inductors shorted). SRCNAM is the name of an independent voltage or current source. VSTART, VSTOP, and VINCR are the starting, final, and incrementing values respectively. The first example causes the value of the voltage source VIN to be swept from 0.25 volts to 5.0 volts in increments of 0.25 volts. A second source (SRC2) may optionally be specified with associated sweep parameters. In this case, the first source is swept over its range for each value of the second source. This option can be useful for obtaining semiconductor device output characteristics. See the second example circuit description in Appendix A. [Note: when two sources are used the transpose and reshape commands are needed to convert the results into a form suitable for plotting.] 4.3.3 .DISTO: Distortion AnalysisGeneral form:.DISTO DEC ND FSTART FSTOP [ F2OVERF1 ] .DISTO OCT NO FSTART FSTOP [ F2OVERF1 ] .DISTO LIN NP FSTART FSTOP [ F2OVERF1 ]Examples: .DISTO DEC 10 1kHz 100Mhz .DISTO DEC 10 1kHz 100Mhz 0.9The Disto line does a smallsignal distortion analysis of the circuit. A multidimensional Volterra series analysis is done using multidimensional Taylor series to represent the nonlinearities at the operating point. Terms of up to third order are used in the series expansions. If the optional parameter F2OVERF1 is not specified, .DISTO does a harmonic analysis  i.e., it analyses distortion in the circuit using only a single input frequency F1, which is swept as specified by arguments of the .DISTO command exactly as in the .AC command. Inputs at this frequency may be present at more than one input source, and their magnitudes and phases are specified by the arguments of the DISTOF1 keyword in the input file lines for the input sources (see the description for independent sources). (The arguments of the DISTOF2 keyword are not relevant in this case). The analysis produces information about the A.C. values of all node voltages and branch currents at the harmonic frequencies 2F1 and 3F1, vs. the input frequency F1 as it is swept. (A value of 1 (as a complex distortion output) signifies cos(2J(2F1)t) at 2F1 and cos(2J(3F1)t) at 3F1, using the convention that 1 at the input fundamental frequency is equivalent to cos(2JF1t).) The distortion component desired (2F1 or 3F1) can be selected using commands in nutmeg, and then printed or plotted. (Normally, one is interested primarily in the magnitude of the harmonic components, so the magnitude of the AC distortion value is looked at). It should be noted that these are the A.C. values of the actual harmonic components, and are not equal to HD2 and HD3. To obtain HD2 and HD3, one must divide by the corresponding A.C. values at F1, obtained from an .AC line. This division can be done using nutmeg commands. If the optional F2OVERF1 parameter is specified, it should be a real number between (and not equal to) 0.0 and 1.0; in this case, .DISTO does a spectral analysis. It considers the circuit with sinusoidal inputs at two different frequencies F1 and F2. F1 is swept according to the .DISTO control line options exactly as in the .AC control line. F2 is kept fixed at a single frequency as F1 sweeps  the value at which it is kept fixed is equal to F2OVERF1 times FSTART. Each independent source in the circuit may potentially have two (superimposed) sinusoidal inputs for distortion, at the frequencies F1 and F2. The magnitude and phase of the F1 component are specified by the arguments of the DISTOF1 keyword in the source's input line (see the description of independent sources); the magnitude and phase of the F2 component are specified by the arguments of the DISTOF2 keyword. The analysis produces plots of all node voltages/branch currents at the intermodulation product frequencies F1 + F2, F1  F2, and (2 F1)  F2, vs the swept frequency F1. The IM product of interest may be selected using the setplot command, and displayed with the print and plot commands. It is to be noted as in the harmonic analysis case, the results are the actual AC voltages and currents at the intermodulation frequencies, and need to be normalized with respect to .AC values to obtain the IM parameters. If the DISTOF1 or DISTOF2 keywords are missing from the description of an independent source, then that source is assumed to have no input at the corresponding frequency. The default values of the magnitude and phase are 1.0 and 0.0 respectively. The phase should be specified in degrees. It should be carefully noted that the number F2OVERF1 should ideally be an irrational number, and that since this is not possible in practice, efforts should be made to keep the denominator in its fractional representation as large as possible, certainly above 3, for accurate results (i.e., if F2OVERF1 is represented as a fraction A/B, where A and B are integers with no common factors, B should be as large as possible; note that A < B because F2OVERF1 is constrained to be < 1). To illustrate why, consider the cases where F2OVERF1 is 49/100 and 1/2. In a spectral analysis, the outputs produced are at F1 + F2, F1  F2 and 2 F1  F2. In the latter case, F1  F2 = F2, so the result at the F1F2 component is erroneous because there is the strong fundamental F2 component at the same frequency. Also, F1 + F2 = 2 F1  F2 in the latter case, and each result is erroneous individually. This problem is not there in the case where F2OVERF1 = 49/100, because F1F2 = 51/100 F1 < > 49/100 F1 = F2. In this case, there are two very closely spaced frequency components at F2 and F1  F2. One of the advantages of the Volterra series technique is that it computes distortions at mix frequencies expressed symbolically (i.e., n F1 + m F2), therefore one is able to obtain the strengths of distortion components accurately even if the separation between them is very small, as opposed to transient analysis for example. The disadvantage is of course that if two of the mix frequencies coincide, the results are not merged together and presented (though this could presumably be done as a postprocessing step). Currently, the interested user should keep track of the mix frequencies himself or herself and add the distortions at coinciding mix frequencies together should it be necessary. 4.3.4 .NOISE: Noise AnalysisGeneral form:.NOISE V(OUTPUT [ , REF ] ) SRC [ DEC  LIN  OCT ] PTS FSTART FSTOP + [ PTS_PER_SUMMARY ]Examples: .NOISE V(5) VIN DEC 10 1kHZ 100Mhz .NOISE V(5,3) V1 OCT 8 1.0 1.0e6 1The Noise line does a noise analysis of the circuit. OUTPUT is the node at which the total output noise is desired; if REF is specified, then the noise voltage V(OUTPUT)  V(REF) is calculated. By default, REF is assumed to be ground. SRC is the name of an independent source to which input noise is referred. PTS, FSTART and FSTOP are .AC type parameters that specify the frequency range over which plots are desired. PTS_PER_SUMMARY is an optional integer; if specified, the noise contributions of each noise generator is produced every PTS_PER_SUMMARY frequency points. The .NOISE control line produces two plots  one for the Noise Spectral Density curves and one for the total Integrated Noise over the specified frequency range. All noise voltages/currents are in squared units (V^{2}/Hz and A^{2}/Hz for spectral density, V^{2} and A^{2} for integrated noise). 4.3.5 .OP: Operating Point AnalysisGeneral form:.OPThe inclusion of this line in an input file directs SPICE to determine the dc operating point of the circuit with inductors shorted and capacitors opened. Note: a dc analysis is automatically performed prior to a transient analysis to determine the transient initial conditions, and prior to an AC smallsignal, Noise, and PoleZero analysis to determine the linearized, smallsignal models for non linear devices (see the KEEPOPINFO variable above). 4.3.6 .PZ: PoleZero AnalysisGeneral form:.PZ NODE1 NODE2 NODE3 NODE4 { CUR  VOL } { POL  ZER  PZ }Examples: .PZ 1 0 3 0 CUR POL .PZ 2 3 5 0 VOL ZER .PZ 4 1 4 1 CUR PZThe inclusion of this line in an input file directs SPICE to perform a polezero analysis. CUR stands for a transfer function of the type (output voltage)/(input current) while VOL stands for a transfer function of the type (output voltage)/(input voltage). POL stands for pole analysis only, ZER for zero analysis only and PZ for both. This feature is provided mainly because if there is a nonconvergence in finding poles or zeros, then, at least the other can be found. Finally, NODE1 and NODE2 are the two input nodes and NODE3 and NODE4 are the two output nodes. Thus, there is complete freedom regarding the output and input ports and the type of transfer function. In interactive mode, the command syntax is the same except that the first field is PZ instead of .PZ. To print the results, one should use the command 'print all'. 4.3.7 .SENS: DC or SmallSignal AC Sensitivity AnalysisGeneral form:.SENS OUTVAR .SENS OUTVAR AC DEC ND FSTART FSTOP .SENS OUTVAR AC OCT NO FSTART FSTOP .SENS OUTVAR AC LIN NP FSTART FSTOPExamples: .SENS V(1,OUT) .SENS V(OUT) AC DEC 10 100 100k .SENS I(VTEST)The sensitivity of OUTVAR to all nonzero device parameters is calculated when the SENS analysis is specified. OUTVAR is a circuit variable (node voltage or voltagesource branch current). The first form calculates sensitivity of the DC operatingpoint value of OUTVAR. The second form calculates sensitivity of the AC values of OUTVAR. The parameters listed for AC sensitivity are the same as in an AC analysis (see ".AC" above). The output values are in dimensions of change in output per unit change of input (as opposed to percent change in output or per percent change of input). 4.3.8 .TF: Transfer Function AnalysisGeneral form:.TF OUTVAR INSRCExamples: .TF V(5, 3) VIN .TF I(VLOAD) VINThe TF line defines the smallsignal output and input for the dc smallsignal analysis. OUTVAR is the smallsignal output variable and INSRC is the smallsignal input source. If this line is included, SPICE computes the dc smallsignal value of the transfer function (output/input), input resistance, and output resistance. For the first example, SPICE would compute the ratio of V(5, 3) to VIN, the smallsignal input resistance at VIN, and the smallsignal output resistance measured across nodes 5 and 3. 4.3.9 .TRAN: Transient AnalysisGeneral form:.TRAN TSTEP TSTOP [ [ TSTART ] TMAX ]Examples: .TRAN 1NS 100NS .TRAN 1NS 1000NS 500NS .TRAN 10NS 1USThe inclusion of this line in an input file directs SPICE to perfom a transient analysis of the circuit. TSTEP is the printing or plotting increment for lineprinter output. For use with the postprocessor, TSTEP is the suggested computing increment. TSTOP is the final time, and TSTART is the initial time. If TSTART is omitted, it is assumed to be zero. The transient analysis always begins at time zero. In the interval <zero, TSTART>, the circuit is analyzed (to reach a steady state), but no outputs are stored. In the interval <TSTART, TSTOP>, the circuit is analyzed and outputs are stored. TMAX is the maximum stepsize that SPICE uses; for default, the program chooses either TSTEP or (TSTOPTSTART)/50.0, whichever is smaller. TMAX is useful when one wishes to guarantee a computing interval which is smaller than the printer increment, TSTEP. (See also §4.4.4 .FOUR) [Note: The original Berkeley code had a bug so it actually chooses the larger of either TSTEP or (TSTOPTSTART)/50.0 so I suggest you set TMAX explicitly unless you have a patched version. Another reason for doing this is that certain circuits, particularly those involving sinusoidal oscillation, fool the integrator into increasing the timestep too much. For circuits which use short pulses, TMAX should be no more than about 50 times the shortest feature of interest. There is also an internal lower limit 1e9*TMAX imposed on TSTEP and nonconvergent circuits may give 'Timestep too short' messages indicating this limit has been hit. CDHW.] UIC (use initial conditions) is an optional keyword which indicates that the user does not want SPICE to solve for the quiescent operating point before beginning the transient analysis. If this keyword is specified, SPICE uses the values specified using IC=... on the various elements as the initial transient condition and proceeds with the analysis. If the .IC control line has been specified, then the node voltages on the .IC line are used to compute the initial conditions for the devices. Look at the description on the .IC control line for its interpretation when UIC is not specified. 4.4 BATCH OUTPUT4.4.1 .SAVE LinesGeneral form:.SAVE [ vector ... ]Examples: .SAVE i(vin) input output .SAVE @m1[id]The vectors listed on the .SAVE line are recorded in the rawfile for use later with spice3 or nutmeg (nutmeg is just the dataanalysis half of spice3, without the ability to simulate). The standard vector names are accepted. If no .SAVE line is given, then the default set of vectors are saved (node voltages and voltage source branch currents). If .SAVE lines are given, only those vectors specified are saved. For more discussion on internal device data, see Appendix B. See also the section on the interactive command interpreter for information on how to use the rawfile. 4.4.2 .PRINT LinesGeneral form:.PRINT PRTYPE OV1 [ OV2 ... OV8 ]Examples: .PRINT TRAN V(4) I(VIN) .PRINT DC V(2) I(VSRC) V(23, 17) .PRINT AC VM(4, 2) VR(7) VP(8, 3)The PRINT line defines the contents of a tabular listing of one to eight output variables. PRTYPE is the type of the analysis (DC, AC, TRAN, NOISE, or DISTO) for which the specified outputs are desired. The form for voltage or current output variables is the same as given in the previous section for the print command; Spice2 restricts the output variable to the following forms (though this restriction is not enforced by Spice3):
There is no limit on the number of .PRINT lines for each type of analysis. 4.4.3 .PLOT LinesGeneral form:.PLOT PLTYPE OV1 [ (PLO1, PHI1) ] [ OV2 [ (PLO2, PHI2) ] ... OV8 ]Examples: .PLOT DC V(4) V(5) V(1) .PLOT TRAN V(17, 5) (2, 5) I(VIN) V(17) (1, 9) .PLOT AC VM(5) VM(31, 24) VDB(5) VP(5) .PLOT DISTO HD2 HD3(R) SIM2 .PLOT TRAN V(5, 3) V(4) (0, 5) V(7) (0, 10)The PLOT line defines the contents of one plot of from one to eight output variables. PLTYPE is the type of analysis (DC, AC, TRAN, NOISE, or DISTO) for which the specified outputs are desired. The syntax for the OVI is identical to that for the .PRINT line and for the plot command in the interactive mode. The overlap of two or more traces on any plot is indicated by the letter X. When more than one output variable appears on the same plot, the first variable specified is printed as well as plotted. If a printout of all variables is desired, then a companion .PRINT line should be included. There is no limit on the number of .PLOT lines specified for each type of analysis. 4.4.4 .FOUR: Fourier Analysis of Transient Analysis OutputGeneral form:.FOUR FREQ OV1 [ OV2 OV3 ... ]Examples: .FOUR 100K V(5)The Four (or Fourier) line controls whether SPICE performs a Fourier analysis as a part of the transient analysis. FREQ is the fundamental frequency, and OV1, desired. The Fourier analysis is performed over the interval <TSTOPperiod, TSTOP>, where TSTOP is the final time specified for the transient analysis, and period is one period of the fundamental frequency. The dc component and the first nine harmonics are determined. For maximum accuracy, TMAX (see the .TRAN line) should be set to period/100.0 (or less for very highQ circuits). 