FC2カウンター FPGAの部屋 Vivado HLS でRGB2HSV IPを作る5(性能とリソース使用量)

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

FPGAの部屋

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

Vivado HLS でRGB2HSV IPを作る5(性能とリソース使用量)

Vivado HLS でRGB2HSV IPを作る4(C ソースコード)”の続き。

今回は、”Vivado HLS でRGB2HSV IPを作る4(C ソースコード)”で C コードの合成を行って、性能とリソース使用量を考える。

まずは、”Vivado HLS でRGB2HSV IPを作る4(C ソースコード)”の rgb2hsv() を 合成した。
結果を示す。
rgb2hsv_16_161019.png

640 * 480 ピクセルの画像を使用している。よって、640 * 480 = 307200 なので、ほぼ 1 クロックで 1 ピクセルを処理できている。

Vivado HLS でRGB2HSV IPを作る1(UNROLL指示子による性能向上)”にも書いた通り(C ソースコードは間違っているが)、「#pragma HLS UNROLL factor=2」を使って、タイミングエラーを解消はできたが、リソースは2倍程度になってしまった。

ここで、そのリソース使用量の 33 % を受け入れてしまうこともできるが、もう一度立ち止まって仕様を考えてみよう。
RGB2HSV IP はカメラの画像出力ののAXI4-Stream と メモリへのAXI4-Stream to AXI4 Master Write の間に入れる。カメラ画像出力は800 x 600 なので、ピクセルは40MHz の動作クロックで処理される。これは、25 ns となる。しかも、カメラのフレームレートは 15 fps なので、25 ns の1/4 のスピードで処理できれば良いということだ。
つまり、100 MHz の動作周波数はRGB2HSVに必要ないので、設定する周波数を落とすことができる。
つまり、Target を 25 ns にして、「#pragma HLS UNROLL factor=2」を外して合成してみた。
結果を示す。
rgb2hsv_17_161019.png

ここで、Latency は 6144006 になった。
6144006 / (640 * 480) ≒ 20 なので、1ピクセル処理するのに20クロック必要だ。これでは、使用に耐えないが、Vivado HLSで作ると簡単にパラメータを変えられるとことが良いと思う。
  1. 2016年10月19日 04:33 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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