Você pode obter este aviso durante a análise e síntese do software Quartus® II ao sintetizar uma máquina de estado finito (FSM). Este é um aviso inválido exibido pelo software Quartus II versão 6.0 SP1. A mensagem de aviso incorreta não é exibida a partir do software Quartus II versão 6.1.
Este aviso ocorre quando você atribui a variável de estado para um FSM inferido a uma porta de saída. No exemplo a seguir, arbiter_state é uma saída de [1:0]tamanho, mystate e é o valor atribuído, e é usada em uma instrução de caso de 4 opções possíveis:
assign arbiter_state = mystate;
case (mystate)
...Branch 1...
...Branch 2...
...Branch 3...
...Branch 4...endcase
Quando a Análise e Síntese Quartus II infere um FSM, ela codifica a variável de estado usando uma codificação de um único calor. Neste caso, mystate tem 4 estados e, portanto, tem 4 bits. Neste exemplo, quando você atribui ao mystate arbiter_statesinal chamado , o software codifica a variável de mystate estado antes de implementar a atribuição. No entanto, o software verifica a truncação de bits antes de codificar o valor em vez de depois. Assim, o software interpreta o lado direito da atribuição como 4 bits em vez de 2, e emite a mensagem de aviso. O aviso de truncação não tem impacto na funcionalidade do projeto.
Para eliminar a mensagem de aviso no software Quartus II versão 6.0 e anterior, você pode alterar o tamanho do sinal de saída de destino (arbiter_state no exemplo acima) para 4 bits e usar apenas os dois bits mais baixos, menos signficantes.