----------------------------

-- 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;

Top of Page | Main | Player_button.vhd