BSD 3 development
authorR. Dowell <x-rd@ucbvax.Berkeley.EDU>
Mon, 10 Dec 1979 03:24:21 +0000 (19:24 -0800)
committerR. Dowell <x-rd@ucbvax.Berkeley.EDU>
Mon, 10 Dec 1979 03:24:21 +0000 (19:24 -0800)
Work on file usr/doc/spice

Co-Authored-By: Rich Newton <arn@ucbvax.Berkeley.EDU>
Co-Authored-By: Don O. Pederson <dop@ucbvax.Berkeley.EDU>
Synthesized-from: 3bsd

usr/doc/spice [new file with mode: 0644]

diff --git a/usr/doc/spice b/usr/doc/spice
new file mode 100644 (file)
index 0000000..50a3ae0
--- /dev/null
@@ -0,0 +1,1946 @@
+.th
+.(l C
+.b "Spice VAX Version 2X.x User's Guide"
+.sp 0.2i
+R.Dowell, A.R.Newton, D.O.Pederson
+Department of Electrical Engineering and Computer Sciences
+University of California
+Berkeley, Ca., 94720
+.sp 0.2i
+.)l
+.pp
+Spice is a general-purpose circuit simulation program for nonlinear dc,
+nonlinear transient, and linear ac analyses.  Circuits may contain resistors,
+capacitors, inductors, mutual inductors, independent voltage and current
+sources, four types of dependent sources, transmission lines, and the four most
+common semiconductor devices:  diodes, bjts, jfets, and mosfets.
+.pp
+Spice has built-in models for the semiconductor devices, and the user need
+specify only the pertinent model parameter values.  The model for the bjt is
+based on the integral charge model of Gummel and Poon;  however, if the Gummel-
+Poon parameters are not specified, the model reduces to the simpler Ebers-Moll
+model.  In either case, charge storage effects, ohmic resistances, and a
+current-dependent output conductance may be included.  The diode model can be
+used for either junction diodes or schottky barrier diodes.  The jfet model is
+based on the fet model of Shichman and Hodges.  The model for the mosfet is
+based on the Frohman-Grove model;  however, channel-length modulation,
+subthreshold conduction, and some short-channel effects are included.
+.pp
+Note that the mosfet model parameter lambda has been changed to express
+channel length modulation in meters/volt in this version of spice.
+.bp
+.sh 1 "TYPES OF ANALYSIS"
+.sp 0.2i
+.sh 2 "dc analysis"
+.pp
+The dc analysis portion of spice determines the dc operating point of the
+circuit with inductors shorted and capacitors opened.  A dc analysis is
+automatically performed prior to a transient analysis to determine the transient
+initial conditions, and prior to an ac small-signal analysis to determine the
+linearized, small-signal models for nonlinear devices.  If requested, the dc
+small-signal value of a transfer function (ratio of output variable to input
+source), input resistance, and output resistance will also be computed as a
+part of the dc solution.  The dc analysis can also be used to generate dc
+transfer curves:  a specified independent voltage or current source is stepped
+over a user-specified range and the dc output variables are stored for each
+sequential source value.  If requested, spice also will determine the dc
+small-signal sensitivities of specified output variables with respect to circuit
+parameters.  The dc analysis options are specified on the .dc, .tf, .op,
+and .sens control cards.
+.pp
+If one desires to see the small-signal models for nonlinear devices
+in conjunction with a transient analysis operating point, then the '.op'
+card must be provided.  The dc bias conditions will be identical for each
+case, but the more comprehensive operating point information is not available
+to be printed when transient initial conditions are computed.
+.sp 0.2i
+.sh 2 "ac small-signal analysis"
+.pp
+The ac small-signal portion of spice computes the ac output variables as a
+function of frequency.  The program first computes the dc operating point of
+the circuit and determines linearized, small-signal models for all of the
+nonlinear devices in the circuit.  The resultant linear circuit is then analyzed
+over a user-specified range of frequencies.  The desired output of an ac small-
+signal analysis is usually a transfer function (voltage gain, transimpedance,
+etc).  If the circuit has only one ac input, it is convenient to set that input
+to unity and zero phase, so that output variables have the same value as the
+transfer function of the output variable with respect to the input.
+.pp
+The generation of white noise by resistors and semiconductor devices can
+also be simulated with the ac small-signal portion of spice.  Equivalent noise
+source values are determined automatically from the small-signal operating
+point of the circuit, and the contribution of each noise source is added at a
+given summing point.  The total output noise level and the equivalent input
+noise level are determined at each frequency point.  The output and input noise
+levels are normalized with respect to the square root of the noise bandwidth
+and have the units volts/rt hz or amps/rt hz.  The output noise and equivalent
+input noise can be printed or plotted in the same fashion as other output
+variables.  No additional input data is necessary for this analysis.
+.pp
+Flicker noise sources can be simulated in the noise analysis by including
+values for the parameters kf and af on the appropriate device model cards.
+.pp
+The distortion characteristics of a circuit in the small-signal mode can
+be simulated as a part of the ac small-signal analysis.  The analysis is
+performed assuming that one or two signal frequencies are imposed at the input.
+.pp
+The frequency range and the noise and distortion analysis parameters are
+specified on the .ac, .noise, and .distortion control lines.
+.sp 0.2i
+.sh 2 "transient analysis"
+.pp
+The transient analysis portion of spice computes the transient output
+variables as a function of time over a user-specified time interval.  The
+initial conditions are automatically determined by a dc analysis.  All sources
+which are not time dependent (for example, power supplies) are set to their dc
+value.  For large-signal sinusoidal simulations, a fourier analysis of the
+output waveform can be specified to obtain the frequency domain fourier
+coefficients.  The transient time interval and the fourier analysis options are
+specified on the .tran and .fourier control lines.
+.sp 0.2i
+.sh 2 "analysis at different temperatures"
+.pp
+All input data for spice is assumed to have been measured at 25 deg c
+(298 deg k).  The simulation also assumes a nominal temperature of 25 deg c.
+The circuit can be simulated at other temperatures by using a .temp control
+line.
+.pp
+Temperature appears explicitly in the exponential terms of the bjt and
+diode model equations.  In addition, saturation currents have a built-in
+temperature dependence.  The temperature dependence of the saturation current
+in the bjt models is determined by:
+.(l
+js(T1) = js(T0)*((T1/T0)**pt)*exp(q*Eg*(T1-T0)/(k*T1*T0))
+.)l
+where k is boltzmans constant, q is the electronic charge, Eg is the energy
+gap which is a model parameter, and pt is the saturation current
+temperature exponent (also a model parameter, and usually equal to 3).  The
+temperature dependence of forward and reverse beta is according to the formula:
+.(l
+beta(T1)=beta(T0)*(T1/T0)**tb
+.)l
+where T1 and T0 are in degrees kelvin, and tb is a user-supplied model
+parameter.  Temperature effects on beta are carried out by appropriate
+adjustment to the values of bf, jle, br, and jlc.  Temperature dependence of the
+saturation current in the junction diode model is determined by:
+.(l
+is(T1) = is(T0)*((T1/T0)**(pt/n))*exp(q*Eg*(T1-T0)/(k*n*T1*T0))
+.)l
+where n is the emission coefficient, which is a model parameter, and the other
+symbols have the same meaning as above.  Note that for schottky barrier diodes,
+the value of the saturation current temperature exponent, pt, is usually 2.
+.pp
+Temperature appears explicitly in the value of junction potential, phi,
+for all the device models.  The temperature dependence is determined by:
+.(l
+phi(temp) = k*temp/q*log(Na*Nd/Ni(temp)**2)
+.)l
+where k is boltzmans constant, q is the electronic charge, Na is the acceptor
+impurity density, Nd is the donor impurity density, Ni is the intrinsic
+concentration, and Eg is the energy gap.
+.pp
+Temperature appears explicitly in the value of surface mobility, uo, for
+the mosfet model.  The temperature dependence is determined by:
+.(l
+uo(temp) = uo(tnom)/(temp/tnom)**(1.5)
+.)l
+.pp
+The effects of temperature on resistors is modeled by the formula:
+.(l
+value(temp) = value(tnom)*(1+tc1*(temp-tnom)+tc2*(temp-tnom)**2))
+.)l
+where temp is the circuit temperature, tnom is the nominal temperature, and
+tc1 and tc2 are the first- and second-order temperature coefficients.
+.sp 0.5i
+.sh 1 "CONVERGENCE"
+.sp 0.2i
+.pp
+Both dc and transient solutions are obtained by an iterative process which
+is terminated when both of the following conditions hold:
+.sp 0.2i
+.ip 1)
+The nonlinear branch currents converge to within a tolerance of
+0.1 percent or 1 picoamp (1.0e-12 amp), whichever is larger.
+.ip 2)
+The node voltages converge to within a tolerance of 0.1 percent
+or 1 microvolt (1.0e-6 volt), whichever is larger.
+.pp
+Although the algorithm used in spice has been found to be very reliable, in
+some cases it will fail to converge to a solution.  When this failure occurs,
+the program will print the node voltages at the last iteration and terminate
+the job.  In such cases, the node voltages that are printed are not necessarily
+correct or even close to the correct solution.
+.pp
+Failure to converge in the dc analysis is usually due to an error in
+specifying circuit connections, element values, or model parameter values.
+Regenerative switching circuits or circuits with positive feedback probably
+will not converge in the dc analysis unless the 'off' option is used for some
+of the devices in the feedback path, or the .nodeset card is used to force the
+circuit to converge to the desired state.
+.sp 0.2i
+.bp
+.sh 1 "INPUT FORMAT"
+.sp 0.2i
+.pp
+The input format for spice is of the free format type.  Fields on a card
+are separated by one or more blanks, a comma, an equal (=) sign, or a left or
+right parenthesis;  extra spaces are ignored.  A card may be continued by
+entering a + (plus) in column 1 of the following card;  spice continues reading
+beginning with column 2.
+.pp
+A name field must begin with a letter (a through z) and cannot contain
+any delimiters.  Only the first eight characters of the name are used.
+.pp
+A number field may be an integer field (12, -44), a floating point field
+(3.14159), either an integer or floating point number followed by an integer
+exponent (1e-14, 2.65e3), or either an integer or a floating point number
+followed by one of the following scale factors:
+.sp 0.2i
+.TS
+center;
+l l l l l.
+t=1e12 g=1e9   meg=1e6 k=1e3   mil=25.4e-6
+m=1e-3 u=1e-6  n=1e-9  p=1e-12 f=1e-15
+.TE
+.sp 0.2i
+Letters immediately following a number that are not scale factors are ignored,
+and letters immediately following a scale factor are ignored.  Hence, 10, 10v,
+10volts, and 10hz all represent the same number, and m, ma, msec, and mmhos all
+represent the same scale factor.  Note that 1000, 1000.0, 1000hz, 1e3, 1.0e3,
+1khz, and 1k all represent the same number.
+.bp
+.sh 1 "CIRCUIT DESCRIPTION"
+.pp
+The circuit to be analyzed is described to spice by a set of element
+cards, which define the circuit topology and element values, and a set of
+control cards, which define the model parameters and the run controls.  The
+first card in the input deck must be a title card, and the last card must be
+a .end card.  The order of the remaining cards is arbitrary (except, of course,
+that continuation cards must immediately follow the card being continued).
+.pp
+Each element in the circuit is specified by an element card that contains
+the element name, the circuit nodes to which the element is connected, and the
+values of the parameters that determine the electrical characteristics of the
+element.  The first letter of the element name specifies the element type.
+The format for the spice element types is given in what follows.  The strings
+'xxxxxxx', 'yyyyyyy', and 'zzzzzzz' denote arbitrary alphanumeric strings.  For
+example, a resistor name must begin with the letter r and can contain from one
+to eight characters.  Hence, r, r1, rse, rout, and r3ac2zy are valid resistor
+names.
+.pp
+Data fields that are enclosed in lt and gt signs '< >' are optional.  All
+indicated punctuation (parentheses, equal signs, etc.) are required.  With
+respect to branch voltages and currents, spice uniformly uses the associated
+reference convention (current flows in the direction of voltage drop).
+.pp
+Nodes must be nonnegative integers but need not be numbered sequentially.
+The datum (ground) node must be numbered zero.  The circuit cannot contain a
+loop of voltage sources and/or inductors and cannot contain a cutset of current
+sources and/or capacitors.  Each node in the circuit must have a dc path to
+ground.  Every node must have at least two connections except for transmission
+line nodes (to permit unterminated transmission lines) and mosfet substrate
+nodes (which have two internal connections anyway).
+.sh 1 "TITLE CARD, COMMENT CARDS AND .END CARD"
+.sp 0.2i
+.sh 2 "title card"
+.sp 0.2i
+.b "Examples:"
+.(l
+power amplifier circuit
+test of CAM cell
+.)l
+.pp
+This card must be the first card in the input deck.  Its contents are
+printed verbatim as the heading for each section of output.
+.sh 2 ".end card"
+.sp 0.2i
+.b "Examples:"
+.(l
+ .end
+.)l
+.pp
+This card must always be the last card in the input deck.  Note that the
+period is an integral part of the name.
+.sp 0.2i
+.sh 2 "comment card"
+.sp 0.2i
+.b "General form:"
+.(l
+* <any comment>
+.)l
+.b "Examples:"
+.(l
+* rf=1k      gain should be 100
+* May the Force be with my circuit
+.)l
+.pp
+The asterisk in the first column indicates that this card is a
+comment card.  Comment cards may be placed anywhere in the circuit description.
+.bp
+.sh 1 "ELEMENT CARDS"
+.sp 0.2i
+.sh 2 "resistors"
+.sp 0.2i
+.b "General form:"
+.(l
+rxxxxxxx n1 n2 value <tc=tc1<,tc2>>
+.)l
+.b "Examples:"
+.(l
+r1 1 2 100
+rc1 12 17 1k tc=0.001,0.015
+.)l
+.pp
+N1 and n2 are the two element nodes.  Value is the resistance (in ohms)
+and may be positive or negative but not zero.  Tc1 and tc2 are the (optional)
+temperature coefficients;  if not specified, zero is assumed for both.  The
+value of the resistor as a function of temperature is given by:
+.(l
+value(temp) = value(tnom)*(1+tc1*(temp-tnom)+tc2*(temp-tnom)**2))
+.)l
+.sp 0.4i
+.sh 2 "capacitors and inductors"
+.sp 0.2i
+.b "General form:"
+.(l
+cxxxxxxx n+ n- value <ic=incond>
+lyyyyyyy n+ n- value <ic=incond>
+.)l
+.sp 0.2i
+.b "Examples:"
+.(l
+cbyp 13 0 1uf
+cosc 17 23 10u ic=3v
+llink 42 69 1uh
+lshunt 23 51 10u ic=15.7ma
+.)l
+.pp
+N+ and n- are the positive and negative element nodes, respectively.
+Value is the capacitance in farads or the inductance in henries.
+.pp
+For the capacitor, the (optional) initial condition is the initial
+time-zero) value of capacitor voltage (in volts).  For the inductor, the (option
+initial condition is the initial (time-zero) value of inductor current (in
+amps) that flows from n+, through the inductor, to n-.  Note that the initial
+conditions (if any) apply 'only' if the uic option is specified on the .tran
+card.
+.sh 2 "coupled (mutual) inductors"
+.sp 0.2i
+.b "General form:"
+.(l
+kxxxxxxx lyyyyyyy lzzzzzzz value
+.)l
+.b "Examples:"
+.(l
+k43 laa lbb 0.999
+kxfrmr l1 l2 0.87
+.)l
+.pp
+lyyyyyyy and lzzzzzzz are the names of the two coupled inductors, and
+value is the coefficient of coupling, k, which must be greater than 0 and less
+than or equal to 1.  Using the 'dot' convention, place a 'dot' on the first
+node of each inductor.
+.sp 0.2i
+.sh 2 "transmission lines (lossless)"
+.sp 0.2i
+.b "General form:"
+.(l
+txxxxxxx n1 n2 n3 n4 z0=value <td=value> <f=freq <nl=nrmlen>>
++                    <ic=v1,i1,v2,i2>
+.)l
+.sp 0.2i
+.b "Examples:"
+.(l
+t1 1 0 2 0 z0=50 td=10ns
+.)l
+.pp
+N1 and n2 are the nodes at port 1;  n3 and n4 are the nodes at port 2.
+Z0 is the characteristic impedance.  The length of the line may be expressed in
+either of two forms.  The transmission delay, td, may be specified directly (as
+td=10ns, for example).  Alternatively, a frequency f may be given, together
+with nl, the normalized electrical length of the transmission line with respect
+to the wavelength in the line at the frequency f.  If a frequency is specified
+but nl is omitted, 0.25 is assumed (that is, the frequency is assumed to be the
+quarter-wave frequency).  Note that although both forms for expressing the line
+length are indicated as optional, one of the two must be specified.
+.pp
+Note that this element models only one propagating mode.  If all four
+nodes are distinct in the actual circuit, then two modes may be excited.  To
+simulate such a situation, two transmission-line elements are required.  (see
+the example in Appendix A for further clarification.)
+.pp
+The (optional) initial condition specification consists of the voltage
+and current at each of the transmission line ports.  Note that the initial
+conditions (if any) apply 'only' if the uic option is specified on the .tran
+card.
+.pp
+One should be aware that spice will use a transient time-step which
+does not exceed 1/2 the minimum transmission line delay.  Therefore very
+short transmission lines (compared with the analysis time frame) will cause
+long run times.
+.sh 2 "linear dependent sources"
+.pp
+Spice allows circuits to contain linear dependent sources characterized by
+any of the four equations
+.sp 0.2i
+        i=g*v          v=e*v          i=f*i          v=h*i
+.sp 0.2i
+where g, e, f, and h are constants representing transconductance, voltage gain,
+current gain, and transresistance, respectively.  Note:  a more complete
+description of dependent sources as implemented in spice is given in Appendix B.
+.sp 0.2i
+.sh 2 "linear voltage-controlled current sources"
+.sp 0.2i
+.b "General form:"
+.(l
+gxxxxxxx n+ n- nc+ nc- value
+.)l
+.sp 0.2i
+.b "Examples:"
+.(l
+g1 2 0 5 0 0.1mmho
+.)l
+.pp
+N+ and n- are the positive and negative nodes, respectively.  Current flow
+is from the positive node, through the source, to the negative node.  Nc+ and
+nc- are the positive and negative controlling nodes, respectively.  Value is
+the transconductance (in mhos).
+.sp 0.2i
+.sh 2 "linear voltage-controlled voltage sources"
+.sp 0.2i
+.b "General form:"
+.(l
+exxxxxxx n+ n- nc+ nc- value
+.)l
+.sp 0.2i
+.b "Examples:"
+.(l
+e1 2 3 14 1 2.0
+.)l
+.pp
+N+ is the positive node, and n- is the negative node.  Nc+ and nc- are the
+positive and negative controlling nodes, respectively.  Value is the voltage
+gain.
+.sp 0.2i
+.sh 2 "linear current-controlled current sources"
+.sp 0.2i
+.b "General form:"
+.(l
+fxxxxxxx n+ n- vnam value
+.)l
+.sp 0.2i
+.b "Examples:"
+.(l
+f1 13 5 vsens 5
+.)l
+.pp
+N+ and n- are the positive and negative nodes, respectively.  Current flow
+is from the positive node, through the source, to the negative node.  Vnam is
+the name of a voltage source through which the controlling current flows.  The
+direction of positive controlling current flow is from the positive node,
+through the source, to the negative node of vnam.  Value is the current gain.
+.sp 0.2i
+.sh 2 "linear current-controlled voltage sources"
+.sp 0.2i
+.b "General form:"
+.(l
+hxxxxxxx n+ n- vnam value
+.)l
+.sp 0.2i
+.b "Examples:"
+.(l
+hx 5 17 vz 0.5k
+.)l
+.pp
+N+ and n- are the positive and negative nodes, respectively.  Vnam is the
+name of a voltage source through which the controlling current flows.  The
+direction of positive controlling current flow is from the positive node,
+through the source, to the negative node of vnam.  Value is the transresistance
+(in ohms).
+.sh 2 "independent sources"
+.sp 0.2i
+.b "General form:"
+.(l
+vxxxxxxx n+ n- <<dc> dc/tran value> <ac <acmag <acphase>>>
+.)l
+                  iyyyyyyy n+ n- <<dc> dc/tran value> <ac <acmag <acphase>>>
+.sp 0.2i
+.b "Examples:"
+.(l
+vcc 10 0 dc 6
+vin 13 2 0.001 ac 1 sin(0 1 1meg)
+isrc 23 21 ac 0.333 45.0 sffm(0 1 10k 5 1k)
+vmeas 12 9
+.)l
+.pp
+N+ and n- are the positive and negative nodes, respectively.  Note that
+voltage sources need not be grounded.  Positive current is assumed to flow from
+positive node, through the source, to the negative node.
+A current sources of positive value, will force current to flow out of
+the n+ node, through the source, and into the n- node.
+Voltage sources, in addition to being
+used for circuit excitation, are the 'ammeters' for spice,
+that is, zero valued voltage sources may be inserted into the circuit for the pu
+of measuring current.  They will, of course, have no effect on circuit
+operation since they represent short-circuits.
+.sp 0.2i
+.pp
+Dc/tran is the dc and transient analysis value of the source.  If the
+source value is zero both for dc and transient analyses, this value may be
+omitted.  If the source value is time-invariant (e.g., a power supply), then
+the value may optionally be preceded by the letters dc.
+.sp 0.2i
+.pp
+Acmag is the ac magnitude and acphase is the ac phase.  The source is set
+to this value in the ac analysis.  If acmag is omitted following the keyword
+ac, a value of unity is assumed.  If acphase is omitted, a value of zero is
+assumed.  If the source is not an ac small-signal input, the keyword ac and the
+ac values are omitted.
+.sp 0.2i
+.pp
+Any independent source can be assigned a time-dependent value for
+transient analysis.  If a source is assigned adependent value, the time-
+time-zero value is used for dc analysis.  There are five independent source
+functions:  pulse, exponential, sinusoidal, piece-wise linear, and single-freque
+fm.  If parameters other than source values are omitted or set to zero, the
+default values shown will be assumed.  (tstep is the printing increment and
+tstop is the final time (see the .tran card for explanation)).
+.sp 0.2i
+1.  Pulse         pulse(v1 v2 td tr tf pw per)
+.sp 0.2i
+.b "Examples:"
+.(l
+vin 3 0 pulse(-1 1 2ns 2ns 2ns 50ns 100ns)
+.)l
+.TS
+center;
+l l l.
+parameters     default values        units
+.sp 0.2i
+v1 (initial value)                     volts or amps
+v2 (pulsed value)              volts or amps
+td (delay time)        0.0     seconds
+tr (rise time) tstep   seconds
+tf (fall time) tstep   seconds
+pw (pulse width)       tstop   seconds
+per (period)           tstop   seconds
+.TE
+.pp
+A single pulse so specified is described by the following table:
+.sp 0.2i
+.TS
+center;
+l l.
+time   value
+.sp 0.2i
+0      v1
+td     v1
+td+tr  v2
+td+tr+pw       v2
+td+tr+pw+tf    v1
+tstop  v1
+.TE
+.sp 0.1i
+Intermediate points are determined by linear interpolation.
+.sp 0.1i
+2.  Sinusoidal    sin(vo va freq td theta)
+.sp 0.2i
+.b "Examples:"
+.(l
+vin 3 0 sin(0 1 100meg 1ns 1e10)
+.)l
+.sp 0.2i
+.TS
+center;
+l l l.
+parameters     default value   units
+.sp 0.2i
+vo       (offset)                      volts or amps
+va (amplitude)         volts or amps
+freq (frequency)       1/tstop hz
+td (delay)     0.0     seconds
+theta (damping factor) 0.0     1/seconds
+.TE
+.pp
+The shape of the waveform is described by the following table:
+.TS
+center;
+l l.
+.sp 0.2i
+time   value
+.sp 0.2i
+0 to td        vo
+td to tstop    vo + va*exp(-(time-td)*theta)*sine(twopi*freq*(time-td))
+.TE
+.sp 0.2i
+.bp
+3.  Exponential  exp(v1 v2 td1 tau1 td2 tau2)
+.sp 0.2i
+.b "Examples:"
+.(l
+vin 3 0 exp(-4 -1 2ns 30ns 60ns 40ns)
+.)l
+.sp 0.2i
+.TS
+center;
+l l.
+parameters     default values  units
+.sp 0.2i
+v1 (initial value)             volts or amps
+v2 (pulsed value)              volts or amps
+td1 (rise delay time)  0.0     seconds
+tau1 (rise time constant)      tstep   seconds
+td2 (fall delay time)  td1+tstep       seconds
+tau2 (fall time constant)      tstep   seconds
+.TE
+.pp
+The shape of the waveform is described by the following table:
+.sp 0.2i
+.TS
+center;
+l l.
+time   value
+.sp 0.2i
+0 to td1       v1
+td1 to td2     v1+(v2-v1)*(1-exp(-(time-td1)/tau1))
+td2 to tstop   v1+(v2-v1)*(1-exp(-(time-td1)/tau1))
+       +(v1-v2)*(1-exp(-(time-td2)/tau2))
+.TE
+.sp 0.2i
+4.  Piece-wise linear
+.sp 0.2i
+              pwl(t1 v1 <t2 v2 t3 v3 t4 v4 ...>)
+.sp 0.2i
+.b "Examples:"
+.(l
+vclock 7 5 pwl(0 -7 10ns -7 11ns -3 17ns -3 18ns -7 50ns -7)
+.)l
+.sp 0.2i
+.TS
+center;
+l l.
+parameters     default values
+.TE
+.(l
+Each pair of values (ti, vi) specifies that the value of the source is vi
+(in volts or amps) at time=ti.  The value of the source at intermediate values
+of time is determined by using linear interpolation on the input values.
+.)l
+.sp 0.2i
+.bp
+5.  Single-frequency fm
+.sp 0.2i
+              sffm(vo va fc mdi fs)
+.sp 0.2i
+.b "Examples:"
+.(l
+v1 12 0 sffm(0 1m 20k 5 1k)
+.)l
+.sp 0.2i
+.TS
+center;
+l l l.
+parameters     default values  units
+.sp 0.2i
+vo (offset)            volts or amps
+va (amplitude)         volts or amps
+fc (carrier frequency) 1/tstop hz
+mdi (modulation index)         
+fs (signal frequency)  1/tstop hz
+.TE
+.pp
+The shape of the waveform is described by the following equation:
+.(l
+value = vo + va*sine((twopi*fc*time) + mdi*sine(twopi*fs*time))
+.)l
+.bp
+.sh 1 "SEMICONDUCTOR DEVICES"
+.pp
+The elements that have been described to this point typically require only
+a few parameter values to specify completely the electrical characteristics of
+the element.  However, the models for the four semiconductor devices that are
+included in the spice program require many parameter values.  Moreover, many
+devices in a circuit often are defined by the same set of device model
+parameters.  For these reasons, a set of device model parameters is defined on a
+separate .model card and assigned a unique model name.  The device element
+cards in spice then reference the model name.  This scheme alleviates the need
+to specify all of the model parameters on each device element card.
+.pp
+Each device element card contains the device name, the nodes to which the
+device is connected, and the device model name.  In addition, two optional
+parameters may be specified for each device:  an area factor, and an initial
+condition.
+.pp
+The area factor determines the number of equivalent parallel devices of a
+specified model.  The affected parameters are marked with an asterisk under the
+heading 'area' in the model descriptions below.
+.pp
+Two different forms of initial conditions may be specified for devices.
+The first form is included to improve the dc convergence for circuits that
+contain more than one stable state.  If a device is specified off, the dc
+operating point is determined with the terminal voltages for that device set to
+zero.  After convergence is obtained, the program continues to iterate to
+obtain the exact value for the terminal voltages.  If a circuit has more than
+one dc stable state, the off option can be used to force the solution to
+correspond to a desired state.  If a device is specified off when in reality
+the device is conducting, the program will still obtain the correct solution
+(assuming the solutions converge) but more iterations will be required since
+the program must independently converge to two separate solutions.
+The .nodeset card serves a similar purpose as the 'off' option.  The .nodeset
+option is easier to apply and is the preferred means to aid convergence.
+.pp
+The second form of initial conditions are specified for use with
+the transient analysis.  These are true 'initial conditions' as opposed
+to the convergence aids above.  See the description of the .ic card and
+the .tran card for a detailed explanation of initial conditions.
+.sh 2 "junction diodes"
+.sp 0.2i
+.b "General form:"
+.(l
+dxxxxxxx n+ n- mname <area> <off> <ic=vd>
+.)l
+.sp 0.2i
+.b "Examples:"
+.(l
+dbridge 2 10 diode1
+dclmp 3 7 dmod 3.0 ic=0.2
+.)l
+.pp
+N+ and n- are the positive and negative nodes, respectively.  Mname is the
+model name, area is the area factor, and off indicates an (optional) starting
+condition on the device for dc analysis.  If the area factor is omitted, a
+value of 1.0 is assumed.  The (optional) initial condition specification using
+ic=vd is intended for use with the uic option on the .tran card, when a
+transient analysis is desired starting from other than the quiescent operating
+point.
+.sp 0.2i
+.sh 2 "bipolar junction transistors (bjt's)"
+.sp 0.2i
+.b "General form:"
+.(l
+qxxxxxxx nc nb ne <ns> mname <area> <off> <ic=vbe,vce>
+.)l
+.sp 0.2i
+.b "Examples:"
+.(l
+q23 10 24 13 qmod ic=0.6,5.0
+q50a 11 26 4 20 mod1
+.)l
+.pp
+Nc, nb, and ne are the collector, base, and emitter nodes, respectively.
+Ns is the (optional) substrate node.  If unspecified, ground is used.
+mname is the model name, area is the area factor, and off indicates an
+(optional) initial condition on the device for the dc analysis.  If the area
+factor is omitted, a value of 1.0 is assumed.  The (optional) initial condition
+specification using ic=vbe,vce is intended for use with the uic option on
+the .tran card, when a transient analysis is desired starting from other than th
+quiescent operating point.  See the '.ic' card description for a better way to
+set transient initial conditions.
+.sp 0.2i
+.sh 2 "junction field-effect transistors (jfet's)"
+.sp 0.2i
+.b "General form:"
+.(l
+jxxxxxxx nd ng ns mname <area> <off> <ic=vds,vgs>
+.)l
+.sp 0.2i
+.b "Examples:"
+.(l
+j1 7 2 3 jm1 off
+.)l
+.pp
+Nd, ng, and ns are the drain, gate, and source nodes, respectively.  Mname
+is the model name, area is the area factor, and off indicates an (optional)
+initial condition on the device for dc analysis.  If the area factor is
+omitted, a value of 1.0 is assumed.  The (optional) initial condition specification,
+using ic=vds,vgs is intended for use with the uic option on the .tran card,
+when a transient analysis is desired starting from other than the quiescent
+operating point (see the .ic card for a better way to set initial conditions).
+.sp 0.2i
+.sh 2 "mosfets"
+.sp 0.2i
+.b "General form:"
+.(l
+mxxxxxxx nd ng ns nb mname <l=val> <w=val> <ad=val> <as=val>
++ <rd=val> <rs=val> <off> <ic=vds,vgs,vbs>
+.)l
+.sp 0.2i
+.b "Examples:"
+.(l
+m1 24 2 0 20 type1
+m31 2 17 6 10 modm l=5u w=2u
+m31 2 16 6 10 modm 5u 2u
+m1 2 9 3 0 mod1 l=10u w=5u ad=2p as=2p
+m1 2 9 3 0 mod1 10u 5u 2p 2p
+.)l
+Nd, ng, ns, and nb are the drain, gate, source, and bulk (substrate)
+nodes, respectively.  Mname is the model name.  L and w are the channel length
+and width, in meters.  Ad and as are the areas of the drain and source
+diffusions, in sq-meters.  Note that the suffix 'u' specifies microns (10**-6 m)
+and 'p' sq-microns (10**-12 sq-m). If any of l, w, ad, or as are not specified,
+default values are used.  The user may specify the values to be used for
+these default parameters on the .option card.  The use of defaults simplifies
+input deck preparation, as well as the editing required if devices geometries
+are to be changed.  Off indicates an (optional) initial condition
+on the device for dc analysis.  The (optional) initial condition
+specification using ic=vds,vgs,vbs is intended for use with the uic option
+on the .tran card, when a transient analysis is desired starting from other
+than the quiescent operating point.  See the .ic card for a better and
+more convenient way to specify transient initial conditions.
+.bp
+.sp 0.2i
+.sh 2 ".model card"
+.sp 0.2i
+.b "General form:"
+.(l
+ .model mname type(pname1=pval1 pname2=pval2 ... )
+.)l
+.sp 0.2i
+.b "Examples:"
+.(l
+ .model mod1 npn bf=50 js=1e-13 vbf=50
+.)l
+.pp
+The .model card specifies a set of model parameters that will be used by
+one or more devices.  Mname is the model name, and type is one of the following
+seven types:
+.TS
+center;
+l l.
+npn    npn bjt model
+pnp    pnp bjt model
+d      diode model
+njf    n-channel jfet model
+pjf    p-channel jfet model
+nmos   n-channel mosfet model
+pmos   p-channel mosfet model
+.TE
+.pp
+Parameter values are defined by appending the parameter name, as given
+below for each model type, followed by an equal sign and the parameter value.
+Model parameters that are not given a value are assigned the default values
+given below for each model type.
+.sp 0.2i
+.sh 2 "diode model"
+.pp
+The dc characteristics of the diode are determined by the parameters is
+and n.  An ohmic resistance, rs, is included.  Charge storage effects are
+modeled by a transit time, tt, and a nonlinear depletion layer capacitance
+which is determined by the parameters cjo, pb, and m.  The temperature
+dependence of the saturation current is defined by the parameters eg, the energy
+and pt, the saturation current temperature exponent.  Reverse breakdown is
+modeled by an exponential increase in the reverse diode current and is
+determined by the parameters bv and ibv (both of which are positive numbers).
+.sp 0.2i
+.TS
+center;
+l l l l l l.
+       area    name    parameter       default example
+.sp 0.2i
+ 1     *       is      saturation current      1.0e-14 1.0e-14
+ 2     *       rs      ohmic resistance        0       10
+ 3             n       emission coefficient    1       1.0
+ 4             tt      transit-time    0       0.1ns
+ 5     *       cjo     zero-bias junction capacitance  0       2pf
+ 6             pb      junction potential      1       0.6
+ 7             m       grading coefficient     0.5     0.5
+ 8             eg      activation energy       1.11    1.11 si
+                                       0.69 sbd
+                                       0.67 ge
+ 9             pt      saturation-current temp. exp    3.0     3.0 jn
+                                       2.0 sbd
+10             kf      flicker noise coefficient       0
+11             af      flicker noise exponent  1
+12             fc      coefficient for forward-bias    0.5
+                       depletion capacitance formula
+13             bv      reverse breakdown voltage       infinite        40.0
+14             ibv     current at breakdown voltage    1.0e-3
+.TE
+.sh 2 "bjt models (both npn and pnp)"
+.pp
+The bipolar junction transistor model in spice is an adaptation of
+the integral charge control model of Gummel and Poon.  This modified
+Gummel-Poon model extends the original model to include several effects
+at high bias levels.  The model will automatically simplify to the simpler
+Ebers-Moll model when certain parameters are not specified.  To permit
+one to use model parameters from  earlier versions of spice, many
+of the model parameters can be called by two names.  The parameter names
+used in the modified Gummel-Poon model have been chosen to be more easily
+understood by the program user, and to better reflect both physical and
+circuit design thinking.  The dc model is defined by the parameters bf,
+jbf, jle, and nle which determine the forward current gain characteristics,
+br, jbr, jlc, and nlc which determine the reverse current gain characteristics,
+vbf and vbr, which determine the output conductance for forward and reverse
+regions, and the saturation current, js.  Three ohmic resistances rb, rc, and
+re are included, where rb can be high current dependent.  Base charge storage
+is modeled by forward and reverse transit times, tf and tr the forward transit
+time being bias dependent if desired, and nonlinear depletion layer
+capacitances which are determined by cje, vje, and mje for the b-e junction and
+cjc, vjc, and mjc for the b-c junction.  A depletion formulation is used for
+the substrate capacitance described by cjs, vjs, and mjs.  The temperature
+dependence of saturation current, js, is determined by the energy-gap, eg,
+and the saturation current temperature exponent, pt.  Base current temperature
+dependence is modeled by the temperature exponent for beta, tb.
+.sp 0.2i
+.TS
+center;
+l l l l.
+name   parameter       units   default
+.sp 0.2i
+js     transport saturation current    amps    1.0e-16
+bf     ideal maximum forward beta      amp/amp 100
+nf     forward current emission coefficient    -       1.0
+vbf    forward early voltage   volts   infinite
+jbf    corner for forward beta high current roll-off   amps    infinite
+jle    base-emitter leakage saturation current amps    0
+nle    base-emitter leakage emission coefficient       -       1.5
+br     ideal maximum reverse beta      amp/amp 1.0
+nr     reverse current emission coefficient    -       1.0
+vbr    reverse early voltage   volts   infinite
+jbr    corner for reverse beta high current roll-off   amps    infinite
+jlc    base-collector leakage saturation current       amps    0
+nlc    base-collector leakage emission coefficient     -       2.0
+rb     zero bias base resistance       ohms    0
+jrb    current where base resistance falls halfway to  amps    infinite
+       its minimum value
+rbm    minimum base resistance at high currents        ohms    rb
+re     emitter resistance      ohms    0
+rc     collector resistance    ohms    0
+cje    base-emitter zero bias depletion capacitance    farads  0
+vje    base-emitter built-in potential volts   .75
+mje    base-emitter junction exponential factor        -       .33
+tf     ideal forward transit time      sec     0
+xtf    coefficient for bias dependence of tf   -       0
+vtf    voltage describing vbc dependence of tf volts   infinite
+jtf    high-current parameter for effect on tf amps    0
+ptf    excess phase at freq=1.0/(tf*2pi) hz    degrees 0
+cjc    base-collector zero bias depletion capacitance  farads  0
+vjc    base-collector built-in potential       volts   .75
+mjc    base-collector junction exponential factor      -       .33
+cdis   fraction of base-collector depletion    -       1.0
+       capacitance connected to internal base node
+tr     ideal reverse transit time      sec     0
+cjs    zero bias substrate capacitance farads  0
+vjs    substrate junction built-in potential   volts   .75
+mjs    substrate junction exponential factor   -       0
+tb     forward and reverse beta temperature exponent   -       0
+eg     energy-gap for temperature effect on js ev      1.11
+pt     temperature exponent for effect on js   -       3
+kf     flicker-noise coefficient       -       0
+af     flicker-noise exponent  -       1
+fc     coefficient for forward-bias depletion  -       .5
+       capacitance formula
+.TE
+.sp 0.2i
+.sh 2 "jfet models (both n and p channel)"
+.sp 0.2i
+.pp
+The jfet model is derived from the fet model of Shichman and Hodges.  The
+dc characteristics are defined by the parameters vto and beta, which determine
+the variation of drain current with gate voltage, lambda, which determines the
+output conductance, and is, the saturation current of the two gate junctions.
+Two ohmic resistances, rd and rs, are included.  Charge storage is modeled by
+nonlinear depletion layer capacitances for both gate junctions which vary as
+the -1/2 power of junction voltage and are defined by the parameters cgs, cgd,
+and pb.
+.sp 0.2i
+.TS
+center;
+l l l l l l.
+       area    name    parameter       default example
+.sp 0.2i
+ 1             vto     threshold voltage       -2.0    -2.0
+ 2     *       beta    transconductance parameter      1.0e-4  1.0e-3
+ 3             lambda  channel length modulation parameter     0       1.0e-4
+ 4     *       rd      drain ohmic resistance  0       100
+ 5     *       rs      source ohmic resistance 0       100
+ 6     *       cgs     zero-bias g-s junction capacitance      0       5pf
+ 7     *       cgd     zero-bias g-d junction capacitance      0       1pf
+ 8             pb      gate junction potential 1       0.6
+ 9     *       is      gate junction saturation current        1.0e-14 1.0e-14
+10             kf      flicker noise coefficient       0
+11             af      flicker noise exponent  1
+12             fc      coefficient for forward-bias    0.5
+                       depletion capacitance formula
+.TE
+.sp 0.2i
+.sh 2 "mosfet models (both n and p channel)"
+.sp 0.2i
+The dc mosfet equations
+are determined by the parameters vto, kp, gamma, lambda, and phi. These
+parameters may be specified by the user, or they will be computed from
+values specified for nsub, tox, nss, nfs, ngate, tps, uo, ucrit, uexp, and
+utra. Vto is positive (negative) for enhancement mode and negative
+(posiive) for depletion mode n-channel (p-channel) devices. Charge storage is
+modeled by three constant capacitors, cgs, cgd, and cgb, by the nonlinear oxide
+gate capacitance which is distributed among the gate-source, gate-drain, and
+bulk regions using the formulation of J.E. Meyer, and by the nonlinear
+depletion-layer capacitances for both substrate junctions which vary as the -1/2
+power of junction voltage and are determined by the parameters cbd, cbs, and
+pb.
+.sp 0.2i
+.TS
+center;
+l l l l l l.
+       name    parameter       default example units
+.sp 0.2i
+1      vto     zero-bias threshold voltage     0.0     1.0     v
+2      kp      intrinsic transconductance parameter    2.417e-5        3.1e-5  a/v**2
+3      gamma   bulk threshold parameter        0.0     0.37    v**(1/2)
+4      phi     surface potential at strong inversion   0.6     0.65    v
+5      lambda  channel-length modulation parameter     0.0     1.0e-7  meters/v
+6      rd      drain ohmic resistance  0.0     1.0     ohms
+7      rs      source ohmic resistance 0.0     1.0     ohms
+8      cgs     gate-source overlap capacitance                 
+               per meter channel width 0.0     4.0e-11 f/m
+9      cgd     gate-drain overlap capacitance                  
+               per meter channel width 0.0     4.0e-11 f/m
+10     cgb     gate-bulk overlap capacitance                   
+               per meter channel length        0.0     2.0e-10 f/m
+11     cbd     zero-bias b-d junction capacitance                      
+               per sq-meter of junction area   0.0     2.0e-4  f/sq-m
+12     cbs     zero-bias b-s junction capacitance                      
+               per sq-meter of junction area   0.0     2.0e-4  f/sq-m
+13     tox     oxide thickness 1.0e-7  1.0e-7  meters
+14     pb      bulk junction potential 0.8     0.87    v
+15     js      bulk junction reverse saturation current                        
+               per sq-meter of junction area   1.0e-4  1.0e-4  a/sq-m
+16     nsub    substrate doping        0.0     4.0e15  /cm**3
+17     nss     surface state density   0.0     1.0e10  /cm**2
+18     nfs     fast surface state density      0.0     1.0e10  /cm**2
+19     xj      metallurgical junction depth    0.0     1.0e-6  meters
+20     ld      lateral diffusion (channel length is    0.0     0.8e-6  meters
+               reduced such that leff=l-2*ld)                  
+21     wd      width reduction (channel width is       0.0     1.0e-6  meters
+               reduced such that weff=w-2*wd)                  
+22     ngate   polysilicon gate doping al gate 1.0e20  /cm**3
+23     tps     type of polysilicon:    +1 opp to sub   1.0     
+                       -1 same as sub          
+24     uo      surface mobility        700     600     cm**2/v-s
+25     ucrit   critical field for mobility     1.0e+4  1.0e+4  v/cm
+26     uexp    critical field exponent (mobility)      0.0     0.1
+27     utra    transverse field coefficient (mobility) 0.0     0.3
+28     kf      flicker noise coefficient       0.0
+29     af      flicker noise exponent  1.0
+30     fc      coefficient for forward-bias    0.5
+               depletion capacitance formula
+.TE
+.bp
+.sh 1 "SUBCIRCUITS"
+.pp
+A subcircuit that consists of spice elements can be defined and referenced
+in a fashion similar to device models.  The subcircuit is defined in the input
+deck by a grouping of element cards;  the program then automatically inserts
+the group of elements wherever the subcircuit is referenced.  There is no limit
+on the size or complexity of subcircuits, and subcircuits may contain other
+subcircuits.  An example of subcircuit usage is given in Appendix A.
+.sp 0.2i
+.sh 2 ".subckt card"
+.sp 0.2i
+.b "General form:"
+.(l
+ .subckt subnam n1 <n2 n3 ...>
+.)l
+.b "Examples:"
+.(l
+ .subckt opamp 1 2 3 4
+.)l
+.pp
+A subcircuit definition is begun with a .subckt card.  Subnam is the
+subcircuit name, and n1, n2, ... Are the external nodes, which cannot be zero.
+The group of element cards which immediately follow the .subckt card define the
+subcircuit.  The last card in a subcircuit definition is the .ends card (see
+below).  Control cards may not appear within a subcircuit definition;  however,
+subcircuit definitions may contain anything else, including other subcircuit
+definitions, device models, and subcircuit calls (see below).  Note that any
+device models or subcircuit definitions included as part of a subcircuit
+definition are strictly local (i.e., such models and definitions are not known
+outside the subcircuit definition).  Also, any element nodes not included on
+the .subckt card are strictly local, with the exception of 0 (ground) which is
+always global.
+.sh 2 ".ends card"
+.sp 0.2i
+.b "General form:"
+.(l
+ .ends <subnam>
+.)l
+.b "Examples:"
+.(l
+ .ends opamp
+.)l
+.pp
+This card must be the last one for any subcircuit definition.  The sub-
+circuit name, if included, indicates which subcircuit definition is being
+terminated;  if omitted, all subcircuits being defined are terminated.  The
+name is needed only when nested subcircuit definitions are being made.
+.sp 0.2i
+.sh 2 "subcircuit calls"
+.sp 0.2i
+.b "General form:"
+.(l
+xyyyyyyy n1 <n2 n3 ...> subnam
+.)l
+.sp 0.2i
+.b "Examples:"
+.(l
+x1 2 4 17 3 1 multi
+.)l
+.pp
+Subcircuits are used in spice by specifying pseudo-elements beginning with
+the letter x, followed by the circuit nodes to be used in expanding the sub-
+circuit.
+.bp
+.sh 1 "CONTROL CARDS"
+.sp 0.2i
+.sh 2 ".temp card"
+.sp 0.2i
+.b "General form:"
+.(l
+ .temp t1 <t2 <t3 ...>>
+.)l
+.b "Examples:"
+.(l
+ .temp -55.0 25.0 125.0
+.)l
+.pp
+This card specifies the temperatures at which the circuit is to be
+simulated.  T1, t2, ... Are the different temperatures, in degrees c.  Temperatu
+less than -223.0 deg c are ignored.  Model data is specified at tnom degrees
+(see the .option card for tnom);  if the .temp card is omitted, the simulation
+also will be performed at a temperature equal to tnom.
+.sp 0.2i
+.sh 2 ".width card"
+.sp 0.2i
+.b "General form:"
+.(l
+ .width in=colnum out=colnum
+.)l
+.sp 0.2i
+.b "Examples:"
+.(l
+ .width in=72 out=133
+.)l
+.pp
+Colnum is the last column read from each line of input;  the setting takes
+effect with the next line read.  The default value for colnum is 80.
+The out parameter specifies the output print width.  Permissible values for
+the output print width are 80 and 133.
+.sp 0.2i
+.sh 2 ".options card"
+.sp 0.2i
+.b "General form:"
+.(l
+ .options opt1 opt2 ... (or opt=optval ...)
+.)l
+.b "Examples:"
+.(l
+ .options noacct nolist nonode
+.)l
+.pp
+This card allows the user to reset program control and user options for
+specific simulation purposes.  Any combination of the following options may be
+included, in any order.  'x' (below) represents some positive number.
+.TS
+center;
+l l.
+option effect
+.sp 0.2i
+noacct supresses the listing of accounting and run time
+       statistics.
+nolist supresses the summary listing of input data.
+nomod  suppresses the printout of the model parameters.
+nopage suppresses page ejects
+nonode supresses the printing of the node table.
+opts   causes the option values to be printed.
+gmin=x resets the value of gmin, the minimum conductance
+       allowed by the program.  The default value is 1.0e-12.
+reltol=x       resets the relative error tolerance of the program.  The
+       default value is 0.001 (0.1 percent).
+abstol=x       resets the absolute current error tolerance of the
+       program.  The default value is 1 picoamp.
+vntol=x        resets the absolute voltage error tolerance of the
+       program.  The default value is 1 microvolt.
+trtol=x        resets the transient error tolerance.  The default value
+       is 7.0.  This parameter is an estimate of the factor by
+       which spice overestimates the actual truncation error.
+chgtol=x       resets the charge tolerance of the program.  The default
+       value is 1.0e-14.
+numdgt=x       resets the number of significant digits printed for
+       output variable values.  X must satisfy the relation
+       0 < x < 8.  The default value is 4.  Note:  this option is
+       independent of the error tolerance used by spice (i.e., if
+       the values of options reltol, abstol, etc. Are not changed
+       then one may be printing numerical 'noise' for numdgt > 4.
+tnom=x resets the nominal temperature.  The default value is
+       25 deg c (298 deg k).
+itl1=x resets the dc iteration limit.  The default is 100.
+itl2=x resets the dc transfer curve iteration limit.  The
+       default is 50.
+itl3=x resets the lower transient analysis iteration limit.
+       the default value is 4.
+itl4=x resets the transient analysis timepoint iteration limit.
+       the default is 10.
+itl5=x resets the transient analysis total iteration limit.
+       the default is 5000.  Set itl5=0 to omit this test.
+cptime=x       the maximum cpu-time in seconds allowed for this job.
+limtim=x       resets the amount of cpu time reserved by spice for
+       generating plots should a cpu time-limit cause job
+       termination.  The default value is 2 (seconds).
+limpts=x       resets the total number of points that can be printed
+       or plotted in a dc, ac, or transient analysis.  The
+       default value is 201.
+lvlcod=x       if x is 2 (two), then machine code for the matrix
+       solution will be generated.  Otherwise, no machine code is
+       generated.  The default value is 2.  Applies only to cdc
+       computers.
+lvltim=x       if x is 1 (one), the iteration timestep control is used.
+       if x is 2 (two), the truncation-error timestep is used.
+       the default value is 1.  If method=Gear and maxord>2 then
+       lvltim is set to 2 by spice.
+method=name    sets the numerical integration method used by spice.
+       Possible names are Gear or trapezoidal.  The default is
+       trapezoidal.
+maxord=x       sets the maximum order for the integration method if
+       Gear's variable-order method is used.  X must be between
+       2 and 6.  The default value is 2.
+defl=x sets the default value for mos channel length.
+defw=x sets the default value for mos channel width.
+defad=x        sets the default value for mos drain diffusion area.
+defas=x        sets the default value for mos source diffusion area.
+.TE
+.sp 0.2i
+.sh 2 ".op card"
+.sp 0.2i
+.b "General form:"
+.(l
+ .op
+.)l
+.sp 0.2i
+.pp
+The inclusion of this card in an input deck will force 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
+small-signal analysis to determine the linearized, small-signal models for
+nonlinear devices.
+.pp
+Spice performs a dc operating point analysis if no other analyses are
+requested.
+.sp 0.2i
+.sh 2 ".dc card"
+.sp 0.2i
+.b "General form:"
+.(l
+ .dc srcnam vstart vstop vincr [src2 start2 stop2 incr2]
+.)l
+.sp 0.2i
+.b "Examples:"
+.(l
+ .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
+.)l
+.pp
+This card defines the dc transfer curve source and sweep limits.  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 will cause 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 will be 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 data deck in that section of the guide.
+.sp 0.2i
+.bp
+.sh 2 ".nodeset card"
+.sp 0.2i
+.b "General form:"
+.(l
+ .nodeset v(nodnum)=val v(nodnum)=val ...
+.)l
+.b "Examples:"
+.(l
+ .nodeset v(12)=4.5 v(4)=2.23
+.)l
+.pp
+This card helps the program find the dc 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 card may be necessary for convergence on bistable or astable
+circuits.  In general, this card should not be necessary.
+.sp 0.2i
+.sh 2 ".ic card"
+.sp 0.2i
+.b "General form:"
+.(l
+ .ic v(nodnum)=val v(nodnum)=val ...
+.)l
+.b "Examples:"
+.(l
+ .ic v(11)=5 v(4)=-5 v(2)=2.2
+.)l
+.pp
+This card is for setting transient initial conditions.  It has two
+different interpretations, depending on whether the 'uic' parameter is
+specified on the '.tran' card.  Also, one should not confuse this card with
+the '.nodeset' card.  The '.nodeset' card is only to help dc convergence,
+and does not affect final bias solution (except for multi-stable circuits).
+The two interpretations of this card are as follows:
+.sp 0.2i
+ 1.  When the 'uic' parameter is specified on the '.tran' card, then
+.pp
+The node voltages specified on the '.ic' card are used to compute
+.pp
+The capacitor, diode, bjt, jfet, and mosfet initial conditions.
+.pp
+This is equivalent to specifying the 'ic=...' parameter on each
+.pp
+Device card, but is much more convenient.  The 'ic=...' parameter
+.pp
+Can still be specified and will take precedence over the '.ic'
+.pp
+Values.  Since no dc bias solution is computed before the transient
+.pp
+Analysis, one should take care to specify all dc source voltages
+.pp
+On the '.ic' card if they are to be used to compute device initial
+.pp
+Conditions.
+.sp 0.2i
+ 2.  When the 'uic' parameter is not specified on the '.tran' card,
+.pp
+The a dc bias solution will be computed before the transient analysis.
+.pp
+In this case, the node voltages specified on the '.ic' card will
+.pp
+Be forced to the desired initial values during the bias solution.
+.pp
+During transient analysis, the constraint on these node voltages
+is removed.
+.sp 0.2i
+.sh 2 ".tf card"
+.sp 0.2i
+.b "General form:"
+.(l
+ .tf outvar insrc
+.)l
+.b "Examples:"
+.(l
+ .tf v(5,3) vin
+ .tf i(vload) vin
+.)l
+.pp
+This card defines the small-signal output and input for the dc small-
+signal analysis.  Outvar is the small-signal output variable and insrc is the
+small-signal input source.  If this card is included, spice will compute the
+dc small-signal value of the transfer function (outputinput), input
+resistance, and output resistance.  For the first example, spice would compute t
+ratio of v(5,3) to vin, the small-signal input resistance at vin, and the
+small-signal output resistance measured across nodes 5 and 3.
+.sp 0.2i
+.sh 2 ".sens card"
+.sp 0.2i
+.b "General form:"
+.(l
+ .sens ov1 <ov2 ... >
+.)l
+.b "Examples:"
+.(l
+ .sens v(9) v(4,3) v(17) i(vcc)
+.)l
+.pp
+If a .sens card is included in the input deck, spice will determine the
+dc small-signal sensitivities of each specified output variable with respect to
+every circuit parameter.  Note:  for large circuits, large amounts of output
+can be generated.
+.sp 0.2i
+.sh 2 ".ac card"
+.sp 0.2i
+.b "General form:"
+.(l
+ .ac dec nd fstart fstop
+ .ac oct no fstart fstop
+ .ac lin np fstart fstop
+.)l
+.b "Examples:"
+.(l
+ .ac dec 10 1 10k
+ .ac dec 10 1k 100meg
+ .ac lin 100 1 100hz
+.)l
+.sp 0.2i
+.pp
+Dec 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
+card is included in the deck, spice will perform 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.
+.sp 0.2i
+.sh 2 ".disto card"
+.sp 0.2i
+.b "General form:"
+.(l
+ .disto rload <inter <skw2 <refpwr <spw2>>>>
+.)l
+.b "Examples:"
+.(l
+ .disto rl 2 0.95 1.0e-3 0.75
+.)l
+.pp
+This card controls whether spice will compute the distortion characteristic
+of the circuit in a small-signal mode as a part of the ac small-signal
+sinusoidal steady-state analysis.  The analysis is performed assuming that
+one or two signal frequencies are imposed at the input;  let the two frequencies
+be f1 (the nominal analysis frequency) and f2 (=skw2*f1).  The program
+then computes the following distortion measures:
+.sp 0.2i
+    hd2  - the magnitude of the frequency component 2*f1 assuming that f2
+           is not present.
+    hd3  - the magnitude of the frequency component 3*f1 assuming that f2
+           is not present.
+    sim2 - the magnitude of the frequency component f1 + f2.
+    dim2 - the magnitude of the frequency component f1 - f2.
+    dim3 - the magnitude of the frequency component 2*f1 - f2.
+.pp
+Rload is the name of the output load resistor into which all distortion
+power products are to be computed.  Inter is the interval at which the summary
+printout of the contributions of all nonlinear devices to the total distortion
+is to be printed.  If omitted or set to zero, no summary printout will be made.
+Refpwr is the reference power level used in computing the distortion products.
+if omitted, a value of 1 mw (that is, dbm) is used.  Skw2 is the ratio of f2 to
+f1.  If omitted, a value of 0.9 is used (i.e., f2 = 0.9*f1).  Spw2 is the
+amplitude of f2.  If omitted, a value of 1.0 is assumed.
+.pp
+The distortion measures hd2, hd3, sim2, dim2, and dim3 may also be be
+printed and/or plotted (see the description of the .print and .plot cards).
+.sp 0.2i
+.sh 2 ".noise card"
+.sp 0.2i
+.b "General form:"
+.(l
+ .noise outv insrc nums
+.)l
+.b "Examples:"
+.(l
+ .noise v(5) vin 10
+.)l
+.pp
+This card controls the noise analysis of the circuit.  The noise analysis
+is performed in conjunction with the ac analysis (see .ac card). Outv is an
+output voltage which defines the summing point.  Insrc is the name of the
+independent voltage or current source which is the noise input reference.  Nums
+is the summary interval.  Spice will compute the equivalent output noise at
+the specified output as well as the equivalent input noise at the specified
+input.  In addition, the contributions of every noise generator in the circuit
+will be printed at every nums frequency points (the summary interval).  If nums
+is zero, no summary printout will be made.
+.pp
+The output noise and the equivalent input noise may also be printed and/or
+plotted (see the description of the .print and .plot cards).
+.sp 0.2i
+.sh 2 ".tran card"
+.sp 0.2i
+.b "General form:"
+.(l
+ .tran tstep tstop <tstart <tmax>> <uic>
+.)l
+.b "Examples:"
+.(l
+ .tran 1ns 100ns
+ .tran 1ns 1000ns 500ns
+ .tran 10ns 1us uic
+.)l
+.pp
+Tstep is the printing or plotting increment for line-printer output.
+For use with the post-processor, 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 will use (for default, the
+program chooses either tstep or (tstop-tstart)/50.0, whichever is smaller.
+Tmax is useful when one wishes too guarantee a computing interval which is
+smaller than the printer increment, tstep.
+.pp
+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 card has been specified,
+then the node voltages on the .ic card are used compute the intitial conditions
+for the devices.  Look at the description on the .ic card for its
+interpretation when 'uic' is not specified.
+.sp 0.2i
+.sh 2 ".four card"
+.sp 0.2i
+.b "General form:"
+.(l
+ .four freq ov1 <ov2 ov3 ...>
+.)l
+.b "Examples:"
+.(l
+ .four 100k  v(5)
+.)l
+.pp
+This card controls whether spice performs a fourier analysis as a part of
+the transient analysis.  Freq is the fundamental frequency, and ov1, ..., are
+the output variables for which the analysis is desired.  The fourier analysis
+is performed over the interval <tstop-period, 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 components are
+determined.  For maximum accuracy, tmax (see the .tran card) should be set to
+period/100.0 (or less for very high-q circuits).
+.sp 0.2i
+.sh 2 ".print cards"
+.sp 0.2i
+.b "General form:"
+.(l
+ .print prtype ov1 <ov2 ... Ov8>
+.)l
+.b "Examples:"
+.(l
+ .print tran v(4) i(vin)
+ .print ac vm(4,2) vr(7) vp(8,3)
+ .print dc v(2) i(vsrc) v(23,17)
+ .print noise inoise
+ .print disto hd3 sim2(db)
+.)l
+.pp
+This card 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
+distortion) for which the specified outputs are desired.  The form for voltage o
+current output variables is as follows:
+.sp 0.2i
+.ip v(n1<,n2>) 10
+specifies the voltage difference between nodes n1
+and n2.  If n2 (and the preceding comma) is omitted,
+ground (0) is assumed.  For the ac analysis, five
+additional outputs can be accessed by replacing the
+letter v by:
+.sp 0.2i
+vr  -  real part
+vi  -  imaginary part
+vm  -  magnitude
+vp  -  phase
+vdb -  20*log10(magnitude)
+.sp 0.2i
+.ip i(vxxxxxxx) 10
+specifies the current flowing in the independent
+voltage source named vxxxxxxx.   Positive current
+flows from the positive node, through the source, to
+the negative node.  For the ac analysis, the
+corresponding replacements for the letter i may be
+made in the same way as described for voltage outputs.
+.sp 0.2i
+.pp
+Output variables for the noise and distortion analyses have a different
+general form
+form from that of the other analyses.  The is
+.(l
+                  ov<(x)>
+.)l
+where ov is any of onoise (output noise), inoise (equivalent input noise),
+hd2, hd3, sim2, dim2, or dim3 (see description of distortion analysis), and x
+may be any of:
+.(l
+r  - real part
+i  - imaginary part
+m  - magnitude (default if nothing specified)
+p  - phase
+db - 20*log10(magnitude)
+.)l
+thus, sim2 (or sim2(m)) describes the magnitude of the sim2 distortion measure,
+while hd2(r) describes the real part of the hd2 distortion measure.
+.pp
+There is no limit on the number of .print cards for each type of
+analysis.
+.sp 0.2i
+.sh 2 ".plot cards"
+.sp 0.2i
+.b "General form:"
+.(l
+ .plot pltype ov1 <(plo1,phi1)> <ov2 <(plo2,phi2)> ... Ov8>
+.)l
+.b "Examples:"
+.(l
+ .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)
+.)l
+.pp
+This card defines the contents of one plot of from one to eight output
+variables.  Pltype is the type of analysis (dc, ac, tran, noise, or distortion)
+for which the specified outputs are desired.  The syntax for the ovi is
+identical to that for the .print card, described above.
+.pp
+The optional plot limits (plo,phi) may be specified after any of the
+output variables.  All output variables to the left of a pair of plot limits
+(plo,phi) will be plotted using the same lower and upper plot bounds.  If plot
+limits are not specified, spice will automatically determine the minimum and
+maximum values of all output variables being plotted and scale the plot to fit.
+More than one scale will be used if the output variable values warrant (i.e.,
+mixing output variables with values which are orders-of-magnitude different
+still gives readable plots).
+.pp
+The overlap of two or more traces on any plot is indicated by the letter
+x.
+.pp
+When more than one output variable appears on the same plot, the
+first variable specified will be printed as well as plotted.  If a printout
+of all variables is desired, then a companion .print card should be included.
+.pp
+There is no limit on the number of .plot cards specified for each
+type of analysis.
+.bp
+.sh 1 "APPENDIX A:  EXAMPLE DATA DECKS"
+.sp 0.2i
+.sh 2 "circuit 1"
+.pp
+The following deck determines the dc operating point and small-signal
+transfer function of a simple differential pair.  In addition, the ac
+small-signal response is computed over the frequency range 1hz to 100meghz.
+.(l
+Simple differential pair
+Vcc 7 0 12
+Vee 8 0 -12
+Vin 1 0 ac 1
+Rs1 1 2 1k
+Rs2 6 0 1k
+Q1 3 2 4 mod1
+Q2 5 6 4 mod1
+Rc1 7 3 10k
+Rc2 7 5 10k
+Re 4 8 10k
+ .model mod1 npn bf=50 vbf=50 js=1.e-12 rb=100 cjc .5pf tf .6ns
+ .tf v(5) vin
+ .ac dec 10 1 100meg
+ .plot ac vm(5) vp(5)
+ .print ac vm(5) vp(5)
+ .end
+.)l
+.sp 0.2i
+.sh 2 "circuit 2"
+.sp 0.2i
+The following deck computes the output characteristics of a mosfet
+device over the range 0-10v for vds and 0-5v for vgs.
+.sp 0.2i
+.(l
+Mos output characteristics
+ .option nonode nopage
+Vds 3 0
+Vgs 2 0
+M1 1 2 0 0 mod1 l=4u w=6u ad=10p as=10p
+ .model mod1 nmos vto=-2 nsub=1.0e15 uo=550
+     * vids measures id, we could have used vds, but id would be negative
+Vids 3 1
+ .dc vds 0 10 .5 vgs 0 5 1
+ .print dc i(vids) v(2)
+ .plot dc i(vids)
+ .end
+.)l
+.sp 0.2i
+.sh 2 "circuit 3"
+.sp 0.2i
+.pp
+The following deck determines the dc transfer curve and the transient
+pulse response of a simple rtl inverter.  The input is a pulse from 0 to 5
+volts with delay, rise, and fall times of 2ns and a pulse width of 30ns.  The
+transient interval is 0 to 100ns, with printing to be done every nanosecond.
+.sp 0.2i
+.(l
+Simple rtl inverter
+Vcc 4 0 5
+Vin 1 0 pulse 0 5 2ns 2ns 2ns 30ns
+Rb 1 2 10k
+Q1 3 2 0 q1
+Rc 3 4 1k
+ .plot dc v(3)
+ .plot tran v(3) (0,5)
+ .print tran v(3)
+ .model q1 npn bf 20 rb 100 tf .1ns cjc 2pf
+ .dc vin 0 5 0.1
+ .tran 1ns 100ns
+ .end
+.)l
+.sp 0.2i
+.sh 2 "circuit 4"
+.pp
+The following deck simulates a four-bit binary adder, using several sub-
+circuits to describe various pieces of the overall circuit.
+.sp 0.2i
+.(l
+Adder - 4 bit all-nand-gate binary adder
+.sp 0.2i
+     *** subcircuit definitions
+.sp 0.2i
+.subckt nand 1 2 3 4
+     *   nodes:  input(2), output, vcc
+Q1 9 5 1 qmod
+D1clamp 0 1 dmod
+Q2 9 5 2 qmod
+D2clamp 0 2 dmod
+Rb 4 5 4k
+R1 4 6 1.6k
+Q3 6 9 8 qmod
+R2 8 0 1k
+Rc 4 7 130
+Q4 7 6 10 qmod
+Dvbedrop 10 3 dmod
+Q5 3 8 0 qmod
+ .ends nand
+ .subckt onebit 1 2 3 4 5 6
+     *   nodes:  input(2), carry-in, output, carry-out, vcc
+X1 1 2 7 6 nand
+X2 1 7 8 6 nand
+X3 2 7 9 6 nand
+X4 8 9 10 6 nand
+X5 3 10 11 6 nand
+X6 3 11 12 6 nand
+X7 10 11 13 6 nand
+X8 12 13 4 6 nand
+X9 11 7 5 6 nand
+ .ends onebit
+ .subckt twobit 1 2 3 4 5 6 7 8 9
+     *   nodes:  input - bit0(2) / bit1(2), output - bit0 / bit1,
+     *           carry-in, carry-out, vcc
+X1 1 2 7 5 10 9 onebit
+X2 3 4 10 6 8 9 onebit
+ .ends twobit
+ .sp 0.2i
+ .subckt fourbit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+     *   nodes:  input - bit0(2) / bit1(2) / bit2(2) / bit3(2),
+     *           output - bit0 / bit1 / bit2 / bit3, carry-in, carry-out, vcc
+X1 1 2 3 4 9 10 13 16 15 twobit
+X2 5 6 7 8 11 12 16 14 15 twobit
+ .ends fourbit
+.sp 0.2i
+     *** define nominal circuit
+.sp 0.2i
+ .model dmod d
+ .model qmod npn(bf=75 rb=100 cje=1pf cjc=3pf)
+Vcc 99 0 dc 5v
+Vin1a 1 0 pulse(0 3 0 10ns 10ns   10ns   50ns)
+.sp 0.2i
+.sp 0.2i
+Vin1b 2 0 pulse(0 3 0 10ns 10ns   20ns  100ns)
+Vin2a 3 0 pulse(0 3 0 10ns 10ns   40ns  200ns)
+Vin2b 4 0 pulse(0 3 0 10ns 10ns   80ns  400ns)
+Vin3a 5 0 pulse(0 3 0 10ns 10ns  160ns  800ns)
+Vin3b 6 0 pulse(0 3 0 10ns 10ns  320ns 1600ns)
+Vin4a 7 0 pulse(0 3 0 10ns 10ns  640ns 3200ns)
+Vin4b 8 0 pulse(0 3 0 10ns 10ns 1280ns 6400ns)
+X1 1 2 3 4 5 6 7 8 9 10 11 12 0 13 99 fourbit
+Rbit0 9 0 1k
+Rbit1 10 0 1k
+Rbit2 11 0 1k
+Rbit3 12 0 1k
+Rcout 13 0 1k
+ .plot tran v(1) v(2) v(3) v(4) v(5) v(6) v(7) v(8)
+ .plot tran v(9) v(10) v(11) v(12) v(13)
+ .print tran v(1) v(2) v(3) v(4) v(5) v(6) v(7) v(8)
+ .print tran v(9) v(10) v(11) v(12) v(13)
+.sp 0.2i
+ .tran 1ns 6400ns
+     *** (for those with money (and memory) to burn)
+.sp 0.2i
+ .opt acct list node limpts=6401
+ .end
+.)l
+.sp 0.2i
+.sh 2 "circuit 5"
+.pp
+The following deck simulates a transmission-line inverter.  Two
+transmission-line elements are required since two propagation modes are excited.
+In the case of a coaxial line, the first line (t1) models the inner conductor wi
+respect to the shield, and the second line (t2) models the shield with respect
+to the outside world.
+.sp 0.2i
+.(l
+Transmission-line inverter
+V1 1 0 pulse(0 1 0 0.1n)
+R1 1 2 50
+X1 2 0 0 4 tline
+R2 4 0 50
+ .subckt tline 1 2 3 4
+T1 1 2 3 4 z0=50 td=1.5ns
+T2 2 0 4 0 z0=100 td=1ns
+ .ends tline
+ .tran 0.1ns 20ns
+ .plot tran v(2) v(4)
+ .end
+.)l
+.bp
+.sh 1 "APPENDIX B:  NONLINEAR DEPENDENT SOURCES"
+.pp
+Spice allows circuits to contain dependent sources characterized by any of
+the four equations
+.sp 0.2i
+        i=f(v)          v=f(v)          i=f(i)          v=f(i)
+.sp 0.2i
+where the functions must be polynomials, and the arguments may be
+multidimensional.  The polynomial functions are specified by a set of coefficien
+p0, p1, ..., pn.  Both the number of dimensions and the number of coefficients
+are arbitrary.  The meaning of the coefficients depends upon the dimension of
+the polynomial, as shown in the following examples: 
+.pp
+Suppose that the function is one-dimensional (that is, a function of one
+argument).  Then the function value fv is determined by the following
+expression in fa (the function argument):
+.sp 0.2i
+    fv = p0 + (p1*fa) + (p2*fa**2) + (p3*fa**3) + (p4*fa**4)
+.sp 0.2i
+         + (p5*fa**5) + ...
+.pp
+Suppose now that the function is two-dimensional, with arguments fa and
+fb.  Then the function value fv is determined by the following expression:
+.sp 0.2i
+    fv = p0 + (p1*fa) + (p2*fb) + (p3*fa**2) + (p4*fa*fb) + (p5*fb**2)
+.sp 0.2i
+         + (p6*fa**3) + (p7*fa**2*fb) + (p8*fa*fb**2) + (p9*fb**3) + ...
+.pp
+Consider now the case of a three-dimensional polynomial function with
+arguments fa, fb, and fc.  Then the function value fv is determined by the
+following expression:
+.sp 0.2i
+    fv = p0 + (p1*fa) + (p2*fb) + (p3*fc) + (p4*fa**2) + (p5*fa*fb)
+.sp 0.2i
+         + (p6*fa*fc) + (p7*fb**2) + (p8*fb*fc) + (p9*fc**2) + (p10*fa**3)
+.sp 0.2i
+         + (p11*fa**2*fb) + (p12*fa**2*fc) + (p13*fa*fb**2)
+.sp 0.2i
+         + (p14*fa*fb*fc)
+.sp 0.2i
+         + (p15*fa*fc**2) + (p16*fb**3) + (p17*fb**2*fc) + (p18*fb*fc**2)
+.sp 0.2i
+         + (p19*fc**3) + (p20*fa**4) + ...
+.pp
+Note:  if the polynomial is one-dimensional and exactly one coefficient is
+specified, then spice assumes it to be p1 (and p0 = 0.0), in order to
+facilitate the input of linear controlled sources.
+.pp
+For all four of the dependent sources described below, the initial
+condition parameter is described as optional.  If not specified, spice assumes 0
+the initial condition for dependent sources is an initial 'guess' for the value
+of the controlling variable.  The program uses this initial condition to obtain
+the dc operating point of the circuit.  After convergence has been obtained,
+the program continues iterating to obtain the exact value for the controlling
+variable.  Hence, to reduce the computational effort for the dc operating
+point (or if the polynomial specifies a strong nonlinearity), a value fairly
+close to the actual controlling variable should be specified for the initial
+condition.
+.sh 2 "voltage-controlled current sources"
+.sp 0.2i
+.b "General form:"
+.(l
+gxxxxxxx n+ n- <poly(nd)> nc1+ nc1- ... P0 <p1 ...> <ic=...>
+.)l
+.sp 0.2i
+Examples: g1 1 0 5 3 0 0.1mmho
+               gr 17 3 17 3 0 1m 1.5m ic=2v
+               gmlt 23 17 poly(2) 3 5 1 2 0 1m 17m 3.5u ic=2.5, 1.3
+.pp
+N+ and n- are the positive and negative nodes, respectively.  Current flow
+is from the positive node, through the source, to the negative node.  Poly(nd)
+only has to be specified if the source is multi-dimensional (one-dimensional is
+the default).  If specified, nd is the number of dimensions, which must be
+positive.  Nc1+, nc1-, ... Are the positive and negative controlling nodes,
+respectively.  One pair of nodes must be specified for each dimension.  P0, p1,
+p2, ..., pn are the polynomial coefficients.  The (optional) initial condition
+is the initial guess at the value(s) of the controlling voltage(s).  If not
+specified, 0.0 is assumed.  The polynomial specifies the source current as a
+function of the controlling voltage(s).  The second example above describes a
+current source with value
+.sp 0.2i
+        i = 1e-3*v(17,3) + 1.5e-3*v(17,3)**2
+.sp 0.2i
+note that since the source nodes are the same as the controlling nodes, this
+source actually models a nonlinear resistor.
+.sp 0.2i
+.sp 0.2i
+.sp 0.2i
+.sp 0.2i
+.sp 0.2i
+.sh 2 "voltage-controlled voltage sources"
+.sp 0.2i
+.b "General form:"
+.(l
+exxxxxxx n+ n- <poly(nd)> nc1+ nc1- ... P0 <p1 ...> <ic=...>
+.)l
+.sp 0.2i
+Examples: e1 3 4 21 17 10.5 2.1 1.75
+               ex 17 0 poly(3) 13 0 15 0 17 0 0 1 1 1 ic=1.5,2.0,17.35
+.pp
+N+ and n- are the positive and negative nodes, respectively.  Poly(nd)
+only has to be specified if the source is multi-dimensional (one-dimensional is
+the default).  If specified, nd is the number of dimensions, which must be
+positive.  Nc1+, nc1-, ... Are the positive and negative controlling nodes,
+respectively.  One pair of nodes must be specified for each dimension.  P0, p1,
+p2, ..., pn are the polynomial coefficients.  The (optional) initial condition
+is the initial guess at the value(s) of the controlling voltage(s).  If not
+specified, 0.0 is assumed.  The polynomial specifies the source voltage as a
+function of the controlling voltage(s).  The second example above describes a
+voltage source with value
+.sp 0.2i
+        v = v(13,0) + v(15,0) + v(17,0)
+.sp 0.2i
+(in other words, an ideal voltage summer).
+.sh 2 "current-controlled current sources"
+.sp 0.2i
+.b "General form:"
+.(l
+fxxxxxxx n+ n- <poly(nd)> vn1 <vn2 ...> p0 <p1 ...> <ic=...>
+.)l
+.sp 0.2i
+Examples: f1 12 10 vcc 1ma 1.3m
+               fxfer 13 20 vsens 0 1
+.pp
+N+ and n- are the positive and negative nodes, respectively.  Current flow
+is from the positive node, through the source, to the negative node.  Poly(nd)
+only has to be specified if the source is multi-dimensional (one-dimensional is
+the default).  If specified, nd is the number of dimensions, which must be
+positive.  Vn1, vn2, ... Are the names of voltage sources through which the
+controlling current flows;  one name must be specified for each dimension.  The
+direction of positive controlling current flow is from the positive node,
+through the source, to the negative node of each voltage source.  P0, p1,
+p2, ..., pn are the polynomial coefficients.  The (optional) initial condition
+is the initial guess at the value(s) of the controlling current(s) (in amps).
+If not specified, 0.0 is assumed.  The polynomial specifies the source current
+as a function of the controlling current(s).  The first example above describes
+a current source with value
+.sp 0.2i
+        i = 1e-3 + 1.3e-3*i(vcc)
+.sp 0.2i
+.sp 0.2i
+.sp 0.2i
+.sp 0.2i
+.sp 0.2i
+.sh 2 "current-controlled voltage sources"
+.sp 0.2i
+.b "General form:"
+.(l
+hxxxxxxx n+ n- <poly(nd)> vn1 <vn2 ...> p0 <p1 ...> <ic=...>
+.)l
+.sp 0.2i
+Examples: hxy 13 20 poly(2) vin1 vin2 0 0 0 0 1 ic=0.5 1.3
+               hr 4 17 vx 0 0 1
+.pp
+N+ and n- are the positive and negative nodes, respectively.  Poly(nd)
+only has to be specified if the source is multi-dimensional (one-dimensional is
+the default).  If specified, nd is the number of dimensions, which must be
+positive.  Vn1, vn2, ... Are the names of voltage sources through which the
+controlling current flows;  one name must be specified for each dimension.  The
+direction of positive controlling current flow is from the positive node,
+through the source, to the negative node of each voltage source.  P0, p1,
+p2, ..., pn are the polynomial coefficients.  The (optional) initial condition
+is the initial guess at the value(s) of the controlling current(s) (in amps).
+If not specified, 0.0 is assumed.  The polynomial specifies the source voltage
+as a function of the controlling current(s).  The first example above describes
+a voltage source with value
+.sp 0.2i
+        v = i(vin1)*i(vin2)