色偷偷偷久久伊人大杳蕉,色爽交视频免费观看,欧美扒开腿做爽爽爽a片,欧美孕交alscan巨交xxx,日日碰狠狠躁久久躁蜜桃

x
x

FPGA異步FIFO設(shè)計(jì)中的問題與解決辦法

發(fā)布時(shí)間:2010-1-16 15:47    發(fā)布者:李寬
關(guān)鍵詞: FIFO , FPGA , 辦法 , 設(shè)計(jì) , 異步
隨著數(shù)字電子系統(tǒng)設(shè)計(jì)規(guī)模的擴(kuò)大,一些實(shí)際應(yīng)用系統(tǒng)中往往含有多個(gè)時(shí)鐘,數(shù)據(jù)不可避免地要在不同的時(shí)鐘域之間傳遞。如何在異步時(shí)鐘之間傳輸數(shù)據(jù),是數(shù)據(jù)傳輸中一個(gè)至關(guān)重要的問題,而采用FIFO正是解決這一問題的有效方法。異步FIFO是一種在電子系統(tǒng)中得到廣泛應(yīng)用的器件,多數(shù)情況下它都是以一個(gè)獨(dú)立芯片的方式在系統(tǒng)中應(yīng)用。本文介紹一種充分利用FPGA內(nèi)部的RAM資源,在FPGA內(nèi)部實(shí)現(xiàn)異步FIFO模塊的設(shè)計(jì)方法。這種異步FIFO比外部 FIFO 芯片更能提高系統(tǒng)的穩(wěn)定性。

1 FIFO的基本結(jié)構(gòu)和工作原理

FIFO(First In First Out)是一種采用環(huán)形存儲(chǔ)結(jié)構(gòu)的先進(jìn)先出存儲(chǔ)器。其使用一個(gè)雙端口存儲(chǔ)器存放數(shù)據(jù),數(shù)據(jù)發(fā)送方在一端寫入數(shù)據(jù),接收方在另一端讀出數(shù)據(jù),能夠協(xié)調(diào)好兩個(gè)時(shí)鐘域的工作,滿足高時(shí)鐘頻率的要求。FIFO在FPGA設(shè)計(jì)中主要用來緩沖數(shù)據(jù)和隔離時(shí)鐘或相位差異。訪問FIFO時(shí)不需要地址線,只需要數(shù)據(jù)線和讀寫控制信號(hào)線,且數(shù)據(jù)地址由內(nèi)部讀寫指針自動(dòng)加1完成,因此利用FIFO實(shí)現(xiàn)數(shù)據(jù)的緩存具有接口簡(jiǎn)單、讀寫方便的優(yōu)點(diǎn)。

根據(jù)FIFO的工作時(shí)鐘,可將FIFO分為同步FIFO和異步FIFO。同步FIFO是指讀時(shí)鐘和寫時(shí)鐘為同一個(gè)時(shí)鐘,在時(shí)鐘沿來臨時(shí)同時(shí)進(jìn)行讀寫操作;異步FIFO是指讀寫時(shí)鐘不是同一個(gè)時(shí)鐘,而是相互獨(dú)立的。實(shí)際上,工作在同一時(shí)鐘的FIFO很少用到,多數(shù)都是讀寫時(shí)鐘獨(dú)立的異步FIFO。本文設(shè)計(jì)的異步FIFO位寬為8,深度(即FIFO可以存儲(chǔ)8位數(shù)據(jù)的個(gè)數(shù))為1 024。異步FIFO的結(jié)構(gòu)如圖1所示。



雙端口RAM存儲(chǔ)器具有獨(dú)立的讀寫端口。如果用一個(gè)單端口RAM存儲(chǔ)器實(shí)現(xiàn)異步FIFO,還應(yīng)該包含一個(gè)仲裁器來保證同一時(shí)刻只能有一種操作(讀或?qū)懖僮?。本文選擇的雙端口RAM并不一定是真正的雙端口,只要有獨(dú)立的讀寫端口即可。讀寫控制邏輯由加法計(jì)數(shù)器構(gòu)成,實(shí)現(xiàn)讀寫地址的自動(dòng)加1功能?眨瘽M標(biāo)志位的產(chǎn)生邏輯給系統(tǒng)提供空(empty)和滿(full)信號(hào)。

2 異步FIFO設(shè)計(jì)中的問題與解決辦法

2.1 亞穩(wěn)態(tài)問題

在含有觸發(fā)器的電路中往往會(huì)出現(xiàn)亞穩(wěn)態(tài)問題。亞穩(wěn)態(tài)會(huì)使異步FIFO的讀寫地址發(fā)生錯(cuò)誤,產(chǎn)生誤讀或者誤寫。為此異步FIFO設(shè)計(jì)中亞穩(wěn)態(tài)問題也是一個(gè)比較重要的問題。亞穩(wěn)態(tài)不可能完全消除,只能使其出現(xiàn)的概率降到最低。主要有2種方法來降低亞穩(wěn)態(tài)出現(xiàn)的概率:

①采用觸發(fā)器冗余方式。即采用多個(gè)觸發(fā)器級(jí)聯(lián)的方式,使本來出現(xiàn)概率為P的亞穩(wěn)態(tài),其出現(xiàn)概率降低到P2,但這種方式會(huì)導(dǎo)致延時(shí)增加。

②使用格雷碼。格雷碼的相臨碼元之間只有一位發(fā)生變化,這就大大地降低了亞穩(wěn)態(tài)出現(xiàn)的概率。本文采用格雷碼方式。

2.2 空/滿標(biāo)志位的判斷

