本文介紹一個FPGA開源項目:PCIE通信。該工程圍繞Vivado軟件中提供的PCIE通信IP核XDMA IP建立。Xilinx提供了XDMA的開源驅(qū)動程序,可在Windows系統(tǒng)或者Linux系統(tǒng)下使用,因此采用XDMA IP進(jìn)行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進(jìn)行數(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配置保持默認(rèn)選項。
- 選擇PCIE to AXI Lite Master Interface;
- 空間大小根據(jù)實際需要進(jìn)行選擇;
- PCIE to AXI Translation:BAR地址到AXI地址轉(zhuǎn)換,這里設(shè)置為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 可以提供最多兩個獨立的寫通道和兩個獨立的讀通道;
- 其它選項保持默認(rèn);
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ǔ)功能測試,具體為:上位機(jī)端通過PCIE接口實現(xiàn)對FPGA端BAR地址空間以及DMA內(nèi)存地址空間讀寫操作。在此工程基礎(chǔ)上,可在FPGA端訪問DDR等模塊緩存的PCIE數(shù)據(jù),并進(jìn)行后續(xù)一系列處理。
-
FPGA
+關(guān)注
關(guān)注
1640文章
21893瀏覽量
610990 -
Linux
+關(guān)注
關(guān)注
87文章
11407瀏覽量
212112 -
WINDOWS
+關(guān)注
關(guān)注
4文章
3594瀏覽量
90613 -
通信測試
+關(guān)注
關(guān)注
0文章
60瀏覽量
49672 -
PCIe
+關(guān)注
關(guān)注
16文章
1295瀏覽量
84278
發(fā)布評論請先 登錄
相關(guān)推薦
FPGA的PCIE接口應(yīng)用需要注意哪些問題
開發(fā)FPGA Kintex-7板子的PCIe與DDR模塊高速通信,應(yīng)該準(zhǔn)備些什么?
pc如何通過pcie與FPGA通信
6678 pcie和FPGA接口
基于AM57x平臺的PCIe通信案例(一)
基于AM57x平臺的PCIe通信案例(二)
基于C66x平臺DSP與FPGA通信測試
尋求fpga大牛開發(fā)一個簡單的fpga pcie設(shè)備
AC701能否通過Artix 7的PCIe鏈路與PC通信?
如何通過PCIe進(jìn)行FPGA到PC的通信?
2個PCIE PHY在FPGA中連接可能實現(xiàn)嗎?
關(guān)于xilinx FPGA pcie測試問題
米爾ARM+FPGA架構(gòu)開發(fā)板PCIE2SCREEN示例分析與測試

評論