FC2カウンター FPGAの部屋 2017年11月04日

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

FPGAの部屋

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

Vivado HLS 2017.3.1 における識別子の違いによる任意精度固定小数点データ型の動作の違い2(合成編)

Vivado HLS 2017.3.1 における識別子の違いによる任意精度固定小数点データ型の動作の違い1”の続き。

前回は、任意精度固定小数点データ型を使用した時に、量子化モードやオーバーフロー・モードの違いによるCシミュレーションの演算結果の違いについて検討した。今回は、任意精度固定小数点データ型を使用した時に量子化モードやオーバーフロー・モードの違いによる C コードの合成結果の違いについて検討する。なお使用するVivado HLS はUbuntu 16.04 上のVivado HLS 2017.3.1 を使用した。

まずは、

typedef ap_fixed<4, 3, AP_TRN_ZERO, AP_SAT> ap_fixed_def;

の時にC コードを合成してみよう。
結果を示す。
ap_fixed_test_3_171103.png

Latency は 1 クロックで、Interval は 2 クロックとなった。
FF は 11 個、LUT は 220 個使用されている。
Analysis 結果を示す。
ap_fixed_test_5_171103.png

次に、

typedef ap_fixed<4, 3, AP_TRN_ZERO, AP_WRAP> ap_fixed_def;

の時にC コードを合成してみよう。
結果を示す。
ap_fixed_test_4_171103.png

Latency は 0 クロックで、Interval は 1 クロックとなった。組み合わせ回路だ。
リソース使用量もFF が 0 になって、LUT は 33 個だった。やはり、ap_fixed<4, 3, AP_TRN_ZERO, AP_SAT>の時の方がリソース使用量が多い。
Analysis 画面を示す。
ap_fixed_test_6_171103.png

ap_fixed<4, 3, AP_RND, AP_SAT>

を使用した演算を合成した。結果を示す。
ap_fixed_test_7_171103.png

ap_fixed<4, 3, AP_TRN_ZERO, AP_SAT>と比較して、FF は変化ないが、LUT は 220 個から 212 個に減っている。

ap_fixed<4, 3, AP_TRN, AP_SAT>

を使用した演算を合成した。結果を示す。
ap_fixed_test_8_171103.png

なんと、Latency は 0 クロックで、Interval は 1 クロックとなった。飽和演算がついていても組み合わせ回路となった。
リソース使用量は、FF が 0 になった。LUT も 116 個と減少した。

最後に、最小のLUT を求めて、

ap_fixed<4, 3, AP_TRN, AP_WRAP>

でやってみた。
ap_fixed_test_9_171103.png

リソース使用量が LUT が 13 個になった。

このように、量子化モードやオーバーフロー・モードによって、リソース使用量が変化するのがわかった。
  1. 2017年11月04日 05:12 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0