Синтез автомата Мура по ГСА. Простейшая реализация
1.Разметка состояний автомата Мура по ГСА.
Каждой операторной вершине ГСА автомата Мура соответствует определенное состояние - ai . Начальное состояние автомата соответствует началу ГСА, а точнее – входу в первую вершину ГСА. Первая вершина ГСА обычно соответствует логическому условию «Пуск». Поэтому начальное состояние можно отметить на входе этой вершины. Поскольку этому состоянию не соответствует никакая операторная вершина, то и автомат в начальном состоянии не выдает никаких микрокоманд. При такой отметке начального состояния конечное состояние автомата соответствует завершению ГСА (перед вершиной «Конец»).
Для корректной работы автомата необходимо, что бы после завершения выполнения алгоритма автомат вернулся в начальное состояние. Таким образом можно совместить начальное и конечное состояния автомата и обозначить их одинаково a0.
Часто дополнительно введенную операторную вершину, соответствующую микрокоманде «Операция выполнена», отмечают как конечное состояние автомата (a0). А так как конечное состояние автомата должно совпадать с начальным, в ГСА вводится еще одна дополнительная операторная вершина, которая отмечается состоянием a0, так же, как конечная (см. рис.3.14). Такое преобразование ГСА имеет определенные преимущества: если автомат «свободен», он не «молчит», а выдает микрокоманду «Операция выполнена», что говорит о его готовности к работе.
Остальным операторным вершинам соответствуют состояния, которые можно пронумеровать так: a1, a2, a3 и т.д. (рис. 3.14).
Таким образом ГСА автомата Мура (рис.53.14 в нашем примере) отличается от исходной ГСА (рис.3.2) еще одной дополнительной вершиной с состоянием a0. Обе вершины, помеченные состоянием a0, можно мысленно совместить, так как после завершения операции автомат должен вернуться в начальное состояние
2.Построение графа переходов автомата Мура (по ГСА рис.3.14)
Вершины графа соответствуют состояниям автомата, дуги – переходам из состояния am в состояние as. У вершин графа записываются микрокоманды, соответствующие состояниям, в начале дуги – логические условия, определяющие переход из состояния am в состояние as (рис.6).
3.Построение прямой таблицы переходов автомата Мура.
Прямая таблица переходов (Таблица 3.6) строится по графу переходов (рис.3.15). Количество строк в таблице равно количеству переходов в графе. В столбце аm записываются состояния, из которых начинается переход, в столбце as – состояния, в которые перешел автомат из аm. В столбце Yas записываются Yi – микрокоманды, вырабатываемые автоматом в состоянии as. В столбце Xamas записываются логические условия (их конъюнкция), обеспечивающие переход из состояния аm в состояние as. Прямая таблица позволяет проверить полноту переходов, показанных на графе переходов: дизъюнкция всех Xa ma s из состояния a m должна быть равна «1». В нашем примере дизъюнкция всех Xa0 a s равна: Ø x 3 Ú x 3 = 1 .
Таблица 3.6
№ | am | a s | Yas | Xamas |
a 0 | a 0 a 1 | y7 y1, y2 | Ø x 3 x 3 | |
a 1 | a 2 a 3 | y3 y4, y5 | x 1 Ø x 1 | |
a 2 | a 3 | y4, y5 | ||
a 3 | a 4 a 0 | y6 y7 | Ø x 2 x 2 | |
a 4 | a 2 a 3 | y3 y4, y5 | x 1 Ø x 1 |
4. Кодирование состояний автомата. Выбор элементов памяти.
Так как поведение автомата всегда зависит от его текущего состояния аm, необходимо хранить код состояния аm в памяти состояний автомата. Объем памяти зависит от способа кодирования состояний. При минимальном кодировании каждому состоянию соответствует число в двоичном представлении, причем количество разрядов этого числа n определяется выражением: n = ] log2 | A | [. Другой крайний случай – унитарное кодирование, при котором: n = | A | . От выбранного способа кодирования и самого кодирования состояний может зависеть сложность схемы автомата.
Используем для нашего примера минимальное кодирование состояний. Так как автомат имеет пять состояний, то минимальное количество элементов памяти
n = ] log2 | A | [ = ] log2 5 [ = 3.
Выберем в качестве элементов памяти D-триггера. Для нашего примера их количество равно трем. Обозначим их как Т2 Т1 Т0 , причем Т2 соответствует старшему разряду кода состояний. Выходы триггеров обозначаются соответственно Q2Q1Q0. Значение числа Q2Q1Q0 на этих выходах - есть код состояния автомата.
Закодируем состояния автомата произвольно (Ka i = Q2Q1Q0):
К а0 = 100. К а1 = 001. К а2 = 010.
К а3 = 000. К а4 = 011.
5. Обратная структурная таблица автомата Мура.
Обратная структурная таблица автомата Мура строится на основе прямой таблицы переходов путем упорядочивания строк по столбцу a s .и добавления столбцов:
Ka m - код состояния a m.
Ka s - код состояния a s.
F a m a s – функции управления элементами памяти при переходе из состояния a m в состояние a s. Поскольку в качестве элементов памяти используем D-триггера, в этом столбце записываем только Di, соответствующие триггерам, которые необходимо установить в состояние «1», что бы обеспечить переход в состояние с кодом K a s.
Таблица 3.7
№ | a m | Kam | a s | Kas | Xamas | Yas | Famas |
a 0 a 3 | a 0 | Ø x 3 x 2 | y 7 | D 2 D 2 | |||
a 0 | a 1 | x 3 | y 1, y 2 | D 0 | |||
a 1 a 4 | a 2 | x 1 x 1 | y 3 | D 1 D 1 | |||
a 1 a 2 a 4 | a 3 | Ø x 1 Ø x 1 | y 4, y 5 | - - - | |||
a 3 | a 4 | Ø x 2 | y 6 | D 1 D 0 |
6. Функции управления элементами памяти и функции выходов автомата
Функции управления элементами памяти записываются по обратной структурной таблице автомата:
D i = F( a m , X a m a s).
Смысл этого выражения следующий (например для D2): значение функции D2 должно быть равно 1 (см. обратную структурную таблицу) в двух случаях (1-ая и 2-ая строки таблицы): если автомат находился в состоянии a0, а значение x 3 = 0 и если автомат находился в состоянии a3, а значение x 2 =1. Таким образом, функция D 2 имеет вид:
D 2 = a0Øx 3 Ú a3 x 2.
Остальные функции D 1 и D 0 записываются аналогично:
D 1 = a1 x 1 Ú a4 x 1 Ú a3Øx 2 = x 1 (a1 Ú a4) Ú a3 Øx 2.
D 0 = a0 x 3 Ú a3Øx 2.
Функции выходов так же записываются по обратной структурной таблице автомата:
y i = F( a s).
Так как yi в автомате Мура зависят только текущего состояния автомата, то для нашего примера они имеют вид:
y1 = y2 = a1. y3 = a2. y4 = y5 = a3. y6 = a4. y7 = a0,
что означает следующее: в состоянии a1 автомат вырабатывает микрокоманды y1 и y2 , в состоянии a2 - микрокоманду y3 и т.д.
7. Структурная схема автомата Мура на жесткой логике
Структурная схема автомата Мура состоит из следующих цифровых узлов (Рисунок 3.16):
Рисунок 1.16
Рисунок 3.16
Память состояний (ПС), дешифратор состояний (DC), комбинационная схема формирования сигналов управления элементами памяти состояний (КСF), комбинационная схема формирования выходных сигналов автомата (КСУ). Взаимодействие узлов автомата следующее. Автомат находится в некотором состоянии am, код которого Kam в виде значений Q на выходе триггеров памяти состояний (ПС) подается на вход дешифратора состояний (DC), на выходе которого собственно и формируются значения переменных am. На выходах комбинационной схемы КСУ формируются микрокоманды У, а на выходах схемы КСF формируются значения функций управления элементами памяти, которые обеспечивают переход автомата в новое состояние a s при поступлении импульса синхронизации С на вход синхронизации ПС.
8. Функциональная схема автомата Мура на жесткой логике
Функциональная схема автомата Мура состоит из следующих цифровых узлов:
· Память состояний. В нашем примере – триггера: Т2 Т1 Т0.
· Дешифратор состояний DC. Дешифратор необходим для преобразования двоичного кода состояний автомата Ka m в унитарный, соответствующий переменным a i , используемым в записанных выше функциях. В нашем примере – дешифратор DC имеет 3 входа и 8 выходов. На вход DC подается Kam – код состояния am , а на выходах DC формируется унитарный код состояния автомата a m: единица на i-ом выходе дешифратора DC формируется при Kam = i.
· Комбинационная схема формирования сигналов управления элементами памяти состояний автомата реализует функции:
D i = F( a m , X a m a s)..
· Комбинационная схема формирования выходных сигналов автомата реализует функции: y i = F( a s).
В функциональной схеме (рис.3.17) использованы «шины». Шины представляют из себя множество соединений схемы, изображенных в виде одной утолщенной линии. Вход в шину и выход из нее конкретного соединения обозначается либо одним и тем же числом, либо содержательным обозначением сигнала, передаваемого по этому соединению. Применение шин в схемах позволяет избежать большого числа пересечений на схеме и делает ее более простой для чтения.
С целью упрощения схемы, в ней не показаны элементы, обеспечивающие установку автомата в начальное состояние а0 с кодом Ка0 = 100. Этот вопрос будет рассмотрен ниже.
На рис.3.18 приведены временные диаграммы, поясняющие работу автомата Мура. Находясь в некотором состоянии a i автомат вырабатывает выходной сигнал (микрокоманду) yj ,соответствующий этому состоянию. В это же время формируются сигналы управления элементами памяти D i , которые определяют следующее состояние автомата в зависимости от текущего и значений логических условий x i. При поступлении на вход синхронизации автомата положительного фронта импульса С, автомат переходит в новое состояние, определяемое значениями Di на входах триггеров Т2 Т1 Т0.