Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Комп’ютерна схемотехніка та архітектура комп’ютерів
ЗВІТ
ДО ЛАБОРАТОРНОЇ РОБОТИ № 2
«Синтез перемикальних функцій»
Варіант № 7
Дата «4» Жовтня 2021
Мета роботи: Закріплення знань і отримання практичних навичок отримання мінімальних аналітичних форм представлення перемикальних функцій; побудови комбінаційних схем для їх реалізації в заданому елементному базисі.
Теоретичні відомості.
Змінну із скінченним числом значень (станів) називають перемикальною, а з двома значеннями – булевою.
Функція, яка має, як і кожна її змінна, скінченне число значень, називається перемикальною (логічною).
Логічна функція, число можливих значень якої та кожної її незалежної змінної дорівнює двом, є булевою. Таким чином, булева функція – це окремий випадок перемикальної.
Операція – це чітко визначена дія над одним або кількома операндами, яка створює новий об’єкт (результат).
Позначення операції
Читається
Назва операції
¬
НЕ
Заперечення (інверсія)
∧
І
Кон'юнкція (логічне множення)
∨
АБО
Диз'юнкція (логічне додавання)
Основними булевими операціями є заперечення (операція НЕ, інверсія), диз’юнкція (операція АБО, логічне додавання, об’єднання) і кон’юнкція (операція І, логічне множення).
Заперечення – це одномісна булева операція / (читається “не х”), результатом якої є значення, протилежне значенню операнда.
Диз’юнкція – це булева операція / (читається x1 або x2), результатом якої є значення нуль тоді і тільки тоді, коли обидва операнди мають значення нуль.
Кон’юнкція – це булева операція / (читається x1 і x2), результатом якої є значення одиниці тоді і тільки тоді, коли значення кожного операнда дорівнює одиниці у виразі /.
Операції заперечення, диз’юнкції і кон’юнкції можна задати за допомогою таблиць істинності, в яких зліва подані значення операндів, а справа – значення булевої функції.
Таблиця істинності - це прямокутна таблиця, що виражає відповідність між усіма наборами величин змінних і величин функції. У такій таблиці, як усталено для двозначної логіки, 1 позначає істинність, 0 позначає хибність. У даній таблиці істинності подано два аргумента (А та В) та результати булевих операцій.
/
Мінімізація булевих функцій за методом Квайна-Мак-Класки.
Метод Квайна-Мак-Класки заснований на кубічному поданні термів ДНФ із попередньою розбивкою кубів на підгрупи, обумовлені однаковим числом одиниць. Розбивка дає можливість порівнювати куби тільки за сусідніми за числом одиниць групами для зменшення кількості переборів.
В ітеративній процедурі мінімізації попарне порівняння можна виконувати тільки між сусідніми групами.
Вихідне завдання функції визначається для зручності десятковими кодами двійкових кубів, що відповідають ДНФ.
Знаходження первинних імплікант на першому етапі можна спростити за допомогою числового зображення булевих функцій, а саме:
1. Всі вихідні терми записуються у вигляді їхніх двійкових номерів.
2. Всі номери розбиваються на непересічні групи за числом одиниць. Умовою склеювання й утворення нового терму є наявність розбіжності в підгрупах тільки за однією координатою в одному двійковому розряді й наявність спільних незалежних координат.
3. В i-групу включають всі номери наборів, що мають у своєму записі i одиниць.
4. Попарне порівняння виконується тільки між сусідніми за номером групами. Групи, які розрізняються за двома розрядами і більше, не має сенсу порівнювати.
Мінімізація булевих функцій за методом карт Карно.
Для мінімізації функцій із кількістю букв 6≤n застосовують карти Карно. Їх будують у вигляді таблиць з 2n кліток із розмічуванням рядків і стовпчиків змінними.
Мінтерми в сусідніх клітинках карти Карно в рядку (з урахуванням верхніх і нижніх) або стовпчику (з урахуванням крайніх) розрізняють за значеннями однієї змінної, що дає змогу виконувати операцію склеювання за цією змінною.
Загальні правила мінімізації:
1) зображають карту Карно для n змінних і розмічують її рядки і стовпчики. У клітинки таблиці, які відповідають мінтермам (одиничним наборам) функції, яка мінімізується, записують одиницю;
2) склеюванню підлягають прямокутні конфігурації, заповнені одиницями, які і містять 2, 4 або 8 клітинок. Верхні й нижні рядки, крайні ліві і праві стовпчики карти ніби склеюються, створюючи поверхню циліндра;
3) множину прямокутників, які покривають усі одиниці, називають покриттям. Чим менше прямокутників і чим більше клітинок у прямокутниках, тим краще покриття.
4) форми, отримані в результаті мінімізації, містять r елементарних кон’юнкцій (за кількістю прямокутників у покритті). Кожна кон’юнкція містить тільки ті змінні, які не змінюють свого значення в наборах, що склеюються у відповідному прямокутнику. Число змінних у кон’юнкції називають її рангом. При склеюванні двох сусідніх клітинок одержують ранг кон’юнкції n-1, чотирьох – n-2, восьми клітинок – n-3 і т. д.
Завдання до варіанту:
/
Таблиця істинності
№
х3
х2
х1
х0
F
0
0
0
0
0
0
1
0
0
0
1
0
2
0
0
1
0
0
3
0
0
1
1
1
4
0
1
0
0
1
5
0
1
0
1
1
6
0
1
1
0
1
7
0
1
1
1
1
8
1
0
0
0
0
9
1
0
0
1
1
10
1
0
1
0
1
11
1
0
1
1
1
12
1
1
0
0
0
13
1
1
0
1
0
14
1
1
1
0
0
15
1
1
1
1
0
Логічний базис: І, АБО, НЕ
Хід отримання мінімальних форм представлення булевої функції за методом Квайна-Мак-Класкі:
Запишемо мінтерми за кількістю 1 та знайдемо імпліканти:
Кількість одиниць
Мінтерм
Двійкове представлення
Імпліканти першого порядку
Імпліканти другого порядку
1
m4
0100
m(4,5) 010-
m(4,6) 01-0
(4,5,6,7) 01--
(4,6,5,7) 01--
2
m3
0011
m(3,7) 0-11
m(3,11) -011
m(5,7) 01-1
m(6,7) 011-
m(9,11) 10-1
m(10,11) 101-
m5
0101
m6
0110
m9
1001
m10
1010
3
m7
0111
m11
1011
Побудуємо таблицю простих імплікант(Імпліканти першого порядку які належать імплікантам другого порядку можна прибрати):
0100
0011
0101
0110
1001
1010
0111
1011
01--
∨
∨
∨
∨
0-11
∨
∨
-011
∨
∨
10-1
∨
∨
101-
∨
∨
Результат: 01--, 0-11, 10-1, 101- або f=
x
3
x
2
v
x
3
x
2
x
0
v
x
3
x
2
x
1
v
x
3
x
1
x
0
Хід отримання мінімальних форм представлення булевої функції за методом карт Карно(Вейча):
Існує 16 варіантів комбінації вхідних змінних, таким чином карта Карно має 16 позицій, і організована у вигляді решітки 4*4. Двійкові цифри в карті показують вихід функції для будь-якої комбінації на вході.
Після конструювання карти Карно наше завдання знайти мінімальні терми для використання в кінцевому виразі. Ці терми знаходяться шляхом окреслення груп 1-ць в карті. Група має бути прямокутною і мати площу, що дорівнює ступеню двійки. Прямокутник має бути максимально великим і без нулів.
/
Резутат: f=
x
3
x
2
v
x
3
x
2
x
0
v
x
3
x
2
x
1
v
x
3
x
1
x
0
Отримана за булевою функцією схема:
/
Зображення схеми булевої функції та її успішне компілювання в середовищі Quartus
/
Результати компіляції:
/
Логічний синтез:
/
Занурення у кристал:
/
Аналіз швидкодії:
/
Functional Simulation
/
Висновки: Було отримано мінімальні форми представлення булевої функції завдяки методам Квайна-Мак-Класкі та карт Карно. Обидва методи дають однаковий результат, тому результат вірний. Було створено схему за булевою функцією, а потім ця схема була імпортована у Quartus. Було проведено моделювання цифрових пристроїв (ЦП) з урахуванням часових параметрів мікросхем ПЛІС.