$countones で bitランダム

きっかけはこちらの Verification Academyにて

"hot bit" randomization

このスレッドにCVCの方が回答したものが、こちらになります。

Smart constraint modeling in SystemVerilog

class c;
  rand bit[31:0] vec_1;
    constraint cst_max_2_hot_bits {
      $countones(vec_1) inside {1,2};
    }

この記述すごく簡素ですよね。
$countones 使うとこんなに簡単に出来るとは。

one hotだと $onehot を使えば良いと思います。