HLS ライブラリ ブロックでは、次のデータ型がサポートされます。
名前 | 説明 |
---|---|
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 ブロックを使用すると、たとえば単精度の浮動小数点を倍精度に変換したり、倍精度を単精度に変換したりできます。
重要: 精度の高いデータ型を精度の低いデータ型にキャストする場合は、精度が下がることにより丸めまたは切り捨てが発生し、データが損失する可能性があるので注意が必要です。