Nar*_*mha 0 verilog system-verilog
有人建议我如何获取不带“。”的实例化名称。如“ genblk1.name”,如果我使用generate for循环来创建更多模块实例。
我想要类似addr_1,addr_2的实例化名称(addr我的模块名称)
您总会得到一个“。” 当您实例化内部模块时会生成块。这是因为每个generate块都会创建一个新的层次结构。第一个字符串是generate块的名称,而第二个字符串是实例的名称。您唯一可以做的就是控制generate块的名称:
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
Run Code Online (Sandbox Code Playgroud)
所述if
生成块将创建“if_gen_block.inst”,而for
根块将创建“loop_gen_block [0] .inst”,“loop_gen_block [1] .inst”等此行为是在SystemVerilog的LRM指定。