I agree with Bango.
Also with reference to the following
--- Quote Start ---
main: process(CLK,RST,car,pedestrian)
begin
if pedestrian = '1' then
state <= s4;
if RST = '1' then
state <= s0;
Digit1 <= (others=>'0');
Digit10 <= (others=>'0');
if CLK'event and CLK = '1' then
case state is
--- Quote End ---
You would be better removing ,car,pedestrian from the sensitivity list. This is not required for synchronous processes.
Also move the if clause
--- Quote Start ---
if pedestrian = '1' then
state <= s4;
--- Quote End ---
Into the clocked part.
So you should have something like
main: process(CLK,RST)
begin
if RST = '1' then
state <= s0;
Digit1 <= (others=>'0');
Digit10 <= (others=>'0');
elsif CLK'event and CLK = '1' then
if pedestrian = '1' then
state <= s4;
case state is
...
i.e. a reset clause and a sync clause and nothing else. You will need to check that this meets the functionality you expect.
Hope this helps