Բովանդակություն:

Մրցակցային ազդանշանային համակարգ `5 քայլ
Մրցակցային ազդանշանային համակարգ `5 քայլ

Video: Մրցակցային ազդանշանային համակարգ `5 քայլ

Video: Մրցակցային ազդանշանային համակարգ `5 քայլ
Video: Վարորդակ քննության հոգեբանական թեստ/daltonizmi test /varordakan qnnutyun/hogebanakan test 2024, Նոյեմբեր
Anonim
Image
Image
Նյութեր
Նյութեր

Այս նախագծում նախագծված մրցունակ ազդանշանային համակարգը գործում է նմանապես բզզող համակարգերի համար, որոնք օգտագործվում են Գիտական գավաթի տարածաշրջանային և ազգային մրցույթներում: Այս նախագիծը ոգեշնչված էր երեք տարի իմ ավագ դպրոցի գիտական բաժակի թիմի մասնակցությամբ: Մենք միշտ ցանկություն ենք ունեցել վերստեղծել արգելափակման ազդանշանային համակարգը 5 վայրկյան և 20 վայրկյան ժամանակաչափով:

Buխի համակարգի մասին որոշակի պատկերացում կազմելու համար գիտական ամանի բզզոցները ծրագրված են մուտքագրելու առավելագույնը 8 նվագարկիչ (8 առանձին բզզոցներով): Մեկ ազդանշանը սեղմելուց հետո առաջին անձի ազդանշանը կվառվի `նշելու, թե որ խաղացողն է ստանում հարցը: Մնացած խաղացողները «կողպված կլինեն», ինչը նշանակում է, որ նրանց ազդանշանները չեն պատասխանի, մինչև մոդերատորը չվերագործարկի ազդանշանային համակարգը:

Այն բանից հետո, երբ մոդերատորը կկարդա հարցերը, նա կտտացնի կոճակը ՝ հետհաշվարկի ժամաչափը գործարկելու համար, որը կցուցադրվի յոթ հատվածից բաղկացած էկրանին: «Շպրտել» հարցից հետո մոդերատորը կարող է սեղմել աջ կոճակը ՝ հետհաշվարկը սկսելու համար 5 վայրկյանից: Մինչդեռ «բոնուսային» հարցից հետո մոդերատորը կարող է սեղմել ձախ կոճակը ՝ հետհաշվարկը 20 վայրկյանից սկսելու համար: Theամաչափի զրոյին հասնելուց հետո ձայնային ազդանշանը ցույց կտա, որ նվագարկիչի ժամանակը սպառվել է:

Համակարգը և հետհաշվարկի ժամաչափը վերականգնելու համար մոդերատորը կարող է սեղմել կենտրոնական կոճակը: Արգելափակման մեխանիզմը և նվագարկիչի LED- ները վերականգնելու համար 1 և 2 նվագարկիչի անջատիչները պետք է ցածր լինեն:

Քայլ 1: Նյութեր

Ձեզ անհրաժեշտ կլինի հետևյալը.

  • Basys3 տախտակ (կամ համարժեք FPGA տախտակ)
  • Micro-B USB մալուխ
  • Բարձրախոս (ես օգտագործել եմ պասիվ բարձրախոս)
  • 2 լար
  • PGրագրային ապահովում ՝ FPGA- ի վրա կիրառելու համար (ես օգտագործել եմ Vivado)
  • Մրցունակ Buzzer System ֆայլ

Քայլ 2: Սև արկղի դիագրամ

Սև արկղի դիագրամ
Սև արկղի դիագրամ

Սև արկղի դիագրամը ցույց է տալիս մուտքերն ու ելքերը, որոնք կօգտագործվեն այս ազդանշանային համակարգում:

ՄԻPՈՆԵՐ:

player1, player2 Այս մուտքերը միացված են Basys3 տախտակի երկու անջատիչին: Հարմարության համար կօգտագործվեն ձախ և աջ անջատիչները:

վերակայում Կենտրոնական կոճակը կօգտագործվի ՝ որպես վերակայման կոճակը ներկայացնելու համար:

count_down_20_sec Ձախ կոճակը կօգտագործվի 20 վայրկյանանոց ժամաչափի կոճակը ներկայացնելու համար:

count_down_5_sec Աջ կոճակը կօգտագործվի 20 վայրկյանանոց ժամաչափի կոճակը ներկայացնելու համար: Ապահովելու համար, որ և՛ 20 վայրկյան, և՛ 5 վայրկյան ժմչփը սկսվում է, պահեք կոճակը մինչև յոթ հատվածի էկրանը ցույց տա ժամաչափը:

CLK FPGA տախտակը կստեղծի ժամացույց, որն աշխատում է 10 նս հաճախականությամբ:

ԵԼՔԵՐ:

բարձրախոս Բարձրախոսի ելքը միացված է արտաքին ազդանշանին կամ բարձրախոսին: Դուք ստիպված կլինեք բարձրախոսը միացնել Basys3 տախտակի JA pmod նավահանգիստներին: Այս քայլը կներկայացվի ստորև:

speaker_LED Այս ելքը միացված է տախտակի կենտրոնում գտնվող LED- ին և պարզապես ցույց կտա, թե երբ է FPGA- ի բարձրախոսների ելքը բարձր: Դուք կարող եք օգտագործել սա ձեր արտաքին բարձրախոսը փորձարկելու համար: Նկատի ունեցեք, որ pmod- ի որոշ նավահանգիստներ կարող են լավ չաշխատել, այնպես որ կարող եք փորձել տարբերները և օգտագործել LED- ը `ստուգելու համար, թե արդյոք բարձրախոսը պետք է միացված լինի:

SEGMENTS Այս ելքը կապված է յոթ հատվածից ցուցադրվող ութ առանձին հատվածների հետ, ներառյալ տասնորդական կետը:

DISP_EN Այս ելքը միացված է յոթ հատվածի ցուցադրման չորս անոդներին:

player_LED Այս ելքը 2 փաթեթային ազդանշան է, որը միացված է player1 և player2 անջատիչների վերևում գտնվող LED- ներին: Առաջին նվագարկիչը, որը կշրջի համապատասխան անջատիչը, նշված կլինի LED- ով: Նկատի ունեցեք, որ երկու LED- ները չեն կարող միաժամանակ միացված լինել:

Քայլ 3: Արտաքին խոսնակի միացում

Արտաքին խոսնակի միացում
Արտաքին խոսնակի միացում

Արտաքին խոսնակը Basys3 տախտակին միացնելու համար վերցրեք ձեր երկու լարերը և ամրացրեք դրանք, ինչպես նշված է վերևում նկարում: Սպիտակ գիծը բարձրախոսի բացասական տերմինալը միացնում է գրատախտակին տեղադրված գետնին: Կարմիր գիծը միացնում է բարձրախոսի դրական տերմինալը տախտակի վրա տեղադրված JA10 pmod նավահանգստին:

Սահմանափակումների ֆայլը նախագծված է այնպես, որ JA1- ից JA10 ցանկացած նավահանգիստ պետք է աշխատի: Այնուամենայնիվ, տախտակի որոշ կապումներն անարձագանք են, այնպես որ, եթե JA10- ը չի գործում, կարող եք փորձել մյուս նավահանգիստները:

Քայլ 4: Կառուցվածքային դիագրամ

Կառուցվածքային դիագրամ
Կառուցվածքային դիագրամ

Վերոնշյալ պատկերը ցույց է տալիս մրցունակ ազդանշանային համակարգի կառուցվածքային դիագրամը `ներառելով հիմնական մոդուլը կազմող բոլոր բաղադրիչները: Նրանց նկարագրությունները հետևյալն են.

player_lockout_LED1 Նվագարկիչի արգելափակման LED բաղադրիչը վերջավոր վիճակի մեքենա է, որն օգտագործում է մեկանգամյա տաք կոդավորում: Այն ունի չորս մուտք ՝ player1, player2, reset և CLK: Այն պարունակում է 2-բիթանոց ելքային նվագարկիչ_LED: Player_lockout_LED1 բաղադրիչի մուտքերն ու ելքերը բոլորը ուղղակիորեն կապված են հիմնական մոդուլի նույնանման մուտքերի և ելքերի հետ:

buzzer_tone1 Ազդանշանի բաղադրիչը հիմնված է ֆորումում տեղադրված այս ծածկագրի վրա

stackoverflow.com/questions/22767256/vhdl-… Այնուամենայնիվ, այն փոփոխվել է ՝ 440 Հց հաճախականությամբ անընդհատ ձայն թողնելու համար (նշում): Միացման մուտքը միացված է buzzer_enable ազդանշանին, որը down_counter_FSM1 բաղադրիչի ելքն է:

clk_div1 clockամացույցի բաժանարար բաղադրիչը պրոֆեսոր Բրայան Միլիի ժամացույցի բաժանարարի փոփոխված տարբերակն է, որը տրամադրված է PolyLearn- ում: Այն դանդաղեցնում է ժամացույցը, ուստի ելքի ժամանակահատվածը 1 վայրկյան է:

down_counter_FSM1 Ստորին հաշվիչը FSM է, որը նախատեսված է զրոյական հաշվարկի համար: Սկսման երկու հնարավոր ժամանակը 20 կամ 5 է, որն ընտրվում է օգտվողի կողմից: Այն թողնում է «1», երբ ժամաչափը հասել է զրոյի ՝ նշելով, որ ժամանակը սպառվել է: Այս ելքը գործում է որպես ազդանշանային ազդանշանային բաղադրիչի միացման հնարավորություն: Հաշվիչը նաև թողարկում է 8-բիթանոց կապի ազդանշան, որն ուղարկում է 8-բիթանոց BCD, որն ուղարկվում է հատվածի ապակոդավորիչին: Մեկ այլ ելք է counter_on- ը, որը նույնպես միացված է հատվածի ապակոդավորման վավեր մուտքին:

sseg_dec1 Յոթ հատվածի ապակոդավորման բաղադրիչը տրամադրված է PolyLearn- ում և գրվել է պրոֆեսոր Բրայան Միլի կողմից: Այն օգտագործում է BCD մուտքագրումը, որը տրամադրվում է down_counter_FSM1- ով և թողարկում է տասնորդական համարժեքը յոթ հատվածի ցուցադրման վրա: Երբ հաշվիչը միացված է, ապա վավեր մուտքագրումը բարձր է: Սա թույլ է տալիս ապակոդավորիչին ցուցադրել տասնորդական թիվը յոթ հատվածից բաղկացած էկրանին: Երբ հաշվիչը անջատված է, ապա վավեր մուտքագրումը ցածր է: Յոթ հատվածից բաղկացած ցուցադրումը այնուհետև ցույց կտա միայն չորս գծիկ:

Քայլ 5. Սահմանային մեքենայի (FSM) դիագրամ

Սահմանափակ վիճակի մեքենայի (FSM) դիագրամ
Սահմանափակ վիճակի մեքենայի (FSM) դիագրամ

Սահմանափակ վիճակի մեքենայի զգայունության ցանկը ներառում է player1, player2, reset և ժամացույցը: FSM- ի ելքը 2-բիթանոց փաթեթ է ՝ player_LED, որը միացված է երկու LED- ին Basys3 տախտակի վրա: Վերջնական վիճակի մեքենան ցույց է տալիս հետևյալ երեք վիճակը.

ST0- ը մեկնարկային վիճակն է: Այս վիճակում երկու LED- ները անջատված են: FSM- ն կմնա այս վիճակում, եթե և player1- ը, և player2- ը ցածր են: Ասինխրոն վերակայումը նույնպես կարգավորում է ST0- ի վիճակը: Երբ player1 անջատիչը սահմանվում է բարձր, հաջորդ վիճակը կլինի ST1- ը: Եթե player2 անջատիչը բարձր է, հաջորդ վիճակը կլինի ST2- ը:

ST1- ն այն վիճակն է, որի համար միացված է player1 LED- ը: FSM- ն այս վիճակում կմնա ցանկացած ներդրման համար: Սա նշանակում է, որ նույնիսկ այն դեպքում, երբ player2 անջատիչը բարձր է դրված player1 անջատիչի բարձր լինելուց անմիջապես հետո, այն կմնա ST1- ում: Միայն ասինխրոն վերականգնումը կարող է հաջորդ վիճակը կարգավորել ST0- ի վրա:

ST2- ը այն վիճակն է, որի համար միացված է player2 LED- ը: Նման ST! - ի, FSM- ն այս վիճակում կմնա ցանկացած մուտքի դեպքում, նույնիսկ երբ player1 անջատիչը բարձր է դրված player2 անջատիչի բարձր լինելուց անմիջապես հետո: Կրկին, միայն ասինխրոն վերակայումը կարող է հաջորդ վիճակը կարգավորել ST0- ի վրա:

Խորհուրդ ենք տալիս: