Orodha ya maudhui:

Mchezo wa Pong: 6 Hatua
Mchezo wa Pong: 6 Hatua

Video: Mchezo wa Pong: 6 Hatua

Video: Mchezo wa Pong: 6 Hatua
Video: Hatua Za Ukuaji Wa Mimba/Mtoto Akiwa tumboni 2024, Julai
Anonim
Mchezo wa Pong
Mchezo wa Pong

Vifaa:

Bodi ya FPGA ya Basys3

Cable ya VGA

Vivado

Kusudi la kufundisha hii ni kukuza mchezo wa Pong ambao utaonyeshwa kwenye mfuatiliaji. Mradi utatumia VHDL kupanga na kutumia Basys3 FPGA kutekeleza nambari na kuhamisha picha kwa kutumia kiolesura cha VGA. Mafunzo haya yamekusudiwa watu ambao wana ujuzi kidogo wa VHDL. Mafunzo hayo yatagawanywa katika sehemu 6 tofauti: Muhtasari, Mchakato, Handler ya alama, Kizazi cha Picha, Mchezo wa Pong, na VGA.

Hatua ya 1: Muhtasari

Maelezo ya jumla
Maelezo ya jumla

Picha hapo juu ni muundo wa jumla wa mradi

Lengo la Mchezo:

Mchezo huo una onyesho na paddle inayoteleza ambayo inaweza kudhibitiwa na mtumiaji, na ukuta uliowekwa ambao hufanya kama kifungo cha juu. Mtumiaji anapobofya kitufe cha kuanza, ambacho ni kitufe cha juu, mpira utaanza kupaa juu, na utatoka ukutani na kujaribu kugonga padri. Ikiwa mpira unapiga paddle, unaruka tena na unaendelea kupiga hadi ikose paddle. Mchezo umekwisha wakati mpira unashindwa kupiga paddle. Mtumiaji ataweza kutumia vifungo vya kushoto na kulia kushinikiza mwendo wa paddle. Ili kuweka upya mchezo, mtumiaji lazima asukuma kitufe cha kituo. Wakati wa kukimbia utarekodiwa kwenye onyesho la sehemu 7. Kuna viwango vitano, na kila sekunde kumi kiwango kinaongezeka, hadi ufike kiwango cha 5 ambapo inakaa hadi mtumiaji apoteze. Ngazi zimedhamiriwa na kasi ya mpira; hii inamaanisha kuwa kila sekunde kumi, kasi ya mpira huongezeka, na hivyo kuongeza ugumu wa mchezo.

Usanifu wa Mfumo:

Mchoro hapa chini ni mchoro wa msingi wa kiwango cha juu cha mfumo. Mfumo una pembejeo nne: Kitufe R, Kitufe L, Anza, na Upya, na Saa. Ina matokeo ya usawa na wima ya usawazishaji, RBG (ambayo inahusu rangi ya pikseli katika eneo fulani), na Alama (ambayo hufanya kama basi kwa onyesho la Sehemu 7). Kitufe cha juu kitatumika kama mwanzo kitufe, na vifungo vya kushinikiza vya kushoto na kulia vitatumika kusonga paddle kwa mwelekeo wao. Onyesho la Sehemu 7 litatumika kurekodi alama, ambayo ni idadi ya sekunde ambazo mtumiaji amekuwa akicheza bila kupoteza mchezo. Nambari itaonyeshwa kama nambari ya desimali.

Usanifu wa Mzunguko: Tutaunda gizmo yetu kwa kutumia FSM moja ambayo ina FSM ndogo, FSM ndogo itadhibiti ugumu wa mchezo wakati FSM kuu itadhibiti mtiririko wa mchezo. Gizmo yetu pia itatumia angalau vitenganishi vya saa tatu, moja kwa alama (saa), moja kwa kiwango cha kuburudisha kwa onyesho na moja ambayo imeunganishwa hadi pato la DeMux ili tuweze kudhibiti jinsi mchezo ulivyo haraka itaendelea na kuongezeka kwa ugumu. Mchezo utahamia kwa kasi zaidi ukicheza. Tutakuwa na pembejeo ya udhibiti wa DeMux kuwa hali ya ndogo ya FSM ili tuweze kudhibiti jinsi mchezo utakavyokwenda haraka na muda gani unaocheza. Tutatumia kaunta chache, moja kuburudisha onyesho na moja kuhesabu alama unapoendelea kucheza. Mradi huu una moduli kuu mbili na safu ya viwambo ambavyo vitatumia data ya kuingiza. Manukuu mawili kuu ni Dereva wa VGA, pamoja na moduli ya mantiki ya kitufe. Dereva wa VGA itakuwa na kumbukumbu inayoweza kupangiliwa, mgawanyiko wa saa, na mantiki ambayo itatumia pato kwa rangi. Moduli ya mantiki ya kitufe pia itakuwa na msuluhishi wa saa, na kumbukumbu inayoweza kupangiliwa, na vile vile kibadilishaji kwa kibadilishaji cha ubadilishaji wa desimali kwa Uonyesho wa Sehemu 7 na mgawanyiko wake wa saa husika.

