内联函数之间的行为差异 - 2023.2 简体中文

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

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

Vivado HLS 中函数的自动内联由函数大小来管控。但在 Vitis HLS 中,自动内联最优化由用户编译指示偏好或成本模型来驱动。以流水打拍循环为例,假设在此循环主体内部执行子函数的调用。在 Vivado HLS 中,这些子函数可能由于大小较小,已自动完成内联。在 Vitis HLS 中,仅当用户请求 II=1 的流水线时,这些子函数才会执行内联。因此,仅当 Vitis HLS 调度器判定在此流水打拍循环内,对这些子函数执行内联有利于达成 II=1 时,才会发生自动内联。

由于此更改,您可能会发现,在 Vitis HLSVivado HLS 所实现的 QoR 之间存在差异。您可通过在 Vitis HLS 中手动内联这些子函数来匹配先前 Vivado HLS 的行为,从而克服这些差异。