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

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

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

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

Добавлен: 23.10.2024

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

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

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

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



3-3. Кодирование состояний и сложность комбинационной схемы

Анализ канонического метода показывает, что различные варианты кодирования состояний автомата приводят к различным выражениям функций возбуждения памяти и функций выходов, в результате чего -оказывается, что сложность комбинационной схемы автомата сущест­ венно зависит от выбранного кодирования. Проиллюстрируем это синтезом на задержках абстрактного автомата 5, таблица переходов которого представлена в табл. 2-4. В рассмотренном во второй главе примере (табл. 2-15) состояния автомата 5 были закодированы следую­ щим образом: К (ах) = 00; К (а2) = 01; К (а3) = 1 1 . В результате синтеза функции возбуждения, приведенные в (2-5), имели вид:

 

Фі= хіх2х1х2V АѴ Л V хіх2хіх2 = 1\/ 6 \/ 14;

 

 

 

<р2 = ТаТа-аді V хіЧ хіх2 V хіх2хіх2 V хіх2хіх2 V

 

 

 

 

V

= 0 V 1V 2V 6 V 14-

 

 

 

Закодируем состояния автомата S

иначе: К («і) = 01; /С (а2) =

10;

К (а3)

= 00. Таблица переходов структурного автомата 5 при таком

кодировании

дается в табл.

3-11.

 

Таблица 3-11

Так как таблица функций возбуж­

 

Таблица переходов

 

дения

на задержках совпадает с табли­

 

цей

переходов,

непосредственно

из

структурного

автомата

табл.

3-11

имеем

существенно

более

 

 

 

простые функции возбуждения:

 

 

01

10

00

 

 

 

 

 

Фі= хіх2хіхг V хіх2хіх2 = 4V6;

ф2 = x1r 2x1x2V Xit^xX., — 9VO.

0 0

10

 

01

01

00

01

10

10

00

0 0

При кодировании состояний в этом

 

примере

был

использован

следующий

 

алгоритм,

позволяющий

упростить

функции

возбуждения при

синтезе автомата на задержках:

ат (т = 1...........М) ставится

1.

Каждому

состоянию

автомата

в соответствие целое число

Nm, равное числу переходов в состояние

а,п

равно числу появлений атв поле таблицы

переходов или числу

стрелок, входящих в ат при графическом способе задания автомата).

2.

Числа N х, .

. . ,

Nm, . . . , N м сортируются

по убыванию.

3.

Состояние at

с

наибольшим Nt кодируется

кодом (00 . . . 0).

4.

Следующие /

состояний (/ — число элементов памяти) в упоря­

доченном в п. 2 списке кодируются кодами (00 . . . 01), (00 . . . 10), . . . , (10 . . . 00). ѵ

5. Для кодирования следующих I из оставшихся М —/ —1 состоя­ ний используются все коды, содержащие две единицы, затем 3 единицы и т . д., до тех пор пока все состояния не будут закодированы. В ре­ зультате получаем такое кодирование, при котором чем больше имеется переходов в некоторое состояние, тем меньше единиц содержится в его коде.

47