スポンサーサイト

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

[SystemVerilog] rand_mode と constraint_mode

object.randmize() 時の挙動を制御できます。

Mode Value Meaning
rand_mode 0 OFF
1 ON
constraint_mode 0 OFF
1 ON
  • rand_mode
  • ※LRMより抜粋

    class Packet;
      rand integer source_value, dest_value;
      ... other declarations
    endclass
    
    int ret;
    Packet packet_a = new;
    // Turn off all variables in object
    packet_a.rand_mode(0);
    // ... other code
    
    // Enable source_value
    packet_a.source_value.rand_mode(1);
    
    ret = packet_a.dest_value.rand_mode();

    Verification Academy Forum にこんなのがあったりします。
    Illegal Value for a bit?!?

  • constraint_mode
  • ※LRMより抜粋

    class Packet;
      rand integer source_value;
      constraint filter1 { source_value > 2 * m; }
    endclass
    
    function integer toggle_rand( Packet p );
      if ( p.filter1.constraint_mode() )
        p.filter1.constraint_mode(0);
      else
        p.filter1.constraint_mode(1);
    
      toggle_rand = p.randomize();
    endfunction
関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

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

カレンダー
08 | 2017/09 | 10
- - - - - 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
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。