问答 店铺
热搜: ZYNQ FPGA discuz

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

微信扫一扫 分享朋友圈

已有 9540 人浏览分享

开启左侧

按键消抖的问题

  [复制链接]
9540 3
                        input ext_clk_25m,        //外部输入25MHz时钟信号
                        input ext_rst_n,        //外部输入复位信号,低电平有效
                        input[0:0] switch,        //拨码开关SW3输入,ON -- 低电平;OFF -- 高电平
                        input key_upup,key_down,        //up和down两个导航按键输入,未按下为高电平,按下后为低电平
                );

//-------------------------------------
//按键抖动判断逻辑
wire key;        //所有按键值相与的结果,用于按键触发判断
reg[3:0] keyr;  //按键值key的缓存寄存器

assign key = key_upup & key_down;

always @(posedge ext_clk_25m or negedge ext_rst_n)
    if (!ext_rst_n) keyr <= 4'b1111;
    else keyr <= {keyr[2:0],key};

wire key_neg = ~keyr[2] & keyr[3];        //有按键被按下       
wire key_pos = keyr[2] & ~keyr[3];        //有按键被释放


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评论 7

suwm2016  新手上路  发表于 2016-1-12 12:04:19 | 显示全部楼层
上面的图片中为啥要取 keyr[2] 和 keyr[3]
suwm2016  新手上路  发表于 2016-1-12 12:19:57 | 显示全部楼层
admin 发表于 2016-1-12 12:09
去除亚稳态,有时候也作为同步延迟处理

为什么要取 2和3呢
suwm2016  新手上路  发表于 2016-1-12 12:21:13 | 显示全部楼层
admin 发表于 2016-1-12 12:09
去除亚稳态,有时候也作为同步延迟处理

我感觉 不管什么时候那俩都是 低电平
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0

关注

1

粉丝

1

主题
精彩推荐
热门资讯
网友晒图
图文推荐

  • 微信公众平台

  • 扫描访问手机版