- •39 2.1. Основные понятия двоичной арифметики
- •Глава 3. Основы цифровой схемотехники
- •3.1. Основные понятия двоичной арифметики
- •2.2. Логические функции и операции
- •2.2.1. Расширение понятия логической функции
- •2.2.2. Логические функции одной переменной
- •2.2.3. Логические функции двух, трёх и более переменных
- •2.2.4. Приоритет логических операций
- •2.2.5. Базисы и формы представления логических функций
- •2.2.6. Минимизация логических функций
- •Метод Квайна
- •Метод карт Карно
- •2.3. Логические элементы
- •2.3.1. Определение логических элементов
- •2.3.2. Классификация логических элементов
- •2.3.3. Структура и модели логических элементов
- •2.3.4. Параметры логических элементов
- •Статические параметры лэ
- •Динамические параметры лэ
- •Мощности потребления лэ
- •2.4. Интегральные схемы
- •2.4.1. Классификация интегральных схем
- •§ 12.2. Классификация интегральных схем по характеру их разработки, производства и применения
- •§ 12.3. Области применения ис различных типов
- •2.4.2. Типовые ситуации при построении устройств на ис
- •Режимы неиспользуемых входов
- •Согласование уровней сигналов при сопряжении разнотипных элементов
- •Режимы неиспользуемых элементов
- •Наращивание числа входов
- •Снижение нагрузок на выходах логических элементов
- •Прошлое и настоящее малых и средних интегральных схем
2.2.4. Приоритет логических операций
Кроме
знаков операций, в алгебре Буля применяются
знак “=” (равно) и скобки. Знак “равно”
указывает, конечно, не количественное
равенство, а то, что разделяемые им
символы идентичны, поэтому сигналы
слева от этого знака всюду можно заменить
символами справа от него и наоборот.
Например, если y1 =
,
y2 =
,
y3 =
,
а z
= y1
+
y2
+ y3 ,
то можно записать
z
= y1
+ y2
+ y3
=
+
+
.
Суперпозиция булевых функций может быть записана как математическая формула, которую называют логической формулой.
Скобки, как и в обычной алгебре, применяются для дополнительного указания порядка выполнения (приоритета) операций. Для уменьшения числа скобок используется приоритет операций.
Приоритет (порядок выполнения) логических операций следующий:
Вычисляются значения выражений внутри скобок;
Выполняются отрицания над отдельными переменными (НЕ);
Вычисляются конъюнкции (И, И-НЕ);
Вычисляются дизъюнкции (ИЛИ, ИЛИ-НЕ);
Вычисляются суммы по модулю 2 и функции равнозначности;
Вычисляется импликация.
Заметим, что иногда знак отрицания ставится над целым выражением, не заключённым в скобки; в этом случае отрицание выполняется в последнюю очередь.
Пример 2.2. Логическая формула
,
с учётом правил приоритета может быть записана так:
.
2.2.5. Базисы и формы представления логических функций
Базис (функционально полный набор) – это множество логических функций, суперпозицией которых можно представить любую логическую формулу, т. е. полная система логических функций.
Базисы могут быть избыточными и минимальными. Например, система функций И, Или, НЕ (булев базис, базис Буля) – избыточный базис, так как при удалении из него некоторых функций (функции ИЛИ или функции И) система остаётся полной.
Минимальными базисами являются системы: 1) И, НЕ; 2) ИЛИ, НЕ; 3) И-НЕ (базис Шеффера); 4) ИЛИ-НЕ (базис Пирса). При удалении из таких базисов любой операции они перестают быть полными системами функций.
Одни и те же преобразования логических переменных можно задать в различных формах (базисах). Выбор базиса зависит от простоты реализации той или иной функции с помощью логических операций данной системы функций. Чаще всего используются базисы Шеффера и Пирса, т. к. они содержат только одну операцию, и для реализации сложной схемы нужен только один тип ЛЭ. В развитых сериях стандартных интегральных схем (ИС) наряду с базовыми ЛЭ обычно имеется и ряд других, выполняющих другие логические операции.
В табл. 2.9 приведено несколько полезных свойств булевых функций НЕ, И, ИЛИ, формулы перехода между базисами И-НЕ и ИЛИ-НЕ (законы де Моргана), а также формулы перехода от операций импликация, тождественность и сумма по модулю 2 в базис Буля. Все приведённые соотношения можно легко проверить с помощью их таблиц истинности.
Таблица 2.9
№ |
Формулы булевой алгебры |
Формулы в упрощённой записи |
Название свойства |
1 |
|
|
Коммутативность (перемена мест операндов) |
2 |
|
|
Ассоциативность (последовательность выполнения операций) |
3 |
|
|
Дистрибутивность (раскрытие скобок) |
4 |
|
|
Законы исключённого третьего |
5 |
|
|
Законы тождественных операндов |
6 |
|
|
Законы поглощения |
7 |
|
|
Свойства нуля |
8 |
|
|
Свойства единицы |
9 |
|
|
Свойство двойного отрицания |
10 |
|
|
Законы (формулы) де Моргана |
11 |
|
|
Свойство импликации |
12 |
|
|
Свойства эквивалентности |
13 |
|
|
Свойства сложения по модулю два |
Далее по возможности будем пользоваться упрощёнными обозначениями логических операций.
Докажем некоторые из приведённых свойств:
7.
;
;
12.
;
;
13.
;
.
Введём понятие терма.
Терм – это дизъюнкция или конъюнкция любого числа переменных, взятых с отрицанием или без него. В терм в общем случае не обязательно должны входить все переменные, он даже может состоять только из одной переменной.
Термы, состоящие только из одной переменной, взятой с отрицанием или без него, называются первичными термами.
Ранг терма определяется количеством переменных, входящих в данный терм.
Терм в виде конъюнкции переменных, взятых с отрицанием или без него, называется конъюнктивным термом, конституентой единицы (любой такой терм, принимающий значение 1, автоматически приводит к единичному значению функции) или минтермом (для принятия функцией значения 1 требуется минимальное количество единичных термов, а точнее только один). Под минтермом обычно понимается конъюнктивный терм, содержащий все переменные логической функции.
Терм, являющийся дизъюнкцией логических переменных в прямом или инверсном виде, называется дизъюнктивным термом, конституентой нуля (любой такой терм, принимающий значение 0, автоматически приводит к нулевому значению функции) или макстермом (для принятия функцией значения 1 требуется максимальное количество единичных термов, а точнее всех термов). Под макстермом обычно понимается дизъюнктивный терм, содержащий все переменные логической функции.
Теорема 2.1. Любая логическая функция может быть представлена как суперпозиция только трёх функций: И, ИЛИ и НЕ.
Доказательство данной теоремы основано на лемме о дизъюнктивном разложении.
Лемма. Любая булева функция f (x1 , x2 , …, xm) от m переменных может быть представлена так:
. (2.4)
Действительно, при xi = 0 правая часть этой формулы принимает значение
;
аналогично при xi = 1 правая часть
.
Итак, правая часть формулы (2.4) при всех наборах аргументов совпадает с левой, что доказывает справедливость формулы (2.4).
Разложим функцию f (x1 , x2 , …, xm) последовательно по переменным x1 , x2 , …, xm :
Таким образом, любую булеву функцию можно представить как дизъюнкцию термов, каждый из которых представляет собой конъюнкцию всех переменных (с отрицаниями или без них) и значения этой функции на соответствующем конкретном наборе значений переменных.
Примем
для σ
{0,
1} xσ =
при σ = 0
и xσ = x
при σ = 1.
Тогда окончательная форма представления
любой булевой функции будет иметь вид:
. (2.5)
Поскольку значения функции на каждом конкретном наборе равны либо 0, либо 1, то в формуле (2.5) останутся только такие термы, которые соответствуют наборам переменных, на которых функция равна единице:
. (2.6)
Представление булевой функции в форме дизъюнкции конъюнктивных термов (конституент единицы) Ki
,
, (2.7)
называется дизъюнктивной нормальной формой (ДНФ) этой функции.
Если все конъюнктивные термы в ДНФ являются минтермами, т. е. содержат в точности по одной все логические переменные, взятые с отрицаниями или без них, то такая форма представления функции называется совершенной дизъюнктивной нормальной формой (СДНФ) этой функции. СДНФ называется совершенной, потому что каждый терм в дизъюнкции включает все переменные; дизъюнктивной, потому что главная операция в формуле – дизъюнкция. Понятие “нормальной формы” означает однозначный способ записи формулы, реализующей заданную функцию.
С учётом сказанного выше из теоремы 2.1 вытекает следующая теорема.
Теорема 2.2. Любая булева функция (не равная тождественно 0) может быть представлена в СДНФ, причём такое представление единственно.
Пример 2.3. Пусть имеем таблично заданную функцию f (x1 , x2 , x3) (табл. 2.10).
Таблица 2.10
x1 |
x2 |
x3 |
f (x1 , x2 , x3) |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
На основании формулы (2.6) получаем:
.
Как видно, при составлении СДНФ функции нужно составить дизъюнкцию всех минтермов, при которых функция принимает значение 1.
Представление булевой функции в форме конъюнкции дизъюнктивных термов (конституент нуля) Di
,
, (2.8)
называется конъюнктивной нормальной формой (КНФ) этой функции.
Если все дизъюнктивные термы КНФ являются макстермами, т. е. содержат в точности по одной все логические переменные функции, взятые с отрицаниями или без них, то такая КНФ называется совершенной конъюнктивной нормальной формой (СКНФ) этой функции.
Теорема 2.3. Любая булева функция (не равная тождественно 1) может быть представлена в СКНФ, причём такое представление единственно.
Доказательство теоремы может быть проведено аналогично доказательству теоремы 2.1 на основании следующей леммы Шеннона о конъюнктивном разложении.
Лемма Шеннона. Любая булева функция f (x1 , x2 , …, xm) от m переменных может быть представлена так:
.
(2.9)
Нужно отметить, что обе формы представления логической функции (ДНФ и КНФ) теоретически являются равными по своим возможностям: любую логическую формулу можно представить как в ДНФ (кроме тождественного нуля), так и в КНФ (кроме тождественной единицы). В зависимости от ситуации представление функции в той или иной форме может быть короче.
На практике же чаще всего используется ДНФ, т. к. эта форма является для человека более привычной: с детства ему привычнее складывать произведения, чем умножать суммы (в последнем случае у него интуитивно появляется желание раскрыть скобки и перейти тем самым к ДНФ).
Пример 2.4. Для функции f (x1 , x2 , x3), заданной табл. 2.10, написать её СКНФ.
В отличие от СДНФ, при составлении СКНФ в таблице истинности логической функции нужно смотреть комбинации переменных, при которых функция принимает значение 0, и составить конъюнкцию соответствующих макстермов, но переменные нужно брать с обратной инверсией:
.
Нужно отметить, что непосредственно перейти от СДНФ функции к её СКНФ или наоборот невозможно. При попытке таких преобразований получаются функции, обратные по отношению к желаемым. Выражения для СДНФ и СКНФ функции непосредственно можно получить только из её таблицы истинности.
Пример 2.5. Для функции f (x1 , x2 , x3), заданной табл. 2.10, попробовать перейти от СДНФ к СКНФ.
Используя результат примера 2.3 получим:
Как видно, под общей инверсией получилась СКНФ логической функции, которая является обратной по отношению к функции, полученной в примере 2.4:
,
т. к. содержит все макстермы, которых нет в выражении для СКНФ рассматриваемой функции.
Далее приведём систематическую процедуру (алгоритм) преобразования аналитической записи функции в нормальную форму с использованием свойств булевых функций.
1.
Используя свойства операций (см. табл.
2.9) тождественность (
),
сумма по модулю 2 (
),
импликация (
),
переходим к операциям И, ИЛИ, НЕ (в базис
Буля).
2. Используя свойства отрицания и законы де Моргана (см. табл. 2.9) добиваемся, чтобы операции отрицания относились только к отдельным переменным, а не к целым выражениям.
3. Используя свойства логических операций И и ИЛИ (см. табл. 2.9), получаем нормальную форму (ДНФ или КНФ).
4.
При необходимости переходим к совершенным
формам (СДНФ или СКНФ). Например, для
получения СКНФ часто нужно использовать
свойство:
.
Пример 2.6. Преобразовать в СКНФ логическую функцию
.
Выполняя по порядку шаги приведённого выше алгоритма, получим:
Используя свойство поглощения, получим:
.
Таким образом, мы получили КНФ функции f (x1 , x2 , x3). Чтобы получить её СКНФ, нужно каждую дизъюнкцию, в которой не хватает какой-либо переменной, повторить дважды – с этой переменной и с её отрицанием:
.
