Системная разница в объявлении многобитовой логики и логики массива - PullRequest
0 голосов
/ 19 декабря 2018

Я новичок в системе Verilog и у меня возникли проблемы с поиском любого источника, так что

Когда я пишу

logic [3:0] buttonsInc;

и после

assign buttonsInc[0] = 0;
assign buttonsInc[1] = 0;

я получаюошибочное высказывание не может индексировать в не тип массива ... Я предполагаю, потому что buttonsInc теперь является 4-битным числом, а не массивом.Как я должен написать это, чтобы объявить массив, скажем, который содержит 3 4-битных массивов?может быть, это так?

logic[0:3][4:0] buttonsInc;

или

logic[4:0][3:0] buttonsInc;

Кроме того, в чем разница между [0:3] и [3:0] в определении логики?

1 Ответ

0 голосов
/ 20 декабря 2018

логика [3: 0] button_inc подразумевает 4-битный вектор с именем buttons_inc, [3: 0] означает, что индекс 3 (от 0 до 3) является битом MSB, тогда как [0: 3] означает, что индекс 0 являетсяMSB немного.[3: 0] -> (MSB) 3 2 1 0 |||[0: 3] -> 3 2 1 0 (MSB)

logic [3: 0] [4: 0] button_inc создаст упакованный массив, т.е. 4 вектора по 5 бит по ширине.Обратите внимание, что упакованные массивы - это, по сути, векторы, которые подразделяются на меньшие подвекторы, в отличие от неупакованных массивов, которые являются смежными.

...