2014-08-27 61 views
0

有些机构建议我如何得到没有“。”的实例化名称。像“genblk1.name” 如果我使用generate for for循环创建更多模块实例化。实例化名称修改verilog下生成块

我想实例的名称,如ADDR_1,addr_2(地址我的模块名称)

+0

你打算展示你试过的东西吗?否则你可能会倒下/关闭选票。 – Morgan 2014-08-27 11:35:12

+1

你能解释一下“。”是什么问题。在路径名中,除了它不是;对你看起来不错? – 2014-08-27 13:32:38

+0

对于一些特殊情况,我们希望挖掘很少的DUT信号用于DUT中的监测。因此,工程师只需通过实例化名称即可轻松完成工作。 – Narasimha 2015-06-30 11:17:25

回答

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生成块将打造“if_gen_block.inst”,而for根块将打造“loop_gen_block [0] .inst”, 'loop_gen_block [1] .inst'等。此行为在SystemVerilog LRM中指定。