1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MATLABを使ってVersal AI Engineの開発をしてみよう/環境導入編

Last updated at Posted at 2025-08-20

はじめに

最近のFPGA開発において、AI処理の高速化や低消費電力化を実現するために、Xilinx社の Versal に搭載されている AI Engine の活用が注目されています。

これまでAI Engineの開発には、主にVitisやC/C++ベースの開発環境が必要でしたが、MathWorksのMATLAB/Simulink環境からもAI Engine開発が可能になったようです。
(こんな製品例題が有りました。)

早速私もお試し中なのですが、まだ色々とハマりポイントが多かったので、情報共有致します。
本記事では、まず第一歩として「環境構築編」としています。

この記事は、以下のような方に役立つ内容かと思います。

1.MATLABユーザーでFPGA開発に興味がある
2.モデルベースデザインを使ってAI Engineの開発をしてみたい
3.Versal + AI Engine による高速な信号処理を試してみたい

かかれていること

本記事では、以下の内容を扱います

  • MATLAB/Simulink から AI Engine 開発を始めるための必要なツール
  • 開発環境の構成とバージョン整合性
  • Xilinx ツールとの連携の初期セットアップ
  • よくあるハマりポイントと対処法

実際の開発(アルゴリズムの実装やAI Engineカーネルの記述)は、次回以降の記事で紹介します。

環境構成

AI Engine 開発をMATLABから行うためには、以下のソフトウェアとハードウェアが必要です。
私も下記構成で試しています。

✔ ソフトウェア構成(2025年時点での推奨)

  1. OS
    • Ubuntu 20.04 LTS
  2. MATLAB
    • バージョン: R2024b Update3以降 (Linux版)
    • ツールボックス
      • HDL Coder
      • Fixed-Point Designer
      • MATLAB Coder
      • Embedded Coder
      • Simulink Coder
      • HDL Verifier(必須ではないが、AI EngineとFPGA連携検証に使用)
      • Simulink
      • MALTAB
  3. Xilinx
    • Vivado 2023.1
    • Vitis 2023.1
    • Vitis Model Composer 2023.1
  4. Momory

✔ ハードウェアボード例

  • Xilinx VCK190
    • AI Engine搭載のVersalプラットフォーム

MATLABのインストール

MATLABのインストールはMathWorksのページから可能です。
https://www.mathworks.com/downloads/

R2024bのUpdate3以降のバージョンをダウンロードしましょう。
スクリーンショット 2025-08-20 211834.png

Vivadoのインストール

Vivado/Vitis Model Composer は2023.1をインストールします。
AMDのソフトウェアダウンロードセンターからダウンロードしましょう。
スクリーンショット 2025-08-20 212957.png

Linuxバージョンをインストール。

スクリーンショット 2025-08-20 213030.png

Vivadoのインストール時に途中で止まってしまう

Vivadoのインストール時に色々とトラップが有ったのでここに記します。
下記のページを参考にしました。

インストール時にgenerating installed device listという項目が出て、そこでインストールが止まってしまう問題が発生します。

これは必要パッケージが欠けているため発生している事象であり、下記のコマンドを実行することで、回避可能です。

sudo apt install -y tofrodos gawk xvfb git libncurses5-dev tftpd zlib1g-dev \
zlib1g-dev:i386 libssl-dev flex bison chrpath socat autoconf libtool \
texinfo gcc-multilib libsdl1.2-dev libglib2.0-dev screen pax build-essential \
libc6-dev-i386 net-tools graphviz libncursesw5 libgmp3-dev  libncurses5 libtinfo5 \
libncursesw5-dev ocl-icd-opencl-dev opencl-headers ocl-icd-libopencl1 gcc-multilib

その他必要パッケージのインストール

AI Engineの合成時にxtermが無いとうまく合成できないようです。
これインストールする必要が有ります。下記のコマンドで入れましょう。

shell
sudo apt install xterm

MATLAB上からVersalの実機と通信する際に下記のようなエラーが発生する場合が有ります。

