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

math_real VHDL パッケージでログおよびフロア機能を使用する際に、Quartus® II ソフトウェアに問題がありますか?

環境

BUILT IN - ARTICLE INTRO SECOND COMPONENT
詳細

はい。Quartus® II ソフトウェアでログ機能とフロア機能を同時に使用する際に、math_real VHDL パッケージを使用する際に問題が生じています。状況によっては、丸めエラーにより、不正なフロア値の計算につながる場合があります。

例えば、math_realパッケージ関数を使用して log2(8.0) を計算する場合、正しい答えは 3.0 でなければなりませんが、Quartus® II ソフトウェアの実際の計算値は 2.9999999999999999996 です。この結果がフロア化されると、結果は 3.0 ではなく 2.0 になります。

floor(log2(real(8))) = 2.0

インテル® Quartus® II ソフトウェアでこの問題を回避するには、次のいずれかのオプションを使用します。

  • ログ計算にフロア機能が適用されている場合は、マージンのエラーを追加します。
    • 例: floor(0.000001 log2(real(8))) = 3.0
  • フロア関数の代わりに整数変換関数を使用する
    • 例: integer (log2(real(8))) = 3.0

この問題は、Quartus® II ソフトウェアの今後のリリースで修正される予定です。

関連製品

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

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

1

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