关于边沿检测简单理解

发布时间:2016-5-10 09:56    发布者:designapp
关键词: 边沿检测 , 寄存器
1、所谓边沿检测,就是检测输入信号或FPGA内部逻辑信号电平的跳变,即实现上升沿或下降沿的检测,捕获到以后以此用作使能信号(简单可理解为:一旦检测到这个信号,则发生什么什么),来作为时序逻辑的触发信号。总之,在基础中,这个还是很重要的,在后面的串口和SPI接口中都要用到。

(一)、一级寄存器
  


从一级寄存器中很好理解下降沿和上升沿的检测:a和b都是从trigger来的(三者一样),只是b比a在时间上迟了一个寄存器的时间。现在假设0时刻到了,trigger到a了,但是还没有到b,到了寄存器,被寄存了;等待下一个时刻1到来,a走了(不用管了),来了一个新的叫c,同时,b从寄存器得到了之前寄存的,那个现在的1时刻,有了两个信号,b和c,而且b是前一个时刻的,而c是现在时刻的(谁先谁后这点很重要)。所以:

下降沿 neg_edge = b & ~c;
  


由上图可以看出,当下降沿来的时候,c取反再与上b,得出输出为1;反过来想,输出neg_edge为1的时候就表示检测到下降沿了。

上升沿 pos_edge = ~b & c;
  


同理。当pos_edge为1,表示检测到上升沿。

(二)两级寄存器

moduleedge_tech_design

(

clk,

rst_n,

s,

neg_edge,

pos_edge

);

inputclk;

inputrst_n;

inputs;

outputneg_edge;

outputpos_edge;

regc,d;

always@(posedgeclkornegedgerst_n)

if(!rst_n)begin

c


仿真图中可以看到这样的图形(街区图中下降沿部分一小段)
  


输入信号s从高变成低的时候,出现下降沿,然后等到时钟clk的上升沿到来,s传输到c,d还没传输到,被寄存在d之前的寄存器内,等待第二个时钟上升沿到来,寄存器中的信号传输到d了,此时根据

neg_edge = d & ~c;

可以得到neg_edge的波形。
本文地址:https://www.eechina.com/thread-165911-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • 利用模拟开发工具生态系统进行安全电路设计
  • 更佳设计的解决方案——Microchip模拟开发生态系统
  • 你仿真过吗?使用免费的MPLAB Mindi模拟仿真器降低设计风险
  • 想要避免发生灾难,就用MPLAB SiC电源仿真器!
  • 贸泽电子(Mouser)专区

相关在线工具

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表