記事 ID: 000085927 コンテンツタイプ: トラブルシューティング 最終改訂日: 2015/12/15

浮動小数点平方根Nios® II、インテル® MAX® 10 FPGAsの特定のコンフィグレーションでカスタム命令が機能しないのはなぜですか?

環境

  • インテル® Quartus® II サブスクリプション・エディション
  • 浮動小数点
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    詳細

    浮動小数点ハードウェア 2 コンポーネントのすべてのバージョンで、事前実装済みの検索 ROM / RAM テーブルの要件により、「デュアル圧縮画像」、「シングルコ圧縮画像」、「単一圧縮画像」、および「単一非圧縮画像」を含む RAM 事前初期化コンフィグレーション・モードを使用するインテル® MAX® 10 FPGAデザインでは、Nios® IIカスタム命令は失敗します。

    これらのモードでは、フラッシュは RAM の初期化前をサポートするのに十分な大きさではないため、sqrt 命令は失敗します。Quartus® II ソフトウェア・バージョン 15.1 以前では、FPCI2 がインスタンス化され、コンフィグレーション・モードが インテル MAX 10 FPGAなどに設定されているため、メモリー初期化が無効になっている場合、コンパイル・エラーが発生する可能性があります。

    エラー (16031): 現在の内部コンフィグレーション・モードは、メモリー初期化または ROM をサポートしていません。ERAM で内部コンフィグレーション・モードを選択します。

    解決方法

    Quartus® II ソフトウェア・バージョン 15.0 以前のこの問題を回避するには、以下の手順に従ってください。

    1. fpoint2_multi_datapath.vhd にアクセスして、168 行目から 174 行目で FPSqrt のインスタンス化をコメントアウトします。

    sqrt: FPSqrt ポートマップ (
    x => データア、
    r => fsqrts、
    clk => clk、
    reset_req => reset_req、
    areset => リセット
    );

    1. Quartus® II ソフトウェアでデザインを再コンパイルします。
    2. bsp のHALフォルダーにある altera_nios_custom_instr_floating_point_2.c移動します。C コードに「altera_nios_custom_instr_floating_point_2.h」が含まれている直後に「#undef sqrtf」を追加して、ソフトウェアによる sqrtf カスタム命令の使用を無効にします。

    コード:

    「altera_nios_custom_instr_floating_point_2.h」を#include
    #undef sqrtf

    1. これらの変更を加えて、すべてのアプリケーション・ソフトウェアとライブラリーを再構築します。

    Quartus® II ソフトウェア・バージョン 15.0 以降でこの問題を回避するには、次の手順に従ってください。

    1. プラットフォーム・デザイナー GUI の FPH2 から sqrt カスタム命令を削除するには、このチェックボックスを 使用 します。

    この問題は、Quartus® II ソフトウェア・バージョン 16.0 で修正されています。

    関連製品

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

    インテル® MAX® 10 FPGA

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