Hatua ya 2: Mchakato wa Picha

Kwa sehemu ya Mchakato wa Picha ya mradi, tutakuwa tukiamua harakati za mpira na paddle. Mpango huo una bandari ambazo zinajumuisha vifungo vya kushoto, kulia, juu na katikati, hali ya sasa, saa, nafasi za X na Y za mpira, makali ya kushoto na kulia ya paddle na kutofaulu. Hali ya sasa inatumiwa kuamua ishara ya kuwezesha. Nambari inapita juu ya kesi nyingi ambazo mpira unaweza kusonga, na imeweka masharti ya kuamua njia ya mpira. Mchoro wa mchakato unaofuata huamua mwelekeo ambao pala inahamia kulingana na kitufe kinachobanwa na mtumiaji. Nambari ya sehemu hii ya mradi imeambatanishwa na maoni ya kina kuelezea kile kila sehemu inafanya.

Hatua ya 3: Mshughulikiaji wa Alama

Alama Handler
Alama Handler

Sehemu hii ina faili zinazohusiana na kuonyesha alama kwa sekunde kwenye Uonyesho wa Sehemu 7 kwenye Bodi ya Basys3. Inajumuisha mgawanyiko wa saa ambayo hutumiwa kuhesabu sekunde, kaunta ya alama huhesabu sekunde ambazo mtumiaji anacheza, dereva wa sehemu huchukua alama hiyo na kuibadilisha kuwa anode na cathode kuonyeshwa kwenye skrini na pia huamua msimamo ambao nambari itaonyeshwa na mwishowe, mshughulikiaji wa sehemu hubadilisha nambari za binary kuwa nambari za desimali kuonyeshwa kwenye skrini. Kidhibiti alama huweka pamoja vipande vyote na ramani ishara. Nambari ya faili zote tano imeambatanishwa hapa chini.

Mgawanyiko wa Saa:

Mgawanyiko wa saa ana pembejeo Clk (saa), CEN (wezesha ndani), na Div (mgawanyiko) na pato Clk_out. Ikiwa ishara ya kuwezesha imewashwa, basi saa itategemea ukingo unaoongezeka.

Kaunta ya Alama

Kaunta ya duka ina pembejeo Clk (Saa) na RST (Rudisha upya) na matokeo ya Clk_Out na Q ambayo kimsingi hufanya kama matokeo ya alama.

Sehemu ya Dereva

Dereva wa sehemu ana pembejeo D1, D10, D100, D1000, na Saa. Nambari baada ya "D" hurejelea mahali pa desimali kwenye onyesho la sehemu 7. Matokeo ni anode na nambari. Saa huhesabu na kupeana nambari na ni nafasi yake. Kwa mfano, "9" itaonyeshwa katika sehemu zile zilizo na "0" katika maelfu, mamia na mahali pa makumi. Inapobadilika kuwa "10", nambari hiyo sasa itakuwa na "1" katika sehemu ya makumi na "0" katika maelfu, mamia na sehemu moja.

Mshughulikiaji wa Sehemu

Mshughulikiaji wa sehemu ana nambari kama pembejeo yake na cathode kama pato lake. Kwa kweli ni nambari za kibinadamu kwenye onyesho la cathode ili kutoa nambari za decimal kwenye skrini.

Alama Handler

Handler Handler inajumuisha vitu vinne vya awali na inaweka pamoja na ramani za ishara. Pia inawezesha na kuzima kaunta kulingana na hali ya sasa.

Hatua ya 4: Kizazi cha Picha

