Está en la página 1de 41

Circuitos Aritmticos

Introduccin a los Sistemas


Lgicos y Digitales
2016

Sergio Noriega Introduccin a los Sistemas Lgicos y Digitales - 2016

CIRCUITOS ARITMTICOS

Clasificacin segn funcin:


Sumadores.
Restadores.
Multiplicadores.
Divisores.

Clasificacin segn formato:


Paralelo:

Mas complejo con mayor consumo


de hardware pero generalmente
muy rpido al procesar parcialmente
funciones en forma simultnea.

Serie:

Mas simple, con mejor optimizacin


de recursos de hardware pero lento
con latencias que dependen de la
extensin de bits a procesar.

CIRCUITOS ARITMTICOS

Sumador
Ripple-carry

Procesamiento paralelo
Sumador generalizado
A[(N-1)..0]i

S[(N-1)..0]

B[(N-1)..0]

Cn+1

Look-ahead carry
Carry-save
Carry-select

C0

El tipo de sumador de n bits a elegir depende de la forma en


que se procesa el acarreo (carry) de un bit hacia la otra posicin
mas significativa (de [i] a [i+1]).
Existen para la seleccin situaciones de compromiso (trade-off)
entre simplicidad circuital, velocidad de respuesta, consumo de
energa y disponibilidad estructural (en el caso de circuitos
lgicos programables).

CIRCUITOS ARITMTICOS

Procesamiento paralelo

Sumador Ripple-carry (sin signo)

Es la topologa mas simple pero que posee la


menor velocidad de respuesta ya que el bit de suma
en cada posicin de bit depende de los carry
anteriores por lo que se genera un efecto de retardo
acumulativo que ser mayor cuanto mayor sea la
cantidad de bits que tenga el sumador.
Para solucionar esto, existen estructuras alternativas
como las de look-ahead carry, carry-save, etc.

Procesamiento paralelo

CIRCUITOS ARITMTICOS

Sumador Ripple-carry (sin signo)


SEMI-SUMADOR DE UN BIT
(HALF-ADDER)

Tabla de verdad

Ai

A B C S
0 0 0

0 1 0

1 0 0

1 1 1

Ci+1

Bi

Si = Ai Bi

Si

Ci = Ai Bi

CIRCUITOS ARITMTICOS

Procesamiento paralelo

Sumador Ripple-carry (sin signo)


SUMADOR COMPLETO DE UN BIT
(FULL-ADDER)

Ai

Si
Ci+1

Bi

Ci

Tabla de verdad

Ci
0
0
0
0
1
1
1
1

Ai
0
0
1
1
0
0
1
1

Bi
0
1
0
1
0
1
0
1

Si Ci+1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1

Procesamiento paralelo

CIRCUITOS ARITMTICOS

Sumador Ripple-carry (sin signo)


SUMADOR COMPLETO (FULL-ADDER) DE UN BIT
AB

C
Ci

Ci

AB

0
1

Ci
Ci

AB

0
1

AB

00
1

01
1 1

AB

AB

00

01
0
4

AB

11

10
1

1
AB

AB

Si = A B Ci

Si = /A B /Ci +
A /B /Ci + /A /B Ci +
A B Ci

AB

11 10
1 3
1 7 1

Ci+1= A B +A Ci + B Ci
2
6

CIRCUITOS ARITMTICOS

Procesamiento paralelo

Sumador Ripple-carry (sin signo)

SUMADOR COMPLETO
(FULL-ADDER)

CIRCUITOS ARITMTICOS

Procesamiento paralelo

Sumador Ripple-carry (sin signo)

SUMADOR COMPLETO
(FULL-ADDER)

Otra posibilidad de
sntesis de Si

NOTA:
Por comodidad no se
dibujaron los negadores
a las entradas.

Procesamiento paralelo

CIRCUITOS ARITMTICOS

Sumador Ripple-carry (sin signo)


SUMADOR DE N BITS

AN-1 BN-1

Full
Adder

CN SN-1

CN-1

