Sisukord:

CPE 133 Lõplik projekti kümnendarv binaarseks: 5 sammu
CPE 133 Lõplik projekti kümnendarv binaarseks: 5 sammu

Video: CPE 133 Lõplik projekti kümnendarv binaarseks: 5 sammu

Video: CPE 133 Lõplik projekti kümnendarv binaarseks: 5 sammu
Video: CPE 133 Lab 2 2024, Juuli
Anonim
CPE 133 Lõplik projekti kümnendkohaks binaariks
CPE 133 Lõplik projekti kümnendkohaks binaariks

Binaarnumbrid on üks esimesi asju, mis digitaalsele loogikale mõeldes pähe tuleb. Binaarnumbrid võivad aga olla neile, kes seda alles alustavad, keeruline mõiste.

See projekt aitab neid, kes on nii uued kui ka kahendarvudega kogenud, kümnendarvude teisendamist. Mängu loomise kaudu testime kasutajaid nende teisendamisoskuste osas. See mäng käivitatakse Basys3 pardal ja programmeeritakse Verilogis.

Samm: vajalikud materjalid

Vajalikud materjalid
Vajalikud materjalid

Selle kümnendkohalise teisendusmängu tegemiseks on vaja järgmisi materjale:

  • Tarkvara Xilinx Vivado Design Suite
  • Digilent Basys3 FPGA plaat
  • USB -mikro -USB -kaabel

2. samm: LFSR (lineaarse tagasiside nihkeregister) seadistamine

LFSR (lineaarse tagasiside nihkeregister) seadistamine
LFSR (lineaarse tagasiside nihkeregister) seadistamine
LFSR (lineaarse tagasiside nihkeregister) seadistamine
LFSR (lineaarse tagasiside nihkeregister) seadistamine

LFSR (Linear Feedback Shift Register) on moodul, mida kasutatakse juhuslike numbrite genereerimiseks.

LFSR ei ole täiesti juhuslik, kuna see genereerib pseudo-juhuslikke numbreid, mis on juhuslikult ilmuvate, kuid mitte juhuslike numbrite genereerimise protsess.

LFSR on nihkeregister, mille sisendbitt on selle eelmise oleku lineaarne funktsioon, mis tähendab, et LFSR liigub läbi piiratud hulga arvude. Selle mängu jaoks kasutab LFSR ainult 8 bitti, et piirata genereeritava kümnendnumbri väärtust 255 -ni.

Nuppu L (btnL) kasutatakse LFSR -i numbri lähtestamiseks.

Seda LFSR moodulit ei loonud selle mängu tegijad. LFSR mooduli lõi Carletoni ülikooli professor John Knight. Tema mooduli link on toodud allpool.

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

3. samm: seitsme segmendi kuva seadistamine

Seitsme segmendi kuva seadistamine
Seitsme segmendi kuva seadistamine

Basys3 pardal ja paljudes teistes riistvaraosades kasutatakse tähtnumbriliste tähemärkide kuvamiseks seitsme segmendi kuva.

Selles mängus kasutatav seitsme segmendi kuvamoodul teisendab kahendarvu kümnendarvuks ja kuvab selle kümnendarvuna.

Kasutades eelnevalt käsitletud LFSR moodulit, väljastatakse juhuslikult genereeritud arv seitsme segmendi ekraanile.

Seitsme segmendi kuvamoodulit ei loonud selle mängu tegijad. Seitsme segmendi kuvamooduli pakkus California polütehnilise osariigi ülikooli professor Joseph Callenes-Sloan. Mooduli pdf on lisatud allpool.

4. samm: mängumooduli loomine

Mängumooduli loomine
Mängumooduli loomine
Mängumooduli loomine
Mängumooduli loomine
Mängumooduli loomine
Mängumooduli loomine
Mängumooduli loomine
Mängumooduli loomine

Loo mängu (peamine) moodul.

See moodul kasutab LFSR moodulit juhusliku arvu genereerimiseks ja seejärel selle väljastamiseks seitsme segmendi ekraanile.

Seejärel kasutab moodul alati plokki, mis lähtestab juhusliku arvu. See toimib nupu R (btnR) positiivsel serval, mis tähendab, et see töötab ainult siis, kui nuppu R on vajutatud.

Teine plokk töötab alati kella positiivsel serval (clk). Nupu C (btnC) vajutamisel kontrollitakse, kas seitsme segmendi ekraanil olev number on sama, mis lülitite (sw) sisendnumber. See plokk tõstab lipu (määrab lipuregistri (lipu) väärtuseks 1) ja muudab sõnumiVal traati vastavalt sellele, kas kasutaja on võitnud või kaotanud.

Kolmas plokk töötab alati ka kella positiivsel serval. Kui lipp on tõstetud, seab see ssegInputVal seitsme segmendi ekraanil teateVal traadile. Kui lippu ei tõsteta, jätkab see juhusliku arvu (randomVal) väljastamist.

Samm: mängu mängimine

Mängu mängimine!
Mängu mängimine!
Mängu mängimine!
Mängu mängimine!
Mängu mängimine!
Mängu mängimine!

Juhised:

  • Kasutaja vajutab uue mängu tegemiseks nuppu R või muudab numbrit seitsme segmendi ekraanil.
  • Kasutaja pöörab kaheksa esimest lülitit üles (1) või alla (0), et sisestada kahendarv.
  • Nupuga C kontrollitakse, kas kasutaja võitis või kaotas.
  • Kui kasutaja võitis, kuvatakse seitsme segmendi ekraanil '111'.
  • Kui kasutaja kaotas, kuvatakse seitsme segmendi ekraanil "0".
  • Uue mängu alustamiseks saab nuppu R igal ajal vajutada.

Soovitan: