Spectrum Software
spacer
Industrial Strength Simulation
select:

divider

 

 

divider

 

Previous

Micro-Cap Operators and Functions

Next
Arithmetic
+ Addition
- Subtraction
* Multiplication
/ Division
MOD Modulus (remainder after integer division)
DIV Integer division
 
Digital
D(A) Digital state on node A
HEX(A,B,C,D) Hex value of the digital states of nodes A, B, C, D
BIN(A,B,C,D) Binary value of the digital states of nodes A, B, C, D
DEC(A,B,C,D) Decimal value of the digital states of nodes A, B, C, D
OCT(A,B,C) Octal value of the digital states of nodes A, B, C, D
& Bitwise AND of two digital node states
| Bitwise OR of two digital node states
^ Bitwise XOR of two digital node states
~ Bitwise NOT of a digital node state
 
Transcendental
SIN(z) Sine function
COS(z) Cosine function
TAN(z) Tangent function
COT(z) Cotangent function
SEC(z) Secant function
CSC(z) Cosecant function
ASIN(z) Inverse sine function
ACOS(z) Inverse cosine function
ATAN(z) Inverse tangent function
ATN(z) Inverse tangent function
ARCTAN(z) Inverse tangent function = ATN(z)
ATAN2(y,x) Inverse tangent function = ATN(y/x)
ACOT(z) Inverse cotangent function
ASEC(z) Inverse secant function
ACSC(z) Inverse cosecant function
SINH(z) Hyperbolic sine
COSH(z) Hyperbolic cosine
TANH(z) Hyperbolic tangent
COTH(z) Hyperbolic cotangent
SECH(z) Hyperbolic secant
CSCH(z) Hyperbolic cosecant
ASINH(z) Inverse hyperbolic sine
ACOSH(z) Inverse hyperbolic cosine
ATANH(z) Inverse hyperbolic tangent
ACOTH(z) Inverse hyperbolic cotangent
ASECH(z) Inverse hyperbolic secant
ACSCH(z) Inverse hyperbolic cosecant
LN(z) Natural Log
LOG(z) Common log
LOG10(z) Common log
EXP(z) Exponential
EXPL(x,max) Exponential: if x is less than max then exp(x) else exp(max)*(x+1-max )
EXPLP(x,max) Derivative of EXPL with respect to x
POW(z,x) Complex power of operator, z^x
PWR(y,x) Real power of operator, y^x
PWRS(y,x) Real signed power of operator: |y|^x, if y>0, -|y|^x if y<0
** or ^ Power of operator, ie; 5**2=25 or 5^2=25
DB(z) 20 * LOG(|z|)
RE(z) Real part of z
IM(z) Imaginary part of z. IMAG() and IMG() also work.
MAG(z) Magnitude of z. M() also works.
PH(z) Phase of z in degrees. PHASE() and P() also work.
GD(z) Group delay, Delta(phase of z)/Delta(frequency)
 
SPICE3 Boolean operators
& Analog AND
| Analog OR
~ Analog NOT
^ Analog XOR
 
Standard Boolean and inequality operators
AND And operator
NAND Nand operator
OR Or operator
NOR Nor operator
XOR Exclusive-Or operator
NOT Negation operator
< Less than operator
> Greater than operator
<= Less than or equal operator
>= Greater than or equal operator
!= Not equal to operator
<> Not equal to operator
== Equal to operator
 
Limiting and conditional operators
MIN(z1,z2) Minimum of real and imaginary parts of z1 and z2
MAX(z1,z2) Maximum of real and imaginary parts of z1 and z2
LIMIT(z,z1,z2) Returns z, with its real part limited to the range of RE(z1) to RE(z2) and the imaginary part limited to the range IM(z1) to IM(z2)
IF(b,z1,z2) If b is true, the function returns z1, else it returns z2
 
Signal Processing / FFT Functions
HARM(u[,bw]) Harmonics of waveform u. bw = optional bandwidth.
HARMN(u) Harmonics of waveform u normalized to the value at the fundamental. bw = optional bandwidth.
THD(S[,F]) Total harmonic distortion of spectrum S as a percent of the value at the reference frequency F. If F is missing, it is set to the first harmonic (1/tmax in transient analysis).
IHD(S[,F]) Individual harmonic distortion of spectrum S as a percent of the value at F. It is similar to THD but not cumulative.
FFT(u) Standard forward Fourier transform of waveform u
FFTS(u[,bw]) Forward Fourier transform of waveform u, scaled so that RE(FFTS(u)) produces the Fourier series cosine coefficients and IM(FFTS(u)) produces the Fourier series sine coefficients. BW = optional bandwidth. It is similar to HARM() function.
FS(u,[[n1],n2]) Partial Fourier series representation of waveform u, compiled from the terms n1 through n2. N1 defaults to 0 and n2 defaults to the FFT Number of Points / 2.
RES(u,[[n1],n2]) The residue function shows the waveform u minus the Fourier terms n1 through n2. N1 defaults to 0. N2 defaults to 1, so that RES(u) is RES(u,0,1) and thus essentially shows the distortion components due to the 2'nd and higher harmonics.
IFT(S) Standard inverse Fourier transform of spectrum S
IFTS(S) Scaled inverse Fourier transform of spectrum S. Scaling is such that IFTS(FFTS(u)) = u.
CONJ(S) Conjugate of spectrum S
CS(u,v) Cross spectrum = CONJ(FFT(v))*FFT(u)*dt*dt
AS(u) Auto spectrum of waveform u = CS(u,u)
CC(u,v) Cross correlation of u and v = IFT(CS(u,v))/dt
AC(u) Auto correlation of waveform u is = IFT(AS(u))/dt
COH(u,v) Coherence of u and v =CC(u,v)/sqr(AC(u(0))*AC(v(0)))
 
