Испрваления

Необходимо избегать использовать латчей.
Об этом и сама альтера пишет в Recommended HDL Coding Styles:
http://www.altera.com/literature/hb/qts/qts_qii51007.pdf
"Altera recommends that you design without the use of latches whenever
possible."

Эту задачу можно решить без латча.

2. Между сигналами "красный" и "красный и желтый" есть один такт,
когда ни один из них не горит, но в реальной жизни такого нет.

3. После асинхронного сброса светофор через какое-то время покажет
зеленый вместе с красным и желтым, чего тоже нет в реальной
жизни.

4. Если поставить к примеру, period_red равный 100, то сто тактов не
будет держаться
красный.