Лаба4_ПЛИС
.docxМинистерство науки и высшего образования Российской Федерации
Федеральное государственное автономное образовательное учреждение высшего образования
Томский государственный университет систем управления и радиоэлектроники (ТУСУР)
Кафедра телекоммуникаций и основ радиотехники (ТОР)
«МАШИНА КОНЕЧНЫХ СОСТОЯНИЙ»
Отчет по лабораторной работе
по дисциплине «Программирование логических интегральных схем»
|
оценка
|
Выполнили: Студенты гр. ___________ Беликова Е.О. « » 2025 г.
Проверил: Преподаватель каф. ТОР ___________ Дмитриев Э.М. « » 2025 г.
|
Томск 2025
Введение
Целью работы является изучение алгоритма работы машины с конечным числом состояний на языке Verilog посредством реализации алгоритма на основе известной диаграммы состояний (рисунок 1.1). Переходные состояния данной диаграммы соответствуют таблице 1.1.
Рисунок 1.1 – Диаграмма состояний
Таблица 1.1. - Переходные состояния
Исходное состояние |
Конечное состояние |
Условие |
Присвоение |
first_state |
first_state |
SW[0] = 0 |
first_state: LEDS <= 0 |
first_state |
second_state |
SW[0] = 1 |
|
second_state |
second_state |
SW[0] = 1 |
second_state: LEDS <= 8'b11111111 |
second_state |
first_state |
SW[0] = 0 |
|
second_state |
third_state |
SW[1] = 1 |
|
third_state |
third_state |
SW[1] = 1 |
third_state: LEDS <= 8'b10101010 |
third_state |
first_state |
SW[0] = 0 |
|
third_state |
fourth_state |
SW[2] = 1 |
|
fourth_state |
fourth_state |
SW[2] = 1 |
fourth_state: LEDS <= 8'b01010101 |
fourth_state |
second_state |
KEY[0] = 0 |
|
fourth_state |
fivth_state |
KEY[1] = 0 |
|
fourth_state |
first_state |
SW[0] = 0 |
|
fivth_state |
fourth_state |
KEY[1] = 1 |
fivth_state: LEDS <= 8b'11110000 |
fivth_state |
fivth_state |
KEY[1] = 0 |
2 ОСНОВНАЯ ЧАСТЬ
На рисунке 2.1 представлен код программы, соответствующий диаграмме состояний 2 варианта.
Рисунок 2.1 – Код на языке Verilog с блоком FSM, соответствующий варианту 2
В качестве оценки правильности разработки кода использовался встроенный инструмент проверки State Machine Viewer. Результат проверки, совпадающий с диаграммой состояний, представлен на рисунке 2.2.
Рисунок 2.2 – Результат выполнения кода в инструменте State Machine Viewer
Также, проведена временная симуляция с демонстрацией переходов всех состояний (рисунок 2.3): поочерёдно (от первого к пятому), проверка работы сброса значений, затем от первого до второго и обратно, от первого к четвёртому и обратно, далее проверка перехода с четвёртого состояния на первое.
Рисунок 2.3 – Временная симуляция
Прошивка платы (рисунок 2.4) также показала, что разработанный код работает корректно.
а) |
б) |
|
в)
г) |
д) |
|
Рисунок 2.4 – Работа платы в соответствии с написанным кодом: а) первое состояние – 00000000, б) второе состояние – 11111111, в) третье состояние – 10101010, г) четвёртое состояние – 01010101, д) пятое состояние – 1111000
Заключение
В ходе данной лабораторной работы изучены алгоритмы работы машины с конечным числом состояний. На основе диаграммы варианта 2 написан код её реализации. Правильность работы программы подтверждена инструментом State Machine Viewer, временной симуляцией и работой платы после прошивки.
