сгенерировать блок в системе verilog - PullRequest
0 голосов
/ 04 октября 2018
module A#(parameter NUM_PORT=2);

logic port_wire[NUM_PORT];

DUT dut_inst(
  generate
    for(genvar idx=0; idx<NUM_PORT; idx++) begin:num_port
      .port[idx] (port_wire[idx]);
    end:num_port
  endgenerate
);

endmodule

Разрешена ли вышеуказанная реализация блока генерирования?Я имею в виду внутри экземпляра модуля.Извините, если вопрос слишком глупый.

1 Ответ

0 голосов
/ 04 октября 2018

Нет, вы не можете использовать генерирующую конструкцию в середине списка портов.

Но если один из портов в списке является массивом, вы можете сделать

module A#(parameter NUM_PORT=2);

logic port_wire[NUM_PORT];

DUT dut_inst(
      .port (port_wire);
);

endmodule
module DUT #(int NP=2)(input logic port[NP]);
...
endmodule
...