FPGA XDMA 中断模式实现 PCIE3.0 测速试验 提供工程源码和QT上位机源码
前言
PCIE(PCI Express)作为现今行业首选的源码电视连接源码高速接口标准,相较于PCI及早期总线结构,络测提供了专用连接,速源大幅提高了数据传输效率。测速本设计采用Xilinx的源码XDMA方案,构建基于Xilinx系列FPGA的络测PCIE3.0通信平台,通过XDMA的速源中断模式与QT上位机通讯。上位机通过软件中断实现与FPGA的测速数据交互,关键在于设计了一个xdma_inter.v中断模块,源码该模块与驱动配合处理中断,络测通过AXI-LITE接口,上位机读写xdma_inter.v寄存器实现数据传输。此外,通过AXI-BRAM演示了用户空间的读写访问测试。此方案仅适用于Xilinx系列FPGA,提供完整的工程源码和QT上位机源码,简化了驱动查找与软件开发步骤,使得PCIE应用更加便捷。本文详细描述了设计过程,提供完整的工程源码和技术支持。
我已有的PCIE方案
我的主页包含基于XDMA的PCIE通信专栏,涵盖轮询模式及RIFFA实现的数据交互与测速,以及应用级别图像采集传输方案,详情请参阅专栏地址。
PCIE理论
PCIE相关理论知识,如协议细节与工作原理,可自行查阅百度、海免税溯源码CSDN或知乎等平台。使用XDMA后,对PCIE协议的理解需求降低。
总体设计思路和方案
总体设计思路围绕XDMA实现PCIE通信。XDMA作为高性能、可配置的SG模式DMA,适用于PCIE2.0和3.0,支持AXI4或AXI4-Stream接口,通常与DDR协同工作。设计中重点是编写xdma_inter.v中断模块,配合驱动处理中断,实现AXI-LITE接口,上位机通过访问用户空间地址读写寄存器。同时,利用AXI-BRAM进行用户空间读写测试。
QT上位机及其源码
本方案使用VS + Qt 5..构建QT上位机,通过中断模式调用XDMA官方API,实现与FPGA的数据交互。提供的例程专注于读写测速功能,附带完整的QT上位机软件及源码。
vivado工程详解
开发板采用Xilinx-xcku-ffva-2-i型号,使用Vivado.2构建工程。配置PCIE3.0 X8接口,实现QT上位机的测速试验功能。综合后的代码架构展示了XDMA中断数量的设置,同时进行了FPGA资源消耗和功耗预估。
上板调试验证
开启上位机测速程序,通过QT软件进行PCIE速度测试。结果显示读写、单读、单写测试的游戏源码生成游戏性能表现。
福利:工程代码获取
由于代码体积过大,不便通过邮件发送,提供某度网盘链接方式获取完整工程代码。资料获取方式通过私信联系。
PCIE专题第三章PCIE测试
PCIE专题第三章:PCIE测试
本章节将探索如何在FPGA板卡上实现简单的PCIE测速功能,包括测速PCIE链路收发以及入门级PCIE技术。
硬件资源介绍:PCIE接口采用金手指接口,可以轻松插入电脑主板插槽,与电脑完成连接。接口主要由5对差分线与复位线构成,包括2对发送数据、2对接收数据、1对时钟和一个复位线,构成PCIE X2通道。
程序设计:章节内容主要围绕移植官方提供的工程。RIFFA项目作为开源项目,工程可在GitHub上直接下载,网址为github.com/KastnerRG/ri...。如果需要深入研究RIFFA框架,请认真阅读相关驱动程序文档。
示例工程查看:首先,了解RIFFA框架的工作原理,建议仔细研究官方示例工程。然后,创建一个新工程,复制官方示例文件并修改为适应自己FPGA板子的版本。此过程需熟悉其组成部分并逐步深入。
修改官方示例:根据自己的FPGA芯片型号(如XC7AT-FFG、XC7AT-FFG、XC7AT-FBG等)对IP核进行更新。在Core Capability页,燕窝溯源码中国修改事务层最大负载数据为字节,确保与IP核配置相匹配。
修改顶层文件与约束文件:将顶层文件中C_NUM_LANES由4通道修改为2通道,C_PCI_DATA_WIDTH数据宽度由位宽修改为位宽,C_MAX_PAYLOAD_BYTES最大负载数据修改为。同时,删除并修改约束文件内容,确保程序正确固化到外部flash中。
IP核详解:7 Series Integrated Block for PCI Express是XILINX在7系列FPGA上的一种可扩展、高带宽和可靠的串行互连构建块,用于构建PCIE应用。IP核包含完整的事务层、数据链路层与物理层,支持最高5gb/s (Gen2)速度下的1通道、2通道、4通道和8通道端点和根端口配置,接口使用AMBA的axi4 stream接口。
自建工程:熟悉官方示例与IP核后,通过添加源码,自建IP核建立Riffa框架在FPGA的工程。在riffa源码下xilinx目录建立嵌入式工程目录,拷贝相关代码文件到目录下,并创建工程。选择适当的FPGA芯片型号,添加约束文件,最终生成比特流文件和配置文件,下载到FPGA板卡。
结果验证:使用PCIE测速助手软件检测PCIE板卡状态,若正常工作,显示读写速度测速功能;若未插入PCIE板卡,则显示未插入状态。查绑源码html点击测速按钮,进行PCIE测速操作,速度显示结果将通过软件仪表盘显示。
官方测速程序与QT上位机编写:使用官方测速程序进行设备测试,通过命令行操作获取最大带宽。QT上位机编写测速软件,需要对QT与C/C++语言有基础了解,程序设计逻辑包括设备检测、测速按键控制、速度计算与显示。程序代码主要逻辑在widget.cpp文件中实现,通过时间差计算读写速度,并将结果展示在仪表盘上。
章节总结:本章节涵盖了从FPGA板卡到上位机的完整PCIE测试流程,通过软硬件结合,实现基本的PCIE测速功能。
自建speedtest测速服务器教程,Linux/Windows/群晖
您可以在VPS上搭建speedtest测速网站以测试VPS的带宽,或在内网中搭建speedtest测试内网带宽。本文将介绍如何在Linux、Windows和群晖上搭建speedtest服务器。
高性价比和便宜的VPS/云服务器推荐: blog.zeruns.tech/archiv...
什么是speedtest
speedtest主要使用HTML和JavaScript,通过客户端浏览器上传和下载垃圾数据来测试HTTP传输速度,与常用的speedtest.net相似。speedtest可以使用任何操作系统上的任何Web服务器作为服务端,理论上支持Windows/MacOS/Linux/Unix等系统,IIS/Nginx/Apache/lig/?...
安装好后会显示面板地址和账号密码,复制到浏览器打开。
然后按照下图选择安装套件
接着添加网站,域名那里填自己的域名,如果没有域名可以直接填IP
接着下载speedtest源码然后上传到服务器: /i8X6oeasf
然后直接访问域名或服务器IP即可打开测速页面。
群晖
首先下载speedtest并上传到群晖,speedtest下载: /i8X6oeasf 将speedtest包中的文件上传到群晖共享文件夹的某个目录,如下图
从套件中心找到并安装Web Station和PHP 7.0
打开Web Station套件,选择PHP设置,编辑默认PHP配件文件。勾选openssl
选择虚拟主机,点击新增,然后按下图配置虚拟主机。其中端口和文档根目录按实际情况设置
安装完成后,浏览器打开群晖IP加你自己设置的端口即可打开测速页面。
cpu延时函数
高精度延时, 是 CPU 测速的基础 Windows 内部有一个精度非常高的定时器, 精度在微秒级, 但不同的系统这个定时器的频率不同, 这个频率与硬件和操作系统都可能有关。
利用 API 函数 QueryPerformanceFrequency 可以得到这个定时器的频率。
利用 API 函数 QueryPerformanceCounter 可以得到定时器的当前值。 根据要延时的时间和定时器的频率, 可以算出要延时的时间定时器经过的周期数。
在循环里用 QueryPerformanceCounter 不停的读出定时器值, 一直到经过了指定周期数再结束循环, 就达到了高精度延时的目的。 高精度延时的程序, 参数: 微秒 二.测速程序 利用 rdtsc 汇编指令可以得到 CPU 内部定时器的值, 每经过一个 CPU 周期, 这个定时器就加一。 如果在一段时间内数得 CPU 的周期数, CPU工作频率 = 周期数 / 时间 为了不让其他进程和线程打扰, 必需要设置最高的优先级 以下函数设置当前进程和线程到最高的优先级。
SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS) SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL) CPU 测速程序的源代码, 这个程序通过 CPU 在 1/ 秒的时间内经过的周期数计算出工作频率, 单位 MHz
中科大测速网 - 简单纯粹、免费开源的在线测速工具,使用免费无广告,代码开源
中国科学技术大学开发的免费在线测速工具「中科大测速网」,界面简洁,功能纯粹,无广告干扰,代码开源,兼容所有现代浏览器。不论Windows、macOS还是Linux系统,只需打开浏览器即可使用,高效测试网络的上行、下行带宽。该工具的全球版本提供不同国家节点的测速选择,使用稳定且结果准确,推荐收藏。
此工具分为国内版和全球版。国内版专为国内网络环境设计,而全球版则提供多个国际节点,便于用户在全球范围内进行网络测速。使用方法简单,只需打开网页即可自动开始测速,无需操作。测速结果关注的重点是上传速度和下载速度,帮助用户判断网络是否正常。
在使用测速工具前,了解带宽的基本常识非常重要。例如,Mbps的宽带理论上最大下载速度为.5m/s,最大上传速度是下载速度的一半,即大约5-6m/s。了解这些常识能帮助用户更好地识别网络问题的根源。
测速工具的稳定性和准确性对于网络诊断至关重要。中科大测速网使用体验良好,测速结果精准,推荐用户在出现网络问题时使用。工具支持国内版和全球版,满足不同用户需求。
对于家用宽带,用户可以参考带宽的基本常识来判断网络问题。例如,了解最大下载和上传速度的计算方法,有助于用户识别网络是否正常运行。同时,了解网络传输的复杂性,以及下载源服务器的带宽限制,能帮助用户更好地理解实际网络速度。
使用测速工具判断网络故障时,可参考实际测速结果与带宽数值的比较。如果多次测速结果低于带宽数值,可能意味着设备存在故障。通过对比测速结果与带宽数值,用户可以快速判断网络问题是否由设备引起。
「中科大测速网」是一款免费开源的在线测速工具,源自国内知名高校中国科学技术大学。工具基于MIT开源协议,任何人都可以免费使用,并且源码可供有兴趣的开发者下载,进行二次开发或应用于个人项目。该工具不仅提供了实用的测速功能,还促进了开源社区的发展,提升了网络测速工具的可用性和创新性。
FPGA纯verilog实现RIFFA的PCIE测速实验,提供工程源码和QT上位机
本文详细介绍了如何使用FPGA纯verilog实现RIFFA的PCIE测速实验,并提供了完整的工程源码和QT上位机技术。本文旨在帮助在校学生、研究生、在职工程师等开发者深入理解PCIE通信,并将其应用于医疗、军工等行业的数字成像和图像传输领域。
在设计中,我们使用了Xilinx的PCIE IP作为桥接工具,实现了PCIE和电脑主机之间的简单通信。在电脑端运行测试的QT上位机显示了收发速率,工程代码经过编译后在FPGA板上调试验证,确保了实验的可行性。
对于希望深入理解PCIE通信的开发者,本文提供了详细的RIFFA理论基础,以及针对不同需求的vivado工程详解。我们修改了之前的工程,取消了自定义IP封装,调整了位宽、通道和链路速度,以适应PCIEX2的板子,并将开发环境调整回Vivado.1,以确保兼容性。
在上板调试验证阶段,我们通过设备管理器检查PCIE设备状态,并使用PCEI测速助手进行测速。QT上位机提供了直观的测速界面,通过发送和接收数据计算读写速度,并显示在仪表盘上。
对于有需要的开发者,本文提供了一个完整的工程代码包,可以通过链接下载。此代码包已压缩,方便下载和使用。
紫光同创FPGA实现PCIE测速试验,提供PDS工程和Linux QT上位机源码和技术支持
紫光同创FPGA在PCIE测速试验中展现出实力,提供PDS工程和Linux QT上位机源码及技术支持
在半导体制造领域,紫光同创FPGA的崛起值得瞩目。自年起,中国FPGA产业经历了从无到有,从弱到强的蜕变,如今已进入百花齐放的阶段。国产FPGA不仅在性价比上具有显著优势,且拥有完整的自主知识产权,FAE技术支持也表现出色,使得开发过程更为顺畅。紫光同创的PG2LH-6FBG FPGA通过实现PCIE测速试验,展示了其在高速接口应用中的性能。
具体操作上,文章指导了如何利用紫光同创的PCIE IP核,配置为X2模式并实现5G线速率。提供的example工程包括DMA内存测试功能,Linux驱动文件和QT上位机源码,使得用户能够轻松进行测速试验。工程源码和配套技术资源包括Pango Design Suite工程、PCIE IP核文件、驱动及上位机源码,适用于学生和工程师的学习与实践,尤其在医疗和军工等领域有广泛应用。
在硬件设计部分,文章提到了作者的PCIEX2接口板和详细的配置过程。此外,还分享了驱动文件的安装和QT上位机的使用教程。整个流程从软件到硬件,为用户提供了完整的学习路径。
最后,文章提供了获取工程代码和相关资源的方式,包括通过网盘链接下载。整体而言,紫光同创FPGA的PCIE测速试验不仅展示了其技术实力,也为用户提供了实用的开发工具和资源支持。
2024-11-30 18:37
2024-11-30 18:18
2024-11-30 18:17
2024-11-30 17:40
2024-11-30 16:15