Generics Verilog中通用模块的实例化

Generics Verilog中通用模块的实例化,generics,parameter-passing,verilog,Generics,Parameter Passing,Verilog,我试图弄清楚如何在重写泛型模块的两个参数时使用generate函数实例化泛型模块 我有一个通用仲裁器,我应该向它发送两个参数(高度和大小)。这两个参数也被定义为“top”模块中的参数 下面是我如何在顶层层次中实例化PRRA模块(内部模块) genvar i; generate for(i=0 ; i<M ; i=i+1) begin PRRA arbiter ( .clk(clk), .reset(reset), .request(r

我试图弄清楚如何在重写泛型模块的两个参数时使用generate函数实例化泛型模块

我有一个通用仲裁器,我应该向它发送两个参数(高度大小)。这两个参数也被定义为“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
genvari;

generate for(i=0;i不清楚您是如何尝试将参数传递给较低的模块的,因为提供的代码示例没有参考高度或大小,但这是传递参数的方式:

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