将整数数组限制在一定范围内
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
语句。我不久前就这样做了,经过大量研究,这是唯一可行的方法。
全部,
我正在尝试提出一个 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
语句。我不久前就这样做了,经过大量研究,这是唯一可行的方法。