Verilog-A 数学函数
数值计算函数,用于数学运算。既可用于数值变量,也可用于信号值。注意输入限制(如 log/ln 不能输入负值)。
基础函数
| 函数 | 定义 | 输入限制 | 返回值 |
|---|---|---|---|
abs(x) |
取绝对值 | — | integer, real |
ceil(x) |
≥x 的最小整数 | — | integer |
floor(x) |
≤x 的最大整数 | — | integer |
exp(x) |
指数 eˣ | — | real |
ln(x) |
自然对数 | x > 0 | real |
log(x) |
对数(常用对数) | x > 0 | real |
max(x, y) |
最大值 | — | integer, real |
min(x, y) |
最小值 | — | integer, real |
pow(x, y) |
x 的 y 次方 | — | real |
sqrt(x) |
开根号 | x > 0 | real |
三角函数
| 函数 | 定义 | 输入限制 |
|---|---|---|
sin(x) |
正弦 | — |
cos(x) |
余弦 | — |
tan(x) |
正切 | x ≠ n·(π/2) |
asin(x) |
反正弦 | -1 ≤ x ≤ 1 |
acos(x) |
反余弦 | -1 ≤ x ≤ 1 |
atan(x) |
反正切 | — |
atan2(x, y) |
x/y 的反正切(四象限) | y ≠ 0 |
hypot(x, y) |
√(x² + y²) | — |
sinh(x) |
双曲正弦 | — |
cosh(x) |
双曲余弦 | — |
tanh(x) |
双曲正切 | — |
asinh(x) |
反双曲正弦 | — |
acosh(x) |
反双曲余弦 | x ≥ 1 |
atanh(x) |
反双曲正切 | -1 ≤ x ≤ 1 |
书中原表 atanh 误写为 atan,此处按标准更正。
实用技巧
tanh是建模利器:中间点线性度好、任意点连续可导、两端缓慢饱和——非常适合做比较器/运放的非线性限幅:
V(sigout) <+ 0.5*(out_high - out_low)
* tanh(gain*(V(sigin, sigref) - offset))
+ (out_high + out_low)/2;
M_PI来自 constants.vams:`define M_PI 3.14159265358979323846。$vt为热电压(见 09 - VerilogA 仿真器函数)。
相关笔记
- 模拟算子 → 07 - VerilogA 模拟算子
- 仿真器函数 → 09 - VerilogA 仿真器函数
- 自定义函数 → 11 - VerilogA 自定义函数与编译器指令
- 常用器件模型 → 15 - VerilogA 常用器件模型