[X]关闭

[米联客-XILINX-H3_CZ08_7100] FPGA_PCIE通信(linux)连载-04PCIE 测速码表程

文档创建者:FPGA课程
浏览次数:232
最后更新:2024-09-18
文档课程分类-AMD-ZYNQ
AMD-ZYNQ: ZYNQ-FPGA部分 » 2_FPGA实验篇(仅旗舰) » 7-FPGA PCIE通信(Linux)
本帖最后由 FPGA课程 于 2024-9-18 10:05 编辑

​ 软件版本:VIVADO2021.1
操作系统:WIN10 64bit
硬件平台:适用 XILINX A7/K7/Z7/ZU/KU 系列 FPGA
实验平台:米联客-MLK-H3-CZ08-7100开发板
板卡获取平台:https://milianke.tmall.com/
登录“米联客”FPGA社区 http://www.uisrc.com 视频课程、答疑解惑!



1概述
经过前面章节的学习,如果读者应该已经掌握了PCIE XDMA方案的使用,那么我们知道QT可以设计出华丽的界面,那么本章就是设计一个简单的测速码表程序,比起前面的章节测试,这个小程序界面非常酷。
2系统构架
本系统中通过XDMA IP将开发板及PCIE上位机识别连接。AXI Interconnect IP通过使用AXI及AXI_LITE总线将XDMA与内存部分DDR或者Bram连接。通过PCIE上位机发出读写指令控制XDMA对开发板内存进行读写操作。
c7cf4dff44d24ce7a039e379dc22eb40.jpg
3FPGA代码
FPGA可以用任何一个章节的,这里就用“03基于XDMA实现PCIE通信方案”的代码,简单。具体就不重复了,不清楚的可以看“03基于XDMA实现PCIE通信方案”相关部分教程内容。本方案中的上位机没有使用中断功能。
7f9cf3417f0c4a96a80ea220ad120c92.jpg
4测试码表上位机程序设计
首先感谢网友贡献的测试码表控件源码,笔者修改了几个参数就可以正常使用到本次的例子中了。设计思路也很简单,在QT中开启了2个定时器,分别用于h2c和c2h通道,每过100ms定时器进行一次读操作或者写操作。在pcie_fun.c文件中,有测试函数,完成传输测试后,把结果的值输出到myspeed测速码表控件。
20056975829e4a2cbcbf27b832d850fd.jpg
以上代码中,显示速度的控件代码是myspeed.c和myspeed.h
关于PCIE通信的核心代码是pcie_fun.c和pcie_fun.h 详细的实现过程读者可以阅读程序源码。
5硬件安装
注意先下载程序,调试阶段下载bit文件,然后再开电脑。这样才能正确识别和后续测试工作正常开展。
81fe067d1c284466bcdcce59fb767aff.jpg
6实验结果
使用sudo命令打开本课上位机,sudo /opt/Qt5.13.1/Tools/QtCreator/bin/qtcreator(后面不在说明)
971ecf6a5ddd4b78b9366566ce76631e.jpg
不同的板卡,PCIE 的最大带宽不一样,以实际为准。下面的是 PCIEX8 2.0 的测速指标。
3118d158755e4ad9b091b1364f51348d.jpg


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则