FC2カウンター FPGAの部屋 2015年04月20日
FC2ブログ

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

FPGAの部屋

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

Vivado HLS 2014.4 で合成したラプラシアンフィルタIPの高速化15(性能が最大になる設定を探る8、追加1)

コメント欄でラプラシアンフィルタのCソースコード例を示してくれたおるさんのコードを元に、tu1987さんがC++ソースコードを書いてくれた。C++ソースコード、laplacian_filer2.cpp はここにあります。
今回も(かな?)自分では何もしていない。とっても楽なこの環境で良いのだろうか?お二方に深く御礼申し上げます。

今回の修正は、一旦輝度に変換せずにRGB値で値を持って、使うときにRGB-Y変換をするということだ。使うときにRGB-Y変換をするので、RGB-Y変換モジュールは1つから3つに増えているはずだが、一旦、1ライン分、RGB-Y変換をするパスがなくなるので、速くなるはずだ。

Vivado HLS 2014.4 で lap_filter_axim_tu2_2014_4 フォルダを作って、高位合成を行った。
lap_fil_hls_14_4_128_150420.png

Utilization Estimates を下に示す。
lap_fil_hls_14_4_129_150420.png

修正前の tu1978さんのC++ソースコードを高位合成した後のUtilization Estimates はこれだ。


================================================================
== Utilization Estimates
================================================================
* Summary:
+-----------------+---------+-------+-------+-------+
| Name | BRAM_18K| DSP48E| FF | LUT |
+-----------------+---------+-------+-------+-------+
|Expression | -| 5| 0| 573|
|FIFO | -| -| -| -|
|Instance | 0| 4| 2244| 2804|
|Memory | 8| -| 0| 0|
|Multiplexer | -| -| -| 493|
|Register | -| -| 626| 4|
+-----------------+---------+-------+-------+-------+
|Total | 8| 9| 2870| 3874|
+-----------------+---------+-------+-------+-------+
|Available | 120| 80| 35200| 17600|
+-----------------+---------+-------+-------+-------+
|Utilization (%) | 6| 11| 8| 22|
+-----------------+---------+-------+-------+-------+

DSP48Eが 11 個から 41 個に増えている。FF や LUT も増えている。やはり演算器が増えた影響が効いているようだ。

シミュレーション用の Vivado 2014.4プロジェクトをコピーして、IP化した今回のラプラシアンフィルタ IP を使ってシミュレーションを行った。
lap_fil_hls_14_4_130_150420.png

AXI4 Master Read (M_AXI_CAM_FB) と AXI Master Write (M_AXI_LAP_FB) をよく見えるように拡大した。Write 間の間隔を測定すると、24.68 us だった。
lap_fil_hls_14_4_131_150420.png

600 ライン分のラプラシアンフィルタ処理を行った場合に、ラプラシアンフィルタ処理が完了するまでの時間を概算してみよう。

24.68 us x 600 ライン ≒ 14.8 ms

となり、60 fps の16.7 ms を上回る性能を示すという結果を得た。
  1. 2015年04月20日 04:53 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:2