”
AXI4-Stream インターフェースの全結合層後のReLU 1(C ソースコード)”の続き。
前回は、AXI4-Stream インターフェースの全結合層後のReLU の C ソースコードを貼った。今回は、C シミュレーション、C コードの合成、C/RTL 協調シミュレーション、Export RTL を行う。
まずは、C シミュレーションからやってみよう。

所々、2 以上違ってしまっているが、とりあえず、このまま進もう。
シミュレーションでは、全結合層1層目のReLU を行った結果を relu_affine1_output.h に出力する。
const float relu_affine1_fout[100] の一部を示す。

const ap_fixed<19, 7, AP_TRN, AP_WRAP> relu_affine1_out[100] の一部を示す。

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

Estmated は 3.35 ns で、Latency は 105 クロックだった。問題ない。
C/RTL 協調シミュレーションを行った。結果を示す。

135 クロックだった。
C/RTL 協調シミュレーションの波形を示す。

ins_TVALID , ins_TREADY , outs_TVALID , outs_TREADY 共にほとんど 1 にアサートされ続けているので、性能が出ている。
AXI4 Lite インターフェースを見てみよう。

カーソルの部分が、 0 番地に 1 を書いて、ReLU の機能がスタートしたところである。
Export RTL を行った。結果を示す。
なお、Vivado synthesis, place and route にチェックを入れてある。

LUT は 237 個、FF は 281 個使用されている。
CP achieved post-implementation は 5.361 ns なので、問題ないと言える。
- 2018年03月08日 05:02 |
- DNN
-
| トラックバック:0
-
| コメント:0