Определите корзину покрытия в системном Verilog, используя инкрементные значения

Я пытаюсь определить покрытие с помощью systemverilog для большой зоны покрытия. Например, я хотел бы определить корзину, которая начинается в 24'h000000заканчивается на 24'h001ff0и увеличивается на 24'h000008, Я пробовал это до сих пор; однако, он не компилируется.

bins scratchpad = {24'h000000:24'h000008:24'h001ff0};

Это дает синтаксическую ошибку: syntax error: token is ':',

Есть ли способ избежать явной записи всех точек покрытия? Я знаю, что могу определить корзину с {24'h000000:24'h001ff0}, но это содержит пункты, которые я не хочу включать.

1 ответ

Решение

Вы можете добавить with пункт

bins scratchpad[] = {[24'h000000:24'h001ff0]} with (item % 8 == 0);

См. http://go.mentor.com/ready-for-systemverilog-2012 для других вариантов и раздел IEEE 1800-2012 LRM 19.5.1.1

Другие вопросы по тегам