C:\iverilog\samples\mux_local.html
module mux (A, B, C, Ctrl, Y);
parameter SZ = 3;
parameter CT = 2;
localparam IN = CT**SZ;
localparam OUT= CT**SZ;
input [IN-1:0] A, B, C;
input [CT-1:0] Ctrl;
output[OUT-1:0] Y;
always@(*)
begin
case (Ctrl)
0: Y = A;
1: Y = B;
2: Y = C;
3: Y = A;
default: Y =A;
endcase
end
endmodule
C:\iverilog\samples\mux.v.html
module mux (A, B, C, Ctrl, Y);
parameter CT = 4;
localparam IN = 8;
localparam OUT= 8;
input [IN-1:0] A, B, C;
input [CT-1:0] Ctrl;
output[OUT-1:0] Y;
always@(*)
begin
case (Ctrl)
0: Y = A;
1: Y = B;
2: Y = C;
3: Y = A;
default: Y =A;
endcase
end
endmodule