Expressions¶
Operators¶
Arithmetic Operators¶
Symbol | Usage | Description |
---|---|---|
+ |
a + b |
Sum a and b |
- |
a - b |
Subtract b from a |
- |
-a |
Negate a |
* |
a * b |
Multiply a and b |
/ |
a / b |
Divide a by b |
% |
a % b |
Modulus (remainder) of a/b |
** |
a ** b |
a raised to the power of b |
Bitwise Operators¶
Symbol | Usage | Description |
---|---|---|
~ |
~a |
Invert each bit of a |
& |
a&b |
Logical ‘and’ of each bit of a and b |
~& |
a~&b |
Logical ‘nand’ of each bit of a and b |
| |
a|b |
Logical ‘or’ of each bit of a and b |
~| |
a~|b |
Logical ‘nor’ of each bit of a and b |
^ |
a^b |
Logical ‘xor’ of each bit of a and b |
~^ |
a~^b |
Logical ‘xnor’ of each bit of a and b |
^~ |
a^~b |
Same as ~^ |
Reduction Operators¶
Symbol | Usage | Description |
---|---|---|
& |
&a |
Logical ‘and’ all bits in a to form 1 bit result |
~& |
~&a |
Logical ‘nand’ all bits in a to form 1 bit result |
| |
|a |
Logical ‘or’ all bits in a to form 1 bit result |
~| |
~|a |
Logical ‘nor’ all bits in a to form 1 bit result |
^ |
^a |
Logical ‘xor’ all bits in a to form 1 bit result |
~^ |
~^a |
Logical ‘xnor’ all bits in a to form 1 bit result |
^~ |
^~a |
Same as ~^ |
Logical Operators¶
Symbol | Usage | Description |
---|---|---|
! |
!a |
Is a false? |
&& |
a&&b |
Are both a and b true? |
|| |
a||b |
Are either a or b true? |
Equality Operators¶
Symbol | Usage | Description |
---|---|---|
== |
a==b |
Is a equal to b ? |
!= |
a!=b |
Is a not equal to b ? |
Identity Operators¶
Symbol | Usage | Description |
---|---|---|
=== |
a===b |
Is a identical to b ? |
!== |
a!==b |
Is a not identical to b ? |
Relational Operators¶
Symbol | Usage | Description |
---|---|---|
< |
a<b |
Is a less than b ? |
> |
a>b |
Is a greater than b ? |
<= |
a<=b |
Is a less than or equal to b ? |
>= |
a>=b |
Is a greater than or equal to b ? |
Shift Operators¶
Symbol | Usage | Description |
---|---|---|
<< |
a<<b |
Shift a left b bits, vacated bits are filled with 0 |
>> |
a>>b |
Shift a right b bits, vacated bits are filled with 0 |
<<< |
a<<<b |
Shift a left b bits, vacated bits are filled with 0 |
>>> |
a>>>b |
Shift a right b bits, vacated bits are filled with 0
if a is unsigned and by the sign bit of a otherwise |
Miscellaneous Operators¶
Symbol | Usage | Description |
---|---|---|
? : |
a ? b : c |
Evaluated to b if a is true and c otherwise |
{} |
{a,b} |
Concatenates sized bit vectors a and b |
{{}} |
{a{b}} |
Replicate b , a times |
Size of Integer Results¶
Form | Operators | Size |
---|---|---|
i op j | + , - , * , / , % , & , | , ^ , ^~ |
max(L(i), L(j)) |
op i | + , - , ~ |
L(i) |
i op j | == , != , === , !== , && , || , > , >= , < ,
<= |
1 |
op i | & , ~& , | , ~| , ^ , ~^ |
1 |
i op j | >> , << |
L(i) |
i ? j : k | max(L(j), L(k) | |
{i, ..., j} | L(i) + ... + L(j) | |
{i {j, ..., k}} | i * (L(j) + ... + L(k)) |
Functions¶
Function | Description |
---|---|
ln(x) |
Natural logarithm (base e) |
log(x) |
Common logarithm (base 10) |
exp(x) |
Exponential |
sqrt(x) |
Square root: √x |
min(x,y) |
Minimum |
max(x,y) |
Maximum |
abs(x) |
Absolute value |
floor(x) |
Floor (largest integer less than or equal to x ) |
ceil(x) |
Ceiling (smallest integer greater than or equal to x ) |
pow(x,y) |
Power: x ^{y} (y must be integer if x < 0) |
sin(x) |
Sine (argument is in radians) |
cos(x) |
Cosine (argument is in radians) |
tan(x) |
Tangent (argument is in radians) |
asin(x) |
Arc sine (result is in radians) |
acos(x) |
Arc cosine (result is in radians) |
atan(x) |
Arc tangent (result is in radians) |
atan2(y,x) |
Angle from the origin to the point x , y |
hypot(x,y) |
Distance from the origin to the point x , y ; hypot(x,y) = √(x^{2} + y^{2}) |
sinh(x) |
Hyperbolic sine (argument is in radians) |
cosh(x) |
Hyperbolic cosine (argument is in radians) |
tanh(x) |
Hyperbolic tangent (argument is in radians) |
asinh(x) |
Hyperbolic arc sine (result is in radians) |
acosh(x) |
Hyperbolic arc cosine (result is in radians) |
atanh(x) |
Hyperbolic arc tangent (result is in radians) |
$abstime |
The current time in seconds |
$realtime |
The current time in the current Verilog time units. |
$temperature |
The ambient temperature |
$vt |
The thermal voltage (V_{T} = kT/q) at the ambient temperature |
Random Functions¶
Function | Description |
---|---|
$random(seed) |
Uniformly distributed random 32-bit integer |
$dist_uniform(seed, lb, ub) |
Uniformly distributed random integer |
$rdist_uniform(seed, lb, ub) |
Uniformly distributed random real value |
$dist_normal(seed, mean, sd) |
Normally distributed random integer |
$rdist_normal(seed, mean, sd) |
Normally distributed random real value |
$dist_exponential(seed, mean) |
Exponentially distributed random integer |
$rdist_exponential(seed, mean) |
Exponentially distributed random real value |
$dist_poisson(seed, mean) |
Poisson distributed random integer |
$rdist_poisson(seed, mean) |
Poisson distributed random real value |
$dist_chi_square(seed, dof) |
Chi square distributed random integer |
$rdist_chi_square(seed, dof) |
Chi square distributed random real value |
$dist_t(seed, dof) |
Student T distributed random integer |
$rdist_t(seed, dof) |
Student T distributed random real value |
$dist_erlang(seed, k, mean) |
Erlang distributed random integer |
$rdist_erlang(seed, k, mean) |
Erlang distributed random real value |
Analog Operators¶
Operator | Description |
---|---|
ddt(operand, [abstol|nature]) |
Time derivative |
idt(operand, [ic], [assert], [abstol|nature]) |
Time integral |
idtmod(operand, [ic], [modulus], [offset], [abstol|nature]) |
Circular integrator |
transition(operand, delay, trise, [tfall]) |
Transition |
slew(operand, [rising_sr], [falling_sr]) |
Slew |
absdelay(operand, delay, [max_delay]) |
Delay |
laplace_zp(operand, [zeta], [rho], [epsilon]) |
Laplace, zero-pole form |
laplace_nd(operand, [n], [d], [epsilon]) |
Laplace, numerator-denominator form |
laplace_zd(operand, [zeta], [d], [epsilon]) |
Laplace, zero-denominator form |
laplace_np(operand, [n], [rho], [epsilon]) |
Laplace, numerator-pole form |
zi_zp(operand, [zeta], [rho], T, tau, t0) |
Z transform, zero-pole form |
zi_nd(operand, [n], [d], T, tau, t0) |
Z transform, numerator-denominator form |
zi_zd(operand, [zeta], [d], T, tau, t0) |
Z transform, zero-denominator form |
zi_np(operand, [n], [rho], T, tau, t0) |
Z transform, numerator-pole form |
last_crossing(operand, [direction]) |
Last crossing |
limexp(operand) |
Limited exponential |
Small-Signal Stimulus Functions¶
Function | Description |
---|---|
ac_stim([name], [mag], [phase])) |
AC stimulus |
white_noise(pwr, [name]) |
White noise |
flicker_noise(pwr, [exp], [name]) |
Flicker noise |
noise_table(pwr, [name]) |
Noise table |