Я знаю, что этот вопрос задан раньше, однако каждый ответ, который я могу найти, относится к SystemVerilog и его синтаксису.Как инициализировать 2-мерный массив параметров в Verilog-2005?
У меня есть следующий код:
parameter NUM_TILES = 2;
parameter [15:0] TILE_SIZE [NUM_TILES - 1'b1:0];
parameter [15:0] TILE_PRV_SIZE [NUM_TILES - 1'b1:0];
parameter [15:0] TILE_LOOP [NUM_TILES - 1'b1:0];
Я попытался следующие, но литералы массивов не поддерживаются в Verilog-2005.
parameter [15:0] TILE_SIZE [NUM_TILES - 1'b1:0]; = '{16'd4, 16'd4};
defparam утверждение кажется, что это будет какой-то пользы, но я должен был бы создать экземпляр моего TestBench модуля и использовать его из-за пределов конкретизации. Я считаю, что мой другой вариант - использовать назначение значения параметра экземпляра модуля, например.
module top_tb UUT #(.TILE_SIZE[i](16'd4),...,...)();
но я стараюсь держаться подальше от этого. Есть ли какой-то менее известный трюк, который я мог бы использовать, или мне придется прибегнуть к одному из двух методов выше?
Это работает очень хорошо. Я определял таблицы поиска, используя макросы препроцессора, чтобы решить мою проблему, но это намного проще. Благодаря! –