C S | | V V +-----+ | CPA | Carry Propagation Adder +-----+ Медленный T = ~ n*3L, где n-число разрядов | V S
Простой матричный метод: A B C D E F | | | | | | V V V V V V +-----+ +-----+ +-----+ | CPA | | CPA | | CPA | +-----+ +-----+ +-----+ | | | | V V | +------+ | | CPA | | +------+ | | +----+ +---+ | | V V +------+ | CPA | +------+ | V Время работы T = 9 nL Умножение 5x5:
Простой матричный умножитель: Простой матричный умножитель
n-1 n-1 --- --- \ \ P = A * B = / / A{i}B{j}*2^(i+j) --- --- i=0 j=0 A{n-1} ............ A{0} B{n-1} ............ B{0} ------------------------------------------ A{n-1}B{0}......A{0}B{0} .................... .................... .................... ................... .................. .................. A{n-1}B{n-1}..A{0}B{n-1} ------------------------------------------ P{2n-1} P{2n-2} ................... P{0} Простой матричный умножитель Брауна (только положительные числа): (использованы также полусумматоры, потому что верхняя строка все равно складывает только 2 числа, а не 3 как остальные).
Беззнаковый простой матричный умножитель:
Число в дополнительном коде можно представить в виде: n-2 --- \ X = -X{n-1}*2^(n-1) + / X{i}*(2^i) --- i=0 Поэтому если мы перемножим два числа в таком представлении и заменим у членов знак минус на инверсию (для однобитового числа это одно и то же) то получим: P = A * B = A{n-1}B{n-1}*2^(2n-2) + n-2 n-2 --- --- \ \ + / / A{i}B{j}*2^(i+j) + --- --- i=0 j=0 n-2 --- \ ___________ + / A{i}*B{n-1}*2^(i+n-1) + --- i=0 n-2 --- \ ___________ + / A{n-1}*B{j}*2^(j+n-1) + --- j=0 + 2^n + 2^(2n-1) Матричный умножитель в дополнительном коде:
Знаковый простой матричный умножитель:
Умножитель Бо-Вули (Baugh Wooley) Матричный умножитель использующий немного другую схему для формирования частичных произведений. ______ ______ P = A * B = -(2^(2n-1)) + (A{n-1} + B{n-1} + A{n-1}B{n-1})*2^(2n-2) + n-2 n-2 --- --- \ \ + / / A{i}B{j}*2^(i+j) + --- --- i=0 j=0 n-2 --- \ ____ + / A{i}B{n-1}*2^(i+n-1) + --- i=0 n-2 --- \ ____ + / A{n-1}B{j}*2^(j+n-1) + --- j=0 + (A{n-1} + B{n-1})*2^(n-1) Умножитель Бо-Вули: Умножитель Бо-Вули
Умножитель Пезариса (Pezaris) Тоже матричный, но использует сумматоры четырех различных типов Элементы применяемые в умножителе Пезариса: Умножитель Пезариса
Умножитель Пезариса:
Двухсекционный умножитель:
Трехсекционный умножитель: