Está en la página 1de 28

TEMA 6

ARITMTICA BINARIA Y CIRCUITOS ARITMTICOS

1. ARITMTICA BINARIA 1.1 Aritmtica binaria bsica a) Suma binaria


1.Sea Ci el acarreo (carry) generado al sumar los bits AiBi (Ai+Bi) 2. Sea i=0 y Ci =0 3. Si = LSB(Ai + Bi + Ci), 4. Ci+1 = MSB(Ai + Bi + Ci) y Si = Si -2 5. Incrementa i 6. Repite desde 3 mientras que i < n.

Ejemplos:

1 1=C out 1 + 1 1 1

1 1 1 0

0 0 0 0

0 1 0 1

Acarreos A B S

1 1=Cout 1 + 0 1 0

1 1 0 0

1 1 1 0 1 0 0

Acarreos A B S

b) Resta binaria
1. Sea Ci el acarreo (borrow) generado al restar los bits Ai Bi 2. Sea i=0 y Ci =0 3. Si Ai >= (Bi + Ci) entonces Ri = Ai - (Bi + Ci) y Ci+1 =0 en caso contrario Ri = LSB[ (Bi + Ci) - Ai] y Ci+1 =1. La funcin LSB[] devuelve el bit menos significativo del argumento 4. Incrementa i 5. Repite desde 3 mientras que i < n

Ejemplos:

0 0=Cout 1 0 0

1 0 0 1

0 0 1 1 1 1 0

Acarreos A B R

1 1=C 1 out - 1

1 0 1

1 0 0 1 1 0 1 1

Acarreos A B R

1 0

c) Multiplicacin binaria La multiplicacin binaria sigue las mismas reglas que la correspondiente a la base diez, salvo que la suma final se realiza en binario. Ejemplos:
1 x 1 1 1 0 0 0 1 0 1 0 1 1 0 1
P

0 0 0

1 1 1

A B

1 x 1 1 1 0 1 0 0 0 1 1 1 1 1

1 0 1 0 1

0 1

1 1

A B

0 1 1 1 1
P

d) Divisin binaria Ejemplos:

1 0 1 1 1 1 1 0 0 - 1 0 0 1 1 1 - 1 0 0 1 1 1 - 1 0 0 1 1 Resto 1 011 Cociente

1 0 0 1 0 1 1 1 0 1 10 - 1 1 0 0 1 1 0 - 1 1 0 0 1 Cociente Resto

1.2 Aritmtica en notacin signo-magnitud a) Si los dos nmeros son del mismo signo, la magnitud del resultado se corresponde con la suma de las magnitudes de los nmeros. Adems, el bit de signo del resultado es el mismo que el de cualquiera de los sumandos b) Si los dos nmeros son de distinto signo, la magnitud del resultado se determina calculando la diferencia entre la magnitud mayor y menor de los dos nmeros. El bit de signo se corresponde con el del nmero que tenga mayor magnitud. Ejemplo:

Logica de comparacion

+7 -8

00111 11000
signo del numero de mayor magnitud

> <

1000 0111 0001

10001

1.3 Aritmtica en Complemento a 2 La representacin de nmeros binarios con signo en notacin complemento a 2(o complemento a 1) eliminan la necesidad de utilizar circuitos restadores para la realizacin de las operaciones aritmticas bsicas. En complemento a 2, un nmero negativo se obtiene aplicando el operador Ca2 al mdulo de dicho nmero (ms un cero en la posicin ms significativa). Ca2(M) = 2n M La expresin de un nmero negativo en Ca2, lleva implcito la operacin de resta. En la aritmtica en Ca2 deben considerarse algunas situaciones: I) Se disponen de dos nmeros binarios A y B positivos

La suma binaria de dos nmeros A y B positivos expresados en Ca2 genera el resultado correcto tambin expresado en Ca2. Ejemplo:

+5 +6

00101 00110 01011 = +11

