Lab 6
Lab 6
output Y;
input A, B, S;
reg Y;
always @(A,B,S)
begin
if (S == 0)
Y = A;
else
Y = B;
end
endmodule
initial begin
// $monitor("S=%b, A=%b, B=%b, Y=%b", S, A, B, Y);
$finish;
end
endmodule
in0=1;
in1=0;
in2=1;
in3=0;
#10;
// Test case 2:
s[1:0] = 2'b01;
in0=1;
in1=0;
in2=1;
in3=0;
#10;
// Test case 3:
s[1:0] = 2'b10;
in0=1;
in1=0;
in2=1;
in3=0;
#10;
// Test case 4:
s[1:0] = 2'b11;
in0=1;
in1=0;
in2=1;
in3=0;
#10;
$finish;
end
endmodule
module mux_4to1_tb_behavioral;
reg in0, in1, in2, in3, in4, in5, in6, in7;
reg [2:0] s;
wire out;
mux4to1
uut(.out(out), .in0(in0), .in1(in1), .in2(in2), .in3(in3), .in4(in4), .in5(in5), .i
n6(in6),
.in7(in7), .s(s));
initial begin
$dumpfile("dump.vcd");
$dumpvars(1);
end
initial begin
// Test case 1:
s[2:0] = 3'b000;
in0=1;
in1=0;
in2=1;
in3=0;
in4=1;
in5=1;
in6=0;
in7=0;
#10;
// Test case 2:
s[2:0] = 3'b001;
in0=1;
in1=0;
in2=1;
in3=0;
in4=1;
in5=1;
in6=0;
in7=0;
#10;
// Test case 3:
s[2:0] = 3'b010;
in0=0;
in1=1;
in2=1;
in3=0;
in4=1;
in5=1;
in6=0;
in7=0;
#10;
// Test case 4:
s[2:0] = 3'b011;
in0=1;
in1=0;
in2=1;
in3=0;
in4=1;
in5=1;
in6=0;
in7=0;
#10;
// Test case 5:
s[2:0] = 3'b100;
in0=1;
in1=0;
in2=1;
in3=0;
in4=1;
in5=1;
in6=0;
in7=0;
#10;
// Test case 6:
s[2:0] = 3'b101;
in0=1;
in1=0;
in2=1;
in3=0;
in4=1;
in5=1;
in6=0;
in7=0;
#10;
// Test case 7:
s[2:0] = 3'b110;
in0=1;
in1=0;
in2=1;
in3=0;
in4=1;
in5=1;
in6=0;
in7=0;
#10;
// Test case 8:
s[2:0] = 3'b111;
in0=1;
in1=0;
in2=1;
in3=0;
in4=1;
in5=1;
in6=0;
in7=0;
#10;
$finish;
end
endmodule