- •1 Разработка машинного алгоритма выполнения операции автоматом.
- •2 Разработка гса и функциональной схемы операционной части автомата
- •2.1 Выбор длины разрядной сетки функциональных узлов операционного автомата
- •2.2 Содержательный граф автомата
- •2.3 Список микроопераций и логических условий
- •3 Разработка логической схемы управляющей части автомата
- •3.2 Кодирование состояний автомата
- •3.3 Построение функций возбуждения входов элементарных автоматов и логической схемы автомата
- •4 Оценка времени выполнения операции
- •4.1 Расчёт времени выполнения микропрограммы
3 Разработка логической схемы управляющей части автомата
На основе ГСА составляем автомат Мура, и в качестве состояний автомата Мура используем вершины содержательного графа автомата. Входными сигналами являются логические условия содержательного графа автомата. Выходными сигналами являются комбинации микроопераций описанных в таблице 2.2.
Граф автомата Мура представлен на рисунке 3.
Рисунок 3 - Граф автомата Мура
3.2 Кодирование состояний автомата
Воспользуемся эмпирическим алгоритмом кодирования, позволяющим уменьшить число переключаемых триггеров на каждом переходе автомата, что, в свою очередь, должно уменьшить сложность его схемной реализации. Составим матрицу переходов, соответствующую связям в автомате.
Пусть состояние b1 кодируется набором 00000, а b2 – 00001. Выделим из подматрицы М3
Так как состояния b2, b0 не определены то найдём кодировку состояния b2 исходя из условия соседства состояний b2 . Самый оптимальный набор выглядит 10001. Теперь выделим подматрицу М4.
Состояние b3 соседствует с состояниями b1 . Наименьший вес по Хеммингу между состояниями b3 и b1 равен 1, и b3 кодируется 00011.
Остальные наборы не удовлетворяют наименьшему весу по Хеммингу.
Теперь выделим подматрицу М5.
Cостояние b5 не закодировано то b4 кодируем из перехода b3 – b4 . Условию по наименьшему весу удовлетворят состояние 00010.
Поэтому состояние b4 кодируется 00011.
Состояние b6 закодируем также как и предыдущие вершины, выделив подматрицу М5.
Так как в матрице М5 состояние b7 b8 не закодировано то b6 кодируем из перехода b3 – b6 . Условию по наименьшему весу удовлетворят состояние 00111.
Состояние b7 закодируем также как и предыдущие вершины, выделив подматрицу М6.
Состояние а7 кодируем из перехода b3 – b7 и наилучшим вариантом будет 01011.
Выделим подматрицу М7.
Состояние b8 кодируем из перехода b3 – b8 . Подходящим вариантом является 10011.
Состояние а5 закодируем также как и предыдущие вершины, выделив подматрицу М8.
Подходящей комбинацией является 00110.
Состояние b9 закодируем также как и предыдущие вершины, выделив подматрицу М9.
Подходящей комбинацией является 11011.
Состояние b12 закодируем также как и предыдущие вершины, выделив подматрицу М10.
Выберем из наилучших комбинаций b12 – 01011.
Состояние b10 закодируем также как и предыдущие вершины, выделив подматрицу М11.
Подходящей комбинацией является 11010.
Состояние b11 закодируем также как и предыдущие вершины, выделив подматрицу М12.
b11 – 11000
Состояние b15 закодируем также как и предыдущие вершины, выделив подматрицу М13.
b15 – 10000
Закодируем b14, выделив подматрицу M14.
b14 – 01000
Состояние b13 закодируем также как и предыдущие вершины, выделив подматрицу М15.
b13 – 11001
Состояние b17 закодируем также как и предыдущие вершины, выделив подматрицу М16.
b17 – 01010
Состояние b18 закодируем также как и предыдущие вершины, выделив подматрицу М17.
b18 – 01100
Состояние b19 закодируем также как и предыдущие вершины, выделив подматрицу М18.
b19 – 01110
Состояние b16 закодируем также как и предыдущие вершины, выделив подматрицу М19.
b16 – 10100
Одна из возможных оптимальных кодировок приведена в таблице 3.2.
Таблица 3.2 Коды состояний автомата
-
b0
0
0
0
0
0
b1
0
0
0
0
1
b2
1
0
0
0
1
b3
0
0
0
1
1
b4
0
0
0
1
0
b5
0
0
1
1
0
b6
0
0
1
1
1
b7
0
1
0
1
1
b8
1
0
0
1
1
b9
1
1
0
1
1
b10
1
1
0
1
0
b11
1
1
0
0
0
b12
0
1
0
0
1
b13
1
1
0
0
1
b14
0
1
0
0
0
b15
1
0
0
0
0
b16
1
0
1
0
0
b17
0
1
0
1
0
b18
0
1
1
0
0
b19
0
1
1
1
0
Вес по Хеммингу:
W=1+1+1+2+1+1+1+1+1+1+2+2+1+1+1+3+1+1+1+1+1++2+2+1+1+2+1+4+2+3+2+1+1+1+3=52
Теперь сравним сложность закодированного автомата по таблице 3.2 со сложностью автомата, закодированного натуральным рядом чисел.
Так как W <W1, следовательно, описанный способ кодирования позволяет уменьшить сложность автомата.