為保證數(shù)據(jù)的正確寫入和讀出,不發(fā)生寫滿和讀空操作,怎樣判斷空/滿標(biāo)志位的產(chǎn)生就成為異步FIFO設(shè)計(jì)的核心問題。異步FIFO是環(huán)形存儲(chǔ)的,當(dāng)讀寫地址指針相等時(shí),意味著空標(biāo)志位或者滿標(biāo)志位的產(chǎn)生。但是卻不能確定是寫滿還是讀空狀態(tài)。為解決這一問題,本文將轉(zhuǎn)換為格雷碼后的讀寫地址指針分別經(jīng)過檢測(cè)和計(jì)數(shù)器。每當(dāng)讀寫指針遍歷一圈(當(dāng)讀寫地址指針指向雙端口RAM的最后一個(gè)地址)時(shí),寫計(jì)數(shù)i加1,讀計(jì)數(shù)j加1。這樣寫滿狀態(tài)和讀空狀態(tài)的判斷就需要同時(shí)滿足兩個(gè)條件。下面分別給出寫滿和讀空狀態(tài)的判斷。

①寫滿狀態(tài)的判別:當(dāng)讀地址指針等于寫地址指針,并且i>j時(shí),產(chǎn)生滿標(biāo)志。

②讀空狀態(tài)的判別:當(dāng)寫地址指針等于讀地址指針,并且i=j時(shí),產(chǎn)生空標(biāo)志。

由于空/滿標(biāo)志位產(chǎn)生的結(jié)構(gòu)圖對(duì)稱,故本文只給出滿標(biāo)志位產(chǎn)生的結(jié)構(gòu)圖,如圖2所示。其中,主數(shù)i為寫地址指針遍歷的圈數(shù),計(jì)數(shù)j為讀地址指針遍歷的圈數(shù)。



從圖2中可看出,地址指針轉(zhuǎn)換為格雷碼后,經(jīng)過檢測(cè)和計(jì)數(shù)環(huán)節(jié),將讀寫地址和讀寫指針遍歷的圈數(shù)分別送入比較器進(jìn)行比較,從而準(zhǔn)確地產(chǎn)生滿標(biāo)志位。

3 FPGA內(nèi)部軟異步FIFO設(shè)計(jì)

本設(shè)計(jì)中FPGA采用的是Xilinx Spartan3系列中的XC3S400PQ208。內(nèi)部有56 Kb的分布式RAM和288 Kb的RAM,以及4個(gè)DCM(數(shù)字時(shí)鐘管理器)單元,為系統(tǒng)提供獨(dú)立的讀寫時(shí)鐘頻率?梢岳眠@些資源在FPGA內(nèi)部實(shí)現(xiàn)異步FIFO模塊。本文采用 VHDL語言對(duì)雙端口RAM的讀寫操作進(jìn)行編程,實(shí)現(xiàn)FPGA內(nèi)部軟FIFO的設(shè)計(jì)。部分讀寫雙端口RAM和空/滿標(biāo)志位的判斷源程序如下:





4 系統(tǒng)仿真

如果系統(tǒng)的讀時(shí)鐘頻率大于寫時(shí)鐘頻率,就有可能出現(xiàn)讀空的情況;如果系統(tǒng)的寫時(shí)鐘頻率大于讀時(shí)鐘頻率,就可能出現(xiàn)寫滿的情況。在實(shí)際系統(tǒng)中,一般都設(shè)置寫時(shí)鐘頻率大于讀時(shí)鐘頻率,故本文只考慮后一種情況。

本系統(tǒng)采用QuartusIl8.1對(duì)系統(tǒng)進(jìn)行仿真,由于系統(tǒng)深度較大,所以設(shè)定仿真時(shí)間為100 μs。系統(tǒng)剛上電時(shí),雙端口RAM中暫時(shí)沒有數(shù)據(jù),此時(shí)系統(tǒng)處于讀空狀態(tài),empty變?yōu)楦唠娖,full保持低電平,如圖3所示。隨著RAM中數(shù)據(jù)的不斷寫入,系統(tǒng)進(jìn)入寫滿狀態(tài),此時(shí)full變?yōu)楦唠娖,而empty變?yōu)榈碗娖,如圖4所示。





結(jié) 語

本文根據(jù)異步FIFO設(shè)計(jì)的難點(diǎn)和要點(diǎn),提出了具體的解決方案。在空/滿標(biāo)志位產(chǎn)生條件的判斷上提出了“檢測(cè)+計(jì)數(shù)器”的新思路,使系統(tǒng)設(shè)計(jì)方便實(shí)用,并采用格雷碼方式降低了亞穩(wěn)態(tài)出現(xiàn)的概率。通過驗(yàn)證,這種方法在有效判斷空/滿標(biāo)志位方面有很大的優(yōu)勢(shì)。

參考文獻(xiàn)

1. 雷海衛(wèi),劉俊.FPGA中軟FIFO的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2008,24(2):207-209.
2. 于海,樊曉椏.基于FPGA異步FIFO的研究與實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2007,24(3):210-216.
3. 楊軍,孔兵,宋克儉,等.基于FPGA的高速異步FIFO存儲(chǔ)器設(shè)計(jì)[J].云南大學(xué)學(xué)報(bào):自然科學(xué)版,2007,29(6):560-565.
4. 潘松,黃繼業(yè).EDA技術(shù)使用教程[M],北京:科學(xué)出版社,2007.

作者:謝文華 高文華 太原科技大學(xué) ) 來源:《單片機(jī)嵌入式系統(tǒng)應(yīng)用》 2009(8)
本文地址:http://www.54549.cn/thread-7739-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

相關(guān)在線工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表