固定小数点型の使用 - 2023.2 日本語

Vitis Model Composer ユーザー ガイド (UG1483)

Document ID
UG1483
Release Date
2023-11-15
Version
2023.2 日本語

前述のように、 Simulink® で固定小数点型はサポートされていますが、Fixed-Point Designer™ 製品が必要となります。また、Vitis Model Composer でサポートされる fixed データ型は Simulink のものと互換性がありません。

図 1. 固定小数点型

Model Composer の固定小数点型を表示するのに使用されるフォーマットは x_[u/s]fix[wl]_E[n][fl] です。

説明:

  • x_: AMDの固定小数点型を示す接頭辞。
  • [u/s]: 符号なしか符号付きかを示します。
  • fix: 固定小数点型であることを示します。
  • [wl]: データのワード長を指定します。
  • E: 固定小数点型の小数部の接頭辞。小数部の長さが 0 の場合は表示されません。
  • n: 2 進数小数点がワードの最下位ビットの左にある場合は n を表記し、最下位ビットの右にある場合は n は表記しません。
  • [fl]: 固定小数点型の小数部の長さを指定し、ワードの最下位ビットに対する 2 進数小数点の位置を示します。

たとえば、x_sfix16_En6 は符号付き 16 ビットの固定小数点で、2 進小数点の右側に 6 ビットが割り当てられています。

また、固定小数点型では、データ オーバーフローが発生した場合の処理、丸めまたは切り捨ての有無も指定できます。詳細は、Data Type Conversion を参照してください。

Model Composer の固定小数点型は DTC ブロックを使用して Simulink の固定小数点型に変換する必要がありますが、Model Composer の固定小数点型と Simulink の固定小数点型を直接変換することはできません。次の方法を使用できます。

  1. ライブラリ ブラウザーの HLS ライブラリにある DTC ブロックを使用して、Model Composer の固定小数点型を double 型に変換します。
  2. ライブラリ ブラウザーから Simulink Signal Attributes ライブラリにある Simulink Data Type Conversion ブロックを使用して、double 型を Simulink フォーマットの固定小数点型に変換します。
  3. 2 つの固定小数点型の符号の有無、ワード長、小数長を同じにします。
ヒント: Model Composer の固定小数点型と Simulink の固定小数点型間の変換は、デザインで必要な場合以外はお勧めしません。ほとんどのアプリケーションでは、Model Composer の固定小数点型を double 型に変換するだけで十分なはずです。

固定小数点型の操作には時間がかかりますが、FPGA にインプリメントするアプリケーションには固定小数点型を使用する価値があります。これは通常、浮動小数点で設計した方がデザインの消費電力が大きくなるからです。FPGA には浮動小数点の DSP ブロックが搭載されており、DSP ブロックとその他のデバイス リソースを使用して浮動小数点ソリューションをインプリメントする必要があるので、消費電力が大きくなります。浮動小数点のインプリメンテーションには、同等の固定小数点のソリューションよりも多くの FPGA リソースが必要になります。リソース使用量が多くなると、消費電力も大きくなるので、デザインのインプリメンテーションの全体的なコストも高くなります。詳細は、ホワイト ペーパー 『浮動小数点から固定小数点への変換による消費電力およびコストの削減』 (WP491) を参照してください。