”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 ディレクトリの下にコピーした。
harris/data ディレクトリには、 im0.jpg がある。
さて、Vivado HLS 2018.3 で harris_project プロジェクトを作っていこう。
次に、ソースを登録する。
xf_harris_accel.cpp を CFLAG = "-D__XFCV_HLS_MODE__ -I../../../include --std=c++0x"を付けて登録した。
次にテストベンチを登録する。
xf_harris_tb.cpp を CFLAG = "-D__XFCV_HLS_MODE__ -I../../../include --std=c++0x"を付けて登録した。(ここで、im0.jpg を登録するのを忘れてしまった。。。)
Ultra96 の使用を仮定して、 xczu3eg-sbva484-1-e を選択して、Finish をクリックした。
harris_project が生成された。
ここで、テストベンチに im0.jpg が入っていないのに気がついたので、Add File... で im0.jpg を追加した。
Project メニューから Project Settings... を選択した。
Project Settings ダイアログが表示された。左のペインから Simulation を選択した。
右のペインで、Options のClear Build にチェックを入れて、Input Arguments に im0.jpg を入力した。
C シミュレーションを行った。
C シミュレーションの結果を示す。
harris/harris_project/solution1/csim/build の内容を示す。
output_hls.png を見るとコーナー検出されているのが分かる。
C コードの合成を行った。結果を示す。
Latency -> Detail -> Instance の grp_cornerHarris_fu_72 をクリックして、下の階層のレポートを見る。
Latency -> Detail -> Instance には、xFCornerHarrisDetect_1_U0, cornerHarris_Loop2_U0, cornerHarris_Loop1_U0 があった。
xFCornerHarrisDetect_1_U0 をクリックした。
Latency -> Detail -> Instance には、grp_xFCornerHarrisDetect_fu_56 があった。
grp_xFCornerHarrisDetect_fu_56 をクリックした。
今度は、Latency -> Detail -> Instance には、沢山のインスタンスがあった。もう良く分からない???
C/RTL 協調シミュレーションを行ったところ、Fail してしまった。
Export RTL を行った。ただし、Vivado synthesis, place and route にチェックを入れてある。
結果を示す。
前回は、xfopencv/HLS_Use_Model/ ディレクトリにあるもう一つのサンプル・デザインの AXI_Sample をVivado HLS GUI を起動してやってみた。今回は、examples ディレクトリの harris をVivado HLS GUI でやってみようと思う。
まずは、examples ディレクトリの harris ディレクトリを ~/xfopencv/HLS_Use_Model/examples ディレクトリの下にコピーした。
harris/data ディレクトリには、 im0.jpg がある。
さて、Vivado HLS 2018.3 で harris_project プロジェクトを作っていこう。
次に、ソースを登録する。
xf_harris_accel.cpp を CFLAG = "-D__XFCV_HLS_MODE__ -I../../../include --std=c++0x"を付けて登録した。
次にテストベンチを登録する。
xf_harris_tb.cpp を CFLAG = "-D__XFCV_HLS_MODE__ -I../../../include --std=c++0x"を付けて登録した。(ここで、im0.jpg を登録するのを忘れてしまった。。。)
Ultra96 の使用を仮定して、 xczu3eg-sbva484-1-e を選択して、Finish をクリックした。
harris_project が生成された。
ここで、テストベンチに im0.jpg が入っていないのに気がついたので、Add File... で im0.jpg を追加した。
Project メニューから Project Settings... を選択した。
Project Settings ダイアログが表示された。左のペインから Simulation を選択した。
右のペインで、Options のClear Build にチェックを入れて、Input Arguments に im0.jpg を入力した。
C シミュレーションを行った。
C シミュレーションの結果を示す。
harris/harris_project/solution1/csim/build の内容を示す。
output_hls.png を見るとコーナー検出されているのが分かる。
C コードの合成を行った。結果を示す。
Latency -> Detail -> Instance の grp_cornerHarris_fu_72 をクリックして、下の階層のレポートを見る。
Latency -> Detail -> Instance には、xFCornerHarrisDetect_1_U0, cornerHarris_Loop2_U0, cornerHarris_Loop1_U0 があった。
xFCornerHarrisDetect_1_U0 をクリックした。
Latency -> Detail -> Instance には、grp_xFCornerHarrisDetect_fu_56 があった。
grp_xFCornerHarrisDetect_fu_56 をクリックした。
今度は、Latency -> Detail -> Instance には、沢山のインスタンスがあった。もう良く分からない???
C/RTL 協調シミュレーションを行ったところ、Fail してしまった。
Export RTL を行った。ただし、Vivado synthesis, place and route にチェックを入れてある。
結果を示す。
コメント