Paso 1: Máquina de estado finito de primera
Los dos Estados del primer FSM hemos creado fueron pantalla y espere para mostrar correctamente un patrón en los LEDs.
El FSM comienza en el estado de espera y una vez que se presiona la señal de partida, se movería para el estado de visualización para mostrar el patrón. Una vez que se generó la pantalla, el programa sería volver al estado de espera basado en el valor de contador máximo ser alta que transferiría entonces al segundo FSM que compararía el usuario de entrada a la pantalla.
Estado de visualización:
En nuestro proyecto, hemos querido crear un patrón aleatorio para los LEDs. Para ello, el código debe tener un generador de números aleatorios. Utilizamos vhdl para un LFSR (linear feedback shift registro) que nos fue dado en clase por profesor Danowitz para el generador de números aleatorios.
Este generador de números aleatorios debe conectarse a los LEDs, donde diferentes salidas del generador se asocian a cada uno de los 4 LEDs. Nuestro generador de números aleatorios genera un número aleatorio de 32 bits, y dividimos cada LED para encender en base a lo que fue el valor del generador de números aleatorios en hexadecimal.
Es importante en el vhdl tiene una señal de inicio, que asigna a un botón. En este caso, cada vez que se pulsa el botón y luego comenzaría el generador de números aleatorios y por lo tanto, mostraría los LEDs. Con esto, el usuario tiene la opción de iniciar el juego cada vez que estén listos.
Además, hemos creado un temporizador para retardar el reloj en orden para la exhibición de LED que sean visibles para el ojo humano en vez de ser iluminados por un nanosegundo. Encontramos un ejemplo de un temporizador en línea que hemos modificados para trabajar para nuestro juego que puede encontrarse en las referencias. El temporizador también crea una señal de contador máximo: esto ocurre cuando clock pasa a través de un ciclo.
También hemos introducido un d-flip-flop para enganchar el valor generado por el LFSR para ciclo de reloj. Esta salida entonces se convirtió en la entrada del multiplexor para que el LED sería bien dado vuelta encendido o apagado por ciclo de reloj. Debido al multiplexor, tenemos una señal de selección que se determina por el estado del FSM; Si el estado es la pantalla y seleccione sería alta, si estaba a la espera entonces sería baja. Esta es una técnica que utiliza para que el LED permanecer encendido por un período corto de tiempo y luego se apague para crear un patrón.
Estado de espera:
El propósito del estado de espera fue para que la exhibición de LED para decirle al programa cuando el modelo estaba listo para ser generado y luego continuar en el próximo FSM cuando fue terminado mostrando el patrón.