VCD編:UARTログを波形に変換してデバッグする
FPGA Debugging with VCD: Converting UART Logs into Waveforms
■ 英語サマリー
During FPGA debugging, I was able to capture waveform transitions over UART as text logs. However, understanding the timing relationships across multiple channels (around 40 signals) was extremely difficult in raw text form.
To improve visibility, I converted the UART log data into a VCD (Value Change Dump) file, a standard waveform format supported by many free tools on both Windows and Linux.
Using Python, I quickly built a conversion script—largely generated with the help of AI—that transforms timing logs into waveform data. This allowed me to visualize signal relationships and timing alignment between channels, making debugging significantly easier.
This approach demonstrates how combining UART-based logging, Python automation, and AI-assisted development can greatly accelerate FPGA debugging workflows.
■ デバッグを進めているうち
デバッグを進める中で、UART経由で波形の変化情報を取得することはできていました。
ただし問題がありました。
👉 テキストログでは非常にわかりにくい
■ テキストログの限界
取得できていたデータはこんな感じです:
- 信号の変化タイミング(時間)
- トグル情報
一見十分そうに見えるのですが、
- 40チャンネル分の信号
- それぞれが異なるタイミングで変化
👉 これらの関係性がまったく見えない
特に、
- 隣のチャンネルとのズレ
- 同期しているかどうか
- 意図したタイミングになっているか
このあたりが、テキストでは直感的に理解できませんでした。
■ 解決策:波形として可視化する
そこで方針を変更しました。
👉 波形として可視化する
今回使用したのが「VCD(Value Change Dump)」です。
VCDは、
- テキスト形式の波形ファイル
- 多くの波形ビューアで読み込み可能
という特徴があります。
WindowsでもLinuxでも、フリーのツールで簡単に確認できます。
■ UARTログ → VCD変換
問題は、UARTログをどうやってVCDに変換するかです。
ここでやったことはシンプルです:
👉 Pythonで変換ツールを作成
とはいえ、実際にはほとんど手を動かしていません。
- 仕様を口頭で整理
- 生成AIに指示
👉 それだけでほぼ完成
正直なところ、
「ここまで簡単にできるのか」
という感覚でした。
■ システム全体の流れ
今回の構成はこんな感じです:
- FPGA → UARTでログ出力
- Python → UART制御+ログ取得
- Python → VCDへ変換
- 波形ビューア → 可視化
さらに、
👉 パルスジェネレータへの制御信号もPython側で生成
つまり、
- 入力(制御)
- 出力(ログ)
- 可視化
すべてを一つのスクリプトで扱える状態になっています。
■ 実際に見てみると
今回はテストの都合で、
- トグル回数:8回程度
と、やや短い波形でした。
そのため、
👉 「いかにも波形っぽい」表示にはならなかった
のですが、それでも効果は大きく、
- チャンネル間の間隔
- タイミングのズレ
👉 これが一目で分かるようになりました

■ まとめ
今回のポイントはこれです:
- テキストログは限界がある
- 波形にすると理解が一気に進む
- VCDは軽量で扱いやすい
- Python+生成AIでツール化は簡単
■ 一言
デバッグって、
👉 「見えるかどうか」
で効率が大きく変わります。
今回のように、
- UARTログ → VCD変換
この一手を入れるだけで、かなり楽になります。
次回は
👉 仕様変更+タイミングトラブル編
実際に発生したトラブルとその対応をまとめます。
FPGAインフォメーションでは、このようなデバッグボードの作成のお手伝いもしています。
5SQ XC7S25A FPGAボードはこちらから販売しています。
