Tricky Circuit

Полный сумматор: три входа

Передай перенос дальше

Полный сумматор складывает два бита, двоичные цифры 0 или 1, и Cin (Carry input), входной перенос из предыдущего разряда. Получаются бит суммы здесь и выходной перенос в следующий разряд.

Открыть интерактивный опыт

ЭКСПЕРИМЕНТАЛЬНЫЙ СТОЛ

Меняй настройки схемы, предсказывай показания и проверяй решение задания. Это учебные модели; допущения объяснены в каждом уроке.

Войди, чтобы сохранять прогресс. Прогресс гостя хранится на этом устройстве.

Открыть лабораторию в полном окне

Почему это работает

Идеальная двоичная логика: 0 — низкий уровень, 1 — высокий, а не измеренное напряжение. Питание, ток, нагрузка выхода и задержка не моделируются; рисунки показывают функции, а не выводы микросхем.

A и B — данные; Cin означает Carry input, входной перенос; S — сумма, Cout — выходной перенос. T = A + B + Cin; T = S + 2Cout. XOR — Exclusive OR, исключающее ИЛИ: даёт 1 для разных входных битов. ⊕ и =1 обозначают эту функцию. Перенос — единица своего разряда, а не дополнительное напряжение.

Сложность
  1. Собери · Собери

    Включи A = 0, B = 0 и Cin = 1. Получи S = 1 и Cout = 0.

    Нужна подсказка?

    A = 0; B = 0; Cin = 1 → S = 1; Cout = 0

  2. Исследуй · Измени входы

    Задай A = 1, B = 1 и Cin = 0. Получи S = 0 и Cout = 1.

    Нужна подсказка?

    A = 1; B = 1; Cin = 0 → S = 0; Cout = 1

  3. Реши сам · Реши задачу

    Задай A = 1, B = 1 и Cin = 1. Получи S = 1 и Cout = 1.

    Нужна подсказка?

    A = 1; B = 1; Cin = 1 → S = 1; Cout = 1

Дополнительные материалы и карточки схем

Передай перенос дальше

Калькулятор повторяет этот блок во многих разрядах. Каждый складывает маленькую часть числа и передаёт перенос к большему разряду.

T = A + B + Cin; T = S + 2Cout; S = A ⊕ B ⊕ Cin

Бит суммы показывает нечётность общего числа. Перенос показывает, достигло ли оно двух. Вместе они описывают числа от нуля до трёх.

Полезная закономерность

Три высоких входа дают три, двоичное 11. Одного бита суммы недостаточно для такого ответа.

За пределами модели

Полный сумматор можно собрать из двух полусумматоров и ИЛИ. ИЛИ даёт 1, если хотя бы один вход равен 1; И — только если оба равны 1. На схеме это ≥1 и &. Настоящий перенос распространяется с задержкой; модель считает мгновенно.

Ошибка, которой стоит избежать

Входной и выходной перенос — разные сигналы. Входной перенос не является памятью обратной связи, выходной не всегда его копирует.

A = 0, B = 0. Cin меняется с 0 на 1. Получаем…

  1. S = 1, Cout = 0
  2. S = 0, Cout = 1
  3. S = 1, Cout = 1
Читать дальше

Сумма выросла от нуля до единицы. Нужен только разряд единиц.

Собери

Задай A = 0, B = 0, Cin = 1. Один входной перенос даёт всего 1.

T = 1; S = 1; Cout = 0

Измени входы

Задай A = 1, B = 1, Cin = 1. Всего 3: сумма 1 и перенос 1.

T = 3; S = 1; Cout = 1

Попробуй другой путь

Зафиксируй Cin и поменяй A с B. Потом оставь A и B высокими и измени Cin: сравни изменение суммы и переноса.

bob.cs.sonoma.edu