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 '-seed $ NUMBER'コマンドラインオプションで指定します。このシードは自動的にランダム呼び出しを制限します。 – Krouitch
Verilog not toolで扱えるオプションはありますか? – grander3