Синтез автомата Мили по граф-схеме

Материал из Циклопедии
Перейти к навигации Перейти к поиску

Синтез автомата Мили по граф-схеме — метод построения функциональной схемы автомата.

Описание[править]

Автомат Мили (Mealy machine) — кортеж из 6 элементов, включающий: множество внутренних состояний S (внутренний алфавит); начальное состояние S0; множество входных сигналов X (входной алфавит); множество выходных сигналов Y (выходной алфавит); функция переходов X; функция выходов Y.

Определение[править]

Автомат Мили — конечный автомат, выходная последовательность которого зависит от состояния автомата и входных сигналов, в отличие от автомата Мура. Это означает, что в графе состояний каждому ребру соответствует некоторое значение (выходной символ). В вершины графа автомата Мили записываются выходящие сигналы, а дугам графа приписывают условие перехода из одного состояния в другое, а также входящие сигналы. Назван именем Джорджа Мили, учёного в области математики и компьютерных наук, придумавшего этот автомат.

Обозначения[править]

ГСА — граф-схема автомата;

ФСА — функциональная схема автомата;

a0 — вход вершины следующей за оператором — начальное и конечное состояние автомата;

am — вход вершины следующей за оператором — исходное состояние перехода;

as — вход вершины следующей за оператором — конечное состояние перехода;

am→as — переход из одного состояния в другое;

X(am,as) — логическое условие перехода;

Y(am,as) — функция выходов (микрокоманда);

Zi — промежуточные функции;

DC — дешифратор состояний автомата;

Di — значение на D-триггере.

Примеры:[править]

Пример 1[править]

Синтез автомата Мили по ГСА (рис.1).

ГСА031.png

Рис.1. ГСА автомата Мили с узлами.

Разметка состояний[править]

В автомате Мили входу каждой операторной вершины соответствует состояние автомата. Микрокоманда y1y2 вырабатывается УА при завершении его работы по ГСА. y1y2 — соответствует событию «операция выполнена». Искусственно введём y1y2 при любых переходах в начальное (конечное) состояние а0. Переход из состояния am в состояние as — это переход из одной операторной вершины в другую при выполнении логический условий X(am,as) на пути из am в as. Т.к. начальное и конечное состояние автомата совпадают, на ГСА искусственно добавлена еще одна операторная вершина, соответствующая состоянию a0.

ГСА032.png

Рис.2. Размеченная ГСА автомата Мили.

Построение прямой таблицы переходов 1[править]

Прямая таблица переходов строится по размеченной ГСА (рис.1). В ней указываются все возможные пути переходов из состояния аm в состояние аs, условия при которых переход из аm в аs, происходит по данному пути (X(am,as)), микрокоманда (Y(am,as)), вырабатывается автоматом на данном переходе. Все эти переходы описываются в прямой таблице переходов. В столбце X(am,as) единица записывается тогда, когда am в as переход осуществляется всегда.

Таблица 1.

ГСА033.png

Кодирование состояний[править]

Произведём кодирование узлов. УА с жесткой логикой имеет память состояний, которая обычно выполнена на D- или RS- триггерах, синхронизируемых фронтом. Каждое состояние кодируется двоичным числом. Минимальное количество триггеров для памяти состояний должно быть больше или равно log2 (количество состояний автомата). В данном примере |А| - количество состояний автомата = 5, поэтому число элементов памяти = 3. Коды состояний: k(a0)=100; k(a1)=011; k(a2)=010; k(a3)=001; k(a4)=000.

Построение обратной структурной таблицы 2[править]

Обратная структурная таблицы автомата строится из прямой таблицы переходов упорядочиванием строк по полю аs и добавлением столбцов k(am), k(as), F(am,as). В столбце F(am,as) — записываются значения сигналов управления элементами памяти. В данном примере в качестве элементов памяти выбраны D-триггера. Их состояние зависит от значения управляющего сигнала D на входе D-триггера.

Таблица 2.

ГСА034.png

Построим по таблице 2 граф переходов (см.рис.3).

ГСА035.png

Рис.3. Граф переходов.

Запись функции выходов и переходов автомата[править]

