所有
我试图想出一个SystemVerilog约束,它将用于例如byte my_array [0:8]
循环遍历数组中的所有元素,将其值限制在1到9的范围内。例如:
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 :(得分:1)
由于您正在编写属性,因此需要使用generate
语句。我之前做过这个,经过大量研究,这是唯一可行的方法。