Синтез конечных автоматов

реклама
ФАКУЛЬТЕТ «ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»
Кафедра прикладной математики и ВТ
О.В. Прохорова
Методические указания к выполнению курсовой работы
«Синтез конечных автоматов» для студентов специальности
230201.65
по дисциплине «Информационные технологии»
1
Самара 2012
УДК 62-50 ( 076.5 )
Синтез конечных автоматов: Методические указания к выполнению курсовой работы для студентов специальности 230400 / Сост.
О.В. Прохорова. – Самара, СГАСУ, 2012. - 28c.
Изложены основные требования к выполнению курсовой работы по синтезу конечных автоматов. Приведено индивидуальное задание, описан пример построения автомата
по заданной грамматике и его схемотехническая реализация, даны сведения, необходимые
для выполнения работы.
.
2
Оглавление
Введение ................................................................................................................... 3
1. Задание на курсовое проектирование ............................................................... 4
2. Построение и преобразование грамматик ........................................................ 7
3. Построение детерминированного конечного автомата .................................. 9
4. Минимизация автомата .................................................................................... 12
5. Работа с сетями Петри ...................................................................................... 14
6. Кодирование состояний автомата .................................................................. 17
7. Структурный синтез автомата ........................................................................ 21
Литература ............................................................................................................. 28
Введение
Синтез конечных автоматов является важным разделом в изучении вопросов организации вычислительных процессов и структур. Необходимость в
построении теории автоматов возникла с развитием вычислительной техники, с появлением теории формальных языков и грамматик - теории, позволяющей описывать и анализировать синтаксические свойства языков программирования и других формальных языков. Потребовалось решение вопросов преобразования грамматик в автоматы, которые бы распознавали и
транслировали множества, задаваемые грамматиками.
Основой изучения данного раздела теории является
 построение базовых формальных моделей описания логических структур,
динамики поведения вычислительных структур;
 выработка навыков проектирования вычислительных систем;
 формирование представления о методах, используемых при решении задач