В функциях выходов yi= fi(am,X(am,as)), записанных в виде ДНФ, описываются условия формирования автоматом микрокоманды yi; am — исходное состояние, X(am,as) — условия перехода из am в as. В функциях переходов Di= fi(am,X(am,as)), также записанных в виде ДНФ, описываются значения сигналов управления элементами памяти, обеспечивающих переход из состояния am в as. Функции выходов и переходов могут быть минимизированы с использованием карт Карно или законов булевой алгебры. По обратной структурной таблице запишем функции для Yi и Di.

ГСА036.png

Построение ФСА автомата Мили[править]

В качестве элементов памяти использованы D-триггера T1 и T0. DC — дешифратор состояний автомата. Zi — промежуточные функции — термы из функций. Их введение позволило упростить схему автомата.

ГСА037.png

Рис.4. ФСА автомата Мили на жёсткой логике.

Пример 2[править]

Синтез автомата Мили по ГСА (рис.5).

ГСА041.png

Рис.5. ГСА автомата Мили с узлами.

Разметка состояний[править]

В автомате Мили входу каждой операторной вершины соответствует состояние автомата. Микрокоманда y1y2 вырабатывается УА при завершении его работы по ГСА. y1y2 — соответствует событию «операция выполнена». Искусственно введём y1y2 при любых переходах в начальное (конечное) состояние а0. Переход из состояния am в состояние as — это переход из одной операторной вершины в другую при выполнении логический условий X(am,as) на пути из am в as. Т.к. начальное и конечное состояние автомата совпадают, на ГСА искусственно добавлена еще одна операторная вершина, соответствующая состоянию a0.

ГСА042.png

Рис.6. Размеченная ГСА автомата Мили.

Построение прямой таблицы переходов 3[править]

Прямая таблица переходов строится по размеченной ГСА (рис.5). В ней указываются все возможные пути переходов из состояния аm в состояние аs, условия при которых переход из аm в аs, происходит по данному пути (X(am,as)), микрокоманда (Y(am,as)), вырабатывается автоматом на данном переходе. Все эти переходы описываются в прямой таблице переходов. В столбце X(am,as) единица записывается тогда, когда am в as переход осуществляется всегда.

Таблица 3.

ГСА043.png

Кодирование состояний[править]

Произведём кодирование узлов. УА с жесткой логикой имеет память состояний, которая обычно выполнена на D- или RS- триггерах, синхронизируемых фронтом. Каждое состояние кодируется двоичным числом. Минимальное количество триггеров для памяти состояний должно быть больше или равно log2 (количество состояний автомата). В данном примере |А| - количество состояний автомата = 4, поэтому число элементов памяти = 2. Коды состояний: k(a0)=11; k(a1)=10; k(a2)=01; k(a3)=00.

Построение обратной структурной таблицы 4[править]

Обратная структурная таблицы автомата строится из прямой таблицы переходов упорядочиванием строк по полю аs и добавлением столбцов k(am), k(as), F(am,as). В столбце F(am,as) — записываются значения сигналов управления элементами памяти. В данном примере в качестве элементов памяти выбраны D-триггера. Их состояние зависит от значения управляющего сигнала D на входе D-триггера.

Таблица 4.

ГСА044.png

Построим по таблице 4 граф переходов (см.рис.7).

ГСА045.png

Рис.7. Граф переходов.

Запись функции выходов и переходов автомата[править]

В функциях выходов yi= fi(am,X(am,as)), записанных в виде ДНФ, описываются условия формирования автоматом микрокоманды yi; am — исходное состояние, X(am,as) — условия перехода из am в as. В функциях переходов Di= fi(am,X(am,as)), также записанных в виде ДНФ, описываются значения сигналов управления элементами памяти, обеспечивающих переход из состояния am в as. Функции выходов и переходов могут быть минимизированы с использованием карт Карно или законов булевой алгебры. По обратной структурной таблице запишем функции для Yi и Di.

ГСА046.png

Построение ФСА автомата Мили[править]

В качестве элементов памяти использованы D-триггера T1 и T0. DC — дешифратор состояний автомата. Zi — промежуточные функции — термы из функций. Их введение позволило упростить схему автомата.

ГСА047.png

Рис.8. ФСА автомата Мили на жёсткой логике.

Другие алгоритмы:[править]

Другие разделы[править]

Ссылки[править]