1. Введение в логику: функции одной переменной, тождество и инверсия
Введение в логику: функции одной переменной, тождество и инверсия
Добро пожаловать в курс «Основы булевой алгебры». Мы начинаем погружение в мир цифровой логики — фундамента, на котором построены все современные компьютеры, смартфоны и микроконтроллеры. В этой первой статье мы разберем базовые понятия: что такое булева переменная, как описываются логические функции и детально изучим простейшие элементы, работающие с одним входным сигналом.
Что такое булева алгебра?
В привычной нам математике мы оперируем числами: 1, 5, 100, 3.14. Однако в мире цифровой электроники все намного категоричнее. Здесь существует только два состояния: Истина (True) и Ложь (False). Математический аппарат, описывающий операции над этими двумя состояниями, называется булевой алгеброй, в честь английского математика Джорджа Буля.
Основной единицей информации здесь является бит (binary digit), который может принимать одно из двух значений:
* Логический 0 (False, Ложь, Низкий уровень напряжения). * Логическая 1 (True, Истина, Высокий уровень напряжения).
Это бинарная (двоичная) система. Любое устройство, от простейшего выключателя света до процессора вашего ноутбука, на самом низком уровне оперирует именно этими значениями.
Понятие логической функции
В общем виде логическая функция — это правило, по которому одному или нескольким входным значениям (аргументам) ставится в соответствие выходное значение. Важно помнить, что и входы, и выходы могут быть только нулями или единицами.
Математически это записывается так:
где: * — выходное значение функции (0 или 1); * — закон преобразования (сама логическая функция); * — входные логические переменные; * — количество входных переменных.
!Абстрактное представление логической функции как черного ящика с входами и выходом
Способы задания логических функций
Чтобы понять, как работает та или иная логическая схема, инженеры используют три основных инструмента:
Функции одной переменной
Начнем с самого простого случая, когда у нас есть только один входной сигнал (). Пусть наш вход называется . Поскольку может принимать только два значения (0 или 1), количество возможных комбинаций на входе равно двум.
Сколько же всего существует различных функций одной переменной? Количество всех возможных булевых функций от переменных рассчитывается по формуле:
где: * — общее количество возможных функций; * — количество входных переменных; * — основание двоичной системы.
Для одной переменной ():
где: * — итоговое количество функций (равно 4); * — количество переменных.
Итак, существует всего 4 функции одной переменной. Давайте рассмотрим их в сводной таблице истинности.
| Вход | (Константа 0) | (Повторитель) | (Инверсия) | (Константа 1) | | :---: | :---: | :---: | :---: | :---: | | 0 | 0 | 0 | 1 | 1 | | 1 | 0 | 1 | 0 | 1 |
Разберем каждую из них подробнее.
1. Константа 0 (Генератор нуля)
Функция всегда возвращает 0, независимо от того, что подано на вход. В схемотехнике это эквивалентно подключению выхода к «земле» (общему проводу).
2. Константа 1 (Генератор единицы)
Функция всегда возвращает 1. Это эквивалентно подключению выхода к источнику питания.
Эти две функции тривиальны и редко рассматриваются как отдельные логические элементы для обработки данных, но они важны для фиксации состояний.
3. Повторитель (Тождество, Буфер)
Функция повторяет значение входа. Если на входе 0, на выходе 0. Если на входе 1, на выходе 1.
Аналитическая запись:
где: * — выходной сигнал; * — входной сигнал.
Казалось бы, зачем нужен элемент, который ничего не меняет? В электронике такой элемент называется буфером. Он используется для усиления сигнала (чтобы слабый сигнал мог управлять мощной нагрузкой) или для задержки сигнала во времени.
Условно-графическое обозначение (УГО): В схемах повторитель изображается как треугольник.
!Графическое обозначение логического элемента Повторитель (Буфер)
4. Инверсия (Логическое НЕ)
Функция — самая интересная из функций одной переменной. Она меняет значение входа на противоположное. Это операция логического отрицания.
* Если , то . * Если , то .
Этот элемент называется Инвертор или элемент НЕ (NOT).
Аналитическая запись: В булевой алгебре инверсия обозначается чертой над переменной или знаком приставки перед ней:
или
где: * — результат инверсии; * (читается «икс с чертой» или «не икс») — обозначение инверсии переменной ; * — альтернативный символ отрицания.
Условно-графическое обозначение (УГО): Инвертор изображается как треугольник (как буфер), но с маленьким кружком на вершине (на выходе). Именно этот кружок в схемах обозначает операцию инверсии.
Существует два основных стандарта обозначений:
!Сравнение графических обозначений элемента НЕ в стандартах ANSI и IEC
Временные диаграммы
Таблицы истинности показывают статику (состояния), но в реальности сигналы меняются во времени. Для отображения этих процессов используются временные диаграммы.
Временная диаграмма — это график, где: * По горизонтальной оси () откладывается время. * По вертикальной оси () — уровень напряжения (логический уровень).
Давайте посмотрим на временную диаграмму работы инвертора.
!Временная диаграмма работы логического элемента НЕ
На диаграмме четко видно: как только входной сигнал переходит из низкого уровня (0) в высокий (1), выходной сигнал мгновенно (в идеальной модели) переходит из высокого уровня (1) в низкий (0).
Краткий взгляд на функции двух переменных
Хотя эта статья посвящена функциям одной переменной, важно понимать масштаб того, что нас ждет дальше. Если мы добавим всего один вход (сделаем ), количество возможных комбинаций на входе станет (00, 01, 10, 11).
А количество возможных функций вырастет согласно нашей формуле:
где: * — количество функций двух переменных (равно 16); * — количество переменных.
Среди этих 16 функций находятся фундаментальные кирпичики всей компьютерной логики: И (AND), ИЛИ (OR), ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR) и их инверсии. Именно их комбинация позволяет процессорам складывать числа, сравнивать данные и принимать решения. Но подробный разбор этих элементов — тема нашей следующей статьи.
Заключение
Мы заложили первый камень в фундамент понимания цифровой логики. Вы узнали, что:
В следующем уроке мы перейдем к функциям двух переменных и узнаем, как компьютер принимает решения, используя логическое умножение и сложение.