FC2カウンター FPGAの部屋 Vivado HLS で xfOpenCV を使用する3(Harris コーナー検出)
FC2ブログ

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

FPGAの部屋

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

Vivado HLS で xfOpenCV を使用する3(Harris コーナー検出)

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 ディレクトリの下にコピーした。
xfOpenCV_Vivado_HLS_22_190522.png

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

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

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

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

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

harris_project が生成された。
xfOpenCV_Vivado_HLS_28_190522.png

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

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

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

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

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

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

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

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

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

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

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

Export RTL を行った。ただし、Vivado synthesis, place and route にチェックを入れてある。
結果を示す。
xfOpenCV_Vivado_HLS_40_190522.png
  1. 2019年05月22日 21:05 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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