Все,Constraint массив целых чисел в пределах определенного диапазона
Я пытаюсь придумать 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