Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Aritmetica Binaria
Aritmetica Binaria
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
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
> <
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
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:
Se soluciona de forma sencilla sin ms que aadir ms bits a la representacin de los nmeros.
II)
Ejemplo:
-5 -6 Cout
Ejemplo:
-12 -13 Cout = +7 ERROR! 10100 10011 1 00111
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)
a) magnitud(A) < = magnitud(B) (|A|<=|B|) Ejemplo: -12 13 Cout = 1 OK! 10100 01101 1 00001
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
- 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
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
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
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
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.
Ejemplo:
13
+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
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
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)}
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
&
Bn-1,..0
An-1,..0
RESTAR/#SUMAR
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:
=5 =4 =9
=9 =6 = no BCD
Los casos b) y c) pueden resolverse si se le suma la maginitud 0110 (6) al resultado obtenido por el sumador binario.
21
A3..0
B3..0
Cin
>1
0 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
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
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
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
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
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
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
1 0 1 1 1 1
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
0 1
Fi
Circuito logico
Fi(logico) S2
28