Мазмұны:

VHDL бір минуттық секундомер: 5 қадам
VHDL бір минуттық секундомер: 5 қадам
Anonim
Image
Image

Бұл VHDL мен Basys 3 тақтасының көмегімен бір минуттық секундомерді құру туралы нұсқаулық. Мұндай құрылғы әр ойыншының қозғалысына бір минут уақыт беретін ойындар үшін өте қолайлы. Секундомер жеті сегментті дисплейде секунд пен миллисекундты дәл көрсетеді, 0 секундтан 0 миллисекундқа дейін, 60 секунд пен 0 миллисекундқа дейін. Сонымен қатар екі түйме қолданылады: таймерді іске қосуға, тоқтатуға және жалғастыруға арналған орталық түйме және таймерді қайта іске қосу үшін оң жақ түймешік. Құрылғыны смартфонның кіріктірілген секундомерімен қатар салыстырған кезде, сағат дәлдігі байқалады.

1 -қадам: Аппараттық/бағдарламалық қамтамасыз етуді алыңыз

Блок диаграммасы
Блок диаграммасы

1. Micro-USB бар Digilent-тен USB кабеліне Basys 3 Artix-7 FPGA жаттықтырушы тақтасы

2. Vivado 2016.2 Xilinx ұсынған Design Suite

2 -қадам: блок -диаграмма

Бұл схема мінез-құлық бойынша жасалған және Xilinx кіріктірілген компоненттерін қолданады, бірақ сонымен қатар құрылымдық түрде сипатталуы мүмкін, жоғарыдағы жалпы құрылымдық диаграммада көрсетілгендей. Диаграммадан тізбектің екі жиілік бөлгішпен қозғалатынын көруге болады. Жиілік бөлгіштердің бірі 1 центисекундта жұмыс істейді және жеті сегментті дисплейде көрсетілген сандар ретінде пайдаланылатын катодты есептегішті басқарады. Екінші жиілікті бөлгіш 240 Гц жиілікте жұмыс істейді және барлық сандар жеті сегментті дисплейде дұрыс көрсетілуі үшін анодтар арқылы айналатын анодты санауышты жүргізуге арналған. Кодер катодтық есептегіштен катодтық логиканы және анодты есептегіштен анодтық логиканы алады және оны жеті сегментті дисплейде жұмыс істейтін катод пен анодқа кодтайды. Бұл кодердің функциясы анод шығысы өзгерген сайын катодтың шығуы өзгереді. Катодты есептегіштен тәуелсіз іске қосу мүмкін емес, себебі анодтар 4 бөлек цифр арқылы айналуы керек.

3 -қадам: Жоба модулі

Біріншіден, CEN үшін технологиялық блок батырманы басу анықталған кезде ҚОСУ қосылады. Бұл катодты санауыштың тоқтауы/басталуы ретінде қызмет етеді.

Келесі технологиялық блокта центисекундтық және 240Гц жиілік сигналдары олардың 100мГц ішкі сағаты көтерілу шегіне жеткен сайын олардың сәйкес есептегіштері 1 -ге ұлғайтылатын етіп орнатылады. Центекундтық санауыш 500000 -ға жеткенде, ол 0 -ге қайта оралады. Бұл кезде 240Гц есептегіш санау 41667 -ге жеткенде қалпына келтіріледі.

Кодтың катодтық бөлімі үшін ENABLE «0» болса, катодты санау кідіртіледі. Егер осы уақыт ішінде қалпына келтіру түймесі басылса, онда барлық санаулар «0000» қалпына келтіріледі. Сонымен бірге, егер ENABLE «1» болса, катодты санау катодты санау 60.00 -ге жеткенше жалғасады, онда ол «1» деп тоқтау сигналын береді. Тоқтату сигналы CEN технологиялық блогына қайта оралады және «1» күйінде тұру сигналын қосқанда «0» күйге келтіреді және қалпына келтіру түймесі басылғанша өзгермейді.

Ақырында, жеті сегментті дисплей 4 анодты олардың 8 катодының әрқайсысымен дұрыс байланыстыру арқылы 0-9 цифрларын бір уақытта көрсету үшін орнатылады.

4 -қадам: шектеулер

Шектеулер
Шектеулер

Бұл шектеулер файлы VHDL -ден көрсетілген кірістер мен шығыстарды Basys тақтасының қажетті физикалық бөліктеріне қосады. Бұл жоба үшін компоненттер жеті сегментті дисплейге арналған төрт анодты және олардың сегіз катодының әрқайсысын, 100 мГц ішкі сағатты, орталық түймені және оң жақ түймешікті қамтиды.

5 -қадам: Тест

Кодты аяқтағаннан кейін FPGA бағдарламасын USB кабелі арқылы бағдарламалауға болады. Жеті сегменттің дисплейінде 0.00 көрсетілуі керек. 60.00 -ге жеткенше және тоқтағанша таймерді іске қосу үшін орталық түймені басу арқылы түймелердің жұмыс істейтінін тексеру; кез келген уақытта кідірту үшін орталық түймені қайта басуға болады. Уақытша тоқтатылғаннан кейін таймерді 0.00 қалпына келтіру үшін оң жақ батырманы басуға болады. Егер бәрі дұрыс жұмыс істесе, құттықтаймын, сіз бір минуттық таймер құрдыңыз!

Ұсынылған: