資料介紹
FIFO是FPGA處理跨時(shí)鐘和數(shù)據(jù)緩存的必要IP,可以這么說,只要是任意一個(gè)成熟的FPGA涉及,一定會涉及到FIFO。但是我在使用異步FIFO的時(shí)候,碰見幾個(gè)大坑,這里總結(jié)如下,避免后來者入坑。
注意點(diǎn)
這里博主主要總結(jié)兩個(gè)注意點(diǎn),也是最常入坑的點(diǎn):
1、異步FIFO的讀寫計(jì)數(shù)不準(zhǔn),經(jīng)??梢耘鲆奆IFO的空標(biāo)志拉高,但是計(jì)數(shù)器顯示FIFO中還有數(shù)據(jù)的情況,所以使用FIFO自帶的計(jì)數(shù)器時(shí),一定要小心,只可以使用大概范圍,不可以使用精確范圍。
2、異步FIFO在復(fù)位一段時(shí)間后,才可以繼續(xù)操作,不可以復(fù)位后立馬把讀寫使能拉高,因?yàn)楫惒紽IFO需要一定的時(shí)間進(jìn)行同步操作。
3、FIFO復(fù)位后需要一些時(shí)鐘之后,才可以進(jìn)行正常的讀寫工作。
4、異步FIFO寫數(shù)據(jù)需要經(jīng)過10個(gè)左右的時(shí)鐘才能從正確讀出,這里一定要流出足夠的時(shí)鐘周期,否則會發(fā)生錯(cuò)誤。
上面的兩點(diǎn)一定要注意,否則很容易跳入一個(gè)大坑。當(dāng)然,同步FIFO沒有上述的問題。
評論