Inhoudsopgave:

CPE 133 Final Project Decimaal naar Binair - Ajarnpa
CPE 133 Final Project Decimaal naar Binair - Ajarnpa
Anonim
CPE 133 Final Project Decimaal naar Binair
CPE 133 Final Project Decimaal naar Binair

Binaire getallen zijn een van de eerste dingen die in je opkomen als je aan digitale logica denkt. Binaire getallen kunnen echter een moeilijk concept zijn voor degenen die nieuw zijn.

Dit project zal degenen die zowel nieuw als ervaren zijn met binaire getallen helpen om decimale getallen te converteren. Door het maken van een spel zullen we gebruikers testen op hun conversievaardigheid. Dit spel wordt uitgevoerd op een Basys3-bord en geprogrammeerd in Verilog.

Stap 1: Benodigde materialen

Benodigde materialen
Benodigde materialen

De volgende materialen zijn nodig om dit decimaal naar binair conversiespel te maken:

  • Xilinx Vivado Design Suite-software
  • Digilent Basys3 FPGA-bord
  • USB naar micro-USB-kabel

Stap 2: Instellen van de LFSR (Linear Feedback Shift Register)

De LFSR instellen (Linear Feedback Shift Register)
De LFSR instellen (Linear Feedback Shift Register)
De LFSR instellen (Linear Feedback Shift Register)
De LFSR instellen (Linear Feedback Shift Register)

Een LFSR (Linear Feedback Shift Register) is een module die wordt gebruikt om "willekeurige" getallen te genereren.

Een LFSR is niet volledig willekeurig omdat het pseudo-willekeurige getallen genereert, wat een proces is van het genereren van getallen die willekeurig lijken, maar dat niet zijn.

Een LFSR is een schuifregister waarvan het invoerbit een lineaire functie is van de vorige toestand, wat betekent dat de LFSR door een eindige reeks getallen zal gaan. Specifiek voor dit spel zal de LFSR slechts 8 bits gebruiken om het decimale getal dat het kan genereren te beperken tot 255.

Knop L (btnL) wordt gebruikt om het nummer op de LFSR te resetten.

Deze LFSR-module is niet gemaakt door de makers van dit spel. De LFSR-module is gemaakt door Carleton University Professor, John Knight. De link voor zijn module is hieronder opgenomen.

www.doe.carleton.ca/~jknight/97.478/97.478_…

Stap 3: Het zevensegmentendisplay instellen

Het zevensegmentendisplay instellen
Het zevensegmentendisplay instellen

Een zevensegmentendisplay wordt gebruikt op het Basys3-bord en op veel andere hardware om alfanumerieke tekens weer te geven.

De Seven-Segment Display-module die in dit spel wordt gebruikt, zet een binair getal om in een decimaal getal en geeft het weer als een decimaal getal.

Door gebruik te maken van de eerder besproken LFSR-module, wordt een willekeurig gegenereerd getal uitgevoerd op het zevensegmentendisplay.

De Seven-Segment Display-module is niet gemaakt door de makers van dit spel. De Seven-Segment Display-module werd geleverd door Joseph Callenes-Sloan, professor aan de California Polytechnic State University. De pdf van de module is hieronder bijgevoegd.

Stap 4: De spelmodule maken

De spelmodule maken
De spelmodule maken
De spelmodule maken
De spelmodule maken
De spelmodule maken
De spelmodule maken
De spelmodule maken
De spelmodule maken

Maak Game (hoofd) Module.

Deze module gebruikt de LFSR-module om een willekeurig getal te genereren en dit vervolgens uit te voeren op het zevensegmentendisplay.

De module gebruikt dan een altijd blok dat het willekeurige getal reset. Dit werkt op de positieve rand van knop R (btnR), wat betekent dat het alleen werkt als knop R is ingedrukt.

Het tweede blok werkt altijd op de positieve flank van de klok (clk). Als knop C (btnC) wordt ingedrukt, wordt gecontroleerd of het nummer op het zevensegmentendisplay hetzelfde is als het invoernummer van de schakelaars (sw). Dit blok zal een vlag opheffen (zet het vlagregister (vlag) op 1) en de messageVal-draad veranderen naargelang de gebruiker heeft gewonnen of verloren.

Het derde altijd-blok werkt ook op de positieve kant van de klok. Als de vlag wordt gehesen, wordt de ssegInputVal ingesteld op de messageVal-draad op het zevensegmentendisplay. Als de vlag niet wordt gehesen, blijft het een willekeurig getal (randomVal) uitvoeren.

Stap 5: Speel het spel

Het spel aan het spelen!
Het spel aan het spelen!
Het spel aan het spelen!
Het spel aan het spelen!
Het spel aan het spelen!
Het spel aan het spelen!

Instructies:

  • De gebruiker zal op knop R drukken om een nieuw spel te maken of het nummer op het zevensegmentendisplay te veranderen.
  • De gebruiker zal de eerste 8 schakelaars omhoog (1) of omlaag (0) draaien om het binaire getal in te voeren.
  • Knop C wordt gebruikt om te controleren of de gebruiker heeft gewonnen of verloren.
  • Als de gebruiker heeft gewonnen, wordt '111' weergegeven op het display met zeven segmenten.
  • Als de gebruiker de weg kwijt is, wordt '0' weergegeven op het display met zeven segmenten.
  • Om een nieuw spel te starten kan op elk moment op knop R worden gedrukt.

Aanbevolen: