記事 ID: 000075459 コンテンツタイプ: トラブルシューティング 最終改訂日: 2021/08/28

浮動小数点カスタム命令を使用すると、浮動小数点定数は単精度または倍精度としてコンパイルされますか?

環境

  • 浮動小数点
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    詳細

    デフォルトでは、カスタム命令を使用すると、浮動小数点定数は単精度としてコンパイルされ、単精度浮動小数点演算はハードウェアに実装されます。次の回避策では、倍精度および倍精度浮動小数点演算がソフトウェアに実装されるため、浮動小数点定数を強制的にコンパイルします。

    次のいずれかの回避策を使用することができます。

    オプション 1 - 倍精度浮動小数点定数に後置 「L」を追加してソフトウェアを変更し、定数が単精度に変換されないようにします。

    次の表は、コード例と浮動小数点カスタム命令ハードウェアの使用方法、精度、および実装がハードウェアまたはソフトウェア内にあるかどうかを示しています。

    コード例  FP CI の使用方法   精度  実装  
    b= a * 4.67はい単一 ハードウェア
    b = a * 4.67いいえダブル ソフトウェア
    b = a * 4.67fはい単一 ハードウェア
    b = a * 4.67fいいえ単一 ソフトウェア
    b = a * 4.67L気にしないでください*ダブル ソフトウェア
    * FP CI ハードウェアは倍精度演算には使用しません。

    オプション 2 -public.mk では、-mcusほかに -mcusほか fpu-config フラグを手動で削除し、個々のコンパイラー・フラグに置き換えますが、-fsingle-precision-constant フラグは省略します。

    "-mcussub-fpu-config=60-1" ~ "-mcusでしょうか-fmuls=252 -mcusnuma-numa-numads=253 -mcusでしょうか-fsubs=254" または

    "-mcussub-fpu-config=60-2" ~ "-mcusでしょうか-fmuls=252 -mcusnuma-numa-numads=253 -mcusconfig-fsubs=254 -mcusconfig-divs=255"

    なお、60-1 と 60-2 の違いは、60-1 に -mcus分け-divs フラグが付かない点です。

    詳細については、付録 D を参照してください。 http://www.altera.com/literature/ug/ug_nios2_custom_instruction.pdf

    関連製品

    本記事の適用対象: 1 製品

    インテル® プログラマブル・デバイス

    このページのコンテンツは、元の英語のコンテンツを人力翻訳および機械翻訳したものが混在しています。この内容は参考情報および一般的な情報を提供するためものであり、情報の正確さと完全性を保証するものではありません。インテルは不正確な翻訳があった場合でもいかなる責任を負いません。このページの英語版と翻訳の間に矛盾がある場合は、英語版に準拠します。 このページの英語版をご覧ください。