verilog中的非整数值

时间:2014-06-22 13:04:42

标签: verilog system-verilog hdl

有没有办法在verilog中存储和计算非整数值,(比如x = 5/2 = 2.5)。 我可以在上面定义的x中计算和存储2.5吗?

1 个答案:

答案 0 :(得分:1)

是的,您可以使用real registers存储实际值,即:

real float; // a register to store real value 

通常它是存储浮点值的64位宽数据类型。但并非所有Verilog运算符都可以用于涉及实数和实数寄存器的表达式。不允许使用连接,模数运算符,大小写等式,逐位运算符,简化运算符移位运算符,位选择和部分选择实数类型变量。

简单示例:

module ecample;
real r;

initial begin 
  r = 123456e-3;
  $display("r=%f",r); // r = 123.456000
  #20 r = r / 2;
  $display("r=%f",r); // r = 61.728000
  $finish; 
end 
endmodule