《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > FPGA設(shè)計(jì)經(jīng)驗(yàn)之邊沿檢測(cè)
FPGA設(shè)計(jì)經(jīng)驗(yàn)之邊沿檢測(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。
關(guān)鍵詞: FPGA 邊沿檢測(cè)
Abstract:
Key words :

  在同步電路設(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之間比沒(méi)有必然的同步關(guān)系,當(dāng)rck的下降沿剛好略滯后于clk的上升沿(大概幾個(gè)ns),這樣就會(huì)使高電平 保持時(shí)間不足,就會(huì)發(fā)現(xiàn)在本時(shí)鐘上升沿時(shí)還是rck_dly=‘1’ and rck=‘1’,而在下一個(gè)時(shí)鐘的上升沿來(lái)的時(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ì)是物有所值!!

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。