當(dāng)前位置:首頁 > 測(cè)試測(cè)量 > 測(cè)試測(cè)量
[導(dǎo)讀]摘要 針對(duì)Altera公司SOPC解決方案中,DMA模塊無法直接讀/寫FPGA外設(shè)的情況,提出了基于Avalon總線流傳輸模式的通用DMA讀/寫控制模塊的設(shè)計(jì),設(shè)計(jì)了兩個(gè)自定義外設(shè),實(shí)現(xiàn)了DMA對(duì)FPGA外設(shè)的高速數(shù)據(jù)存取和Nios II與F

摘要 針對(duì)Altera公司SOPC解決方案中,DMA模塊無法直接讀/寫FPGA外設(shè)的情況,提出了基于Avalon總線流傳輸模式的通用DMA讀/寫控制模塊的設(shè)計(jì),設(shè)計(jì)了兩個(gè)自定義外設(shè),實(shí)現(xiàn)了DMA對(duì)FPGA外設(shè)的高速數(shù)據(jù)存取和Nios II與FPGA大批量數(shù)據(jù)的快速傳輸。介紹了Avalon—MM總線規(guī)范,闡述了系統(tǒng)架構(gòu)以及DMA讀控制器的設(shè)計(jì),測(cè)試結(jié)果表明,該方法是一種高效可行的解決方案。
關(guān)鍵詞 SOPC;Nios II;DMA;Avalon總線

    DMA控制器作為SOPC設(shè)計(jì)中使用頻率較高的IP核,可用于存儲(chǔ)器或外設(shè)間進(jìn)行批量數(shù)據(jù)傳輸,以提高系統(tǒng)數(shù)據(jù)吞吐量。然而,由于DMA控制器只支持對(duì)基于Avalon總線流傳輸模式的外設(shè)進(jìn)行數(shù)據(jù)傳輸操作,對(duì)用戶自定義外設(shè)不予支持。文中提出了一種基于Avalon總線流傳輸模式的通用DMA接口控制器設(shè)計(jì),實(shí)現(xiàn)了NiosⅡ與FPGA的大批量數(shù)據(jù)快速傳輸,顯著提高了系統(tǒng)的數(shù)據(jù)吞吐量。

1 Avalon—MM總線規(guī)范
   
Avalon總線規(guī)范是為開發(fā)SOPC環(huán)境下外設(shè)而設(shè)計(jì)的,為SOPC設(shè)計(jì)者描述這些外設(shè)的端口提供了基礎(chǔ)。Avalon總線有多種傳輸模式,其中,流傳輸模式為從端口提供了一種機(jī)制,用于控制來自主端口的傳輸,流傳輸模式的這些特點(diǎn)使其特別適合于DMA傳輸。
    流模式從端口傳輸模式的信號(hào),除了在從端口傳輸中使用的信號(hào)之外,又引入了3個(gè)信號(hào):readyfordata、dataavailable和endofpack et。其中,從端口通過設(shè)置Readyfordata有效來表示它已經(jīng)準(zhǔn)備好接收來自Avalon總線模塊的寫傳輸;使readyfordata無效表示寫操作將引起數(shù)據(jù)上溢;從端口通過設(shè)置dataavailable有效來表示它已經(jīng)能夠?yàn)閬碜訟valon總線模塊的讀傳輸提供數(shù)據(jù),dataavailable無效時(shí)讀操作將引起數(shù)據(jù)下溢;在任何傳輸期間,流模式從端口都可以設(shè)置endofpacket信號(hào)有效,并通過Avalon總線模式傳輸給主端口。對(duì)于endofpack et信號(hào)的解釋取決于用戶設(shè)計(jì),必須明確外設(shè)如何響應(yīng)endofpacket信號(hào)的變化。

2 系統(tǒng)結(jié)構(gòu)
   
提出的NiosⅡ與外設(shè)進(jìn)行大批量數(shù)據(jù)傳輸?shù)慕Y(jié)構(gòu)如圖1所示,當(dāng)NiosⅡ需要從外設(shè)讀入數(shù)據(jù)時(shí),外設(shè)通過FIFO接口將數(shù)據(jù)寫入DMA讀控制模塊,然后數(shù)據(jù)經(jīng)DMA傳輸至NiosⅡ,反之,當(dāng)NiosⅡ輸出數(shù)據(jù)時(shí),數(shù)據(jù)通過DMA傳輸至DMA寫控制模塊,F(xiàn)PGA邏輯通過FIFO接口從這個(gè)模塊讀取數(shù)據(jù)。DMA讀/寫控制模塊的設(shè)計(jì),是為了解決SOPC中DMA模塊與FPGA片上FIFO不同接口間的數(shù)據(jù)傳輸問題,而在SOPC中,DMA模塊使用的是支持流傳輸模式的Avalon—MM總線。DMA讀/寫控制模塊主要完成兩個(gè)功能:一是FIFO與DMA主端口之間的數(shù)據(jù)交互;二是作為一個(gè)NiosⅡ的外設(shè),NiosⅡ處理器能夠?qū)Υ送庠O(shè)進(jìn)行控制并能隨時(shí)獲取該外設(shè)的狀態(tài)信息。



