Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
automats.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
5.12 Mб
Скачать

7. Структурный синтез автоматов с памятью, асинхронные автоматы и сети петри

7.1. Канонический метод синтеза автоматов с памятью

Целью структурного синтеза конечного автомата является схемная реализация абстрактного автомата (1.11). Рекомендуется предварительно минимизировать число состояний абстрактного автомата. Элементами структурного автомата являются:

  • логические элементы;

  • элементы памяти (запоминающие элементы).

В качестве элементов памяти используются автоматы Мура, обладающие полной системой переходов и полной системой выходов, т.е. функционально полные элементы памяти. Полнота системы переходов автомата заключается в том, что для любой упорядоченной пары состояний автомата существует входной сигнал, первое состояние во второе состояние. Полнота системы выходов означает, что каждому состоянию автомата соответствует свой выходной сигнал, позволяющий однозначно определить это состояние. Таким образом, в автомате Мура с полной системой выходов состояний автомата можно отождествить с соответствующими выходными сигналами.

Функции переходов элементарных двоичных автоматов Мура (триггеров) , которые будут использованы в дальнейшем, приведены в табл. 29, а и б. Где u – входной двоичный сигнал автомата, q – выходной двоичный сигнал , совпадающий с состоянием автомата.

Таблица 29.

а) б)

u

q

0 1

0

1

0 0

1 1

u

q

0 1

0

1

0 1

0 1

Табл.29, а, соответствует элементу задержки. Логическое значение

выходного сигнала на выходе элемента задержки равно

q(t+1) = u(t),

т.е. значению выходного сигнала, задержанному на один такт работы автомата. Элемент задержки выполнен в виде D-триггера.

Табл. 29, б, соответствует триггеру со счётным выходом (Т-триггеру).

Выходной сигнал триггера со счётным входом равен

q(t+1)=q(t)  u(t),

т.е. сумме по mod 2 текущего и входного сигнала триггера.

Канонический метод структурного синтеза автоматов

Канонический метод сводит структурный синтез конечного автомата к синтезу комбинационной части, реализующей функции возбуждения элементов памяти и логические функции структурного представления входа автомата.

На рис. 36, а и б, приведены обобщённые структурные схемы автоматов на D- и Т- триггерах, где КС – комбинационная схема.

Для обеспечения устойчивой работы автомата при практической реализации необходимо предусмотреть, например, удвоение элементов памяти. (рис. 37).

а) б)

Рис.36

Рис.37

Синтез состоит из двух этапов:

  • Кодирование состояний, входных символов автомата;

  • Синтез комбинационной части, обеспечивающей получение требуемой функции переходов и выходов.

Пример. Выполним структурный синтез автомата Мили

Продавец. Этот автомат имеет входной алфавит V=[v1,v2], выходной алфавит W=[w1, w2, w3, w4], алфавит состояний S=[s0, s1, s2] и характеризуется таблицей переходов (табл.1) и таблицей выходов (табл.2)

Для кодирования входных и выходных алфавитов и состояний автомата необходимо [log2|V|]=1, [log2|W|]=2, [log2|S|]=2 разрядов соответственно.

Обозначаем структурное представление входа автомата символом x, выходов y1 и y2, состояний символами q1 и q2.

Тогда можно предложить кодирование V, W и S, представленное в табл. 30, а, б и а.

Таблица 30.

а) б) в)

Y

X

y1

y2

0

1

W

y1 y2

w1

w2

w3

w4

0 0

0 1

1 0

1 1

S

q1 q2

s0

s1

s2

0 0

0 1

1 1

Используя эти коды построим таблицы переходов и выходов автомата (Табл. 31, а, б)

Табл. 31

а) б)

X

q1 q2

00 01 11

0

1

01 11 00

11 00 00

S

q1 q2

00 01 11

0

1

00 01 10

01 10 10

Общую закодированную таблицу выходов (табл. 31 б) можно расщепить на отдельные таблицы для каждого выходного символа структурного автомата, т.е. для у1 и у2 отдельно (табл. 32 и табл. 33)

Табл. 32 Табл. 33

X

q1 q2

00 01 11 10

0

1

0 0 1 -

0 1 1 -

X

q1 q2

00 01 11 10

0

1

0 1 0 -

