library ieee;
use ieee.std_logic_1164.all;

entity COUNTER is
 port(
  CLK   : in std_logic;
  OUT_VALUE : out std_logic_vector (3 downto 0)
 );
end COUNTER;

architecture SIXTH of COUNTER is
 type VALUE is (\'1\', \'2\', \'3\', \'4\', \'5\', \'6\');
 signal CURRENT_VALUE, NEXT_VALUE : VALUE;
begin
 DO_NEXT : process(CLK, NEXT_VALUE)
 begin
  if(CLK\'event and CLK = \'1\') then
   CURRENT_VALUE <= NEXT_VALUE;
  end if;
 end process DO_NEXT;

 STATE_GEN : process(CURRENT_VALUE)
 begin
  case CURRENT_VALUE is
   when \'1\' =>
    OUT_VALUE <= \"0001\";
    NEXT_VALUE <= \'2\';
   when \'2\' =>
    OUT_VALUE <= \"0010\";
    NEXT_VALUE <= \'3\';
   when \'3\' =>
    OUT_VALUE <= \"0011\";
    NEXT_VALUE <= \'4\';
   when \'4\' =>
    OUT_VALUE <= \"0100\";
    NEXT_VALUE <= \'5\';
   when \'5\' =>
    OUT_VALUE <= \"0101\";
    NEXT_VALUE <= \'6\';
   when \'6\' =>
    OUT_VALUE <= \"0110\";
    NEXT_VALUE <= \'1\';
  end case;
 end process STATE_GEN;
end SIXTH;


비범한 카운터 ㅇㅇ 이제 모듈 구상[이래봐야 책에 다나와있지만]하고 쳐코딩만 하면 되는쿠나

근데 저 조옷같은 switch문을 간지나는 loop로 바꿀순 업ㅂ을까?