- •Часть 3 – синтез асинхронных конечных автоматов;
- •Часть 4 – синтез синхронных автоматов.
- •3. Синтез асинхронных конечных автоматов
- •3. 1. Основные положения
- •3. 2. Метод кодирования состояний
- •Например, на релейно-контактных элементах она имеет вид рис 3.7.
- •3.3. Методика выполнения практического задания
- •4. Синтез синхронных автоматов
- •4.1. Основные положения
- •4.2. Пример синтеза синхронного автомата
- •4.3. Методика выполнения задания
3. 2. Метод кодирования состояний
ПО СТОЛБЦАМ ТП
Рассмотрам универсальный метод синтеза АКА с помощью кодирования состояний по столбцам ТП. Данный метод не требует анализа всех возможных случаев состязаний и обеспечивает устойчивость работы АКА при выбранном варианте кодирования. В качестве примера используем ТП (табл. 3. 5).
Будем называть
-
классом столбца aj
множество состояний,
содержащее устойчвое состояние и все
неустойчивые состояния, из
которых задан переход в данное устойчивое
состояние.
Столбец a1
содержит три
-
класса:
={1,
6, 7},
={2,
3},
={4,
5}, столбец az
содержит четыре
-
класса:
={1,
3},
={2,
4},
={5,
6},
={7}.
Рассмотрам переходы схемы по столцу a1. Имеем переход из состояний 6 и 7 в состояние 1. Эти переходы осуществляются внутри класса ; переход из 3 в 2 внутри ; из 4 в 3 внутри . Критические состязания возникают, если схема вместо одного устойчивого состояния ложно перейдет в другое устойчивое состояние, т. е. если из одного класса схема ложно перейдет в другой класс.
Таблица 3. 5
-
x
0
1
S
a1
a2
1
(1), 1
3
2
(2), 0
4
3
2
(3), 0
4
5
(4), 0
5
(5), 1
6
6
1
(6), 1
7
1
(7), 1
Необходимо исключить такие ложные переходы между - классами. Для этой цели в столбце aj необходимо выделить для кодирования состояний, пренадлежащих - классам, специальные внутренние переменные, которые имеют следующие свойства:
Свойство 1. Для состояний, принадлежащих одному - классу, они имеют одинаковое значение.
Свойство 2. Для состояний, принадлежащих разным - классам, они имеют разное значение.
Свойство 3. При любом переходе внутри столбца aj они не меняют своего значения.
Свойство 4. Поведение АКА в столбце aj зависит только от этих переменных.
На рисунке 3. 3 представлены - классы для столбца a1 и выделены внутренние переменные Y1 и Y2, которые, будем считать, обладают свойствами 1 - 4.
Предположим, что в схеме происходит переход из состояния 4 в состояние 5 внутри класса . Во время этого перехода значение внутренних переменных Y1 и Y2 не меняется (свйство 3), так как и для состояния 4 и для состояния 5 Y1= 1, Y2= 0 (свойство 1).
a1 Y1 Y2
Рис. 3. 3
Нахождение схемы в состояниях,
пренадлежащих классу
,
можно определить конъюнкцией
a1
Y1
(свойство 4). Для других
состояний
-
классов этого же столбца имеем:
для
-a1
.
Очевидно, что все конъюнкции
отличаются хотя бы одним значением
переменной Y (свойство
2). Будем говорить,
что
-
классы по столбцу a1
разделены внутренними переменными
Y1
и Y2
(т. е.
отличают их друг от друга).
Эти переменные будем называть
разделяющими.
Таким образом, можно сделать вывод, что при кодировании состояний, принадлежащих - классам столбца aj, разделяющими переменными, обладающими свойствами 1 - 4, исключаются ложные переходы между - классами, а следовательно, и критические состязания.
Рассмотрим способ кодирования строк ТП, который обеспечивает выполнение этого условия. Будем обозначать через j число устойчивых состояний или число - классов столбца aj. Для разделения - классов столбца aj необходимо выделить N=] log2 γj [ разделяющих переменных.
Для примера имеем
N1 =] log2 γ1[=] log2 3 [= 2;
N2 =] log2 γ2[=] log2 4 [= 2.
Таким образом, для разделения - классов по столбцу a1 требуется две переменные y1 и y2, а по столбцу a2 – также две переменные y3 и y4.
На рисунке 3. 4 приведен один из вариантов кодирования состояний - классов столбца a2 разделяющими переменными Y1 и Y2.
Общее кодовое слово i - ой строки ТП образуется совокупностью значений всех переменных по всем столбцам i – ой строки.
Например, код строки 1,
т. е.
состояние 1 будет иметь код 0000,
т. к. в
столбце a1
состояние 1 принадлежит классу
и кодируется значением Y1Y2=
00, а в столбце a2
состояние 1 пренадлежит классу
и кодируется значением Y3Y4=
00. Поэтому общий
код строки 1 равен 0000.
a2 Y1 Y2
Рис. 3. 4
Результат кодирования строк ТП сведен в табл. 4. 6.
Рассмотрим переход из состояния 2
(0101) в состояние 4 (1001).
Так как переход осуществляется в столбце
a2
( внутри класса
),
то разделяющими переменными являются
y3
и y4
и они не меняют своего значения во время
данного перехода. Поведение
суммы по данному столбцу во время
перехода будет определяться только
значением разделяющих переменных,
т. е.
конъюнкцией f= a
y4
(свойство 4). Переменные
y1
и y2
являются неразделяющими и дают
возможность различить состояния,
входящие в один
-
класс. (в данном примере
различить состояния 2 и 4).
Видно, что во время данного
перехода неразделяющие переменные y1
и y2
меняют свое значение (01
10), т. е.
между ними возможны состязания,
но ни одна из этих переменных не входит
в конъюнкцию f и,
следовательно, состязания
между ними не повлияют на работу схемы.
Обеспечение свойства 4 достигается на этапе доопределения внутренних состояний, как будет показано ниже. На данной идее основан метод кодирования состояний по столбцам ТП. Он состоит из следующих этапов:
Для каждого столбца aj выделяются разделяющие переменные. Их число равно ] log2 γ3[. Общее число элементов памяти, необходимое для построения схемы
q =
где R - множество индексов столбца ТП. В нашем примере q = N1 + N2 = 4 разделяющие переменные для столбца a1 - y1 , y2, а для столбца a2 - y3 и y4.
Таблица 3. 6
-
a
a1
a2
S y
y1 y2
y3 y4
1
0 0
0 0
2
0 1
0 1
3
0 1
0 0
4
1 0
0 1
5
1 0
1 0
6
0 0
1 0
7
0 0
1 1
- классы столбца aj кодируются произвольно кодовыми словами длиной ] log2 j [.
Для столбца aj приведен вариант кодирования на рисунке 3. 3, для a2 - на рисунке 3. 4.
Примечание. При выполнении практического задания - классы распологать в порядке возрастания номеров устойчивых состояний, а кодирование - в порядке возрастания двоичных чисел.
Составляется таблица кодирования строк ТП. Для примера имеем таблицу 3. 6.
Составляется кодированная ТП (таблица 3. 7). Общее число состояний в кодированной ТП равно 2q. Строки, соответствующие заданной ТП (см. таблицу 3. 5), являются основными и кодируются кодовыми словами на основании таблицы кодирования (см. таблицу 3. 6). Остальные строки кодируются неиспользованными кодовыми словами.
В таблице 3. 7 состояния 1 - 7 основные, а состояния 8 - 16 не основные. Кодированная ТП заполняется следующим образом. Если в клетке ТП на пересечении строки, соответствующей основному состоянию s1, и столбца aj проставлено некоторое состояние Sj, то в нее заносится код состояния Sj (i и j - индексы основных состояний). Например, в клетке (a1, 0000) должен быть проставлен код состояния 1–0000; в клетке (a2, 0101) – код состояния 4–1001 и т. д.
Неосновные состояния доопределяются с учетом обеспечения свойства 4. Рассмотрим задачу доопределения на следующем примере. Пусть задан переход из состояния 2 в состояние 4 (0101 1001). Он может произойти двумя путями (рис. 3. 5. а, б). Разделяющие переменные y3 и y4 не изменяются, поэтому в клетках (a2, 0001) и (a2, 1101) надо проставить код устойчивого состояния 4 – 1001, в котором значения разделяющих переменных совпадают с их значением в кодах строк этих состояний.
Таким образом доопределение в клетке (aj, s1) зависит от значений разделяющих переменных в коде строки s1.
Будем использовать два правила доопределения.
Правило 1. Если в коде строки s1 значения разделяющих переменных по столбцу aj совпадают с их значением в коде одного из устойчивых состояний этого столбца, то в клетке (aj, s1) записывается код этого устойчивого состояния.
Правило 2. В остальных клетках (aj, s1) проставляется произвольный код, так как в это состояние схема не попадает при своей работе: будем записывать код, у которого разделяющие переменные имеют то же значение, что и в коде строки aj, а остальные переменные равны 0. Например, в клетке (a1, 1111) проставляется состояние 1100.
Таблица 3. 7
-
Разделяющие переменные
y1 y2
y3 y4
a
a1
a2
S
y1 y2 y3 y4
x = 0
x = 1
1
0 0 0 0
(0 0 0 0)
0 1 0 0
2
0 1 0 1
(0 1 0 1)
1 0 0 1
3
0 1 0 0
0 1 0 1
(0 1 0 0)
4
1 0 0 1
1 0 1 0
(1 0 0 1)
5
1 0 1 0
(1 0 1 0)
0 0 1 0
6
0 0 1 0
0 0 0 0
(0 0 1 0)
7
0 0 1 1
0 0 0 0
(0 0 1 1)
8
0 0 0 1
0 0 0 0
1 0 0 1
9
1 0 0 0
1 0 1 0
0 1 0 0
10
0 1 1 0
0 1 0 1
0 0 1 0
11
1 1 0 0
1 1 0 0
0 1 0 0
12
0 1 1 1
0 1 0 1
0 0 1 1
13
1 0 1 1
1 0 1 0
0 0 1 1
14
1 1 0 1
1 1 0 0
1 0 0 1
15
1 1 1 0
1 1 0 0
0 0 1 0
16
1 1 1 1
1 1 0 0
0 0 1 1
a) ( 2 ) 0 1 0 1 б) ( 2 ) 0 1 0 1
8 0 0 0 1 14 1 1 0 1
( 4 ) 1 0 0 1 ( 4 ) 1 0 0 1
Рис. 3. 5
Выполнение правил 1 и 2 обеспечивает выполнения свойства 4 и позволяет максилально упростить схемы.
По кодированной ТП составляются и минимизируются ФАЛ цепей включения внутренних реле. Для вычисления ФАЛ цепей включения внутренних реле Y1 в кодированной ТП определяются те клетки, в которых y1= 1, и в результат записывается код строки, на пересечении которой находится данная клетка.
Для примера имеем.
Y1 =
(1001
1010
1110
1111
1000
1100
1011
1101)
x
(0101
1001
0001
1100);
Y2 = (0101 0100 1110 1111 0110 1100 0111 1101) x (0000 0100 1000 1100);
Y3 = (1001 1010 1000 1011) x (1010 1110 0011 1111 0010 0110 0111 1011);
Y4 = (0101 0100 0110 0111) x (0101 1001 0011 1111 0001 0111 1011 1101).
Затем полученные ФАЛ минимизируются по матрицам Карно, причем удобно это делать по столбцам, т. е. минимизировать скобки. Для примера получаем рисунок 3. 6.
По исходной таблице переходов (см. табл. 3. 5) вычисляются ФАЛ выходных цепей и производится их минимизация.
Для вычисления ФАЛ выхода Z1 в ТП определяются все клетки, в которых проставлено устойчивое состояние, для которого Z1 = 1, и записывается ДНФ из значений разделяющих переменных, которыми кодируются данные устойчивые состояния. Вычисление удобно производить по столбцам ТП.
Для примера имеем:
Z =
(
y1
)
x (y3
y3 y4)
y1 y1
x
y3
y4
y4
y3
y3
y4
x
-
1
1
1
1
y4
1
1
1
1
y3
1
1
y4
1
1
1
1
y3
1
1
y2 y2
y1 y1
-
1
1
1
1
1
1
1
1
y4
y3
y2 y2
Y1
=
y1
x
y4
Y2
=
y2
x
y1 y1
-
1
1
1
1
1
y4
1
1
y3
1
y2 y2
y1 y1
-
1
1
1
1
1
1
1
1
y4
1
1
1
1
1
1
1
1
y3
y2 y2
Y3
=
y1
x
y3
Y4
=
y2
x
y4
Рис. 3. 6
После минимизации:
Z = xy3.
На основании вычисления ФАЛ строится схема в выбранном базисе.
