Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Хороший материал для К.Р. и так почитать

.pdf
Скачиваний:
111
Добавлен:
15.09.2014
Размер:
1.27 Mб
Скачать

g (x1, x2, x3) = x1 x2 x3 x1 x2 x3, ϕ′(g, x4) = g x4 g x4.

Для функции g и разбиения (Z1, Z2) карта декомпозиции представлена в виде табл. 16.8.

Таблица 16.8

Карта декомпозиции для функции g

х1 х2

 

х3

0

1

0 0

0

 

0

0 1

1

 

0

1 0

1

 

0

1 1

0

 

0

Окончательно получаем

f(x1, x2, x3, x4) = ϕ(g2(g1(x1, x2), x3), x4) = g2 x4 g2 x4; g2(g1, x3) = g1 x3;

g1(x1, x2) = x1 x2 x1 x2 .

Параллельная разделительная декомпозиция по разбиению (Z1, Z2, … , Zm)

приводит функцию f(х) к виду

f(х) = ϕ(g1(z1), g2(z2), … , gm(zm)).

(16.1)

Эта форма соответствует схеме, приведенной на рис. 16.4.

х

z1

 

g1

ϕ = f

z2

 

g2

 

 

 

 

 

zm

 

gm

 

 

 

 

Рис. 16.4. Структура, соответствующая суперпозиции f (x) = ϕ(g1, g2, … , gm)

121

У т в е р ж д е н и е 16.3. Булева функция f (x) допускает параллельную разделительную декомпозицию вида (16.1) тогда и только тогда, когда она допускает двухблочные разделительные декомпозиции вида

f (x) = ϕ1(g1(z1), z2, … , zm); f (х) = ϕ2(z1, g2(z2), … , zm);

f (x) = ϕт(z1, z2, … , gm(zm)).

Пусть функция f (x) задана с помощью табл. 16.9. Эта таблица является картой декомпозиции для разбиения ({x1, x2, x3}, {x4, x5, x6}). Среди ее строк имеется только два различных значения, следовательно, заданная функция допускает декомпозицию вида

f (х) = ϕ1(g1(x1, x2, x3), x4, x5, x6),

а если строки заменить одноименными столбцами, то убедимся, что существует суперпозиция

f (х) = ϕ2(x1, x2, x3, g2(x4, x5, x6)).

 

 

 

 

 

 

 

 

 

Таблица 16.9

 

 

 

Задание функции f (х)

 

 

 

х1х2х3

х4х5х6

 

 

 

 

 

 

 

 

 

0 0 0

0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

0 0 0

1

0

 

1

1

1

 

0

1

0

0 0 1

1

0

 

1

1

1

 

0

1

0

0 1 0

0

1

 

0

0

0

 

1

0

1

0 1 1

0

1

 

0

0

0

 

1

0

1

1 0 0

0

1

 

0

0

0

 

1

0

1

1 0 1

0

1

 

0

0

0

 

1

0

1

1 1 0

0

1

 

0

0

0

 

1

0

1

1 1 1

1

0

 

1

1

1

 

0

1

0

Таким образом, заданная функция f (х) допускает параллельную разделительную декомпозицию вида f (х) = ϕ(g1, g2).

Определим функцию g1 как

g1(x1, x2, x3) = х1 х2 х1 х2 х3.

Тогда табл. 16.10 будет задавать функцию ϕ1. По этой таблице получим

122

g2(x4, x5, x6) = х6 х4 х5.

После соответствующего кодирования столбцов значениями переменной g2 будем иметь

 

 

ϕ1(g1, g2) = g1 g2 g1 g2.

 

 

 

 

 

 

 

 

 

 

Таблица 16.10

 

 

Задание функции ϕ1(g1, x4, x5, x6)

 

g1

х4х5х6

 

 

 

 

 

 

 

 

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

0

0

1

0

0

0

1

 

0

1

1

1

0

1

1

1

0

 

1

0

16.4. Неразделительная декомпозиция

При неразделительной декомпозиции множества аргументов Z1, Z2, … , Zm могут пересекаться. Рассмотрим двухблочную неразделительную декомпозицию

f (x) = ϕ(g(z1), z2),

где компонентами векторов z1 и z2 являются переменные из множеств Z1 и Z2 соответственно, причем

Z1 Z2 = X, Z1 Z2 .

Естественно, имеет смысл решать задачу такой декомпозиции только при

|Z1| < |X | и |Z2 | + 1 < |X |.

Особенностью карты декомпозиции для такой задачи является то, что некоторые ее элементы находятся на пересечении строки и столбца, в кодах которых одна и та же переменная (принадлежащая как Z1, так и Z2) имеет противоположные значения. Значение функции для такого элемента не определено. Это можно представить как внесение новых аргументов, число которых равно |Z1 Z2 |. При этом каждый из них связан с каким-либо из заданных аргументов так, что он не может принимать неодинаковое с ним значение. Таким образом, данную задачу можно решить как задачу неразделительной декомпозиции не полностью определенной булевой функции.

