だいぶ前になってしまったが、”
Kerasで学習した重みとバイアスを使用した白線間走行用CNNをIPにする2”で、”
カーブ、直線用白線間走行用畳み込みニューラルネットワーク13(AXI4 Stream版CNN IP 1)”の curve_conv_nn2_axis3 プロジェクトを利用して、curve_conv_nn2_axis3_k プロジェクトを作成し、Export RTLでIP 化を行った。
今回は、そのIP を使用して、”
カーブ、直線用白線間走行用畳み込みニューラルネットワーク15(Vivadoプロジェクト)”のVivado プロジェクトをバージョン 2018.2 に変更し、curve_conv_nn2_axis3 を”
Kerasで学習した重みとバイアスを使用した白線間走行用CNNをIPにする2”で作成したIP と交換して、ZYBO_0_182_9_k フォルダに保存した。
ZYBO_0_182_9_k フォルダのVivado 2018.2 プロジェクトを示す。

、”
カーブ、直線用白線間走行用畳み込みニューラルネットワーク15(Vivadoプロジェクト)”のVivado プロジェクトと同じだが、もう一度、ブロックデザイン、Address Editor を示す。



camera_module のブロックデザインを示す。

論理合成、インプリメンテーション、ビットストリームの生成を行った。結果を示す。

タイミングエラーが出ている。
Open Implemented Design を開いて、原因を見てみよう。

やはり、curve_conv_nn2_axi3 IP でタイミングエラーが出ている。
もう一度、”
Kerasで学習した重みとバイアスを使用した白線間走行用CNNをIPにする2”に戻って、Uncertainty を 2 ns に設定して、C コードの合成を行った。結果を示す。


Estimated は9.634 ns で前よりも悪くなっているが、Vivado での解析結果を見ないと何とも言えない。
Latency は、178833 クロックが 194745 クロックに延びているが、まだ、1.95 ms なので問題ない。
リソース使用量はFF と LUT が多少増えている。
Export RTLで IP 化を行った。結果を示す。

CP achiveved post-implementation が 7.937 ns になった。これで大丈夫だろう?
Vivadoプロジェクトで、curve_conv_nn2_axi3 IP を入れ替えて、もう一度、論理合成、インプリメンテーション、ビットストリームの生成を行った。結果を示す。

今度はタイミング制約を満足している。
- 2018年08月10日 06:47 |
- TensorFlow, Keras
-
| トラックバック:0
-
| コメント:0