
книги из ГПНТБ / Баранов, С. И. Синтез микропрограммных автоматов
.pdfпричем только первые п конъюнкций содержат общий член хл .
Х і = х г . |
. . х тгп . . . |
zik. |
п), |
а остальные t—п членов имеют вид |
|
|
|
X j = zn |
. . . zjkj (j = |
п + |
1, . . . , t), |
Zr+t.l Z-141кы |
Znl znk„ |
торые конъюнкции исчезают |
то функция / может быть реализована так, как показано на рис. 6-10,6. В этом случае
АV = тп—т — 1 — 1 = m (п— 1) —2.
Если к тому же у г из первых п конъюнкций (предположим для про стоты, что это Х ъ . . . , Х ‘) после вынесения общего члена х г . . . хт остается по одной букве: Х р — х х . . . xmzp (р — 1, . . . . г), то имеет место наиболее общий случай, при котором первые г конъюнкций на рис. 6-10, б исчезают, схема принимает вид рис. 6-10, в, а выигрыш
107
Таблица 6-8
Структурная таблица автомата Мили (с узлами), построенного по рис. 6-1
Ис х о д н о е
со с т о я
ни е , у з е л
а2
Я |
Q i flu
05
Q *
Ol
«3
К о д и с
хо д н о г о
со с т о я
ни я
0 0 1
101
—
101
0 1 0
—
0 0 0
O i l
С о с т о я - |
К о д |
|
|
ii r e , |
СОСТОЯ |
В х о д н о іі |
В ы х о д н о й |
у з е л |
НИЯ |
с и г н а л |
с и г н а л |
п е р е х о д а |
п е р е х о д а |
|
|
Q i |
— |
•V3 V2 |
— |
|
|
||
|
|
1 |
|
|
|
>. СО |
|
Q „ |
— |
— |
|
|
* 4 * 5 |
|
|
* 8 |
|
|
1 |
Q i |
— |
— |
|
|
* 1 * 0 * 4 |
|
|
X q |
О б я з а т е л ь
ны е ф у н к ц и и
во з б у ж д е н и я
—
_
—
Q a |
— |
Q i |
— |
Q i |
— |
|
|
a l |
0 0 0 |
« 1 |
0 0 0 |
ö 2 |
0 0 1 |
a 3 |
0 1 1 |
a-i |
1 1 0 |
a i |
0 0 1 |
a 2 |
0 0 1 |
a 2 |
0 0 1 |
Q l |
— |
Ol |
0 0 0 |
a l |
0 0 0 |
a1 |
1 1 0 |
Qi |
— |
|
1 0 0 |
Cl
° 2
a i
05
aa
о?
\
0 0 0 |
* 7 |
|
|
|
* 7 |
001*•1
*1
|
A j .VqA o |
|
* 3* 2*7 |
|
* 8 |
|
* 3 * 4 |
O i l |
А'зА'2 |
101 |
X 3X 2X 7 |
|
* 3 * 2 |
0 0 |
* 4 |
|
|
|
A'lA'ßA'2 |
|
*1*0*4 |
|
* 3*4 |
1 0 0 |
* 4*6 |
1 1 0 |
1 |
УіУй
УіУ в
Уі У і
У1 У2
УіУ і
Уі У і
УіУ і
УіУ і
Уз
УьУз
УъУа
У-Ув
У-Ув
УіУ в
У8
Уз
Уі
ФіФ а Ф з
ФіФ з Ф з
фз
Ф з
—
Фз
ФіФ г Ф з
Фг
Фі
Фі
ФіФ з Ф з
ф 2
Фг
Фі
ФіФз
Фа
108
при таком построении по сравнению с непосредственной реализацией формулы (6-6) составит
ДѴ = тп —т —2 + г = /п (п — 1) —2 + г.
Задачу вынесения общего множителя за скобки, в отличие от за дачи в следующем параграфе, будем называть вынесением вверх по аналогии с тем, что общий множитель выносится над схемой «ИЛИ». Рассмотрим один из возможных алгоритмов вынесения вверх на при мере формулы (6-3). Пересечения множеств букв, входящих в конъюнк ции Х 4, . . . , Х 5, дают всевозможные наибольшие общие части, по лученные попарным сравнением. Эти общие части могут быть выне сены вверх1:
X j= |
1, |
2, |
3, |
4, |
5, |
6, 7, |
11 |
|
|
Хг |
|
|
X, |
|
||
Х .= 1, 2, 3, |
8 |
|
|
|
|
1, 2, |
3 |
|
|
|||||||
Х3= |
1, |
2, |
5, |
6, |
10, |
11, |
12 |
1, |
2, |
5, |
6, |
11 |
1, |
2 |
X, |
|
Х4 = |
5, |
6, |
9 |
|
|
|
|
|
|
5, |
6 |
|
|
— |
|
5, 6 |
Х5=- 1, |
2, |
5, |
6, |
10, |
12, |
13 |
|
1, |
2, |
5, |
6 |
1, 2 |
1, 2, 5, 6, 10, 12 |
В нашем примере это будут общие части:
2 д = 1, 2, 3 |
(Xlt |
Х2); |
Za= l , |
2, 5, 6,11 (Х4, Х3); |
|||
Za = 5, |
6 (Xu |
Х3, Xu |
Хв); |
Z4= l , |
2, 5, 6 |
(Х4, X3, X5); |
|
Z6= l , |
2 (Xu |
X a, |
X 3, |
X5); Z0= l , |
2, 5, 6, |
10,' 12 (X3, XB). |
В скобках после общей части указаны конъюнкции, в которые она входит.
По приведенным выше формулам легко подсчитать цену каждой из общих частей Z4, . . . , Z0 как выигрыш, который дает вынесение этой общей части:
|
|
W(Z1) = |
2- |
W (Z2) = |
3; |
W (Z8) = 5; |
|
|
|||
|
|
W (Z4) = |
6; |
W (Z5) = |
4; |
W(Ze) = 6 . |
|
|
|||
|
На первом шаге для вынесения выбирается общая часть, имеющая |
||||||||||
наибольшую цену: |
W (Z4) = max |
(W (Z4), . . . , W (Z0)) = 6. В |
ре |
||||||||
зультате |
вынесения общей |
части |
Z4 |
из |
исходного |
множества |
слов |
||||
А 1 |
= [Хи ■■■, Х5) |
образуются |
два |
мнол<ества: |
А.г = {Х6, |
Х7, |
|||||
Х8) — конъюнкции, из которых удалены буквы, входящие в Z4 (Хе = |
|||||||||||
= |
Х 4 \ |
Z4; Х7 = |
Х3 \ |
Z4; |
Х8 = |
X, \ |
Z4), и В 2 = |
(Х2, Х4, Z4) - |
конъюнкции, из которых не делалось вынесение, плюс общая часть Z4. Это разбиение иллюстрируется рис. 6-11, а, а полученная в резуль тате вынесения Z4 схема приведена на рис. 6-11, б. На рис. 6-11, a под общей частью Z4 стоит W (Z4) = 6.
1 В изложенной ниже процедуре переменные (д.у) заменены их индексами
(/). Кроме того, конъюнкции X Jt ■. . , Хь будем иногда называть словами, со стоящими из соответствующих букв.
109
Из рис. 6-11, б видно, что дальнейшее вынесение возможно только раздельно для множеств /1.2 и В 2. Продолжая аналогично отдельно для А о и В .2 до тех пор, пока не найдется ни одной общей части, имею щей цену больше нуля, получим процедуру вынесения вверх, в кото рой на каждом шаге выбирается общая часть, определяемая по наи большей цене. Такой алгоритм необязательно приведет к оптимальной схеме, так же как и алгоритм, изложенный в [17], где на каждом шаге предлагается выносить общую часть, имеющую наибольшую длину. Эксперименты над комбинационными схемами микропрограммных
автоматов |
показали, что вынесение |
по наибольшей цене в большин |
||||||
|
|
|
стве случаев дает решение, близ |
|||||
в) |
|
|
кое к оптимальному. Процедура |
|||||
|
|
вынесения |
по |
этому |
алгоритму |
|||
|
|
|
для рассмотренного |
примера |
||||
|
|
|
приведена на рис. 6-12, а. Дадим |
|||||
|
|
|
краткие пояснения |
к |
этому ри |
|||
|
|
|
сунку. Ищем пересечения слов |
|||||
|
|
|
в множестве Л 2: |
|
|
|
||
|
|
|
оX II CO |
|
|
|
|
|
|
|
|
X7=10, |
11, |
12 |
11 |
X7 |
|
|
|
|
X8=10, |
12, |
13 |
— |
10, |
12 |
|
|
|
Z7= l l ( X e, Х7); |
W (Z7) = |
— 1; |
|||
|
|
|
Z8= 10, 12 (Х7, Х8); |
W(Za) = 2. |
||||
|
|
|
Вынесение Z8 порождает |
два |
||||
|
|
|
множества, |
А 3, В 3: |
|
|
||
3 4 711 |
10 И 12 |
10 1213 |
Л з = ( Х 9, |
х 10]; x 9 = x 7\ z |
8; |
|||
|
|
|
||||||
Рис. 6-11. |
Вынесение Z4: а — условное |
Xio = X8\ Z 8; |
|
|||||
изображение процесса |
вынесения, б — |
|
||||||
|
логическая |
схема |
В3 = {Х„ |
Z8| . |
|
|||
|
|
|
|
В каждом из множеств А 3, В 3 слова не пересекаются. Дальнейшие вынесения невозможны.
Переходим к множеству ß 2:
x a= l , |
2, 3, |
8 |
*2 |
|
X4= 5, 6, 9 |
|
— |
*4 |
|
Z4= 1, 2, 5, 6 |
1,2 |
5, 6 |
||
Z0 = 1 , |
2(Х 2, |
Z4); |
W (Z9) = 0; |
|
Z10 = 5, |
6 (X4, |
Z4); |
W (Z10) = 1. |
110
Вынесение Z10 порождает два множества, Л4, В:і:
Л,]=(Хц, Х12); Xu = A4\ Z 10; X12 = Z.1\ Z l0; Ві — IX.,, Z10].
В каждом из множеств Л4, В4 слова не пересекаются, дальнейшие вынесения невозможны.
Рис. 6-12. Пример вынесения вверх: а — условное изображение процесса, б — логическая схема
Схема, соответствующая процедуре на рис. 6-12, а, приведена на рис. 6-12, б. Выигрыш в результате вынесений общих частей
W = W ( Z i) + W(Zs) + W(Z10) = 9.
6-7. Декомпозиция схемы из однотипных элементов
Пусть задана система функций:
f i — ХіХ^ХзХ^х^ХдХ^Хц;
f2 |
Х4.Ѵ2ХуХд , |
|
f S= |
-'-'lX2X5-*-VC10*11* 12 > |
(6-7) |
/4 = |
*5*0*9i |
|
fi — * 1* 2* 5* 0* 10*12 ■
Очевидно, что возможна минимизация схемы, реализующей эту систему функций, если предварительно построить какую-либо общую для некоторых из этих функций конъюнкцию, например х гх 2, в виде отдельного логического элемента, выход которого подать на входы схем, реализующих /у, / 2, /3, /в; при этом число входов в логические элементы уменьшится на два (рис. 6-13).
111
В общем случае пусть задано множество функций /у, |
|
, |
||
fr от множества двоичных переменных X -- |
|.ѵ,, . . . . |
.Ѵ/, |
, ,vL): |
|
ft ' xn О • • • Оxir • • • Ѳ-Ѵщ/, ( — |
l, |
T\ |
хІГ(^Х. |
|
Операция 0 есть некоторая логическая функция, например дизъюнкция или конъюнкция, но обязательно только одна из них.
X, хг
Рис. 6-13. Вынесение вниз лцаъ
Эти функции можно реализовать с помощью Т логических элементов,
каждый из которых имеет R t входов. |
Обозначим через X t (/ |
= |
1, |
. . . , |
||||||||||
Т) |
множество переменных, поступающих на входы /-го элемента. Мо- |
|||||||||||||
|
|
|
|
|
жет случиться, |
что пересечение |
||||||||
|
|
|
|
|
некоторых множеств из системы |
|||||||||
|
|
|
|
|
множеств Х 1? |
. . . , Х т не пусто. |
||||||||
|
|
|
|
|
Пусть, |
|
например, |
это |
будут |
|||||
|
|
|
|
|
первые |
|
п |
множеств |
Х г, |
. . . , |
||||
|
|
|
|
|
|
П |
|
|
|
|
|
і |
|
|
|
|
|
|
|
Хп: П |
Xj = Z Ф 0 . Тогда мно- |
||||||||
|
|
|
|
|
|
і=і |
функций |
можно |
пред |
|||||
|
|
|
|
|
жество |
|||||||||
|
|
|
|
|
ставить |
|
в |
виде |
декомпозиции |
|||||
|
|
|
|
|
(рис. 6-14), такой, что ft = f |
|||||||||
Рис. 6-14. |
Общий вид вынесения вниз |
fz), |
где |
|
X't |
-- |
X t \ |
Z; |
/ = |
|||||
П |
|
|
I |
|
== |
1, . . |
|
. , |
n. |
Ясно, |
что |
если |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
2 |
[Р |
-I-1) + P (Z) < 2 1 |
P (^/). |
T0 |
полученная |
в |
результате |
|||||||
декомпозиции |
схема имеет |
меньшую цену. |
|
В |
последней |
формуле |
||||||||
Р ( 0 ’), Р (Z) |
и Р (X,) — число элементов в множествах X ', |
Z |
и X, |
|||||||||||
соответственно. Ставится задача нахождения |
среди множества экви |
|||||||||||||
валентных схем, реализующих функции f lt . . . |
, fT, схемы с минималь |
ной ценой, выполненной в виде декомпозиции однотипных элементов (т. е. реализующих одинаковые логические функции). В отличие от задачи в предыдущем параграфе (вынесение вверх), назовем эту за
112
дачу вынесением вниз. Из рис. 6-14 видно, что выигрыш от вынесения вниз из п слов общей .части Z, состоящей из т букв, равен
|
W{Z) = m{n— \) — n + r, |
(6-8) |
где |
г — число множеств из Х г, . . . , Х Т, полностью |
совпадающих |
с Z, |
поскольку соответствующие им функции можно снять прямо с вы |
хода схемы для общей части Z.
Вернемся к функциям (6-7). Пересечения множеств букв, входящих в Хі, . . . , Х5, дают всевозможные наибольшие общие части, полу ченные попарным сравнением. Они могут быть вынесены вниз1:
<9
12 56
Рис. 6-15. Пример вынесения вниз: а — условное изобра жение процесса, б — логическая схема
Х г= 1, |
2, |
3, |
4, |
5, 6, 7, |
11 |
|
|
|
|
|
|
|
|
||
Х2= |
1, |
2, |
3, |
8 |
|
|
1, |
2, |
3 |
|
Хо |
|
|
||
Х3= |
1, |
2, |
5, |
6, |
10, |
11, |
12 и 2, |
5, |
6, |
11 |
1, 2 |
*3 |
|
||
X., = 5, |
6, |
9 |
|
|
|
|
5, |
|
6 |
|
|
— |
5, 6 |
*4 |
|
Хв = |
1, |
2, |
5, |
6, |
10, |
12 |
1, |
2, |
|
5, |
|
6 |
1, 2 |
1, 2, 5, 6, 10, 12 |
5, 6 |
В нашем примере это будут общие части:
Zx = |
1, |
2, 3 (Хь Х2); |
Za= l , |
2, |
5, 6, |
Щ Х ,. |
Х3); |
|||||
Z3 = |
5, |
6 (Xlt |
Xa, |
X4, |
X5);Zj = |
1, |
2, |
5, |
6 (Xu |
X,, |
X6); |
|
Z6= l , |
2 ( X lt |
X2, |
X 3, |
XB);Ze= |
1, |
2, |
5, |
6, |
10, |
12 (X3, X 6). |
В скобках после общей части указаны слова, в которые она входит. По формуле (6-8) легко подсчитать цену каждой из общих частей
1 См. сноску па стр. 109.
ö За к аз ■Ne 2225 |
113 |
Zx, . . . , Z0 как выигрыш, который дает вынесение вниз этой общей части:
|
W(Z1) = U |
W (Z2) = 3; |
IF (Z3) = |
2; |
|
||
|
W(Z,) = 5; |
W(Z6) = 2; |
fi/(Z0) = |
5. |
|
||
В результате вынесения |
из множества слов Х х, . . . , Х т некото |
||||||
рой общей части Z, входящей в первые п слов Х х, |
. . . , Х п, образуется |
||||||
новое множество слов по следующим правилам: |
|
|
|||||
1. Если |
некоторое слово |
из |
Х х, . . . , Х п совпадает с Z, то оно |
||||
исключается из множества слов. |
|
|
|
|
|||
2. В Х х, |
. . . , Х п множество букв, входящих в Z, заменяется но |
||||||
вой буквой |
хр, не принадлежащей алфавиту X |
— |
{хх, . . . , xL). |
||||
3. В множестве слов Х х, |
. . . , |
Х т слова Х; (і = |
1, . . . , п) заме |
||||
няются словами Х т+І = (X; \ |
Z) |
U {*„)• |
|
|
|
4. К полученным в пп. 1—3 словам добавляется слово Z.
. Построение нового множества слов иллюстрируется рис. 6-15. По сле вынесения общей части Z4 = 1,2, 5,6 из слов Х х, Х 3 и Х8 эти слова заменяются словами Х 6, X-, и Х 8 соответственно, в которых вместо букв 1, 2, 5, 6 появляется новая буква 13. Из полученного множества слов возможны дальнейшие вынесения. Найдем всевозможные общие части в этих словах. Так как вынесение вниз одной буквы смысла не имеет, ищем пересечения слов, имеющие не менее двух букв:
|
II |
1 |
|
|
|
N |
< |
|
Х4 |
= |
5, |
Х6 |
= |
3, |
>< |
II |
О |
«J |
Х8= ю ,
Z4= 1,
of |
со |
00 |
6, |
9 |
|
4, |
7, |
11, |
|
|
ю |
12, |
13 |
|
2, |
5, |
6 |
|
— |
* 4 |
|
|
|
13 |
— |
— |
*0 |
|
|
со |
— |
— |
11, 13 |
* 7 |
|
|
— |
— |
— |
10, 12, 13 |
*8 |
|
1, 2 |
5, 6 |
— |
— |
— |
Z7= |
1, |
2 (Х2, Z4); W (Z7) = 0; |
Z8 = 5, |
6 (Х4, |
Z4); |
W (Z8) == 0; |
||
ZB= |
11, |
13 (Xc, |
X7); W (Z9) = 0; Z10= 10, |
12, |
13 (X7t X8); |
|||
W(Z10) = 2. |
|
|
|
|
|
|
||
После |
вынесения |
общей части |
Z10 = |
10, |
12, |
13 |
получаем новое |
множество слов, у которых нет пересечений, содержащих более одной буквы. Логическая схема, соответствующая процедуре на рис. 6-15, а, приведена на рис. 6-15, б.
При синтезе микропрограммного автомата по ГСА после построе ния всех переходов в узлы и состояния схема может быть проминимизирована за счет операций вынесения вверх (для каждой отдельной функции) и вынесения вниз общих частей у схем «И» для различных функций. В качестве примера на рис. 6-16, а приведена схема, построен ная по табл. 6-9, представляющей собой фрагмент некоторой струк-
114
турной таблицы (цена схемы равна |
70), |
а на рис. 6-16,6 — та же |
|
схема |
после доопределения всех функций |
возбуждения и минимиза |
|
ции с |
помощью указанных операций |
(цена схемы — 50). |
<x7ß,x,x2x3x+ |
a7ß3x,x2x3x^xs |
a7ß2x,x2x3xt xs a7ß,x,x2x3i>xs |
У'УнУііФьФі
a,ß3x,x2x3x6
< I |
111 |
I I I |
I I I |
I I |
ßl |
ßlxtXJ |
ß2X^X3 |
X; X7 Xj |
Xq X/q |
Phc. 6-16. Логическая схема, построенная по табл. 6-9: а — без вынесений общих множителей, б — с вынесениями общих мно жителей
Кроме вынесения вниз для схем «И», эта операция может быть ис пользована при построении схем «ИЛИ», например, для выходных сиг налов. После построения всех переходов в каждое состояние часто бывает, что одни и те же микрооперации выдаются на различных пе
5* |
115 |
реходах, т. е. снимаются с различных схем. Ясно, что все одинаковые микрооперации должны быть поданы на схему «ИЛИ», с которой и снимается соответствующий выходной сигнал.
Рассмотрим пример. Пусть выходной сигнал у х снимается со схем
«И» 1, «И» 7, «ИЛИ» 12, «ИЛИ» 14, «И» 15, «ИЛИ» 18, выходной сиг нал у .2 — со с-хем «И» 1, «И» 7, «И» 15 и выходной сигнал у3 — со схем
«И» 1, «ИЛИ» 2, «И» 3, «И» 7, «ИЛИ» 12, «ИЛИ» 14, «И» 15. Для полу-
jnjnjunflz .JflSJUUflQ „И"! „07Л15 jn ЛЛІГи-ЗЛІЯІІЮМКуіЖН
Рис. 6-17. Вынесение вниз для дизъюнкций: а — схема до выне
сения, б — схема после вынесения
„И"! . H l j n s
чения каждого из этих сигналов необходимо построить три схемы «ИЛИ», после чего схема примет вид рис. 6-17, а (цена схемы равна 16).
Представим у ІУу 2 и у 3 в виде слов, составленных из индексов схем, с которых они снимаются, после чего применим процедуру вынесения вниз, используя на каждом шаге общую часть с наибольшей ценой:
h? |
l l |
|
I |
0 3 = 1 .
j-J |
to |
£ |
|
СЛ |
00 |
|
|
y ± |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
СЛ |
|
|
|
|
|
1 . |
7, |
15 |
|
|
02 |
|
|
|
|
|
|
|
|
|
|
|
||||
2, |
3, |
7, |
12, |
14, |
15 |
1, |
7, |
12, |
14, |
15 |
1, |
7, |
15 |
Z1= l, 7, \Ъ(уи у2, у3)\ |
(Zx) = 4. |
Za= l , 7, 12, 14, 15(уи уз)\ W(Z2) = 3.
Выносим Z2. Выход схемы для Z1 обозначим буквой 19.
0i = |
12, |
14, 18, 19 |
|
0i |
|
|
|||
08=2, |
3, |
12, |
14, |
19 |
12, |
14, |
19 |
03 |
|
Zx= |
1, |
7, |
15 |
|
|
|
— |
|
— |
Z3= 12, 14, 19(1/!, уз)-, W(Z3)= 1.
116