Puede darse la situacin paradjica en que al sumar dos nmeros positivos, el resultado sea un nmero negativo (bit ms significativo a 1). En este caso se dice que se ha generado un overflow (desbordamiento). El desbordamiento se produce cuando la magnitud del resultado no puede ser expresada con el nmero de bits de los operandos. Ejemplo:

+12 01100 +13 01101 11001 = -7!


5

Se soluciona de forma sencilla sin ms que aadir ms bits a la representacin de los nmeros.

+12 001100 +13 001101 011001 = +25

II)

Se disponen de dos nmeros binarios A y B negativos

Ejemplo:

-5 -6 Cout

11011 11010 1 10101 = -11 OK!

Ejemplo:
-12 -13 Cout = +7 ERROR! 10100 10011 1 00111

La solucin es idntica, se aaden ms bits.

-12 -13 Cout

110100 110011 1 100111 = -25 OK!


6

Si Ay B son nmeros negativos, entonces en Ca2 expresan la cantidad 2n |A| 2n - |B| donde n es el nmero de bits de A y B y |A|, |B| son las magnitudes de ambos nmeros. La suma de estas cantidades debe generar un resultado en Ca2 igual a 2n (A+B) pero el resultado real de la suma es 2n A+2n B =2n (A+B) +2n Nos sobra, de la suma real, el trmino 2n para obtener el resultado correcto. Obsrvese que si el nmero A y B tiene n bits, el trmino 2n tiene n+1 bits, siendo el bit ms significativo un 1, y los restantes n bits 0. La suma de este trmino, al resultado esperado, 2n (A+B), genera el acarreo de salida.

III)

Se disponen de dos nmeros binarios A y B de distinto signo.

a) magnitud(A) < = magnitud(B) (|A|<=|B|) Ejemplo: -12 13 Cout = 1 OK! 10100 01101 1 00001

b) magnitud(A) > magnitud(B) (|A|>|B|) Ejemplo:

+12 01100 -13 10011 11111 Cout = -1 0k!


S A es un nmero negativo, entonces en Ca2 expresa la cantidad 2n |A| Si |A|<=|B|, entonces el resultado debe ser un nmero positivo que en Ca2 se expresara como: B-A Pero la suma de las cantidades 2n A con B genera el resultado 2n + (B-A) por tanto si B>=A, al resultado correcto se le suma el trmino 2n, o sea, el acarreo de salida, que debe despreciarse. En cambio si |A|>|B| el resultado es un nmero negativo que debe expresarse como: 2n (A-B) De hecho, esta es la cantidad que se obtiene por la suma de ambos nmeros, pero ahora no se genera acarreo puesto que A-B es una cantidad positiva que se resta a 2n. CONCLUSIONES: La aritmtica en Ca2 permite la realizacin de sumas y restas utilizando, exclusivamente, un sumador binario. El resultado correcto de la operacin aritmtica se obtiene despreciando el acarreo de salida si este se genera.
8

Muchos fabricantes de microprocesadores que usan la notacin Ca2 para la representacin de nmeros con signo en sus mquinas incluyen circuitos sumadores y restadores en las unidades de clculo de los mismos, para la realizacin de las operaciones aritmticas. Se pueden distinguir los siguientes casos: a) signo (A)=signo(B) a.1) Si A > B, entonces R=A-B es positivo y no se genera acarreo de salida Cout=0 Ejemplos:

0
out 0=C 1

0 0 0 1 0 1 1 0 0

Acarreos A = -3 B = -4 R=1

0 0=C 0 out - 0 0

0 1 0 0

1 1 0 0 1 1 0 1

Acarreos A=4 B =3 R=1

- 1

0 0 0 1

a.2) Si A <B, entonces el resultado de la resta es el complemento a 2 de la diferencia B-A y se genera acarreo de salida, Cout=1. Ejemplos:

1 1=C 1 out - 1

1 1 1 1 0 0 1 0 1 1 1

Acarreos A= -4 B = -3 R = -1

1 1=Cout 0 - 0 1

1 0 1 1

0 1 1 0 0

Acarreos A=4 B =3 R = -1

1 1

1 1

