スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[SystemVerilog] $urandom_range

第28回 SystemVerilog読書会


であった $urandom_range 書いてみました。

  • $urandom_range 構文

function int unsigned $urandom_range( int unsigned maxval,
int unsigned minval = 0 );

  • サンプルコード

  • module testbench;
    
      int seed;
      int unsigned _tmp;
      int unsigned _urandom_range = 0 ;
    
      initial begin
        if ($value$plusargs("SEED=%d", seed)) begin
          _tmp = $urandom(seed); // srandom(seed);
        end;
        repeat(10) begin
          _urandom_range = $urandom_range(100, 50);
          $display("--- urandom_range = %3d", _urandom_range );
        end
        $finish(2);
      end
    
    endmodule
  • 実行結果(SEED=1)

  •  $> vsim +SEED=1 ...
    :
    # --- urandom_range =  61
    # --- urandom_range =  94
    # --- urandom_range =  69
    # --- urandom_range =  71
    # --- urandom_range =  70
    # --- urandom_range =  87
    # --- urandom_range =  68
    # --- urandom_range =  99
    # --- urandom_range =  75
    # --- urandom_range =  60
    
  • 実行結果(SEED=10)
  •  $> vsim +SEED=10 ...
    :
    # --- urandom_range =  56
    # --- urandom_range =  56
    # --- urandom_range =  67
    # --- urandom_range =  70
    # --- urandom_range =  82
    # --- urandom_range =  80
    # --- urandom_range =  53
    # --- urandom_range =  92
    # --- urandom_range =  78
    # --- urandom_range =  63
    


感想

$urandom_rangeの seed値変えるために $urandom利用してます。
LRM読むと srandom と同じように読めたので。


ちなみに、srandom記述すると以下のメッセージが出ました。

# ** Error: (vsim-3043) sample.sv(8): Unresolved reference to 'srandom'.
関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

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

カレンダー
09 | 2017/10 | 11
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
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。