設(shè)計(jì)者為了提升FIFO的速度使用了將二進(jìn)制計(jì)數(shù)器和格雷碼計(jì)數(shù)器結(jié)合在一起的方法,從最開始用一組寄存器來進(jìn)行格雷碼到二進(jìn)制碼的轉(zhuǎn)換,二進(jìn)制碼的遞增和二進(jìn)制碼到格雷碼的轉(zhuǎn)換,到后來的style#2(如圖)。
在本篇當(dāng)中,作者進(jìn)一步對此設(shè)計(jì)進(jìn)行了說明,使用這種格雷碼計(jì)數(shù)器的目的是利用了二進(jìn)制數(shù)進(jìn)位的機(jī)制簡化了格雷碼到二進(jìn)制碼的轉(zhuǎn)換電路來減少組合邏輯電路,這樣整個(gè)計(jì)數(shù)器的工作頻率上限就會(huì)有所提升。

Dual n-bit Gray Code counter style#2
但是,可以看到這里的設(shè)計(jì)需要使用兩組寄存器,這里可能會(huì)體現(xiàn)到PPA trade-off的思想了(因?yàn)槲乙矝]有實(shí)驗(yàn)過這種替換方式會(huì)不會(huì)帶來更大的面積損耗)。不過,對FPGA來講,FPGA包含著許多寄存器資源,所以使用FPGA來實(shí)現(xiàn)這種設(shè)計(jì)方法就不需要考慮面積上的損耗,更能凸顯出速度提升上的優(yōu)勢!
上文說到,設(shè)計(jì)FIFO中最重要的部分也是最難的部分之一就是如何產(chǎn)生空滿標(biāo)志信號。一種方法就是上一篇提到的使用發(fā)送到對面時(shí)鐘域的同步后的格雷碼指針來進(jìn)行比較,從而判斷空滿信號的產(chǎn)生。而另外一種方法就是本篇文章所提到的,指針的比較不再是同步的了,而是通過“異步”比較,并判斷空滿信號。
上篇文章提到的判斷空滿信號的方法是比較指針是否一樣,并通過多增加一個(gè)bit位來討論指針被套圈的問題。不同于上個(gè)設(shè)計(jì),本篇文章提出了一個(gè)更有創(chuàng)意的思路來判斷空滿信號的產(chǎn)生。
作者將FIFO的地址分成了四個(gè)區(qū)間并通過編碼兩個(gè)指針計(jì)數(shù)器最高的兩位來比較判斷FIFO將要空滿的 趨勢 。舉個(gè)栗子,如果寫指針落在讀指針后面一個(gè)區(qū)間則表示FIFO將要滿,然后當(dāng)指針重合時(shí)則將direction寄存器置位,如下圖。

FIFO is going full because the wptr trails the rptr by one quadrant
而如果寫指針落在讀指針前面一個(gè)區(qū)間則代表FIFO將要空,然后當(dāng)指針重合的時(shí)候則將direction寄存器復(fù)位。

FIFO is going empty because the rptr trails the wptr by one quadrant
結(jié)語:
這篇文章理解起來可能要比前一篇更難理解一點(diǎn),給我的感覺就是看起來很暈。沒有把握給大家闡明清楚,所以就不再做更深入的探討了。還是推薦大家如果對這個(gè)設(shè)計(jì)方法感興趣的話可以讀一下原文。
-
編碼器
+關(guān)注
關(guān)注
45文章
3953瀏覽量
142647 -
寄存器
+關(guān)注
關(guān)注
31文章
5608瀏覽量
129998 -
二進(jìn)制
+關(guān)注
關(guān)注
2文章
809瀏覽量
43036 -
FIFO存儲
+關(guān)注
關(guān)注
0文章
103瀏覽量
6320 -
組合邏輯電路
+關(guān)注
關(guān)注
6文章
71瀏覽量
15120
發(fā)布評論請先 登錄
用FPGA芯片實(shí)現(xiàn)高速異步FIFO的一種方法
基于FPGA的異步FIFO的實(shí)現(xiàn)
關(guān)于異步fifo的安全問題:
請問怎樣去設(shè)計(jì)一種異步FIFO?
異步FIFO結(jié)構(gòu)及FPGA設(shè)計(jì)
一種異步FIFO的設(shè)計(jì)方法
異步FIFO結(jié)構(gòu)及FPGA設(shè)計(jì)
基于FPGA的異步FIFO設(shè)計(jì)方法詳解
基于異步FIFO結(jié)構(gòu)原理
關(guān)于一種面向異步FIFO的低開銷容錯(cuò)機(jī)制研究
一種基于FPGA內(nèi)部存儲器的適合音頻解嵌的高效異步FIFO設(shè)計(jì)
同步FIFO和異步FIFO的區(qū)別 同步FIFO和異步FIFO各在什么情況下應(yīng)用
請問異步FIFO的溢出操作時(shí)怎么樣判斷的?
同步FIFO和異步FIFO區(qū)別介紹
關(guān)于另外一種設(shè)計(jì)異步FIFO的簡介
評論