Verilog 中的参数覆盖

问题描述 投票:0回答:1

如何以及在哪里执行此问题的参数覆盖?

当我尝试使用 # 覆盖它时,我收到一条警告,指出端口大小与输入和输出不匹配或未找到参数 BIT_N_TB。

``include "para_over.v"
module tb;
parameter BIT_N=6;
parameter BIT_N_TB;
reg [BIT_N-1:0]a,b;
reg cin;
wire [BIT_N-1:0]s;
wire cout;
fa_bit4_par #(.BIT_N_TB(8)) fa0(a,b,cin,s,cout);
initial begin
    repeat (20) begin
        {a,b,cin}=$random;
        #1;
        $display("%t: a=%b, b=%b,cin=%b,s=%b,cout=%b", $time, a, b,cin,s,cout);
    end
end
endmodule'''`

module fa_bit4_par(a,b,cin,s,cout);
parameter BIT_N=6;
input [BIT_N-1:0]a,b;
input cin;
output [BIT_N-1:0]s;
output cout;
wire [BIT_N:0] c;
assign c[0]=cin;
assign cout=c[BIT_N];
genvar i;
    for(i=0;i<BIT_N;i=i+1)begin
    fa fa0(a[i],b[i],c[i],s[i],c[i+1]);
    end
endmodule`
parameters overriding verilog digital-logic questasim
1个回答
0
投票

您应该将 BIT_N_TB 替换为 BIT_N,因为您的模块 fa_bit4_par 没有参数 BIT_N_TB 。

fa_bit4_par #(.BIT_N_TB(8)) fa0(a,b,cin,s,cout);

应该是

fa_bit4_par #(.BIT_N(8)) fa0(a,b,cin,s,cout);

此外

parameter BIT_N_TB;
定义为没有值,因此如果您正在使用它,则可能应该具有与 BIT_N 一起使用的值,因此您可以执行以下操作:

parameter BIT_N_TB = 8;
fa_bit4_par #(.BIT_N(BIT_N_TB)) fa0(a,b,cin,s,cout);
© www.soinside.com 2019 - 2024. All rights reserved.