”
Vitis Vision ライブラリの resize サンプルをやってみる1”の続き。
L2/examples/resize を Ultra96-V2 で動作させてみように従って、resize をビルドしたところ、sd_card ディレクトリの生成でエラーが出たが、大体一式ビルドできた。今回は、Vivado HLS の合成結果とVivado のブロックデザインとインプリメンテーションの結果を見ていこう。
まずは、Vivado HLS 2019.2 の合成結果を見てみよう。
Vivado HLS のプロジェクトは、Vitis_Libraries/vision/L2/examples/resize/build/_x_ultra96v2_min2_hw/resize_accel/resize_accel/resize_accel ディレクトリにある。下の図はこのディレクトリの内容を示すが、1度 VIvado HLS の GUI を立ち上げているので、ファイルが増えている。

C コードの合成結果を示す。
動作周波数のターゲットは、300 MHz だったようだ。合成できている。

Latency -> Detail -> Instance の中で、resize_2_0_2160_3840_1080_1920_1_2_U0 をクリックした。
そうやって、下に降りていって、 xFReize AreaDownScale_2160_3840_1_0_1_1_1080_1920_3840_1920_s が一番下らしい?
Latency -> Detail -> Loop が表示されていて、LOOP_ROW_LOOP_COL の Initiation Interval の achieved が 1 クロックになっているのが分かる。つまりループを 1 クロックで処理できるので、性能が良いということが分かる。

Vivado HLS では見たいものが見えたので、今度はVivado プロジェクトの情報を見ていこう。
Vivado のプロジェクトは、Vitis_Libraries/vision/L2/examples/resize/build/_x_ultra96v2_min2_hw/link/vivado/vpl/prj にある。

Vivado を起動して、上のディレクトリを指定してプロジェクトを開いた。
ブロックデザインを見てみよう。

resize_accel_1 の 画像入力用の AXI4 Master が m_axi_gmem1 で、画像出力用の AXI4 Master が m_axi_gmem2 のようだ。後は、良く分からない出力がたくさん出ている。
なお、動作周波数は意外なことに 100 MHz だった。すみません。これはプラットフォームで決定されていたのでした。勘違いです。100 MHz を PLL で 200 MHz にアップしているので、200 MHz 動作でした。orz

Vivado HLS では、 300 MHz 動作で合成されていたのだが???
Vivado でのインプリメンテーション後のサマリを示す。

LUT が 14 % でVivado HLS のリソース使用量予想の 26 % からは大幅に減っているな。。。
Vivado でのリソース使用量の表を示す。
- 2020年03月24日 04:35 |
- Vitis_Vision
-
| トラックバック:0
-
| コメント:0