Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Random 如何在SystemVerilog模拟器之间生成重复的随机数序列?_Random_Verilog_System Verilog_Cadence - Fatal编程技术网

Random 如何在SystemVerilog模拟器之间生成重复的随机数序列?

Random 如何在SystemVerilog模拟器之间生成重复的随机数序列?,random,verilog,system-verilog,cadence,Random,Verilog,System Verilog,Cadence,我和某人合作了一个SystemVerilog项目。然而,我习惯于使用Synopsys VCS SystemVerilog模拟器,他也习惯于使用Cadence INCISIVE irun 一个测试台模块使用随机数为顶层设计模块生成测试输入模式。因此,我设计了一个生成随机数的类: class RandData; rand logic [3:0] randIn; function new(int seed); this.srandom(seed); endfun

我和某人合作了一个SystemVerilog项目。然而,我习惯于使用Synopsys VCS SystemVerilog模拟器,他也习惯于使用Cadence INCISIVE irun

一个测试台模块使用随机数为顶层设计模块生成测试输入模式。因此,我设计了一个生成随机数的类:

class RandData;
    rand logic [3:0] randIn;
    function new(int seed);
        this.srandom(seed);
    endfunction
endclass
我可以用种子实例化RandData类,并在模拟中获得固定的随机数序列。然而,即使在两个模拟器中使用相同的种子,VCS获得的固定随机数序列也不同于irun获得的固定随机数序列

不幸的是,顶层设计模块的黄金输出模式取决于测试输入模式。因此,如果黄金输出模式由VCS生成的输入模式生成,黄金输出模式将与irun模拟的顶部设计输出不匹配


因此,如何使VCS和irun模拟器生成重复的随机数序列?

您不应该使用带有随机刺激的黄金输出文件;您需要一个自检测试台。对设计或测试台的任何更改都可能使以前的黄金输出无效

有趣。我不相信该标准规定了使用哪种随机生成算法。因此,您不能期望使用不同的编译器生成相同的序列。我唯一想到的是使用第三个工具预生成序列,并将其提供给两个模拟。