123

У т в е р ж д е н и е 16.4. Булева функция f (х) допускает двухблочную неразделительную декомпозицию вида f (x) = ϕ(g(z1), z2) тогда и только тогда, когда граф ортогональности строк карты декомпозиции для (Z1, Z2) является бихроматическим.

Это справедливо как для полностью, так и для не полностью определенных функций.

Пусть функция f (x1, x2, x3, x4, x5) имеет значение 1 на следующих наборах значений переменных:

х1 х2 х3 х4 х5

0 0 0 0 0

0 0 0 1 0

0 0 1 1 0

0 0 1 1 1

0 1 0 0 0

0 1 0 0 1

0 1 1 0 0

0 1 1 0 1

1 0 0 0 0

1 0 0 1 0

1 0 1 1 0

1 0 1 1 1

1 1 0 0 0

1 1 0 0 1

1 1 1 0 0 .

Положим, что для нее требуется получить суперпозицию

f (x1, x2, x3, x4, x5) = ϕ(g (x1, x2, x3), x2, x4, x5).

Карта декомпозиции для такого случая представлена в табл. 16.11.

 

 

 

 

 

 

 

 

Таблица 16.11

 

Карта декомпозиции для f(x1, x2, x3, x4, x5) = ϕ(g(x1, x2, x3), x2, x4, x5)

х1х2х3

 

х2х4х5

 

 

 

 

 

 

 

 

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

 

0 0 0

 

1

0

1

0

 

0 0 1

 

0

0

1

1

 

0 1 0

 

1

1

0

0

 

0 1 1

 

1

1

0

0

 

1 0 0

 

1

0

1

0

 

1 0 1

 

0

0

1

1

 

1 1 0

 

1

1

0

0

 

1 1 1

 

1

0

0

0

 

124

Граф ортогональности строк данной карты декомпозиции изображен на рис. 16.5, где вершины обозначены кодами соответствующих строк карты декомпозиции, а в скобках показана раскраска вершин графа – цвет «0» и цвет «1». Считая данные коды наборами значений аргументов х1, х2, х3 функции g, а величины в скобках – ее соответствующими значениями, получим

g(x1, x2, x3) = x2 x3 x1 x2 x2 x3.

000 (0)

001 (1)

011 (1)

010 (1)

101 (1)100 (0) 111 (0)110 (1)

Рис. 16.5. Граф ортогональности строк карты декомпозиции

По табл. 16.12, задающей функцию ϕ, получим ДНФ этой функции:

ϕ(g, x2, x4, x5) = g x2 x4 g x2 x4 g x4 x5 g x2 x5.

Многоблочные неразделительные декомпозиции получаются аналогично двухблочным неразделительным декомпозициям.

 

 

 

 

 

 

 

Таблица 16.12

 

 

Задание функции ϕ(g, x2, x4, x5)

 

 

g1

х2х4х5

 

 

 

 

 

 

 

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

0

1

0

1

0

1

0

0

0

1

0

0

1

1

1

1

0

0

16.5. Декомпозиция систем булевых функций

Рассмотрим следующую задачу. Пусть задана система не полностью определенных булевых функций f1, f2, … , fm от общего множества аргументов Х = {x1, x2, … , xn}. Для заданной пары подмножеств (Z1, Z2) множества Х, такой, что X = Z1 Z2, требуется найти суперпозиции

fi(x) = ϕi(g1(z1), g2(z1), … , gk(z1), z2), i = 1, 2, … , m,

(16.2)

где z1 и z1 – векторы, компонентами которых служат переменные из множеств Z1 и Z2, причем

k < |Z1 |, k + |Z2 | ≤ n

125

ине важно, пересекаются или нет подмножества Z1 и Z2.

Ввекторной форме данную задачу сформулируем следующим образом: для системы функций y = f (x) требуется найти суперпозицию

y = ϕ(w, z2), w = g (z1),

такую, чтобы число компонент вектора w было меньше числа компонент вектора z1, а сумма чисел компонент векторов w и z2 была меньше длины вектора х. Дополнительно можно еще поставить задачу минимизации числа компонент вектора w.

Эта задача имеет приложение в синтезе логических схем из блоков, реализующих достаточно сложные системы булевых функций, с ограниченным числом внешних полюсов.

Для решения рассматриваемой задачи используется карта декомпозиции. Так же, как и для одной функции, строки ее соответствуют значениям векторной переменной z1, столбцы – значениям векторной переменной z2. На пересечении строки и столбца помещается значение вектора у (компоненты которого задают значения, которые принимают функции системы на соответствующих наборах значений аргументов). Ввиду неполной

