1. Основы переключательных функций и их представление
Основы переключательных функций и их представление
Современная цифровая электроника, вычислительная техника и системы автоматики строятся на базе устройств, которые оперируют всего двумя состояниями: включено и выключено, истина и ложь, напряжение есть и напряжения нет. Для математического описания таких систем используется специальный аппарат.
Переключательная функция (также известная как булева функция или логическая функция) — это математическая основа работы любого цифрового устройства, от простейшего калькулятора до современного процессора.
> Переключательной функцией называется такая функция от нескольких аргументов, все аргументы которой и само значение функции принимают значения только из множества {0, 1}.
Каждая переменная в такой функции называется логическим аргументом. Если у нас есть функция от аргументов, то количество всевозможных комбинаций входных значений вычисляется по формуле .
Например, если система зависит от 3 датчиков (аргументов), то существует уникальных комбинаций их состояний. Для каждой из этих 8 комбинаций переключательная функция должна определить итоговый результат: 0 или 1.
Базовые логические операции
Любая, даже самая сложная переключательная функция, может быть построена с использованием комбинации трех базовых логических операций. Эти операции образуют функционально полный базис.
Для наглядности сведем результаты этих операций для двух переменных и в единую таблицу.
| | | Инверсия | Конъюнкция | Дизъюнкция | |:---:|:---:|:---:|:---:|:---:| | 0 | 0 | 1 | 0 | 0 | | 0 | 1 | 1 | 0 | 1 | | 1 | 0 | 0 | 0 | 1 | | 1 | 1 | 0 | 1 | 1 |
Понимание этих трех операций позволяет перейти к способам представления более сложных логических зависимостей.
Способы представления переключательных функций
Чтобы спроектировать цифровое устройство, инженеру необходимо как-то записать логику его работы. Существует несколько основных способов представления переключательных функций, каждый из которых удобен на определенном этапе проектирования.
Табличный способ (Таблицы истинности)
Самый очевидный и наглядный способ задать переключательную функцию — перечислить все возможные комбинации входных переменных и указать для каждой из них значение функции. Такая таблица называется таблицей истинности.
Верхняя строка таблицы называется шапкой, где перечисляются аргументы и сама функция. Крайний правый столбец содержит значения функции, а остальные столбцы (тело таблицы) перебирают все возможные состояния входов.
Представим систему умного освещения. Свет (функция ) должен включаться, если на улице темно (датчик ) И обнаружено движение (датчик ). Таблица истинности для такой системы будет состоять из 4 строк. Только в последней строке, где и , значение функции будет равно 1. Во всех остальных случаях .
!Схема преобразования таблицы истинности в логическую цепь
Аналитический способ (Формулы)
Таблицы истинности удобны для функций от 2-4 переменных. Если переменных 10, таблица будет состоять из строк, что делает ее нечитаемой. В таких случаях используют аналитическую форму — запись в виде алгебраического выражения.
Любую таблицу истинности можно перевести в формулу. Наиболее стандартизированным подходом является использование Совершенной дизъюнктивной нормальной формы (СДНФ).
Алгоритм построения СДНФ по таблице истинности:
Рассмотрим пример. Пусть функция равна 1 в двух случаях: когда и когда . Для первой строки () минтерм будет выглядеть как . Для второй строки () минтерм будет . Итоговая функция в СДНФ: .
Зачем нужна минимизация переключательных функций
Полученная аналитическая форма (например, СДНФ) точно описывает логику работы устройства, но она редко бывает оптимальной.
Каждая логическая операция в формуле — это реальный физический элемент (транзистор или логический вентиль) на микросхеме. Чем длиннее формула, тем больше элементов потребуется для ее реализации. Это напрямую влияет на:
Процесс упрощения логического выражения без изменения его таблицы истинности называется минимизацией переключательных функций.
> Цель минимизации — понижение стоимости технической реализации и повышение эффективности цифровой схемы путем сокращения числа логических операций.
Представьте, что после составления СДНФ мы получили формулу: . Для ее реализации потребуется два элемента умножения, один элемент сложения и один инвертор. Однако, применяя законы логики, мы можем вынести за скобки: . Поскольку переменная плюс ее инверсия всегда дают 1 (), формула сокращается до , что равно просто .
Вместо четырех логических элементов нам теперь нужен ровно ноль — выход напрямую соединяется со входом . Экономия ресурсов составила 100%.
!Сравнение сложной логической схемы и ее минимизированного варианта
Способы минимизации логических функций
В современной схемотехнике применяется несколько основных методов минимизации, выбор которых зависит от количества переменных и требуемой степени автоматизации.
1. Алгебраический метод
Основан на применении законов булевой алгебры (законы поглощения, склеивания, де Моргана и др.). Метод заключается в последовательном преобразовании формулы. Главный недостаток — отсутствие четкого алгоритма. Инженер должен сам "увидеть", какие законы применить, что делает метод сложным для функций с числом переменных больше трех.2. Метод минимизирующих карт (Карты Карно)
Графический метод минимизации. Таблица истинности перестраивается в специальную двумерную матрицу (карту Карно или карту Вейча), где соседние ячейки отличаются только одной переменной. Это позволяет визуально находить группы единиц и объединять их, автоматически исключая лишние переменные. Метод идеален для ручной минимизации функций от 3 до 5 переменных.3. Метод Квайна — Мак-Класски
Строгий аналитический алгоритм, который состоит из двух этапов: нахождение всех простых импликант (операции склеивания и поглощения) и выбор минимального покрытия. В отличие от карт Карно, этот метод не требует визуального анализа и легко программируется. Именно алгоритм Квайна — Мак-Класски (и его современные эвристические модификации) лежит в основе программного обеспечения для автоматизированного проектирования электроники (EDA).В следующих статьях курса мы подробно разберем каждый из этих методов, научимся применять законы булевой алгебры и строить карты Карно для получения оптимальных цифровых схем.