domingo, 13 de marzo de 2016

Decodificador
Un decodificador o descodificador es un circuito combinacional, cuya función es inversa a la del codificador, esto es, convierte un código binario de entrada de N bits de entrada y M líneas de salida, tales que cada línea de salida será activada para una sola de las combinaciones posibles de entrada. Estos circuitos, normalmente, se suelen encontrar como decodificador / demultiplexor. Esto es debido a que un demultiplexor puede comportarse como un decodificador. Si por ejemplo tenemos un decodificador de 2 entradas con 22=4 salidas, su funcionamiento sería el que se indica en la siguiente tabla, donde se ha considerado que las salidas se activen con un "uno" lógico: Decodificador de 2 a 4 líneas. Un tipo de decodificador muy empleado es el de siete segmentos. Este circuito decodifica la información de entrada en BCD a un código de siete segmentos adecuado para que se muestre en un visualizador de siete segmentos.
Si por ejemplo se tiene un decodificador de 2 entradas con 22=4 salidas, su funcionamiento sería el que se indica en la siguiente tabla, donde se ha considerado que las salidas se activen con un "uno" lógico:








Un codificador es un circuito combinacional integrado que tiene hasta 2n entradas y n salidas y la función que desempeña es mostrar en la salida la combinación correspondiente al código binario de la entrada activada.
Se entenderá mejor con un ejemplo: En una calculadora cuándo pulsamos cualquiera de las diez teclas numéricas de una calculadora estamos marcando un número decimal, pero la calculador opera con número en binario. Para expresar en binario del 1 al 10, necesitamos al menos cuatro bits, ya que con tres solamente podríamos establecer 23 =8  combinaciones posibles (es decir del 0 al 7) y no podríamos codificar los diez dígitos necesarios (faltarían el 8 y el 9).
Por tanto emplearemos 4 salidas. Como con 4 salidas (4 bits) tenemos 16 combinaciones y empleamos 10 (del 0 al 9), o bien dejaremos seis combinaciones sin emplear, o las utilizaremos para codificar cualquier otra función representada en alguna de las teclas de la calculadora (el +, el -, el ·, el ÷, el = y la √; por ejemplo)
La tabla de verdad del codificador será:

A partir de la tabla se deduce que la salida S1 será 1 si lo es la entrada A9, ó la A7, ó la A5, ó la A3, ó la A1, de ahí que la ecuación lógica que corresponde a esta salida sea la suma de las entradas 1, 3, 5, 7 y 9. Si seguimos analizando la tabla obtendremos, de forma análoga, las ecuaciones que tienen que cumplir las salidas S2, S3 y S4.
En el caso de se activasen más de una entrada estaríamos ante el dilema de ¿qué entrada debería codificarse?, o se produciría una señal de error en la salida, por ello los codificadores pueden ser sin prioridad, (no suelen emplearse), y los codificadores con prioridad, generalmente a la entrada más significativa, en este caso la tabla de verdad sería:

Es decir si por cualquier circunstancia se activase más de una entrada simultáneamente, el codificador presentará en la salida la correspondiente al código de la entrada que tenga asignado un mayor peso, es decir la más significativa, resultando indiferente los valores que tomasen las otras entradas menos significativas.
En la figura adjunta se muestra el circuito integrado combinacional correspondiente a un codificador con prioridad de 9 entradas y cuatro salidas.
Como ya explicamos en el tema anterior las puertas lógicas y los circuitos que explicaremos en este tema se comercializan en circuitos integrados (CI), que son como una "pastilla de plástico" de la que salen unas patillas de conexión llamadas "pines", cada uno de los cuales corresponde a una entrada o salida de datos, alimentación o tierra; y cuya identificación se hace a partir de una pequeña muesca en la cápsula que marca el número de patilla. En las llamadas datasheet de los fabricantes de chips, dibujos como el siguiente indican la y correspondencia entre los pins de CI y las entradas y salidas del circuito, en este caso el codificador.
 Imagen 03. Elaboración propia Imagen 04. Elaboración propia Este tipo de codificadores se emplean en la codificación de los teclados convencionales, así mismo en los circuitos conversores analógico-digital, y para controlar posibles perturbaciones en los ordenadores.
