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

Выполним структурный синтез микропрограммного автомата Мура, заданного своей таблицей переходов-выходов (табл.29 или табл. 30). В качестве примера синтез будем выполнять по обратной таблице (табл. 32).

1. В исходном автомате количество состояний М=7, следовательно число элементов памяти

m = ] log 2 M [ = ] log 2 7 [ = 3

Пусть для синтеза используется D-триггеры.

2. Кодируем внутренние состояния автомата, используя алгоритм кодирования для D-триггеров. Количество переходов в данное состояние легко определяется из обратной таблицы: a1 ~ 2, a2 ~ 3, a3 ~ 2, a4 ~ 1, a5 ~ 1, a6 ~ 1, a7 ~ 2.

Поэтому коды состояний следующие:

a2-000, a1-001, a3-010, a7-100, a4-011, a5-101, a6-110.

3. Строим структурную таблицу переходов - выходов автомата Мура.

Табл. 32. Структурная таблица переходов - выходов автомата Мура.

am K(am) as(Y) K(as) X ФВ
a6   a1(-)   x4 D3
a7         D3
a1   a2(y1y2)   x1 -
a2       x3x2  
a6       x4  
a1   a3(y3y4)   x1 D2
a4         D2
a3   a4(y1y4)   x2 D2D3
a2   a5(y2y3)   x3 D1D3
a2   a6(y4)   x3x2 D1D2
a3   a7(y2)   x2 D1
a5         D1

Построение таблицы выполняется аналогично автомату Мили.

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

D1 = a2x3 + a2x3x2 + a3x2 + a5

D2 = a1x1 + a4 + a3x2 + a2x3x2

D3 = a6x4 + a7 + a3x2 + a2x3

или

A = a3x2

B = a2x3x2

D1 = a2x3 + B + a3x2 + a5

D2 = a1x1 + a4 + A + B

D3 = a6x4 + a7 + A + a2x3

5. Выражения для выходных сигналов автомата Мура получаем, исходя из того, что эти сигналы определяются только внутренним состоянием автомата.

y1 = a2 + a4

y2 = a2 + a5 + a7

y3 = a3 + a5

y4 = a3 + a4 + a6

6. Для построения функциональной схемы автомата как и в предыдущем случае используем дешифратор состояний. Схема представлена на рис. 61.

ЗАМЕЧАНИЯ.

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

Для упрощения схем автоматов можно также предварительно упростить ГСА, уменьшив количество вершин или узлов методами, изложенными в / /.

Автомат Мили в течении такта сохраняет свое состояние и лишь в конце его переходит в новое. Пока автомат находится в данном состоянии Ai он вырабатывает выходные сигналы y=f(Ai,x), где х - сигналы, подаваемые на вход автомата в течение данного такта. В связи с этим автомат Мили может интерпретировать микропрограмму корректно только в том случае, если для любого перехода выполняется условие независимости логических условий от результатов выполнения микроопераций на данном переходе.

Условие независимости нарушается, если на некотором переходе из а m в а s под действием сигнала х с выработкой у i наблюдается функциональная зависимость х = f (у i). В таком случае выполнение микрооперации у i может привести к изменению значения х и автомат, находясь в состоянии а m, и, реагируя на набор входных сигналов, сформирует набор выходных сигналов, не соответствующий микропрограмме. Чтобы избежать этого, можно использовать следующие способы:

1) запомнить значение сигналов х на промежуток времени, равный длительности такта;

2) ввести в автомат дополнительные состояния;

3) реализовать автомат по схеме Мура.

Запоминание значений сигналов х в течение такта осуществляется операционным автоматом с помощью дополнительных элементов памяти – триггеров. Интерпретация микропрограммы автоматом Мура рассматривалась ранее. Введение дополнительных состояний иллюстрируется рис. 59.

В исходном автомате (рис. 59.а) есть переходы из аi в аj под действием сигналов х и х с выработкой y 1 и y 2 соответственно и имеет место х = f (y 1, y 2). Действительно, введение вспомогательных состояний а k и а l позволяет устранить возможную ошибку в выдаче выходных сигналов. На переходах аi аk или аiаl выходные сигналы не вырабатываются. Переходы аi аk или аiаl являются безусловными с выработкой y 1 или y 2 соответственно. В таком случае изменение значения х, в результате выполнения микроопераций y 1 или y 2, не повлияет на выходной сигнал, вырабатываемый автоматом, так как на переходах аi аk или аiаl выходной сигнал уже не зависит от х.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: