本文介紹一個FPGA開源項目:PCIE通信。該工程圍繞Vivado軟件中提供的PCIE通信IP核XDMA IP建立。Xilinx提供了XDMA的開源驅(qū)動程序,可在Windows系統(tǒng)或者Linux系統(tǒng)下使用,因此采用XDMA IP進行PCIE通信是比較簡單直接的。
本文主要介紹一下XDMA IP核的使用和Vivado工程的源代碼結(jié)構(gòu)。
01軟硬件平臺
- 軟件平臺:Vivado 2017.4;
- 硬件平臺:XC7Z035FFG676-2;
02IP核參數(shù)配置
2.1 XDMA
XDMA (DMA Subsystem for PCI Express) 是Xilinx提供的可用于PCIE2.0,PCIE3.0的SG模式DMA IP核。該IP核可配置AXI4接口或者AXI4-Stream接口,如果配置成AXI4接口,可方便接入AXI總線互聯(lián),與DDR進行數(shù)據(jù)傳輸。
另外XDMA還提供可選擇的AXI4-Lite Master和AXI4-Lite Slave接口。其中AXI4-Lite Master接口可用于實現(xiàn) PCIE BAR 地址到 AXI4-Lite 寄存器地址的映射,可以用于讀寫用戶邏輯寄存器,AXI4-Lite Slave接口用來將 XDMA 內(nèi)部寄存器開放給用戶邏輯,用戶邏輯可以通過此接口訪問 XDMA 內(nèi)部寄存器。
- Mode:選擇Advanced;
- Lane Width:根據(jù)FPGA硬件型號選擇;
- Max Link Speed:選擇5.0GT/s;
- Reference Clock:100MHZ;
- DMA Interface Option:選擇AXI4接口;
- AXI Data Width:AXI4總線位寬選擇128bits;
- AXI Clock:125MHZ;
PCIE ID配置保持默認選項。
- 選擇PCIE to AXI Lite Master Interface;
- 空間大小根據(jù)實際需要進行選擇;
- PCIE to AXI Translation:BAR地址到AXI地址轉(zhuǎn)換,這里設置為0x8000_0000;
- User Interrupts:用戶中斷配置,根據(jù)實際需求選擇;
- Legacy Interrupt:XDMA支持Legacy中斷;
- 使能MSI中斷;
- Configuration Management Interface不選;
- Number of DMA Read Channel (H2C) 和Number of DMA Write Channel (C2H) :這里選擇2,即XDMA 可以提供最多兩個獨立的寫通道和兩個獨立的讀通道;
- 其它選項保持默認;
2.2 MIG 7 Series & AXI BRAM Controller
為了測試XDMA IP對AXI4總線以及AXI4-Lite總線讀寫功能,在本工程中添加了BRAM和MIG IP核。其中AXI BRAM Controller IP配置如下,AXI協(xié)議選擇AXI4LITE;MIG選擇AXI4接口掛載到AXI4總線,實現(xiàn)對DDR的讀寫。
03工程源碼結(jié)構(gòu)
下圖為最終搭建好的系統(tǒng)的Block Design。本工程是基于Zynq平臺建立,但實際只用到PL端資源,因此也可方便移植到其它FPGA平臺使用。
地址配置:DDR地址配置從0開始,BRAM配置從0x8000_0000開始,與XDMA中地址映射保持一致。
04實現(xiàn)功能
該Vivado工程主要用于FPGA PCIE 通信基礎(chǔ)功能測試,具體為:上位機端通過PCIE接口實現(xiàn)對FPGA端BAR地址空間以及DMA內(nèi)存地址空間讀寫操作。在此工程基礎(chǔ)上,可在FPGA端訪問DDR等模塊緩存的PCIE數(shù)據(jù),并進行后續(xù)一系列處理。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21738瀏覽量
603464 -
Linux
+關(guān)注
關(guān)注
87文章
11304瀏覽量
209542 -
WINDOWS
+關(guān)注
關(guān)注
3文章
3545瀏覽量
88715 -
通信測試
+關(guān)注
關(guān)注
0文章
57瀏覽量
49500 -
PCIe
+關(guān)注
關(guān)注
15文章
1239瀏覽量
82665
發(fā)布評論請先 登錄
相關(guān)推薦
評論