题解 | #用优先编码器①实现键盘编码电路#

用优先编码器①实现键盘编码电路

https://www.nowcoder.com/practice/03b8c5837d7f406797b4a57358057ef7

使用always@敏感列表来实现的办法如下:
`timescale 1ns/1ns
module encoder_0(
   input      [8:0]         I_n   ,
   
   output reg [3:0]         Y_n   
);

always @(*)begin
   casex(I_n)
      9'b111111111 : Y_n = 4'b1111;
      9'b0xxxxxxxx : Y_n = 4'b0110;
      9'b10xxxxxxx : Y_n = 4'b0111;
      9'b110xxxxxx : Y_n = 4'b1000;
      9'b1110xxxxx : Y_n = 4'b1001;
      9'b11110xxxx : Y_n = 4'b1010;
      9'b111110xxx : Y_n = 4'b1011;
      9'b1111110xx : Y_n = 4'b1100;
      9'b11111110x : Y_n = 4'b1101;
      9'b111111110 : Y_n = 4'b1110;
      default      : Y_n = 4'b1111;
   endcase    
end 
     
endmodule

module key_encoder(
      input      [9:0]         S_n   ,         
 
      output wire[3:0]         L     ,
      output wire              GS
);
    
 
    reg GSreg;
    wire [3:0] Lt;
    
    always@(S_n or Lt or GSreg)
        begin
            if(Lt!=4'b1111)
                GSreg = 1;
            else 
                if(S_n[0])
                    GSreg = 0;
                else
                    GSreg = 1;
        end
    
    assign GS = GSreg;
    assign L = ~Lt;
    
    encoder_0 encoder_key(
        .I_n(S_n[9:1]),
        .Y_n(Lt)
    );
endmodule


全部评论

相关推荐

05-22 17:07
已编辑
广东石油化工学院 Java
点赞 评论 收藏
分享
程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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