mux16_1.v
来自「本程序实现了对输入数路的16选1功能」· Verilog 代码 · 共 50 行
V
50 行
//第二题:
// 设计MUX4×1多路选择器模块,然后用该模块编写16×1多路选择器程序。
module mux16_1(sel,in1,in2,in3,in4,in5,in6,in7,in8,in9,in10,in11,in12,in13,in14,in15,in16,mout,en);
output [width-1:0] mout;
input [width-1:0] in1,in2,in3,in4,in5,in6,in7,in8,in9,in10,in11,in12,in13,in14,in15,in16;
input[3:0] sel;
input en;
wire [width-1:0] mout1,mout2,mout3,mout4;
reg [width-1:0] mout;
parameter width=4;
sel4m1 u1(sel[1:0],in1,in2,in3,in4,mout1,en);
sel4m1 u2(sel[1:0],in5,in6,in7,in8,mout2,en);
sel4m1 u3(sel[1:0],in9,in10,in11,in12,mout3,en);
sel4m1 u4(sel[1:0],in13,in14,in15,in16,mout4,en);
always@(sel or in1 or in2 or in3 or in4 or in5 or in6 or in7 or in8 or in9 or in10 or in11 or in12 or in13 or in14 or in15 or in16 or en)
begin
if(en==1'b1)
case(sel[1:0])
2'b00: mout=mout1;
2'b01: mout=mout2;
2'b10: mout=mout3;
2'b11: mout=mout4;
default: mout='b0;
endcase
else
mout='b0;
end
endmodule
module sel4m1(sel,in1,in2,in3,in4,mout,en);
output [width-1:0] mout;
input [width-1:0] in1,in2,in3,in4;
input[1:0] sel;
input en;
reg [width-1:0] mout;
parameter width=4;
always@(sel or in1 or in2 or in3 or in4 or en)
begin
if(en==1'b1)
case(sel)
2'b00: mout=in1;
2'b01: mout=in2;
2'b10: mout=in3;
2'b11: mout=in4;
default: mout='b0;
endcase
else
mout='b0;
end
endmodule
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?