
книги из ГПНТБ / Баранов, С. И. Синтез микропрограммных автоматов
.pdfТаблица 6-11
Обратная структурная таблица автомата Мура, соответствующая ГСА на рис. 6-22
И с х о д н о е |
К о д |
С о с т о я н н е |
с о с т о я н и е |
и с х о д н о г о |
и л и у з е л |
и л и у з е л |
с о с т о я н и я |
п е р е х о д а |
а2 |
0001 |
■ Qi |
а3 |
0000 |
|
йп |
0001 |
|
ао |
0010 |
|
Qi |
___ |
q2 |
|
|
|
аъ |
ООП |
|
а0 |
0100 |
|
аю |
0111 |
|
Qz |
___ |
Qs |
|
|
|
ах |
1100 |
|
аі |
1101 |
1 |
|
|
|
аіі |
1000 |
Ol |
а12 |
1001 |
|
а3 |
1100 |
a2 |
«1 |
1100 |
a3 |
а2 |
0001 |
a.i |
аз |
0000 |
|
Оц |
0010 |
|
а2 |
0001 |
as |
а2 |
0001 |
|
а3 |
0000 |
|
а3 |
0000 |
|
ав |
0010 |
|
а0 |
0010 |
|
Qi |
— |
aa |
|
|
|
аі |
1100 |
|
Ol |
1100 |
|
Ко д с о с т о я
ни я п е р е х о д а ( в ы х о д н о й
си г н а л )
___
—
—
ПОО (—)
0001(уху2)
0000 (і/іУз)
ПО! (у3)
ООП (умъ)
ОЮО (y7ys)
Вх о д н о й
си г н а л
*з*2 *3*2
х8
*3*2
*4 * 5
*8
1
1
*1
*1 * 0 * 4
Л'0
1
1
Х1
* 1 * 6 * 2
Х3Х2
* 3 * 2
Х3Хп
Х3ХоХ7
ЛдЛГо
XqXqX-j
* 3 * 2
X3XtyXf
*3 * 2
*4
XlXQX~l
О б я з а т е л ь
ны е ф у н к ц и и
во з б у ж д е н и я
ф2
Ф2Ф 4
Ф1 Ф 2 Ф 4
Фі Ф 2
Фі Ф г
Ф1 Ф 2 Ф 4
Ф1 Ф 2Ф 3 Ф 4
Фз
Фз
Фз Ф і
Фз Ф і
Ф4
Ф4
Фз Ф з Ф і
Фі
Фі
127
Продолжение табл. 6-11
Исходное |
Код |
Состоянне |
Кодсостояння |
ВходноП |
состояние |
исходного |
или узел |
перехода (вы |
сигнал |
или узел |
состояния |
перехода |
ходной сигнал) |
|
Qi |
— |
я? |
0101 ы |
-Ѵ4.Ѵг, |
С17 |
0101 |
as |
0 1 1 0 ^ ) |
1 |
Q, |
— |
Яз |
0010 Сад,) |
-Ѵі |
Ол |
0001 |
|
|
X.jX2X7 |
я3 |
0000 |
|
|
,Ѵ3.Ѵ2Л-7 |
о4 |
1101 |
|
|
-vfl |
я« |
ОНО |
|
|
-'з-П |
я э |
0010 |
|
|
Л'зЛ'з-Ѵ? |
я 8 |
ОНО |
Яш |
0П1 (ijs) |
Л'3-V.l |
Q3 |
— |
Яц |
1000 (i/ji/s) |
х~ |
Q:i |
— |
Я.12 |
1001 {(/.,(/„) |
Л'7 |
|
Таблица |
переходов |
автомата S |
Исходное |
Состояние, |
Входной |
Выходной |
состояние, |
узел перехода |
сигнал |
сигнал |
узел |
|
|
|
а2 |
Qi |
-н |
|
а\ |
|
Х1 |
|
Оз |
Q2 |
хз |
|
Я4 |
|
ХЛ |
|
q2 |
Яі |
х2 |
Уі |
Яі |
а2 |
Л'і |
УіЧ . |
Яі |
|
х 1х 2 |
У*4 |
Яі |
|
-Ѵ'хЛ'2 |
Уъ |
Я3 |
|
■ч |
ІЛІ/з'Т |
Ql |
Я3 |
ХЪ |
УвЧЧ |
Q2 |
|
Хо |
УіЧ |
а2 |
|
ХІ |
У2У3Ч |
Ql |
Я4 |
ХЬ |
УгУі |
Обязатель ные функции возбуждения
ФгФзф-1
ФзФ-1
ФзФзФ-і
ФзФ-і
Фз ФіФгФзФ.і
Фз
—
ф.1
Фіфзфзф.1
Фіф2фзф.і
Таблица 6-12
Состояние С-пвтомата
bl
bi
b.1
Ьъ h
b7
128
из состояний b2, Ь3, &4, проходящие через пустое множество условных вершин. Переходя от примера к общему случаю, получим, что мно жеству состояний В(, порождаемому состоянием at, можно поставить в соответствие узел Spr в который есть
пути нулевой длины |
из |
множества со |
|
||||
стояний |
G (Sp) = Bt. |
Пусть |
в нашем |
|
|||
примере S jl соответствует ß 2, а S 2 —В 3. |
|
||||||
Тогда непосредственно от табл. 6-12 |
|
||||||
автомата S' |
можно перейти к табл. 6-13 |
|
|||||
с узлами типа Q и 5. |
Коды |
состояний |
Рис. 6-25. Подграф путей |
||||
автомата |
S |
размещены |
во |
втором и |
|||
в узел Q, и состояние bä |
|||||||
четвертом |
столбцах таблицы, |
а в седь |
|||||
|
мом столбце проставлены обязательные функции возбуждения в пред положении, что в качестве элементов памяти автомата исполь-
Ö)
Рис. 6-26. Схема, реализу ющая пути в Qj и b-„\ а — раздельное построение; б — совместное построение с вы несением
зованы триггеры с раздельными входами и срг и ф- — сигналы возбуж дения, подаваемые соответственно на единичный и нулевой входы триг гера 1 \.
Выражения для функций возбуждения и коротких микроопераций получаются так же, как и выше, а длинные микрооперации опреде-
129
Исходное
состоя
ние, узел
ь .
^3
Ь.І
Ь з
h
S i
b7 -
s 2
bn
Q.%
bi
b l
s 2
b l
q2
S i
Qi
Qi
НСХОД- |
СОСТОЯ- |
|
Код |
НОГО |
НИЯ |
1 |
: ! |
000
0 1 0
110
101
001
100
100
111
111
111
Структурная таблица автомата |
S |
Таблица 6-13 |
||
|
||||
Состоя |
Код СОСТОЯ- |
Входной |
Выходной |
Обязатель |
ние. |
ные функции |
|||
узел |
и ня |
сигнал |
сигнал |
возбуж де |
перехода |
перехода |
|
|
ния |
Si |
|
1 |
|
|
|
|
1 |
|
|
|
|
1 |
|
|
So
Qi
O' |
|
b l |
ш |
b2 |
000 |
|
(r2) |
b s |
010 |
|
(ri) |
|
110 |
' 65 |
101 |
|
(гз) |
^6 |
001 |
|
(V i) |
b7 |
100 |
1
. 1
X i
X i
Л'з
x -\
*2
X i
X1X2
x 3
Х1Х 2
Л2
Х.І
X i
Xb
Ui |
ФіФгФз |
U i |
ФАФз |
U2 |
ФіФз |
U1 U3 |
ФіФгФз |
U3 |
Фз |
Ui |
ФіФз |
U2U3 |
ФіФгФз |
Ua |
ФіФгФз |
UtUi |
Ф1Ф2 |
130
jniJfßjriS ЛУ4.ІП9пИ7/ „ИЧ5Л‘19 JTß.H'21
|
|
I* »I |
I* 1\ß |
|
|
JT2 X, |
ЛЛИ'ЮХг |
оу,а,Оз |
ctg аг |
а3р,х, |
|
Рис. 6-27. |
Логическая схема С-автомата, построенная по |
||
|
|
табл. 6-13 |
|
131
ляются непосредственно из таблицы 6-13 следующим образом:
гі = = Т\ ТоТз\ го = cc0ßo — Т\ Т2 Тз,
7-3 = a 2ßi V a oßi = TJ'{TZV Т\Т2 Т3\ гі = а0^п = Т 1 Т 2 Т 3.
Логическая схема автомата, построенная по табл. 6-13, приведена на рис. 6-27. Во избежание гонок и для обеспечения устойчивости состояний в схеме используется двойная память.
Глава седьмая
ПРЕОБРАЗОВАНИЕ ГРАФ-СХЕМ АЛГОРИТМОВ
7-1. Минимизация условных вершин в граф-схеме алгоритма
В работе [8 ] отмечалось, что предложенная ІО. И. Яновым [24] полная система тождественных преобразований логических схем алго ритмов (ЛСА) «дает возможность получить ЛСА с минимальным чис лом логических условий, однако этого можно достигнуть лишь путем полного перебора всех возможных ЛСА, равносильных заданной, так как отсутствует алгоритм последовательного применения преобра зований для получения минимальной ЛСА». В данном разделе опи сывается предложенный автором в работе [3] алгоритм минимизации логических условий с той лишь разницей, что изложение ведется применительно к граф-схемам, но все сказанное ниже может быть однозначно использовано и для логических схем алгоритмов.
Постановка задачи в общем сводится к следующему. Пусть задана
ГСА Г (Уо, |
Ук, Y, Р), |
где Y 0 |
— начальная вершина, Ук — конечная |
||||
вершина, |
Y |
= (У ^ |
. |
. . , |
Yt........... Y т\ — множество |
операторных |
|
вершин, |
все |
разные, |
так |
что |
вершина отождествлена |
с записанным |
в ней оператором, Р = |р х...........рг..............pR) — множество услов ных вершин, в которых записаны логические условия X -- (,ѵх, . . . , Х[, . . . , xL\. Требуется среди множества граф-схем, равносильных Г (У0, Ук, У, Р), найти граф-схему с минимальным числом условных
вершин.
Покажем, что задачу минимизации ГСА Г (У0, Ук, У , Р) можно разделить на несколько независимых подзадач путем разбиения ГСА
на подграфы Г1 ...........Г1', . . . , Гн , такие, что если для каждого под графа найти равносильный ему с минимальным числом условных вер
шин (подграфы Рmin» • • • >Amin» • • • >Утіп)> то граф Гmjn, полученный после объединения этих подграфов, будет иметь минимальное
число условных вершин. |
У, |
Р) |
осуществим следующим образом: |
|
Разбиение ГСА Г (У0, Ук, |
||||
1. Из множества ( У0) U |
У |
возьмем произвольный |
элемент- Yt |
|
и построим множество A t = |
{Y,} |
и множество В х — |
[Yu, . . . , |
Y\q, . . . , Ущ.І. такое, что из Yt есть пути в Yfq, проходящие только через условные вершины, вида:
/X |
till |
(7-1) |
Y iP./1 |
• Рim • • • Pm У |
132
где [ptl, . . . , pIM] С P — множество условных вершин, лежащих на пути из Y t в y s; е1т ^ (0, 1} — символ, приписанный выходу ус ловной вершины ріт, через который проходит рассматриваемый путь.
|
2. Для каждой Y\q {q — 1, |
. . . , Qx) находим |
А (y f9) — множе |
||||||||||||
ство операторных вершин, из |
которых |
есть |
пути вида (7-1) в вер |
||||||||||||
шину |
Y f |
, и строим множество |
|
|
|
|
|
|
|
|
|||||
|
|
|
' |
Л2 = у4іи |
|
|
= |
|
|
U ^ 2, |
|
|
|||
где А 2' |
= |
Ль Л" = А 2 \ |
А'г |
|
|
|
|
|
|
|
|
|
|||
|
Пусть Л2 = |
{Y&, . . . , Аш, |
. . . , y £hJ. |
Для |
каждой |
У^ |
(h = |
||||||||
= |
1, . . . , Я 2) |
находим |
В (Уи,) и строим |
|
|
|
|
|
|||||||
|
|
|
|
в а= |
В і и |
в (У 21>)) = |
в 2‘ |
и ВІ, |
|
|
|||||
где |
В2 = |
Bi, |
В2 = |
В 2 \ |
В2 . |
Пусть |
В2 |
= |
|
(Угь • • • . |
У^, |
• • • , |
|||
Узд,I- |
■ |
|
|
|
|
(9 = |
1...........Q2) |
находим множества |
|||||||
|
После этого для всех У2і? |
||||||||||||||
Л (y f j , строим аналогично /13, Я3 |
и т. д., |
до тех пор пока на каком- |
|||||||||||||
либо шаге не окажется Вп_ у — Вп и Лп-1 = А п. Полагаем |
А 1 = Л„; |
В1 = Вп.
Вграф-схеме Г выделим подграф Г1, включающий в себя опера
торные вершины из А 1 (назовем их исходящими вершинами) и В 1 (вхо дящие) и множество условных вершин Р1, через которые проходят пути из элементов Л1 в элементы В 1. Вершину Yt назовем опорной
вершиной |
графа Г1. |
новая |
опорная |
вершина |
Y t (F |
Л1, |
строится |
||
Далее |
выбирается |
||||||||
аналогично |
подграф Г 2. Алгоритм состоит |
из Я шагов |
(Я <; Т + 1, |
||||||
где Т — число операторных |
вершин). |
На |
Іі-м шаге (Я = 2, |
. . . , Я) |
|||||
выбирается |
опорная |
вершина Yf (jj |
(Л1 |
(J . . . |
(J Лл |
1), |
строится |
||
подграф Г11 |
|
и т. д., до тех пор пока не окажется, что нельзя найти в ка |
честве опорной вершину, не вошедшую в уже построенные множества
Л1, Л 2, . . . , А н . В результате получаем |
разбиение граф-схемы Г |
||
на подграфы Г 1...........Ph, . . |
. , Гн , где |
подграф f h{Ah, Bh, Ph) оп |
|
ределяется множествами A h, Bh, P!l и |
соответствующими -дугами ме |
||
жду вершинами, вошедшими в эти множества. |
|||
Из самого способа разбиения Г следует: - |
|||
1. Для любых двух подграфов Г1 и Я |
|
||
Л 'п Л ''= 0 ; |
В1 П В‘= 0 |
\ |
Р‘ Г)Р' = 0 . |
2. Разбиение единственно, независимо от выбора на каждом шаге опорных вершин для подграфов. Из единственности разбиения и ус
ловия Р1 П Р‘ — 0 непосредственно вытекает следующее утвержде
133
ние: пусть R — число |
условных вершин |
в Г, а R ‘ — число услов |
||||||||||||
ных вершин в г |
(/і = |
1, . . . , Я). Тогда R |
н |
|
h |
|
|
|
|
|||||
=2 |
* |
■ |
|
|
|
|
||||||||
|
|
|
|
|
|
/ і = і |
|
|
|
|
|
на |
под |
|
После этого нетрудно доказать, что если Г разбивается |
||||||||||||||
графы Г1, |
Гн и в |
каждом Гк (h = 1, |
. . . , Я) |
число условных |
||||||||||
вершин минимально |
’min), то число условных вершин в Г также бу |
|||||||||||||
|
|
|
[Rr |
дет |
минимально |
и |
равно1 |
|||||||
|
|
|
|
и |
л |
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Ятіп. |
|
|
|
|
|
|
|
||
|
|
|
|
ft=l |
В качестве примера приве |
|||||||||
|
|
|
|
|
||||||||||
|
|
|
|
дем разбиение |
изображенной |
|||||||||
|
|
|
|
на рис. 7-1 |
граф-схемы алго |
|||||||||
|
|
|
|
ритма Г, имеющей 6 оператор |
||||||||||
|
|
|
|
ных и 6 условных вершин. |
||||||||||
|
|
|
|
Применение |
алгоритма |
раз |
||||||||
|
|
|
|
биения дает 3 подграфа: |
Г1, |
|||||||||
|
|
|
|
Г 2, Г 3. Условное изображение |
||||||||||
|
|
|
|
этих |
подграфов, |
полученных |
||||||||
|
|
|
|
в процессе разбиения, |
и сами |
|||||||||
|
|
|
|
подграфы |
|
|
приведены |
на |
||||||
|
|
|
|
рис. 7-2. |
|
|
|
|
|
|
|
|||
|
|
|
|
|
В этих |
подграфах: |
|
|||||||
|
|
|
|
|
Г1 |
: А 1= (У0, |
Уа, |
У4); |
||||||
|
|
|
|
в г = [ ѵ и у», Кв); р х= ( р і, |
||||||||||
|
|
|
|
|
|
|
|
Ре» р4І; |
|
|
||||
|
|
|
|
|
r * : A * = { Y lt |
Y з, |
У0}; |
|||||||
|
|
|
|
В2={ У 2, |
|
Y it |
Y я); P 2= |
{p2, |
||||||
|
|
|
|
|
|
|
|
Pb, |
Pc); |
|
|
|||
Рис. 7-1. |
ГСА Г до разбиения |
|
Г2 |
|
\ A 2 |
= [Y5}\ |
|
|
||||||
ß 3= [K K); |
Р 3= |
0 . |
||||||||||||
|
|
|
|
|
||||||||||
Номера условных вершин в ГСА Г и в подграфах проставлены ря |
||||||||||||||
дом с вершинами. Интересно заметить, что |
А 2 |
П В 2 — (F 0) |
0 , |
|||||||||||
что допустимо (А1 П В1 может быть не пусто, |
обязательно А 1 |
П А' = |
||||||||||||
= 0 и В 1 П В1 = 0 ). |
|
|
|
|
|
|
|
|
|
|
||||
В работе |
[17] |
подробно изложены разработанные Ротом (J. Roth) |
алгоритмы минимизации переключательных схем, использующие гео
метрическое представление булевой функции, |
которая является ото |
1 Для доказательства достаточно предположить, |
что существует некоторая |
ГСА в которой число условных вершин меньше, чем в ГСА Гт1п, получен
ной в результате рассмотренного разбиения на подграфы и минимизации числа условных вершин в каждом подграфе, после чего почти сразу (после разбиения
ГСА приходим к противоречию.
134
бражением декартова произведения Z? в пространство Z2:
Z" Z2,
где 2 2 = (0, lj; Z2‘ = 2 2 X Z2 X . . . X Z2; f~l (1) — прообраз еди-
п раз
ницы; f-1 (0) — прообраз нуля.
Элементы /-1 (1) называются 0-кубами или вершинами. Два 0-куба образуют 1-куб, если они отличаются значениями только одной ком-
а) |
б) |
В) |
□ Р
П ѵ
Г'7
А3 |
Ун В1 |
Рис. 7-2. Подграфы н их условное изображение: Г1 (а) Г2 (б), Г3 (в)
поненты (координаты). 0-кубы в этом случае называются гранями 1-куба. Например, 0-кубы ООН и 0111 образуют 1-куб 0л:11, где вторая компонента носит название свободной, а остальные — связанных. Два 1-куба образуют 2-куб, если у них свободной является одна и та же компонента, и эти 1-кубы отличаются значениями только одной связанной компоненты. Так, 1-кубы 0x11 и 0x10 образуют 2-куб Охіх. Индуктивно можно ввести понятие г-куба (г^/г). Булевой функции, аналитическое представление которой имеет вид
f = x1Х3V * 1*2*4 V *2*3*4-
соответствует множество кубов (кубическое покрытие):
Г 0х0х 1
K ( f ) = 10x0 . (* 110J
135
Тот факт, что из оператора Y f есть путь через условные вершины
к операторам |
, |
Yt, |
, Y T+V |
можно записать с помощью |
|
выражения: |
|
|
|
|
|
Yf -> cCfiYi V |
••• |
V aftY t V |
V a f. r+i^r-fi» |
(7-2) |
|
где af( — булева |
функция, |
равная дизъюнкции конъюнкций, |
соот |
ветствующих всем путям из Yf в Yt\ a[t Yt — отмеченная булева функ ция [81; Уг+1 —конечный оператор.
Формулы вида (7-2) носят название формул перехода для опера
тора Yf.
По аналогии с геометрическим представлением булевых функций
введем |
геометрическое |
представление |
формул |
перехода. |
|
Пусть |
||||||||||
|
|
|
|
|
|
У,-* |
Г-Н |
|
|
|
|
|
пере- |
|||
|
|
|
|
|
|
V aftY t— формула |
||||||||||
|
|
|
|
|
|
хода. |
і=1 |
|
|
перехода |
aft |
|||||
|
|
|
|
|
|
Функцию |
||||||||||
|
|
|
|
|
|
(*і. |
. . . , |
хп) |
от |
Yf |
к |
Y, |
(/ |
= |
||
|
|
|
|
|
|
= 1, . . . , Т + 1) представим в ви |
||||||||||
|
|
|
|
|
|
де кубического покрытия, причем |
||||||||||
|
|
|
|
|
|
каждому |
из |
кубов, |
входящих |
|||||||
|
|
|
|
|
|
в покрытие, припишем оператор |
||||||||||
|
|
|
|
|
|
Yt\ /г-мерный |
куб вместе с при |
|||||||||
|
|
|
|
|
|
писанным |
оператором |
назовем |
||||||||
|
|
|
|
|
|
отмеченным кубом. Если D , — |
||||||||||
|
|
|
|
|
|
множество |
отмеченных |
|
кубов, |
|||||||
|
|
|
|
|
|
порождаемых |
функцией allt |
то |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
г-н |
|
|
|
|
|
|
|
|
|
формуле перехода Yf -> V |
аи Y t |
|||||||||
Рис. 7-3. |
Подграф |
с одной |
исходящей |
|
соответствует |
множество |
кубов |
|||||||||
операторной вершиной |
|
|
|
|
|
Г+1 |
|
|
|
|
|
|
||||
|
|
|
|
|
|
0 (У Л = и |
Dt, которое назовем |
|||||||||
покрытием формулы перехода. Например, |
/=і |
|
|
|
|
|
|
|||||||||
для формулы перехода из |
||||||||||||||||
оператора Y4 в ГСА на рис. |
7-3 |
|
|
|
|
|
|
|
|
|
|
|
|
|||
Y 4 -- |
(хул'о \ / х^ХоА'з) Y 2 V |
(*і*а*я V |
Н^-а-^з) У4 \ / |
|
\ / x^x^x^Y |
|
||||||||||
покрытие D (У4) |
будет иметь вид: |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
01x |
Y 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 Y 2 |
|
|
|
|
|
|
|
|
|
||
|
|
|
D{Yt) = |
001 Yj. |
|
|
|
|
|
|
|
(7-3) |
||||
|
|
|
000 Ex |
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
11* Уз |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
101 Yj. |
|
|
|
|
|
|
|
|
|
||
Над парой отмеченных кубов с |
|
Y, — (а4...........ah |
. . . , ап) |
Yt и |
||||||||||||
csY m = |
(£>!, . . . , |
bt, . . . , bn) Ym, |
принадлежащих |
покрытию фор- |
136