Stap 2: VHDL Modules
LED Finite State Machine (led_fsm.vhd)
Deze module moet worden gebruikt voor de LEDs. In de standaardstatus, terwijl de uitmonding inschakelen hoog is, verschuift deze module eenvoudig de huidige verlichte LED naar het recht één spatie op de stijgende rand van de input van de klok (var_clk_div.vhd hieronder). Als de input inschakelen laag is, zal de LED's hun huidige toestand. Wanneer het einde is bereikt, wrap de LEDs"around" terug naar het begin. Nadat het laatste niveau wordt doorgegeven, wanneer de win-signaal hoog is, zullen alle LEDs verlicht worden. Als op elk gewenst moment reset hoog is, met inbegrip van in de win staat, zullen de LEDs teruggezet op hun standaardstatus.
Niveau Finite State Machine (level_fsm.vhd)
Deze module slaat een vier-bits binaire waarde die het huidige niveau vertegenwoordigt. De output van deze module is weergegeven op het display van de zeven-segment op de Nexys-3. De uitvoer wordt ook gebruikt om te bepalen van de snelheid van het bewegend licht. De waarde van het niveau wilt wijzigen, moet een puls worden verzonden op het signaal van de inschakelen waardoor het niveau verhogen met "0001". Als op elk gewenst moment de reset signaal hoog is, wordt de waarde van niveau teruggezet op "0000".
Zeven-Segment Decoder (sseg_dec.vhd)
Deze module is het werk van Cal Poly professor, Bryan Mealy. Het neemt in een 8-bits binaire ingang en toont de bijbehorende decimale waarde op het Nexys 3-7-segment display. Het wordt gebruikt om de uitvoer van level_fsm.vhd weer te geven.
Variabele klok Divider (var_clk_div.vhd)
Deze module is gebaseerd op een module geboden door Cal Poly professor, Bryan Mealy. Deze module neemt van het huidige niveau (van level_fsm.vhd) als een input en output van een overeenkomstige kloksignaal. De frequentie van deze klok loopt samen met het niveau van het spel moeilijker maken.
LED spel (led_game.vhd)
Hier gaan we! De belangrijkste module van het spel! Het primaire doel van deze module is al voor de bovenstaande modules aan te sluiten en om de intermediaire logica om het spel te spelen. Deze module stuurt verschillende signalen naar de relevante modules wanneer de stopknop wordt ingedrukt. Het behandelt ook de staat te wachten, nadat de stopknop wordt ingedrukt. De status van deze wait onderbreekt het spel gedurende twee seconden voordat de volgende, sneller, en opwindende, niveau begint. Deze wachttijd staat negeert ook extra stop knop duwt om te voorkomen dat debouncing problemen. Een blokdiagram tonen de verbindingen tussen component modules is gekoppeld (LED spel blokdiagram).