verilog之random


verilog之random

1、基本作用

random,用於產生隨機數。在測試時,有時需要測試的情況太多,無法一一列舉,就需要使用抽樣測試的方法驗證功能是否可行。random是一個有返回值的系統函數,可以直接用於計算。返回值帶符號的整形,所以不能直接當作無符號的數據處理。可以加上{}作為本身連接,即將符號位和數值位並在一起。這樣的數據就是無符號的隨機數。

2、實際例子

`timescale 1ns/1ns
module random;
    reg [23:0] ran;
initial begin
    $monitor($realtime,,"ran=%d",ran);
    #1
    ran=$random % 60;
    #1
    ran={$random} % 20; //無符號
    #1
    ran=$random % 2;
    #10
    $stop;
end
endmodule
run -all
# 0 ran=       x
# 1 ran=       8
# 2 ran=      17
# 3 ran=16777215
# ** Note: $stop    : D:/Library/verilog_soft/P1_function/H4_random/random.v(13)
#    Time: 13 ns  Iteration: 0  Instance: /random

前面兩個數據還是比較正常的,但第三個數據就比較奇怪。這個具體的原因可能和負數取余的運算有關。大概是帶符號位的取余的計算有別的語法規則。這里注意一下就行,盡量不要使用帶符號位的隨機數去取余。

3、小結

這個函數主要要認識,具體的作用也好理解。隨機數可以節約大型項目的測試向量的編寫時間和成本,是提高效率的好辦法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM