20. D-защёлка
20. D-защёлка
🎯 Цель урокаПонять D-защёлку — память без запрещённых состояний.
🧠 Теория (15 мин)
Проблема SR-защёлки
- Два входа — сложно управлять
- Запрещённое состояние S=1, R=1 — источник ошибок
- Нет контроля — данные записываются сразу при изменении S или R
Решение: D-защёлка
Идея: Один вход данных D (Data), один вход разрешения E (Enable).
D ───┬─────────────────► S ───┐
│ │
│ ┌───────┐ SR-
│ │ NOT │ защёлка ──► Q
│ └───┬───┘ │
│ │ │
└────────┴──────────► R ─┘
(через NOT)
Ключевая идея: S = D, R = NOT(D) — они никогда не равны 1 одновременно!
С добавлением Enable
┌─────────────────────────────────────┐
│ │
D ───┼──┬─────────────┤AND├─► S ───┐ │
│ │ │ │
│ │ ┌───────┐ SR- │
│ │ │ NOT │ защёлка ─┴─► Q
│ │ └───┬───┘ │
│ │ │ │
│ └───────┴────┤AND├─► R ──┘
│ │
E ───┴───────────────┘
Таблица истинности
| E | D | Q (следующее) | Действие |
|---|---|---|---|
| 0 | X | Q (без изменений) | Хранение |
| 1 | 0 | 0 | Запись 0 |
| 1 | 1 | 1 | Запись 1 |
X означает “не важно” (don’t care).
Временная диаграмма
E ▁▁▁███▁▁▁███▁▁▁▁▁▁███▁▁▁
D ▁▁▁▁▁███████▁▁▁███▁▁▁▁▁▁
Q ▁▁▁▁▁▁███████████▁▁▁▁▁▁▁
↑ ↑
│ │
E=1, D=1 E=1, D=0
записали записали
Пока E=1, Q следует за D (защёлка “прозрачна”). Когда E=0, Q хранит последнее значение.
🔧 Фаза 3: Собираем (25 мин)
Компоненты
| Компонент | Количество |
|---|---|
| 74HC00 (NAND) | 1 |
| 74HC04 (NOT) | 1 |
| Кнопки/переключатели | 2 (D и E) |
| LED | 1 |
| Резисторы | по необходимости |
Схема на NAND
D-защёлка на 4 вентилях NAND:
┌────────────────────────────────────┐
│ │
D ───┼───┤NAND├──┬──┤NAND├──┬────────────┴── Q
│ │ │ │
E ───┼─────┤ │ │
│ │ │
│ ┌─────┘ │
│ │ │
└─────┼──┤NAND├──┬──┤NAND├── ~Q
│ │ │ │
E ─────────┘ │ │ │
│ │ │
└─────┴──────┘
Пошаговая сборка
74HC00 — 4 вентиля NAND:
┌───────────────────┐
1Y ──┤ 1 14 ├── VCC
1A ──┤ 2 13 ├── 4B
1B ──┤ 3 74HC00 12 ├── 4A
2Y ──┤ 4 11 ├── 4Y
2A ──┤ 5 10 ├── 3B
2B ──┤ 6 9 ├── 3A
GND ──┤ 7 8 ├── 3Y
└───────────────────┘
Соединения:
Вентиль 1 (Pin 1,2,3):
Pin 2 ── D
Pin 3 ── E
Pin 1 ── выход → Pin 5 (вентиль 2) и Pin 12 (вентиль 4)
Вентиль 2 (Pin 4,5,6):
Pin 5 ── Pin 1 (от вентиля 1)
Pin 6 ── Pin 8 (от вентиля 3)
Pin 4 ── Q ── LED
Вентиль 3 (Pin 8,9,10):
Pin 9 ── D (через NOT — используй 74HC04!)
Pin 10 ── E
Pin 8 ── выход → Pin 6 и Pin 13
Вентиль 4 (Pin 11,12,13):
Pin 12 ── Pin 1 (от вентиля 1)
Pin 13 ── Pin 8 (от вентиля 3)
Pin 11 ── ~Q
Проверка
| E | D | Ожидание | LED Q |
|---|---|---|---|
| 0 | 0 | Хранение | Без изменений |
| 0 | 1 | Хранение | Без изменений |
| 1 | 0 | Запись 0 | 🔴 Не горит |
| 1 | 1 | Запись 1 | 🟢 Горит |
Эксперимент:
- E=1, D=1 → LED горит
- E=0 → LED продолжает гореть (хранение!)
- D=0 (E всё ещё =0) → LED всё равно горит (D игнорируется)
- E=1 → LED гаснет (записали D=0)
💡 Проблема “прозрачности”
Когда E=1, защёлка прозрачна — любое изменение D сразу появляется на Q.
E = 1 (постоянно)
D ▁▁███▁██▁▁███▁▁
Q ▁▁███▁██▁▁███▁▁ ← Q повторяет D!
Это проблема в синхронных схемах!
Решение — триггер (D flip-flop), который фиксирует данные только по фронту тактового сигнала.
📦 Готовая микросхема 74HC75
74HC75 содержит 4 D-защёлки:
┌───────────────────┐
~1Q ──┤ 1 16 ├── 1Q
1D ──┤ 2 15 ├── 2Q
2D ──┤ 3 74HC75 14 ├── ~2Q
E12 ──┤ 4 13 ├── E34
VCC ──┤ 5 12 ├── GND
3D ──┤ 6 11 ├── 4D
~3Q ──┤ 7 10 ├── ~4Q
3Q ──┤ 8 9 ├── 4Q
└───────────────────┘
📝 Мини-задания
✅ Чеклист
- Понимаю как D-защёлка устраняет запрещённое состояние
- Знаю роль сигнала Enable
- Собрал D-защёлку
- Понимаю проблему “прозрачности”