AN-2 BN-2

Full
Adder

CN-1 SN-2

A1

CN-2

..

B1

Full C1
Adder

C2 S1

A0

B0

Half
Adder

C1

S0

Procesamiento paralelo

CIRCUITOS ARITMTICOS

Sumador Ripple-carry (sin signo)


VELOCIDAD DE RESPUESTA

SUMADOR COMPLETO
(FULL-ADDER)

tarda
2 responder
Si Si
tarda
4 en

Ci+1 tarda 2 en responder

= tiempo de retardo

Procesamiento paralelo

CIRCUITOS ARITMTICOS

Sumador Ripple-carry (sin signo)


SUMADOR DE N BITS

AN-1 BN-1

VELOCIDAD DE RESPUESTA

AN-2 BN-2

CN-2
Full CN-1 Full
..
Adder
Adder

CN

SN-1

CN-1 SN-2

tpd(Ci) = (2i)
tpd(Si) = tpd(Ci) + 2

A1

B1

A0

Full C1
Adder

4 C2 S1
6

B0

Full C0
Adder

2 C1 S0 4

Para N=8 tpd(Ci) = 2N = 16


tpd(Si) = (2+2N) = 18

CIRCUITOS ARITMTICOS

Procesamiento paralelo

Sumador Ripple-carry (sin signo)


SUMADOR DE N BITS

VELOCIDAD DE RESPUESTA

Ventajas:
La estructura es simple y repetible tantas veces como
el nmero de bits que tenga el sumador.
Desventajas:
Se observa como el retardo crece cuanto mayor
cantidad de bits tenga el sumador.
La peor condicin es cuando debe cambiar la salida
del bit mas significativo.

Procesamiento paralelo

CIRCUITOS ARITMTICOS

Sumador Look-ahead carry (sin signo)


Esta estructura se basa en generar una lgica que trate
de predecir el carry para la prxima etapa.
De esta manera se gana en velocidad.
Se definen dos funciones denominadas
generate G y propagate P tal que en una etapa
genrica i responden a:

Gi = Ai Bi Indica cuando hay un Ci+1 independiente de Ci


Pi = Ai Bi Indica cuando hay dependencia con Ci
Un sumador de un bit basado en esta estructura responde a:
Si =

Ai Bi Ci = Pi Ci

Ci+1 = Ai Bi + Ci (Ai

Bi) = Gi + Pi Ci

Procesamiento paralelo

CIRCUITOS ARITMTICOS

Sumador Look-ahead carry (sin signo)


SUMADOR COMPLETO DE 1 BIT
En funcin de lo anterior se puede construir una etapa genrica:

2
2

Nota:Por compatibilidad con algunos textos se considerar aqu que una


compuerta XOR tiene el doble de retardo que una compuerta
bsica (AND u OR).

CIRCUITOS ARITMTICOS

Procesamiento paralelo

Sumador Look-ahead carry (sin signo)


SUMADOR COMPLETO DE 4 BIT

C1 = G0 + P0 C0
C2 = G1 + P1 C1 = G1 + P1 G0 + P1 P0 C0
C3 = G2 + P2 C2 = G2 + P2 G1 + P2 P1 G0 + P2 P1 P0 C0
C4 = G3 + P3 C3 = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 G0 +
P3 P2 P1 P0 C0

CIRCUITOS ARITMTICOS

Procesamiento paralelo

Sumador Look-ahead carry (sin signo)


SUMADOR COMPLETO DE 4 BIT

tpd(C1,C2,C3, C4) = 4
tpd(S0) = 4
tpd(S1,S2,S3) = 6

CIRCUITOS ARITMTICOS

Procesamiento paralelo

Sumador Look-ahead-carry (sin signo)


SUMADOR DE 4 BITS

VELOCIDAD DE RESPUESTA

Ventajas:
La estructura basada el la prediccin del carry permite
disminuir los tiempos de retardo.
Desventajas:
A medida que crece el nmero de bits a implementar,
la lgica de generacin de carry se hace mas compleja
necesitando de mayor nmero de compuertas.

