資料來源
(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);