- •Проектирование автоматов
- •Проектирование автоматов
- •5.7. Упражнения 90
- •Введение
- •1. Абстрактные автоматы
- •1.1. Эквивалентность автоматов
- •1.2. Минимизация автоматов
- •1.2.1. Минимизация полностью определенного автомата
- •1.2.2. Минимизация частичного автомата
- •1.3. Композиция автоматов
- •1.3.1. Параллельное соединение
- •1.3.2. Последовательное соединение
- •1.3.3. Соединение с обратной связью
- •1.3.4. Соединение в сеть
- •1.4 Декомпозиция автомата
- •1.4.1. Задача декомпозиции
- •1.4.2. Разбиения со свойствами подстановки
- •1.4.3. Метод декомпозиции
- •1.5. Упражнения Эквивалентность автоматов
- •Минимизация полностью определённого автомата.
- •Декомпозиция автоматов
- •2. Структурные автоматы
- •2.1. Автоматная полнота и теорема в.М.Глушкова
- •2.2. Гонки в автомате
- •2.2.1. Кодирование состояний
- •2.2.2. Понятие о гонках. Противогоночное кодирование
- •2.3. Проектирование автомата
- •2.4. Упражнение Кодирование
- •Синтез автомата
- •3. Синтез схем
- •3.1. Определения
- •3.2. Функциональная полнота базиса
- •3.2.1. Классы функций
- •3.2.2. Монотонные функции
- •3.2.3. Самодвойственные функции
- •3.2.4. Линейные функции
- •3.2.5. Функции, сохраняющие константу
- •3.2.6. Функциональная полнота
- •3.3. Топологические ограничения в схемах
- •3.3.1. Плоские схемы
- •3.3.2. Ограничения на глубину связи в схеме
- •3.4. Методы синтеза схем
- •3.4.1. Метод факторизации
- •3.4.2. Метод декомпозиции
- •3.4.3. Синтез схем в классическом базисе.
- •3.4.4. Синтез схем в монофункциональном базисе.
- •3.5. Упражнения Функциональная полнота
- •Синтез схем
- •4. Эксперименты над автоматами
- •4.1. Построение диагностических деревьев
- •4.2. Диагностические и установочные эксперименты
- •4.2.1. Дерево преемников
- •4.2.2. Диагностический эксперимент
- •4.2.3. Установочный эксперимент
- •4.3. Упражнения Диагностические эксперименты
- •Установочные эксперименты
- •5. Формальные грамматики
- •5.1. Языки и порождающие их грамматики
- •5.2. Примеры фрагментов описаний в языках программирования.
- •5.3. Порождающая грамматика
- •5.4. Классы языков и грамматик
- •5.5. Язык, понимаемый устройством
- •5.6. Автоматные языки
- •5.7. Упражнения
- •Библиографический список
- •Проектирование автоматов
- •620002, Екатеринбург, Мира, 19
2.3. Проектирование автомата
Проектирование автомата заключается в определении функций {yi,vj | i=1,…,m, j=1,…,k} и синтезе в заданном базисе схемы, реализующей эти функции.
Выходные функции определяются по матрице выходов автомата: после кодировки входов, выходов и состояний автомата матрица выходов представляет таблицу, описывающую m булевых выходных функций.
Функции возбуждения элементов памяти для случая триггера типа линии задержки также просто получаются из матрицы переходов автомата заменой входов и состояний автомата их кодами.
Для счётного триггера эти функции получаются как результат операции сложения по модулю два кодов текущего и следующего состояний.
Пример. Пусть автомат описывается матрицами переходов и выходов (табл.2.3 и 2.4).
Таблица 2.3 |
Таблица 2.4 |
||||||||||
|
a1 |
a2 |
a3 |
a4 |
|
|
a1 |
a2 |
a3 |
a4 |
|
z1 |
a2 |
a2 |
a3 |
a3 |
|
z1 |
w1 |
w2 |
w2 |
w1 |
|
z2 |
a4 |
a2 |
a1 |
a4 |
|
z2 |
w2 |
w2 |
w2 |
w1 |
|
z3 |
a4 |
a3 |
a2 |
a1 |
|
z3 |
w1 |
w1 |
w1 |
w2 |
Таблица 2.5 |
||||
|
00 |
01 |
11 |
10 |
00 |
0 |
1 |
1 |
0 |
01 |
1 |
1 |
1 |
0 |
11 |
0 |
0 |
0 |
1 |
Z1=00, Z2=01, Z3=11, w1=0,w2=1.
Перепишем в этой кодировке матрицу выходов, получим описание выходных (в данном примере всего одной) функций (табл.2.5).
Таблица 2.6 |
||||
|
00 |
01 |
11 |
10 |
00 |
01 |
01 |
11 |
11 |
01 |
10 |
01 |
00 |
10 |
11 |
10 |
11 |
01 |
00 |
y=t1•x2t1•t2•x1 t1•x1•x2.
Если в качестве элемента памяти задан триггер типа линии задержки, то, заменив в табл.2.2 состояния на их коды, получим описание пары функций v1 и v2 (первый и второй столбец в табл. 2.6).
По этой таблице
v1=t1•t2•x2t1•x1t1•x2t2•x1•x2.
v2=x1•x2t1•t2•x2t2•x1•x2.
Если задан счётный триггер, то функции будут иметь вид, показанный в табл.2.7.
В этом случае функции имеют вид:
Таблица 2.7 |
||||
|
00 |
01 |
11 |
10 |
00 |
01 |
00 |
00 |
01 |
01 |
10 |
00 |
11 |
00 |
11 |
10 |
10 |
10 |
10 |
v2=t2•x1•x2t1•xt•x1•x2.
Рассмотрим ещё один пример.
Построим автомат-счётчик чисел от 0 до 9 с выходом на семисегментный индикатор. Индикатор имеет вид, как на рис.2.3. Числам сопоставляются выделенные сегменты индикатора в соответствии с табл. 2.8.
На рис. 2.4 в качестве примера показана индикация цифры 5.
Таблица 2.8 |
||||||||||
число сегмент |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
2 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
3 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
4 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
5 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
6 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
7 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
Таблица 2.9 |
||||||||||
Z\a |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
0 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
1 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
0 |
Для кодировки необходимо взять 4 элемента памяти. Закодируем состояния автомата последовательно кодами
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
0000 |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
1000 |
1001 |
Тогда таблица переходов запишется, как в табл.2.10.
Таблица 2.10 |
||||||||||
t1,t2,t3,t4 x |
0000 |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
1000 |
1001 |
0 |
0000 |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
1000 |
1001 |
1 |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
1000 |
1001 |
0000 |
Если в качестве триггера выбрана задержка, то данная таблица описывает 4 функции возбуждения элементов памяти v1-v4 от переменных t1-t4 и х. Переменная х кодирует z: z1=0, z2=1. Первая функция v1 имеет вид как табл.2.11. Здесь для удобства выход четвёртого триггера вынесен в имя строки.
Таблица 2.11 |
||||||||
t1,t2,t3 t4,x |
000 |
001 |
010 |
011 |
100 |
101 |
110 |
111 |
0 0 |
0 |
0 |
0 |
0 |
1 |
- |
- |
- |
0 1 |
0 |
0 |
0 |
0 |
1 |
- |
- |
- |
1 0 |
0 |
0 |
0 |
0 |
1 |
- |
- |
- |
1 1 |
0 |
0 |
0 |
1 |
0 |
- |
- |
- |
Отсюда v1=t1t4 v t1x v t2t3t4x.
Таблица 2.12 |
||||||||
t1,t2,t3 t4,x |
000 |
001 |
010 |
011 |
100 |
101 |
110 |
111 |
0 0 |
0 |
0 |
1 |
1 |
0 |
- |
- |
- |
0 1 |
0 |
0 |
1 |
1 |
0 |
- |
- |
- |
1 0 |
0 |
0 |
1 |
1 |
0 |
- |
- |
- |
1 1 |
0 |
1 |
1 |
0 |
0 |
- |
- |
- |
v2= t2t4 vt2x v t2t3 v t2t3t4x
Таблица 2.13 |
||||||||
t1,t2,t3 t4,x |
000 |
001 |
010 |
011 |
100 |
101 |
110 |
111 |
0 0 |
0 |
1 |
0 |
1 |
0 |
- |
- |
- |
0 1 |
0 |
1 |
0 |
1 |
0 |
- |
- |
- |
1 0 |
0 |
1 |
0 |
1 |
0 |
- |
- |
- |
1 1 |
1 |
0 |
1 |
0 |
0 |
- |
- |
- |
v3= t3t4 v t3x v t1t3t4x
Таблица 2.14 |
||||||||
t1,t2,t3 t4,x |
000 |
001 |
010 |
011 |
100 |
101 |
110 |
111 |
0 0 |
0 |
0 |
0 |
0 |
0 |
- |
- |
- |
0 1 |
1 |
1 |
1 |
1 |
1 |
- |
- |
- |
1 0 |
1 |
1 |
1 |
1 |
1 |
- |
- |
- |
1 1 |
0 |
0 |
0 |
0 |
0 |
- |
- |
- |
v4=t4x v t4x
Проектируемый автомат является автоматом Мура. Записав соответствие между состояниями и выходами, получим формулы для выходных функций.
Задание. Выпишите функции для каждого сегмента индикатора.