3 DMA讀/寫控制模塊的設(shè)計(jì)
   
DMA讀/寫控制模塊作為系統(tǒng)結(jié)構(gòu)的核心,其結(jié)構(gòu)框圖如圖2所示。此模塊包括兩個(gè)Avalon—MM從端口:一個(gè)作為DMA從端口,用于處理DMA對(duì)此模塊的數(shù)據(jù)讀操作;另一個(gè)Avalon—MM從端口是NiosⅡ的控制從端口,用于NiosⅡ處理器對(duì)這個(gè)模塊進(jìn)行控制并且隨時(shí)獲取此模塊的狀態(tài)信息。模塊還包括一個(gè)中斷請(qǐng)求信號(hào)(IRQ),當(dāng)外設(shè)有數(shù)據(jù)需要讀取時(shí),可以使這個(gè)信號(hào)有效,從而通知NiosⅡ發(fā)起DMA讀傳輸。另外,DMA讀控制模塊中還例化了一片F(xiàn)PGA片上FIFO作為數(shù)據(jù)上傳FIFO,用于系統(tǒng)待上傳數(shù)據(jù)的暫存。使用FIFO可以提高數(shù)據(jù)傳輸?shù)耐掏铝?,同時(shí)簡(jiǎn)化FPGA硬件邏輯的操作,圖2中的管道(Conduit)端口就是FPGA硬件邏輯操作FIFO的接口。


    對(duì)于與NiosⅡ處理器交互的Avalon—MM從端口,從NiosⅡ處理器的角度看,這個(gè)端口是一些寄存器的映射,即NiosⅡ?qū)υ撃K的操作,是通過對(duì)模塊內(nèi)部的寄存器的操作完成的。根據(jù)功能需隸,DMA讀控制模塊中設(shè)計(jì)了3個(gè)寄存器,即狀態(tài)寄存器status,控制字寄存器control和FIFO中已有數(shù)據(jù)個(gè)數(shù)寄存器usedw。
    DMA讀控制模塊的中斷請(qǐng)求應(yīng)當(dāng)在兩種情況下產(chǎn)生:一是此模塊的數(shù)據(jù)源端將FIFO寫滿且外設(shè)中斷使能有效;二是此模塊的數(shù)據(jù)源端置數(shù)據(jù)包結(jié)束標(biāo)志且外設(shè)中斷使能有效。
    對(duì)于DMA從端口,使用的是帶流控制信號(hào)的Avalon總線,DMA使用流控制信號(hào)中的dataavailable以及endofpacket兩個(gè)總線信號(hào)。其中dataavailable表示外設(shè)是否準(zhǔn)備好讀操作,即FIFO是否非空;對(duì)于endofpacket信號(hào),設(shè)計(jì)中使用這個(gè)信號(hào)來表示模塊中數(shù)據(jù)包的結(jié)束,endofpacket信號(hào)與最后一個(gè)數(shù)據(jù)同時(shí)出現(xiàn)并持續(xù)1個(gè)時(shí)鐘周期,DMA檢測(cè)到endofpacket信號(hào)有效后將停止DMA傳輸。對(duì)于管道端口,這是最新的Avalon總線規(guī)范定義的接口形式,主要用于外設(shè)和外部邏輯進(jìn)行交互。


    DMA讀控制模塊作為一個(gè)用戶自定義外設(shè),在將其添加到SOPC Builder外設(shè)庫后,就可以在SOPCBuilder中調(diào)用此外設(shè),圖3表示了SOPC Builder中該外設(shè)與DMA的連接,圖中fifo_control_0即為DMA讀控制模塊,可以看出,這個(gè)外設(shè)包含了兩個(gè)Avalon—MM端口,其中一個(gè)連接至DMA控制器模塊dma_0,而且SOPC Builder為這個(gè)外設(shè)分配了基地址和中斷優(yōu)先級(jí)。

4 測(cè)試驗(yàn)證
   
