Mundarija:

VHDL bir daqiqali sekundomer: 5 qadam
VHDL bir daqiqali sekundomer: 5 qadam

Video: VHDL bir daqiqali sekundomer: 5 qadam

Video: VHDL bir daqiqali sekundomer: 5 qadam
Video: #ZAPAL#12-YOSHLI QIZ USHLANDI 2024, Noyabr
Anonim
Image
Image

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 etti segmentli displeyda 0 soniya va 0 millisekunddan boshlab 60 soniya va 0 millisekundgacha aniq soniya va millisekundlarni ko'rsatadi. Ikkita tugma ham ishlatiladi: taymerni ishga tushirish, to'xtatish va davom ettirish uchun ishlatiladigan markaziy tugma va taymerni qayta ishga tushirish uchun o'ng tugma. Qurilmani aqlli telefonning o'rnatilgan sekundomeri bilan yonma-yon taqqoslaganda, soat aniqligi seziladi.

1 -qadam: Uskuna/dasturiy ta'minotni oling

Blok diagrammasi
Blok diagrammasi

1. Micro-USB bilan Digilent-dan USB-kabelgacha bo'lgan Basys 3 Artix-7 FPGA murabbiylar kengashi.

2. Xilinxdan Vivado 2016.2 Design Suite

2 -qadam: Blok diagrammasi

Ushbu sxema xulq-atvor asosida qurilgan va o'rnatilgan Xilinx komponentlaridan foydalaniladi, lekin yuqoridagi umumiy strukturaviy diagrammada ko'rsatilgandek, tizimli ravishda tasvirlanishi mumkin. Diagrammadan ko'rinib turibdiki, kontaktlarning zanglashiga ikkita chastotali bo'luvchi olib keladi. Chastotani ajratgichlardan biri 1 sentisaniyada ishlaydi va etti segmentli displeyda ko'rsatilgan raqamlar sifatida ishlatiladigan katod hisoblagichini boshqaradi. Ikkinchi chastota ajratuvchi 240 Gts chastotada ishlaydi va anodlar bo'ylab aylanadigan anod hisoblagichini haydash uchun ishlatiladi, shunda barcha raqamlar etti segmentli displeyda to'g'ri ko'rsatiladi. Kodlovchi katod mantig'ini katod hisoblagichidan, anod hisoblagichidan esa anod mantig'ini oladi va uni etti segmentli displeyda ishlaydigan chiquvchi katod va anodga kodlaydi. Bu kodlovchining vazifasi, har safar anod chiqishi o'zgarganda, katod chiqishi o'zgaradi. Katod chiqishini hisoblagichdan mustaqil ravishda bajarish mumkin emas, chunki anodlar 4 ta alohida raqam orqali aylanishi kerak.

3 -qadam: Loyiha moduli

Birinchidan, CEN uchun jarayon bloki shunday tuzilganki, tugmani bosish aniqlansa, ENABLE yoqiladi. Bu katod hisoblagichining to'xtashi/boshlanishi bo'lib xizmat qiladi.

Keyingi texnologik blokda, sentisekund va 240Hz chastotali signallar shunday o'rnatiladiki, har 100MGts ichki soat ko'tarilish chegarasiga yetganda, ularning hisoblagichlari 1 taga ko'payadi. Bir sentisekundli hisoblagich 500000 ga yetganda, u 0 ga qaytadi. Shu bilan birga, 240Hz chastotali hisoblagich 41667 ga yetganda qayta tiklanadi.

Kodning katod bo'limi uchun, ENABLE '0' bo'lsa, katodni hisoblash to'xtatiladi. Agar bu vaqt ichida reset tugmasi bosilsa, barcha hisoblar "0000" ga qaytariladi. Shu bilan birga, agar ENABLE '1' bo'lsa, katodni hisoblash 60.00 ga yetguncha davom etadi, bunda to'xtash signalini '1' qiladi. To'xtash signali CEN texnologik blokiga qaytadi va "0" qiymatini yoqishga olib keladi, to'xtash signali esa "1" bo'ladi va reset tugmasi bosilmaguncha o'zgarmaydi.

Nihoyat, etti segmentli displey 4 ta anodni har biri 8 ta katod bilan to'g'ri bog'langan holda o'rnatiladi, ular bir vaqtning o'zida 0-9 raqamlarini ko'rsatadi.

4 -qadam: cheklovlar

Cheklovlar
Cheklovlar

Ushbu cheklovlar fayli VHDL -dan ko'rsatilgan kirish va chiqishlarni Basys platasining kerakli, jismoniy qismlariga bog'laydi. Ushbu loyiha uchun komponentlar to'rtta anodni va ularning har biri ettita segmentli displey uchun sakkizta katodni, 100 MGts ichki soatni, markaziy tugmani va o'ng tugmani o'z ichiga oladi.

5 -qadam: Sinov

Kodni to'ldirgandan so'ng, endi FPGA -ni USB kabeli orqali dasturlashingiz mumkin. Etti segmentli displeyda 0.00 ko'rsatilishi kerak. Taymerni ishga tushirish uchun markaziy tugmani bosib, tugmalar ishlayaptimi yoki yo'qligini tekshiring, soat 60.00 ga yetguncha va to'xtaydi; istalgan vaqtda, uni to'xtatish uchun markaziy tugmani yana bosishingiz mumkin. To'xtatilgandan so'ng, taymerni 0.00 ga qaytarish uchun o'ng tugmani bosishingiz mumkin. Agar hamma narsa to'g'ri ishlayotgan bo'lsa, tabriklaymiz, siz bir daqiqali taymer qurdingiz!

Tavsiya: