error VHDL XST: 1426

0

Me gustaría implementar una máquina de estados finitos en VHDL, pero tengo 2 advertencias que aparecen:

 WARNING:Xst:1426 - The value init of the FF/Latch FFd6 hinder the constant cleaning in the block FSM.
   You should achieve better results by setting this init to 0.

WARNING:Xst:1426 - The value init of the FF/Latch FSM_FFd6 hinder the constant cleaning in the block FSM_0-parent.
   You should achieve better results by setting this init to 0.

Si entiendo, creo que el problema proviene de la Iniciativa del estado:

-- State machine
type state_type is (    idle, 
                            pga_load, sendBitPGA, clockHighPGA,
                            catchADC, setADC
                            );

signal state : state_type := pga_load;  --  First state of the State Machine is PGA_LOAD

Pero no sé si cambiar el código para evitar esa advertencia ...

¿Puede alguien ayudarme?

    
pregunta Cabs

1 respuesta

1

Esta advertencia se muestra cuando la lógica para 'estado' puede optimizarse a un valor constante de la descripción de comportamiento y si este valor constante difiere del valor inicial especificado.

Eche un vistazo a este ejemplo más pequeño que conduce a la misma advertencia:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity constant_cleaning is
    Port ( clk : in  STD_LOGIC;
           y : out  STD_LOGIC);
end constant_cleaning;

architecture Behavioral of constant_cleaning is
    type states is (idle, running);
    signal state : states := idle;
begin
    process(clk)
    begin
        if rising_edge(clk) then
            state <= running; -- constant value differing from initial value
        end if;
    end process;

    y <= '1' when state = running else '0'; -- just some output
end Behavioral;

Si este es el comportamiento deseado, simplemente ignore o filtre la advertencia.

    
respondido por el Martin Zabel

Lea otras preguntas en las etiquetas