Робота з логічними функціями
Робота з логічними функціями
Приватний вищий навчальний заклад „Галицька Академія” Кафедра комп'ютерної та програмної інженерії КУРСОВА РОБОТА з дисципліни “Прикладна теорія цифрових автоматів” Тема Робота з логічними функціями Студент групи КІ-09-1 Січко С.С. м. Івано-Франківськ 2010 Завдання на курсову роботу 1. Аналітично зобразити логічні функції із даної таблиці істиності у вигляді досконалої диз'юнктивної нормальної функції і досконалої кон'юнктивної нормальної функції. Представлені функції, у вигляді логічних рівнянь, мінімізувати за допомогою законів алгебри логіки, наступним, за мінімізацією кроком, для спрощення логічної формули є зменшення кількості булевих функцій, з яких складаються формули. Синтезувати схеми із базисів І-НЕ, ЧИ-НЕ. 2. Термін здачі студентом закінченого проекту- 3. Зміст пояснювальної записки : опис способів визначення ДДНФ і ДКНФ; логічні рівняння ДДНФ і ДКНФ; спосіби мінімізації логічних функцій; мінімізовані за допомогою алгебри логіки логічні рівняння; застосування елементів для синтезу схем; синтезовані схеми із базисів І-НЕ, ЧИ-НЕ; Способи утворення ДДНФ ДДНФ - запис логічної функції у вигляді диз'юнкції кон'юнкцій (суми добутків), для яких логічна функція дорівнює одиниці. Алгоритм складання ДДНФ: 1) скласти кон'юнкції логічних змінних для стовпців таблиці істиності, де логічна функція дорівнює 1, логічна змінна входить до кон'юнкції інвертованою, якщо її значення в даному стовпці дорівнює 0; 2) скласти диз'юнкцію одержаних кон'юнкцій. Наприклад, досконала диз'юнктивна нормальна форма логічної функції, таблиця істиності якої наведена в таблиці 1, виглядає наступним чином: f=x1 x2 x3 x4 x1 x2 x3 x4 x1 x2 x3 x4 Таблиця 1 |
№ стовпця | х1 | х2 | х3 | х4 | Y | | 1 | 0 | 1 | 1 | 0 | 0 | | 2 | 0 | 1 | 1 | 0 | 0 | | 3 | 1 | 0 | 0 | 0 | 1 | | 4 | 1 | 1 | 0 | 0 | 1 | | 5 | 1 | 1 | 1 | 1 | 1 | | 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 | | 0 | 0 | 1 | 1 | 0 | 1 | | 0 | 0 | 1 | 1 | 1 | 1 | | 0 | 1 | 0 | 0 | 0 | 0 | | 0 | 1 | 0 | 0 | 1 | 1 | | 0 | 1 | 0 | 1 | 0 | 1 | | 0 | 1 | 0 | 1 | 1 | 1 | | 0 | 1 | 1 | 0 | 0 | 0 | | 0 | 1 | 1 | 0 | 1 | 1 | | 0 | 1 | 1 | 1 | 0 | 1 | | 0 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | | 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 | 1 | | 1 | 0 | 1 | 1 | 0 | 1 | | 1 | 0 | 1 | 1 | 1 | 1 | | 1 | 1 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 0 | 1 | 1 | | 1 | 1 | 0 | 1 | 0 | 1 | | 1 | 1 | 0 | 1 | 1 | 1 | | 1 | 1 | 1 | 0 | 0 | 0 | | 1 | 1 | 1 | 0 | 1 | 1 | | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 1 | 1 | 1 | 1 | 1 | | |
Завдання ДДНФ аналітичним способом: Способи утворення ДКНФ ДКНФ - запис логічної функції у вигляді кон'юнкції диз'юнкцій (добуткок сум), для яких логічна функція дорівнює нулю. Алгоритм складання ДКНФ: 1) скласти диз'юнкції логічних змінних для стовпців таблиці істиності, де логічна функція дорівнює 0, логічна змінна входить до кон'юнкції інвертованою, якщо її значення в даному стовпці дорівнює 1; 2) скласти кон'юнкцію одержаних диз'юнкцій. Наприклад, досконала кон'юнктивна нормальна форма логічної функції, таблиця істиності якої наведена в таблиці 1, виглядає наступним чином: f=x1x1x2x1x3x1x4x2x1x2x2x3x2x4x3x1x3x2x3x4x4x1x4x2 x4x3x4 Таблиця 1 |
№ стовпця | х1 | х2 | х3 | х4 | Y | | 1 | 0 | 1 | 1 | 0 | 0 | | 2 | 0 | 1 | 1 | 0 | 0 | | 3 | 1 | 0 | 0 | 0 | 1 | | 4 | 1 | 1 | 0 | 0 | 1 | | 5 | 1 | 1 | 1 | 1 | 1 | | |
Завдання ДКНФ аналітичним способом: ( (((( (((( (((( Мінімізація рівняння ДДНФ на основі законів алгебри логіки Аналітичний спосіб представлення логічної функції є основним для проведення логічних перетворень, кінцевою метою яких є спрощення логічної формули для побудови логічної схеми мінімальної конфігурації. Першим кроком спорщення логічної функції є мінімізація - зменшення кількості кон'юнкцій тадиз'юнкцій, що входять до складу логічної формули, а також кількості змінних, що входять до складу окремих кон'юнкцій тадиз'юнкцій. Мінімізація досягається за допомогою законів булевої алгебри. Існує декілька законів: 1. Аналітичний. 2. Графічний. Закони алгебри логіки Найпростішим методом мінімізації є послідовне вилучення булевих змінних на основі законів алгебри логіки, що наведені нижче: 1. Комутативності: X?Y=Y?X, X?Y=Y?X; 2. Асоціативності: X?(Y?Z)=(X?Y)?Z, X? (Y?Z)=(X?Y)? Z; 3. Дистрибутивності: X? (Y?Z) =(X?Y)?(X?Z), X? (Y?Z) =(X?Y)? (X?Z); 4. Операції з константами: =1,, X?1=X, X?1=1, X?0=0, X?0=X; 5. Операції з інверсією: ?X=0, 1=X?; 6. Подвійна інверсія: X= 7. Закон ідемпотентності X?X?X…?X=X, X?X?X…?X=X; 8. Правила де Моргана 9. Закони склеювання 10. Закони поглинання X?X?Y=X, X?(X?Y)=X; 11. Наслідок із законів 3-5 Мінімізація рівняння ДДНФ = Мінімізація рівняння ДКНФ на основі законів алгебри логіки ((( (((( ((((=)( Поняття базису логічних функцій. Переведення логічного рівняння до базису “і-не” Наступним за мінімізацією кроком для спрощення логічної формули є зменшення кількості булевих функцій, з яких складається формула, тобто переведення логічного виразу до певного логічного базису. Логічний базис - набір з декількох логічних функцій, суперпозицією яких може бути представлена будь-яка інша логічна функція. Приклади базисів: 1) І,ЧИ,НЕ; 2) І,НЕ; 3) ЧИ,НЕ; 4) І-НЕ; 5) ЧИ-НЕ; 6) ВИНЯТКОВЕ І,ЧИ,НЕ. Базис 1 є надлишково повним(за допомогою правил де Моргана він перетворюється до базисів 2 або 3, але найбільш прийнятим для переведення логічних перетворень. Базаси 4 та 5 є найбільш широко вживаними в цифровій техніці, що обумовлено наявністю в базисах тільки однієї функції, а також максимальною простотою технічної реалізації елементів І-НЕ, ЧИ-НЕ. Базис 6, основою якого є функція ВИНЯТКОВЕ ЧИ, розглянутий в алгебрі Жегалкіна. Переведення логічного рівняння до базису “і-не” Для переведення в базис І-НЕ застосуємо мінімізовану ДДНФ: f= За допомогою правил де Моргана позбавимось логічної функції ЧИ : f= Проаналізувавши одежаний вираз, бачимо, що він вже є реалізованим в базисі І-НЕ: спочатку функція І-НЕ перемножує інвертовані змінні та , далі одержаний результат перемноження змінних і перемножується знову функцією І-НЕ із виразом . Залишається перетворити до функції І-НЕ тільки одномістну функцію НЕ. Для цього можна використати перший закон ідемпотентності: f= Переведення логічного рівняння до базису “чи-не” Для переведення в базис ЧИ-НЕ застосуємо мінімізовану ДКНФ: f= За допомогою правил де Моргана позбавимось логічної функції І: f= Визначимо, що змінні та в одержаному виразі логічно додаються функцією ЧИ-НЕ, а ось змінна додається до них функцією ЧИ, яка також має бути перетворена. Перетворення функції ЧИ до функції ЧИ-НЕ здійснюється за допомогою операції подвійної інверсії: f= після чого використаємо шосту операцію з константами: f= Синтез логічних схем Складання аналітичного виразу булевої функції, його мінімізація і переведення до певного базису є основною для побудови відповідної логічної схеми, тобто синтезу логічної схеми. Таким чином, синтез логічної схеми є кінцевим етапом наступног ланцюжка: 1) Складання таблиці істиності логічної схеми згідно із функціональним призначенням схеми; 2) Запис аналітичного виразу, що відповідає таблиці істиності, тобто логічного рівняння в базисі І, ЧИ, НЕ; 3) Мінімізація логічного рівняння в базисі І, ЧИ, НЕ; 4) Перетворення логічного рівняння до базису І-НЕ або ЧИ-НЕ 5) Синтез логічної схеми. Синтез логічних схем здійснюється шляхом відповідного з'єднання входів та виходів логічних елементів, які реалізують булеві функції і позначають наступним чином: Для синтезу логічних схем в базисах І-НЕ, ЧИ-НЕ необхідно на базі відповідних елементів реалізувати інвертори, що здійснюється за допомогою законів алгебри логіки одним із двох шляхів (Мал. 1): 1) Об'єднання входів логічних елементів; 2) Підключення до одного з входів логічної 1 (для елементів І-НЕ) або логічного 0 (для елементів ЧИ-НЕ) Мал.1 Утворення інверторів з елементів І-НЕ, ЧИ-НЕ. Синтез логіної схеми в базисі І-НЕ: Синтез логіної схеми в базисі ЧИ-НЕ: Перелік використаних літературних джерел 1. Глушаков С.В., Коваль А.В., Смирнов С.В. Язык программирования С++. - Х.: Фолио,2002. 2. Прата С. Язык программирования С++. - М .- СПб.- К. : Diasoft, 2003. 3. Кораблев В. С и С++. - К.: BHV, 2002. 4. Спірідонов В.І., Войтков В.Г., Обчислювальна техніка і програмування. - Хмельницький: ХТІб 1992. 5. Єжова Л.Ф. Алгоритмізація і програмування процедур обробки інформації. - К.: КНАУ, 2000. 6. Г. Шилдт. Самоучитель C++: Пер. с англ. - Санкт-Петербург: BHV-Санкт-Петербург, 1998. 620с. 7. К. Джамса. Учимся программировать на языке C++: Пер. с англ. - Москва: Мир, 1997. 320с.
|