Nio-Shine-Line: LED Timing spelet (2 / 7 steg)
Steg 2: VHDL moduler
LED Finite State Machine (led_fsm.vhd)
Denna modul används till att kontrollera lysdioderna. I standardläget, medan dess aktivera indata är hög, skiftar denna modul helt enkelt den nuvarande upplyst LED till höger ett utrymme på stigande kanten av klocka input (var_clk_div.vhd nedan). Om aktivera indata är låg, kommer att lysdioderna hålla sitt nuvarande tillstånd. När slutet är uppnådd, Linda lysdioderna"runt" tillbaka till början. Efter den slutliga nivån är passerade, när win signalen är hög, kommer att alla lysdioder vara upplyst. Om när som helst återställa är höga, inklusive win skick, lysdioderna att återställa tillbaka till sina standardtillstånd.
Nivå Finite State Machine (level_fsm.vhd)
Denna modul lagrar ett fyra-bitars binär värde som motsvarar den aktuella nivån. Produktionen av denna modul visas på sju-segmentet displayen på Nexys 3. Produktionen är också används för att bestämma den rörliga ljusets hastighet. Om du vill ändra värdet på nivån, måste en puls skickas på Aktivera signal orsakar nivån-ökas med "0001". Om när som helst återställa signalen är hög, återställs värdet av nivå för "0000".
Sju-segmentet dekoder (sseg_dec.vhd)
Denna modul är ett verk av Cal Poly professor, Bryan Mealy. Det tar i en åtta-bitars binär ingång och visar motsvarande decimalvärdet på Nexys 3 sju-segmentet displayen. Det används för att visa resultatet av level_fsm.vhd.
Variabel klocka avdelare (var_clk_div.vhd)
Den här modulen bygger bort en modul som tillhandahålls av Cal Poly professor, Bryan Mealy. Denna modul tar den nuvarande nivån (från level_fsm.vhd) som indata och utgångar en motsvarande klocksignal. Frekvensen av denna klocka ökar tillsammans med nivå för att göra spelet svårare.
LED spel (led_game.vhd)
Nu kör vi! Den huvudsakliga modulen av spelet! Denna modul primära syfte är att ansluta alla de ovanstående modulerna och tillhandahålla mellanliggande logiken för att spela spelet. Denna modul sänder olika signaler till relevanta moduler när stopp-knappen trycks. Den hanterar också i vänteläge efter stopp-knappen trycks. Denna väntan stat pausar spelet i två sekunder innan nästa, snabbare och entusiasmerande, nivå börjar. Denna väntan staten ignorerar också ytterligare stopp knapptryckningar att undvika debouncing frågor. Blockdiagram visar anslutningarna mellan komponent moduler är ansluten (LED spel Block Diagram).