Stap 1:
De eerste grote brok van VHDL die wij was het spel logica. In deze module binnen de entiteit gemaakt we uitgangen voor de belemmering van de vier locaties, de score, leven links en het spel staat. Vanaf dat we toegevoegd in een klok met de gewenste frequentie van 8Hz. De constanten die we gebruikt voor het maken van die frequentie zijn geheel getal en vertegenwoordigt onze gewenste frequentie van spel logica updates. Daarna, we genereerden een willekeurige volgorde voor de obstakels moet worden weergegeven. Door gebruik van een LFSR konden we om te gaan met een pseudo-willekeurige nummer generator voor het genereren van de hindernissen in het spel. Obst_out is de output gezien en dat uitvoer wordt verzonden naar de pick_a_lane module die welke van de vier rijstroken de hindernis beslist te gaan.
Het volgende deel is de beslissing al dan niet de speler werd geraakt door een belemmering of niet. Door gebruik van signalen konden we bij de spelers en de obstakels waar te allen tijde te houden. Via dit konden we ook om bij te houden hoeveel hits de speler heeft gemaakt met het obstakel vóór het bereiken van het spel over staat. Een andere klok werd uitgevoerd speciaal voor de "spel logica" van het circuit. Het is veel trager dan de andere klok signalen omdat het bepaalt hoe vaak de objecten op het scherm worden bijgewerkt en hoe snel de hindernissen bewegen over het scherm. Zodra we de hadden "spel logica" klok ter, konden we creëren een mondiale reset. Deze reset signaal is gekoppeld aan alle componenten van de "spel logica" en wanneer het signaal hoog is, het herstelt alle elementen van het spel. Vervolgens geïnstantieerd we de vier SRs voor de vier rijstroken. De obst_in-ingangen aan de SRs zijn gekoppeld aan een willekeurig geselecteerde indexen van de de LFSR opgeslagen 32-bits binair getal. De uitgangen van deze SRs zijn gekoppeld aan de ourputs van de game_mechanics module. Eenmaal dat instantievorming van vier SRs waren wij in één LFSR die wordt gebruikt voor het genereren van nieuwe belemmeringen in de vier rijstroken in een pseudo-willekeurige mode. Vervolgens een proces is gebruikt voor het genereren van onze gewenste "game klok" met een frequentie van 8Hz en de signaal-enable_game_update alleen hoog 16 keer per seconde zal zijn. Vervolgens, door een reeks van if/else verklaringen, een proces werd gemaakt om te bepalen van de beweging van de speler. De speler is alleen toegestaan om omhoog of omlaag verplaatsen tussen rijstroken. Het wordt uitgevoerd wanneer een verandering in de input van de speler wordt gedetecteerd, want dat is wanneer de gebruiker wil verplaatsen hun karakter. Nadat het player_movement-proces werd uitgevoerd, was een hit detectieproces nodig. Dit proces is verantwoordelijk voor het controleren om te zien als de speler een obstakel raakt, als het obstakel binnenkomt de zone"speler". Samen met dit hit_detection proces, een proces genaamd scoring_system was zetten in actie door middel van een if/else statement dat verhoogd één keer per seconde. Ten slotte was een proces genaamd check_for_game_over nodig om te voltooien van het spel logica. Gebruik van if/else statements en met behulp van het global_reset-proces, waren we in staat om te controleren of de lose_state hoog of laag was. Als lives_left gelijk is aan nul, dan "Game Over".