Está en la página 1de 17

SUMADORES

Diseo de Sistemas con FPGA


1er cuatrimestre 2009
Patricia Borensztejn

Sumadores
Full Adder

S i = ai bi ci
Ci + 1 = ai bi + ai ci + bi ci

Half Adder

Si = ai bi
Ci + 1 = ai bi

Ripple-Carry Adder: el normal


Ripple-carry adder: suma dos nmeros de n-bits
con n full adders. El delay del ripple-carry adder es
la longitud n de los operandos.
Fcil de construir. Ocupa poca rea.

Sumador Serial
Se usa en procesamiento de seales. Es
importante que el tiempo de ciclo sea corto. No
importa tanto la latencia.
Formato de los datos (LSB primero):
0

0
LSB

Cuando empieza un par de datos nuevos, el


carry in se pone a cero.

Estructura del sumador serial


La seal LSB
pone a cero
carry shift
register.
El tiempo de
ciclo es igual
al del full
adder mas el
delay del
registro.

Carry-lookahead adder
Descompone el carry en dos partes: acarreo propagado
y acarreo generado.
Generado: si los dos sumandos son 1 (ai bi=1)
Propagado: si alguno de los dos es 1, propaga el carry de la
suma anterior.
Ci + 1 = ai bi + ai ci + bi ci
Ci + 1 = ai bi + (ai bi )ci

P y G no dependen del carry anterior! :


Pi = ai xor bi
Gi = a i b i

Reescribimos S y C usando P and G:


si = ci xor Pi
ci+1 = Gi + Pici

Carry Lookahead Adder

No hay dependencia de los valores anteriores.


Los acarreos de cada bit pueden calcularse independientemente.
C1 = G0 + P0.C0
C2 = G1 + P1.C1 = G1 + P1.G0 + P1.P0.C0
C3 = G2 + P2.G1 + P2.P1.G0 + P2.P1.P0.C0
C4 = G3 + P3.G2 + P3.P2.G1 + P3P2.P1.G0 + P3P2.P1.P0.C0

Pi = ai
xor bi
Gi = ai bi

16-bit CLA

Desventaja del CLA: para muchos bits, la lgica se complica.


Generacin de carry, requiere puertas con mas fanin (nmero de
entradas mas lento)

Se usan mdulos de 4 bits y se encadenan como los ripple carry


adders

Carry Skip Adder

Mira por casos donde el carry de entrada a un conjunto de bits es


el mismo que el de salida.
Tpicamente organizado en etapas de m bits
Esto sucede cuando la suma de las entradas de m bits es igual a :
2m-1. (probarlo con m=2).
En ese caso, el grupo de bits propaga el carry de entrada. Es decir:
debe cumplirse que todos los Pi sean 1.
Si el grupo no propaga, genera o mata. (estoy hablando del
acarreo!)
El carry skip adder est formado por bloques de m bits que
implementan el carry ripple adder.
El objetivo es mejorar el tiempo de propagacin de los ripple
adders. Es decir, reducir el tiempo en que el carry se propaga.

M-bit carry-skip adder


X(j)

CSK-m adder

Y(j)
m

cout(j)
0

M-bit carry ripple adder

cin(j+1)
1
P(j)

S(j)

cin(j)

Carry-select adder
Calcula dos resultados de la suma y el
acarreo de salida en paralelo: uno para
cada valor del carry de entrada (0,1)
Luego, un multiplexor selecciona el
resultado correcto.
Los sumadores operan en paralelo. El
retardo est limitado por el retardo de los
multiplexores, que es menor.

Estructura del Carry-select adder

Conditional Adder

Carry Select Adder

Unlike the conditional-sum adder, the sizes of the kth


group is chosen so as to equalize the delay of the ripplecarry within the group and the delay of the carry-select
chain from group 1 to group k. In this generator, the
group lengths follow the simple arithmetic progression 1,
1, 2, 3, ...

Bibliografa
Digital Arithmetic
Syntesis of Aritmetic Circuits
FPGA Based System Design

FPGA Adders
FPGA Adders: Performance evalution and
optimal design. IEEE Design & Test of
Computers. Xing y W.H.Yu
Ripple-carry adder has highest
performance/cost.
Optimized adders are most effective in very
long bit widths (> 48 bits).

400

120

350

350

300

Performance-Cost Ratio

100

Operational Time (ns)

200

150

80

60

40

100

250

Rip p le
Co m p let e

200

CL A
Sk ip
RC-select

150

100

20

50

Bits

1998 IEEE

Bits

80

80

56

32

72

40

Bits

56

32

50

Cost (CLBs)

250

300