本文介紹一個(gè)FPGA開(kāi)源項(xiàng)目:PCIE通信。該工程圍繞Vivado軟件中提供的PCIE通信IP核XDMA IP建立。Xilinx提供了XDMA的開(kāi)源驅(qū)動(dòng)程序,可在Windows系統(tǒng)或者Linux系統(tǒng)下使用,因此采用XDMA IP進(jìn)行PCIE通信是比較簡(jiǎn)單直接的。
本文主要介紹一下XDMA IP核的使用和Vivado工程的源代碼結(jié)構(gòu)。
01軟硬件平臺(tái)
- 軟件平臺(tái):Vivado 2017.4;
- 硬件平臺(tái):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接口可用于實(shí)現(xiàn) PCIE BAR 地址到 AXI4-Lite 寄存器地址的映射,可以用于讀寫(xiě)用戶(hù)邏輯寄存器,AXI4-Lite Slave接口用來(lái)將 XDMA 內(nèi)部寄存器開(kāi)放給用戶(hù)邏輯,用戶(hù)邏輯可以通過(guò)此接口訪問(wèn) XDMA 內(nèi)部寄存器。
- Mode:選擇Advanced;
- Lane Width:根據(jù)FPGA硬件型號(hào)選擇;
- 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)選項(xiàng)。
- 選擇PCIE to AXI Lite Master Interface;
- 空間大小根據(jù)實(shí)際需要進(jìn)行選擇;
- PCIE to AXI Translation:BAR地址到AXI地址轉(zhuǎn)換,這里設(shè)置為0x8000_0000;
- User Interrupts:用戶(hù)中斷配置,根據(jù)實(shí)際需求選擇;
- Legacy Interrupt:XDMA支持Legacy中斷;
- 使能MSI中斷;
- Configuration Management Interface不選;
- Number of DMA Read Channel (H2C) 和Number of DMA Write Channel (C2H) :這里選擇2,即XDMA 可以提供最多兩個(gè)獨(dú)立的寫(xiě)通道和兩個(gè)獨(dú)立的讀通道;
- 其它選項(xiàng)保持默認(rèn);
2.2 MIG 7 Series & AXI BRAM Controller
為了測(cè)試XDMA IP對(duì)AXI4總線以及AXI4-Lite總線讀寫(xiě)功能,在本工程中添加了BRAM和MIG IP核。其中AXI BRAM Controller IP配置如下,AXI協(xié)議選擇AXI4LITE;MIG選擇AXI4接口掛載到AXI4總線,實(shí)現(xiàn)對(duì)DDR的讀寫(xiě)。
03工程源碼結(jié)構(gòu)
下圖為最終搭建好的系統(tǒng)的Block Design。本工程是基于Zynq平臺(tái)建立,但實(shí)際只用到PL端資源,因此也可方便移植到其它FPGA平臺(tái)使用。
地址配置:DDR地址配置從0開(kāi)始,BRAM配置從0x8000_0000開(kāi)始,與XDMA中地址映射保持一致。
04實(shí)現(xiàn)功能
該Vivado工程主要用于FPGA PCIE 通信基礎(chǔ)功能測(cè)試,具體為:上位機(jī)端通過(guò)PCIE接口實(shí)現(xiàn)對(duì)FPGA端BAR地址空間以及DMA內(nèi)存地址空間讀寫(xiě)操作。在此工程基礎(chǔ)上,可在FPGA端訪問(wèn)DDR等模塊緩存的PCIE數(shù)據(jù),并進(jìn)行后續(xù)一系列處理。
-
FPGA
+關(guān)注
關(guān)注
1645文章
22034瀏覽量
617997 -
Linux
+關(guān)注
關(guān)注
87文章
11508瀏覽量
213645 -
WINDOWS
+關(guān)注
關(guān)注
4文章
3612瀏覽量
91354 -
通信測(cè)試
+關(guān)注
關(guān)注
0文章
64瀏覽量
49785 -
PCIe
+關(guān)注
關(guān)注
16文章
1340瀏覽量
85095
發(fā)布評(píng)論請(qǐng)先 登錄
FPGA的PCIE接口應(yīng)用需要注意哪些問(wèn)題
開(kāi)發(fā)FPGA Kintex-7板子的PCIe與DDR模塊高速通信,應(yīng)該準(zhǔn)備些什么?
pc如何通過(guò)pcie與FPGA通信
6678 pcie和FPGA接口
基于AM57x平臺(tái)的PCIe通信案例(一)
基于AM57x平臺(tái)的PCIe通信案例(二)
基于C66x平臺(tái)DSP與FPGA通信測(cè)試
尋求fpga大牛開(kāi)發(fā)一個(gè)簡(jiǎn)單的fpga pcie設(shè)備
AC701能否通過(guò)Artix 7的PCIe鏈路與PC通信?
如何通過(guò)PCIe進(jìn)行FPGA到PC的通信?
2個(gè)PCIE PHY在FPGA中連接可能實(shí)現(xiàn)嗎?
關(guān)于xilinx FPGA pcie測(cè)試問(wèn)題
米爾ARM+FPGA架構(gòu)開(kāi)發(fā)板PCIE2SCREEN示例分析與測(cè)試

基于FPGA的PCIE I/O控制卡通信方案

評(píng)論