2013-12-14 67 views
2

我想弄清楚如何在重寫它的兩個paramateres時使用generate函數實例化一個通用模塊。Verilog中的通用模塊實例化

我有一個通用的仲裁者,我應該送這兩個參數(HEIGHTSIZE)。這兩個參數也被定義爲「top」模塊中的參數

以下是我如何實例化頂級層次結構中的PRRA模塊(內部模塊)。

genvar i; 
generate for(i=0 ; i<M ; i=i+1) 
begin 
    PRRA arbiter (
     .clk(clk), 
     .reset(reset), 
     .request(request[i]), 
     .grant(grant[i]) 
     ); 
end 
endgenerate 

使用defparam沒有工作。顯然我用錯了。

我嘗試過用它/後/內產生,但它沒有通過:/

誰能幫助請

回答

7

目前尚不清楚你如何試圖將參數傳遞到下面的模塊,如提供的代碼示例不參考高度或大小,但是這是你將如何傳遞參數:

PRRA #(
    .HEIGHT (HEIGHT_from_top) 
    .SIZE (SIZE_from_top ) 
) arbiter (
    .clk  (clk  ), 
    .reset (reset ), 
    .request (request[i]), 
    .grant (grant[i] ) 
); 

如果您有:

module PRRA #(
    parameter HEIGHT = -1, 
    parameter SIZE = -1 
)(
//inputs ... 
//outputs ... 
); 
//... 
endmodule