Vivado HLS で xfOpenCV を使用する2(Vivado HLS 2018.3 のGUI を使用する)”の続き。

前回は、xfopencv/HLS_Use_Model/ ディレクトリにあるもう一つのサンプル・デザインの AXI_Sample をVivado HLS GUI を起動してやってみた。今回は、examples ディレクトリの harris をVivado HLS GUI でやってみようと思う。

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


harris/data ディレクトリには、 im0.jpg がある。
f9e7a80b.png


さて、Vivado HLS 2018.3 で harris_project プロジェクトを作っていこう。
d3f2a972.png


次に、ソースを登録する。
xf_harris_accel.cpp を CFLAG = "-D__XFCV_HLS_MODE__ -I../../../include --std=c++0x"を付けて登録した。
813c1c85.png


次にテストベンチを登録する。
xf_harris_tb.cpp を CFLAG = "-D__XFCV_HLS_MODE__ -I../../../include --std=c++0x"を付けて登録した。(ここで、im0.jpg を登録するのを忘れてしまった。。。)
3830b6aa.png


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


harris_project が生成された。
61256785.png


ここで、テストベンチに im0.jpg が入っていないのに気がついたので、Add File... で im0.jpg を追加した。
a9567bb4.png


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


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

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


harris/harris_project/solution1/csim/build の内容を示す。
bff70856.png


output_hls.png を見るとコーナー検出されているのが分かる。
0b3e0935.png


C コードの合成を行った。結果を示す。
2bf71bf1.png


Latency -> Detail -> Instance の grp_cornerHarris_fu_72 をクリックして、下の階層のレポートを見る。
Latency -> Detail -> Instance には、xFCornerHarrisDetect_1_U0, cornerHarris_Loop2_U0, cornerHarris_Loop1_U0 があった。
3b4dfbd6.png


xFCornerHarrisDetect_1_U0 をクリックした。
Latency -> Detail -> Instance には、grp_xFCornerHarrisDetect_fu_56 があった。
424049a5.png


grp_xFCornerHarrisDetect_fu_56 をクリックした。
今度は、Latency -> Detail -> Instance には、沢山のインスタンスがあった。もう良く分からない???
423cf43c.png


C/RTL 協調シミュレーションを行ったところ、Fail してしまった。
73c06945.png


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