4.2 Functions
Gnucap behavioral modeling functions are an extension of the Spice source
time dependent values.
4.2.1 The extensions
They apply to all elements (primitive components).
All accept either Spice compatible order dependent parameters, or
easier keyword=value notation.
The syntax is identical for all supported components.
4.2.2 Fixed sources
Time dependent functions are voltage or current as a function of time.
They are mostly Spice compatible, with extensions.
Nonlinear transfer functions use time as the independent variable.
Some may not make sense, but they are there anyway.
4.2.3 Capacitors and inductors
Time dependent functions are capacitance or inductance as a function
of time. They are voltage/current conserving, not charge/flux
conserving.
Nonlinear transfer functions are charge or flux as a function of input
(voltage or current). Charge and flux are conserved, and can be
probed.
4.2.4 Resistors and conductances
Time dependent functions are resistance or conductance as a function
of time.
Nonlinear transfer functions are current or voltage as a function of
input (voltage or current). Resistors define voltage as a function of
current. Conductances define current as a function of voltage.
4.2.5 Controlled sources
Time dependent functions are gain (v/v, transconductance, etc)
function of time.
Nonlinear transfer functions are output (voltage or current) as a
function of input (voltage or current).
4.2.6 Available functions
- COMPLEX
- Complex (re, im) value.
- EXP
- Spice Exp source. (time dependent value).
- FIT
- Fit a curve with splines.
- GENERATOR
- Value from Generator command.
- POLY
- Polynomial (Spice style).
- POSY
- Posynomial (Like poly, non-integer powers).
- PULSE
- Spice Pulse source. (time dependent value).
- PWL
- Piece-wise linear.
- SFFM
- Spice Frequency Modulation (time dependent value).
- SIN
- Spice Sin source. (time dependent value).
- TANH
- Hyperbolic tangent transfer function.
In addition, you may name a “function” defined by a .model
statement. The following .model types may be used here:
- TABLE
- Fit a curve with splines.
- Cap
- Spice semiconductor “capacitor” model.
- Res
- Spice semiconductor “resistor” model.
4.2.7 Parameters that apply to all functions
These parameters are available with all functions. Some may not make
sense in some cases, but they are available anyway.
- Bandwidth = x
-
AC analysis bandwidth. (Default = infinity.) The transfer function
is frequency dependent, with a 3 DB point at this frequency. There is
frequency dependent phase shift ranging from 0 degrees at low
frequencies to 90 degrees at high frequencies. The phase shift is 45
degrees at the specified frequency. AC ANALYSIS ONLY.
- Delay = x
-
AC analysis delay. (Default = 0.) The signal is delayed by x seconds,
effectively by a frequency dependent phase shift. AC ANALYSIS ONLY.
- Phase = x
-
AC analysis phase. (Default = 0.) A fixed phase shift is applied.
This is primarily intended for sources, but applies to all elements.
AC ANALYSIS ONLY.
- IOffset = x
-
Input offset. (Default = 0.) A DC offset is added to the “input”
of the element, before evaluating the function.
- OOffset = x
-
Output offset. (Default = 0.) A DC offset is added to the “output”
of the element, after evaluating the function.
- Scale = x
-
Transfer function scale factor. (Default = 1.) The transfer function
is multiplied by a constant.
- TNOM = x
-
Nominal temperature. (Default = .option TNOM) The nominal values
apply at this temperature.
- TEMP = x
-
Actual temperature. (Default = current global simulation temperature)
This is the actual device temperature.
- DTEMP = x
-
Temperature rise over ambient. (Default = 0.) The actual device
temperature is the global simulation temperature plus dtemp.
- TC1 = x
-
First order temperature coefficient. (Default = 0.)
- TC2 = x
-
Second order temperature coefficient. (Default = 0.)
- IC = x
-
Initial condition. An initial value, to force at time=0. The actual
parameter applied depends on the component. (Capacitor voltage,
inductor current. All others ignore it.) You must use the “UIC”
option for it to be used.
Temperature adjustments and scaling use the following formula:
value *= _scale * (1 + _tc1*tempdiff
+ _tc2*tempdiff*tempdiff)
where tempdiff is t - _tnom.