0
我與某人合作開發SystemVerilog項目。但是,我習慣使用Synopsys VCS SystemVerilog模擬器,他習慣於使用Cadence INCISIVE irun。如何在SystemVerilog仿真器之間生成重複的隨機數字序列?
一個測試臺模塊使用隨機數生成頂層設計模塊的測試輸入模式。因此,我設計一類用於產生隨機數:
class RandData;
rand logic [3:0] randIn;
function new(int seed);
this.srandom(seed);
endfunction
endclass
我可以實例化類RandData以種子和在模擬中獲得的隨機數的固定順序。然而,即使在兩個模擬器中使用相同的種子,由VCS獲得的固定隨機數序列也不同於irun的固定序列。
不幸的是,頂層設計模塊的黃金輸出模式取決於測試輸入模式。因此,如果使用由VCS生成的輸入模式生成黃金輸出模式,則黃金輸出模式將爲不匹配到由irun模擬的頂部設計輸出。
因此,如何使VCS和irun模擬器生成重複的隨機數序列?
有趣。我不相信該標準指定要使用哪種隨機生成算法。因此,您不能指望使用不同的編譯器生成相同的序列。唯一想到的是使用第三種工具預先生成序列,並將這些序列提供給兩種模擬。 – Serge