FC2カウンター FPGAの部屋 HLSストリームの全結合層2(Export RTLまで)
FC2ブログ

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

FPGAの部屋

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

HLSストリームの全結合層2(Export RTLまで)

HLSストリームの全結合層1(C ソースコード)”の続き。

前回は、HLSストリームの全結合層のC ソースコードを貼ったので、今回は、HLSストリームの全結合層1層目のC シミュレーション、C コードの合成、C/RTL 協調シミュレーション、Export RTL を行う。

最初にC シミュレーションを行った。結果を示す。
hls_affine1_1_180428.png

Error Count = 0 なので、2 つの任意精度固定小数点データ型の全結合層の計算が合った。

C コードの合成を行った。
hls_affine1_2_180428.png

Estmated は 8.55 ns で問題なさそうだ。Latency の min は 8505 クロックで max は 8817 クロックだった。
BRAM_18K は 12 個、DSP48E は 3 個、FF は593 個、LUT は 1077 個使用している。

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

Latency は 8818 クロックだった。

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

ins_V_read がまばらに 1 になっているが、1 個のデータが来たら、中間層の 100 回演算を直列にしてから次のデータを read するためそうなっている。outs_V_write は、最後のデータが来るまで、出力値は確定しないので、最後だけ 1 にアサートされているのが分かると思う。

最初の一部分を拡大してみた。
hls_affine1_5_180428.png

ins_V_read の間隔は1.13 us だった。

最後を拡大してみた。
hls_affine1_6_180428.png

最後に中間層 100 個分のデータが出力されている。

Export RTL を行った。
なお、Vivado synthesis, place and route にチェックを入れている。
hls_affine1_7_180428.png

CP achieved post-implementation は 7.524 ns で問題なさそうだ。
  1. 2018年04月29日 17:39 |
  2. DNN
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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