文章 ID: 000075459 內容類型: 疑難排解 最近查看日期: 2012 年 09 月 11 日

浮點常數是否在使用浮點自訂指令時編譯為單一精確度或雙重精確度?

環境

  • 浮點
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    描述

    預設情況下,使用自訂指令時,浮點常數會編譯為單一精准度浮點運算在硬體中實做。以下的解決方法將迫使浮點常數編譯,因為軟體中實作雙重精確度和雙重精確度浮點運算。

    您可以使用下列任一個解決方法:

    選項 1 - 將 postfix「L」加到雙精准浮點常數,以修改軟體,確保常數不會轉換成單一精確度。

    下表顯示範例代碼與浮點自訂指令硬體使用、精確度,以及實作是否在硬體或軟體中。

    範例代碼  FP CI 使用量   精度  實現  
    b= a * 4.67是的硬體
    b = * 4.67軟體
    b = * 4.67f是的硬體
    b = * 4.67f軟體
    b = * 4.67L不在乎*軟體
    * FP CI 硬體將不會用於雙重精確操作

    選項 2 -在 public.mk 中,手動移除 -mcustom-fpu-config 旗標並替換為個別編譯標記,但省略 -fsingle-precision-constant 旗標。

    「-mcustom-fpu-config=60-1」到「-mcustom-fmuls=252 –mcustom-fadds=253 –mcustom-fsubs=254」或

    「-mcustom-fpu-config=60-2」到「-mcustom-fmuls=252 –mcustom-fadds=253 –mcustom-fsubs=254 –mcustom-divs=255」

    請注意,60-1 和 60-2 的區別在於 60-1 沒有 –mcustom-divs 旗標。

    如需進一步詳細資訊,請參閱附錄 D HTTP://www.altera.com/literature/ug/ug_nios2_custom_instruction.pdf

    相關產品

    本文章適用於 1 產品

    Intel® 可程式裝置

    這個頁面的內容綜合了英文原始內容的人工翻譯譯文與機器翻譯譯文。本內容是基於一般資訊目的,方便您參考而提供,不應視同完整或準確的內容。如果這個頁面的英文版與譯文之間發生任何牴觸,將受英文版規範及管轄。 查看這個頁面的英文版。