将整数数组限制在一定范围内

Constraint array of integers to be within certain range

全部,

我正在尝试提出一个 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

谢谢!

由于是写属性,所以需要用到generate语句。我不久前就这样做了,经过大量研究,这是唯一可行的方法。