我是Verilog的新手。
我如何随机化以下内容:
bit [7:0] data [];
*不使用systemVerilog的randomize()。
答案 0 :(得分:4)
除非您对动态数组设置约束,否则SystemVerilog不会更改动态数组的大小。因此,您需要在调用If s2_pos <> 0 then
temp_swap = s1
m1.Cells(s1_pos, col).Value = s2
m1.Cells(s2_pos, col).Value = temp_swap
End If
之前分配数组,或使用约束来随机化大小。
randomize()
或
bit [7:0] data [];
data = new[10];
randomize(data);
或者如果您无权访问randomize()SystemVerilog,则可以执行
bit [7:0] data [];
randomize(data) with {data.size inside {[5:15]} ;};
答案 1 :(得分:2)
将数组的大小限制在所需范围内并调用randomize。它应该生成一个包含随机数据的数组(在下面的例子中,大小在30到40之间)
class rand_gen ;
rand bit [7:0] data[];
constraint db { data.size inside {[30:40]}; }
task generate ();
randomize(data);
end task
endclass