zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持

这篇具有很好参考价值的文章主要介绍了zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、前言

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

本设计使用Xilinx官方的XDMA方案搭建基于Xilinx系列FPGA的PCIE通信平台,该方案只适用于Xilinx系列FPGA,一并提供了XDMA的安装驱动和QT上位机源代码,省去了使用XDMA繁琐的驱动寻找和上位机软件开发的不知所措,并以搭建好vivado工程,省去了不知道如何使用XDMA的尴尬,使得PCIE的使用变得简单易上手,而不用关心其复杂的PCIE协议;由于我的开发板只支持PCIE X8,所以提供的代码是PCIE X8架构,若需要PCIE X1、 X2、 X8、 X16、 X32的朋友,可自行修改本工程,也可关注我,我会实时发布新的工程。
本工程实现基础的PCIE通信,和QT上位机之间进行测速试验。
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持
本文详细描述了zynq基于XDMA搭建PCIE通信平台的设计方案,与之前出的纯FPGA工程不同,本设计是基于zynq架构的PCIE工程;工程代码可综合编译上板调试,可直接项目移植,适用于在校学生、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的高速接口领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

2、我已有的PCIE方案

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

3、基于zynq架构的PCIE

PCIE理论部分可自行百度或csdn或知乎学习理论知识,其实用了XDMA,已经不太需要直到PCIE复杂的协议和理论了。。。
这里重点讲讲基于zynq架构的PCIE设计方法;
我们知道,PCIE要与PC进行数据交互,必然需要用到FPGA外挂的DDR存储器作为“中介”;但zynq架构的FPGA有个特点,他的PL和PS侧都可以外挂DDR,那是否两边的DDR都能作为PCIE通信的“中介”呢?显然是鱼和熊掌不可得兼的;
先来看看zynq的HP总线,HP的最高位宽仅为64位,如下:
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持
如果zynq给PL的参考时钟为150M,那么HP总带宽为150000000x64=9.6Gb;就算把参考时钟提高到惊人的200M,那么HP总带宽为200000000x64=12.8Gb;而XDMA的PCIE2.0单Line先速率为5Gb,PCIEX8的总先速率则为5x8=40Gb;很显然,使用PS侧DDR作为PCIE与PC通信的“中介”是不可能达到贷款需求的,再加之由于编码、协议等开销,可用带宽只能达到 80%,PS侧DDR更不可能了,所以只能选择PL侧DDR作为PCIE与PC通信的“中介”;
下面看看PL侧DDR为啥可以:
PL侧调用MIG,MIG的用户操作时钟为200M,AXI数据位宽为256位,所以理论带宽=200000000x256=51.2Gb;实际带宽=51.2x80%=40.96Gb;刚好满足PCIEX8 2.0的40Gb线速率;
这么详细的计算告诉你选择zynq的PL侧DDR的原因,够保姆级教学了吧。。。

4、总体设计思路和方案

总体设计思路和方案如下:
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持
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,配置为X8模式;
AXI MIG:调用官方IP,作为数据缓存;

5、vivado工程详解

开发板FPGA型号:Xilinx–zynq–xc7z100ffg900-2;
开发环境:Vivado2019.1;
输入\输出:PCIE X8;
应用:QT上位机测速试验;
工程BD如下:
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持
综合后的代码架构如下:
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持
综合编译完成后的FPGA资源消耗和功耗预估如下:
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持

6、SDK 工程详解

由于测速工程zynq软核除了提供时钟外并未做其他事,所以我们只将zynq配置为boot启动即可下载上板使用了,SDK生成boot方法如下:
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持

7、驱动安装

提供提供Win系统驱动,目录如下:
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持
提供了Win和Linux驱动,
驱动的具体安装教程请参考我之前的文章:点击直接前往

8、QT上位机软件

QT测速上位机:提供源代码和可执行程序,发开版本为QT5.6.2;位置如下:
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持

9、上板调试验证

开启上位机测程序进行 PCIe 速度测试,打开下图的测速软件 pciespeed,测速软件在如下位
置,实验结果如下:
读写同时进行测试:
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持
只读测试:
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持
只写测试:
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持

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

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持
zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持文章来源地址https://www.toymoban.com/news/detail-456460.html

到了这里,关于zynq基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

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

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

    2023年04月24日
    浏览(41)
  • FPGA XDMA 中断模式实现 PCIE X8 AD7606采集 提供2套工程源码和QT上位机源码

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

    2024年02月12日
    浏览(28)
  • FPGA基于XDMA实现PCIE X4视频采集HDMI输出 提供工程源码和QT上位机程序和技术支持

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

    2024年02月02日
    浏览(32)
  • FPGA基于XDMA实现PCIE X4的HDMI视频采集 提供工程源码和QT上位机程序和技术支持

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

    2023年04月18日
    浏览(28)
  • 基于XDMA 中断模式的 PCIE 上位机与FPGA数据交互架构 提供工程源码和QT上位机源码

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

    2024年02月11日
    浏览(43)
  • FPGA XDMA 中断模式实现 PCIE3.0 AD7606采集 提供2套工程源码和QT上位机源码

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

    2024年02月13日
    浏览(23)
  • 紫光同创FPGA实现PCIE测速试验,提供PDS工程和Linux QT上位机源码和技术支持

    紫光同创FPGA实现PCIE测速试验,提供PDS工程和Linux QT上位机源码和技术支持 “苟利国家生死以,岂因祸福避趋之!”大洋彼岸的我优秀地下档员,敏锐地洞察到祖国的短板在于高精尖半导体的制造领域,于是本着为中华民族伟大复兴的中国梦贡献绵薄之力的初心,懂先生站在

    2024年02月08日
    浏览(34)
  • Zynq实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持

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

    2024年02月07日
    浏览(64)
  • 基于Zynq的雷达10Gbps高速PCIE数据采集卡方案(一)总体设计

    2.1 引言 本课题是来源于雷达辐射源识别项目,需要对雷达辐射源中频信号进行采集传输 和存储。本章基于项目需求,介绍采集卡的总体设计方案。采集卡设计包括硬件设计 和软件设计。首先对采集卡的性能和指标进行分析,接着提出硬件的总体设计,在硬 件设计基础上提

    2024年02月05日
    浏览(38)
  • FPGA(基于xilinx)中PCIe介绍以及IP核XDMA的使用

    例如:第一章 PCIe简介以及IP核的使用 PCIe 总线架构与以太网的 OSI 模型类似,是一种分层协议架构, 分为事务层(Transaction Layer)、 数据链路层(Data Link Layer) 和物理层(Physical Layer)。 这些层中的每一层都分为两部分:一部分处理出站(要发送的)信息,另一部分处理入站(接收

    2024年02月08日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包