Verilog显示基于分数长度的reg值

时间:2016-03-02 10:38:04

标签: verilog xilinx hdl fixed-point

假设您有一个带符号的32位数字,其分数长度为16位。也就是说,前16个MSB是整数部分,其余(16 LSB)是分数部分。在verilog中是否有一种方法可以在基数10中显示这​​个数字,以便更容易读取小数。

例如:

  <00> 0000 0000 0000 0001 1000 0000 0000 0000应显示为1.5

我正在使用Xillinx。我已经在线查看,但我还没有找到办法。

1 个答案:

答案 0 :(得分:1)

Use $itor integer to real to cast your binary pattern (integer). and use 2.0 (a real, not 2 an integer) to the power of (**) -16, the number of fractional bits:

module tb;
  initial begin
    $display("%g",$itor(32'b01_1000000000000000) * 2.0**-16);
  end
endmodule

On EDA Playground.