- •И. В. Потапов элементы прикладной теории цифровых автоматов
- •Оглавление
- •Введение
- •1. Представление чисел в эвм
- •1.1. Позиционные системы счисления
- •1.2. Обоснование применения в эвм двоичной системы счисления
- •1.3. Представление двоичных чисел с фиксированной и плавающей запятой
- •1.4. Прямой и инверсные коды чисел
- •1.5. Двоично-десятичные коды чисел
- •Вопросы для самоконтроля
- •2. Арифметические операции в двоичных кодах
- •2.1. Сложение двоичных кодов
- •2.2. Вычитание двоичных кодов
- •2.3. Выполнение операции округления чисел
- •2.3.1. Округление прямых кодов
- •2.3.2. Округление инверсных кодов
- •2.4. Умножение двоичных кодов
- •2.4.1. Умножение прямых кодов чисел
- •2.4.2. Ускоренное выполнение операции умножения
- •2.4.3. Умножение инверсных кодов чисел
- •2.5. Деление двоичных кодов
- •2.5.1. Деление прямых кодов чисел
- •2.5.2. Ускоренное выполнение операции деления
- •2.5.3. Деление дополнительных кодов чисел
- •2.6. Извлечение квадратного корня
- •2.7. Выполнение арифметических операций в d-кодах
- •2.7.1. Сложение в d-кодах
- •2.7.2. Умножение в d-кодах
- •2.7.3. Деление в d-кодах
- •Вопросы для самоконтроля
- •3. Переключательные функции
- •3.1. Основные определения и способы задания пф
- •3.2. Элементарные логические функции
- •3.3. Основные законы алгебры логики
- •3.4. Полные системы переключательных функций
- •3.5. Канонические формы аналитического представления пф
- •3.6. Кубическое представление пф
- •3.7. Синтез комбинационных схем
- •3.7.1. Синтез кс на логических элементах
- •3.7.2. Синтез кс на дешифраторах
- •3.7.3. Синтез кс на мультиплексорах
- •3.7.4. Синтез многовыходных схем
- •3.8. Риски сбоя в комбинационных схемах
- •Вопросы для самоконтроля
- •4. Минимизация переключательных функций
- •4.1. Минимизация пф с помощью карт Карно
- •4.2. Минимизация пф методом Квайна
- •4.3. Минимизация методом Квайна – Мак-Класки
- •4.4. Минимизация пф методом Блейка – Порецкого
- •4.5. Минимизация пф, заданных в конъюнктивной форме
- •4.6. Минимизация не полностью определенных пф
- •4.7. Минимизация систем пф
- •4.8. Минимизация пф в универсальных базисах и-не, или-не
- •Вопросы для самоконтроля
- •5. Моделирование работы и синтез автоматов с памятью
- •5.1. Основные модели, понятия и определения
- •5.1.1. Общее понятие цифрового автомата с памятью
- •5.1.2. Основные модели цифровых автоматов
- •5.1.3. Описание функционирования цифровых автоматов
- •5.1.4. Задание цифровых автоматов
- •5.1.5. Правила перехода между моделями Мили и Мура
- •5.2. Минимизация числа состояний цифровых автоматов
- •5.2.1. Минимизация числа состояний синхронного автомата методом Полла-Ангера
- •5.2.2. Минимизация числа состояний автомата Мура методом l-эквивалентных разбиений
- •5.2.3. Минимизация числа состояний автомата Мили методом l-эквивалентных разбиений
- •5.3. Структурный синтез цифровых автоматов
- •5.3.1. Типы элементарных автоматов, обладающие полной системой переходов-выходов
- •5.3.2. Основные этапы структурного синтеза
- •5.4. Рациональный выбор варианта кодирования состояний синхронных автоматов
- •Вопросы для самоконтроля
- •Библиографический список
- •Задания для выполнения самостоятельных работ
- •Илья Викторович потапов, канд. Техн. Наук, доцент элементы прикладной теории цифровых автоматов
5.4. Рациональный выбор варианта кодирования состояний синхронных автоматов
При выполнении структурного синтеза автомата можно показать, что сложность функций возбуждения и функций выходов существенно зависит не только от используемого типа элементарных автоматов, но и от выбранного варианта кодирования состояний.
Кодирование состояний абстрактного автомата, при котором получаются минимальные (в смысле необходимого для технической реализации оборудования) функции возбуждения и выходов, – процесс довольно сложный, связанный с перебором большого числа вариантов. Поэтому в дальнейшем остановимся на рассмотрении правил кодирования, приводящих, в большинстве случаев, к получению близких к минимальным (а иногда и к минимальным) схемам на элементах И, ИЛИ, НЕ, реализующим функции возбуждения элементов памяти синтезируемого автомата. Все дальнейшие рассуждения будем вести в предположении, что для кодирования состояний всегда будет использоваться минимально возможное число элементов памяти.
Рассмотрим абстрактный автомат, заданный таблицей переходов-выходов (табл. 5.36).
Таблица 5.36
-
x \ a
1
2
3
3,0
1,1
2,0
3,1
3,1
2,0
Пусть состояния автомата закодированы в общем виде в соответствии с табл. 5.37, где bij{0, 1}.
Таблица 5.37
-
a \ Q
Q1
Q2
1
b11
b21
2
b12
b22
3
b13
b23
Составим кодированную таблицу переходов (табл. 5.38).
Таблица 5.38
х |
Q1 |
Q2 |
Q1 |
Q2 |
0 |
b11 |
b21 |
b13 |
b23 |
0 |
b12 |
b22 |
b13 |
b23 |
0 |
b13 |
b23 |
b12 |
b22 |
1 |
b11 |
b21 |
b13 |
b23 |
1 |
b12 |
b22 |
b11 |
b21 |
1 |
b13 |
b23 |
b12 |
b22 |
t |
t |
t+1 |
Пусть
Условимся, что в качестве элементарных автоматов используются D-триггеры, значения функций возбуждения которых, в соответствии с таблицей переходов, совпадают со значениями Q(t+1). Тогда функции возбуждения элементарных автоматов будут иметь вид
Приравнивание переменных bij к нулю или единице дает возможность оценить влияние на сложность схемы любого частного варианта кодирования.
Рациональный вариант кодирования выбирается таким образом, чтобы максимально упростить уравнения для q1 и q2. Для этого можно пользоваться двумя эмпирическими правилами.
1. Положить равными нулю переменные bij, которые в уравнениях для q имеют наиболее сложные сомножители (коэффициенты).
2. Переменным bij необходимо приписывать такие значения, чтобы ненулевые члены уравнений могли быть взаимно упрощены.
При использовании этих правил важно помнить, что каждому состоянию автомата должна соответствовать только одна кодовая комбинация.
В рассматриваемом примере в соответствии с первым правилом положим b13 = b23 = 0. Это приведет к тому, что в уравнениях для q1 и q2 последние слагаемые будут равны нулю и могут быть отброшены, а состояние автомата а3 будет кодироваться двоичным набором 00. Если теперь положить b11 = 0, то b21 = 1, так как кодовая комбинация 00 уже используется для кодирования состояния а3. Таким образом, состояние а1 кодируется двоичным набором 01. Для кодирования состояния а2 используем набор 10, что означает приравнивание к нулю переменной b22 и приравнивание к единице переменной b12.
Окончательно функции возбуждения примут вид
На основании приведенных выше правил и рассмотренного примера можно сделать вывод, что те состояния, в которые осуществляется большое число переходов, должны кодироваться наборами с минимальным числом единиц, а те состояния, между которыми имеются переходы, должны кодироваться наборами, отличающимися, по возможности, наименьшим количеством разрядов.