Цитата(doublekey @ Nov 27 2012, 08:57)

Код
...
input [REG_N - 1:0][REG_W - 1:0] data, // Data input.
...
reg [REG_N - 1:0][REG_W - 1:0] data_reg; // Internal data register.
...
1. Двумерные порты еще не поддерживаются в Верилоге. Сформируйте одномерный порт с размерностью REG_N *REG_W.
2. Правильное описание регистра-матрицы будет:
reg [REG_W - 1:0] data_reg[REG_N - 1:0];
И в коде, при использовании, лучше полностью указывать размерность, а то легко запутаться

Например: data_reg[17][7:0] = some_wire[7:0];
3. Судя по схеме, возможно вам будет проще написать и полностью отладить модуль для случая N=1 и потом, во внешнем враппере, создать массив таких модулей размерностью N. Синтакс - в гугле, "array of modules verilog".
Сообщение отредактировал Cordroy - Nov 27 2012, 15:14