// Verilog code for all Multiplexer in single code.
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: RED-BLUE
// Engineer:
//
// Create Date: 23:17:10 11/09/2016
// Designer Name: Madhu krishna
// Module Name: diff_mux_sel
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module diff_mux_sel(input_d0,
input_d1,
input_d2,
input_d3,
input_d4,
input_d5,
input_d6,
input_d7,
input_d8,
input_d9,
input_d10,
input_d11,
input_d12,
input_d13,
input_d14,
input_d15,
input_d16,
input_d17,
input_d18,
input_d19,
input_d20,
input_d21,
input_d22,
input_d23,
input_d24,
input_d25,
input_d26,
input_d27,
input_d28,
input_d29,
input_d30,
input_d31,
sel_0,
sel_1,
sel_2,
sel_3,
sel_4,
output_y);
// INPUTS
input input_d0;
input input_d1;
input input_d2;
input input_d3;
input input_d4;
input input_d5;
input input_d6;
input input_d7;
input input_d8;
input input_d9;
input input_d10;
input input_d11;
input input_d12;
input input_d13;
input input_d14;
input input_d15;
input input_d16;
input input_d17;
input input_d18;
input input_d19;
input input_d20;
input input_d21;
input input_d22;
input input_d23;
input input_d24;
input input_d25;
input input_d26;
input input_d27;
input input_d28;
input input_d29;
input input_d30;
input input_d31;
input sel_0;
input sel_1;
input sel_2;
input sel_3;
input sel_4;
// OUTPUT
output output_y;
reg output_y;
wire [2:0] mux_sel;
wire mux21_con_out;
wire [1:0]mux41_con_out;
wire [2:0]mux81_con_out;
wire [3:0]mux16_1con_out;
wire [4:0]mux32_1con_out;
//Declaration of assignment statement
assign mux21_con_out = sel_0;
assign mux41_con_out = {sel_1,sel_0};
assign mux81_con_out = {sel_2, sel_1, sel_0};
assign mux16_1con_out = {sel_3, sel_2, sel_1, sel_0};
assign mux32_1con_out = {sel_4, sel_3, sel_2, sel_1, sel_0};
always @(*) begin
if ( mux_sel == 3'b000) begin
case(mux21_con_out)
1'b0: output_y = input_d0;
1'b1: output_y = input_d1;
default: output_y = 1'b0;
endcase
end else if (mux_sel == 3'b001) begin
case(mux41_con_out)
2'b00: output_y = input_d0;
2'b01: output_y = input_d1;
2'b10: output_y = input_d2;
2'b11: output_y = input_d3;
default: output_y = 1'b0;
endcase
end else if (mux_sel == 3'b010) begin
case (mux81_con_out)
3'b000: output_y = input_d0;
3'b001: output_y = input_d1;
3'b010: output_y = input_d2;
3'b011: output_y = input_d3;
3'b100: output_y = input_d4;
3'b101: output_y = input_d5;
3'b110: output_y = input_d6;
3'b111: output_y = input_d7;
default: output_y = 1'b0;
endcase
end else if (mux_sel == 3'b011) begin
case ( mux16_1con_out)
4'b0000:output_y = input_d0;
4'b0001:output_y = input_d1;
4'b0010:output_y = input_d2;
4'b0011:output_y = input_d3;
4'b0100:output_y = input_d4;
4'b0101:output_y = input_d5;
4'b0110:output_y = input_d6;
4'b0111:output_y = input_d7;
4'b1000:output_y = input_d8;
4'b1001:output_y = input_d9;
4'b1010:output_y = input_d10;
4'b1011:output_y = input_d11;
4'b1100:output_y = input_d12;
4'b1101:output_y = input_d13;
4'b1110:output_y = input_d14;
4'b1111:output_y = input_d15;
default:output_y = 1'b0;
endcase
end else begin
case ( mux32_1con_out)
5'b00000:output_y = input_d0;
5'b00001:output_y = input_d1;
5'b00010:output_y = input_d2;
5'b00011:output_y = input_d3;
5'b00100:output_y = input_d4;
5'b00101:output_y = input_d5;
5'b00110:output_y = input_d6;
5'b00111:output_y = input_d7;
5'b01000 :output_y = input_d8;
5'b01001:output_y = input_d9;
5'b01010:output_y = input_d10;
5'b01011:output_y = input_d11;
5'b01100:output_y = input_d12;
5'b01101:output_y = input_d13;
5'b01110:output_y = input_d14;
5'b01111:output_y = input_d15;
5'b10000:output_y = input_d16;
5'b10001:output_y = input_d17;
5'b10010:output_y = input_d18;
5'b10011:output_y = input_d19;
5'b10100:output_y = input_d20;
5'b10101:output_y = input_d21;
5'b10110:output_y = input_d22;
5'b10111:output_y = input_d23;
5'b11000:output_y = input_d24;
5'b11001:output_y = input_d25;
5'b11010:output_y = input_d26;
5'b11011:output_y = input_d27;
5'b11100:output_y = input_d28;
5'b11101:output_y = input_d29;
5'b11110:output_y = input_d30;
5'b11111:output_y = input_d31;
default: output_y = 1'b0;
endcase
end
end
endmodule
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: RED-BLUE
// Engineer:
//
// Create Date: 23:17:10 11/09/2016
// Designer Name: Madhu krishna
// Module Name: diff_mux_sel
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module diff_mux_sel(input_d0,
input_d1,
input_d2,
input_d3,
input_d4,
input_d5,
input_d6,
input_d7,
input_d8,
input_d9,
input_d10,
input_d11,
input_d12,
input_d13,
input_d14,
input_d15,
input_d16,
input_d17,
input_d18,
input_d19,
input_d20,
input_d21,
input_d22,
input_d23,
input_d24,
input_d25,
input_d26,
input_d27,
input_d28,
input_d29,
input_d30,
input_d31,
sel_0,
sel_1,
sel_2,
sel_3,
sel_4,
output_y);
// INPUTS
input input_d0;
input input_d1;
input input_d2;
input input_d3;
input input_d4;
input input_d5;
input input_d6;
input input_d7;
input input_d8;
input input_d9;
input input_d10;
input input_d11;
input input_d12;
input input_d13;
input input_d14;
input input_d15;
input input_d16;
input input_d17;
input input_d18;
input input_d19;
input input_d20;
input input_d21;
input input_d22;
input input_d23;
input input_d24;
input input_d25;
input input_d26;
input input_d27;
input input_d28;
input input_d29;
input input_d30;
input input_d31;
input sel_0;
input sel_1;
input sel_2;
input sel_3;
input sel_4;
// OUTPUT
output output_y;
reg output_y;
wire [2:0] mux_sel;
wire mux21_con_out;
wire [1:0]mux41_con_out;
wire [2:0]mux81_con_out;
wire [3:0]mux16_1con_out;
wire [4:0]mux32_1con_out;
//Declaration of assignment statement
assign mux21_con_out = sel_0;
assign mux41_con_out = {sel_1,sel_0};
assign mux81_con_out = {sel_2, sel_1, sel_0};
assign mux16_1con_out = {sel_3, sel_2, sel_1, sel_0};
assign mux32_1con_out = {sel_4, sel_3, sel_2, sel_1, sel_0};
always @(*) begin
if ( mux_sel == 3'b000) begin
case(mux21_con_out)
1'b0: output_y = input_d0;
1'b1: output_y = input_d1;
default: output_y = 1'b0;
endcase
end else if (mux_sel == 3'b001) begin
case(mux41_con_out)
2'b00: output_y = input_d0;
2'b01: output_y = input_d1;
2'b10: output_y = input_d2;
2'b11: output_y = input_d3;
default: output_y = 1'b0;
endcase
end else if (mux_sel == 3'b010) begin
case (mux81_con_out)
3'b000: output_y = input_d0;
3'b001: output_y = input_d1;
3'b010: output_y = input_d2;
3'b011: output_y = input_d3;
3'b100: output_y = input_d4;
3'b101: output_y = input_d5;
3'b110: output_y = input_d6;
3'b111: output_y = input_d7;
default: output_y = 1'b0;
endcase
end else if (mux_sel == 3'b011) begin
case ( mux16_1con_out)
4'b0000:output_y = input_d0;
4'b0001:output_y = input_d1;
4'b0010:output_y = input_d2;
4'b0011:output_y = input_d3;
4'b0100:output_y = input_d4;
4'b0101:output_y = input_d5;
4'b0110:output_y = input_d6;
4'b0111:output_y = input_d7;
4'b1000:output_y = input_d8;
4'b1001:output_y = input_d9;
4'b1010:output_y = input_d10;
4'b1011:output_y = input_d11;
4'b1100:output_y = input_d12;
4'b1101:output_y = input_d13;
4'b1110:output_y = input_d14;
4'b1111:output_y = input_d15;
default:output_y = 1'b0;
endcase
end else begin
case ( mux32_1con_out)
5'b00000:output_y = input_d0;
5'b00001:output_y = input_d1;
5'b00010:output_y = input_d2;
5'b00011:output_y = input_d3;
5'b00100:output_y = input_d4;
5'b00101:output_y = input_d5;
5'b00110:output_y = input_d6;
5'b00111:output_y = input_d7;
5'b01000 :output_y = input_d8;
5'b01001:output_y = input_d9;
5'b01010:output_y = input_d10;
5'b01011:output_y = input_d11;
5'b01100:output_y = input_d12;
5'b01101:output_y = input_d13;
5'b01110:output_y = input_d14;
5'b01111:output_y = input_d15;
5'b10000:output_y = input_d16;
5'b10001:output_y = input_d17;
5'b10010:output_y = input_d18;
5'b10011:output_y = input_d19;
5'b10100:output_y = input_d20;
5'b10101:output_y = input_d21;
5'b10110:output_y = input_d22;
5'b10111:output_y = input_d23;
5'b11000:output_y = input_d24;
5'b11001:output_y = input_d25;
5'b11010:output_y = input_d26;
5'b11011:output_y = input_d27;
5'b11100:output_y = input_d28;
5'b11101:output_y = input_d29;
5'b11110:output_y = input_d30;
5'b11111:output_y = input_d31;
default: output_y = 1'b0;
endcase
end
end
endmodule
No comments:
Post a Comment