FC2カウンター FPGAの部屋 AXI4-Stream インターフェースの全結合層後のReLU 2
fc2ブログ

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

FPGAの部屋

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

AXI4-Stream インターフェースの全結合層後のReLU 2

AXI4-Stream インターフェースの全結合層後のReLU 1(C ソースコード)”の続き。

前回は、AXI4-Stream インターフェースの全結合層後のReLU の C ソースコードを貼った。今回は、C シミュレーション、C コードの合成、C/RTL 協調シミュレーション、Export RTL を行う。

まずは、C シミュレーションからやってみよう。
relu_affine1_1_180308.png

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

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


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

Estmated は 3.35 ns で、Latency は 105 クロックだった。問題ない。


C/RTL 協調シミュレーションを行った。結果を示す。
relu_affine1_5_180308.png

135 クロックだった。

C/RTL 協調シミュレーションの波形を示す。
relu_affine1_6_180308.png

ins_TVALID , ins_TREADY , outs_TVALID , outs_TREADY 共にほとんど 1 にアサートされ続けているので、性能が出ている。

AXI4 Lite インターフェースを見てみよう。
relu_affine1_7_180308.png

カーソルの部分が、 0 番地に 1 を書いて、ReLU の機能がスタートしたところである。


Export RTL を行った。結果を示す。
なお、Vivado synthesis, place and route にチェックを入れてある。
relu_affine1_8_180308.png

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

コメント

コメントの投稿


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

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