ザイリンクス Convert ブロックは、各入力サンプルをさまざまな演算型に変換します。たとえば、数値を符号付き (2 の補数) または符号なしの値に変換できます。
ブロック パラメーター
Simulink モデルでブロックのアイコンをダブルクリックすると、[Block Parameters] ダイアログ ボックスが開きます。
- Basic タブ
-
Basic タブには、次のパラメーターがあります。
- Output Type
- 出力のデータ型を指定します。
- [Boolean]
- [Fixed-point]
- [Floating-point]
- Arithmetic Type
- Output Type を Fixed-point に設定した場合、Signed (2’s comp) または Unsigned を選択できます。
- Fixed-point Precision
-
- Number of bits
- 2 進小数点のビット位置を指定します (ビット 0 が最下位ビット)。
- Binary point
- 2 進小数点のビット位置を指定します。
- Floating-point Precision
-
- Single
- 単精度 (32 ビット) を指定します。
- Double
- 倍精度 (64 ビット) を指定します。
- Custom
- [Exponent width] および [Fraction width] を有効にし、指数部の幅と仮数部の幅を指定できるようにします。
- Exponent width
- 指数部のビット幅を指定します。
- Fraction width
- 仮数部の幅を指定します。
- Quantization
-
量子化エラーは、小数部のビット数が値の小数部を表すのに十分でない場合に発生します。オプションは、Truncate (例: 表現可能な最上位ビットの右側のビットを破棄)、Round (unbiased: +/- inf)、または Round (unbiased: even values) です。
Round (unbiased: +/- inf): 「対称丸め (+/- 無限大の方向)」または「対称丸め (0 から遠い方向)」とも呼ばれます。これは、
round()
関数と似ています。このメソッドは、値を 0 から遠い方向の最も近いビットに丸めます。値が 2 つの可能な丸め値の中間値である場合は、大きい方が選択されます。たとえば、01.0110 を Fix_4_2 に丸めると、01.0110 は 01.01 と 01.10 のちょうど中間であるので、0 から遠い方の 01.10 となります。Round (unbiased: even values): 「収束丸め (偶数へ)」または「バイアスをかけない丸め」とも呼ばれます。対称丸めは、中間値が 0 から遠い方に丸められ、丸められた結果の平均値が丸め前の値の平均よりも大きくなるので、バイアスがかけられていると言えます。収束丸めは、0 方向への対称丸めと 0 から遠い方への対称丸めを組み合わせることにより、バイアスをなくします。中間値は、最も近い偶数値に丸められます。たとえば、01.0110 を Fix_4_2 に丸めると、01.0110 は 01.01 と 01.10 のちょうど中間であるので、偶数値である 01.10 となります。01.1010 を Fix_4_2 に丸めると、01.1010 は 01.10 と 01.11 のちょうど中間であるので、偶数値である 01.10 となります。
- Overflow
-
オーバーフロー エラーは、値が表現可能な範囲外である場合に発生します。シミュレーションでのオーバーフローのオプションは、Saturate (最大の正の値/最小の負の値に飽和)、Wrap (例: 表現可能な最上位ビットの左側のビットを破棄)、または Flag as error (Simulink エラーとしてフラグ) です。Flag as error は、シミュレーションのみのオプションです。生成されるハードウェアは、Wrap を選択した場合と同じになります。
- Optional Ports
-
[Provide enable port] はブロックのオプションのイネーブル (en) ピンを有効にします。イネーブル信号がアサートされていない場合、イネーブル信号が再度アサートされるか、またはリセット信号がアサートされるまで、ブロックは現在のステートを保持します。
- Latency
-
ブロックの出力を遅延させるサンプル周期数を指定します。1 サンプル周期が、対応する FPGA インプリメンテーションの複数クロック サイクルに対応する場合があります (ハードウェアが Simulink® モデルに対してオーバークロックされている場合)。Model Composer では、Pipeline for maximum performance オプション (下の説明を参照) を選択していない場合、広範囲のパイプライン処理は実行されません。追加のレイテンシは通常、ブロックの出力のシフト レジスタとしてインプリメントされます。
- Implementation タブ
-
Implementation タブには、次のパラメーターがあります。
- Performance Parameters
-
Pipeline for maximum performance: ザイリンクス LogiCORE は、内部パイプライン処理することにより、エリアよりも速度を優先して最適化できます。このオプションを選択すると、許容される最大レイテンシに達するまで、ユーザー定義のレイテンシがすべてコアに挿入されます。Pipeline for maximum performance オプションが選択されておらず、レイテンシが 0 より長い場合、コアに出力レジスタが 1 つ配置され、コアの出力にレイテンシが追加されます。
Pipeline for maximum performance オプションは、パイプライン レジスタを最後にだけではなくブロック全体に追加し、レイテンシが分散されるようにします。これは、デザインの厳しいタイミング制約を満たすのに役立ちます。
このブロックで使用されるその他のパラメーターについては、[Block Parameters] ダイアログ ボックスの共通オプション を参照してください。
LogiCORE 資料
『Floating-Point Operator LogiCORE IP 製品ガイド』 (PG060)