Электроника:Цифровая электроника/Логические вентили/Универсальность вентилей «И-НЕ» и «ИЛИ-НЕ»

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Макаров В. (valemak) Контакты:</br>* Habr: @vakemak</br>* Сайт: www.valemak.com</br>Перевёл статей: 656.
Проверка/Оформление/Редактирование: Мякишев Е.А.


Универсальность вентилей «И-НЕ» и «ИЛИ-НЕ»[1]

Вентили И-НЕ и ИЛИ-НЕ обладают особым свойством: они универсальны. То есть при наличии достаточного количества логических элементов любого из этих двух типов, можно построить вентиль, реализующий любую необходимую логическую функцию.

Например, можно построить схему, выполняющую функцию ИЛИ, используя три взаимосвязанных логических элемента И-НЕ. Способность имитировать любой другой тип вентилей есть только у И-НЕ и ИЛИ-НЕ. Фактически, цифровые системы управления проектируются с использованием только логических элементов И-НЕ или только ИЛИ-НЕ, так как любые необходимые логические функции можно получить, комбинируя только И-НЕ или комбинируя только ИЛИ-НЕ.

В качестве доказательства этого свойства данный раздел разбит на подразделы, показывающие, как все основные типы вентилей могут быть реализованы с использованием или только И-НЕ или только ИЛИ-НЕ.

Функция «НЕ»

Рис. 1. Реализуем функцию НЕ с помощью И-НЕ (слева) и ИЛИ-НЕ (справа).
Рис. 1. Реализуем функцию НЕ с помощью И-НЕ (слева) и ИЛИ-НЕ (справа).

Как видите, существует два способа использования логического элемента И-НЕ в качестве инвертора и два способа использования логического элемента ИЛИ-НЕ в качестве инвертора. Любой метод работает, хотя соединение входов в ТТЛ-вентиле вместе увеличивает величину токовой нагрузки на управляющий затвор. Для КМОП-вентилей общие входные выводы уменьшают скорость переключения затвора из-за увеличения входной ёмкости.

Инверторы – это фундаментальный инструмент для преобразования одного типа логической функции в другой, поэтому на следующих рисунках будет много инверторов. На этих диаграммах я покажу только один метод инверсии, и именно там неиспользуемый вход логического элемента И-НЕ подключен к +V (либо VКК, либо VСС, в зависимости от того, является ли схема ТТЛ или КМОП) и где неиспользуемый вход для вентиля ИЛИ-НЕ заземлён.

Имейте в виду, что другой метод инверсии (соединение входов И-НЕ или ИЛИ-ИЛИ вместе) работает так же хорошо с точки зрения логики (комбинируя единицы и нули), но нежелателен с практической точки зрения увеличения токовой нагрузки для ТТЛ и увеличения входной ёмкости для КМОП.

«Буферная» функция

Поскольку довольно легко использовать вентили И-НЕ и ИЛИ-ИЛИ для выполнения функции инвертора (НЕ), то очевидно, что два таких каскада вентилей приведут к «буферной» функции, где выход находится в том же логическом состоянии, что и вход.

Рис. 2. Реализуем функцию НЕ с помощью И-НЕ (выше) и ИЛИ-НЕ (ниже).
Рис. 2. Реализуем «буферную» функцию с помощью И-НЕ (выше) и ИЛИ-НЕ (ниже).

Функция «И»

Чтобы реализовать функцию И на логических элементах И-НЕ, всё, что необходимо, – это инвертор (НЕ) на выходе логического элемента И-НЕ. Эта дополнительная инверсия «отменяет» НЕ в самой И-НЕ, оставляя только функцию И. Требуется немного больше работы, чтобы преодолеть ту же функциональность вентиля ИЛИ-НЕ, но это можно сделать, инвертировав (НЕ) все входы в вентиле ИЛИ-НЕ.

Рис. 3. Реализуем функцию И с помощью И-НЕ (выше) и ИЛИ-НЕ (ниже).
Рис. 3. Реализуем функцию И с помощью И-НЕ (выше) и ИЛИ-НЕ (ниже).

Функция «И-НЕ»

Бессмысленно показывать, как «построить» функцию И-НЕ с помощью логического элемента И-НЕ, поскольку здесь нечего делать. А вот чтобы вентиль ИЛИ-НЕ выполнял функцию И-НЕ, нужно инвертировать все входы в вентиль ИЛИ-НЕ, а заодно и выход вентиля ИЛИ-НЕ. Для вентиля с двумя входами это требует ещё трёх вентилей ИЛИ-НЕ, подключённых как инверторы.

Рис. 4. Реализуем функцию И-НЕ с помощью ИЛИ-НЕ.
Рис. 4. Реализуем функцию И-НЕ с помощью ИЛИ-НЕ.

Функция «ИЛИ»

Инвертирование выхода логического элемента ИЛИ-НЕ (с другим вентилем ИЛИ-НЕ, подключённым как инвертор) приводит к функции ИЛИ. С другой стороны, вентиль И-НЕ требует инверсии всех входов, чтобы имитировать функцию ИЛИ, точно так же, как нам нужно было инвертировать все входы элемента ИЛИ-НЕ, чтобы получить функцию И.

Помните, что инверсия всех входов в вентиле приводит к изменению основной функции этого вентиля с И на ИЛИ (или наоборот), плюс требуется инверсия выхода. Таким образом, со всеми инвертированными входами И-НЕ ведет себя как ИЛИ, а ИЛИ ведет себя как И, И ведет себя как ИЛИ, а ИЛИ ведет себя как И-НЕ. В булевой алгебре это преобразование называется теоремой де Моргана, о которой более подробно рассказывается в одной из последующих глав этой книги.

Рис. 5. Реализуем функцию ИЛИ с помощью И-НЕ (выше) и ИЛИ-НЕ (ниже).
Рис. 5. Реализуем функцию ИЛИ с помощью И-НЕ (выше) и ИЛИ-НЕ (ниже).

Функция «ИЛИ-НЕ»

Во многом процедура такая же, при которой вентиль ИЛИ-НЕ действует как И-НЕ. Нужно инвертировать все входы и выход, чтобы вентиль И-НЕ функционировал как ИЛИ-НЕ. А как реализовывать ИЛИ-НЕ с помощью ИЛИ-НЕ, думаю, рассказывать надобности нет.

Рис. 6. Реализуем функцию ИЛИ-НЕ с помощью И-НЕ.
Рис. 6. Реализуем функцию ИЛИ-НЕ с помощью И-НЕ.

Итог

  • Вентили И-НЕ и ИЛИ-НЕ универсальны: они могут имитировать любой тип вентилей, если соединены между собой в достаточном количестве.

См.также

Внешние ссылки