verilog中的非整数值

verilog中的非整数值,verilog,system-verilog,hdl,Verilog,System Verilog,Hdl,有没有一种方法可以在verilog中存储和计算非整数值(比如x=5/2=2.5)。 我可以计算并存储上面定义的2.5英寸x吗?是的,您可以使用实寄存器来存储实值,即: real float; // a register to store real value 通常它是一种64位宽的数据类型,用于存储浮点值。但并非所有Verilog运算符都可以用于涉及实数和实数寄存器的表达式。不允许对实型变量进行串联、模运算符、大小写相等、逐位运算符、归约运算符、移位运算符、位选择和部分选择 简单的例子: m

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

是的,您可以使用
实寄存器来存储实值,即:

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 

你可以随心所欲地变换位,还有很多方法可以对非整数进行编码。但我想你是在要求在Verilog中内置一些东西?是的,比如我们是否有任何关键字或函数,我们可以使用它们将非整数值存储到寄存器中(例如,有符号意味着我们将有符号的数字存储到寄存器中)。SystemVerilog语言中有用于建模的
real
数据类型,但是,如果您询问的是一种可以合成为硬件的内置类型,那么这是不存在的。real是否支持阵列。我可以声明像real r[0:10][0:10]这样的东西吗?因为用户用SystemVerilog标记了这个问题,所以我假设这就是他们正在使用的。是的,中有任何类型的数组SystemVerilog@dave_59:它还带有
Verilog
,其中没有真正的数组。