Integration and differentiation
DER(u,x) Calculates the derivative of u with respect to x.
SUM(y,x[,start]) Running integral of y with respect to x, with optional start parameter. Integral begins at x=start. Start defaults to the analysis variable minimum (tmin, fmin, or dcmin), or 0, depending upon the integration variable, x.
SD(y[,start]) Running integral of y with respect to T in transient, F in AC, or DCINPUT1 in DC, with an optional start parameter. Integral begins at start. Start defaults to tmin, fmin, dcmin, according to the analysis type.
DD(y) Numerical derivative of y with respect to T in transient, F in AC, or DCINPUT1 in DC.
RMS(y[,start]) Running root-mean-square of y with respect to F in AC, T in transient, or DCINPUT1 in DC, with an optional start parameter. Integral begins at start which defaults to tmin, fmin, or dcmin, according to the analysis type.
AVG(y[,start]) Running average of y with respect to T in transient, F in AC, or DCINPUT1 in DC. The optional start parameter defaults to tmin, fmin, dcmin.
SDT(y) Running integral of y with respect to T (Time). Integral begins at T = tmin
DDT(y) Numerical derivative of y with respect to T (Time)
DEL(y) Change in y from the prior data point to the current point. A numerical derivative is formed by the ratio of two operators. For example, DEL(y)/DEL(t) approximates the numerical time derivative of y.
LAST(y,n) The n'th prior value of y. N=1 returns the value of y at the last timestep. N=2 returns the value of y at the timestep before last and so on.
 
Special functions
ABS(z) Absolute value function
CURVEY("F","W") Imports the Y component of curve W from the User source file F.
CURVEX("F","W") Imports the X component of curve W from file F.
DELAY(x,d) Returns expression x delayed by d seconds.
DIFA(u,v[,d]) DIFA reports differences between two analog curves. It compares the u expression with the v expression at every analysis point, and returns 1 if the absolute value of the result is more than d. Otherwise, it returns 0.
DIFD(u,v[,d]) DIFD reports differences between two digital curves. It compares the u level with the v level at every analysis point, and returns 1 if they differ for a time exceeding d. Otherwise, it returns 0.
FACT(u) Factorial of the integer value of u.
u! Factorial of the integer value of u. When using the ! notation, u must be a symbolic variable or a constant.
IMPORT(f,y) Imports curve y from the file f.
INT(x) Truncated integer function. INT(2.7) = 2
NINT(x) Round up integer function. INT(2.7) = 2
IMPULSE(y) Impulse function of amplitude y and area of 1.0
JN(n,z[,m]) N'th order Bessel function of the first kind of the complex expression z, compiled from the series using m terms. M defaults to 10.
J0(z) Zero'th order Bessel function of the first kind of the complex expression z. Same as JN(0,z,10)
J1(z) First order Bessel function of the first kind of the complex expression z. Same as JN(1,z,10)
LAST(z,n) Curve z delayed by n time points
MAXR(x) Returns the largest value of x encountered at any time during a transient or DC sweep analysis run.
MINR(x) Returns the smallest value of x encountered at any time during a transient or DC sweep analysis run.
NORM(z,x0) Curve z normalized at the value of z when the X expression is equal to x0. DB operators normalized to 0.
PN(n,x) N'th order Legendre polynomial function of x
NORMMAX(z) Curve z normalized at the maximum value of z
NORMMIN(z) Curve z normalized at the minimum value of z
PROD(n,n1,n2,z) Calculates the product of the series of the complex expression z = z(n), for n = n1 to n = n2.
SERIES(n,n1,n2,z) Calculates the summation of the series of the complex expression z = z(n), for n = n1 to n = n2.
SGN(y) +1 (if y>0), 0 (if y=0), -1 (if y<0)
SQRT(z) Complex square root
STP(x) Step function of amplitude 1.0 starting at T >= x
TABLE(x,x1,y1..xn,yn) This function performs a table lookup. It returns a value for y associated with the value of x, interpolated from the table. X values less than x1 generate an answer of y1. X values greater than xn generate an answer of yn.
W(z) Lambert W function for complex z
YN(n,z[,m]) N'th order Bessel function of the second kind of the complex expression z, compiled from the series using m terms. M defaults to 10.
Y0(z) Zero'th order Bessel function of the second kind of the complex expression z. Same as YN(0,z,10)
Y1(z) First order Bessel function of the second kind of the complex expression z. Same as YN(1,z,10)
 
Random functions
RND Returns a new random value at every time point.
RNDR Returns a new random value at the start of each run command.
RNDC Returns a new random value at the start of each new Monte Carlo, temperature, or stepping run..
Monte Carlo functions
AGAUSS(val,abs,s) Returns a random value determined by a Gaussian distribution with a mean value of val and a standard deviation of abs/s.
GAUSS(val,rel,s) Returns a random value determined by a Gaussian distribution with a mean value of val and a standard deviation of val*rel/s.
UNIF(val,rel) Returns a random value uniformly distributed between val - val*rel and val + val*rel.
AUNIF(val,abs) Returns a random value uniformly distributed between val - abs and val + abs.