Автобус 2d массива в verilog - PullRequest
0 голосов
/ 27 июня 2018

После объявления следующего:

reg [15:0] a [3:0][2:0]

Я бы хотел получить значение по индексу [12] a [2][1], как мне это сделать?

1 Ответ

0 голосов
/ 27 июня 2018
a[2][1][12] 

N-мерный массив в Verilog нумеруется так:

reg [15:0] a [3:0][2:0]  ... [12345:0];
    (N+1)th   1st  2nd  ...     Nth

В массиве Verilog вы должны индексировать либо все , либо нет правых измерений. Индексирование левого измерения не является обязательным, но вы можете сделать это, только если вы проиндексировали правые измерения. Итак, вы можете

  • относится к массиву во всей его полноте: например, a
  • относится к одному элементу массива: например, a[2][1]
  • относится к биту или битам одного элемента массива: например, a[2][1][12]

Следовательно, имеет смысл индексировать левое измерение последним.

...