Логические функции и способы их записи
В устройствах цифровой электроники используются элементы, входные и выходные сигналы которых могут принимать лишь два значения: логической единицы «1» и логического нуля «О». Такие элементы, называемые логическими, осуществляют простейшие операции с такими двоичными числами.
Для описания алгоритмов работы и структуры логических схем используют простую алгебру логики, или булеву алгебру, называемую по имени разработавшего ее в середине XIX века ирландского математика Д. Буля. В ее основе лежат три основные логические операции: логическое отрицание, или операция НЕ (инверсия), логическое сложение, или операция ИЛИ (дизъюнкция) и логическое умножение, или операция И (конъюнкция).
Операция НЕ над переменной х записывается в виде .
Операция ИЛИ над двумя переменными х и у записывается в виде х + у, а операция И — в виде х • у.
Фактически каждая логическая операция задает функцию своих аргументов (переменных). Поэтому можно говорить о функциях дизъюнкции, конъюнкции и инверсии.
Число аргументов функций дизъюнкции и конъюнкции может быть произвольным (больше двух).
Некоторая логическая функция может быть задана в алгебраической форме или в виде таблицы истинности.
Алгебраическая форма, или булево выражение представляет собой формулу, состоящую из логических переменных, связанными операциями И, ИЛИ и НЕ, например:
f(x1, x2, x3)= x1* x2* x3+(x1+ x2) * (x1*x3).
Как и в обычных алгебраических выражениях для задания порядка действий используются скобки. Предполагается, что выполнение операции И предшествует операции ИЛИ.
Таблицей истинности называется таблица, содержащая все возможные комбинации значений входных переменных и соответствующие им значения логической функции. Taк, для логической функции n переменных таблица истинности содержит 2n строк и n + 1 столбцов, как показано в таблице на рис. 1.
Х1 | Х2 | - | Хn | f(x1,x2,..,xn) |
![]() | - | f(0,0,...,0) | ||
- | f(0,0,...,1) | |||
- | f(1,1,...,1) |
Рис. 1
Очевидно, что значение логической функции f(x1,x2,..,xn) в каждой строке будет принимать значение 0 или 1 в зависимости от значений входных логических переменных.
Поскольку булево выражение и соответствующая ей таблица истинности описывают одну и ту же функцию, то можно переходить от одной формы описания к другой.
Таблицы истинности логический функций И, ИЛИ, НЕ приведены на Рис.2.
Функция И Функция ИЛИ Функция HE
x | y | f(x,y) |
x | y | f(x,y) |
x | f(x) |
Рис. 2
Построим таблицу истинности (Рис. 3) для выше приведенного булева выражения
f(x1, x2, x3)= x1* x2* x3+(x1+ x2) * (x1*x3).
X1 | X2 | X3 | f(x1,x2,x3) |
Рис. 3
Чтобы построить таблицу, нужно вычислить значение функции f(x1,x2,x3) для каждой из восьми комбинаций значений входных переменных.
Tак, например, при х1=0. х2 = 0. х3=0. получим
f(0,0,0) = 0•0•0+(0+0)•(0+0)=0+0•(0+1)=0+0=0
Для x1=1,x2=1,x3=1, получим
f (1,1,1)=1•1•1+(1+1)•(1+1)=1+1•(1+0)=1+1•1=1+1=1.
По таблице истинности также можно составить алгебраическое (булево) выражение. При этом запись алгебраического выражения осуществляется с использованием совершенной дизъюнктивной нормальной формы (СДНФ) или совершенной конъюнктивной нормальной формы (СКНФ).
Для представления логической функции F в виде СДНФ необходимо составить сумму (дизъюнкцию) произведений (конъюнкций) значений логической функции Fi и минтермов mi причем число слагаемых n равно числу строк в таблице истинности, т. е.
Минтерм mi —это логическое произведение всех переменных, причем переменные, равные нулю, записываются с инверсией.
Так для таблицы истинности (см. Рис. 3) можно записать следующие миитермы:
![]() | |||
![]() | |||

Следовательно, логическая функция F, заданная таблицей истинности, имеет следующую СДНФ:
F=m1•0+m2•0+m3•1+m4•0+m5•1+m6•1+m7•1+m8•1=
=x1• x2• x3+ x1• x2• x3+ x1• x2• x3+ x1• x2• x3+ x1• x2• x3
Таким образом, для записи функции в виде СДНФ можно использовать следующее правило: следует записать столько дизъюнктивных членов, представляющих собой конъюнкции (произведения) всех переменных, сколько раз функция принимает значение 1, причем переменные, равные нулю, записываются с инверсией.
Для представления логической функции F в виде СКНФ необходимо составить произведение (конъюнкцию) сумм (дизъюнкций) значений логической функции Fi и макстермов ki, причем число произведений n равно числу строк в таблице истинности, т. е.
Макстeрм ki— это логическая сумма всех переменных, причем переменные, равные 1, записываются с инверсией.
Так, для таблицы (см. Рис. 3) можно записать следующие макcтермы:
Следовательно, логическая функция F, заданная таблицей истинности, описывается следующей СКИФ:
Таким образом, для записи функции в виде СКНФ используют следующее правило: следует записать столько конъюнктивных членов, представляющих собой дизъюнкции (суммы) всех переменных, сколько раз функция принимает значение 0, причем переменные, равные единице, записываются с инверсией.
Основы алгебры логики
Рис. 4
Наиболее важные теоремы, отражающие основные соотношения алгебры логики, приведены в таблице (Рис. 4).
Легко заметить, что все теоремы (кроме 5) представлены парой соотношений, каждое из которых получается заменой операций И на ИЛИ, операции ИЛИ на И, логической 1 на логический 0 и логического 0 на логическую 1. Теоремам булевой алгебры присуще свойство симметрии, известное как принцип двойственности.
Правильность всех перечисленных теорем легко доказать перебором всех возможностей, т. е. методом совершенной индукции. Поскольку переменные в булевой алгебре принимают лишь два значения, то число всех возможных комбинаций значений переменных невелико и проверка выполнения теорем для каждой комбинации не является сложной.