Sunteți pe pagina 1din 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

X i 2i

Y=
M + N 1 k =0

N 1 j =0

Yj 2 j

X i , Y j {0,1}

Definicin de la operacin de multiplicacin:


Z = XY =

Z k 2k =
N 1

M 1 N 1 i j Xi 2 Yj 2 = i =0 j =0
DCSE 2010-11

M 1 i+ j X iY j 2 j =0 i =0

2/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Multiplicadores Desplazamiento y Suma X= X2 N 1 M 1 i+ j


M 1 i

Y=

i =0 N 1
j =0

Y 2
j

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 1 0 1 1 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 Resultado Productos parciales Multiplicando Multiplicador

DCSE 2010-11

4/34

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 recodificados Ejemplos:
01110110(0) 011 110 011 100 02 -01 02 -02 00100111(0) 001 100 011 110 01 -02 02 -01 10111010(0) 101 111 101 100 -01 00 -01 -02

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

00 01 01 02 -02 -01 -01 00


10/34

-01: complemento a 2 02: desplazamiento (multiplicar por 2) -02: complemento a 2 y desplazamiento


Diseo de circuitos y sistemas digitales / Bloques aritmticos

DCSE 2010-11

Re-codificacin de Booth modificado


Tabla de re-codificacin Booth Bits del multiplicador re-codificados

1 1 1 0 1

0 1 0 1

1 1 1

5 7 15 25 45 05

0 0

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

00 01 01 02 -02 -01 -01 00

0 0 0 0 1 0 1 0 0

ic dif co reB in ac th oo

0 0 1 1 1 1

+
0

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

0 1 0 0 0 1 1 35 02 -01

DCSE 2010-11

11/34

Diseo de circuitos y sistemas digitales / Bloques aritmticos

Re-codificacin de Booth modificado


Tabla de re-codificacin Booth Bits del multiplicador re-codificados

1 2 0

0 1 0 -1 1 1

5 7= 222 + (-1)20

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

00 01 01 02 -02 -01 -01 00

1 1 0 1 1 1 0

0 1 1

ic dif co re-

-15 2225

+
0

B in ac th oo

35

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
X3 FA X3 FA Z7 Z6 X2 FA Z5 X3 X3 HA X2 FA X1 FA Z4 X2 FA X1 FA X0 HA Z3 Y3 X2 X1 FA X0 HA Z2 Y2 X1 X0 HA Z1 X0 Y1 Z0 Y0

Multiplicador matricial de 44 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 mediante Se utilizan 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

S-ar putea să vă placă și