floating-point - $在控制台中显示 float

标签 floating-point verilog ieee-754

我试图在模拟过程中显示 IEEE 754 单精度 float 。我正在使用 $display() 并尝试在 ModelSim 和我的控制台中打印数字(在 Mac 上使用 Icarus Verilog)。到目前为止我最好的尝试是:

wire [31:0] out;
wire signed [200:0] conv = -1**(out[31]) * (1'b1 + (out[22:0] * 2'b10**($signed(8'b11101001)))) * 2'b10**(out[30:23] + $signed(8'b10000001));

$display("The number is %f", conv);

转换后的宽度是任意大的。对于 11000001100111010000100000110000,上面将打印出 -16.000000。我已经确定符号和指数部分有效,但尾数乘以 2^-23,只是变为 0。真正的答案应该是 -19.628998。

我缺少什么想法吗?这在 Verilog 中可能吗?

最佳答案

如果我理解正确的话,你想要的是$bitstoreal ,类似;

wire [31:0] out;

$display("The number is %f", $bitstoreal(out));

关于floating-point - $在控制台中显示 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16880216/

相关文章:

MySQL JSON存储不同的浮点值

python - Python 2.7 中的 float 学精度

c - 如何确保跨平台的浮点大小相同?

verilog - 单(&)和双(&&)&二进制运算符之间有什么区别?

testing - 使用 Verilog VPI 在模拟器中提前时间

delphi - Delphi:从二进制表示形式定义const double

java - 将 Java Double.Max_VALUE 与大双数进行比较返回 true

c++ - 与迭代乘法相比,std::pow() 的数值稳定性如何?

verilog - 是否允许模块标识符与 Verilog 中的模块类型相同?

java - Java 中的双重算术和相等性