Orodha ya maudhui:

Mchezo wa Asteroid wa FPGA: Hatua 7 (na Picha)
Mchezo wa Asteroid wa FPGA: Hatua 7 (na Picha)

Video: Mchezo wa Asteroid wa FPGA: Hatua 7 (na Picha)

Video: Mchezo wa Asteroid wa FPGA: Hatua 7 (na Picha)
Video: ИГРОВЫЕ ЗЛОДЕИ В ПРОШЛОМ! Лагерь попал в прошлое! ПИГГИ РОБЛОКС МАМОНТ СВИНЬЯ?! В реальной жизни! 2024, Novemba
Anonim
Mchezo wa Asteroid wa FPGA
Mchezo wa Asteroid wa FPGA

Kwa Mradi wetu wa Mwisho wa CPE 133, tuliamua kuunda mchezo wa asteroids kwenye FPGA yetu kwa kutumia swichi mbili za kitufe cha kushinikiza na onyesho la sehemu 7. Mchezo hufanya kazi ili asteroid itawaze katika moja ya safu tatu zilizochaguliwa bila mpangilio, na inakuja ikiumiza kuelekea meli upande wa pili wa onyesho la sehemu 7. Kitufe cha juu na kitufe cha chini kinaweza kutumiwa kuhamisha meli yako kutoka kwa njia ya asteroidi. Unaposhindwa kufanya hivyo, onyesho linasoma 'BAnG' kwa muda mfupi na kisha huanza tena mchezo ili mtumiaji ajaribu tena. Ifuatayo ni maelezo mafupi ya jinsi mradi ulifanywa ili mtumiaji yeyote aweze kuiga au kuboresha muundo wetu.

Hatua ya 1: Muhtasari

Maelezo ya jumla
Maelezo ya jumla
Maelezo ya jumla
Maelezo ya jumla

Mradi huo unajumuisha Mashine za Jimbo la Finite (FSMs), ambazo hutumia mantiki kuhamisha FPGA kati ya majimbo ambayo huhifadhi na kuonyesha maadili tofauti ya nafasi za meli na miamba. Moduli mbili kuu ni mchezo wa FSMs kwa mwamba na meli, na binary kwa sehemu ya 7 ya onyesho la decoder FSM, ambazo zimeunganishwa pamoja kwa kutumia mtindo rahisi sana wa muundo katika VHDL.

FSM ziliundwa kwa nafasi ya meli, nafasi ya mwamba, na kwa sehemu ya sehemu 7. Madhumuni ya FSM ya meli ni ili meli iweze kuhamia kwenye nafasi sahihi wakati mchezaji anabonyeza kitufe cha juu au chini. FSM inahitajika kwa sababu inahitaji kukumbuka ni nafasi gani ya mwisho ili kuhamia kwenye nafasi sahihi.

Madhumuni ya FSM ya mwamba ni kusogeza mwamba kwenye nafasi sahihi kulingana na safu gani na nafasi ya mwisho katika safu hiyo. Kwa kuongezea, inafuatilia msimamo wa moduli ambayo itaionesha na inachukua bahati nasibu safu mpya kuonekana baadaye.

FSM ya sehemu ya maonyesho ya sehemu ya 7 ilitumiwa sio kuonyesha meli na mwamba tu bali pia kuonyesha "BAnG" wakati nafasi ya meli na msimamo wa mwamba ni sawa.

Hatua ya 2: Vifaa

Vifaa vilivyotumika katika mradi huo ni:

  • Bodi ya Maendeleo ya Basys3 kutoka Digilent, Inc.
  • Suite ya Ubunifu wa Vivado
  • sseg_dec.vhd (Faili hii tulipewa kwenye Polylearn na iliandikwa na Bryan Mealy)
  • Clk_div.vhd (Faili hii tulipewa kwenye Polylearn na iliandikwa na Bryan Mealy)
  • Mashine tatu za Jimbo la Finite (FSMs)

Hatua ya 3: Kufanya Mchezo

Kufanya Mchezo
Kufanya Mchezo
Kufanya Mchezo
Kufanya Mchezo
Kufanya Mchezo
Kufanya Mchezo
Kufanya Mchezo
Kufanya Mchezo

Moduli ya mchezo iliundwa kwa kutumia mfano wa tabia kuelezea hali za meli na mwamba kwa FSM zao. Faida ya hii ni kwamba ni rahisi sana kuiga tabia ya mzunguko kwa kuelezea inachofanya badala ya kugundua vifaa vyote vinavyohitajika kuunda vifaa.

Jimbo hilo la mwamba lilifanywa kwa kutumia bandia ya nambari ya bahati nasibu kwa nafasi ya kwanza ya mwamba. Ili kufanikisha hili, tulimpa jenereta saa yake ambayo ilikuwa haraka sana kulingana na kasi ya mchezo. Kwenye kila makali yanayoinuka, nambari tatu kidogo huongezwa, na maadili yake yote yanahusiana na moja ya majimbo matatu ya kuanza kwa meli. Kwa hivyo, maadili matatu yanalingana na nafasi ya 3 (kulia juu), tatu inalingana na nafasi ya 7 (katikati), na mbili zinahusiana na nafasi ya 11 (kulia chini).

