本文介紹一個(gè)FPGA開源項(xiàng)目:PCIE通信。該工程圍繞Vivado軟件中提供的PCIE通信IP核XDMA IP建立。Xilinx提供了XDMA的開源驅(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 寄存器地址的映射,可以用于讀寫用戶邏輯寄存器,AXI4-Lite Slave接口用來(lái)將 XDMA 內(nèi)部寄存器開放給用戶邏輯,用戶邏輯可以通過此接口訪問 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:用戶中斷配置,根據(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ú)立的寫通道和兩個(gè)獨(dú)立的讀通道;
- 其它選項(xiàng)保持默認(rèn);
2.2 MIG 7 Series & AXI BRAM Controller
為了測(cè)試XDMA IP對(duì)AXI4總線以及AXI4-Lite總線讀寫功能,在本工程中添加了BRAM和MIG IP核。其中AXI BRAM Controller IP配置如下,AXI協(xié)議選擇AXI4LITE;MIG選擇AXI4接口掛載到AXI4總線,實(shí)現(xiàn)對(duì)DDR的讀寫。
03工程源碼結(jié)構(gòu)
下圖為最終搭建好的系統(tǒng)的Block Design。本工程是基于Zynq平臺(tái)建立,但實(shí)際只用到PL端資源,因此也可方便移植到其它FPGA平臺(tái)使用。
地址配置:DDR地址配置從0開始,BRAM配置從0x8000_0000開始,與XDMA中地址映射保持一致。
04實(shí)現(xiàn)功能
該Vivado工程主要用于FPGA PCIE 通信基礎(chǔ)功能測(cè)試,具體為:上位機(jī)端通過PCIE接口實(shí)現(xiàn)對(duì)FPGA端BAR地址空間以及DMA內(nèi)存地址空間讀寫操作。在此工程基礎(chǔ)上,可在FPGA端訪問DDR等模塊緩存的PCIE數(shù)據(jù),并進(jìn)行后續(xù)一系列處理。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21758瀏覽量
604241 -
Linux
+關(guān)注
關(guān)注
87文章
11320瀏覽量
209834 -
WINDOWS
+關(guān)注
關(guān)注
4文章
3551瀏覽量
88873 -
通信測(cè)試
+關(guān)注
關(guān)注
0文章
58瀏覽量
49518 -
PCIe
+關(guān)注
關(guān)注
15文章
1243瀏覽量
82767
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
FPGA的PCIE接口應(yīng)用需要注意哪些問題
開發(fā)FPGA Kintex-7板子的PCIe與DDR模塊高速通信,應(yīng)該準(zhǔn)備些什么?
pc如何通過pcie與FPGA通信
6678 pcie和FPGA接口
基于AM57x平臺(tái)的PCIe通信案例(一)
基于AM57x平臺(tái)的PCIe通信案例(二)
基于C66x平臺(tái)DSP與FPGA通信測(cè)試
尋求fpga大牛開發(fā)一個(gè)簡(jiǎn)單的fpga pcie設(shè)備
AC701能否通過Artix 7的PCIe鏈路與PC通信?
如何通過PCIe進(jìn)行FPGA到PC的通信?
2個(gè)PCIE PHY在FPGA中連接可能實(shí)現(xiàn)嗎?
關(guān)于xilinx FPGA pcie測(cè)試問題
米爾ARM+FPGA架構(gòu)開發(fā)板PCIE2SCREEN示例分析與測(cè)試
![米爾ARM+<b class='flag-5'>FPGA</b>架構(gòu)開發(fā)板<b class='flag-5'>PCIE</b>2SCREEN示例分析與<b class='flag-5'>測(cè)試</b>](https://file1.elecfans.com/web2/M00/8C/49/wKgaomSpBFOAa1-8AAA0qrk4N6w473.png)
基于FPGA的PCIE I/O控制卡通信方案
![基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>PCIE</b> I/O控制卡<b class='flag-5'>通信</b>方案](https://file1.elecfans.com/web2/M00/A1/44/wKgZomTxneiAGUX6AACTjk9xks8533.jpg)
評(píng)論