Caused by:
Error using loaddefinedlibrary
/home//Documents/MATLAB/SupportPackages/R2024b/3P.instrset/libiio.instrset/glnxa64/usr/lib/x86_64-linux-gnu/libiio.so: undefined symbol: libusb_set_auto_detach_kernel_driver

これは、libusb_set_auto_detach_kernel_driver()関数を持つlibusbのshared objectよりも優先順位の高いパスに別のlibusbのShared objectがあるためバッティングしているようです。

そのため下記のコマンドで改めて必要なライブラリのインストールを行います

sudo apt update
sudo apt install libusb-1.0-0

併せて、このライブラリを最初に呼び出されるようにすればOK。bashrcに下記のように書いておきます。

.bashrc
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libusb-1.0.so.0 

念のため一度読み込みます。

source .bashrc

MATLAB & Model Composerの立ち上げ

下記のコマンドでMATLAB及びModel Copmoserを立ち上げます。

model_composer -softwareopengl

ここで、-softwareopenglというオプションを付けています。このオプションはソフトウェアレンダリングでOpenGLの処理を行うことを選択します。
Model ComposerでAI Engineを使うとクラッシュが頻発しますが、このコマンドで回避できます。

立ち上がったら、さっそくMathWorksが提供している下記の例題を動かしてみます。
https://www.mathworks.com/help/hdlcoder/ug/integrate-hdl-ip-core-with-versal-ai-engine.html

MATLABのコマンドウィンドウで下記のコマンドを打つことでも立ち上げることが出来ます。

openExample('hdlcoder/IntegrateHDLIPCoreWithVersalAIEngineExample')

MATLABでの準備

MathWorksで提供しているVersal開発用のサポートパッケージをインストールします。
「Add-ons>HDL Coder support package for AMD FPGA and SoC Device」が必要なサポートパッケージですので、これをインストールします。
スクリーンショット 2025-08-20 220803.png

MATLABでのビットストリーム生成

Simulinkを立ち上げて、HDL CoderのアプリからBuild Bitstreamボタンを押すことで合成が実行されます。

スクリーンショット 2025-08-20 220823.png

ディレクトリの中にxclbinファイルが生成されれば合成完了です。

もしファイルが存在していないエラーが出る場合

V++コンパイル時に下記のようなエラーが発生する場合が有ります。

ERROR: [VPL 17-275] File does not exist [/home//Documents/MATLAB/Examples/R2024b/hdlcoder/IntegrateHDLIPCoreWithVersalAIEngineExample/hdl_prj6/vitis_prj/_x/link/vivado/vpl/prj/prj.gen/sources_1/bd/ext_platform/ip/ext_platform_noc_lpddr4_0/bd_0/ip/ip_0/ip_0/bd_f0b4_MC1_ddrc_0_phy_ddrmc.elf]

下記のログファイルを確認します。

MemGen.log
vivado/vpl/prj/prj.gen/sources_1/bd/ext_platform/ip/ext_platform_noc_ddr4_0/bd_0/ip/ip_0/ip_0/temp/MemGen.log

これは、内部的に下記のエラーが発生していることが原因のようです。

"Error while loading shared libraries: libudev.so.1: cannot open shared object file: No such file or directory"

これは、libudev.so.1が見つかっていないor登録されていないことが原因のようです。
そこで、下記のコマンドを実行してください。

sudo apt-get install libudev-dev

その後bashrcコマンドをMATLABで実行。

bashrc
export LD_PRELOAD=$LD_PRELOAD:/lib/x86_64-linux-gnu/libudev.so.1

念のため一度読み込みます。

source .bashrc

この状態で再度Build Bitstreamしてみると、上手くコンパイルできました。
Screenshot from 2025-08-21 14-39-56.png
Screenshot from 2025-08-21 14-59-57.png

バージョン

2025/8/20 初版リリース
2025/8/21 ファイルが存在していないエラーの対応方法について追記

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?