4086|1

56

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

玩转Zynq连载38——[ex57] Zynq AXI HP总线带宽测试 [复制链接]

 

1 概述

         用于PLDDR3交互的AXI HP总线,它的性能到底如何?吞吐量是否能满足我们的应用?必须4个通道同时使用?还是只使用1个通道?时钟频率的高低对AXI HP总线的带宽有什么影响?这些问题想必是每一个初次使用AXI HP总线的开发者希望评估到的。那么,本实例就搭了一个很基本的架构出来,使用100MHzAXI HP总线时钟频率(可更改),任意开关每个独立的AXI HP读或写通道,以评估不同通道使用情况下的数据吞吐量。大家可以在此基础上,更改不同的AXI HP总线时钟频率,以评估时钟频率对AXI HP总线的影响。

 

2 AXI总线协议介绍

         参考文档《玩转Zynq-基础篇:AXI总线协议介绍.pdf》。

 

3 Zynq PSAXI HPVIO IP配置

         如图所示,在ZYNQ7 Processing System在,点击Page Navigator --> PS-PL Configuration,展开HP Slave AXI Interface,勾选所有的S AXI? interface?代表0/1/2/3)并选中S AXI HP? DATA WIDTH64

         在系统框图中,如图所示,将新出现的S_AXI_HP0/S_AXI_HP1/S_AXI_HP2/S_AXI_HP34AXI HP总线,以及它们的时钟AXI_HP0_ACLK/AXI_HP1_ACLK/AXI_HP2_ACLK/AXI_HP3_ACLK接口都引出。

         如图所示,在Address Editor页面,默认S_AXI_HP0/S_AXI_HP1/S_AXI_HP2/S_AXI_HP3的地址还未分配,需要点击左侧的图标重新分配地址。

         分配好地址后,如图所示。

         接着,我们需要参考文档《玩转Zynq-工具篇:基于VivadoVirtual IO在线板级调试.pdf》新增一个VIO IP核,这个VIO IP的配置如图所示。Input Probe CountOutput Probe Count都为8

         PROBE_IN Ports页面8PortWidth(位宽)都设置为32

         PROBE_OUT Ports页面8PortWidth(位宽)都设置为1

         PL代码中,VIO8Output Probe将分别用于控制4HP总线的读通道和写通道的开关;VIO8Input Probe将锁存显示对应HP总线读或写通道每秒的数据传输字节数。

 

4 PL代码解析

         工程代码的层次结构如图所示。

zstar.v模块是顶层模块,将ZYNQ Procssing System引出的4AXI 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板子上,设置跳线帽P3JTAG模式,即PIN2-3短接。

         连接好串口线(USB线连接PCUSB端口和Zstar板的UART接口)和Xilinx下载线(下载器连接PCUSB端口和Zstar板的JTAG插座)。使用5V电源给板子供电。

         参考文档《玩转Zynq-环境篇:XilinxPlatformCableUSB下载器使用指南》烧录PL工程编译产生的.bit.ltx文件到Zstar板中,如图所示。

         参考《玩转Zynq-工具篇:SDK在线运行裸跑程序.pdf》导出硬件并打开EDK,创建HelloWorld模板工程。运行工程,注意PL.bit文件已经烧录好,不用再次烧录,直接运行.elf文件即可。

         回到Vivado,在Hardware Manager界面点击左上角的Refresh device按钮。

         双击刷新后出现的hw_vio_1所在行。

         出现的dashboard_1界面中,点击左侧的+号,弹出Add Probes窗口,选中所有VIO信号,点击OK,将它们加入到主界面中进行控制或状态监控。

         可以选中所有的Output类型的VIO,右键单击,弹出菜单中选择Toggle Button,后续可以通过点击这些信号来更改10的电平状态切换。

         同样的,选中所有Input类型的VIO总线信号,单击右键,弹出菜单中展开Radix,点击Unsigned Decimal,即以10进制查看这些总线接口。

         接下来,我们就可以通过点击各个en信号,对应的开启某个或某几个AXI HP总线的读或写通道,查看它们的数据吞吐量。如图所示,AXI HP0的读通道开启,吞吐量达到每秒344MByte

         如图所示,AXI HP0的读通道和写通道同时开启,吞吐量分别达到每秒333MByte556MByte

         如图所示,所有4AXI HP总线的读通道和写通道同时开启,每个读通道的吞吐量都在每秒255MByte左右,每个写通道的吞吐量都在每秒340MByte左右。说明4AXI HP总线的吞吐量其实是对等设计的,在同等时钟频率和访问方式下,它们的吞吐量是相当的。相比于使用更少的AXI HP总线,从测试发现相同条件下的单通道带宽反而降低了。究其原因,很好解释,在更多的AXI HP总线通道(不同DDR3地址块)之间频繁切换所需要的DDR3地址切换开销会越来越大,那么就导致单通道的带宽会有所降低。



此内容由EEWORLD论坛网友ove学习使我快乐原创,如需转载或用于商业用途需征得作者同意并注明出处

此帖出自FPGA/CPLD论坛

最新回复

谢谢分享,学习了!   详情 回复 发表于 2020-9-10 17:07
点赞 关注
 

回复
举报

174

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

谢谢分享,学习了!

此帖出自FPGA/CPLD论坛
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表