Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
неелова_курсовая / vichisl_kurs_kornilovdenis.docx
Скачиваний:
2
Добавлен:
26.12.2024
Размер:
805.56 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования

«Санкт-Петербургский государственный университет телекоммуникаций

им. проф. М.А. Бонч-Бруевича»

Отчет по курсовой работе

По дисциплине «Вычислительная техника».

Проектирование конечного автомата на языке Verilog

Выполнил студент группы

ИКВТ-32

Корнилов Денис Андреевич

Санкт-Петербург

2024

Оглавление

Задание к курсовой работе 3

Описание структуры проекта 4

Коды модулей 6

Задание к курсовой работе

Курсовое проектирование предполагает моделирование в пакете ModelSim и подготовку к макетированию в пакете Quartus 15 конечного автомата по индивидуальному заданию. Проверка работы устройства производится на макете DE1-SoC.

Кроме модуля конечного автомата в общий проектируемый модуль должны входить модули понижающего счетчика и кодопреобразователя, позволяющего представлять на семи-сегментных индикаторах макета отображения необходимых символов (цифр).

Индивидуальный вариант “Машина времени”

Работа машины времени. В этом задании выделяем 5 этапов:

  • Инициализация (S0): Начальный сброс системы.

  • Выбор эпохи (S1): Ожидание выбора эпохи для путешествия.

  • Перемещение во времени (S2): Имитация процесса перемещения.

  • Прибытие в эпоху (S3): Индикация прибытия в выбранную эпоху.

  • Ожидание возвращения (S4): Вывод текущей эпохи или подготовка к возвращению.

Выбор эпохи (античность, средневековье, новое время, настоящее, будущее) осуществляется 3-битным входом K. Наличие разрешения на путешествие определяется отсутствием нажатия кнопки return_btn. Нажатие return_btn в состоянии S4 переводит автомат в состояние выбора эпохи S1. Переход от состояния S2 к S3 инициируется таймером timer_travel, а от S3 к S4 - таймером timer_arrival.

В режиме S0 все параметры сбрасываются. В режиме S1 на семисегментный индикатор выводится код выбранной эпохи. В режиме S2 светодиоды имитируют процесс перемещения. В режиме S3 светодиоды сигнализируют о прибытии. В режиме S4 отображается текущая эпоха, а при нажатии return_btn отображается код возвращения. После отпускания return_btn автомат переходит в состояние S2 для нового путешествия.

Описание структуры проекта

Общая схема проекта:

Рис. 1 «Схема проекта по блокам»

Описание переходов:

Рис. 2 «Диаграмма переходов»

Описание работы блоков

Название

Изображение на общей схеме

Назначение

Управляющий конечный автомат – Машина Времени

  1. RES (S0, Инициализация): При reset 

автомат переходит в это состояние и сбрасывает: leds, data, timer_travel, 

timer_arrival, timer_return.

Затем переходит в S1.

  1. WAIT (S1, Выбор эпохи): Автомат ожидает выбора эпохи K. Если return_btn, то остается в S1. Иначе, при корректном K, переходит в 

S2, устанавливая data в ANT/MID/NEW/NOW

/FUT в зависимости от K, и leds в 3'b000.

  1. TRANS (S2, Перемещение): Автомат инкрементирует timer_travel. Когда timer_travel равен 5, переходит в S3. leds не меняются.

  2. ARRIVE (S3, Прибытие): Автомат инкрементирует timer_arrival. Когда timer_arrival равен 3, переходит в S4. leds инкрементируется.

  3. RESULT (S4, Ожидание): Если return_btn = 1, data устанавливается в RET и автомат переходит в S2. Иначе, data устанавливается в ANT/MID/NEW/NOW/FUT в зависимости от K, а leds в 3'b000.

Блок перехода состояний:

  • reset → S0

  • S0 → S1

  • S1 + return_btn = 0 + корректный K → S2

  • S2 + timer_travel = 5 → S3

  • S3 + timer_arrival = 3 → S4

  • S4 + return_btn = 1 → S2

  • S4 (без return_btn) → S4

Исполнительный блок:

  • S0: Инициализация регистров.

  • S1: Выбор эпохи, установка data и сброс leds.

  • S2: Инкремент timer_travel.

  • S3: Инкремент timer_arrival и leds.

  • S4: Вывод эпохи/возврата и сброс leds.

Кодер 4x7

Преобразует 4-битные данные об эпохе в 7-битный код для отображения на семисегментном индикаторе.

Понижающий счётчик

Понижающий N-разрядный счетчик позволяет отсчитать на каждом

полупериоде пониженной частоты sync M импульсов входной частоты clk.

Семисегментный индикатор

Получает 7-битный код от кодера для вывода информации об эпохе посредством семи светодиодов.

Светодиодный индикатор (3 штуки)

Используется для визуальной индикации состояния процесса перемещения во времени.

Соседние файлы в папке неелова_курсовая
  • #
    26.12.20241.13 Кб0coder.v
  • #
    26.12.2024960 б0count_div.v
  • #
    26.12.20243.95 Кб0time_machine.v
  • #
    26.12.20241.39 Кб0top_module.v
  • #
    26.12.20242.55 Кб0top_module_tb.v
  • #