När jag programmerar så försöker jag göra så att det bara är ett villkor i varje nivå:
Kod: Markera allt
when t_0 =>
if (signal_1 = '1') then
s_tillstaand <= t_1;
else
if (signal_2 = '1') then
s_tillstaand <= t_2;
else
s_tillstaand <= t_0;
end if;
end if;
Men vad blir det om man gör så här:
Kod: Markera allt
when t_0 =>
if (signal_1 = '1') then
s_tillstaand <= t_1;
elsif (signal_2 = '1') then
s_tillstaand <= t_2;
else
s_tillstaand <= t_0;
end if;
Man använder ju ofta det andra sättet till nollställning och klocka:
Kod: Markera allt
if (nollstaellning = '1') then
s_tillstaand <= t_0;
elsif (klocka'event and klocka = '1') then
(och så programmet här.)
end if;