verilog $random $urandom


下面是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值的情况下,在同一次仿真中,不同次数的调用,会得到相同的随机值!

这样写法的话,随机数发生器是永远用相同的种子和算式得到随机值。

而不是,像别的写法,每次调用,随机数发生器的种子是会改变的。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM