![]() Главная страница Случайная лекция ![]() Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика ![]() Мы поможем в написании ваших работ! |
Противогоночное кодирование конечных автоматов
См. вопросы 9,10. Существует ряд способов противогоночного кодирования, которые можно разбить на две группы:
1. Методы, позволяющие устранить все состязания. Используется “соседнее кодирование”, когда всем соседним внутренним состояниям приписывают соседние кодовые комбинации, отличающиеся значением только 1 разряда.
В случае использования таких методов уменьшается быстродействие, но зато устраняются все состязания.
2. Методы, устраняющие только критические состязания (состязания при которых в дальнейшей работе автомат не переходит из ошибочных состояний в состояние, предусмотренное алгоритмом функционирования) Задача кодирования состояний является одной из основных задач канонического метода структурного синтеза автоматов. Кодирование заключается в установлении взаимно-однозначного соответствия между множеством А = {а1, . . . , аМ} состояний автомата и множеством R-компонентных векторов {К1, . . . , КМ}, Кm = (еm1, . . . , emR), где еmr - состояние r-го элемента памяти, r = 1, . . . , R. Если еmr Переход автомата из одного состояния в другое осуществляется за счет изменения состояний элементов памяти. Так, если автомат переходит из состояния аm с кодом 0101 в состояние аs с кодом 1001, то это означает, что триггер Т1 переходит из состояния 0 в состояние 1, триггер Т2 - из состояния 1 в состояние 0, а состояния триггеров Т3 и Т4 не изменяются. При функционировании автомата могут появиться так называемые состязания. Явление состязаний возникает вследствие того, что элементы памяти имеют различные, хотя и достаточно близкие, времена срабатывания. Кроме того, различны также задержки сигналов возбуждения, поступающих на входные каналы элементарных автоматов по логическим цепям неодинаковой длины. Если при переходе автомата из одного состояния в другое должны изменить свои состояния сразу несколько запоминающих элементов, то между ними начинаются состязания. Тот элемент, который выиграет эти состязания, т.е. изменить свое состояние ранее, чем другие элементы, может через цепь обратной связи изменить сигналы на входах некоторых запоминающих элементов до того, как другие участвующие в состязаниях элементы изменять свои состояния. Это может привести к переходу автомата в состояние, не предусмотренное его графом. Поэтому в процессе перехода из состояния аm в состояние аs под действием входного сигнала zf (рис. 1, а) автомат может оказаться в некотором промежуточном состоянии аk или аl в зависимости от того, какой элемент памяти выиграет состязания. Если затем при том же входном сигнале автомат из ak и al перейдет в состояние аs, то такие состязания являются допустимыми, или некритическими. Если же в этом автомате есть переход, например, из аk в aj Одни из способов ликвидации гонок состоит в тактировании входных сигналов автомата импульсами определенной длительности. Предполагается, что кроме входных каналов x1, . . . , xL имеется еще один канал p от генератора синхроимпульсов (ГСИ), по которому поступает сигнал р = 1 в момент прихода импульса и р = 0 при его отсутствии. В связи с этим входным сигналом на переходе (am, as) будет не zf, a pzf. Тогда, если длительность импульса tp меньше самого короткого пути прохождения тактированного сигнала обратной связи по комбинационной схеме, то к моменту перехода в промежуточное состояние ak (рис. 1, б) сигнал р равен нулю и, следовательно, pzf = 0, что исключает гонки. Другой способ ликвидации гонок заключается во введении двойной памяти (рис. 2). В этом случае каждый элемент памяти дублируется, причем перепись из нижнего элемента памяти в верхний происходит в момент отсутствия тактирующего импульса (р = 0). Сигналы обратной связи для получения функции возбуждения и функций выходов автомата снимаются с верхнего ряда триггеров. Таким образом, состязания могут возникнуть только между нижними триггерами, сигналы обратной связи не смогут измениться до тех пор, пока р не станет равным нулю. Но тогда входной сигнал pzf, также равен нулю, а потому гонок быть не может.
3.2.1. Суть и алгоритм развязывания состояний Пусть ( Теорема. В автомате, состояние которого закодировано двоичными кодами конечной длины, гонки отсутствуют тогда и только тогда, когда для любых двух переходов (am, as) и (ak, al) при as Алгоритм противогоночного кодирования основан на этой теореме, идея состоит в следующем: последовательно просматривая все пары переходов, имеющие хотя бы 1 общий входной сигнал, осуществляющий эти переходы, следует присваивать разрядам кодов такие значения, чтобы эти пары кодов состояний были развязаны. Пусть (am, as) и (ak, al) пары переходов автомата, а Примечание. Четверка кодов Алгоритм развязывания пар: следует доопределить неопределенные значения r-разряда четверки так, чтобы его значения образовали набор 0011. Переход к следующей паре. следует доопределить неопределенные значения r-разряда четверки так, чтобы его значения образовали набор 1100. Переход к следующей паре. В результате развязывания пар переходов длина кода оказывается не минимальной, т.к. при введении нового разряда могут быть развязаны пары, которые были развязаны раньше. Следовательно алгоритм противогоночного кодирования предусматривает минимизацию длины получаемых кодов состояний. Суть заключается в следующем: исключается 1 из разрядов кодов, в результате чего некоторые пары могут оказаться связанными. Применяют алгоритм развязывания. Исключают еще 1 разряд. Снова применяют алгоритм развязывания. И так до тех пор пока длина кода не перестанет уменьшаться. Если в результате работы алгоритма некоторые значения разрядов буду неопределенны, то их определяют произвольно.
1. Развязывание пар переходов Пары переходов происходящих под действием сигналов z1, z2, z3 образуют массивы М1, М2, М3. Начинаем развязывать пары из М1. Переход (а1, а2) с (а2, а2) развязывать не надо, т.к. состояние а2 и а2 совпадают. Пару переходов (а1, а2) и (а3, а4) будем развязывать введение переменной Пара (а1, а2) и (а4, а4) оказываются развязанными, так как этой паре соответствует четверка 0011. Пара (а1, а2) и (а5, а6) образуют четверку 00ХХ, которую развязываем до 0011 по 2 пункту алгоритма - получаем таблицу Т. 3-3. Теперь развязанными оказываются пары (а1, а2) и (а6, а6), (а2, а2) и (а3, а4), (а2, а2) и (а4, а4), (а2, а2) и (а5, а6), (а2, а2) и (а6, а6). Обратимся к паре (а3, а4) (а5, а6) - эта пара имеет четверку 1111. Пара неразвязанная. Введем дополнительную переменную Остальные переходы в массиве М1 оказываются развязанными. 2. Минимизация кодов состояний Начинаем повторно процесс развязывания. Оказывается, что по Все остальные пары по В Т. 3-9 развязывание пар не требуется, так как после проверки устанавливается, что все пары оказываются развязаны. Дальнейшая минимизация невозможна, так как ]ld7[ = 3 (3 переменных, 7 состояний). После доопределения Х в таблице Т. 3-9 получаем таблицу Т. 3-10 противогоночного кодирования.
Существует 1 частный способ кодирования - соседнее кодирование. Условие отсутствия гонок при соседнем кодировании всегда выполняется. Суть этого кодирования состоит в том, что 2 состояния связанные дугой графа кодируются наборами, отличающимися лишь в 1 элементе памяти. Существует несколько алгоритмов, но они не всегда поддаются формализации. Соседнее кодирование однако не всегда возможно. Требование к графу автомата, допускающего соседнее кодирование таково: 2) 2 соседних состояния не должны иметь более двух состояний, лежащих между ними.
Дата добавления: 2015-07-26; просмотров: 209; Нарушение авторских прав ![]() Мы поможем в написании ваших работ! |