Sistemas Digitales Bloques estandarizados Más allá de las puertas lógicas Mario Medina C. [email protected] Complejidad creciente de diseños hace necesario buscar nuevos niveles de abstracción por sobre las compuertas discretas Alternativas de mayor escala de integración Implementaciones alternativas Implementaciones alternativas de funciones booleanas Uso de bloques estandarizados Codificadores y decodificadores Multiplexores y demultiplexores Implementaciones ASIC Alternativas programables PLA/PAL Memorias ROM Circuito semi-sumador A 0 0 1 1 B 0 1 0 1 Cout 0 0 0 1 © 2014 Mario Medina Suma 0 1 1 0 MSI (Medium-Scale Integration) LSI (Large-Scale Integration) Bloques estandarizados Funciones más complejas, sin aumentar el número de conexiones externas Semi-sumador Sumador completo Sumador con propagación de acarreo Sumador con acarreo anticipado Comparador Codificador Decodificador Multiplexor Demultiplexor Circuito sumador completo Cin 0 0 0 0 1 1 1 1 A 0 0 1 1 0 0 1 1 B 0 1 0 1 0 1 0 1 Cout Suma 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 Sistemas Digitales Circuito sumador completo Circuito sumador completo Sumadores en paralelo Construido con dos semi-sumadores Sumador paralelo de 4 bits Sumador de 2 bits Sumador paralelo de 4 bits (74LS283) © 2014 Mario Medina Retardos de propagación, 74LS283 2 Sistemas Digitales Sumador paralelo de 8 bits Sumador paralelo de 16 bits 4 sumadores paralelos de 4 bits en cascada Retardo de propagación, sumador de 4 bits Retardo de propagación aumenta linealmente Sumador de anticipación de acarreo Llamado también carry-lookahead adder Acarreo puede ser Generado: si entradas A y B a un sumador son 1 Propagado: si el acarreo de entrada Cin se refleja en un acarreo de salida, lo que ocurre si al menos una de las entradas es 1 y Cin es 1 Cg = AB Cp = A + B Cout = Cg + CpCin Acarreos generados y propagados generado propagado © 2014 Mario Medina Sumador de anticipación de acarreo propagado propagado 3 Sistemas Digitales Circuito de anticipación de acarreo Circuito comparador de 4 bits 7485 Circuitos comparadores en cascada Codificadores Bloque de 2n entradas y n salidas Se llama codificador 2n-a-n o de n bits Transforma la única entrada activa a algún código (Binario, Gray, BCD, etc.) i si x i 1 y E 1 y (x k 0 k i) z 0 en otro caso Codificadores Codificador de prioridades Sólo una entrada puede estar activa a la vez Entrada E es una señal de control, no de datos Habilita o deshabilita el bloque Deshabilitación deja todas las salidas en alto o bajo, dependiendo de la lógica definida para el bloque © 2014 Mario Medina Codifica la entrada de mayor prioridad que está activa Puede haber más de una entrada activa a la vez Necesario establecer prioridad entre las entradas Salida adicional indica si no existen entradas activadas 4 Sistemas Digitales Codificador de prioridades 74LS148 Codificador de prioridades Salida abc codifica entrada activa de mayor prioridad Entrada y7 tiene mayor prioridad que y0 Salida d indica que hay una entrada activa y0 0 1 X X X X X X X y1 0 0 1 X X X X X X y2 0 0 0 1 X X X X X y3 0 0 0 0 1 X X X X y4 0 0 0 0 0 1 X X X y5 0 0 0 0 0 0 1 X X y6 0 0 0 0 0 0 0 1 X y7 0 0 0 0 0 0 0 0 1 a 0 0 0 0 0 1 1 1 1 b 0 0 0 1 1 0 0 1 1 Codificador de prioridades 16a-4 en cascada c 0 0 1 0 1 0 1 0 1 d 0 1 1 1 1 1 1 1 1 8 entradas activas bajas 3 salidas activas bajas HPRI: entrada de más alto valor tiene prioridad EI: activación activa baja EO y GS: salidas activas bajas para conexión en cascada Decodificadores Bloque de n entradas y 2n salidas Se llama decodificador n-a-2n Función inversa a codificador Activa una de las salidas en función del valor de las entradas Implementación decodificador 2-a-4 1 si x i y E 1 zi 0 en otro caso Decodificador 3-a-8 © 2014 Mario Medina Demás salidas inactivas o complementadas Señales de salida mutuamente excluyentes Implementación usa 8 ANDs de 3 entradas 5 Sistemas Digitales Ejemplo: decodificador 4-a-10 para BCD 8421 Ejemplo: decodificador 4-a-10 •Decodificador para dígitos BCD 8421 •Salidas activas bajas Decodificador 4-a-16 74LS154 Decodificador 5-a-32 usando decodificadores 4-a-16 •Salidas y activación activas baja Implementaciones alternativas con decodificadores Implementar funciones f1 y f2 con decodificador 4-a-10, salida activa baja Multiplexores o selectores f1 = m1 + m2 + m4 f2 = m4 + m7 + m9 Reescribiendo f1 = (m1’m2’m4’)’ f2 = (m4’m7’m9 ’)’ © 2014 Mario Medina Bloque de 2n entradas de datos, n entradas de control y 1 señal de salida También se debe añadir la señal de habilitación E Si el bloque está habilitado, la señal de control s selecciona una de las entradas para ser dirigida hacia la salida Si E 1 Y x c , c s 0s1s2 6 Sistemas Digitales Operación de un multiplexor 2-a-1 Escoge la entrada basada en señal de control Z = A’*I0 + A*I1 Multiplexor 8-a-1 •2n entradas •n señales de control Multiplexor 2-a-1 Multiplexores 2n-a-1 Multiplexor de 8 entradas 74LS151 Entradas I0 a I7 Señales de control abc Multiplexor 16-a-1 usando multiplexores 8-a-1 Multiplexor de datos Multiplexor cuádruple con entradas y salidas de bus de 4 bits © 2014 Mario Medina 7 Sistemas Digitales Multiplexor de 2 entradas cuádruple 74LS157 Demultiplexores o distribuidores Función inversa al multiplexor Bloque de 1 entrada, 2n salidas de datos, n entradas de control Demultiplexores o distribuidores Notar la similitud entre las descripciones de un demultiplexor y un decodificador Demultiplexor 4-a-16 Usados adecuadamente sus operaciones son intercambiables De hecho, los fabricantes clasifican los demultiplexores como demultiplexers/decoders Decodificador 4-a-16 74154 puede ser usado también como demultiplexor Implementaciones alternativas con multiplexores Describiendo un multiplexor de 2 y 4 entradas mediante una tabla de verdad, podemos escribir sus funciones de transferencia como Además de la señal de habilitación E Si el bloque está habilitado, la señal de entrada es enviada a la salida seleccionada mediante la x si E 1 e i c señal de control s zi Las salidas son mutuamente 0 si E 0 o i c excluyentes Usar entradas como líneas de selección de datos Usar habilitación como entrada de datos Implementaciones alternativas con multiplexores En forma general k 0 Esto corresponde a una expresión en minitérminos z A I 0 A I1 © 2014 Mario Medina z A B I 0 A B I1 A B I 2 A B I 3 2n -1 z mkIk Representación en dos niveles (AND-OR) Expresión general de un multiplexor de n:1 indica que éstos pueden ser utilizados como generadores de minitérminos Más que un selector, es un bloque de propósito general 8 Sistemas Digitales Implementaciones alternativas con multiplexores Ejemplo de implementación Multiplexor puede implementar una tabla de verdad en forma directa F(A 2 , A 1 , A 0 ) m1 m3 m5 m 6 Ejemplo F(A, B, C) m0 m2 m6 m7 Conexión a +5V equivale a 1 lógico Implementaciones alternativas con multiplexores Cualquier función de n variables puede implementarse en forma directa con un MUX de 2n-a-1 El número de entradas a un MUX suele ser limitado Comercialmente no se fabrican con muchas entradas Implementaciones alternativas con multiplexores Metodología general (particionar la función) Seleccionar n-1 variables como entradas de control Variable restante se usará como entrada Cada combinación de las n-1 variables define 2 celdas de la tabla de verdad Si la variable de entrada es constante en 0 o 1, la entrada asociada al MUX será 0 o 1 Si la variable de entrada cambia su valor, la entrada al MUX será la variable de entrada o su complemento © 2014 Mario Medina Implementaciones alternativas con multiplexores A 0 0 0 B 0 0 1 C 0 1 0 F 1 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 0 0 0 1 1 C 0 1 Ejemplo: implementar la siguiente función con un MUX de 4-a-1 F(A, B, C) = A’B’C’ + A’BC’ + AB F(A, B, C) = A’B’(C’) + A’B(C’) + AB’(0) + AB(1) Implementaciones alternativas con multiplexores Implementar con un MUX de 8:1 la función F(A, B, C, D) = ∑m(0, 1, 3, 6, 7, 8, 11, 12, 14) El método es general para más variables, pero las entradas serían función de las variables que no se definen como de control Requiere uso de bloques lógicos en las entradas 9 Sistemas Digitales Implementaciones alternativas con multiplexores Otro ejemplo F(A, B, C, D) m(1,2,5,6,7, 8,10,12,13 ,15) Implementar un MUX de 8:1 con Implementaciones alternativas: demultiplexor Cualquier función de n variables puede implementarse con un demultiplexor de n entradas de control y puertas OR Cada combinación de entradas selectoras corresponde a un minitérmino de una función Todas las salidas que corresponden a un minitérmino se usan como entradas a un OR que calcula la función final Implementaciones alternativas Circuitos integrados comerciales imponen limitantes a número de entradas disponibles Inclusión de entradas de control, como la de habilitación E, permite interconectar jerárquicamente distintos bloques para formar bloques más grandes Un MUX de 32-a-1 puede implementarse con 4 MUX de 8:1 y un decodificador de 2-a-4 Decodificador 5:32 puede implementarse con 1 decodificador de 2:4 y 4 decodificadores de 3:8 © 2014 Mario Medina 2 MUX de 4:1 y un MUX de 2:1 4 MUX de 2:1 y un MUX de 4:1 Implementaciones alternativas con demultiplexor Implementar las siguientes funciones con un demultiplexor de 8 salidas F(C, B, A) = ∑m(0, 2, 3, 7) G(C, B, A) = A’BC + AB’C + ABC’ Fan-Out y buffers Una salida de compuerta lógica sólo se puede conectar a un número limitado de otras entradas Limitación de implementación Buffer No modifica el valor lógico de la entrada Mejora las características eléctricas de la salida Permite aumentar el fan-out 10 Sistemas Digitales Fan-Out y buffers Función buffer Buffer que aísla la entrada de la salida Si B es 1, C = A Si B es 0, A y C no están conectados No se pueden conectar directamente dos salidas Buffer de 3 estados Tipos de buffers de 3 estados Salidas activa alta/baja Control activo alto/bajo 3er estado es alta impedancia (Z) Circuitos con buffers de 3 estados F=C Permite conectar más entradas a la salida Buffers de 3 estados Conectando salidas Construyendo un multiplexor de 2-a-1 con buffers de 3 estados Nótese que salidas de buffers están conectadas directamente! Si B = 0, D = A Si B = 1, D = C D = AB’ + BC © 2014 Mario Medina Construyendo circuitos con buffers de 3 estados Si BD = 00, F = Z (alta impedancia) Si BD = 01, F = C Si BD = 10, F = A Si BD = 11, Error! Conflicto entre las salidas Debe garantizarse que BD nunca será 11 Cómo? Decodificador 11 Sistemas Digitales Buffers de 3 estados como alternativas a MUXes Sumador de 4 bits Sum = (EnA*A + EnB*B + EnC*C + EnD*D) + E Sólo una entrada de habilitación activa a la vez Líneas bidireccionales utilizando buffers de 3 estados Terminal bidireccional Enable construido con buffer de Salida 3 estados Si buffer está activo, terminal corresponde a salida del circuito Si buffer está inactivo, terminal corresponde a entrada al circuito Terminal Entrada Bus de datos bidireccional © 2014 Mario Medina 12