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