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

9.2. Методы борьбы с гонками Противогоночное кодирование

Эффект гонок может возникать лишь в случаях, когда переход автомата из одного состояния в другое связан с одновременным переключением нескольких триггеров. Так в автомате, граф состояний которого приведен на рис.9.6, гонки могут возникать при переходе автомата из состояния Q1 в состояние Q2 и переходе из состояния Q3 в состояние Q0 .

Действительно, при естественном кодировании состояний последовательность переходов, если входной сигнал равен 1, выглядит следующим образом:

Q0 Q1 Q2 Q3 Q0 Q1

q1 0® 0 ® 1 ® 1 ® 0 ® 0

q2 0 ® 1 ® 0 ® 1 ® 0 ® 1 и т.д.

Идея противогоночного кодирования заключается в том, что состояния автомата кодируются так, чтобы при любом переходе автомата из одного состояния в другое переключался только один элемент памяти. Например, для графа на рис.9.6 можно отказаться от естественного кодирования и закодировать состояния следующим образом: Q0 ® 00, Q1 ® 01, Q2 ® 11, Q3 ® 10. Тогда последовательность переходов при входном сигнале q , равном 1, будет иметь следующий вид:

Q0 Q1 Q2 Q3 Q0 Q1

q1 0 ® 0 ® 1 ® 1 ® 0 ® 0

q2 0 ® 1 ® 1 ® 0 ® 0 ® 1 и т.д.

Гонки в этом случае не могут возникать.

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

Синхронизация работы автомата

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

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

&

X

ЭП1

КС1

КС2

Y

&

Q

ЭП2

С=1

Рис.9.7

В качестве вентилей на рис.9.7. используются элементы И на два входа. На один из входов проступает сигнал нового состояния элемента памяти, на второй – синхронизирующий сигнал С. При С = 1 сигнал со входа вентиля проходит на его выход, т. е. цепь обратной связи замкнута и тем самым разрешается переход элементов памяти в новое состояние.

Если элементами памяти являются синхронные триггеры (например, как на рис.9.5), то управление цепью обратной связи осуществляется при помощи сигнала, подаваемого на вход синхронизации триггера. В этом случае надобность в использовании вентилей отпадает.

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

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