class Base
rand bit b;
// constraint c1 { every 5th randomization should have b =0;}
endclass
私は静的なカウント変数を作成し、そのカウント変数を更新できますが、制約でcount%5がゼロかどうかを確認してからb = 0にすることができますそれを行うには良い方法がありますか?ありがとう。SystemVerilog制約、n回目の繰り返しごとに値を固定する
class Base
rand bit b;
// constraint c1 { every 5th randomization should have b =0;}
endclass
私は静的なカウント変数を作成し、そのカウント変数を更新できますが、制約でcount%5がゼロかどうかを確認してからb = 0にすることができますそれを行うには良い方法がありますか?ありがとう。SystemVerilog制約、n回目の繰り返しごとに値を固定する
静的にカウントする必要はなく、ランダムではありません。
ありがとう@ dave_59。非静的メンバーである数がクラスのすべてのインスタンスでどのように共有されるか教えてください。前もって感謝します。 –
1つのオブジェクトを繰り返しランダム化する予定がある場合は、元の質問で指定しなかったか、1回ランダム化した多くのオブジェクトを作成しました。はい、後者の場合、カウントは静的である必要があります。 –
ありがとう@ dave_59。 –
b
の上限を知っている場合は、次のような制約を書くことができます。
constraint abc
{
b dist {0:=20, 1:=80}
}
これは20
に0
の重量を作ると、1
80
の重量になります。したがって、このようにして、5回のランダム化ごとに1回ずつ0が発生します。
これは正しくありません。 5分の1の確率を持つことは、5回の出現ごとに1回と同じではありません。 –
これは、上記の制約で5回のランダム化のたびにツールが0を生成するとは限りません。 –
正しい。確率は保証ではありません。 –
実際に使用するコードを投稿してください。そうすれば、より良い方法を提供することができます。 – toolic
それはちょうどインタビューで尋ねられました。 –