aritmetica binaria

41
Aritmética Binaria Electrónica Digital Electrónica Básica José Ramón Sendra Sendra Dpto. de Ingeniería Electrónica y Automática ULPGC

Upload: jose-luis

Post on 18-Jul-2015

216 views

Category:

Engineering


3 download

TRANSCRIPT

Page 1: Aritmetica binaria

Aritmética Binaria

Electrónica Digital

Electrónica Básica

José Ramón Sendra SendraDpto. de Ingeniería Electrónica y AutomáticaULPGC

Page 2: Aritmetica binaria

ARITMÉTICA BINARIA

Operaciones en el sistema Binario Natural

Suma BinariaResta BinariaUnidad Aritmética Lógica (ALU)

Operaciones en BCD Natural

Suma en BCDResta en BCD

Page 3: Aritmetica binaria

ARITMÉTICA BINARIA

Operaciones en el sistema Binario Natural

Suma Binaria

Sumador sin acarreo o Half Adder (HA)Sumador con acarreo o Full Adder (FA)Sumador paralelo con acarreo serieSumador paralelo con acarreo paraleloSumador serie

Resta Binaria

Representación de los números negativosOperaciones en Complemento a 1Operaciones en Complemento a 2Desbordamientos (Overflow)Circuito complementador 74487Comparadores binarios en magnitud

Unidad Aritmética Lógica (ALU)

Page 4: Aritmetica binaria

SUMA BINARIA

Sumador sin acarreo o Half Adder

Ai 0 0 1 1

Bi 0 1 0 1

Suma 0 1 1 0

Ac. 0 0 0 1

AiBi 0 1

0

1

0 1

1 0

Suma = Ai Bi + Ai Bi= Ai + Bi

AiBi 0 1

0

1

0 0

10

Ac. = Ai Bi

Acarreo

Suma A i

B i HA

A

B

S

Co

Page 5: Aritmetica binaria

S = Ci xor A xor B

Co = B Ci + A Ci + A B = CiA + CiB + A B

SUMA BINARIASumador con acarreo o Full Adder

A 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

Ci 0 1 0 1 0 1 0 1

S 0 1 1 0 1 0 0 1

Co 0 0 0 1 0 1 1 1

A BCi

0

1

00 01 11 100

1

1

0

1

0

0

1

A BCi

0

1

00 01 11 100

0

0

1

0

1

1

1

S

Co

Page 6: Aritmetica binaria

Implantación estándar: 6 puertas

SUMA BINARIA

A

B

CiS

A

A

B

BCi

CO

Ci

Sumador con acarreo o Full Adder

FA

A

B

S

CoCi

Page 7: Aritmetica binaria

Implantación alternativa: 5 puertas

A B + Ci (A + B) = A B + B Ci+ A Ci

+

SUMA BINARIA

HAA

B

A + B

Ci

A + B + CiS S

CoCo Ci (A + B)A BS

Co

HA

Sumador con acarreo o Full Adder

Page 8: Aritmetica binaria

+

A2 B2

S2

+

A1 B1

S1

+

A0 B0

S0C1C2

SUMA BINARIASumador paralelo con acarreo serie

Cin

Cout

Page 9: Aritmetica binaria

Necesitamos predecir el acarreo para cada término de la suma

Sumador paralelo con acarreo paralelo (es más rápido)

SUMA BINARIA

+

A2 B2

S2

+

A1 B1

S1

+

A0 B0

S0

Cin

Cout

Page 10: Aritmetica binaria

C0 = Cin

C1 = A0 B0 + C0 (A0+B0) = G0 + C0 P0

C2 = A1 B1 + C1 (A1+B1) = G1 + [G0 + C0 P0] P1 = G1 + G0 P1 + C0 P0 P1

C3 = ... = G2 + G1 P2 + G0 P1 P2 + C0 P0 P1 P2

Las variables son las entradas al sumador y el acarreo de la primeraetapa

Se trata de predecir el acarreo para cada término de la suma

SUMA BINARIASumador paralelo con acarreo paralelo

Page 11: Aritmetica binaria

Sumador paralelo con acarreo paralelo

SUMA BINARIA

+

A2 B2

S2

+

A1 B1

S1

+

A0 B0

S0

C0=Cin

A0 B0

G0 P0

A1 B1

G1 P1

A2 B2

G2 P2

C0 P0G0C0 P0G1 G0 P1G0 P2G2 G1 P2 P1C0P0P1 P1P2

Cout

El circuito es máscomplejo pero esmás rápido

Page 12: Aritmetica binaria

+A

B

Ci

Sumador serie

SUMA BINARIA

S

Co

CLK

Célula de memoria

Page 13: Aritmetica binaria

Sumadores comerciales

SUMA BINARIA

7480 → sumador completo de 1 bit

7482 → sumador completo de 2 bit

7483 → sumador completo de 4 bit

74182 → generador de acarreo previo

Page 14: Aritmetica binaria

RESTA BINARIA

En principio se pueden diseñar circuitos restadores de la misma forma acomo lo hicimos con los sumadores

Sin embargo lo que se suele hacer es usar los mismos circuitossumadores para hacer las restas

Para ello tenemos que ver primero como se representan los númerosbinarios negativos

Page 15: Aritmetica binaria

RESTA BINARIARepresentación de números negativos

Representación de números positivos es similar en la mayoría de los sistemas

Mayores diferencias surgen en la representación de los valores negativos

Dos esquemas fundamentales:Complemento a unoComplemento a dos

Especificaciones iniciales:Trabajaremos con palabras de cuatro bitsPodemos representar 16 valores distintosAproximadamente la mitad serán positivos y la mitad negativos

Page 16: Aritmetica binaria

Complemento a unoDEF: Si N es un número positivo, N es su negativo de tal forma que:

Ca1 (N) = N = (2 - 1) - Nn

Ej: Ca1 (7)2 = 10000

1 = - 00001

1111

7 = - 0111

1000 = -7

TRUCO: Cambiamos cada bit por su complementario

0111 -> 1000

4

RESTA BINARIA

Ej: Ca1 (7)

Page 17: Aritmetica binaria

Complemento a uno

Hay dos representaciones del cero (malo)

RESTA BINARIA

0000

0111

0011

1011

11111110

1101

1100

1010

10011000

0110

0101

0100

0010

0001

+0+1

+2

+3

+4

+5

+6+7-7

-6

-5

-4

-3

-2-1

-0

0 100 = + 4 1 011 = - 4

+

-

Page 18: Aritmetica binaria

Complemento a dosDEF: Si N es un número positivo:

Ca2 (N) = 2 - N = Ca1 (N) + 1n

Ej: Ca2 (7)

RESTA BINARIA

2 = 10000

-7 = - 0111

1001 = repr. de -7

4 2 = 10000

-(-7) = -1001

0111 = repr. de 7

4Ej: Ca2 (7)

Page 19: Aritmetica binaria

Complemento a dos

TRUCO1: Complementamos cada bit y al resultado le sumamos 1, es decir, le sumamos 1 al Ca1 del número

RESTA BINARIA

0111 -> 1000 + 1 -> 1001 (representación de -7)

1001 -> 0110 + 1 -> 0111 (representación de 7)

TRUCO2: Ir de izquierda a derecha, respetar el primer 1 que nos encontremos y complementar el resto de bits

0111 -> 1001 (representación de -7)

1001 -> 0111 (representación de 7)

Page 20: Aritmetica binaria

Complemento a dos

0000

0111

0011

1011

11111110

1101

1100

1010

10011000

0110

0101

0100

0010

0001

+0+1

+2

+3

+4

+5

+6+7-8

-7

-6

-5

-4

-3-2

-1

0 100 = + 4 1 100 = - 4

+

-

Hay una única representación para el cero (bueno)Hay un número negativo másEs menos intuitivo el obtener el negativo de un número

RESTA BINARIA

Page 21: Aritmetica binaria

Suma y resta de números en complemento a uno

4

+ 3

7

00100

00011

00111

-4

+ (-3)

-7

11011

11100

110111

1

11000

4

- 3

1

00100

11100

100000

1

00001

-4

+ 3

-1

11011

00011

11110

Se suma el bit de acarreo

RESTA BINARIA

Ca1 delresultado

Page 22: Aritmetica binaria

4

+ 3

7

00100

00011

00111

-4

+ (-3)

-7

11100

11101

111001

4

- 3

1

00100

11101

100001

-4

+ 3

-1

11100

00011

11111

Se desprecia el bit deacarreo

La simplicidad de las operaciones aritméticas en la notación de complemento a dos hace que esta notación sea la más utilizada en sistemas digitales

RESTA BINARIASuma y resta de números en complemento a dos

Ca2 delresultado

Page 23: Aritmetica binaria

RESTA BINARIASumador/Restador en complemento a dos

Co Ci

A3 A2 A1 A0

B3 B2 B1 B0

COMPL.

SUMADOR

S3 S2 S1 S0

M0 = SUMA1 = RESTA

Page 24: Aritmetica binaria

RESTA BINARIASumador/Restador en complemento a uno

Co Ci

A3 A2 A1 A0

B3 B2 B1 B0

COMPL.

SUMADOR

S3 S2 S1 S0

M0 = SUMA1 = RESTA

Page 25: Aritmetica binaria

RESTA BINARIACircuito complementador

COMPL.

Page 26: Aritmetica binaria

B1

Y3

Y2

Y1

Y0

M

L

B3

B2

B0

RESTA BINARIA

Ejemplo de circuito complementador: 74487

B0 B1 B2 B3 → L=0, M=0 → B0 B1 B2 B3

B0 B1 B2 B3 → L=0, M=1 → B0 B1 B2 B3

B0 B1 B2 B3 → L=1, M=0 → 1 1 1 1

B0 B1 B2 B3 → L=1, M=1 → 0 0 0 0

Page 27: Aritmetica binaria

DESBORDAMIENTO (OVERFLOW)

Si estamos trabajando con n bits (1 bit de signo y n-1 bits de magnitud) losresultados de las operaciones no deben superar el siguiente rango:

-2n-1 ≤ resultado < 2n-1 -1