Mara kizazi cha nasibu kimetokea na asteroid imepewa hali ya kwanza, inapita usawa kuelekea meli bila usumbufu.

0 ← 1 ← 2 ← 3

4 ← 5 ← 6 ← 7

11 ← 10 ← 9 ← 8

Saa inayotumiwa kwa mantiki inayofuata ya mwamba inadhibiti kasi ya mchezo; tuligundua kupitia jaribio na makosa kuwa 9999999 ni thamani nzuri kwa hesabu yake ya juu.

Mantiki ya meli inafanya kazi kwa kuanzisha katika nafasi ya katikati (nafasi ya 4) upande wa kushoto sana. Ikiwa kitufe cha juu au kitufe cha chini kimeshinikizwa, meli itasonga juu na chini hadi nafasi ya 0 na 11 inayolingana na kitufe ambacho kimesisitizwa.

Ili harakati za meli zijisikie vizuri kwa mtumiaji, hatukufanya harakati zake kuwa za kupendeza. Tulitumia saa kwa mabadiliko ya hali yake, na tulitumia hesabu kubwa ya 5555555.

Hatua ya 4: Kuonyesha Matokeo

Chaguzi ya sehemu ya 7-sehemu huchukua anuwai ya nafasi ya 4-bit kwa meli na asteroid na kuonyesha picha inayofaa (ama meli na mwamba au ujumbe "BAnG").

Inatimiza hii kwa kuangalia kwanza ikiwa wawili ni sawa na kisha kuonyesha ujumbe "BAnG" ikiwa hundi inarudi kweli.

Ikiwa haitarudi kweli, dekoda itaonyesha meli na mwamba kwa kubadili kati yao kwa mzunguko wa saa kubwa sana na kupumbaza jicho kuwaona kana kwamba zinaonyeshwa kwa wakati mmoja.

Hatua ya 5: Kuiweka Pamoja

Kuiweka Pamoja
Kuiweka Pamoja

Tulizunguka FSM ya meli na mwamba katika FSM moja kubwa ambayo tulitia waya kwenye maonyesho ya FSM. Pembejeo za mchezo ni kitufe cha juu na kitufe cha chini kwenye bodi ya BASYS3 na saa ya mfumo. Matokeo ni sehemu na anode vectors segment-display saba.

Pembejeo na matokeo haya yataonekana kwenye faili ya vizuizi ambapo zina ramani ya bandari.

Hatua ya 6: Marekebisho ya Baadaye

Katika siku za usoni, kuongeza utendaji zaidi wa harakati za meli kwenye mradi huo itakuwa kuboresha. Hii inaweza kutimizwa kwa kutoa pembejeo 2 zaidi na kuruhusu meli kuchukua nafasi (inasema) zaidi ya 0, 4, na 8. Marekebisho mengine yanaweza kuwa kudhibiti wakati unaofuata wa asteroid ili iweze kuanza polepole na kuongeza kasi kwa 1.5x kila wakati inakosa meli hadi inapata hit, ambapo ingeanza tena na kuwa polepole tena. Hii itaongeza ugumu wa mchezo na kuufanya uwe wa kufurahisha zaidi kwa mtumiaji ikiwa utatekelezwa, na inaweza kufanywa kwa kuunda kutofautisha kwa hesabu ya juu ya saa inayofuata ya mwamba, na kuzidisha ubadilishaji huo na 1.5 kila wakati asteroid haina hit, na kuiweka tena kwa thamani yake ya kwanza kila wakati mwamba unapiga.

Hatua ya 7: Hitimisho

Mradi huu umetusaidia kuelewa vyema mashine za serikali zenye mwisho, saa, na kuonyesha kwa kuingiliana kwenye maonyesho ya sehemu saba.

Jambo kubwa zaidi juu ya mashine za serikali zenye mwisho ni kwamba ni muhimu kujua (kumbuka) hali gani uliyonayo kwa sasa ili kuhamia hali inayotarajiwa ijayo. Kwa kushangaza, ushauri mzuri wa maisha; lazima ujue ni wapi ujue unaenda wapi.

Kwa kuendesha visa tofauti vya saa, tuliweza kutoa nambari bila mpangilio, kusogeza mwamba kwenye nafasi inayofuata, na kudhibiti onyesho la meli, mwamba, na ujumbe wa mchezo wa mwisho.

Tulijifunza kwamba anode zaidi ya moja haiwezi kuonyeshwa kwa wakati mmoja. Moduli tuliyopewa ilitumia faida kwamba jicho la mwanadamu linaweza tu kuona tofauti hadi masafa fulani. Kwa hivyo mzunguko wa juu wa kubadili anode ulichaguliwa. Meli na mwamba vinaonekana wakati huo huo ni dokezo kwani kila moja huonyeshwa kando, lakini haraka sana. Dhana hiyo ilitumika kuonyesha mwendo wa meli, mwamba, na ujumbe wa "BAnG".

Ilipendekeza: