データ型の使用 - 2022.1 日本語

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

Document ID
UG1483
Release Date
2022-05-26
Version
2022.1 日本語
HLS ライブラリ ブロックでは、次のデータ型がサポートされます。
表 1. Model Composer のデータ型
名前 説明
double 倍精度浮動小数点
single 単精度浮動小数点
half* 半精度浮動小数点
int8 符号付き 8 ビット整数
uint8 符号なし 8 ビット整数
int16 符号付き 16 ビット整数
uint16 符号なし 16 ビット整数
int32 符号付き 32 ビット整数
uint32 符号なし 32 ビット整数
fixed* 符号付きおよび符号なしの固定小数点
boolean Simulink では 0 以外の実数値が TRUE (1) と表示されます。
重要: * の付いたデータ型は Model Composer HLS ライブラリ特有のもので、Simulink ではサポートされません。Simulink でも固定小数点データ型はサポートされていますが、Fixed-Point Designer™ をインストールしてライセンスを取得しておく必要があります。また、Vitis Model Composer でサポートされる固定小数点データ型は、表記は同様ですが、Simulink でサポートされる固定小数点データ型とは互換性がありません。
前述の表には、Model Composer HLS ではサポートされても、Simulink ではデフォルトでサポートされないデータ型も含まれています。fixed または half 型を使用する HLS ライブラリからのブロックを Simulink ネイティブのブロックに接続すると、Simulink でシミュレーションを実行、Update Diagram コマンドを使用、または Ctrl+D キーを押したときに、次のようなエラー メッセージが表示されます。
RelationalOperator does not accept signals of data type 'x_sfix16'. 
'ConstRE_or_IMpartBug/Relational Operator' only accepts numeric and enumerated data types.

このエラーは、Simulink では Model Composer の固定小数点型を倍精度の浮動小数点型に変換できないことを示しています。

データ型が一致しない場合は、Data Type Conversion ブロックを使用しモデルの動作を指定し、データ型の変換を指定することをお勧めします。Data Type Conversion (DTC) ブロックは、HLS ライブラリの Signal Attributes ライブラリに含まれています。
図 1. Data Type Conversion ブロック
DTC ブロックでは、出力のデータ型 (Output data type) を指定できますが、入力のデータ型は入力ポートに接続される信号によって自動的に判断されます。DTC ブロックを使用すると、たとえば単精度の浮動小数点を倍精度に変換したり、倍精度を単精度に変換したりできます。
重要: 精度の高いデータ型を精度の低いデータ型にキャストする場合は、精度が下がることにより丸めまたは切り捨てが発生し、データが損失する可能性があるので注意が必要です。