Intenté escribir código VHDL para sincronizar JK FF. Tengo el siguiente error:
error de sintaxis de la línea 18 cerca de la declaración.
¿Podría alguien explicarme qué hay de malo con la declaración if?
También, ¿este código está bien? Intenté buscar en Internet, pero no he encontrado el código para sincronizar JK FF en ninguna parte. Por sincronización, entiendo que el reinicio debe ser sincrónico con el clk?
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity JK_FF is
Port ( J : in STD_LOGIC;
K : in STD_LOGIC;
R : in STD_LOGIC;
clk: in STD_LOGIC;
Q : out STD_LOGIC;
QB : out STD_LOGIC );
end JK_FF;
architecture Behavioral of JK_FF is
signal M: STD_LOGIC;
begin
process (M, J, K, R, clk)
begin
if (clk'event and clk = '1') then
if (R = '1') then
M <= '0';
end if;
else
if (J = '0') then
if (K = '0') then
null;
else
M <= '0';
end if;
else
if (K = '0') then
M <= '1';
else
M <= not(M);
end if;
end if;
end if;
Q <= M;
end process;
end architecture;
end Behavioral;