2013-06-02 104 views
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中甚至可能嗎?謝謝!

回答

3

如果我理解正確,你想要的是$bitstoreal,類似;

wire [31:0] out; 

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