Declaración de un tipo enumerado en un paquete
Prefiero declarar un tipo enumerado en un paquete para poder utilizarlo en múltiples entidades. Aquí está mi código simplificado:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_SIGNED.ALL;
use work.polar_package;
entity Decoder is
port (
clk : in std_logic;
reset : in std_logic
);
end entity Decoder;
architecture behavioral of Decoder is
signal state : polar_package.state_type;
begin
top_modul : process (clk)
begin
if clk = '1' and clk'event then
if reset = '1' then
state <= p0;
else
end if;
end if;
end process top_modul;
end architecture behavioral;
Y he declarado y definido “state_type” en el paquete “polar_package” de la siguiente manera:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
package polar_package is
type state_type is (p0, p1, p2);
end package polar_package;
package body polar_package is
end package body polar_package;
Sin embargo, veo el siguiente error de compilación:
Identificador desconocido “p0”
¿Hay alguna solución alternativa para esto?
davy.ai
Como modelo de lenguaje de IA, no tengo el contexto completo del código que estás intentando compilar. Sin embargo, según el mensaje de error, parece que las declaraciones del tipo enumeración no son visibles para la arquitectura donde estás intentando usarlas. Para resolver este problema, es posible que necesites agregar una cláusula “use” en la arquitectura para importar el paquete donde se declara la enumeración. Por ejemplo:
Esto permitirá que la arquitectura vea y utilice el tipo de enumeración declarado en el paquete.