《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 異步FIFO設(shè)計(jì)
異步FIFO設(shè)計(jì)
摘要: 異步FIFO設(shè)計(jì)_電子技術(shù)交流網(wǎng)本文介紹如何應(yīng)用美國(guó)QUICKLOGIC公司的QUICKRAM器件設(shè)計(jì)高速、高可靠異步FIFO(Asynchronous FIFO)。
關(guān)鍵詞: 接口IC 異步 FIFO QUICKRAM
Abstract:
Key words :

    異步FIFO廣泛地用于計(jì)算機(jī)網(wǎng)絡(luò)工業(yè)中進(jìn)行非同步數(shù)據(jù)傳送,這里的非同步指按一種速率發(fā)送而按另一速率接收。因此異步FIFO有兩個(gè)不同的時(shí)鐘,一個(gè)為讀同步時(shí)鐘,一個(gè)為寫同步時(shí)鐘。

    當(dāng)數(shù)據(jù)從一個(gè)時(shí)鐘驅(qū)動(dòng)的模塊進(jìn)入另一個(gè)時(shí)鐘驅(qū)動(dòng)的模塊時(shí),一個(gè)需仔細(xì)解決的問(wèn)題就出現(xiàn)了。例如當(dāng)寫時(shí)鐘比讀時(shí)鐘快時(shí),未讀走數(shù)據(jù)有可能被新數(shù)據(jù)覆蓋,因而導(dǎo)致數(shù)據(jù)丟失。為了解決這個(gè)問(wèn)題,就必須增加一些控制信號(hào)和狀態(tài)信號(hào),控制信號(hào)如pusb、pop,狀態(tài)信號(hào)如empty,almostempty,full,almost-full。

功能描述

    典型的異步FIFO(AsynFIFO)都是由異步雙端口RAM和控制邏輯構(gòu)成,控制邏輯包含讀指針和寫指針。

    當(dāng)FIFO中有數(shù)據(jù)而非空時(shí),POP信號(hào)(同步于讀時(shí)鐘)用于控制數(shù)據(jù)的讀出,所讀數(shù)據(jù)來(lái)自讀指針?biāo)傅模ˋUAL PORT RAM)中的存儲(chǔ)單元,并且讀指針加一。當(dāng)讀指針趕上寫指針時(shí),F(xiàn)IFO為空并且用empty信號(hào)(同步于讀時(shí)鐘)來(lái)指示這種情況。

    當(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í)鐘)來(lái)指示這種情況。

    當(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)部比較器的輸出來(lá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免費(fèi)提供全部設(shè)計(jì)文件),并給出了各相模塊的設(shè)計(jì)文件名。圖中各模塊可根據(jù)要求修改,以增加FIFO的寬度和深度。請(qǐng)注意,本文圖中沒(méi)有給出讀側(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。

比較器

    參考設(shè)計(jì)中的比較器為5位,采用純?cè)韴D方法輸入。當(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語(yǔ)言實(shí)現(xiàn)。它們可以被改成6位、7位、8位、9位,以對(duì)應(yīng)深度為64、128、256、512的FIFO。

鎖存器

    圖中的鎖存器為verilog/VHDL語(yǔ)言所寫,讀側(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é)論

    采用QuickRAM器件實(shí)現(xiàn)異步FIFO方便靈活,并且速度快,成本低,還可以實(shí)現(xiàn)非常規(guī)深度和寬度的專用FIFO。


 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 三上悠亚破解版| 亚洲欧美日韩综合俺去了| 欧洲一级毛片免费| 奇米影视国产精品四色| 久久精品人人槡人妻人人玩AV| 熟妇激情内射com| 国产zzjjzzjj视频全免费| 一级特黄录像免费播放肥| 好吊妞视频在线观看| 久久久国产精品亚洲一区| 男女一边摸一边做爽爽爽视频| 国产亚洲精品美女久久久久| 18男同少爷ktv飞机视频| 女神捕电影高清在线观看| 久久免费看视频| 欧美中文在线观看| 亚洲综合一区无码精品| 美国十次啦导航网| 国产国产人免费人成免费视频 | 樱花草在线社区www| 人人妻人人狠人人爽| 美日韩在线观看| 国产国产精品人在线视| 桃花阁成人网在线观看| 夜夜揉揉日日人人青青| 中文字幕乱码人妻综合二区三区| 日韩电影中文字幕在线网站 | 亚洲福利视频网站| 精品久久久久久无码免费| 国产乱子伦精品免费无码专区| 欧美色图第三页| 国产精品爽爽va在线观看无码| eeuss影院www天堂免费| 性一交一乱一伦一| 久久99精品国产麻豆不卡| 日韩欧美中文字幕在线视频| 亚洲伊人精品综合在合线| 欧美牲交VIDEOSSEXESO欧美| 交换交换乱杂烩系列yy| 粉嫩大学生无套内射无码卡视频 | 67194老司机精品午夜|