FC2カウンター FPGAの部屋 Vivado HLS 2015.4 で OpenCV を使ってみた8(FAST Corners Detection 2)

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

FPGAの部屋

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

Vivado HLS 2015.4 で OpenCV を使ってみた8(FAST Corners Detection 2)

Vivado HLS 2015.4 で OpenCV を使ってみた7(FAST Corners Detection 1)”の続き。

前回は、C シミュレーションまで行った。今回は、C コードの合成とIP化を行った。

最初にC コードの合成を行った。Target を 10 (ns) にしたら、例によって、11.12 (ns) だったので、制約が満足しなかった。
100 MHz で動かしたかったので、Target を 9 (ns) にした。そうすると、Estimated は、9.4 (ns) だった。これで、100 MHz で動作するので、これで良しとした。
Vivado_HLS_OpenCV_56_160409.png

Latncy は 500726 クロックだった。これは最大解像度の 800 x 600 ピクセル(これは、自分で設定した)なので、クロックをピクセル数で割ってみると、500726 クロック / (800 x 600) ピクセル ≒ 1.04 倍だった。約 1 ピクセルを 1 クロックで処理できている。これは良い。
動作周波数を 100 MHz とすると、100 / 1.04 ≒ 96.2 MHz 位の計算になる。

リソース使用量を下に示す。
Vivado_HLS_OpenCV_57_160409.png

BRAM_18K は 11 個、DSP48E は 3 個、FF は 5379 個、LUT は 6267 個だった。

次に、Target を 10 (ns) の時なのだが、C/RTL コシミュレーションをやってみたが、5時間立ってもまだ、RTL シミュレーションが終わらないので、諦めてキャンセルした。まあ、だいたい合成の Latency の値が参考になるので良しとした。

次に、Target を 9 (ns) にした時の合成結果をIP 化した。
Vivado_HLS_OpenCV_58_160409.png

C コードの合成での、最大動作周波数を探ってみた。Target を 2.5 (ns) にして、合成した。
Vivado_HLS_OpenCV_59_160409.png

結果は、3.56 (ns) だった。これは約 281 MHz に相当する。
Latency の最大値は、541200 クロックで、541200 / (800 x 600) ≒ 1.13 倍
よって、281 / 1.13 ≒ 249 MHz になる。

リソース使用量を下に示す。
Vivado_HLS_OpenCV_60_160409.png

FF は約2倍に増えている。LUT もそれほどでは無いが増えている。
OpenCVのハードウェア化をすると、Zynq-7010 では小さいかもしれない? 7020のZYBOを作ってくれないだろうか?
  1. 2016年04月10日 05:00 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/3439-f87d4809
この記事にトラックバックする(FC2ブログユーザー)