verilog用模块调用的方式实现4选1选择器组合成16选1选择器

如题所述

用5个 4选1 组成就可以了

module mux16(
    input [15:0] din,
    input [3:0] sel,
    output dout
);

    wire y0,y1,y2,y3;
    
    mux4 mux4_0(
        .a(din[0]),
        .b(din[1]),
        .c(din[2]),
        .d(din[3]),
        .sel(sel[1:0]),
        .y(y0)
    );

    mux4 mux4_1(
        .a(din[4]),
        .b(din[5]),
        .c(din[6]),
        .d(din[7]),
        .sel(sel[1:0]),
        .y(y1)
    );

    mux4 mux4_2(
        .a(din[8]),
        .b(din[9]),
        .c(din[10]),
        .d(din[11]),
        .sel(sel[1:0]),
        .y(y2)
    );

    mux4 mux4_3(
        .a(din[12]),
        .b(din[13]),
        .c(din[14]),
        .d(din[15]),
        .sel(sel[1:0]),
        .y(y3)
    );

    mux4 mux4_4(
        .a(y0),
        .b(y1),
        .c(y2),
        .d(y3),
        .sel(sel[3:2]),
        .y(dout)
    );

endmodule

温馨提示:答案为网友推荐,仅供参考
相似回答