Aritmética Binaria
Electrónica Digital
Electrónica Básica
José Ramón Sendra SendraDpto. de Ingeniería Electrónica y AutomáticaULPGC
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
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)
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
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
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
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
+
A2 B2
S2
+
A1 B1
S1
+
A0 B0
S0C1C2
SUMA BINARIASumador paralelo con acarreo serie
Cin
Cout
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
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
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
+A
B
Ci
Sumador serie
SUMA BINARIA
S
Co
CLK
Célula de memoria
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
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
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
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)
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
+
-
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)
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)
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
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
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
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
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
RESTA BINARIACircuito complementador
COMPL.
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
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.
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)
COMPARADORES BINARIOS DEMAGNITUD
COMPARADOR 7485
COMPARADORES BINARIOS DEMAGNITUD
UNIDAD ARITMÉTICO-LÓGICA (ALU)
ALU 74181
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
Co Ci
A3 A2 A1 A0 B3 B2 B1 B0
SUMADORBCD
S3 S2 S1 S0
SUMA EN BCD
Bloque sumador BCD
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
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
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
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
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
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
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
RESTA BCDCircuito complementador a nueve
C9