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

Հիմնական վայրկյանաչափ ՝ օգտագործելով VHDL և Basys3 տախտակ ՝ 9 քայլ
Հիմնական վայրկյանաչափ ՝ օգտագործելով VHDL և Basys3 տախտակ ՝ 9 քայլ

Video: Հիմնական վայրկյանաչափ ՝ օգտագործելով VHDL և Basys3 տախտակ ՝ 9 քայլ

Video: Հիմնական վայրկյանաչափ ՝ օգտագործելով VHDL և Basys3 տախտակ ՝ 9 քայլ
Video: Պարզ ճշգրիտ վայրկյանաչափ Հայոց լեզվով մութ ռեժիմ ի աջակցությամբ 2024, Հուլիսի
Anonim
Image
Image

Բարի գալուստ ուսանելի, թե ինչպես կառուցել վայրկյանաչափ ՝ օգտագործելով հիմնական VHDL և Basys 3 տախտակները: Մենք ուրախ ենք կիսվել մեր նախագծով ձեզ հետ: Սա վերջնական նախագիծ էր CPE 133 (Թվային ձևավորում) Cal Poly- ում, SLO 2016 -ի աշնանը: Մեր կառուցած նախագիծը մի պարզ վայրկյանաչափ է, որը սկսվում, վերակայվում և դադարում է ժամանակը: Այն տանում է երեք կոճակ ՝ Basys3 տախտակի վրա, որպես մուտքագրումներ, և ժամանակը ցուցադրվում է տախտակի քառանիշ յոթ հատվածից բաղկացած էկրանին: Անցած ժամանակը ցուցադրվում է վայրկյանների ընթացքում ՝ հարյուր վայրկյան ձևաչափով: Այն օգտագործում է տախտակի համակարգչային ժամացույցը որպես մուտքագրում ՝ անցած ժամանակը հետևելու համար և ժամանակը դուրս է բերում յոթ հատվածից բաղկացած ցուցադրման չորս թվանշաններին:

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

Մուտք և ելք սահմանելը
Մուտք և ելք սահմանելը

Այս նախագծի համար ձեզ անհրաժեշտ նյութերը.

  • 1 համակարգիչ Vivado Design Suite WebPack- ով տեղադրված է Xilinx- ից (նախընտրում է 2016.2 տարբերակը)
  • 1 Digilent Basys3 Xilinx Artix-7 FPGA տախտակ
  • 1 USB պորտի մալուխ

Քայլ 2: Մուտքի և ելքի կարգավորում

Վերը նկարը ցույց է տալիս հիմնական վայրկյանաչափի մոդուլի վերին մակարդակի բլոկ -դիագրամը: Վայրկյանաչափը ընդունում է «CLK» (ժամացույց), «S1» (մեկնարկի կոճակ), «S2» (դադար դադարեցնելու) և «RST» (վերականգնում) մուտքերը և ունի 4-բիթանոց «անոդներ», 7-բիթանոց ելք: ելք «հատված» և մեկ բիթանոց ելք «DP» (տասնորդական միավոր): Երբ «S1» մուտքագրումը բարձր է, վայրկյանաչափը սկսում է հաշվել ժամանակը: Երբ «S2» - ը ցածր է, վայրկյանաչափը դադար է տալիս ժամանակը: Երբ «RST» - ը բարձր է, վայրկյանաչափը կանգ է առնում և վերականգնում ժամանակը: Շղթայի մեջ կան չորս ենթամոդուլներ `ժամացույցի բաժանարար, թվանշան, յոթ հատվածի ցուցադրման շարժիչ և յոթ հատվածի ցուցադրման կոդավորիչ: Վայրկյանաչափի հիմնական մոդուլը կապում է բոլոր ենթամոդուլները միասին և մուտքերին և ելքերին:

Քայլ 3: Mամացույցների պատրաստում

Clամացույցների պատրաստում
Clամացույցների պատրաստում

Clockամացույցի բաժանարար մոդուլը ընդունում է համակարգի ժամացույցը և օգտագործում է բաժանարար մուտքագրում `ստեղծելու ցանկացած ժամաչափ, որը չի գերազանցում համակարգի ժամացույցին: Theամացույցի վայրկյանաչափը օգտագործում է ժամացույցի երկու տարբեր մոդուլ, մեկը `500 Հց ժամացույց, իսկ մյուսը` 100 Հց ժամացույց: Clockամացույցի բաժանարարի սխեմատիկ պատկերը ներկայացված է վերևի նկարում: Clockամացույցի բաժանարարը ընդունում է մեկ բիթանոց «CLK» մուտքը, իսկ 32-բիթանոց «բաժանարար» և մեկ բիթանոց ելքը ՝ «CLKOUT»: «CLK» - ը համակարգի ժամացույցն է, իսկ «CLKOUT» - ը `ստացված ժամացույցը: Մոդուլը ներառում է նաև NOT դարպաս, որը միացնում է «CLKTOG» ազդանշանը, երբ հաշվարկը հասնում է բաժանարարի արժեքին:

Քայլ 4: Հաշվել մինչև տասը

Հաշվելով մինչև տասը
Հաշվելով մինչև տասը

Թվանշիչը հաշվարկում է յուրաքանչյուր թվանշանը 0-ից 10-ը և ստեղծում է մեկ այլ ժամացույց հաջորդ թվանշանի համար, որը կշեղվի տատանումից հետո, երբ թիվը հասնում է 10-ի: Մոդուլն ընդունում է 3 «բ», «RST» և «CLK» միաբիթանոց մուտքեր: »և հանգեցնում է մեկ բիթանոց« N »և 4-բիթանոց« D »ելքի: Մուտքագրվող «S» - ը մուտքի մեջ միացված է: Sամացույցը միանում է, երբ «S» - ն բարձր է, և անջատվում է, երբ «S» - ը ցածր է: «RST» - ը վերականգնման մուտքագրումն է, այնպես որ ժամացույցը վերակայվում է, երբ «RST» - ը բարձր է: «CLK» - նիշերի հաշվիչի ժամացույցի մուտքն է: «N» - ժամացույցի ելքն է, որը դառնում է հաջորդ թվանշանի մուտքային ժամացույցը: «D» ելքը ներկայացնում է այն թվանշանի երկուական արժեքը, որին գտնվում է հաշվիչը:

Քայլ 5: Թվերի ցուցադրում

Թվերի ցուցադրում
Թվերի ցուցադրում

Յոթ հատվածի ցուցադրման կոդավորիչը կոդավորելու է յոթ հատվածի ցուցադրման վարորդի մոդուլից ստացված երկուական թիվը և այն վերածելու է բիթերի հոսքի, որոնք մեկնաբանվելու են որպես «1» կամ «0» արժեքներ ցուցադրման յուրաքանչյուր հատվածի համար: Երկուական համարը մոդուլն ընդունում է որպես 4-բիթանոց մուտքային «թվանշան» և հանգեցնում է 7-բիթանոց ելքային «հատվածների»: Մոդուլը բաղկացած է մեկ դեպքի գործընթացի բլոկից, որը յուրաքանչյուր 7-բիթանոց հոսք է նշանակում յուրաքանչյուր հնարավոր մուտքի արժեքից `0-ից մինչև 9-ը: Յոթ-բիթ հոսքերից յուրաքանչյուր բիթ ներկայացնում է էկրանին թվանշանների յոթ հատվածներից մեկը: Հոսքի հատվածների կարգը «abcdefg» է ՝ «0» –ով, որոնք ներկայացնում են տվյալ թվի համար լուսավորվող հատվածները:

