Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 / Lectures / Lect3v12.doc
Скачиваний:
101
Добавлен:
28.05.2015
Размер:
706 Кб
Скачать
☆

9. Эффект гонок в микропрограммных автоматах и способы его устранения

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

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

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

(При использовании в качестве элементов памяти триггеров с D-входами несколько сигналов переключения вырабатываются в тех случаях, когда код следующего состояния содержит несколько единиц.)

Таким образом, в процессе перехода автомата из одного состояния в другое могут возникать некоторые (незапланированные) промежуточные состояния. Поскольку значения сигналов переключения триггеров памяти зависят от состояния автомата, то при попадании автомата в промежуточное состояние эти значения могут измениться. Причем изменение это может оказаться таким, что автомат останется в этом промежуточном состоянии или переключится в какое-либо другое, не соответствующее закону его функционирования. Гонки, приводящие автомат в такое состояние, называются критическими.

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

Случаи критических и некритических гонок показаны на рис. 9.1,б и 9.1,в, соответственно.

Рис. 9.1. Гонки в автомате (а – переход автомата, на котором могут возникнуть гонки, б – критические гонки, в – некритические гонки)

На верхних частях рис. 9.1,б и 9.1,в, показаны случаи, когда сигнал R3 сброса третьего триггера памяти автомата вырабатывается ранее сигнала S4 установки четвертого триггера, при этом автомат переходит в промежуточное состояние с кодом 0100.

Если в этом состоянии при действии сигнала xk прекращается выработка сигнала S4, например, при S4 = xk T3 , где T3 – состояние третьего триггера памяти, то автомат останется в состоянии 0100, не соответствующем закону его функционирования, т.е., это будет случай критических гонок, показанный на рис.9.1,б. Если выработка сигнала S4 не прекратится, то автомат продолжит переключение триггеров памяти и перейдет в нужное состояние с кодом 0101, т.е., гонки будут некритическими, как показано на рис. 9.1,в.

Аналогичные ситуации могут иметь место и в том случае, если сигнал S4 вырабатывается ранее сигнала R3 , что показано в нижних частях рис. 9.1,б и 9.1,в.

Имеется несколько способов устранения гонок в автомате.

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

Другой вариант связан с использованием сдвоенной памяти, т.е. триггеров MS-типа, как показано на рис. 9.2. В этом случае во время перехода при действии синхросигнала СИ сигналы переключения элементов памяти вырабатываются комбинационной схемой КСх по значениям состояний второй (правой) группы триггеров памяти автомата, а воздействуют эти сигналы на триггеры первого набора. По окончании перехода сигнал СИ снимается, и состояния первой группы триггеров переписывается во вторую.

Рис. 9.2. Использование двойной памяти, для устранения эффекта гонок в автомате

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

Кроме двух указанных способов (которые являются чисто аппаратным решением) могут использоваться специальные методы кодирования состояний.

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

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

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

Соседние файлы в папке Lectures