目录

  • 1、前言
  • 2、我已有的PCIE方案
  • 3、PCIE理论
  • 4、总体设计思路和方案
  • 5、vivado工程详解
  • 6、驱动安装
  • 7、QT上位机软件
  • 8、上板调试验证
  • 9、福利:工程代码的获取

1、前言

PCIE(PCI Express)采用了目前业内流行的点对点串行连接,比起 PCI 以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到 PCI 所不能提供的高带宽,是目前各行业高速接口的优先选择方向,具有很高的实用价值和学习价值;

本设计使用Xilinx官方的XDMA方案搭建基于Xilinx系列FPGA的PCIE通信平台,该方案只适用于Xilinx系列FPGA,一并提供了XDMA的安装驱动和QT上位机源代码,省去了使用XDMA繁琐的驱动寻找和上位机软件开发的不知所措,并以搭建好vivado工程,省去了不知道如何使用XDMA的尴尬,使得PCIE的使用变得简单易上手,而不用关心其复杂的PCIE协议;由于我的开发板只支持PCIE X4,所以提供的代码是PCIE X4架构,若需要PCIE X1、 X2、 X8、 X16、 X32的朋友,可自行修改本工程,也可关注我,我会实时发布新的工程。
本工程实现基础的PCIE通信,和QT上位机之间进行测速试验。

本文详细描述了基于XDMA搭建PCIE通信平台的设计方案,工程代码可综合编译上板调试,可直接项目移植,适用于在校学生、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的高速接口领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

2、我已有的PCIE方案

我的主页有PCIE通信专栏,既有基于RIFFA实现的PCIE方案,也有基于XDMA实现的PCIE方案;既有简单的数据交互、测速,也有应用级别的图像采集传输,以下是专栏地址:
点击直接前往

3、PCIE理论

这部分可自行百度或csdn或知乎学习理论知识,其实用了XDMA,已经不太需要直到PCIE复杂的协议和理论了。。。

4、总体设计思路和方案

总体设计思路和方案如下:

PCIe 通信例程由三部分组成:FPGA 端程序、PCIe 卡驱动、PCIe 上位机测试程序:
FPGA 端工程:负责建立与 PCIe 通信需具备的 FPGA 框架,PCIe 通信协议的构建;
PCIe 驱动:负责上位机测试程序与 PCIe 卡的数据交换;
PCIe 上位机测试程序:此处时PCIe 测速;

PICe 时钟输入通过 PCIe 接口接入外部 PCIe 时钟 100M(如机箱 PCIe 插槽),为 PCIe 通信模块工作提供参考时钟;ddr 时钟输入模块为 DDR 控制器提供参考时钟;当 PCIe 进行写速度测试时,上位机连续发送测试数据给 PCIe 通信模块,然后把数据传给 DDR 控制器,DDR 控制器会自己把数据存入 DDR3 芯片中;当 PCIe 进行读速度测试时,DDR 控制器会获取 DDR3 芯片中数据,然后把数据传给 PCIe 通信模块,上位机连续获取来自 PCIe 通信模块测试数据;当 PCIe 进行读写速度测试时,进行 PCIe 读速度测试的同时控制 PCIe写速度测试。流程是在上述写速度与读速度测试的结合。

QT测速上位机:提供源代码和可执行程序,发开版本为QT5.6.2;
PCIE驱动:提供Win系统驱动;
XDMA:调用官方IP,配置为X4模式;
AXI MIG:调用官方IP,作为数据缓存;

5、vivado工程详解

开发板FPGA型号:Xilinx xc7a100tfgg484-2;
开发环境:Vivado2019.1;
输入\输出:PCIE X4;
应用:QT上位机测速试验;
工程BD如下:


综合后的工程代码架构如下:

综合编译完成后的FPGA资源消耗和功耗预估如下:

6、驱动安装

提供提供Win系统驱动,目录如下:

安装步骤:
使用管理员身份运行 cmd

输入命令 Bcdedit.exe -set TESTSIGNING ON 打开测试模式:

重启电脑后桌面显示正在运行测试模式

没有安装驱动时,设备管理器如下,发现一个 PCI 串行端口:

例程提供的编译好的驱动程序,在工程下的 driver 目录下(根据操作系统选择相应驱动),
在 demo 目录下的“xilinx PCIe 驱动相关资料”提供了 xilinx 官方的 Windows 和 linux 驱动源码及
测试程序,有兴趣的自己可以研究研究:

选择设备,右键更新驱动

浏览计算机以查找驱动程序软件

测试电脑安装的是 win7,这里使用 Win7_Release 版本,win10系统则换为Win10_Release 版本:

有个安全警告,选择安装:

正确安装了设备驱动

7、QT上位机软件

QT测速上位机:提供源代码和可执行程序,发开版本为QT5.6.2;位置如下:

部分源码截图如下:

8、上板调试验证

开启上位机测程序进行 PCIe 速度测试,打开下图的测速软件 pciespeed,测速软件在如下位
置,实验结果如下:

读写同时进行测试:

只读测试:

只写测试:

9、福利:工程代码的获取

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:

FPGA基于XDMA实现PCIE X4通信方案 提供工程源码和QT上位机程序和技术支持相关推荐

  1. FPGA驱动FT601实现USB3.0相机HDMI视频采集 提供工程源码和QT上位机源码

    目录 1.前言 2.FT601芯片解读和时序分析 FT601功能和硬件电路 FT601读时序解读 FT601写时序解读 3.我这儿的 FT601 USB3.0通信方案 4.详细设计方案 5.vivad ...

  2. FPGA基于GS2971/GS2972实现SDI视频收发 提供工程源码和技术支持

    目录 1.前言 2.我目前已有的SDI编解码方案 3.GS2971/GS2972芯片解读 GS2971解读 GS2972解读 4.详细设计方案 5.vivado工程1解读 硬件逻辑工程 软件SDK工程 ...

  3. FPGA驱动FT601实现USB3.0相机 OV5640视频采集 提供2套工程源码和QT上位机源码

    目录 1.前言 2.FT601芯片解读和时序分析 FT601功能和硬件电路 FT601读时序解读 FT601写时序解读 3.我这儿的 FT601 USB3.0通信方案 4.vivado工程1--彩条视 ...

  4. FPGA纯verilog代码实现图像对数变换,提供工程源码和技术支持

    目录 1.图像对数变换理论 2.log系数的matlab生成 3.FPGA实现图像对数变换 4.vivado与matlab联合仿真 5.vivado工程介绍 6.上板调试验证并演示 7.福利:工程代码 ...

  5. FPGA纯verilog代码读写N25Q128A QSPI Flash 提供工程源码和技术支持

    目录 1.N25Q128A芯片解读 2.N25Q128A读写时序 3.整体设计思路架构 4.verilog读写Flash驱动设计 5.verilog读写Flash控制器设计 6.FIFO缓存设计 7. ...

  6. FPGA硬件png图片解码器,支持所有颜色类型解码,提供工程源码和技术支持

    目录 1.前言 2.我已有的视频图像编解码方案 3.png图片解码理论 4.png图片解码性能介绍 5.png图片解码器时序介绍 输入码流 输出图像信息和像素 6.png图片解码器设计详解 7.工程源 ...

  7. 【游戏开发实战】用Go语言写一个服务器,实现与Unity客户端通信(Golang | Unity | Socket | 通信 | 教程 | 附工程源码)

    文章目录 一.前言 二.Go开发环境搭建(Windows系统) 1.安装Go命令行工具 2.创建GoWorkspace目录 3.配置GOPATH环境变量 4.配置GOPROXY代理 5.安装VSCod ...

  8. FPGA基于SFP光口实现1G千兆网UDP通信 1G/2.5G Ethernet PCS/PMA or SGMII替代网络PHY芯片 提供工程源码和技术支持

    目录 1.前言 2.我这里已有的UDP方案 3.详细设计方案 4.vivado工程详解 5.上板调试验证并演示 6.福利:工程代码的获取 1.前言 目前网上的fpga实现udp基本生态如下: 1:ve ...

  9. FPGA基于SFP光口实现10G万兆网UDP通信 10G Ethernet Subsystem替代网络PHY芯片 提供工程源码和技术支持

    目录 1.前言 2.我这里已有的UDP方案 3.详细设计方案 4.vivado工程详解 5.上板调试验证并演示 6.福利:工程代码的获取 1.前言 目前网上的fpga实现udp基本生态如下: 1:ve ...

最新文章

  1. 【gradle】问题及解决
  2. page rank算法
  3. when is completed field filled in the backend
  4. 中缀表达式转换为前缀及后缀表达式并求值【摘】
  5. LeetCode 652. 寻找重复的子树(DFS)
  6. 统计csv词频_Python|国家统计局CPI数据动态图表可视化
  7. 习题:Dual Matrices(思路题/分治)
  8. [swift]-类的构造函数
  9. ROS 搞懂多话题回调机制以及消息队列
  10. Atitit 搜索与搜索领域的技术总结 目录 1. 搜索资料 各种文档累 office eml pdf zip 1 1.1. 搜索用的东东。。Es ffmpeg opencv 1 2. 自然语言处
  11. gpuinfo测试软件,gpuinfo
  12. 【信号处理】脉搏信号处理系统含Matlab源码
  13. java jxls_jxls2.3-简明教程
  14. thinkphp5.0.20 数据库迁移/填充
  15. java高级软件工程师 考试_Java高级软件工程师人才缺口巨大
  16. 抖音国庆小游戏是如何实现的?带你走近 Cocos
  17. 最详细的北京摩托车上牌流程-自己跑流程
  18. matlab白光干涉,matlab白光干涉
  19. 多测师肖sir_高级金牌讲师_jenkins持续集成测试(001)
  20. 小米路由器 4A 千兆版折腾日志

热门文章

  1. zt 欲成富翁须有七大特质(个人理财)
  2. [matlab]AHP层次分析法
  3. php百度网盘解析源码,【教程】php实现百度网盘视频解析
  4. 天线只是一根导线吗?
  5. Principles of Genetics D. Peter Snustad, Michael J. Simmons 遗传学原理 英文 PDF
  6. 5S管理——作战地图
  7. 调出粉色背景人像照片的Photoshop教程
  8. Axure RP快捷键指令汇总
  9. supesite首页模板标签调用
  10. 小规模纳税人、一般纳税人、个体户的区别