異步FIFO的設(shè)計(jì)與實(shí)現(xiàn)
出處:電子產(chǎn)品世界 發(fā)布于:2011-06-23 18:17:26
FIFO是英文First In First Out 的縮寫,是一種先進(jìn)先出的數(shù)據(jù)緩存器,他與普通存儲(chǔ)器的區(qū)別是沒有外部讀寫地址線,這樣使用起來非常簡(jiǎn)單,但缺點(diǎn)就是只能順序?qū)懭霐?shù)據(jù),順序的讀出數(shù)據(jù),其數(shù)據(jù)地址由內(nèi)部讀寫指針自動(dòng)加1完成,不能像普通存儲(chǔ)器那樣可以由地址線決定讀取或?qū)懭肽硞€(gè)指定的地址。
當(dāng)數(shù)據(jù)從一個(gè)時(shí)鐘驅(qū)動(dòng)的模塊進(jìn)入另一個(gè)時(shí)鐘驅(qū)動(dòng)的模塊時(shí),未讀走數(shù)據(jù)有可能被新數(shù)據(jù)覆蓋,因而導(dǎo)致數(shù)據(jù)丟失。為了解決這個(gè)問題,就必須增加一些控制信號(hào)和狀態(tài)信號(hào),控制信號(hào)如pusb、pop,狀態(tài)信號(hào)。
功能描述
當(dāng)FIFO中有數(shù)據(jù)而非空時(shí),POP信號(hào)(同步于讀時(shí)鐘)用于控制數(shù)據(jù)的讀出,所讀數(shù)據(jù)來自讀指針?biāo)傅模ˋUAL PORT RAM)中的存儲(chǔ)單元,并且讀指針加一。當(dāng)讀指針趕上寫指針時(shí),F(xiàn)IFO為空并且用empty信號(hào)(同步于讀時(shí)鐘)來指示這種情況。
當(dāng)FIFO中有空間而非滿時(shí),PUSH信號(hào)(同步于寫時(shí)鐘)用于控制數(shù)據(jù)的寫入,所寫數(shù)據(jù)寫入寫指針?biāo)傅碾p端口RAM中的存儲(chǔ)單元,并且寫指針加一。當(dāng)寫指針趕上讀指針時(shí),F(xiàn)IFO為滿足并且用full信號(hào)(同步于寫時(shí)鐘)來指示這種情況。
當(dāng)FIFO中只剩不足三個(gè)數(shù)據(jù)時(shí),almost-empty有效(同步于讀時(shí)鐘)。類似地,當(dāng)FIFO中還有不足四個(gè)空位時(shí)almost-full將有效(同步于寫時(shí)鐘)。用戶可根據(jù)需要修改讀、寫側(cè)的計(jì)數(shù)器初始值,從而確定所需要的almost-empty和almost-full提前量。例如當(dāng)計(jì)數(shù)器初始化為7時(shí),almost-empty和almost-full將分別比empty和full提前7個(gè)位置。讀側(cè)和寫側(cè)的狀態(tài)機(jī)將根據(jù)內(nèi)部比較器的輸出來確定這些狀態(tài)信號(hào)。每側(cè)的狀態(tài)機(jī)都有兩上D觸發(fā)器,構(gòu)成雙同步,這樣的設(shè)計(jì)可大幅度提高系統(tǒng)的可靠性,使得平均元故障時(shí)間(MTBF)可大于100年。
結(jié)構(gòu)
圖1為AsynFIFO的頂層設(shè)計(jì)框圖(Quicklogic提供全部設(shè)計(jì)文件),并給出了各相模塊的設(shè)計(jì)文件名。圖中各模塊可根據(jù)要求修改,以增加FIFO的寬度和深度。請(qǐng)注意,本文圖中沒有給出讀側(cè)和寫側(cè)的狀態(tài)機(jī)。

RAM塊
圖1中用了一個(gè)64×32的RAM塊。該RAM塊由Verilog代碼定義,該代碼由SpDE內(nèi)的RAM/ROM/FIFO向?qū)ё詣?dòng)產(chǎn)生。在向?qū)е杏脩艨勺杂芍付ㄋ璧膶挾群蜕疃龋驅(qū)ё詣?dòng)產(chǎn)生所需的Verilog/VHDL代碼和原理圖中所需的symbol。
比較器
當(dāng)用戶修改了RAM塊的深度時(shí),比較器的寬度也要與之對(duì)應(yīng)。例如當(dāng)FIFO深度為256時(shí),地址須為8位,因而是比較器也應(yīng)為8位。
格雷碼計(jì)數(shù)器
為了提高M(jìn)TFB,設(shè)計(jì)中采用了格雷碼計(jì)數(shù)器,該計(jì)數(shù)器為5位,采用Verilog/VHDL語言實(shí)現(xiàn)。它們可以被改成6位、7位、8位、9位,以對(duì)應(yīng)深度為64、128、256、512的FIFO。
鎖存器
圖中的鎖存器為verilog/VHDL語言所寫,讀側(cè)有三個(gè),寫側(cè)有一個(gè),用戶可自由地修改其寬度。它們用于狀態(tài)、控制信號(hào)的產(chǎn)生。
性能
RARTS:QuickRAM family
AREA:48 buffer cells
Speed:write colck(WCLK)=136MHz,read clock(RCLK)=129MHz
結(jié)論
本文主要研究了用FPGA芯片實(shí)現(xiàn)異步FIFO的一種方法。詳細(xì)闡述了空,滿標(biāo)志信號(hào)的產(chǎn)生方法。按照以上思想所設(shè)計(jì)的異步FIFO已經(jīng)在實(shí)際電路中得到了應(yīng)用。實(shí)踐證明他可以解決大多數(shù)異步FIFO電路常見的錯(cuò)誤。同時(shí)增加了系統(tǒng)的可靠性和應(yīng)用靈活性。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 數(shù)字電源控制與傳統(tǒng)模擬控制的深度對(duì)比2026/2/2 11:06:56
- 模擬信號(hào)調(diào)理電路技術(shù)設(shè)計(jì)與選型運(yùn)維指南2025/12/30 10:08:16
- 運(yùn)算放大器壓擺率的核心要點(diǎn)2025/9/5 16:27:55
- 深度剖析放大器穩(wěn)定系數(shù) K 與 Mu 的差異2025/9/2 16:44:05
- 什么是運(yùn)算放大器失調(diào)電流2025/9/1 17:01:22
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測(cè)量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)
- 連接器結(jié)構(gòu)設(shè)計(jì)常見問題分析









