题解 | #优先编码器Ⅰ#

优先编码器Ⅰ

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

`timescale 1ns/1ns

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

    reg [2:0] Y_r;
    reg GS_r;
    reg EO_r;

    always @(*)(1444584) begin
        if(EI == 1'b0) begin
            Y_r = 3'd0;
            GS_r = 1'b0;
            EO_r = 1'b0;
        end
        else begin
            casez(I)
                8'b00000000: begin
                                Y_r = 3'b000;
                                GS_r = 1'b0;
                                EO_r = 1'b1;
                end
                8'b1???????:begin
                                Y_r = 3'b111;
                                GS_r = 1'b1;
                                EO_r = 1'b0;
                end
                8'b01??????:begin
                                Y_r = 3'b110;
                                GS_r = 1'b1;
                                EO_r = 1'b0;
                end
                8'b001?????:begin
                                Y_r = 3'b101;
                                GS_r = 1'b1;
                                EO_r = 1'b0;
                end
                8'b0001????:begin
                                Y_r = 3'b100;
                                GS_r = 1'b1;
                                EO_r = 1'b0;
                end
                8'b00001???:begin
                                Y_r = 3'b011;
                                GS_r = 1'b1;
                                EO_r = 1'b0;
                end
                8'b000001??:begin
                                Y_r = 3'b010;
                                GS_r = 1'b1;
                                EO_r = 1'b0;
                end
                8'b0000001?:begin
                                Y_r = 3'b001;
                                GS_r = 1'b1;
                                EO_r = 1'b0;
                end
                8'b00000001:begin
                                Y_r = 3'b000;
                                GS_r = 1'b1;
                                EO_r = 1'b0;
                end
                default: begin
                        Y_r = 3'b000;
                        GS_r = 1'b0;
                        EO_r = 1'b1;
                end 
            endcase  

        end
    end

    assign Y = Y_r;
    assign GS = GS_r;
    assign EO = EO_r;
endmodule

全部评论

相关推荐

12-15 12:50
河北工程大学
sta666:我也是这个国际商业化的,三天,一天一面,就通过了,不过我是后端实习生,好好面感觉能过。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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