我试图在verilog中的verilog中生成随机数字。 但问题是当我重新运行模拟时,随机值是固定的。 所以以前的仿真值和当前的仿真随机值是一样的。在verilog问题中随机生成相同的数字
reg [20:0] temp;
integer seed;
reg [31:0] rand;
initial fork
seed = $random;
for (i=0; i<10; i=i+1)begin
temp = $random(seed) %10 ;
end
wait(verif_fcnt == 3) begin
temp = $random(seed) %10 ;
task1(temp[0],temp[7:0]);
end
wait(verif_fcnt == 3) begin
temp = $random(seed) %10;
task2(temp[0],temp[7:0]);
end
wait(verif_fcnt == 3) begin
temp = $random(seed) %10;
task3(temp[0],temp[7:0]);
end
join
当我重新运行时,种子值总是相同 – grander3
在你的模拟命令中,可以定义一个种子,例如在NCsim中使用“$ NUMBER”命令行选项。此种子将自动约束您模拟中的随机呼叫。 – Krouitch
是否有任何选项可以在verilog not tool中处理? – grander3