
книги из ГПНТБ / Баранов, С. И. Синтез микропрограммных автоматов
.pdfнаходится функция / у , равная дизъюнкции функций перехода, стоя щих в этом столбце:
|
|
f у |
= |
V |
|
«/<■ |
|
|
|
t |
|
і=о |
|
|
|
В MCA М (табл. 7-11): |
|
|
|
|
|
||
fyl = XlX2’ |
1’ ’ |
= ^ V Х\Х2 ~ |
^ ’ |
fy, = Х\Х2V Х\Х2V Х\ х і’ |
|||
f у. = |
V Х2V |
М '^2 V Х\ “ М V -*2 |
V Л:2 = ^’ f У„ = Х1Х2Х3' |
fyK= X2V xix2V *2 V M'S V X,X2X3 V xi = M V *2 V %
|
Рис. 7-12. ГСА Г до учета распределения сдвигов |
|
|
|
|
Среди |
fy |
(t = 1, . . . , Т + 1) отыскиваются сокращенные |
осо |
||
бенные функции относительно переменных хп , . . . , xiR £ |
X, |
т. |
е. |
||
функции, |
которые можно представить в виде fY = х.'1. . . x.‘R |
f' |
= |
||
= фу f , |
где f |
не зависит от ,ѵп, . . . , x.R; x ^ = хіг при |
е.г = |
1 |
и |
X. — хІГ при е.г = 0 (г = 1...........R). Исключая из фу логические ус
ловия, входящие в распределение сдвигов оператора Yt, цолучим функции фу . В рассматриваемом примере
Ф у х= Х 1Х2’ |
Ф у , = ЛТ ’ |
ФѴа == •*•!» |
ФУ., ” Х1’ |
157
ф у ( — A'j; |
Ф у , — х 1> |
Ф Y = X l W |
Ф ’у„ = Х 1 'Ѵ |
^
Из рассуждений, аналогичных приведенным при построении MCA
очевидно, что если Ф*у< = х £е . . . х £ . . . х ^ ( [ х к1, . . . . xkQ) С
Ul^ |
{х'ц, |
. . . , xiR)), то в |
строке |
Yt в выражениях а1р(р = |
1, . . . , |
|
+ 1) |
переменную xkq можно |
заменить на единицу, если |
ekq = 1, |
|
или на нуль, если ekq = |
0 (<7 == |
1, . . . , Q). |
|
||
|
Рассмотрим еще один пример минимизации MCA с учетом распре |
деления сдвигов1. В табл. 7-13 приведена матричная схема алгоритма, для которой задано:
Рис. 7-13. ГСА Г' после учета распределения
|
сдвигов |
|
У 1------- |
Ві = |
[*2. *3. *4); |
У2------ |
В2= 0 ; |
|
у з -------- |
В з = |
(*з); |
У4-------- |
В4 = |
{*1, Х2, Х3}\ |
Уь------- |
Въ= [ х г, ж4}; |
|
у к----- |
вК=0. |
|
Непосредственно из табл. 7-12 с учетом распределения сдвигов |
||
имеем фу = x y\ фу3= * р |
Фу, = Л:4’' |
Фу5 = х2Заменяя в строке Y y |
переменную х х на нуль, в строке Y 3 — х г на единицу, в строке У„—х4 на единицу и в строке Y 5 —x 2 на единицу, получим MCA М' в табл. 7-14.
1 Пример взят из |8, стр. 46].
158
^0
Уі
Yt
у 3
У4
У*
Л
Y о
Уз
У4
^5
Таблица 7-13
MCA М до минимизации с учетом распределения сдвигов
У1 |
Y„ |
Уз |
Уз |
У3 |
Ук |
■Ѵі |
|
*1*2 |
|
*1*2 |
|
.Ѵ'іА'2.Ѵз |
|
*1*2 |
|
*1*2*3 |
*2 |
|
|
|
XoX'i. |
Х2ХІ |
*i |
*1*4 |
|
|
*1*4 |
|
*i |
|
|
|
. |
*2*4 |
*2V *4 |
|
1 |
|
|
|
|
|
MCA М' |
после минимизации MCA М |
Таблица 7-14 |
||
|
|
||||
Уі |
F 3 |
У3 |
У4 |
Уз |
|
*1 |
|
*1*2 |
|
*1*2 |
|
*2*3 |
|
|
|
|
Х2 |
|
|
|
*2*4 |
*2*4 |
Х'4 |
|
|
|
|
|
1 |
|
|
|
|
Л'о |
А*2 |
|
1 |
|
|
|
|
В MCA М' fy — 1 не является сокращенной особенной функцией,
в связи с чем ее нельзя непосредственно использовать для минимиза ции MCA. Однако из табл. 7-14 видно, что Y 2 выполняется после Yb независимо от значений логических условий. В то же время <Pys = х 2,
т. е. до и сразу после выполнения оператора |
Yü переменная х 2 равна |
единице. Подставляя тогда в строку Yb аЬ 2 = |
л:3 вместо а 63 = 1, имеем |
159
фу = х2, после чего, заменив в строке Y 2х0 на единицу и вернувшись к а 62 = 1, получим окончательно MCA М " в табл. 7-15.
|
|
|
|
|
Таблица 7-15 |
MCA М" после дополнительной минимизации MCA М' |
|||||
|
у 1 |
Y п |
у» |
Уъ |
У* |
^ 0 |
Л 'і |
|
Х ± Х о |
х у л у |
|
Уі |
ЛуЛ'З |
|
|
дулу ■ |
Л'о |
|
|
|
67 |
'Ѵ4 |
Л'4 |
У3 |
|
|
|
|
1 |
У5 |
|
1 |
|
|
|
В MCA М " удалены строка и столбец К,, так как все ссу., (/ = О, 1, . . . , 5) оказались равными нулю.
При минимизации ГСА (или MCA) с помощью методов, изложенных в § 7-1, рассмотренную методику учета распределения сдвигов можно интерпретировать в терминах отмеченных кубических покрытий. Для MCA М (табл. 7-13) исходным покрытием будет:
ПОххх 1 10ха' 3 11 XX 5
Yj ОЮх' 1 1 1 Л'Х' 3 011л: 5
хОхх к
Y 2 XОх'1 4
ХІХІ 5 х'хх'0 к
К3 0хх0 1
Охх 1 4
1XXX к
к4 ХІХІ 5 хОхх к
XXX0 к
Кб хххх 2
160
Покрытия формул перехода для различных исходящих операторов отделены друг от друга горизонтальной чертой. В левом столбце ука зан исходящий оператор, в среднем — логический куб, а в правом — индекс оператора, отмечающего этот куб (индекс входящего оператора). Так, для первой строчки (К„) MCA М (табл. 7-13), записанной в виде формулы перехода
|
|
Y о |
XxY1 \ / а'і-ѵ2У з \/ |
Л']Л:аѴ 5, |
|
|
|||
отмеченное покрытие |
имеет вид |
|
|
|
|
|
|
||
|
|
|
Уо |
ОXXX |
1 |
|
|
|
|
|
|
|
|
10XX |
3 |
|
|
|
|
|
|
|
|
11 XX |
5. |
|
|
|
|
Для определения |
функций / у |
(t = |
l', . . . , 5, к) |
из исходного от |
|||||
меченного покрытия |
(7-7) |
выбираются кубы, отмеченные символом /: |
|||||||
|
|
QXXX |
|
|
|
11 XX |
|
|
|
|
|
|
|
|
0 1 1 А |
|
|
||
|
|
010а |
|
|
|
|
|
||
|
|
|
|
|
А1А 1 |
|
|
||
|
|
Оа.ѵО |
|
|
|
|
|
||
|
|
|
|
|
АІА 1 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
=\хххх\; |
|
|
|
хОхх |
|
|
||
|
*1 |
1 |
|
|
|
|
|
|
|
|
|
10 XX |
|
|
|
XXXО |
|
|
|
|
|
1 Іхх |
|
fy |
= |
1XXX |
|
|
|
|
|
xOxl |
|
|
|
хОхх |
|
|
|
|
?Y = |
|
|
|
|
XXX О |
|
|
|
Покрытия фу содержат по одному кубу |
и получаются из / , |
сле |
|||||||
дующим образом. Если во всех кубах покрытия / ѵ |
і-я связанная |
ко- |
|||||||
ордината |
одинакова |
(і |
1, . . . , |
|
|
|
1/ |
|
то |
п, где п — размерность куба), |
|||||||||
в кубе ф |
t-я координата будет связана и примет то же значение, что |
и в fy . Различным связанным координатам или свободным координа
там в кубах fy соответствуют свободные координаты в №.. . Если у
11 ‘ t
Ф у все построенные таким образом координаты оказались свобод
ными, то полагаем фу = 0 . Например, фу = Оххх, так как в покры
тии fY первые координаты всех кубов равны нулю. Точно так же фуз= 0 , Фуз= 1лхг, у у = х х х \ , фу5= ХІХХ, фу = 0 .
Покрытие ф*у получается из фу заменой r'-й связанной координаты
на свободную, если лу f Bt (соответствующее этой координате логи ческое условие входит в распределение сдвигов оператора Yt, і —
161
= 1, . . . , п). Из ф , . . |
. , ф , ф |
с учетом распределения сдвигов |
имеем: |
|
|
Ф*. = Ол'Л'х; |
ф*, = ххх\\ |
|
Ф'ѵ —ö ; |
ф‘ѵ-5= xlxx; |
|
ф у - а = |
І х ѵ л '; |
ф * , к = 0 . |
После этого исходное покрытие (7-7) сокращается следующим об
разом. Пусть ф*, = |
С === 0 |
и пусть cpY (/ — некоторый отмеченный |
куб в покрытии У), |
Если |
хотя бы одна связанная координата в d |
не совпадает с соответствующей связанной координатой в ср, то ср Yq из покрытия Y t удаляется. Например, в покрытии Ух у куба Пхх | 3 первая (связанная) координата не совпадает с первой (связанной) координатой ф*, = Олжс, и потому куб 11а'а'|3 из покрытия должен
быть удален. В остальных кубах покрытия Yt все совпадающие с d связанные координаты заменяются свободными, все прочие коорди наты не меняются. Таким образом, покрытие Уг примет вид:
А'10А' 1
Y 1 ХІ 1 X 5
аОа'А' к.
Аналогом рассмотренного выше перехода от MCA М' к MCA М " являются следующие преобразования. В исходном покрытии индек сом 2 отмечен только куб Y5\xxxx\2. Так как ф*, ==|а1аа|, находим
пересечение хххх П хіхх = аТ.ѵа'.1 Далее покрытие Y &\xxxx\2 заме
няем на У5 1aIa'a'J 2, после чего сразу же fy = хіхх, фКз = хіхх,
Ф* аі.ѵа, и покрытие У, преобразуется рассмотренным только
I а
что способом к виду
А'А'А' 1 5
Уо
хххО к,
а покрытие У51х\хх | 2 вновь заменяется на первоначальное У51хххх | 2 Таким образом, исходное покрытие (7-7) заменяется покрытием ■
|
Оххх |
1 |
|
Юа'х 3 |
|
|
Пхх |
5 |
|
Уі X Юа' |
1 |
|
х П х |
5 |
|
хОхх |
к |
1 Это равносильно |
умножению сс53 = 1 |
на ср^ = х2 при аналитическом |
представлении функций |
перехода. |
|
162
XXX 1 5
XXX 0 к
у 8 хххх к
Y, X 1,хх 5
хОхх к
пхххх 2 .
Поскольку в правом столбце отсутствует цифра 4, покрытие Y4 может быть удалено, так как к оператору У4 нет путей ни из одного оператора (ау4 = 0 для всех j = О, 1, . . . , 5). Полученное в резуль тате покрытие оказывается существенно проще исходного.
7-3. Минимизация операторных вершин в граф-схеме алгоритма
Минимизация операторных вершин в полностью определенной ГСА может быть осуществлена методом, аналогичным предложенному В. М. Глушковым для минимизации микропрограмм [6 ]. Поясним его
на примере ГСА на рис. 7-14, имеющей начальную, конечную, 10 опе раторных и 6 условных вершин. Будем интерпретировать граф-схему как автомат Мура, состояния которого отождествлены с начальной, конечной и операторной вершиной, а функция переходов определена так же, как в § 5-2 при синтезе микропрограммного, автомата Мура по ГСА. В качестве выходного сигнала берется оператор, записанный
163
Таблица 7-16
А в т о м а т М у р а , с о о т в е т с т в у ю щ и й Г С А н а р и с . 7 - 1 4
Исходное состояние |
Состояние |
Входной |
|
и выходной сигнал |
перехода |
сигнал |
|
Я,(>'о) |
ff2 |
1 |
|
Я-лО"і) |
я.ч |
Хі |
|
О.] |
Хі |
||
|
|||
* 3 ( T g) |
|
1 |
я і ( Т з )
°-о(Уг)
а 0( Ѵ й)
<h(Ys)
о 6( Т з )
Я в ( І 'х )
а ю |
Л-., |
Оц |
Х.І |
«о |
Л 2*^х |
Л? |
ЛГо.Ѵ'1 |
Оо |
х гх і |
« 8 |
Л'2-Vi |
« з |
1 |
°1 0 |
Х-1 |
О ц |
|
° І 0 |
A'j |
« и |
|
я 0 |
* 1 |
а$ |
А'і |
aao(T.j) |
а к |
i |
О ц { у ь) |
Ок |
1 |
а к( У к) |
а к |
1 |
Класс
эквивалент ности
А о
А і
2
A 3
Разбиение яп
Исходное
состояние
ивыходной
сигнал
я . О ' о )
а г { У і)
п б ( Г і )
f l .( V 'i )
а з ( ^ 2 )
° о ( Г 2)
я - і ( Г з )
а 7 ( ^ з )
° а ( Г з )
я1 о ( ^ 4 )
Оц ( Г 6)
Класс
перехода
А,
А3
А,
А3
Ао
А3
Аз
Аз
Аі
1А г
A t
Аъ
Аз
Аь
АА
Аъ.
A q
A q
Таблица 7-17
Входной
сигнал
1
*і
■ь
ЛѴѴ'і
.Ѵ2Л.'і
*2 * 1
*2 * 1
* 1
X1
1
1
. x 4
Xi
Xi
Xi
x 4
X4
1
1
A q |
a K( Y K) |
А, |
1 |
в соответствующей данному состоянию вершине, |
причем в начальном |
||||||||||||||
состоянии а1 выдается выходной сигнал |
Y 0, |
а в конечном состоянии |
|||||||||||||
Y |
~ ___Yi |
ак — сигнал |
Ук. Прямая |
таблица переходов мик- |
|||||||||||
0 |
ропрограммного автомата Мура приведена в табл. |
||||||||||||||
Г,----- |
7-161. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Далее |
производится |
|
минимизация |
автомата |
|||||||||
|
|
Мура путем разбиения множества состояний на |
|||||||||||||
|
|
классы |
0-, |
1-, . . . , |
|
k-, |
/г + |
1-эквивалентных |
|||||||
|
|
состояний до совпадения |
разбиений |
на двух сле |
|||||||||||
|
|
дующих друг за другом шагах так, |
как изложено |
||||||||||||
|
|
в § 5-4. Разбиение на 0-классы: |
|
|
|
|
|||||||||
|
|
|
|
^ ii ^2’ |
Лз> |
/lj, |
Ah, |
А,)}; |
q= |
{ ), |
|||||
|
|
Л 1 |
{Оз 1 |
Об) |
Яо) . ^ |
2 = |
1&3I |
Go}. |
Л з = |
(Cl^, |
ö - , |
Qg ], |
|||
|
|
|
^ |
4 = |
l a lo)> |
^ 5 = | й ц | , |
Л о : = |
| £?K}. |
|
|
|||||
|
|
Рис. 7-15. |
Разбиение |
строящейся |
ГСА с минимальным |
||||||||||
|
|
|
|
|
числом операторных вершин |
|
|
|
|||||||
|
Таблица разбиений я 0 сведена в табл. |
7-17. |
|
|
|
|
|
|
|||||||
|
Из этой |
таблицы |
|
|
|
|
|
|
|
|
|
|
|
|
|
-М |
[В0, Ві, |
В2, В3, В4, |
Bq, ІЗ(з}, Bq-- |
{^l} , Bl -- {^2» Я5, |
Ц9] , |
B2 -- |
{Ö3, |
||||||||
a e)> |
^ 3 = l ö 4> ß 7i ö 8j'> |
^ 4 = |
{а 1 оЬ |
^ 5 = |
{a llj> |
-Sß ==: {а к} » |
= |
3T0 - |
Последовательность разбиений завершена. Выбирая из каждого класса по одному состоянию, получим таблицу переходов ми нимального автомата Мура (табл. 7-18), от которой необходимо перейти к граф-схеме, равносильной исходной, но содержащей начальную, конечную и пять операторных вершин.
Для этого аналогично изложенному в § 7-1 делаем разбиение будущей ГСА на подграфы
(рис. 7-15)2.
По числу подграфов получаем четыре под системы формул перехода:
1. |
Yi, |
Yl - Y i \ |
|
|
2. Уг-* |
^ г Ѵ ^ з ; |
(7-8) |
|
|
3. Y s ^ |
XqY 4 |
\J XiY 5', |
|
|
|
Рис. 7-16. ГСА с мини |
|||
4. V4 -+ |
|
Y * - + Y K. |
|
|
|
|
мальным числом опера |
||
1 Так как после минимизации необходимо полу |
торных вершин |
чить ГСА, у которой должны быть начальная и ко нечная вершины, конечная вершина исходной ГСА
выделяется в самостоятельное состояние. Поскольку в ГСА нет пути из конечной
вдругие вершины, то на уровне автомата Мура из состояния ак нет переходов
вдругие состояния, т. е. под действием любого входного сигнала автомат ос
тается в состоянии ак. Этому соответствует последняя строчка в табл. 7-16.
- Можно было бы от табл. 7-18 тривиальным образом перейти к MCA и да лее от MCA к ГСА, но это можно сделать и непосредственно по табл. 7-18.
166