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

2.7. Визуальный метод минимизации пф

Рассмотренный ранее метод Квайна-Мак-Класки минимизации ПФ является универсальным, допускает формализацию и может быть использован при построении систем автоматизации проектирования (САПР) дискретных устройств. Однако наглядность этого метода невысока, и в инженерной практике при минимизации формул функций небольшого числа аргументов (n 7) применяется визуальный метод минимизации на картах Карно.

Каждой "единичной" (заполненной символом "1") клетке карты Карно для ПФ n переменных соответствует единственный двоичный набор длиной n и, соответственно, единственная элементарная конъюнкция (ЭК) ранга n. Дизъюнкция всех таких ЭК представляет собой СДНФ переключательной функции.

Две смежные "единичные" клетки карты Карно, соседние или симметрично расположенные относительно какой-либо оси симметрии по горизонтали или по вертикали, отмечены соседними двоичными наборами, отличающимися только одним i-м компонентом. Таким парам клеток в СДНФ будут соответствовать ЭК Axi и A, отличающиеся одной переменной xi.

В СДНФ элементарные конъюнкции Axi и A могут быть склеены по букве xi: Axi A = A. В силу этого паре смежных клеток карты Карно можно поставить в соответствие конъюнкции (n-1)-го ранга. При этом в конъюнкции (n-1)-го ранга будет от­сутствовать переменная, значение которой различно в двоичных наборах, соответствующих склеенным наборам.

Рассмотрим карту Карно для ПФ пяти переменных (n = 5) на рис. 2.3. Для удобства работы с картой на рис. 2.3 в правом нижнем углу каждой клетки карты проставлен десятичный номер соответствующего двоичного набора, отмечающего данную клетку. Будем использовать номер набора в качестве номера клетки. В дальнейшем будем говорить о единичных клетках карты Карно.

Клетка 0 имеет смежные клетки с номерами 2, 4, 16. Парам смежных клеток будут соответствовать конъюнкции 4-го ранга в результате склеивания ЭК 5-го ранга, соответствующих отдельным клеткам карты Карно: {0,2} {00000, 00010} = 000z0, {0,4} {00000, 00100} = 00z00, {0,16} {00000, 10000} = z0000.

x3

x4

x5

000

001

011

010

110

111

101

100

00

1 0

0 1

0 3

1 2

1 6

0 7

0 5

1 4

01

0 8

0 9

0 11

0 10

0 14

0 15

0 13

0 12

11

0 24

0 25

0 27

0 26

0 30

0 31

0 29

0 28

10

1 16

0 17

0 19

1 18

1 22

0 23

0 21

1 20

x1 x2

Рис. 2.3

Клетка 2 имеет смежные клетки с номерами 0, 16, 18, в результате склеивания наборов получим: {2,0} = {0,2} 000z0, {2,6} {00010, 00110} = 00z10, {2,18} {00010, 10010} = z 0010.

Клетка 6 имеет смежные клетки с номерами 2, 4, 22, в результате склеивания наборов получим: {6,2} = {2,6} 00z10, {6,4} {00110, 00100} = 001z0, {6,22} {00110, 10110} = z0110.

Клетка 4 имеет смежные клетки с номерами 0, 6, 20, в результате склеивания наборов получим: {4,0} = {0,4} 00z00, {4,6} = {6,4} 001z0, {4,20} {00100, 10100} = z 0100.

Выделенные пары смежных клеток, в свою очередь, могут вступать в отношение смежности (соседства или симметрии относительно какой-либо из осей симметрии). В результате смежные пары клеток будут образовывать области из 4-х смежных клеток, которым будут соответствовать конъюнкции ранга 3:

{0,2,16,18} = {{0,16},{2,18}} {z 0000, z 0010} = z 00 z 0,

{0,4,16,20} = {{0,16},{4,20}} {z 0000, z 0100} = z 0 z 00,

{2,6,18,20} = {{2,18},{6,22}} {z0010, z 0110} = z 0z10,

{6,4,22,20} = {{6,22},{4,20}} {z0110, z 0100} = z 01z0.

Следующим шагом индукции будет объединение областей из 4-х смежных клеток, которым будут соответствовать конъюнкции 2-го ранга:

{0,2,6,4,16,18,22,20} = {{0,2,16,18},{6,4,22,20}} {z 00z 0,z01z0} = z0zz0.

Рассуждая по индукции, назовем областью смежных клеток совокупность из 2k клеток (k {0,1,...,n}), каждая из которых имеет k смежных с ней клеток из этой области. Такой области можно поставить в соответствие конъюнкцию ранга (n-k). Область смежных клеток при k > 0 симметрична относительно какой-либо оси симметрии. В общем случае области смежных клеток могут пересекаться, т. е. иметь общие клетки карты Карно.

Правило покрытия 1. Любой области из 2k смежных клеток можно поставить в соответствие конъюнкцию (n-k)-го ранга, состоящую из переменных, которые имеют постоянное значение во всех единичных наборах, соответствующих клеткам области. Причем переменная xi включается в конъюнкцию в прямом виде, если эта переменная имеет значение 1 на всех клетках области. Соответственно переменная xi включается в конъюнкцию в инверсном виде, если она имеет значение 0 на всех клетках области. "Покрытая" область на карте обводится контуром. Дизъюнкция конъюнкций, совместно покрывающих все клетки карты, заполненные единицами, есть одна из ДНФ переключательной функции.

