диапазон параметров битового массива в verilog - underflow или -1 - PullRequest
0 голосов
/ 12 сентября 2018

Какими должны быть индексные диапазоны параметра init в этом случае:

parameter zero = 0;

parameter bit[31:0] size = 32'b01;

parameter bit[((zero * size) - 1):0] init = 2'b11;

Это должно быть [-1:0] или [4294967295:0] и почему? Стандартизировано ли такое поведение или оно зависит от инструмента?

1 Ответ

0 голосов
/ 12 сентября 2018

Согласно LRM, диапазон в объявлениях массива - это целочисленные выражения со знаком. Он должен привести 32-битное беззнаковое выражение к целому числу со знаком. Таким образом, результат -1. Вы можете проверить это, отобразив результат $left(init)

Все ли разработчики инструментов читали LRM - это другой вопрос.

...