Skip to content
4. Детектор различий: как схема учится складывать

4. Детектор различий: как схема учится складывать

Серия «Логика на верстаке», урок 4 из 4 — финал. Сегодня соберём вентиль, который умеет говорить «а вы разные!», а потом заставим схему по-настоящему сложить два двоичных числа. Это тот самый момент, где логика становится арифметикой — сердцем любого процессора.

1. Крючок: лампа в коридоре с двух концов

В длинном коридоре лампа управляется двумя выключателями — один у входа, другой у дальней двери. Щёлкни любым — свет меняется. Оба вверху — горит. Оба внизу — горит. А по-разному — темно… или наоборот?

Это не хитрая проводка электрика. Это вентиль Исключающее ИЛИ (XOR) — «детектор различий». И на нём же, как ни странно, компьютер учится складывать. Сейчас соберём и то, и другое.

2. Сквозная метафора: СПОР ДВУХ СУДЕЙ

Два судьи голосуют «да/нет».

  • Исключающее ИЛИ (XOR): сигнал есть, только если судьи разошлись во мнении. Согласны (оба «да» или оба «нет») — тишина.
  • Исключающее ИЛИ-НЕ (XNOR): ровно наоборот — сигнал, когда судьи согласны. Это «детектор совпадения».

3. Ядро без воды

3.1 Исключающее ИЛИ (XOR) — «вы разные»

Обычное ИЛИ говорит «да» и когда оба входа 1. Исключающее ИЛИ этот случай исключает: оба 1 — уже нет. Единица только при разных входах. Символ операции — плюс в кружке: Q=ABQ = A \oplus B.

Правило: выход = 1, если на входах нечётное число единиц (для двух входов — ровно одна).

BAQ = A⊕B
000
011
101
110

Символ — как у ИЛИ, но с двойной изогнутой линией на входе, метка =1.

3.2 Исключающее ИЛИ-НЕ (XNOR) — «вы одинаковые»

Прицепи к XOR инвертор — получишь XNOR. Единица, когда входы совпадают (00 или 11). Поэтому его зовут вентилем равнозначности.

BAQ (XNOR)
001
010
100
111

Правило: выход = 1, если единиц чётное число (для двух входов — ноль или две).

3.3 Главный фокус: XOR складывает

Сложим два двоичных бита «в столбик»:

0+0=00+1=11+0=11+1=10(2) 0+0=0 \qquad 0+1=1 \qquad 1+0=1 \qquad 1+1=10_{(2)}

Последнее (1+11+1) даёт 10 в двоичном виде: младший разряд «0», а единица идёт в перенос (как в десятичном 5+5=10).

Смотри внимательно на два столбца результата:

ABперенос (Carry)сумма (Sum)
0000
0101
1001
1110
  • Столбец «сумма» — это в точности таблица XOR (ABA \oplus B)!
  • Столбец «перенос» — это в точности таблица И (ABA \cdot B)!
Схема из одного XOR (сумма) и одного И (перенос) называется полусумматором (half-adder). Из таких кирпичей собран калькулятор, процессор, вообще вся арифметика компьютера. Ты сейчас соберёшь то, что реально считает внутри любой техники.

4. Концептуальный чек-ап

  1. XOR выдаёт 1 — что это говорит о входах: они равны или разны?
  2. Чем XNOR отличается от XOR одним словом?
  3. Сколько будет 1+1 в двоичной системе и куда девается «лишнее»?
  4. Какой вентиль отвечает за перенос в полусумматоре?
  5. XOR с двумя единицами на входе даёт 0. Почему это отличает его от обычного ИЛИ?

5. Разбор: XOR из вентилей И-НЕ (пошагово)

XOR удобно собрать из четырёх универсальных И-НЕ (привет уроку 3). Итоговое выражение:

Q=AB=(AB)+(AB) Q = A \oplus B = (A \cdot \overline{B}) + (\overline{A} \cdot B)

Шаг 1. «ABA \cdot \overline{B}» = 1, только если A=1, а B=0 (входы разные). Шаг 2. «AB\overline{A} \cdot B» = 1, только если A=0, а B=1 (тоже разные, но в другую сторону). Шаг 3. ИЛИ между ними: 1, если сработал любой случай «входы разные». Вывод: формула буквально означает «выход = 1, когда A и B различаются» — то самое «вы разные».

6. Практика на верстаке

Метапредметная связь: здесь логика превращается в математику (двоичное сложение) и в информатику (как устроен процессор). А проходной выключатель — это готовая физика из курса электротехники дома. Одна идея пронизывает три предмета.

Полусумматор в симуляторе: схема, которая считает

🔬 Симулятор: Исключающее ИЛИ (XOR): «а вы разные!»

Сначала посчитай, потом запускай. Ожидаемый результат: лампа горит, когда кнопки в РАЗНЫХ положениях, и гаснет когда одинаковы — 01 и 10 дают единицу, 00 и 11 дают ноль. Проверь себя — сходится ли расчёт с симулятором.

▶ Открыть схему в Falstad — откроется в новой вкладке уже собранной.

Если ссылка не открылась — собрать вручную

Зайти на falstad.com/circuit → меню File → Import From Text → вставить:

$ 1 0.000005 10.20 50 5 43 5e-11
L 128 168 80 168 0 0 false 5 0
L 128 200 80 200 0 0 false 5 0
150 256 184 320 184 0 4 2 0 5
w 128 168 256 168 0
w 128 200 256 200 0
M 384 184 432 184 0 2.5
w 320 184 384 184 0

