FC2カウンター FPGAの部屋 2019年12月17日
FC2ブログ

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

FPGAの部屋

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

Vitis 2019.2 アプリケーション・プロジェクト ラプラシアン・フィルタAXI Masterバージョン2

Vitis 2019.2 アプリケーション・プロジェクト ラプラシアン・フィルタAXI Masterバージョン1”の続き。

前回は、ラプラシアン・フィルタをVitis 2019.2 アプリケーション・プロジェクトにして作成してみようということで、ソースコードを貼り付けた。今回は、Vitis 2019.2 のアプリケーション・プロジェクト laplacian_filter1 を作成し、ビルドしてUltra96-V2 の実機で確認してみよう。

Vitis 2019.2 のアプリケーション・プロジェクト laplacian_filter1 を示す。すでにビルド済みだ。
lap_fitler_5_191217.png

lap_fitler_15_191219.png

Vivado HLS のレポートを確認した。
lap_fitler_6_191217.png

Vivado のブロックデザインを示す。
lap_fitler_7_191217.png

sd_card ディレクトリの内容をMicroSD カードの第 1 パーティションに書き込んだ。temp.bmp も書き込んだ。
lap_fitler_8_191217.png

MicroSD カードの第 2 パーティションには、aarch64-xilinx-linux の Root FS を書き込んである。
MicroSD カードをUltra96-V2 に入れて電源ON した。
PetaLinux が起動した。
root ノーパスでログインした。
zocl ドライバを insmod でロードした。
insmod /lib/modules/4.19.0-xilinx-v2019.2/extra/zocl.ko

アプリケーションを起動した。
cd /run/media/mmcblk0p1/
export XILINX_XRT=/usr
./laplacian_filter1.exe lap_filter_axim.xclbin

lap_fitler_1_191215.png

lap_fitler_2_191215.png

”Success HW and SW results match”が表示されている。成功だ。。。

もう一度、
./laplacian_filter1.exe lap_filter_axim.xclbin
を起動した。
lap_fitler_3_191215.png

test.bmp をラプラシアン・フィルタ処理した temp_lap.bmp が生成されているのが分かる。うまく行った。
lap_fitler_4_191215.png

最後に実行時のログを貼っておく。

ultra96v2_min2 login: root
root@ultra96v2_min2:~# insmod /lib/modules/4.19.0-xilinx-v2019.2/extra/zocl.ko
[   28.073333] zocl: loading out-of-tree module taints kernel.
[   28.082652] [drm] Probing for xlnx,zocl
[   28.086609] [drm] FPGA programming device pcap founded.
[   28.091836] [drm] PR Isolation addr 0x0
[   28.092614] [drm] Initialized zocl 2018.2.1 20180313 for a0000000.zyxclmm_drm on minor 1
root@ultra96v2_min2:~# cd /run/media/mmcblk0p1/
root@ultra96v2_min2:/run/media/mmcblk0p1# export XILINX_XRT=/usr
root@ultra96v2_min2:/run/media/mmcblk0p1# ls                              
BOOT.BIN    bl31.elf  lap_filter_axim.xclbin  pmufw.elf   test.bmp    zynqmp_fsbl.elf
README.txt  image.ub  laplacian_filter1.exe   system.dtb  u-boot.elf
root@ultra96v2_min2:/run/media/mmcblk0p1# ./laplacian_filter1.exe lap_filter_axim.xclbin 
Using FPGA binary file specfied through the command line: lap_filter_axim.xclbin
[   62.189732] [drm] Pid 2178 opened device
[   62.193690] [drm] Pid 2178 closed device
[   62.208798] [drm] Pid 2178 opened device
Found Platform
Platform Name: Xilinx
Loading: 'lap_filter_axim.xclbin'
[   62.509368] [drm] Finding IP_LAYOUT section header
[   62.509381] [drm] Section IP_LAYOUT details:
[   62.514256] [drm]   offset = 0x54fcf8
[   62.518516] [drm]   size = 0x58
[   62.522358] [drm] Finding DEBUG_IP_LAYOUT section header
[   62.525488] [drm] AXLF section DEBUG_IP_LAYOUT header not found
[   62.530798] [drm] Finding CONNECTIVITY section header
[   62.536714] [drm] Section CONNECTIVITY details:
[   62.541762] [drm]   offset = 0x54fd50
[   62.546282] [drm]   size = 0x1c
[   62.549942] [drm] Finding MEM_TOPOLOGY section header
[   62.553073] [drm] Section MEM_TOPOLOGY details:
[   62.558122] [drm]   offset = 0x54fc00
[   62.562645] [drm]   size = 0xf8
[   62.567888] [drm] No ERT scheduler on MPSoC, using KDS
[   62.576560] [drm] Fail to install CU 0 interrupt handler: -22. Fall back to polling mode.
[   62.584730] [drm] scheduler config ert(0)
[   62.584737] [drm]   cus(1)
[   62.588736] [drm]   slots(16)
[   62.591436] [drm]   num_cu_masks(1)
[   62.594395] [drm]   cu_shift(16)
[   62.597870] [drm]   cu_base(0xa0000000)
[   62.601089] [drm]   polling(1)
[   62.610520] [drm] User buffer is not physical contiguous
Success HW and SW results match
[   62.618874] [drm] zocl_free_userptr_bo: obj 0x00000000df398605
[   62.623867] [drm] zocl_free_userptr_bo: obj 0x00000000801cae2b
[   62.635883] [drm] Pid 2178 closed device
root@ultra96v2_min2:/run/media/mmcblk0p1# ls
BOOT.BIN    bl31.elf  lap_filter_axim.xclbin  pmufw.elf   temp_lap.bmp u-boot.elf
README.txt  image.ub  laplacian_filter1.exe   system.dtb  test.bmp zynqmp_fsbl.elf
root@ultra96v2_min2:/run/media/mmcblk0p1# ./laplacian_filter1.exe lap_filter_axim.xclbin 
Using FPGA binary file specfied through the command line: lap_fil[  148.170198] [drm] Pid 2187 opened device
ter_axim.xclbin
[  148.178611] [drm] Pid 2187 closed device
[  148.184305] [drm] Pid 2187 opened device
Found Platform
Platform Name: Xilinx
Loading: 'lap_filter_axim.xclbin'
[  148.224073] [drm] The XCLBIN already loaded. Don't need to reload.
[  148.225513] [drm] Reconfiguration not supported
[  148.240983] [drm] User buffer is not physical contiguous
[  148.246291] [drm] zocl_free_userptr_bo: obj 0x0000000008414e96
[  148.247253] [drm] User buffer is not physical contiguous
Success HW and SW results match
[  148.258399] [drm] zocl_free_userptr_bo: obj 0x00000000f402229f
[  148.266672] [drm] Pid 2187 closed device
root@ultra96v2_min2:/run/media/mmcblk0p1# ls
BOOT.BIN    bl31.elf  lap_filter_axim.xclbin  pmufw.elf   temp_lap.bmp u-boot.elf
README.txt  image.ub  laplacian_filter1.exe   system.dtb  test.bmp zynqmp_fsbl.elf

  1. 2019年12月17日 04:52 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0