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

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

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

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

Добавлен: 23.10.2024

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

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

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

Подобные соображения могут быть использованы н при кодирова­ нии выходных сигналов для минимизации функции выходов. Упоря­ дочим, например, выходные сигналы автомата S из таблицы выходов (табл. 2-5), которые в этой таблице встречаются:

ш3—3 раза; w.z—2 раза; агі— 1 раз; ад, — 1- раз; их—2 раза;

и*— 1 раз.

После кодирования выходных сигналов в соответствии с упорядо­ чиванием (табл. 3-12 и 3-13) таблица выходов автомата S примет вид табл. 3-14.

 

Таблица 3-12

 

Таблица 3-13

 

Кодирование выходных

Кодирование выходных

Ч

сигналов

типа

I

сигналов типа 2

 

 

У і

У і

 

г

 

 

 

 

 

щ

0

0

» 1

0

 

0

1

 

 

W о

t u

1

 

W i

1

0

 

 

 

W i

1

1

 

 

 

 

 

 

 

Таблица 3-14

 

Таблица выходов после изменения кодов

 

 

 

выходных сигналов

 

 

 

 

0

1

0

 

 

 

00

01

11

 

00

 

00

00

01

 

01

 

11

 

10

 

01

10

00

 

Непосредственно из этой таблицы получаем выражения функций выходов:

У і — т і т а у д ' з V TiTo.i'i.Vo = 1 V 6 ;

У2 = TiToA'iA'o V TjToAVa V ТіТоЛ'іЛ'з = 1 V 2 \/ 12;

'■= Т]Т2-

Напомним, что аналогичные выражения при первом варианте ко­ дирования выходных сигналов имели вид:

у1 = т1тгх1,Го V ТхЪХхХъ V ХхЪХіХг V XiXzXiX2 = 0 \/ 5 V 6 \/ 14;

у2 ^=х1 т2 х1 х2 V ТіТа.ѵу.Ѵо '■/ ТчТоДдл'., у т^плул'о — 0 \/ 1 \/ 5 \/ 14;

Г = ТіТо \/ TjT2.

Большое число работ [25, 26, 28], начало которых было положено Хартманисом и Стирном [27, 291, посвящено получению такого ко­

48


дирования, при котором уменьшается зависимость функций возбужде­ ния от переменных обратной связи т х, . . . , т; . Хартманне и Стирн показали, что этот подход тесно связан с существованием определен­ ныхразбиений множества состояний автомата. Как правило, нахож­ дение вариантов кодирования состояний, которые создают ослаблен­ ную функциональную зависимость для функций возбуждения, часто дает более экономичную схему, чем при других типах кодирования.

Упомянутый подход и развитые на его основе методы достаточно подробно изложены в литературе, в том числе и в монографиях [11, 18]. В то же время большинство авторов отмечают сложность этих методов кодирования при синтезе автоматов с большим числом состоя­ ний и переходов и при синтезе частичных автоматов, а также трудно­

сти одновременного

учета сложности функций возбуждения

памяти

и функций выходов.

В связи с этим не будем останавливаться

на этих

методах, а рассмотрим эвристический алгоритм кодирования Состоя­ ний, предложенный в [19] и минимизирующий суммарное число из­ менений элементов памяти на всех переходах автомата. При таком критерии уменьшается сложность схем, реализующих дизъюнкции на входах элементов памяти, т. е. также минимизируется комбинационная схема автомата.

Введем весовую функцию W = h t ms, где tms— \Km Ks |2 — расстояние между кодами состояний ат и as, равное числу элементов памяти, изменяющих свое состояние на переходе (ат, а„); суммирова­ ние производится по всем переходам автомата. Введенная функция W может служить одной из оценок сложности комбинационной схемы

автомата [19],

при этом упрощение комбинационной схемы будет

тем больше, чем меньше W.

 

Алгоритм состоит из следующих шагов:

1. Построим

матрицу

 

 

« 1

ß i

 

 

 

м = а г

ß ,

 

а н

ß «

состоящую из всех различных пар номеров (ar, ßr), таких, что в авто­ мате S есть переход из ааг в а^г.

2. Переставим строки в матрице так, чтобы выполнялось условие

К> ßr} П (аі> ßi, - • , a,_i, ß,_i)=A0, /- = 2, . . . , R. (3-1)

