求解
为什么测试给A,B所赋予的值,仿真的时候会变掉。
像测试代码中A=00000011;仿真的时候就为变为A=00001011;



求解
为什么测试给A,B所赋予的值,仿真的时候会变掉。
像测试代码中A=00000011;仿真的时候就为变为A=00001011;



关注修改后的代码:(答题不易,还请采纳!)
module MULT4B #(parameter s)(Y,A,B);
input [s:1] A, B;
output [2*5:1] Y;
reg [2*5:1] Y;
integer i;
always @(A, B)
begin
Y = 0;
for (i = 1; i <= s; i = i + 1)
begin
if (B[i])
begin
Y = Y + (A << (i-1));
end
end
end
endmodule
module tb_MULT4B;
reg [8:1] A;
reg [8:1] B;
wire [16:1] Y;
MULT4B #(8) i1 (
.A(A),
.B(B),
.Y(Y)
);
initial
begin
#0 A = 8'b00000000; B = 8'b00000000;
#5 A = 8'b00000011; B = 8'b00110001;
#5 A = 8'b01000010; B = 8'b00010000;
#5 A = 8'b00000000; B = 8'b00000000;
$display("Running testbench");
end
endmodule