$countones で bitランダム
きっかけはこちらの Verification Academyにて
このスレッドに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 を使えば良いと思います。