相信各位设计
/
验证工程师在写
verilog
testbench
的时候都会需要产生随机数,
如果你直接调用系统自带的
$random
系统函数的话,
你会发现每次仿真产生的随
机数序列是一样的,
这是因为调用随机数系统函数时没有指定随机数种子,
系统
会直接调用默认的种子,
所以每次产生随机数都用了同样的种子,
那么随机数序
列也就是一样的。下面提供两种产生每次都不一样的随机数序列的方法:
1.
在
vcs
脚本中产生随机种子
在
vcs
脚本中添加:
set seed =''
set seed =$$$$
+ntb_random_seed=$seed \
这种方式只需要在
bench
中用
$urandom
就可以每次都产生不一样的随机数,如
果要配置种子,则使用命令:
run +seed=1234
2.
在
bench
中产生随机种子
testbench
中加入以下代码:
import "DPI-C" function int c_random();
initial begin:random_seed_cap