Ntese que al restar dos nmeros con el mismo signo, es imposible que se genere desbordamiento (overflow).

b) A es un nmero positivo y B es negativo ( A>0 y B<0 ) El resultado obtenido debe ser positivo y se genera acarreo (borrow) de salida Cout=1. Ejemplo:

1 1=Cout 0 1 0

1 0 1 1

0 1 1 0 0 1 1

Acarreos A =3 B = -4 R=7

La generacin de desbordamientos es posible en este caso Ejemplos:

1 1=Cout 0 1 1

0 1 1 0

0 0 1 0 0

Acarreos A =5 B = -4 R = -7!

1 1 1=Cout 0 1 0 0 1 1

0 1 1 0

0 0 1 0 0 0 1

Acarreos A =5 B = -4 R = +9 OK

0 1

c) A es un nmero negativo y B es positivo (A<0 y B>0) El resultado obtenido debe ser negativo y no se genera acarreo (borrow) final Cout =0. Ejemplo:

0 0=Cout 1 0 1

0 1 0 0

1 0 0 1 1 0 1

Acarreos A = -4 B=3 R = -7
10

Tambin es posible en este caso la aparicin de desbordamientos. Ejemplos:

1 1=C 0 out - 1 1

0 1 1 0

0 0 0 1 0 0 0 1

Acarreos A =5 B = -4 R = -7!

0 0=C 1 out - 0 1

0 1 0

1 1 1 1 1 0 0 0 1 1 1

Acarreos A = -4 B =5 R = -9 OK

0 1

11

1.4 Aritmtica en Complemento a 1 Al igual que sucedi con la aritmtica en Ca2, en Ca1 deben considerarse algunas situaciones especiales: I) Se disponen de dos nmeros A y B positivos

Este caso es idntico al del Ca2 puesto que los nmeros positivos se expersan igual II) Se disponen de dos nmeros A y B negativos

Ejemplo: -5 -6 Cout = -12! 11010 11001 1 10011

En Ca1, el acarreo generado se desprecia y adems se debe aadir una unidad al resultado obtenido por el sumador para conseguir el valor correcto.

-5 -6 Cout

11010 11001 1 10011 +1 10100 = -11 OK!

Tambin se puede dar situacin de overflow

12

Si Ay B son nmeros negativos sin parte fraccionaria, entonces en Ca1 expresan la cantidad 2n |A| - 1 2n - |B| - 1 donde n es el nmero de bits de A y B y |A|, |B| son las magnitudes de ambos nmeros. El resultado correcto, expresado en Ca1, de la suma de A y B debe ser 2n (A+B) 1 Pero la suma de estas cantidades genera el siguiente resultado 2n A 1 +2n B-1 =2n (A+B) -1 + 2n 1 Nos sobra, de la suma real, el trmino 2n, y adems el resultado correcto aparece con una unidad menos. 2. Se disponen de dos nmeros binarios A y B de distinto signo.

a) magnitud(A) < = magnitud(B) (|A|<=|B|)

Ejemplo:

-12 10011 +13 01101 Cout 1 00001 +1 00001 = +1 OK!

13

b) magnitud(A) > magnitud(B) (|A|>|B|) Ejemplo:

+12 01100 -13 00010 1 0 11110 = -1 OK! Si A es un nmero negativo,1 entonces en Ca1 expresa la cantidad
2n |A| - 1 Si |A|<=|B|, entonces el resultado debe ser un nmero positivo que en Ca1 se expresara como: (B-A) Pero la suma de las cantidades 2n A -1 con B genera el resultado 2n + (B-A) 1 por tanto si B>=A, al resultado correcto se le suma el trmino 2n, o sea, el acarreo de salida, que debe despreciarse y se le resta una unidad. En cambio si |A|>|B| el resultado es un nmero negativo que debe expresarse como: 2n (A-B) 1 De hecho, esta es la cantidad que se obtiene por la suma de ambos nmeros, pero ahora no se genera acarreo puesto que A-B es una cantidad positiva que se resta a 2n 1. CONCLUSIONES: La aritmtica en Ca1 permite la realizacin de sumas y restas utilizando, exclusivamente, un sumador binario. El resultado correcto de la operacin aritmtica se obtiene despreciando el acarreo de salida que se utiliza para sumar una unidad al resultado.
14

