Логические элементы
Логические элементы (gates) — это «кирпичики», из которых строят цифровые схемы. Они реализуют операции булевой алгебры в «железе».
🎓 В курсе nand2cpuПодробно с практикой на 74xx: Уроки 4-9: От NAND к XOR
Обозначения на схемах
NOT (инвертор) AND (И) OR (ИЛИ)
A ──►○── Y A ──┐ A ──┐
│D── Y │)── Y
B ──┘ B ──┘
NAND (И-НЕ) NOR (ИЛИ-НЕ) XOR (искл. ИЛИ)
A ──┐ A ──┐ A ──┐
│D○── Y │)○── Y │=)── Y
B ──┘ B ──┘ B ──┘
Кружок на выходе = инверсия (NOT).
Таблицы истинности
Базовые элементы
| A | B | NOT A | AND | OR | NAND | NOR | XOR |
|---|---|---|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
| 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 |
Микросхемы серии 74xx
| Микросхема | Функция | Вентилей | В курсе nand2cpu |
|---|---|---|---|
| 74HC00 | 4× NAND | 4 | Урок 4 |
| 74HC02 | 4× NOR | 4 | — |
| 74HC04 | 6× NOT | 6 | Урок 5 |
| 74HC08 | 4× AND | 4 | — |
| 74HC32 | 4× OR | 4 | Урок 6 |
| 74HC86 | 4× XOR | 4 | Урок 7 |
Распиновка 74HC00 (4× NAND)
┌───∪───┐
1A ─┤1 14├─ VCC (+5V)
1B ─┤2 13├─ 4B
1Y ─┤3 12├─ 4A
2A ─┤4 11├─ 4Y
2B ─┤5 10├─ 3B
2Y ─┤6 9├─ 3A
GND ─┤7 8├─ 3Y
└───────┘
4 независимых NAND-вентиля. Каждый: два входа (A, B) → один выход (Y).
NAND — универсальный вентиль
Из NAND можно построить любой другой элемент:
NOT из NAND: AND из NAND:
A ──┬──│D○── Y A ──┐ ┌──│D○── Y
└──┘ │D○──┬──────┘
B ──┘ └──────┘
OR из NAND:
A ──│D○──┐
│D○── Y
B ──│D○──┘
💡 Почему это важно?В производстве микросхем дешевле делать миллионы одинаковых NAND-вентилей, чем разные типы. Поэтому внутри процессоров — в основном NAND/NOR.
Логические уровни
| Серия | LOW (0) | HIGH (1) | Питание |
|---|---|---|---|
| 74HC | 0–0.8 В | 2.0–5 В | 2–6 В |
| 74HCT | 0–0.8 В | 2.0–5 В | 5 В (совместима с TTL) |
| 74LVC | 0–0.8 В | 2.0–3.3 В | 1.65–3.6 В |
Подробнее: logic_levels
Практические примеры
Пример 1: Блокировка мотора
A = старт разрешён
B = ошибок нет
C = концевик НЕ нажат
Мотор = A AND B AND C
На 74HC08 (4× AND): два AND для трёх входов.
Пример 2: Сигнализация
D = дверь
W = окно
M = движение
Тревога = D OR W OR M
На 74HC32 (4× OR).
Пример 3: Детектор изменения
A = текущее состояние
B = предыдущее состояние
Изменилось = A XOR B
XOR выдаёт 1, когда входы разные — идеально для детектора фронта.
Многовходовые элементы
| Микросхема | Функция |
|---|---|
| 74HC11 | 3× AND (3 входа) |
| 74HC21 | 2× AND (4 входа) |
| 74HC4075 | 3× OR (3 входа) |
Или каскадируем двухвходовые:
A ──┐
│D──┐
B ──┘ │D── Y
C ──────┘
Связь с другими темами
- Булева алгебра — теория за вентилями: boolean_algebra
- Комбинационная логика — схемы из вентилей: combinational_logic
- Сумматоры — XOR + AND = полусумматор: Акт II nand2cpu
- Аналоговая основа — как работают логические уровни: dc_circuits
Мини‑задания
Сколько NAND-вентилей нужно для NOT?
На какой микросхеме 4 элемента XOR?
Как из двух 2-входовых AND сделать 3-входовой?
Почему NAND называют «универсальным»?
Какой элемент выдаёт 1, когда входы разные?
Details
Один NAND с объединёнными входами: \(NAND(A,A) = NOT(A)\).
74HC86.
Каскадом: \(Y = (A \land B) \land C\).
Из NAND можно построить любую логическую функцию (NOT, AND, OR, XOR…).
XOR (исключающее ИЛИ).
