题解 | #优先编码器Ⅰ#

优先编码器Ⅰ

https://www.nowcoder.com/practice/a7068b8f4c824d6a9592f691990b21de

`timescale 1ns/1ns

module encoder_83(
   input      [7:0]       I   ,
   input                  EI  ,
   
   output reg [2:0]      Y   ,
   output reg            GS  ,
   output reg            EO    
);

always@(*)(1444584)
begin
    if(!EI)
        begin
            GS = 0;
            EO = 0;
            Y  = 3'b0;
        end
    else if(I == 8'b0000_0000)
        begin
            GS = 0;
            EO = 1;
            Y  = 3'b0;
        end
    else
    begin
        GS = 1;
        EO = 0;
        casex(I)
            8'b1xxx_xxxx: 
                begin

                    Y  = 3'b111;
                end
            8'b01xx_xxxx: 
                begin

                    Y  = 3'b110;
                end
            8'b001x_xxxx: 
                begin

                    Y  = 3'b101;
                end
            8'b0001_xxxx: 
                begin
;
                    Y  = 3'b100;
                end
            8'b0000_1xxx: 
                begin

                    Y  = 3'b011;
                end
            8'b0000_01xx: 
                begin

                    Y  = 3'b010;
                end
            8'b0000_001x: 
                begin

                    Y  = 3'b001;
                end
            8'b0000_0001: 
                begin
                    Y  = 3'b000;
                end
            default: Y = 3'b000;
        endcase

    end
end

endmodule

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务