- •Введение
- •1. Основы алгебры логики
- •1.1. Задание функций алгебры логики
- •1.2. Операции алгебры логики
- •1.2.1. Операция отрицание
- •1.2.3. Операция конъюнкция
- •1.2.4. Операция стрелка Пирса
- •1.2.5. Операция штрих Шеффера
- •1.2.6. Операция исключающее ИЛИ
- •1.2.7. Операция сложение по модулю два
- •1.2.8. Операция эквиваленция
- •1.2.9. Операция импликация
- •1.2.10. Операция запрет
- •1.2.11. Другие операции
- •1.3. Функционально полные системы
- •1.4. Свойства операций алгебры логики
- •1.4.1. Свойства операции отрицание
- •1.4.2. Свойства операций конъюнкция и дизъюнкция
- •1.4.3. Свойства операций штрих Шеффера и стрелка Пирса
- •1.4.4. Свойства остальных операций
- •1.5. Аналитическая запись функций алгебры логики
- •1.5.1. Дизъюнктивные нормальные формы
- •1.5.2. Конъюнктивные нормальные формы
- •1.6. Частично заданные функции
- •1.7. Упражнения
- •2. Логические элементы
- •3. МИНИМИЗАЦИЯ ФУНКЦИЙ АЛГЕБРЫ ЛОГИКИ
- •3.1. Метод Квайна
- •3.1.1. Алгоритм метода Квайна
- •3.1.2. Модернизация Мак-Класки метода Квайна
- •3.1.3. Модернизация Нельсона метода Квайна
- •3.1.4. Минимизация частично заданных функций методом Квайна
- •3.1.5. Упражнения
- •3.2. Метод карт Карно
- •3.2.1. Построение карт Карно
- •3.2.2. Минимизация с помощью карт Карно
- •3.2.3. Минимизация частично заданных функций картами Карно
- •3.2.4. Нахождение МКНФ
- •3.2.5. Упражнения
- •3.3. Совместная минимизация функций алгебры логики
- •3.3.1. Совместная минимизация методом общих простых импликант
- •3.3.2. Совместная минимизация методом доопределения частично заданных функций
- •3.3.3. Упражнения
- •4. Комбинационные схемы
- •4.1. Преобразователи кодов
- •4.1.1. Синтез преобразователей кодов
- •4.1.2. Схемы управления 7-сегментными индикаторами
- •4.1.3. Упражнения
- •4.2. Дешифраторы и шифраторы
- •4.2.1. Схемотехника построения дешифраторов
- •4.2.2. Схемотехника построения шифраторов
- •4.2.3. Применение дешифраторов и шифраторов
- •4.2.4. Упражнения
- •4.3. Мультиплексоры и демультиплексоры
- •4.3.1. Мультиплексоры
- •4.3.2. Синтез функций на мультиплексорах
- •4.3.3. Демультиплексоры
- •4.3.4. Упражнения
- •4.4. Сумматоры и схемы сравнения
- •4.4.1. Сумматоры
- •4.4.2. Схемы сравнения
- •4.4.3. Упражнения
- •5. Экспериментальная часть
- •5.1. Синтез и анализ схем с помощью лабораторного макета
- •5.1.1. Описание макета
- •5.1.2. Порядок синтеза и анализа схем
- •5.2. Синтез и анализ цифровых схем в Micro-Cap
- •5.2.1. Описание программы Micro-Cap
- •5.2.2. Синтез схем с помощью Micro-Cap
- •5.2.3. Анализ цифровых схем с помощью Micro-Cap
- •5.2.4. Порядок выполнения работы в Micro-Cap
- •5.3. Примерные задания лабораторных работ
- •6. Библиографический Список
Комбинационные схемы
ним объединяемые прямоугольники дугой. МДНФ данной функции будет выглядеть так:
г(й,ц,у,к,е5)ъфцае5мйыае5мук
У функции 6 аргументов соседние прямоугольники могут быть в соседних квадратных картах (если расположены в них на одном и том же месте). У функции, карта Карно которой приведена на рис. 3.17, три прямоугольника накрытия: первый – «разорванный» – накрывает четыре клетки в верхней левой квадратной карте, второй – получается объединением двух прямоугольников в двух правых квадратных картах, третий – объединяет четыре соседних прямоугольника по две клетки из всех четырех квадратных карт.
г(й,ц,у,к,е5,е6)ъфыае5мйвае5мвке6
ук |
|
|
|
|
|
|
|
|
е5е6 |
00 |
01 |
11 |
10 |
00 |
01 |
11 |
10 |
|
||||||||
00 |
|
|
|
|
|
|
|
|
01 |
|
1 |
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
ц=0 |
11 |
1 |
1 |
|
1 |
1 |
1 |
|
|
10 |
1 |
|
|
1 |
1 |
|
|
|
00 |
|
|
|
|
|
|
|
|
01 |
|
1 |
|
|
|
1 |
|
|
11 |
|
1 |
|
|
1 |
1 |
|
ц=1 |
|
|
|
|
|
||||
10 |
|
|
|
|
1 |
|
|
|
|
|
й=0 |
|
|
й=1 |
|
Рис. 3.17
3.2.3. Минимизация частично заданных функций картами Карно
С помощью карт Карно можно минимизировать и частично заданные функции. Особенность заключается в том, что на карте присутствуют клетки, соответствующие запрещенным наборам и обозначенные символом *. Значение функции на этих наборах не задано (т.е. может быть любым). Это означает, что данные клетки можно включать в прямоугольник накрытия (если это выгодно, т.е. прямоугольник получается большего размера) или не включать.
51
Цифровая схемотехника
Например, если для функции четырех аргументов
г(й,ц,у,к)ър(0,2,5,7,8)ь(10,11,12,13,14,15)
на всех запрещенных наборах поставить 0, то в прямоугольники необходимо включить только клетки с единичным значением (рис. 3.18а). Получается три прямоугольника накрытия, и функция будет записана так:
г(й,ц,у,к)ъфцкмфыамыва
Если на всех запрещенных наборах поставить 1, то в прямоугольники придется включить все непустые клетки (рис. 3.18б). Получается четыре прямоугольника накрытия, и функция будет записана так:
г(й,ц,у,к)ъцкмыамйцмйу
йц |
|
|
|
йц |
|
|
|
||
ук |
00 |
01 |
11 |
10 |
ук |
00 |
01 |
11 |
10 |
00 |
1 |
|
* |
1 |
00 |
1 |
|
* |
1 |
01 |
|
1 |
* |
|
01 |
|
1 |
* |
|
11 |
|
1 |
* |
* |
11 |
|
1 |
* |
* |
10 |
1 |
|
* |
* |
10 |
1 |
|
* |
* |
|
|
а) |
|
|
|
|
б) |
|
|
йц |
|
|
|
йц |
|
|
|
||
ук |
00 |
01 |
11 |
10 |
ук |
00 |
01 |
11 |
10 |
00 |
1 |
|
* |
1 |
00 |
1 |
|
* |
1 |
01 |
|
1 |
* |
|
01 |
|
1 |
* |
|
11 |
|
1 |
* |
* |
11 |
|
1 |
* |
* |
10 |
1 |
|
* |
* |
10 |
1 |
|
* |
* |
|
|
в) |
|
|
|
|
г) |
|
|
|
|
|
|
|
Рис. 3.18 |
|
|
|
|
Прямоугольники получились большего размера, но их число увеличилось. Но два из них (показанные отдельно на рис. 3.18.в) явно лишние, так как не включают единиц совсем, т.е. их можно убрать, а в оптимальном накрытии оставить только такие прямоугольники, которые содержат хотя бы одну клетку с единичным значением, не входящую ни в какой другой прямоугольник. Оптимальное накрытие будет
52
Комбинационные схемы
содержать лишь два прямоугольника (рис. 3.18г), которому соответствует функция
г(й,ц,у,к)ъцкмыа
Это и будет МДНФ частично заданной функции.
Можно сформулировать общие правила минимизации частично заданных функций с помощью карт Карно:
1.Все клетки с единичным значением должны быть накрыты прямоугольниками.
2.Клетки с нулевым значением не должны входить в прямоуголь-
ники .
3.Клетки, соответствующие запрещенным наборам (обозначенные на картах Карно *), могут входить или не входить в прямоугольник накрытия.
4.Число клеток в прямоугольнике должно быть кратным 2k, где k = 0, 1, 2, …
5.Прямоугольники могут перекрываться.
6.Прямоугольники могут быть «разорванными».
7.Выгоднее строить прямоугольники большего размера.
8.В каждом прямоугольнике должна быть хотя бы одна клетка с единичным значением, не входящая ни в какой другой прямоугольник.
9.МДНФ находится путем анализа различных вариантов накрытий
ивыбора среди них такого варианта, в котором все единицы карты Карно накрыты наименьшим числом самых больших прямоугольников.
10.Чтобы аналитически записать МДНФ функции, необходимо для каждого прямоугольника записать соответствующую ему конъюнкцию и объединить их знаками дизъюнкции.
3.2.4. Нахождение МКНФ
Для нахождения МКНФ можно разработать методы, аналогичные тем, что используются для нахождения МДНФ. Но проще использовать следующий алгоритм:
1. Найти и записать МДНФ инверсной функции (т.е. функции, которая равна 1 на тех наборах, на которых исходная функция равна 0 и наоборот).
2. Перенести знак отрицания из левой части записанной равносильности в правую.
3. Преобразовать функцию по закону де Моргана (1.23, 1.24), получив в результате конъюнкцию элементарных дизъюнкций. Это и будет МКНФ.
Пример:
Дана функция четырех аргументов:
г(й,ц,у,к)ър(0,1,4,5,7,8,10,12,14,15)
53
Цифровая схемотехника
Наносим функцию на карту Карно (рис. 3.19а). Составляем карту Карно для инверсной функции (рис. 3.19б). Накрываем клетки прямоугольниками и записываем МДНФ функции:
Гъйвкмыукмфуа
йц |
|
|
|
йц |
|
|
|
||
ук |
00 |
01 |
11 |
10 |
ук |
00 |
01 11 |
10 |
|
|
|
|
|
||||||
00 |
1 |
1 |
1 |
1 |
00 |
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
01 |
1 |
1 |
|
|
|
|
|
|
|
|
|
01 |
|
|
1 |
1 |
|||
|
|
|
|
|
|
|
|||
11 |
|
1 |
1 |
|
|
|
|
|
|
|
|
11 |
1 |
|
|
1 |
|||
|
|
|
|
|
|
|
|||
10 |
|
|
1 |
1 |
|
|
|
|
|
|
|
10 |
1 |
1 |
|
|
|||
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
а) |
|
|
|
|
б) |
|
Рис. 3.19
Переносим знак отрицания из левой части в правую и преобразуем формулу по закону де Моргана:
гъЙВКМЫУКМФУАъ
ъЙВКсЫУКсФУАъ
ъ(фмума)с(цмвма)с(ймвмк)
Это МКНФ заданной функции.
Строить вторую карту, конечно же, необязательно, можно просто накрывать пустые клетки. Можно сформулировать и алгоритм записи элементарных дизъюнкций для таких прямоугольников (это предлагается сделать самостоятельно).
Аналогично можно найти и МКНФ частично заданной функции, нужно только помнить, что в прямоугольники, накрывающие пустые клетки, можно включать и клетки, соответствующие запрещенным наборам (если при этом сами прямоугольники становятся больше, а их число не увеличивается).
3.2.5. Упражнения
1. Минимизировать функцию четырех аргументов с помощью карты Карно:
г(йцук)ър(0,2,3,4,5,6,7,10,11,13,15)
2. Минимизировать функцию пяти аргументов с помощью карты Карно:
54