Mundarija:

VHDL va Basys3 taxtasi yordamida asosiy sekundomer: 9 qadam
VHDL va Basys3 taxtasi yordamida asosiy sekundomer: 9 qadam

Video: VHDL va Basys3 taxtasi yordamida asosiy sekundomer: 9 qadam

Video: VHDL va Basys3 taxtasi yordamida asosiy sekundomer: 9 qadam
Video: VHDL & FPGA Project: Music Player 2024, Iyul
Anonim
Image
Image

Asosiy VHDL va Basys 3 taxtasi yordamida soniya hisoblagichini yaratish bo'yicha ko'rsatmaga xush kelibsiz. Siz bilan loyihamizni bo'lishishdan xursandmiz! Bu 2016 yilning kuzida Cal Poly, SLOda o'tkaziladigan CPE 133 (Raqamli dizayn) kursining yakuniy loyihasi edi. Biz qurgan loyiha - bu oddiy sekundomer bo'lib, u ishga tushadi, vaqtni tiklaydi va to'xtatadi. U kirish sifatida Basys3 taxtasida uchta tugmachani oladi va vaqt to'rtta raqamli etti segmentli displeyda ko'rsatiladi. O'tgan vaqt bir soniyada ko'rsatiladi: sentisekundlar formati. U o'tgan vaqtni kuzatib borish uchun boshqaruv tizimining soatidan foydalanadi va vaqtni etti segmentli displeyning to'rtta raqamiga chiqaradi.

1 -qadam: materiallar

Kirish va chiqishlarni sozlash
Kirish va chiqishlarni sozlash

Loyiha uchun sizga kerak bo'lgan materiallar:

  • Xilinx -dan o'rnatilgan Vivado Design Suite WebPack o'rnatilgan 1 ta kompyuter (2016.2 versiyasini afzal ko'rsating)
  • 1 Digilent Basys3 Xilinx Artix-7 FPGA kartasi
  • 1 USB port kabeli

2 -qadam: kirish va chiqishlarni sozlash

Yuqoridagi rasmda asosiy sekundomer modulining yuqori darajali blok diagrammasi ko'rsatilgan. Sekundomer "CLK" (soat), "S1" (boshlash tugmasi), "S2" (pauza tugmasi) va "RST" (qayta o'rnatish) kirishini oladi va 4-bitli "Anodlar", 7-bitli chiqishga ega. chiqish "segmenti" va bitta bitli "DP" chiqishi (kasrli nuqta). "S1" kiritish baland bo'lsa, sekundomer vaqtni hisoblay boshlaydi. "S2" past bo'lsa, sekundomer vaqtni to'xtatadi. "RST" baland bo'lganda, sekundomer to'xtaydi va vaqtni tiklaydi. Tizimda to'rtta submodul mavjud: soatni ajratuvchi, raqamli hisoblagich, etti segmentli displey drayveri va etti segmentli displey kodlovchi. Sekundomerning asosiy moduli barcha submodullarni bir -biriga, kirish va chiqishlarga bog'laydi.

3 -qadam: Soatlar yasash

Soatlar yasash
Soatlar yasash

Soatni ajratuvchi modul tizimli soatni oladi va bo'linuvchi kirishni ishlatib, tizim soatlaridan katta bo'lmagan har qanday tezlikni yaratadi. Sekundomer ikki xil soat modulidan foydalanadi, biri 500 Gts soatni, ikkinchisi 100 Gts soatni yaratadi. Soatni ajratish sxemasi yuqoridagi rasmda ko'rsatilgan. Soatni ajratuvchi bitta bitli "CLK", 32-bitli "bo'luvchi" va bitta bitli "CLKOUT" kirishni oladi. "CLK" - bu tizim soati va "CLKOUT" - bu hosil bo'ladigan soat. Modul, shuningdek, "bo'linuvchi" qiymatiga etib kelganida "CLKTOG" signalini o'zgartiradigan NOT darvozasini ham o'z ichiga oladi.

4 -qadam: O'ngacha sanash

O'ngacha sanash
O'ngacha sanash

