FC2カウンター FPGAの部屋 2019年05月29日
FC2ブログ

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

FPGAの部屋

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

Vivado HLS で xfOpenCV を使用する4(StereoBM)

Vivado HLS で xfOpenCV を使用する3(Harris コーナー検出)”の続き。

前回は、examples ディレクトリの harris をVivado HLS GUI でやってみた。今回は、StereoBM をVivado HLS GUI でやってみたい。

まずは、examples ディレクトリの stereolbm ディレクトリを ~/xfopencv/HLS_Use_Model/examples ディレクトリの下にコピーした。
xfOpenCV_Vivado_HLS_41_190529.png

stereolbm/data ディレクトリには、left.png と right.png があった。
xfOpenCV_Vivado_HLS_42_190529.png

Vivado HLS 2018.3 で stereolbm_project プロジェクトを作っていこう。
xfOpenCV_Vivado_HLS_43_190529.png

ソースを登録する。
xf_stereoBM_accel.cpp を CFLAG = "-D__XFCV_HLS_MODE__ -I../../../include --std=c++0x"を付けて登録した。
xfOpenCV_Vivado_HLS_44_190529.png

次にテストベンチを登録する。
xf_stereoBM_tb.cpp を CFLAG = "-D__XFCV_HLS_MODE__ -I../../../include --std=c++0x"を付けて登録した。
left.png と right.png を追加した。
xfOpenCV_Vivado_HLS_45_190529.png

Ultra96 の使用を仮定して、 xczu3eg-sbva484-1-e を選択して、Finish をクリックした。
xfOpenCV_Vivado_HLS_46_190529.png

stereolbm_project が生成された。
xfOpenCV_Vivado_HLS_47_190529.png

Project メニューから Project Settings... を選択した。
Project Settings ダイアログが表示された。左のペインから Simulation を選択した。
右のペインで、Options のClear Build にチェックを入れて、Input Arguments に "left.png right.png" を入力した。
xfOpenCV_Vivado_HLS_48_190529.png

C シミュレーションを行った。
xfOpenCV_Vivado_HLS_49_190529.png

C シミュレーションの結果を示す。
xfOpenCV_Vivado_HLS_50_190529.png

stereolbm/stereolbm_project/solution1/csim/build の内容を示す。
hls_out.jpg がステレオカメラの深度情報になっているようだ。
xfOpenCV_Vivado_HLS_51_190529.png

left.png を引用する。
xfOpenCV_Vivado_HLS_52_190529.jpg

right.png と合わせて深度を測定した結果の hls_out.jpg を示す。奥のほうがグレーが濃くなっているようだ。
xfOpenCV_Vivado_HLS_53_190529.jpg

合成を行った。
この結果からは、Ultra96 では、LUT のリソースが 101 % で足りないようだ。
Latency は 100 MHz クロックで、最大で約 41.8 ms となっている。
xfOpenCV_Vivado_HLS_54_190529.png

C/RTL 協調シミュレーションは例によってエラーになってしまった。
xfOpenCV_Vivado_HLS_55_190529.png

Export RTL を行った。ただし、Vivado synthesis, place and route にチェックを入れてある。
結果を示す。
xfOpenCV_Vivado_HLS_56_190529.png

LUT 使用量が 26286 個になった。LUT としては SRL を含める必要があると思うので、含めると、27299 個となった。
Ultra96 の全LUT 数が 70560 個なので、約 38.7 % となった。これならばUltra96 に十分入る。
Vivado HLS で合成時に出すレポートは当てならないので、Vivado に解析を頼んで、リソースの使用状況を確認したほうが良い。
  1. 2019年05月29日 05:01 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0