1 0 1 -

Рассматривая эти таблицы как карты Карно-Вейча, получим

минимизированные выражения для у1 и у2:

y1=q1\ /x&q2;

_ __ __

y2=x&q1&q2 \ / x&q2 \ / x&q1

Закодированную таблицу переходов используем для построения таблиц возбуждения элементов памяти автомата. Таблицы возбуждения должны содержать такие значения входных сигналов каждого триггера, которые бы обеспечивали переключение триггеров в соответствии с таблицей переходов автомата.

Для D-триггеров u_1(t) = q_1(t), т.е. таблица возбуждения совпадает с закодированной таблицей переходов автомата.

Для Т-триггеров u_1(t) = q_1(t)  q_1(t+1), т.е. значение сигнала возбуждения получается суммированием по mod2 текущего состояния триггера и его требуемого нового состояния.

В нашем примере таблица возбуждения для Т-триггеров имеет вид Табл. 34.

Табл. 34

X

q1 q2

00 01 11

0

1

01 10 11

11 01 11

Расщепим общую таблицу возбуждения на отдельные таблицы для каждой составляющей. (табл. 35 и 36)

X

q1 q2

00 01 11 10

0

1

0 1 1 -

1 0 1 -

X

q1 q2

00 01 11 10

0

1

1 0 1 -

1 1 1 -

Рассматривая эти таблицы как карты Карно-Вейча для частичных функций, получим минимизированные значения функций возбуждения q1 и q2:

_ __

q1=x&q2 \ /x&q2\ / q1;

__

q2=q2 \ / q1 \ /x

7.2 Асинхронные автоматы

Различие между синхронными и асинхронными автоматами проявляются тогда, когда мы начинаем рассматривать функционирование реальных электронных, полупроводниковых или иных физических устройств с учётом характера сигналов, представляющих входные символы автомата, и с учётом задержек распространения этих сигналов в элементах, из которых построен автомат.

Синхронный автомат может изменять своё состояние только в определённые моменты времени, а именно в моменты поступления синхронизирующих импульсов.

В отличие от синхронных, асинхронный автомат переключается в момент изменения логического значения входных сигналов.

Входные сигналы асинхронного автомата обладают следующими свойствами (рис.38):

-сигнал присутствует на входе автомата в каждый момент времени;

-длительность входного сигнала не ограничена и превышает некоторую минимальную величину.

  • изменения входного сигнала могут происходить в произвольные моменты времени.

V(t)

11

01

t

Функционирование асинхронного автомата можно представить моделью Мура:

S(t+Ti ) = [S(t), V(t)],

W(t) =  [S(t)],

Где S(t) – состояние автомата;

V(t) – входной символ автомата;

W(t) – выходной символ автомата;

t – непрерывное время;

Ti - время задержки выходного символа по отношению к моменту

изменения входного символа.

Пусть S(t+Ti ) = [S(t), V(1)]=S(1)=Si при некотором V(1)=V. В этом случае состояние Si называется устойчивым при входном сигнале V (рис.39 а)

а) б)

V

Si V Si Sj

Рис. 39

В противном случае, если S(t+Ti ) =  [S(t), V(t)]=Sj , S(t)=Si

Причём Sj =Si при некоторой V(t)=V, состояние называется неустойчивым при входном сигнале V (рис 39 б)

При структурном синтезе асинхронных автоматов все полезные (запланированные) состояния должны быть устойчивыми.

Однако, как правило, при проектировании автомата приходится мириться с наличием некоторого числа неустойчивых состояний, в которых автомат находится некоторое достаточно малое время.

Поэтому неустойчивые состояния называются транзитными.

На рисунке 40 показан граф иллюстрирующий появление транзитных состояний.

V1 V1

V Si Sj Sk V1

Рис. 40

Вначале автомат находится в устойчивом состоянии Si Под действием входного символа V. При замене входного символа V на V1 переходит в состояние Sk , устойчивое при действии V1 .

В асинхронных автоматах возможно явление, называемое генерацией (рис. 41)

V1 V1

V Si Sj Sk

V1

Рис. 41

Под действием замены входного сигнала V на V1 автомат покидает устойчивое состояние и попадает в замкнутую цепочку (цикл) транзитных состояний Si Sj Sk Вывести автомат из режима генерации можно только путём изменения входного символа.

