格雷碼的事聊完了,后面順理成章的就是讀寫通路模塊的設(shè)計(jì)。不過在讀寫控制通路之前還要明確下另一個(gè)問題,就是空滿信號的產(chǎn)生位置的事情。
這個(gè)問題在面試時(shí)的問法是:空滿信號分別在哪個(gè)時(shí)鐘域產(chǎn)生?
眾所周知,信號跳變時(shí)打兩拍(或者三拍)能夠消除亞穩(wěn)態(tài),但是信號從亞穩(wěn)態(tài)恢復(fù)的時(shí)候不一定恢復(fù)成0還是1。而因?yàn)楦窭状a每次變化1比特的特性,可以保證即使恢復(fù)錯(cuò)了也不過是錯(cuò)成之前的值罷了。
當(dāng)然了即使沒有亞穩(wěn)態(tài)誤恢復(fù)的問題,讀寫指針傳到對面的時(shí)鐘域去,總歸會(huì)延遲好幾拍的,所以在寫時(shí)鐘域看到的讀指針是落后于實(shí)時(shí)讀指針的,同理讀時(shí)鐘域看到的寫指針也是落后于真實(shí)的寫指針的。
那么來分析下滯后的影響,令fifo_cnt為fifo中已有的數(shù)據(jù)量計(jì)數(shù)值。
1.waddr準(zhǔn)確,raddr滯后,那么計(jì)算得到fifo_cnt會(huì)偏大。如waddr=7,raddr=4,滯后的raddr=1,計(jì)算得到fifo_cnt為6,而實(shí)際上fifo_cnt為3;
2.waddr滯后,raddr準(zhǔn)確,那么計(jì)算得到fifo_cnt會(huì)偏小。如waddr=7,raddr=4,滯后的waddr=5,計(jì)算得到fifo_cnt為1,而實(shí)際上fifo_cnt為3;
進(jìn)一步的,如果fifo_cnt計(jì)算偏大了,對于讀和寫來說會(huì)有什么影響呢?讀可能發(fā)生功能問題,寫可能發(fā)生性能問題。讀可能發(fā)生功能問題在于,本來你里面沒數(shù)了,結(jié)果fifo_cnt算的偏大還以為有數(shù),有數(shù)就能讀一讀就出錯(cuò)了。寫可能發(fā)生性能問題在于,本來你里面沒滿呢,結(jié)果fifo_cnt算的偏大還以為滿了,滿了就不能寫本來能寫的寫不進(jìn)去那性能不就降下來了么。
如果fifo_cnt計(jì)算偏小了,對于讀和寫來說會(huì)有什么影響呢?讀可能發(fā)生性能問題,寫可能發(fā)生功能問題。讀可能發(fā)生性能問題在于,本來你里面還有數(shù),結(jié)果fifo_cnt算的偏小還以為沒數(shù)了,沒數(shù)了就不能讀了。寫可能發(fā)生功能問題在于,本來你已經(jīng)滿了,結(jié)果fifo_cnt算的偏小還以為沒滿,沒滿就能寫一寫就出錯(cuò)了。
所以,對于寫fifo而言,fifo_cnt計(jì)算偏小不可接收,fifo_cnt計(jì)算偏大可以接收,所以滿信號必須由準(zhǔn)確的waddr和滯后的raddr產(chǎn)生,也就是在寫時(shí)鐘域產(chǎn)生。
對于讀fifo而言,fifo_cnt計(jì)算偏小可以接收,fifo_cnt計(jì)算偏大不可接收。所以空信號必須由滯后的waddr和準(zhǔn)確的raddr產(chǎn)生,也就是在讀時(shí)鐘域產(chǎn)生。
審核編輯:劉清
-
fifo
+關(guān)注
關(guān)注
3文章
401瀏覽量
44807 -
格雷碼
+關(guān)注
關(guān)注
2文章
34瀏覽量
13398 -
時(shí)鐘域
+關(guān)注
關(guān)注
0文章
53瀏覽量
9787
原文標(biāo)題:【芯片設(shè)計(jì)】FIFO漫談之異步FIFO空滿信號的產(chǎn)生位置
文章出處:【微信號:Rocker-IC,微信公眾號:路科驗(yàn)證】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
求助 FPGA 異步FIFO IP核
異步FIFO指針同步產(chǎn)生的問題
【鋯石A4 FPGA試用體驗(yàn)】fifo實(shí)驗(yàn)(2)-異步fifo
關(guān)于異步fifo的安全問題:
高速異步FIFO的設(shè)計(jì)與實(shí)現(xiàn)
Camera Link接口的異步FIFO設(shè)計(jì)與實(shí)現(xiàn)
異步FIFO結(jié)構(gòu)及FPGA設(shè)計(jì)
異步FIFO的設(shè)計(jì)分析及詳細(xì)代碼

基于FPGA的異步FIFO設(shè)計(jì)方法詳解

同步FIFO之Verilog實(shí)現(xiàn)
異步FIFO之Verilog代碼實(shí)現(xiàn)案例
異步fifo詳解
FIFO設(shè)計(jì)—異步FIFO

FIFO相關(guān)信號及空滿狀態(tài)的原理說明

評論