2016-11-27 22 views
0

すべて、ある範囲内の整数の制約配列

私は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 

ありがとうございます!

+0

制約やプロパティを作成しようとしていますか? coverプロパティは、ランダムに生成された 'my_array'要素がシミュレーションで' [1:9] 'の内部にあるかどうかをチェックします。制約は実際にあなたのランダムに生成された 'my_array'要素が' [1:9] 'の中にあるように制約します。どちらが必要ですか? – noobuntu

+0

私は質問を掲示している間にタイプを作った。それは制約でなければなりません。 –

+0

これはsystemverilogのランダム制約ではありません。それは仮定プロパティです。あなたは正式な検証のためのプロパティを書いていますか? – noobuntu

答えて

1

プロパティを記述しているので、generateステートメントを使用する必要があります。私はこれをしばらく前に行い、多くの研究の後、これが可能な唯一の方法でした。

+0

私はそう、感謝を考えた! –

+0

ようこそ。答えを受け入れてください – noobuntu

関連する問題