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