题解 | #实现3-8译码器①#

实现3-8译码器①

https://www.nowcoder.com/practice/89659f98cb124362b1c816f06d5235d0

`timescale 1ns/1ns

module decoder_38(
   input             E1_n   ,
   input             E2_n   ,
   input             E3     ,
   input             A0     ,
   input             A1     ,
   input             A2     ,
   
   output wire       Y0_n   ,  
   output wire       Y1_n   , 
   output wire       Y2_n   , 
   output wire       Y3_n   , 
   output wire       Y4_n   , 
   output wire       Y5_n   , 
   output wire       Y6_n   , 
   output wire       Y7_n   
);

reg [7:0] y;
    always@(*) begin
        if({E3,E2_n,E1_n} == 3'b100) begin
            case({A2,A1,A0}) 
            3'b000: y = (8'd1);
            3'b001: y = (8'd2);
            3'b010: y = (8'd4);
            3'b011: y = (8'd8);
            3'b100: y = (8'd16);
            3'b101: y = (8'd32);
            3'b110: y = (8'd64);
            3'b111: y = (8'd128);
            endcase
        end else y = 8'd0;
    end

    assign Y0_n = !y[0];
    assign Y1_n = !y[1];
    assign Y2_n = !y[2];
    assign Y3_n = !y[3];
    assign Y4_n = !y[4];
    assign Y5_n = !y[5];
    assign Y6_n = !y[6];
    assign Y7_n = !y[7];
endmodule
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务