主要内容

来自FPGA执行的内存性能信息

类似于在模拟中生成的内存性能图,您可以从FPGA上运行的设计中收集内存互连流量信息。然后可以生成类似的性能图。中查看的内存事务信息也可以捕获逻辑分析仪工具类似于从内存控制器的突发事务模拟。使用这些图来监视真实的内存性能,调试和改进设计,并将它们与模拟中获得的内存性能进行比较。

要包括AXI互连监视器(AIM) IP在您的设计中,在配置参数的型号中,选择包括AXI互连监视器选择下硬件实现>目标硬件资源>FPGA设计(调试).的AXI互连监视器IP在FPGA上运行时从设计中收集信息。你可以从MATLAB中查询这些信息®通过使用JTAG连接。FPGA中的所有内存主控制器都连接到AXI互连监视器IP。这些主控包括内存通道而且内存流量生成器您为其生成HDL代码的块或您的设计中的任何其他大师。

FPGA框图。几个主块连接到一个AXI Interconnect。AXI互连连接到一个内存控制器和DDR内存,也连接到一个通过JTAG连接到主机的AXI主IP。

SoC建设者工具为您的设计生成一个JTAG测试工作台脚本。脚本收集性能指标AXI互连监视器并启动性能图应用程序,该应用程序根据带宽、突发数和事务延迟绘制内存性能图。这些图与模拟中的内存性能图相似。您还可以修改脚本,以收集和显示类似于模拟内存控制器突发波形的内存事务波形。有关模拟内存性能的信息,请参见模拟性能图而且缓冲和爆发波形

示例请参见使用流量生成器分析内存带宽,演示了如何在模拟和在FPGA上运行时监视内存性能。生成的脚本SoC建设者工具使用JTAG连接来启用设计中的任何流量生成器,然后对内存性能信息从AXI互连监视器尽可能快地获取IP。采样间隔取决于JTAG延迟,一般从10毫秒到20毫秒不等。脚本然后显示类似于内存控制器在模拟中阻塞。图中显示了每个主机的带宽、突发数和事务延迟。

请注意

控件本身没有连接到AXI互连监视器.因此,硬件诊断不包括仅用于使用预定数据初始化内存的测试工作台主程序的内存使用情况图。

内存性能图

脚本收集性能指标AXI互连监视器并启动性能图应用程序。

内存带宽图

带宽选项卡,选择要为其绘制带宽图的主节点。点击创建图查看所选主机在运行时期间的带宽(以兆字节/秒为单位)。的带宽使用流量生成器分析内存带宽的例子。

为标题为“使用流量生成器分析内存带宽”的示例显示带宽的图。数据在FPGA上执行。

内存爆发图

爆发选项卡,选择要绘制突发图形的主单元。点击创建图查看在运行时的持续时间内为所选主机执行的突发数。的爆发计数使用流量生成器分析内存带宽的例子。

图显示了标题为“使用流量生成器分析内存带宽”的示例的突发计数。数据在FPGA上执行。

内存延迟图

延迟选项卡,选择要绘制其延迟图的主节点。点击创建图要查看所选主机在运行时期间的延迟。该图像显示了总延迟硕士1使用流量生成器分析内存带宽的例子。然后可以放大分析峰值瞬时延迟。

在标题为“使用流量生成器分析内存带宽”的示例中,显示主服务器1的总延迟的图。数据在FPGA上执行。

你可以从以下选项中选择:

  • 突发请求第一次传输完成-该选项显示从主服务器发出事务请求到第一次传输数据所需的时间。这种延迟会导致仲裁或互连延迟。

  • 破裂的执行-该选项显示从第一次传输数据到突发最后一次传输所需的时间。

  • 爆破最后一次转移完成-该选项显示从上次转账到完成交易所需的时间。对于读事务,它是0。

  • 瞬时总延迟-该选项显示每个突发的离散总延迟测量。

所绘制的每个延迟值都是各自延迟的平均值,由采样间隔内的内存事务测量。下图显示了硬件上的一个AXI4主协议写和读事务,显示了每种延迟。

写事务

AXI4写事务的时序图。

读事务

AXI4读事务的时序图。

在读事务中,爆发最后一次传输到完全延迟是零。

数据溢出

配置文件模式下,collectMemoryStatistics函数采样内存指标:带宽、突发和延迟值在每次采样后都来自硬件。之后,该函数重置度量计数器,然后为下一个示例再次启动计数器。如果任何一个度量计数器超过2的限制32- 1在采样间隔内,计数器溢出,对应的采样指示为在情节中。

破裂的波形

您也可以修改生成的脚本来配置AXI互连监视器为每个突发事务收集事件数据。您可以在逻辑分析仪波形查看器检查仲裁行为。指定要捕获的事务数量,跟踪捕获深度,在模型的配置参数中,下硬件实现>目标硬件资源>FPGA设计(调试)

显示AXI4突发请求波形的逻辑分析仪图。

波形显示事件类型(BurstIdleBurstRequestBurstExecuting,或BurstDone)和burst事务的这些参数:

  • MasterID——发出请求的内存主机的ID号

  • DataWidth——以位为单位的数据宽度

  • BurstLength——突发请求中的数据字数

  • BurstsTransferred——此请求中的爆发数(仅与BurstDone事件)

  • BytesTransferred——此请求的字节数(仅在BurstDone事件)

你可以将这些波形与你的内存控制器模拟中的块。

配置和查询AXI Interconnect Monitor

AXI互连监视器(AIM)是为基于axis的FPGA设计收集性能指标的IP核。创建一个socIPCore对象建立和配置目标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);
配置AIM。的socIPCore对象提供执行此初始化的函数。接下来,设置一个socMemoryProfiler对象来收集指标。
apmCoreObj = socIPCore(AXIMasterObj,perf_mon,“PerformanceMonitor”“模式”, perfMonMode);初始化(apmCoreObj);profilerObj = socMemoryProfiler(hwObj,apmCoreObj);

检索诊断数据

若要从FPGA上运行的设计中检索性能指标或信号数据,请使用socMemoryProfiler对象的功能。

配置文件模式,调用collectMemoryStatistics循环函数。

NumRuns = 100;n = 1:NumRuns collectMemoryStatistics(profilerObj);结束
JTAG设计设置时间相对于FPGA事务时间较长,如果您的设计中有少量事务,则可以在查询监视器时完成它们。在这种情况下,带宽图只显示一个样本,吞吐量计算不准确。如果出现这种情况,请增加设计执行的事务总数。

跟踪模式,调用collectMemoryStatistics函数一次。此功能阻止IP将事务写入FIFOAXI互连监视器IP,尽管交易在互连上继续。设置事务的大小FIFO,跟踪捕获深度,在模型的配置参数中,下硬件实现>目标硬件资源>FPGA设计(调试)

collectMemoryStatistics (profilerObj);

可视化性能指标

方法可视化性能数据plotMemoryStatistics函数。在配置文件模式下,此功能打开一个性能绘图工具,您可以配置该工具来绘制带宽、突发计数和平均事务延迟。在跟踪模式时,此函数将打开逻辑分析仪查看突发事务事件数据的工具。

plotMemoryStatistics (profilerObj);

另请参阅

|||

相关的话题