Tengo que diseñar un circuito secuencial para un controlador de semáforo. Tiene 6 salidas, rojo-verde-amarillo para luces norte / sur y este / oeste. Lo que tiene que suceder es que cada 8 ciclos de reloj (un ciclo de reloj se representa con 1 botón pulsado, por lo que después de 8 botones, las luces se apagan) las luces tienen que cambiar. Por lo tanto, el orden sería
R (N / S) -R (E / W) - > R (N / S) -G (E / W) - > R (N / S) -Y (E / W) - > R (N / S) -R (E / W) - >
G (N / S) -R (E / W) - > Y (N / S) -R (E / W) - > R (N / S) -R (E / W) - > R (N / S) -G (E / W) ... y así sucesivamente.
He creado un diagrama, una tabla de verdad y ecuaciones. Por lo que puedo decir, tengo todo conectado y colocado correctamente (estamos utilizando quartus para programar un DE0). Tengo un registro de 3 bits conectado al circuito combinacional para mi máquina de estados.
Lo único en lo que puedo pensar que estoy equivocado es que mi diseño inicial es completamente incorrecto. Lo que pasa es que después de 8 ciclos de reloj el estado no cambia.
Aquí hay imágenes de mi diagrama de estado, tabla de verdad, mapas k y ecuaciones. Ignora el cuadro de términos mínimos. Es solo una forma de ordenar la tabla de verdad porque es difícil de leer.
EDITAR: ¿Qué estoy preguntando es si mi diseño es el correcto? ¿Estoy haciendo un problema fundamental con el diagrama de estado?