Wednesday, 9 November 2016

16. Verilog code for 32:1 Multiplexer using 16:1 Mux and 2:1 Mux(structural) .

// Verilog code for 32:1 Multiplexer using 16:1 MUX and 2:1 MUX
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: RED-BLUE
// Engineer:
//
// Create Date:    17:38:04 11/09/2016
// Designer Name:  Madhu Krishna
// Module Name:    mux32_1_u_mux16_1
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
  module mux32_1_u_mux16_1(
        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;
wire    [1:0] mux_com_out;
  // Declaration of 32:1 Multiplexer
   mux16_1_code U_MUX16_1_1 (
    .input_d0(input_d0),
    .input_d1(input_d1),
    .input_d2(input_d2),
    .input_d3(input_d3),
    .input_d4(input_d4),
    .input_d5(input_d5),
    .input_d6(input_d6),
    .input_d7(input_d7),
    .input_d8(input_d8),
    .input_d9(input_d9),
    .input_d10(input_d10),
    .input_d11(input_d11),
    .input_d12(input_d12),
    .input_d13(input_d13),
    .input_d14(input_d14),
    .input_d15(input_d15),
    .sel_0(sel_0),
    .sel_1(sel_1),
    .sel_2(sel_2),
    .sel_3(sel_3),
    .output_y(mux_com_out[0])
    );
 

mux16_1_code U_MUX16_1_2 (
    .input_d0(input_d16),
    .input_d1(input_d17),
    .input_d2(input_d18),
    .input_d3(input_d19),
    .input_d4(input_d20),
    .input_d5(input_d21),
    .input_d6(input_d22),
    .input_d7(input_d23),
    .input_d8(input_d24),
    .input_d9(input_d25),
    .input_d10(input_d26),
    .input_d11(input_d27),
    .input_d12(input_d28),
    .input_d13(input_d29),
    .input_d14(input_d30),
    .input_d15(input_d31),
    .sel_0(sel_0),
    .sel_1(sel_1),
    .sel_2(sel_2),
    .sel_3(sel_3),
    .output_y(mux_com_out[1])
    );

   // MUX2_1 Instantiation Template

   mux2_1_code U_MUX2_1 (
    .input_a(mux_com_out[0]),
    .input_b(mux_com_out[1]),
    .sel_0(sel_4),
    .output_y(output_y)
    );
endmodule

3 comments: