FC2カウンター FPGAの部屋 Vivado HLS で cos() を高位合成
FC2ブログ

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

FPGAの部屋

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

Vivado HLS で cos() を高位合成

Vivado HLS で cos() を高位合成してみた。

使用するC++ソースコード、handshake_test.cpp はこれだ。

//
// handshake_test.cpp
// 2015/05/24
// by marsee
//

#include <stdio.h>
#include <string.h>
#include <cmath>

void handshake_test(float cntin, float *cntout){
#pragma HLS PIPELINE
#pragma HLS INTERFACE ap_hs register port=cntin
#pragma HLS INTERFACE ap_hs register port=cntout
#pragma HLS INTERFACE ap_ctrl_none port=return
    *cntout = cos(cntin);
}


最初に Vivado HLS 2014.4 で 10 ns のクロック周期(100 MHz)で高位合成を行った。その結果を示す。
C2HDL_56_150530.png
なんとレイテンシは 102 クロックだった。

C2HDL_57_150530.png
BRAM_18Kは 8 個、DSP48E 49 個、FFは 28333 個、LUTは63597 個が必要だ。LUTに至っては使用率が 355 % で、つまり、ZYBOでは cos() は実装できない。Zynq7030 でやっとか?

次に、クロック周期を 50 ns にしてみた。つまりクロック周波数は 20 MHz だ。高位合成の結果を下に示す。
C2HDL_58_150530.png
レイテンシは16 クロックになった。

C2HDL_59_150530.png
リソースはFFが大幅に減って、LUTも減っていたが、まだ ZYBO には入らない。


次に、Vivado HLS 2015.1 で同じC++ソースコードを高位合成した。
クロック周期 10 ns に設定した時に高位合成結果を下に示す。
C2HDL_60_150530.png
レイテンシは 100 クロックだった。Vivado HLS 2014.4 から 2 クロック減っている。

C2HDL_61_150530.png
BRAM_18Kは 8 個、DSP48E 49 個、FFは 28174 個、LUTは62161 個が必要だ。LUTに至っては使用率が 353 % で、つまり、ZYBOでは cos() は実装できない。それでも Vivado HLS 2014.4 と比べると、LUTが 1436 個少ない。他は同じだ。

次に、クロック周期を 50 ns、つまり動作周波数を 20 MHz に設定した。高位合成結果を下に示す。
C2HDL_62_150530.png
Vivado HLS 2014.4 同様の 16 クロックだった。

C2HDL_63_150530.png
やはり、リソースはFFが大幅に減って、LUTも減っていたが、まだ ZYBO には入らない。
  1. 2015年05月30日 04:16 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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