使用 printf() 或 cout 调试内核 - 2023.2 简体中文

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 简体中文

调试算法的基本方法是验证程序执行的整个过程中的关键代码步骤和关键数据值。对于应用开发者而言,要识别程序执行中存在的问题,简单而又有效的方法就是打印检查点声明和输出代码中的当前值。这可通过使用 printf() 函数或 cout(适用于标准输出)来完成。

对于 C/C++ 内核模型,仅在软件仿真期间支持 printf(),在 Vitis HLS 综合步骤中应将其排除。在这种情况下,任何 printf() 语句都应包含在以下编译器宏中:

#ifndef __SYNTHESIS__
    printf("Checkpoint 1 reached");
#endif

对于 C++ 内核,您还可在自己的代码中使用 cout 来添加检查点或消息,用于调试内核。例如,您可添加:

std::cout << "TEST " << (match ? "PASSED" : "FAILED") << std::endl;