
книги из ГПНТБ / Баранов, С. И. Синтез микропрограммных автоматов
.pdfОчевидно, что кроме случаев, отмеченных в пп. 1—3 предыдущего параграфа, функции возбуждения будут не определены также на на борах, соответствующих черточкам в поле табл. 2-26. Такими набо рами, например, для функции я|)х будут
/О О О о \
о 0 1 о . VÖ 1 0 1/
;
[7Г П
Т° |
|
фі L |
фі |
1 |
|
l ^ J
X, |
х г• |
—№
r ~ \
д
Фг\ |
фг ■ |
|
|
|
|
L J L J |
Уг |
||
7 |
7 |
7 |
7 |
I |
о |
г |
5 |
П |
|
|
|
|
|
Т |
Рис. 2-8. Логическая схема автомата 5 при синтезе на триггерах с раз дельными входами
• Логическая схема автомата S, синтезированного на элементах «И», «ИЛИ», «НЕ» и триггерах с раздельными входами, в соответствии с формулами (2-1) и (2-3) для выходных сигналов и (2-7) для функций возбуждения памяти построена на рис. 2-8.
Рассмотренные методы синтеза могут быть использованы и при по строении автомата на различных элементах памяти. Так, если в табл. 2-27 представлен один столбец таблицы переходов некоторого автомата с двумя входными сигналами и шестью элементами памяти, причем П 1 я П 2 — задержки, П 3 и Я 4 — триггеры со счетным входом, а /75 и Пй — триггеры с раздельными входами, то соответствующий столбец функции возбуждения будет иметь вид табл. 2-28.
37
Таблица 2-27 |
Таблица 2-28 |
Столбец таблицы переходов |
Столбец таблицы функций |
автомата с разными элементами |
возбуждения памяти, |
памяти |
построенный по табл. 2-27 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
10 —0 |
|
0 |
1 0 |
1 |
1 |
1 |
0 |
I |
1 |
1 |
0— 01 |
2-4. Графический метод структурного синтеза автоматов
При графическом методе синтеза структурный С-автомат пред ставляют в виде графа. На рис. 2-9, а изображен граф автомата, за данный ранее табл. 2-15 и 2-16. Дугам этого графа вместо кодов вход ных сигналов 00, 01 и 10 приписаны соответствующие конъюнкции
Входных |
переменных х хХп, л'хл'2 и x Lx 2. Аналогично для выходных |
сигналов |
первого типа вместо 00, 01, 10 и 11 записаны символы у ху 2, |
УіУі ’ УіУч и УіУ-ъ а Для выходных сигналов второго типа рядом с вер шинами вместо 0 и 1 записаны символы >\ и г1 соответственно.
Из таблицы функции входов для элемента задержки (табл. 2-19) видно, что если в некотором состоянии элемент памяти Пс принимает значение единицы, то на всех переходах в это состояние функция воз буждения этого элемента qy должна принимать значение единицы. Из табл. 2-21, описывающей функцию входов триггера со счетным вхо дом, следует, что функция возбуждения ср,- триггера Пі должна быть равна единице на тех переходах, когда происходит изменение состоя ния этого триггера. Функция входов триггера с раздельными входами (табл. 2-25) показывает, что для перевода такого триггера из состоя ния 0 в состояние 1 должен быть подан входной сигнал, равный еди нице, на вход ер, а для перевода из 1 в 0 — на вход ф. Это позволяет сформулировать следующую процедуру синтеза структурного С-авто- мата по его графу.
При синтезе автомата на элементах задержки все дуги графа, вхо дящие в состояние, в котором элемент памяти Пі принимает значение 1, отметим символом ф,- (г = 1.........../, где / — длина кодов состояний).
Очевидно, что каждой дуге графа автомата будет приписано столько символов, сколько единиц содержится в коде состояния, в которое входит эта дуга (рис. 2-9, а).
При синтезе автомата на триггерах со счетными входами если на некотором переходе из одного состояния в другое триггер Пі меняет свое состояние с 0 на 1 или с 1 на 0, то соответствующая дуга графа автомата отмечается символом ф, (і = 1 , . . . , / ) . Очевидно, что каж дой дуге графа автомата будет приписано столько символов, сколько элементов памяти изменяют свои состояния на соответствующем пе реходе (рис. 2-9, б).
При синтезе автомата на триггерах с раздельными входами каж
дой |
дуге графа приписывается |
набор символов из множества |ф,., |
ф(.], |
і = 1, . . . , I . При этом если |
при переходе автомата из одного со |
38
стояния в другое триггер памяти Я,- изменяет свое состояние с 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
8.Дополнить коды состояний автомата одним неопределенным раз рядом. Увеличить /• на единицу. Переход к п. 4.
9.Пара переходов (ат, as), (ак, о;) развязана. Конец.
Длина кода, получаемого в результате применения изложенного алгоритма, в большинстве случаев оказывается неминимальной, так как при введении нового разряда кода могут развязываться пары пе реходов, которые уже были развязаны ранее. В связи с этим жела тельно минимизировать длину получаемых кодов состояний, что де лается следующим образом. Исключаем один из разрядов кодов, в ре зультате чего некоторые пары переходов могут оказаться связанными, и применяем алгоритм развязывания пар переходов. После этого ис ключаем еще один разряд, вновь применяем алгоритм противогоночного кодирования и т. д. до тех пор, пока длина кода не перестанет уменьшаться. Если в результате работы алгоритма значения не всех разрядов будут определены, то их можно доопределить произвольно.
Проиллюстрируем алгоритм противогоночного кодирования на примере автомата, функция переходов которого задана табл. 3-1.
|
|
|
|
|
|
Таблица 3-1 |
|
|
Таблица |
переходов частичного автомата |
|
||||
|
«1 |
о2 |
о3 |
Я-1 |
05 |
Оо |
От |
д |
а2 |
Qо |
0.1 |
0.1 |
Он |
Оо |
_ |
|
|
а3 |
о3 |
Оі |
Оз |
— |
— |
г3 |
|
а-о |
а- |
|
Or, |
|
|
Очевидно, что пары должны быть развязаны в каждом из массивов пере ходов Ми М2, Л-13, происходящих под действием сигналов zu z2, z3.
м 1 |
м. |
|
М3 |
||
( О і . |
0 2) |
( О і . |
0 ( ) |
( а 2 . |
Or.) |
(о». Оо) |
( о 2 , |
а3) |
( о 3 , О т) |
||
( о 3 . |
о .|) |
( О з . |
о 3) |
(О з , |
Оз) |
(0 .1 , |
о .і) |
(0 .1 , |
О і) |
(О т , |
а,) |
(о5, |
Оо) |
( о 5 . о 3) |
|
|
|
(О б . |
Оо) |
|
|
|
|
Развязывание пар переходов в Mx начнем с первого перехода (alt а2). Со гласно сформулированной выше теореме пару (сц, а2) и (а2, а2) развязывать не надо из-за совпадения состояний перехода. Первая пара переходов, которая подлежит развязыванию, есть (аЛ, о2), (о3, о4). Вводим переменную тх и образуем по этой переменной четверку (ООП) для состояний аЛ, а2, а3,а4. Рассматривае мая пара переходов развязана (табл. 3-2).
Паре переходов (оц, а2), (а4, а4) соответствует четверка (ООН) (см. табл. 3-2), т е. эта пара тоже развязана.
Пара (oj, а2), (о5, а0) образует четверку (00------). Для развязывания этой пары доопределим эту четверку до (ООП), для чего состояниям а5, а0 ставим в со ответствие тх = 1 (табл. 3-3).
44
|
Таблица 3-2 |
|
Таблица 3-3 |
Развязывание пары |
Развязывание пары |
||
(»і- |
а,), («з, а,]) |
(от. о2), |
(«5, а6) |
|
Ч |
|
T1 |
О і |
0 |
О і |
0 |
ао |
0 |
Clo |
0 |
Оз |
1 |
Оз |
1 |
0.1 |
1 |
O.t |
1 |
0.5 |
-- ■ |
Os |
1 |
о0 |
— |
0 0 |
1 |
а,
Из табл. 3-3 видно, что пара (ctj, а.,), (л0, а6) развязана [(четверка (ООП)]. Точно так же развязаны пары, образованные переходом (а.,, а.,) н всеми после дующими переходами в М г. Обратимся к паре (а3, а.{), (ог,, о0). Из табл. 3-3 по лучаем соответствующую четверку (1111) — пара не развязана. Вводим пере менную т2 и полагаем для а3 и аАзначение т2 = 0, а для аъи аат2 = 1 (табл. 3-4).
Таблица 3-4 |
|
|
Таблица 3-5 |
|
|
|
Таблица 3-6 |
||||||
Развязывание пары |
|
Развязывание |
пар |
|
Развязывание пар |
||||||||
(аз, ßj), (Об- |
О 0 ) |
|
переходов |
в массиве |
|
переходов в массиве |
|||||||
|
|
|
|
М2 |
|
|
|
|
м 3 |
|
|
||
|
Ч |
Т 2 |
|
|
Ч |
То |
Т3 |
|
|
|
Ч |
ч |
ч |
|
|
|
|
|
|
|
Т 1 |
||||||
Ol |
0 |
— |
|
|
|
1 1 |
|
|
|
1 1 — |
|||
do |
0 |
— |
|
Оі |
0 |
|
Оі |
0 |
|||||
Оз |
1 0 |
|
do |
0 |
0 |
0 |
|
do |
0 |
0 |
0 |
0 |
|
0,1 |
1 |
0 |
|
Оз |
1 |
0 |
0 |
|
«3 |
1 |
0 |
0 |
1 |
Os |
1 |
1 |
|
«4 |
1 |
0 |
1 |
|
0 4 |
1 |
0 |
1 |
— |
Oe |
1 1 |
|
а5 |
1 1 0 |
|
0 5 |
1 1 0 |
0 |
|||||
07 |
— — |
|
Оо |
1 1 — |
|
Об |
1 1 — — |
||||||
|
|
|
|
а7 |
|
|
|
|
о7 |
|
0 |
|
1 |
После этого остальные переходы в М 1 тоже развязаны. Аналогично для Л42 |
|||||||||||||
и Af3 получим табл. 3-5 |
и 3-6. |
|
|
|
|
|
|
|
|
|
|||
Переходим к минимизации. Исключаем переменную хг (табл. 3-7) и повто |
|||||||||||||
ряем процесс развязывания пар переходов. |
|
|
|
|
|
|
|
||||||
|
|
|
Таблица 3-7 |
|
|
|
|
Таблица 3-8 |
|
||||
Исключение переменной тх |
|
|
Развязывание пар перехода |
|
|||||||||
|
|
|
|
|
|
|
|
без т1 |
|
|
|
|
|
|
|
|
Ч |
"И |
|
|
|
т 2 |
Т 3 |
Т4 |
Tg |
|
|
|
|
|
|
|
|
|
|
|
|
||||
Оі |
|
1 |
1 |
|
|
|
|
1 |
1 ■0 |
|
|
|
|
а о |
|
0 |
0 |
0 |
|
|
О і |
0 |
|
|
|||
«3 |
|
0 |
0 |
1 |
|
|
а о |
0 |
0 |
0 |
0 |
|
|
0.1 |
|
0 |
1 |
— |
|
|
Оз |
0 |
0 |
1 |
— |
|
|
Од |
|
1 |
0 |
0 |
|
|
0.1 |
0 |
1 |
1 |
— |
|
|
Оо |
|
1 |
— |
— |
|
|
Од |
1 |
0 |
0 |
1 |
|
|
о 7 |
|
0 |
|
1 |
|
|
Оо |
1 |
— |
— |
1 |
|
|
|
|
|
|
|
|
|
0 7 |
0 |
— |
1 |
— |
|
|
45
Оказывается, что пара (аъ о2), (яГ), ав) не развязана, в связи с чем добавляем переменную т5 и развязываем эту пару (табл. 3-8).
|
|
Таблица 3-9 |
|
|
Таблица 3-10 |
||
Исключение переменной т.. |
Результат |
протнвогоночного |
|||||
|
|
|
|
кодирования |
|
||
|
Т3 |
И |
Т я |
|
|
|
|
|
|
|
|
|
Тз |
И |
т 6 |
|
1 |
0 |
0 |
|
|
|
|
Ö O |
0 |
0 |
0 |
0| |
1 |
0 |
0 |
|
0 |
1 |
— |
а 2 |
0 |
0 |
0 |
0.1 |
I |
1 |
— |
a - j |
0 |
1 |
0 |
« 5 |
0 |
0 |
1 |
0.1 |
1 |
1 |
0 |
а о |
— |
0 |
1 |
П Г) |
0 |
0 |
1 |
|
|||||||
а 7 |
|
1 |
— |
«в |
1 |
0 |
I |
|
|
|
|
° 7 |
0 |
1 |
1 |
Все остальные пары развязаны. Далее исключаем переменную т„ и полу чаем табл. 3-9 с тремя переменными т3, т4, тГ), в которой после проверки оказы ваются развязанными все пары.
Дальнейшая минимизация невозможна, так как для кодиро-' ваимя семи состояний нужно не менее трех переменных. После доопределения прочерков в табл. 3-9 получаем табл. 3-10 протнво гоночного кодирования состояний исходного автомата.
|
Существует |
один частный |
|
|
способ кодирования — сосед |
||
|
нее |
кодирование состояний |
|
|
автомата, при котором усло |
||
Рис. 3-3. Графы, не допускающие сосед |
вие |
отсутствия |
гонок всегда |
него кодирования |
выполнено. При соседнем ко |
||
|
дировании любые два состоя |
ния, связанные дугой на графе автомата, кодируются наборами, отлича ющимися состояниями лишь одного элемента памяти. Существует несколько алгоритмов соседнего кодирования, один из которых приве ден в [10].
Соседнее кодирование, однако, не всегда возможно. В работе [14] сформулированы требования к графу автомата, допускающего сосед нее кодирование:
1..В графе автомата не должно быть циклов с нечетным числом вершин.
2. Два соседних состояния второго порядка не должны иметь бо лее двух состояний, лежащих между ними. При этом под состояниями второго порядка понимаются два состояния, путь между которыми по графу автомата состоит из двух ребер (независимо от ориентации).
На рис. 3-3 приведены два графа, которые не удовлетворяют этим требованиям и не могут быть закодированы соседними кодами.
Таким образом, имеются 4 способа устранения |
гонок: 1) двойная |
|
память; 2) рациональный выбор |
длительности |
синхроимпульсов; |
3) развязывание пар переходов; 4) |
соседнее кодирование. |
46