我们可以在系统verilog中使用$random和seed参数吗?

我们可以在系统verilog中使用$random和seed参数吗?,random,verilog,system-verilog,Random,Verilog,System Verilog,我可以使用$random(seed)为系统verilog中的变量生成相同的值吗 module test(); logic[1:0] a,b: integer seed; initial begin repeat (3) begin seed = 20; a = $random(seed); b=$random; $display("a=%h,b=%h",a,b): end end endmodule 对于上面的代码,我总是将“a”的值设置为“0”。我们不能在种子中使用$random吗?因为当我

我可以使用$random(seed)为系统verilog中的变量生成相同的值吗

module test();
logic[1:0] a,b:
integer seed;
initial begin
repeat (3)
begin
seed = 20;
a = $random(seed);
b=$random;
$display("a=%h,b=%h",a,b):
end
end
endmodule
对于上面的代码,我总是将“a”的值设置为“0”。我们不能在种子中使用$random吗?因为当我把它改成$urandom(seed)时,它就如预期的那样工作了。我在很多地方都读过,所以我可以使用$random和seed参数。 有人能帮忙吗

下面代码中的$urandom(seed)也是如此

module test();
logic[1:0] a,b:
integer seed,seed1;
initial begin
repeat (3)
begin
seed = 20;
seed1 = 55;
a = $urandom(seed);
$display("a first random=%h",a);
a = $urandom(seed1);
$display("a second random =%h",a);
b=$random;
$display("a=%h,b=%h",a,b);
end
end
endmodule

对于上面的代码eventhough,如果我在不同的随机化中使用seed1和seed2作为$uradom的参数,那么它将采用相同的值eventhough seed number在模块内更改?是预期的还是如果我们将不同的种子作为$URADOM的参数,那么该值是否需要挂起?

代码的问题是每次循环都设置
seed=20
,因此总是得到相同的随机值。在SystemVerilog中,只需使用
$uradom
并从模拟器的命令行设置全局种子

我只是在尝试种子选项以及$random和$Uradom,只是为了学习。我尝试了这个seed=20,所有这些数字都是0,甚至没有得到1,这是什么原因?A同时,当我使用$urandom时,它得到的值不是0。如果你能看到我更新了我的问题,还有一个疑问,你能看看吗。提前感谢,我同意相同的随机值,但随机值始终为0,我给出的任何种子值,不仅是种子=20try
seed=201
$random
的值分布非常差。