FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

Vivado-HLSとAXI4-DMAの試行(4. Vivado-HLSのリファレンスデザインを試行する)

AXI4-DMAの試行をしているが、どうもうまくいかない。Vivado-HLSのリファレンスデザインを試行してみることにした。

試行するのは、xapp1170のリファレンスデザインだ。どうやらVivado 2015.2 での実装で確認されているらしい。そこでVivado 2015.2をインストールして再現することにした。

  • A Zynq Accelerator for Floating Point Matrix Multiplication Designed with Vivado HLS

http://www.xilinx.com/support/documentation/application_notes/xapp1170-zynq-hls.pdf

リファレンスデザインを利用してまずは合成を実行する。リファレンスファイルをダウンロードして、中から、xapp1170_2015v4\pre_built\vivado\project_1\project_1.xprを立ち上げた。

リファレンスの回路構成は、以下のようになっている。

f:id:msyksphinz:20161010221337p:plain

カスタムデザインHLS_accel_1と、axi_timer_1を接続し、xlconcat_1が接続されて割り込みが入るようになっている。

Vivado上で合成を実行し、Xilinx SDK 2015.2を立ち上げてプログラムをコピーした。

f:id:msyksphinz:20161010221809p:plain

ただし、どうしても、プログラムが途中で停止してしまう。調査した結果、memset()を実行するとプログラムが停止し、リブートしてしまうらしい。

 ***************************************************************
 FP 32x32 MATRIX MULT -> AXI DMA -> ARM ACP                     
 XAPP1170 redesigned with Vivado + HLS + IP Integrator 2015.2.1 
 *RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR?

U-Boot 2015.04-dirty (Feb 27 2016 - 17:30:29)

Board:  Xilinx Zynq
I2C:   ready
DRAM:  ECC disabled 512 MiB
MMC:   zynq_sdhci: 0
SF: Detected S25FL256S_64K with page size 256 Bytes, erase size 64 KiB, total 32 MiB
*** Warning - bad CRC, using default environment
...

うーん、やはりmemset()の動作がおかしいようだ。 バージョンをいろいろ変えてやってみようかな。