Условие (3-1) означает, что хотя бы один из элементов r-й строки содержится в какой-нибудь из предыдущих строк. Имеются в виду только связные автоматы [19], для которых такая перестановка всегда возможна.

3. Закодируем состояния из первой строки матрицы М следующим образом:

Ка, = (00 . . . 00); /Ср, = (00 . . . 01).

з З а к а з № 2225

49


4. Вычеркнем из матрицы М первую строчку, соответствующую закодированным состояниям аа и ар 4 Получим матрицу М ' .

5.В силу условия (3-1) в начальной строке матрицы М' закодиро­ ван один элемент. Выберем из первой строчки матрицы М' незакоди­ рованный элемент и обозначим его через у.

6.Построим матрицу М ѵ, выбрав из М ' строчки, содержащие у.

Пусть

Вѵ = (y j , . . . , у{, ■■■, Yf )

— множество элементов

 

из

мат­

рицы Му, которые уже закодированы.

Их коды обозначим К у1,

. . . ,

/Cvf, ■• ■, /<YF соответственно.

 

 

 

 

 

 

 

 

 

 

7.

Для

каждого Kyf (/ = 1, . . . ,

F)

найдем

— множество

кодов,

соседних с Kyf и еще не занятых для кодирования состояний

 

 

 

автомата.

Построим

множество

1

F

1

 

 

Если

 

 

 

Dv = (J Сѵ .

 

 

 

 

 

 

 

 

 

 

 

 

 

f=i

'

 

 

 

 

 

 

D \ = 0 , т о строим

 

 

 

 

 

F

 

 

, где

 

 

 

новое множество Dy — (J

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f=i

 

 

 

 

Су, — множество кодов, у которых кодовое

рассто­

 

 

 

яние с кодом Ку

равно двум. Если

и Dy =

0

,

стро­

 

 

 

им аналогично D3V,

. . . , Dy, до

тех

пор пока

 

не най­

Рис. 3-4. Граф

дется Dy

 

0 (п =

1,2, 3,

. . .).

Пусть Dy =

{/Сбх, • • •.

K6g, . .

.

, Кбв}-

 

 

 

 

 

 

 

 

 

 

автомата с 5 со­

 

 

 

 

 

 

 

 

 

 

стояниями

 

 

8.

 

 

 

 

 

Для

каждого

Kög

находи

 

 

 

Kyf |2 — кодовые расстояния между

К&

 

и всеми

использованными

кодами

Ку, (f =

1,

. . . , F).

 

 

 

 

 

 

 

 

 

 

F

 

 

 

 

 

 

 

 

 

 

 

 

9.

Находим2 WB= 2

Weh g = 1,

. . . ,

G.

 

 

 

 

 

 

10.

Из

Dy

выбираем

 

Kv, у которого

Wg = min Wg . Элемент у

(состояние ау) кодируем кодом Ку-

 

 

 

g e

а

 

 

 

 

 

 

 

 

 

 

 

 

 

W.

Из

матрицы М'

вычеркнем строчки, в которых оба элемента

закодированы, в результате чего получим новую матрицу, которую

также обозначим через М \

Если в матрице М' не осталось ни одной

строчки, переходим к п. 12,

иначе к п. 5.

 

12.

Вычисляем функцию

W = S fms, где fms= | К,п — Ks |2.

13.

Конец.

 

 

 

 

 

Оценкой качества кодирования по рассмотренному алгоритму мо­

жет служить

число

/г =

W/p, где р — число переходов

в автомате.

Очевидно, что

1

<<Д,

причем чем меньше значение /г,

тем ближе1

1Ниже вместо «элемент <хг, соответствующий закодированному состоянию

аа», будем говорить «закодированный элемент а Л». Кроме того, если вторая

строчка есть (ßj, а 4), то вычеркиваем и ее, таю как ее элементы уже закодиро­ ваны.

- Если в автомате имеется переход из

в ау и из ау

в о^, то \Vgj входит

дважды в ll^g, см. ниже в примере переходы (а4, аъ) и (а6,

а4).

50


кодирование к соседнему, при котором к = 1. Эксперименты с про­ граммой на ЦВМ М220, проведенные для автоматов различной слож­ ности (число состояний М = 10-н 128), дали значения к в пределах

1,4 — 2,1 [19].

Без подробных пояснений приведем пример кодирования состояний авто­ мата, граф которого изображен на рис. 3-41:

12

24

25

 

 

 

М =

32

 

 

 

 

 

 

 

43

 

 

 

 

 

 

 

 

45

 

 

 

 

 

 

 

 

54

 

 

 

 

 

 

 

 

51

 

 

 

 

 

 

К1= 000;

ЛГ2 =

001.

 

Кодирование

будем

иллюстрировать

картой

 

Карно:

 

 

 

00

ТоТд

И

 

10

 

 

 

оГ

 

 

 

 

о

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

24

 

 

 

 

 

 

 

 

25

 

 

 

24

 

 

 

32

 

 

 

 

М'

=

V= 4;

М.і

43

В*= [2}.

43

45

 

 

45

 

 

 

 

 

 

 

 

 

54

 

 

 

54

 

 

 

 

 

 

 

 

 

 

 

 

 

 

51

 

 

 

 

 

 

 

 

С\ = {101, 011);

D\ = С\ =

{101, 011}.

117101= I 101 — 001

1;

117011 =

I он — 001 |2= 1.

Выбираем К, =

101.

 

Т-дТз

 

 

 

 

 

 

00

И

 

10

 

 

 

01

 

 

 

 

0

1

'2

 

 

 

 

 

Ті

 

 

 

 

 

 

I4

1Дугам графа ие приписаны входные и выходные сигналы, так как они не используются в алгоритме.

3*

51


 

25

 

 

 

 

32

 

25

 

M '

43

Y = 5;

Mr, = 45

ß 6= |2, 4, 1).

 

45

 

54

 

 

54

 

51

 

 

51

 

 

 

 

СІ={011); C.‘ = [100,

111);

cj =

{100, 010);

 

 

D' = C\ U C.‘ U C\ =

[Oil,

100, 111,

010}.

 

r ou =

|011 — 001 |з + I Oil — 101 141011 — 101 I- +

I Oil — 000 p =

 

u + o o =

I 100— 001 [2+1 100— 101 p +

I 100— 101 p +

 

= 1+ 2 + 2 + 2 = 7;

I 100 — 000 [2 =

 

№nl =

I 111 — 001 |2 + I 111 — 101 |2 +

I 111 — 101 |2 +

I 111 — 000 [2 = +

' +

 

 

 

 

 

 

= 2 + 1 +

1 + 3 = 7

U7„I0=

1010— 001 | 2 + 1010— 101 |a +

I 010 — 101 |2 +

| 010 — 000 l2 =

 

 

 

 

 

 

 

= 2 + 3 + 3 + 1 = 9 .

 

l^ioo = niin {U7он» Ч^юоі

 

N^oiol-

/ + = 100.

 

 

 

TiT,

 

 

 

 

 

00

01

 

11

 

10

 

32

Y = 3;

32

Ba = (2, 4J.

M '

43

43

 

 

 

 

C' = {011);

C*=

{111};

D‘ = C' U C> = (Oil,

111],

И+и =

1011— 001 |2 +

I Oil -101 |2=

1 + 2 =

3;

ll7m =

}111 — 001 l3 +

I 111 — 101 [2 =

2 + 1 =

3;

 

r 0u = r m ; /Сз = 0ІІ.

 

 

 

 

t2t3

 

 

 

00

01

11

10

 

1 2

CO

5 4

k = W/p = 10 : 8 = 1,25.

52