Stap 3: Programmering de FPGA
Met behulp van de Xilinix Design Suite kunt u de bestanden samenvoegen tot een werkend systeem van modules. U kunt deze stappen hier om het te krijgen. Voor een technisch genie zoals jezelf monteren dit moet geen big deal, maar als u meer uitleg over de modules nodig, zijn er opmerkingen binnen de ge-uploade vhd-bestanden. U kunt de notities onder elke part in deze stap negeren als u niet nodig van een uitleg over het implementeren van de module hebt, want je zo'n technische vernuft bent.
Één meer ding voordat we in deze
Voor een duidelijker, of meer in de diepte vlakkevloertheater diagram.
-Download en synthetiseren van onze vhd-modules
-Vouw de optie synthesize en dubbel klik op "View RTL schematische"
-Dubbelklik vlakkevloertheater diagram uit te vouwen
Deel 1. Maken van een register van de verschuiving voor de obstakels. Moet u een scheidingslijn van de klok om shift register belemmeringen draaien op begrijpelijke snelheden.
-In eerste instantie, geef het 8 bit shift register een '1' om te beginnen de obstakels.
-op elke rising_edge(clk) na die
---Het verschuiven van de bits omlaag door de (6 downto 0) doorgeven aan de (7 downto 1) van de "volgende" signaal (lfsr_next) zoals we het noemden
---De 1ste bit ingesteld voor de "volgende" signaal gelijk is aan de bits van het huidige register "xor" een ander stukje van het huidige register
---Kunt u elke twee bits aan xor, dit zal simpelweg resulteren in een pseudo-willekeurige volgorde.
---Het heeft sommige willekeurige eigenschappen, maar het patroon herhaalt.
Opmerking 1: SSEG-decoder en Clk_div worden gegeven aan ons door onze leraar. Deze modules werden gemaakt door Professor Bryan Mealy op Cal Poly Slo. De sseg-decoder een getal van 8 bits neemt en dat getal in decimale notatie op het 7 segment display weergeven. De clk_div is een klok-verdeler die strekt zich uit de clk-periode. Gewoon kopiëren en plakken die in. Waarschuwing: De sseg-decoder kan opleveren waarschuwingen van hoe de teller ongebruikt is. Dit is omdat de teller op nooit die hoog van een getal te verplichten bepaalde stukjes. Dus vhdl optimaliseert die stukjes en spuugt een waarschuwing.
Test die deze modules werken door het uploaden van uw programma en kijken naar de LEDs oplichten. Indien behoorlijk gedaan, moet je hersenen denken dat het lichtpatroon uitgestoten zich beweegt als een belemmering voor de links. In het geval dit klopt niet, check de breadboard setup, modules en je eigen hersenen.
Deel 2. Maken van de Score Decoder. De module uitgangen een score op basis van de tijd, het is in wezen een teller. Geen spel is compleet zonder een koude, onpartijdige manier onderscheid te maken hoe slecht je bent in vergelijking met anderen. Zorg ervoor dat Maak een module vergelijkbaar met sseg_dec.vhd, zodat u en uw beoordeling van de collega's de score op het 7 segment display met gemak bekijken kunnen.
-_ / / Verhogen de score op de stijgende rand van de clk na gezet door de clk_div,
Als dit werkt door simulatie van het testen. De toename van de getallen correct zorgen. U kunt vervolgens verder testen door uw score decoder output te sturen naar de sseg_dec om dat het visueel werkt. De score moet verhogen door een voor elke stijgende klok-rand.
Aantekening 2: Wanneer de score decoder simuleren, het venster van de simulatie is binnen een paar nanoseconden, dus vermindering van uw klok factor 1 voor goede resultaten. Anders zal niets lijkt te gebeuren.
Deel 3. Shift registreren en de Score Decoder combineren met een belangrijkste module. Zorg ervoor dat u de scheidingslijn van de klok als de klok voor zowel shift register en score. Het eindresultaat moet de een score die stappen op elke verschuiving van de obstakels.
Deel 4. Maak een module voor de knop decoder. Het neemt in de inbreng van een knop en bepaalt of de speler is in dodge staat of niet. Dit is nodig om te voorkomen dat spelers uit de dodge-knop ingedrukt te houden en alle tegemoetkomende obstakels te ontwijken.
-Deze module kan worden weergegeven met behulp van een eindige toestandsmachine, vertegenwoordigd in de bijgevoegde eindige toestandsdiagram
-Defaults te wachten staat
-Als u niet druk op de knop blijft de staat op wachten modus
-Als zij dit doen, dan gaat het te ontwijken modus en uitgangen ontwijken gedurende een ingestelde time
---Dit is bepaald door een clk die omhoog naar een bepaald aantal aan stijgende rand (tot u telt)
-Na het beëindigen van de tegenhouden, modus, het automatisch gaat naar de let_go staat en niet teruggaan naar staat te wachten totdat de speler van de knop loslaat.
Deel 5. Maak een module om te controleren als de speler het blok is geraakt en dat het spel voorbij is.
-Het spel is afgelopen als het obstakel aan het eind is op en de speler niet in tegenhouden, modus.
-Als het spel eindigt kunt u shift register en score_decoder, die we deden opnieuw instellen
--- Of u kunt wachten voor een gebruikersinvoer opnieuw op te starten van het spel
Dit werd getest met een simulatie-bestand. We stellen de ingangen naar verschillende combinaties en visueel bevestigde correctheid.
Deel 6. Zet dit allemaal samen in je belangrijkste module en start het spel met uw beperkingen-bestand.
-De toewijzingen van meest de pinnen kunnen worden gevonden op het bord.
-Voor de LED-draden die moeten worden aangesloten, hebt u het opzoeken op de website van de Raad van bestuur. Als u van een bord NEXYS 3 gebruikmaakt, kunt u onze beperkingen/uitvoering-bestand die reacties wat pinnen zijn op het bord.
-Test dit met simulatie als goed. Het is gemakkelijk om te zien wat er gebeurt met een gesimuleerde bestand aangezien u op de uitgangen van de individuele modules ook kijken kunt.
Nota 3: Om dezelfde reden, krijgt u de dezelfde waarschuwingen als opmerking 1 met enkele andere modules.
Deel 7. Optionele. (Verplicht als alle onderdelen hiervoor een fluitje van een cent u waren) Alles met een klok-verdeler en de knop decoder te nemen in de telling wijzigen (niet dit doen voor de sseg-decoder). Op deze manier als de verhogingen van de score kunt u een verschillende telling doorgeven en versnellen van het spel te verhogen de moeilijkheid.
Aantekening 4: Als u dit doet, kan je enkele extra waarschuwingen, met de melding dat u een klink hebben gemaakt. Ook werden de simulaties gedaan voordat dit, dus je moeten zult deze toewijzingen toevoegen als u wilt simuleren na toevoeging.
Opmerking 5: Kan je een waarschuwing dat sommige dingen afkomstig zijn worden door een combinatorische pin. Dit is prima, het heeft geen invloed op het spel.
Deel 8. Het bit bestand uploaden naar uw FPGA. Want ondanks al dit werk, uw FPGA nog niets doet. Om te doen deze downloaden en installeren van een programma genaamd Adept.
Kunt u het hier http://www.digilentinc.com/Products/Detail.cfm?Nav...
Zodra u hebt geïnstalleerd het sluit de micro USB-kabel aan op de FPGA en selecteer het bestand dat bits. Vervolgens druk op program. Als u dit deel hebben bereikt zonder geen stappen overslaan mag dan een kleine spel noemen we ons project zitten voor je.