Глава II. Структурный синтез цифрового автомата.
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 |
|
Теперь получим закодированную таблицу переходов выходных сигналов, для этого примем следующие обозначения:
x1= 000 b1= 000 y1= 1 y2=0
x2= 001 b2= 001
x3= 010 b3= 010
x4= 011 b4= 100
x5= 111 b5= 011
b6= 111
g |
000 |
001 |
010 |
100 |
011 |
111 |
|
1 |
2 |
3 |
4 |
5 |
6 |
000 |
0 |
0 |
0 |
0 |
1 |
1 |
001 |
1 |
0 |
1 |
1 |
1 |
0 |
010 |
0 |
0 |
0 |
0 |
1 |
0 |
100 |
0 |
0 |
1 |
0 |
0 |
0 |
011 |
0 |
0 |
0 |
0 |
0 |
0 |
При синтезе цифровых автоматов применяются триггеры счета или триггеры типа «линия задержки»
Закодируем полученные нами таблицы переходов компонентных автоматов с помощью триггера счета. Для этого проведем инверсию столбцов «1»:
δ |
0 |
1 |
|
δ |
c1 |
c2 |
|
δ |
d1 |
d2 | ||
0000 |
0 |
1 |
00000 |
1 |
0 |
0000 |
0 |
0 | ||||
0100 |
1 |
1 |
01000 |
0 |
1 |
0100 |
1 |
1 | ||||
1000 |
0 |
* |
10000 |
1 |
* |
1000 |
0 |
0 | ||||
1100 |
0 |
* |
11000 |
1 |
* |
1100 |
* |
* | ||||
0001 |
0 |
1 |
00001 |
1 |
1 |
0001 |
1 |
1 | ||||
0101 |
0 |
0 |
01001 |
1 |
1 |
0101 |
0 |
1 | ||||
1001 |
0 |
* |
10001 |
1 |
* |
1001 |
0 |
1 | ||||
1101 |
0 |
* |
11001 |
0 |
* |
1101 |
* |
* | ||||
0010 |
0 |
1 |
00010 |
1 |
1 |
0010 |
1 |
1 | ||||
0110 |
0 |
1 |
01010 |
0 |
0 |
0110 |
1 |
0 | ||||
1010 |
1 |
* |
10010 |
0 |
* |
1010 |
0 |
1 | ||||
1110 |
0 |
* |
11010 |
0 |
* |
1110 |
* |
* | ||||
0011 |
1 |
1 |
00011 |
0 |
1 |
0011 |
0 |
0 | ||||
0111 |
0 |
1 |
01011 |
0 |
1 |
0111 |
0 |
1 | ||||
1011 |
0 |
* |
10011 |
0 |
* |
1011 |
0 |
0 | ||||
1111 |
0 |
* |
11011 |
0 |
* |
1111 |
* |
* | ||||
|
00111 |
0 |
1 |
| ||||||||
01111 |
1 |
1 |
| |||||||||
10111 |
0 |
* |
| |||||||||
11111 |
1 |
* |
|