在硬件执行期间,实际硬件平台用于执行内核,您只需运行应用即可评估主机程序和加速内核的性能。但要调试硬件构建,则需要将额外的逻辑整合到应用中。这将影响内核耗用的 FPGA 资源以及硬件中运行的内核的性能。硬件构建的调试配置包括特殊的 ChipScope 调试核(如 Integrated Logic Analyzer (ILA) 和 Virtual Input/Output (VIO) 核)以及用于调试的 AXI Performance Monitor。
提示: 在最终量产构建中应移除调试硬件所需的额外逻辑。
下图显示的是硬件构建的调试进程,包括使用 GDB 调试主机代码和使用 Vivado 硬件管理器 (Hardware Manager) 配合波形分析、内核活动报告以及存储器访问分析来识别和定位这些硬件问题。
图 1. 硬件执行
配置系统硬件构建以供进行调试后,即可确认 CPU 上运行的主机程序以及赛灵思器件上运行的 Vitis 加速内核在目标平台的实际硬件上是否正确执行。可识别并分析的部分状况包括:
- 由于协议违例导致的系统挂起:
- 这些违例可能破坏整个系统。
- 这些违例可能造成内核获得无效数据或挂起。
- 很难确定这些违例产生的位置或时间。
- 要对此状况进行调试,应使用由 AXI Protocol Checker(需在 Vitis 目标平台上进行配置)所触发的 ILA。
- 硬件内核问题包括:
- 有时因实现导致的问题:时序问题、争用条件和无效的设计约束。
- 硬件仿真未显示的功能漏洞。
- 性能问题:
- 例如,每秒处理的帧数并非您的期望值。
- 您可以检查数据节拍和流水打拍。
- 通过将 ILA 与触发定序器搭配使用,您可以检查突发量、流水打拍和数据宽度以确定瓶颈的位置。