x1x2 x3 | 00 | 01 | 11 | 10 |
0 | ||||
1 |
Рис.1.2 Карта Карно для логической функции трех аргументов.
x1x2x3x4 | 00 | 01 | 11 | 10 |
00 | ||||
01 | ||||
11 | ||||
10 |
Рис. 1.3 Карта Карно для логической функции четырех аргументов.
x1x2x3x4x5 | 000 | 001 | 011 | 010 | 110 | 111 | 101 | 100 |
00 | ||||||||
01 | ||||||||
11 | ||||||||
10 |
Рис.1.4 Карта Карно для логической функции пяти переменных.
Между представлением логической функции в табличной (таблица истинности), алгебраической (в виде СДНФ) и графической (на карте Карно) формах имеется однозначное соответствие. Логическая функция на карте Карно представляется совокупностью клеток, заполненных 1, инверсия этой функции представляется совокупностью пустых клеток (или заполненных 0).
Для логических функций с числом переменных n ³ 6 наглядность карт Карно теряется и поэтому такие функции представляются в виде композиции функции меньшего числа переменных:
,где x1 - выделяемая переменная;
функции
получаются из функции f подстановкой значений x1=0 и x1=1.В качестве выделяемой может использоваться любая переменная. Например,
Процесс выделения более простых функций называется декомпозицией. Полученные функции f0 и f1 могут подвергаться дальнейшей декомпозиции.
Множество логических функций n переменных можно образовать посредством трех основных логических операций:
1) Логическое отрицание (инверсия);
2) Логическое сложение (дизъюнкция);
3) Логическое умножение (конъюнкция).
Более сложные логические преобразования можно свести к указанным операциям [4]. Логические функции подчиняются принципу дуальности (двойственности) - теоремы Де Моргана; согласно которому операции конъюнкции и дизъюнкции допускают взаимную замену, если одновременно поменять логическую 1 на 0, 0 на 1, знак Ú (+) на Ù(×), а Ù(×) на Ú (+), где Ú или + - обозначение операции дизъюнкции; Ù или × - обозначение операции конъюнкции.
Булева алгебра базируется на нескольких аксиомах, из которых выводят основные законы для преобразований с двоичными переменными (табл. 1.6, 1.7)
Аксиомы булевой алгебры
конъюнкция | дизъюнкция | |
0×0=0 | 0+0=0 | |
0×1=0 | 0+1=1 | |
1×1=1 | 1+1=1 | |
x×0=0 | x+0=x | |
x×1=x | x+1=1 | |
x×x=x | x+x=x | |
Таблица 1.7
Законы булевой алгебры
Закон булевой алгебры | Конъюнкция | Дизъюнкция |
1 | 2 | 3 |
Переместительный(коммутативности) | x1 x2 = x2 x1 | x1+ x2 = x2 + x1 |
Сочетательный(ассоциативности) | x1 x2 x3 = x1 (x2 x3) = (x1 x2)x3 | x1+x2 +x3 = (x1+x2)+x3= =x1 +(x2+x3) |
Распределительный(дистрибутивности) | x1(x2 +x3)= x1 x2 +x1 x3 | x1+(x2x3)= (x1+x2)(x1+x3) |
Поглощения | x1+x1 x2 = x1 | x1 (x1+x2) = x1 |
Склеивания | x1 | |
Де Моргана (инверсии, дуальности) | ||
Развертывания | ||
Не полного развертывания |
При минимизации логических функций в карте Карно обводят прямоугольными контурами все единицы и затем записывают минимизированную функцию в виде суммы логических произведений, описывающих эти контуры.
При проведении контуров придерживаются правил:
1) контур должен быть прямоугольным;
2) внутри контура должны быть только клетки, заполненные единицами;
3) число клеток, находящихся внутри контура, должно быть целой степенью числа 2, т.е. можно склеивать 1, 2, 4, 8,... членов;
4) одни и те же клетки, заполненные единицами, могут входить в несколько контуров;
5) при проведении контуров самая нижняя и самая верхняя строки таблицы считаются соседними, то же - для крайнего левого и крайнего правого столбцов;
6) число контуров должно быть как можно меньшим, а сами контуры как можно большим.
Пример 1.6. Провести минимизацию логической функции, заданной в форме СДНФ,с помощью карты Карно (рис.1.5).
x1x2x3 | 00 | 01 | 11 | 10 |
0 | 1 | 1 | ||
1 | 1 | 1 | 1 |
Рис.1.5 Карта Карно.
Решение. С помощью преобразований, выполняемых по законам булевой алгебры, и с учетом объединенных на карте Карно клеток, получают минимизированное выражение (МДНФ) логической функции: