《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的PCIe總線接口的DMA控制器的設計
基于FPGA的PCIe總線接口的DMA控制器的設計
2018年電子技術應用第1期
王之光,高清運
南開大學 電子信息與光學工程學院 天津市光電子薄膜器件與技術重點實驗室,天津300350
摘要: 采用Altera公司FPGA提供的PCIe PHY IP和Synopsys公司提供的PCIe Core IP提出了一種PCIe總線接口的DMA控制器的實現方法,并搭建了4通道的PCIe傳輸系統。利用Synopsys VIP驗證環境對系統進行了仿真驗證,利用Altera Stratix V EX系列FPGA搭建平臺進行了實際傳輸驗證,驗證了數據讀寫的正確性,在進行DMA讀寫事務操作時總線帶寬峰值分別達到了1 547 MB/s和1 607 MB/s,能滿足大部分實際應用中對數據傳輸的速率要求。
中圖分類號: TP274
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.172445
中文引用格式: 王之光,高清運. 基于FPGA的PCIe總線接口的DMA控制器的設計[J].電子技術應用,2018,44(1):9-12,
英文引用格式: Wang Zhiguang,Gao Qingyun. Design of DMA controller of PCIe bus interface based on FPGA[J]. Application of Electronic Technique,2018,44(1):9-12,

Design of DMA controller of PCIe bus interface based on FPGA
Wang Zhiguang,Gao Qingyun
College of Electronic Information and Optical Engineering,Key Laboratory of Photo-electronic Thin Film Devices and Technology, Nankai University,Tianjin 300350,China
Abstract: A method to implement DMA controller of PCIe bus interface based on Altera FPGA PCIe PHY IP and Synopsys PCIe Core IP was proposed in this paper,and a 4-lane PCIe transmission system was builted. The correctness of reading and writing data was proved through the stimulation in Synopsys VIP environment and transfer verification in Altera Stratix V EX series FPGA platform. The bandwidth of DMA read and DMA write can achieve 1 547 MB/s and 1 607 MB/s respectively. The DMA controller can satisfy the demands of data transfer rates in most practical applications.
Key words : PCIe;field programmable gate array(FPGA);direct memory access(DMA);IP

0 引言

    隨著通信技術的不斷發展,對數據傳輸系統的速度與數據傳送質量的要求也在不斷提高。由Intel在2001年提出的第三代I/O總線技術——PCI Express總線技術,采用高速差分串行的方式進行數據傳輸,具有高帶寬、高可靠性、高拓展性等優點,很好地彌補了PCI、PCI-X總線的不足[1-3]

    本文基于PCIe 2.0協議,利用Altera Transceiver PHY IP、Synopsys PCIe Core IP和AXI總線,提出了一種DMA控制器,并搭建了一個在FPGA端和PC之間的高速數據傳輸系統。實現了寄存器讀寫操作(單字讀寫)和DMA讀寫操作,并利用Synopsys VIP環境下進行的系統仿真和上位機軟件進行觀察并驗證了數據讀寫的正確性。

1 設計方案

1.1 基礎模塊

1.1.1 Altera Stratix V GX系列FPGA與PCIe PHY IP

    本設計使用Stratix V GX系列下的5SGXEA7K2F40C2N FPGA芯片[4],該芯片內部集成了PCIe PHY IP硬核模塊。PCIe PHY IP硬核包括三個部分,如圖1,PHY IP Core for PCI Express(PIPE)集成了PCIe總線的物理層。Transceiver Reconfiguration Controller IP Core可以動態重新配置模擬參數。Transceiver PHY Reset Controller IP Core作為收發器的復位模塊,確保了PCIe鏈路的初始化[5-6]。

wdz1-t1.gif

1.1.2 Synopsys IP與VIP

    VIP顧名思義就是驗證IP(Verification IP),它為一些標準的接口提供標準的總線行為模型[7]。Synopsys公司提供了PCIe總線的Controller IP,實現了PCIe總線數據鏈路層和事務層的功能,并內置了DMA,同時也提供了針對PCIe總線的VIP,為PCIe總線提供了標準的總線行為模型,模擬了上位機的功能[8]。

1.1.3 AXI總線

    AXI(Advanced eXtensible Interface)總線是一種高性能、高帶寬、低延遲的總線協議,有一個顯著的特點,地址/控制和數據通道是分開的,共有5個單向通道,分別為read address channel,write address channel,read data channel,write data channel,write response channel[9],減少了延時,提高了DMA的效率。

1.2 總體方案設計

    本設計采用的整體架構如圖2所示,為Altera PHY IP+Synopsys PCIe Core IP+AXI總線+Application。

wdz1-t2.gif

    為了利用Synopsys 的PCIe VIP環境,采用了Synopsys PCIe Core IP。在PCIe事務層和應用側之間采用了AXI總線接口,可以在以后的設計中進行方便的拓展和替換。應用側設計實現了PCIe DMA控制器的功能,并集成了兩塊RAM,一塊大小為128 DW,用來存儲寄存器讀寫的數據;另一塊大小為512 DW,用來存儲DMA讀寫的數據。

2 DMA控制器的設計與實現

2.1 應用端DMA操作流程

    應用端發起的DMA操作流程如圖3所示,最終DMA讀操作實現的結果為將主機側的數據以DMA的方式寫入到應用端的內存中。DMA寫操作實現的結果為將應用端的數據以DMA的方式寫入到主機側的內存中。圖3為應用端發起的DMA操作具體的流程。

wdz1-t3.gif

    (1)主機側通過寄存器寫的方式,將DMA讀寫標志、DMA長度、DMA源和目的內存地址寫入到應用端的寄存器中;

    (2)應用端中的Slave模塊將這些命令發送給Master模塊;

    (3)Master模塊按照Synopsys PCIe Core IP自定義的Dbi總線的方式,再將這些命令傳送給PCIe Core IP內部的寄存器;

    (4)PCIe Core IP接收DMA讀寫指令,并持續操作Master接口以實現后續操作;

    (5)當為DMA讀時,PCIe Core IP的內置DMA從主機側的“源內存地址”中讀取到目標數據;當為DMA寫時,PCIe Core IP的Master接口通過AXI總線以讀的方式從“源內存地址”讀取到目標數據;

    (6)當為DMA讀時,PCIe Core IP的Master獲得DMA讀取到的目標數據,并通過AXI總線,以寫的方式寫入到應用端的“目的內存地址”中;當為DMA寫時,Master獲得目標數據后,內置DMA將數據發送到主機側的“目的內存地址”中;

    (7)當DMA操作完成,PCIe Core IP會通知應用端的中斷模塊;

    (8)應用端的中斷模塊會向主機側提交中斷。

2.2 應用端DMA控制狀態機

    應用端只需將主機側寫入的DMA讀寫標志、DMA長度、DMA源和目的內存地址以及DMA啟動信號寫入到PCIe Core IP中的內部寄存器,并等待DMA操作的完成,給出中斷信號。

    下面為應用端詳細的DMA控制狀態機,如圖4所示,狀態機把DMA讀操作和DMA寫操作整合到了一起,減少了代碼量。

wdz1-t4.gif

    (1)IDLEPHASE:空閑狀態。當啟動信號start_flag有效時,跳轉ENGINE_ENABLE狀態;

    (2)ENGINE_ENABLE:判斷DMA讀寫類型信號wr_rdn_flg,當wr_rdn_flg為0,即為DMA讀(PC到FPGA)時,使能DMA讀引擎;當wr_rdn_flg為1,即為DMA寫(FPGA到PC)時,使能DMA寫引擎;

    (3)DMA_TRANS_SIZE:設置DMA數據傳輸長度,最多一次傳輸512 DW,最少一次傳輸1 DW;

    (4)DMA_SAR:設置DMA操作源地址(當為DMA讀時,源地址為主機端地址;當為DMA寫時,源地址為應用端地址);

    (5)DMA_DAR:設置DMA操作目的地址(當為DMA讀時,目的地址為應用端地址;當為DMA寫時,目的地址為主機端地址);

    (6)DMA_DOORBELL:使能DMA操作門鈴信號dma_strt,啟動DMA操作;

    (7)DMA_WAIT_INT:等待DMA操作完成;

    (8)DMA_INT_STATUS:讀取DMA操作中斷寄存器狀態,當DMA操作完成信號dma_done有效時,產生完成中斷,并跳轉DMA_CLEAR_INT狀態;

    (9)DMA_CLEAR_INT:清除中斷,回到IDLEPHASE狀態,準備下一次DMA傳輸。

3 DMA控制器功能驗證

3.1 仿真驗證

    在完成代碼編寫之后,在VIP環境下搭建仿真平臺,使用Synopsys公司的仿真驗證工具VCS進行功能測試,主要測試驗證模塊能否正確對寄存器讀寫和DMA讀寫產生正確的反應。

    從圖5、圖6中可以看到,寫地址偏移為0x40,寫數據為32’h87654321;讀地址偏移為0x40,讀數據為32’h87654321,由此可判斷寄存器讀寫正確。

wdz1-t5.gifwdz1-t6.gif

    如圖7所示,由dma_strt和dma_done信號可以看出為2次DMA傳輸,由dma_wr_rdn可看出第一次為DMA讀操作(RC端到APP側),第二次為DMA寫操作(APP側到RC端)由dma_bc_len可看出當前DMA操作長度為2 000 Byte,即500 DW,slv_rdata和slv_wdata信號較為密集的部分分別為2次DMA操作的數據,對比這兩次數據,得知DMA操作正確。

wdz1-t7.gif

    為了更加方便地比較結果,采取自動對比文件的方法,即把寄存器或DMA寫的數據存放到一個文件中,再把寄存器或DMA讀回的數據存放到另一個文件中,通過對比兩個文件,判斷寄存器和DMA傳輸是正確的。

3.2 FPGA測試驗證

    在仿真驗證完成之后,進行FPGA測試驗證,將硬件部分燒錄到板卡的FPGA芯片后,通過板卡的PCIe金手指插入到PC機的主板上,PC機重啟后檢測到PCIe硬件的插入,即可安裝對應的PCIe驅動軟件,利用上位機進行測試。

    上位機軟件界面如圖8所示,包括寄存器讀寫(Target操作)和DMA讀寫(Master操作)測試模塊。

wdz1-t8.gif

    選擇“Target”操作的“dual”模式,寄存器長度設置為118,因為前10個寄存器與DMA操作相關,可能會觸發DMA操作,所以在軟件中選擇跳過。點擊“啟動測試”,數據將會被先從主機側寫到FPGA,再從FPGA讀回到主機側,比較兩次寄存器操作的數據,即可判斷寄存器操作的正確性。

    如圖9所示,選擇“Master”操作的“dual”模式,點擊“memory”,即在PC側開辟一塊內存存放數據,然后點擊“啟動測試”,數據先從PC寫到FPGA的RAM中,接著再從FPGA回到PC,比較存放到PC內存的數據和從FPGA寫回到PC的數據,即可判斷DMA讀寫操作的正確性。

wdz1-t9.gif

    根據DMA傳輸固定大小的數據的時間,可以計算出DMA讀寫速率,經過多次測試,DMA讀寫速率分別為1 547 MB/s和1 607 MB/s。本設計采用的是PCIe Gen2、×4通道,理論最大傳輸速率為2 000 MB/s。分析代碼得出可能由于應用端向PCIe Core IP寫入和讀取數據過程占用了一定的時間,另外驅動程序向DMA寄存器寫入或讀取參數也占用了一些時間,都會影響速率。

4 結語

    本文實現的基于FPGA的PCIe總線接口的DMA控制器是在Altera PHY IP和Synopsys Core IP的基礎上實現的,利用Synopsys VIP驗證環境進行了功能仿真驗證,并通過FPGA進行了系統實測,達到了較高的傳輸速率,在Gen2、×4模式下,DMA讀寫操作的帶寬分別為 1 547 MB/s和1 607 MB/s,達到了預期的設計目標。

參考文獻