2.CIRCUITOS ARITMTICOS BSICOS 2.1 Circuitos semisumador y sumador completo Un semisumador o sumador medio (HA), es un circuito combinacional con dos entradas Ai y Bi y dos salidas Si y Ci+1. La salida Si representa el resultado de la suma aritmtica de las entradas Ai y Bi y la salida Ci+1, el acarreo.
Ai HA Bi Ci+1 Si

Entradas Salidas Ai Bi Ci+1 Si 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0

Ai Bi Si = Ai Bi Ci+1= Ai Bi

=1

Si

&

Ci+1

El sumador completo o sumador total es un circuito combinacional con tres entradas, Ai Bi Ci y dos salidas Si y Ci+1. La salida Si representa la suma binaria de las tres entradas y Ci+1 el accarreo. Entradas Salidas Ai Bi Ci Ci+1Si 0 0 0 0 0 Ai Si 0 0 1 0 1 0 1 0 0 1 FA Bi 0 1 1 1 0 1 0 0 0 1 Ci+1 Ci 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Si = Ai Bi Ci
15

Ci+1= Ai Bi + Ai Ci + Bi Ci 2.2 Circuitos semirestador y restador completo Un semirestador (HS) o restador medio es un circuito combinacional con dos entradas, Ai y Bi y dos salidas Ri y Ci+1. La salida Ri representa el resultado de la resta aritmtica de las entradas Ai y Bi (Ai Bi)y la salida Ci+1, el arrastre de la resta (me llevo uno). Entradas Salidas Ai Bi Ci+1Ri 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0

Ai HS Bi

Ri

Ci+1
Ri = Ai Bi Ci+1= Ai Bi

Un restador completo (FS) es un circuito combinacional con tres entradas Ai, Bi y Ci y dos salidas Ri y Ci+1. La salida Ri representa el resultado de la resta aritmtica de las entradas Ai, Bi y Ci (Ai Bi Ci) y la salida Ci+1, el arrastre. Entradas Salidas Ai Bi Ci Ci+1Ri 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1

Ai Bi Ci FS

Ri

Ci+1

Ri = Ai Bi Ci Ci+1= Ai Ci + Ai Bi + Ci Bi

16

2.3 Sumadores y restadores de n bits Los sumadores y restadores anteriores pueden combinarse para formar circuitos sumadores y restadores de nmeros de n bits. La suma de dos nmeros binarios de n bits A (An-1...A0) y B (Bn-1...B0) genera un resultado, tambin de n bits, S (Sn-1...S0) y un acarreo Cn. Cn Cn-1 An-1 Bn-1 Cn Sn-1 A2 B2 S2 C2 C1 A1 A0 B1 B0 S1 S0

Para la etapa i, se suman los bits Ai Bi Ci para dar el resultado Si y se genera el acarreo para la siguiente etapa (Ci+1).
An-1 Bn-1 A2 B2 A1 B1 A0 B0

Cn-1
FA FA

C2
FA

C1
HA

Cn

C3

C2

C1

Sn-1

S2

S1

S0

Los sumadores de n bits pueden representarse como bloques funcionales que disponen de 2*n entradas (nmeros A y B), generan n salidas (resultado S) y un acarreo, Cn.
An-1,..0 Bn-1,..0

Sumador de n bits

Cn+1

Sn-1,..0
17

En la siguiente figura se representa un circuito aritmtico de 4 bits y su bloque funcional. Se aprecia que adems del acarreo de salida CO(C4) existe un acarreo de entrada CI(C0).

En la siguiente figura se representa una asociacin de sumadores de cuatro bits para sumar dos nmeros de 12 bits. A11-8 B11-8 A7..4 B7..4 A3..0 B3..0
0

