Съдържание:

Основен хронометър, използващ VHDL и Basys3 дъска: 9 стъпки
Основен хронометър, използващ VHDL и Basys3 дъска: 9 стъпки

Видео: Основен хронометър, използващ VHDL и Basys3 дъска: 9 стъпки

Видео: Основен хронометър, използващ VHDL и Basys3 дъска: 9 стъпки
Видео: Доц. дтн инж. Ив. Пандиев: Широколентови усилватели с токова обратна връзка, усъвършенствани схеми. 2024, Юли
Anonim
Image
Image

Добре дошли в инструкциите за това как да изградите хронометър, използвайки основна VHDL и Basys 3 платка. Радваме се да споделим нашия проект с вас! Това беше последен проект за курс CPE 133 (цифров дизайн) в Cal Poly, SLO през есента на 2016 г. Проектът, който изградихме, е прост хронометър, който стартира, нулира и спира времето. Той приема три бутона за натискане на платката Basys3 като входове, а времето се показва на четирицифрения седем-сегментен дисплей. Изминалото време се показва във формат секунди: сантисекунди. Той използва системния часовник на платката като вход, за да следи изминалото време и извежда времето към четирите цифри на седемсегментния дисплей.

Стъпка 1: Материали

Настройка на входове и изходи
Настройка на входове и изходи

Материалите, които ще ви трябват за този проект:

  • 1 компютър с инсталиран Vipado 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: Изработка на часовници

Изработка на часовници
Изработка на часовници

Модулът за разделяне на часовника приема системния часовник и използва вход за делител, за да създаде часовник с всякаква скорост, не по -голяма от тази на системния часовник. Хронометърът използва два различни тактови модула, един, който създава часовник с честота 500 Hz и друг, който създава часовник с честота 100 Hz. Схемата за часовника е показана на фигурата по -горе. Тактовият разделител приема еднобитов вход „CLK“, 32-битов вход „Делител“и еднобитов изход „CLKOUT“. "CLK" е системният часовник, а "CLKOUT" е полученият часовник. Модулът включва и порта NOT, който превключва сигнал "CLKTOG", когато броят достигне стойността на делителя.

Стъпка 4: Преброяване до десет

Преброяване до десет
Преброяване до десет

Броячът на цифри брои всяка цифра от 0 до 10 и създава друг часовник, за да може следващата цифра да функционира, която се колебае, когато броят достигне 10. Модулът приема 3 еднобитови входа „S“, „RST“и „CLK "и води до еднобитов изход" N "и 4-битов изход" D ". Вход "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" е часовникът на системата. Еднобитовият изход "DP" представлява десетичната запетая на седем-сегментния дисплей. 4-битовият изход "Anodes" определя коя цифра на седем-сегментния дисплей се показва и 4-битовият изход "temp" зависи от състоянието на 2-битовия контролен вход "SEL". Модулът използва 4 мултиплексора за управляващия вход "SEL" и трите изхода; "Аноди", "температура" и "DP".

Стъпка 7: Обединете всичко заедно

Процесният блок „ако“, изтичащ от часовника 500Hz, се използва за създаване на бутоните за стартиране и пауза. След това свържете всички подмодули заедно в основния модул на хронометъра, като декларирате компонентите на всеки отделен подмодул и използвате различни сигнали. Цифровите подмодули приемат тактовия изход на предишния цифров подмодул, като първият приема тактовия сигнал от 100Hz. След това "D" изходите на цифровите подмодули се превръщат в "D" входовете на седем сегментния модул на дисплея на драйвера. И накрая, "temp" изходът на седемсегментния модул на драйвера на дисплея се превръща в "temp" входа на модула на седем сегментния енкодер.

Стъпка 8: Ограничения

Ограничения
Ограничения

Използвайте 3 бутона (W19, T17 и U18) за входове "RST", "S1" и "S2". W19 е бутонът за нулиране, T17 е бутонът за стартиране (S1), а U18 е бутонът за пауза (S2). Ограничение за входа на часовника също се изисква чрез порт W5. Също така, не забравяйте да добавите този ред към ограничението на часовника:

create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports {CLK}]

Също така свържете анодите и сегментите към дъската, така че хронометърът да се покаже на седем-сегментния дисплей, както се вижда във файла с ограничения.

Стъпка 9: Тестване

Тестване
Тестване

Уверете се, че устройството ви работи, като играете с трите бутона: натискане и задържане във всеки възможен ред, за да откриете евентуални проблеми с кода си.

Препоръчано: