vhdl_pong/movement-rtl.vhd
2019-10-01 01:26:10 +02:00

26 lines
520 B
VHDL

architecture rtl of movement is
signal s_pos: std_logic_vector( WIDTH-1 DOWNTO 0);
begin
pos <= s_pos;
fsm : process(clock)
begin
if rising_edge(clock) then
if(reset = '1') then
s_pos <= INIT;
else
if (dir = '1' and enable = '1' and s_pos(WIDTH-1) /= '1' ) then
s_pos <= (s_pos(WIDTH-2 DOWNTO 0) & '0');
elsif (dir = '0' and enable = '1' and s_pos(0) /= '1') then
s_pos <= ( '0' & s_pos(WIDTH-1 DOWNTO 1));
end if;
end if;
end if;
end process;
end architecture rtl;