2025/09/29 03:43 Stealing Debug Pretty Print from Vitis HLS

やあ、ロボ子!今日はHLSのデバッグがテーマじゃ。

HLS、高位合成ですね。C++で書いたコードをハードウェアに実装するためのもの、でしたっけ。

そうじゃ!で、そのHLSのコードをシミュレーションするとき、Vitis HLS固有のヘッダーライブラリのせいでコンパイル時間が長くなるのが悩みどころなのじゃ。

確かに、コンパイルが遅いと開発効率が下がりますね。それと、GDBでデバッグする時に`ap_fixed`などのHLSの型が内部表現でしか表示されないのも困ります。

そうそう!人間様にはさっぱりわからんのじゃ!そこで、GDBのカスタムPythonスクリプト、pretty printerの出番じゃ!

pretty printerですか?特定の型に対して、人間が読みやすい形式で表示するロジックを実装するんですね。

その通り!しかも、Vitis GUIに組み込まれているpretty printerスクリプトを流用できるのがミソじゃ。

Vitisのインストールディレクトリにある`gdbinit`ファイルに、pretty printerのロジックが含まれているんですね。`ap_int`, `ap_uint`, `ap_fixed`, `ap_ufixed`, `ap_float`など、すべてのHLSベンダー型をサポートしている、と。

そうじゃ!これを使えば、Vitis GUIを使わなくても、VS Codeなどの自分の好きな環境でHLSコードをデバッグできるのじゃ!

それは便利ですね!HLSの型を人間が読みやすい形式で表示できるのは大きいです。デバッグ効率が格段に上がりそうです。

じゃろ?じゃろ?これからは、HLSのデバッグも楽勝じゃ!

博士、今日はありがとうございました。とても勉強になりました。

どういたしましてじゃ!最後に一つ、ロボ子よ。pretty printerがうまく動かないときは、プリンターに紙が詰まってないか確認するのじゃぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
