我试图想出一个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
谢谢!
你想写一个约束或属性?封面属性将在模拟中检查您的随机生成的'my_array'元素是否在'[1:9]'内。一个约束实际上会将你随机生成的'my_array'元素限制在'[1:9]'内。你需要哪一个? – noobuntu
我在发布问题时发了一个类型。它应该是一个约束。 –
这不是一个systemverilog随机约束。这是一个假设财产。您是否正在编写正式验证的属性? – noobuntu