浮動小数点ハードウェア 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 以前のこの問題を回避するには、以下の手順に従ってください。
- fpoint2_multi_datapath.vhd にアクセスして、168 行目から 174 行目で FPSqrt のインスタンス化をコメントアウトします。
sqrt: FPSqrt ポートマップ (
x => データア、
r => fsqrts、
clk => clk、
reset_req => reset_req、
areset => リセット
);
- Quartus® II ソフトウェアでデザインを再コンパイルします。
- 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
- これらの変更を加えて、すべてのアプリケーション・ソフトウェアとライブラリーを再構築します。
Quartus® II ソフトウェア・バージョン 15.0 以降でこの問題を回避するには、次の手順に従ってください。
- プラットフォーム・デザイナー GUI の FPH2 から sqrt カスタム命令を削除するには、このチェックボックスを 使用 します。
この問題は、Quartus® II ソフトウェア・バージョン 16.0 で修正されています。