ЛР6 > Исследование конечных автоматов
Статьи по теме

Тема: Теория синхронных конечных автоматов. Автоматы Мили и Мура. Описание цифровых автоматов на Verilog
Структура курса лабораторных работ: Основы Verilog 1. Знакомство со средой моделирования ModelSim |
Скачать Материалы к лабораторной работе по Verilog №6.
1. Теоретические сведения
Краткие теоретические сведения по теории конечных автоматов
В данной лабораторной работе мы познакомимся с принципом работы и способом реализации тактируемых синхронных конечных автоматов. «Конечный автомат» - это общее название последовательностных схем. Слово «тактируемый» указывает на тот факт, что элементы памяти в конечном автомате (триггеры) имеют тактовый вход. Слово «синхронный» означает, что все триггеры используют один и тот же тактовый сигнал. Состояние такого конечного автомата изменяется только в момент времени, когда в тактовом сигнале происходит переключающий переход или, как говорят, на очередном «такте».
На рисунке 1 приведена общая структура тактируемого синхронного конечного автомата.
Рисунок 1. Структура тактируемого синхронного конечного автомата Мили.
Память состояний представляет собой набор из n триггеров, в которых хранится текущее состояние автомата. Всего имеется 2n различных состояний. Все триггеры подключены к общему источнику тактового сигнала, который позволяет им изменять состояние на каждом такте тактового сигнала.
Следующее состояние конечного автомата определяется логикой переходов F и является функцией текущего состояния и входного воздействия. Выходные сигналы определяются выходной логикой G и также зависят от текущего состояния и входного воздействия. Оба блока F и G являются строго комбинационными схемами. Последовательностная схема, выход которой зависит как от состояния, так и от входа, называется автоматом Мили. В некоторых приложениях выход зависит только от состояния. Такая схема называется автоматом Мура. Ее общая структура приведена на рисунке 2.
Рисунок 2. Структура тактируемого синхронного конечного автомата Мура.
Очевидно, что единственное различие между этими двумя моделями конечных автоматов заключается в том, как вырабатываются выходные сигналы. На практике многие конечные автоматы могут иметь выходы типа Мили и выходы типа Мура, т.е. иметь смешанную структуру.
2. Порядок выполнения работы
В лабораторной работе мы создадим проект, описывающий работу конечного автомата, представленного на рисунке 3.
Рисунок 3. Структура реализуемого конечного автомата.
Автомат имеет три состояния – A, B и С. Условием перехода из одного состояния в другое является значение, принимаемое входными сигналами Input1 и Input2. Выходной сигнал Output1 устанавливается в состояние логической «1» только тогда, когда конечный автомат находится в состоянии В. Описание исходного модуля проекта выполнено на поведенческом уровне.
1. Создайте новый проект в среде ModelSim.
2. Создайте исходный файл конечного автомата на поведенческом уровне:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
module state_mach (clk, reset, Input1, Input2, output1); input clk, reset, Input1, Input2; output output1; reg output1; reg [1:0] state; /* Кодирование состояний автомата*/ parameter [1:0] state_A=0, state_B=1, state_C=2; always @ (posedge clk or posedge reset) begin if (reset) state = state_A; else /*Определение следующего состояния автомата*/ case(state) state_A: if (Input1 ==0) state = state_B; else state = state_C; state_B: state = state_C; state_C: if (Input2) state = state_A; default: state = state_A; endcase end /*Состояние выхода конечного автомата*/ always @(state) begin case (state) state_A: output1 = 0; state_B: output1 = 1; state_C: output1 = 0; default: output1 = 0; endcase end endmodule |
3. Создайте тестовый файл для подачи входных сигналов.
4. Скомпилируйте все программы. После успешной компиляции перейдите в режим моделирования. В качестве основного файла для моделирования укажите тестовый файл.
5. Отройте графическое окно и добавьте в него проверяемые сигналы. Запустите проект на моделирование. Ответьте НЕТ на вопрос, хотите ли Вы закончить работу с симулятором. Проверьте полученные результаты.
3. Самостоятельная работа
Задание 1
Спроектировать следующие конечные автоматы (представленные в виде диаграмм переходов):
Вариант 1. Схема конечного автомата представлена на рисунке.
Он имеет 4 состояния – A, B, C и D. Входной сигнал EN и выходной сигнал MAX. Выходной сигнал зависит от текущего состояния конечного автомата и входного сигнала.
Вариант 2. Схема конечного автомата представлена на рисунке.
Он имеет 4 состояния – A, B, C и D. Входной сигнал EN и выходной сигнал MAX. Выходной сигнал зависит только от текущего состояния конечного автомата.
Вариант 3. Схема конечного автомата представлена на рисунке.
Он имеет 8 состояний – A, B, C, D, E, F, G и H. Входные сигналы X и Y, выходные сигналы Z1 и Z2. Выходные сигналы зависят только от текущего состояния конечного автомата.
Вариант 4. Схема конечного автомата представлена на рисунке.
Он имеет 4 состояния – A, B, C и D. Входные сигналы X и Y, выходной сигнал Z. Выходной сигнал зависит от текущего состояния конечного автомата и входных сигналов.
Вариант 5. Схема конечного автомата представлена на рисунке.
Он имеет 8 состояний – A, B, C, D, E, F, G и H. Входные сигналы X и Y, выходные сигналы Z1 и Z2. Выходные сигналы зависят только от текущего состояния конечного автомата.
Вариант 6: Схема конечного автомата представлена на рисунке.
Он имеет 9 состояний – A, B, C, D, E, F, G, H и I. Входные сигналы Reset и w, выходной сигнал OUT1. Выходной сигнал зависит только от текущего состояния конечного автомата.
Для проверки работы устройства создать тестовый файл.
Задание 2
Спроектировать микропрограммный автомат, используя одну из моделей конечных автоматов. Микропрограммный автомат представлен в виде блок-схемы.
Вариант 1. Блок-схема микропрограммного автомата представлена ниже:
Y – состояния автомата, x – входные сигналы. Выходные сигналы и их значения задайте самостоятельно.
Вариант 2. Блок-схема микропрограммного автомата представлена ниже:
Y – состояния автомата, x – входные сигналы. Выходные сигналы и их значения задайте самостоятельно.
Вариант 3. Блок-схема микропрограммного автомата представлена ниже:
Y – состояния автомата, x – входные сигналы. Выходные сигналы и их значения задайте самостоятельно.
Вариант 4. Блок-схема микропрограммного автомата представлена ниже:
Y – состояния автомата, x – входные сигналы. Выходные сигналы и их значения задайте самостоятельно.
Для проверки работы устройства создать тестовый файл.