X4 {6} X4 {126}
X5 {45} X5 {1245}
{23} X1 {46} {12346} X1 {1346}
X2 {4} X2 {145}
X3 {1} => {12346} {5}; X3 {143} => {123456}; X
X4 {12} X4 {126}
X5 {14} X5 {1245}
{24} X1 {16} {12346} X1 {1345}
X2 {14} X2 {145}
X3 {13} => {12346} {5}; X3 {143} => {123456}; X
X4 {12} X4 {126}
X5 {13} X5 {1245}
{25} X1 {34} {245} X1 {136}
X2 {4} X2 {14}
X3 {1} => {1} {245} {36}; X3 {13} => {123456}; X
X4 {1} X4 {12}
X5 {24} X5 {124}
{26} X1 {46} {2456} X1 {1345}
X2 {45} X2 {145}
X3 {1} => {1} {2456} {3}; X3 {13} => {123456}; X
X4 {1} X4 {12}
X5 {4} X5 {124}
{34} X1 {14} {134} X1 {134}
X2 {1} X2 {14}
X3 {3} => {134} {2} {5}; X3 {34} => {1345} {26};
X4 {2} X4 {26}
X5 {1} X5 {15}
{1345} X1 {134}
X2 {14}
X3 {3134} => {123456}; X
X4 {126}
X5 {125}
{35} X1 {34} {12} X1 {36}
X2 {4} X2 {4}
X3 {1} => {12} {345}; X3 {41} => {123456}; X
X4 {12} X4 {61}
X5 {12} X5 {54}
{33} X1 {4}
X2 {5}
X3 {1} => {14} {36} {2};
X4 {2}
X5 {14}
{14} X1 {13} {1245} X1 {134}
X2 {14} X2 {14}
X3 {34} => {1345} {26}; X3 {134} => {123456}; X
X4 {26} X4 {126}
X5 {15} X5 {125}
{45} X1 {13}
X2 {14}
X3 {13} => {123456};
X4 {12}
X5 {12}
{46} X1 {14} {13456} X1 {134}
X2 {15} X2 {145}
X3 {13} => {13456} {2}; X3 {134} => {123456}; X
X4 {2} X4 {126}
X5 {14} X5 {1245}
{56} X1 {34} {23456} X1 {1346}
X2 {45} X2 {145}
X3 {1} => {1} {23456}; X3 {13} => {123456}; X
X4 {24} X4 {12}
X5 {24} X5 {124}
Отсюда следует, что СП-разбиений нет.
Декомпозиция автоматов при отсутствии СП-разбиений
При отсутствии СП-разбиений декомпозируемые автоматы соединяются в сеть, следовательно, на входе и выходе автоматов будут существовать логические функции преобразования входных и выходных сигналов. Задача декомпозиции при отсутствии СП-разбиений сводится к определению ортогональных р-разбиений и реализацию на их основе автоматов.
Определим ортогональные р-разбиения из множества состояний минимизированного автомата.
р1={1234; 56}, р2={1256; 34}, р3={135; 246}.
Каждое р-разбиение соответствует новому автомату, т.е. обозначим блоки р-разбиений через состояния автоматов:
р1->E {e1=1234; e2=56}
р2->C {c1=1256; c2=34}
р3->D {d1=135; d2=246}.
Для каждого разбиения построим функцию перехода компонентных автоматов на основе функции перехода исходного автомата. Функции переходов компонентных автоматов определяют реакцию автоматов E, C, D на внешнее входное воздействие и что исходный автомат находится в состояние К, соответствующему произведению алфавитов компонентных автоматов.
e1*c1*d1=1 e2*c1*d1=5
e1*c1*d2=2 e2*c1*d2=6
e1*c2*d1=3 e2*c2*d1= *
e1*c2*d2=4 e2*c2*d2= *
Автомат E
|
д |
1 |
2 |
3 |
4 |
5 |
6 |
|
|
x1 |
e1 |
e2 |
e1 |
e1 |
e1 |
e1 |
|
|
x2 |
e1 |
e1 |
e1 |
e1 |
e1 |
e2 |
|
|
x3 |
e1 |
e1 |
e2 |
e1 |
e1 |
e1 |
|
|
x4 |
e2 |
e1 |
e1 |
e1 |
e1 |
e1 |
|
|
x5 |
e2 |
e1 |
e1 |
e1 |
e1 |
e1 |
Автомат C
|
д |
1 |
2 |
3 |
4 |
5 |
6 |
|
|
x1 |
c2 |
c1 |
c2 |
c1 |
c2 |
c2 |
|
|
x2 |
c2 |
c2 |
c1 |
c1 |
c2 |
c1 |
|
|
x3 |
c2 |
c1 |
c1 |
c2 |
c1 |
c1 |
|
|
x4 |
c1 |
c1 |
c1 |
c1 |
c1 |
c1 |
|
|
x5 |
c1 |
c2 |
c1 |
c1 |
c1 |
c2 |
Автомат D
|
д |
1 |
2 |
3 |
4 |
5 |
6 |
|
|
x1 |
d1 |
d2 |
d2 |
d1 |
d1 |
d2 |
|
|
x2 |
d2 |
d1 |
d1 |
d1 |
d1 |
d1 |
|
|
x3 |
d2 |
d1 |
d1 |
d1 |
d1 |
d1 |
|
|
x4 |
d2 |
d1 |
d2 |
d2 |
d1 |
d1 |
|
|
x5 |
d1 |
d2 |
d1 |
d1 |
d1 |
d2 |
Для того, чтобы определить взаимное влияние автоматов друг не друга, определяют ф и ?-разбиение для каждого автомата в отдельности.
ф - разбиения устанавливают равенства функции переходов для различных состояний автоматов при одинаковом входном воздействии.
?-разбиение устанавливает равенство функций переходов из одного и того же состояния, но при различных входных сигналах.
Определим ф-разбиения для компонентных автоматов, путем сравнения столбцов таблиц переходов:
фe= {123}; {25}; {6}.
фc ={1}; {2}; {3}; {4}; {5}; {6}.
фd = {1}; {26}; {3}; {4}; {5}.
Определим з-разбиения для компонентных автоматов, путем сравнения строк таблиц их переходов:
?e = {12}; {34}; {56}.
?c = {1}; {2}; {3}; {4}: {5}.
?d = {1}; {23}; {4}; {5}.
Определение входных сигналов компонентных автоматов и составление таблиц
Влияние автоматов друг на друга определяется по следующему правилу: если произведение р-разбиений i-го автомата меньше или равно ф-разбиению i-го автомата, то составляющая определяется как произведение р-разбиений исключая р-разбиение i-го автомата.
р1*р2={12,34,56}
р1*р3={13,5,24,6}
р2*р3={15,26,3,4}
р1*р2*р3={1,2,3,4,5,6}
При сравнении произведений р-разбиений и ф-разбиений автоматов видно, что автоматы непосредственно не влияют на входные сигналы друг друга. Однако, при рассмотрении ортогональных р-разбиений видно, что на входной сигнал автомата С влияют D и E совместно, на входной сигнал автомата D - С и E совместно, а на входной сигнал автомата E - C и D совместно. Следовательно, составляющая входного сигнала .
Для составления таблиц переходов автоматов C, D и E примем следующие обозначения:
E {e1=1234; e2=56}
C {c1=1256; c2=34}
D {d1=135; d2=246}
U={u1=x1, x2; u2=x3; u3=x4; u4=x5}
V={v1=x1; v2=x2, x3; v3=x4; v4=x5}
W={w1=x1; w2=x2, x3; w3=x4; w4=x5}.
Таблицы заполняем по следующему алгоритму на примере первой ячейки: c1*d1*e1=1. По сигналу u1 (x1, x2) автомат E перейдет в состояния e1, что мы и запишем в первую ячейку таблицы переходов автомата E.
Таким образом, заполняются все ячейки всех трёх автоматов:
|
д |
e1 |
e2 |
д |
c1 |
c2 |
д |
d1 |
d2 |
|||
|
c1*d1, u1 |
e1 |
e1 |
e1*d1, v1 |
c2 |
c2 |
e1*c1, w1 |
d1 |
d2 |
|||
|
c1*d2, u1 |
e2 |
e1 |
e1*d2, v1 |
c1 |
c1 |
e1*c2, w1 |
d2 |
d1 |
|||
|
c2*d1, u1 |
e1 |
e1 |
e2*d1, v1 |
c2 |
c1 |
e2*c1, w1 |
d1 |
d2 |
|||
|
c2*d2, u1 |
e1 |
e1 |
e2*d2, v1 |
c2 |
c1 |
e2*c2, w1 |
d1 |
d1 |
|||
|
c1*d1, u2 |
e1 |
e1 |
e1*d1, v2 |
c2 |
c1 |
e1*c1, w2 |
d2 |
d1 |
|||
|
c1*d2, u2 |
e1 |
e2 |
e1*d2, v2 |
c2 |
c1 |
e1*c2, w2 |
d1 |
d1 |
|||
|
c2*d1, u2 |
e1 |
e1 |
e2*d1, v2 |
c2 |
c1 |
e2*c1, w2 |
d1 |
d1 |
|||
|
c2*d2, u2 |
e1 |
e1 |
e2*d2, v2 |
c1 |
c1 |
e2*c2, w2 |
d1 |
d1 |
|||
|
c1*d1, u3 |
e1 |
e1 |
e1*d1, v3 |
c2 |
c1 |
e1*c1, w3 |
d2 |
d1 |
|||
|
c1*d2, u3 |
e1 |
e1 |
e1*d2, v3 |
c1 |
c2 |
e1*c2, w3 |
d2 |
d2 |
|||
|
c2*d1, u3 |
e2 |
e1 |
e2*d1, v3 |
c1 |
c1 |
e2*c1, w3 |
d1 |
d1 |
|||
|
c2*d2, u3 |
e1 |
e1 |
e2*d2, v3 |
c1 |
c1 |
e2*c2, w3 |
d1 |
d1 |
|||
|
c1*d1, u4 |
e2 |
e1 |
e1*d1, v4 |
c1 |
c1 |
e1*c1, w4 |
d1 |
d2 |
|||
|
c1*d2, u4 |
e1 |
e1 |
e1*d2, v4 |
c1 |
c1 |
e1*c2, w4 |
d1 |
d1 |
|||
|
c2*d1, u4 |
e1 |
e1 |
e2*d1, v4 |
c1 |
c1 |
e2*c1, w4 |
d1 |
d2 |
|||
|
c2*d2, u4 |
e1 |
e1 |
e2*d2, v4 |
c1 |
c1 |
e2*c2, w4 |
d1 |
d1 |
|||
|
e1*d1, v5 |
c1 |
c1 |
|||||||||
|
e1*d2, v5 |
c2 |
c1 |
|||||||||
|
e2*d1, v5 |
c1 |
c1 |
|||||||||
|
e2*d2, v5 |
c2 |
c1 |
Определение выходных сигналов осуществляется по произведению состояний компонентных автоматов E, C и D и входным сигналам в соответствии с таблицей выходов автомата B.
|
g |
c1*d1*e1 |
c1*d1*e2 |
c1*d2*e2 |
c2*d1*e1 |
c2*d2*e2 |
|
|
1 |
2 |
3 |
4 |
5 |
||
|
x1 |
y2 |
y1 |
y1 |
y2 |
y1 |
|
|
x2 |
y1 |
y1 |
y1 |
y1 |
y1 |
|
|
x3 |
y2 |
y2 |
y2 |
y2 |
y1 |
|
|
x4 |
y2 |
y2 |
y1 |
y2 |
y2 |
|
|
x5 |
y2 |
y2 |
y2 |
y2 |
y1 |
2. Структурный синтез цифрового автомата
2.1 Кодирование автомата
На основании таблиц переходов и логической функции строится структурная схема сети автоматов. Структурный автомат представляет собой композицию комбинационной (логической) схемы и элементов памяти, связанных со схемой. Входными переменными схемы являются входные переменные автомата - сигналы приходящие на блоки Ue, Vc, Wd. Выходы схемы Fe, Fc, Fd определяют переход автомата в следующее состояние.
Переход от абстрактного автомата к структурному осуществляется через c помощью кодирования входов, выходов и состояний абстрактного автомата.
Кодирование входных переменных состоит в сопоставлении каждому символу входного алфавита абстрактного автомата набора значений двоичных переменных <x1, x2, …, xn> таким образом, чтобы каждый символ алфавита имел уникальный, отличный от других символов, вектор. Для этого необходимо, чтобы выполнялось условие N2n, где N - число символов входного алфавита.
Кодировать таблицы переходов и выходов будем в соответствии с условиями:
c1d1= e1c1= e1d1= 00 u1=w1= 00 v1= 000
c1d2= e1c2= e1d2= 01 u2=w2= 01 v2= 001
c2d1= e2c1= e2d1= 10 u3=w3= 10 v3= 010
c2d2= e2c2= e2d2= 11 u4=w4= 11 v4= 011
v5= 111
Получим закодированные таблицы переходов компонентных автоматов:
|
д |
0 |
1 |
д |
c1 |
c2 |
д |
d1 |
d2 |
|||
|
0000 |
1 |
1 |
00000 |
0 |
0 |
0000 |
1 |
0 |
|||
|
0100 |
0 |
1 |
01000 |
1 |
1 |
0100 |
0 |
1 |
|||
|
1000 |
1 |
1 |
10000 |
0 |
1 |
1000 |
1 |
0 |
|||
|
1100 |
1 |
1 |
11000 |
0 |
1 |
1100 |
0 |
0 |
|||
|
0001 |
1 |
1 |
00001 |
0 |
1 |
0001 |
0 |
1 |
|||
|
0101 |
1 |
0 |
01001 |
0 |
1 |
0101 |
1 |
1 |
|||
|
1001 |
1 |
1 |
10001 |
0 |
1 |
1001 |
1 |
1 |
|||
|
1101 |
1 |
1 |
11001 |
1 |
1 |
1101 |
0 |
0 |
|||
|
0010 |
1 |
1 |
00010 |
0 |
1 |
0010 |
0 |
1 |
|||
|
0110 |
1 |
1 |
01010 |
1 |
0 |
0110 |
0 |
0 |
|||
|
1010 |
0 |
1 |
10010 |
1 |
1 |
1010 |
1 |
1 |
|||
|
1110 |
1 |
1 |
11010 |
1 |
1 |
1110 |
0 |
0 |
|||
|
0011 |
0 |
1 |
00011 |
1 |
1 |
0011 |
1 |
0 |
|||
|
0111 |
1 |
1 |
01011 |
1 |
1 |
0111 |
1 |
1 |
|||
|
1011 |
1 |
1 |
10011 |
1 |
1 |
1011 |
1 |
0 |
|||
|
1111 |
1 |
1 |
11011 |
1 |
1 |
1111 |
0 |
0 |
|||
|
00111 |
1 |
1 |
|||||||||
|
01111 |
0 |
1 |
|||||||||
|
10111 |
1 |
1 |
|||||||||
|
11111 |
0 |
1 |