ランダム生成

VerilogにもSystemVerilogにもランダム値の生成方法がありますが、それをまとめてみました。IEEEからの抜粋です。

ランダム限定です。

  • $random
    • 32bitのランダム値を生成します。引数はseedとして受け取られます。
    • 例:int rand_val;
    • rand_val = $random(10); //seed=10
  • $urandom
    • 32bitの正のランダム値を生成します。引数はseedとして受け取られます。
    • 例:int unsigned rand_val;
    • rand_val = $urandom; //no seed
  • $urandom_range(int unsigned maxval, int unsigned minval=0)
    • 指定した範囲(maxval~minval)の範囲に限定して、ランダム値を生成します。
    • seedが指定できない?のが難点かもしれません。