本文介绍一个FPGA 开源项目:PCIE I/O控制卡。上一篇文章《FPGA优质开源项目– PCIE通信》开源了基于FPGA的PCIE通信Vivado工程,用于实现上位机通过PCIE接口访问FPGA的DDR3以及RAM内存数据。PCIE I/O控制卡工程是在上一个工程的基础上进行了部分模块和参数的修改。
下面围绕FPGA PCIE I/O控制卡通信方案以及Vivado BD工程的创建进行简要介绍。
01软硬件平台
- 软件平台:Vivado 2017.4;
- 硬件平台:XC7Z035FFG676-2;
02通信方案
系统通信方案如下图所示。PC上位机端通过PCIE接口与FPGA连接,FPGA端通过XDMA模块的AXI4总线实现对DDR3的读写,通过AXI4-Lite总线实现对多个GPIO外设的控制。其中AXI SmartConnect模块可用于自动完成XDMA与多个GPIO模块的通信仲裁,以及不同时钟域、不用数据位宽自动转换。
03创建Vivado BD工程
Vivado BD工程的创建可在上一个PCIE通信工程的基础上完成。首先,删除AXI BRAM Controller 以及RAM模块:
然后,依次添加两个AXI GPIO模块。将axi_gpio_0配置为 All Outputs ,位宽根据实际情况选择,这里配置为 4bits 。
将axi_gpio_1配置为 All Inputs ,位宽根据实际情况选择,这里同样配置为 4bits 。
XDMA IP核参数配置:
- Mode:BASE;
- Lane Width:根据FPGA硬件型号选择,通道越多,传输速度越快;
- Max Link Speed:5.0GT/s;
- Reference Clock:参考时钟100MHZ;
- DMA Interface Option:选择AXI4接口;
- AXI Data Width:AXI4总线位宽选择128bits;
- AXI Clock:AXI4总线时钟125MHZ;
- PCIE to AXI Translation:BAR地址到AXI地址偏移,这里设置为0x44a0_0000;
其它参数配置可参考上一篇文章中的介绍。
04Vivado BD工程结构
下图为最终创建好的Vivado BD工程。同样的,本工程虽然是基于Zynq平台建立,但实际只用到了PL端资源。
地址配置如下图所示:DDR3初始地址偏移配置为0,AXI_GPIO_0初始地址配置为0x44a3_0000,AXI_GPIO_1初始地址配置为0x44a4_0000,与XDMA中地址偏移保持一致即可。
05实现功能
该Vivado工程实现了基于FPGA的PCIE I/O控制卡功能。FPGA端把AXI_GPIO地址映射到BAR地址空间,上位机端通过PCIE总线读取FPGA端GPIO1 I/O口输入状态信息,以及控制GPIO0 I/O口输出信息。
-
FPGA
+关注
关注
1629文章
21735浏览量
603154 -
控制卡
+关注
关注
2文章
60浏览量
13013 -
PCIe
+关注
关注
15文章
1237浏览量
82620 -
上位机
+关注
关注
27文章
942浏览量
54798 -
Vivado
+关注
关注
19文章
812浏览量
66499
发布评论请先 登录
相关推荐
评论