Aunque la aplicación más significativa de este tipo de circuitos integrados es en la construcción de multiplexadores, que son unos circuitos combinacionales que estudiaremos posteriormente.
Un codificador es un dispositivo lógico que recibe información por su entrada y la traduce a un código, el cual depende del tipo de codificador. Tienen una serie de patillas de entrada de las cuales sólo una se activa, apareciendo el número de la patilla activada a la salida en el código correspondiente: Aiken, decimal, BCD, BCD+3,...
Codificador binario 4 a 2 sin prioridadCodificador binario 4 a 2 sin prioridadCodificador binario 8 a 3 con prioridadCodificador binario 8 a 3 con prioridadCodificador binario 16 a 4 con interrupciónCodificador binario 16 a 4 con interrupción
Multiplexores
 Un multiplexor o selector de datos esta constituido por 3 partes:
1.  n Entradas de Control.
2.   Entradas de Datos.
3.  Salida del Circuito.
 A continuación se muestran algunos multiplexores:



La primera figura (de izquierda a derecha) muestra un multiplexor con 4 entradas de datos, 2 entradas de control y 1 salida. A este multiplexor se le denomina MUX 4-1 debido a que tiene 4 entradas de datos y una salida. La salida esta descrita por la siguiente función Booleana:


En la función anterior se aprecia que para los valores 00 en las entradas de control la salida es  , cuando la entrada de control es 01 la salida es   y así sucesivamente, es decir, las entradas de control seleccionan una de las 4 entradas de datos y la dejan pasar hacia la salida.

La segunda figura muestra un multiplexor 8-1. Tiene 8 entradas de datos y 3 entradas de control que permiten seleccionar una de las entradas de datos. La tercera figura muestra un multiplexor de   entradas de datos y n entradas de control, su función Booleana es:


Donde   es un mini término de n variables de control.

Los multiplexores pueden servir para implementar una función Booleana sin necesidad de compuertas extra. Por ejemplo, una función de 3 variables puede ser creada utilizando un multiplexor 4-1:

Ejemplo: Implemente   utilizando un multiplexor:
Como primer paso se crea el mapa de Karnaugh correspondiente:



Las entradas de control se asignan las variables más significativas de la función a implementar por lo tanto el mapa puede ser dividido en 4 secciones correspondientes a los minitérminos formados por las variables A y B. El minitérmino 0 corresponde al grupo superior izquierdo, en él se aprecian un 1 y un 0, el 1 se encuentra donde C es 0 por lo tanto la entrada de datos del multiplexor correspondiente al minitérmino 0 es igual a C'. El minitérmino 1 corresponde al grupo inferior izquierdo, en él se encuentran dos 1 por lo tanto la entrada de datos del multiplexor correspondiente al minitérmino 1 es 1. Para los minitérminos 2 y 3 las entradas de datos del multiplexor son 0 y C respectivamente:



En general cualquier función Booleana de m variables puede ser implementada utilizando un multiplexor de m-1 entradas de control.

Los multiplexores vistos anteriormente también son conocidos como multiplexores N:1 porque tienen N entradas de datos y una salida de datos. Existe una variante de los multiplexores conocida como demultiplexores o multiplexores 1:N que tienen 1 entrada de datos y N salidas de datos. A continuación se muestra un demultiplexor:



demultiplexor es un circuito combinacional que tiene una entrada de información de datos d y n entradas de control que sirven para seleccionar una de las 2n salidas, por la que ha de salir el dato que presente en la entrada. Esto se consigue aplicando a las entradas de control la combinación binaria correspondiente a la salida que se desea seleccionar. Por ejemplo, si queremos que la información que tenemos en la entrada d, salga por la salida S4, en la entrada de control se ha de poner, de acuerdo con el peso de la misma, el valor 100, que es el 4 en binario.
En el campo de las telecomunicaciones el demultiplexor es un dispositivo que puede recibir a través de un medio de transmisióncompartido una señal compleja multiplexada y separar las distintas señales integrantes de la misma encaminándolas a las salidas correspondientes.
La señal compleja puede ser tanto analógica como digital y estar multiplexada en cualquiera de las distintas formas posibles para cada una de ellas.

