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

描述

本文介绍一个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模块的通信仲裁,以及不同时钟域、不用数据位宽自动转换。

PCIe

03创建Vivado BD工程

Vivado BD工程的创建可在上一个PCIE通信工程的基础上完成。首先,删除AXI BRAM Controller 以及RAM模块:

PCIe

然后,依次添加两个AXI GPIO模块。将axi_gpio_0配置为 All Outputs ,位宽根据实际情况选择,这里配置为 4bits 。

PCIe

将axi_gpio_1配置为 All Inputs ,位宽根据实际情况选择,这里同样配置为 4bits 。

PCIe

XDMA IP核参数配置:

PCIe

  • 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

  • PCIE to AXI Translation:BAR地址到AXI地址偏移,这里设置为0x44a0_0000;

其它参数配置可参考上一篇文章中的介绍。

04Vivado BD工程结构

下图为最终创建好的Vivado BD工程。同样的,本工程虽然是基于Zynq平台建立,但实际只用到了PL端资源。

PCIe

地址配置如下图所示:DDR3初始地址偏移配置为0,AXI_GPIO_0初始地址配置为0x44a3_0000,AXI_GPIO_1初始地址配置为0x44a4_0000,与XDMA中地址偏移保持一致即可。

PCIe

05实现功能

该Vivado工程实现了基于FPGA的PCIE I/O控制卡功能。FPGA端把AXI_GPIO地址映射到BAR地址空间,上位机端通过PCIE总线读取FPGA端GPIO1 I/O口输入状态信息,以及控制GPIO0 I/O口输出信息。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分