8-битный сумматор (ADDER8)
Входы (Inputs)
| Пин | Тип | Описание |
|---|---|---|
| A | bus8 | Первое слагаемое |
| B | bus8 | Второе слагаемое |
Выходы (Outputs)
| Пин | Тип | Описание |
|---|---|---|
| Sum | bus8 | 8-битная сумма (A+B) mod 256 |
Логика работы
ADDER8 складывает два байта точно так же, как ты складываешь числа столбиком на бумаге. Только вместо десятичных цифр здесь биты, а вместо десятка «в уме» — сигнал переноса. Внутри чипа прячется цепочка: один полусумматор обслуживает младший бит, а за ним выстроились семь полных сумматоров. Перенос каждого разряда подаётся на вход следующего: CarryOut одного Full Adder соединён с CarryIn следующего.
Главное свойство этой цепочки: перенос может прокатиться через весь чип. Сложи 00001111 (15) и 00000001 (1). В нулевом разряде 1+1 даёт 0 и перенос, перенос гасит первый разряд — и волна бежит дальше, пока не остановится на четвёртом бите. Итог — 00010000 (16). Как и в столбике, изменение одного младшего бита способно перекроить половину старших.
Нюанс, о котором стоит помнить: волна переноса не мгновенна. Каждый Full Adder отвечает с небольшой задержкой, и в худшем случае сигнал проходит все восемь разрядов подряд — схемотехники называют такую схему ripple-carry. Именно поэтому сложение — самая медленная базовая операция процессора, а вопрос «как ускорить перенос» — классика инженерной мысли. Подробнее — в статье «Задержка распространения».
Примеры (8 бит)
| A (bin) | A (dec) | B (bin) | B (dec) | Sum (bin) | Sum (dec) |
|---|---|---|---|---|---|
| 00001111 | 15 | 00000001 | 1 | 00010000 | 16 |
| 00000101 | 5 | 00000011 | 3 | 00001000 | 8 |
| 11111111 | 255 | 00000001 | 1 | 00000000 | 0 (переполнение) |
| 10000000 | 128 | 10000000 | 128 | 00000000 | 0 (перенос за край) |
В двух последних строках сумма «не влезает» в 8 бит: настоящий девятый бит теряется, и Sum равен сумме по модулю 256.
Применение
ADDER8 — награда за уровень 8, где ты собираешь его руками: Splitter разбирает шины A и B на отдельные биты, цепочка Full Adder складывает разряды, а Maker собирает биты результата обратно в шину. С уровня 13 чип выдаётся как готовый компонент и предустановлен в уровнях 13–16 — на построении АЛУ и финального процессора.
В компьютере проекта у сумматора две главные работы. Первая — ядро АЛУ: операция ADD выполняется именно им, а вычитание строится рядом с ним через дополнительный код. Вторая — счётчик команд: после каждой инструкции ProgramCounter прибавляет к адресу единицу, и делает это тем же сумматором. Без ADDER8 процессор не смог бы ни посчитать, ни перейти к следующей команде.
Смежные компоненты
Статьи по теме
Частые вопросы
Что произойдёт при переполнении, например 255 + 1?
Сумма обернётся в 0, а флаг переноса покажет, что результат не поместился в 8 бит.
Как устроен ADDER8 внутри?
Это цепочка из одного полусумматора (младший бит) и семи полных сумматоров. Перенос каждого разряда подаётся на следующий, поэтому схему называют схемой с последовательным (ripple-carry) переносом.
Почему сложение медленнее, чем И или ИЛИ?
Логические вентили обрабатывают биты независимо, а в сумматоре разряды связаны переносом: в худшем случае он прокатывается через все восемь разрядов, и каждый добавляет свою задержку.