来自FPGA执行的内存性能信息
类似于在模拟中生成的内存性能图,您可以从FPGA上运行的设计中收集内存互连流量信息。然后可以生成类似的性能图。中查看的内存事务信息逻辑分析仪工具类似于从内存控制器模拟突发事务。使用这些图来监控真实的内存性能、调试和改进设计,并将它们与模拟中获得的内存性能进行比较。
包括AXI互连监视器(AIM) IP在您的设计中,在配置参数的型号中,选择包括AXI互连监视器选择下硬件实现>目标硬件资源>FPGA设计(调试).的AXI互连监视器IP在FPGA上运行时从设计中收集信息。你可以从MATLAB中查询这些信息®通过使用JTAG连接。FPGA中的所有内存主控制器都连接到AXI互连监视器IP。这些master可以包括内存通道和内存流量发生器您为其生成HDL代码的块或您设计中的任何其他master。
的SoC建设者工具为您的设计生成一个JTAG测试平台脚本。脚本从AXI互连监视器并启动性能图应用程序,该应用程序绘制带宽、突发数和事务延迟的内存性能图。这些图与模拟中的内存性能图相似。您还可以修改脚本来收集和显示内存事务波形,类似于模拟中内存控制器的突发波形。有关模拟内存性能的信息,请参见模拟性能图和缓冲和突发波形.
有关示例,请参见使用流量发生器分析内存带宽,演示了如何在模拟和在FPGA上运行时监控内存性能。生成的脚本SoC建设者工具使用JTAG连接来启用设计中的任何流量生成器,然后从AXI互连监视器尽可能快地获取IP。采样间隔取决于JTAG延迟,通常为10 ms到20 ms。脚本然后显示类似于内存控制器块在你的模拟。该图显示每个主服务器的带宽、突发数和事务延迟。
请注意
AXI主机本身没有连接到AXI互连监视器.因此,硬件诊断不包括仅用于测试台的主服务器的内存使用情况图,这些主服务器使用预定的数据初始化内存。
内存性能图
脚本从AXI互连监视器并启动性能图应用程序。
内存带宽图
在带宽选项卡,选择要为其绘制带宽图的主机。点击创建图查看所选主服务器在运行期间的带宽(以兆字节/秒为单位)。的带宽使用流量发生器分析内存带宽的例子。
内存爆发图
在爆发选项卡,选择要绘制爆发图的主图。点击创建图查看在运行时期间为所选主机执行的突发数。的爆发计数使用流量发生器分析内存带宽的例子。
内存延迟图
在延迟选项卡,选择要绘制其延迟图的主机。点击创建图要查看所选主机在运行时期间的延迟。此图像显示了的总延迟硕士1
在使用流量发生器分析内存带宽的例子。然后可以放大以分析峰值瞬时延迟。
您可以从以下选项中选择:
突发请求第一次传输完成-此选项显示从主服务器发出事务请求到第一次传输数据所花费的时间。这种延迟会导致仲裁或互连延迟。
破裂的执行-该选项显示从第一次数据传输到突发最后一次传输所花费的时间。
爆裂最后转移完成-此选项显示从上次转账到完成交易所需的时间。对于读事务,它是0。
瞬时总时延-该选项显示每次爆发的离散总延迟测量。
所绘制的每个延迟值都是各自延迟的平均值,由采样间隔内的内存事务测量而来。下图显示了硬件上的一个AXI4主协议写和读事务,显示了这些延迟。
写事务
读事务
在读事务中,突发最后一次传输到完全延迟是零。
数据溢出
在配置文件
模式下,collectMemoryStatistics
函数对内存指标进行采样:每次采样后从硬件中获取带宽、突发和延迟值。之后,该函数重置度量计数器,然后为下一个示例再次启动计数器。如果任何度量计数器超过2的限制32- 1在采样间隔内,计数器溢出,对应的采样指示为*在情节中。
破裂的波形
您也可以修改生成的脚本来配置AXI互连监视器为每个突发事务收集事件数据。中查看这些事件逻辑分析仪波形查看器检查仲裁行为。指定要捕获的事务数,跟踪捕获深度,在配置参数的型号,下硬件实现>目标硬件资源>FPGA设计(调试).
波形显示事件类型(BurstIdle
,BurstRequest
,BurstExecuting
,或BurstDone
)和突发事务的这些参数:
MasterID
——发出请求的内存主机的ID号DataWidth
——以位为单位的数据宽度BurstLength
——突发请求中的数据字数BurstsTransferred
——此请求中的突发数(仅对BurstDone
事件)BytesTransferred
——请求中的字节数(仅对BurstDone
事件)
您可以将这些波形与从您的内存控制器模拟块。
配置和查询AXI Interconnect Monitor
的AXI互连监视器(AIM)是一个IP核,用于收集基于axis的FPGA设计的性能指标。创建一个socIPCore
对象来设置和配置AIM IP地址,并使用socMemoryProfiler
对象检索和显示数据。
有关如何在设计中使用MATLAB作为AXI Master配置和查询AIM IP的示例,请参见使用流量发生器分析内存带宽.具体地说,回顾soc_memory_traffic_generator_axi_master.m
在设备上配置和监视设计的脚本。
选择内存监控模式
的AXI互连监视器可以收集两类数据。选择配置文件
模式来收集平均事务延迟、字节数和突发数。在这种模式下,您可以打开一个性能绘图工具,然后配置该工具来绘制带宽、突发计数和事务延迟。选择跟踪
模式收集详细的内存事务事件数据,并以波形的形式查看数据。
perfMonMode = 'Profile';%或'Trace'
配置AXI Interconnect Monitor
要从生成的FPGA设计中获得诊断性能指标,必须从MATLAB建立到设备的JTAG连接。加载一个.mat
包含从板配置参数派生的结构的文件。该文件由SoC建设者工具。这些结构描述了内存互连和主配置,如缓冲区大小和地址。使用socHardwareBoard
对象来建立JTAG连接。
负载(“soc_memory_traffic_generator_zc706_aximaster.mat”);hwObj = socHardwareBoard(Xilinx Zynq ZC706评估试剂盒,“连接”、假);AXIMasterObj = socAXIMaster(hwObj);
socIPCore
对象提供执行此初始化的函数。接下来,设置一个socMemoryProfiler
对象来收集指标。apmCoreObj = socIPCore(AXIMasterObj,perf_mon,“PerformanceMonitor”,“模式”, perfMonMode);初始化(apmCoreObj);profilerObj = socMemoryProfiler(hwObj,apmCoreObj);
检索诊断数据
要从FPGA上运行的设计中检索性能指标或信号数据,请使用socMemoryProfiler
对象的功能。
为配置文件
模式,调用collectMemoryStatistics
循环中的函数。
NumRuns = 100;为n = 1:NumRuns collectMemoryStatistics(profilerObj);结束
为跟踪
模式,调用collectMemoryStatistics
函数一次。该功能可以阻止IP将事务写入FIFOAXI互连监视器IP,虽然交易继续在互连。设置事务FIFO的大小,跟踪捕获深度,在配置参数的型号,下硬件实现>目标硬件资源>FPGA设计(调试).
collectMemoryStatistics (profilerObj);
可视化性能指标
方法可视化性能数据plotMemoryStatistics
函数。在配置文件
模式下,此功能打开一个性能绘图工具,您可以配置该工具来绘制带宽、突发计数和平均事务延迟。在跟踪
模式,此函数打开逻辑分析仪查看突发事务事件数据的工具。
plotMemoryStatistics (profilerObj);
另请参阅
内存控制器|socMemoryProfiler
|collectMemoryStatistics
|plotMemoryStatistics