當前位置:首頁 > EDA > 電子設(shè)計自動化
[導(dǎo)讀] 隨著數(shù)字電子系統(tǒng)設(shè)計規(guī)模的擴大,一些實際應(yīng)用系統(tǒng)中往往含有多個時鐘,數(shù)據(jù)不可避免地要在不同的時鐘域之間傳遞。如何在異步時鐘之間傳輸數(shù)據(jù),是數(shù)據(jù)傳輸中一個至關(guān)重要的問題,而采用FIFO正是解決這一問題的

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

1 FIFO的基本結(jié)構(gòu)和工作原理
    FIFO(First In First Out)是一種采用環(huán)形存儲結(jié)構(gòu)的先進先出存儲器。其使用一個雙端口存儲器存放數(shù)據(jù),數(shù)據(jù)發(fā)送方在一端寫入數(shù)據(jù),接收方在另一端讀出數(shù)據(jù),能夠協(xié)調(diào)好兩個時鐘域的工作,滿足高時鐘頻率的要求。FIFO在FPGA設(shè)計中主要用來緩沖數(shù)據(jù)和隔離時鐘或相位差異。訪問FIFO時不需要地址線,只需要數(shù)據(jù)線和讀寫控制信號線,且數(shù)據(jù)地址由內(nèi)部讀寫指針自動加1完成,因此利用FIFO實現(xiàn)數(shù)據(jù)的緩存具有接口簡單、讀寫方便的優(yōu)點。
    根據(jù)FIFO的工作時鐘,可將FIFO分為同步FIFO和異步FIFO。同步FIFO是指讀時鐘和寫時鐘為同一個時鐘,在時鐘沿來臨時同時進行讀寫操作;異步FIFO是指讀寫時鐘不是同一個時鐘,而是相互獨立的。實際上,工作在同一時鐘的FIFO很少用到,多數(shù)都是讀寫時鐘獨立的異步FIFO。本文設(shè)計的異步FIFO位寬為8,深度(即FIFO可以存儲8位數(shù)據(jù)的個數(shù))為1 024。異步FIFO的結(jié)構(gòu)如圖1所示。

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

2 異步FIFO設(shè)計中的問題與解決辦法
2.1 亞穩(wěn)態(tài)問題
    在含有觸發(fā)器的電路中往往會出現(xiàn)亞穩(wěn)態(tài)問題。亞穩(wěn)態(tài)會使異步FIFO的讀寫地址發(fā)生錯誤,產(chǎn)生誤讀或者誤寫。為此異步FIFO設(shè)計中亞穩(wěn)態(tài)問題也是一個比較重要的問題。亞穩(wěn)態(tài)不可能完全消除,只能使其出現(xiàn)的概率降到最低。主要有2種方法來降低亞穩(wěn)態(tài)出現(xiàn)的概率:
    ①采用觸發(fā)器冗余方式。即采用多個觸發(fā)器級聯(lián)的方式,使本來出現(xiàn)概率為P的亞穩(wěn)態(tài),其出現(xiàn)概率降低到P2,但這種方式會導(dǎo)致延時增加。
    ②使用格雷碼。格雷碼的相臨碼元之間只有一位發(fā)生變化,這就大大地降低了亞穩(wěn)態(tài)出現(xiàn)的概率。本文采用格雷碼方式。
2.2 空/滿標志位的判斷
    為保證數(shù)據(jù)的正確寫入和讀出,不發(fā)生寫滿和讀空操作,怎樣判斷空/滿標志位的產(chǎn)生就成為異步FIFO設(shè)計的核心問題。異步FIFO是環(huán)形存儲的,當讀寫地址指針相等時,意味著空標志位或者滿標志位的產(chǎn)生。但是卻不能確定是寫滿還是讀空狀態(tài)。為解決這一問題,本文將轉(zhuǎn)換為格雷碼后的讀寫地址指針分別經(jīng)過檢測和計數(shù)器。每當讀寫指針遍歷一圈(當讀寫地址指針指向雙端口RAM的最后一個地址)時,寫計數(shù)i加1,讀計數(shù)j加1。這樣寫滿狀態(tài)和讀空狀態(tài)的判斷就需要同時滿足兩個條件。下面分別給出寫滿和讀空狀態(tài)的判斷。
    ①寫滿狀態(tài)的判別:當讀地址指針等于寫地址指針,并且i>j時,產(chǎn)生滿標志。
    ②讀空狀態(tài)的判別:當寫地址指針等于讀地址指針,并且i=j時,產(chǎn)生空標志。
    由于空/滿標志位產(chǎn)生的結(jié)構(gòu)圖對稱,故本文只給出滿標志位產(chǎn)生的結(jié)構(gòu)圖,如圖2所示。其中,主數(shù)i為寫地址指針遍歷的圈數(shù),計數(shù)j為讀地址指針遍歷的圈數(shù)。

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

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

4 系統(tǒng)仿真
    如果系統(tǒng)的讀時鐘頻率大于寫時鐘頻率,就有可能出現(xiàn)讀空的情況;如果系統(tǒng)的寫時鐘頻率大于讀時鐘頻率,就可能出現(xiàn)寫滿的情況。在實際系統(tǒng)中,一般都設(shè)置寫時鐘頻率大于讀時鐘頻率,故本文只考慮后一種情況。
    本系統(tǒng)采用QuartusIl8.1對系統(tǒng)進行仿真,由于系統(tǒng)深度較大,所以設(shè)定仿真時間為100 μs。系統(tǒng)剛上電時,雙端口RAM中暫時沒有數(shù)據(jù),此時系統(tǒng)處于讀空狀態(tài),empty變?yōu)楦唠娖?,full保持低電平,如圖3所示。隨著RAM中數(shù)據(jù)的不斷寫入,系統(tǒng)進入寫滿狀態(tài),此時full變?yōu)楦唠娖?,而empty變?yōu)榈碗娖剑鐖D4所示。

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

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