Está en la página 1de 34

Bloques Aritmticos - Multiplicadores

La multiplicacin es una operacin cara (en trminos de


recursos) y lenta
Este hecho ha motivado la integracin de unidades
completas de multiplicacin en los DSPs y Ps
Los multiplicadores son en la prctica matrices
complejas de sumadores

DCSE 2010-11

1/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Bloques Aritmticos - Multiplicadores


Consideramos dos nmeros binarios sin signo X
e Y, de M y N bits respectivamente:
X=

M 1

i =0

Y=

X i 2i

N 1

j
Y
2
j
j =0

X i , Y j {0,1}

Definicin de la operacin de multiplicacin:


Z = XY =

M + N 1

k =0

Z k 2k =

N 1

M 1

i
j
Xi 2 Yj 2 =
i =0
j =0

DCSE 2010-11

2/34

N 1

M 1
i+ j

X iY j 2
j =0 i =0

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Multiplicadores Desplazamiento y Suma


X= X2
N 1 M 1

i+ j
M 1

Y=

i =0
N 1

Y 2
j =0

Z = XY =

XY 2
j =0

i =0

La multiplicacin requiere M ciclos utilizando un


sumador de N bits.
Se realiza la suma de N productos parciales, que se
generan multiplicando un bit del multiplicador por el
valor del multiplicando (operacin AND) y
desplazando el resultado segn la posicin del bit del
multiplicador.
DCSE 2010-11

3/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Multiplicador matricial: ejemplo


1 0 1 0 1 0

Multiplicando

1 0 1 1

Multiplicador

1 0 1 0 1 0
1 0 1 0 1 0
0 0 0 0 0 0
+

1 0 1 0 1 0
1 1 1 0 0 1 1 1 0

DCSE 2010-11

Productos parciales

4/34

Resultado

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Multiplicador matricial
1 0 1 0 1 0

1 0 1 1
1 0 1 0 1 0
1 0 1 0 1 0
0 0 0 0 0 0

Los productos parciales se


generan en paralelo y se
organizan en una matriz

1 0 1 0 1 0
1 1 1 0 0 1 1 1 0

Un sumador multioperando
calcula el producto final

En hardware, la estructura del multiplicador matricial combina las


funciones: generacin de productos parciales, acumulacin de
productos parciales y suma final
DCSE 2010-11

5/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Generacin de productos parciales


X7

X6

X5

X4

X3

X2

X1

X0

Yj

PP7

PP6

PP5

PP4

PP3

PP2

PP1

PP0

Los productos parciales (PP) resultan de aplicar la operacin


lgica AND al multiplicando X y a un bit del multiplicador Yj
Cada fila de la matriz de PP es una copia del multiplicando o una
fila de ceros
Optimizar la generacin de los PP para reducir los retardos
y el rea ocupada en hardware (recodificacin Booth)
DCSE 2010-11

6/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Algoritmo de Booth
Ejemplo:
Un multiplicador de 8 bits: 01111110 produce 6
filas de productos parciales distintos de cero
Este nmero se puede re-codificar para poder
reducir (sustancialmente) el nmero de filas
distintas de cero:

El nmero 10000010
representa el mismo

nmero, si 1 es una anotacin abreviada para


designar el valor -1
DCSE 2010-11

7/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Algoritmo de Booth
Ejemplo (cont.):

Utilizando esta representacin ( 10000010),


basta con sumar dos productos parciales,
aunque el sumador tiene que ser capaz de
realizar restas.
Reducir el nmero de productos parciales es
equivalente a reducir el nmero de sumas, lo
que permite acelerar la operacin y reducir el
rea ocupada.
DCSE 2010-11

8/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Re-codificacin de Booth modificado


No resulta demasiado prctico para el diseo de
multiplicadores disponer de una matriz de
productos parciales de tamao variable.
Por eso, normalmente se utiliza el esquema de
re-codificacin de Booth modificado, en lugar
del esquema original.
El multiplicador se divide en grupos de 3 bits,
solapados por un bit. Cada grupo de 3 se recodifica segn la tabla siguiente:
DCSE 2010-11

9/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Re-codificacin de Booth modificado


Tabla de re-codificacin
Booth
Bits del
multiplicador

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

DCSE 2010-11

0
1
0
1
0
1
0
1

Ejemplos:
01110110(0) 011 110 011 100

recodificados

00
01
01
02
-02
-01
-01
00
10/34

02 -01 02 -02
00100111(0) 001 100 011 110

01 -02 02 -01
10111010(0) 101 111 101 100

-01 00 -01 -02

-01: complemento a 2
02: desplazamiento (multiplicar por 2)
-02: complemento a 2 y desplazamiento
Diseo de circuitos y sistemas digitales / Bloques aritmticos

Re-codificacin de Booth modificado


Tabla de re-codificacin Booth

15
25

45
05

th
oo

B
in
ac

ic
dif
co
re-

Bits del
multiplicador

re-codificados

00

01

01

02

-02

-01

-01

00

0 1 1 1 0 1 1 1 (0) 011 110

DCSE 2010-11

11/34

35

02 -01

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Re-codificacin de Booth modificado


Tabla de re-codificacin Booth

1
0

0 1

0 -1

7= 222 + (-1)20

2225

-15

35

th
oo

B
in
ac

ic
dif
co
re-

Bits del
multiplicador

re-codificados

00

01

01

02

-02

-01

-01

00

0 1 1 1 0 1 1 1 (0) 011 110

02 -01

0 1 0 1 (compl. 2): 1 0 1 0 + 0 0 0 1 = 1 0 1 1 y en 8 bits: 1 1 1 1 1 0 1 1


DCSE 2010-11

12/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Multiplicador matricial
Topolgicamente muy
similar al
procedimiento manual
de multiplicacin

Z7

X3

X2

X1

X0
Y1 Z0

X3

X2

X1

X0

HA

FA

FA

HA

X3

X2

X1

X0

FA

FA

FA

HA

X3

X2

X1

X0

FA

FA

FA

HA

Z6

Z5

Z4

Y3

Y2

Y0

Z1

Z2

Z3

Multiplicador matricial de 4
4 bits para nmeros sin signo
DCSE 2010-11

13/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Multiplicador matricial

La generacin de N PPs requiere NM puertas AND de 2 bits


La mayor parte del rea del multiplicador est dedicada a la suma de los N
PPs, que requiere N-1 sumadores de M bits
Desplazamiento: conectar apropiadamente las pistas de interconexin, sin
necesidad de lgica especial
Estructura compacta! Se puede implementar de forma rectangular (opt. layout)
DCSE 2010-11

14/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Multiplicador matricial
Cmo calcular el
retardo de propagacin
de este circuito?

Identificar camino crtico


de temporizacin (no
trivial)!
Se pueden identificar varios caminos con una longitud
prcticamente idntica

DCSE 2010-11

15/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Multiplicador matricial

Hay N-1 sumadores de M bits

tmult tAND + (N-1)tsum + [(M-1) + (N-2)]tcarry


(para el camino crtico 2)
DCSE 2010-11

16/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Multiplicador matricial
Hay dependencias verticales y horizontales en todos
los niveles
Todos los caminos crticos se tienen que acelerar al mismo
tiempo (acelerar solo uno de ellos sustituyendo un sumador
por otro ms rpido, como por ejemplo un sumador CarrySelect, no tiene mucho sentido)

tmult tAND + (N-1)tsum + [(M-1) + (N-2)]tcarry


De la ecuacin anterior, se observa que la
minimizacin de tmult requiere la minimizacin tanto de
tcarry como de tsum
Se puede utilizar un
sumador Carry-Save
DCSE 2010-11

17/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Multiplicador Carry-Save
Observamos que el resultado de la multiplicacin no
vara cuando los bits de salida del acarreo se
transmiten diagonalmente hacia abajo en lugar de solo
hacia la derecha
Este es el principio del CSA que hemos visto en
la clase anterior!
Para generar el resultado final se incluye en el diseo
un sumador adicional, denominado sumador de
combinacin de vectores
DCSE 2010-11

18/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Multiplicador Carry-Save

La propagacin de seales se realiza hacia la siguiente etapa y


no entre elementos de una misma etapa
DCSE 2010-11

19/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Multiplicador Carry-Save - ejemplo

compresor 3-2

DCSE 2010-11

20/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Multiplicador Carry-Save
La propagacin de seales
se realiza hacia la siguiente
etapa y no entre elementos
de una misma etapa

Retardo de un FA por cada


fila superior

tmult tAND + (N-1)tcarry + tfinalsum


Retardo de un sumador de N bits
DCSE 2010-11

21/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Disposicin rectangular de un CSM

y se
combinan
Se
utilizanmediante
6 sumadores
operaciones AND antes de
completos
las sumas

FA y 6 semi-sumadores HA

DCSE 2010-11

22/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

rbol de retardos balanceado


La cadena
vertical de FA en
un CSM es una
cadena serie.
Se puede reducir
el retardo de
dicha cadena
empleando
rboles binarios

DCSE 2010-11

23/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Multiplicador en rbol
Empleando sumadores para las sumas
parciales en estructura de rbol, se pueden
reducir tanto el camino crtico (retardo) como el
nm. de celdas sumadoras necesarias (rea)
Para un multiplicador de 44 bits, se puede
observar que solo la columna 3 de la matriz
de sumadores tiene que sumar 4 bits. Todas
las dems columnas son algo menos
complejas.

DCSE 2010-11

24/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

rbol de Wallace para un multiplicador de 44 bits

Para conseguir una


