CHAPTER 036 SECTIONS · 4 CHECKS

Сумматоры, умножитель и ALU

Двоичное представление, half/full adder, subtraction, multiplier и сборка ALU.

Содержание
  1. 1. Двоичные числа
  2. 2. Half-adder
  3. 3. Full-adder
  4. 4. Ripple-carry adder
  5. 5. Binary multiplier
  6. 6. ALU и subtraction

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.