8. Análisis lógico de los circuitos digitales Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 – 2007 Introducción Los circuitos digitales están compuestos por un conjunto de puertas lógicas que implementan operaciones de lógica binaria El álgebra de Boole permite describir estas operaciones lógicas, por lo que el funcionamiento de un circuito puede representarse utilizando una expresión booleana Los objetivos de este tema son: Explicar cómo obtener una expresión algebráica que describa el funcionamiento de un circuito digital Distinguir entre las dos formas estándar que se utilizan para representar este tipo de expresiones: suma de productos y producto de sumas Análisis lógico de los circuitos digitales 2 1 Estructura del tema Introducción Análisis booleano de los circuitos lógicos Expresiones en forma de suma de productos Expresiones en forma de producto de sumas Relación entre ambas formas Resumen y bibliografía Análisis lógico de los circuitos digitales 3 Análisis de circuitos lógicos El álgebra de Boole permite expresar el funcionamiento de un circuito lógico de tal forma que la salida se pueda determinar a partir de los valores de entrada Para obtener la expresión booleana de un circuito lógico se debe comenzar por las entradas situadas más a la izquierda e ir avanzando hacia las salidas D C CD B+CD B A Análisis lógico de los circuitos digitales A(B+CD) 4 2 Elaboración de la tabla de verdad Una vez obtenida la expresión booleana del circuito, se puede elaborar una tabla de verdad para representar su funcionamiento A B C D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 CD B+CD A(B+CD) 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 Análisis lógico de los circuitos digitales 5 Formas estándar Una metodología sistemática es vital para poder analizar y diseñar circuitos digitales de forma eficiente Todas las expresiones booleanas, independientemente de su forma, pueden convertirse en cualquiera de dos formas estándar Suma de productos Producto de sumas Las formas estándar permiten realizar de forma sistemática la simplificación y evaluación de expresiones booleanas Análisis lógico de los circuitos digitales 6 3 Estructura del tema Introducción Análisis booleano de los circuitos lógicos Expresiones en forma de suma de productos Expresiones en forma de producto de sumas Relación entre ambas formas Resumen y bibliografía Análisis lógico de los circuitos digitales 7 Suma de productos Un término producto (minterm) se define como una expresión booleana que está compuesta por un producto de literales Cuando dos o más términos productos se suman, la expresión resultante se denomina suma de productos Cada término de una suma de productos puede ser Un término producto Una variable individual La barra de negación en una suma de productos no debe extenderse nunca más allá de una variable Análisis lógico de los circuitos digitales 8 4 Suma de productos Llamamos dominio de una expresión booleana al conjunto de variables que la componen Los valores del dominio para que hacen que esta expresión valga 0 son: A + AB + BC A =0 B =0 C =1 Para esta expresión no existe ninguna combinación de valores del dominio que la hagan valer 0 A + B + AB Una suma de productos será igual a 1 si y sólo si uno o más de los términos producto que forman la expresión es igual a 1 Análisis lógico de los circuitos digitales 9 Suma de productos La implementación de una suma de productos requiere aplicar la operación OR a las salidas de dos o más puertas AND Análisis lógico de los circuitos digitales 10 5 Forma canó canónica de la suma de productos En los ejemplos de expresiones que hemos visto, algunos términos no contenían todas las variables pertenecientes al dominio A + AB La forma canónica de una suma de productos es aquella en la que todas las variables del dominio aparecen en todos y cada uno de los términos de la expresión AB + AB + AB Análisis lógico de los circuitos digitales 11 Forma canó canónica de la suma de productos La forma canónica de la suma de productos es muy importante para el diseño de circuitos digitales Cualquier suma de productos puede convertirse a su forma canónica aplicando una de las reglas básicas del álgebra de Boole: A+A=1 Simplemente se debe multiplicar cada término producto no canónico por la suma de la variable que falta y su complemento, ya que es lo mismo que multiplicar por 1 Análisis lógico de los circuitos digitales 12 6 Forma canó canónica de la suma de productos Siguiendo este método es sencillo transformar una suma de productos en su forma canónica Ejemplo: ABC + AB + ABCD ABC = ABC · 1 = ABC · (D + D) ABC = ABCD + ABCD AB = AB · 1 · 1 = AB · (C + C) · (D + D) AB = ABCD + ABCD + ABCD + ABCD Forma canónica: ABCD + ABCD + ABCD + ABCD + ABCD + ABCD + ABCD Análisis lógico de los circuitos digitales 13 Tabla de verdad de la suma de productos Una tabla de verdad es una lista de las posibles combinaciones de los valores de las entradas y el correspondiente valor de la salida El primer paso para convertir una suma de productos a una tabla de verdad es convertir la expresión a su forma canónica Para determinar el número de posibles combinaciones de entrada hay que tener en cuenta que el número de entradas es igual al número de variables del dominio Análisis lógico de los circuitos digitales 14 7 Tabla de verdad de la suma de productos Una vez establecidos los posibles valores de las entradas hay que determinar los correspondientes valores de salida Para esto, hay que tener en cuenta que para que una suma de productos sea 1 basta con que uno de los productos sea 1 Por lo tanto, hay que asignarle salida 1 a cada una de las combinaciones de entrada que haga valer 1 a alguno de los términos de la suma de productos Análisis lógico de los circuitos digitales 15 Tabla de verdad de la suma de productos Siguiendo los pasos anteriores no resulta complicado calcular la tabla de verdad de la siguiente expresión: ABC + ABC + ABC dominio de 3 variables 23 combinaciones de entrada Análisis lógico de los circuitos digitales ABC ABC ABC A B C 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 0 1 16 8 Tabla de verdad de la suma de productos Dado que es habitual representar un circuito por medio de su tabla de verdad, será frecuente la necesidad de calcular una expresión a partir de una tabla de verdad A B C 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 0 ABC ABC ABC ABC + ABC + ABC Análisis lógico de los circuitos digitales 17 Formas normalizadas de la suma de productos La forma canónica de una expresión booleana es la que obtendremos a partir de su tabla de verdad, pero raramente tiene el menor número posible de operaciones Se puede reducir la forma canónica a una forma que no tenga todas las variables en cada término, pero que necesite menos operaciones No hay un método fijo, por lo que dada una función, puede resultar posible obtener varias de estas formas distintas, que son llamadas formas normalizadas Análisis lógico de los circuitos digitales 18 9 Formas normalizadas de la suma de productos Las formas normalizadas pueden obtenerse a partir de la forma canónica aplicando leyes y reglas booleanas Ejemplo: ABC + ABC + ABC + ABC ABC + ABC + ABC + ABC + ABC + ABC podemos replicar el término ABC porque ABC + ABC = ABC (regla 5) AB(C + C) + AC(B + B) + BC(A + A) aplicamos la ley distributiva para sacar factor común AB · 1 + AC · 1 + BC · 1 A + A = 1 (regla 6) Forma normalizada: AB + AC + BC Análisis lógico de los circuitos digitales 19 Formas normalizadas de la suma de productos Aunque a partir de las formas normalizada no es trivial obtener una tabla de verdad, resultan útiles para reducir la cantidad de puertas de un circuito digital Es posible reducir más una forma normalizada, dando lugar a una forma no normalizada que tendrá menos operaciones, pero ya no podría expresarse como una suma de productos AB + AC + AD forma normalizada 5 operaciones Análisis lógico de los circuitos digitales factor común A(B + C + D) forma no normalizada 3 operaciones 20 10 Estructura del tema Introducción Análisis booleano de los circuitos lógicos Expresiones en forma de suma de productos Expresiones en forma de producto de sumas Relación entre ambas formas Resumen y bibliografía Análisis lógico de los circuitos digitales 21 Producto de sumas Un término suma (maxterm) se define como una expresión booleana que está compuesta por una suma de literales Cuando dos o más términos suma se multiplican, la expresión resultante se denomina producto de sumas Cada término de un producto de sumas puede ser Un término suma Una variable individual La barra de negación en un producto de sumas no debe extenderse nunca más allá de una variable Análisis lógico de los circuitos digitales 22 11 Producto de sumas El dominio de una expresión booleana es el conjunto de variables que la componen Los valores del dominio para que hacen que esta expresión valga 1 son: A · (A+B) · (B+C) A =1 B =1 C =0 Para esta expresión no existe ninguna combinación de valores del dominio que la hagan valer 1 A · B · (A+B) Una producto de sumas será igual a 0 si y sólo si uno o más de los términos suma que forman la expresión es igual a 0 Análisis lógico de los circuitos digitales 23 Producto de sumas La implementación de un producto de sumas requiere aplicar la operación AND a las salidas de dos o más puertas OR Análisis lógico de los circuitos digitales 24 12 Forma canó canónica del producto de sumas En los ejemplos de expresiones que hemos visto, algunos términos no contenían todas las variables pertenecientes al dominio A · (A+B) La forma canónica de un producto de sumas es aquella en la que todas las variables del dominio aparecen en todos y cada uno de los términos de la expresión (A+B) · (A+B) · (A+B) Análisis lógico de los circuitos digitales 25 Forma canó canónica del producto de sumas La forma canónica del producto de sumas también es muy importante para el diseño de circuitos digitales Cualquier producto de sumas puede convertirse a su forma canónica aplicando una de las reglas básicas del álgebra de Boole: AA = 0 Simplemente se debe sumar cada término producto no canónico con el producto de la variable que falta y su complemento, ya que es lo mismo que sumar 0 Análisis lógico de los circuitos digitales 26 13 Forma canó canónica del producto de sumas Siguiendo este método es sencillo transformar un producto de sumas en su forma canónica Ejemplo: (A+B+C)(B+C+D)(A+B+C+D) A+B+C = A+B+C + 0 = A+B+C + (D · D) 12 A+BC = (A+B)(A+C) A+B+C = (A+B+C+D)(A+B+C+D) regla B+C+D = B+C+D + 0 = B+C+D + (A · A) 12 A+BC = (A+B)(A+C) B+C+D = (A+B+C+D)(A+B+C+D) regla Forma (A+B+C+D) (A+B+C+D) (A+B+C+D) (A+B+C+D)(A+B+C+D) canónica: (A+B+C+D) (A+B+C+D) (A+B+C+D)(A+B+C+D) regla 7 A·A = A Análisis lógico de los circuitos digitales 27 Tabla de verdad del producto de sumas El primer paso para convertir un producto de sumas a una tabla de verdad es convertir la expresión a su forma canónica Para obtener los valores de salida en la tabla de verdad hay que tener en cuenta que basta con que uno de los sumandos sea 0 para que un producto de sumas sea 0 Por lo tanto, hay que asignarle salida 0 a cada una de las combinaciones de entrada que haga valer 0 a alguno de los términos del producto de sumas Análisis lógico de los circuitos digitales 28 14 Tabla de verdad del producto de sumas Siguiendo los pasos anteriores no resulta complicado calcular la tabla de verdad de la siguiente expresión: (A+B+C)(A+B+C)(A+B+C) dominio de 3 variables A+B+C A+B+C A+B+C 23 combinaciones de entrada A B C 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1 0 Análisis lógico de los circuitos digitales 29 Tabla de verdad de la suma de productos Dado que es habitual representar un circuito por medio de su tabla de verdad, será frecuente la necesidad de calcular una expresión a partir de una tabla de verdad A B C 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 A+B+C A+B+C (A+B+C)(A+B+C)(A+B+C) A+B+C Análisis lógico de los circuitos digitales 30 15 Formas normalizadas del producto de sumas A partir de la tabla de verdad obtenemos la forma canónica de una expresión booleana, aunque raramente tiene el menor número posible de operaciones Al igual que con la suma de productos, se puede obtener formas normalizadas a partir de la forma canónica con el objetivo de reducir el número de operaciones necesarias También se puede reducir más una forma normalizada, dando lugar a una forma no normalizada que tendrá todavía menos operaciones, pero que ya no estará expresada como un producto de sumas Análisis lógico de los circuitos digitales 31 Estructura del tema Introducción Análisis booleano de los circuitos lógicos Expresiones en forma de suma de productos Expresiones en forma de producto de sumas Relación entre ambas formas Resumen y bibliografía Análisis lógico de los circuitos digitales 32 16 Función booleana En general, se define una función booleana como una expresión algebraica formada por variables, operadores, paréntesis y el signo igual Para calcular el valor de una función booleana es preciso tener en cuenta el orden correcto de precedencia de operadores: Paréntesis NOT AND OR Análisis lógico de los circuitos digitales 33 Expresión de una suma de productos Cualquier función booleana puede expresarse tanto con una suma de productos como con un producto de sumas A B C 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 ABC ABC ABC ABC Análisis lógico de los circuitos digitales F(A,B,C) = ABC + ABC + ABC + ABC 34 17 Expresión de un producto de sumas Cualquier función booleana puede expresarse tanto con una suma de productos como con un producto de sumas A B C 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 A+B+C 1 0 A+B+C 1 0 A+B+C 1 0 A+B+C 1 F(A,B,C) = (A+B+C) (A+B+C) (A+B+C) (A+B+C) Análisis lógico de los circuitos digitales 35 Expresión de una suma de productos Si numeramos cada una de las posibles combinaciones de entrada, podemos expresar una suma de productos como la suma de las combinaciones correspondientes a los términos producto que la componen 0) 1) 2) 3) 4) 5) 6) 7) A B C 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Análisis lógico de los circuitos digitales F(A,B,C) = ∑(1,3,5,7) 36 18 Expresión de un producto de sumas Si numeramos cada una de las posibles combinaciones de entrada, podemos expresar un producto de sumas como el producto de las combinaciones correspondientes a los términos suma que la componen 0) 1) 2) 3) 4) 5) 6) 7) A B C 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 F(A,B,C) = ∏(0,2,4,6) Análisis lógico de los circuitos digitales 37 Expresión de un producto de sumas Dada una tabla de verdad Las combinaciones con salida 1 forman un suma de productos Las combinaciones con salida 0 forman un producto de sumas Es fácil pasar de una forma a la otra: simplemente hay que elegir los números que no aparecen en la expresión A B C 0) 1) 2) 3) 4) 5) 6) 7) 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 F(A,B,C) = ∑(1,3,5,7) F(A,B,C) = Análisis lógico de los circuitos digitales ∏(0,2,4,6) 38 19 Estructura del tema Introducción Análisis booleano de los circuitos lógicos Expresiones en forma de suma de productos Expresiones en forma de producto de sumas Relación entre ambas formas Resumen y bibliografía Análisis lógico de los circuitos digitales 39 Resumen El funcionamiento de un circuito digital suele representarse con una tabla de verdad que muestra el valor de la salida para cualquier valor de entrada La aplicación del álgebra de Boole permite obtener, a partir de esta tabla, una expresión algebráica que describa el funcionamiento del circuito La simplificación de esta expresión permite reducir el número de operadores, los cuales pueden representarse gráficamente usando los símbolos distintivos para obtener un diagrama descriptivo del circuito Análisis lógico de los circuitos digitales 40 20 Bibliografía Fundamentos de Sistemas Digitales (7ª edición) Capítulo 4 Thomas L. Floyd Prentice Hall, 2000 Principios de Diseño Digital Capítulo 3 Daniel D. Gajski Prentice Hall, 1997 Análisis lógico de los circuitos digitales 41 21