有些人建议我如何在没有“。”的情况下获取实例化名称。比如“genblk1.name” 如果我使用generate for循环来创建更多的模块实例化。
我想要实例化名称,例如addr_1,addr_2(addr my module name)
答案 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中指定。