ты забыл эти вещи:
1) when "11" => not temp;
до when "11" => temp <= not temp;
2) when others => temp <= 'X'
должен иметь точку с запятой в конце when others => temp <='X';
3) вы пропустили end if
в конце if
4) список чувствительности процесса содержит необъявленный сигнал с именем 'r'
Я исключил сигналы j и k из процесса, потому что весь код, который вы выполняете в операторе if, обусловлен только часами, поэтому нет необходимости выполнять процесс, когда j и k изменяют свое значение и часы не на переднем крае.
library ieee;
use ieee. std_logic_1164.all;
entity JKFF is
PORT( j,k,clock: in std_logic;
q,qbar: out std_logic);
end JKFF;
Architecture behavioral of JKFF is
signal jk : std_logic_vector(1 downto 0);
signal temp : std logic;
begin
process(clock)
begin
jk <= j & k;
if(clock= '1' and clock'event) then
case (jk) is
when "00" => temp<= temp;
when "01" => temp <= '0';
when "10" => temp <= '1';
when "11" => temp <= not temp;
when others => temp <= 'X';
end case;
end if;
end process;
q <= temp;
qbar <= not temp;
end behavioral;