生成的块中的分层参数传输

时间:2017-08-02 06:33:13

标签: verilog

我在生成语句中生成了12个模块。

module top
genvar i;
generate
for(i=0;i<12;i=i+1) begin
LVDSser #(
    .FULL_FRAME(300),
    .ON_TIME(132),
    .OFF_TIME(168),
    .filename(FILE_NAME)
    )
 LVDSser_inst(
     .clk(clk),
     .rstn(rstn),
     .Ch(Ch[i]),
     .LVDSclk(clkArry[i]),
     .LVDSdata(dataArry[i])
    );
end
endgenerate

在这个模块中我需要用readmemh读取一个文件。

module LVDSser(
    input clk,
    input rstn,
    input[3:0] Ch,
    output LVDSclk,
    output[3:0] LVDSdata
    );

parameter filename = "test.txt"; 
reg[63:0] inputData [0:3];
initial $readmemh(filename,inputData);
endmodule

如何生成一个数组来保存文件名? 现在我必须复制实例化模块12次,并为每个模块写入唯一的文件名。 (我不能使用生成) 谢谢 zahike

1 个答案:

答案 0 :(得分:0)

在顶层模块中使用generate时,通常可以将文件名作为参数传递。这可能会对你有所帮助

How to pass filename as a parameter