本文介紹一個(gè)FPGA 開(kāi)源項(xiàng)目:PCIE I/O控制卡。上一篇文章《FPGA優(yōu)質(zhì)開(kāi)源項(xiàng)目– PCIE通信》開(kāi)源了基于FPGA的PCIE通信Vivado工程,用于實(shí)現(xiàn)上位機(jī)通過(guò)PCIE接口訪問(wèn)FPGA的DDR3以及RAM內(nèi)存數(shù)據(jù)。PCIE I/O控制卡工程是在上一個(gè)工程的基礎(chǔ)上進(jìn)行了部分模塊和參數(shù)的修改。
下面圍繞FPGA PCIE I/O控制卡通信方案以及Vivado BD工程的創(chuàng)建進(jìn)行簡(jiǎn)要介紹。
01軟硬件平臺(tái)
- 軟件平臺(tái):Vivado 2017.4;
- 硬件平臺(tái):XC7Z035FFG676-2;
02通信方案
系統(tǒng)通信方案如下圖所示。PC上位機(jī)端通過(guò)PCIE接口與FPGA連接,F(xiàn)PGA端通過(guò)XDMA模塊的AXI4總線實(shí)現(xiàn)對(duì)DDR3的讀寫,通過(guò)AXI4-Lite總線實(shí)現(xiàn)對(duì)多個(gè)GPIO外設(shè)的控制。其中AXI SmartConnect模塊可用于自動(dòng)完成XDMA與多個(gè)GPIO模塊的通信仲裁,以及不同時(shí)鐘域、不用數(shù)據(jù)位寬自動(dòng)轉(zhuǎn)換。
03創(chuàng)建Vivado BD工程
Vivado BD工程的創(chuàng)建可在上一個(gè)PCIE通信工程的基礎(chǔ)上完成。首先,刪除AXI BRAM Controller 以及RAM模塊:
然后,依次添加兩個(gè)AXI GPIO模塊。將axi_gpio_0配置為 All Outputs ,位寬根據(jù)實(shí)際情況選擇,這里配置為 4bits 。
將axi_gpio_1配置為 All Inputs ,位寬根據(jù)實(shí)際情況選擇,這里同樣配置為 4bits 。
XDMA IP核參數(shù)配置:
- Mode:BASE;
- Lane Width:根據(jù)FPGA硬件型號(hào)選擇,通道越多,傳輸速度越快;
- Max Link Speed:5.0GT/s;
- Reference Clock:參考時(shí)鐘100MHZ;
- DMA Interface Option:選擇AXI4接口;
- AXI Data Width:AXI4總線位寬選擇128bits;
- AXI Clock:AXI4總線時(shí)鐘125MHZ;
- PCIE to AXI Translation:BAR地址到AXI地址偏移,這里設(shè)置為0x44a0_0000;
其它參數(shù)配置可參考上一篇文章中的介紹。
04Vivado BD工程結(jié)構(gòu)
下圖為最終創(chuàng)建好的Vivado BD工程。同樣的,本工程雖然是基于Zynq平臺(tái)建立,但實(shí)際只用到了PL端資源。
地址配置如下圖所示:DDR3初始地址偏移配置為0,AXI_GPIO_0初始地址配置為0x44a3_0000,AXI_GPIO_1初始地址配置為0x44a4_0000,與XDMA中地址偏移保持一致即可。
05實(shí)現(xiàn)功能
該Vivado工程實(shí)現(xiàn)了基于FPGA的PCIE I/O控制卡功能。FPGA端把AXI_GPIO地址映射到BAR地址空間,上位機(jī)端通過(guò)PCIE總線讀取FPGA端GPIO1 I/O口輸入狀態(tài)信息,以及控制GPIO0 I/O口輸出信息。
-
FPGA
+關(guān)注
關(guān)注
1646文章
22054瀏覽量
618812 -
控制卡
+關(guān)注
關(guān)注
2文章
60瀏覽量
13274 -
PCIe
+關(guān)注
關(guān)注
16文章
1342瀏覽量
85213 -
上位機(jī)
+關(guān)注
關(guān)注
27文章
969瀏覽量
55815 -
Vivado
+關(guān)注
關(guān)注
19文章
835瀏覽量
68829
發(fā)布評(píng)論請(qǐng)先 登錄
PCIe EtherCAT實(shí)時(shí)運(yùn)動(dòng)控制卡PCIE464的IO與編碼器讀寫應(yīng)用

【正運(yùn)動(dòng)】高速高精,超高實(shí)時(shí)性的PCIe EtherCAT實(shí)時(shí)運(yùn)動(dòng)控制卡 | PCIE464
采用LabVIEW FPGA模塊和可重新配置I/O設(shè)備開(kāi)發(fā)測(cè)量與控制應(yīng)用
如何利用FPGA設(shè)計(jì)運(yùn)動(dòng)控制卡?
使用LabVIEW FPGA模塊和可重新配置I/O設(shè)備開(kāi)發(fā)測(cè)
基于FMC標(biāo)準(zhǔn)的FPGA夾層卡I/O設(shè)計(jì)
基于FPGA I/O接口的五大優(yōu)勢(shì)與FPGA深層分析

FPGA器件的I/O引腳布局的優(yōu)化方案分析
PCIe中三種基本的I/O架構(gòu)

不止10倍提速!PCIe EtherCAT實(shí)時(shí)運(yùn)動(dòng)控制卡XPCIE1032H 等您評(píng)測(cè)!

基于FPGA的PCIE通信測(cè)試

超高實(shí)時(shí)性的EtherCAT運(yùn)動(dòng)控制卡——PCIE464
PCIe實(shí)時(shí)運(yùn)動(dòng)控制卡的雙盤視覺(jué)篩選機(jī)上位機(jī)開(kāi)發(fā)應(yīng)用

評(píng)論