Esses avisos ocorrem durante a simulação devido à representação da constante (9) como um vetor assinado de 4 bits no arquivo FIR II Intel® FPGA IP VHDL, hb1s_altera_fir_compiler_ii_1911_kmsq6ua_rtl_core.vhd.
O número 9 não pode caber em um número assinado de 4 bits; assim, vemos o aviso de vector_truncated da função TO_SIGNED VHDL.
Quando interpretamos o padrão de bits do 9 (1001) como um número assinado em 4 bits, obtemos -7.
Faça a seguinte modificação de RTL para remover o aviso de "vetor truncado" se você estiver usando o software Intel® Quartus® Prime Pro Edition versão 22.3 ou anterior.
Encontre o arquivo hb1s_altera_fir_compiler_ii_1911_kmsq6ua_rtl_core.vhd na seguinte pasta gerada por IP:
<ip_variation_name>pasto/altera_fir_compiler_ii_1911/sim/
Substituir:
u0_m0_wo0_wi0_r0_ra0_count1_inner (COUNTER,25)@14
baixa = 1, alta = 6, etapa = 1, init = 5
u0_m0_wo0_wi0_r0_ra0_count1_inner_clkproc: PROCESSO (clk)
COMEÇAR
IF (clk'EVENT AND clk = '1') ENTÃO
IF (areset = '1') ENTÃO
u0_m0_wo0_wi0_r0_ra0_count1_inner_i <= TO_SIGNED(5, 4);
MAIS
IF (u0_m0_wo0_memread_fanout_reg0_q = "1") ENTÃO
IF (u0_m0_wo0_wi0_r0_ra0_count1_inner_i(3 downto 3) = "1") ENTÃO
u0_m0_wo0_wi0_r0_ra0_count1_inner_i <= u0_m0_wo0_wi0_r0_ra0_count1_inner_i - 9;
MAIS
u0_m0_wo0_wi0_r0_ra0_count1_inner_i <= u0_m0_wo0_wi0_r0_ra0_count1_inner_i - 1;
TERMINAR SE;
TERMINAR SE;
TERMINAR SE;
TERMINAR SE;
PROCESSO FINAL;
com (alterações em vermelho):
u0_m0_wo0_wi0_r0_ra0_count1_inner (COUNTER,25)@14
baixa = 1, alta = 6, etapa = 1, init = 5
u0_m0_wo0_wi0_r0_ra0_count1_inner_clkproc: PROCESSO (clk)
wider_var variáveis: ASSINADO (4 downto 0);
COMEÇAR
IF (clk'EVENT AND clk = '1') ENTÃO
IF (areset = '1') ENTÃO
u0_m0_wo0_wi0_r0_ra0_count1_inner_i <= TO_SIGNED(5, 4);
MAIS
IF (u0_m0_wo0_memread_fanout_reg0_q = "1") ENTÃO
IF (u0_m0_wo0_wi0_r0_ra0_count1_inner_i(3 downto 3) = "1") ENTÃO
wider_var := redidoming (u0_m0_wo0_wi0_r0_ra0_count1_inner_i,5) - 9;
MAIS
wider_var := redidoming (u0_m0_wo0_wi0_r0_ra0_count1_inner_i,5) - 1;
TERMINAR SE;
u0_m0_wo0_wi0_r0_ra0_count1_inner_i <= wider_var (3 downto 0);
TERMINAR SE;
TERMINAR SE;
TERMINAR SE;
PROCESSO FINAL;
Observe que há outra cópia deste arquivo na pasta de síntese:
<ip_variation_name>pasto/altera_fir_compiler_ii_1911/sintetizador/hb1s_altera_fir_compiler_ii_1911_kmsq6ua_rtl_core.vhd
A cópia "sim" é usada para o simulador. O software Intel® Quartus® Prime usa a cópia "sintetizador".
Tecnicamente, apenas a versão sim dos arquivos precisa ser modificada para corrigir os avisos de simulador.
Esse problema é corrigido na versão 22.4 do software Intel® Quartus® Prime Pro Edition.