[Verilog][SystemVerilog] $ramdomの使い方

[Verilog][SystemVerilog] $random使用時の失敗


にて、コメント頂きました。
ありがとうございます m(_ _)m


コメント頂きました記述方法にて、確認出来ましたのでこちらでも記載しときます。

module testbench();

  integer seed_a = 1 ;
  integer seed_b = 2 ;
  integer temp_a = 0 ;
  integer temp_b = 0 ;

  initial begin
    repeat(10) begin
      temp_a = $random(seed_a) % 5;
      temp_b = $random(seed_b) % 5;
      $display("--- temp_a = %3d, temp_b = %3d ---", temp_a, temp_b);
    end
    $finish(2);
  end

endmodule
  • 実行結果
# --- temp_a =  -3, temp_b =  -3 ---
# --- temp_a =  -3, temp_b =   0 ---
# --- temp_a =   2, temp_b =  -1 ---
# --- temp_a =  -4, temp_b =   0 ---
# --- temp_a =   1, temp_b =   0 ---
# --- temp_a =   3, temp_b =   3 ---
# --- temp_a =  -3, temp_b =   1 ---
# --- temp_a =  -1, temp_b =   2 ---
# --- temp_a =   0, temp_b =   0 ---
# --- temp_a =  -1, temp_b =   0 ---

$random の seed引数って更新されるんですね。
確かにこの記述方法だと、前に書いたような失敗が起きないですね。

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数