Структурный синтез асинхронных автоматов.

Синтез асинхронных автоматов на абстрактном уровне осуществляется практически так же, как и синтез синхронных автоматов. При структурном синтезе отличие заключается в кодировании состояний автомата. Если для синхронных автоматов кодирование состояний может быть произвольным, то для асинхронных автоматов применяют специальное, противогоночное кодирование.

Это связано с явлением, которое называется гонками или состязанием элементов памяти. Гонки вызываются задержками срабатывания элементов памяти. Задержки переключения элементов памяти (триггеров) обусловлены как инерционностью этих элементов, так и временем распространения сигналов между элементами. Величина задержки переключения T3 лежит в некоторых пределах

0 < T3 < T3 max

Имеет место разброс значений от одного экземпляра триггера к другому, поскольку состояния автомата кодирует, как правило, несколькими элементами, при переключении состояния автомата имеют место гонки:

сначала срабатывает элемент с наименьшей задержкой, затем элемент с наименьшей задержкой среди оставшихся и т.д.

Состязания приводят к тому, что автомат не сразу совершает переход в запланированное состояние, а сначала минует несколько транзитных состояний.

Если автомат попадает в запланированное состояние при любом распределении задержек срабатывания, то гонки называются некритическими.

Рассмотрим автомат в котором входной символ кодируется двумя двоичными разрядами x1 x2 , а состояние тремя разрядами q1 q2 q3 .

На рис. 42 а, иллюстрируется отсутствие гонок, когда при изменении входа с 00 на 01 автомат покидает устойчивое состояние 000 и, минуя транзитные состояния 001 и 101, попадает в устойчивое состояние 111.

Примерна рис. 42 б, показывает случай некритических гонок.

Запланированные переходы показаны сплошными стрелками, а переходы, вызванные разбросом параметров – штриховыми стрелками.

В этом примере автомат из состояния 101 под действием входа 11 перейдёт либо в состояние 111 либо в состояние 100.

Переход из 101 в 110 маловероятен, однако в любом случае автомат попадает в запланированное состояние 000.

Пример. На рис. 42в., иллюстрирует критические гонки, когда автомат может попасть вместо состояния 100 в незапланированное состояние 110.

Пример на рис. 42 г, показывает случай возникновения генерации асинхронного автомата.

Кодирование состояний асинхронного автомата.

Кодирование состояний асинхронного автомата должно удовлетворять основному требованию: любая пара состояний автомата смежных по графе переходов должна иметь соседнее кодирование, т.е. коды смежных состояний должны отличаться только в одном двоичном разряде.

Универсальный способ кодирования предполагает, что для k полезных состояний используется k элементов памяти. Каждое i-е состояние кодируется как 00..010..0, где стоит в

а) Отсутствие гонок.

00 01 01 01 01

000 001 101 111

б) некритические гонки

111

00 11 11 11 11 11

101 110 100 000

11

11

в) критические гонки

101

10 10

01 10 10

111 100

10

110 10

г) генерация при отсутствии гонок

0 1 00 00 00

011 111 110 010

00

i – позиции. Между i-м и j-м полезным состоянием вводится, если необходимо соблюсти требование соседнего кодирования, транзитное состояние, содержащие единицы в i-й и j-й позиции.

На рис. 43а приведён граф переходов автомата с четырьмя состояниями S1 S2 S3 и S4 .

На рис. 43б приведён пример соседнего кодирования состояний рассматриваемого автомата на основе универсального способа. Как видно из этого рисунка, для выполнения требования соседнего кодирования пришлось ввести дополнительно шесть транзитных состояний.

Для автомата на рис. 43а берём начальное число триггеров

]log2 4[ = 2

Приписываем состоянию S1 код 00, состояниям S2 и S3 коды 01 и 10, соседние по отношению к коду S1 (рис. 43в). Убеждаемся что двух триггеров не достаточно, поэтому увеличиваем число триггеров до трёх

(рис.43 г) присваиваем состоянию S1 код 000, а состояниям S2 S3 и S4 , смежным с S1 - коды , соседние по отношению к 000. Введение трёх транзитных состояний как показано на рис. 43г, приводит к решению поставленной задачи.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]