ランダム生成
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が指定できない?のが難点かもしれません。