在同步电路设计中,边缘检测是必不可少的!
例如:在一个时钟频率16MHz的同步串行总线接纳电路里,串行总线波特率为1Mbps。在串行总线的发送端是在同步时钟(1MHz)的上升沿输出数据,在接纳端在同步时钟的下降沿对输入数据进行接纳采样。在这个接纳电路里检测同步时钟的下降沿是必不可少的。假定主时钟-clk,同步时钟-rck,同步数据-data。
有些人在边缘检测的时分就喜爱这样做:

可是我们疏忽了一种状况,便是clk与rck之间比没有必定的同步联系,当rck的下降沿刚好略滞后于clk的上升沿(大约几个ns),这样就会使高电平 坚持时刻缺乏,就会发现在本时钟上升沿时仍是rck_dly=‘1’ and rck=‘1’,而在下一个时钟的上升沿来的时分,就会呈现rck_dly=‘0’ and rck=‘0’,所以就不会有rck_dly=‘1’ and rck=‘0’的状况呈现!! 然后导致丢掉数据。
假如用下面的办法就能够防止上面的状况,而且能够做到正确无误地接纳数据:

至于以上电路为什么就能够战胜上面呈现的状况,就留给我们剖析了。
不得不供认后一种办法所耗的资源要比前一种办法多(一个触发器),可是就能够大大提高可靠性,这肯定是物有所值!!