Floating point $在控制台中显示浮点数字

Floating point $在控制台中显示浮点数字,floating-point,verilog,ieee-754,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'

我试图在模拟过程中显示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);
转换的宽度是任意大的。对于1100000110011101000010000110000,上述内容将打印出-16.000000。我已经确定符号和指数部分起作用了,但是尾数乘以2^-23,正好是0。真正的答案应该是-19.628998


你知道我错过了什么吗?这在Verilog中可能吗?谢谢

如果我没弄错的话,你想要的是:

wire [31:0] out;

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