浮点数处理技术
浮点数处理技术
当mantissa为0, exponents不为0时,浮点数表示什么?
Status信号通常用于表示运算过程中的状态或异常情况
具体解释如下
| Bit 名称 | 含义解释 |
| —————— | ———————————————————————————————————- |
| zero | 结果为零。表示浮点运算结果是精确的 ±0,可能是因为下溢、抵消或特定计算结果。
例如:1e-200 * 1e-200 → 0
|
| Infinity | 结果为正无穷或负无穷。通常是除以零或溢出导致的。例如:1.0 / 0.0 → ∞
,或某些过大的乘法结果 |
| Invalid | 无效操作。表示非法的浮点操作,如 0/0
、∞ - ∞
、sqrt(-1)
,或 NaN
传播等 |
| Tiny | 下溢(subnormal)。表示运算结果非常接近于零,精度不够而进入非正规数范围(denormal/subnormal),但不等于0。 |
| Huge | 上溢(overflow)。结果过大超出浮点数表示范围,常与 Infinity
一起标记 |
| Inexact | 结果不精确。发生了舍入,即实际结果不能精确表示为有限精度浮点数时设此位。几乎所有浮点运算都会触发此位 |
| HugeInt | 结果非常大的整数。该标志通常在浮点转整数的过程中使用,例如将一个极大浮点数转换为整数时超出表示范围或达到极值。 |
该信号一般在CPU/FPU中用于异常控制,如:1
2
3
4
5
6always @(posedge clk) begin
if (status[2]) begin
// 触发无效操作异常处理
raise_exception(INVALID_OP);
end
end