DMA讀控制模塊測(cè)試時(shí),F(xiàn)PGA內(nèi)部產(chǎn)生數(shù)據(jù)源并通過外設(shè)管道接口把數(shù)據(jù)寫入FIFO,外設(shè)中斷時(shí),DMA讀取外設(shè)中的數(shù)據(jù)。測(cè)試時(shí)使用QuartusⅡ自帶的SignalTapⅡ嵌入式邏輯分析儀進(jìn)行測(cè)試,觀察相應(yīng)信號(hào)的波形。本測(cè)試的觸發(fā)條件為signaltap_read上升沿觸發(fā),F(xiàn)IFO深度為1 024,F(xiàn)IFO數(shù)據(jù)寬度為16位,數(shù)據(jù)源為2~513共512個(gè)計(jì)數(shù)值,在Nios II的軟件中讀取600個(gè)數(shù)據(jù),測(cè)試結(jié)果如圖4所示。


    圖4對(duì)應(yīng)3幅圖像,圖4(a)表示DMA讀取外設(shè)的測(cè)試數(shù)據(jù)的全局視圖,后面兩幅為局部放大結(jié)果,其中圖4(b)是測(cè)試數(shù)據(jù)的開始段,圖4(c)是測(cè)試數(shù)據(jù)的結(jié)束段。如圖4(b)所示,在第一個(gè)時(shí)鐘周期,DMA的讀信號(hào)有效,在之后的第二個(gè)時(shí)鐘周期,F(xiàn)IFO的數(shù)據(jù)總線出現(xiàn)數(shù)據(jù)2,之后是3,4,…,從圖4(c)可以看出,最后一個(gè)數(shù)據(jù)是513,且DMA讀取外設(shè)512個(gè)數(shù)據(jù),只花費(fèi)了約776個(gè)時(shí)鐘周期,這充分顯示了DMA高速的數(shù)據(jù)傳輸能力。
    對(duì)于調(diào)試模式下Nios II IDE的輸出結(jié)果,如圖5所示。由于測(cè)試數(shù)據(jù)太長,這里只給出測(cè)試數(shù)據(jù)的首部及尾部。圖5(a)為測(cè)試數(shù)據(jù)的首部,使用printf()函數(shù)輸出,第一個(gè)數(shù)據(jù)為2,接著是2,3,…,從圖5(b)可看出最后一個(gè)有效數(shù)據(jù)是513,從512起的數(shù)據(jù)為0,這是數(shù)組的初始值,這與圖4相對(duì)應(yīng)。


    DMA寫控制模塊測(cè)試時(shí),置FIFO數(shù)據(jù)寬度為16,NiosⅡ控制端口數(shù)據(jù)總線寬度為16,F(xiàn)IFO深度為2 048,在NiosⅡ軟件中設(shè)置一個(gè)長度為2 048的數(shù)組,數(shù)組數(shù)據(jù)寬度為16位,初始化時(shí)把數(shù)據(jù)賦值為1~2 048的計(jì)數(shù)值,然后發(fā)起DMA寫傳輸,把數(shù)據(jù)寫入到DMA寫控制模塊中,在FPGA再用硬件語言讀此外設(shè)中FIFO數(shù)據(jù)并在SignalTapⅡ中顯示,其測(cè)試結(jié)果如圖6所示。


    圖6中,fifo_rd表示FPGA中硬件邏輯讀取DMA寫控制模塊的讀信號(hào),fifo_readdata是外設(shè)中FIFO的數(shù)據(jù)總線信號(hào),sigtap_test信號(hào)連接至外設(shè)中FIFO滿、FIFO空以及waitrequest信號(hào)(LSB),圖6(a)表示了外部邏輯讀取外設(shè)中FIFO的數(shù)據(jù)起始段,在讀信號(hào)有效之前,sigtap_ test[2]信號(hào)是高電平,表示FIFO滿,sigtap_test[0]為高,表示外設(shè)此刻不能響應(yīng)DMA寫入的數(shù)據(jù),然后FPGA外部邏輯在檢測(cè)到FIFO滿后開始讀取數(shù)據(jù),在下一個(gè)時(shí)鐘周期,F(xiàn)IFO數(shù)據(jù)總線上出現(xiàn)有效數(shù)據(jù)。圖6(b)是讀取FIFO時(shí)數(shù)據(jù)的結(jié)束段,最后一個(gè)數(shù)據(jù)為2 048,讀取后,sig tap_test[1]為高電平,表示數(shù)據(jù)讀空,這與NiesⅡ中軟件寫入DMA從而寫入DMA寫控制模塊的數(shù)據(jù)是一致的,由此驗(yàn)證了模塊設(shè)計(jì)的正確性。

5 結(jié)束語
   
設(shè)計(jì)方案穩(wěn)定可靠、傳輸速度高,具有一定的通用性,能滿足NiosⅡ與外設(shè)之間的大批量數(shù)據(jù)傳輸,具有廣泛的應(yīng)用前景,同時(shí),使用了FIFO作為緩存,進(jìn)一步提高了數(shù)據(jù)吞吐量,具有較強(qiáng)的實(shí)用價(jià)值。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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