3

我们如何在系统verilog中获得随机数生成器的当前状态或当前种子?

4

1 回答 1

3

使用get_randstate(),定义为

function string get_randstate();

来自 SystemVerilog 2012 语言规范:

get_randstate()方法返回与给定对象关联的 RNG 内部状态的副本。RNG 状态是一个未指定长度和格式的字符串。字符串的长度和内容取决于实现。

请注意,SystemVerilog 将为每个线程和对象创建一个单独的 RNG,因此您会看到来自不同对象的不同结果。

例子:

t1 = new;
t2 = new;
$display(t1.get_randstate());
$display(t2.get_randstate());

Incisive 的示例输出:

svseed=1 ; 5864a323c57f14c ; 
svseed=1 ; bbfc1b9e8eb663ae ; 
于 2013-05-14T16:31:26.800 回答