ЛР3 > Построение конечных автоматов

Содержание: Создание с помощью конечных автоматов, реализующих счетчик по модулю 10 и формирователь бегущей строки на семисегментном индикаторе отладочного модуля DE2

Теоретические сведения 

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

Рисунок 1. Временная диаграмма работы конечного автомата.

 

Устройство имеет два входных сигнала: тактовая частота – Clock и информационный сигнал w, и один выходной сигнал – z. Выходной сигнал z устанавливается в состояние логической «1» в том случае, если входной сигнал w не изменяется в течение 4 периодов тактовой частоты (находится в состоянии логической «1» или логического «0»). В противном случае выходной сигнал z находится в состоянии логического «0». Если входной сигнал w не изменяет своего состояния после 4 периодов тактовой частоты – выходной сигнал z остается в состоянии логической «1» до момента изменения входного сигнала.

Диаграмма состояний конечного автомата показана на рисунке 2.

 

Рисунок 2. Диаграмма состояний конечного автомата.

 

Задание 1

 

1. Создайте проект, реализующий функцию конечного автомата. В качестве используемой микросхемы укажите EP2C35F672C6 семейства Cyclone II.

2. Для подачи асинхронного сигнала сброс используйте переключатель SW0, входного сигнала w – переключатель SW1, входной тактовой частоты – кнопку KEY0.

3. Визуализацию выходного сигнала z выполните с помощью светодиода LEDG0. Для индикации текущего состояния конечного автомата используйте светодиоды LEDR8 – LEDR0.

4. Проверьте правильность работы устройства с помощью моделирующей программы и отладочного модуля DE2. Объясните принцип реализации конечного автомата с помощью утилиты просмотра результата синтеза RTL Viewer.

 

Задание 2

 

1. Используя принцип реализации конечного автомата, создайте проект, описывающий поведение счетчика по модулю 10. В качестве используемой микросхемы укажите EP2C35F672C6 семейства Cyclone II.

2. На вход счетчика должны подаваться следующие сигналы: сигнал Reset (активный уровень – логический «0») – установка счетчика в исходное состояние; сигнал Clock – внешняя тактовая частота; сигналы w0 и w1, управляющие работой счетчика. Для подачи сигнала Reset используйте переключатель SW0, для подачи сигнала Clock – кнопку KEY0, для подачи сигналов w0 и w1– переключатели SW1 и SW2.

3. Поведение счетчика определяется состоянием сигналов w0 и w1. Если w0
w1 = 00, то счетчик не изменяет своего состояния (остановлен). Если w0
w1 = 10, то счетчик увеличивает свое значение на 1 по нажатию кнопки KEY0. Если w0
w1 = 01, то счетчик увеличивает свое значение на 2 по нажатию кнопки KEY0. Если w0
w1 = 11, то счетчик уменьшает свое значение на 1 по нажатию кнопки KEY0.

4. Для индикации состояния счетчика (в десятичном формате) используйте семисегментный индикатор HEX0.

5. Проверьте работоспособность проекта с помощью моделирующей программы и отладочного модуля DE2.

 

Задание 3

 

1. Используя принцип реализации конечного автомата, создайте проект устройства формирования бегущей строки «HELLO___» на семисегментных индикаторах НЕХ7 – НЕХ0.

2. Время изменения надписи – 1 секунда. Тактовая частота задается внешним кварцевым генератором.

3. Управление устройством должно осуществляться с помощью следующих сигналов: сигнал Stop – останов бегущей строки (переключатель SW0); сигнал Direct – изменение направления смещения бегущей строки (переключатель SW1); сигнал Vel – увеличение в 2 раза скорости смещения бегущей строки.

4. Проверьте работоспособность проекта с помощью отладочного модуля DE2.

 

Задание для самостоятельной работы

 

    Реализуйте конечный автомат, описанный в задании 1, используя два четырехразрядных регистра сдвига для подсчета количества последовательно поступающих на вход w состояний логической «1» и логического «0» (можно использовать только один регистр сдвига).