2023-10-20 09:48:18 +00:00
|
|
|
`timescale 1ns / 1ps
|
|
|
|
|
|
|
|
module tb_mux2_1 ();
|
2023-10-23 05:15:21 +00:00
|
|
|
reg ctrl;
|
|
|
|
reg [31:0] in_a;
|
|
|
|
reg [31:0] in_b;
|
|
|
|
wire [31:0] out;
|
|
|
|
|
|
|
|
mux2_1 mux (
|
|
|
|
.S(ctrl),
|
|
|
|
.A(in_a),
|
|
|
|
.B(in_b),
|
|
|
|
.O(out)
|
|
|
|
);
|
|
|
|
|
|
|
|
initial begin
|
|
|
|
$monitor("time=%3d, in_a=%d, in_b=%d, ctrl=%b, q=%d \n",
|
|
|
|
$time, in_a, in_b, ctrl, out);
|
|
|
|
|
|
|
|
in_a = 1'b0;
|
|
|
|
in_b = 1'b0;
|
|
|
|
ctrl = 1'b0;
|
|
|
|
#20
|
|
|
|
if (out !== 0) $display("[FAILED] output should be 0");
|
|
|
|
in_a = 1'b1;
|
|
|
|
#20
|
|
|
|
if (out !== 1) $display("[FAILED] output should be 1");
|
|
|
|
ctrl = 1'b1;
|
|
|
|
in_a = 1'b0;
|
|
|
|
in_b = 1'b1;
|
|
|
|
#20
|
|
|
|
if (out !== 1) $display("[FAILED] output should be 1");
|
|
|
|
ctrl = 1'b0;
|
|
|
|
in_a = 1'b1;
|
|
|
|
#20
|
|
|
|
if (out !== 1) $display("[FAILED] output should be 1");
|
|
|
|
end
|
2023-10-20 09:48:18 +00:00
|
|
|
|
|
|
|
endmodule : tb_mux2_1
|