Абстрактный автомат зададим в виде автомата Милли.
Для формального описания абстрактного автомата необходимо задать входной алфавит, выходной алфавит, множество состояний, функцию переходов и функцию выходов.
Автомат имеет три входа, соответствующих различным комбинациям подаваемых сигналов.
Входной алфавит:
Х={х1,х2,х3},
где х1 означает, что нажата кнопка первого этажа; х2 означает, что нажата кнопка второго этажа, х3 означает, что нажата кнопка третьего этажа.
Выходной алфавит:
У= {у0, у1, у2, у3, у4},
где
у0 – лифт стоит на месте,
у1 – лифт едет на один этаж вверх,
у2 - лифт едет на один этаж вниз,
у3 - лифт едет на два этажа вверх,
у4 - лифт едет на два этажа вниз.
Множество состояний:
S= { s1, s2, s3};
где s1- лифт на первом этаже; s2 – лифт на втором; s3 – лифт на третьем этаже.
Теперь, можно составить таблицы переходов – входов и переходов выходов.
Таблица переходов – входов представлена в таблице 3.2.1.
Таблица 3.2.1
S | s1 | s2 | s3 |
х1 х2 х3 | |||
0 0 0 | s1 | s1 | s1 |
0 0 1 | s2 | s2 | s2 |
0 1 0 | s1 | s1 | s1 |
0 1 1 | s3 | s3 | s3 |
1 0 0 | s1 | s1 | s1 |
1 0 1 | s3 | s3 | s3 |
1 1 0 | s2 | s2 | s2 |
1 1 1 | s1 | s1 | s1 |
Таблица переходов – выходов представлена в таблице 3.2.2.
Таблица 3.2.2
S | s1 | s2 | s3 |
х1 х2 х3 | |||
0 0 0 | у0 | у0 | у0 |
0 0 1 | у0 | у2 | у4 |
0 1 0 | у1 | у0 | у2 |
0 1 1 | у0 | у2 | у4 |
1 0 0 | у3 | у1 | у0 |
1 0 1 | у0 | у2 | у4 |
1 1 0 | у1 | у0 | у2 |
1 1 1 | у0 | у2 | у4 |
Для того, чтобы хранить текущее состояние требуется n=[logθM] элементов памяти, где М – мощность алфавита состояний, θ – число состояний элементов памяти. Таким образом, необходимо log23=2 элементов памяти.
Кодирование входных и выходных символов состояний
Кодирование входных символов представлено в таблице 3.3.1.
Таблица 3.3.1
Х | х3 | х2 | х1 |
х1 | 0 | 0 | 0 |
х2 | 0 | 0 | 1 |
х3 | 0 | 1 | 0 |
х4 | 0 | 1 | 1 |
х5 | 1 | 0 | 0 |
х6 | 1 | 0 | 1 |
х7 | 1 | 1 | 0 |
х8 | 1 | 1 | 1 |
Кодирование выходных символов представлено в таблице 3.3.2.
Таблица 3. 3.2
у1 | у2 | у3 | |
у0 | 1 | 0 | 1 |
у1 | 0 | 0 | 0 |
у2 | 1 | 0 | 0 |
у3 | 1 | 1 | 1 |
у4 | 1 | 1 | 0 |
Кодирование состояний автомата представлено в таблиц 3.3.3.
Таблица 3.3.3
S | t1 | t2 |
s1 | 0 | 0 |
s2 | 0 | 1 |
s3 | 1 | 1 |
В соответствии с таблицами 3.3.1 – 3.3.3 составляем таблицу переходов – входов в кодированном виде.
Таблица 3.3.4
х3х2х1\s1s2s3 | 00 | 01 | 11 |
000 | 00 | 01 | 11 |
001 | 00 | 00 | 00 |
010 | 01 | 01 | 01 |
011 | 00 | 00 | 00 |
100 | 11 | 11 | 11 |
101 | 00 | 00 | 00 |
110 | 01 | 01 | 01 |
111 | 00 | 00 | 00 |
А также составим кодированную таблицу переходов выходов.
Таблица 3.4.5
х3х2х1\s1s2s3 | 00 | 01 | 11 |
000 | 101 | 101 | 101 |
001 | 101 | 100 | 110 |
010 | 000 | 101 | 100 |
011 | 101 | 100 | 110 |
100 | 111 | 000 | 101 |
101 | 101 | 100 | 110 |
110 | 000 | 101 | 100 |
111 | 101 | 100 | 110 |
Обобщенная функциональная схема структурного автомата
Построим обобщенную функциональную схему структурного автомата с учетом заданного типа автомата и триггера (см. рис.3.4.1).
Рис.3.4.1
На рисунке 3.4.1 функциональная схема состоит из двух блоков. Первый блок - блок памяти, который состоит из двух элементов памяти (D – триггер, П1, П2). Второй блок – комбинационная схема (КС1).