Sistemas Digitales
Diseño de circuitos combinacionales Mario Medina C.
[email protected]
Diseño de circuitos combinacionales Métodos de minimización vistos permiten obtener funciones de dos niveles Tópicos en diseño de circuitos
Implementaciones multinivel
Circuitos de 2 niveles
Sumas de productos (SoP) Productos de sumas (PoS)
Sea la función
6 compuertas AND de 3 entradas 1 compuerta OR de 7 entradas Un total de 7 compuertas y 19 literales Si cada nivel demora 10ns, esta implementación demora 20ns
© 2014 Mario Medina
Fabricantes sólo producen compuertas de 2, 3, 4, 8 entradas
Es necesario usar factorizaciones
Implementaciones multinivel
Reescribiendo f = (AD + AE + BD + BE + CD + CE)F + G f = (A + B + C)(D + E)F + G
F(A, B, C, D, E, F, G) = ADF + AEF + BDF + BEF + CDF + CEF + G
Una implementación de dos niveles requiere
En general, problemas tienen gran número de variables de entrada Las puertas comerciales (IC) limitan este número
Disminuir el retardo implica cambio de tecnología
Implementaciones multinivel
En muchos casos prácticos, la complejidad de una representación de 2 niveles hace inviable a un sistema
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
Implementaciones multinivel
Métodos de minimización son sencillos y bien conocidos
Circuitos multinivel Circuitos con múltiples salidas Circuitos NAND-NAND y NOR-NOR Circuitos de fan-in limitado Remoción de glitches
Sea X = (A + B + C) e Y = (D + E), entonces podemos escribir f = XYF + G
Implementación de 3 niveles demora 30 ns y tiene 1 compuerta AND de 3 entradas 2 compuertas OR de 2 entradas, 1 OR de 3 entradas Un total de 4 compuertas y 7 literales
1
Sistemas Digitales
Implementaciones multinivel Nivel 2
Nivel 1
Nivel 1
Nivel 2
Nivel 3
Implementaciones multinivel
Factorizaciones multinivel
Permite reducir número de puertas y conexiones Retardo de salida aumenta
No sirven métodos de minimización ya vistos
Existen programas CAD más complejos para diseño multinivel Mayor complejidad hace difícil su análisis
A+B+C
Conversiones de puertas lógicas
Puertas NAND y NOR son más eficientes de implementar con tecnologías electrónicas actuales
AND se implementa como NAND y NOT OR se implementa como NOR y NOT
Aumenta la probabilidad de errores
Leyes de De Morgan AB A B AB A B
Puertas NAND y NOR definen un conjunto funcionalmente completo
Conversión AND-OR a NAND-NAND
Puertas poco usadas en implementaciones
Experiencia del diseñador es crítica
Leyes de De Morgan
Métodos de minimización entregan redes de 2 niveles de compuertas AND, OR y NOT
Depende del número de niveles
A B 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 NORNOR
Etapa b) presenta bubble mismatch
Etapa c) asume que las entradas negadas están disponibles
(a) (a)
(c)
© 2014 Mario Medina
(b)
(d)
(b)
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)
2
Sistemas Digitales
Conversiones de circuitos de 2 niveles
Conversión de circuito de 2 niveles AND-OR a NAND-NAND (y vice versa) es directa
Simplificar la función a implementar
Diseñar un circuito usando AND y OR en niveles alternados
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
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
Conversión de circuitos multinivel a compuertas NAND
Basta reemplazar todas las compuertas por NORs
Compuerta de salida debe ser OR
Método también funciona para NORs
Ejemplo: AND-OR a NANDNAND
Ejemplo: OR-AND a NORNOR
Ejemplo: NAND-NAND a AND-OR
Ejemplo: conversión OR-AND a NOR-NOR
© 2014 Mario Medina
3
Sistemas Digitales
Diseño de circuitos con múltiples salidas
Ejemplo de múltiples salidas
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
F1 = AB + ACD F2 = ABC’ + CD F3 = A’CD + AB
F1 = m(11, 12, 13, 14, 15) F2 = m(3, 7, 11, 12, 13, 15)
Atención: No siempre reduce las compuertas!
Implementación de las 3 funciones F1, F2 y F3
F3 = m(3, 7, 12, 13, 14, 15)
Detección de compuertas compartidas
Producto AB es común a funciones F1 y F3 CD en F2 puede reemplazarse por
ACD (necesario en F1), y A’CD (necesario en F3) Utilizando los 3 términos comunes, queda F1 = AB + ACD F2 = ABC’ + ACD + A’CD F3 = A’CD + AB
Implementación con compuertas compartidas
Ejemplo de circuito con múltiples salidas
F1 = AB + ACD F2 = ABC’ + ACD + A’CD F3 = A’CD + AB
© 2014 Mario Medina
4
Sistemas Digitales
Ejemplo de circuito con múltiples salidas
Minimizando por separado: 10 compuertas
F1 = BD + B’C + AB’ F2 = C + A’BD F3 = BC + AB’C’ + ABD
Expresión óptima global puede no ser la expresión mínima para cada función
Minimización de múltiples funciones: 8 compuertas y 22 literales
Minimización sin términos comunes
En este caso, la solución global usa un compuerta lógica menos Solución original
Solución mejorada
F1 = A’BD + ABD + A B’C’ + B’C F2 = C + A’BD F3 = BC + AB’C’ + ABD
Ejemplo de circuito con múltiples salidas
Ejemplo de circuito con múltiples salidas
F1 = A’D’ + A’BC’ + BCD’ F2 = BD’ + A’B’C’ Solución tiene 7 compuertas lógicas y 18 entradas
Ejemplo de circuito con múltiples salidas
Minimización con términos comunes
F1 = A’C’D’ + A’BC’ + A’CD’ + BCD’ F2 = A’C’D’ + BC’D’ + A’B’C’ + BCD’
Solución tiene 8 compuertas lógicas y 26 entradas
Peor que la anterior!
Diseño con fan-in limitado
Diseño con fan-in limitado
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(0, 3, 4, 5, 8, 9, 10, 14, 15) •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)
© 2014 Mario Medina
5
Sistemas Digitales
Diseño con fan-in limitado
Limitación de fan-in modifica el procedimiento de diseño
Diseño con fan-in limitado
Ejemplo: implemente las siguientes funciones usando sólo NANDs de 2 entradas y NOTs
F = [B + D’ + (A + C)(A’ + C’)][A + C’ + B’D][A’ + B’ + C]
Diseño con fan-in limitado
Minimización arroja suma de 3 términos
Solución AND-OR convertida a NAND-NAND
F1(a, b, c) = b’(a + c’) + a’b F2(a, b, c) = (b’ + c)(b + c’) + a’b F3(a, b, c) = b(a + c’) + a’(b + c’)’
Peligros (hazards) Un circuito tiene un peligro o hazard si puede tener un glitch en su salida
F1(a, b, c) = ab’ + b’c’ + a’b F2(a, b, c) = b’c’ + bc + a’b F3(a, b, c) = a’b’c + ab + bc’
Reescribir como
Diseño con fan-in limitado
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
Peligros (hazards)
Peligro estático (static
hazard)
Ocurre si la salida cambia cuando se espera que permanezca constante Peligro estático en 0
Peligro dinámico (dynamic hazard)
Ocurre si la salida cambia más de una vez cuando debería hacer una transición simple entre los estados
El peligro existe porque una variable debe recorrer varios caminos simultáneamente Peligro estático en 1
© 2014 Mario Medina
Peligros dinámicos
6
Sistemas Digitales
Peligros estáticos
Peligros estáticos
f A CBC A1
A2
Considerar la transición en ABC de 011 a 010
Los peligros estáticos pueden obviarse si en el diseño se define que se debe esperar cierto ∆t para verificar la salida
Asuma que todas las puertas tienen 1 unidad de retardo
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
∆t
Peligros estáticos
Peligros pueden eliminarse introduciendo retardos artificiales
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 1 sin importar el cambio en la entrada C
© 2014 Mario Medina
Si A = 0 y C = 0, estamos en el primer I. P. (A’C’) Si ahora C cambia 0→1, A’C’ cambia 1→0 y BC cambia 0→1
Consideran cambio de un solo bit en las entradas
Peligros estáticos
Peligros estáticos: 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
Glitch se produce en el subcubo rojo
Peligro sigue latente
Un buen diseño debe eliminar los peligros
Permiten eliminar el glitch
Peligros estáticos C 0 1
AB 00 01 11 10 1 1 1 1
f A CBC
Dependiendo de la implementación, puede ocurrir un glitch Depende de los retardos relativos de las compuertas
Peligros estáticos en 0 y en 1
El mismo principio es válido cuando se agrupan los 0s 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 1 Los circuitos descritos como producto de sumas sólo pueden generar un peligro estático en 0
7
Sistemas Digitales
Ejemplo de peligros estáticos
Función presenta 4 peligros estáticos
Ejemplo de peligros estáticos
F = (A + C)(A’ + D’)(B’ + C’ + D)
Variables cambian de ABCD = 0100 a ABCD = 0110
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)
© 2014 Mario Medina
Diagrama de tiempo ilustra peligro estático
5 ns de retardo por compuerta 3 ns de retardo por inversor
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 00 01 11 10
00 01 11 10 0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
8