函数调用计算图 - 2023.2 简体中文

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

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 简体中文

“Function Call Graph”(函数调用计算图)为您演示了 C 语言综合或 C/RTL 协同仿真后的完整设计。此报告从时延和启动时间间隔 (II) 两方面显示了设计的吞吐量。它有助于识别您的设计中的关键路径,并帮助您识别设计中的瓶颈,以提升吞吐量。它还可显示穿过设计的各条路径中可能存在不平衡而导致 FIFO 停滞和/或死锁的路径。

图 1. 性能指标综合

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

以上显示的计算图中,将函数显示为矩形框,将循环显示为椭圆框。该计算图会显示层级和嵌套的函数或循环。该计算图下的表格中显示了每个函数或循环,根据具体视图,还会显示 II、时延和资源或时序数据。

“Function Call Graph”报告位于 Flow Navigator 的C SYNTHESIS(C 语言综合)和C/RTL COSIMULATION(C/RTL 协同仿真)标题下。计算图中显示的来自C SYNTHESIS阶段的性能和资源指标均为来自 HLS 工具的估算值。完成C/RTL COSIMULATION后所得“Function Call Graph”报告则更详细,其中会提供报告的实际 II 和时延数值以及停滞百分比。

提示: 如需获取更准确的资源和时序估算结果,可在 运行实现 中执行逻辑综合或实现。

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

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

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

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

提示: 在报告右侧有“Settings”(设置)命令和“Legend”(图例)命令,以便您显示报告的附加详细信息。