// Verilog code for 16:1 Multiplexer using dataflow
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: RED-BLUE
// Engineer:
//
// Create Date: 11:04:27 11/09/2016
// Designer Name: Madhu Krishna
// Module Name: mux16_1_code
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module mux16_1_code( 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,
sel_0,
sel_1,
sel_2,
sel_3,
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 sel_0;
input sel_1;
input sel_2;
input sel_3;
//OUTPUT
output output_y;
wire [21:0]mux_com_out;
// Declaration of data flow
assign mux_com_out[0] = ~(sel_0);
assign mux_com_out[1] = ~(sel_1);
assign mux_com_out[2] = ~(sel_2);
assign mux_com_out[3] = ~(sel_3);
assign mux_com_out[4] = (input_d0 & mux_com_out[3] & mux_com_out[2] & mux_com_out[1] & mux_com_out[0]);
assign mux_com_out[5] = (input_d1 & mux_com_out[3] & mux_com_out[2] & mux_com_out[1] & sel_0);
assign mux_com_out[6] = (input_d2 & mux_com_out[3] & mux_com_out[2] & sel_1 & mux_com_out[0]);
assign mux_com_out[7] = (input_d3 & mux_com_out[3] & mux_com_out[2] & sel_1 & sel_0);
assign mux_com_out[8] = (input_d4 & mux_com_out[3] & sel_2 & mux_com_out[1] & mux_com_out[0]);
assign mux_com_out[9] = (input_d5 & mux_com_out[3] & sel_2 & mux_com_out[1] & sel_0);
assign mux_com_out[10] = (input_d6 & mux_com_out[3] & sel_2 & sel_1 & mux_com_out[0]);
assign mux_com_out[11] = (input_d7 & mux_com_out[3] & sel_2 & sel_1 & sel_0);
assign mux_com_out[12] = (input_d8 & sel_3 & mux_com_out[2] & mux_com_out[1] & mux_com_out[0]);
assign mux_com_out[13] = (input_d9 & sel_3 & mux_com_out[2] & mux_com_out[1] & sel_0);
assign mux_com_out[14] = (input_d10 & sel_3 & mux_com_out[2] & sel_1 & mux_com_out[0]);
assign mux_com_out[15] = (input_d11 & sel_3 & mux_com_out[2] & sel_1 & sel_0);
assign mux_com_out[16] = (input_d12 & sel_3 & sel_2 & mux_com_out[1] & mux_com_out[0]);
assign mux_com_out[17] = (input_d13 & sel_3 & sel_2 & mux_com_out[1] & sel_0);
assign mux_com_out[18] = (input_d14 & sel_3 & sel_2 & sel_1 & mux_com_out[0]);
assign mux_com_out[19] = (input_d15 & sel_3 & sel_2 & sel_1 & sel_0);
assign mux_com_out[20] = (mux_com_out[4] | mux_com_out[5]| mux_com_out[6] | mux_com_out[7] | mux_com_out[8] | mux_com_out[9] |mux_com_out[10] | mux_com_out[11] );
assign mux_com_out[21] = (mux_com_out[12] | mux_com_out[13]| mux_com_out[14] | mux_com_out[15] | mux_com_out[16] | mux_com_out[17] |mux_com_out[18] | mux_com_out[19] );
assign output_y = (mux_com_out[20] | mux_com_out[21]);
endmodule
------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Verilog code for 16:1 Multiplexer using structral
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: RED-BLUE
// Engineer:
//
// Create Date: 11:04:27 11/09/2016
// Designer Name: Madhu Krishna
// Module Name: mux16_1_str
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module mux16_1_str( 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,
sel_0,
sel_1,
sel_2,
sel_3,
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 sel_0;
input sel_1;
input sel_2;
input sel_3;
//OUTPUT
output output_y;
wire [21:0]mux_com_out;
// Declaration of 16:1 Multiplexer
// NOT GATE Instantiation Template
not_gate_code U_NOT_GATE1 (
.input_a(sel_0),
.output_y(mux_com_out[0])
);
not_gate_code U_NOT_GATE2 (
.input_a(sel_1),
.output_y(mux_com_out[1])
);
not_gate_code U_NOT_GATE3 (
.input_a(sel_2),
.output_y(mux_com_out[2])
);
not_gate_code U_NOT_GATE4 (
.input_a(sel_3),
.output_y(mux_com_out[3])
);
// 5in AND GATE Instantiation Template
and_gate5_code U_AND_GATE1 (
.input_a(input_d0),
.input_b(mux_com_out[3]),
.input_c(mux_com_out[2]),
.input_d(mux_com_out[1]),
.input_e(mux_com_out[0]),
.output_y(mux_com_out[4])
);
and_gate5_code U_AND_GATE2 (
.input_a(input_d1),
.input_b(mux_com_out[3]),
.input_c(mux_com_out[2]),
.input_d(mux_com_out[1]),
.input_e(sel_0),
.output_y(mux_com_out[5])
);
and_gate5_code U_AND_GATE3 (
.input_a(input_d2),
.input_b(mux_com_out[3]),
.input_c(mux_com_out[2]),
.input_d(sel_1),
.input_e(mux_com_out[0]),
.output_y(mux_com_out[6])
);
and_gate5_code U_AND_GATE4 (
.input_a(input_d3),
.input_b(mux_com_out[3]),
.input_c(mux_com_out[2]),
.input_d(sel_1),
.input_e(sel_0),
.output_y(mux_com_out[7])
);
and_gate5_code U_AND_GATE5 (
.input_a(input_d4),
.input_b(mux_com_out[3]),
.input_c(sel_2),
.input_d(mux_com_out[1]),
.input_e(mux_com_out[0]),
.output_y(mux_com_out[8])
);
and_gate5_code U_AND_GATE6 (
.input_a(input_d5),
.input_b(mux_com_out[3]),
.input_c(sel_2),
.input_d(mux_com_out[1]),
.input_e(sel_0),
.output_y(mux_com_out[9])
);
and_gate5_code U_AND_GATE7 (
.input_a(input_d6),
.input_b(mux_com_out[3]),
.input_c(sel_2),
.input_d(sel_1),
.input_e(mux_com_out[0]),
.output_y(mux_com_out[10])
);
and_gate5_code U_AND_GATE8 (
.input_a(input_d7),
.input_b(mux_com_out[3]),
.input_c(sel_2),
.input_d(sel_1),
.input_e(sel_0),
.output_y(mux_com_out[11])
);
and_gate5_code U_AND_GATE9 (
.input_a(input_d8),
.input_b(sel_3),
.input_c(mux_com_out[2]),
.input_d(mux_com_out[1]),
.input_e(mux_com_out[0]),
.output_y(mux_com_out[12])
);
and_gate5_code U_AND_GATE10 (
.input_a(input_d9),
.input_b(sel_3),
.input_c(mux_com_out[2]),
.input_d(mux_com_out[1]),
.input_e(sel_0),
.output_y(mux_com_out[13])
);
and_gate5_code U_AND_GATE11 (
.input_a(input_d10),
.input_b(sel_3),
.input_c(mux_com_out[2]),
.input_d(sel_1),
.input_e(mux_com_out[0]),
.output_y(mux_com_out[14])
);
and_gate5_code U_AND_GATE12(
.input_a(input_d11),
.input_b(sel_3),
.input_c(mux_com_out[2]),
.input_d(sel_1),
.input_e(sel_0),
.output_y(mux_com_out[15])
);
and_gate5_code U_AND_GATE13 (
.input_a(input_d12),
.input_b(sel_3),
.input_c(sel_2),
.input_d(mux_com_out[1]),
.input_e(mux_com_out[0]),
.output_y(mux_com_out[16])
);
and_gate5_code U_AND_GATE14 (
.input_a(input_d13),
.input_b(sel_3),
.input_c(sel_2),
.input_d(mux_com_out[1]),
.input_e(sel_0),
.output_y(mux_com_out[17])
);
and_gate5_code U_AND_GATE15 (
.input_a(input_d14),
.input_b(sel_3),
.input_c(sel_2),
.input_d(sel_1),
.input_e(mux_com_out[0]),
.output_y(mux_com_out[18])
);
and_gate5_code U_AND_GATE16 (
.input_a(input_d15),
.input_b(sel_3),
.input_c(sel_2),
.input_d(sel_1),
.input_e(sel_0),
.output_y(mux_com_out[19])
);
// 8 in OR GATE Instantiation Template
or_gate8_code U_OR_GATE17 (
.input_a(mux_com_out[4]),
.input_b(mux_com_out[5]),
.input_c(mux_com_out[6]),
.input_d(mux_com_out[7]),
.input_e(mux_com_out[8]),
.input_f(mux_com_out[9]),
.input_g(mux_com_out[10]),
.input_h(mux_com_out[11]),
.output_y(mux_com_out[20])
);
or_gate8_code U_OR_GATE18 (
.input_a(mux_com_out[12]),
.input_b(mux_com_out[13]),
.input_c(mux_com_out[14]),
.input_d(mux_com_out[15]),
.input_e(mux_com_out[16]),
.input_f(mux_com_out[17]),
.input_g(mux_com_out[18]),
.input_h(mux_com_out[19]),
.output_y(mux_com_out[21])
);
// OR Gate Instantiation Template
or_gate_code U_OR_GATE1 (
.input_a(mux_com_out[20]),
.input_b(mux_com_out[21]),
.output_y(output_y)
);
endmodule
// 5IN AND Gate Verilog code
// Verilog code for 5 input AND GATE
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: RED- BLUE
// Engineer:
//
// Create Date: 11:47:42 11/09/2016
// Designer Name: Madhu Krishna
// Module Name: and_gate5_code
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module and_gate5_code(input_a,
input_b,
input_c,
input_d,
input_e,
output_y);
//INPUTS
input input_a;
input input_b;
input input_c;
input input_d;
input input_e;
//OUTPUT
output output_y;
// Declaration of and gate
assign output_y = (input_a & input_b & input_c & input_d & input_e);
endmodule
--------------------------------------------------------------------------------------------------------------------------------------------------
// Verilog code for 16:1 Multiplexer using Behavioural
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: RED-BLUE
// Engineer:
//
// Create Date: 11:04:27 11/09/2016
// Designer Name: Madhu Krishna
// Module Name: mux16_1_beh1
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module mux16_1_beh1( 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,
sel_0,
sel_1,
sel_2,
sel_3,
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 sel_0;
input sel_1;
input sel_2;
input sel_3;
//OUTPUT
output output_y;
wire [3:0]con_out;
reg output_y;
//Declaration of 16:1 Multiplexer
assign con_out = { sel_3, sel_2, sel_1, sel_0};
always @(*) begin
if (con_out == 4'b0000) begin
output_y <= input_d0;
end else if (con_out == 4'b0001) begin
output_y <= input_d1;
end else if (con_out == 4'b0010) begin
output_y <= input_d2;
end else if (con_out == 4'b0011) begin
output_y <= input_d3;
end else if (con_out == 4'b0100) begin
output_y <= input_d4;
end else if (con_out == 4'b0101) begin
output_y <= input_d5;
end else if (con_out == 4'b0110) begin
output_y <= input_d6;
end else if (con_out == 4'b0111) begin
output_y <= input_d7;
end else if (con_out == 4'b1000) begin
output_y <= input_d8;
end else if (con_out == 4'b1001) begin
output_y <= input_d9;
end else if (con_out == 4'b1010) begin
output_y <= input_d10;
end else if (con_out == 4'b1011) begin
output_y <= input_d11;
end else if (con_out == 4'b1100) begin
output_y <= input_d12;
end else if (con_out == 4'b1101) begin
output_y <= input_d13;
end else if (con_out == 4'b1110) begin
output_y <= input_d14;
end else begin
output_y <= input_d15;
end
end
endmodule
--------------------------------------------------------------------------------------------------------------------------------------------
/// Verilog code for 16:1 Multiplexer using Behavioural
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: RED-BLUE
// Engineer:
//
// Create Date: 11:04:27 11/09/2016
// Designer Name: Madhu Krishna
// Module Name: mux16_1_beh2
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module mux16_1_beh2( 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,
sel_0,
sel_1,
sel_2,
sel_3,
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 sel_0;
input sel_1;
input sel_2;
input sel_3;
//OUTPUT
output output_y;
wire [3:0]con_out;
reg output_y;
//Declaration of 16:1 Multiplexer
assign con_out = { sel_3, sel_2, sel_1, sel_0};
always @(*) begin
case (con_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 = 4'b0000;
endcase
end
endmodule
-----------------------------------------------------------------------------------------------------------------------------------------------
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: RED-BLUE
// Engineer:
//
// Create Date: 11:04:27 11/09/2016
// Designer Name: Madhu Krishna
// Module Name: mux16_1_code
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module mux16_1_code( 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,
sel_0,
sel_1,
sel_2,
sel_3,
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 sel_0;
input sel_1;
input sel_2;
input sel_3;
//OUTPUT
output output_y;
wire [21:0]mux_com_out;
// Declaration of data flow
assign mux_com_out[0] = ~(sel_0);
assign mux_com_out[1] = ~(sel_1);
assign mux_com_out[2] = ~(sel_2);
assign mux_com_out[3] = ~(sel_3);
assign mux_com_out[4] = (input_d0 & mux_com_out[3] & mux_com_out[2] & mux_com_out[1] & mux_com_out[0]);
assign mux_com_out[5] = (input_d1 & mux_com_out[3] & mux_com_out[2] & mux_com_out[1] & sel_0);
assign mux_com_out[6] = (input_d2 & mux_com_out[3] & mux_com_out[2] & sel_1 & mux_com_out[0]);
assign mux_com_out[7] = (input_d3 & mux_com_out[3] & mux_com_out[2] & sel_1 & sel_0);
assign mux_com_out[8] = (input_d4 & mux_com_out[3] & sel_2 & mux_com_out[1] & mux_com_out[0]);
assign mux_com_out[9] = (input_d5 & mux_com_out[3] & sel_2 & mux_com_out[1] & sel_0);
assign mux_com_out[10] = (input_d6 & mux_com_out[3] & sel_2 & sel_1 & mux_com_out[0]);
assign mux_com_out[11] = (input_d7 & mux_com_out[3] & sel_2 & sel_1 & sel_0);
assign mux_com_out[12] = (input_d8 & sel_3 & mux_com_out[2] & mux_com_out[1] & mux_com_out[0]);
assign mux_com_out[13] = (input_d9 & sel_3 & mux_com_out[2] & mux_com_out[1] & sel_0);
assign mux_com_out[14] = (input_d10 & sel_3 & mux_com_out[2] & sel_1 & mux_com_out[0]);
assign mux_com_out[15] = (input_d11 & sel_3 & mux_com_out[2] & sel_1 & sel_0);
assign mux_com_out[16] = (input_d12 & sel_3 & sel_2 & mux_com_out[1] & mux_com_out[0]);
assign mux_com_out[17] = (input_d13 & sel_3 & sel_2 & mux_com_out[1] & sel_0);
assign mux_com_out[18] = (input_d14 & sel_3 & sel_2 & sel_1 & mux_com_out[0]);
assign mux_com_out[19] = (input_d15 & sel_3 & sel_2 & sel_1 & sel_0);
assign mux_com_out[20] = (mux_com_out[4] | mux_com_out[5]| mux_com_out[6] | mux_com_out[7] | mux_com_out[8] | mux_com_out[9] |mux_com_out[10] | mux_com_out[11] );
assign mux_com_out[21] = (mux_com_out[12] | mux_com_out[13]| mux_com_out[14] | mux_com_out[15] | mux_com_out[16] | mux_com_out[17] |mux_com_out[18] | mux_com_out[19] );
assign output_y = (mux_com_out[20] | mux_com_out[21]);
endmodule
------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Verilog code for 16:1 Multiplexer using structral
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: RED-BLUE
// Engineer:
//
// Create Date: 11:04:27 11/09/2016
// Designer Name: Madhu Krishna
// Module Name: mux16_1_str
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module mux16_1_str( 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,
sel_0,
sel_1,
sel_2,
sel_3,
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 sel_0;
input sel_1;
input sel_2;
input sel_3;
//OUTPUT
output output_y;
wire [21:0]mux_com_out;
// Declaration of 16:1 Multiplexer
// NOT GATE Instantiation Template
not_gate_code U_NOT_GATE1 (
.input_a(sel_0),
.output_y(mux_com_out[0])
);
not_gate_code U_NOT_GATE2 (
.input_a(sel_1),
.output_y(mux_com_out[1])
);
not_gate_code U_NOT_GATE3 (
.input_a(sel_2),
.output_y(mux_com_out[2])
);
not_gate_code U_NOT_GATE4 (
.input_a(sel_3),
.output_y(mux_com_out[3])
);
// 5in AND GATE Instantiation Template
and_gate5_code U_AND_GATE1 (
.input_a(input_d0),
.input_b(mux_com_out[3]),
.input_c(mux_com_out[2]),
.input_d(mux_com_out[1]),
.input_e(mux_com_out[0]),
.output_y(mux_com_out[4])
);
and_gate5_code U_AND_GATE2 (
.input_a(input_d1),
.input_b(mux_com_out[3]),
.input_c(mux_com_out[2]),
.input_d(mux_com_out[1]),
.input_e(sel_0),
.output_y(mux_com_out[5])
);
and_gate5_code U_AND_GATE3 (
.input_a(input_d2),
.input_b(mux_com_out[3]),
.input_c(mux_com_out[2]),
.input_d(sel_1),
.input_e(mux_com_out[0]),
.output_y(mux_com_out[6])
);
and_gate5_code U_AND_GATE4 (
.input_a(input_d3),
.input_b(mux_com_out[3]),
.input_c(mux_com_out[2]),
.input_d(sel_1),
.input_e(sel_0),
.output_y(mux_com_out[7])
);
and_gate5_code U_AND_GATE5 (
.input_a(input_d4),
.input_b(mux_com_out[3]),
.input_c(sel_2),
.input_d(mux_com_out[1]),
.input_e(mux_com_out[0]),
.output_y(mux_com_out[8])
);
and_gate5_code U_AND_GATE6 (
.input_a(input_d5),
.input_b(mux_com_out[3]),
.input_c(sel_2),
.input_d(mux_com_out[1]),
.input_e(sel_0),
.output_y(mux_com_out[9])
);
and_gate5_code U_AND_GATE7 (
.input_a(input_d6),
.input_b(mux_com_out[3]),
.input_c(sel_2),
.input_d(sel_1),
.input_e(mux_com_out[0]),
.output_y(mux_com_out[10])
);
and_gate5_code U_AND_GATE8 (
.input_a(input_d7),
.input_b(mux_com_out[3]),
.input_c(sel_2),
.input_d(sel_1),
.input_e(sel_0),
.output_y(mux_com_out[11])
);
and_gate5_code U_AND_GATE9 (
.input_a(input_d8),
.input_b(sel_3),
.input_c(mux_com_out[2]),
.input_d(mux_com_out[1]),
.input_e(mux_com_out[0]),
.output_y(mux_com_out[12])
);
and_gate5_code U_AND_GATE10 (
.input_a(input_d9),
.input_b(sel_3),
.input_c(mux_com_out[2]),
.input_d(mux_com_out[1]),
.input_e(sel_0),
.output_y(mux_com_out[13])
);
and_gate5_code U_AND_GATE11 (
.input_a(input_d10),
.input_b(sel_3),
.input_c(mux_com_out[2]),
.input_d(sel_1),
.input_e(mux_com_out[0]),
.output_y(mux_com_out[14])
);
and_gate5_code U_AND_GATE12(
.input_a(input_d11),
.input_b(sel_3),
.input_c(mux_com_out[2]),
.input_d(sel_1),
.input_e(sel_0),
.output_y(mux_com_out[15])
);
and_gate5_code U_AND_GATE13 (
.input_a(input_d12),
.input_b(sel_3),
.input_c(sel_2),
.input_d(mux_com_out[1]),
.input_e(mux_com_out[0]),
.output_y(mux_com_out[16])
);
and_gate5_code U_AND_GATE14 (
.input_a(input_d13),
.input_b(sel_3),
.input_c(sel_2),
.input_d(mux_com_out[1]),
.input_e(sel_0),
.output_y(mux_com_out[17])
);
and_gate5_code U_AND_GATE15 (
.input_a(input_d14),
.input_b(sel_3),
.input_c(sel_2),
.input_d(sel_1),
.input_e(mux_com_out[0]),
.output_y(mux_com_out[18])
);
and_gate5_code U_AND_GATE16 (
.input_a(input_d15),
.input_b(sel_3),
.input_c(sel_2),
.input_d(sel_1),
.input_e(sel_0),
.output_y(mux_com_out[19])
);
// 8 in OR GATE Instantiation Template
or_gate8_code U_OR_GATE17 (
.input_a(mux_com_out[4]),
.input_b(mux_com_out[5]),
.input_c(mux_com_out[6]),
.input_d(mux_com_out[7]),
.input_e(mux_com_out[8]),
.input_f(mux_com_out[9]),
.input_g(mux_com_out[10]),
.input_h(mux_com_out[11]),
.output_y(mux_com_out[20])
);
or_gate8_code U_OR_GATE18 (
.input_a(mux_com_out[12]),
.input_b(mux_com_out[13]),
.input_c(mux_com_out[14]),
.input_d(mux_com_out[15]),
.input_e(mux_com_out[16]),
.input_f(mux_com_out[17]),
.input_g(mux_com_out[18]),
.input_h(mux_com_out[19]),
.output_y(mux_com_out[21])
);
// OR Gate Instantiation Template
or_gate_code U_OR_GATE1 (
.input_a(mux_com_out[20]),
.input_b(mux_com_out[21]),
.output_y(output_y)
);
endmodule
// 5IN AND Gate Verilog code
// Verilog code for 5 input AND GATE
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: RED- BLUE
// Engineer:
//
// Create Date: 11:47:42 11/09/2016
// Designer Name: Madhu Krishna
// Module Name: and_gate5_code
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module and_gate5_code(input_a,
input_b,
input_c,
input_d,
input_e,
output_y);
//INPUTS
input input_a;
input input_b;
input input_c;
input input_d;
input input_e;
//OUTPUT
output output_y;
// Declaration of and gate
assign output_y = (input_a & input_b & input_c & input_d & input_e);
endmodule
--------------------------------------------------------------------------------------------------------------------------------------------------
// Verilog code for 16:1 Multiplexer using Behavioural
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: RED-BLUE
// Engineer:
//
// Create Date: 11:04:27 11/09/2016
// Designer Name: Madhu Krishna
// Module Name: mux16_1_beh1
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module mux16_1_beh1( 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,
sel_0,
sel_1,
sel_2,
sel_3,
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 sel_0;
input sel_1;
input sel_2;
input sel_3;
//OUTPUT
output output_y;
wire [3:0]con_out;
reg output_y;
//Declaration of 16:1 Multiplexer
assign con_out = { sel_3, sel_2, sel_1, sel_0};
always @(*) begin
if (con_out == 4'b0000) begin
output_y <= input_d0;
end else if (con_out == 4'b0001) begin
output_y <= input_d1;
end else if (con_out == 4'b0010) begin
output_y <= input_d2;
end else if (con_out == 4'b0011) begin
output_y <= input_d3;
end else if (con_out == 4'b0100) begin
output_y <= input_d4;
end else if (con_out == 4'b0101) begin
output_y <= input_d5;
end else if (con_out == 4'b0110) begin
output_y <= input_d6;
end else if (con_out == 4'b0111) begin
output_y <= input_d7;
end else if (con_out == 4'b1000) begin
output_y <= input_d8;
end else if (con_out == 4'b1001) begin
output_y <= input_d9;
end else if (con_out == 4'b1010) begin
output_y <= input_d10;
end else if (con_out == 4'b1011) begin
output_y <= input_d11;
end else if (con_out == 4'b1100) begin
output_y <= input_d12;
end else if (con_out == 4'b1101) begin
output_y <= input_d13;
end else if (con_out == 4'b1110) begin
output_y <= input_d14;
end else begin
output_y <= input_d15;
end
end
endmodule
--------------------------------------------------------------------------------------------------------------------------------------------
/// Verilog code for 16:1 Multiplexer using Behavioural
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: RED-BLUE
// Engineer:
//
// Create Date: 11:04:27 11/09/2016
// Designer Name: Madhu Krishna
// Module Name: mux16_1_beh2
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module mux16_1_beh2( 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,
sel_0,
sel_1,
sel_2,
sel_3,
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 sel_0;
input sel_1;
input sel_2;
input sel_3;
//OUTPUT
output output_y;
wire [3:0]con_out;
reg output_y;
//Declaration of 16:1 Multiplexer
assign con_out = { sel_3, sel_2, sel_1, sel_0};
always @(*) begin
case (con_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 = 4'b0000;
endcase
end
endmodule
-----------------------------------------------------------------------------------------------------------------------------------------------
muxi32h
ReplyDelete