Файл: Баранов, С. И. Синтез микропрограммных автоматов.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 23.10.2024

Просмотров: 103

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

стояния в другое триггер памяти Я,- изменяет свое состояние с 0 на 1, то соответствующая дуга графа автомата отмечается символом ср,- . Если же триггер памяти П{ переходит из состояния 1 в состояние О, то дуга отмечается символом фг. Очевидно, что, как и в случае триг­ гера со счетным входом, каждой дуге графа автомата будет приписано столько символов из указанного множества, сколько элементов па­ мяти автомата изменяют свои состояния на соответствующем ей пере­ ходе (рис. 2-9, в).

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

УіУг

г

Рис. 2-9. Графический метод синтеза автомата

S: а — на

задержках,

б — на

триггерах

со

счетными

входами,

в

на триггерах

с раздель­

ными входами

 

ставляет собой конъюнкцию произведения, соответствующего коду состояния, из которого выходит дуга, отмеченная символом ср,- (ф,-), и входного сигнала (или дизъюнкции входных сигналов, если их не­ сколько), приписанного этой дуге. Аналогично выражение для вы­ ходного сигнала уп (п = 1...........Я, где Я — число выходных кана­ лов для реализации выходных сигналов типа 1) получается как дизъюн­ кция выражений, каждое из которых представляет собой конъюнк­ цию произведения, соответствующего коду состояния, из которого выходит дуга, отмеченная символом уп, и приписанного этой дуге входного сигнала (или дизъюнкции входных сигналов, если их не­ сколько), под действием которого происходит переход с выдачей со­ ответствующего выходного сигнала уп. Выражение для выходного сигнала rd (d = 1, . . . , D, где D — число выходных каналов для реа­ лизации выходных сигналов типа 2) получается как дизъюнкция конъюнкций, каждая из которых соответствует коду состояния, ко­ торому приписан символ rd, т. е. в соответствующем этому состоянию

39


выходном сигнале типа 2 компонента сі равна единице. Таким образом, выражения функций возбуждения памяти и функций выходов могут быть получены непосредственно из графов рис. 2-9, а, б, в. Так как выходные сигналы не зависят от типа элемента памяти, для любого из трех графов:

Уі = tiWiX-i V TTo-VTA'* V TiT^.v., V ТіТо.ѵѵі'з = 0 V 5 V 6

V И;

}

у2 = T jT o A '^ V 'a

V ТіТгА 'хА Гп

V Т хТ зЛ 'хА 'з

V' Т іТ о А 'х Л 'а =

0 V 1 V 5 V 1 4 ;

(2-8)

J

 

 

 

 

 

 

 

Г = Т 1Т 2 V T j T o .

 

 

 

(2-9)

При синтезе на задержках

 

 

 

 

 

 

 

 

фі =

ТхТоА'хЛ'» V TxToA'x.Vo V т^лул-о =

1 \J 6 V

14;

 

 

ф2 =

ТхТоЛ'хЛ'о V Х 1 Х 2 Х 1 Х 2

V ТхТо-Ѵ'хЛ'о V ТхТпА'х.І'з V ТхТзА'хА'з =

(2- 10)

= о V 2 V

1 Ѵ 6 V

14.

 

 

 

 

 

 

 

 

При синтезе на триггерах со счетным входом

 

 

 

ф і =

Т іТ з.Ѵ хЛ '2 V

ТіТз.Ѵ 'х.Ѵ з V

ТхТо.Ѵ'х.Ѵо =

1 V

6 V

1 2 ;

 

 

фо =

ТхТо.ѵ'хЛ'а V ТхТоЛ'хХ, \ /

ТхТоД'х-Ѵо \ / x-jx^x« \ /

(2- 11)

= 0 V 2 V

1 V 5 V

1 2 -

 

 

 

 

 

 

 

 

При синтезе на триггерах с раздельными входами

 

 

 

фі =

txToA'jXo =

12;

 

 

 

 

 

 

 

 

 

Ф і =

Tt T oA-j A-o V Т іТ о А 'і.Ѵ о =

1 V 6 ;

 

 

 

(2- 12)

 

ф о

- T xT oA 'jA 'o

V

T iT o .V jA -.,

=

5 V

1 2 ;

 

 

 

 

 

 

 

 

 

ф 2 =

T x T o A -iA ',

V

TxToA-pV'o

V Х і І 2 х

1 х 2 =

1 V

0 V

2 .

 

Полученные при графическом синтезе формулы (2-8), (2-9), (2-10), (2-11) и (2-12) совпадают соответственно с формулами (2-1), (2-3), (2-5), (2-6) и (2-7) — результатами табличного метода синтеза авто­ мата S.

Глава третья

КОДИРОВАНИЕ СОСТОЯНИИ АВТОМАТА

3-1. Гонки в автомате

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

40


графе для простоты ограничимся использованием в качестве элемен­ тов памяти триггеров с раздельными входами, которые будем обозна­ чать 7 \, . . . , ТI, . . . , Т,). При кодировании разным состояниям автомата соответствуют разные коды. Так как триггер с раздельными входами может находиться в двух различных состояниях, 0 и 1, то очевидно, что для автомата с М состояниями минимальная длина кода равна ]log2M [. Переход автомата из одного состояния в другое осу­ ществляется за счет изменения состояний элементов памяти. Так, если автомат переходит из состояния ат с кодом 0101 в состояние as с ко­ дом 1001, это означает, что триггер Т г переходит из состояния 0 в со­ стояние 1, триггер Т о — из состояния 1 в состояние 0, а состояния триггеров Т 3 и Т4 не изменяются.

Рис. 3-1. Состязания между элементами памяти: а — некритические, б — критические

При функционировании автомата могут появиться так называе­ мые состязания. Явление состязаний возникает вследствие того, что элементы памяти имеют различные, хотя и достаточно близкие вре­ мена срабатывания. Кроме того, различны также задержки сигналов возбуждения, поступающих на входные каналы элементарных авто­ матов по логическим цепям, имеющим неодинаковую длину. Если при переходе автомата из одного состояния в другое должны изменить свои состояния сразу несколько запоминающих элементов, то между ними начинаются состязания. Тот элемент, который выиграет эти со­ стязания, т. е. изменит свое состояние ранее, чем другие элементы, может через цепь обратной связи изменить сигналы на входах неког торых запоминающих элементов до того, как другие участвующие в состязаниях элементы изменят свои состояния. Это может привести к переходу автомата в состояние, не предусмотренное его графом. Поэтому в процессе перехода из состояния а,п в состояние as под дейст­ вием входного сигнала zf автомат может оказаться в некотором про­ межуточном состоянии ак или aLв зависимости от того, какой элемент памяти выиграет состязания. Если затем при том же входном сигнале автомат из ак и а, перейдет в состояние as (рис. 3-1, а), то такие со­ стязания являются допустимыми, или некритическими. Если же в этом автомате есть переход, например, из ак в а;- =^= as под действием того же сигнала zf (рис. 3-1, б), то автомат может перейти в ajtа не в as и правильность его работы тем самым будет нарушена. Такие со­

41


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

Один из способов ликвидации гонок состоит в тактировании вход­ ных сигналов автомата импульсами определенной длительности. Предполагается, что кроме входных каналов .ѵ-,, . . . , xL имеется еще один канал р от генератора синхроимпульсов (ГСП), по которому поступает сигнал р = 1 в момент прихода импульса и р — 0 при его отсутствии. В связи с этим входным сигналом на переходе (ат, as) будет не z;, а рг;-. Тогда если длительность импульса tp меньше самого

 

короткого пути прохождения тактированного

сиг­

 

нала обратной связи по комбинационной схеме, то

 

к моменту перехода в промежуточное состояние ak

 

(рис.

3-1, б) сигнал

р

равен

нулю

и,

следова­

 

тельно, pzf =

0, что и исключает

гонки.

 

 

 

Другой способ ликвидации

гонок заключается

 

во введении двойной памяти (рис.

3-2).

В этом

 

случае каждый элемент памяти дублируется,

при­

 

чем перепись из нижнего элемента памяти

в верх­

 

ний происходит в момент отсутствия - тактирующего

 

импульса = 0). Сигналы обратной

связи

для

Рис. 3-2. Двойная

получения функций

возбуждения

и функций

вы­

ходов автомата снимаются с верхнего ряда тригге­

память

ров. Таким образом, состязания могут возник­

 

 

нуть

только

между

нижними

триггерами,

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

Наряду с аппаратурными способами для устранения гонок могут использоваться специальные методы кодирования.

3-2. Противогоночное кодирование состояний

Пусть (а, ß) и (у, б) — две пары двоичных кодов длины /. Пары (а, ß) и (у, б) называются развязанными, если при некотором і (1^г'<7) і-й разряд кода принимает одно значение на паре (ос, ß) и противопо­ ложное — на паре (у, б). В противном случае пары двоичных кодов (а, ß) и (у, б) называются связанными. В работе [151 доказана следую­ щая теорема: в автомате, состояния которого закодированы двоичными кодами конечной длины, гонки отсутствуют тогда и только тогда, когда для любых двух переходов (ат, as) и (ak, at), as ah происхо­ дящих под действием одного и того же входного сигнала, соответствую­ щие пары кодов состояний развязаны.1 В этой же работе приведен ос­

нованный

на этой теореме алгоритм противогоночного кодирования

1 Эта

теорема доказана применительно к асинхронным автоматам. Если

рассматривать синхронную модель, а устойчивость автомата обеспечивать ка­

ким-либо аппаратным способом,

то условие as Ф сц может быть

заменено,

более

сильным: развязывать

нужно пары переходов, для

которых

{“m.

as] П (ak, aP = 0 .

 

 

42


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

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

ak, aj) — пара переходов автомата 5, а а,

ß, у,

б — соответственно

четверка кодов (быть может, неполных) состояний ат, as, ak,

aL длины

і. Операция развязывания пары переходов

(ат,

as), (ak, at)

сводится

к. следующему:

 

 

 

1.Положить і = 0. Перейти к п. 2.

2.Если і = 0, то переход к п. 8, иначе переход к п. 3.

3.Если при некотором г (1 <7) значения r-го разряда чет­ верки а, ß, у, б образуют набор ООП или набор 1100, то переход к п. 9, иначе переход к п. 4.

4.

Если при некотором г (1 < г ^

і) значения r-го разряда четверки

а, ß, у, б образуют один из наборов

 

 

 

 

 

 

— 0 1 1

— — 1

1

----------

1

 

 

 

 

0

1 1

0

------1

 

0

----------

 

 

 

 

0

0- 1

0

0 ------

 

— 0 ------

 

 

 

 

0 0 1-

— 0 — 1

— 1 -

 

 

 

 

— 0 1-

0 — 1 —

-------------

-

 

 

то переход к и. 5, иначе к и. 6.

 

 

 

 

 

■ 5.

Доопределить неопределенные значения r -го разряда

четверки

а, ß,

у, б так, чтобы его значения образовывали набор ООН.

Переход

к п.

9.

 

 

 

 

 

 

 

г-го разряда чет­

6.

Если при

некотором

г (1 < У < Д

значения

верки а, ß, у,

б образуют один из наборов

 

 

 

 

 

— 1 0 0

------

0 0 ----------

 

0

 

 

 

 

 

1—0 0

 

1 ------

0 -----------

1

 

 

 

 

 

1 1 —0

 

1 1 ------

------

— 1

 

 

 

 

 

І Ю —

— 1 -

0 ------

 

0 — ,

 

 

 

 

— 1 0 —

 

1 — 0 —

 

 

 

 

то переход к п. 7, иначе переход к и. 8.

 

 

 

 

7.

Доопределить неопределенные значения г-го

разряда четверки

а, ß, у, б так,

чтобы значения этого разряда

образовывали набор 1100.

Переход к п.

9.

 

 

 

 

 

 

 

 

43