12. Полный сумматор
12. Полный сумматор
🎯 Цель урокаПостроить полный сумматор, который учитывает входящий перенос.
🧠 Теория (15 мин)
Зачем нужен входящий перенос?
При сложении многоразрядных чисел каждый разряд (кроме младшего) должен учитывать перенос из предыдущего:
C₂ C₁ C₀
1 1 ← переносы
0 1 1 = 3
+ 0 1 0 = 2
─────────────
1 0 1 = 5
Таблица истинности полного сумматора
| A | B | Cᵢₙ | S | Cₒᵤₜ | Десятичное |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0+0+0 = 0 |
| 0 | 0 | 1 | 1 | 0 | 0+0+1 = 1 |
| 0 | 1 | 0 | 1 | 0 | 0+1+0 = 1 |
| 0 | 1 | 1 | 0 | 1 | 0+1+1 = 2 |
| 1 | 0 | 0 | 1 | 0 | 1+0+0 = 1 |
| 1 | 0 | 1 | 0 | 1 | 1+0+1 = 2 |
| 1 | 1 | 0 | 0 | 1 | 1+1+0 = 2 |
| 1 | 1 | 1 | 1 | 1 | 1+1+1 = 3 |
Формулы
Схема из двух полусумматоров
A ───┬───────────────────────────────────┐
│ ┌────────────┐ │
└─────┤ XOR ├─────┬──────────┼──────┐
│ (A⊕B) │ │ │ │
B ─────────┤ │ │ ┌─────▼────┐ │
└────────────┘ │ │ XOR │ │
│ │ (A⊕B⊕Cᵢₙ)├─┼──── S
Cᵢₙ ──────────────────────────┼────┤ │ │
│ └──────────┘ │
│ │
┌────────────────────────┘ │
│ ┌────────────┐ │
│ │ AND ├───────┐ │
└─────┤ (A⊕B)∧Cᵢₙ │ │ │
│ │ │ ┌────────┐ │
Cᵢₙ ───────┤ │ └────┤ OR ├─┼── Cₒᵤₜ
└────────────┘ │ │ │
┌────┤ │ │
A ─────┬────┐ │ └────────┘ │
│ │ ┌────────────┐ │ │
└────┼───┤ AND ├──┘ │
│ │ (A∧B) │ │
B ──────────┘ │ │ │
└────────────┘ │
│
Упрощённо:
┌──────────┐ ┌──────────┐
A ───┤ │ │ │
│ Half ├─────┤ Half ├─── S
B ───┤ Adder 1 │ │ Adder 2 │
│ │ ┌──┤ │
└────┬─────┘ │ └────┬─────┘
│ │ │
│ Cᵢₙ─┘ │
│ │
└───────┬────────┘
│
┌──▼──┐
│ OR ├─── Cₒᵤₜ
└─────┘
🔧 Фаза 3: Собираем (25 мин)
Компоненты
| Компонент | Количество |
|---|---|
| 74HC86 (XOR) | 1 |
| 74HC08 (AND) | 1 |
| 74HC32 (OR) | 1 |
| LED | 2 |
| Резистор 330 Ом | 2 |
| Кнопки/переключатели | 3 |
Схема соединений
74HC86 (XOR):
A ─── Pin 1 ─┬─ Pin 3 ─── Pin 4 ─┐
B ─── Pin 2 ─┘ ├─ Pin 6 ─── LED (S)
Cᵢₙ ─── Pin 5 ─┘
(Pin 3 также идёт к AND)
74HC08 (AND):
Pin 3 (A⊕B) ─── Pin 1 ─┬─ Pin 3 ─── 74HC32 Pin 1
Cᵢₙ ─────────── Pin 2 ─┘
A ─── Pin 4 ─┬─ Pin 6 ─── 74HC32 Pin 2
B ─── Pin 5 ─┘
74HC32 (OR):
AND out 1 ─── Pin 1 ─┬─ Pin 3 ─── LED (Cₒᵤₜ)
AND out 2 ─── Pin 2 ─┘
Проверка (все 8 комбинаций)
| A | B | Cᵢₙ | S (LED) | Cₒᵤₜ (LED) |
|---|---|---|---|---|
| 0 | 0 | 0 | 🔴 | 🔴 |
| 0 | 0 | 1 | 🟢 | 🔴 |
| 0 | 1 | 0 | 🟢 | 🔴 |
| 0 | 1 | 1 | 🔴 | 🟢 |
| 1 | 0 | 0 | 🟢 | 🔴 |
| 1 | 0 | 1 | 🔴 | 🟢 |
| 1 | 1 | 0 | 🔴 | 🟢 |
| 1 | 1 | 1 | 🟢 | 🟢 |
💡 Каскадирование
Для N-битного сумматора соединяем N полных сумматоров:
A₀ B₀ A₁ B₁ A₂ B₂ A₃ B₃
│ │ │ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼
┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐
0──┤ FA ├────►┤ FA ├────►┤ FA ├────►┤ FA ├──► Cₒᵤₜ
│ 0 │ │ 1 │ │ 2 │ │ 3 │
└──┬──┘ └──┬──┘ └──┬──┘ └──┬──┘
│ │ │ │
▼ ▼ ▼ ▼
S₀ S₁ S₂ S₃
Это Ripple Carry Adder — сумматор со сквозным переносом.
📝 Мини-задания
✅ Чеклист
- Понимаю роль Cᵢₙ
- Знаю формулы S и Cₒᵤₜ
- Собрал полный сумматор
- Проверил все 8 комбинаций
