FC2カウンター FPGAの部屋 Vivado HLS 2015.4と2017.2の合成時の違い
FC2ブログ

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

FPGAの部屋

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

Vivado HLS 2015.4と2017.2の合成時の違い

Linux 版のVivado 2017.2 で乗算回路を作った。FPGAマガジンNo.14 にも書いた乗算回路のC 記述だ。
Vivado_HLS_1_171027.png

C コードの合成を行った。
Vivado_HLS_2_171027.png

Target が 10 ns ではLUT が 62 個使用されている。

それでは、Vivado HLS 2015.4 ではどうだったかというと、Target 10 ns の時、DSP を 1 個使用していた。FPGAマガジンNo.14 の時のVivado HLS 2016.1 も同様だった。
Vivado hls勉強会1(基礎編)の41ページと42ページを示す。
https://image.slidesharecdn.com/vivadohls1-151210121350/95/vivado-hls1-41-638.jpg?cb=1463176003
Vivado_HLS_3_171027.png

https://image.slidesharecdn.com/vivadohls1-151210121350/95/vivado-hls1-42-638.jpg?cb=1463176003
Vivado_HLS_4_171027.png

Vivado HLS 2015.4、Vivado HLS 2016.1 の時はDSP を使用して、Vivado HLS 2017.2 の時はLUT を使用するようになったようだ。

Vivado HLS 2017.2 でTarget を 2.5 ns にしてやってみたが、やはりDSP は使われずに、今度はFF が入ったようで、FF が 107 個に LUT が 110 個になった。それでも Estimated は 5.42 ns だった。
Vivado_HLS_6_171027.png

Export RTL をやってみた。Vivado で論理合成とプレース・アンド・ルートするようにチェックを入れた。結果を示す。
Vivado_HLS_7_171027.png

CP achieved post-implementation は 5.535 ns だった。

次に、Vivado 2017.2 でDSP を使うように出来た。それは、入力と出力のビット幅を増やしたことだ。入力のビット幅を 16 ビットに、出力のビット幅を 32 に増やしたらDSP を使うようになった。
Vivado_HLS_5_171027.png

C コードの合成結果を示す。
Vivado_HLS_8_171027.png

Export RTL の結果を示す。Target 2.5 ns でも満足している。
Vivado_HLS_9_171027.png

Vivado HLS 2017.2 で高速な乗算回路が欲しくてDSP を使いたいときは、入力のビット幅と出力のビット幅をある程度増やせば良いようだ。
ちなみに、Vivado HLS 2017.3 でなのだが、いろいろな指示子(ディレクティブ)を使用してDSP 使わせようとしたが、頑として使ってくれなかった。唯一、ビット幅を拡張した時だけ、DSPを使ってくれた。やはり、少ないビット幅だとDSP を使うのがもったいないということで使わなくなったのだろうか?
  1. 2017年10月27日 05:31 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/3955-f1824125
この記事にトラックバックする(FC2ブログユーザー)