Para evitar esto y no perder la ventaja de la velocidad de


respuesta se puede implementar por ejemplo grupos de
4 bits interconectados en cascada (ripple-carry).

CIRCUITOS ARITMTICOS

Procesamiento paralelo

Sumador Look-ahead-carry de 4BITS

EJEMPLO:74HC283

CIRCUITOS ARITMTICOS

Procesamiento paralelo

Sumador Look-ahead-carry de 4BITS


EJEMPLO:74HC283
De las hojas de datos de este sumador:

Retardo
Retardo
Retardo
Retardo
Retardo
Retardo
Retardo

desde
desde
desde
desde
desde
desde
desde

Cin a S1 = 52 ns
Cin a S2 = 58 ns
Cin a S3 = 63 ns
Cin a S1 = 74 ns
Ai Bi a Si = 74 ns.
Ai Bi a Cout = 63 ns.
Cin a Cout = 63 ns.

Procesamiento paralelo

CIRCUITOS ARITMTICOS

Sumador Carry-Select de 8 bits


Esta estructura se basa en la divisin de un sumador de N bits
en dos partes:
La que contiene los bits menos significativos constitudo por un
FA y la que contiene los bits mas significativos formado por 2 FA
y dos MUXs: uno de 2:1 simple y otro de 2:1 de N/2 bits.

AH

BH

FA1(N/2)
Cout

AH

Cin

BH

FA2(N/2)

Cout
1

Cout

MUXs 2:1

SH

AL
Cin

BL

FA3(N/2)

Cout
(N/2)

0
sel

SL

CIRCUITOS ARITMTICOS

Procesamiento paralelo

Sumador Carry-Select de 8 bits


Para la suma AL + BL se emplea el sumador FA3.
Dependiendo del valor de Carry final de FA3, se presenta en la
salida SH el resultado de la suma (AH + BH) del FA1 FA2A.
Si Carry out(N/2) es 0 SH proviene de FA2 y viceversa.

De esta manera, se puede reducir a casi la mitad el tiempo de


retardo respecto a un ripple-carry a expensas de mayor
complejidad en el diseo.

CIRCUITOS ARITMTICOS

Procesamiento paralelo

Sumador Carry-Save
Sirve en general para realizar operaciones de suma cuando se
necesitan mas de dos operandos. Adems presenta una mejora
en la velocidad de respuesta respecto del Ripple-Carry.
La metodologa es la sumar los operandos por un lado sin
considerar los carry; sumar slo los carry por el otro y por ltimo
realizar esas dos sumas parciales para obtener el resultado correcto
de la suma. Existen multiplicadores basados en sumas carry-save.
EJEMPLO: Suma de A+B+C, donde: A=10011;B=11001;Z=01011
A = 10011 (1910)
B = 11001 (2510)
C = 01011 (1110)
s:= 00001
s:= 00001
c:= 11011S = 110111 (5510)

A = 10011
B = 11001
C = 01011
c:= 11011-

CIRCUITOS ARITMTICOS

Procesamiento paralelo

Sumador Carry-Save de un bit de 3 operandos


A
Cin

A B C

FA

Cout
FA:Full Adder

CSA

Cout S

Hasta aqu slo reordenamos un FA normal


FA: Full Adder
CSA: Carry-Save Adder

Procesamiento paralelo

CIRCUITOS ARITMTICOS

Sumador Carry-Save de 4 bits de 3 operandos


a(3) b(3) c(3)

a(2) b(2) c(2)

a(1) b(1) c(1)

CSA13

CSA12

CSA11

c1(3)

sum1(3) c1(2)

sum1(2)

c1(1)

sum1(1)

a(0) b(0) c(0)

CSA10

c1(0)

sum1(0)

0
Cout

CSA23

Sum4

c2(2)

CSA22

Sum3

c2(1)

CSA21

Sum2

c2(0)

CSA20

Sum1

0
Sum0

SE PUEDE APRECIAR QUE TIENE MENOS CADENA DE RETARDOS QUE UN RIPPLE-CARRY

