zoukankan      html  css  js  c++  java
  • 简单按键防抖

    module DS(
    input CLK,
    input [3:0] key,
    output reg[3:0] led
    );
    
    reg[3:0] key_r;
    wire[3:0] key_p;
    
    always @ (posedge CLK)
    begin
       key_r<={key[3],key[2],key[1],key[0]};
    end
    
    assign key_p=key & ~key_r;
    
    
    always @ (posedge CLK)
    begin
       case(key_p)
           4'b0001:led=4'b0001;
            4'b0010:led=4'b0010;
            4'b0100:led=4'b0100;
            4'b1000:led=4'b1000;
        endcase
    end
    
    endmodule

    核心在assign key_p=key & ~key_r;一旦有变化,key_p就为1,只检测下降沿。

    key_r与key差一个时钟周期。

    千万不要直接把key放进always里,always最好只放clk或者reg的变量,其他wire的变量不要轻易放入之内。

  • 相关阅读:
    常用基础命令
    Vim
    Linux目录结构
    稀疏数组
    数据结构概述
    天天用的命令
    Mysql和redis的安装
    回文排列
    URL化
    在word中做复选框打对勾钩
  • 原文地址:https://www.cnblogs.com/wyc199288/p/4399616.html
Copyright © 2011-2022 走看看