-- Reflex Game
-- Travis Robinson
-- Marc Dowdell
----------------------------
-- reflex game between two users
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity reflex_game is
port(clock,reset: in std_logic;
player1_button,player2_button: in std_logic;
player1won_LED,player2won_LED: out std_logic;
start_LED: out std_logic;
done,done1,done2:buffer std_logic
);
end entity;
architecture game of reflex_game is
component player_button
port(reset, button, start: in std_logic;
pressed,done: out std_logic
);
end component;
signal player1won,player2won: std_logic;
signal ready,start: std_logic;
signal count:integer;
begin
process(clock,reset)
begin
if rising_edge(clock) then
if reset = '0' then
count<= 0;
ready<= '0';
else
count<= count+1;
end if;
end if;
end process;
process(count,done,ready)
begin
if ready ='0' then
if count = 125875000 then
start<= '0';
else if done = '0' then
start<='1';
end if;
end if;
end if;
start_LED<=start;
end process;
-- two buttons,one for each player
player_button1: player_button port map(
reset=> reset,
button=> player1_button,
start=> start,
pressed=> player1won,
done=> done1
);
player_button2: player_button port map(
reset=> reset,
button=> player2_button,
start=> start,
pressed=> player2won,
done=> done2
);
player1won_LED <= player1won;
player2won_LED <= player2won;
process(done1,done2)
begin
-- once sombody has pressed button,game is over
if done1 = '0' or done2 = '0' then
done<='0';
else done <= '1';
end if;
end process;
end architecture;