определенности функций здесь не обязательно должно быть 2|Z1| строки и 2|Z2| столбца.

Каждую строку карты декомпозиции рассматриваем как троичный вектор, составленный из векторов значений функций.

У т в е р ж д е н и е 16.5. Система не полностью определенных булевых функций f1, f2, … , fm допускает декомпозицию в форме (16.2) тогда и только тогда, когда хроматическое число графа ортогональности строк ее карты декомпозиции для (Z1, Z2) не превышает 2k.

Если удастся раскрасить упомянутый граф в 2k цвета, то закодируем строки карты декомпозиции значениями векторной переменной

w = g (z1) = (g1(z1), g2(z1), … , gk(z1))

так, чтобы строки, соответствующие одноцветным вершинам, были закодированы одним кодом, а строки, соответствующие вершинам различных цветов, – различными кодами. Таким образом, значениям векторной переменной z1 ставятся в соответствие значения векторной переменной w, т. е. построена система функций g1(z1), g2(z1), … , gk(z1).

Карту декомпозиции, строкам которой приписаны значения переменной w, а столбцам – значения векторной переменной z2, можно рассматривать как представление системы функций y = ϕ(w, z2).

Пусть, например, задана система слабо определенных булевых функций

126

у1 = f1(х), у2 = f2(х), у3 = f3(х),

где х = (x1, x2, х3, х4, х5, х6), и заданы векторные переменные

z1 = (x1, x2, х3, х4), z2 = {x5, x6}.

Заданная система представлена в виде пары булевых матриц, одна из которых содержит наборы значений аргументов (значения вектора х), другая представляет значения функций на этих наборах (значения вектора у). Считается, что на всех наборах значений аргументов, которые не присутствуют в соответствующей матрице, все функции заданной системы не определены. Матрицы имеют следующий вид:

х1 х2 х3 х4 х5 х6

 

у1 у2 у3

 

1 0 0 0

0

0

 

0 1

1

1

 

1

0

0

1

 

 

 

1

 

2

0

1

 

0

0

 

1

1

0

1

 

 

 

0

 

3

0

0

 

1

1

0 0 0 1

1

0

 

1 1

0

4

1 0 0 0

0

1

,

1 0

0

5 .

 

1

1

0

1

 

 

 

1

 

6

1

0

 

0

1

0 0 1 0

0

1

 

0 0

1

7

 

0

1

0

1

 

 

 

0

 

8

1

0

 

1

0

0 0 0 1

0

1

 

1 0

1

9

 

1

1

0

0

 

 

 

0

 

 

0

0

 

0

1 10

 

 

 

 

 

 

 

 

 

 

 

Карта декомпозиции системы булевых функций приведена в табл. 16.13. Граф ортогональности строк матрицы изображен на рис. 16.7. У вершин графа показаны наборы значений переменных x1, x2, x3, x4, которые приписаны соответствующим строкам карты декомпозиции.

0 1 1 0 (0 0)

0 1 0 0 (0 0)

1 0 0 0 (0 1)

1 1 1 0 (0 1)

 

0 0 1 0 (0 0)

1 0 1 0 (1 1)

0 0 0 1 (1 0)

Рис. 16.6. Граф ортогональности строк карты декомпозиции

127

Таблица 16.13

Карта декомпозиции системы слабо определенных булевых функций

у1 = f1 (х), у2 = f2 (х), у3 = f3 (х)

x1 x2 x3 x4

х5 x6

 

 

 

0 0

0 1

1 1

1 0

1 0 0 0

0 1 1

1 0 0

– – –

– – –

0 1 0 0

– – –

– – –

0 1 0

– – –

0 1 1 0

0 0 1

– – –

– – –

1 0 1

0 0 0 1

– – –

1 0 1

– – –

1 1 0

1 1 1 0

– – –

– – –

– – –

0 1 1

0 0 1 0

– – –

0 0 1

– – –

– – –

1 0 1 0

– – –

– – –

– – –

1 0 0

Граф раскрашивается не менее чем в четыре цвета, поскольку в нем легко заметен полный четырехвершинный подграф, все вершины которого должны быть раскрашены в разные цвета. В скобках приведены коды цветов в виде двухкомпонентных булевых векторов w = (w1, w2). В то же время четыре цвета оказываются достаточными – в результате находится схема, показанная на рис. 16.7

х1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х2

 

 

 

w1

 

 

 

 

 

 

 

 

 

 

 

х3

 

 

 

 

 

 

y1

 

 

 

 

 

х4

 

 

w2

 

 

 

y2

 

 

 

 

 

 

 

х5

 

 

 

 

 

 

y3

 

 

 

 

 

 

 

 

 

 

 

 