[1] 陳剛,張京,唐建.一種基于FPGA的PCIe總線及其DMA的設計方法[J].兵工自動化,2014,33(5):75-77.

[2] 張彪,宋紅軍,劉霖,等.基于PCIE接口的高速數據傳輸系統設計[J].電子測量技術,2015,38(10):113-117.

[3] NAMBIAR S O S,ABHYANKAR Y,CHANDRABADU S.Migrating FPGA based PCI Express Gen1 design to Gen2[C].2010 International Conference on Computer and Communication Technology(ICCCT).2010.

[4] Altera Corporation.Stratix V GX FPGA development board reference manual[EB/OL].www.altera.com,2014.

[5] Altera Corporation.Altera Transceiver PHY IP Core User Guide[EB/OL].www.altera.com,2016.

[6] Altera Corporation. IP Compiler for PCI Express User Guide[EB/OL].www.altera.com,2014.

[7] 陳靜.基于ARM的USB2.0-AHB總線橋IP的驗證方法研究以及設計實現[D].成都:電子科技大學,2007.

[8] Synopsys.DesignWare PCI Express VIP User Manual[EB/OL].www.synopsys.com/products/designware/docs,2010.

[9] AMBA AXI and ACE Protocal Specification[EB].www.arm.com,2011.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产精品高清一区二区三区| 欧美亚洲视频一区二区| 黄色成人av| 国产精品入口尤物| 一区二区不卡在线视频 午夜欧美不卡'| 欧美性片在线观看| 亚洲一区二区免费在线| 国产色视频一区| 一区二区在线观看视频| 欧美激情网友自拍| 国产伦精品一区二区三区在线观看| 亚洲区第一页| 国产区二精品视| 亚洲一卡二卡三卡四卡五卡| 久久黄色影院| 136国产福利精品导航网址| 亚洲天堂偷拍| 亚洲第一成人在线| 国产精品第一区| 国产婷婷色一区二区三区在线| 一区二区高清在线| 亚洲国产高清高潮精品美女| 亚洲已满18点击进入久久| 欧美日本在线视频| 亚洲网址在线| 久久人91精品久久久久久不卡| 欧美高清hd18日本| 在线看无码的免费网站| 性视频1819p久久| 9i看片成人免费高清| 亚洲欧美三级在线| 国产综合婷婷| 国内成+人亚洲+欧美+综合在线| 亚洲专区国产精品| 亚洲欧洲一区二区三区在线观看| 久久九九精品99国产精品| 国产女人aaa级久久久级| 亚洲一区图片| 蜜臀va亚洲va欧美va天堂| 99国产精品视频免费观看| 久久天堂av综合合色| 免费成人av资源网| 国内精品久久久久影院薰衣草| 欧美亚洲视频一区二区| 国产精品一区二区久久国产| 国产精品久久中文| 欧美激情在线狂野欧美精品| 国产精品久久国产愉拍| 久久久久久夜| 嫩草国产精品入口| 日韩一区二区免费高清| 午夜亚洲性色视频| 亚洲影院一区| 久久久噜久噜久久综合| 欧美一区二区黄| 久久蜜桃精品| 欧美综合国产精品久久丁香| 国产区二精品视| 亚洲欧美日产图| 亚洲欧美怡红院| 亚洲国产精彩中文乱码av在线播放| 国产精品美女黄网| 欧美日韩国产在线| 欧美经典一区二区| 欧美激情视频给我| 91久久综合亚洲鲁鲁五月天| 老司机免费视频一区二区| 蜜桃av一区二区在线观看| 久久综合网络一区二区| 国产精品欧美一区喷水| 久久免费的精品国产v∧| 亚洲三级网站| 韩日欧美一区二区三区| 欧美亚洲午夜视频在线观看| 久久精品国产视频| 国产精品久久久久久久久久直播| 一区二区久久久久| 韩国精品在线观看| 久久免费视频网站| 国产精品高潮呻吟视频| 免费在线观看一区二区| 日韩一区二区精品葵司在线| 牛人盗摄一区二区三区视频| 欧美激情91| 亚洲日本成人女熟在线观看| 国产精品都在这里| 国产亚洲欧美日韩在线一区| 久久夜色精品国产欧美乱极品| 亚洲性夜色噜噜噜7777| 欧美黄色精品| 欧美日韩精品一区二区| 中文av一区特黄| 午夜欧美大尺度福利影院在线看| 日韩亚洲欧美成人一区| 国产精品亚洲综合天堂夜夜| 国产精品伦一区| 亚洲黄网站黄| 欧美综合第一页| 欧美激情第二页| 久久精品国产96久久久香蕉| 亚洲日本aⅴ片在线观看香蕉| 国产欧美亚洲日本| 99国产精品视频免费观看| 久久精品二区| 一区二区三区自拍| 欧美四级在线观看| 香蕉国产精品偷在线观看不卡| 国产精品videosex极品| 久久久久久91香蕉国产| 亚洲国产成人精品久久久国产成人一区| 午夜精品视频| 亚洲精品乱码视频| 国产欧美日韩精品专区| 免费在线欧美视频| 国产乱码精品一区二区三区五月婷| 亚洲一区中文字幕在线观看| 亚洲美女av黄| 亚洲人成毛片在线播放女女| 黄色av日韩| 欧美精品免费在线观看| 欧美一级理论片| 国产精品美女午夜av| 亚洲缚视频在线观看| 欧美在线一级视频| 国产一区二区三区黄视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 午夜在线观看免费一区| 欧美三日本三级少妇三2023| 欧美精品精品一区| 欧美日韩一区二区免费在线观看| 欧美日韩成人在线观看| 亚洲一区二区在线观看视频| 美女网站久久| 欧美精品日韩综合在线| 制服诱惑一区二区| 国产精品久久久| 老鸭窝亚洲一区二区三区| 欧美日韩一区不卡| 国产精品九九久久久久久久| 久久se精品一区二区| 亚洲六月丁香色婷婷综合久久| 性欧美xxxx大乳国产app| 午夜精品久久久久久久蜜桃app| 国产精品视频福利| 欧美日一区二区三区在线观看国产免| 欧美理论电影在线播放| 久久久久国产精品一区三寸| 国产日产欧产精品推荐色| 亚洲国产精品第一区二区三区| 国产精品观看| 99精品黄色片免费大全| 国产亚洲激情在线| 久久精品国产91精品亚洲| 久久国产夜色精品鲁鲁99| 欧美777四色影视在线| 欧美日韩你懂的| 美女视频黄免费的久久| 一区二区三区亚洲| 久久久久久久综合日本| 午夜国产精品视频| 国产精品欧美一区喷水| 免费不卡欧美自拍视频| 亚洲免费av片| 欧美日韩在线不卡| 欧美一二三区精品| 在线亚洲免费| 亚洲日韩欧美视频一区| 午夜在线视频观看日韩17c| 美国十次了思思久久精品导航| 性欧美videos另类喷潮| 亚洲二区视频在线| 欧美日韩视频在线第一区| 国产美女诱惑一区二区| 美女91精品| 国产精品一区免费视频| 亚洲一区二区三区欧美| 好看的日韩av电影| 一区二区三区国产精华| 麻豆国产精品va在线观看不卡| 亚洲一区二区三区免费观看| 亚洲精品一区二区三区av| 一区二区三区视频在线看| 国产精品盗摄久久久| 一区二区三区**美女毛片| 欧美极品影院| 国产精品中文在线| 亚洲视频在线观看| 狠狠久久五月精品中文字幕| 欧美性猛交xxxx乱大交蜜桃| 亚洲老司机av| 亚洲成色www久久网站| 国产精品久久网| 国内精品一区二区| 免费视频亚洲| 亚洲一级在线观看| 亚洲永久精品国产| 欧美久久一区| 一区在线播放视频| 国产精品久在线观看| 国产伦精品一区| 欧美精品一区二区三区一线天视频| 久久精品国产亚洲一区二区三区| 久久久综合免费视频| 亚洲激情视频在线观看| 国产精品一区二区你懂得| 亚洲第一搞黄网站| 欧美凹凸一区二区三区视频| 亚洲欧美日本另类| 国产欧美一区二区三区沐欲| 99这里只有精品| 国产精品美女www爽爽爽视频| 91久久精品www人人做人人爽| 韩国三级电影久久久久久| 久久婷婷国产麻豆91天堂| 欧美激情综合色综合啪啪| 亚洲成色777777在线观看影院| 国产一区二区高清视频| 欧美视频精品一区| 欧美黄色网络| 亚洲精品影院| 欧美国产精品v| 国产拍揄自揄精品视频麻豆| 欧美日韩国产一区二区三区地区| 午夜精品久久久久久久| 欧美激情欧美激情在线五月| 午夜在线一区二区| 欧美黄网免费在线观看| 国产精品福利在线| 欧美日韩一区二区三区视频| 怡红院精品视频| 亚洲男同1069视频| 亚洲欧美日韩网| 欧美成人有码| 亚洲在线不卡| 欧美网站在线| 免费不卡视频| 欧美日韩免费观看一区二区三区| 欧美一区亚洲一区| 亚洲高清色综合| 午夜国产精品视频免费体验区| 久久久亚洲一区| 欧美一区国产在线| 国产亚洲成精品久久| 欧美日本韩国在线| 一区二区三区国产盗摄| 国产精品乱码一区二区三区| 国产精品久久久久一区二区三区共| 亚洲一区3d动漫同人无遮挡| 欧美视频一区| 久久综合狠狠| 国产精品自拍视频| 一区二区不卡在线视频 午夜欧美不卡'| 久久精品视频在线看| 一区二区三区在线视频免费观看| 亚洲一区二区视频在线观看| 精品91在线| 香蕉av福利精品导航| 韩国av一区| 欧美日韩性视频在线| 欧美日韩一区二区高清| 一区二区三区国产在线| 亚洲国产cao| 亚洲人成网站777色婷婷| 性色av一区二区怡红| 亚洲国产精品va| 99在线观看免费视频精品观看| 亚洲精品欧美极品| 久久乐国产精品| 久久中文欧美| 国产午夜亚洲精品羞羞网站| 亚洲福利免费| 欧美一区二区三区免费在线看| 久久福利影视| 久久久免费精品| 男同欧美伦乱| 久久伊人一区二区| 欧美在线视频一区二区| 亚洲一区二区三区视频| 国产亚洲在线观看| 免费成人高清在线视频| 亚洲国产91精品在线观看| 欧美成人午夜免费视在线看片| 欧美福利小视频| 一本久久综合亚洲鲁鲁五月天| 欧美日本高清视频| 中国av一区| 国产精品福利av| 欧美亚洲一级片| 亚洲欧洲一区二区三区| 亚洲高清不卡在线| 久久精品欧美| 久久综合伊人77777麻豆| 亚洲图片在线| 欧美在线91| 亚洲免费在线精品一区| 亚洲乱码国产乱码精品精| 欧美日韩视频在线一区二区观看视频| 久久一区亚洲| 在线亚洲成人| 欧美日韩亚洲91| 午夜亚洲性色福利视频| 国产欧美一区二区精品仙草咪| 最新国产乱人伦偷精品免费网站| 欧美亚洲一区二区在线观看| 亚洲国产精品一区在线观看不卡| 国产精品久久激情| 欧美一区二区三区电影在线观看| 国产日韩精品入口| 在线视频精品一| 久久天天躁夜夜躁狠狠躁2022| 欧美 日韩 国产一区二区在线视频| 欧美成人综合网站| 欧美激情一区二区三区全黄| 欧美大片在线看免费观看| 欧美日韩一区二区在线| 亚洲精品社区| 欧美国产综合| 亚洲国产精品久久人人爱蜜臀| 狠狠色2019综合网| 欧美阿v一级看视频| 欧美视频观看一区| 午夜在线精品偷拍| 91久久国产自产拍夜夜嗨| 亚洲一区二区三区成人在线视频精品| 午夜一级在线看亚洲| 国产午夜精品理论片a级大结局| 欧美一区二区三区视频| 欧美日韩精品免费观看|