下面是cadence xrun仿真的结果
允许的语法形式如下:
$random;
$random();
$urandom;
$urandom();
$urandom(seed);
仿真结果总结如下:
1)$random,$random():
在同一次仿真中,每次调用可以得到不一样的随机值,
但是每次不同的仿真,相同次数的调用会得到相同的随机值,即使在命令行中添加选项 -seed xxx,改变种子也是这样。
也就是说,每次不同的仿真,不管你添加什么seed值,初始seed值是确定的!
特别指出的是,$random(seed);的写法xrun会报error,不知道是不是要添加什么编译选项?
2)$urandom,$urandom():
命令行中不添加选项 -seed xxx,每次不同的仿真,相同次数的调用会得到相同的随机值。
在命令行中添加选项 -seed xxx,改变种子,可以得到不同的随机值,-seed 可以改变初始种子值
3)$urandom(seed):
指定seed值的情况下,在同一次仿真中,不同次数的调用,会得到相同的随机值!
这样写法的话,随机数发生器是永远用相同的种子和算式得到随机值。
而不是,像别的写法,每次调用,随机数发生器的种子是会改变的。