Skip to content

Instantly share code, notes, and snippets.

@jeongukjae
Last active November 3, 2022 18:53
Show Gist options
  • Save jeongukjae/3572f069699214a2f856a35e9edc074e to your computer and use it in GitHub Desktop.
Save jeongukjae/3572f069699214a2f856a35e9edc074e to your computer and use it in GitHub Desktop.
4:1 MUX using verilog
module mux_four_to_one (in, sel, out);
input [3:0] in;
input [1:0] sel;
output out;
assign out = in[sel[1] * 2 + sel[0]];
endmodule
module mux_four_to_one_tb;
reg [3:0] in;
reg [1:0] sel;
wire out;
mux_four_to_one mux1 (.in(in), .sel(sel), .out(out));
initial begin
sel = 2'b00;
in = 4'b0000;
#10 in = 4'b0001;
#10 in = 4'b0010;
#10 in = 4'b0011;
#10 in = 4'b0100;
#10 in = 4'b0101;
#10 in = 4'b0110;
#10 in = 4'b0111;
#10 in = 4'b1000;
#10 in = 4'b1001;
#10 in = 4'b1010;
#10 in = 4'b1011;
#10 in = 4'b1100;
#10 in = 4'b1101;
#10 in = 4'b1110;
#10 in = 4'b1111;
#10 sel = 2'b01;
in = 4'b0000;
#10 in = 4'b0001;
#10 in = 4'b0010;
#10 in = 4'b0011;
#10 in = 4'b0100;
#10 in = 4'b0101;
#10 in = 4'b0110;
#10 in = 4'b0111;
#10 in = 4'b1000;
#10 in = 4'b1001;
#10 in = 4'b1010;
#10 in = 4'b1011;
#10 in = 4'b1100;
#10 in = 4'b1101;
#10 in = 4'b1110;
#10 in = 4'b1111;
#10 sel = 2'b10;
in = 4'b0000;
#10 in = 4'b0001;
#10 in = 4'b0010;
#10 in = 4'b0011;
#10 in = 4'b0100;
#10 in = 4'b0101;
#10 in = 4'b0110;
#10 in = 4'b0111;
#10 in = 4'b1000;
#10 in = 4'b1001;
#10 in = 4'b1010;
#10 in = 4'b1011;
#10 in = 4'b1100;
#10 in = 4'b1101;
#10 in = 4'b1110;
#10 in = 4'b1111;
#10 sel = 2'b11;
in = 4'b0000;
#10 in = 4'b0001;
#10 in = 4'b0010;
#10 in = 4'b0011;
#10 in = 4'b0100;
#10 in = 4'b0101;
#10 in = 4'b0110;
#10 in = 4'b0111;
#10 in = 4'b1000;
#10 in = 4'b1001;
#10 in = 4'b1010;
#10 in = 4'b1011;
#10 in = 4'b1100;
#10 in = 4'b1101;
#10 in = 4'b1110;
#10 in = 4'b1111;
end
endmodule
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment