新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 基于DMA的大批量數據快速傳輸模塊設計

        基于DMA的大批量數據快速傳輸模塊設計

        作者: 時間:2013-05-14 來源:網絡 收藏

        對于與NiosⅡ處理器交互的Avalon—MM從端口,從NiosⅡ處理器的角度看,這個端口是一些寄存器的映射,即NiosⅡ對該模塊的操作,是通過對模塊內部的寄存器的操作完成的。根據功能需隸,讀控制模塊中設計了3個寄存器,即狀態寄存器status,控制字寄存器control和FIFO中已有個數寄存器usedw。
        讀控制模塊的中斷請求應當在兩種情況下產生:一是此模塊的源端將FIFO寫滿且外設中斷使能有效;二是此模塊的源端置數據包結束標志且外設中斷使能有效。
        對于從端口,使用的是帶流控制信號的Avalon總線,DMA使用流控制信號中的dataavailable以及endofpacket兩個總線信號。其中dataavailable表示外設是否準備好讀操作,即FIFO是否非空;對于endofpacket信號,設計中使用這個信號來表示模塊中數據包的結束,endofpacket信號與最后一個數據同時出現并持續1個時鐘周期,DMA檢測到endofpacket信號有效后將停止DMA傳輸。對于管道端口,這是最新的Avalon總線規范定義的接口形式,主要用于外設和外部邏輯進行交互。

        本文引用地址:http://www.104case.com/article/192791.htm

        c.JPG


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

        4 測試驗證
        DMA讀控制模塊測試時,FPGA內部產生數據源并通過外設管道接口把數據寫入FIFO,外設中斷時,DMA讀取外設中的數據。測試時使用QuartusⅡ自帶的SignalTapⅡ嵌入式邏輯分析儀進行測試,觀察相應信號的波形。本測試的觸發條件為signaltap_read上升沿觸發,FIFO深度為1 024,FIFO數據寬度為16位,數據源為2~513共512個計數值,在Nios II的軟件中讀取600個數據,測試結果如圖4所示。

        d.JPG


        圖4對應3幅圖像,圖4(a)表示DMA讀取外設的測試數據的全局視圖,后面兩幅為局部放大結果,其中圖4(b)是測試數據的開始段,圖4(c)是測試數據的結束段。如圖4(b)所示,在第一個時鐘周期,DMA的讀信號有效,在之后的第二個時鐘周期,FIFO的數據總線出現數據2,之后是3,4,…,從圖4(c)可以看出,最后一個數據是513,且DMA讀取外設512個數據,只花費了約776個時鐘周期,這充分顯示了DMA高速的數據傳輸能力。

        網線測試儀相關文章:網線測試儀原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 缙云县| 平舆县| 大余县| 喀喇| 定陶县| 内黄县| 莱州市| 松桃| 宁乡县| 太白县| 新民市| 瓦房店市| 谷城县| 灵璧县| 上蔡县| 阳西县| 华坪县| 晋江市| 昂仁县| 巴南区| 开平市| 嵊泗县| 房产| 建水县| 敦化市| 聂拉木县| 蓝山县| 彰化县| 霍邱县| 凯里市| 松原市| 乐昌市| 云龙县| 离岛区| 瑞金市| 益阳市| 始兴县| 日照市| 南汇区| 项城市| 永泰县|