Как использовать параметризованную битовую ширину для постоянного значения в Verilog? - PullRequest
0 голосов
/ 30 сентября 2019

Рассмотрим следующий пример:

parameter BITWIDTH = 16;

Это работает:

logic [1:0][BITWIDTH-1:0] var = {16'h30, 16'h40};

Это не работает:

logic [1:0][BITWIDTH-1:0] var = {BITWIDTH'h30, BITWIDTH'h40}; 

Как использовать параметры ввышеуказанная строка кода?

1 Ответ

4 голосов
/ 30 сентября 2019

SystemVerilog изменяет размер числовых литералов до правильного размера в соответствии с четко определенными правилами, поэтому нет необходимости определять размер:

logic [1:0][BITWIDTH-1:0] x = '{'h30, 'h40};

Однако некоторые инструменты выдают предупреждения, чтобы вы могли привести литерал кправильный размер, например, так:

logic [1:0][BITWIDTH-1:0] x = '{BITWIDTH'('h30), BITWIDTH'('h40)};
...