0

我试图在模拟期间显示一个 IEEE 754 单精度浮点数。我正在使用 $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 中是否可行?谢谢!

4

1 回答 1

2

如果我理解正确,您想要的是$bitstoreal,例如;

wire [31:0] out;

$display("The number is %f", $bitstoreal(out));
于 2013-06-02T07:03:58.897 回答