资料来源
(1) Verilog系列:【74】如何$random随机数 (qq.com)
1.$random随机函数
(1)功能:根据指定的种子(可以不指定种子)产生一个有符号的32位整型伪随机数;
(2)使用:$random(seed)或$random()或$random;$random(seed)%n(n>0)可实现产生范围为[(-n+1):(n-1)]的整数;
1.1$random注意事项之seed的变化
(1)$random后的参数,不能直接使用表达式或具体的数字,其后的参数必须是一个变量,并且该变量由确定的初始值(x/z亦可);
注:$random(seed%3)这种用法是错误的;
(2)seed在每次$random(seed)调用后都会自动被修改;$random后的参数既是其进行随机时的输入,也是随机结束后存在函数返回值的存储所在;
1.2$random注意事项之使用$random产生正数随机数
(1)使用{}可以将$random(seed)随机产生的数约束为无符号数,实现了一定范围内非负数的随机,格式为{$random(seed)}%n(n>0,该方法实现了一个范围在[0:(n-1)]的随机数);
1.3$random注意事项之使用$random产生任意范围的随机数
(1)使用格式: min+{$random(seed)}%(max-min+1);