case(i)
0:y=4'b0001; 1:y=4'b0010; 2:y=4'b0100; 3:y=4'b1000; endcase
else y=4'b0000; end
endmodule
module mutiplexer16_1(a,b,c,en,d,y,y_l); input a,b,c,en; input [7:0] d; output y,y_l; reg y,y_l;
always @(a,b,c,en) begin
if(en==0) if(c==0&b==0&a==0) y=d[0]; else if(c==0&b==0&a==1) y=d[1]; else if(c==0&b==1&a==0) y=d[2]; else if(c==0&b==1&a==1) y=d[3]; else if(c==1&b==0&a==0) y=d[4]; else if(c==1&b==0&a==1) y=d[5]; else if(c==1&b==1&a==0) y=d[6]; else y=d[7];
else y=0; y_l=!y; end
endmodule
module liuyong(A,B,C,D,set,LED,LATCH); wire [3:0] y; wire [1:0] i; input A,B,C,D; input [15:0] set; output LED,LATCH;
assign i[1]=0; assign i[0]=D;
e2_4decoder u1(i,1,y);
mutiplexer16_1 m1(A,B,C,!y[0],set[7:0],y1,y1_l);