すべて、ある範囲内の整数の制約配列
私はSystemVerilogの制約を思いついています。 1から9のようなものに範囲内にあると、それらの値を制限するために、アレイ内のすべての要素を介してbyte my_array [0:8]
ループ:
restrict: assume property (
foreach(my_array[i]) my_array[i] inside {[1:9]}
);
は、上記パーサによって受け入れられません。助けてください!私はループ内で9つの制約を生成することができますが、よりエレガントなものを望みます。したがって、現在の回避策は次のとおりです。
genvar i;
for (i=0; i<=8; i++) begin : legal_nums
restrict: assume property (
my_array[i] inside {[1:9]}
);
end : c
ありがとうございます!
制約やプロパティを作成しようとしていますか? coverプロパティは、ランダムに生成された 'my_array'要素がシミュレーションで' [1:9] 'の内部にあるかどうかをチェックします。制約は実際にあなたのランダムに生成された 'my_array'要素が' [1:9] 'の中にあるように制約します。どちらが必要ですか? – noobuntu
私は質問を掲示している間にタイプを作った。それは制約でなければなりません。 –
これはsystemverilogのランダム制約ではありません。それは仮定プロパティです。あなたは正式な検証のためのプロパティを書いていますか? – noobuntu