Por ejemplo, si trabajamos con n = 4 bits-24-1 ≤ resultado < 24-1 -1

-8 ≤ resultado < 7Si nos saliese un número mayor que 7 o menor que -8 es que se ha producidoun desbordamiento y el resultado no será correcto.

Page 28: Aritmetica binaria

Condición de desbordamientoSumar dos números positivos y obtener uno negativo o viceversa

5 + 3 = -8 ??? -7 - 2 = +7 ???

00000001

0010

0011

1000

0101

0110

0100

1001

1010

1011

1100

1101

0111

11101111

+0+1

+2

+3

+4

+5+6

+7-8

-7

-6

-5

-4-3

-2-1

00000001

0010

0011

1000

01010110

0100

1001

1010

1011

1100

1101

0111

11101111

+0+1

+2

+3

+4

+5+6

+7-8

-7

-6

-5

-4-3

-2-1

DESBORDAMIENTO (OVERFLOW)

Page 29: Aritmetica binaria

COMPARADORES BINARIOS DEMAGNITUD

Page 30: Aritmetica binaria

COMPARADOR 7485

COMPARADORES BINARIOS DEMAGNITUD

Page 31: Aritmetica binaria

UNIDAD ARITMÉTICO-LÓGICA (ALU)

ALU 74181

Page 32: Aritmetica binaria

SUMA EN BCDRepresentación de números en formato BCD

Los dígitos decimales del 0 al 9 se representan como 0000 a 1001 en binario

Suma:

5 = 0101

3 = 0011

1000 = 8

5 = 0101

8 = 1000

1101 = 13

Los problemas surgencuando el resultadoes mayor que nueve

Solución: sumar 6 (0110) si el resultado es mayor que 9

5 = 0101

8 = 1000

1101 = 13 en binario

6 = 0110

1 0011 = 1 3 en BCD

9 = 1001

7 = 0111

1 0000 = 16 en binario

6 = 0110

1 0110 = 1 6 en BCD

Page 33: Aritmetica binaria

Co Ci

A3 A2 A1 A0 B3 B2 B1 B0

SUMADORBCD

S3 S2 S1 S0

SUMA EN BCD

Bloque sumador BCD

Page 34: Aritmetica binaria

RESTA EN BCD

Igual que con la resta binaria, la resta en BCD se hará sumando unacantidad negativa a otra positiva

Para ello tenemos que ver primero como se representan los númerosBCD negativos

Page 35: Aritmetica binaria

Complemento a diezDEF: Si N es un número positivo, N es su negativo de tal forma que:

Ca10 (N) = N = 10 - Nn

Ej: Ca10 (3291) = 104-3291 = 10000-3291 = 6709 = 0110 0111 0000 1001

RESTA EN BCD

DEF: Si N es un número positivo, N es su negativo de tal forma que:

Ca9 (N) = N = 10 - 1-Nn

Ej: Ca9 (3291) = 104-1-3291 = 6708 = 0110 0111 0000 1000

Complemento a nueve

Page 36: Aritmetica binaria

RESTA EN BCD

0 0101 0010 0011 1001

1 0110 0111 0000 1001

10 1011 1001 0100 10010

110 110

10001 11000

Resta de números en complemento a diez

Ej: 5239 - 3291 = 5239 - Ca10 (3291)

1

0001 1001 0100 1000 = 1948 OKpositivo

Se desprecia elbit de acarreo

1

Page 37: Aritmetica binaria

RESTA EN BCD

0 0011 0010 1001 0001

1 0100 0111 0110 0001

1 1000 1010 1111 0010

110 110

10000 10101

Resta de números en complemento a diez

Ej: 3291 - 5239 = 3291 - Ca10 (5239)

1

1 1000 0000 0101 0010 = -1948 OK

negativo

1

Ca10 del resultado

Page 38: Aritmetica binaria

RESTA EN BCD

0 0101 0010 0011 1001

1 0110 0111 0000 1000

10 1011 1001 0100 10001

110 110

10001 10111

Resta de números en complemento a nueve

Ej: 5239 - 3291 = 5239 - Ca9 (3291)

1

10 0001 1001 0100 0111

+1

0 0001 1001 0100 1000 = 1948 OKpositivo

No se despreciael bit de acarreo

1

Page 39: Aritmetica binaria

RESTA EN BCD

0 0011 0010 1001 0001

1 0100 0111 0110 0000

1 1000 1010 1111 0001

110 110

10000 10101

Resta de números en complemento a nueve

Ej: 3291 - 5239 = 3291 - Ca9 (5239)

1

1 1000 0000 0101 0001 = -1948 OK

negativo

1

Ca9 del resultado

Page 40: Aritmetica binaria

Co Ci

A7 A6 A5 A4

B7 B6 B5 B4

C9

SUMADOR

S7 S6 S5 S4

Co Ci

A3 A2 A1 A0

B3 B2 B1 B0

C9

SUMADOR

S3 S2 S1 S0

RESTA EN BCDResta BCD de 2 dígitos en complemento a nueve

Page 41: Aritmetica binaria

RESTA BCDCircuito complementador a nueve

C9