Stap 1: First Finite State Machine
De twee staten de eerste FSM we gemaakt waren display en wachten op goed weer een patroon van de LED's.
De FSM begint in de wacht staat en zodra het startschot is ingedrukt, te verhuizen naar de weergavestatus te tonen van het patroon. Zodra het display werd gegenereerd, zou het programma terugkeren naar de status van de wait gebaseerd op de max teller waarde wordt hoge die het zou vervolgens overgebracht naar de tweede FSM die de gebruiker zou vergelijken de inbreng van aan de weergave.
Weergavestatus:
In ons project wilden we een willekeurig patroon maken voor de LEDs. Om dit te doen, moet de code een random number generator. We gebruikten vhdl voor een LFSR (linear feedback shift register) die werd gegeven aan ons in de klas door Professor Danowitz voor de random number generator.
Deze random getal-generator moet worden aangesloten op de LEDs, waar verschillende uitgangen van de generator gekoppeld aan elk van de 4 LED's zijn. Onze willekeurige nummer generator maakt een willekeurig 32-bits nummer en we elke LED inschakelen op basis van wat de waarde van de random number generator in hex was verdeeld.
Het is belangrijk in de vhdl hebben een startschot, die we aan een knop toegewezen. In dit geval, wanneer de knop wordt ingedrukt dan de random number generator zou beginnen en daarom kunnen de LED's wilt weergeven. Met dit heeft de gebruiker de optie voor het starten van het spel, wanneer ze klaar zijn.
Bovendien, we gemaakt een timer te vertragen van de klok om de LED-display zichtbaar voor het menselijk oog in plaats van een nanoseconde wordt verlicht. We vonden een voorbeeld van een timer online die we veranderd om te werken voor ons spel die kan worden gevonden in de referenties. De timer creëert ook een signaal max teller: dit gebeurt wanneer de klok één cyclus doorloopt.
Ook introduceerden we een d-flip-flop om de klink van de waarde die is gegenereerd op basis van de LFSR voor één klokcyclus. Deze uitgang werd vervolgens de inbreng van een multiplexer zodat de LED zou worden hetzij ingeschakeld of uitgeschakeld voor één klokcyclus. Vanwege de multiplexer hebben we een select signaal dat wordt bepaald door de staat van de FSM; Als de staat is van weergave en selecteer vervolgens zou hoog, als het was in wachten dan het zou laag zijn. Dit is een techniek die we gebruikt zodat de LED zou branden voor een korte periode van tijd blijven en schakel een patroon te maken.
Wachten staat:
Het doel van de status van de wait was voor de LED-display te vertellen het programma wanneer het patroon was klaar om te worden gegenereerd en gaat u verder naar de volgende FSM toen hij klaar was het patroon weer te geven.