DnnWeaverをやってみる5(Windows 10 のVivado 2016.2でやってみた1)”の続き。

前回は、ZYNQ7 Processing System を含むブロックデザインをPYNQボード用に変更した。今回は、ビットファイルを生成して、SDKでPYNQボードにビットファイルを書き込んで、アプリケーションソフトをコンパイルして試してみたい。

Generate Bitstream をクリックして、ビットファイルの生成を行う。
8cd843fb.png


論理合成、インプリメント、ビットファイルの生成を行った。Project Summary を示す。
a40f8c16.png


critical warning が 1 個ある。これを表示してみよう。
ROM.v で読んでいる norm_lut.vh が無いという critical warning だった。
b3b7a9cb.png


norm_lut.vh は、dnnweaver.public/fpga/hardware/include にあった。
c677456f.png


norm_lut.vh を持ってきて、Vivado のプロジェクトに追加した。
40121fbe.png


論理合成、インプリメント、ビットファイルの生成を行ったところ、critical warning は無くなった。
154c7a73.png


ビットファイル付きで、ハードウェアをエクスポートして、SDK を立ち上げた。
964f12c6.png


standalone アプリケーション・プロジェクトを作成した。
6849b7f6.png


a9e2022f.png


dnnweaver.public/fpga/aram_software/src から platform.c と standalone.c を standalone アプリケーション・プロジェクトの src フォルダにコピーした。
6849b7f6.png


DnnWeaver_76_170524.png

同様に、dnnweaver.public/fpga/aram_software/lib から platform.h と platform_config.h を standalone アプリケーション・プロジェクトの src フォルダにコピーした。
fd17f709.png


DnnWeaver_76_170524.png

standalone.elf ができた。
ba7e5376.png


PYNQボードの電源を入れて、JTAG モードにし、SDK でビットファイルをダウンロードした。(Xilinx Tools メニューからProgram FPGA を選択)
standalone.elf をデバックモードで起動して、ステップオーバーでアプリケーションソフトを実行していった。
wr_address にアドレスを読み込むところで 0xdeadbeef が読み込まれている。
d1516efe.png


そのため、次にステップオーバーすると、DataAbortHandler に飛んでしまう。
bcc4a52d.png


と言う訳で、PYNQボード用のDnnWeaver を動作させることができなかった。