Обучение › Тема 1
Логические элементы: NOT, AND, OR, NAND, NOR, XOR и XNOR
7 мин чтения · Команда bitGateLab
Вся цифровая электроника, от светофора до процессора, строится из нескольких блоков, которые принимают решения с помощью нулей и единиц, — из логических элементов. Здесь вы познакомитесь с семью базовыми элементами: как они изображаются на схемах, как записываются в булевой алгебре и какая у каждого таблица истинности. В конце вы увидите, почему из элементов одного-единственного типа, NAND или NOR, можно собрать все остальные.
Логические уровни: что означают 0 и 1
В цифровой схеме каждый сигнал может находиться только в одном из двух состояний. Низкое напряжение (близкое к 0 V) мы называем логическим 0, или «ложью», а высокое (близкое к напряжению питания, например 5 V или 3.3 V) — логической 1, или «истиной». Логический элемент получает один или несколько входных сигналов и выдаёт выходной, который зависит только от текущих значений на входах: элемент ничего не запоминает. Поэтому говорят, что логические элементы образуют комбинационную логику.
Самый полный способ описать логический элемент — его таблица истинности: перечень всех возможных комбинаций входов и значения выхода для каждой из них. При n входах существует 2n комбинаций, так что у двухвходового элемента 4 строки, а у трёхвходового — 8.
Три основных элемента
NOT (НЕ, инвертор)
У него всего один вход, а на выходе — противоположное значение: если на входе 0, на выходе 1, а если на входе 1, на выходе 0. Записывается это как Y = A (встречаются также обозначения A' и ¬A). Его символ — треугольник с кружком на вершине; этот кружок — общепринятый знак «здесь происходит инверсия».
| A | Y = A |
|---|---|
| 0 | 1 |
| 1 | 0 |
AND (И)
Выход равен 1 только тогда, когда все входы равны 1. Записывается как произведение: Y = A·B или просто Y = AB. Представьте два выключателя, соединённых последовательно: лампа загорается, только если замкнуты оба.
OR (ИЛИ)
Выход равен 1, когда хотя бы один вход равен 1. Записывается как сумма: Y = A + B. Это то же самое, что два выключателя, соединённых параллельно. Внимание: в булевой алгебре 1 + 1 = 1, а не 2.
Производные элементы: NAND, NOR, XOR и XNOR
NAND (И-НЕ) — это AND, за которым стоит инвертор: Y = AB. Его выход равен 0 только тогда, когда все входы равны 1. NOR (ИЛИ-НЕ) — это инвертированный OR: Y = A + B; он равен 1 только тогда, когда все входы равны 0. На схемах у обоих на выходе нарисован кружок.
XOR (исключающее ИЛИ) равен 1, когда входы различаются: Y = A ⊕ B = AB + AB. Если входов больше двух, XOR равен 1 при нечётном количестве единиц, поэтому его используют для вычисления битов чётности. XNOR (исключающее ИЛИ-НЕ) — его дополнение, Y = A ⊕ B = AB + A B; он равен 1, когда входы одинаковы: это одноразрядный компаратор равенства.
Вот общая таблица истинности шести двухвходовых элементов:
| A | B | AND | OR | NAND | NOR | XOR | XNOR |
|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 |
Пример: вычислить выход небольшой схемы. Найдите Y = (A + B) · C при A = 0, B = 1, C = 1.
- OR: A + B = 0 + 1 = 1.
- Инверсия: 1 = 0.
- AND с C: 0 · 1 = 0.
Результат: Y = 0. При A = 0, B = 0, C = 1 элемент OR даёт 0, инвертор даёт 1, а AND даёт 1, так что Y = 1.
NAND и NOR: универсальные элементы
Логический элемент называется универсальным, если из одних только его копий можно построить NOT, AND и OR, а значит, и любую логическую функцию. NAND и NOR этим свойством обладают. У этого есть практическое следствие: производитель может выпускать ячейки только одного типа и строить из них всё устройство, а вы можете собрать целую схему на единственной микросхеме семейства 74HC (например, в 74HC00 находятся четыре двухвходовых элемента NAND).
Всё на NAND
- NOT: соедините два входа элемента NAND. Если на оба подан A, то A·A = A.
- AND: NAND, за которым стоит NAND, включённый как инвертор: AB = AB.
- OR: инвертируйте каждый вход своим элементом NAND и объедините их третьим NAND: A·B = A + B (по теореме де Моргана).
Всё на NOR
- NOT: соедините входы элемента NOR: A + A = A.
- OR: NOR, за которым стоит NOR-инвертор.
- AND: инвертируйте каждый вход своим элементом NOR и объедините их ещё одним NOR: A + B = AB.
Пример: XOR на четырёх NAND. Пусть N1 = AB, N2 = A·N1, N3 = B·N1 и Y = N2·N3. Проверьте все четыре случая:
| A | B | N1 | N2 | N3 | Y |
|---|---|---|---|---|---|
| 0 | 0 | 1 | 1 | 1 | 0 |
| 0 | 1 | 1 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 | 1 | 0 |
Столбец Y совпадает со столбцом XOR. Четыре элемента — одна микросхема.
Типичные ошибки
- Считать, что в элементе OR 1 + 1 = 2. В булевой логике сумма «насыщается»: 1 + 1 = 1.
- Путать AB (NAND, одна черта над всем выражением) с A B (две отдельные черты, что равносильно NOR). От длины черты зависит результат.
- Думать, что трёхвходовый XOR равен 1, «когда только один вход равен 1». На самом деле он равен 1 при нечётном количестве единиц, а это включает и случай 1, 1, 1.
- Оставлять неподключёнными входы настоящей КМОП-микросхемы. «Висящий» вход может случайным образом читаться то как 0, то как 1; подключите его к земле или к питанию.
Попробуйте в симуляторе
Лучший способ запомнить эти таблицы — получить их самостоятельно. В редакторе схем можно поставить логический элемент, переключать его входы и сразу видеть выход; затем сравните результат с таблицей истинности, которую рассчитывает сам инструмент.
- Поместите два входа, элемент NAND и выход и соедините их.
- Переберите на входах все четыре комбинации и запишите выход для каждой.
- Постройте таблицу истинности схемы и сравните её с таблицей из этой статьи.
- Соберите XOR на четырёх NAND из примера и убедитесь, что его таблица совпадает с таблицей одиночного элемента XOR.
- Если хотите перенести схему на виртуальную макетную плату, поставьте микросхему NAND семейства 74HC, подайте на неё питание и понаблюдайте за выходным светодиодом.
Упражнения
- Составьте таблицу истинности для Y = A + B.
Ответ
Для AB = 00, 01, 10, 11 выход равен 1, 0, 1, 1. Он равен 0 только при A = 0 и B = 1.
- Сколько строк в таблице истинности элемента AND с 4 входами и в скольких из них выход равен 1?
Ответ
24 = 16 строк; выход равен 1 только в одной (1111).
- Найдите выход трёхвходового элемента XOR при A = 1, B = 1, C = 1.
Ответ
1 ⊕ 1 = 0 и 0 ⊕ 1 = 1. Выход равен 1, потому что единиц три (нечётное количество).
- Сколько элементов NOR нужно, как минимум при таком способе, чтобы получить двухвходовый AND?
Ответ
Три: два NOR, включённых как инверторы (один для A, другой для B), и третий NOR, на который подаются A и B; его выход равен A + B = AB.
Чтобы научиться преобразовывать и упрощать выражения с этими элементами, переходите к теме «булева алгебра».