”DnnWeaverをやってみる5(Windows 10 のVivado 2016.2でやってみた1)”の続き。
前回は、ZYNQ7 Processing System を含むブロックデザインをPYNQボード用に変更した。今回は、ビットファイルを生成して、SDKでPYNQボードにビットファイルを書き込んで、アプリケーションソフトをコンパイルして試してみたい。
Generate Bitstream をクリックして、ビットファイルの生成を行う。
論理合成、インプリメント、ビットファイルの生成を行った。Project Summary を示す。
critical warning が 1 個ある。これを表示してみよう。
ROM.v で読んでいる norm_lut.vh が無いという critical warning だった。
norm_lut.vh は、dnnweaver.public/fpga/hardware/include にあった。
norm_lut.vh を持ってきて、Vivado のプロジェクトに追加した。
論理合成、インプリメント、ビットファイルの生成を行ったところ、critical warning は無くなった。
ビットファイル付きで、ハードウェアをエクスポートして、SDK を立ち上げた。
standalone アプリケーション・プロジェクトを作成した。
dnnweaver.public/fpga/aram_software/src から platform.c と standalone.c を standalone アプリケーション・プロジェクトの src フォルダにコピーした。
同様に、dnnweaver.public/fpga/aram_software/lib から platform.h と platform_config.h を standalone アプリケーション・プロジェクトの src フォルダにコピーした。
standalone.elf ができた。
PYNQボードの電源を入れて、JTAG モードにし、SDK でビットファイルをダウンロードした。(Xilinx Tools メニューからProgram FPGA を選択)
standalone.elf をデバックモードで起動して、ステップオーバーでアプリケーションソフトを実行していった。
wr_address にアドレスを読み込むところで 0xdeadbeef が読み込まれている。
そのため、次にステップオーバーすると、DataAbortHandler に飛んでしまう。
と言う訳で、PYNQボード用のDnnWeaver を動作させることができなかった。
前回は、ZYNQ7 Processing System を含むブロックデザインをPYNQボード用に変更した。今回は、ビットファイルを生成して、SDKでPYNQボードにビットファイルを書き込んで、アプリケーションソフトをコンパイルして試してみたい。
Generate Bitstream をクリックして、ビットファイルの生成を行う。
論理合成、インプリメント、ビットファイルの生成を行った。Project Summary を示す。
critical warning が 1 個ある。これを表示してみよう。
ROM.v で読んでいる norm_lut.vh が無いという critical warning だった。
norm_lut.vh は、dnnweaver.public/fpga/hardware/include にあった。
norm_lut.vh を持ってきて、Vivado のプロジェクトに追加した。
論理合成、インプリメント、ビットファイルの生成を行ったところ、critical warning は無くなった。
ビットファイル付きで、ハードウェアをエクスポートして、SDK を立ち上げた。
standalone アプリケーション・プロジェクトを作成した。
dnnweaver.public/fpga/aram_software/src から platform.c と standalone.c を standalone アプリケーション・プロジェクトの src フォルダにコピーした。
同様に、dnnweaver.public/fpga/aram_software/lib から platform.h と platform_config.h を standalone アプリケーション・プロジェクトの src フォルダにコピーした。
standalone.elf ができた。
PYNQボードの電源を入れて、JTAG モードにし、SDK でビットファイルをダウンロードした。(Xilinx Tools メニューからProgram FPGA を選択)
standalone.elf をデバックモードで起動して、ステップオーバーでアプリケーションソフトを実行していった。
wr_address にアドレスを読み込むところで 0xdeadbeef が読み込まれている。
そのため、次にステップオーバーすると、DataAbortHandler に飛んでしまう。
と言う訳で、PYNQボード用のDnnWeaver を動作させることができなかった。
コメント