2013-08-21 4 views
4

У меня есть параметр следующим образом:Verilog: нецелых параметры

parameter PARAM = 7'd69; 

При попытке присвоить это значение ниже регистра:

reg [6:0] r; 

Как это:

r <= PARAM; 

Я получаю предупреждения о синтезе:

Предупреждение (10230): ... усечен значение с размером 32, чтобы соответствовать размеру мишени (7)

-

Это Я полагаю, это потому, что ПАРАМЕТР интерпретируется как целое число, поскольку оно определяется как параметр. Есть ли способ определить PARAM как 7 бит в ширину?

Я мог бы всегда передавать это как 7-битный ввод в модуль, но мне было интересно, есть ли более элегантное решение.

ответ

9

Вы можете задать параметр следующим образом:

parameter [6:0]PARAM = 7'd69; 

Таким образом, вы говорите, ваш компилятор, что PARAM размер составляет 7 бит.

+0

Это исправление очень понравилось. Точно так же, как голова к другим - всякий раз, когда вы создаете экземпляр модуля, значение, переданное параметру, должно также иметь одинаковую ширину бита, чтобы избежать предупреждений. – MikeGold

Смежные вопросы