Devido ao requisito de uma tabela DE ROM/RAM pré-povoada em todas as versões do componente hardware de ponto flutuante 2, a instrução personalizada Nios® II para raiz quadrada de ponto flutuante falhará em projetos Intel® MAX® 10 FPGA usando modos de configuração de pré-inicialização de RAM que incluem "Imagem compactada dupla", "Imagem compactada única", e "Imagem única descompactada".
Nesses modos, o flash não é grande o suficiente para suportar a pré-inicialização da RAM, de modo que a instrução sqrt falhará. O software Quartus® II versão 15.1 e anterior pode causar um erro de compilação se o FPCI2 for instaurou e a inicialização da memória estiver desabilitada devido ao modo de configuração definido para Intel MAX 10 FPGA ou outras razões.
Erro (16031): o modo de configuração interna atual não suporta inicialização de memória ou ROM. Selecione o modo de configuração interna com ERA.
Para resolver este problema no software Quartus II versão 15.0 e anterior, siga estas etapas:
- Vá para fpoint2_multi_datapath.vhd e comente a instaução do FPSqrt nas linhas 168 a 174.
sqrt: mapa de porta FPSqrt (
x => dataa,
r => fsqrts,
clk => clk,
reset_req => reset_req,
areset => reset
);
- Compile seu projeto no software Quartus II.
- Vá para altera_nios_custom_instr_floating_point_2.c localizado na pasta HAL do seu bsp. Adicione "#undef sqrtf" logo após o qual "altera_nios_custom_instr_floating_point_2.h" está incluído no código C para desabilitar o uso da instrução personalizada sqrtf pelo software.
Código:
#include "altera_nios_custom_instr_floating_point_2.h"
#undef sqrtf
- Recondifique todos os softwares e bibliotecas de aplicativos com essas alterações em vigor.
Para resolver este problema no software Quartus II versão 15.0 e posterior, siga esta etapa:
- Use a caixa de seleção para remover as instruções personalizadas de sqrt do FPH2 na GUI de designer de plataforma.
Este problema é corrigido no software Quartus II v16.0.