美文网首页菜鸟工程师成长之路
VHDL实现双信号边沿判断的一种方法

VHDL实现双信号边沿判断的一种方法

作者: 言丶武 | 来源:发表于2017-04-03 22:52 被阅读712次

    今天在使用quartus编写VHDL程序的时候,需要写一个使能信号子模块,具体的效果是当检测到输入信号的边沿时(按下按键),输出一个持续0.5秒的高电平使能信号。编写的过程中需要在一个进程中检测两个信号的边沿,由于编译器不支持双信号的边沿检测,所以需要一些技巧来达到我们的目的,另外,经过我的推测,此方法也适用于单信号的双边沿检测,这就很厉害了!话不多说,直接上代码:

    其实原理很简单,就是多写一个process进程,通过if语句生成一个触发器,把输入信号延后一个时钟,在另一个进程中用   if(refresh_deley='0' and refresh='1'),就能实现判断上升沿的效果,如下图:

    但显然,此技巧有一定局限性,由上图我们可以看出,我们判断出的上升沿和下降沿有一定的延时性,但不会超过一个时钟周期,且原信号持续信号必须大于一个时钟周期才能被检测到,所以要求我们输入的时钟信号应该要尽量大一些,这样才能保证结果的正确性。最后上一个仿真结果图:

    相关文章

      网友评论

        本文标题:VHDL实现双信号边沿判断的一种方法

        本文链接:https://www.haomeiwen.com/subject/bbnoottx.html