х6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 16.7. Схема, реализующая систему из трех функций от шести переменных

Систему функций w1 = g1(x1, x2, x3, x4),

w2 = g2(x1, x2, x3, x4) представим

следующими матрицами:

 

 

 

 

 

 

х1 х2 х3 х4

w1 w2

1

1 0

0

0

0 1

 

1

0

 

 

 

2

0

0

0

0

 

1

1

 

 

 

3 .

0

0 ,

0

0

0 0

0

1

1 0

4

1 1

1

0

0

1

5

 

0

1

 

 

 

6

0

0

0

0

 

0

1

 

 

 

7

1

0

1

1

128

Табл. 16.14, полученную из табл. 16.13 совмещением неортогональных одноцветных строк, можно считать заданием системы функций y = ϕ(w, z2).

Таким образом, заданная система не полностью определенных булевых функций y = f (x) разложена на две системы:

w = g (z1) и y = ϕ(w, z2).

Последнюю представим парой матриц:

w1 w2 x5 x6

 

y1 y2 y3

 

0 1

0

0

 

0 1

1

1

 

0

1

 

 

 

1

 

2

0

1

 

0

0

 

0

1

 

 

 

0

 

3

0

0

 

1

1

1 0

1

0

 

1 1

0

4

0 1

0

1

,

1 0

0

5 .

 

1

1

 

 

 

1

 

6

0

0

 

0

1

0 0

0

1

 

0 0

1

7

 

1

1

 

 

 

0

 

8

1

0

 

1

0

1 0

0

1

 

1 0

1

9

 

0

0

 

 

 

0

 

 

0

0

 

0

1 10

 

 

 

 

 

 

 

 

 

Таблица 16.14 Задание системы булевых функций y = ϕ(w, z2)

w1 w2

x5 x6

 

 

 

0 0

0 1

1 1

1 0

0 1

0 1 1

1 0 0

– – –

0 1 1

0 0

0 0 1

0 0 1

0 1 0

1 0 1

1 0

– – –

1 0 1

– – –

1 1 0

1 1

– – –

– – –

– – –

1 0 0

После минимизации получим следующие ДНФ:

w1 = x1 x2 x3 x4; w2 = x1;

y1 = w2 x5 x6 w1 w2 x6;

y2 = x5 x6 w1 w2 x6 w1 w2 x5; y3 = w1 x6 w2 x5.

129

Г л а в а 17

Синтез комбинационных схем методом факторизации

Рассмотрим следующую задачу. Задана система полностью определенных булевых функций и задан базис – набор логических элементов И, ИЛИ с ограниченным число входных полюсов. Требуется построить схему с наименьшим по возможности числом элементов. Система функций минимизирована и задана в виде системы ДНФ. Имеется в виду матричное представление системы ДНФ, т. е. задана пара матриц: троичная матрица Х, представляющая множество элементарных конъюнкций, и булева матрица Y, представляющая отношение вхождения между элементарными конъюнкциями и ДНФ.

Суть метода факторизации состоит в вынесении за скобки в ДНФ некоторых факторов (множителей).

Пусть k – число входных полюсов логического элемента в заданном базисе. Не нарушая общности, будем считать, что оба элемента И и ИЛИ заданного базиса имеют одно и то же число входных полюсов. Синтезируемую схему представим системой уравнений вида hi = zi1 o zi2 o... o zi p , каждое из

которых представляет функцию, реализуемую элементом из заданного базиса (И, ИЛИ). Здесь hi, zi j (j = 1, 2, … , p) – переменные, соответствующие

полюсам базисных элементов, o – символ операции конъюнкции ( ) или дизъюнкции ( ).

17.1. Реализация конъюнкций

Для реализации элементарных конъюнкций выполняются следующие действия.

1.Матрица Х преобразуется в матрицу Х, где каждому столбцу хi матрицы

Хсоответствует два столбца хi и хi, значения которых определяются следующим образом: значение 0 в столбце хi преобразуется в значения 0, 1 в столбцах хi, хi; значение 1 – в значения 1, 0; значение «–» – в значения 0, 0.

2.В матрице Хотыскивается минор, содержащий только единицы и образованный не более чем k столбцами и как можно большим числом строк.

3.Все единицы матрицы Х, входящие в полученный минор, заменяются

нулями, в матрицу Хдобавляется столбец gj + 1, где j – число столбцов, которое к данному моменту приобрела матрица Хв результате выполнения рассматриваемых действий. Этот столбец имеет единицы в строках минора и нули – в остальных строках. В формируемую систему уравнений вносится

уравнение gj + 1 =

zi

zi

2

... zi

p

, где zi

j

(j = 1, 2, … , p) – литерал,

 

1

 

 

 

 

соответствующий столбцу, входящему в выделенный минор.

130