implementacin
mnima, recubrimos
de manera iterativa
el rbol con FA y HA
comenzando por la
parte ms densa.
En un primer paso
introducimos HA en
las columnas 4 y 3

DCSE 2010-11

25/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

rbol de Wallace para un multiplicador de 44 bits

Este es el rbol
reducido, y en esta
estructura
introducimos en una
segunda iteracin 3
FA y un HA.
DCSE 2010-11

26/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

rbol de Wallace para un multiplicador de 44 bits

Despus de esta
segunda iteracin de
reducciones hemos
creado un rbol de
profundidad 2, para
alimentar el
sumador final de dos
entradas, para el
cual se puede
utilizar cualquier tipo
de sumador
DCSE 2010-11

27/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

rbol de Wallace para un multiplicador de 44 bits

Solo se utilizan 3
sumadores completos
FA y 3 semi-sumadores
HA para el proceso de
reduccin
DCSE 2010-11

28/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Implementacin del multiplicador en rbol de Wallace

El multiplicador el rbol permite conseguir un ahorro sustancial de


hardware para multiplicadores de gran tamao.
Tambin se reduce el retardo de propagacin, que es: O(log3/2(N)).
Desventaja: el multiplicador Wallace es muy irregular, lo que complica
la tarea de obtener un layout eficiente.
HA

DCSE 2010-11

29/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Suma final
La velocidad del sumador final tiene gran importancia
La eleccin del estilo de sumador depender de la
estructura de la matriz de acumulacin. Se puede
preferir un CLA si todos los bits de entrada al sumador
llegan al mismo tiempo (es el sumador con el ms
pequeo retardo posible)
Este es el caso, por ejemplo, si se utiliza una etapa de
registro justo antes de la suma final. El procesamiento
en cadena mediante la inclusin de registros es una
tcnica frecuentemente utilizada en los multiplicadores
de altas prestaciones
DCSE 2010-11

30/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Suma final
En los multiplicadores que no estn basados en una
estructura de procesamiento en cadena, el perfil de
instantes de llegada de las entradas al sumador final
es bastante poco equilibrado, debido a las
profundidades lgicas variables del rbol del
multiplicador
En estas circunstancias, otras topologas de sumador,
como las de carry-select, suelen proporcionar
prestaciones similares a las del CLA, pero con un
coste en trminos de hardware sustancialmente menor

DCSE 2010-11

31/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Problemas

DCSE 2010-11

32/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Problema 1. Examen junio 2003


Se desea realizar un bloque combinacional que realice
la siguiente operacin:
Z = 4A + 7B + 3C
siendo A, B y C nmeros enteros positivos de 4 bits.
a) Determine los valores mximo y mnimo de la salida Z.
Cuntos bits son necesarios para poder representarla?
b) Utilizando nicamente sumadores completos de un bit,
construya el bloque combinacional. Si lo considera
oportuno siga la estructura de un multiplicador en array.
c) Sabiendo que los retardos de propagacin del sumador
completo de un bit son: tsuma=tcarry=1 ns, seale en la
estructura anterior los caminos con retardo mximo y
mnimo e indique sus valores.
DCSE 2010-11

33/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Problema 2. Examen febrero 2002


Se desea realizar un bloque sumador de 8+8 bits y salida de 8 bits ms acarreo. En este problema
se estudiarn diferentes alternativas de implementacin.
Considere que deber almacenar los datos de entrada en dos registros de 8 bits y que el resultado
deber escribirse en otro registro de 9 bits.
Los componentes disponibles son los siguientes:
Sumadores de 1 bit (full-adder): Area normalizada = 1; Retardo = 1 ns.
Puertas lgicas (cualesquiera): Area normalizada = 0,5; Retardo = 0,5 ns.
Multiplexores (2 a 1):
Area normalizada = 0,25; Retardo = 0,25 ns.
Multiplexores (8 a 1):
Area normalizada = 1,75; Retardo = 0,75 ns.
Flip-flops tipo D:
Area normalizada = 0,75; tprop = 0,75 ns.; tsetup = 0,25 ns.
a) Dibuje de forma detallada una arquitectura con un sumador del tipo carry-bypass de 8 bits con
grupos de 3 bits.
b) Comente la diferencia entre los dos tipos de sumadores carry-select y seleccione uno de ellos
para disear un sumador carry-select de 8 bits donde el grupo que contiene el bit menos
significativo sea de 2 bits. Dibuje de forma detallada la arquitectura resultante.
c) En el caso de disponer un nico sumador de 1 bit, dibuje el datapath de una arquitectura que
permita realizar la suma completa en secuencia.
d) Calcule el rea y el tiempo total (periodo mnimo nmero de ciclos de reloj) de cada una de
las implementaciones realizadas. Compare estos resultados y comente de forma razonada
cul(es) de las alternativas realizadas considera ms eficiente.
DCSE 2010-11

34/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

También podría gustarte