Diagrama lógico de un demultiplexor 1 a 4.
El demultiplexor, es un circuito combinacional que aunque la función básica es la que hemos explicado, puede utilizarse en muchos casos como decodificador y adopta cualquiera de las funciones que un decodificador realiza.
Una aplicación muy práctica de los demultiplexores utilizados como decodificadores, si lo combinamos con una puerta NO-YNAND, es la generación de funciones lógicas, de modo, que si nos dan la función lógica F=S3(2,4,5,7), las salidas correspondientes a los unos lógicos se conectarían a la puerta NO-Y. En este caso la entrada de información se puede utilizar como entrada inhibidora si mantenemos a cero lógico, y subiéndola a uno, cuando queremos inhibir la generación de la función.
Una de las funciones que realiza el decodificador hexadecimal como demultiplexor, es la función de conectar, a sendos contadores, C0 a C15, que reciben los impulsos de una entrada común a todos. Cada uno posee una entrada de inhibición que según el estado en que se encuentra (0,1), permite o no que se realice el contaje de los impulsos. Cada entrada de inhibición se conecta a una salida del demultiplexor.

Contadores

Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante cada vez que se produce un determinado suceso o acción. Los contadores se utilizan con la finalidad de contar sucesos o acciones internas de un bucle.

Es importante realizar una operación de inicialización y posteriormente las sucesivas de incremento o decremento del mismo. La inicialización consiste en asignarle al contador un valor con el que arrancará el proceso de conteo. Este proceso deberá situarse "antes y fuera del bucle".

Sintaxis:
                Contador := Contador + Constante;

Ejemplo:
                Persona := Persona + 1;

Como se puede observar en el ejemplo, a la variable Persona se le está incrementando el valor constante 1, es decir, a su contenido se le suma el valor y se le vuelve a grabar en la misma variable.

Si en vez de incremento es decremento se coloca un menos en lugar del más.

Ejemplo:
                Stock := Stock - 3;

El término decremento significa resta. Como se pudo observar en el ejemplo anterior, a la variable Stock se le está decrementando un valor constante 3, es decir, a su contenido se le resta el valor y se el vuelve a grabar en la misma variable.

Registro de desplazamiento es un circuito digital secuencial (es decir, que los valores de sus salidas dependen de sus entradas y de los valores anteriores) consistente en una serie de biestables, generalmente de tipo D, conectados en cascada (Fig. 1), que basculan de forma sincrónica con la misma señal de reloj. Según las conexiones entre los biestables, se tiene un desplazamiento a la izquierda o a la derecha de la información almacenada. Es de señalar que un desplazamiento a la izquierda de un conjunto de bits, multiplica por 2, mientras que uno a la derecha, divide entre 2. Existen registros de desplazamiento bidireccionales, que pueden funcionar en ambos sentidos. Los registros universales, además de bidireccionales permiten la carga en paralelo.
Fig. 1: Registro de desplazamiento de 4 bits.








Fig. 2: Símbolo de registro de desplazamiento de 4 bits.


Tipos de registros de desplazamiento
Dependiendo del tipo de entradas y salidas, los registros de desplazamiento se clasifican como:
Serie-Serie: sólo la entrada del primer flip-flop y la salida del último son accesibles externamente. Se emplean como líneas de retardo digitales y en tareas de sincronización.
Paralelo-Serie: son accesibles las entradas de todos los flip-flops, pero sólo la salida del último. Normalmente también existe una entrada serie, que sólo altera el contenido del primer flip-flop, pudiendo funcionar como los del grupo anterior. Este tipo y el siguiente se emplean para convertir datos serie en paralelo y viceversa.

Este tipo convierte: Dato en paralelo a dato en serie.
Serie-Paralelo: son accesibles las salidas de todos los flip-flops, pero sólo la entrada del primero. Este tipo y el anterior se emplean para convertir datos serie en paralelo y viceversa, por ejemplo para conexiones serie como el RS232.

 Este tipo convierte: Dato en serie a dato en paralelo.
Paralelo-Paralelo: tanto las entradas como las salidas son accesibles. Se usan para cálculos aritméticos.
Un registro de desplazamiento muy utilizado, que es universal (se llama así porque puede utilizarse en cualquiera de las cuatro configuraciones anteriormente descritas) y bidireccional (porque puede desplazar los bits en un sentido u otro) es el 74HC194, de cuatro bits de datos.
Otros registros de desplazamiento conocidos, fabricados también con la tecnología CMOS, son el 74HC165 (entrada paralelo, salida serie) y 74HC164 (entrada serie, salida paralelo)
Registros de desplazamiento
Sirven para almacenar un número binario de tantos bits como biestables contenga el Circuito. Se construyen a partir de biestables de tipo D.
Existen dos tipos:
Registros de almacenamiento.
Registros de desplazamiento.
De acuerdo como se introduzca la información, pueden ser de varias clases:
Serie: La información se introduce bit a bit y se extrae del mismo modo.
Paralelo: La información se introduce y se extrae de “golpe”.
Híbridos: Entrada serie/salida paralelo o viceversa.