Procesamiento paralelo

CIRCUITOS ARITMTICOS

Restador Ripple-carry (sin signo)


SEMI-RESTADOR DE UN BIT
(HALF-SUBTRACTER)

Tabla de verdad

A B S C
0 0 0

0 1 1

1 0 1

1 1 0

Ai

S=A-B

Ci+1

Bi

Si = Ai Bi

C se denomina borrow prstamo.

Si

Ci = /Ai Bi

CIRCUITOS ARITMTICOS

Procesamiento paralelo

Restador Ripple-carry (sin signo)


RESTADOR COMPLETO DE UN BIT
(FULL-SUBTRACTER)

Ai

Si
Ci+1

Bi

Ci

Tabla de verdad

Ai
0
0
0
0
1
1
1
1

Bi
0
0
1
1
0
0
1
1

Ci
0
1
0
1
0
1
0
1

Si Ci+1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1

Procesamiento paralelo

CIRCUITOS ARITMTICOS

Restador en CA2 basado en Sumador FA


Para realizar (A B) en Ca2 podemos plantear:
S = A-B = A + 2n - B = A BCA1 + 1 = A + (/B) +1

A[] B[]
Inversores

INV
Cout

Cout

FA

Cin

FA:Full Adder

S[]

CIRCUITOS ARITMTICOS

Procesamiento paralelo

Multiplicadores por nmero potencia de 2 (sin signo)


Desplazamientos de bits a izquierda son equivalentes a
multiplicar por nmeros en potencia de 2.
Dado:
A = 00010111 = 2310
desplazando un lugar: B = 00101110 = 4610
desplazando 2 lugares: C = 01011100 = 9210
desplazando 3 lugares: D = 10111000 = 18410
Desplazamientos de bits a derecha son equivalentes a
dividir por nmeros en potencia de 2.
Dado:
A = 10010000 = 14410
desplazando un lugar: B = 01001000 = 7210
desplazando 2 lugares: C = 00100100 = 3610
desplazando 3 lugares: D = 00010010 = 1810

Solucin: Empleo de registros de desplazamiento


circuitos basados en barrel-shifters.

CIRCUITOS ARITMTICOS

Procesamiento paralelo

Multiplicadores sin signo (algoritmo convencional)

Producto
Producto
Producto
Producto

parcial
parcial
parcial
parcial

1
2
3
4

1011
x
1010
1 0000
1011
0000
1010
1101110

Las operacin de multiplicacin


se reduce en una serie de
operaciones AND entre el
multiplicando y cada bit del
multiplicador considerando el
peso de cada operacin a travs
de desplazamiento a izquierda.
Luego se realizan las las sumas
de los productos parciales
obtenidos.

Procesamiento paralelo

CIRCUITOS ARITMTICOS

Multiplicadores sin signo (algoritmo convencional)


RIPPLE CARRY
1,3

Notacin:
0,1 X0Y1

1,1 0,2

FA

FA

HA
c

2,2

2,1

FA

FA

FA

3,3

3,2

3,1

FA

FA

FA

P7 P6

2,3

1,2 0,3

P5

1,0 0,1 0,0

HA
s

2,0

HA
s

3,0

HA
s

P4

P3

P[7..0] = X[3..0] Y[3..0]

P2

P1 P0

CIRCUITOS ARITMTICOS

Procesamiento paralelo

Multiplicadores sin signo (algoritmo de Booth)

CIRCUITOS ARITMTICOS

Procesamiento paralelo

Multiplicadores sin signo (algoritmo de Booth)


El ejemplo ilustra un multiplicador
X[3..0] Y[3..0] (4 x 4 bits)
Se realizan dos multiplicaciones
parciales (PPA y PPB) empeando
sumadores, compuertas AND y
MUXs.
Y[1..0] e Y[3..2] manejan por
separado un MUX.
La ventaja de este diseo es que
en las FPGA los MUX son un
recurso muy comn lo que hace
un circuito mas compacto adems
de velocidad razonable.
NOTA DE APLICACIN: Implementing multipliers with Actel FPGAs de ACTEL

