verilog中均匀分布的随机实数

Random real numbers with uniform distribution in verilog

verilog中有没有生成[0,1]范围内均匀分布的随机实数的函数。我试过 $random%2 但它只生成整数值 {-1,0,1}。 VHDL中有函数uniform(),verilog中有没有类似的函数?

不是真的。

$random 函数return是一个随机的 32 位整数。通过一些简单的数学运算,您可以将其转换为实数并将其映射到 -1..1 范围内。 (模运算符不是正确的方法)但是你不会在那个范围内有 'infinite' 个随机数,因为只有 2^32 个不同的数字 $random 可以 return.

我不确定,但我认为没有任何编程语言支持 -1 和 1 之间的无限浮动随机数。据我所知,它们都使用生成整数的伪随机生成器,然后你必须操纵它以获得你想要的随机概率曲线。