有没有办法在verilog中存储和计算非整数值,(比如x = 5/2 = 2.5)。 我可以在上面定义的x中计算和存储2.5吗?
答案 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