01
Двоичные числа
Беззнаковое n-битное число лежит в 0…2ⁿ−1. Two's complement лежит в −2ⁿ⁻¹…2ⁿ⁻¹−1. Для −x: инвертировать биты положительного x и прибавить 1.
02
Half-adder
Half-adder складывает A и B: Sum=A XOR B, Carry=A AND B. Он не имеет carry-in.
03
Full-adder
Full-adder складывает A, B, Cin: Sum=A XOR B XOR Cin; Cout=(A AND B) OR (Cin AND (A XOR B)). Его можно собрать из двух half-adder и OR.
04
Ripple-carry adder
В многоразрядном сумматоре Cout младшего разряда становится Cin следующего. Carry ripple создаёт длинный critical path; задержка растёт примерно линейно с разрядностью.
05
Binary multiplier
Каждый partial product — AND одного бита A и одного бита B. Сдвинутые partial products складываются. Произведению двух n-битных unsigned чисел может понадобиться 2n бит.
06
ALU и subtraction
ALU параллельно/совместно формирует логические и арифметические результаты, а MUX выбирает один. Вычитание переиспользует adder: A−B=A+NOT(B)+1.
SELF-CHECK
Проверь понимание
Half-adder для 1+1?
Sum=0, Carry=1.
−14 в 8 битах?
11110010.
Что добавляет full-adder?
A, B и Cin.
Как выполнить A−B?
A+NOT(B)+1.