Diseño de circuitos combinacionales Mario Medina C. mariomedina@udec.cl Diseño de circuitos combinacionales Métodos de minimización vistos permiten obtener funciones de dos niveles Tópicos en diseño de circuitos Circuitos multinivel Circuitos con Circuitos NAND-NAND y NOR-NOR Circuitos de fan-in limitado Remoción de glitches Circuitos de 2 niveles Métodos de minimización son sencillos y bien conocidos Sumas de productos (SoP) Productos de sumas (PoS) Minimizan el retardo Mayor cantidad y complejidad de puertas Desarrollar IC más complejos es más barato que desarrollar IC más rápidos Disminuir el retardo implica cambio de tecnología En muchos casos prácticos, la complejidad de una representación de 2 niveles hace inviable a un sistema En general, problemas tienen gran número de variables de entrada Las puertas comerciales (IC) limitan este número Fabricantes sólo producen compuertas de 2, 3, 4, 8 entradas Es necesario usar factorizaciones Sea la función F(A, B, C, D, E, F, G) = ADF + AEF + BDF + BEF + CDF + CEF + G Una implementación de dos niveles requiere 6 compuertas AND de 3 entradas compuerta OR de 7 entradas Un total de 7 compuertas y 9 literales Si cada nivel demora ns, esta implementación demora 2ns Reescribiendo f = (AD + AE + BD + BE + CD + CE)F + G f = (A + B + C)(D + E)F + G Sea X = (A + B + C) e Y = (D + E), entonces podemos escribir f = XYF + G Implementación de 3 niveles demora 3 ns y tiene compuerta AND de 3 entradas 2 compuertas OR de 2 entradas, OR de 3 entradas Un total de 4 compuertas y 7 literales 24 Mario Medina
Nivel Nivel 2 Nivel Nivel 2 Nivel 3 A + B + C Factorizaciones multinivel Permite reducir número de puertas y conexiones Retardo de salida aumenta Depende del número de niveles No sirven métodos de minimización ya vistos Experiencia del diseñador es crítica Existen programas CAD más complejos para diseño multinivel Mayor complejidad hace difícil su análisis Aumenta la probabilidad de errores Conversiones de puertas lógicas Métodos de minimización entregan redes de 2 niveles de compuertas AND, OR y NOT Puertas poco usadas en implementaciones PuertasNAND y NOR son máseficientesde implementar con tecnologías electrónicas actuales AND se implementa como NAND y NOT OR se implementa como NOR y NOT Puertas NAND y NOR definen un conjunto funcionalmente completo Leyes de De Morgan Leyes de De Morgan AB A B A B A B AB A B A B A B NAND equivale a OR con entradas negadas NOR equivale a AND con entradas negadas Esta equivalencia se llama a veces pushing bubbles Utilizada para eliminar negaciones Conversión AND-OR a NAND-NAND Etapa b) presenta bubble mismatch (a) (b) Conversión AND-OR a NOR- NOR (a) Etapa c) asume que las entradas negadas están disponibles En caso de ser necesarios, los inversores deben implementarse también con puertas NOR Inversor de salida puede eliminarse si ésta se conecta a otra función con entrada activa baja (c) (d) (b) (c) 24 Mario Medina 2
Conversiones de circuitos de 2 niveles Conversión de circuito de 2 niveles AND-OR a NAND-NAND (y vice versa) es directa Basta reemplazar todas las compuertas por NANDs Conversión de circuito de 2 niveles OR-AND (PoS) a NOR-NOR (y vice versa) es directa Basta reemplazar todas las compuertas por NORs Conversión de circuitos multinivel a compuertas NAND Simplificar la función a implementar Diseñar un circuito usando AND y OR en niveles alternados Compuerta de salida debe ser OR Numerar niveles comenzando por nivel de salida Reemplazar todas las compuertas por NAND Entradas a niveles pares no se modifican Entradas a niveles impares se complementan Método también funciona para NORs Ejemplo: AND-OR a NAND- NAND Ejemplo: OR-AND a NOR- NOR Ejemplo: NAND-NAND a AND-OR Ejemplo: conversión OR-AND a NOR-NOR 24 Mario Medina 3
Diseño de circuitos con Implementación de varias funciones de las mismas variables de entrada Uso de compuertas lógicas comunes a más de una función puede minimizar número de compuertas o minimizar número de literales de la función Atención: No siempre reduce las compuertas! Ejemplo de F = AB + ACD F 2 = ABC + CD F 3 = A CD + AB F = m(, 2, 3, 4, 5) F 2 = m(3, 7,, 2, 3, 5) F 3 = m(3, 7, 2, 3, 4, 5) Implementación de las 3 funciones F, F 2 y F 3 Detección de compuertas compartidas Producto AB es común a funciones F y F 3 CD en F 2 puede reemplazarse por ACD (necesario en F ), y A CD (necesario en F 3 ) Utilizando los 3 términos comunes, queda F = AB + ACD F 2 = ABC + ACD + A CD F 3 = A CD + AB Implementación con compuertas compartidas F = AB + ACD F 2 = ABC + ACD + A CD F 3 = A CD + AB 24 Mario Medina 4
Minimizando por separado: compuertas F = BD + B C + AB F 2 = C + A BD F 3 = BC + AB C + ABD Minimización de múltiples funciones: 8 compuertas y 22 literales F = A BD + ABD + A B C + B C F 2 = C + A BD F 3 = BC + AB C + ABD Expresión óptima global puede no ser la expresión mínima para cada función En este caso, la solución global usa un compuertalógicamenos Solución original Solución mejorada Minimización sin términos comunes F = A D + A BC + BCD F 2 = BD + A B C Solución tiene 7 compuertas lógicas y 8 entradas Minimización con términos comunes F = A C D + A BC + A CD + BCD F 2 = A C D + BC D + A B C + BCD Solución tiene 8 compuertas lógicas y 26 entradas Peor que la anterior! Fan-In de una compuerta: número de entradas de ésta Fabricantes de compuertas sólo construyen compuertas de 2, 3, 4, 8 entradas No disponibles para todas las funciones básicas Determinante a la hora de diseñar el circuito Ejemplo: implementar F(a, b, c, d) = m(, 3, 4, 5, 8, 9,, 4, 5) Usando NORs de 2 y 3 entradas solamente! NORs PoS F(a, b, c, d) = (a + b + c + d ) (a + b + c + d ) (a + b + c ) (a + c + d) (a + b + c) 24 Mario Medina 5
Limitación de fan-in modifica el procedimiento de diseño F = [B + D + (A + C)(A + C )][A + C + B D][A + B + C] Ejemplo: implemente las siguientes funciones usando sólo NANDs de 2 entradas y NOTs Minimización arroja suma de 3 términos F (a, b, c) = ab + b c + a b F 2 (a, b, c) = b c + bc + a b F 3 (a, b, c) = a b c + ab + bc Reescribir como F (a, b, c) = b (a + c ) + a b F 2 (a, b, c) = (b + c)(b + c ) + a b F 3 (a, b, c) = b(a + c ) + a (b + c ) Solución AND-OR convertida a NAND-NAND Peligros (hazards) Un circuito tiene un peligro o hazard si puede tener un glitch en su salida La presencia de un peligro es una característica intrínseca del circuito en particular El glitch en la salida no siempre se presenta Depende de las combinaciones de entrada y características eléctricas El peligro existe porque una variable debe recorrer varios caminos simultáneamente Peligros (hazards) Peligro estático (static Peligro dinámico hazard) (dynamic hazard) Ocurre si la salida Ocurre si la salida cambia cambia más de una vez cuando se espera que cuando debería hacer permanezca constante una transición simple entre los estados Peligro estático en Peligro estático en Peligros dinámicos 24 Mario Medina 6
f A C B C A A2 Considerar la transición en ABC de a Asuma que todas las puertas tienen unidad de retardo t Los peligros estáticos pueden obviarse si en el diseño se define que se debe esperar cierto t para verificar la salida Se debe considerar el peor caso (retardo máximo) Sin embargo, se producen problemas cuando estos circuitos alimentan a circuitos secuenciales, como contadores Estos se activan en función de los pulsos generados Peligros pueden eliminarse introduciendo retardos artificiales Permiten eliminar el glitch Peligro sigue latente Un buen diseño debe eliminar los peligros : fáciles de detectar y eliminar Peligros dinámicos: fáciles de detectar pero su eliminación es mucho más compleja Métodos para eliminar los peligros Consideran cambio de un solo bit en las entradas Glitch se produce en el subcubo rojo Si A = y C =, estamos en el primer I. P. (A C ) Si ahora C cambia, A C cambia y BC cambia Dependiendo de la implementación, puede ocurrir un glitch Depende de los retardos relativos de las compuertas AB C f A C B C Estrategia general para eliminar los peligros Agregar implicantes primarios redundantes al mapa de Karnaugh Todos los cambios de entrada adyacentes deben quedar cubiertos por un implicante En este caso, escribir la función F como F = A C + BC + A B El término A B hace que la función permanezca en sin importar el cambio en la entrada C en y en El mismo principio es válido cuando se agrupan los s en el mapa de Karnaugh para obtener la forma reducida como producto de sumas Los circuitos descritos como suma de productos sólo pueden generar un peligro estático en Los circuitos descritos como producto de sumas sólo pueden generar un peligro estático en 24 Mario Medina 7
Ejemplo de peligros estáticos Función presenta 4 peligros estáticos F = (A + C)(A + D )(B + C + D) Variables cambian de ABCD = a ABCD = Ejemplo de peligros estáticos Diagrama de tiempo ilustra peligro estático 5 ns de retardo por compuerta 3 ns de retardo por inversor Eliminando peligros estáticos Agregar términos redundantes para asegurar transiciones de celdas sin glitches F(A, B, C, D) = (A + C) (A + D ) (B + C + D) (A + B + C ) (C + D ) (A + B + D) Ejercicio: peligros estáticos Obtener la expresión mínima sin peligros estáticos, en forma de suma de productos y producto de sumas del siguiente mapa de Karnaugh AB CD 24 Mario Medina 8