在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2554|回复: 1

[原创] 玩转Zynq连载38——[ex57] Zynq AXI HP总线带宽测试

[复制链接]
发表于 2019-11-28 10:16:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
00.jpg
1概述
         用于PL与DDR3交互的AXI HP总线,它的性能到底如何?吞吐量是否能满足我们的应用?必须4个通道同时使用?还是只使用1个通道?时钟频率的高低对AXI HP总线的带宽有什么影响?这些问题想必是每一个初次使用AXI HP总线的开发者希望评估到的。那么,本实例就搭了一个很基本的架构出来,使用100MHz的AXI HP总线时钟频率(可更改),任意开关每个独立的AXI HP读或写通道,以评估不同通道使用情况下的数据吞吐量。大家可以在此基础上,更改不同的AXI HP总线时钟频率,以评估时钟频率对AXI HP总线的影响。
2 AXI总线协议介绍
         参考文档《玩转Zynq-基础篇:AXI总线协议介绍.pdf》。
3 Zynq PSAXI HPVIO IP配置
         如图所示,在ZYNQ7Processing System在,点击Page Navigator --> PS-PL Configuration,展开HP SlaveAXI Interface,勾选所有的S AXI? interface(?代表0/1/2/3)并选中S AXI HP? DATA WIDTH为64。
38-1.png
         在系统框图中,如图所示,将新出现的S_AXI_HP0/S_AXI_HP1/S_AXI_HP2/S_AXI_HP3这4条AXI HP总线,以及它们的时钟AXI_HP0_ACLK/AXI_HP1_ACLK/AXI_HP2_ACLK/AXI_HP3_ACLK接口都引出。
38-2.png
         如图所示,在Address Editor页面,默认S_AXI_HP0/S_AXI_HP1/S_AXI_HP2/S_AXI_HP3的地址还未分配,需要点击左侧的图标重新分配地址。
38-3.png
         分配好地址后,如图所示。
38-4.png
         接着,我们需要参考文档《玩转Zynq-工具篇:基于Vivado的Virtual IO在线板级调试.pdf》新增一个VIO IP核,这个VIO IP的配置如图所示。InputProbe Count和Output Probe Count都为8。
38-5.png
         PROBE_IN Ports页面8个Port的Width(位宽)都设置为32。
38-6.png
         PROBE_OUT Ports页面8个Port的Width(位宽)都设置为1。
38-7.png
         在PL代码中,VIO的8个Output Probe将分别用于控制4条HP总线的读通道和写通道的开关;VIO的8个Input Probe将锁存显示对应HP总线读或写通道每秒的数据传输字节数。
4 PL代码解析
         工程代码的层次结构如图所示。
38-8.png
zstar.v模块是顶层模块,将ZYNQ Procssing System引出的4条AXI HP总线的读写通道分别连接到各个具体的逻辑模块中。
timer_1s_generation.v模块是1s定时模块,每秒钟定时产生一个脉宽为100个时钟周期的复位信号timer_1s_rst_n,读写模块的带宽以这个复位信号为周期进行计算。
axi_hp0_wr.v模块实现连续数据写入AXI HP总线的写通道。axi_hp0_rd.v模块不断的送AXI HP的读地址。Vio_0.v模块是例化的VIO IP模块,引出各个HP总线的读或写使能开关以及对应通道的带宽。
5嵌入式软件工程创建
         参考文档《玩转Zynq-工具篇:导出PS硬件配置和新建SDK工程.pdf》导出PS硬件工程,并打开EDK新建一个HelloWorld的模板工程。本实例并不需要在嵌入式软件中做任何其它的功能实现,只需要在.bit文件烧录完成后,运行嵌入式软件即可(主要是PL端的时钟源是来自Zynq PS,因此必须在嵌入式软件运行起来后,才能够产生时钟信号)。
6板级调试
         在Zstar板子上,设置跳线帽P3为JTAG模式,即PIN2-3短接。
         连接好串口线(USB线连接PC的USB端口和Zstar板的UART接口)和Xilinx下载线(下载器连接PC的USB端口和Zstar板的JTAG插座)。使用5V电源给板子供电。
         参考文档《玩转Zynq-环境篇:XilinxPlatformCableUSB下载器使用指南》烧录PL工程编译产生的.bit和.ltx文件到Zstar板中,如图所示。
38-9.png
         参考《玩转Zynq-工具篇:SDK在线运行裸跑程序.pdf》导出硬件并打开EDK,创建HelloWorld模板工程。运行工程,注意PL的.bit文件已经烧录好,不用再次烧录,直接运行.elf文件即可。
         回到Vivado,在HardwareManager界面点击左上角的Refresh device按钮。
38-10.png
         双击刷新后出现的hw_vio_1所在行。
38-11.png
         出现的dashboard_1界面中,点击左侧的+号,弹出AddProbes窗口,选中所有VIO信号,点击OK,将它们加入到主界面中进行控制或状态监控。
38-12.png
         可以选中所有的Output类型的VIO,右键单击,弹出菜单中选择ToggleButton,后续可以通过点击这些信号来更改1或0的电平状态切换。
38-13.png
         同样的,选中所有Input类型的VIO总线信号,单击右键,弹出菜单中展开Radix,点击Unsigned Decimal,即以10进制查看这些总线接口。
38-14.png
         接下来,我们就可以通过点击各个en信号,对应的开启某个或某几个AXI HP总线的读或写通道,查看它们的数据吞吐量。如图所示,AXI HP0的读通道开启,吞吐量达到每秒344MByte。
38-15.png
         如图所示,AXI HP0的读通道和写通道同时开启,吞吐量分别达到每秒333MByte和556MByte。
38-16.png
         如图所示,所有4条AXI HP总线的读通道和写通道同时开启,每个读通道的吞吐量都在每秒255MByte左右,每个写通道的吞吐量都在每秒340MByte左右。说明4条AXI HP总线的吞吐量其实是对等设计的,在同等时钟频率和访问方式下,它们的吞吐量是相当的。相比于使用更少的AXI HP总线,从测试发现相同条件下的单通道带宽反而降低了。究其原因,很好解释,在更多的AXI HP总线通道(不同DDR3地址块)之间频繁切换所需要的DDR3地址切换开销会越来越大,那么就导致单通道的带宽会有所降低。
38-17.png
更多资料共享
腾讯微云链接:https://share.weiyun.com/5s6bA0s
百度网盘链接:https://pan.baidu.com/s/1XTQtP5LZAedkCwQtllAEyw
提取码:ld9c

发表于 2020-6-4 15:15:21 | 显示全部楼层
你好,是否方便提供pl代码呀?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-4 22:03 , Processed in 0.019046 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表