Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores...

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

Transcript of Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores...

Page 1: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

+

A2 B2

S2

+

A1 B1

S1

+

A0 B0

S0C1C2

SUMA BINARIASumador paralelo con acarreo serie

Cin

Cout

Page 9: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

+A

B

Ci

Sumador serie

SUMA BINARIA

S

Co

CLK

Célula de memoria

Page 13: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

RESTA BINARIACircuito complementador

COMPL.

Page 26: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

COMPARADORES BINARIOS DEMAGNITUD

Page 30: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

COMPARADOR 7485

COMPARADORES BINARIOS DEMAGNITUD

Page 31: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

UNIDAD ARITMÉTICO-LÓGICA (ALU)

ALU 74181

Page 32: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

Co Ci

A3 A2 A1 A0 B3 B2 B1 B0

SUMADORBCD

S3 S2 S1 S0

SUMA EN BCD

Bloque sumador BCD

Page 34: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

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: Aritmética Binaria - Sistemas de Información y ... · Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU) ... 7482 → sumador completo

RESTA BCDCircuito complementador a nueve

C9