Sisällysluettelo:

CPE 133 -projektin lopullinen desimaali binaariksi: 5 vaihetta
CPE 133 -projektin lopullinen desimaali binaariksi: 5 vaihetta

Video: CPE 133 -projektin lopullinen desimaali binaariksi: 5 vaihetta

Video: CPE 133 -projektin lopullinen desimaali binaariksi: 5 vaihetta
Video: How to Do SDXL Training For FREE with Kohya LoRA - Kaggle - NO GPU Required - Pwns Google Colab 2024, Heinäkuu
Anonim
CPE 133 -projektin lopullinen desimaali binaariksi
CPE 133 -projektin lopullinen desimaali binaariksi

Binaariluvut ovat yksi ensimmäisistä asioista, jotka tulevat mieleen, kun ajatellaan digitaalista logiikkaa. Binaariluvut voivat kuitenkin olla vaikea konsepti niille aloittelijoille.

Tämä projekti auttaa sekä uusia että kokeneita binäärilukuja hallitsemaan desimaalilukujen muuntamisen. Luomalla pelin testaamme käyttäjiä heidän muuntamistaidoissaan. Tämä peli suoritetaan Basys3 -aluksella ja ohjelmoidaan Verilogissa.

Vaihe 1: Tarvittavat materiaalit

Tarvittavat materiaalit
Tarvittavat materiaalit

Seuraavat materiaalit tarvitaan tämän desimaalibinäärimuunnospelin tekemiseen:

  • Xilinx Vivado Design Suite -ohjelmisto
  • Digilent Basys3 FPGA -levy
  • USB -mikro -USB -kaapeli

Vaihe 2: LFSR: n (lineaarisen palautteen siirtorekisterin) määrittäminen

LFSR: n (Linear Feedback Shift Register) määrittäminen
LFSR: n (Linear Feedback Shift Register) määrittäminen
LFSR: n (Linear Feedback Shift Register) määrittäminen
LFSR: n (Linear Feedback Shift Register) määrittäminen

LFSR (Linear Feedback Shift Register) on moduuli, jota käytetään "satunnaisten" numeroiden luomiseen.

LFSR ei ole täysin satunnainen, koska se luo pseudo-satunnaislukuja, jotka muodostavat satunnaisiksi näyttäviä numeroita, mutta eivät ole sitä.

LFSR on siirtorekisteri, jonka syöttöbitti on sen edellisen tilan lineaarinen funktio, mikä tarkoittaa, että LFSR kiertää äärellisten joukkojen läpi. Erityisesti tässä pelissä LFSR käyttää vain 8 bittiä rajoittaakseen sen luoman desimaaliluvun 255: een.

Painiketta L (btnL) käytetään LFSR: n numeron nollaamiseen.

Tämän pelin tekijät eivät ole luoneet tätä LFSR -moduulia. LFSR -moduulin loi Carletonin yliopiston professori John Knight. Linkki hänen moduuliinsa on alla.

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

Vaihe 3: Seitsemän segmentin näytön määrittäminen

Seitsemän segmentin näytön asettaminen
Seitsemän segmentin näytön asettaminen

Seitsemän segmentin näyttöä käytetään Basys3-kortilla ja monissa muissa laitteissa aakkosnumeeristen merkkien näyttämiseen.

Tässä pelissä käytetty seitsemän segmentin näyttömoduuli muuntaa binääriluvun desimaaliluvuksi ja näyttää sen desimaalilukuna.

Käyttämällä aiemmin keskusteltua LFSR-moduulia satunnaisesti luotu luku lähetetään seitsemän segmentin näyttöön.

Pelin tekijät eivät ole luoneet Seitsemän segmentin näyttömoduulia. Seitsemän segmentin näyttömoduulin toimitti Kalifornian ammattikorkeakoulun valtionyliopiston professori Joseph Callenes-Sloan. Moduulin pdf -tiedosto on alla.

Vaihe 4: Pelimoduulin luominen

Pelimoduulin luominen
Pelimoduulin luominen
Pelimoduulin luominen
Pelimoduulin luominen
Pelimoduulin luominen
Pelimoduulin luominen
Pelimoduulin luominen
Pelimoduulin luominen

Luo peli (pää) -moduuli.

Tämä moduuli luo LFSR-moduulin avulla satunnaisluvun ja lähettää sen sitten seitsemän segmentin näyttöön.

Moduuli käyttää aina lohkoa, joka nollaa satunnaisluvun. Tämä toimii painikkeen R (btnR) positiivisella reunalla, mikä tarkoittaa, että se toimii vain, kun painiketta R on painettu.

Toinen lohko toimii kellon positiivisella reunalla (clk). Jos painiketta C (btnC) painetaan, tämä tarkistaa, onko seitsemän segmentin näytön numero sama kuin kytkinten (sw) tulonumero. Tämä lohko nostaa lipun (aseta lippurekisteri (lippu) arvoon 1) ja muuttaa viestiVal -johtoa sen mukaan, onko käyttäjä voittanut vai hävinnyt.

Kolmas lohko toimii myös kellon positiivisella reunalla. Jos lippu nostetaan, se asettaa ssegInputVal-viestin viestival-johtoksi seitsemän segmentin näytössä. Jos lippua ei nosteta, se jatkaa satunnaisluvun (randomVal) tulostamista.

Vaihe 5: Pelin pelaaminen

Pelin pelaaminen!
Pelin pelaaminen!
Pelin pelaaminen!
Pelin pelaaminen!
Pelin pelaaminen!
Pelin pelaaminen!

Ohjeet:

  • Käyttäjä painaa painiketta R uuden pelin luomiseksi tai muuttaa numeroa seitsemän segmentin näytössä.
  • Käyttäjä kääntää ensimmäiset 8 kytkintä ylös (1) tai alas (0) syöttääkseen binääriluvun.
  • Painikkeella C tarkistetaan, voittiko vai hävisikö käyttäjä.
  • Jos käyttäjä voitti '111' näkyy seitsemän segmentin näytössä.
  • Jos käyttäjä on kadonnut, 0 näkyy seitsemän segmentin näytössä.
  • Uuden pelin aloittamiseksi painiketta R voidaan painaa milloin tahansa.

Suositeltava: