11. Полусумматор
11. Полусумматор
🎯 Цель урокаПонять как складывать два бита. Построить полусумматор из XOR и AND.
🎮 Фаза 1: Симулятор (10 мин)
Turing Complete
Пройди Level 5: Half Adder
Задача
Сложить два однобитных числа A и B. Результат — сумма S и перенос C.
🧠 Фаза 2: Теория (10 мин)
Сложение в столбик (десятичное)
17
+ 25
────
42
↑
перенос в следующий разряд
Сложение в двоичной системе
| A | B | Сумма (десятичная) | S (бит суммы) | C (перенос) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 1 | 0 |
| 1 | 0 | 1 | 1 | 0 |
| 1 | 1 | 2 = 10₂ | 0 | 1 |
Ключевое наблюдение:
- 1 + 1 = 2 = 10 в двоичной → записываем 0, переносим 1!
Формулы полусумматора
Посмотри на таблицу:
Сумма S:
| A | B | S |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Это же XOR!
$$S = A \oplus B$$Перенос C:
| A | B | C |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Это же AND!
$$C = A \land B$$Схема полусумматора
┌─────────┐
A ───┤ ├─── S (Sum)
│ XOR │
B ───┤ │
└─────────┘
┌─────────┐
A ───┤ ├─── C (Carry)
│ AND │
B ───┤ │
└─────────┘
Всего 2 вентиля!
🔧 Фаза 3: Собираем (20 мин)
Компоненты
| Компонент | Количество |
|---|---|
| 74HC86 (XOR) | 1 |
| 74HC08 (AND) | 1 |
| LED | 2 (разных цветов) |
| Резистор 330 Ом | 2 |
| Резистор 10 кОм | 2 |
| Кнопки | 2 |
Схема на макетке
Кнопка A ──┬─── 74HC86 Pin 1 ─┐
│ ├── Pin 3 ── LED (S)
Кнопка B ──┼─── 74HC86 Pin 2 ─┘
│
├─── 74HC08 Pin 1 ─┐
│ ├── Pin 3 ── LED (C)
└─── 74HC08 Pin 2 ─┘
Проверка
| Кнопка A | Кнопка B | LED S | LED C | Значение |
|---|---|---|---|---|
| 0 | 0 | 🔴 | 🔴 | 0 + 0 = 0 |
| 0 | 1 | 🟢 | 🔴 | 0 + 1 = 1 |
| 1 | 0 | 🟢 | 🔴 | 1 + 0 = 1 |
| 1 | 1 | 🔴 | 🟢 | 1 + 1 = 10₂ (перенос!) |
💡 Почему “полу”-сумматор?
Проблема: Не учитывает входящий перенос из предыдущего разряда!
Сложение многоразрядных чисел:
C₁ C₀ ← переносы
1 1
+ 1 0
───────────
1 0 1
Для второго разряда нужно сложить ТРИ бита:
- A₁
- B₁
- C₀ (перенос из первого разряда)
Полусумматор не может это сделать — нужен полный сумматор!
🔬 Эксперимент: Каскадирование (10 мин)
Попробуй соединить два полусумматора для сложения 2-битных чисел:
A₀, B₀ → HA₀ → S₀, C₀
A₁, B₁ → HA₁ → S₁, C₁
Но как учесть C₀ во втором разряде? 🤔
Спойлер: Для этого нужен полный сумматор — следующий урок!
📝 Мини-задания
🧮 Формулы урока
✅ Чеклист
- Понимаю двоичное сложение
- Знаю формулы S и C
- Собрал полусумматор
- Понимаю ограничение (нет Cᵢₙ)
