0

我与某人合作了一个 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 模拟器生成重复的随机数序列?

4

1 回答 1

1

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

于 2017-07-31T02:58:33.210 回答