Cin Sumador de 4 bits Cout Cn S11-8 Sumador de 4 bits Cout S7..4

Cin Sumador de 4 bits Cout S3..0

Cin

Un restador de dos nmeros de n bits, puede construirse como muestra la siguiente figura.
An-1 Bn-1 A2 B2 A1 B1 A0 B0

Cn-1
FS FS

C2
FS

C1
HS

Cn

C3

C2

C1

Rn-1

R2

R1

R0 18

2.4 Circuito sumador-restador La operacin aritmtica de la resta puede implementarse con una suma si los nmeros se introducen en complemento a 1 o en complemento a 2. En este apartado, se disear un circuito sumador/restador, utilizando las propiedades de las notaciones Ca1 y Ca2. Este circuito debe disponer de una seal de control RESTAR/#SUMAR.

An-1,..0

B oCa1(B) { Ca2(B)}

Cin Sumador de n bits Cout Cn Sn-1,..0

En la siguiente figura se ha representado una puerta exor de dos entradas denominadas, a y control; y una salida S. a =1 control S

El circuito complementador
Bn-1 B1 B0

control

Sn-1

S1

S0

19

La aritmtica en Ca1 exige que al resultado de la suma o resta, se debe aadir una unidad, en caso de generarse acarreo, para obtener el resultado correcto. El circuito sumador/restador en complemento a 1 se muestra en la siguiente figura.

Bn-1,..0

An-1,..0

Circuito complementador RESTAR/#SUMAR B oCa1(B)

Cin Sumador de n bits Cout Cn Sn-1,..0

&

Circuito sumador/restador en Ca2

Bn-1,..0

An-1,..0

Circuito complementador B oCa1(B) Cin

RESTAR/#SUMAR

Sumador de n bits Cout Sn-1,..0


20

2.5 Sumador BCD: aritmtica decimal Algunos aspectos deben ser considerados en la aritmtica BCD. En la suma de dos digitos BCD con sumadores bianrios de 4 bits, pueden darse los siguientes casos: a) El resultado es un nmero BCD y no existe arrastre:

0101 +0100 1001


b)El resultado no es un nmero BCD

=5 =4 =9

1001 +0110 1111

=9 =6 = no BCD

c)El resultado es un nmero BCD y se genera arrastre

1001 =9 + 1000 =8 1 0 0 0 1 = 11 en BCD

Los casos b) y c) pueden resolverse si se le suma la maginitud 0110 (6) al resultado obtenido por el sumador binario.

21

En la siguiente figura se representa el sumador BCD

A3..0

B3..0

Cin Sumador de n bits Cout S3..0 Detector BCD

Cin

>1
0 0

Cin Sumador de n bits Cout Cout S3..0

22

3.- UNIDAD ARITMTICO LGICA (ALU) Una ALU de n bits es un dispositivo combinacional que acepta dos palabras de entrada A y B, de n bits cada una y genera un resultado de n bits (adems de cierta informacin como acarreo, overflow, etc.) procedente de la realizacin de alguna operacin aritmtica o lgica identificada por unas seales se seleccin.

A3-0
4

B3-0
4

Cin ALU de 4 bits Cout


4

S2 S1 S0

F3-0
El diseo de una ALU se realiza en tres etapas: diseo del circuito aritmtico, diseo del circuito lgico y unin de las partes anteriores. 3.1 Diseo del circuito aritmtico El componente bsico del circuito aritmtico de una ALU de n bits es un sumador paralelo de n bits. Si se controlan las entradas de dicho sumador, su salida puede generar distintas funciones aritmticas: a) Si las entradas del sumador son A y (Todo 0s) ( En este caso, tampoco se utiliza el nmero B de entrada de la ALU), se pueden obtener funciones de transferencia (F=A si Cin =0) o de incremento (F=A+1 si Cin =1).

0 Cin 0

0 Cin 1

Sumador 4 bits

Sumador 4 bits

Cout Faritm.= A

Cout Faritm.= A+1


23

b) Si las entradas del sumador son A y B (los nmeros de entrada de la ALU), se pueden obtener funciones de suma F= A+B (si Cin =0) o F=A+B+1 (si Cin =1).

B Cin 0

B Cin 1

Sumador 4 bits

Sumador 4 bits

Cout Faritm.= A+B

Cout Faritm.= A+B+1

c) Si las entradas del sumador son A y B (se complementan los bits del nmero B de entrada de la ALU), se pueden obtener operaciones de resta en Ca1 F=A+B si Cin =0- o de resta en Ca2 F= A+b+1 si Cin =1.

B Cin 0

B Cin 1

Sumador 4 bits

Sumador 4 bits

Cout Faritm.= A+B'

Cout Faritm.= A+B'+1

d) Si las entradas del sumador son A y (Todo 1s) ( En este caso no se utiliza el nmero B de entrada de la ALU), se pueden obtener funciones de transferencia (F=A si Cin =1) o de decremento (F=A-1 si Cin =0).

1 Cin 0

1 Cin 1

Sumador 4 bits

Sumador 4 bits

Cout Faritm.= A-1

Cout Faritm.= A
24

Se debe disear un circuito combinacional que, en funcin de S1 y S0, permita seleccionar la entrada B del sumador completo y, por tanto, la operacin aritmtica. Se considera que el sumador completo dispone de dos entradas (X e Y). La entrada X se conecta al nmero A, o lo que es lo mismo, Xi = Ai , mientras que la entrada Y se conecta al circuito cuyas salidas, para cada bit, se representa en la siguiente tabla de verdad

S1 S0 0 0 0 1 1 0 1 1
Por tanto, la salida ser

Yi 0 Bi Bi 1

Yi = Bi S1 S0 + Bi S1 S0+ S1 S0 = Bi S0 + BiS1
Bi S0
& >1 &

Yi

S1

25

El circuito aritmtico es, por tanto, el siguiente:

Cin A0 B0

Sumador
X0
& >1 &

FA Y0

A1 B1

X1
& >1 &

FA Y1 Faritm.

A2 B2

X2
& >1 &

FA Y2

A3 B3

X3
& >1

FA Y3

S0 S1

&

Cout

26

El acarreo de salida nos puede dar una informacin muy importante:


S1 0 0 0 0 1 S0 0 0 1 1 0 Cin 0 1 0 1 0 1 0 1 Operacin Transferir A Incrementar A Sumar A+B Incrementar A+B Restar A-B en Ca1 Cout =1 si -------A=2n-1 A+B2n A+B2n -1 A>B Comentario Cout =0 siempre Si Cout =1 , F=0 Overflow si Cout =1 Overflow si Cout =1 Si Cout =0 AB y F=Ca1(B-A) Si Cout =0 A<B y F=Ca1(B-A) Si Cout =0 A=0 Cout =1 siempre

F=A F=A+1 F=A+B F=A+B+1 F=A+B

1 0 1 1 1 1

F=A+B+1 Restar A-B en Ca2 AB F=A-1 F=A Decrementar A Transferir A A0 -------

3.2 Diseo del circuito lgico Supongamos que las operaciones lgicas a realizar son: A AND B, A OR B,A EXOR B y NOT A, donde A y B son las palabras de entrada en la ALU. (Se entiende que A AND B o cualquier otra operacin lgica- genera un resultado F, donde cada bit, Fi =Ai AND Bi ) El circuito que permite calcular la operacin lgica aparece en la siguiente figura.

Ai Bi
>1 0 =1 1 2 & 3 1 0

Fi(logico)

S1 S0
27

3.3 Unin de la seccina aritmtica y lgica Para formar la ALU se han de unir las dos secciones que la forman. Las variables S1 S0 sern comunes para las dos secciones siempre que S2 distinga entre una etapa y otra. La siguiente figura representa una posible solucin para la etapa i de una ALU.

Cin Ai Bi S1 S0

Cout

Circuito aritmetico Fi(artim.)

0 1

Fi

Circuito logico

Fi(logico) S2

Las siguientes figuras muestran una ALU comercial

28

También podría gustarte