Uploaded by Вячеслав Жура

Схемотехника

advertisement
МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
ОДЕСЬКИЙ КОЛЕДЖ КОМП'ЮТЕРНИХ ТЕХНОЛОГІЙ СЕРВЕР
РОЗРАХУНКОВО-ГРАФІЧНА РОБОТА
З дисципліни
Комп’ютерна схемотехніка
На тему: «МЕТОДИ МІНІМІЗАЦІЇ ТА АНАЛІЗУ КОМБІНАЦІЙНИХ
СХЕМ»
Виконав студент групи К16.2
Керівник
Загальна оцінка__________
Дата __________
МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
ОДЕСЬКИЙ КОЛЕДЖ КОМП'ЮТЕРНИХ ТЕХНОЛОГІЙ СЕРВЕР
Одеса 2020
2
ЗАВДАННЯ
На розрахунково-графічну роботу з дисципліни
Комп’ютерна схемотехніка
Тема розрахунково-графічної роботи: «Методи мінімізації та аналізу
комбінаційних схем»
Варіант 23
Вхідні дані до роботи видаються відповідно за варіантами:
Булєва функція для мінімізації, побудови схем та їх аналізу.
Зміст розрахунково-пояснювальної записки:
Вступ
1. Визначення булєвої функції;
2. Опис мінімізації булевої функції методом Квайна Мак-Класкі;
2.1 Опис мінімізації булевої функції методом Квайна Мак-Класкі по «1»
2.2 Опис мінімізації булевої функції методом Квайна Мак-Класкі по «0»
3. Опис мінімізації булевої функції методом Карт Карно;
3.1 Опис мінімізації булевої функції методом Карт Карно по «1»;
3.2 Опис мінімізації булевої функції методом Карт Карно по «0»;
4. Аналіз синтезованої схеми методом π-алгоритму;
Висновки
Перелік посилань
Основна література:
1. Шапо Ф. С. Синтез схем цифровых устройств на основе СИС и БИС
Киев,1989.
2. Угрюмов Е.П. Цифровая схемотехника. Учебное пособие.,2004.
Дата здачі розрахунково-графічної роботи _________________________
Завдання прийняв на виконання ____________________
3
ВСТУП
У даній роботі ми зміцнимо знання з дисципліни схемотехніка
виконавши розрахунково-графічну роботу, в якій використовуємо мінімізацію
булевих функцій за допомогою алгоритму карт Карно і методу мінімізації
Клайна Мак-Класки. В результаті цієї роботи ми отримаємо практичні навички
при проектуванні принципових схем цифрових пристроїв розрахункової
техніки.
Дана робота важлива як для спеціалізації «Обслуговування програмних
систем і комплексів» так і для напряму «Розробка програмного забезпечення».
4
1. ВИЗНАЧЕННЯ БУЛЄВОЇ ФУНКЦІЇ
Булева функція 5 змінних Y = F(X1, X2, X3, X4, X5) задається своїми
значеннями, що визначаються 7-розрядними двійковими еквівалентами чисел,
які потрібно вибрати за табл.1 за числом (А) та місяцем (В) народження
студента та порядкового номера у списку групи (С). Значення функції на
конкретних наборах вибирається за правилом:
- на наборах 0...6 за значенням А;
- на наборах 7...13 за значенням В;
- на наборах 14...20 за значенням С;
- на наборах 21...27 за значенням (А+В+С);
- на наборах 28...31 функція приймає невизначений стан (Х).
Крім того, для всіх двійкових еквівалентів в розрядах зліва від старшої
значущої одиниці необхідно поставити символ невизначеного стану Хі
вважати, що функція на таких наборах також має невизначений стан.
Елементний базис задається викладачем.
Наприклад: А=09. З табл.1 знаходимо число 25, яке в двійковій системі
має вигляд 0011001. Тут лівіше старшої значущої одиниці знаходяться нулі,
тому замінюємо їх символом невизначеного стану Х. Тоді отримуємо
ХХ11001. Таким чином, значення функції F(X1, X2, X3, X4, X5) на наборах від
0 до 6:
Таблиця 1.1
№ набору
X1
X2
X3
X4
X5
F
0
1
2
3
4
5
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
Х
Х
1
1
0
0
1
5
Таблиця 1.2
0
1
О
Д
И
Н
И
Ц
І
2
3
4
5
6
7
8
9
0
-
00 72 12 94 38 59 10 42 25
Д
1
85 95 07 49 57 50 89 13 72 39
Е
2
32 23 43 94 54 76 96 37 05 96
С
3
97 87 36 08 61 48 19 18 86 62
Я
4
79 72 70 02 90 63 41 47 01 20
Т
5
23 26 44 92 84 33 52 51 43 38
К
6
45 74 34 35 83 87 55 93 08 07
И
7
95 80 66 60 65 88 33 05 09 48
8
27 49 19 40 17 51 47 08 37 36
9
10 59 89 99 95 77 48 11 68 20
В ході виконання роботи змінні приймають наступні значення:
А = 08
В = 01
С = 14
Тоді сума буде дорівнювати:
А + В + С = 23
Отриманні значення переводимо згідно за таблицею (табл. 1) та щоб
виділити їх добавляємо зірочку:
А* = 42
В* = 00
С* = 57
(А + В + С)* = 96
Переводимо отримані значення у бінарну систему числення:
А* = 0101010
В* = 0000000
6
С* = 0111001
(А + В + С)* = 1100000
Отримані бінарні числа зводимо до семи розрядів згідно з вимогами
задачі.
Таким чином будуємо таблицю з отриманими бінарними значеннями, а
у не заповнені значення записуємо «х». Отримуємо наступну таблицю (табл.
1.3).
Таблиця 1.3
x1x2x3x4x5
y
0 0 0 0 0
0
0 0 0 0 1
1
0 0 0 1 0
0
0 0 0 1 1
1
0 0 1 0 0
0
0 0 1 0 1
1
0 0 1 1 0
0
0 0 1 1 1
0
0 1 0 0 0
0
0 1 0 0 1
0
0 1 0 1 0
0
0 1 0 1 1
0
0 1 1 0 0
0
0 1 1 0 1
0
0 1 1 1 0
0
0 1 1 1 1
1
1 0 0 0 0
1
1 0 0 0 1
1
1 0 0 1 0
0
1 0 0 1 1
0
1 0 1 0 0
1
1 0 1 0 1
1
1 0 1 1 0
1
1 0 1 1 1
0
1 1 0 0 0
0
1 1 0 0 1
0
1 1 0 1 0
0
1 1 0 1 1
0
1 1 1 0 0
x
1 1 1 0 1
x
1 1 1 1 0
x
1 1 1 1 1
x
А
B
C
A+B+C
7
2. ОПИС МІНІМІЗАЦІЇ БУЛЕВОЇ ФУНКЦІЇ МЕТОДОМ КВАЙНА МАККЛАСКІ
2.1. Опис мінімізації булевої функції методом Квайна Мак-Класкі по «1»
Наступним кроком буде мінімізація заданої таблиці 1.3 за допомогою
методу мінімізації Клайна Мак Класкі.
Почнемо з мінімізації одиниць. Для цього беремо таблицю 1.3 та
виділяємо усі набори які у результаті дають значення 1.3 (таблиця 2.1).
Таблиця 2.1
x1x2x3x4x5
0 0 0 0 0
0
0 0 0 0 1
1
0 0 0 1 0
0
0 0 0 1 1
1
0 0 1 0 0
0
0 0 1 0 1
1
0 0 1 1 0
0
0 0 1 1 1
0
0 1 0 0 0
0
0 1 0 0 1
0
0 1 0 1 0
0
0 1 0 1 1
0
0 1 1 0 0
0
0 1 1 0 1
0
0 1 1 1 0
0
0 1 1 1 1
1
1 0 0 0 0
1
1 0 0 0 1
1
1 0 0 1 0
0
1 0 0 1 1
0
1 0 1 0 0
1
1 0 1 0 1
1
1 0 1 1 0
1
1 0 1 1 1
0
1 1 0 0 0
0
8
1 1 0 0 1
0
1 1 0 1 0
0
1 1 0 1 1
0
1 1 1 0 0
x
1 1 1 0 1
x
1 1 1 1 0
x
1 1 1 1 1
x
Після цього переписуємо виділені набори у таблицю котра буде
позначати набор К0 (таблиця 2.2). Та шукаємо бінарні набори котрі різняться
лише одним значенням. Помічаємо шукаємий та перевіряємі набори за
допомогою хрестика «х». Результат цієї дії зображено на таблиці 2.3.
Таблиця 2.2
Таблиця 2.3
0 0 0 0 1
0 0 0 0 1
0 0 0 1 0
0 0 0 1 0
0 0 0 1 1
0 1 0 0 0
0 0 1 0 1
1 0 0 0 0
0 0 1 1 0
0 0 0 1 1
0 1 0 0 0
0 0 1 0 1
0 1 0 1 0
0 0 11 0
0 1 1 0 0
0 1 0 1 0
0 1 1 1 0
0 1 1 0 0
1 0 0 0 0
1 0 0 0 1
1 0 0 0 1
1 0 0 1 0
1 0 0 1 0
0 1 1 1 0
1 0 0 1 1
1 0 0 1 1
1 0 1 1 1
1 1 0 1 0
1 1 0 1 0
1 1 1 0 0
1 1 1 0 0
1 0 1 1 1
1 1 1 0 1
1 1 1 0 1
1 1 1 1 0
1 1 1 1 0
1 1 1 1 1
1 1 1 1 1
Після цього переписуємо знайдені значення які відрізняються лише
одним значенням та на місце різниці ставимо знак «~» (таблиця 2.4), після
цього проводимо аналогічні операції до тих пір поки не буде значень які
відрізняються лише одним значенням. Результатом буде таблиці 2.5-2.6
9
Таблиця 2.4
0 0 0 ~ 1
0 0 ~ 0 1
Таблиця 2.5
К2=
~ 1 1 ~ 0
1 1 1 ~ ~
0 0 ~ 1 0
0 ~ 0 1 0
0 1 ~ 0 0
1 0 0 ~ 0
К1 =
0 1 1 ~ 0
~ 0 0 1 1
~ 1 0 1 0
~ 1 1 0 0
1 0 ~ 1 1
1 1 1 0 ~
1 1 1 ~ 0
1 1 1 1 ~
Після цього будуємо таблицю 2.6 в котрій значення верхньої строки буде
набором таблиці 2.2, а першого стовбця усі не помічені набори.
10
A
000~1
B
00~01
C
00~10
D
0~010
E
01~00
X
11111
11110
11101
10111
11100
11010
10011
01110
10010
10001
01100
01010
00110
X
X
X
X
X
X
F
1000~
G
100~0
X
H
~0011
I
~1010
K
00101
X
X
J
00011
10000
01000
00010
00001
Таблиця 2.6
X
X
X
X
X
X
X
~1100
X
X
10~11
Хрестиками відмічені ті клітинки у яких перша строчка співпадає з
шаблоном першого стовпчика.
Після цього треба закреслити усі стовпчики та рядки наступним
алгоритмом:
1. Шукаємо стовпчик з одним хрестиком та викреслюємо його
2. Якщо на строчці з викресленим стовпчиком є ще хрестики –
викреслюємо стовпчики.
3. Повторюємо цей алгоритм поки не залишиться стовпчиків з одним
хрестиком.
Результатом буде наступна таблиця (таблиця 2.7).
A
000~1
B
00~01
C
00~10
D
0~010
X
X
X
X
X
X
X
X
E
01~00
F
1000~
X
G
100~0
X
H
~0011
I
~1010
J
~1100
K
10~11
X
X
X
X
X
X
X
X
X
11111
11110
11101
10111
11100
11010
10011
01110
10010
10001
01100
01010
00110
00101
00011
10000
01000
00010
00001
Таблиця 2.7
11
Знаходимо ядро. Ядром будуть являтися викреслені набори з таблиці 2.7.
В даній таблиці ядром буде являтися наступне:
A000~1
B00~01
C00~10
D0~010
E01~00
F1000~
G100~0
I~1010
J~1100
K10~11
ядро =
Після цього знаходимо покриття за допомогою формули
П = (2 набори) U Ядро = {результуючий набір} – так как ядро у нас всё
занимает, то:
П1 = ядро
П1 = 10 + 4 + 40 = 54
За допомогою цієї формули знаходимо вагу покриття:
Таким чином для вирішення формулою Мак Класкі були отримані
наступні БФ:
МДНФ
=
y
=
!x1!x2!x3x4+!x1!x2!x4x5+!x1!x2x4!x5+!x1!x3x4x5+!x1x2!x4!x5+x1!x2!x3!x4+x1!x2!x3!x5+x2!x3x4!x5+x2x3!x
4!x5+x1!x2x4x5
2.2. Опис мінімізації булевої функції методом Квайна Мак-Класкі по «0»
Зробимо теж саме для нулей. Беремо таблицю 1.3 та виділяємо усі
набори які у результаті дають значення 0 (таблиця 2.8).
Таблиця 2.8
x1x2x3x4x5
0 0 0 0 0
0
0 0 0 0 1
1
0 0 0 1 0
1
0 0 0 1 1
1
0 0 1 0 0
0
0 0 1 0 1
1
12
0 0 1 1 0
1
0 0 1 1 1
0
0 1 0 0 0
1
0 1 0 0 1
0
0 1 0 1 0
1
0 1 0 1 1
0
0 1 1 0 0
1
0 1 1 0 1
0
0 1 1 1 0
1
0 1 1 1 1
0
1 0 0 0 0
1
1 0 0 0 1
1
1 0 0 1 0
1
1 0 0 1 1
1
1 0 1 0 0
0
1 0 1 0 1
0
1 0 1 1 0
0
1 0 1 1 1
1
1 1 0 0 0
0
1 1 0 0 1
0
1 1 0 1 0
1
1 1 0 1 1
0
1 1 1 0 0
x
1 1 1 0 1
x
1 1 1 1 0
x
1 1 1 1 1
x
Переписуємо виділені набори у таблицю котра буде позначати набор К0
(таблиця 2.9).
значенням.
Шукаємо бінарні набори котрі різняться лише одним
Помічаємо шукаємий та перевіряємі набори
за
допомогою
хрестика «х». Після цього переписуємо знайдені значення які відрізняються
лише одним значенням та на місце різниці ставимо знак «~» (таблиця 2.10),
після цього проводимо аналогічні операції до тих пір поки не буде значень які
відрізняються лише одним значенням. Результатом буде таблиці 2.10 - 2.11.
Таблиця 2.9
К0 =
Таблиця 2.10
Таблиця 2.11
x
00000
00~00
x
00100
010~0
x
01001
1010~
x
10100
1100~
x
11000
x
00111
x
01011
x
10101
110~1
K1=
x
~1011
x
11~11
111~1
К2=
~10~1
13
x
10110
x
1111~
Після цього будуємо таблицю 2.12 в котрій значення верхньої строки
буде
набором
таблиці
2.12,
а
першого
стовбця
усі
не
помічені
набори. Хрестиками відмічені ті клітинки у яких перша строчка співпадає з
шаблоном першого стовпчика. Закреслюємо стовпчики та строчки попереднім
алгоритмом .
11111
x
x
x
x
x
x
x
x
x
x
x
x
x
Знаходимо ядро
Після цього знаходимо покриття за допомогою формули
П = (2 набори) U Ядро = {результуючий набір}
За допомогою цієї формули знаходимо вагу покриття:
Ядро =
11110
11101
11011
11001
10110
10101
01011
00111
11000
10100
Неотмеченные
наборы
A 00~00
x
B 1010~
C 1100~
D ~1011
E 11~11
F 111~1
G 1111~
01001
00000
00100
Таблиця 2.12
00~00
A
1010~
B
~1011
D
11~11
E
Знаходимо вагу покриття:
П1 = CF U Ядро = CF U ABDE = {ABCDEF}
00~00
1010~
~1011
11~11
1100~
111~1
6+5+
24 = 35
14
П2 = CG U Ядро = CG U ABDE = {ABCDFG}
0000~
6+ 4 +
24 = 34
1010~
~1011
11~11
1100~
111~1
П3 = FG U Ядро = FG U ABDE = {ABDEFG}
0000~
6+5+
23 = 34
~~111
000~0
~0000
111~1
1111~
Таким чином для вирішення формулою Мак Класкі були отримані
наступні БФ:
СДНФ =
y = !x1!x2x3!x4!x5 + !x1x2!x3!x4!x5 + !x1!x2!x3x4x5 + !x1!x2x3x4!x5 + !x1x2!x3!x4x5 +
!x1x2!x3x4!x5 + !x1x2x3!x4!x5 + x1!x2!x3!x4x5 + x1!x2!x!x3x4!x5 + x1!x2x3!x4!x5 + x1x2!x3!x4!x5 +
!x1x2x3!x4x5 + x1!x2x3!x4x5 + x1x2!x3x4!x5 + x1x2x3!x4!x5 + x1x2x3x4!x5 + x1x2x3!x4z5 + x1x2!x3x4x5
+ x1x2x3x4x5
СкДНФ =
y = x3x4x5 + x2x3x4 + x1x3x4 + !x1!x2!x3!x4 + !x1!x2!x3!x5 + !x2!x3!x4!x5 + !x1!x2!x4x5 +
!x1!x2x3x5 + !x1x2x4x5 + x1!x2x4x5 + x1x2x3x5
ТДНФ =
T1 =
0000~
T2 =
0000~
T3=
0000~
00~01
001~1
~~111
000~0
000~0
000~0
~0000
~0000
~0000
01~11
01~11
01~11
10~11
10~11
10~11
111~1
111~1
111~1
~111~
~111~
~111~
1~11~
1~11~
1~11~
МДНФ = y = !x1!x2!x3!x4 + x3x4x5 + !x1!x2!x3!x5 + !x2!x3!x4!x5 + !x1x2x4x5 + x1!x2x4x5 + x1x2x3x5 +
x2x3x4 + x1x3x4
15
3. ОПИС МІНІМІЗАЦІЇ БУЛЕВОЇ ФУНКЦІЇ МЕТОДОМ КАРТ КАРНО;
3.1. Опис мінімізації булевої функції методом Карт Карно по «1»;
Визначаємо булеву функцію за допомогою методу карт Карно. Спочатку
робимо розрахунок для одиниць, а потім для нулей.
Будуємо таблицю 3.1 котру будемо заповнювати значеннями з таблиці
1.3.
Вибираємо з таблиці 1.3 усі значення на яких значення y приймає
значення
Отримуємо результат котрий зображено у таблиці 3.1, після цього об’єднуємо
результат за допомогою алгоритму Карно та отримуємо результат.
Таблиця 3.1
x3x4x5
000
010
110
1
1
100
001
011
1
1
111
101
x1x2
00
1
1
1
01
1
2
7
1
11
3
10
1
1
4
1
1
x
x
1
8
1
7
x
1
1
5
x
1
Результатом об’єднання одиниць у таблиці буде наступна булева
функція:
Y = !х1х3!x5 + !x1x2!x5 + !x3x4!x5+x1!x2!x3!x5+!x2!x3x5+x1!x2x4x5+!x1x2!x3x4+!x1!x2!x4x5
3.2. Опис мінімізації булевої функції методом Карт Карно по «0»
16
Теж саме робимо для значень які набувають 0 у «у».
Отримуємо карту Карно (таблиця 3.2) та робимо об’єднання клітинок за
допомогою алгоритму Карно.
Таблиця 3.2
x3x4x5
000
010
110
100
001
011
111
101
x1x2
00
0
0
7
01
11
0
0
0
6
10
x
0
x
0
2
4
0
0
3
x
x
0
1
0
5
Результатом об’єднання таблиці 6 буде наступна булева функція:
Y
=
(!x1+!x3+x5)(!x1+!x2+!x5)(x1+!x2+x4+!x5)(x1+!x3+!x4+!x5)(!x1+!x3+x4+!x5)(!x1+!x2+x3+x4+x5)(x1+x2+x3+
x4+x5)
Порівнюємо БФ обох методів мінімізації:
!х1х3!x5 + !x1x2!x5 + !x3x4!x5+x1!x2!x3!x5+!x2!x3x5+x1!x2x4x5+!x1x2!x3x4+!x1!x2!x4x5 (Карта Карно) та y
=
!x1!x2!x3x4+!x1!x2!x4x5+!x1!x2x4!x5+!x1!x3x4x5+!x1x2!x4!x5+x1!x2!x3!x4+x1!x2!x3!x5+x2!x3x4!x5+x2x3!x
4!x5+x1!x2x4x5 (Квайна Мак Класкі).
17
4. АНАЛІЗ СИНТЕЗОВАНОЇ СХЕМИ МЕТОДОМ Π-АЛГОРИТМУ
По найменшій функції будуємо комбінаційну схему (рис. 1).
Рисунок 4.1 – найменша комбінаційна схема
Будуємо таблицю 4.1 на котрій нумеруємо елементі схеми та вказуємо
інформацію по її елементам.
Таблиця 4.1
Номер елемента
4
3
2
1
Функція
3 або
3і
2і
2і
Входи
е1е2е3
!х1!х3х4
!х2х3х4
х1х2
Рахуємо її за допомогою Пі-алгоритму з виходом 1. Будуємо таблицю
(таблиця 4.2)
Таблиця 4.2
Для одиниці
х1
1
х2
х4
е1
е2
е3
1
х
х
х
1
х
х
х
1
у
Опис
1
П14 3 або, е1е2е3
П11 2 і, х1х2
1
0
0
х3
0
1
П12 2 і, !х2!х3х4
0
1
П13 2 і, !х1!х3х4
18
Будуємо набір усіх станів та БФ:
с1 =
11хх
х001
0х01
у = х1!х1 + х2!х2 + !х3 + х4
Теж саме робимо для нулей (таблиця 4.3).
Таблиця 4.3
х1
х2
х3
х4
е1
0
0
х
1
х
х
х
0
1
х
х
е2
0
е3
0
у
0
Опис
П14 3 або,
е1е2е3
П11 2 і, х1х2
х
1
х
х
1
х
х
х
0
х
х
1
П12 2 і, !х2!х3х4
П13 2 і,
!х1!х3х4
Результатом розрахунку є:
с0 =
011x
01x1
0x11
0x1x
0x10
101x
10x0
x01x
x010
x011
у = !x1x2x3 + !x1x2x4 + !x1x3x4 + !x1x3 + !x1x3!x4 + x1!x2x3 + x1!x2!x4 + !x2x3 + !x1x2!x3 +
!x2x3x4
19
ВИСНОВКИ
У цій роботі було проведено порівняння алгоритмів мінімізації по картах
Карно і Клайна Мак-Класки . Було проведено порівняння результатів булевих
функцій в ході яких було з'ясовано, що алгоритм мінімізації Клайна МакКласки більш ефективно і точно дає відповідь так як результуючі булеві
функції цих двох алгоритмів схожі. У межах даної роботи не вийшло
домогтися повного збігу так як цьому завадили набори, що приймають будьяке значення, а також неоднозначність рішення методом карт Карно.
Незважаючи на те, що алгоритм Клайна Мак-Класки більш точний, він є більш
трудомістким в ручному підрахунку, цей алгоритм вимагає реалізації
автоматизованого підрахунку, так як є великий шанс допустити помилку через
людського фактора. Труднощами даного алгоритму також є те, що складність
підрахунку збільшується в експоненційній формі, що може зайняти великий
час підрахунку навіть, в автоматизованому вигляді.
20
ПЕРЕЛІК ПОСИЛАНЬ
1. Гук М. Аппаратные средства IBM PC. – «Питер», 2007.
2. Осадчий Ю.Ф., Глудкин О.П., Гуров А.И. Аналоговая и цифровая
электроника. – «Горячая линия - Телеком», Москва, 2005.
Download