fifo是fpga處理跨時鐘和資料快取的必要ip,可以這麼說,只要是任意乙個成熟的fpga涉及,一定會涉及到fifo。但是我在使用非同步fifo的時候,碰見幾個大坑,這裡總結如下,避免後來者入坑。
這裡博主主要總結兩個注意點,也是最常入坑的點:
1、非同步fifo的讀寫計數不准,經常可以碰見fifo的空標誌拉高,但是計數器顯示fifo中還有資料的情況,所以使用fifo自帶的計數器時,一定要小心,只可以使用大概範圍,不可以使用精確範圍。
2、非同步fifo在復位一段時間後,才可以繼續操作,不可以復位後立馬把讀寫使能拉高,因為非同步fifo需要一定的時間進行同步操作。
3、fifo復位後需要一些時鐘之後,才可以進行正常的讀寫工作。
4、非同步fifo寫資料需要經過10個左右的時鐘才能從正確讀出,這裡一定要流出足夠的時鐘週期,否則會發生錯誤。
上面的兩點一定要注意,否則很容易跳入乙個大坑。當然,同步fifo沒有上述的問題。
創作不易,認為文章有幫助的同學們可以關注、點讚、**支援。(工程也都在群中)對文章有什麼看法或者需要更近一步交流的同學,可以加入下面的群:
非同步FIFO設計注意事項
近日學習用到非同步fifo,故寫下這篇部落格記錄學習心得。在我看來,非同步fifo的設計注意事項大體分為兩點 亞穩態的處理 空滿狀態的判斷 第一,來說一下亞穩態。亞穩態是指觸發器無法在某個規定時間內達到乙個可確認的狀態。在fifo的設計中,產生的原因主要由兩點 一是邏輯電平的誤判,也就是如果通過二進...
非同步fifo 關於非同步fifo的快轉慢的問題
最近一位童鞋跟我聊到乙個非同步fifo的問題,還是很有水準的。我貼在這裡給大家看一下 非同步fifo需要將讀寫的pointer作比較產生滿和空訊號,但是假如fifo的兩個時鐘域的clk相差特別大,pointer在做跨時鐘域轉換的時候就會出現問題。什麼問題呢?慢時鐘採快時鐘會漏採資料。舉個栗子 非同步...
非同步fifo的讀寫
這裡不討論非同步fifo是如何實現的,而是在實現fifo的前提下,對fifo的讀寫。如下 接收到的資料位00.可能是時序約束問題,在之前我確實沒有約束。改了解碼的編寫後就好了,在此,沒有解碼必須是1個1的解碼,不然就會出錯。但是,位址不夠,我要如何改,現在還不確定。但是解碼必須是1 個 1.控制三態...