The VWSIM Mathematical Term Language.
VWSIM provides a language to express mathematical terms (expressions). Here, the subset of this language available to the user is presented. These expressions can be used when the user is describing netlists using the vwsim-hdl. At simulation time, these terms are evaluated to double-precision floating point numbers.
A term is one of the following:
A quoted constant is a QUOTE followed by a rational or double-precision floating point number.
Examples:
A symbol constant is a symbolp that has
Constant name | Description |
---|---|
Pi | |
Euler's number | |
Planck's constant (Joules * seconds) | |
Planck's Constant divided by two pi | |
Charge of an electron (Coulombs) | |
Boltzmann's constant (Joules/Kelvin) | |
Size of the Josephson junction (JJ) transition region (Volts) | |
Magnetic Flux Quantum (Webers) | |
Ratio of JJ critical current to quasiparticle step height |
The constants also include the multipliers
A symbol variable is a symbolp that denotes a variable
value that will be looked up at simulation time. The user is allowed
to use the
Note: it is recommended to use the
A function call is of the form:
(fun-name arg0 arg1 ...)
where each available fun-name and its arity is described below, and each argument is a term.
A note on the use of booleans: the vwsim-term language provides a
few functions that deal with booleans (
Function | Description |
---|---|
Check whether the current simulation time is less than the provided argument. Returns a boolean (see discussion above about booleans). | |
Logical not | |
Negation | |
Absolute value | |
Reciprocal | |
Square root | |
Sine | |
Cosine | |
Tangent | |
Hyperbolic tangent | |
Expontential function (e^x) |
Function | Description |
---|---|
Addition | |
Subtraction | |
Multiplication | |
Division | |
Less than | |
Equality | |
Modulo |
Function | Description |
---|---|
If the first argument evaluates to 0.0d0 (FALSE), then the third argument is evaluated. Otherwise, the second argument is evaluated. |
Some more examples of terms: