2013-12-14 68 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