新聞中心

EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于VHDL的異步FIFO設(shè)計(jì)

基于VHDL的異步FIFO設(shè)計(jì)

作者: 時(shí)間:2011-08-17 來(lái)源:網(wǎng)絡(luò) 收藏

仔細(xì)觀察表1并分析數(shù)據(jù),一種新穎的判斷空滿標(biāo)志的方法為:當(dāng)讀/寫指針的最高位(MSB)不相等且讀/寫指針的次高位不相等,剩余的N-2位地址相等時(shí),此時(shí)寫指針追上了讀指針,即寫指針比讀指針多轉(zhuǎn)一圈,狀態(tài)模塊輸出滿標(biāo)志;當(dāng)讀/寫指針N+1位都相等時(shí),狀態(tài)模塊輸出空標(biāo)志。判斷滿標(biāo)志部分的代碼:
f.jpg
h.jpg
3.4 總體
通過(guò)時(shí)針比較產(chǎn)生的框圖如圖5所示。WCLK和RCLK分別為讀時(shí)鐘和寫時(shí)鐘,wrst_n和rrst_n分別為讀/寫模塊的復(fù)位信號(hào)。 rdata為數(shù)據(jù)輸出端口,wdata為數(shù)據(jù)輸入端口。通過(guò)讀/寫指針來(lái)尋址一個(gè)雙口RAM來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)的讀/寫,雙口RAM的大小為2nB。讀指針被二級(jí)同步鏈到寫時(shí)鐘域,然后與寫時(shí)針比較產(chǎn)生滿標(biāo)志,讀指針產(chǎn)生讀地址raddress;寫時(shí)針被二級(jí)同步鏈同步到讀時(shí)鐘域,然后與讀時(shí)鐘比較產(chǎn)生空標(biāo)志,寫指針產(chǎn)生寫地址waddress。需要注意的是此異步FIFO中,空滿標(biāo)志是保守的空滿標(biāo)志,比如滿標(biāo)志,當(dāng)讀時(shí)針通過(guò)二級(jí)同步鏈同步到寫時(shí)鐘域且滿足滿標(biāo)志的條件時(shí),寫指針停止加1操作,而同步讀指針的過(guò)程中,讀時(shí)針則移動(dòng)到了其他的地址,同樣的適合于空標(biāo)志,當(dāng)輸出空,滿時(shí),其實(shí)FIFO的真實(shí)狀態(tài)是還有空間沒(méi)被寫滿或者讀空,這就是保守的空和滿,而這正保證了FIFO不會(huì)向上會(huì)向下溢出,進(jìn)一步提高了FIFO工作的可靠性。

本文引用地址:http://butianyuan.cn/article/178738.htm

i.jpg


表2為平均無(wú)故障工作時(shí)間的對(duì)比,C1和C2依賴于器件工藝。

j.jpg



4 結(jié)語(yǔ)
一個(gè)高的平均無(wú)故障工作時(shí)間表明一個(gè)是優(yōu)秀的,提高亞穩(wěn)態(tài)的平均無(wú)故障工作時(shí)間減少信號(hào)傳輸中導(dǎo)致亞穩(wěn)態(tài)問(wèn)題的風(fēng)險(xiǎn)。本文通過(guò)研究FIFO的基本結(jié)構(gòu)以及FPGA亞穩(wěn)態(tài)的產(chǎn)生機(jī)理,提出了利用二級(jí)同步鏈和格雷碼計(jì)數(shù)器指針解決了同步以及空滿狀態(tài)判斷的難題,給出了軟件代碼,且該設(shè)計(jì)已經(jīng)通過(guò)QuartusⅡ的時(shí)序仿真驗(yàn)證,作為獨(dú)立模塊可以應(yīng)用到需要異步時(shí)鐘域傳輸數(shù)據(jù)的電路中,大大提高異步數(shù)據(jù)傳輸效率及平均無(wú)故障工作時(shí)間。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 設(shè)計(jì) FIFO 異步 VHDL 基于

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