296
Гл. 4. Теория формальных грамматик и автоматов
Рассмотрим кодирование внутренних состояний автомата, ис
ходя из удовлетворения требований надежности. Функциониро
вание автомата может нарушаться в результате неодинаковой за
держки в реальной схеме, реализующей автомат из-за явления го
нок, сущность которого можно проиллюстрировать на следующем
примере (рис. 4.23). Пусть в рассматриваемый момент переключа
ются два триггера, А и В (событийное условие), причем функ
ция возбуждения <р одного из триггеров, например, В, содержит в
качестве одной из переменных значение
триггера А: <рв = <р(- • •, • • •) (функ
циональное условие); время задержки в
схемах возбуждения триггеров А к В
определяется неравенством Ава > *А
(Лва — время, в течение которого необ
ходимо наличие “старого” значения триг
гера А в схеме возбуждения триггера В;
Ьа — время задержки сигнала возбужде
ния триггера А) (временное условие).
При выполнении этих трех условий
значение триггера будет вычислено не
правильно (так как для правильного вы
числения значения триггера В необхо
димо, чтобы триггер А сохранял свое
“старое” значение по крайней мере в те
чение времени 3г (после начала перехода
автомата), а триггер А “обновляет” свое значение через т). Это —
так называемое явление гонок. При наличии гонок автомат пе
реходит не в то состояние, которое указано при данном переходе,
что приводит к нарушению автоматного соответствия.
Гонки можно устранить, нарушив одно из трех условий гонок.
Для того чтобы нарушить временное условие, т. е. чтобы выпол
нялось неравенство Aba < ^Ai необходимо иметь схемы возбужде
ния триггеров А и В для определения А в а ^^а - Эти схемы будут
получены только на этапе структурного синтеза, для проведения
которого необходимы результаты кодирования внутренних состоя
ний. Следовательно, при логическом устранении гонок нарушение
этого условия неосуществимо. Технически третье условие можно
нарушить, вводя второй каскад элементов обратной связи или с
помощью синхронного выполнения схемы автомата.
Второе условие наличия гонок, т.е. условие <рв = <р(- • »• ■ •)>
можно нарушить функциональным развязыванием элементов па
мяти, например применяя подстановочные разбиения.
Первое условие (переключение двух и более элементов памяти
при одном переходе автомата) нарушается, если при любом пе
реходе автомата переключается только один элемент памяти. Это
означает: каждому внутреннему состоянию автомата сопоставляет