Параметризованные битовые поля в verilog - PullRequest
4 голосов
/ 23 июня 2011

Можно ли параметризовать битовое поле в verilog?По сути, я хочу использовать параметр или альтернативу для определения диапазона битов.Единственный способ, которым я могу думать об этом, это использовать `define, как показано ниже, но кажется, что должен быть лучший способ.

`define BITFIELD_SELECT 31:28
foo = bar[BITFIELD_SELECT]

1 Ответ

6 голосов
/ 24 июня 2011

Параметры лучше (безопаснее), чем определяет, поскольку пространство имен не является глобальным для проекта. Вы должны быть в состоянии сделать это с двумя параметрами.

parameter BITFIELD_HIGH = 31;
parameter BITFIELD_LOW = 28;

assign foo = bar[BITFIELD_HIGH:BITFIELD_LOW];
1003 * * * В качестве альтернативы 1004 *
parameter BITFIELD_HIGH = 31;
localparam BITFIELD_LOW = BITFIELD_HIGH-3;

assign foo = bar[BITFIELD_HIGH:BITFIELD_LOW];
...