169
Г л а в а 22
Кодирование состояний асинхронного автомата
22.1. Явление состязаний элементов памяти
Асинхронный автомат отличается от синхронного тем, что промежуток
между моментами времени, когда автомат меняет свое состояние, у него не
фиксирован, а определяется изменением входного сигнала. В связи с этим на
функцию переходов Ψ накладывается следующее ограничение: если Ψ(a, q
i
) = q
j
для некоторых а ∈ А и q
i
∈ Q, то Ψ(a, q
j
) = q
j
, т. е. всякий переход должен всегда
вести в некоторое состояние, устойчивое при действующем в данный момент
входном сигнале а. Естественно, что входной сигнал не должен меняться до тех
пор, пока автомат не придет в устойчивое состояние. Без этих ограничений
невозможно построить автомат, реализующий заданное поведение.
В реальных схемах не может быть одновременного изменения различных
сигналов, допускаемого в абстрактной модели синхронного автомата. Реальные
логические элементы обладают инерционностью, приводящей к некоторым
задержкам их «срабатывания», причем разброс этих задержек для различных
элементов носит случайный характер. Кроме того, сигналы, переключающие
различные элементы памяти, могут проходить цепочки логических элементов,
имеющие различную длину. Задержки на элементах в цепочках суммируются.
Сами элементы памяти имеют различное время переключения. В схемах,
работающих в синхронном режиме, такими задержками можно пренебречь,
поскольку там процесс переключения элементов памяти и процесс
формирования переключающих сигналов разделены во времени. В
асинхронных схемах эти процессы происходят одновременно и указанное
свойство реальных элементов должно учитываться.
Рассмотрим процесс перехода из состояния в состояние для асинхронного
автомата, поведение которого представлено в табл. 22.1 с выделенными
устойчивыми состояниями, где крайний правый столбец представляет
произвольно выполненное кодирование состояний. Переход из одного
состояния в другое в реальной схеме реализуется как смена набора состояний
элементов памяти. Пусть сначала действует входной сигнал а
1
и автомат
находится в устойчивом состоянии q
1
(код 000). Затем входной сигнал меняется
на а
3
, и автомат согласно заданному поведению должен пойти в состояние q
4
(код 011). В зависимости от того, какой из двух элементов памяти, z
2
или z
3
,
меняет свое состояние первым, автомат может оказаться на какое-то время в
промежуточном состоянии, представленном набором состояний элементов
памяти 010 либо 001. Если первым меняет свое состояние элемент z
3
, то
автомат окажется в состоянии q
2
(код 001), которое является устойчивым для
входного сигнала а
3
, т. е. вместо того, чтобы идти в состояние q
4
, автомат
остается в состоянии q
2
.