0

全部,

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

谢谢!

4

1 回答 1

1

由于您正在编写属性,因此您需要使用该generate语句。我前一阵子这样做了,经过大量研究,这是唯一可能的方法。

于 2016-11-28T15:21:31.240 回答