Stap 9: Schrijven van de belangrijkste Module
De belangrijkste module van de Verilog-code is een eindige toestandsmachine die haar staten wordt gebruikt om de waarden van de maakt voor zowel de huidige als de vergelijk-modules. Het is ook verantwoordelijk voor het resetten van het spel en voor het wijzigen van de klok-snelheid afhankelijk van de moeilijkheid input door de gebruiker is.
De belangrijkste module gebruikt drie schakelaars voor het uitvoeren van het spel. De eerste switch is de reset-schakelaar. Zoals de naam al suggereert, de reset-schakelaar Hiermee stelt u het spel in de oorspronkelijke staat, waardoor de speler het spel opnieuw. Ook hiermee de graaf variabelen aanwezig zijn in de andere modules. De andere twee schakelaars regelt de snelheid. Onze spel heeft vier snelheden, die elk een combinatie van de twee schakelaars is. De snelheid bepaalt de gecorrigeerde klok, bekend als modclk, die wordt gebruikt in het programma. Hoe sneller de klok, hoe moeilijker het spel.
Het deel van het project het moeilijkst te begrijpen is de eindige toestandsmachine in de belangrijkste module. Hoewel het slechts twee staten, kunnen de omstandigheden waarvoor zij veranderen moeilijk proces zijn. Om te kunnen begrijpen waarom deze eindige toestandsmachine nodig is, moet een volledig begrijpen dat Verilog niet de taal van een software is. Modules worden niet alleen uitgevoerd wanneer genoemd. Ze draaien continu. Zoals een vermoeden kan, is dit niet ideaal voor een spel met twee zeer onderscheiden, afzonderlijke modules. Om te kunnen bepalen wanneer een module wordt uitgevoerd, we hiermee op de eindige statuscomputers van zowel de huidige als de vergelijk geplaatst. Dit beperkt hen wordt alleen uitgevoerd wanneer het selectievakje hoog. Wij ook een variabele in de voornoemde tussentijdse staat voor beide modules geplaatst. Deze variabele gaat hoog wanneer de respectieve eindige toestandsmachine is voltooid de verwerking voor dat niveau. De belangrijkste functie gebruikt deze vier waarden om te bepalen welke module wordt uitgevoerd en om te voorkomen dat andere module beginnen totdat de eerste is voltooid.