$在控制台中显示浮点数

时间:2013-06-02 06:03:16

标签: floating-point verilog ieee-754

我正在尝试在模拟期间显示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中甚至可能吗?谢谢!

1 个答案:

答案 0 :(得分:3)

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

wire [31:0] out;

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