Не сработал и импорт — собери схему мышью (Draw → Resistor / Voltage Source). Это 2–3 минуты и само по себе тренировка чтения схемы.

🔬 Симулятор: Полусумматор: складывает два бита

Сначала посчитай, потом запускай. Ожидаемый результат: верхний индикатор — сумма (XOR), нижний — перенос (AND). Проверь 1+1: сумма 0, перенос 1 — то есть двоичное «10», как в столбике. Проверь себя — сходится ли расчёт с симулятором.

▶ Открыть схему в Falstad — откроется в новой вкладке уже собранной.

Если ссылка не открылась — собрать вручную

Зайти на falstad.com/circuit → меню File → Import From Text → вставить:

$ 1 0.000005 10.20 50 5 43 5e-11
L 160 128 112 128 0 0 false 5 0
L 160 272 112 272 0 0 false 5 0
150 288 160 352 160 0 4 2 0 5
150 288 256 352 256 0 0 2 0 5
w 160 128 240 128 0
w 240 128 240 144 0
w 240 144 288 144 0
w 240 128 240 240 0
w 240 240 288 240 0
w 160 272 264 272 0
w 264 272 264 176 0
w 264 176 288 176 0
w 264 272 288 272 0
M 416 160 464 160 0 2.5
w 352 160 416 160 0
M 416 256 464 256 0 2.5
w 352 256 416 256 0

Не сработал и импорт — собери схему мышью (Draw → Resistor / Voltage Source). Это 2–3 минуты и само по себе тренировка чтения схемы.

Это уже не просто вентиль — это калькулятор. Две кнопки — два слагаемых. Верхний выход даёт сумму, нижний — перенос. Проверь все четыре случая и запиши результат как двузначное двоичное число «перенос-сумма»:

ABпереноссуммаэто число
00000
01011
10011
111010 = 2

Последняя строка — тот самый случай «1 + 1 = 10 в двоичной», о котором был вопрос в конце прошлого урока. Схема из двух вентилей научилась складывать, и никакой программы в ней нет — только провода.

Что дальше. Полусумматор не умеет принимать перенос из младшего разряда — для этого нужен полный сумматор из двух полусумматоров. Соединив их цепочкой, получают схему, складывающую многоразрядные числа. Ровно это и делают в курсе «От NAND до CPU», модуль 2.

Сборка 1. Проходной выключатель = живой XOR

Два тумблера управляют одним светодиодом по схеме «проходного выключателя» (лампа из коридора). Что увидеть: любой тумблер переключает свет. Составь таблицу — она совпадёт с XOR. Ты собрал вентиль из бытовой проводки.

Сборка 2. Настоящий XOR: 74LS86

Поставь 74LS86 (4× XOR). Входы — кнопки, выход — светодиод. Что увидеть: LED горит, только когда входы разные. Заведи на логический анализатор — таблица XOR как на ладони. Сломай/доведи до предела: подай на оба входа один и тот же сигнал (соедини их). Выход навсегда 0 — «судьи всегда согласны». XOR превратился в «глухую» линию.

Сборка 3. Полусумматор — схема, которая считает

XOR (74LS86) даёт сумму, И (74LS08) даёт перенос. Два входа-кнопки = два бита, два светодиода = «перенос» и «сумма». Что увидеть: набери 1+1 (обе кнопки) — «сумма» гаснет (0), а «перенос» загорается (1): на светодиодах читается двоичное 10 = 2. Схема сложила числа! Проверь все четыре комбинации по таблице. Метапредметный момент: объясни, что «перенос» — это ровно то же, что «пишем 0, единицу в уме» в столбике. Компьютер делает так же, только очень быстро.

Сборка 4. XNOR как «детектор совпадения» / контроль ошибок

74LS266 (XNOR) или XOR+инвертор. Сравнивай два сигнала: например, «эталон» и «данные» с двух ножек ESP32. Что увидеть: пока сигналы совпадают — горит «ОК» (XNOR=1). Рассинхронизируй их — «ОК» гаснет. Так работает проверка чётности и обнаружение ошибок в передаче данных. Сломай/доведи до предела: на логическом анализаторе подавай длинную цепочку бит и лови момент, где XNOR «поймал» несовпадение — это и есть детектор сбоя.

7. Разноуровневые задания

Воспроизведение. Заполни таблицу истинности XOR и обведи строки, где входы «разные».

8. Итог курса

Мы прошли путь от пандуса и лестницы (урок 1) через три кита логики (урок 2) и универсальный кирпич И-НЕ (урок 3) — к схеме, которая сама считает (урок 4). XOR — «детектор различий» — оказался ключом к арифметике: XOR = сумма, И = перенос. Из горстки простых вентилей собирается всё: от карманного калькулятора до процессора в твоём телефоне.

Ты теперь знаешь то, что знает инженер: внутри любой «умной» вещи нет магии — есть 0, 1 и вентили, которые ты сегодня держал в руках и заставил считать.
Домой (мостик к следующей серии): полусумматор ничего не «помнит». А как схема запоминает бит, чтобы получилась память? Это следующая большая тема — триггеры и последовательностная логика. Подумай: можно ли соединить два вентиля так, чтобы они «держали» друг друга и не забывали состояние?