Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Кафедра АПЕПС
Комп’ютерна схемотехніка та архітектура комп’ютерів
ЗВІТ
ДО ЛАБОРАТОРНОЇ РОБОТИ № 2
«Синтез перемикальних функцій»
Варіант № 18
Дата «02» Жовтня 2021
Мета роботи: Закріплення знань і отримання практичних навичок отримання мінімальних аналітичних форм представлення перемикальних функцій; побудови комбінаційних схем для їх реалізації в заданому елементному базисі.
Постановка задачі
В результаті виконання даної лабораторної роботи студент повинен вміти:
використовуючи методи Куайна-МакКласкі та карт Карно, отримувати мінімальні аналітичні форми представлення перемикальних функцій в заданому базисі логічних елементів;
проводити функціональне та моделювання цифрових пристроїв (ЦП) з урахуванням часових параметрів мікросхем ПЛІС;
порівнювати інтегральні реалізації ЦП.
Теоретичні відомості
Для вирішення постановленої задачі я скористувався алгеброю логіки, яка й лежить у основі усіх комп’ютерних процесів. Як ще звуть, булева алгебра, яка складається у тому, що є тільки два значення: істина або хибність, тобто 1 або 0. Та є операції які із цими значеннями можна проводити.
Основні з них:
Заперечення (НЕ) ¬
Кон’юнкція (ТА) ∧
Диз’юнкція (АБО) ∨
Заперечення
Кон’юнкція
Диз’юнкція
Ще є операції, утворені з цих простих (елементарних) за допомогою логічного зв'язка, вони називаються складними.
Призначаючи змінним значення 1 або 0, використовуючи елементарні та будуючи з них складні операції, ми можемо створювати власні логічні функції та використовувати із метою вирішення якихось логічних завдач.
Так як ми працюємо із комп’ютерами, то нам також й важлива максимальна оптимізація процесу логіки. Для цього використовують мінімізацію. Мінімізація булевих функцій — спрощення булевих виразів. Оскільки логічні функції реалізують за допомогою певного набору пристроїв, то, спрощуючи вираз, зменшуємо кількість елементів. Є декілька методів мінімізації булевих функцій, розглянемо два з них.
Метод Куайна — Мак-Класкі (метод простих імплікант)
https://uk.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%9A%D1%83%D0%B0%D0%B9%D0%BD%D0%B0_%E2%80%94_%D0%9C%D0%B0%D0%BA-%D0%9A%D0%BB%D0%B0%D1%81%D0%BA%D1%96
Карти Карно
Карта Карно зменшує потребу в обширних обчисленнях, використовуючи перевагу людської можливості розпізнання шаблонів, дозволяє швидке розпізнавання і виключення потенційних станів гонитви.
В карті Карно булеві змінні переносяться (зазвичай з таблиці істинності) і впорядковуються згідно з принципами кода Грея, в якому тільки одна змінна змінюється при переході між сусідніми квадратами. Коли таблиця згенерована, і у відповідні комірки записані вихідні значення, дані організовуються в найбільші можливі групи, що містять 2n комірок (n=0,1,2,3...). Далі, працюючи з цими групами, отримують мінімізовану ДНФ.
Приклад таблиці
/
Завдання до варіанту:
Вихідна таблиця:
x3
x2
x1
x0
F
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
/
Хід отримання мінімальних форм представлення булевої функції
Метод Куайна — Мак-Класкі
Знайдемо усі мінтерми, тобто ті вхідні значення, при яких функія набуває одиниці
Кількість одиниць
Мінтерм
Двійкове представлення
1
m8
1000
2
m5
m6
m10
m12
0101
0110
1010
1100
3
m7
0111
4
m15
1111
Знайдемо імпліканти, тобто співпадаючі форми вхідних даних серед мінтермів
Кількість 1 | Мінтерми | Імпліканти 1-го рівня | Імпліканти 2-го рівня
------------------------------|-----------------------|---------------------
1 m8 1000 | m(8,10) 10-0 | m(8,10,12) 1--0*
------------------------------| m(8,12) 1-00 |---------------------
2 m5 0101 |-----------------------| m(5,6,7) 01--*
m6 0110 | m(5,7) 01-1 |
m10 1010 | m(6,7) 011- |
m12 1100 | |
------------------------------|-----------------------|
3 m7 0111 | m(7,15) -111* |
------------------------------|-----------------------|4 m15 1111 | |
Таблиця імплікант
1000
0101
0110
1010
1100
0111
1111
10-0
∨
∨
1-00
∨
∨
01-1
∨
011-
∨
∨
-111
∨
∨
За допомогою знайдених імплікант отримаємо мінімізовану функцію. Де кожна група є імплікантою. x3x2x0 = 10-0
x3x2x0 ∨ x3x1x0 ∨ x3x2x0 ∨ x3x2x1 ∨ x3x1x0
Карти Карно
Побудуємо та заповнимо отаку карту
00
01
10
11
00
01
1
1
1
10
1
1
11
1
1
Об’єднаємо сусідні клітинки у пари. (Кожна пара окремим кольором)
00
01
10
11
00
01
1
1
1
10
1
1
11
1
1
Отримуємо ідентичну мінімізовану функцію
Схема реалізації булевої функції
По-перше, за завданням варіанта нам треба перевести функцію у базис АБО-НЕ
Далі ми вже можемо будувати нашу схему у Quartus
Побудувавши перевіряємо схему різними способами компіляції
Analysis and Elaboration
Analysis and Synthesis
Fitter
TimeQuest Slow 85C
Моделювання
Functional Simulation
Timing Simulation
Counter має затримку 30 наносекунд, а обраний ПЛІС має затримку 9L
Висновок:
Отримав практичні навички роботи із булевою функцією. Вивчив нові відомості про їх мінімізування та моделювання. Зміг її правильно мінімізувати двома способами та перевести у інший базис. А у цьому базисі вже побудував схема у Quartus. Отриману схему прокомпілював. Змоделював за допомогою університетського інструменту візуалізації симуляції Vector Waveform. Отримана симуляція відповідає очікуваним результатам. При наборах 5-8, 10, 12 та 15 в output пін приходить одиниця. Це й є те що я очікував та я отримав потрібний результат, не звертаючи уваги на спочатку труднощі при проектуванні схеми