Синтез автомата Мили по ГСА. Простейшая реализация
1. Разметка состояний автомата Мили по ГСА.
Используем для примера ГСА УА (рис.3.2) для синтеза автомата Мили. Обозначим начальное состояние как а1, а остальные: а2, а3, а4. В случае, когда в вершину, следующую за операторной, входит более чем одна дуга, состояние необходимо отметить на дуге так, что бы для всех входящих дуг соблюдалось правило разметки состояний. На ГСА (рис.3.19) это состояния а2 и а3. Состояние а2 необходимо отметить ниже входящей слева стрелки, а состояние а3 – выше входящей справа стрелки. В первом случае в а2 сошлись пути из двух операторных вершин, а во втором – путь из а2 не приводит в состояние а3 (этот переход был бы «пустым», без прохода через операторную вершину), а приводит в состояние а4 (после операторной вершины).
2.Построение графа переходов автомата Мили по ГСА.
3.Построение прямой таблицы переходов автомата Мили. Прямая таблица переходов строится по графу переходов (рис.3.20). Таблица 3.8
Количество строк в таблице равно количеству переходов в графе. В столбце аm записываются состояния, из которых начинается переход, в столбце as – состояния, в которые перешел автомат из состояния аm. В столбце Y amas записываются Yi – микрокоманды, вырабатываемые автоматом при переходе из состояния am в состояние as. В столбце Xamas записываются логические условия (их конъюнкция), обеспечивающие переход из состояния аm в состояние as. Прямая таблица позволяет проверить полноту переходов, показанных на графе переходов: дизъюнкция всех Xama s из состояния a m должна быть равна «1» (ÈXamas=1). В нашем примере дизъюнкция всех Xa1as равна: ÈXa1as = Xa1a1 Ú Xa1a2 = Ø x 3 Ú x 3 = 1. Аналогично: ÈXa2as = Xa2a3 Ú Xa2a4 = x 1 Ú Øx 1 = 1, ÈXa3as = Xa3a4 = 1, ÈXa4as = Xa4a1 Ú Xa4a2 = x2 Ú Øx2 = 1.
4. Кодирование состояний автомата. Выбор элементов памяти.
Кодирование состояний автомата Мили производится также как и автомата Мура. Используем для нашего примера минимальное кодирование состояний. Так как автомат имеет четыре состояния, то минимальное количество элементов памяти n = ] log2 | A | [ = ] log2 4 [ = 2. Выберем в качестве элементов памяти синхронные RS-триггера. Для нашего примера их количество равно двум. Обозначим их как Т1 Т0 , причем Т1 соответствует старшему разряду кода состояний. Выходы триггеров обозначаются соответственно Q1Q0. Значение числа Q1Q0 на этих выходах - есть код состояния автомата. Закодируем состояния автомата произвольно (Ka i = Q1Q0):
К а1 = 00, К а2 = 01, К а3 = 10, К а4 = 11.
5. Обратная структурная таблица автомата Мили. Обратная структурная таблица автомата Мили строится также как и для автомата Мура.
Таблица 3.9
При заполнении столбца F a m a s следует обратить внимание на то, что управление RS-триггерами отличается от управления D-триггерами. Если состояние некоторых разрядов RS-триггеров памяти автомата не изменяется при переходе из am в as , то нет необходимости вырабатывать соответствующие сигналы управления S=1 или R=1, так как комбинация S=0 и R=0 соответствует режиму хранения в RS-триггерах. Например, в третьей строке структурной таблицы описан переход из состояния a1 с кодом Kam = 00 (Q1 =0, Q0 =0) в состояние a2 с кодом Kas = 01 (Q1 =0, Q0=1). Что бы обеспечить переход из a1 в a2 нужно сохранить значение Q1 =0, а вмладший разряд памяти состояний Q0 установить «1», поэтому в столбце Famas третьей строки записано «S 0», что означает S0=1. При поступлении на вход синхронизации памяти состояний синхроимпульса С, триггер Т1 не изменит своего состояния (так как R1 =0 и S1 =0), а триггер Т0 перейдет из состояния «0» в состояние «1» (так как R0=0, а S0=1). В столбце Famas не будем записывать Ri = 0 или Si = 0, а будем записывать только те Ri и Si, значения которых должны быть равны «1». 6. Функции управления элементами памяти и функции выходов автомата Функции управления элементами памяти записываются по обратной структурной таблице автомата: R i = F( a m , X a m a s). S i = F( a m , X a m a s). Смысл этих выражений следующий (например для R1): значение функции R1 должно быть равно «1» (см. обратную структурную таблицу) в двух случаях (2-ая и 4-ая строки таблицы): если автомат находился в состоянии a4, а значение x2 = 1 или, если автомат находился в состоянии a4, а значение Øx2 =1. Таким образом, функция R1 имеет вид: R 1 = a 4 x 2 Ú a4Øx 2 = a4 . Остальные функции Ri и Si записываются аналогично: S 1 = a2 x 1 Ú a2 Øx 1 = a2 . R 0 = a 4 x 2 Ú a2 x 1 S 0 = a 1 x 3 Ú a3
Функции выходов автомата Yamas так же записываются по обратной структурной таблице автомата: y i = F( a m , X a m a s). Смысл этого выражения следующий (например для y4): значение функции y4 должно быть равно «1» (см. обратную структурную таблицу) при переходе автомата из состояний a2 или a3 в состояние a4 (6-ая и 7-ая строки таблицы). Иначе: если автомат находился в состоянии a2, а значение Øx2 = 1 или, если автомат находился в состоянии a3, то при переходе автомата из состояний a2 или a3 в состояние a4 значение y4 должно быть равно «1». Таким образом, функция y4 имеет вид: y 4 = y 5 = a2 Øx 1 Ú a 3 Остальные функции выходов имеют вид: y 1 = y 2 = a 1 x 3 . y 3 = a2 x1. y 6 = a4Øx 2 y 7 = a4 x 2
7. Структурная схема автомата Мили на жесткой логике
Структурная схема автомата Мили состоит из следующих цифровых узлов (Рисунок 3.21):
8. Функциональная схема автомата Мили на жесткой логике
Функциональная схема автомата Мили состоит из следующих цифровых узлов: · Память состояний. В нашем примере – два триггера Т1 Т0. · Дешифратор состояний DC. В нашем примере – дешифратор DC имеет 2 входа и 4 выхода. На вход DC подается Kam – код состояния am , а на выходах DC формируется унитарный код состояния автомата a m: единица на i-ом выходе дешифратора DC формируется при Kam = i. · Комбинационная схема формирования сигналов управления элементами памяти состояний автомата. В нашем примере реализует функции: R i = F( a m , X a m a s). S i = F( a m , X a m a s).
· Комбинационная схема формирования выходных сигналов автомата. В нашем примере реализует функции: y i = F( a m , X a m a s). · Память логических условий. В нашем примере это три D – триггера Тx1 Тx2 Тx3 . Значения логических условий на входе автомата Мили могут измениться во время формирования микрокоманды y i, что может привести к формированию «ложных» (лишних) микрокоманд. Поэтому необходимо зафиксировать значения xi , поступившие на входы автомата к моменту прихода импульса синхронизации, на время формирования микрокоманд yi. Таким образом, по положительному фронту импульса синхронизации С значения x i, запоминаются на триггерах Тxi, при С = 1 формируются микрокоманды yi и функции управления элементами памяти R i и S i , а по отрицательному фронту импульса С автомат переходит в следующее состояние, определяемое значениями R i и S i на входах памяти состояний автомата. Временная диаграмма, поясняющая работу автомата Мили приведена на рис.3.22, функциональная схема – на рис.3.23. Из временной диаграммы видно, что по положительному фронту импульса синхронизации С значения логических условий Х на входе автомата запоминаются на триггерах Тxi. Значения логических условий с выходов этих триггеров и текущее состояние автомата a m используются для вычисления Уm s – микрокоманд, вырабатываемых автоматом на переходе из состояния a m в состояние a s . Дешифратор состояний DC (рис.12) имеет вход разрешения V: при V=1 дешифратор выдает на одном из своих выходов значение «1», при V=0 – на всех выходах DC логический «0». Это означает, что при С=0 (а значит и V=0), все выходные сигналы автомата Уm s равны нулю. Автомат вырабатывает микрокоманды только при С=1.
3.1.3. Вопросы оптимизации автоматов с жесткой логикой.
1.Кодирование состояний автоматов. Анализ методов структурного синтеза автоматов показывает, что различные варианты кодирования состояний автомата приводят к различным выражениям функций Famas, в результате чего оказывается, что сложность схем, реализующих эти функции, существенно зависит от выбранной кодировки. Оптимальное кодирование состояний УА на D-триггерах. Очевидно, что выражение для функций управления элементами памяти состояний Di будет тем короче, чем реже встречается Di в столбце Famas обратной структурной таблицы автомата. К такой минимизации длины выражений Di приводит следующая процедура: 1. Каждому состоянию ai поставим в соответствие число, равное числу переходов в состояние ai (столбец as обратной структурной таблицы). 2. Состояния упорядочиваются по убыванию рассчитанной характеристики и кодируются следующим образом: - K=000..0 – присваивается первому состоянию в последовательности. - Коды с одной единицей присваиваются следующим состояниям. - Затем, коды с двумя единицами – следующим состояниям, и т. д.
В рассмотренном выше примере синтеза автомата Мура количество переходов в состояния as таково: в состояние a0 имеется 2 перехода, в a1 – 1 переход, в a2 – 2 перехода, в a3 – 3 перехода, в a4 – 1 переход. Полученная по убыванию числа переходов последовательность состояний: a3 a2 a0 a1 a4 . Поэтому кодирование состояний в нашем примере можно считать оптимальным: K a3 = 000, K a2 = 010, K a0 = 100, K a1 = 001, K a4 = 101.
Оптимальное кодирование состояний УА на RS-триггерах. Очевидно, что длина выражений для функции Ri и Si будет зависеть от того, сколько раз встречаются Ri или Si в столбце Famas структурной таблицы автомата. Минимизация выражений возможна при использовании соседнего кодирования состояний автомата. При соседнем кодировании любые два состояния аm и as, связанные дугой на графе, кодируются наборами (двоичными числами), различающимися лишь в одном разряде. Например, на рис.3.24 приведен фрагмент графа переходов, в котором может быть применено соседнее кодирование состояний.
Если в примере (рис. 3.24) закодировать состояния следующим образом: Кa1= 00, Кa2 = 10, Кa3 = 01, Кa4 = 11, то кодирование будет соседним, так как при переходе из am в as необходимо формировать только одну функцию R или S: a1 ® a2 : 00 ® 10 - S1 a1 ® a3 : 00 ® 01 - S0 a2 ® a4 : 10 ® 11 - S0 a3 ® a4 : 01 ® 11 - S1. Унитарное кодирование состояний автомата. Унитарный код – это n-разрядный двоичный код, в котором только одна единица и n-1 нулей (или наоборот). При унитарном кодировании состояний автомата с числом состояний n, необходимо n-элементов памяти, однако не требуется дешифратор (DC) состояний. При унитарном кодировании состояний и памяти на D-триггерах в каждой строке структурной таблицы автомата может быть записана всего одна функция Di – для установки в «1» триггера, соответствующего состоянию as = ai . При использовании RS-триггеров, в каждой строке таблицы (если состояние автомата должно измениться), записываются две функции: Rm и Ss. Функция Rm «сбрасывает» состояние am , а функция Ss «подготавливает» переход в новое состояние as . Унитарное кодирование следует использовать в случае, когда число состояний автомата не велико. 2. Синтез УА по структурной таблице с узлами. Описанные выше методы синтеза УА универсальны, однако для сложных ГСА функции переходов и выходов оказываются также очень сложными и плохо поддаются минимизации. Если в ГСА несколько путей, сходящихся в одной точке, а затем снова расходящихся, то каждый путь можно разбить на две составляющие: до точки схода и после точки схода. На ГСА эти точки обозначаются, как узлы qI. Узел qI – отмечается на входе некоторой условной вершины, в которую приходит не менее двух путей. При использовании узлов qI в графе переходов, прямой и структурной таблицах автомата возможны четыре вида переходов: из состояния am в узел qs : am ® qs; из узла qm в узел qs : qm ® qs; из узла qm в состояние as : qm ® as из состояния am в состояние as : am ® as. Составление структурной таблицы автомата желательно делать в указанной последовательности переходов. Следует заметить, что: · узлы – это не состояния, они не кодируются; · на переходах в узел в автомате Мили ( am ® qs или qm ® qs) не должны встречаться операторные вершины; · на переходах в узел ( am ® qs или qm ® qs), независимо от типа автомата, не заполнять столбцы Y ama s или Yam и F amas структурной таблицы автомата.
Рассмотрим пример построения автомата Мили на D-триггерах с использованием узлов ( ГСА рис.3.25). 1) Разметим состояния ai автомата Мили. 2) Разметим узлы qI в точках схода путей. На ГСА автомата - 4 состояния и 2 узла. 3) Не будем в нашем примере строить прямую таблицу и граф переходов автомата. Определим необходимое число элементов памяти: n = ] log2 4 [ = 2. В качестве элементов памяти используем 2 D-триггера: Т1 Т0 .
4) Построим обратную структурную таблицу автомата. Обратная структурная таблица автомата Мили (Таблица 3.10) содержит переходы четырех видов: am ® qs; qm ® qs; qm ® as; am ® as. Будем заполнять таблицу в указанной последовательности переходов. 5) Закодируем состояния автомата в соответствии с рекомендациями по минимальному кодированию состояний с памятью на D-триггерах: К a 1 = 00; К a 2 = 11; К a 3 = 10; К a 4 = 01; Таблица 3.10
6) Запишем функции выходов и управления элементами памяти сле- дующим образом. Сначала запишем функции переходов в узлы q 1 и q2 : q 1 = a1 x0 Ú a 2 q 2 = a 3 Ú a4 Øx4 Ú q 1 Øx 1 x 2 Затем введем вспомогательные функции переходов f I (где i – соответствует номеру перехода вида qm ® as или am ® as в таблице): f 8 = q 1 Øx 1 Øx 2 f 9 = q 1 x 1 f 10 = q 2 Øx 3 f 11 = q 2 x 3 Далее, выразим функции D 1 и D 0 через дизъюнкцию f I : D 1= f 8 Ú f 9 D 0 = f 8 Ú f 10 Ú f 11 Функции выходов запишем аналогично с использованием функций f I , заметив, что y 5 = D 0 , а y 1 = D 1 Ú f 10 : y 1 = f 8 Ú f 9 Ú f 10 = D 1 Ú f 10 y 2 = f 9 Ú f 10 y 3 = f 9 Ú f 11 . y 4 = f 8 Ú f 11 y 5 = f 8 Ú f 10 Ú f 11 = D 0 y 6 = a 4 x 4 Функциональная схема автомата приведена на рис.3.26.
Рассмотрим пример построения автомата Мура с памятью состояний на RS-триггерах по ГСА рис.3.27.
В отличие от автомата Мили можно отметить еще один узел q3. В узел q 3 переходы из состояний a4 и a5. Построим обратную структурную таблицу автомата Мура без учета узлов.
Обратная структурная таблица автомата Мура по ГСА (рис.3.27) без учета узлов q содержит 17 строк (17 переходов), причем в переходах участвует большое число логических условий x i . Поэтому выражения для функций управления элементами памяти Ri и Si будут достаточно громоздкими.
Обратная структурная таблица автомата Мура по ГСА (рис.3.27) без учета узлов q. Таблица 3.11
Построим обратную структурную таблицу автомата Мура с учетом узлов. При этом обратим внимание на формирование столбца таблицы Famas. Для каждого состояния as определяется множество сигналов Ri и Si, которые обеспечивают переходы из am в as, проходящие через узлы q. В столбец Fama s таблицы записываются Ri и Si, которые находится объединением найденных множеств сигналов Ri и Si. Эта операция нужна только при реализации памяти состояний автомата на RS-триггерах; в автомате на D-триггерах сигналы управления элементами памяти Di зависят только от состояния as. Обратная структурная таблица автомата Мура по ГСА (рис.3.27) c учетом узлов q содержит 13 строк, а условия переходов значительно проще, чем без узлов. Запишем функции выходов и управления элементами памяти следующим образом. Сначала запишем функции переходов в узлы q1, q2 и q3 : q 1 = a1 x0 Ú a 3 q 2 = a 2 Ú q 1 Øx 1 x 2 Ú q 3 Øx4 q 3= a 4 Ú a 5
Таблица 3.12
Затем введем вспомогательные функции переходов f I (где i – соответствует номеру перехода вида qm ® as или am ® as в таблице): f 9 = q 3 x 4 f 10 = q 1 x 1 f 11 = q 1 Øx 1 Øx 2 f 12 = q 2 Øx 3 f 13 = q 2 x 3 Далее, выразим функции R I и S I через дизъюнкцию f I : R 0 = f 12 Ú f 9 S 0 = f 13 Ú f 10 Ú f 11 R 1 = f 13 Ú f 9 S 1 = f 10 Ú f 11 Ú f 12 R 2 = f 12 Ú f 13 S 2 = f 10 Функции выходов: y 1 = a 2 Ú a 3 Ú a 4 y 2 = a 2 Ú a 4 y 3 = a 2 Ú a 5 y 4 = a 3 Ú a 5 y 5 = a 3 Ú a 4 Ú a 5 y 6 = a 1 Функциональная схема автомата приведена на рис.3.28.
Популярное: Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... ![]() ©2015-2024 megaobuchalka.com Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (3272)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |