FC2カウンター FPGAの部屋 カーブ、直線用白線間走行用畳み込みニューラルネットワーク15(Vivadoプロジェクト)
FC2ブログ

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

FPGAの部屋

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

カーブ、直線用白線間走行用畳み込みニューラルネットワーク15(Vivadoプロジェクト)

カーブ、直線用白線間走行用畳み込みニューラルネットワーク14(AXI4 Stream版CNN IP 2)”の続き。

前回で、カーブと直線での出力を学習した畳み込みニューラルネットワークをVivado HLS 2017.3 で IP にすることができた。今回はその curve_conv_nn2_axis3 IP を使用し、直線用のVivado 2017.3 のプロジェクトを修正して、カーブと直線対応のミニ・ロボットカーの走行システムを作成してみよう。

直線走行の時のVivado プロジェクトがあるので、それをVivado 2017.3 に変換して、 ZYBO_0_173_9 フォルダとした。

straight_conv_nn2_axis2 IP を削除して、代わりに curve_conv_nn2_axis3 IP を追加 した。
curve_tracing_cnn_68_171224.png

ZYBO_0_173_9 フォルダのZYBO_0_153 プロジェクトを示す。
curve_tracing_cnn_69_171224.png

ZYBO_0 ブロック・デザインを示す。
curve_tracing_cnn_70_171224.png

camera_interface モジュールを示す。
curve_tracing_cnn_71_171224.png

Address Editor を示す。最後に curve_conv_nn2_axi3_0 があるのが分かる。
curve_tracing_cnn_72_171224.png

これで、論理合成、インプリメント、ビットストリームの生成を行ったが、Timing エラーだった。
curve_tracing_cnn_73_171224.png

Timing エラーを探るために、Open Implement Degin をクリックした。
Timing を見ると、Intra-Clock Paths の clk_fpga_0 クロック領域内で、curve_conv_nn2_axis3 IP 内のパスがタイミング・エラーを起こしている。
curve_tracing_cnn_74_171224.png

やはり、Vivado HLS に戻って制約をきつくする必要がある。
Vivado HLS に戻って、curve_conv_nn2_axis3 プロジェクトを開いた。
Soulution メニューからSolution Settings を開く。
Solution Settings (solution1) ダイアログで、Uncertainty に 2 (ns) を設定した。(”Vivado HLS の合成でEstimated がTarget の制約を満たせなかったときの処置”を参照のこと)
curve_tracing_cnn_75_171224.png

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

前の合成結果と比較すると、Latency が 100 クロック増えた。増えた場所は af1_dot1 で Iteration Latency が 956 から 957 になって、Trip Count が 100 なので、100 クロック増えている。これで一番のクリティカルパスをつぶしたのだろう。
Estimated は 8.38 ns が 8.77 ns になってしまったが、実質的な性能はExport RTL で確認しよう。

Export RTL を行った。結果を示す。
curve_tracing_cnn_78_171224.png

Final Timing のCP achieved post-implemetation は、8.944 ns になっていて、前回の 9.934 ns よりも大分改善してる。
この IP をZYBO_0_173_9 フォルダのVivado プロジェクトの curve_conv_nn2_axis3 フォルダにコピーした。

IP をUpgrade して、論理合成、インプリメント、ビットストリームの生成を行った。結果を示す。
curve_tracing_cnn_79_171224.png

今度は、タイミング・エラーは発生しなかった。成功だ。
  1. 2017年12月25日 04:47 |
  2. DNN
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/4016-3929487d
この記事にトラックバックする(FC2ブログユーザー)