カーネル デバッグでの 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;