mirror of https://github.com/YosysHQ/yosys.git
66 lines
780 B
Verilog
66 lines
780 B
Verilog
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
|