Procesamiento paralelo

CIRCUITOS ARITMTICOS

Multiplicadores sin signo (dato por una constante)

mN

Barrel-shifter

mN

Puede multiplicar dividir


por m donde m=2n, siendo
n un nmero entero (+)
(-) que representa las
veces que se desplaza el
dato N.

sumador de N bits

Barrel-shifter
m=2,4,8,16,etc.

N
Ejemplo: m=2 se tiene 3xN

mN+N =
(m+1)N
Cmo se puede hacer:
9/8N..???

Procesamiento paralelo

CIRCUITOS ARITMTICOS

Multiplicadores sin signo (dato por una constante)


Sumador (a+b)
<<1

<<3

b
a

10A
Restador (a-b)

<<1

<<4

14A

<<1: Desplazamiento aritmtico hacia izquierda una posicin (x2)


<<3: Desplazamiento aritmtico hacia izquierda 3 posiciones (x8)
<<4: Desplazamiento aritmtico hacia izquierda 4 posiciones (x16)

Procesamiento paralelo

CIRCUITOS ARITMTICOS

Multiplicadores de Productos Parciales (usado por Xilinx)


Desplazador aritmtico
a izquierda una posicin

(N bits)
B
00
01
10
11

RESULTADO
0
A
2A
3A

3
2

<<1

MUX 4:1
con ancho
de N bits

0
B

(2 bits)

CIRCUITOS ARITMTICOS

Unidad Aritmtico-Lgica

Procesamiento paralelo
EJEMPLO: SN74AS181
Circuito que puede realizar
funciones lgicas aritmticas de 4 bits segn
entrada de seleccin M.
Los operandos de entrada
lgicos son A y B y el de
salida F.
Se agregan el carry de
entrada Cn y de salida Cn+4
para operaciones como
nmeros.

CIRCUITOS ARITMTICOS

Unidad Aritmtico-Lgica

Procesamiento paralelo
EJEMPLO: SN74AS181

Procesamiento serie

CIRCUITOS ARITMTICOS

Sumador sin signo


A3A2A1A0
S3S2S1S0

Ai

RD
CLK

Bi

RD

Si

RD

Ci+1
Ci

CLK

1
/SD

FF
D

Q
/Q

B3B2B1B0

/INIT

/CD

CIRCUITOS ARITMTICOS

Procesamiento serie

Complementador
de nmeros en
formato Ca2

CLK

A3A2A1A0

1 /SD

FF
D

/Q

/CD

RD
CLK

Luego de resetear los FFs se ingresan


los bits desde el LSB hasta el MSB.
Hasta que se detecte un 1, la salida
copia el dato y a partir de all, invierte
todos los que sigan.

CLK
/INIT

/SD

FF
D

/Q

/CD

CIRCUITOS ARITMTICOS

Bibliografa:
Libros:

Sistemas Digitales. R. Tocci, N. Widmer, G. Moss. Ed. Prentice Hall.


Diseo Digital. M. Morris Mano. Ed. Prentice Hall. 3ra edicin.
Diseo de Sistemas Digitales. John Vyemura. Ed. Thomson.
Diseo Lgico. Antonio Ruiz, Alberto Espinosa. Ed. McGraw-Hill.
Digital Design:Principles & Practices. John Wakerly. Ed. Prentice Hall.
Diseo Digital. Alan Marcovitz. Ed. McGraw-Hill.
Electrnica Digital. James Bignell, R. Donovan. Ed. CECSA.
Tcnicas Digitales con Circuitos Integrados. M. Ginzburg.
Fundamentos de Diseo Lgico y Computadoras. M. Mano, C. Kime.
Ed. Prentice Hall.
Teora de conmutacin y Diseo lgico. F. Hill, G. Peterson. Ed. Limusa

Sergio Noriega Introduccin a los Sistemas Lgicos y Digitales - 2012

También podría gustarte