FC2カウンター FPGAの部屋 Vitis 2019.2 アプリケーション・プロジェクト square その3
fc2ブログ

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

FPGAの部屋

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

Vitis 2019.2 アプリケーション・プロジェクト square その3

Vitis 2019.2 アプリケーション・プロジェクト square その2”の続き。

前回は、Vitis 2019.2 のアクセラレーション用アプリケーション・プロジェクトの spuare_u96v2 を作成して、ビルドした。今回は、square_u96v2 に使用された Vivado HLS , Vivado のレポートなどを見て、Ultra96-V2 実機で動作を確認しよう。

square_u96v2_system -> square_u96v2 -> Hardware -> square.xclbin.link_summary をダブルクリックする。
square_u96v2_13_191215.png

Vitis Analyzer が立ち上がる。
square -> HLS Synthesis をクリックすると square の Vivado HLS のレポートが表示された。
square_u96v2_14_191215.png

square は square_stream, read_dma, write_dma で構成されている。(ここでは read_dma7 になっているが、コードは read_dma なのだがどうしてだろうか?)個別の関数でのレポートを見ることができるので、見ていこう。

square_stream のVivado HLS レポートを示す。
square_u96v2_15_191215.png

read_dma のVivado HLS レポートを示す。
square_u96v2_16_191215.png

write_dma のVivado HLS レポートを示す。
square_u96v2_17_191215.png

次に、Vivado のプロジェクトを見てみよう。
square_u96v2_system -> square_u96v2 -> Hardware -> square.build -> link -> vivado -> vpl -> prj -> prj.xpr をダブルクリックするとVivado 2019.2 が立ち上がる。
square_u96v2_18_191215.png

square_u96v2_19_191215.png

次に、ultra96v2_min2 ブロックデザインを見てみよう。
square_u96v2_20_191215.png

次にUltra96-V2 の実機で確認してみる。

square_u96v2/Hardware/sd_card の ファイルを MicroSD カードの第 1 パーティションに書き込む。
square_u96v2_21_191215.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
./square_u96v2.exe square.xclbin

square_u96v2_22_191215.png

square_u96v2_23_191215.png

TEST PASSED が表示されて成功した。

ログを示す。

PetaLinux 2019.2 ultra96v2_min2 /dev/ttyPS0

ultra96v2_min2 login: root
root@ultra96v2_min2:~# insmod /lib/modules/4.19.0-xilinx-v2019.2/extra/zocl.ko
[   39.736119] zocl: loading out-of-tree module taints kernel.
[   39.745419] [drm] Probing for xlnx,zocl
[   39.749374] [drm] FPGA programming device pcap founded.
[   39.754594] [drm] PR Isolation addr 0x0
[   39.755457] [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  laplacian_filter1  square.xclbin    system.dtb  zynqmp_fsbl.elf
README.txt  image.ub  pmufw.elf   square_u96v2.exe  u-boot.elf
root@ultra96v2_min2:/run/media/mmcblk0p1# ./square_u96v2.exe square.xclbin 
Using FPGA binary file specfied through the command line: square.xclbin
[   73.290186] [drm] Pid 2179 opened device
[   73.294141] [drm] Pid 2179 closed device
[   73.309073] [drm] Pid 2179 opened device
Found Platform
Platform Name: Xilinx
Loading: 'square.xclbin'
[   73.596375] [drm] Finding IP_LAYOUT section header
[   73.596389] [drm] Section IP_LAYOUT details:
[   73.601246] [drm]   offset = 0x54fcf8
[   73.605513] [drm]   size = 0x58
[   73.609174] [drm] Finding DEBUG_IP_LAYOUT section header
[   73.612303] [drm] AXLF section DEBUG_IP_LAYOUT header not found
[   73.617611] [drm] Finding CONNECTIVITY section header
[   73.623523] [drm] Section CONNECTIVITY details:
[   73.628567] [drm]   offset = 0x54fd50
[   73.633088] [drm]   size = 0x1c
[   73.636749] [drm] Finding MEM_TOPOLOGY section header
[   73.639879] [drm] Section MEM_TOPOLOGY details:
[   73.644921] [drm]   offset = 0x54fc00
[   73.649441] [drm]   size = 0xf8
[   73.654808] [drm] No ERT scheduler on MPSoC, using KDS
[   73.663522] [drm] Fail to install CU 0 interrupt handler: -22. Fall back to polling mode.
[   73.671693] [drm] scheduler config ert(0)
[   73.671701] [drm]   cus(1)
[   73.675707] [drm]   slots(16)
[   73.678410] [drm]   num_cu_masks(1)
[   73.681377] [drm]   cu_shift(16)
[   73.684856] [drm]   cu_base(0xa0000000)
TEST PASSED
[   73.688070] [drm]   polling(1)
[   73.698695] [drm] zocl_free_userptr_bo: obj 0x00000000c9f7c20e
[   73.702853] [drm] zocl_free_userptr_bo: obj 0x00000000e1416682
[   73.712823] [drm] Pid 2179 closed device


もう一度、
./square_u96v2.exe square.xclbin
を実行した。
square_u96v2_24_191215.png
  1. 2019年12月15日 05:03 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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