シミュレーション中に 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 でも可能ですか? ありがとう!