Kizazi cha picha kinajumuisha vitu vinne: Uhuishaji, Hesabu ya Kukosa, Taswira Picha na Anza Kuhesabu. Faili hizi zinarejelea jinsi ya kutengeneza picha kwenye kifuatiliaji cha onyesho.

Uhuishaji

Faili ya Uhuishaji ina pembejeo Clk (Saa ya Saa), CEN (hesabu inawezesha), RST (Rudisha Ishara), B_X (X nafasi ya mpira), B_Y (Y msimamo wa Mpira), P_L (nafasi ya kushoto ya paddle), na P_R (nafasi ya paddle kulia). Matokeo ni WA (anwani tunayoiandikia rangi), na WD (rangi inayoandikwa kwa anwani iliyoamuliwa). Faili hiyo ina Play_Counter ambayo ni kaunta ambayo itatumika kama pembejeo ya udhibiti wa MUX, kisimbuzi ambacho kinaweza kutoa rangi sahihi katika maeneo sahihi, na mwishowe kipatanishi ambacho kinaonyesha rangi sahihi kulingana na nafasi ya paddle na mpira.

Onyesha upya Picha

Faili ya Picha ya Upyaji hutumiwa kuburudisha picha kama nafasi ya mpira na ubadilishaji wa paddle. Faili inajumuisha vifaa kutoka kwa faili za Uhuishaji, Anza ya Kukanusha na Kukosa Kukabiliana. Huweka ramani ya ishara kutoka kwa kila sehemu na hutumia mantiki ya serikali kuamua ishara na anwani za pato.

Anza Kukabiliana

Counter Start hutumia pembejeo Clk, RS, na CEN na matokeo ya WA na WD. Inatumia kaunta na ubadilishaji kuamua pembejeo ya udhibiti wa MUX. Multiplexer kisha hutumia pembejeo kuamua anwani sahihi za rangi na kutuma data hii kwa dereva wa VGA. Hii hutumiwa kuonyesha "Pong" wakati mtumiaji anaanza mchezo.

Kushindwa Kukabiliana

Kaunta iliyoshindwa hutumiwa kuonyesha "Mchezo Juu" wakati mtumiaji anapoteza mchezo. Inayo ishara ya Clk, RST, na CEN. Inatumia kaunta na fomula ya ubadilishaji kuamua pembejeo ya udhibiti wa MUX. Multiplexer kisha hutumia pembejeo kuamua anwani sahihi za rangi na kutuma data hii kwa dereva wa VGA.

Hatua ya 5: Mchezo wa Pong

Mchezo wa Pong
Mchezo wa Pong

Sehemu hii ya mradi ni pamoja na Pong Master, Finite State Machine (FSM), Timer, na Start Debounce file.

Kipima muda

Kipima muda kina pembejeo Clk (Saa) na PS (Hali ya Sasa) na Timer na Clk_out kama matokeo. Kipima muda hutumiwa kubadilisha kasi ya mchezo karibu kila sekunde tano.

Mtiririko FSM

Mtiririko wa FSM una pembejeo za Clk, Fail, Timer, Bttn_S (Button Start) na Buttn_RST (Setet Button) na pato Pres_S (Present State Output). FSM hutumia kipima muda kusasisha Jimbo la Sasa kwenda Jimbo Lifuatalo na inaendelea kusasisha Jimbo Lifuatalo hadi mchezo ufike kiwango cha 5 ambapo inakaa hadi mchezo umalize.

Anza Ujibuaji

Malalamiko ya Anza ni kuanza kwa mpira. Inayo pembejeo S_in na Clk, na pato S_out.

Pong MasterFaili hii hutumia vifaa vyote vya awali na inafanya hivyo kwamba vifaa vyote viko papo hapo. Ni faili kuu ambayo inaweka pamoja vifaa vyote vya awali ambavyo tumejenga pamoja.

Hatua ya 6: Dereva wa VGA

VGA (Visual Graphics Array) Dereva ni kipande cha programu inayotumiwa kupokea amri au data inayotumwa kwa skrini ya kuonyesha. Dereva tulipewa na profesa wetu. Tumia dereva na kamba ya VGA kuunganisha bodi ya Basys3 kwa mfuatiliaji.

Unapaswa sasa kuwa tayari kutengeneza Mchezo wako wa Pong ukitumia VHDL!

Ilipendekeza: