Data Type Conversion - 2021.2 日本語

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

Document ID
UG1483
Release Date
2021-10-22
Version
2021.2 日本語

入力を出力のデータ型に変換します。

シミュレーション中に整数または固定小数点出力のオーバーフローが発生すると、警告またはエラーが生成されます。設定するには、Configuration Parameters > Diagnostics > Data Validity をクリックします。[Data Validity Pane] で Wrap または Saturate を [Overflow] に設定します。

ライブラリ

Signal Attributes

説明

Data Type Conversion ブロックには、入力が 1 つと出力が 1 つあり、入力信号の値を出力のデータ型に変換します。この変換では、入力信号の数学的な値が保持されます。出力のデータ型はマスク ダイアログ ボックスで指定します。変換には、次の規則が使用されます。

  • 出力が固定小数点型の場合、オーバーフロー モードを考慮して、まず表現可能な最近似値が選択されます。最近似値が複数ある場合は、丸めモードによりいずれかが選択されます。
  • 出力のデータ型が整数型の場合、変換は C 言語と同じように実行されます。オーバーフローは、切り捨て処理されます。
    • 浮動小数点演算の IEEE 規格 (IEEE 規格 754、セクション 7.2) によれば、浮動小数点型から整数型への変換は、浮動小数点値が変換先の整数型の範囲外である場合は無効な操作です。この場合、出力整数値は C コンパイラのインプリメンテーションによって異なります。そのため、HLS Data Type Conversion ブロックからの結果が Simulink® Data Type Conversion ブロックからの結果と異なる場合があります。
    • 浮動小数点値が整数型の範囲外である場合は、Model Composer でのシミュレーションの結果と Vitis HLS の RTL 協調シミュレーションの結果も異なることがあります。
    • シミュレーション中、浮動小数点値が整数型の範囲外であるかどうかを確認するには、SimulinkModel Configuration Parameters > Diagnostics > Data Validity をクリックし、Saturate on overflowwarning または error に設定します。
  • 出力のデータ型が浮動小数点の場合、C 言語の規則に従います。

データ型サポート

入力信号には、倍精度浮動小数点型、単精度浮動小数点型、整数型、ブール型、ザイリンクスがサポートする半精度浮動小数点型、またはザイリンクスがサポートする固定小数点型を使用できます。

出力のデータ型でマスク パラメーターが指定されます。

入力は、実数または複素数で、スカラー、ベクター、または行列にできます。出力信号の複雑性と次元は、入力信号と同じになります。

パラメーター

Output data type

出力信号のデータ型を指定します。fixed を指定すると、さらに多くのパラメーターを設定できるようになります。

Output data type に有効な設定は次のとおりです。

表 1. [Output data type] パラメーター
設定 説明
double 倍精度浮動小数点
single 単精度浮動小数点
int8 8 ビットの符号付き整数
uint8 8 ビットの符号なし整数
int16 16 ビットの符号付き整数
uint16 16 ビットの符号なし整数
int32 32 ビットの符号付き整数
uint32 32 ビットの符号なし整数
logical ブール型
fixed ザイリンクスがサポートする固定小数点
half ザイリンクスがサポートする半精度浮動小数点
data type expression

出力のデータ型を指定する文字列。詳細は、 『Vitis Model Composer ユーザー ガイド』 (UG1483) の「データ型式の使用」を参照してください。

Signedness

Output data typefixed に設定した場合、Signedness パラメーターで出力が符号付き固定小数点か符号なし固定小数点かを指定します。

Signedness に有効な設定は次のとおりです。

表 2. [Signedness] パラメーター
設定 説明
Signed 出力型には、正と負の両方の数が含まれます。
Unsigned 出力型には、負以外の数のみが含まれます。

このパラメーターは、Output data typefixed を選択すると設定できるようになります。

Word length

Output data typefixed に設定した場合、Word length パラメーターでビット数を指定します。

表 3. [Word length] パラメーター
選択肢 説明
16  
N 正の整数

このパラメーターは、Output data typefixed を選択すると設定できるようになります。

Fractional length

Output data typefixed に設定した場合、Fractional length パラメーターで 2 進数小数点の右側のビット数を指定します。

表 4. [Fractional length] パラメーター
選択肢 説明
10  
N 整数

このパラメーターは、Output data typefixed を選択すると設定できるようになります。

Round

Output data typefixed に設定した場合、Round パラメーターで 5 つの丸めオプションと 2 つの切捨てオプションから丸めモードを選択します。

5 つの丸めオプションの 1 つを選択すると、サポートされる精度に最も近い値に丸められます。5 つの丸めオプションは、丸め後の値に 2 つの同等の候補がある場合に使用されます。たとえば、出力のデータ型が符号付き固定小数点でワード長が 6、小数部の長さが 2、ブロックへの入力が 2.74 であるとします。この場合、どの丸めオプションが選択されていても、出力値はサポートされる精度に最も近い値 2.75 になります。入力値が 2.625 (2.5 と 2.75 の中間) の場合は、出力値は選択した丸めモードによって異なり、Round to plus infinity の場合は 2.75 に、Round to zero の場合は 2.5 になります。詳細は、 『Vitis 高位合成ユーザー ガイド』 (UG1399) を参照してください。

2 つの切り捨てオプションの 1 つを選択すると、選択された切り捨て方法でサポートされる精度に切り捨てられます。

Round のデフォルト設定は Truncation to minus infinity で、必要なハードウェアがすべてのオプションの中で最小になります。

Round パラメーターは、Output data type パラメーターに fixed を選択した場合にのみ設定可能です。

Round パラメーターの設定は、次のとおりです。

表 5. [Round] パラメーター
設定 説明
Round to plus infinity 正の無限大への丸め
Round to zero 0 への丸め
Round to minus infinity 負の無限大への丸め
Round to infinity 無限大への丸め
Convergent rounding 収束丸め
Truncation to minus infinity Truncation to minus infinity
Truncation to zero 0 への切り捨て
Overflow

Output data typefixed に設定した場合、Overflow パラメーターで変換中に適用されるオーバーフロー モードを指定します。

このパラメーターは、Output data typefixed を選択すると設定できるようになります。

Overflow パラメーターの設定は、次のとおりです。

表 6. [Overflow] パラメーター
設定 説明
Saturation 飽和
Saturation to Zero 0 への飽和
Symmetrical Saturation 対称飽和
Wrap around 折り返し
Sign-Magnitude Wrap Around 符号絶対値の折り返し
Type Expression

Output data typedata type expression に設定した場合、Type Expression パラメーターで出力のデータ型を文字列に指定します。

このパラメーターは、Output data typedata type expression を選択すると設定できるようになります。

Saturate on integer overflow

整数オーバーフローを折り返し (デフォルト) で処理するか、飽和で処理するかを指定します。このパラメーターは、出力が整数型 (int8、int16、int32、uint8、uint16、uint32) の場合にのみ適用されます。

オーバーフローが検出されると、[Configuration Parameters] ダイアログ ボックスで選択した診断操作によって Diagnostic Viewer にメッセージが表示されます。設定するには、Configuration Parameters > Diagnostics > Data Validity ペインでオーバーフローに [Wrap] または [Saturate] を設定します。

Saturate on integer overflow パラメーターの設定は、次のとおりです。

表 7. [Saturate On Integer Overflow] パラメーター
設定 説明
オフ 整数オーバーフローが折り返しで処理されます。
オン 整数オーバーフローが飽和で処理されます。

Output data typefixed に設定すると、Simulink エディターで指定した診断操作に応じて Diagnostic Viewer にメッセージが表示されます。これを設定するには、Simulink エディターのモデルで Simulation > Model Configuration Parameters > Diagnostics > Data Validity をクリックし、Wrap on overflow または Saturate on overflow パラメーターを設定します。