硬件执行期间的调试 - 2022.1 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 简体中文
重要: 以下步骤描述了如何从命令行进行调试。但 Vitis IDE 可提供独立调试环境以搭配从命令行创建的 Vitis 应用加速工程一起使用。如需了解更多信息,请参阅 使用独立调试流程

在硬件执行期间,实际硬件平台用于执行内核,您只需运行应用即可评估主机程序和加速内核的性能。但要调试硬件构建,则需要将额外的逻辑整合到应用中。这将影响内核耗用的 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 与触发定序器搭配使用,您可以检查突发量、流水打拍和数据宽度以确定瓶颈的位置。