thank you all

i managed to think of a traffic light cotroller

two highways and 2 sides(crossing)

but when i implement my code it won't traverse from state to another

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

-- Uncomment the following lines to use the declarations that are

-- provided for instantiating Xilinx primitive components.

--library UNISIM;

--use UNISIM.VComponents.all;

entity TLcontrol is

Port ( TLight1, TLight2, STLight2 : out std_logic_vector(2 downto 0) ;

STLight1 : out std_logic_vector(1 downto 0) ;

clk, s1, s0 : in std_logic);

end TLcontrol;

architecture tlcntroller of TLcontrol is

signal state: integer range 0 to 5:=0;

signal sel : std_logic_vector (1 downto 0);

signal TMshort, TMlong, timer: std_logic:='0';

begin

sel<=s1 & s0;

--process:

timing

rocess(clk)

variable t1: integer range 0 to 100000000:=0;--for the short time delay."2s"

variable t2: integer range 0 to 1250000000:=0;--for the long time delay."25s"

begin

if(clk'event and clk='1')then

if(timer='1') then

if(t1=100000000) then

TMshort<='1';

t1:=0;

else

t1:=t1+1;

end if;--short

if(t2=1250000000) then

TMlong<='1';

t2:=0;

else

t2:=t2+1;

end if;--long

else

t1:=0;

t2:=0;

end if;--timer

end if;--clock

end process timing;

process (state, TMshort, TMlong, sel,clk, timer)

begin

if(clk'event and clk='1') then

case state is

when 0 =>

TLight1<="001";--green

TLight2<="001";--green

STLight1<="10";--red

STLight2<="100";--red

--update state2:

if(sel="00") then

state<=0;

elsif(sel="01" or sel="11") then

state<=1;

timer<='0';

elsif(sel="10") then

state<=5;

timer<='0';

end if;

when 1 =>

timer<='1';

TLight1<="001";--green

TLight2<="010";--yellow

STLight1<="10";--red

STLight2<="100";--red

--update state2:

if(TMshort='0') then

state<=1;

elsif(TMshort='1') then

if(sel="00") then

state<=0;

timer<='0';

else

state<=2;

timer<='0';

end if;

end if;

when 2 =>

timer<='1';

TLight1<="001";--green

TLight2<="100";--red

STLight1<="01";--green

STLight2<="100";--red

--update state2:

if(TMlong = '1')then

if(sel="00") then

state<=1;

timer<='0';

elsif(sel="01" or sel="11") then

state<=2;

elsif(sel="10") then

state<=3;

timer<='0';

end if;

else

state<=2;

end if;

when 3 =>

timer<='1';

TLight1<="010";--yellow

TLight2<="100";--red

STLight1<="10";--red

STLight2<="010";--yellow

--update state2:

if(TMshort='0') then

state<=3;

elsif(TMshort='1') then

state<=4;

timer<='0';

end if;

when 4 =>

timer<='1';

TLight1<="100";--red

TLight2<="100";--red

STLight1<="10";--red

STLight2<="001";--green

--update state2:

if(TMlong = '1')then

if(sel="00") then

state<=5;

timer<='0';

else

state<=4;

end if;

else

state<=4;

end if;

when 5 =>

timer<='1';

TLight1<="010";--yellow

TLight2<="010";--yellow

STLight1<="10";--red

STLight2<="010";--yellow

--update state2:

if(TMshort='0') then

state<=5;

elsif(TMshort='1') then

if(sel="00") then

state<=0;

else

state<=4;

timer<='0';

end if;

end if;

end if; --clock

end case;

end process;

end tlcntroller;

here is my code

can any one check it for me

i need to submit it on after tommorrow