анализа, синтеза организации функционирования вычислительных структур и системного программного обеспечения.
3
1. Задание на курсовое проектирование
1. Построение право-линейной грамматики по полученным данным.
2. Переход от право-линейной грамматики к автоматной. Результат Право-линейная и автоматная грамматики.
3. Построение недетерминированного распознающего автомата.
4. Результат - таблица переходов и граф переходов автомата.
5. Переход от недетерминированного автомата к полностью определенному детерминированному автомату. Результат - таблица переходов и граф переходов автомата, проверка эквивалентности автоматов.
6. Минимизация автомата. Построение таблиц переходов на основе
эквивалентных преобразований. Построение разбиения множества
состояний на классы эквивалентности. Результат - таблица переходов
и граф переходов минимального автомата.
7. Выполнение предыдущего этапа с использованием сети Петри. Результат - сеть Петри, соответствующая автоматной грамматике, и минимальная сеть Петри. Сравнение полученной минимальной сети с
таблицей переходов минимального автомата.
4
8. Кодирование состояний автомата. Результат - логические функции переключения элементов памяти; логические функции состояния ошибки
и состояния, подтверждающего принадлежность анализируемой формальной цепочки входных символов формальному языку заданной
грамматики.
9. Построение комбинационной схемы автомата.
Для синтеза конечного автомата задана формальная грамматика
G = < V , W , S , R >,
где V = {c1, c2,..., c18} - словарь терминальных символов;
W = {S, A, B, C, D, E, F} - словарь нетерминальных символов;
S - начальный символ грамматики; R - множество правил вывода:
S  c1 c2 c3 A
С  c8 E
S  c1 c4 c5 B
C  c9
S  c6 C
D  c10 S
S  c7 F
D  c11
A  c8 D
E  c10 S
A  c9
E  c11
B  c8 E
F  c12 c13 c14 c15
B  c9
F  c10 c13 c14 c15
F  c17 c18 c15
Задача курсовой работы - синтезировать конечный автомат, распознающий цепочки входного языка на принадлежность заданной грамматике.
Для выполнения индивидуальной работы требуется перейти к новому
терминальному словарю, используя табл. 1 и 2.
5
Таблица 1
А
Б
В
Г
Д
Е
Ж
З
И
Й
К
Л
М
Н
О
П
x1 x5 x2 x4 x6 x6 x4 x3 x3 x0 x7 x0 x3 x7 x4 x5
Р
С
Т
У
Ф
Х
Ц
Ч
Ш Щ
Ъ
Ы
Э
Ю
Я
x0 x4 x5 x7 x2 x5 x4 x2 x2 x0 x6 x1 x1 x3 x7 x5
Таблица 2
c1
c2
c3
c4
c5
c6
c7
c8
Ш
Е
В
Е
Л
Е
В
А
x2
x6
x2
x6
x0
x6
x2
x1
c9
x5
c10
c11
c12
c13
c14
c15
c16
Э
Л
Ь
В
И
Р
А
x1
x0
x6
x2
x0
x1
x3
c17
c18
В
x5
x2
Каждый студент вписывает свою фамилию, имя, отчество в табл. 2.
При этом на основе соответствия букв русского алфавита и символов xi
( табл. 1) устанавливается индивидуальное соответствие xi и ci.
6
2. Построение и преобразование грамматик
На основе использования табл.1 и 2 составляется грамматика индивидуальная для конкретного студента. Например,
1. S  x7 x0 x1 A
9. C  x7 E
2. S  x7 x3 x7 B
10. C  x7
3. S  x0 C
11. D  x4 S
4. S  x6 F
12. D  x5
5. A  x7 D
13. E  x4 S
6. A  x7
14. E  x5
7. B  x7 E
15. F  x5 x1 x5 x6
8. B  x7
16. F  x7 x1 x5 x6
17. F  x7 x1 x6.
Грамматика называется праволинейной, если правая часть каждого
правила содержит не более одного нетерминала, причем этот нетерминал
является самым правым символом.
Грамматика называется автоматной, если ее правила имеют вид:
AxB;
A  x , где x  V ,
В  W.
Для сведения праволинейной грамматики к автоматной используют
следующий прием (в качестве примера возьмем одно из правил приведенной выше грамматики, а именно, правило S -> x7 x0 x1 A). Перепишем левую
7
часть правила и первый слева символ правой части, а оставшуюся от правой
части цепочку обозначим новым нетерминальным символом, который дополнительно будет вводиться в грамматику, например , S 1. В результате получим следующее новое правило:
S  x7 S1;
S1  x0 x1 A.
Затем, аналогичным способом преобразуем правило для S1 (получим правила вида S1  x0 S2 и S2  x1 A). Правило S2 не требует дальнейших преобразований, так как оно удовлетворяет требованиям правил автоматной
грамматики.
Данным образом преобразуются все правила грамматики, которые
имеют в правой части цепочку терминальных символов.
Продолжим пример. Из праволинейной грамматики, записанной выше,
получаем автоматную грамматику G’ с правилами вывода вида:
1. S  x7 S1
16. D  x5
2. S1 x0 S2
17. E  x4 S
3. S2 x1 A
18. E  x5
4. S  x7 S3
19. F  x5 S5
5. S3 x3 S4
20. S5x1 S6
6. S4x7 B
21. S6 x5 S7
7. S  x0 C
22. S7 x6
8. S  x6 F
23. Fx7 S6
9. A  x7 D
24. F  x7 S8
10. А  x7
25. S8  x1 S7.
11. B  x7 E
12. B  x7
13. C  x7 E
14. C  x7
8
15. D  x4 S
3. Построение детерминированного конечного автомата
Для автоматной грамматики строится таблица переходов недетерминированного автомата (в таблице по строкам расположены состояния, а по столбцам - входные символы, в клетках на пересечении i-й строки и j-го столбца
проставляется состояние, в которое переходит автомат из состояния i по
приходу входного символа j ). Для этого каждому нетерминалу ставится в
соответствие некоторое состояние автомата. Затем по грамматике таблица
заполняется следующим образом: на пересечении строки состояния, соответствующего нетерминалу левой части правила, и столбца, соответствующего терминальному символу, ставится состояние, соответствующее нетерминальному символу правой части правила. Если нетерминал в правой части отсутствует, то в клетке таблицы ставится заключительное состояние,
которое вводится дополнительно к уже имеющимся состояниям.
Приведение недетерминированного автомата
к детерминированному виду
Детерминированным конечным автоматом называется конечный автомат, любая клетка таблицы переходов которого не содержит несколько состояний. В пустой клетке подразумеваем состояние ошибки.
Процедура приведения недетерминированного конечного автомата к
детерминированному (по таблице переходов) сводится к следующему:
1. Определяется клетка, в которой содержится 2 или более состояний
9
( например, qi и qj).
2. Строка i и строка j накладываются друг на друга, и в таблице пере-
ходов появляется новая склеенная строка, соответствующая новому
состоянию qi, j.
3. Если состояние qi или qj стоит отдельно или в комбинации с дру-
гими состояниями еще в какой-либо клетке таблицы, то соответствующая строка i или j сохраняется в таблице, иначе - убирается
из таблицы после склеивания.
Продемонстрируем изложенное на примере:
Таблица 3
q0
Состояние
x0
S (нач. сост.)
q3
x1
x2
x3
x4
x5
x6
x7
q6
q7, q9
q1
A
q4, q15
q2
B
q5, q15
q3
C
q5, q15
q4
D
q0
q15
q5
E
q0
q15
q6
F
q7
S1
q8
S2
q9
S3
q 10
S4
q 11
S5
q 12
S6
q 13
S7
q 14
S8
q 15
закл. сост.
q11
q12, q14
q8
q1
q10
q2
q12
q13
q15
q13
Склеиваем состояния q7 и q9 в состояние q7,9 ( см. строку q0 и столбец X7 ). Удаляем из таблицы строку состояния q9, так как на состояние q9
10
нет больше переходов. Cтроку состояния q7 заменяем на склеенную строку
q7,9, так как на состояние q7 нет больше переходов. Аналогично склеиваем
состояния q4 и q15 в состояние q4,15 (cм. строку q4 и столбец X7). Заменяем строку состояния q4 на состояние q4,15, так как на состояние q4 нет
больше переходов. Не удаляем из таблицы строку состояния 15, так как на
состояние 16 есть ссылки в таблице переходов. Склеиваем состояния q5 и
q15 в состояние q5,15 ( см. строку q2 и столбец X7 ). Заменяем строку q5
на строку q5,16. Склеиваем строки состояний q12 и q14 в одну строку с состоянием q12,14 путем наложения строк. А строку q14 удаляем из таблицы,
так как на состояние q14 нет других ссылок в таблице переходов. В итоге,
получаем таблицу 4:
Таблица 4
q0
x0
q3
x1
x2
x3
x4
x5
x6
q6
x7
q7, 9
нач.сост.
q1
q2
q3
q4,15
q5,15
q6
q7,9
q8
q 10
q 11
q 12
q 13
q12,14
q 15
q4, 15
q5,15
q5,15
q0
q0
q8
q15
q15
q11
q12, 14
q10
q1
q2
q12
q13
q15
q13
q13
закл. сост
11
4. Минимизация автомата
Теорема. Для любого автомата существует минимальный автомат единственный с точностью до изоморфизма.
Рассмотрим алгоритм минимизации автомата по методике Мура:
1. В
таблице переходов автомата отыскиваются строки, у которых
имеются рабочие состояния в одинаковых столбцах. Под рабочим состоянием будем понимать состояние, отличное от состояния ошибки.
Состояние ошибки на таблице переходов обозначено пустой клеткой.
Состояния, соответствующие таким строкам, заносятся в группы.
2. Рабочие состояния внутри группы проверяются на эквивалентность.
Два состояния qi и qj называются эквивалентными, если для любого
входного символа Xk функции выходов и функции переходов пар
( qi, Xk ) , ( qj, Xk ) будут равны. ( В курсовой работе функции выходов
не заданы).
3. Если среди рабочих состояний групп через ряд проверок устанавливает-
ся эквивалентность, то такие состояния также считаются эквивалентными.
Продолжим рассматривать решение в соответствии с обозначенным
алгоритмом. Анализ делаем по табл. 4. Группы состояний, проверяемых на
эквивалентность, следующие:
( q1;q2;q3;q10), (q4,15; q5,15 ), (q8;q11; q12,14 ).
12
Проведем анализ этих состояний по переходам. Устанавливаем, что состояния q4,15 и q5,15, а также cостояния q2 и q3 являются внутри обозначенных пар эквивалентными по определению. Cостояния q1 и q2 эквивалентны
через переход по x7 в эквивалентные состояния q4,15 и q5,15. Состояние q10
эквивалентно q1 и q2 через переход по x7. Состояния q8, q11 и q14,15 не эквивалентны, так как из них по x1 следуют переходы в состояния q1, q12 и q
12,14,
которые никак нельзя считать эквивалентными.
Обозначив эквивалентные состояния одним состоянием, введем новые
нетерминальные символы r вместо q. Будем иметь:
r0 = q0; r1 = (q1, q2, q3; q10 ); r2 = ( q4,15; q5,15 ); r3 = q6; r4 = q7,9;
r5 = q8; r6 = q11; r7 = q12; r8 = q12,14; r9 = q13, r10= q15.
Введем полученные замены и подстановки в табл.5 переходов автомата.
Будем иметь новую таблицу 6 эквивалентную с точностью до изоморфизма
таблице переходов 5.
Таблица 6
Соответствие
нетерминалов
r0 -
q0
Терминалы
Х0
Х1
Х2
Х3
Х4
Х5
r1
Х6
Х7
r3
r4
нач.сост.
r1
r2
r3
r4
r5
r6
r7
r8
r9
r10
q1;q2;q3;q10
q4,15; q5,15
q6
q7,9
q8
q11
q12
q12,14
q13
q15
r2
r0
r5
r10
r6
r8
r1
r1
r7
r9
r9
r9
r10
закл. сост.
13
5. Работа с сетями Петри
Сеть Петри определяется как формальная система, характеризуемая 4
формальными объектами: S = < P, T, E, M0 >, где
 P - конечное множество позиций;
 T - конечное множество переходов;
 E - конечное множество дуг;
 M0 - начальная маркировка.