En la figura se puede ver la conexión de biestables D para conseguir un registro de desplazamiento serie-serie (es decir, los datos entran de uno en uno y salen de uno en uno).
Imagen 13. Elaboración propiaEn la figura adjunta se observa la conexión de biestables tipo D para obtener un registro de desplazamiento paralelo-paralelo (es decir, entran todos a la vez y salen todos a la vez)

Imagen 14. Elaboración propia
En la figura un circuito que haría la función de registro híbrido, en este caso, entrada en Paralelo, salida en serie (aunque también dispone de entrada serie, ya que está previsto para doble uso; serie-serie y paralelo-serie)


Un contador es un circuito que almacena el número de veces que ha tenido lugar un determinado proceso o evento
  Poseerá, por tanto, una sola entrada
  Su forma de operación será secuencial  Podrán contar o no con un reloj
  Veamos un ejemp

Circuitos Aritméticos

Introducción  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.
ABSC0000011010101101TABLA 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.

DEFINICIÓN
 Dentro de la variada gama de circuitos digitales, tenemos los denominados circuitos aritméticos. Estos tienen como objetivo realizar operaciones aritméticas en formato binario o BCD, punto fijo o punto flotante. Dependiendo de la aplicación se utilizarán unos u otros.  Son dispositivos MSI que pueden realizar operaciones aritméticas (suma, resta, multiplicación y división) con números binarios. De todos los dispositivos, nos centraremos en los comparadores de magnitud, detectores y generadores de paridad, sumadores y ALU’s; (El diseño MSI surgió gracias a los avances en la tecnología de integración. Estos avances abarataron los costes de producción, y permitieron el desarrollo de circuitos más generales.)  Desde el punto de vista de cómo se procesan los datos tendremos que pueden ser del tipo “serie” o “paralelo”. En el primer caso los datos se van presentando al circuito de a un bit por vez, generalmente comenzando primero con el LSB (bit menos sgnificativo). En el segundo, los datos se presentan en formato paralelo, es decir, todos los bits simultáneamente. Dependiendo de la función a realizar, tenemos sumadores, restadores, multiplicadores, divisores y funciones combinadas de los mismos para realizar operaciones complejas como por ejemplo el cálculo de raíz cuadrada, exponenciales, etc. Si bien es posible generar funciones complejas en base al uso de un microprocesador, a través de algoritmos que se corren en un programa, la posibilidad de generar dichas funciones en hardware, en muchos casos, presentan ventajas en cuanto a velocidad y/o el empleo de menores recursos lógicos, como es el caso de la ausencia de un micro para realizarlas.
   










OPERACIONES CON CIRCUITOS DIGITALES
 Un calculador digital debe contener, evidentemente, circuitos que efectúen operaciones aritméticas, por ejemplo suma, resta, multiplicación y división. Las operaciones básicas son la suma y la resta, ya que la multiplicación es, fundamentalmente, una suma repetitiva y la división una resta encadenada.
 Veremos cómo se realizan algunas operaciones básicas de gran interés para, más adelante, entender el funcionamiento de algunos circuitos principales en un ordenador, como puede ser una unidad aritmética incluso un microprocesador.
 Empecemos por explicar la operación suma. Supongamos que deseamos sumar dos números de aritmética decimal y que queremos obtener los dígitos de las centenas; entonces, debemos sumar conjuntamente no sólo los dígitos de las centenas de cada número sino también los dígitos que se arrastran de las decenas, si existen. De forma similar, cuando utilizamos números binarios y los tenemos que sumar, no sólo tomaremos los dígitos de cada lugar significativo de los dos números que han de sumarse sino también el dígito que se arrastra del lugar significativo próximo inferior. Este funcionamiento se lleva a cabo de dos modos:
 1º.Sumando los dos bits correspondientes a los dígitos más significativos.
 2º.Sumando el resultado de lo que llevamos del dígito inmediatamente anterior a los más significativos.
 Al sumador de dos entradas se le denomina semisumador, ya que la suma completa requiere dos semisumadores. Aquí, empezaremos por analizar el sumador completo.
 Dos números de varios dígitos pueden ser sumados en serie, es decir, una columna cada vez, o en paralelo, esto es, todas las columnas simultáneamente. Vamos a considerar, en primer lugar, el funcionamiento en paralelo. Para un número binario con n dígitos, hay n conexiones de señales por cada número. La línea enésima del número A se activa por An, que corresponde al bit del dígito más significativo.

