原创 信号边沿检测

2013-9-2 18:54 1114 20 20 分类: FPGA/CPLD

 

clip_image002

clip_image004

牛崩啊……

不过我还是云里雾里,于是建立了一个工程测试了一下,下面是RTL:

clip_image006

经过他们解说,明白了:

经过3个dff触发,寄存前一个值,最后当前值与前一个值相比较,如果当前值为0,前一个值为1,则neg_tri输出1,是下降沿;反之,则是上升沿;

原来就是这么个回事啊,保存前一次的状态,需要一个D触发器,前次的状态与当前状态相比较,加一个非门,加一个与门……

豁然开朗

可以用硬件原理图画出来啊:

clip_image008

图1

clip_image010

图2

图一是“七哥“画的,他说:

保存前一次的状态,需要一个D触发器前次的状态与当前状态相比较,加一个非门,加一个与门。需要延时的话,就用DFF打一拍;多几个DFF,就会延时几倍的时钟。这样的话,如果在一个时钟内输入信号发生变化,不用影响输出,类似的消抖动。我的那个图输入会影像输出,效果不好(但这是最基本的思维,掌握这样的思想,就掌握了这样的原理)

图二是我画的,就是参照刚才按个Verilog去描述的,rtl如下

clip_image012

您看,第一个dff和后面两个dff可以合在一起,那就是说,这个硬件原理图和刚才那个Verilog写的,实际上是一模一样的。推论成立!!

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
20
关闭 站长推荐上一条 /3 下一条