VHDL Մեկ րոպե վայրկյանաչափ ՝ 5 քայլ
VHDL Մեկ րոպե վայրկյանաչափ ՝ 5 քայլ
Anonim
Image
Image

Սա ձեռնարկ է, թե ինչպես կարելի է կառուցել մեկ րոպեանոց վայրկյանաչափ ՝ օգտագործելով VHDL և Basys 3 տախտակ: Նման սարքը իդեալական է այն խաղերի համար, որտեղ յուրաքանչյուր խաղացող ունի առավելագույնը մեկ րոպե իր քայլը կատարելու համար: Վայրկյանաչափը յոթ հատվածի էկրանին ճշգրիտ ցուցադրում է վայրկյաններ և միլիվայրկյաններ ՝ սկսած 0 վայրկյանից և 0 միլիվայրկյանից, մինչև 60 վայրկյան և 0 միլիվայրկյան: Օգտագործվում են նաև երկու կոճակներ ՝ կենտրոնական կոճակը, որն օգտագործվում է ժամաչափը սկսելու, կանգնեցնելու և շարունակելու համար, և աջ կոճակը, որն օգտագործվում է ժամաչափը վերագործարկելու համար: Երբ սարքը կողք-կողքի համեմատվում է խելացի հեռախոսի ներկառուցված վայրկյանաչափի հետ, ժամացույցի ճշգրտությունը նկատելի է:

Քայլ 1: Ստացեք սարքավորում/ծրագրակազմ

Բլոկ սխեմա
Բլոկ սխեմա

1. Basys 3 Artix-7 FPGA Trainer Board Digilent- ից Micro-USB- ից USB մալուխով

2. Vivado 2016.2 Design Suite Xilinx- ից

Քայլ 2: Արգելափակել դիագրամը

Այս սխեման կառուցված է վարքագծով և օգտագործում է ներկառուցված Xilinx բաղադրիչներ, բայց կարող է նաև կառուցվածքային նկարագրվել, ինչպես ցույց է տրված վերը նշված ընդհանուր կառուցվածքային դիագրամում: Դիագրամից երևում է, որ շղթան շարժվում է երկու հաճախականության բաժանարարներով: Հաճախականության բաժանարարներից մեկն աշխատում է 1 հարյուր վայրկյանում և քշում է կաթոդների հաշվիչը, որոնք օգտագործվում են որպես յոթ հատվածից ցուցադրվող թվեր: Երկրորդ հաճախականության բաժանարարն աշխատում է 240 Հց հաճախականությամբ և օգտագործվում է անոդների միջոցով պտտվող անոդի հաշվիչը քշելու համար, որպեսզի բոլոր թվերը ճիշտ ցուցադրվեն յոթ հատվածի էկրանին: Կոդավորիչը կաթոդի տրամաբանությունը վերցնում է կաթոդի հաշվիչից, իսկ անոդի տրամաբանությունը ՝ անոդի հաշվիչից և այն կոդավորում է ելքի կաթոդին և անոդին, որոնք գործարկում են յոթ հատվածի ցուցադրումը: Այս կոդավորիչի գործառույթն այն է, որ կաթոդի ելքը փոխվի ամեն անգամ, երբ անոդի ելքը փոխվում է: Կաթոդի ելքը չի կարող գործարկվել հաշվիչից անկախ, քանի որ անոդները պետք է պտտվեն 4 առանձին թվանշանների միջով:

Քայլ 3. Նախագծի մոդուլ

Նախ, CEN- ի գործընթացի արգելափակումն այնպես է արվում, որ երբ կոճակի սեղմում է հայտնաբերվում, ԱՆNAԱՆՈՄ կփոխարկվի: Սա ծառայում է որպես կաթոդի հաշվիչի կանգառ/մեկնարկ:

Հաջորդ գործընթացի բլոկում ցենտիս վայրկյան և 240 Հց ժամացույցի ազդանշանները դրված են այնպես, որ դրանց համապատասխան հաշվիչները 1 -ով ավելանում են ամեն անգամ, երբ ներքին 100 մՀց ժամացույցը հասնում է աճող եզրին: Երբ ցենտիս վայրկյանի հաշվիչը կհասնի 500000 -ի, այն կվերակայվի 0 -ի: Մինչդեռ 240 Հց հաշվիչը կվերականգնվի, երբ հաշվարկը հասնի 41667 -ի:

Կոդի կատոդային հատվածի համար, եթե ՄԻԱԵԼ «0» է, կաթոդների հաշվարկը կդադարի: Եթե այս ընթացքում սեղմված է վերականգնման կոճակը, ապա բոլոր հաշվարկները վերակայվում են «0000»: Մինչդեռ, եթե ԱՆՎBԱՐ է «1» -ը, կաթոդների հաշվարկը կշարունակվի մինչև կաթոդի հաշվարկը հասնի 60.00 -ի, որի դեպքում կանգառի ազդանշանը դնում է «1»: Կանգառի ազդանշանը վերադառնում է դեպի CEN գործընթացի բլոկ և առաջացնում է, որ ENABLE- ը լինի «0», մինչդեռ կանգառի ազդանշանը «1» է և չի փոխվի մինչև զրոյական կոճակը սեղմելը:

Ի վերջո, յոթ հատվածի ցուցադրումը ստեղծվում է ՝ 4 անոդները ճիշտ միացված լինելով իրենց 8 կաթոդներից յուրաքանչյուրի հետ ՝ իրենց համապատասխան 0-9 թվանշանները միաժամանակ ցուցադրելու համար:

Քայլ 4: Սահմանափակումներ

Սահմանափակումներ
Սահմանափակումներ

Այս սահմանափակումների ֆայլը VHDL- ից նշված մուտքերն ու ելքերը միացնում է Basys տախտակի անհրաժեշտ, ֆիզիկական մասերին: Այս նախագծի համար բաղադրիչները ներառում են չորս անոդները և դրանցից յուրաքանչյուրը ՝ յոթ հատվածի ցուցադրման, ներքին 100 մՀց ժամացույցի, կենտրոնի և աջ կոճակի համար:

Քայլ 5: Փորձարկում

Երբ ավարտեք ծածկագիրը, այժմ կարող եք ծրագրավորել FPGA- ն USB մալուխի միջոցով: Յոթ հատվածի ցուցադրումը պետք է ցույց տա 0.00: Փորձարկեք ՝ կոճակները աշխատո՞ւմ են ՝ սեղմելով կենտրոնական կոճակը ՝ ժամաչափը գործարկելու համար մինչև այն հասնի 60.00 -ի և կանգ առնի; ցանկացած պահի կարող եք նորից սեղմել կենտրոնական կոճակը `այն դադարեցնելու համար: Դադարեցվելուց հետո կարող եք սեղմել աջ կոճակը ՝ ժմչփը 0.00 -ի վերադարձնելու համար: Եթե ամեն ինչ ճիշտ է աշխատում, ապա շնորհավորում ենք, որ դուք ստեղծել եք մեկ րոպեանոց ժամաչափ:

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