
- •Как выполнить операции над сигналами?
- •Как обработать информацию?
- •Как записать функцию, описывающую закон функционирования какого-то устройства?
- •1.2. Элементарные логические функции
- •Элементарные логические функции одного аргумента
- •Логические функции двух аргументов
- •1.3. Функционально полные системы логических функций (базис)
- •1.4. Основные законы и эквивалентности для логических операций
- •1.5. Канонические формы представления логических функций
- •Пример.
- •1.6. Эквивалентные преобразования логических функций
- •Пример.
- •1.7. Аналитический метод минимизации логических функций
- •Приведем пример минимизации ноф
- •1.8. Графический метод минимизации логической функции
- •А) Минимизация не полностью определенных функций
- •Б) Минимизация совокупности функций.
Пример.
f
(X1,
X2)
= X12
+
1X2
=
=
=
=
=
1
2
= (
1
+
2)
(X1
+ X2).
Использование СДНФ и СКНФ зависит от того, на каких наборах функция принимает большее количество значений 1 и 0, соответственно используется первое либо второе правило.
1.6. Эквивалентные преобразования логических функций
Исходными предпосылками для проведения эквивалентных преобразований двоичных функций является то, что та или иная функция реализует требуемую операцию, однако число элементов, из которых составлена схема, может быть не минимальным. Поэтому возникает задача путем эквивалентных преобразований исходной функции найти для нее такое выражение, при котором число элементов схемы, реализующей заданную функцию, было бы наименьшим. Эту задачу принято называть минимизацией логической функции. Приемы минимизации разрабатываются применительно к каждой отдельной функционально-полной системе элементарных логических функций. Наиболее полно такие приемы разработаны для случая, когда функционально-полная система элементарных логических функций состоит из дизъюнкции, конъюнкции и инверсии.
В этом случае задача минимизации логической функции сводится к нахождению такой ее формы, которая содержит наименьшее число элементарных логических функций - дизъюнкций, конъюнкций и инверсий. Рассмотрим задачу преобразования заданной логической функции в ДНФ и КНФ, каждая из которых содержит наименьшее возможное число букв (переменных или отрицаний). Нахождение минимального представления функции в виде ДНФ или КНФ связано с решением двух основных задач. Во-первых, это определение конъюнкций (дизъюнкций), входящих в ДНФ (КНФ), каждая из которых содержит минимальное число букв. Во-вторых, определение ДНФ (КНФ), содержащей минимальное число различных элементарных конъюнкций (дизъюнкций).
В настоящее время нет общего алгоритма минимизации, приводящего к минимальным формам логических функций, поэтому существуют лишь отдельные приемы, обеспечивающие более или менее быстрое нахождение минимальных форм:
метод непосредственных преобразований (применение законов алгебры логики);
метод Квайна (аналитический метод минимизации логических функций);
метод диаграмм Фейча (карт Карно), графический метод минимизации логических функций).
Все методы основаны на тождественных преобразованиях логических функций.
Поиск минимальных форм путем последовательного применения формул алгебры логики приводит к успеху только в простейших случаях, когда по виду логической функции ясна цепочка преобразований.
Пример.
F
= XZ
+
YZ
+ X.
Эту функцию можно сразу упростить, вынеся сначала за скобки Х, а затем, использовав правило свертки, получим:
F*
= X (1 +
Z)
+
YZ
= X +
YZ
= X + YZ.
Функция F* является минимальной формой функции F.
Исходная
функция содержит пять букв (X,,Z,
,Y),
а минимальная - только три (X,Y,Z).
Схемы,
реализующие функции F и F*, изображены
соответственно на рис. 1.25 а, б.
Рисунок 1.25 - Комбинационные схемы
Для реализации исходной функции требуются два элемента НЕ, два элемента И, один элемент ИЛИ; для минимальной формы - один элемент И и один элемент ИЛИ.
Например. Дана функция
F
= XYZ
+
Y
+ X
+
Z
+
.
Эту функцию минимизировать гораздо сложнее, чем в предыдущем примере, т.к. здесь труднее выбрать необходимые преобразования и определить их последовательность.
Минимизация переключательных функций может быть проведена аналитическим методом на основе СДНФ или СКНФ, либо с помощью минимизирующих карт.
Точное решение задачи минимизации предполагает нахождение минимальной ДНФ (КНФ) логической функции. Решение этой задачи включает следующие этапы:
представление переключательных функций в СДНФ или СКНФ;
получение сокращенной дизъюнктивной (конъюнктивной) нормальной формы (т.е. определение всех простых импликант (имплицент);
нахождение всех возможных тупиковых дизъюнктивных (конъюнктивных) нормальных форм;
выбор из полученных тупиковых форм минимальных дизъюнктивных (конъюнктивных) нормальных форм переключательных функций.
Переход к СДНФ или СКНФ от таблиц истинности или от числовой суммы и числового произведения уже рассматривался.
Иногда возникает необходимость перехода к каноническим формам и при задании функции в произвольной аналитической форме.
Пусть задана функция в нормальной форме
f
(X,
Y,
Z)
= X
+ Y
+ XY
+ Z
.
Здесь необходимо применить правило развертывания элементарных конъюнкции в конституенты единицы. Для этого каждый дизъюнктивный член следует умножить на константу 1, образованную дизъюнкцией недостающего в данной элементарной конъюнкции аргумента и его отрицания
f
(X, Y, Z) = X
(Z +
)
+ Y
(X +
)
+ XYZ + Z (X +
)
(Y +
).
Раскрывая скобки, получим
f
(X, Y, Z) = XZ
+ X
+ XY
+
Y
+ XYZ +
+
XYZ + XZ
+
YZ
+
Z.
Применяя операцию поглощения к отмеченным подобным членам перейдем к совершенной дизъюнктивной нормальной форме
f
(X, Y, Z) = XZ
+ X
+ XY
+
Y
+ XYZ +
YZ
+
Z.
Переход от произвольной нормальной конъюнктивной формы переключательной функции к ее СКНФ осуществляется подобным же образом. Только в этом случае к каждому конъюнктивному числу необходимо логически прибавить конъюнкцию недостающего аргумента и его отрицания, равную нулю (константу 0), а затем применить распределительный закон.
Сокращенной дизъюнктивной нормальной формой называется дизъюнкция всех простых импликант данной функции. Следовательно, отыскание сокращенной ДНФ функции является проблемой отыскания всех ее простых импликант.
Импликантой функции F называется функция I, которая может принимать значение единицы лишь на тех наборах, на которых принимает значение единицы функция F. В свою очередь, функция F называется имплицентой функции I.
Пример. Пусть
дана функция F = XYZ + XY
+
.
В соответствии с определением импликантной функцией F может быть любая ее конъюнкция или несколько конъюнкций:
I1
= X Y Z; I4
= XYZ + X Y;
I2
= X Y; I5
= XYZ +
;
I3
=
; I6
= XY
+
;
I7
= F
= XYZ
+ XY
+
.
Функции Ii накрывают своими единицами одну или несколько единиц функции F.
Очевидно, что если найти такие импликанты (I1, I2, ..., Ik), которые накрывают своими единицами все единицы функции F, то дизъюнкция таких импликант будет функцией, эквивалентной F
F = I1 + I2 + ... + Ik.
Однако, полученная таким образом функция может оказаться не проще исходной. Чтобы получить функцию проще исходной, нужно ее сформировать как дизъюнкцию простых импликант.
Простыми импликантами являются сокращенные конъюнкции, которые не могут быть больше сжаты путем объединения с другими сокращенными конъюнкциями.
Простой называется такая импликанта, у которой никакая ее часть не является импликантой данной функции.
Проверим, является ли в нашем примере простой импликанта I = XYZ. Если I сложная импликанта, то импликантами F могут быть функции:
I1 = X; I4 = XY;
I2 = Y; I5 = XZ;
I3 = Z; I6 = YZ.
Покажем, что I не является импликантой функции F.
Действительно,
I1
= X = X (Y +)
(Z + Z) = XY
+ X
Z
+ X
.
Из полученного выражения видно, что функция I1 на наборах 101 и 100 принимает значение равное 1, тогда как исходная функция F на этих наборах равна 0. Аналогичным образом доказывается, что не являются импликантами функции I3, I2, I5, I6 , а функция I4 = XY является импликантой функции F. В этом можно убедиться, представив ее в СДНФ
I14
= XY = XY (Z +)
= XYZ + XY
= I1
+ I2.
Одновременно
импликанта XY является простой. Таким
образом, простая импликанта I4
= XY накрывает своими единицами две
единицы функции F {XYZ, XY}.
Нетрудно
убедиться, что импликанта I3
=
также является простой. Очевидно, что
простые импликанты XY и
накрывают своими единицами все единицы
функции F, поэтому функцией, эквивалентной
F, будет дизъюнкция простых импликант
F
= XY +
.
Отыскание всех простых импликант переключательной функции может быть сделано методом Квайна, который основывается на использовании операции склеивания и поглощения.
Дизъюнкция (конъюнкция) простых импликант (имплицент), ни одна из которых не является лишней, называется ее тупиковой дизъюнктивной (конъюнктивной) нормальной формой - ТДНФ (ТКНФ).
Логическая функция может быть представлена одной или несколькими ТДНФ и ТКНФ.
ТДНФ (ТКНФ) логической функции, содержащая наименьшее возможное число букв (переменных и их отрицаний), называется минимальной дизъюнктивной (конъюнктивной) нормальной формой - МДНФ (МКНФ).
При решении практических задач синтеза дискретных устройств широко используются не полностью определенные логические функции (НОФ). Так как не полностью определенной логической. функции соответствует совокупность полностью определенных функций, то их тупиковые и минимальные нормальные формы могут существенно отличаться друг от друга по количеству букв. Особенностью минимизации не полностью определенной функции является то, что необходимо найти такое ее доопределение на условных наборах, которое соответствует минимальной форме, содержащей наименьшее число букв. Другими словами, при решении задачи минимизации не полностью определенной функции, условные наборы должны быть использованы для получения наиболее простой записи функции в заданной ФПС элементарных логических функций.
Пусть f(X1, X2,..., Xn) - не полностью определенная функция, имеющая К условных наборов. Тогда путем доопределения значений не полностью определенной функции на условных наборах можно получить 2к полностью определенных функций, рабочие и запрещенные наборы которых совпадают. Выделим из этого множества две функции f1 (X1, X2,..., Xn) и f0 (X1, X2,..., Xn), которые получаются из функции f (X1, X2,..., Xn) путем ее доопределения на всех условных наборах значениями только 1 и 0.
Простой импликантой НОФ f (X1, X2,..., Xn) будем называть всякую простую импликанту функции f1 (X1, X2,..., Xn).
Простой имплицентой НОФ f (X1, X2,..., Xn) будем называть всякую простую имплиценту функции f0 (X1, X2,..., Xn).
Простую импликанту (имплиценту) НОФ f (X1, X2,..., Xn) будем называть существенной, если она накрывает хотя бы один единичный (нулевой) набор этой функции.
Например. Не полностью определенная функция
f
(X1,
X2,
X3,
X4)
=
+
,
тогда
f1
(X1,
X2,
X3,
X4)
=
и
f0
(X1,
X2,
X3,
X4)
=
Очевидно, что для полностью определенной логической функции f(X1, X2,...,Xn) выполняется равенство
f0 (X1, X2,..., Xn) = f(X1, X2, ..., Xn),
т.е. НОФ можно рассматривать как частный случай функции, у которой число условных наборов равно 0. В связи с этим все методы минимизации логических функций можно рассматривать для НОФ и распространять их на полностью определенные логические функции.