当我尝试使用 # 覆盖它时,我收到一条警告,指出端口大小与输入和输出不匹配或未找到参数 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`
您应该将 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);