
Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-23 15:14


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

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

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

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

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

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

"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

Qurilmangiz uchta tugmachani bosib ishlashiga ishonch hosil qiling: kodingiz bilan bog'liq muammolarni aniqlash uchun ularni har bir tartibda bosib turing.
Tavsiya:
Raspberry Pi yordamida uyni avtomatlashtirish o'rni taxtasi: 7 qadam

Raspberry Pi yordamida uy avtomatizatsiyasi: O'rnatilgan taxtadan foydalanadigan ko'pchilik odamlar qulaylikni xohlashadi, lekin maqbul narxlarda. Biz har kuni kechqurun quyosh botganda va ertasi kuni ertalab uylarni yoritib, chiroqlarni qayta o'chirishga yoki konditsionerni/ventilyatorni/isitgichni yoqish/o'chirishga dangasa bo'lamiz
MXY taxtasi - kam byudjetli XY Plotter chizilgan robot taxtasi: 8 qadam (rasmlar bilan)

MXY taxtasi - kam byudjetli XY Plotter chizish robotlari taxtasi: Mening maqsadim mXY taxtasini XY plotter chizish mashinasining byudjetini past qilish uchun loyihalash edi. Shunday qilib, men ushbu loyihani amalga oshirmoqchi bo'lganlar uchun osonlashtiradigan taxta yaratdim. Oldingi loyihada, 2 dona Nema17 pog'onali dvigatel ishlatilganda, bu taxta
Pic18f4520 yordamida sekundomer 7 segmentli Proteusda: 6 qadam

7 sekundli Proteus -da Pic18f4520 -dan foydalangan holda sekundomer: Men rasm boshqaruvchisi bilan ishlay boshladim, do'stlarimdan biri undan sekundomer yasashimni so'radi. Shunday qilib, menda almashish uchun apparat tasviri yo'q, men Proteus dasturida kod yozdim va uni simulyatsiya qildim, bu erda men ham xuddi shu sxemani baham ko'rdim
Robotika: Rover 5 -ning asosiy versiyasi, robotning asosiy bosqichi: 18 qadam (rasmlar bilan)

Robotika: Rover 5 -ning eng yaxshi robotlari:
VHDL bir daqiqali sekundomer: 5 qadam

VHDL Bir daqiqali soniya hisoblagichi: Bu VHDL va Basys 3 taxtasi yordamida bir daqiqali sekundomerni yaratish bo'yicha qo'llanma. Bunday qurilma har bir o'yinchi o'z harakatini amalga oshirish uchun maksimal bir daqiqaga ega bo'lgan o'yinlar uchun juda mos keladi. Sekundomer soniya va millisekundlarni aniq ko'rsatadi