No puedo encontrar la forma de lidiar con el error: "varias unidades constantes" que se producen cuando intento leer y configurar la misma red en un solo proceso.
Necesito configurar la "salida" para algunos ciclos de reloj en el flanco ascendente de la entrada "habilitar" y luego restablecer la "salida". Mi código:
library ieee;
use ieee.std_logic_1164.all;
entity trigger_slave is
generic (
OUT_ON_PERIOD : integer := 10 - 1
);
port (
enable : in std_logic;
clk_1MHz : in std_logic;
OUTPUT : buffer std_logic
);
end trigger_slave;
architecture behavior of trigger_slave is
begin
process (enable)
begin
if (rising_edge(enable)) then
OUTPUT <= '1';
end if;
end process;
process (clk_1MHz)
variable counter : integer range 0 to OUT_ON_PERIOD := 0;
begin
if (rising_edge(clk_1MHz) and OUTPUT = '1') then -- here is the problem!
if (counter = OUT_ON_PERIOD) then
counter := 0;
OUTPUT <= '0';
else
counter := counter + 1;
OUTPUT <= '1';
end if;
end if;
end process;
end behavior;
Por favor, ayúdame con este código. Muchas gracias.