Выполним структурный синтез микропрограммного автомата Мура, заданного своей таблицей переходов-выходов (табл.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 выходной сигнал уже не зависит от х.