FPGA基于XDMA实现PCIE X4通信方案 提供工程源码和QT上位机程序和技术支持
目录
- 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上位机程序和技术支持相关推荐
- FPGA驱动FT601实现USB3.0相机HDMI视频采集 提供工程源码和QT上位机源码
目录 1.前言 2.FT601芯片解读和时序分析 FT601功能和硬件电路 FT601读时序解读 FT601写时序解读 3.我这儿的 FT601 USB3.0通信方案 4.详细设计方案 5.vivad ...
- FPGA基于GS2971/GS2972实现SDI视频收发 提供工程源码和技术支持
目录 1.前言 2.我目前已有的SDI编解码方案 3.GS2971/GS2972芯片解读 GS2971解读 GS2972解读 4.详细设计方案 5.vivado工程1解读 硬件逻辑工程 软件SDK工程 ...
- FPGA驱动FT601实现USB3.0相机 OV5640视频采集 提供2套工程源码和QT上位机源码
目录 1.前言 2.FT601芯片解读和时序分析 FT601功能和硬件电路 FT601读时序解读 FT601写时序解读 3.我这儿的 FT601 USB3.0通信方案 4.vivado工程1--彩条视 ...
- FPGA纯verilog代码实现图像对数变换,提供工程源码和技术支持
目录 1.图像对数变换理论 2.log系数的matlab生成 3.FPGA实现图像对数变换 4.vivado与matlab联合仿真 5.vivado工程介绍 6.上板调试验证并演示 7.福利:工程代码 ...
- FPGA纯verilog代码读写N25Q128A QSPI Flash 提供工程源码和技术支持
目录 1.N25Q128A芯片解读 2.N25Q128A读写时序 3.整体设计思路架构 4.verilog读写Flash驱动设计 5.verilog读写Flash控制器设计 6.FIFO缓存设计 7. ...
- FPGA硬件png图片解码器,支持所有颜色类型解码,提供工程源码和技术支持
目录 1.前言 2.我已有的视频图像编解码方案 3.png图片解码理论 4.png图片解码性能介绍 5.png图片解码器时序介绍 输入码流 输出图像信息和像素 6.png图片解码器设计详解 7.工程源 ...
- 【游戏开发实战】用Go语言写一个服务器,实现与Unity客户端通信(Golang | Unity | Socket | 通信 | 教程 | 附工程源码)
文章目录 一.前言 二.Go开发环境搭建(Windows系统) 1.安装Go命令行工具 2.创建GoWorkspace目录 3.配置GOPATH环境变量 4.配置GOPROXY代理 5.安装VSCod ...
- 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 ...
- FPGA基于SFP光口实现10G万兆网UDP通信 10G Ethernet Subsystem替代网络PHY芯片 提供工程源码和技术支持
目录 1.前言 2.我这里已有的UDP方案 3.详细设计方案 4.vivado工程详解 5.上板调试验证并演示 6.福利:工程代码的获取 1.前言 目前网上的fpga实现udp基本生态如下: 1:ve ...
最新文章
- 【gradle】问题及解决
- page rank算法
- when is completed field filled in the backend
- 中缀表达式转换为前缀及后缀表达式并求值【摘】
- LeetCode 652. 寻找重复的子树(DFS)
- 统计csv词频_Python|国家统计局CPI数据动态图表可视化
- 习题:Dual Matrices(思路题/分治)
- [swift]-类的构造函数
- ROS 搞懂多话题回调机制以及消息队列
- Atitit 搜索与搜索领域的技术总结 目录 1. 搜索资料 各种文档累 office eml pdf zip	1 1.1. 搜索用的东东。。Es ffmpeg opencv	1 2. 自然语言处
- gpuinfo测试软件,gpuinfo
- 【信号处理】脉搏信号处理系统含Matlab源码
- java jxls_jxls2.3-简明教程
- thinkphp5.0.20 数据库迁移/填充
- java高级软件工程师 考试_Java高级软件工程师人才缺口巨大
- 抖音国庆小游戏是如何实现的?带你走近 Cocos
- 最详细的北京摩托车上牌流程-自己跑流程
- matlab白光干涉,matlab白光干涉
- 多测师肖sir_高级金牌讲师_jenkins持续集成测试(001)
- 小米路由器 4A 千兆版折腾日志