社区导航

 

搜索
查看: 1106|回复: 0

炼狱传奇-边沿检测之战

[复制链接]

118

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-7-29 10:43 | 显示全部楼层 |阅读模式
边沿检测,就是检测输入信号或者FPGA 内部逻辑信号的跳变,即对信号上
升沿或者下降沿的检测。
    想要学习边沿检测电路,我们首先应该学习下面这个经典的电路
无标题.png
我们来分析一下这个电路结构和工作原理
(1)  当系统处于复位状态即rst_n信号为低电平时,寄存器inst清零端生效,寄存器输出端Q清零。由于Q端分别是“与门”inst1和inst2的输入端,而系统输出端neg_edge和pos_edge都是寄存器输出端Q和输入信号signial相与的结果,所以无论此时输入信号signial如何变化, 系统输出端neg_edge和pos_edge一直都是低电平,系统处于复位状态。
(2)  复位结束以后,假设signial信号首先保持的是低电平,在时钟的驱动下,寄存器输出端Q等于signial,也保持低电平,所以系统输出端neg_edge和pos_edge都是保持低电平。
(3)  假设输入信号signial在某个“当前周期”从低到高跳变,那么由于寄存器的延时特性,寄存器输出端Q只有在“下一周期”才会出现跳变。
“与门”inst1的“3号”输入端由于是直接连接到了输入端signial,所以在“当前周期”下“3号”端口的电平为1,输出端neg_edge=0,保持低电平。
“与门”inst2的“1号”输入端通过“非门”直接连接到了输入端signial,所以在“当前周期”下“1号”端口的电平为高,而“4号”端口的电平为Q端的取反,所以“4号”端口的电平也为高,系统输出端pos_edge为高电平。
(1)     当“下一周期”到来以后Q端输出为1,则“4号”端口的电平变为低,系统输出端pos_edge又恢复为低电平。也就是说当信号上升沿到来以后,pos_edge只能保持有且只有一个时钟的高电平,在这里我们叫做“尖峰脉冲”
下降沿的检测原理与上述类似,在此不再赘述,通过这张图我们总结出以下两点:
(1)当信号出现上升沿以后,pos_edge会出现一个时钟周期的“尖峰脉冲”。
(2)当信号出现下降沿以后,neg_edge会出现一个时钟周期的“尖峰脉冲”。

原理掌握以后,接下来我们看一下具体的代码实现
无标题.png

无标题.png
编写测试代码如下:
无标题.png
仿真波形如下:
无标题.png
有上图可以得知,key按键出现下降沿以后,neg_edge出现尖峰脉冲,key按键出现上升沿以后,pos_edge出现尖峰脉冲。


此帖出自FPGA/CPLD论坛


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/4 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-6-7 04:04 , Processed in 0.090825 second(s), 23 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表