Sistemas Digitales Funciones Booleanas Mario Medina C. [email protected] Funciones Booleanas Funciones Booleanas y tablas de verdad Sumas de productos y productos de sumas Formas canónicas Funciones primarias Minitérminos y maxitérminos Conversión entre formas canónicas Mario Medina Función binaria ó Booleana Expresión del tipo y(t) = F(x1(t), x2(t), . ., xn(t)) Salida y(t) depende de los n argumentos y de la relación F en todo instante. Salidas y entradas binarias sólo pueden tomar valores 0 y 1. Para n bits de entrada, habrá 2n posibles combinaciones de entrada Funciones y tablas de verdad La relación entre una función F y su tabla de verdad es directa La expresión para una función binaria puede obtenerse de su tabla de verdad, y viceversa. Ambas contienen exactamente la misma información Tabla de verdad Tabula todas las posibles combinaciones de las entradas con sus salidas asociadas. Cada función tiene una única tabla de verdad No existe ambiguedad, ya que incluye todas las posibilidades. A 0 0 1 1 B 0 1 0 1 Suma 0 1 1 0 Acarreo 0 0 0 1 Funciones y tablas de verdad Cómo obtener una función F a partir de la tabla de verdad Para cada fila de salida 1, relacionar las entradas con el operador intersección ( ● ) Cada variable X que toma valor 0 aparece complementada (X’) Cada variable X que tiene un 1 aparece sin complementar Todos los términos anteriores se relacionan mediante el operador unión ( + ) © 2013 Mario Medina© Mario Medina C. 1 Sistemas Digitales Ejemplo de relación de tabla de verdad y funciones Representación de valores lógicos Función Suma: Suma = A’B + A B’ = A⊕B Función Acarreo: Acarreo = AB A 0 0 1 1 B 0 1 0 1 Acarreo 0 0 0 1 Suma 0 1 1 0 Representaciones de una función Término producto (product term) Serie de literales relacionados por productos lógicos ( ● ) ABC , ĀBD, X’Y’Z’, etc. Término suma (sum term) Serie de literales relacionados por sumas lógicas (+) A+B’+C , Ā+B+D, etc. Formas canónicas de términos La forma canónica o normalizada de un término (producto o suma) de una función es aquella en la que aparece un literal para cada variable de la función Cada variable aparece sólo una vez, ya sea complementada o no, pero no en ambas formas Sólo pueden aparecer complementos de variables, no de otras funciones Por ejemplo, X’, Ā, pero no (AB)’ © 2013 Mario Medina© Mario Medina C. Tabla de verdad suele usar valores 0 y 1 para representar los estados lógicos Esta representación es arbitraria Otras alternativas de representación en la tabla de verdad son: V ON H (High) Vcc F OFF L (Low) 0V SoP y PoS Una función puede ser representada mediante una suma de productos (SoP) Términos producto que se suman F= A’B’C + ABC’ + B También es posible expresar una función como un producto de sumas (PoS) Términos suma que se multiplican F= (A’+B’+C)(A+B+C’)B Ejemplo de formas canónicas de términos Ejemplo: Considere una función F(A, B, C) Términos ABC y AB’C’ son términos productos normalizados de F Términos AB y AC son términos productos, pero no normalizados Lo mismo se aplica a los términos suma (A + B + C) y (A + B’ + C’) son términos suma normalizados (A + B) y (B + C) son términos suma no normalizados 2 Sistemas Digitales Minitérminos Expresiones con minitérminos Términos producto normalizados se llaman minitérminos (minterms) Sea F(A,B,C) representada en la sgte. tabla de verdad A B C F Forma canónica de productos o suma normalizada de productos: representación de una función usando minitérminos Forma canónica para F(A, B, C) F = A’BC + AB’C’ + AB’C + ABC’ + ABC Forma canónica para F’(A, B, C) Todas las combinaciones de variables de entrada que generan una salida 1 para la función En la función sólo se incluyen los minterms que generan salida 1. Notación reducida con minitérminos Notación alternativa para la forma canónica de productos de una función Valores de entrada a la función se interpretan como números binarios Equivalente decimal del número binario es el índice del minitérmino incluido en la función Notación reducida con minitérminos Orden de las variables es crítico para una correcta interpretación de la notación anterior Orden debe mantenerse estrictamente en las transformaciones entre notaciones Interpretación del índice de cada minitérmino dependerá de la definición de la función Para F1(A,B,C), minterm m3(0112) es A’BC Para F2(A,B,C,D), minterm m3(00112) es A’B’CD © 2013 Mario Medina© Mario Medina C. F’ = A’B’C’ + A’B’C + A’BC’ 0 0 1 0 F 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 1 0 1 1 1 0 Notación reducida con minitérminos Función incluye sólo A 0 0 0 0 1 1 B 0 0 1 1 0 0 C Minterms F minitérminos para los 0 A B C = m0 0 cuales F = 1 1 A B C = m1 0 0 A B C = m2 0 F(A, B, C) = m(3,4,5,6, 7) = m + m + m + m + m ∑ 3 4 5 6 7 1 A B C = m3 1 0 A B C = m4 1 F (A,B, C) = ∑ m(0,1,2) = m0 + m1 + m2 1 A B C = m5 1 1 1 1 0 1 1 A B C = m6 A B C = m7 1 1 Expresiones con minitérminos Notación en minitérminos (forma canónica) generalmente no será la notación mínima Contendrá información redundante F = A’BC + AB’C’ + AB’C + ABC’ + ABC Es equivalente a F = A + BC Lo anterior es fácil de demostrar aplicando los lemas y teoremas del álgebra binaria vistos anteriormente 3 Sistemas Digitales Expresiones con minitérminos Cualquier función binaria de n variables puede expresarse como una función canónica de productos o minitérminos Expresar la sgte. función en forma normalizada de minterms F(A, B, C, D) = (AC’ + D)BC’ El método consiste en multiplicar cada término que no contiene la variable xi por (xi + xi’) F(A, B, C, D) = ABC’D + ABC’D’ + A’BC’D F(x, y) = a0m0 + a1m1 + a 2m2 + a 3m3 2 variables: 22=4 minitérminos, y 24=16 funciones primarias Muchas de estas funciones primarias son tan comunes, que reciben un nombre especial AND, OR, NOR, XOR, NEXOR, NOT Funciones booleanas básicas X 0 0 1 1 X AND Y 0 0 0 1 i=0 El valor 0 o 1 de los coeficientes ai indica la presencia o no presencia de los minitérminos Una función de n variables booleanas tiene 2n minitérminos Cada minitérmino puede estar o no presente en la función n a0 a1 a2 a3 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 Minitérminos 0 m3 m2 m2 + m3 m1 m1 + m3 m1 + m2 m1 + m2 + m3 m0 m0 + m3 m0 + m2 m0 + m2 + m3 m0 + m1 m0 + m1 + m3 m0 + m1 + m2 m0 + m1 + m2 + m3 NOR Unión o suma lógica X 0 0 1 1 Y 0 1 0 1 2n −1 F(x 1 , x 2 , K , x n ) = ∑ a imi Ex. Reducida 0 XY XY X XY Y XY + XY X+Y XY XY+XY Y X+Y X X+Y X+Y 1 Símbolo F. primaria f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 AND XOR OR NOR XNOR NOT Y NOT X NAND Funciones booleanas básicas OR Y 0 1 0 1 Tienen la forma Funciones primarias con 2 variables Para una función de 2 variables se tiene Intersección o producto lógico Se obtienen a partir de los minitérminos n variables: se tendrán 22 funciones primarias Funciones primarias con 2 variables AND Funciones primarias con minitérminos X OR Y 0 1 1 1 © 2013 Mario Medina© Mario Medina C. NAND OR negado X 0 0 1 1 Y 0 1 0 1 AND negado X NOR Y 1 0 0 0 X 0 0 1 1 Y 0 1 0 1 X NAND Y 1 1 1 0 4 Sistemas Digitales Funciones booleanas básicas XOR Una función booleana puede representarse como un producto de sumas NEXOR OR exclusivo X 0 0 1 1 Maxitérminos Y 0 1 0 1 X XOR Y 0 1 1 0 Operador igualdad X 0 0 1 1 Y 0 1 0 1 X NEXOR Y 1 0 0 1 Producto-de-Sumas normalizada y tabla de verdad Los términos suma normalizados se denominan maxitérminos (maxterms) Representación por maxterms se denomina forma canónica o normalizada de sumas Combinación de variables de entrada que generan una salida 0 para la función Expresiones con maxitérminos Cada fila de tabla de verdad tiene asociado un término suma normalizado (maxterm) Dada la siguiente función F: La expansión en maxitérminos es: F = (A + B + C)(A + B + C’)(A + B’ + C) La expansión en maxitérminos de F’ es: F’ = (A + B’ + C’)(A’ + B + C)(A’ + B + C’) (A’+ B’ + C)(A’ + B’ + C’) Un valor 0 en la variable de entrada indica que ésta aparece no complementada en el maxterm Un valor 1 hace que ésta aparezca complementada Es lo opuesto a la formación de los minterms Forma normalizada de sumas es productoria A B C F F 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 de todos los maxterms asociados a un valor 0 Notación reducida con maxitérminos Notación reducida es análoga a minitérminos, pero 1 en la entrada indica variable complementada 0 en entrada indica variable sin complementar F(A, B, C) = ∏ M(0,1,2) = M0 • M1 • M2 A B C 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Maxitérminos Maxterms A + B + C = M0 A + B + C = M1 A + B + C = M2 A + B + C = M3 A + B + C = M4 A + B + C = M5 A + B + C = M6 A + B + C = M7 F (A,B, C) = ∏ M(3,4,5,6,7) = M3 • M4 • M5 • M6 • M7 © 2013 Mario Medina© Mario Medina C. F 0 0 0 1 1 1 1 1 Toda función booleana puede expresarse en forma canónica usando maxitérminos Ejemplo: expresar F en forma canónica de sumas F(A, B, C, D) = (A + B)(C + BD) A cada suma que no posee el literal xi, éste se agrega sumando xi’xi F(A, B, C, D) = (A + B + C + D) (A + B + C + D’) (A + B + C’ + D’) (A + B’ + C + D) (A’ + B + C + D) (A’ + B + C + D’)(A’ + B’ + C + D) (A + B + C’ + D) 5 Sistemas Digitales Funciones primarias y maxitérminos Las funciones primarias con maxitérminos tienen la forma F(x , x ,K, x ) = ∏ (b + M ) En particular, para una función de 2 variables se tiene 2 −1 n 1 2 n i i i=0 F(x1, x 2 ) = (b0 + M0 )(b1 + M1 )(b 2 + M2 )(b 3 + M3 ) Más sobre maxitérminos La expresión con maxitérminos no es necesariamente mínima F = (A + B)(A + C) es la versión minimizada de F = (A + B + C)(A + B + C’)(A + B‘ + C) Simplificación usando leyes de De Morgan (A + B)’ = A’B’ (AB)’ = A’ + B’ Relación entre minitérminos y maxitérminos La expansión en maxitérminos de una función se deduce de aplicar el teorema de De Morgan a la expansión de minitérminos de la función Asimismo, se puede obtener la expansión en minitérminos de una función al aplicar el teorema de De Morgan a los maxitérminos de ella Representaciones de F Una función F puede representarse usando minitérminos o maxitérminos en forma indistinta F = A’BC + AB’C’ + AB’C + ABC’ + ABC F = (A + B + C)(A + B + C’)(A + B’ + C) Cuál es mejor? Conversión entre formas canónicas Expansión en maxterms contiene el complemento de los minterms de la función F(A, B, C) = ∑ m(3,4,5,6, 7) ⇔ ∏ M(0,1,2) Expansión en minitérminos del complemento de una función contiene los minitérminos que no están presentes en la función F(A, B, C) = ∑ m(3,4,5,6, 7) F(A, B, C) = ∏ M(0,1,2) F (A, B, C) = ∑ m(0,1,2) F (A, B, C) = ∏ M(3,4,5,6, 7) Ejercicios Convierta la función F(A, B, C, D) = (abd + a’b + b’d + c’)(c + ab + bd) a su forma canónica de suma de productos Convierta la función F(A, B, C, D) = b(a + c)(a’ + c’) + d(b + c) a su forma canónica de producto de sumas Depende del problema específico Tecnología, implementación, velocidad, etc. © 2013 Mario Medina© Mario Medina C. 6