Paso 9: Escribir el módulo principal
El módulo principal del código Verilog es una máquina de estados finitos que sus Estados se utiliza para cambiar los valores de la permite para el presente y los módulos de comparación. También es responsable de reiniciar el juego y para cambiar la velocidad del reloj dependiendo de la dificultad de entrada por el usuario.
El módulo principal utiliza tres interruptores para ejecutar el juego. El primer modificador es el interruptor de reinicio. Como su nombre indica, el interruptor de reinicio restablece el juego en su estado original, lo que permite al jugador jugar el juego otra vez. Esto restablece también las variables de la cuenta presentes en los otros módulos. Los otros dos interruptores controla la velocidad. El juego tiene cuatro velocidades, cada una de ellas es una combinación de los dos interruptores. La velocidad controla el reloj ajustado, conocido como modclk, que se utiliza en el programa. Más rápido el reloj, el más difícil el juego.
La parte del proyecto más difícil de entender es la máquina de estados finitos en el módulo principal. Mientras que sólo tiene dos Estados, las circunstancias que cambian pueden ser difíciles al proceso. Para poder entender por qué es necesaria esta máquina de estados finitos, uno necesita comprender que Verilog no es un idioma del software. Módulos no sólo se ejecutan cuando llama. Funcionan continuamente. Como uno puede sospechar, esto no es ideal para un juego con dos módulos muy distintos y separados. Para ser capaz de controlar cuando se ejecuta un módulo, colocamos permite en las máquinas de estados finitos de presente y Compare. Esto limita a funcionar solamente mientras que la activación es alta. También colocamos una variable en el mencionado estado intermedio de ambos módulos. Esta variable va alta cuando la máquina de estado finito respectivo haya terminado el procesamiento a ese nivel. La función principal utiliza los cuatro valores para controlar qué módulo se ejecuta y para evitar que el otro módulo a partir hasta que haya terminado el primero.