1. はじめに
本記事では Mpression Sulfur Type-A Development Kit(以下、Sulfur と呼びます)に搭載される2系統の MIPI CSI-2 2-lane (15pin) ポートに IMX219 CMOS カメラモジュールを接続し、その入力映像を Video and Vision Processing Suite でホワイトバランスとブラックレベル補正、デモザイクをFPGAで処理し、HDMI 出力(1080p60)するデザインをご紹介します。
【図 1】 全体構成
2. ブロック図
2-1. デザイン全体
【図 2】 デザイン全体のブロック図
2-2. HDMI ブロック
【図 3】 HDMI 部分のブロック図
3. 機材・開発環境
3-1. 機材
- Sulfur Type-A 開発キット『 Sulfur Type-A Development Kit 』x 1
- FPGA ダウンロードケーブル『 Intel® FPGA Download Cable II 』x 1
- MIPI Camera:
※ 上記以外のイメージセンサーについては担当営業または FAE にお問い合わせください
- HDMI 対応モニター / 解像度 1920 x 1080p60
3-2. 開発環境
- Quartus® Prime v24.3.1 PRO Edition
- Ashling RiscFree IDE for Intel® FPGAs v24.3.1(Nios® V のソフトウェア開発用)
3-3. 本デザインでライセンスが必要な IP
- GTS HDMI Intel® FPGA IP (有償ライセンス)
- Video and Vision Processing Suite(有償ライセンス)
- Nios® V Embedded Processor Intel FPGA IP(無償ですがライセンスの取得が必要です)
- MIPI CSI-2 Intel® FPGA IP(無償ですがライセンスの取得が必要です)
ポイント:FPGA 開発ツールは Agilex™ 5 E-Series 向け無償ライセンスが利用できます。また、サンプルデザインに Nios® V/m コアが含まれるため Nios® V の無償ライセンスも取得してください。尚、再コンパイルを行わない場合は Quartus® Programmer のみのインストールで対応可能です。
有償ライセンスは、IP 評価モードに対応しています。
- Agilex™ 5 E 開発向け Quartus® Prime Pro Edition 無償ライセンスファイルを取得する方法
- Nios® V プロセッサー IP のライセンスファイルを取得する方法
- IP の評価と購入
4. サンプルデザイン・ファイル
下表に提供するサンプルデザイン・ファイルのダウンロード・リンクを示します。
【表 1】 サンプルデザイン(Raspberry Pi Camera Module v2用)ファイルのダウンロード・リンク
No. | 概要 | ファイル名(ダウンロード・リンク) | 更新日/バージョン |
[1] | CAM3 向け Quartus プロジェクトのアーカイブ | sulfur_MIPI_CAM3_IMX219_HDMI_24.3.1.zip | 2025/03/19 - v1.0 |
[2] | CAM4 向け Quartus プロジェクトのアーカイブ | sulfur_MIPI_CAM4_IMX219_HDMI_24.3.1.zip | 2025/03/19 - v1.0 |
[3] | CAM3 向け .sof ファイル | sulfur_MIPI_CAM3_IMX219_HDMI_24.3.1.sof | 2025/03/19 - v1.0 |
[4] | CAM3 向け .jic ファイル | sulfur_MIPI_CAM3_IMX219_HDMI_24.3.1.jic | 2025/03/19 - v1.0 |
[5] | CAM4 向け .sof ファイル | sulfur_MIPI_CAM4_IMX219_HDMI_24.3.1.sof | 2025/03/19 - v1.0 |
[6] | CAM4 向け .jic ファイル | sulfur_MIPI_CAM4_IMX219_HDMI_24.3.1.jic | 2025/03/19 - v1.0 |
【表 2】 サンプルデザイン(Raspberry Pi Camera Module v3用)ファイルのダウンロード・リンク
No. | 概要 | ファイル名(ダウンロード・リンク) | 更新日/バージョン |
[1] | CAM3 向け Quartus プロジェクトのアーカイブ | sulfur_MIPI_CAM3_IMX708_HDMI_24.3.1.zip | 2025/04/22 - v1.0 |
[2] | CAM4 向け Quartus プロジェクトのアーカイブ | sulfur_MIPI_CAM4_IMX708_HDMI_24.3.1.zip | 2025/04/22 - v1.0 |
[3] | CAM3 向け .sof ファイル | sulfur_MIPI_CAM3_IMX708_HDMI_24.3.1.sof | 2025/04/22 - v1.0 |
[4] | CAM3 向け .jic ファイル | sulfur_MIPI_CAM3_IMX708_HDMI_24.3.1.jic | 2025/04/22 - v1.0 |
[5] | CAM4 向け .sof ファイル | sulfur_MIPI_CAM4_IMX708_HDMI_24.3.1.sof | 2025/04/22 - v1.0 |
[6] | CAM4 向け .jic ファイル | sulfur_MIPI_CAM4_IMX708_HDMI_24.3.1.jic | 2025/04/22 - v1.0 |
5. 実行手順
5-1. 各種スイッチの設定と各種機材の接続
ボード背面のスライドスイッチを以下の通りに設定します。ボード背面の MIPI コネクタは使用しません。
- SW19 を 1.2V として設定
- SW1 と SW2 を FPGA に設定 (FPGA が I2C マスターの設定)
【図 4】 スイッチの設定
5-2. MIPI カメラと各種機材の接続
【図 5】 MIPI カメラと各種機材の接続
5-2-1. MIPI カメラの接続
MIPI カメラを CAM3 または CAM4 のいずれかに接続します。サンプルデザインは CAM3 向け、CAM4 向けでそれぞれ提供されるため、使用するデザインに合わせて接続してください。
ケーブルの向きは上記写真を参考に接続してください。
5-2-2. HDMI モニターとの接続
HDMI ケーブルによりモニターと接続します。出力解像度は 1920/1080p60 となりますので、この解像度がサポートされるモニターをご準備ください。
5-2-3. USB Blaster II の接続
USB Blaster II(Intel® FPGA Download Cable II)を接続します。
5-3. FPGA コンフィグレーション・ファイルの書き込みと MSEL の変更
MSEL を JTAG Mode(OFF, OFF, OFF)に設定します。
【図 6】 MSEL の設定
『4. サンプルデザイン・ファイル』のセクションで提供されるデータから、使用したいカメラコネクタ(CAM3 または CAM4)向けのデータを選択して書き込みを行ってください。
ヒント:コンフィグレーション・ファイルの書き込み方法は、下記 Getting Started の「5.3.2 .sof ファイルの書き込み」をご参照ください。JIC ファイルを使用する場合には、Change File で指定するファイルを .sof から .jic に読み替えてご対応ください。
5-3-1. コンフィグレーション ROM を書き換えない場合(SOF)
書き込みが完了すると自動的に HDMI に画像ストリームが出力されます。EMIF(External Memory Interface)のキャリブレーションに時間がかかるため 20 秒ほど時間を要します。
5-3-2. コンフィグレーション ROM を書き換える場合(JIC)
書き込みが完了したら MSEL を AS(Fast)mode(sw1-3:ON, sw1-2:ON, sw1-1:OFF)に変更してください。上記画像で左から見た場合には(OFF, ON, ON)となります。
電源を再投入すると自動的にコンフィグレーションされ HDMI に画像ストリームが出力されます。SOF で実行した場合と同様に、EMIF(External Memory Interface)のキャリブレーションに時間がかかるため 20 秒ほど時間を要します。
注記: 30 秒ほど待機しても画像が出力されない場合には、SOF の再書き込み、電源の再投入をお試しください。
6. 参考リンク
- Macnica Sulfur ~ Development Kit for Agilex™ 5 FPGA E-Series ~
- GTS HDMI Intel® FPGA IP User Guide
- Video and Vision Processing Suite Intel® FPGA IP User Guide