Turinys:

CPE 133 galutinis projekto dešimtainis skaičius iki dvejetainio: 5 žingsniai
CPE 133 galutinis projekto dešimtainis skaičius iki dvejetainio: 5 žingsniai

Video: CPE 133 galutinis projekto dešimtainis skaičius iki dvejetainio: 5 žingsniai

Video: CPE 133 galutinis projekto dešimtainis skaičius iki dvejetainio: 5 žingsniai
Video: How to Do SDXL Training For FREE with Kohya LoRA - Kaggle - NO GPU Required - Pwns Google Colab 2024, Lapkritis
Anonim
CPE 133 galutinis projekto dešimtainis skaičius iki dvejetainio
CPE 133 galutinis projekto dešimtainis skaičius iki dvejetainio

Dvejetainiai skaičiai yra vienas iš pirmųjų dalykų, kurie ateina į galvą galvojant apie skaitmeninę logiką. Tačiau dvejetainiai skaičiai gali būti sudėtinga naujokams.

Šis projektas padės naujiems ir patyrusiems dvejetainius skaičius išmokti konvertuoti dešimtainius skaičius. Sukūrę žaidimą, mes išbandysime naudotojus pagal jų įgūdžius konvertuoti. Šis žaidimas bus vykdomas „Basys3“lentoje ir užprogramuotas „Verilog“.

1 žingsnis: reikalingos medžiagos

Reikalingos medžiagos
Reikalingos medžiagos

Norint sukurti šį dešimtainio į dvejetainį konvertavimo žaidimą, reikia šių medžiagų:

  • „Xilinx Vivado Design Suite“programinė įranga
  • „Digilent Basys3“FPGA plokštė
  • USB į mikro USB kabelis

2 veiksmas: LFSR (linijinio grįžtamojo ryšio poslinkio registro) nustatymas

LFSR (Linear Feedback Shift Register) nustatymas
LFSR (Linear Feedback Shift Register) nustatymas
LFSR (Linear Feedback Shift Register) nustatymas
LFSR (Linear Feedback Shift Register) nustatymas

LFSR (Linear Feedback Shift Register) yra modulis, naudojamas „atsitiktiniams“skaičiams generuoti.

LFSR nėra visiškai atsitiktinis, nes jis sukuria pseudo-atsitiktinius skaičius, o tai yra skaičių, kurie atrodo atsitiktinai, bet nėra.

LFSR yra poslinkių registras, kurio įvesties bitas yra ankstesnės būsenos linijinė funkcija, o tai reiškia, kad LFSR pereis per baigtinius nustatytus skaičius. Konkrečiai šiam žaidimui LFSR naudos tik 8 bitus, kad apribotų dešimtainį skaičių, kurį jis gali sukurti iki 255.

Mygtukas L (btnL) naudojamas LFSR skaičiui iš naujo nustatyti.

Šio LFSR modulio sukūrė ne šio žaidimo kūrėjai. LFSR modulį sukūrė Karletono universiteto profesorius Johnas Knightas. Jo modulio nuoroda pateikiama žemiau.

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

3 veiksmas: septynių segmentų ekrano nustatymas

Septynių segmentų ekrano nustatymas
Septynių segmentų ekrano nustatymas

Septynių segmentų ekranas naudojamas „Basys3“plokštėje ir daugelyje kitų aparatūros dalių, kad būtų rodomi raidiniai ir skaitmeniniai simboliai.

Šiame žaidime naudojamas septynių segmentų ekrano modulis paverčia dvejetainį skaičių į dešimtainį skaičių ir parodo jį kaip dešimtainį skaičių.

Naudojant anksčiau aptartą LFSR modulį, atsitiktinai sugeneruotas skaičius bus išvestas į septynių segmentų ekraną.

Septynių segmentų ekrano modulis nebuvo sukurtas šio žaidimo kūrėjų. Septynių segmentų ekrano modulį pateikė Kalifornijos politechnikos valstijos universiteto profesorius Josephas Callenesas-Sloanas. Modulio pdf yra pridedamas žemiau.

4 žingsnis: sukurkite žaidimo modulį

Žaidimo modulio kūrimas
Žaidimo modulio kūrimas
Žaidimo modulio kūrimas
Žaidimo modulio kūrimas
Žaidimo modulio kūrimas
Žaidimo modulio kūrimas
Žaidimo modulio kūrimas
Žaidimo modulio kūrimas

Sukurti žaidimo (pagrindinio) modulį.

Šis modulis naudos LFSR modulį, kad sugeneruotų atsitiktinį skaičių ir išvestų jį į septynių segmentų ekraną.

Tada modulis naudoja visada bloką, kuris iš naujo nustato atsitiktinį skaičių. Tai veikia teigiamame mygtuko R (btnR) krašte, o tai reiškia, kad jis veiks tik tada, kai bus paspaustas mygtukas R.

Antrasis blokas visada veikia teigiamame laikrodžio krašte (clk). Paspaudus mygtuką C (btnC), bus patikrinta, ar septynių segmentų ekrane esantis skaičius sutampa su jungiklių įvesties numeriu (sw). Šis blokas iškels vėliavą (nustatykite vėliavų registrą (vėliavą) į 1) ir pakeis pranešimąVal laidą pagal tai, ar vartotojas laimėjo, ar pralaimėjo.

Trečiasis blokas taip pat veikia teigiamame laikrodžio krašte. Jei vėliava pakelta, septynių segmentų ekrane „ssegInputVal“bus nustatytas į „messageVal“laidą. Jei vėliava nebus pakelta, ji ir toliau išves atsitiktinį skaičių (randomVal).

5 žingsnis: Žaiskite žaidimą

Žaidžia žaidimą!
Žaidžia žaidimą!
Žaidžia žaidimą!
Žaidžia žaidimą!
Žaidžia žaidimą!
Žaidžia žaidimą!

Instrukcijos:

  • Vartotojas paspaus mygtuką R, kad sukurtų naują žaidimą, arba pakeis numerį septynių segmentų ekrane.
  • Vartotojas pasuks pirmuosius 8 jungiklius aukštyn (1) arba žemyn (0), kad įvestų dvejetainį skaičių.
  • Mygtukas C bus naudojamas patikrinti, ar vartotojas laimėjo ar pralaimėjo.
  • Jei vartotojas laimėjo, „111“bus rodomas septynių segmentų ekrane.
  • Jei vartotojas pametė, „0“bus rodomas septynių segmentų ekrane.
  • Norėdami pradėti naują žaidimą, R mygtuką galite paspausti bet kuriuo metu.

Rekomenduojamas: