5 Семестр / ЭИС3 3 лаб
.pdfС 14 по 37 строчки присваиваются значения объявленным сигналам.
На строчках 39-76 описывается выбор режима вывода комбинации значений семисегментных индикаторов в соответствии нажатой на матричной клавиатуре кнопкой. При значении switch равным 0 гаснут все семисегментные индикаторы. При значении switch равным 1 на семисегментных индикаторах выводится номер группы согласно варианту №17. При значении switch равным 2 выводится дата рождения, согласно варианту №17 с точками на определенных семисегментных индикаторах. При значении switch равным 3 выводится номер телефона, согласно варианту №17, а именно начиная с HEX5
выводится последняя цифра номера телефона, и происходит сдвиг вправо всех чисел номера телефона.
На строчке 78 задается значение задержки согласно варианту №17.
На строчках 79-91 описывается блок вывода значений цифр номера телефона с заданной задержкой согласно варианту№17.
На строчках 93-136 описываются режимы работы семисегментных индикаторов.
На строчках 137-142 описываются модули вывода значений на семисегментные индикаторы.
11
3 ФУНКЦИОНАЛЬНАЯ СХЕМА МОДУЛЯ СЕМИСЕГМЕНТНЫХ
ИНДИКАТОРОВ
Функциональная схема модуля ответственного за семисегментные индикаторы представлен на рисунке 3.1.
Рисунок 3.1 – Функциональная схема модуля семисегментных индикаторов
Зеленым блоком под цифрой 1 отмечены входы. Вход comb получаемые комбинации значений в зависимости от выбранного режима работы прошивки.
Черным блоком под цифрой 2 показаны выходы комбинации значений совокупности одного семисегментного индикатора.
Оранжевым блоков под цифрой 3 описан блок, отвечающий при каком входном десятичном числе будет подаваться на семисегментный индикатор семиразрядное двоичное число. Единицы данного числа отвечают за активный режим работы определенного сегмента, то есть горение.
12
4 КОД НА HDL ДЛЯ МОДУЛЯ СЕМИСЕГМЕНТНЫХ ИНДИКАТОРОВ
Далее был составлен код описания схемы на HDL, представленный на рисунке 4.1.
Рисунок 4.1 – Код для модуля семисегментных индикаторов
На строчках 2-3 описаны входы comb и выходы symbol.
На строчке 5 объявлена логическа переменные symbol_wire для работы с семиразрядным числом для семисегментного индикатора
На 8 строчке выходу symbol присвоены обратные значения symbol_wire.
На строчках 9 - 25 описан блок, отвечающий при каком входном десятичном числе будет подаваться на семисегментный индикатор семиразрядное двоичное число. Единицы данного числа отвечают за активный режим работы определенного сегмента, то есть горение.
13
5 ФОТОГРАФИИ РАБОТЫ МАКЕТА
Далее были сделаны фотографии рабочего макета, представленные на рисунках 5.1 – 5.6.
На рисунке 5.1 представлено начало работы прошивки на плате.
Рисунок 5.1 – Начало работы
На рисунках 5.2 – 5.6 представлена работа прошивки на макете всех режимов работы семисегментных индикаторов согласно условию варианту №17.
Рисунок 5.2 – Комбинация семисегментных индикаторов после нажатия на кнопку s2
14
Рисунок 5.3 – Комбинация семисегментных индикаторов после нажатия на кнопку s3
Рисунок 5.4 – Начало смены комбинации семисегментных индикаторов после нажатия на кнопку s4
15
Рисунок 5.5 – Финальная смена комбинации семисегментных индикаторов после нажатия на кнопку s4
Рисунок 5.6 – Сброс отображения значений семисегментных индикаторов после нажатия на кнопку s1
16
Заключение
В результате выполнения данной работы были освоены принципы работы семисегментных индикаторов на плате DE10-Lite с помощью САПР
Quartus Prime Lite, а также, согласно варианту №17, было разработано устройство на HDL (System Verilog), которое выводит значения семисегментных индикаторов согласно режимам работы, заданным в варианте №17.
Были сформированы функциональные схемы в RTL-Viewer для верхнего уровня и модулей программы, а также составлены их описания.
В макет была загружена прошивка и проверена его работа, после чего были сделаны фотографии работы макета.
17