Raqamlar hisoblagichi har bir raqamni 0 dan 10 gacha sanaydi va keyingi raqam uchun boshqa soat hosil qiladi, bu hisob 10 ga yetganda tebranadi. Modul "S", "RST" va "CLK" bitta bitta bitli kirishni qabul qiladi. "va bitta bitli" N "va 4-bitli" D "chiqishiga olib keladi. "S" kiritish - bu kirishni yoqish. "S" baland bo'lganda soat yoqiladi va "S" past bo'lganda o'chadi. "RST" - bu qayta o'rnatish usuli, shuning uchun "RST" baland bo'lganda soat tiklanadi. "CLK" - bu raqamli hisoblagich uchun soat usuli. "N" - bu keyingi raqam uchun kirish soatiga aylanadigan soat chiqishi. "D" chiqishi hisoblagich joylashgan raqamning ikkilik qiymatini ko'rsatadi.

5 -qadam: raqamlarni ko'rsatish

Raqamlarni ko'rsatish
Raqamlarni ko'rsatish

Etti segmentli displey kodatori etti segmentli displey drayveri modulidan olingan ikkilik raqamni kodlaydi va uni displeyning har bir segmenti uchun "1" yoki "0" qiymatlari sifatida talqin qilinadigan bitlar oqimiga aylantiradi. Ikkilik raqam modul tomonidan 4-bitli "raqam" sifatida qabul qilinadi va natijada 7-bitli "segmentlar" paydo bo'ladi. Modul har bir mumkin bo'lgan kirish qiymati uchun 0 dan 9 gacha bo'lgan 7 bitli oqimni belgilaydigan bitta ish jarayon blokidan iborat. Etti bitli oqimlarning har bir biti displeydagi raqamlarning etti segmentidan birini ifodalaydi. Oqimdagi segmentlar tartibi "abcdefg" bo'lib, "0" berilgan raqam uchun yonib turadigan segmentlarni ifodalaydi.

6 -qadam: Sekundomerni qanday ko'rsatish kerak

Sekundomerni qanday ko'rsatish kerak
Sekundomerni qanday ko'rsatish kerak

Etti segmentli displey drayveri modulida to'rtta 4-bitli "D0", "D1", "D2" va "D3" mavjud bo'lib, ularning har biri ko'rsatiladigan to'rtta raqamni bildiradi. "CLK" kiritish - bu tizimning soat kiritishidir. Bit-bitli chiqish "DP" etti segmentli displeyda kasr nuqtasini ifodalaydi. 4-bitli "Anodlar" chiqishi etti segmentli displeyda qaysi raqam ko'rsatilishini aniqlaydi va 4-bitli "temp" 2-bitli boshqaruv "SEL" holatiga bog'liq. Modulda "SEL" boshqaruv usuli va uchta chiqish uchun 4 multipleksor ishlatiladi; "Anodlar", "temp" va "DP".

7 -qadam: Hammasini birlashtirish

Ishga tushirish va to'xtatib turish tugmachalarini yaratish uchun 500 gigagertsli soat ishlayotgan "agar" jarayon bloki ishlatiladi. Keyin har bir submodulning tarkibiy qismlarini e'lon qilish va turli signallardan foydalanib, sekundomerning asosiy modulidagi barcha submodullarni bir -biriga ulang. Raqamli submodullar oldingi raqamli submodulning soat chiqishini oladi, birinchisi - 100 Gts. Raqamli submodullarning "D" chiqishi, keyin, etti segmentli displey haydovchi modulining "D" kirishiga aylanadi. Va nihoyat, etti segmentli displey haydovchi modulining "temp" chiqishi etti segmentli kodlovchi modulining "temp" kirishiga aylanadi.

8 -qadam: cheklovlar

Cheklovlar
Cheklovlar

"RST", "S1" va "S2" kirishlari uchun 3 ta tugmachadan (W19, T17 va U18) foydalaning. W19 - tiklash tugmasi, T17 - boshlash tugmasi (S1), U18 - pauza tugmasi (S2). W5 porti yordamida soatni kiritish uchun cheklov ham talab qilinadi. Bundan tashqari, ushbu qatorni soat chekloviga qo'shishni unutmang:

create_clock -add -name sys_clk_pin -davr 10.00 -to'lqin shakli {0 5} [get_ports {CLK}]

Anodlar va segmentlarni taxtaga ulang, shunda sekundomer cheklovlar faylida ko'rinadigan etti segmentli displeyda ko'rsatiladi.

9 -qadam: sinov

Sinov
Sinov

Qurilmangiz uchta tugmachani bosib ishlashiga ishonch hosil qiling: kodingiz bilan bog'liq muammolarni aniqlash uchun ularni har bir tartibda bosib turing.

Tavsiya: