生成块下verilog中的实例化名称修改

时间:2014-08-27 10:28:35

标签: verilog system-verilog

有些人建议我如何在没有“。”的情况下获取实例化名称。比如“genblk1.name”  如果我使用generate for循环来创建更多的模块实例化。

我想要实例化名称,例如addr_1,addr_2(addr my module name)

1 个答案:

答案 0 :(得分:4)

你总会得到一个"。"当你在生成块中实例化模块时。这是因为每个生成块都会创建一个新级别的层次结构。第一个字符串是生成块的名称,第二个字符串是实例的名称。您唯一能做的就是控制生成块的名称:

module some_module;
endmodule // some_module


module top;
  parameter a = 1;
  if (a) begin : if_gen_block
    some_module inst();
  end

  genvar i;
  for (i = 0; i < 5; i++) begin : loop_gen_block
    some_module inst();
  end
endmodule // top

if生成块将创建&#34; if_gen_block.inst&#34;,而for gen块将创建&#39; loop_gen_block [0] .inst&#39;,& #39; loop_gen_block [1] .inst&#39;等。此行为在SystemVerilog LRM中指定。