FPGA自学之路5(边沿采集,触摸按键控制led灯)

想达成效果是触摸一次灯一直亮,再触摸一次灯就灭掉,再触摸一次灯又一直亮。

下面是框图和波形,touch_key就代表触摸信号

 下面是波形,这里touch_key1是把touch_key同步到上升沿时钟信号。touch_key2是touch_key1延迟一拍的信号,目的是为了跟touch_key1进行比较,方便采集touch_key1的边沿信号。touch_flag是组合逻辑下采集的touch_key1的下降沿信号,组合逻辑没有延迟。

nedge是时序逻辑下采集的touch_key1的下降沿信号,相比于touch_flag会有一拍的延迟。

podge是时序逻辑下采集的touch_key1的上升沿信号,也会有一拍的延迟。

led信号受touch_flag控制。

 下面是rtl代码,外面assign的是touch_falg信号,注释里面的我只写了时序逻辑下的下降沿采集nedge信号。

module  touch_ctrl_led
(
    input           sys_clk,
    input           sys_rst_n,
    input           touch_key,
    output     reg  led

);
reg touch_key1;
reg touch_key2;
wire touch_flag;

//边沿检测,利用慢一拍的效果可以
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值