在同步電路設(shè)計(jì)中,,邊沿檢測(cè)是必不可少的,!
例如:在一個(gè)時(shí)鐘頻率16MHz的同步串行總線接收電路里,串行總線波特率為1Mbps,。在串行總線的發(fā)送端是在同步時(shí)鐘(1MHz)的上升沿輸出數(shù)據(jù),,在接收端在同步時(shí)鐘的下降沿對(duì)輸入數(shù)據(jù)進(jìn)行接收采樣。在這個(gè)接收電路里檢測(cè)同步時(shí)鐘的下降沿是必不可少的,。假設(shè)主時(shí)鐘-clk,,同步時(shí)鐘-rck,,同步數(shù)據(jù)-data,。
有些人在邊沿檢測(cè)的時(shí)候就喜歡這樣做:
但是大家忽略了一種情況,就是clk與rck之間比沒有必然的同步關(guān)系,當(dāng)rck的下降沿剛好略滯后于clk的上升沿(大概幾個(gè)ns),,這樣就會(huì)使高電平 保持時(shí)間不足,,就會(huì)發(fā)現(xiàn)在本時(shí)鐘上升沿時(shí)還是rck_dly=‘1’ and rck=‘1’,而在下一個(gè)時(shí)鐘的上升沿來的時(shí)候,,就會(huì)出現(xiàn)rck_dly=‘0’ and rck=‘0’,,所以就不會(huì)有rck_dly=‘1’ and rck=‘0’的情況出現(xiàn)!,! 從而導(dǎo)致丟失數(shù)據(jù),。
如果用下面的方法就可以避免上面的情況,并且可以做到正確無(wú)誤地接收數(shù)據(jù):
至于以上電路為什么就可以克服上面出現(xiàn)的情況,,就留給大家分析了,。
不得不承認(rèn)后一種方法所耗的資源要比前一種方法多(一個(gè)觸發(fā)器),但是就可以大大提高可靠性,,這絕對(duì)是物有所值?。?/p>