부동 소수점 하드웨어 2 구성 요소의 모든 버전에서 사전 채워진 조회 ROM/RAM 테이블 요구 사항으로 인해 부동 소수점 제곱근에 대한 Nios® II 사용자 지정 명령이 "듀얼 압축 이미지", "단일 코프레싱 이미지", "단일 압축되지 않은 이미지"를 포함하는 RAM 사전 초기화 구성 모드를 사용하여 10개의 FPGA 설계를 인텔® MAX® 실패합니다.
이러한 모드에서는 플래시가 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 => dataa,
r => fsqrts,
clk => clk,
reset_req => reset_req,
areset => 재설정
);
- Quartus II 소프트웨어에서 디자인을 다시 컴파일합니다.
- bsp의 HAL 폴더에 있는 altera_nios_custom_instr_floating_point_2.c로 이동합니다. "#undef sqrtf"가 C 코드에 포함된 직후에 "altera_nios_custom_instr_floating_point_2 #undef sqrtf"를 추가하여 소프트웨어의 sqrtf 사용자 지정 명령 사용을 비활성화합니다.
코드:
#include "altera_nios_custom_instr_floating_point_2.h"
#undef sqrtf
- 이러한 변경 사항을 적용하여 모든 응용 프로그램 소프트웨어 및 라이브러리를 다시 빌드합니다.
Quartus II 소프트웨어 버전 15.0 이상에서 이 문제를 해결하려면 다음 단계를 따르십시오.
- 플랫폼 디자이너 GUI의 FPH2에서 sqrt 사용자 지정 명령을 제거하려면 확인란을 사용합니다 .
이 문제는 Quartus II 소프트웨어 v16.0에서 해결되었습니다.