
4. Мінімізація булевих функцій
Важливим етапом проектування цифрових схем є мінімізація булевих функцій, тобто отриманні їх формул з мінімальною кількістю літер. Мінімізація забезпечує побудову економічних цифрових схем. Для мінімізації функцій з кількістю літер n 6 застосовують карти Карно. Їх реалізують у вигляді таблиць з 2n клітинок з розміткою рядків та стовпців змінними. Карти Карно для функції трьох змінних F(X1, X2, X3) показано на рис. 3. Рядки карти позначено змінною X1, а стовпці – значеннями змінних X2, X3. Кожна клітинка карти Карно однозначно відповідає одній колекції таблиці істинності для функції трьох змінних (рис. 3, а) або мін термами цієї функції (рис. 3, б). Клітинки карти Карно часто нумерують десятковими цифрами – номерами наборів (рис. 3, в).
При мінімізації для кожного мінтерму, який входить до ДДНФ функції, ставиться одиниця, а інші клітинки не заповнюються. Наприклад, заповнення карти Карно для функції, заданої табл. 5, подано на рис. рис. 3, г.
Х2Х3 Х1 |
00 |
01 |
11 |
10 |
|
Х2Х3 Х1 |
00 |
01 |
11 |
10 |
0 |
000 |
001 |
011 |
010 |
|
0 |
|
|
|
|
1 |
100 |
101 |
111 |
110 |
|
1 |
|
|
|
|
|
а) |
|
|
б) |
||||||
Х2Х3 Х1 |
00 |
01 |
11 |
10 |
|
Х2Х3 Х1 |
00 |
01 |
11 |
10 |
0 |
0 |
1 |
2 |
3 |
|
0 |
|
1 |
1 |
|
1 |
4 |
5 |
6 |
7 |
|
1 |
1 |
|
1 |
1 |
в) г)
Рис. 3. Карти Карно для функцій трьох змінних
Подамо загальні правила мінімізації.
-
Зображають карту Карно для n змінних та роблять розмітку її рядків та стовпців. В клітинки таблиці, які відповідають мінтермам (одиничним колекціям) функції, що мінімізується, записують одиницю.
-
Склеюванню підлягають прямокутні конфігурації, які заповнені одиницями і містять 2, 4 або 8 клітинок. Верхні та нижні рядки, крайні ліві та праві стовпчики карти також склеюються, ніби створюючи поверхню циліндра.
-
Множина прямокутників, які покривають всі одиниці, називається покриттям. Чим менше прямокутників і чим більше клітинок у прямокутниках, тим краще покриття. З декількох варіантів вибирають той, у якого менший коефіцієнт покриття z = r/s, де r – загальна кількість прямокутників, s – їхня сумарна площа в клітинках. Наприклад, для поданого покриття (рис. 3, г)маємо z = 3/5.
-
Формули, отримані в результаті мінімізації, містять r елементарних кон’юнкцій (за кількістю прямокутників у покритті). Кожна кон’юнкція містить тільки ті змінні, які не змінюють свого значення в колекціях, що склеюються у відповідному прямокутнику. Кількість змінних у кон’юнкції називається її рангом. При склеюванні двох сусідніх клітинок отримують ранг кон’юнкції n-1, чотирьох клітинок – n-2, восьми клітинок – n-3 і т. п.
Розмітка карт Карно для чотирьох змінних подано на рис. 4. В клітинках карт записані значення мінтермів відповідно у двійковому та десятковому еквівалентах.
Х2Х3 Х1 |
00 |
01 |
11 |
10 |
|
Х2Х3 Х1 |
00 |
01 |
11 |
10 |
00 |
0000 |
0001 |
0011 |
0010 |
|
00 |
0 |
1 |
3 |
2 |
01 |
0100 |
0101 |
0111 |
0110 |
|
01 |
4 |
5 |
7 |
6 |
11 |
1100 |
1101 |
1111 |
1110 |
|
11 |
12 |
13 |
15 |
14 |
10 |
1000 |
1001 |
1011 |
1010 |
|
10 |
8 |
9 |
11 |
10 |
а) |
|
б) |
Рис. 4. Карт Карно для чотирьох змінних:
а – двійкове значення мінтермів; б – десяткове значення мінтермів
Приклад 1. Мінімізувати булеві функції L1, L2 і L3 чотирьох змінних. Функція L1 подана двома способами – в ДДНФ і з десятковим еквівалентом мінтермів:
Функції L2 і L3 для спрощення подано десятковими еквівалентами мінтермів:
L2= 2367891213; L3=13579111315.
Мінімізація функцій L1, L2 і L3 проводиться за допомогою карт Карно, поданих на рис. 5.
Х3Х4 Х1Х2 |
00 |
01 |
11 |
10 |
|
Х3Х4 Х1Х2 |
00 |
01 |
11 |
10 |
|
Х3Х4 Х1Х2 |
00 |
01 |
11 |
10 |
00 |
1 |
1 |
1 |
1 |
|
00 |
|
|
1 |
1 |
|
00 |
|
1 |
1 |
|
01 |
1 |
|
|
|
|
01 |
|
|
1 |
1 |
|
01 |
|
1 |
1 |
|
11 |
1 |
|
1 |
|
|
11 |
1 |
1 |
|
|
|
11 |
|
1 |
1 |
|
10 |
1 |
|
|
|
|
10 |
1 |
1 |
|
|
|
10 |
|
1 |
1 |
|
|
а) |
|
|
б) |
|
|
в) |
Рис. 5. Карти Карно для мінімізації булевих функцій чотирьох змінних
а – L1; б – L2; в – L3
Результати мінімізації:
;
z1 = 3/8;
;
z2 = 2/8;
;
z3 = 1/8;
Для мінімізації булевих функцій також
використовують діаграми Вейча, які
аналогічні картам Карно і відрізняються
від них способом розмітки: замість
символів 0 і 1 використовують булеві
позначення аргументів – Х1,
,
Х2,
та інше (рис. 6).
|
Х2 |
|
|
|
Х2 |
|
||
Х1 |
11 |
10 |
|
Х1 |
110 |
111 |
101 |
100 |
|
01 |
11 |
|
|
010 |
011 |
001 |
000 |
а) |
|
|
|
Х3 |
|
|||
|
б) |
|
Х2 |
|
|
||
Х1 |
1100 |
1101 |
1001 |
1000 |
|
1110 |
1111 |
1011 |
1010 |
Х3 |
|
|
0110 |
0111 |
0011 |
0010 |
|
0100 |
0101 |
0001 |
0000 |
|
|
|
|
Х4 |
|
|
|
в) |
Рис. 6. Діаграми Вейча
а – для двох змінних; б – для трьох змінних; в – для чотирьох змінних
Приклад 2. Мінімізувати за допомогою діаграм Вейча функцію L2 з прикладу 1. Запис значення мінтермів функції L2 в клітини діаграми Вейча подано на рис.7.
|
Х2 |
|
|
||
Х1 |
1 |
1 |
1 |
1 |
|
1 |
|
|
|
Х3 |
|
|
1 |
|
|
|
|
1 |
|
|
|
|
|
|
|
Х4 |
|
|
Рис. 7. Діаграма Вейча для мінімізації функції L2
Результат мінімізації:
;
z2 = 1/1
збігається з даними попереднього прикладу.
Література
-
Бойко В., Гуржій А., Жуйков В., та ін. Схемотехніка електронних систем. Цифрова схемотехніка. – Київ, «Вища школа», 2004.
-
Бабич М., Жуков І. Комп’ютерна схемотехніка. Київ, «МК-Прес», 2004.
-
Угрюмов Е. Цифровая схемотехника. Сакт-Питербург, 2004.
-
Фрике К. Вводный курс цифровой электроники. Москва, 2004.
-
Бойт К. Цифровая электроника. Москва, 2007.
-
Андронік Буняк. Електроніка та мікросхемотехніка: навчальний посібник для вищих учбових закладів. - Київ - Тернопіль, 2001.
-
Мальцев П.П. й др. Цифровые интегральные микросхемы.: Справочник. -М.: Радио й связь . 1994.
-
Пухальский Г.И., Новосельцева В.Н. Проектирование дискретных устройств на интегральных микросхемах: Справочник. - М.: Радио и связь, 1990.
-
Титце У., Шенк К. Полупроводниковая схемотехника: Справочное руководство. Пер. с нем. - М.: Мир, 1983..
-
Скаржепа В.А., Луценко А.Н. Электроника й микросхемотехника.- К.: Выща школа, 1989.