Utilizando Vivado 2017.4, estoy tratando de usar una señal de reloj generada por el Asistente de Clocking IP. Copié la instanciación y el bloque de código de componente de la plantilla de Creación de instancias, pero recibo algunos errores relacionados con la declaración de la señal. He asignado la señal de "recuento" en el encabezado de mi arquitectura, pero sigo recibiendo un error que dice "no está declarado".
Además de "contar", también obtengo el mismo error con mi variable "clk_wiz_0" a pesar de haber creado el componente. También tengo algunas advertencias de sintaxis que podrían estar contribuyendo a los errores.
He intentado mover las declaraciones de la biblioteca después del bloque de entidades, pero eso no ayudó. Tampoco creo que me esté perdiendo ninguna biblioteca.
Soy nuevo en VHDL, así que tal vez hay algunos problemas de tipo o sintaxis que me faltan. - > significa un error "error < > no declarado" y * indica advertencias de sintaxis. Gracias de antemano!
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity mmcm is
Port( clk_fpga : in STD_LOGIC;
reset : in STD_LOGIC;
lock_led : out STD_LOGIC;
counter_led : out STD_LOGIC);
end mmcm;
architecture Behavioral of mmcm is
signal clk_10M : std_logic;
signal count : std_logic_vector(3 downto 0);
component clk_wiz_0
port
(-- Clock in ports
-- Clock out ports
clk_10M : out std_logic;
-- Status and control signals
reset : in std_logic;
locked : out std_logic;
clk_in1 : in std_logic
);
end component;
*mmcm_inst : clk_wiz_0*
port map (
-- Clock out ports
clk_10M => clk_10M,
-- Status and control signals
reset => reset,
locked => locked,
-- Clock in ports
clk_in1 => clk_in1
);
ATTRIBUTE SYN_BLACK_BOX : BOOLEAN;
-->ATTRIBUTE SYN_BLACK_BOX OF clk_wiz_0 : COMPONENT IS TRUE;
ATTRIBUTE BLACK_BOX_PAD_PIN : STRING;
-->ATTRIBUTE BLACK_BOX_PAD_PIN OF clk_wiz_0 : COMPONENT IS "clk_in1, clk_10M,
reset, locked";
*process (clk_10M, reset) --count from 0 to 9 at 10MHz*
begin
if reset = '1' then
-->count <= "0000";
*elseif clk_10M'event and clk_10M = '1' then*
if count = 9 then
-->count <= "0000";
*else*
-->count <= count + 1;
*end if;*
end if;
end process;
counter_led <= '1' when count = 9 else '0';
end Behavioral;