$random ,看似很简单的一个系统函数,里面还真的有陷阱?今天,见识一下。
一 理论
提到约束随机生成器,我们首先想到使用.randomize方法和系统函数,$urandom和$urandom_range。
除了这些之外,SystemVerilog还提供了一组RNG,它们返回根据标准概率函数分布的整数值。它们是: $random、$dist_uniform、$dist_normal、$dist_exponential、$dist_poisson、 $dist_chi_square、$dist_t和$dist_erlang。
20.15.1 $random function随机化函数
系统函数 $random 提供了生成随机数的机制。每次调用该函数时,它都会返回一个新的 32 位随机数。随机数是一个带符号的整数,可以是正数也可以是负数。seed 参数控制 $random 返回的数字,以便不同的种子生成不同的随机流。
种子参数应是一个整数变量(不可以是常量十进制)。种子值应在调用 $random 之前赋给该变量。
例子 1: Where b is greater than 0, the expre