КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Метод соединяющих строк
МЕТОДЫ ПРОТИВОГОНОЧНОГО КОДИРОВАНИЯ
Рассмотрим пример противогоночного кодирования для счётчика-делителя на 3, описываемого таблицей переходов 6. Выпишем из указанной таблицы множества всех возможных переходов из всех состояний: из состояния 0: – (0, 1, 5); из состояния 1: – (1, 0, 2); из состояния 2: – (2, 1,3); из состояния 3: – (3, 2, 4); из состояния 4: – (4, 3, 5); из состояния 5: – (5, 0, 4). Постараемся закодировать состояния автомата таким образом, чтобы все переходы были соседними, не увеличивая при этом количество внутренних переменных. Построим новую таблицу переходов с учётом введённой кодировки состояний рассматриваемого автомата.
Таблица 20
Все переходы в построенной таким образом таблице являются соседними, то есть на каждом переходе меняется только одна внутренняя переменная: 0 – 1 – 3 – 7 – 6 – 2 – 0 – и т. д. В сложных автоматах соседними переходы часто сделать невозможно, поэтому в таблицу переходов добавляются промежуточные состояния (строки) через которые осуществляется необходимый переход. Такие строки называются соединяющими. В качестве примера рассмотрим автомат, заданный табл. 21.
Таблица 21
Выпишем множества всех возможных переходов из всех состояний: из состояния 0: – (0, 1, 2); из состояния 1: – (1, 0, 3, 4); из состояния 2: – (2, 0, 5); из состояния 3: – (3, 1, 4, 5); из состояния 4: – (4, 1, 3, 5); из состояния 5: – (5, 2, 3, 4). Постараемся закодировать состояния автомата таким образом, чтобы все переходы были соседними. Для этого необходимо добавить ещё одну внутреннюю переменную и дополнительные соединяющие строки. Начнём кодирование с одного из максимальных множеств – (3, 1, 4, 5). Присвоим состоянию 3 двоичный код (0000), а состоянию 1 – код (0010). При этом переход из состояния 3 в состояние 1 (или наоборот, из состояния 1 в состояние 3) будет соседним: Для того, чтобы сделать соседними остальные переходы их этого множества, необходимо ввести промежуточное состояние с кодом (0001): Для множества (4, 1, 3, 5) новые переходы можно представить следующим образом: Для множества (5, 2, 3, 4) переходы из состояния 5 в состояния 3 и 4 уже рассмотрены выше: Из множества (1, 0, 3, 4) остался нерассмотренным только один переход – из состояния 1 в состояние 0. Для его осуществления необходимо добавить три промежуточных состояния: Построим новую таблицу с учётом введённой перекодировки состояний автомата (табл. 22). В указанной таблице все переходы являются соседними (то есть при переходе из состояния в состояние меняется лишь одна внутренняя переменная).
Таблица 22
Рассмотрим ещё один пример кодирования состояний автомата методом соединяющих строк. Исходная таблица переходов задана в виде табл. 23. Таблица 23
Выпишем множества всех возможных переходов из всех состояний: из состояния 0: – (0, 1, 4); из состояния 1: – (1,0, 2, 3, 5); из состояния 2: – (2, 1, 5, 4); из состояния 3: – (3, 1, 4); из состояния 4: – (4, 0, 2, 3); из состояния 5: – (5, 1, 2). Постараемся закодировать состояния автомата таким образом, чтобы все переходы были соседними и попытаемся сделать это без добавления ещё одной внутренней переменной. Начнём кодирование с максимального множества (1, 2, 3, 5). Для множества (2, 1, 5, 4) переход из состояния 2 в состояние 1 уже рассмотрен. Чтобы сделать переходы в состояния 5 и 4 соседними, необходимо присвоить им коды (111) и (010): Для множества (3, 1, 4) остался нерассмотренным переход из состояния 3 в состояние 4: Остальные переходы синтезируемого автомата являются соседними или уже рассмотрены выше. Построим новую таблицу с учётом введённой перекодировки состояний автомата (табл. 24).
Таблица 24
Состояния рассмотренного выше автомата можно закодировать иначе. Выберем одну из максимальных групп (1, 2, 3, 5). В этой группе содержатся кодовые комбинации, которые должны иметь соседние коды. Закодируем состояние 1 комбинацией (000). Поскольку код состояний рассматриваемого автомата трёхэлементный, в нём имеется только три соседних комбинации. Чтобы увеличить число возможных соседних комбинаций введём дополнительное состояние , которому можно сопоставить любую кодовую комбинацию, например (001). Остальным состояниям рассматриваемого множества сопоставим следующие кодовые комбинации: 2 – (011); 3 – (100); 5 – (101). Переходы в рассматриваемом множестве можно осуществить следующим образом: Для нерассмотренных выше переходов из множества (2, 1, 5, 4): Состоянию 4 сопоставим кодовую комбинацию (110), а состоянию 0 – кодовую комбинацию (010). При этом для множеств (3, 1, 4), (4, 0, 2, 3) и (5, 1, 2) все нерассмотренные выше переходы будут являться соседними. С учётом введённой перекодировки состояний автомата таблица переходов рассматриваемого автомата будет иметь вид табл. 25.
Таблица 25
Существует целый ряд подобных методов, позволяющих устранить критические состязания за счёт введения дополнительных строк (состояний внутренних переменных). Недостатком указанных методов является более низкое быстродействие АП за счёт более длинных переходов (через промежуточные состояния).
Дата добавления: 2014-01-11; Просмотров: 393; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |