デバッグボード IP編2 | 有限会社 FPGAインフォメーション

BLOG & INFO

デバッグボード IP編2

CPUデコーダとMicroBlazeでパルスジェネレーターを制御する

FPGA Control Architecture: CPU Decoder and MicroBlaze for Pulse Generator Control


English Summary

In this project, I designed a control architecture for an FPGA-based pulse generator using a custom CPU decoder and a soft processor. Unlike standalone designs, this pulse generator requires configuration from a CPU to operate, making the control interface essential for both operation and debugging.

To simplify development and testing, I used a compact FPGA board with UART connectivity. This allows commands to be sent from a PC to the FPGA, where a soft CPU processes them and writes configuration data to the pulse generator IP.

The system is built around a MicroBlaze soft processor, which handles UART communication and register control. A custom CPU decoder IP is used to map CPU accesses to internal registers, enabling a clean and scalable hardware structure.

By modularizing each function into IP blocks—pulse generator, logic analyzer, and CPU decoder—the overall system becomes easier to extend, debug, and reuse.

While generative AI helped accelerate parts of the design, system-level architecture, especially CPU and bus integration, still requires manual design decisions.

This completes the hardware architecture, and the next step is implementing the software layer for full system control.


はじめに

前回は、長周期信号を観測するためのロジックアナライザーIPを作成しました。
今回はその続きとして、パルスジェネレーターを制御するためのCPUインターフェースについて書いていきます。


パルスジェネレーターはCPUからの制御が前提

今回のパルスジェネレーターですが、少し特殊な構成になっています。

単純に電源を入れれば動くわけではなく、
CPUから設定を書き込まないと動作しない設計になっています。

つまり、

  • 周期設定
  • パルス幅
  • 各チャンネルのタイミング

といった情報を、CPU経由で与える必要があります。

そのため、デバッグ時にもこのインターフェースが動いていないと、
そもそもパルスが出ないという状態になります。


デバッグのために5cm FPGAボードを活用

そこで今回は、以前作成した5cm FPGAボードを活用しました。

このボードを使って、

👉 パルスジェネレーターを動かすためのコントロール系を構築

することにしました。

実機と同じような環境を用意しつつ、
デバッグしやすい構成にするのが狙いです。


UART経由で制御できるようにする

5cm FPGAボードにはUARTが搭載されています。
これを活用して、

👉 PC → UART → FPGA → パルスジェネレーター

という経路で制御できるようにしました。

この構成のメリットはシンプルで、

  • PCから簡単に操作できる
  • ログが取りやすい
  • 動作確認がすぐできる

といった点です。

特に初期デバッグでは、「とりあえず動かす」ための経路があることが重要になります。


MicroBlazeを使って制御系を構成

CPUがあると一気に柔軟性が上がるので、今回は
MicroBlaze
を使用しました。

MicroBlazeはFPGA上で動作するソフトCPUで、

  • レジスタアクセス
  • UART通信
  • 制御フローの実装

といった処理を簡単に組み込むことができます。

今回の構成では、

  • UARTでコマンドを受信
  • CPUが内容を解釈
  • パルスジェネレーター用IPに書き込み

という流れになっています。


CPUデコーダIPの役割

CPUからのアクセスをそのまま使うのではなく、
今回はCPUデコーダIPを用意しました。

このIPの役割は、

  • アドレスのデコード
  • 書き込みデータの振り分け
  • 各レジスタへの反映

です。

こうしておくことで、

  • 後から機能を追加しやすい
  • 他のIPとも接続しやすい
  • 構成が整理される

といったメリットがあります。

いわば、CPUとハードウェアの間の整理役です。


IP化して構成をシンプルにする

今回のポイントの一つは、
👉 機能をしっかりIP化したこと

です。

  • パルスジェネレーター本体
  • ロジックアナライザー
  • CPUデコーダ

これらをそれぞれIPとして分離することで、

  • 再利用しやすい
  • 接続が明確になる
  • デバッグしやすい

という構成になりました。

FPGA設計では、規模が大きくなるほど
この「分割して整理する」考え方が効いてきます。


生成AIだけではまだ難しい部分

今回の構成は生成AIも活用していますが、
正直なところ、

👉 CPUまわりの構成はまだ完全自動は難しい

と感じました。

理由としては、

  • システム全体の設計意図
  • バス構成の理解
  • IP間の接続設計

といった部分が、まだ人の判断に依存するためです。

ただし、

  • 各モジュールの実装
  • レジスタ構成の整理
  • 部分的なコード生成

については、かなり有効でした。


ハードウェア構成はほぼ完成

この段階で、

  • パルスジェネレーター
  • ロジックアナライザー
  • CPU制御系(MicroBlaze + デコーダ)

が揃い、ハードウェアとしてはほぼ完成しました。

あとは、

👉 ソフトウェア側でどう制御するか

というフェーズに入ります。


次回予告:ソフト編へ

次回は、今回構築したCPU環境を使って、

  • UARTコマンドの設計
  • レジスタ書き込み方法
  • 実際にパルスを制御する手順

といったソフトウェア側の実装について書いていきます。


まとめ

今回のIP編では、パルスジェネレーターを動作させるための

  • CPUデコーダIP
  • MicroBlazeによる制御
  • UART経由の操作環境

を構築しました。

デバッグにおいて重要なのは、

👉 「確実に制御できる環境を先に作ること」

です。

その基板ができたことで、次のステップであるソフト開発にスムーズに進めるようになりました。


FPGAインフォメーションのホームページはこちらです。

5SQ XC7S25A FPGAボードはこちらから購入できます。

プライバシーポリシー / 特定商取引法に基づく表記 / 利用規約

Copyright © 2026 有限会社FPGAインフォメーション All Rights Reserved.

CLOSE