FC2カウンター FPGAの部屋 2019年09月05日
FC2ブログ

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

FPGAの部屋

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

Vivado HLSのバージョンによる性能差(ガボールフィルタを使用)

Vivado HLS 2017.4、Vivado HLS 2018.3、Vivado HLS 2019.1 の性能差をガボールフィルタを使って比較してみよう。
ガボールフィルタの実装では結構差が出ている。Vviado HLS は各バージョンで同じプロジェクトを使えていたが、最近はプロバティが変わっていてエラーが出ることが多くなった。この3バージョンは同じプロジェクトで使いまわすことができなかった。各バージョンで独立のプロジェクトを必要とした。
なお、使用しているソースコードは、”Ultra96用ガボールフィルタIP の作成1”のものを使用している。

まずは、Vivado HLS 2017.4 から合成結果を示す。
Gabor_filter_lh_2_21_190905.png

Timing の Estimated は 5.84 ns と制約をオーバーしている。
Latency の min は 6152 クロック、max は 4147208 クロックだった。
リソース使用量はBRAM_18K が 24 個、DSP48E が 98 個、FF が6736 個、LUT が 8032 個だった。

Export RTL の結果をみてみよう。
Gabor_filter_lh_2_22_190905.png

CP achieved post-synthesis が 9.790 ns で、CP achieved post-implementation が 9.958 ns とターゲットの倍近くになってしまっている。これでは使い物にならないと言える。

次に、Vivado HLS 2018.3 の結果をみてみよう。
合成結果を示す。
Gabor_filter_lh_2_23_190905.png

Timing Estimated が 4.360 ns でターゲットをクリアできた。その代わりLatency は伸びている。
リソース使用量は 2017.4 よりも少なくなっている。

Export RTL の結果をみてみよう。
Gabor_filter_lh_2_24_190905.png

CP achieved post-synthesis が 3.388 ns で、CP achieved post-implementation が 4.347 ns とターゲットをクリアできた。

最後に、現在の最新バージョンの Vivado HLS 2019.1 の結果をみてみよう。
合成結果を示す。
Gabor_filter_lh_2_19_190905.png

2018.3 と余り変化はないようだ。

Export RTL の結果をみてみよう。
Gabor_filter_lh_2_20_190905.png

CP achieved post-synthesis が 3.388 ns で、CP achieved post-implementation が 4.643 ns とターゲットをクリアできたが 2018.3 よりも、CP achieved post-implementation が長くなっている。

最後に、全バージョンのVivado HLS での性能比較表を示す。
Gabor_filter_lh_2_25_190905.png

2018.3 と 2019.1 はほとんど一緒だが、2017.4 の性能はあまり良くないようだ。特に、Vivado での CP achieved post-implementation が 9.958 ns はターゲットの 2 倍近くになっている。なるべく新しいバージョンのVivado HLS と Vivado を使ったほうが良さそうだ。
  1. 2019年09月05日 06:33 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0