Логические функции и алгебра логики (булева алгебра) Логические функции и способы их записи
В устройствах цифровой электроники используются элементы, входные и выходные сигналы которых могут принимать лишь два значения: логической единицы «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) |
0 |
0 |
- |
0 |
f(0,0,...,0) |
0 |
0 |
- |
1 |
f(0,0,...,1) |
1 |
1 |
- |
1 |
f(1,1,...,1) |
Рис. 1
Очевидно, что значение логической функции f(x1,x2,..,xn)в каждой строке будет принимать значение 0 или 1 в зависимости от значений входных логических переменных.
Поскольку булево выражение и соответствующая ей таблица истинности описывают одну и ту же функцию, то можно переходить от одной формы описания к другой.
Таблицы истинности логический функций И, ИЛИ, НЕ приведены на Рис.2.
Функция И Функция ИЛИ Функция HE
x |
y |
f(x,y) |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
x |
y |
f(x,y) |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
x |
f(x) |
0 |
1 |
1 |
0 |
Рис. 2
Построим таблицу истинности (Рис. 3) для выше приведенного булева выражения
f(x1, x2, x3)= x1* x2* x3+( x1+ x2) * (x1*x3).
X1 |
X2 |
X3 |
f(x1,x2,x3) |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
Рис. 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, причем переменные, равные единице, записываются с инверсией.