FC2カウンター FPGAの部屋 Vivado HLS 2014.4 vs Vivado HLS 2015.1 vs Vivado HLS 2015.3(AXI4-Stream版ラプラシアンフィルタ IPの比較)

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

FPGAの部屋

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

Vivado HLS 2014.4 vs Vivado HLS 2015.1 vs Vivado HLS 2015.3(AXI4-Stream版ラプラシアンフィルタ IPの比較)

今年(2015年)の5月8日に、”Vivado HLS 2014.4 vs Vivado HLS 2015.1 vs Vivado HLS 2015.3(AXI4-Stream版ラプラシアンフィルタ IPの比較)”という記事を書いたが、今回はその記事をコピーして、そこに、新しく出たVivado HLS 2015.3 の結果を追加してみようと思う。

AXI4-Stream版ラプラシアンフィルタ IPで、Vivado HLS 2014.4 と Vivado HLS 2015.1 と Vivado HLS 2015.3 の高位合成結果を比較してみた。

C++ ソースコードは、すべて同じもので、”Vivado 2014.4 でAXI4-Stream版ラプラシアンフィルタIP を作製する1(C++ ソースコードの公開)”で示したものだ。但し、lap_filter_axis.h は実際の 800 x 600 ピクセルに変更した。lap_filter_axis.h を下に示す。

// lap_filter_axis.h
// 2015/05/01

#define HORIZONTAL_PIXEL_WIDTH 800
#define VERTICAL_PIXEL_WIDTH 600

// #define HORIZONTAL_PIXEL_WIDTH 50
// #define VERTICAL_PIXEL_WIDTH 10

#define ALL_PIXEL_VALUE (HORIZONTAL_PIXEL_WIDTH*VERTICAL_PIXEL_WIDTH)


クロック周期 10 ns
・Vivado HLS 2014.4
クロック周期 10 ns で Vivado HLS 2014.4 で高位合成を行った結果を示す。
lap_filter_AXIS_52_150507.png
Timing の Estimated は 7.58 ns だった。FF は 382 個、LUT は 626 個使用している。

・Vivado HLS 2015.1
クロック周期 10 ns で Vivado HLS 2015.1 で高位合成を行った結果を示す。
lap_filter_AXIS_53_150507.png
Timing の Estimated は 9.40 ns だった。FF は 387 個、LUT は 556 個使用している。

・Vivado HLS 2015.3
クロック周期 10 ns で Vivado HLS 2015.3 で高位合成を行った結果を示す。
lap_filter_AXIS_66_151008.png 
Timing の Estimated は 6.91 ns だった。FFは 411 個、LUTは 445 個を使用している。
FFは3つのバージョンの中で一番多いが、LUTは一番少ない。FFとLUTの数がバランスしている方がFPGAのSliceを有効に使えて良いと思う。


クロック周期 9 ns
・Vivado HLS 2014.4
クロック周期 9 ns で Vivado HLS 2014.4 で高位合成を行った結果を示す。
lap_filter_AXIS_54_150507.png
Timing の Estimated は 7.58 ns だった。FF は 382 個、LUT は 626 個使用している。つまり、クロック周期が 10 ns の時と同じ回路だと思う。

・Vivado HLS 2015.1
クロック周期 9 ns で Vivado HLS 2015.1 で高位合成を行った結果を示す。
lap_filter_AXIS_55_150507.png
Timing の Estimated は 9.40 ns で、クロック周期 9 ns に対して遅くなりエラーになっている。FF は 387 個、LUT は 556 個使用している。これも、クロック周期が 10 ns の時と同じ回路だと思う。

・Vivado HLS 2015.3
クロック周期 9 ns で Vivado HLS 2015.3 で高位合成を行った結果を示す。
lap_filter_AXIS_67_151008.png 
Timing の Estimated は 6.91 ns だった。FFは 411 個、LUTは 445 個を使用している。クロック周期が 10 ns の時と同じ回路だ。クロック周期が 6.91 ns なので、回路を変える必要はない。


クロック周期 8 ns
・Vivado HLS 2014.4
クロック周期 8 ns で Vivado HLS 2014.4 で高位合成を行った結果を示す。
lap_filter_AXIS_56_150507.png
Timing の Estimated は 6.91 ns だった。FF は 435 個、LUT は 627 個使用している。今回は回路が変更されているようだ。

・Vivado HLS 2015.1
クロック周期 8 ns で Vivado HLS 2015.1 で高位合成を行った結果を示す。
lap_filter_AXIS_57_150507.png
Timing の Estimated は 9.40 ns で、クロック周期 8 ns に対して遅くなりエラーになっている。FF は 436 個、LUT は 556 個使用している。FF が増えているので回路は変更されているようだ。

・Vivado HLS 2015.3
クロック周期 8 ns で Vivado HLS 2015.3 で高位合成を行った結果を示す。
lap_filter_AXIS_68_151008.png 
Timing の Estimated は 6.91 ns だった。FFは 411 個、LUTは 445 個を使用している。クロック周期が 10 ns の時と同じ回路だ。クロック周期が 6.91 ns なので、回路を変える必要はない。


クロック周期 7 ns
・Vivado HLS 2014.4
クロック周期 7 ns で Vivado HLS 2014.4 で高位合成を行った結果を示す。
lap_filter_AXIS_58_150507.png
Timing の Estimated は 6.88 ns だった。FF は 455 個、LUT は 627 個使用している。今回も回路が変更されているようだ。

・Vivado HLS 2015.1
クロック周期 7 ns で Vivado HLS 2015.1 で高位合成を行った結果を示す。
lap_filter_AXIS_59_150507.png
Timing の Estimated は 8.77 ns で、クロック周期 8 ns に対して遅くなりエラーになっている。FF は 455 個、LUT は 564 個使用している。FF が増えているので回路は変更されているようだ。

・Vivado HLS 2015.3
クロック周期 7 ns で Vivado HLS 2015.3 で高位合成を行った結果を示す。
lap_filter_AXIS_69_151008.png 
Timing の Estimated は 6.88 ns だった。FFは 491 個、LUTは 455 個を使用している。初めて、FF、LUT 共に増えた。


クロック周期 6 ns
・Vivado 2014.4
クロック周期 6 ns で Vivado HLS 2014.4 で高位合成を行った結果を示す。
lap_filter_AXIS_60_150507.png
Timing の Estimated は 6.88 ns で、クロック周期 6 ns に対して遅くなりエラーになっている。FF は 473 個、LUT は 637 個使用している。

・Vivado HLS 2015.1
クロック周期 6 ns で Vivado HLS 2015.1 で高位合成を行った結果を示す。
lap_filter_AXIS_61_150507.png
Timing の Estimated は 6.88 ns で、クロック周期 6 ns に対して遅くなりエラーになっている。FF は 473 個、LUT は 566 個使用している。

・Vivado HLS 2015.3
クロック周期 6 ns で Vivado HLS 2015.3 で高位合成を行った結果を示す。
lap_filter_AXIS_70_151008.png 
Timing の Estimated は 6.88 ns で、クロック周期 6 ns に対して遅くなりエラーになっている。FF は 509 個、LUT は 465 個使用している。FF、LUT 共にクロック周期が 7 ns の時よりも増えていて、回路が変わっているようだが、Estimaed は同じでここで限界なのかもしれない?


クロック周期 2.5 ns
・Vivado HLS 2014.4
クロック周期 2.5 ns で Vivado HLS 2014.4 で高位合成を行った結果を示す。限界を見極めるためだ。
lap_filter_AXIS_62_150507.png
Timing の Estimated は 6.88 ns で、クロック周期 2.5 ns に対して遅くなりエラーになっている。FF は 1367 個、LUT は 693 個使用している。これだけFFを使用してもタイミングを満たさないので、ここが限界のようだ。

・Vivado HLS 2015.1
クロック周期 2.5 ns で Vivado HLS 2015.1 で高位合成を行った結果を示す。
lap_filter_AXIS_63_150507.png
Timing の Estimated は 6.88 ns で、クロック周期 2.5 ns に対して遅くなりエラーになっている。FF は 1335 個、LUT は 622 個使用している。これだけFFを使用してもタイミングを満たさないので、こちらもここが限界のようだ。

・Vivado HLS 2015.3
クロック周期 2.5 ns で Vivado HLS 2015.3 で高位合成を行った結果を示す。
lap_filter_AXIS_71_151008.png
Timing の Estimated は 6.88 ns で、クロック周期 2.5 ns に対して遅くなりエラーになっている。FF は 1333 個、LUT は 646 個使用している。これだけFFを使用してもタイミングを満たさないので、ここが限界のようだ。

Vivado HLS 2015.3 は FF の使用量は多いものの、LUTの使用量は少ない。但し、クロック周期 2.5 ns を除けば、FF とLUT の数は大体同じようなので、バランスが良いと言える。今後はVivado HLS 2014.4 の代わりにVivado 2015.3 を使いたいと思う。

  1. 2015年10月09日 04:54 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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