2017-07-30 163 views
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模擬器生成重複的隨機數序列?

+1

有趣。我不相信該標準指定要使用哪種隨機生成算法。因此,您不能指望使用不同的編譯器生成相同的序列。唯一想到的是使用第三種工具預先生成序列,並將這些序列提供給兩種模擬。 – Serge

回答

1

你不應該使用隨機刺激的金色輸出文件;你需要一個自檢測試臺。對設計或測試平臺的任何更改都可能會使先前的黃金輸出無效。

相關問題