FC2カウンター FPGAの部屋 Vitis アクセラレーション・プラットホームを使用してハードウェアを作り、それを自作アプリケーション・ソフトウェアで動作させる5
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Vitis アクセラレーション・プラットホームを使用してハードウェアを作り、それを自作アプリケーション・ソフトウェアで動作させる5

Vitis アクセラレーション・プラットホームを使用してハードウェアを作り、それを自作アプリケーション・ソフトウェアで動作させる4”の続き。

Vitis アクセラレーション・プラットホームを使用してハードウェアを完成させ、それを自作アプリケーション・ソフトウェアで動作させてみたいということで、前回は、Petalinux の kernel コンフィグレーションで Userspace platform driver with generic IRQ handling を M にしていて、常時組み込まれる * にしてなかったことが気になるので、もう一度 Petalinux のビルドからやってみることにした。Petalinux のビルド後、イメージ・ファイルを生成して、MicroSD カードに書いた。KR260 に MicroSD カードを挿入して Petalinux 2022.1 を起動した。Petalinux にモジュールをインストールして、環境を整えた。今回は、ロードされているアクセラレーション・アプリケーションをアンロードして、kr260_ip_vadd2 をロードしたが、やはり、Vitis で生成された krnl_vadd IP は uio として生成されなかった。

kr260_ip_vadd2 ディレクトリの内容は前回に復帰した。

/lib/firmware/xilinx/kr260_ip_vadd2 ディレクトリを作成した。
sudo mkdir /lib/firmware/xilinx/kr260_ip_vadd2

binary_container_1.xclbin の名前を binary_container_1.bin に変更する。こうしないと、XRT は FPGA ビットストリームを抽出して Kria のプログラマブル ロジックをコンフィグレーションすることができないそうだ。
mv binary_container_1.xclbin binary_container_1.bin

pl.dtbo binary_container_1.bin shell.json ファイルを /lib/firmware/xilinx/kr260_ip_vadd2 ディレクトリにコピーした。
sudo cp pl.dtbo binary_container_1.bin shell.json /lib/firmware/xilinx//kr260_ip_vadd2

現在、ロードされているアクセラレーション・アプリケーションをアンロードして、kr260_ip_vadd2 をロードする。
sudo xmutil unloadapp
sudo xmutil loadapp kr260_ip_vadd2

KR260_406_230322.png

/sys/class/uio ディレクトリに uio4 〜 uio8 が増えた。
uio9 は無かった。
KR260_407_230322.png

/sys/class/uio/uio4 ディレクトリの name は DMA_pow2 だった。
uio5 の name は dma だった。
uio6 の name は interrupt-controller だった。
uio7 の name は timer だった。
uio8 の name は multi_axi4ls だった。

krnl_vadd は無かった。残念。。。

なお、Vivado の prj プロジェクトの kr260_bd_wrapper.bin ファイル(KR260/kr260_custom_platform/kr260_custom_platform/kr260_vadd2_system_hw_link/Hardware/binary_container_1.build/link/vivado/vpl/prj/prj.runs/impl_1 ディレクトリ)を binary_container_1.bin の代わりに試してみたが、やはり、krnl_vadd は無かった。

Vitis のスキームでアクセラレーション・ハードウェアとして実装された krnl_vadd は uio で実装するのは無理のようだ。ただし、”vadd.cpp を書き換えて、multi_axi4ls と DMA_pow2 も動作させる”で vadd を動作させる OpenCL コードの前にハードウェア・プラットホームの IP を uio で実装して、動作させることには成功しているので、こちらのスキームでハードウェア・プラットホームの IP を使用すれば良いようだ。また、OpenCL を使用しないで、XRT のネイテイブなコードで実行することもできるはずだ。
  1. 2023年03月25日 05:40 |
  2. KR260
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/5886-0ceef695
この記事にトラックバックする(FC2ブログユーザー)