Étape 9: Écriture du Module principal
Le module principal du code Verilog est une machine à états finis qui utilise ses États pour changer les valeurs de l’active pour le présent et les modules de comparer. C’est aussi est responsable pour remettre à zéro le jeu et de changer la vitesse d’horloge en fonction de la saisie des difficultés par l’utilisateur.
Le module principal utilise trois interrupteurs pour lancer le jeu. Le premier commutateur est l’interrupteur de réinitialisation. Comme son nom l’indique, l’interrupteur de réinitialisation réinitialise le jeu dans son état d’origine, permettant au joueur de jouer le jeu à nouveau. Cela réinitialise également les variables comte présents dans les autres modules. Les deux autres interrupteurs contrôle la vitesse. Notre jeu a quatre vitesses, dont chacun représente une combinaison des deux interrupteurs. La vitesse contrôle l’horloge ajusté, appelée modclk, qui est utilisée dans le programme. Plus vite l’horloge, le plus difficile du jeu.
La partie du projet le plus difficile à comprendre est la machine à états finis dans le module principal. Alors qu’il a seulement deux États, les circonstances pour lesquelles ils changent peuvent être difficiles de processus. Pour être en mesure de comprendre pourquoi cette machine à états finis est nécessaire, il faut bien comprendre que Verilog n’est pas une langue de logiciel. Modules s’exécutent-ils pas seulement lorsqu’elle est appelée. Ils s’exécutent en continu. Comme on peut le soupçonner, ce n’est pas idéal pour un jeu avec deux modules très distincts et séparés. Pour être en mesure de contrôler quand un module est exécuté, nous avons placé permet sur les machines d’état fini de présent et de comparer. Ceci limite de course seulement tandis que l’option Activer est élevé. Nous avons également placé une variable dans l’état intermédiaire susmentionnée des deux modules. Cette variable va élevée lorsque la machine à états finis respectifs a terminé le traitement pour ce niveau. La fonction principale utilise ces quatre valeurs de contrôle module qui est en cours d’exécution et d’empêcher l’autre module de commencer que le premier ait terminé.