--========================================================== -- Design units : BlackJack_Behave(Entity, Architecture) -- -- File name : BlackJack_Behave.vhd -- -- Purpose : Specification for behavior of BJ dealer -- -- Limitations : - -- -- Library : IEEE -- -- Dependencies : BlackJack_CTRL, BlackJack_DataPath, BlackJack_Stim -- -- Author : Claus-Juergen Thomas, REFT -- -- Simulator : Synopsys V3.2a on SUN SPARCstation 10 -- ----------------------------------------------------------- -- Revision list -- Version Author Date Changes -- -- v1.0 cjt 04.07.1996 new --========================================================= LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY BlackJack_Behave IS PORT(Card_ready : IN std_logic; Card_value : IN integer; Reset : IN std_logic; Clk : IN std_logic; score : INOUT integer := 0; stand : OUT std_logic; broke : OUT std_logic; hit : INOUT std_logic); END BlackJack_Behave; --============================ARCHITECTURE================== ARCHITECTURE Behavior OF BlackJack_Behave IS signal compute : std_logic; BEGIN control: PROCESS(Clk,Card_ready,Hit,Reset) BEGIN IF Reset = '0' THEN compute <= transport '0'; END IF; IF Clk = '1' AND Clk'event THEN IF Hit = '1' AND Card_ready = '1' THEN compute <= transport '1'; ELSE compute <= transport '0'; END IF; END IF; END PROCESS; -- end control main: PROCESS(compute,Reset) BEGIN IF Reset = '0' THEN Score <= 0; Hit <= '1'; Stand <= '0'; Broke <= '0'; END IF; IF compute = '1' AND compute'event THEN Hit <= transport '0'; IF Card_value = 1 THEN -- ace! IF Score > 10 THEN Score <= Score + 1; ELSE Score <= Score + 11; END IF; ELSE Score <= Score + Card_value; END IF; END IF; IF compute = '0' AND compute'event THEN IF Score <= 16 THEN Hit <= transport '1'; ELSIF Score < 22 THEN Stand <= transport '1'; ELSE Broke <= transport '1'; END IF; END IF; END PROCESS; -- end main END Behavior;