AXI4-Stream インターフェースのMax Pooling 2(Cシミュレーションと合成)”の続き。

前回は、Vivado HLS 2017.4 で max_pooling プロジェクトを作成して、C シミュレーションと C コードの合成を行った。今回は、 max_pooling プロジェクトのC/RTL 協調シミュレーションとExport RTLを行う。

まずは、C/RTL 協調シミュレーションを行った。結果を示す。
09f38a6e.png


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


outs_TVALID を見ると 1 行ごとに 2 クロックに 1 回 1 にアサートされているのが分かる。これはMax Pooling がストラド2 の 2 x 2 の領域に行われているからだ。

AXI4 Lite Slave インターフェースの波形を示す。
ec383f94.png


Start ビットをセットしてから、ポーリングで終了を検出している。

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

合成レポートでは、422 個だったFF は 331 個、LUT は 815 個が 226 個に減少した。