Քայլ 6: Ինչպես ցուցադրել վայրկյանաչափը

Ինչպես ցուցադրել վայրկյանաչափը
Ինչպես ցուցադրել վայրկյանաչափը

Յոթ հատվածի ցուցադրման վարորդի մոդուլում կան չորս 4-բիթանոց մուտքեր «D0», «D1», «D2» և «D3», որոնցից յուրաքանչյուրը ներկայացնում է ցուցադրվող չորս թվանշանները: «CLK» մուտքագրումը համակարգի ժամացույցի մուտքն է: Single-bit output "DP" ներկայացնում է տասնորդական կետը յոթ հատվածի ցուցադրման վրա: 4-բիթանոց «Անոդներ» ելքը որոշում է, թե յոթ հատվածի էկրանին որ թվանշանն է ցուցադրվում, իսկ 4-բիթանոց ելքային «ջերմաստիճանը» ՝ կախված «SEL» 2-բիթանոց կառավարման կարգավիճակից: Մոդուլն օգտագործում է 4 մուլտիպլեքսեր `« SEL »կառավարման մուտքի և երեք ելքերի համար. «Անոդներ», «ջերմաստիճան» և «DP»:

Քայլ 7: Այս ամենը միասին բերելը

Սկսելու և դադարեցնելու կոճակները ստեղծելու համար օգտագործվում է «եթե» գործընթացի բլոկը, որն ավարտվում է 500 Հց ժամացույցով: Հետո միացրեք բոլոր ենթամոդուլները միասին վայրկյանաչափի հիմնական մոդուլում `հայտարարելով յուրաքանչյուր առանձին ենթամոդուլի բաղադրիչները և օգտագործելով տարբեր ազդանշաններ: Թվային ենթամոդուլները ընդունում են նախորդ թվանշանային ենթամոդի ժամացույցի ելքը, իսկ առաջինը ՝ 100 Հց ժամացույցի: Թվային ենթամոդուլների «D» ելքերը այնուհետև դառնում են յոթ հատվածի ցուցադրման վարորդի մոդուլի «D» մուտքերը: Եվ վերջապես, յոթ հատվածի ցուցադրման վարորդի մոդուլի «տեմպ» ելքը դառնում է յոթ հատված կոդավորող մոդուլի «տեմպ» մուտք:

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

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

Օգտագործեք 3 կոճակ (W19, T17 և U18) «RST», «S1» և «S2» մուտքերի համար: W19- ը վերակայման կոճակն է, T17- ը ՝ մեկնարկի կոճակը (S1), իսկ U18- ը ՝ դադարի կոճակը (S2): Clockամացույցի մուտքի սահմանափակում է պահանջվում նաև W5 նավահանգստի միջոցով: Նաև հիշեք, որ ժամացույցի սահմանափակումին ավելացրեք այս տողը.

create_clock -add -name sys_clk_pin -period 10.00 -ալիքի ձև {0 5} [get_ports {CLK}]

Նաև անոդներն ու հատվածները միացրեք տախտակին, որպեսզի վայրկյանաչափը ցուցադրվի յոթ հատվածի ցուցադրման վրա, ինչպես երևում է սահմանափակումների ֆայլում:

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

Փորձարկում
Փորձարկում

Համոզվեք, որ ձեր սարքն աշխատում է ՝ խաղալով երեք կոճակների հետ ՝ դրանք սեղմելով և պահելով ամեն հնարավոր հերթականությամբ ՝ ձեր կոդի հետ կապված հնարավոր խնդիրները գտնելու համար:

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