Fundamentos de Computadores Álgebra de Conmutación
Objetivos Conceptuales: Conocer el Álgebra de Boole y el Álgebra de Conmutación como caso especial de aquella Propiedades del Álgebra de Boole Representación de funciones de conmutación en sus distintas formas Formas canónicas y formas normalizadas Representación de funciones incompletamente especificadas. Conjuntos completos de operadores.
Objetivos Procedimentales: Representación gráfica del "circuito" de cualquier expresión, identificando los operadores como símbolos gráficos. Obtención de las formas estándares suma de productos y producto de sumas de cualquier función de conmutación. Obtención las formas canónicas de cualquier función de conmutación. Simplificación de expresiones utilizando propiedades algebraicas
Objetivos Actitudinales: Comprender la importancia de la base matemática en el área tecnológica La abstracción como mecanismo para resolver problemas complejos
Bibliografía Básica: [GARC92] Capítulo 4 [MANO98] Capítulo 2 [NELS96] Capítulo 2 Complementaria [KOHA78] y [UNGER89] Tratamiento matemático riguroso
Contenidos Álgebra de Boole Álgebra de Conmutación Funciones de conmutación. Representación Formas normalizadas Formas canónicas Funciones incompletamente especificadas Otras operaciones lógicas
Álgebra de Boole Definición axiomática El álgebra de Boole es un Sistema Matemático consistente en un conjunto B de elementos con cardinalidad superior a dos y dos operaciones matemáticas cerradas que denominaremos + y que cumple los siguientes postulados:
Álgebra de Boole Definición axiomática p1: Propiedad conmutativa: x,y B (a) x+y = y+x (b) x y = y x p2: Propiedad distributiva: x,y,z B (a) x (y+z) = x y + x z (b) x+(y z) = (x+y) (x+z)
p3: Postulado de los elementos de identidad: para x B (a) existe un elemento de identidad con respecto al operador + es designado por el símbolo 0 y cumple: x + 0 = 0 + x = x (b) existe un elemento de identidad con respecto al operador es designado por el símbolo 1 y cumple: x 1 = 1 x = x p4: Axiomas del complemento: x B, x B que cumple: (a) x+x = 1 (b) x x = 0 Álgebra de Boole Definición axiomática
Álgebra de Boole. Convenciones Notación del producto: a b = ab Precedencia: precede a + (a b) + (c d) = ab + cd
Álgebra de Boole: Propiedades T0: Principio de dualidad: cada teorema deducible de los postulados de un álgebra booleana puede transformarse en un segundo teorema válido sin más que intercambiar las operaciones + y junto con los elementos identidad 0 y 1. T1: Teorema de idempotencia (a) x + x = x (b) xx = x T2: Teorema de los elementos dominantes (a) x + 1 = 1 (b) x0 = 0 T3: Ley involutiva (x ) = x
Álgebra de Boole: Propiedades T4: Teorema de absorción (a) x + xy = x (b) x(x+y) = x T5: Teorema del consenso (a) x + (x y) = x+y (b) x(x +y) = xy T6: Teorema asociativo (a) x+(y+z)= (x+y)+z (b) x(yz)=(xy) z T7: Leyes de DeMorgan (a) (x+y) = x y (b) (xy) = x + y
Álgebra de Conmutación Objetivo: establecer una relación entre el Álgebra de Boole y los circuitos de conmutación. Tipo particular del álgebra de Boole: Álgebra de Conmutación. En este álgebra: B={0,1} El Álgebra de Conmutación cumple todos los postulados y propiedades del Álgebra de Boole. x y x+y (OR) x y (AND) 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 x x'(not) 0 1 1 0
Funciones de conmutación Definición: Una función de conmutación es una aplicación f: B n B Cada elemento x B n es un conjunto de variables de B x=(x 1, x 2,, x n ). A este conjunto de variables se le denomina n-tupla. Una función de conmutación es completamente especificada cuando asigna un valor (0 o 1) a todos los posibles valores de sus variables. En otro caso, la función es incompletamente especificada.
Representación de funciones de conmutación Existen varias formas de representar una función de conmutación: expresión tabla de verdad mapa circuito Existen 2 2n funciones de conmutación completamente especificadas de n variables.
Representación de funciones de conmutación Ejemplo: f(x,y,z) = xy + xz + yz xyz f(x,y,z) 000 0 001 0 010 0 011 1 100 0 101 1 110 1 x y & x y z 0 1 00 01 11 10 0 0 1 0 0 1 1 1 f 111 1 z & 1 f &
Formas normalizadas Las formas normalizadas son la suma de productos y el producto de sumas. Estas formas siempre pueden obtenerse mediante la aplicación de la ley de DeMorgan en el caso de que hubiera términos complementados y del postulado correspondiente a la propiedad distributiva. Los términos producto siempre determinan los unos de la función y los términos suma los ceros. Ejemplos: f = x(y+z) g = (abc+b ad+(a+b+c) +de)
Forma canónica disyuntiva o de mintérminos Mintérmino: término producto en el que cada variable aparece una vez y sólo una, bien complementada o sin complementar. La forma canónica disyuntiva o de mintérminos es una suma compuesta sólo de mintérminos. Existen 2 n mintérminos de n variables. Teorema: Dada una lista completa de los mintérminos de n variables, si a cada una de las n variables se le asigna el valor 0 o 1, entonces sólo un mintérmino de la lista tomará el valor 1 y los otros el valor 0.
Forma canónica disyuntiva o de mintérminos Ejemplo: para 3 variables hay 8 mintérminos que son: x'y'z', x'y'z, x'yz', x'yz, xy'z', xy'z, xyz', xyz Para xyz=110, sólo el mintérmino xyz' toma valor 1, el resto toma el valor 0. Una función puesta como forma canónica disyuntiva sería: g(x,y,z)= x'y'z'+x'yz'+xyz
Forma canónica disyuntiva o de mintérminos Teorema: La fórmula de conmutación de n variables formada sumando los 2 n mintérminos describe una función idénticamente 1. Teorema: Cada función de conmutación completamente especificada puede expresarse en forma canónica de mintérminos. Teorema: La forma canónica de mintérminos de una función de conmutación completa es única.
Forma canónica disyuntiva o de mintérminos Notación m: Cada mintérmino se representa de la forma mx donde X es un número asociado a cada mintérmino de forma que: Se establece un orden entre las variables. Ej. (x 1,x 2,x 3 ) Se asocia un 0 a cada variable complementada Se asocia un 1 a cada variable sin complementar X se obtiene de interpretar en base 2 el código obtenido. Ej: x 1 x 2 x 3 -> 010 -> 2 -> m2 Ejemplo: f(x 1,x 2,x 3 ) = x 1 x 2 x 3 +x 1 x 2 x 3 +x 1 x 2 x 3 +x 1 x 2 x 3 f(x 1,x 2,x 3 ) = m0 + m2 + m3 + m7 = m(0,2,3,7)
Forma canónica disyuntiva o de mintérminos Teorema: Primer teorema de expansión. Para toda función de conmutación completamente especificada se tiene que: f(x 1,,x i,...,x n ) = x i f(x 1,,1,...,x n )+x i f(x 1,,0,...,x n ) Permite obtener la forma canónica de mintérminos por uso repetido. Teorema: Toda función de conmutación completamente especificada puede escribirse como: 2 n 1 f x,x,...,x 1 2 n = i= 0 f i m i x 1,x 2,...,x n
Forma disyuntiva o de mintérminos. Ejemplo Aplicación del primer teorema de expansión a funciones de tres variables f(x,y,z)=x'f(0,y,z)+xf(1,y,z) Aplicamos de nuevo a la variable y: f(x,y,z)=x'(y'f(0,0,z)+yf(0,1,z))+x(y'f(1,0,z)+yf(1,1,z))= =x'y'f(0,0,z)+x'yf(0,1,z)+xy'f(1,0,z)+xyf(1,1,z) Aplicamos a la variable z: f(x,y,z)=x'y'z'f(0,0,0)+x'y'zf(0,0,1)+x'yz'f(0,1,0)++x'yzf(0,1,1) +xy'z'f(1,0,0)+xy'zf(1,0,1)+xyz'f(1,1,0)+xyzf(1,1,1) Los mintérminos que aparecen en la forma canónica de la función identifican los casos en que ésta vale 1 Ejemplo: obtener los mintérminos de f=xy+xz+yz
Forma canónica conjuntiva o de maxtérminos Maxtérmino: término suma en el que cada variable aparece una vez y sólo una, bien complementada o sin complementar. La forma canónica conjuntiva o de maxtérminos es un producto compuesta sólo de maxtérminos. Existen 2 n maxtérminos de n variables. Teorema: Dada una lista completa de los maxtérminos de n variables, si a cada una de las n variables se le asigna el valor 0 o 1, entonces sólo un maxtérmino de la lista tomará el valor 0 y los otros el 1.
Forma canónica conjuntiva o de maxtérminos Ejemplo: para 3 variables hay 8 maxtérminos que son: x'+y'+z', x'+y'+z, x'+y+z', x'+y+z, x+y'+z', x+y'+z, x+y+z', x+y+z Para xyz=110, sólo el mintérmino x'+y'+z toma valor 0, el resto toma el valor 1. Una función puesta como forma canónica conjuntiva sería: h(x,y,z) = (x'+y'+z')(x+y+z')(x+y+z)
Forma canónica conjuntiva o de maxtérminos Teorema: La fórmula de conmutación de n variables formada multiplicando los 2 n maxtérminos describe una función idénticamente 0. Teorema: Cada función de conmutación completamente especificada puede expresarse en forma canónica de maxtérminos. Teorema: La forma canónica de maxtérminos de una función de conmutación completamente especificada es única.
Forma canónica conjuntiva o de maxtérminos Notación M: Cada maxtérmino se representa de la forma MX donde X es un número asociado a cada maxtérmino de forma que: Se establece un orden entre las variables. Ej. (x 1,x 2,x 3 ) Se asocia un 0 a cada variable sin complementar Se asocia un 1 a cada variable complementada X se obtiene de interpretar en base 2 el código obtenido. Ej: x 1 +x 2 +x 3 -> 100 -> 4 -> M4 Ejemplo: f(x 1,x 2,x 3 ) = (x 1 +x 2 +x 3 )(x 1 +x 2 +x 3 )(x 1 +x 2 +x 3 )(x 1 +x 2 +x 3 ) f(x 1,x 2,x 3 ) = M 7 M 5 M 4 M 0 = (0,4,5,7)
Forma canónica conjuntiva o de maxtérminos Teorema: Segundo teorema de expansión. Para toda función de conmutación completamente especificada se tiene que: f(x 1,,x i,...,x n ) = [x i +f(x 1,,0,...,x n )][x i +f(x 1,,1,...,x n )] Permite obtener la forma canónica de maxtérminos por uso repetido. Teorema: Toda función de conmutación completamente especificada puede escribirse como: 2 n 1 f x 1,x 2,...,x n = i= 0 [ f i +M i x 1,x 2,...,x n ]
Formas canónicas Transformaciones entre formas canónicas Teorema: El complemento de una función de conmutación completamente especificada puede obtenerse uniendo los mintérminos no contenidos en la función original mediante operadores OR. Teorema: El complemento de una función de conmutación completamente especificada puede obtenerse uniendo los maxtérminos no contenidos en la función original mediante operadores AND. Teorema: m i =M i y M i =m i donde i es el subíndice decimal.
Funciones incompletamente especificadas Se denomina inespecificación a cada valor de las variables de una función para el que no está definido el valor de la función. Las inespecificaciones aparecen con frecuencia en aplicaciones reales. A menudo corresponden a valores que no tienen interés práctico (don't care). Representación de inespecificaciones: En mapa o tabla: mediante un símbolo especial como d, x, -, En formas canónicas: mediante suma o producto de función con min(max)términos inespecificados. Ej: f(x,y,z) = m(0,2,3,7)+d(5,6) = (1,4) d(5,6)
Otras operaciones lógicas NAND: AND complementada NOR: OR complementada XOR: OR exclusiva x y = xy' + x'y NXOR: OR exclusiva complementada x y = (x y)' = (x'+y)(x+y') = xy + x'y' x y NAND (x y)' NOR (x+y)' XOR x y NXOR x y 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 1
Otras operaciones lógicas. Propiedades XOR y NXOR Propiedad conmutativa: x y = y x x y = y x Propiedad asociativa: (x y) z = x (y z) = x y z (x y) z = x (y z) = x y z Relación entre XOR y NXOR x 1... x n = (x 1... x n )' si n par x 1... x n = x 1... x n si n impar
Primitivas lógicas. Conjuntos completos Un conjunto de operadores, como por ejemplo {AND,OR,NOT} constituye un conjunto completo cuando, con dichos operadores, se puede implementar cualquier función de conmutación. Cuando en una función de conmutación se dispone sólo de sus variables sin complementar o sólo de sus variables complementadas se dice que dichas variables están en raíl simple. Si se dispone tanto de las variables sin complementar como complementadas, se dice que están en doble raíl. El conjunto de operadores formado por {AND,OR} forma un conjunto completo si se dispone de variables en doble rail. Existen otros ejemplos de grupos completos como: {AND,NOT}, {OR,NOT}, {NAND}, {NOR}
Primitivas lógicas. Conjuntos completos Demostración de que {AND,NOT} forma un conjunto completo. Basta con construir el operador OR a partir de AND y NOT x+y = (x'y')' OR(x,y) = NOT(AND(NOT(x), NOT(y))) x y & z
Primitivas lógicas. Conjuntos completos Demostración de que {OR,NOT} forma un conjunto completo Basta con construir el operador AND a partir de OR y NOT xy = (x'+y')' AND(x,y) = NOT(OR(NOT(x), NOT(y))) y x >1 z
Primitivas lógicas. Conjuntos completos Demostración de que {NAND} forma un conjunto completo Basta con construir los operadores NOT y AND a partir de NAND x' = (xx)'; NOT(x) = NAND(x,x) xy = ((xy)')'; AND(x,y) = NOT(NAND(x,y)) x & z=x' y x & & xy NOT AND