Բովանդակություն:
- Քայլ 1: Ներածություն
- Քայլ 2: Նյութեր
- Քայլ 3. Բարձր մակարդակի դիագրամ Սև արկղի ձևավորում
- Քայլ 4: CLKDivide
- Քայլ 5: Տեղափոխել գործընթացի արգելափակումը
- Քայլ 6: Վերջնական վիճակի մեքենա
- Քայլ 7. Displayուցադրման գործընթացի արգելափակումը մակարդակով
- Քայլ 8: LED արագությունը մակարդակով վերահսկելը
- Քայլ 9: Սարքավորումների հավաքում
- Քայլ 10: Funվարճացեք:
Video: FPGA արձագանքման խաղ. 10 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Ամառային Ռադերֆորդի և Ռեգիտա Սոետանդարի կողմից
Քայլ 1: Ներածություն
CPE 133- ի մեր վերջին նախագծի համար մենք նախագծեցինք ռեակցիայի խաղ VHDL- ում ՝ Basys3 տախտակի համար: Այս խաղը կարող է առավել սերտ համեմատվել «Stacker» արկադային խաղի հետ, որտեղ խաղացողը պետք է ճիշտ ժամանակին գցի բլոկները: Basys3 տախտակը միացված է տախտակին, որն ունի փոփոխվող լուսադիոդներ: Այս LED լույսերը կփոխարինվեն որոշակի հաճախականությամբ `կախված մակարդակից: Այս խաղը օգտագործում է ժամացույցի բաժանարարը և 4 թվանշանի 7 հատվածի ցուցադրումը, ինչպես նաև սահմանափակ վիճակի մեքենա: Երբ նվագարկիչը միացնում է ճիշտ անջատիչը, երբ միջին LED- ը լուսավորվում է, խաղացողը կանցնի խաղի հաջորդ մակարդակին ՝ մեծացնելով փոփոխվող LED- ների հաճախականությունը: Սա յուրաքանչյուր հաջորդ մակարդակ դարձնում է ավելի բարդ, քան նախորդ մակարդակը: Երբ նվագարկիչը հաջողությամբ հաղթում է 7 -րդ մակարդակին, ամենաբարձր մակարդակին, հատվածի էկրանին կհայտնվի հաղորդագրություն, և բոլոր LED- ները միաժամանակ կմիացվեն և կանջատվեն:
Քայլ 2: Նյութեր
Ձեզ անհրաժեշտ նյութերն են.
- Digilent Basys3 տախտակ ՝ միկրո USB մալուխով
- Breadboard
- 5 LED
- 5 դիմադրություն (մենք օգտագործում էինք 220 օմ)
- 11 jumper լարերը
- Համակարգիչ Vivado- ի հետ
Քայլ 3. Բարձր մակարդակի դիագրամ Սև արկղի ձևավորում
Ինչպես տեսնում եք, մեր բարձր մակարդակի բլոկ -դիագրամը սկսվում է մեր ենթամոդուլից ՝ ClkDivide- ից, անհրաժեշտ ժամացույցներ ձեռք բերելով: Այս ժամացույցները մուտքագրվում են տարբեր գործընթացային բլոկների մեջ: Ըստ էության, խաղը պետք է ընդունի, որ երբ օգտվողը ճիշտ է միացնում անջատիչը, LED- ները պետք է սկսեն ավելի արագ փոխվել, և ցուցադրումը պետք է բարձրանա մեկ մակարդակով: Բլոկ -դիագրամը կարող է մի փոքր խենթ թվալ, բայց դա այն պատճառով, որ կան շատ ազդակներ, որոնք հաստատվում են որոշակի գործընթացում, իսկ հետո այդ ազդանշանը սահմանում է մեկ այլ ազդանշան մեկ այլ գործընթացի բլոկում:
Ի վերջո, խաղի միակ մուտքը Basys3 տախտակի մուտքային ժամացույցն է, որն աշխատում է 100 ՄՀց հաճախականությամբ, յոթ անջատիչ Basys3 տախտակին և վերակայման կոճակը: Արտադրվողը յոթ հատվածի ցուցադրման անոդն է, ցուցադրման համար յոթ հատվածը և LED- ները:
Քայլ 4: CLKDivide
Clockամացույցի բաժանարար այս ենթամոդուլը ստեղծեց ավելի դանդաղ ժամացույց `կախված այն արժեքից, որը մենք քարտեզագրել ենք դրան մեր հիմնական ֆայլում: Այս ենթամոդուլն օգտագործեցինք Clk400, PushClk և newlck որոշելու համար: Այս ենթամոդուլը որպես մուտքագրում վերցնում է ժամացույց և 32 բիթ բաժանարար: Դանդաղեցված ժամացույցը թողարկվում է: Կա բաժանարար և դանդաղ ժամացույցի գործընթացի արգելափակում: Ընթացքում մի ժամանակավոր փոփոխական է, որը մենք անվանում էինք հաշվարկ, որը հաշվարկվում է ամեն անգամ, երբ մուտքագրված ժամացույցի բարձրացող ծայրը հարվածում է: Երբ այն հասնում է բաժանարարի թվին, դանդաղեցված ժամացույցը միանում է և հաշվում զրոյականացում:
Քայլ 5: Տեղափոխել գործընթացի արգելափակումը
Shift գործընթացի բլոկը վերահսկում է LED- ների փոփոխական շարժումը և արագությունը: Theգայունության ցուցակում են newclk և Stop ազդանշանները: Stop- ը կարճ հետաձգում է առաջացնում, երբ օգտագործողը անցնում է մակարդակը: Եթե Stop- ը բարձր չէ, ապա LED- ները սովորականին փոխարինվում են ՝ հիմնվելով newclk- ի արագության վրա: Այս փոփոխական օրինաչափությունը վերահսկվում է երկու փոփոխականով ՝ Հետևել և հաշվարկել: Count- ը որոշում է, թե որ LED- ը պետք է միացված լինի, մինչդեռ Track- ը որոշում է, թե արդյոք հաշվարկը պետք է հաշվի վեր կամ վար: Կա ևս մեկ ազդանշան ՝ Վերջնական, որը կիրառվում է միայն այն դեպքում, երբ Մակարդակը «111» է ՝ նշելով, որ խաղացողը հաղթել է խաղը: Վերջնականը հերթափոխվում է 0 -ից 1 ժամացույցի յուրաքանչյուր եզրին `LED- ները անընդհատ միացնելու և անջատելու համար: Սա պարզապես տեսողական տարր է վերջնական ցուցադրման համար:
Այս հերթափոխի գործընթացը կատարյալ վայր է այս նախագծի մեկնարկի համար: Եթե դուք կարող եք ձեր LED- ները ճիշտ և հետևողականորեն փոխարինել, ապա այստեղից դուք պարզապես պետք է ավելացնեք վարքագիծը ՝ հավասարվելիս:
Քայլ 6: Վերջնական վիճակի մեքենա
Մենք ստեղծեցինք վերջնական վիճակի մեքենա, որը թելադրում է վարքագիծը, երբ սեղմվում է մուտքի անջատիչը կամ վերականգնման կոճակը: Յուրաքանչյուր վիճակ «մակարդակ» է, և եթե անջատիչը միացված է սխալ պահին կամ սեղմվում է «զրոյական», մակարդակը վերադառնում է «000»: Հակառակ դեպքում, եթե անջատիչը ճիշտ միացված է, ապա մակարդակը բարձրանում է մինչև վերջնական վիճակի հասնելը ՝ «111», և հայտնվում է վերջնական ցուցադրումը: FSM- ը հիմնված է երկու գործընթացային բլոկների վրա sync_proc և comb_proc: Sync_proc- ն օգտագործում է այն ժամացույցը, որը մենք անվանում էինք PushClk: Այս ժամացույցը վերահսկում է, թե որքան արագ է հաջորդ վիճակը դառնում ներկա վիճակը: Այս ժամացույցը պետք է լինի բավականին արագ; մենք ընտրեցինք արագություն, որը մոտ երկու անգամ ավելի մեծ էր, քան մեր ամենաարագ LED արագությունը:
Մենք կիրառեցինք այս ծածկագիրը `օգտագործելով FSM մակարդակների համար. այնուհանդերձ, այս նախագծից հետո մենք հասկացանք, որ ԱԴM-ի առավել արդյունավետ օգտագործումը կարող էր լինել հաշվելու, վերականգնման կամ մնալու վիճակ ունենալը: Եթե ոչինչ չի սեղմվում, ապա այն գտնվում է մնալու վիճակում: Եթե վերականգնումը սեղմվում է կամ նվագարկիչը խափանվել է, այն գտնվում է վերականգնման վիճակում: Correctlyիշտ սեղմելու դեպքում այն գտնվում է հաշվելու վիճակում: Այս խաղում նույնպես FSM- ն օգտագործելու շատ այլ եղանակներ կան:
Քայլ 7. Displayուցադրման գործընթացի արգելափակումը մակարդակով
Level- ը վերահսկում է processուցադրման գործընթացի բլոկը: Theգայունության ցուցակի փոփոխականներն են Level, Reset և Clk400: 7 հատվածի ցուցադրումը սկսվում է առաջին մակարդակի համար ցուցադրելով «1»: Այն հաշվում է մինչև 7 -ը ամեն անգամ, երբ օգտվողը անցնում է մակարդակ ՝ օգտագործողին ցույց տալու, թե ինչ մակարդակի վրա է: Երբ օգտագործողը կանցնի 7 -րդ մակարդակը, այն ցուցադրում է «COOL» ՝ նշելով, որ խաղացողը հաղթել է խաղը: Այս «COOL» էկրանն աշխատում է 400 Հց ժամացույցից, որը մենք անվանում էինք Clk400: Եթե Reset- ը սեղմված է, էկրանը վերադառնում է «1»:
Քայլ 8: LED արագությունը մակարդակով վերահսկելը
Վերջապես, Level- ը վերահսկում է LED- ների արագությունը: Մակարդակը զգայունության ցուցակի միակ ազդանշանն է: D1- ը ազդանշան է, որը մտնում է ockամացույցի բաժանարար գործընթացի մեջ ՝ նորկլք ստանալու համար: Ամեն անգամ, երբ մակարդակը փոխվում է, կամ վիճակը փոխվում է, գործընթացի արգելափակումը «Արագություն»: Այս գործընթացը որոշում է D1- ի արժեքը: Կան D1- ի 8 սահմանված արժեքներ, որոնք մենք ընտրել ենք ՝ ելնելով այն բանից, թե որքան արագ էինք ցանկանում, որ յուրաքանչյուր մակարդակ գործարկվի: D1- ը փոքրանում է ամեն անգամ, երբ մակարդակը բարձրանում է, որպեսզի newclk- ն ավելի արագ աշխատի:
Քայլ 9: Սարքավորումների հավաքում
Մենք հացահատիկը միացրեցինք Basys3- ին `pmod միակցիչներից մեկով: Pmod նավահանգիստներից վեցն օգտագործվել են արականից արական միակցիչին միացնելու համար, մեկը գետնի համար, իսկ մյուս հինգը ՝ 5 LED- ների համար: Մենք նաև տեղադրեցինք ռեզիստոր յուրաքանչյուր LED- ի համար: Այս դիմադրիչները 220Ω են և կանխում են LED- ների կարճ միացումը և այրումը: Չնայած յուրաքանչյուր LED ունի որոշակի դիմադրություն, դիմադրությունը բավարար չէ աղբյուրից լարումը խոչընդոտելու համար:
Քայլ 10: Funվարճացեք:
Այս խաղը շատ հեշտ է խաղալ: Խաղացողը սկսում է տախտակի 1 ծայրամասային աջ անջատիչից ՝ V17: Նրանք պետք է անջատիչը բարձր շրջեն, երբ միջին LED- ը միացված է: Հետո նրանք մեկ անջատիչ տեղափոխում են ձախ և անում նույնը: Եթե խաղացողը հասնի մինչև վերջ, նրանք կհայտնվեն յոթերորդ անջատիչում ՝ W14: Եթե նրանք հաղթեն խաղին, նրանք կտեսնեն իսկապես զվարճալի ավարտվող ցուցադրում:
Պետք է նշել, որ այս խաղը ստեղծելիս արագությունը լիովին կախված է ձեզանից: Եթե մեր ընտրած արագությունները չափազանց դանդաղ են, ազատ զգացեք արագացնել այն և դարձնել այն ավելի դժվար: Չկա նաև մակարդակների սահմանված քանակ: Եթե ցանկանում եք այն դարձնել ավելի շատ մակարդակներ, կան փոփոխություններ, որոնք պետք է կատարվեն FSM- ում և Level- ով որոշվող գործընթացի բլոկներում, բայց դրանք շատ պարզ փոփոխություններ են:
Մենք նաև ընտրեցինք օգտագործել անջատիչները տախտակի վրա որպես օգտագործողի մուտքագրում, բայց դա հնարավոր է նաև Basys3 տախտակի կոճակով; կոճակը կվերացնի անջատիչների վերակայման անհրաժեշտությունը ամեն անգամ, երբ օգտվողը սկսում է նորից: Սկզբում մենք օգտագործում էինք կոճակ, սակայն դա սխալներ առաջացրեց մակարդակի սահմանման մեջ, քանի որ այն կբարձրանա մի քանի մակարդակով, եթե կոճակը պահելու ժամանակ հարվածի PushClk- ի երկու բարձրացող եզրեր:
Ստորև բերված է մի տեսանյութ, որը ցույց է տալիս, թե ինչպես խաղալ, անցնելով առաջին 4 մակարդակները և վերջնական ավարտի ցուցադրումը:
Այս նախագծի հիմնական ֆայլը ներառված է ստորև:
Աղբյուրներ
Basys3 տեղեկատու ձեռնարկ
Ոգեշնչում նախագծի համար - Arduino Stop It խաղ
Խորհուրդ ենք տալիս:
Թակել apիածան - 2 խաղացողի արագ արձագանքման խաղ. 4 քայլ (նկարներով)
Հպեք Հպեք ainիածանը. 2 խաղացող Արագ արձագանքման խաղ. 2 շաբաթ առաջ աղջիկս հանճարեղ գաղափար ունեցավ ծիածանի գույներով արագ արձագանքման խաղ պատրաստել (նա ծիածանի փորձագետ է. D): Ինձ անմիջապես դուր եկավ գաղափարը, և մենք սկսեցինք մտածել, թե ինչպես կարող ենք այն վերածել իսկական խաղի: Գաղափարն այն էր. Դուք ծիածան ունեք
555 Timամաչափի արձագանքման խաղ. 5 քայլ
555 erամաչափի արձագանքման խաղ. Թիրախային լսարան Այս խրատը նպատակաուղղված է այն մարդկանց, ովքեր հետաքրքրված են սխեմաներով (փոքր նախապատմությամբ), ովքեր փնտրում են մի պարզ խաղ, որը կարող եք կառուցել ընդամենը մի քանի էժան բաղադրիչներով: Դժվարության մակարդակ Սա դժվար կլիներ, եթե
Nyվարճալի Arduino արձագանքման խաղ. 3 քայլ
Nyվարճալի Arduino արձագանքման խաղ. Nyվարճալի Arduino արձագանքման խաղ ամբողջ ընտանիքի համար;) Հիմնվելով խաչաձեւ հարթակի Bluetooth հաղորդակցության վրա: Ձեզ անհրաժեշտ են միայն Arduino- ի իրեր, Android սմարթֆոն և կոշիկի տուփ: Եթե դուք չունեք դրանցից որևէ մեկը, ամուր հավատացեք դրան. Ոչինչ չկա, որ
Արագ արձագանքման խաղ ՝ հեռավորության տարբերակ ՝ 5 քայլ (նկարներով)
Արագ արձագանքման խաղ. Հեռավորության տարբերակ. Սա հրահանգ է, թե ինչպես կարելի է ստեղծել խաղ, որը ստուգում է ինչպես ձեր արձագանքի ժամանակը, այնպես էլ հեռավորության զգացումը: Այս նախագիծը հիմնված է մի հին նախագծի վրա, որը ես արել եմ, որին մասնակցում էին երկու խաղացողներ, որոնք մրցում էին ՝ պարզելու, թե ովքեր են ավելի արագ արձագանքման ժամանակ ՝ կտտացնելով կոճակը
Fischertechnik LED արձագանքման ժամանակը Խաղ. 7 քայլ
Fischertechnik LED Արձագանքման ժամանակ Խաղ. (Այցելեք www.weirdrichard.com): Հեշտ կառուցվող ծրագիր է LED REACTION TIME GAME- ը: Ռոբոտային վերահսկիչ (այս դեպքում