Function Call Graph 查看器 - 2022.1 Chinese

Vitis 高层次综合用户指南 (UG1399)

Document ID
UG1399
Release Date
2022-06-07
Version
2022.1 简体中文

全新的“Function Call Graph”(函数调用图)查看器可从 Flow Navigator 打开,它用于在 C 语言综合或 C/RTL 协同仿真完成后为您展示完整设计。该查看器的作用是通过时延和 II 来展示设计的吞吐量。它有助于识别您的设计中的关键路径,并帮助您识别设计中的瓶颈,以便您专注于解决这些瓶颈从而提升吞吐量。它还可显示穿过设计的各条路径中可能存在不平衡而导致 FIFO 停滞和/或死锁的路径。

图 1. 性能指标综合

在某些情况下,显示的设计层级可能与源代码不同,因为 HLS 最优化将循环转换为函数流水线等原因。内联的函数不再显示在调用图中,因为在综合后的代码中,这些函数不再是独立的函数。如果为某个函数创建了多个实例,那么该函数的每个唯一实例都会显示在此调用图中。这样您即可查看哪些函数影响了调用函数的时延和 II。

以上显示的图中,将函数显示为矩形框,将循环显示为椭圆框,根据具体视图,各函数和循环均含 II、时延和资源或时序数据。在完成 C/RTL 协同仿真前,图中显示的性能和资源指标来自于 C 语言综合阶段,因此是由 HLS 工具估算所得。

注释: 如需获取更准确的资源和时序估算结果,可在 导出 RTL 设计 中执行逻辑综合或实现。

协同仿真后,实际 II 和时延数值将随停滞百分比一起报告,并借助协同仿真期间收集的数据来给这些信息添加反标注释。您可使用 Function Call Graph 查看器左上角的下拉菜单,在综合性能指标与协同仿真指标之间进行切换。

您也可以使用Heat Map(热图)功能特性来高亮多个感兴趣的指标:

  • II(最小值、最大值、平均值)
  • 时延(最小值、最大值、平均值)
  • 停滞时间百分比
图 2. 性能指标

热图使用颜色编码来高亮存在问题的模块。它使用红色到绿色的色度,其中红色表示指标值高(即,最高的 II 或最高的时延),而绿色则表示指标值低(存在问题)。非红非绿的颜色表示介于最高值与最低值之间的值的范围。如上所示,这样有助于快速识别需要注意的模块。在以上示例中,显示了 LATENCY MAX 的热图和红色模块路径,此路径表示观测得到高时延值的区域。

如下所述,Function Call Graph 显示了高层次设计的吞吐量值。用户可以查看 Function Call Graph 并将其作为考核中心,从中执行进一步深入调查。右键单击任意显示的模块即可显示选项菜单,供您用于显示更多信息。这样您即可查看整体设计,随后跳转到设计中需要额外注意的具体部分。其它报告还包括“Schedule Viewer”(调度查看器)、“Synthesis Summary”(综合汇总)报告、“Dataflow Viewer”(数据流查看器)和源文件。Function Call Graph 是 Vitis HLS 中可供您查看设计全貌的查看器,其中提供了可供分析的每个模块的时延和 II 信息,包括数据流模块,这些模块的性能信息只有在协同仿真后才能获取。

提示: 在报告下的Modules/Loops(模块/循环)表中,显示了每个函数/循环的其它性能和资源指标。