Sumador en paralelo

Con circuitos integrados, la suma se realiza empleando sumadores completos, y no con dos semisumadores. El circuito tiene tres entradas: Los sumandos An y Bn, y el acarreo, arrastre o "carry", Cn-1. Las salidas son la suma S y el acarreo Cn. La tabla de verdad que representa a un sumador en paralelo es la siguiente:

 
AnBnCnSCn0000000110010100110110010101011100111111  

De esta tabla de verdad podríamos deducir las ecuaciones lógicas correspondientes a las salidas S y Cn, correspondientes a la suma y al acarreo final, respectivamente. El circuito de la figura representa la solución a las ecuaciones correspondientes a un sumador completo.

 Sumador en serie
 En un sumador en serie, las entradas A y B consisten en trenes de impulsos sincronizados en dos líneas del operador. Hemos destacado, anteriormente, que la adición de dos números de varios dígitos puede hacerse añadiendo a la suma de los dígitos de significado idéntico al arrastre del resultado inmediatamente anterior. Con respecto a los trenes de impulsos, señalaremos que la premisa anticipada equivale a decir que, en un momento dado, debemos sumar en forma binaria, a los impulsos A y B, el impulso de acarreo procedente del resultado obtenido en un periodo de tiempo anterior.
 Este circuito difiere de la configuración del sumador completo en paralelo por la inclusión de un tiempo de retardo, que será igual al lapso entre impulsos. Por tanto, el impulso de acarreo se retrasa dicho tiempo y se agrega a los impulsos, dígitos de A y de B, en el momento exacto.
 Se observa que la suma en paralelo es más rápida que en serie porque todos los dígitos se suman simultáneamente en el primer caso, y secuencialmente en el segundo. Pero, en el sumador en serie, sólo se precisa un sumador completo, mientras que en el sistema en paralelo se necesita uno por cada bit. Por lo que la suma en paralelo supone más incremento de coste que la suma en serie.
 Comparador digital
A veces, es necesario saber si un número binario A es mayor, menor o igual que otro número B. El sistema para determinarlo se denomina comparador de valor digital o binario. En la figura se muestra al comparador digital formado por puertas AND y NOR, formando la ecuación de un circuito NOR - Exclusivo.
Consideremos, en primer lugar, sólo números de un bit. Como ya dijimos en su momento, la puerta NOR-exclusiva es un detector de igualdad. Efectivamente, recordando la expresión booleana que define esta puerta, tenemos:

S = /((A*/B) + (/A*B))
 La condición de ser A mayor que B viene dada por la ecuación A*/B=1, ya que si A es mayor que B, entonces A=1 y B=0, siendo el producto anterior 1. Por otra parte, si A es igual o menor que B, dicha expresión será 0.
 Análogamente, la restricción A menor que B queda determinada por la ecuación /A*B=1.
 El circuito que determina el enésimo bit de dos números binarios consta de dos inversores, dos puertas AND y un circuito AOI; este último, también se puede diseñar con una puerta NOR-Exclusiva y dos puertas AND.
 
 Los encapsulados a media escala, que sirven para comparar valores, suelen ser de 4 bits. Si se precisa comparar números de más cifras, cabe emplear varias unidades semejantes en cascada.



 Comprobador de paridad
 Otra operación aritmética, que se emplea a menudo en los sistemas digitales, es la de determinar si la suma de bits binarios en una información es impar o par: la salida de una puerta OR-Exclusiva es 1, si una entrada es 1 y la otra 0. Dicho de otra manera, la salida es 1 si la suma de los dígitos es 1. Por extensión, este concepto nos lleva a la conclusión de que la salida es 1 si la suma de los bits de distintas entradas es impar. Por lo tanto, si la entrada de comparación está puesta a tierra, entonces la salida será 0, si la suma es impar, y será 1 si es par. En la figura se muestra un comprobador de paridad formado por una puerta OR - Exclusiva.


El empleo de un código de paridad aumenta la seguridad de transmisión de una información binaria. Por ejemplo, generando un bit de paridad que se transmite conjuntamente con las señales de entrada. En el receptor, se comprueba la paridad de la señal aumentada en un bit, y si la salida del comprobador es 0, se puede suponer que no hay ningún error en la transmisión del mensaje, mientras que si aparece un 1 indica que hay un error en la recepción.

No hay comentarios:

Publicar un comentario