2014-08-27 95 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中指定。