- •Введение
- •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. Библиографический Список
Цифровая схемотехника
щью карт Карно:
1. Нарисовать карты Карно сразу для всех минимизируемых функ-
ций.
2.Построить накрытия функций, стараясь сделать как можно больше одинаковых прямоугольников, даже если эти накрытия и не будут соответствовать простым импликантам.
3.Записать функции и построить схему, используя для одинаковых конъюнкций общие элементы.
йц у к
&ЙК
1 |
& |
ФВА |
& |
ш(й,ц,у,к) |
|
|
|
||
1 |
|
|
|
|
1 |
& |
ЙУА |
& |
щ(й,ц,у,к) |
|
|
|
||
|
|
|
|
&ФК
Рис. 3.26
3.3.2. Совместная минимизация методом доопределения частично заданных функций
Идея данного метода совместной минимизации нескольких функций алгебры логики заключается в том, чтобы выразить одну функцию через другие функции. Если при этом формула получится проще, то ее можно будет использовать для синтеза схемы. Упроститься функция может потому, что она оказывается частично заданной, поэтому данный метод совместной минимизации и называется метод доопреде-
ления частично заданных функций. Иначе он называется еще методом повторного использования функций в качестве аргументов.
Рассмотрим данный метод на следующем примере: необходимо реализовать комбинационную схему, имеющую три входа и два выхода, которая описывается следующей системой функций:
ш(йцу)ър(0,2,5,7) щ(йцу)ър(0,1,3,6)
Построим карты Карно для функций (рис. 3.27). Видно, что никаких одинаковых прямоугольников нет, и функции запишутся так:
60
Комбинационные схемы
шъфвмйу |
|
|
|
(3.10) |
||
щъфымфумйцв |
|
|
|
|||
йц |
|
|
йц |
|
||
у |
00 |
01 11 |
10 |
у |
00 |
01 11 10 |
0 |
1 |
1 |
|
0 |
1 |
1 |
1 |
|
1 |
1 |
1 |
1 |
1 |
|
|
а) |
|
|
|
б) |
Рис. 3.27
Всего получилось девять операций не считая отрицаний. Для реализации схемы на элементах И-НЕ нужно преобразовать дизъюнкцию в конъюнкцию по закону де Моргана, тогда для схемы понадобится пять 2-входовых элементов И-НЕ и два 3-входовых (не считая инверторов).
Теперь попробуем выразить одну функцию через другую, например, f2 через f1. Это вполне можно сделать, т.к. f1 зависит от тех же аргументов, что и f2 (табл. 3.11), и формально мы можем считать аргументами x1, x2, x3, f1 (отмечены скобкой над табл. 3.11). Функция f2 определена на восьми наборах, но у функции четырех аргументов должно быть шестнадцать наборов. Следовательно, остальные наборы – запрещенные. Определим новую функцию f2*, которая зависит от
четырех аргументов:
щ*ъщ*(й,ц,у,ш),
и совпадает с функцией f2 на всех разрешенных наборах (табл. 3.12). Например, когда x1 = 0, x2 = 0, x3 = 0, функция f1 будет равна 1 (см. табл. 3.11), следовательно набор 0001 – разрешенный (на нем f2* должна быть равна 1), а набор 0000 – запрещенный. Всего будет восемь запрещенных наборов.
Табл. 3.11
N |
x1 |
x2 |
x3 |
f1 |
f2 |
0 |
0 |
0 |
0 |
1 |
1 |
|
|
|
|
|
|
1 |
0 |
0 |
1 |
0 |
1 |
|
|
|
|
|
|
2 |
0 |
1 |
0 |
1 |
0 |
3 |
0 |
1 |
1 |
0 |
1 |
|
|
|
|
|
|
4 |
1 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
5 |
1 |
0 |
1 |
1 |
0 |
|
|
|
|
|
|
6 |
1 |
1 |
0 |
0 |
1 |
|
|
|
|
|
|
7 |
1 |
1 |
1 |
1 |
0 |
|
|
|
|
|
|
61
Цифровая схемотехника
Строим карту Карно для функции f2* (рис. 3.28), делаем прямоугольники накрытия и записываем МДНФ функции:
щ*ъфымцШ
Формула получилась намного проще, поэтому используем ее для синтеза данной комбинационной схемы. Окончательно система функций запишется так:
шъфвмйуъФВчЙУ |
|
|
(3.11) |
|||||
щ*ъфымцшъФЫчцш |
|
|
|
|||||
|
|
|
|
|
|
|
|
Табл. 3.12 |
|
N |
x1 |
x2 |
x3 |
f1 |
f2* |
|
|
|
0 |
0 |
0 |
|
0 |
0 |
* |
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
0 |
|
0 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
2 |
0 |
0 |
|
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
3 |
0 |
0 |
|
1 |
1 |
* |
|
|
|
|
|
|
|
|
|
|
|
4 |
0 |
1 |
|
0 |
0 |
* |
|
|
|
|
|
|
|
|
|
|
|
5 |
0 |
1 |
|
0 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
6 |
0 |
1 |
|
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
7 |
0 |
1 |
|
1 |
1 |
* |
|
|
|
|
|
|
|
|
|
|
|
8 |
1 |
0 |
|
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
9 |
1 |
0 |
|
0 |
1 |
* |
|
|
|
|
|
|
|
|
|
|
|
10 |
1 |
0 |
|
1 |
0 |
* |
|
|
|
|
|
|
|
|
|
|
|
11 |
1 |
0 |
|
1 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
12 |
1 |
1 |
|
0 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
13 |
1 |
1 |
|
0 |
1 |
* |
|
|
|
|
|
|
|
|
|
|
|
14 |
1 |
1 |
|
1 |
0 |
* |
|
|
|
|
|
|
|
|
|
|
|
15 |
1 |
1 |
|
1 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
йц |
|
|
|
|
|
уш |
00 |
01 |
11 |
10 |
|
|
|
|
|
|
|
00 |
* |
* |
1 |
|
|
|
|
|
|
|
|
01 |
1 |
|
* |
* |
|
|
|
|
|
|
|
11 |
* |
* |
|
|
|
|
|
|
|
|
|
10 |
1 |
1 |
* |
* |
щ* |
Рис. 3.28
62
Комбинационные схемы
Используем для синтеза схемы f2* вместо f2 , т.к. на всех разрешенных наборах они совпадают. Всего для схемы (рис. 3.29) нам понадобится шесть 2-входовых элементов И-НЕ (не считая инверторов).
й ц у
|
& |
ЙУ |
ш(й,ц,у) |
|
& |
||
|
|
||
1 |
& |
ФВ |
|
1 |
|
|
|
|
& |
ФЫ |
щ(й,ц,у) |
1 |
|
& |
|
|
|
|
& цш
1
Рис. 3.29
Схема получилась проще, но если бы мы выразили f1 через f2 :
ш*ъш*(й,ц,у,щ)
никакого выигрыша мы бы не получили. В общем случае нужно попробовать выразить каждую функцию через все остальные, или, по крайней мере те, что получились сложными при раздельной минимизации.
Общие правила совместной минимизации функций алгебры логики методом доопределения частично заданных функций можно сформулировать так:
1.Провести раздельную минимизацию функций (3.5), описывающих комбинационную схему.
2.Попробовать выразить каждую функцию через остальные, для чего построить новую систему функций:
ш*ъш*(й,ц,…,еn,щ,з,…,гm) (3.12) щ*ъщ*(й,ц,…,еn,ш,з,…,гm)
. . . . . . . .
гm*ъгm*(й,ц,…,еn,ш,щ,з,…,гm-1)
При этом функции будут частично заданными, т.е. определены на 2n наборах (или меньше, если исходные функции тоже были частично заданные), а на остальных – не определены.
3. Минимизировать полученные функции. Сравнить формулы для функций fi и fi* и выбрать более короткую (для всех i от 1 до m). При этом нельзя допускать зацикливания, чтобы функция не стала опосре-
63