Los
circuitos integrados más representativos para la realización de operaciones
aritméticas básicas tales como la suma y la comparación. Adicionalmente, se
analiza una ALU en circuito integrado con la cual se pueden llevar a cabo una
variedad de operaciones de lógica y aritmética.
La
forma mas simple de realizar una operación aritmética electrónicamente, es
usando un circuito llamado semi-sumado (Haft Adder). Este dispositivo permite
que sean aplicados 2 bits de entradas (A,B) para producir dos salidas: uno
correspondiente a resultado de la suma (S) y la otra correspondiente a acarreo
(C) según se muestra en la tabla Nº1.
A
|
B
|
S
|
C
|
0
|
0
|
0
|
0
|
0
|
1
|
1
|
0
|
1
|
0
|
1
|
0
|
1
|
1
|
0
|
1
|
TABLA
Nº1. Tabla de Verdad el circuito semi-sumador
Como
se puede notar, la salido S es el resultado de una EX-OR entre A y B como
entradas: por otro lado C es el resultado de una AND entre las mismas entradas.
En la figura Nº1 se muestra el circuito de semi-sumador. Este semi-sumador
presenta la limitación de que no posee uno entrada para el acarreo de la etapa
previa, en caso de que desee sumar mas de 2 bits. Se debe recurrir entonces a
sumador total b sumador completo (Full Adder). Este tipo de circuito acepta 3
bits de entrada por separado, llamados sumando, consumando y acarreo de entrada
A, B y Cin respectivamente, mientras que las salidas son S y Cout.
Figura
Nº1. El semisumador
Sumadores
binarios de 4 bits:
Las
operaciones aritméticas se presentan con tal frecuencia que se han desarrollado
un número de circuitos integrados especiales para llevarlas a cabo. El 74LS283
es un buen exponente de esta clase de dispositivos, siendo, en esencia, un
sumador hexadecimal de 4 bits, Por lo tanto, acepta como entradas dos números
de 4 bits de cada uno, A y B, y un bit de acarreo previo, CO. Los 4 bits
correspondientes al número A se conectan a las entradas Al, A2, A3 y A4. Las
cuatro entradas del dato B se conecta de manera similar. El sumador genera como
resultado un número de 4 bits correspondientes a la suma de los dos datos, A y
B, además de un bit de acarreo, C4. En la figura Nº2 se muestra la
configuración de pines del 74LS283.
Figura
Nº 2. Configuración de pines del 74LS283
La
operación del circuito integrado puede describirse en forma resumida de la
siguiente manera:
Si
la suma de los dos datos de entrada más el acarreo previo arroja un resultado
entre O y 15, la suma aparecerá en las salidas de suma y el bit de acarreo de
salida, C4 se hace igual a cero.
Si
el resultado de la suma se sitúa entre 16 y 31, el bit de acarreo C4 se pone en
1 y las salidas correspondientes a los bits de suma se hacen iguales al valor
del resultado menos 16. Observe que en el su mador de 4 bits, el bit de acarreo
resultante posee un peso binario igual a 16.
Ejemplo:
Suponga
entradas a un sumador como el siguiente:
A4A3A2A1=
01112 (716)
B4B3B2B1
= 10102 (A16)
CO=1
En
este caso, la suma de los tres datos de entrada, 0111 + 1010 + 1 resulta ser
igual 18. De acuerdo a las reglas anteriores, se produce un bit de acarreo
igual 1 y las salidas adoptan un valor de 2 (esto es, 18 menos 16). Por lo
tanto, C4 = 1 y 4 3 2 1=0010.
Sumadores
en cascada
Es
posible implementar sumadores para palabras de tamaño superiores a 4 bits si se
disponen varios 74LS283 en cascada. Para el efecto, basta simplemente con
conectar la salida C4 del sumador de menor peso a la entrada CO del sumador
siguente. En la figura Nº 3 se muestra como se conectarían dos 74LS283 en
cascada para con formar un sumador de 8 bits. Los dos sumadores se muestran
recibiendo como datos a dos números binarios de 8 bits cada uno cuyos valores
son: A=11001010, B = 11100111, CO=0. El resultado de la operación, mostrado
también en la misma figura es 10110001 y C4= 1.+
Figura
Nº 3. Configuración en cascada 74LS283
La
operación de resta con el 74LS283
El
mismo circuito integrado descrito anteriormente puede ser utilizado para llevar
a la práctica operaciones de resta. Más aún, tanto la suma como la resta son,
desde el punto de vista digital, muy similares, por lo cual resulta fácil la
implementarla de circuitos digitales que permitan seleccionar una u otra
operación. En la figura Nº4 se muestra la forma como podría alambrarse, con la
ayuda de 4 compuertas XOR auxiliares, un circuito sumador que permita, según la
posición de un conmutador de selección, ejecutar la suma o la resta de dos
datos binarios de 4 bits cada uno.
Figura
Nº 4. Configuración 74LS283 como restador/sumador de 4 bits
Unidades
de lógica y aritmética, ALU
Las
ALU (Arithmetic Logic Units), o unidades de lógica y aritmética, son dispositivos
muy versátiles que pueden programarse para llevar a cabo una gran variedad de
operaciones aritméticas y lógicas entre dos palabras binarias. En la figura Nº
5 se muestra e! diagrama de pines de 74LS181, una ALU de 4 bits en tecnología
TTL. Como se observa de la figura, el positivo consta de dos grupo líneas de
entrada A3A2A1A0
y
B3B2B1B0, un grupo líneas neas de salida F3F2F1F0, un grupo de líneas
selectoras de función S3S2S1S0 una línea selectora de modo M, una entrada de
acarreo previo Cn. una salida de acarreo resultante Cn+4, una salida de
comparación A=B y dos salidas de expansión P,G.
Figura
Nº 5. Configuración de pines de una ALU 74LS181
Programando
adecuadamente las líneas de selección, S3S2S1S0 y la de modo M junto con la de
acarreo previo, Cn, IaALU puede ejecutar 16 operaciones lógicas y 32
operaciones aritméticas diferentes con los datos A=A3A2A1A0 B=B3B2B1B0. Estas operaciones, con sus
respectivos códigos de selección, se relaciona en la tabla de la figura Nº 6.
Se asume que tanto las entradas como las salidas son activas en alto.
Para
programar el dispositivo como generador de funciones lógicas, la entrada se-
lectora de modo, M, debe estar a nivel alto. La operación lógica deseada se
programa mediante un código de 4 bits de la forma S3S2SISO aplicado a las
entradas selectoras de función. El estado de la entrada de acarreo Cn es
indiferente por lo cual puede fijarse en cualquier nivel.
Por
ejemplo, para realizar la operación lógica A XOR B A= 1011 y B=000l, la línea M
debe estar en 1 lógico y en las líneas S3S2S1S0 debe aplicarse el código 0110.
Cada
bit de la palabra de salida F = F3F2F1F0 es el resultado de la operación XOR de
cada bit de la palabra A con el correspondiente bit de la palabra B. Es decir,
P3 =A3 XOR B3, F2 = A2 XOR B2 y así sucesivamente. Por tanto, F = 1010.
Para
programar la ALU como generadora de funciones aritméticas, la línea M debe
llevarse a nivel bajo con el fin de habilitar los acarreos internos. La suma de
A y B, por ejemplo, se realiza cuando el código de las entradas de se lección
es 1001. La entrada de acarreo Cn es activa en bajo.
Si
la suma produce un acarreo de salida igual a 1, esté también será activo en
bajo. La ALU utiliza un sistema interno de generación de acarreos conocido como
carry look ahead (acarreo en adelanto), que no requiere que la suma sea
calculada en su totalidad antes de establecer la naturaleza del acarreo
resultante.
Figura
Nº 6. Tabla de las funciones del 74LS181
La
ALU 74LS381
Muchas
de las funciones disponibles en la 74LS181 son de poco valor práctico. En
respuesta a esto, los fabricantes de ALUs han introducido al mercado el
circuito integrado 74LS381, el cual implementa a una ALU un poco más pequeña y
sencilla. En la figura Nº 7 se muestra su configuración de pines, la asignación
de funciones de cada uno de ellos y su tabla de funciones. Observe que solo se
dispone de tres líneas de selección y que no existe un pin de selección de
modo, M, por lo cual este dispositivo solo puede desollarse ocho funciones en
total. Estas corresponden a las operaciones aritméticas y lógicas de más frecuente
uso.
Figura
Nº 7. Configuración de pines, asignación de funciones y tabla de operación de
una ALU 74LS381
Circuitos
de Comparación Binaria
Un
comparador de magnitud es un circuito lógico, por lo general combinacional, que
compara dos palabras binarias e informa, en líneas de salida independientes,
cuándo la una es mayor, menor o igual que la otra. Un ejemplo clásico de este
tipo de circuitos es el 74LS85.
Este
dispositivo compara dos códigos binarios de 4 bits A y B aplicados en paralelo
a las entradas A3A2A1A0 y B3B2B1B0 respectivamente, e indica en tres líneas de
salida activas en alto sus magnitudes relativas. Es decir, cuándo A es mayor,
menor o igual a B. En la figura Nº 8 se muestra su configuración de pines, su
diagrama funcional y su tabla de verdad. Específicamente, la salida A>B, pin
5, se activa cuando A es mayor que B, la salida A=B cuando A es igual a B y la
salida A<B cuando A es menor que B. Las salidas no activas permanecen en
bajo. Por ejemplo, si A= 11012 (1310) y B = 01012 (510), se activa la Salida
A>B, indicando que 1310 (A16) es mayor que 5 (B16).
Figura
Nº 8. Configuración de pines, asignación de funciones y tabla de operación de
74LS85
El
74LS85 también cuenta con tres líneas de entrada adicionales que le permiten
conectarse en cascada a unidades similares para comparar números de mayor
longitud. Las entradas son A<B, pin 2, A=B, pin 3, y A>B, pin 4. En la
figura Nº 9 se muestra la manera como se conectarían dos de estos.
Figura
Nº 9. 74LS85 conectado en cascada
Conclusión
Dada
la importancia de las operaciones aritméticas básicas en el diseño de circuitos
digitales, se ha realizado un recuento de los principales circuitos integrados
que las implementan. En particular, se examinaron los sumadores de 4 bits y la
forma como pueden conectarse en cascada para aumentar el tamaño de los números
procesados. Adicional- mente, se demostró el uso de sumadores que con una
pequeña cantidad de lógica adicional permiten obtener fácilmente la operación
de resta.
Las
ALUs, o unidades de lógica y aritmética, tan interesantes como versátiles,
fueron introducidas mediante el análisis del circuito integrado 74LS181 que las
representa bien. Sin embargo, para aplicaciones menos exigentes, se planteó la
posibilidad de una implementación alterna a través de la 74LS381, que aunque
menos poderosa que la 181, es mucho más sencilla de utilizar.
Finalmente,
el tema de los circuitos comparadores de magnitud se discutió en algún de talle
a través de la explicación de la operación de un comparador de magnitud de 4
bits típico como es el 74LS85. La disponibilidad de pines de control
adicionales en este dispositivo hace posible extender el proceso de comparación
a números binarios de mayor tamaño, mediante el artificio de la conexión en
cascada de tantos comparadores como sea necesario para alcanzar los objetivos
planteados.