SystemVerilog プロジェクトを誰かと共同作業しています。ただし、私は Synopsys VCS SystemVerilog シミュレーターを使用することに慣れており、彼は Cadence INCISIVE irun を使用することに慣れています。
1 つのテストベンチ モジュールは、トップ デザイン モジュールへのテスト入力パターンを生成するために乱数を使用します。したがって、乱数を生成するためのクラスを設計しました。
class RandData;
rand logic [3:0] randIn;
function new(int seed);
this.srandom(seed);
endfunction
endclass
シードを使用してクラス RandData をインスタンス化し、シミュレーションで乱数の固定シーケンスを取得できます。ただし、2 つのシミュレータで同じシードを使用しても、VCS で得られる固定乱数系列と irun で得られる固定乱数系列は異なります。
残念ながら、トップ デザイン モジュールのゴールデン出力パターンは、テスト入力パターンに依存します。したがって、ゴールデン出力パターンがVCSによって生成された入力パターンで生成された場合、ゴールデン出力パターンはirunによってシミュレートされたトップ デザイン出力と一致しません。
したがって、VCS と irun シミュレーターで乱数の重複シーケンスを生成するにはどうすればよいですか?