2017-04-17 27 views
-1
class Base 
rand bit b; 
// constraint c1 { every 5th randomization should have b =0;} 
endclass 

私は静的なカウント変数を作成し、そのカウント変数を更新できますが、制約でcount%5がゼロかどうかを確認してからb = 0にすることができますそれを行うには良い方法がありますか?ありがとう。SystemVerilog制約、n回目の繰り返しごとに値を固定する

+1

実際に使用するコードを投稿してください。そうすれば、より良い方法を提供することができます。 – toolic

+0

それはちょうどインタビューで尋ねられました。 –

答えて

0

静的にカウントする必要はなく、ランダムではありません。

​​
+0

ありがとう@ dave_59。非静的メンバーである数がクラスのすべてのインスタンスでどのように共有されるか教えてください。前もって感謝します。 –

+0

1つのオブジェクトを繰り返しランダム化する予定がある場合は、元の質問で指定しなかったか、1回ランダム化した多くのオブジェクトを作成しました。はい、後者の場合、カウントは静的である必要があります。 –

+0

ありがとう@ dave_59。 –

-1

bの上限を知っている場合は、次のような制約を書くことができます。

constraint abc 
{ 
    b dist {0:=20, 1:=80} 
} 

これは200の重量を作ると、180の重量になります。したがって、このようにして、5回のランダム化ごとに1回ずつ0が発生します。

+0

これは正しくありません。 5分の1の確率を持つことは、5回の出現ごとに1回と同じではありません。 –

+0

これは、上記の制約で5回のランダム化のたびにツールが0を生成するとは限りません。 –

+1

正しい。確率は保証ではありません。 –

関連する問題