Circuitos MSI Hasta ahora el diseño de funciones lógicas, o de circuitos lógicos, se ha realizado mediante el uso exclusivo de compuertas básicas. Los circuitos que contienen estas puertas básicas son conocidos como SSI (Small Scale of Integration) por que contienen un número pequeño de transistores. El diseño que se realiza con estos dispositivos se denomina CUSTOM. Un paso más profundo en el diseño HARDWARE es realizar un diseño SEMI-CUSTOM, basado en el uso de bloques constructores más complejos. Esto se puede hecer mediante el uso de sistemas o circuitos MSI (Medium Scale of Integration) dónde el número de puertas básicas puede llegar a 100. Más avanzados son los sistemas LSI (Large Scale of Integration ~1000), VLSI (Very Large Scale of Integration >1000), y ULSI (Ultra Large Scale of Integration >100000). En un computador se realizan principalmente operaciones de codificación y decodificación de datos usando codificadores y decodificadores; transmisión y control de datos usando líneas de bus, multiplexadores y demultiplexadores; y procesado de datos mediante circuitería aritmética. En nuestro computador podemos encontrarnos los siguientes sistemas MSI: · CODIFICADORES Y DECODIFICADORES · MULTIPLEXORES Y DEMULTIPLEXORES · SUMADORES, COMPARADORES... Además estos dispositivos pueden usarse también para la realización de funciones complejas con un considerable ahorro de área frente al uso de puertas básicas (circuitos SSI). Algunas de las ventajas la podemos ver a continuacion: 1. Realizaciones más compactas (al tener soluciones completas en un sólo circuito integrado con algunas pocas puertas extra para realizar la adaptación en algunos casos). 2. Menos alambrado (puesto que para usar los circuitos MSI sólo se requiere alambrar entradas y salidas, la función lógica que realizan ya está alambrada en su interior) 3. Soluciones modulares (toda la lógica relacionada con una subfunción está contenida en un sólo circuito integrado) 4. Facilidad de mantenimiento (por la misma razón que el punto anterior). Unidad III: Diseño con Cktos MSI. Elaborado por: Ing. Carlos Ortega CIRCUITOS SUMADORES El sumador binario es la célula fundamental de todos los circuitos aritméticos, ya que mediante sumas (y complementos) es posible realizar restas. A continuación se describe el diseño paso a paso de un sumador binario expandible de acuerdo al número de bits de los datos a sumar. 7.2.1.- EL MEDIO SUMADOR Un medio sumador es un sumador capaz de sumar dos datos de un sólo bit y producir un bit de acarreo de salida. Como se muestra en el siguiente diagrama de bloques La manera como realiza la suma y produce el acarreo el medio sumador se desglosa en la siguiente tabla de verdad. De lo cual es evidente la expresión lógica para cada salida: C= A.B y S = Con lo cual, la A/B implementación del medio sumador es como se muestra a continuación Unidad III: Diseño con Cktos MSI. Elaborado por: Ing. Carlos Ortega EL SUMADOR COMPLETO DE UN BIT El medio sumador no puede ser interconectado con otros medios sumadores para formar un sumador más grande, por ello es necesario diseñar un sumador que admita otra entrada aparte de los datos a sumar, es decir, un sumador de 3 datos de 1 bit, éste es denominado sumador completoy su diagrama de bloques es como se muestra a continuación Un análisis de esta tabla de verdad y el uso de Mapas de Karnaugh nos lleva a las siguientes expresiones para C1 y S: EL SUMADOR BINARIO DE n BITS La ventaja del sumador completo de un bit es que permite conectarse en cascada con otros sumadores completos para realizar un sumador completo de varios bits. Por ejemplo, en la siguiente figura se muestra como se conectarían cuatro sumadores completos de 1 bit para construir un sumador binario de cuatro bits. Unidad III: Diseño con Cktos MSI. Elaborado por: Ing. Carlos Ortega SUMADORES EN CIRCUITO INTEGRADO Algunos sumadores binarios en circuito integrado de la familia TTL son los siguientes: 7480 Sumador Completo de 1 bit. 7482 Sumador Completo de 2 bits. 7483 Sumador Completo de 4 bits. 74283 igual al 7483 pero con diagrama de patitas diferente En la siguiente figura se muestra el diagrama funcional del 74LS83 (sumador binario de 4 bits) Sumador de 4 bits en Cascada Unidad III: Diseño con Cktos MSI. Elaborado por: Ing. Carlos Ortega Sumador BCD Comparadores de Magnitud Son circuitos que comparan el valor binario de dos números, proporcionando información de cuál es mayor, menor, o si ambos son iguales. Son sistemas muy usados en ingeniería. Su bloque y tabla de funcionamiento básico son los siguientes: La figura muestra la simbologia y la tabla de verdad para el comparador de magnitud 74HC84 de cuatro bits que tambien esta disponible como el 74LS85. Unidad III: Diseño con Cktos MSI. Elaborado por: Ing. Carlos Ortega Entradas de Datos El 74 HC85 compara dos numeros binarios sin signo de cuatro bits. Uno de ellos es A 3A2A1A0, al cual se le llama palabra A; el otro es B3B2B1B0, al cual se le llama palabra B. El termino palabra se utiliza para designar un grupo de bits que represente cierto tipo especifico de informacion. Aqui las palabras A y B representan cantidades numericas. Salidas Posee tres salidas activas en ALTO. La salida O A>B estara en ALTO cuando la magnitud de la palabra A sea mayor que la magnitud de la Palabra B. La salida de O A<B sera ALTO cuando la magnitud de la palabra A sea menor que la magnitud de la palabra B. La salida O A=B estara en ALTO cuando la palabra A y B sean identicas. Entradas en Cascada La conexión de las entradas en cascada nos proporciona un medio para expandir la operación de comparacion a mas de cuatro bits. Cuando se van a conectar en cascada dos comparadores, las salidas de menor orden se conectan con las entradas correspondientes del comparador de mayor orden. Esto se muestra en la Figura en donde el comparador de la izquierda compara los cuatro bits menos significativos. Sus salidas se alimentan a las entradas en cascada del comparador a la derecha, el cual compara los bits de mayor orden. Las salidas del comparador de mayor orden son las salidas finales que indican el resultado de la comparacion de ocho bits. Unidad III: Diseño con Cktos MSI. Elaborado por: Ing. Carlos Ortega Ejemplo 1 Describa la operación del arreglo de comparacion de ocho bits de la figura para los siguientes casos: a) A7A6A5A4A3A2A1A0 = 10101111 B7B6B5B4B3B2B1B0 = 10110001 b) A7A6A5A4A3A2A1A0 = 10101111 B7B6B5B4B3B2B1B0 = 10101001 Solucion: a) El comparador de mayor orden compara sus entradas A 7A6A5A4 = 1010 y B7B6B5B4 = 1011 y produce OA<B = 1 sin importar que niveles se apliquen a sus entradas en cascada que provienen del comparador de menor orden. En otras palabras una vez que el comparador de mayor orden detecte una diferencia en los bits de mayor orden de las dos palabras de ocho bits, sabra cual palabra de ocho bits es mayor sin tener que analizar los resultados de la comparacion de menor orden. b) El comparador de mayor orden ve A 7A6A5A4 = B7B6B5B4 = 1010, por lo que debe analizar sus entradas en cascada para ver el resultado de la comparacion de menor orden. El comparador de menor orden tiene A3A2A1A0= 1111 y B3B2B1B0 = 1001, lo cual produce un 1 en su salida O A>B y en la entrada IA>B del comparador de mayor orden. Este comparador detecta el 1 y como sus entradas de datos son iguales, produce un nivel ALTO en su salida O A>B para indicar el resultado de la comparacion de ocho bits. Unidad III: Diseño con Cktos MSI. Elaborado por: Ing. Carlos Ortega DECODIFICADORES n Un decodificador es un circuito lógico con n entradas y 2 salidas, tal que para cada combinación de entradas se activa al menos una salida. Si sólo se activa una salida se denomina decodificador completo. Por ejemplo este es un circuito decodificador completo de 3 a 8 líneas, permitiría la activación de un dispositivo al proporcionarle la dirección de dicho dispositivo. Dispone de una entrada de HABILITACIÓN (enable) que conecta o desconecta el dispositivo, en este caso dicha entrada es activa a NIVEL BAJO, ya que el dispositivo se activa cuando dicha entrada recibe un ‘0’ lógico. Los decodificadores pueden dividirse en diferentes tipos: · EXCITADORES (DRIVERS) que controlan algún dispositivo. · NO EXCITADORES, los que no se usan para dicho fin. Tanto las entradas como las salidas, principalmente estas últimas, pueden ser: · ACTIVAS A NIVEL ALTO: la salida activa es 1 y la no activa 0. · ACTIVAS A NIVEL BAJO: la salida activa es 0 y la no activa 1. Unidad III: Diseño con Cktos MSI. Elaborado por: Ing. Carlos Ortega Además el número de entradas de Habilitación puede ser de una o más, y pueden estar activas a nivel alto o bajo. Podemos encontrar decodificadores de muy diversos “tamaños”: De 2 a 4 líneas De 3 a 8 líneas (bin a oct) De 4 a 16 líneas (bin a hex) Convertidores de códigos: BCD/decimal y BCD/7-seg Ejemplo de Decodificador completo de 3 a 8 líneas: CIRCUITO 74X138 El decodificador 74138 posee salidas activas en BAJO, las cuales solamente se activara una dependiendo de las entradas y de las lineas de HABILITACION. Podemos ver en la tabla de verdad que a medida de que suceda el conteo binario se ira activando su salida correspondiente. Unidad III: Diseño con Cktos MSI. Elaborado por: Ing. Carlos Ortega Decodificador de BCD a Decimal Tambien se encuentra disponible el 74LS42 o el 74HC42 como decodificador cuya salida cambia a BAJO solo cuando se aplique su entrada BCD correspondiente. Tambien se le conoce como decodificador de 4 a 10 lineas. Su representacion grafica y su tabla de verdad se muestran a continuacion. Decodificador de BCD a 7 Segmentos Uno de los metodos mas simples y populares para visualizar datos numericos utiliza la configuracion de 7 segmentos (ver figura a continuacion) para formar los caracteres decimales del 0 al 9 y algunas veces los caracteres hexadecimales A-F. Un arreglo comun utiliza diodos emisores de luz (LEDs) para cada segmento. Al controlar la corriente que fluye a traves de cada LED, algunos segmentos se encenderan y otros no de manera que se genere el patron del carácter deseado. La figura muestra algunos patrones de como se alumbran los segmentos. Por ejemplo el numero 6 se iluminan todos los segmentos a excepcion del segmento a. Un Decodificador de BCD a 7 Segmentos se utiliza para tomar una entrada BCD de cuatro bits y proporcionar las salidas que pasaran corriente a traves de los segmentos apropiados para que se visualice el digito decimal. La logica de este decodificador es diferente ya que cada salida se activa para mas de una combinacion de entradas. Por ejemplo el segmento e se debe activar para cualquiera de los digitos 0,2,6 y 8, lo cual significa que se activara cada vez que ocurra uno de los codigos 0000, 0010, 0110, 1000. El diagrama se muestra a continuacion: Unidad III: Diseño con Cktos MSI. Elaborado por: Ing. Carlos Ortega REALIZACIÓN DE FUNCIONES CON DECODIFICADORES Un circuito decodificador completo genera todos los productos fundamentales (mintérminos) de las variables de entrada. Cuándo las salidas del decodificador son activas a nivel bajo, para realizar la función en suma de productos basta con conectar las salidas correspondientes a los mintérminos de la función usando puertas NAND: Por ejemplo: F(X,Y,Z) = S m(0, 3, 6) A veces puede ocurrir que necesitemos decodificar más líneas de las que nos permite nuestro circuito, se bebe entonces construir un decodificador de mayor tamaño usando decodificadores de menor tamaño: Unidad III: Diseño con Cktos MSI. Elaborado por: Ing. Carlos Ortega Por ejemplo para 4 bits (X,Y,Z,W) Codificadores Son los dispositivos MSI que realizan la operación inversa a la realizada por los decodificadores. Generalmente, poseen 2n entradas y n salidas. Cuando solo una de las entradas está activa para cada combinación de salida, se le denomina codificador completo. Anteriormente vimos que un decodificador de binario a octal (decodificador de 3 a 8 lineas) acepta un codigo de tres bits y activa uno de ocho lineas de salida correspondientes a ese codigo. Uncodificador de octal a binario (codificador de 8 a 3 lineas) realiza la funcion opuesta acepta ocho lineas de entrada y produce un codigo de salida de tres bits, correspondiente a la entrada que se activo. Por ejemplo, el siguiente circuito proporciona a la salida la combinación binaria de la entrada que se encuentra activada. En este caso se trata de un codificador completo de 8 bits, o también llamado codificador de 8 a 3 líneas: Unidad III: Diseño con Cktos MSI. Elaborado por: Ing. Carlos Ortega Las salidas codificadas, generalmente se usan para controlar un conjunto de 2n dispositivos, suponiendo claro está que sólo uno de ellos está activo en cualquier momento. Sin embargo cuando nos encontremos con que se deben controlar dispositivos que pueden estar activos al mismo tiempo, problema que se suelen encontrar los sistemas microprocesadores, es preciso usar un dispositivo que nos proporcione a la salida el código del dispositivo que tenga más alta prioridad. En la siguiente figura se representa el diagrama lógico de un codificador completo de Decimal a BCD natural, junto a su tabla de funcionamiento. Por otro lado la figura siguiente representa el diagrama lógico del circuito 74147, que es un codificador de prioridad de Decimal a BCD natural; en la tabla de funcionamiento adjunta se puede notar la diferencia con el anterior. Multiplexores (Selectores de Datos) y Demultiplexores (Distribuidores de Datos) Multiplexar es pasar información de “muchos” canales o líneas a “pocos” canales o líneas. Un MULTIPLEXOR (MUX) es un circuito combinacional que selecciona una entrada y la transfiere a la salida. La selección de la entrada, o dato, se realiza según un conjunto de valores de las variables de control. Unidad III: Diseño con Cktos MSI. Elaborado por: Ing. Carlos Ortega Poseen por tanto, n entradas de selección, para 2n entrada de datos, proporcionando dos salidas: una para el dato directo y otra para el dato negado. La idea fundamental en la utilización de multiplexores (MUX) y demultiplexores (DEMUX) es el ahorro de líneas de comunicación, es decir, el uso de una sola línea para realizar múltiples funciones, o para conectar a través de ella múltiples fuentes de información o señales a transmitir. El uso de pocas lineas de comunicación se logra por compartir por tiempo la línea, es decir, en un momento dado sólo una de las señales puede ser transmitida. El esquema fundamental para lograr esto, se muestra en la siguiente figura: Multiplexor Basico de Dos Entradas Es un multiplexor con dos entradas de datos (I 0 e I1) y la entrada de SELECCION. El nivel logico que se aplica a la entrada S determina cual salida estara habilitada de manera que esta saldra hacia la Salida. Multiplexor de 8 Entradas El IC mas comun en el mercado es el 74ALS151 y se muestra a continuación Unidad III: Diseño con Cktos MSI. Elaborado por: Ing. Carlos Ortega Expansion usando Mux. Se desea un circuito total de 16 entradas de Datos pero se tienen solamente multiplexores de 8 entradas (74ALS151). La figura muestra la conexión de los dos ICs 74ALS151 para su respectivo diseño. Las Entradas de selección S3S2S1S0 seleccionaran una de las entradas para que pase a X. La Entrada S3 determinara que multiplexor estara habilitado, cuando sea igual a 0 el multiplexor superior estara habilitado y pasara el dato hacia la compuerta OR, si es igual a 1 se habilitara el multiplexor inferior. Se puede observar que para que exista diferentes estados en la entrada de Seleccion del multiplexor es necesario un INVERSOR. Aplicaciones de los Multiplexores Enrutamiento de Datos: Pueden enrutar datos de una de varias fuentes hacia un destino. Conversion de Paralelo a Serial: Muchos sistemas digitales procesan datos binarios en formato paralelo (todos los bits al mismo tiempo) porque es mas rapido. No obstante, cuando los datos se van a transmitir a traves de distancias relativamente grandes no es conveniente el arreglo en paralelo ya que se requiere un gran numero de lineas de transmision. Por esta razon, es comun convertir los datos binarios o la informacion en formato paralelo a formato serial antes de transmitirlos a un destino remoto. Un metodo para realizar esta conversion de paralelo a serial utiliza un multiplexor como se ilustra en la figura. Unidad III: Diseño con Cktos MSI. Elaborado por: Ing. Carlos Ortega Realización de funciones combinacionales con Mux Partimos de la siguiente afirmación: un multiplexor de 2n entradas puede realizar cualquier función lógica de n+1 variables. 1. A partir de la expresión canónica y se escoge un Mux determinado: Ej: Sea f(A,B,C,D)= ∑4m(0,2,3,7,8,13,15) Al ser una función de 4 variables necesitamos un MUX de 8 a 1 líneas (o sea, con tres variables de control) 2. Se crea un mapa de Karnaugh de manera que la numeración en las columnas, coincida con la entrada que se pretende seleccionar. Así, las columnas, vendrán determinadas por las variables de control del MUX, y las filas por el dato o los datos que se quieren transmitir. Las variables de control deben ser las de menor peso. Evaluando cada columna identificamos el valor que hay que colocar en cada entrada. Unidad III: Diseño con Cktos MSI. Elaborado por: Ing. Carlos Ortega Ej: Realizamos dicho mapa para nuestra función: 3. Hacemos el diagrama lógico del circuito colocando den las entradas de datos lo que la tabla nos indique. Ej: Nuestra tabla nos dice que en la entrada I0 de nuestro MUX, debemos colocar un 1; que en la I1, un 0; ... Nos debe quedar un circuito como el de la figura: Demultiplexores En realidad no existen como tales, sino que vienen definidos por los decodificadores/demultiplexores. La función que debe realizar es la inversa de la que realiza el MUX, o sea, debemos seleccionar una salida por donde transmitir el dato de la entrada. Por tanto, el circuito constará de 1 entrada de datos, n entradas de selección de salida, y 2n salidas. El Decodificador/DEMUX 74138 que ya conocemos utiliza su entrada de habilitación G1 para entrada de Datos: Unidad III: Diseño con Cktos MSI. Elaborado por: Ing. Carlos Ortega Unidad III: Diseño con Cktos MSI. Elaborado por: Ing. Carlos Ortega