module mux2 (S,A,B,Y); | |
input S; | |
input A,B; | |
output reg Y; | |
always @(*) | |
Y = (S)? B : A; | |
endmodule | |
module mux4 ( S, D, Y ); | |
input[1:0] S; | |
input[3:0] D; | |
output Y; | |
reg Y; | |
wire[1:0] S; | |
wire[3:0] D; | |
always @* | |
begin | |
case( S ) | |
0 : Y = D[0]; | |
1 : Y = D[1]; | |
2 : Y = D[2]; | |
3 : Y = D[3]; | |
endcase | |
end | |
endmodule | |
module mux8 ( S, D, Y ); | |
input[2:0] S; | |
input[7:0] D; | |
output Y; | |
reg Y; | |
wire[2:0] S; | |
wire[7:0] D; | |
always @* | |
begin | |
case( S ) | |
0 : Y = D[0]; | |
1 : Y = D[1]; | |
2 : Y = D[2]; | |
3 : Y = D[3]; | |
4 : Y = D[4]; | |
5 : Y = D[5]; | |
6 : Y = D[6]; | |
7 : Y = D[7]; | |
endcase | |
end | |
endmodule | |
module mux16 (D, S, Y); | |
input [15:0] D; | |
input [3:0] S; | |
output Y; | |
assign Y = D[S]; | |
endmodule |