FC2カウンター FPGAの部屋 @ikwzmさんのUltraZed 向け Debian GNU/Linux の構築をやってみる15(udmabuf を使用する)
FC2ブログ

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

FPGAの部屋

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

@ikwzmさんのUltraZed 向け Debian GNU/Linux の構築をやってみる15(udmabuf を使用する)

@ikwzmさんのUltraZed 向け Debian GNU/Linux の構築をやってみる14(led_on.py を C で書いてみる)”の続き。

前回は、デバイスツリーをロードして、LEDを点灯させるアプリケーションソフトは @ikwzm さんの作成された led_on.py の代わりにじぶんで書いた C 言語のアプリケーションソフトを使用した。今回は、Vivado HLS で作ったプロジェクトで udmabuf を使用してみよう。

今回、参照するのは@ikwzm さんの書かれた、”UltraZed 向け Debian GNU/Linux で Vivado-HLS を使って合成した回路を動かす”まずは、この通りにやってみよう。

fpga ユーザーの examples ディレクトリに移動して、git clone でGitHub の ikwzm/ZynqMP-FPGA-Linux-Example-2-UltraZed を negative という名前でダウンロードして、negative ディレクトリに入る。なお、Vivado HLS の回路は in を AXI4 Master で読んできて、マイナスにして、out へ書くという回路だ。
cd negative
git clone https://github.com/ikwzm/ZynqMP-FPGA-Linux-Example-2-UltraZed negative
cd negative

UltraZed-EG_StKit_Linux_202_180130.png

Python スクリプトでビットファイルをバイナリ・ファイルへ変換し、/lib/firmware へコピー。
python3 fpga-bit-to-bin.py -f negative.bit negative.bin
sudo cp negative.bin /lib/firmware

UltraZed-EG_StKit_Linux_203_180130.png

/lib/firmware ディレクトリを見ると、negative.bin があるのが分かる。
UltraZed-EG_StKit_Linux_204_180130.png

fpga-load.dts をコンパイルして、fpga-load.dtb を生成する。
dtc -I dts -O dtb -o fpga-load.dtb fpga-load.dts
UltraZed-EG_StKit_Linux_205_180130.png

fpga-load.dtb を fpga に登録
sudo mkdir /config/device-tree/overlays/fpga
sudo cp fpga-load.dtb /config/device-tree/overlays/fpga/dtbo

UltraZed-EG_StKit_Linux_206_180130.png

COMポートのTrea Term ウインドウにメッセージが表示された。
UltraZed-EG_StKit_Linux_207_180130.png

FPGA のクロックを設定するための fclk0-zynqmp.dts をコンパイル
dtc -I dts -O dtb -o fclk0-zynqmp.dtb fclk0-zynqmp.dts
UltraZed-EG_StKit_Linux_208_180130.png

fclk0-zynqmp.dts を fclk0 に登録
sudo mkdir /config/device-tree/overlays/fclk0
sudo cp fclk0-zynqmp.dtb /config/device-tree/overlays/fclk0/dtbo

UltraZed-EG_StKit_Linux_209_180130.png

COMポートのTrea Term ウインドウにメッセージが表示された。
UltraZed-EG_StKit_Linux_210_180130.png

UIO と udmabuf のデバイスツリー negative.dts
UltraZed-EG_StKit_Linux_211_180130.png

negative.dts をコンパイル
dtc -I dts -O dtb -o negative.dtb negative.dts
UltraZed-EG_StKit_Linux_212_180130.png

negative.dtb を negative に登録
sudo mkdir /config/device-tree/overlays/negative
sudo cp negative.dtb /config/device-tree/overlays/negative/dtbo
ls -l /dev/uio*
ls -l /dev/udmabuf*

UltraZed-EG_StKit_Linux_213_180130.png

COMポートのTrea Term ウインドウにメッセージが表示された。
UltraZed-EG_StKit_Linux_214_180130.png

negative.py を動作させる
sudo python3 negative.py
UltraZed-EG_StKit_Linux_215_180130.png

今回はスループットが 292 MByte/sec 程度だったが、2回目やると次に示すようにスループットが減っていた。何か?奇数回の方が偶数会よりもスループットが高い気がする。
2 回目の結果を示す。
UltraZed-EG_StKit_Linux_216_180130.png

スループットは、148 MByte/sec 程度と 1 回目よりも少なくなっている。

後始末
デバイスツリーをディレクトリごと削除する。
sudo rmdir /config/device-tree/overlays/netagive
sudo rmdir /config/device-tree/overlays/fclk0
sudo rmdir /config/device-tree/overlays/fpga

UltraZed-EG_StKit_Linux_217_180130.png

COMポートのTrea Term ウインドウに表示されたメッセージを示す。
UltraZed-EG_StKit_Linux_218_180130.png
  1. 2018年02月01日 04:32 |
  2. Linux
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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