i'm in trouble, i can't find my fault wiht 10500errors help me
-----------------------------------------------------------------------lcd-----------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity lcd is
generic(
delay_cnt : integer :=31); --delay_cnt=50, 50us X 31 = 1.55ms
port (
clk, clk1, clk2,clk3,clk4: in std_logic;
key : in std_logic_vector(3 downto 0);
sw : in std_logic_vector(1 downto 0);
rw,en,rs,v0 : out std_logic;
data_out : out std_logic_vector (7 downto 0);
segin1,segin2,segin3,segin4 : out std_logic_vector (3 downto 0);
LEDRin1,LEDRin2,LEDRin3 : out std_logic_vector (4 downto 0);
LEDRin4 : out std_logic_vector (1 downto 0));
end lcd;
architecture be of lcd is
subtype WORD is std_logic_vector(7 downto 0); -- Use 8bit to write down the word what i want to type
type DDRAM is array(0 to 15) of WORD; --DDRAM[0] ~ DDRAM[15]
signal Line0, Line1 : DDRAM; --Line1,2[0] ~ Line1,2[15] because Line0 and Line1 is DDRAM type
type STATE is (Wait_V0, Init, Line_0, Set_Add, Line_1, Wait_Vi, Go_Home); --kinds of STATE
signal ST : STATE:= Wait_V0; --ST become State Type, Initial value is Wait_V0
signal MUX_wire, clk_out, stop_sig : std_logic; --Role of enable, stop_sig is not used
signal init_count : integer range 0 to 127 := 0; -- Initial value is '0'. Range: 0 to 127
type GameST is (welcome,betting,betting_check,game,once_button,ea ch_button,error1,error2,error3,error4,error5,error 6,win,lose,each1,each2,each3);
signal GameSTATE:GameST:=welcome;
signal seg_input1,seg_input2,seg_input3,seg_input4:STd_lo gic_vector(3 downto 0):="0000";
signal LEDR_input1,LEDR_input2,LEDR_input3:std_logic_vect or(4 downto 0):="00000";
signal LEDR_input4:std_logic_vector(1 downto 0):="00";
begin
Game_staterocess(clk1,key,sw,GameSTATE)
begin
if rising_edge(clk1) then
case GameSTATE is
when welcome =>
if (key(0)='0' )then
GameSTATE <= betting;
else if (key(1)='0') then
GameSTATE<=game;
else if (key(2)='0') then
GameSTATE<=error1;
else if (key(3)='0') then
GameSTATE<=error2;
else GameSTATE<=welcome;
end if;
when betting =>
if (key(0)='0') then
GameSTATE<= betting_check;
else if (key(1)='0') then
GameSTATE<= game;
else if (key(2)='0') then
GameSTATE<=error3;
else if (key(3)='0') then
GameSTATE<=error4;
else if (sw(0)='0') then
GameSTATE<=welcome;
else GameSTATE<=betting;
end if ;
when betting_check =>
if (key(0)='0') then
GameSTATE <= welcome;
else if (key(1)='0') then
GameSTATE <= game;
else if (key(2)='0') then
GameSTATE <=error5;
else if (key(3)='0' )then
GameSTATE <=error6;
else if (sw(0)='0') then
GameSTATE <=welcome;
else GameSTATE <=betting_check;
end if;
when game =>
if (key(0)='0') then
GameSTATE <=betting;
else if (key(1)='0') then
GameSTATE <= game;
else if (key(2)='0') then
GameSTATE <=once_button;
else if (key(3)='0') then
GameSTATE <=each_button;
else if (sw(0)='0') then
GameSTATE <=welcome;
else GameSTATE <=betting_check;
end if;
end if;
when once_button =>
if (key(2)='0') then
if (seg_input1=seg_input2 and seg_input2 =seg_input3 and seg_input3 =seg_input4) then
GameSTATE<=win;
else if (seg_input1/=seg_input2 and seg_input2/=seg_input3 and seg_input3/=seg_input4) then
GameSTATE<= lose;
else GameSTATE<=once_button;
end if;
end if;
when each_button =>
if (key(3)='0') then
GameSTATE <=each1;
else if (key(0)='0') then
GameSTATE <=betting;
else if (key(1)='0') then
GameSTATE <=game;
else if (key(2)='0' )then
GameSTATE <=once_button;
else if (sw(0)='0') then
GameSTATE <=welcome;
else GameSTATE<=each_button;
end if;
when each1 =>
if (key(3)='0' )then
GameSTATE <=each2;
else if (key(0)='0') then
GameSTATE <=betting;
else if (key(1)='0') then
GameSTATE <=game;
else if (key(2)='0') then
GameSTATE <=once_button;
else if (sw(0)='0') then
GameSTATE <=welcome;
else GameSTATE<=each1;
end if;
when each2 =>
if (key(3)='0') then
GameSTATE <=each3;
else if (key(0)='0') then
GameSTATE <=betting;
else if (key(1)='0') then
GameSTATE <=game;
else if (key(2)='0') then
GameSTATE <=once_button;
else if (sw(0)='0') then
GameSTATE <=welcome;
else GameSTATE<=each2;
end if;
when each3 =>
if (key(3)='0') then
if (seg_input1=seg_input2 and seg_input2=seg_input3 and seg_input3 =seg_input4) then
GameSTATE<=win;
else if (seg_input1/=seg_input2 and seg_input2 /=seg_input3 and seg_input3/=seg_input4) then
GameSTATE<= lose;
else GameSTATE<=each3;
end if;
end if;
when win =>
GameSTATE<=welcome;
when lose =>
GameSTATE<=welcome;
when error1 =>
GameSTATE<=welcome;
when error2 =>
GameSTATE<=welcome;
when error3 =>
GameSTATE<=betting;
when error4 =>
GameSTATE<=betting;
when error5 =>
GameSTATE<=betting_check;
when others =>
GameSTATE<=betting_check;
end if;
segin1<=seg_input1;
segin2<=seg_input2;
segin3<=seg_input3;
segin4<=seg_input4;
end process;