Цель минимизации формулы ПФ по карте Карно - "покрыть" все клетки, содержащие единицы, наименьшим числом конъюнкций наименьшего ранга, т. е. "покрыть" наименьшим числом контуров, каждый из которых охватывает как можно большую область смежных клеток. Дизъюнкция полученных конъюнкций есть одна из тупиковых (возможно, минимальная) ДНФ функции.

Простым импликантам (минималям) в методе Квайна-Мак-Класки на карте Карно соответствуют области смежных клеток, не являющиеся частью никакой другой области смежных клеток.

Обязательной простой импликанте (экстремали) в методе Квайна-Мак-Класки соответствует область смежных клеток, которая покрывает хотя бы одну единичную клетку, не входящую в состав никакой из других областей смежных клеток.

Пример 2.7. Минимизируем функцию четырех переменных

y(1, 2, 3, 4)={0000,0001,1000,0011,0101,0111,1100,1101}. Карта Карно для этой функции имеет вид:

x3

x4

00

01

11

10

00

1 0

1 1

1 3

0 2

01

0 4

1 5

1 7

0 6

11

1 12

1 13

0 15

0 14

10

1 8

0 9

0 11

0 10

x1 x2

Рис. 2.4

На рис. 2.4 выделены все области смежных клеток, соответствующие минималям: {0,1} {0000,0001} = 000z , {0,8} {0000,1000} = z000, {12,8} {1100,1000} = 1z00, {12,13} {1100,1101} = 110z, {5,13} {0101,1101}= =z101, {1,3,5,7} {0001,001,0101,0111} = {00z1,01z1} = 0zz1.

Построение минимального покрытия начнем с нахождения экст­ремалей. На рис. 2.4 нетрудно увидеть область смежных клеток {1,3,5,7}, которая единственным образом покрывает клетки 3, 7, следовательно, этой области соответствует экстремаль 0zz1.

x3

x4

00

01

11

10

00

1 0

1

3

0 2

01

0 4

5

7

0 6

11

1 12

1 13

0 15

0 14

10

1 8

0 9

0 11

0 10

x1 x2

Рис. 2.5

Включим экстремаль 0zz1 в минимальное покрытие и перерисуем карту Карно, удалив экстремаль и оставив покрытые клетки пустыми.

На рис. 2.5 легко увидеть избыточные минимали 000z (область {0,1}) и z101 (область {5,13}), которые называют ущербными кодами. Очевидно, что эти минимали можно безболезненно удалить из дальнейшего рассмотрения. Перерисуем карту Карно еще раз:

x3

x4

00

01

11

10

00

1 0

1

3

0 2

01

0 4

5

7

0 6

11

1 12

1 13

0 15

0 14

10

1 8

0 9

0 11

0 10

x1 x2

Рис. 2.6

Из рис. 2.6 следует, что минимали z000 (область {0,8}) и 110z (область {12,13}) являются экстремалями 2-го порядка, поскольку соответствующие им области смежных клеток единственным образом покрывают единичные клетки карты Карно с номерами 0 и 13. Следовательно, эти минимали должны войти в искомое покрытие минимального ранга:

Hmin = {0zz1, z000, 110z}, y(x1,x2,x3,x4) = x1 x4 x2x3x4 x1 x2x3.

При наличии опыта всю рассмотренную последовательность построения Hmin можно выполнить на одной карте Карно, не перерисовывая ее и не выделяя всех минималей.

Рассмотрим особенности построения минимальных КНФ по картам Карно. Учитывая свойство двойственности ДНФ и КНФ функции, по карте Карно можно построить тупиковую (возможно, минимальную) КНФ.

Правило покрытия 2. Любой смежной области 2k клеток, заполненных нулями, можно поставить в соответствие дизъюнкцию (n-k)-го ранга, состоящую из переменных, которые имеют постоянное значение во всех нулевых наборах, соответствующих клеткам области, причем переменная xi входит в дизъюнкцию в прямом виде, если имеет значение 0 на всех клетках области, и, соответственно в инверсном виде, если она имеет значение 1 на всех клетках области. Конъюнкция минимального числа дизъюнкций, совместно покрывающих все клетки карты, заполненные нулями, есть одна из тупиковых (возможно, минимальных) КНФ переключательной функции.

Пример 2.8. Построить минимальную КНФ функции из предыдущего примера.

x3

x4

00

01

11

10

00

1 0

1 1

1 3

0 2

01

0 4

1 5

1 7

0 6

11

1 12

1 13

0 15

0 14

10

1 8

0 9

0 11

0 10

x1 x2

Рис. 2.7

Построим покрытие минимального ранга всех нулевых клеток карты Карно: Hmin (y)= {zz10,01z0,1z1z,10z1},

y(x1, x2, x3, x4) = (x3 x4)(x1 x2 x4)(x1 x3)(x1 x2 x4).

Cравнив цены по Квайну МДНФ (R=11) и МКНФ (R=14), следует отдать предпочтение МДНФ.

Соседние файлы в папке Конспект по ДМ