Графически сеть Петри изображается двудольным графом с двумя типами
вершин P и T. При переходе от грамматики к сети Петри позиции ассоциируют с нетерминальными символами, а переходы - с терминальными. Позиции могут иметь несколько входящих и исходящих дуг, а переходы - одну
входящую дугу и не более одной исходящей дуги для автоматных сетей .
Процедура минимизации конечного автомата с использованием сети
Петри:
1. На сети выделяются 2 позиции, имеющие одинаковое количество оди-
наковых входных переходов.
2. Позиции склеиваются. При этом множества входящих и исходящих дуг
этих позиций объединяются без дублирования.
3. На сети выделяются 2 позиции, имеющие одинаковое
количество одинаковых выходных переходов.
4. Позиции склеиваются. При этом множества входящих и
исходящих дуг этих позиций объединяются без дублирования.
14
5. Если на найденные позиции
есть ссылки из других позиций, то они
остаются в сети, иначе удаляются после склеивания вместе с входными
и выходными дугами и соответствующими переходами.
6. Если из некоторой позиции по одинаковому переходу xi существует более одной выходной позиции, то такие выходные позиции должны быть
склеены.
Процедура повторяется с п. 1 до тех пор, пока позиции сети могут
быть склеены.
Рассмотрим построение сети Петри для автоматной грамматики. Выполняя все необходимые правила построения сети и минимизации автомата по сети, последовательно получим сети, приведенные на рис.1 -3. На
последней сети Петри проставлены ri, по разметке которых легко сравнить результаты минимизации автомата по сети Петри с минимизацией автомата по методике алгоритма Мура (См. табл. 6).
x4
х7 S1
х0
х3
S3
х7
х7
A
D
х7
B
E
S
х5
х6
S5
х1
S6
x7
F
х7
х5
х7
х7
S4
х7
х0
.
х1
S2
x5 S7
х5
х7
Z
х6
х1
S8
х4
Рис. 1. Сеть Петри, составленная по автоматной грамматике
15
Применяя выше названные правила минимизации сети Петри, можно объединить вершины {D, E} и {A,B,C} согласно правилам 3-4. У них
имеется на выходе одинаковое количество одинаковых переходов. Затем
объединяются вершины {{D,E,}Z} и {S1,S3}
согласно правилам 1-2, за-
тем объединяются вершины {S4,{A,B,C}} согласно правилам 1-2. У них
имеется на выходе одинаковое количество одинаковых переходов. При
этом вершина Z остается в сети и сама по себе, т.к. она имеет входы и от
других вершины, отличных от входов объединяемых вершин. Затем объединяем вершины {S6,S8}, имеющие одинаковые входные переходы x7,
идущие от одной и той же вершины F. При этом вершину S6 оставляем,
поскольку у нее есть вход от еще одной вершины S5. Вершину S8 заменяем на склеенную {S6, S8}, поскольку у нее вход только от вершины F.
Построим сеть после преобразования, получим:
x4
х7
х0
S2
S1,S3 х3
х7
x7
x1
x0
D,E,Z
х7
x5
S4,A,B,C
.
S
х5
х6
F
S5
х7
х1
S6
Z
x5 S7
х6
х1
x5
S6,S8
Рис. 2. Минимизированная сеть Петри
16
Если провести параллель между состояниями минимизированного
детерминированного автомата и минимальной сетью Петри, то можно
установить соответствие:
r0
r1
r2
r3
r4
r5
r6
r7
r8
r9
r10
S
S4,A,B,C
D,E,Z
F
S1,S3
S2
S5
S6
S6,S8
S7
Z
6. Кодирование состояний автомата
Кодирование автомата определяет обеспечение одного из важнейших
свойств автомата, а именно устойчивость автомата по отношению к состязаниям элементов памяти. Переходам автомата из одного состояния в другое
сопоставим изменение состояний элементов памяти.
Если на входы двух элементов памяти подать одновременно один сигнал, то на выходе сигнал возникнет не одновременно. Это явление называется состязаниями элементов памяти.
Считается, что автомат работает устойчиво, если в процессе его работы
не возникает критических состязаний. Критическим считаем такое состязание элементов памяти, когда автомат под действием одного и того же входного воздействия может перейти в разные состояния. Поэтому первоочередной задачей кодирования является обеспечение устойчивости автомата.
Существует 2 способа кодирования автомата. Первый характеризуется
устранением всех состязаний элементов памяти. Для этого всем внутренним
состояниям, для которых существуют переходы, приписываются соседние
кодовые комбинации, отличающиеся друг от друга одной переменной.
Второй способ кодирования связан только с устранением критических
состязаний. Методы первой и второй групп имеют свои преимущества и свои
недостатки.
Чтобы приступить к кодированию, которое необходимо выполнить для
построения в последующем структурной схемы автомата, введем в табл. 6
17
переходов автомата символ конца цепочки входных символов, например,
символ x2, который оказался неиспользуемым в рассматриваемой грамматике. Соответственно, необходимо в таблицу переходов ввести переход из заключительного состояния r11 в начальное состояние r0 по входному символу
x2. Новая таблица переходов примет вид, показанный табл. 7, в которой последний столбец отведен для формируемых кодов состояний автомата.
Число внутренних переменных кода, изменяющих свои значения при переходе автомата из одного состояния в другое, есть расстояние по Хеммингу между этими кодами .
Наименьшее число переменных, необходимое для кодирования синхронного автомата с N внутренними состояниями определяется формулой:
n = ] log2 (N) [
] [ - ближайшее сверху к log2 (N) целое число. Например, при N=13 n
будет равно 4.
Число кодовых переменных, необходимое для кодировки состояния автомата соседними кодами определяется по формуле:
n = 2  ] log2 (N) [ - 1.
Знаком  обозначена операция умножения.
Чем меньше внутренних переменных изменяется при любом переходе,
тем проще реализация функций переходов, т.е. проще структурная реализация автомата.
В курсовой работе используется код минимальной длины. В связи с
этим может возникнуть ситуация, когда все соседние коды заняты, а состояния автомата еще не закодированы в полном объеме. Это требует увеличения
расстояния по Хеммингу на следующем шаге кодирования. Кодирование будем осуществлять методом проб и ошибок.
18
Таблица 7
r0
нач. сост.
r1
r2
r3
r4
r5
r6
r7
r8
r9
x0
r1
x1
x2
x3
r5
x4
x5
x6
r3
r0
r10
r6
r8
r1
r1
r7
r9
r9
r9
r10
r0
r10 закл. сост.
x7
r4
r2
Код
0000
0001
0011
0010
0100
1100
0110
0111
1010
1111
1011
При этом используем направления кодирования состояний, представленные на рис. 4.
r0
r4
r1
r3
r2
r6
r7
r9
r10
r8
r5
Рис. 4
Оказалось, что из 17 возможных переходов 10 являются соседними с
расстоянием 1; 4 перехода имеют расстояние 2, два перехода с r10 на r0 и с
19
r5 на r1 имеет расстояние 3. Суммарное расстояние по Хеммингу для 17 переходов равно 24. Возможно, существует и другое более эффективное решение. В курсовой работе выполняются три варианта кодирования, из которых
выбирается наилучший на основе критерия Махалонобиса. Критерием кодирования автомата считаем минимум функционала Махаланобиса
Фм 
M
 ( ri , rj )  min ,
i , j 1
где M - число переходов. Через (ri , rj) обозначено расстояние между
кодами ri и rj по Хеммингу.
20
7. Структурный синтез автомата
Выберем в качестве структурной схемы распознающего автомата следующую схему:
z(t-1)
.
Комб.
p1
p2
Дешифр.
xi
схема
derr
рег.1
z(t)
рег.2
p3
dok
t1
t2
НУ
Рис. 5. Структурная схема распознающего автомата
Схема (рис. 5) состоит из
комбинационной схемы, реализующей
функцию возбуждения элементов памяти. Элементы памяти построены из
триггеров по двухрегистровой схеме. Схема содержит также дешифратор
входных сигналов.
При синхронной реализации автомата предполагается, что все переходные процессы в этих схемах успевают закончиться к моменту прихода
сигнала t1, стробирующего (разрешающего) прием информации с выходов
комбинационной схемы в триггеры регистра 1. Второй триггерный регистр,
прием информации в который стробируется синхросигналом t2, нужен для
того, чтобы все состояния автомата сделать устойчивыми. Триггеры регистра
1 будем называть вспомогательными, а регистра 2 - основными.
21
derr - сигнал функции ошибки; dok - сигнал функции принадлежности цепочки входных символов языку с грамматикой G’, (p1, p2, p3 - код
входного символа); z(t-1) - код предыдущего состояния; z(t) - код нового состояния
С помощью сигнала НУ осуществляется начальная установка триггеров автомата.
Дешифратор преобразует двоичный код символов (p1,p2,p3) в унитарный код, в котором только одна из выходных переменных принимает значение 1, в то время как все другие равны 0.
Комбинационная схема автомата реализует функцию его переходов.
Исходным заданием для ее построения является таблица или граф переходов, а также выбранный вариант кодирования .
Построить функцию переходов, значит найти переключательную
функцию кодирующих (внутренних) переменных. Каждая внутренняя переменная кода (z1,z2,z3,z4 ) представляет собой состояние соответствующего
элемента памяти, то есть триггера. По переключательным функциям внутренних переменных находятся функции возбуждения соответствующих им
триггеров. Реализация этих функций образует комбинационную схему автомата.
Рассмотрим часть общей комбинационной схемы автомата,
реализу-
ющую функцию переходов по x0, x1, ..., x7.
22
x0 x1 x2 x3 x4 x5 x6 x7
z1
z2
z3
z4
fx0
z1(t+1) 1 1 1
z2(t+1) 2 ...
z3(t+1) 3 25
z4(t+1) 4
2
... 1
26
z1(t+1) 5
f x1 z2(t+1) 6 3
z3(t+1) 7 ... 1
z4(t+1) 8 27
.....
z1
z2
z3
......
f x7
z1(t+1) 25
z2(t+1) 26 4
z3(t+1) 27 ... 1
z4(t+1) 28 28
z4
Рис. 6. Общая комбинационная схема автомата
Рассмотрим построение логической схемы f x i на примере для f(x0):
z(t)
xo
f(xo) z(t+1)
Рис. 7. Общий вид схемы обработки сигнала х0
Пусть входной сигнал xo обрабатывается автоматом в соответствии с
функцией переходов следующим образом: r0  r1;
r4  r5. Приведем
23
таблицу кодировки (см. табл.8), чтобы на ее основе построить таблицу переходов автомата по символу xo.
Таблица 8
r0
r1
r2
r3
r4
r5
r6
r7
r8
r9
r10
0000
0001
0011
0010
0100
1100
0110
0111
1010
1111
0111
Cоставим таблицу переходов автомата по символу x0:
Таблица 9
ri
t
t+1
z1
z2
z3
z4
z1
z2
z3
z4
r0
0
0
0
0
0
0
0
1
r4
0
1
0
0
1
1
0
0
Запишем в соответствии с табл.9 функции z(t+1). Будем иметь:
z1(t+1) = z2(t);
z2(t+1) = z2(t);
______
z3 (t+1) = z3(t);
z4(t+1) = Z 2(t )
Построим схему на элементах И-НЕ:
z1 z2 z3 z4 x0
z1(t+1)
z2(t+1)
&
&
z3(t+1)
&
&
z4(t+1)
&
&
&
24
Рис. 8. Схема обработки входного сигнала х0
Аналогично составляются логические функции остальных zi (t+1)
и строятся соответствующие им комбинационные схемы f xi , а в итоге и вся
схема : xi & z (t)  z (t+1) , то есть схема таблицы переходов автомата. В
случае, когда по таблице переходов сложно записать функцию zi(t+1), применяют построение карт Карно и минимизацию слабо определенных функций.
Функция возбуждения сигнала ошибки может быть представлена в виде:
derr = x0  derrx0  x1 & derr x1  ...  x7 & derr x7.
Считаем, что ошибки по xi могут возникать тогда, когда на xi сработало
какое-либо другое состояние, не соответствующее заданному по таблице переходов. Другими словами, при приходе сигнала xi автомат находился не в
тех состояниях, которые ему были предписаны таблицей переходов. Построим соответствующую таблицу:
25
Таблица 10
r
derr x0
derr x1
...
derr x7
0
0000
1
1
1
1
0001
0
0
1
2
0011
1
1
0
3
0010
1
1
1
4
0100
1
1
0
5
1100
0
1
1
6
0110
1
1
1
7
0111
1
0
1
8
1010
1
1
0
9
1111
1
0
1
10
1011
1
1
1
Анализ табл. 10 показывает, что в ней больше единиц, чем нулей. Поэтому удобно строить логическую функцию для derrxi . Для каждой функции
derrxi строим карты Карно и проводим минимизацию слабо определенной
функции. На карте проставляются 0 и 1. Затем берется отрицание полученной в ходе минимизации функции. Например, построим с помощью карт
Карно функцию ошибки при обработке x0:
z1
z1
__
0
1
0
z3 0
z3
z2
0 1
* *
0 0
0 *
z2
*
*
0
0
z4
__
d err , x0  ( z1 & z3)  ( z3& z 4)  z1  z 4.
z4
z4
z2
26
Функцию ошибки можно представить формулой вида
derr  x0 & derrx0x7 & derrx7 ,
которая после формирования необходимых логических функций
будет
изображаться соответствующей комбинационной схемой.
Сигнал dok =1 вырабатывается только тогда, когда на вход автомата
пришел сигнал «конец цепочки», в рассматриваемой задаче x2, а автомат
находился в заключительном состоянии, то есть
dok  derrx 2 & x 2  1.
Очевидно, при этом derr = 0.
Комбинационная схема функции dok строится аналогично рассмотренным выше построениям.
27
Литература
1. Льюис Ф., Розенкранц Д., Стинз Р. Теоретические основы проектирования
компиляторов. - М.: Мир, 1979. -654 с.
2. Шоломов Л. А. Основы теории дискретных логических и вычислительных
устройств. - М. : Наука, 1980. - 400 с.
3. Герасимов И. В. Построение цифровых устройств в автоматике и вычислительной технике на современной элементной базе: Учеб. пособие / ЛЭТИ. - Л., 1984. - 49 с.
4. Поспелов Д. А. Логические методы анализа и синтеза схем. - М. : Энергия,
1974. - 368 с.
5. Синтез распознающего автомата: Методические указания к курсовой
работе .-Новочеркасск: Изд-во НПИ, 1987. - 32 с.
6. Прохорова О.В. Синтез конечных автоматов. Йошкар-Ола: МарГТУ, 2000.
– 24с.
28
Скачать