ÁLGEBRA DE BOOLE INDICE. 1. FUNCIÓN LÓGICA O BOOLEANA. ........................................................................................... 1 2. TABLA DE LA VERDAD DE UNA FUNCIÓN LÓGICA........................................................... 3 3. FUNCIONES LÓGICAS BASICAS. ............................................................................................. 5 3.1.FUNCIÓN IGUALDAD. .......................................................................................................... 5 3.2.FUNCIÓN NEGACIÓN. .......................................................................................................... 6 3.3.FUNCIÓN UNIÓN. .................................................................................................................. 6 3.4.FUNCIÓN INTERSECIÓN. .................................................................................................... 7 4. FUNCIONES LÓGICAS BASICAS DERIVADAS. ..................................................................... 9 4.1.FUNCIÓN NOR........................................................................................................................ 9 4.2.FUNCIÓN NAND..................................................................................................................... 9 4.3.FUNCIÓN OR-EXCLUSIVA................................................................................................. 10 4.4.FUNCIÓN NOR-EXCLUSIVA. ............................................................................................ 11 5. POSTULADOS, PROPIEDADES Y TEOREMAS DEL ALGEBRA DE BOOLE. ................... 13 5.1.POSTULADOS. ...................................................................................................................... 13 5.2.PROPIEDADES...................................................................................................................... 14 5.3.TEOREMAS. .......................................................................................................................... 15 6. FORMA CANÓNICA DE UNA FUNCIÓN LÓGICA................................................................ 17 6.1. EXPRESIÓN EN FORMA NUMÉRICA. ............................................................................. 17 6.2. OBTENCIÓN DE LA PRIMERA FORMA CANÓNICA DE UNA FUNCIÓN A PARTIR DE LA TABLA DE LA VERDAD. ....................................................................... 20 6.3. OBTENCIÓN DE LA SEGUNDA FORMA CANÓNICA DE UNA FUNCIÓN A PARTIR DE LA TABLA DE LA VERDAD. ....................................................................... 21 6.4.PASO DE UNA FUNCIÓN CUALQUIERA A FORMA CANÓNICA................................ 22 I 7. OBTECIÓN DE LA TABLA DE LA VERDAD A PARTIR DE LA FUNCIÓN LÓGICA....... 25 7.1.FUNCIÓN COMO SUMA DE PRODUCTOS. ..................................................................... 25 7.2.FUNCIÓN COMO PRODUCTO DE SUMAS. ..................................................................... 28 8. SIMPLIFICACIÓN DE FUNCIONES LÓGICAS....................................................................... 31 8.1.SIMPLIFICACIÓN POR EL MÉTODO ALGEBRAICO. .................................................... 31 8.2.SIMPLIFICACIÓN POR EL MÉTODO GRÁFICO DE KARNAUGH. .............................. 32 8.3.SIMPLIFICACIÓN POR EL MÉTODO NUMÉRICO DE QUINE-McCLUSKEY............. 35 8.4.TÉRMINOS INDIFERENTES EN UNA FUNCIÓN BOOLEANA. .................................... 38 9. SIMBOLOGIA LÓGICA. ............................................................................................................ 41 10.IMPLEMENTACIÓN DE FUNCIONES LÓGICAS. ................................................................. 43 10.1.IMPLEMENTACIÓN DE FUNCIONES MEDIANTE PUERTAS NAND........................ 43 10.2.IMPLEMENTACIÓN DE FUNCIONES MEDIANTE PUERTAS NOR........................... 44 II 1. FUNCIÓN LÓGICA O BOOLEANA. Se define como función lógica o booleana toda variable binaria cuyo valor depende de una expresión algebraica formada por otras variables binarias relacionadas mediante las operaciones suma lógica (+) y/o producto lógico (·). Estos signos se deben interpretar de la siguiente forma: • El signo + como la conjunción o. • El signo · como la conjunción y. Un ejemplo de función lógica sería S = A ⋅B + A ⋅C donde la función o variable dependiente es la S y las variables independientes son A, B y C. La forma correcta de leer esta función es: “La función S estará a nivel ALTO si A y B están a nivel ALTO o si A y C están a nivel ALTO.” 1 2 2. TABLA DE LA VERDAD DE UNA FUNCIÓN LÓGICA. La tabla de la verdad es un cuadro formado por tantas columnas como variables contenga la función (tanto dependientes como independientes) y por tantas filas como combinaciones binarias sea posible realizar con las variables independientes. El número de combinaciones posibles será 2N, siendo N el número de variables independientes de la función. Como ejemplo, la tabla de la verdad de la función S = A ⋅B + A ⋅C es la siguiente: C L L L L H H H H B L L H H L L H H A L H L H L H L H S L L L H L H L H 3 4 3. FUNCIONES LÓGICAS BASICAS. Las funciones lógicas o booleanas básicas son aquellas en las que interviene un solo operador o relación de las que pueden utilizarse. Cada una de las funciones se puede materializar utilizando contactos eléctricos, por lo que previamente hay que definir los elementos a utilizar como entradas y salidas, así como lo que se entiende como nivel ALTO y nivel BAJO. - ENTRADAS. Las entradas pueden ser realizadas con pulsadores normalmente abiertos o normalmente cerrados. Se considera que: • La entrada esta a nivel ALTO si el pulsador esta activado. • La entrada esta a nivel BAJO si el pulsador no esta activado. - SALIDAS. Las salidas pueden ser realizadas con lámparas. Se considera que: • La salida esta a nivel ALTO si la lámpara esta encendida. • La salida esta a nivel BAJO si la lámpara esta apagada. 3.1. FUNCIÓN IGUALDAD. La función igualdad es la más elemental de todas y solo interviene una única variable lógica, siendo el valor de la función igual al de la variable. El esquema eléctrico de esta función es: La tabla de la verdad, que define el funcionamiento del circuito, es A L H S L H y su expresión matemática S=A 5 3.2. FUNCIÓN NEGACIÓN. La función negación también se denomina complemento o función NO (NOT en inglés) y se representa por el símbolo . Esta función opera sobre una única variable lógica, siendo el valor de la función el contrario al de la variable. El esquema eléctrico de esta función es: La tabla de la verdad, que define el funcionamiento del circuito, es A L H S H L y su expresión matemática S=A 3.3. FUNCIÓN UNIÓN. La función unión también se denomina disyunción, suma lógica o simplemente O (OR en inglés) y se representa por el símbolo +. Esta función opera entre dos o más variables, siendo el estado de la salida BAJO si todas sus entradas están a nivel BAJO. El esquema eléctrico de esta función es: La tabla de la verdad, que define el funcionamiento del circuito, es B L L H H A L H L H y su expresión matemática S= A+B 6 S L H H H 3.4. FUNCIÓN INTERSECIÓN. La función intersección también se denomina conjunción, producto lógico o simplemente Y (AND en inglés) y se representa por ·. Esta función opera entre dos o más variables, siendo el estado de la salida ALTO si todas sus entradas están a nivel ALTO. El esquema eléctrico de esta función es: La tabla de la verdad, que define el funcionamiento del circuito, es B L L H H A L H L H S L L L H y su expresión matemática S = A⋅B 7 8 4. FUNCIONES LÓGICAS BASICAS DERIVADAS. Además de las funciones lógicas analizadas, existen otras que también ofrecen un gran interés y que son una combinación de las anteriores, por lo que merecen un estudio detallado. 4.1. FUNCIÓN NOR. La función NOR es la función OR negada. Esta función opera entre dos o más variables, siendo el estado de la salida ALTO si todas sus entradas están a nivel BAJO. El esquema eléctrico de esta función es: La tabla de la verdad, que define el funcionamiento del circuito, es B L L H H A L H L H S H L L L y su expresión matemática S= A+B Si se analiza el esquema eléctrico, la ecuación que se obtiene es S = A⋅B por lo que se puede establecer la 1ª Ley de Morgan: A + B = A⋅B 4.2. FUNCIÓN NAND. La función NAND es la función AND negada. Esta función opera entre dos o más variables, siendo el estado de la salida BAJO si todas sus entradas están a nivel ALTO. El esquema eléctrico de esta función es: 9 La tabla de la verdad, que define el funcionamiento del circuito, es B L L H H A L H L H S H H H L y su expresión matemática S = A⋅B Si se analiza el esquema eléctrico, la ecuación que se obtiene es S= A+B por lo que se puede establecer la 2ª Ley de Morgan: A⋅B = A + B 4.3. FUNCIÓN OR-EXCLUSIVA. La función OR-EXCLUSIVA también se denomina EXOR y se representa por el símbolo ⊕ . Esta función opera entre dos variables, siendo el estado de la salida ALTO si sus dos entradas tienen un estado distinto. El esquema eléctrico de esta función es: La tabla de la verdad, que define el funcionamiento del circuito, es B L L H H A L H L H y su expresión matemática S = A⊕B 10 S L H H L Si se analiza el esquema eléctrico, la ecuación que se obtiene es S = A⋅B+ A⋅B por lo que se puede establecer la igualdad A ⊕ B = A⋅B+ A⋅B 4.4. FUNCIÓN NOR-EXCLUSIVA. La función NOR-EXCLUSIVA también se denomina EXNOR y es la función EXOR negada. Esta función opera entre dos variables, siendo el estado de la salida ALTO si sus dos entradas tienen el mismo estado. El esquema eléctrico de esta función es: La tabla de la verdad, que define el funcionamiento del circuito, es B L L H H A L H L H S H L L H y su expresión matemática S = A⊕B Si se analiza el esquema eléctrico, la ecuación que se obtiene es S = A⋅B+ A⋅B por lo que se puede establecer la igualdad A ⊕ B = A⋅B+ A⋅B 11 12 5. POSTULADOS, PROPIEDADES Y TEOREMAS DEL ALGEBRA DE BOOLE. 5.1. POSTULADOS. Los postulados más importantes del álgebra de Boole son los siguientes: • Postulado 1. La suma lógica de una variable más un 1 lógico equivale a un 1 lógico. A +1 = 1 • Postulado 2. El producto lógico de una variable por un 1 lógico es igual al valor de la variable. A ⋅1 = A • Postulado 3. La suma lógica de una variable más un 0 lógico equivale al valor de la variable. A+0 = A • Postulado 4. El producto lógico de una variable por un 0 lógico es igual a 0. A ⋅0 = 0 • Postulado 5. La suma lógica de dos variables iguales equivale al valor de dicha variable. A+A = A 13 • Postulado 6. El producto lógico de dos variables iguales equivale al valor de dicha variable. A ⋅A = A • Postulado 7. La suma lógica de una variable más la misma variable negada equivale a un 1 lógico. A+A =1 • Postulado 8. El producto lógico de una variable por la misma variable negada equivale a un 0 lógico. A ⋅A = 0 • Postulado 9. Si una variable es negada dos veces, ésta no varía. Este postulado es válido para cualquier número par de inversiones. A=A • Postulado 10. Si se invierten los dos miembros de una igualdad, ésta no sufre ninguna variación. S= A+B → S= A+B S = A⋅B → S = A⋅B 5.2. PROPIEDADES. En el álgebra de Boole, al igual que en el álgebra convencional, se cumplen las siguientes propiedades: • Propiedad conmutativa. A + B = B+ A A ⋅ B = B⋅ A 14 • Propiedad asociativa. A + B + C = A + ( B + C) A ⋅ B ⋅ C = A ⋅ ( B ⋅ C) • Propiedad distributiva. A ⋅ ( B + C) = A ⋅ B + A ⋅ C A + B ⋅ C = (A + B) ⋅ (A + C) 5.3. TEOREMAS. Los teoremas que cumple el álgebra de Boole son los siguientes: • Teorema 1 : Ley de absorción. a) A + A ⋅ B = A Demostración: A + A ⋅ B = A ⋅ (1 + B) = A ⋅1 = A b) A ⋅ (A + B) = A Demostración: A ⋅ (A + B) = A ⋅ A + A ⋅ B = A + A ⋅ B = A • Teorema 2. a) A + A ⋅ B = A + B Demostración: A + A ⋅ B = (A + A ) ⋅ (A + B) = 1⋅ (A + B) = A + B b) A ⋅ (A + B) = A ⋅ B Demostración: A ⋅ (A + B) = A ⋅ A + A ⋅ B = 0 + A ⋅ B = A ⋅ B 15 • Teorema 3 : Leyes de Morgan. a) A + B = A ⋅ B b) A ⋅ B = A + B 16 6. FORMA CANÓNICA DE UNA FUNCIÓN LÓGICA. Se llama forma canónica de una función lógica a todo producto de sumas o suma de productos en los cuales aparecen todas las variables en cada uno de los términos que constituyen la expresión. • Primera forma canónica o MINTERMS. Se representa una función por medio de sumas de productos en los que aparecen todas las variables, bien en forma directa ( A ) o complementada ( A ). Un ejemplo sería la siguiente función: S = C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A • Segunda forma canónica o MAXTERMS. Se representa una función por medio de producto de sumas en los que aparecen todas las variables, bien en forma directa o complementada. Un ejemplo sería la siguiente función: S = (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) 6.1. EXPRESIÓN EN FORMA NUMÉRICA. Debido a que las expresiones en forma canónica pueden aparecer bastantes largas, éstas también pueden expresarse de una forma numérica, obteniéndose una expresión más corta. • EXPRESIÓN EN FORMA NUMÉRICA DE LA PRIMERA FORMA CANÓNICA. Dada la función S = C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A los pasos a seguir para obtener la expresión en forma numérica son los siguientes: 1- Si es necesario, se ponen todas las variables de cada término en el mismo orden. S = C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A 2- Se ha de hallar el número decimal equivalente para cada término. Este número se obtiene sustituyendo las variables expresadas en forma directa por un 1 y las variables expresadas en forma inversa por un 0, convirtiendo posteriormente en cada término el número binario formado por sus variables a decimal. S = C ⋅ B ⋅ A+C ⋅ B ⋅ A+C ⋅ B ⋅ A+C ⋅ B ⋅ A+C ⋅ B ⋅ A ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 1 424 3 1 424 3 1 424 3 1 424 3 1 424 3 6 1 5 3 7 17 3- Se expresa la función con el sumatorio de los números decimales hallados. S = ∑ (1, 3, 5, 6, 7) 3 donde el subíndice del sumatorio indica el número de variables de la función. Aunque la expresión anterior es correcta, es recomendable indicar el nombre y el orden de las variables de la función para evitar posibles errores. S( C, B, A ) = ∑ (1, 3, 5, 6, 7) 3 • EXPRESIÓN EN FORMA NUMÉRICA DE LA SEGUNDA FORMA CANÓNICA. Dada la función S = (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) los pasos a seguir para obtener la expresión en forma numérica son los siguientes: 1- Si es necesario, se ponen todas las variables de cada término en el mismo orden. S = (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) 2- Se ha de hallar el número decimal equivalente para cada término. Este número se obtiene sustituyendo las variables expresadas en forma directa por un 1 y las variables expresadas en forma inversa por un 0, convirtiendo posteriormente en cada término el número binario formado por sus variables a decimal. S = ( C+ B+ A ) ⋅( C+ B+ A ) ⋅( C + B+ A ) ⋅( C+ B+ A ) ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 1 1 1 0 0 0 1 0 1 0 1 0 1424 3 1424 3 1424 3 1424 3 7 0 5 2 3- Se expresa la función con el producto de los números decimales hallados. S = ∏ (0, 2, 5, 7) 3 donde el subíndice del producto indica el número de variables de la función. Aunque la expresión anterior es correcta, es recomendable indicar el nombre y el orden de las variables de la función para evitar posibles errores. S( C, B, A ) = ∏ (0, 2, 5, 7) 3 18 • CONVERSIÓN ENTRE FORMAS CANÓNICAS. A partir de la expresión en forma numérica, es muy sencillo pasar de la primera forma canónica a la segunda y viceversa. Dada la función 1ª FORMA CANONICA 2ª FORMA CANÓNICA S( C, B, A ) = ∑ (1, 3, 5, 6, 7) S( C, B, A ) = ∏ (0, 2, 4, 7) 3 3 los pasos a seguir para obtener la expresión en el otro formato son los siguientes: 1- Se calcula un “factor de conversión”, cuyo valor es K = 2N - 1 donde N es el número de variables de la función. En nuestro ejemplo, el valor de K es K = 23 – 1 = 7 2- Se halla la función inversa, la cual se obtiene indicando aquellos términos comprendidos entre 0 y 2N – 1 que no se encuentran en la expresión inicial. 1ª → 2ª FORMA CANONICA 2ª → 1ª FORMA CANÓNICA S( C, B, A ) = ∑ (0, 2, 4) S( C, B, A ) = ∏ (1, 3, 5, 6) 3 3 3- Los términos de la expresión en la nueva forma canónica se obtienen restándole a K el valor de los términos de la función inversa. 1ª → 2ª FORMA CANONICA 2ª → 1ª FORMA CANÓNICA S( C , B, A ) = ∏ (7 − 0, 7 − 2, 7 − 4) S( C , B, A ) = ∑ (7 − 1, 7 − 3, 7 − 5, 7 − 6) 3 3 4- Operando y ordenando se obtiene la función en la nueva forma canónica. 1ª → 2ª FORMA CANONICA 2ª → 1ª FORMA CANÓNICA S( C , B, A ) = ∏ (3, 5, 7) S( C , B, A ) = ∑ (1, 2, 4, 6) 3 3 19 6.2. OBTENCIÓN DE LA PRIMERA FORMA CANÓNICA DE UNA FUNCIÓN A PARTIR DE LA TABLA DE LA VERDAD. La primera forma canónica se obtiene por suma de todos los productos lógicos de la función que den a la salida un nivel ALTO. El proceso a seguir es el siguiente: 1- Se seleccionan todas aquellas combinaciones que den a la salida un nivel ALTO. C L L L L H H H H B L L H H L L H H A L H L H L H L H S L L L H L H L H ← ← ← 2- A cada combinación seleccionada se le asigna un término formado por el producto de todas las variables independientes de la función. En cada término, las variables estarán en forma directa o complementada según el siguiente convenio: • Si en la combinación la variable esta a nivel ALTO se deja en forma directa. • Si en la combinación la variable esta a nivel BAJO se deja en forma complementada. C L L L L B L L H H A L H L H S L L L H ← C ⋅ B⋅ A H H L L L H L H ← C ⋅ B⋅ A H H H H L H L H ← C ⋅ B⋅ A 3- La función final se obtiene con la suma de todos los términos. S = C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A la cual puede representarse en forma numérica S( C, B, A ) = ∑ (3, 5, 7) 3 20 6.3. OBTENCIÓN DE LA SEGUNDA FORMA CANÓNICA DE UNA FUNCIÓN A PARTIR DE LA TABLA DE LA VERDAD. La segunda forma canónica se obtiene por producto de todas las sumas lógicas de la función que den a la salida un nivel BAJO. El proceso a seguir es el siguiente: 1- Se seleccionan todas aquellas combinaciones que den a la salida un nivel BAJO. C L L L L H H H H B L L H H L L H H A L H L H L H L H S L L L H L H L H ← ← ← ← ← 2- A cada combinación seleccionada se le asigna un término formado por la suma de todas las variables independientes de la función. En cada término, las variables estarán en forma directa o complementada según el siguiente convenio: • Si en la combinación la variable esta a nivel ALTO se deja en forma complementada. • Si en la combinación la variable esta a nivel BAJO se deja en forma directa. C L L L L H H H H B L L H H L L H H A L H L H L H L H S L L L H L H L H ← ← C + B+ A ← C + B+ A ← C + B+ A ← C + B+ A C + B+ A 3- La función final se obtiene con el producto de todos los términos. S = (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) la cual puede representarse en forma numérica S( C , B, A ) = ∏ (1, 3, 5, 6, 7) 3 21 6.4. PASO DE UNA FUNCIÓN CUALQUIERA A FORMA CANÓNICA. Cualquier función lógica, sea cual sea su forma en que esté expresada inicialmente, puede ser transformada para su representación en forma canónica. No existen reglas fijas para realizar estas transformaciones, aunque se utilizan los principios del álgebra de Boole. • PASO A LA PRIMERA FORMA CANÓNICA. Dada la función S = A ⋅ (C + B) + C ⋅ B + A los pasos a seguir para pasarla a la primera forma canónica son los siguientes: 1- Si es necesario, se aplica la propiedad distributiva para tener toda la función como una suma de productos. S = C ⋅ A + B⋅ A + C ⋅ B + A 2- Se ha de añadir a cada término las variables que falten, sin modificar el valor inicial de cada uno de ellos. La forma de conseguirlo es multiplicando cada término por la suma ( X + X) , donde X representa la variable que falta. Como la suma vale 1, no se modifica el valor de la función. S = C ⋅ A ⋅ ( B + B) + B ⋅ A ⋅ (C + C) + C ⋅ B ⋅ (A + A ) + A ⋅ ( B + B) ⋅ (C + C) 3- Se aplica la propiedad distributiva a cada término. S = C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A 4- Se eliminan los términos repetidos, dejando solo uno de ellos. S = C ⋅ B ⋅ A + C ⋅ B ⋅ A + C ⋅ B ⋅ A + C/ /⋅ B/ /⋅ A/ + C ⋅ B ⋅ A + C/ /⋅ B/ /⋅ A/ + C ⋅ B ⋅ A + C/ /⋅ B/ /⋅ A/ + C ⋅ B ⋅ A + C ⋅ B ⋅ A La función queda expresada en su primera forma canónica. S = C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A 22 la cual puede representarse en forma numérica S( C , B, A ) = ∑ (0, 2, 3, 4, 5, 6, 7) 3 • PASO A LA SEGUNDA FORMA CANÓNICA. Dada la función S = A ⋅ (C + B) ⋅ ( B + A ) los pasos a seguir para pasarla a la segunda forma canónica son los siguientes: 1- Si es necesario, se aplica la propiedad distributiva para tener toda la función como un producto de sumas. S = A ⋅ (C + B) ⋅ ( B + A ) 2- Se ha de añadir a cada término las variables que falten, sin modificar el valor inicial de cada uno de ellos. La forma de conseguirlo es sumando a cada término el producto ( X ⋅ X) , donde X representa la variable que falta. Como el producto vale 0, no se modifica el valor de la función. S = (A + B ⋅ B + C ⋅ C) ⋅ (C + B + A ⋅ A ) ⋅ ( B + A + C ⋅ C) 3- Se aplica la propiedad distributiva a cada término. S = (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) 4- Se eliminan los términos repetidos, dejando solo uno de ellos. S = (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C/ +/ B/ +/ A/ ) ⋅ (C + B + A ) ⋅ (C/ +/ B/ +/ A/ ) La función queda expresada en su segunda forma canónica. S = (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) la cual puede representarse en forma numérica S( C , B, A ) = ∏ (1, 2, 3, 5, 6, 7) 3 23 24 7. OBTECIÓN DE LA TABLA DE LA VERDAD A PARTIR DE LA FUNCIÓN LÓGICA. 7.1. FUNCIÓN COMO SUMA DE PRODUCTOS. Si la función lógica esta expresada como una suma de productos, esta tendrá un valor ALTO si cualquiera de sus términos esta a nivel ALTO. Para obtener la tabla de la verdad se buscan, para cada término, el estado de sus variables para que el producto tenga un valor ALTO. Todas las combinaciones en las que no se obtenga a la salida un nivel ALTO, darán a su salida un nivel BAJO. Por ejemplo, dada la ecuación S = C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A se comprueba el valor de las variables del primer término para que el producto este a nivel ALTO S = C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A 123 ↓ ↓ ↓ 6447 448 C=H→C=L B= H→B= L A=H y se escribe en la tabla de la verdad el estado ALTO en la salida para dicha combinación. C L L L L H H H H B L L H H L L H H A L H L H L H L H S H Se repite el proceso para toda la función S = C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A + C ⋅ B⋅ A 123 123 123 123 123 ↓ ↓ ↓ 6447 448 C=H→C=L B= H→B= L A=H ↓ ↓ ↓ 6447 448 C=H→C=L B= H A=H ↓ ↓ ↓ 6447 448 C=H B= H→B= L A=H→A=L ↓ ↓ ↓ 6447 448 C=H B= H→ B= L A=H ↓ ↓ ↓ 67 8 C=H B= H A=H y se pasan a la tabla de la verdad. 25 C L L L L H H H H B L L H H L L H H A L H L H L H L H S H H H H H Todas las combinaciones que no se han completado, están a nivel BAJO. C L L L L H H H H B L L H H L L H H A L H L H L H L H S L H L H H H L H Si la función no esta expresada en forma canónica, en cada término se tomara el valor H y L para las variables que no estén representadas. En este caso, puede darse que una combinación de variables se repita en más de un término. Por ejemplo, dada la ecuación S = B⋅ A + C ⋅ B⋅ A + B se comprueba el valor de las variables del primer término para que el producto de un nivel ALTO S= B ⋅A { + C ⋅ B⋅ A + B ↓ ↓ ↓ 6447 448 L C = H B= H→B= L A=H y se escribe en la tabla de la verdad el estado ALTO en la salida para dicha combinación. 26 C L L L L H H H H B L L H H L L H H A L H L H L H L H S H H Se repite el proceso para toda la función S= B ⋅A { ↓ ↓ ↓ 44 6447 8 L C = H B= H→B= L A=H + C ⋅ B⋅ A + B { 123 ↓ ↓ ↓ ↓ 6447 448 C=H→C=L B= H A=H ↓ 67 4 ↓4 8 L C = H B= H L A = H y se pasan a la tabla de la verdad. C L L L L H H H H B L L H H L L H H A L H L H L H L H S H H H H H H Se completa la tabla añadiendo los niveles BAJO par todas las combinaciones que no aparecen en la función lógica. C L L L L H H H H B L L H H L L H H A L H L H L H L H S L H H H L H H H 27 7.2. FUNCIÓN COMO PRODUCTO DE SUMAS. Si la función lógica esta expresada como un producto de sumas, esta tendrá un valor BAJO si cualquiera de sus términos esta a nivel BAJO. Para obtener la tabla de la verdad se buscan, para cada término, el estado de sus variables para que la suma tenga un valor BAJO. Todas las combinaciones en las que no se obtenga a la salida un nivel BAJO, darán a su salida un nivel ALTO. Por ejemplo, dada la ecuación S = (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) se comprueba el valor de las variables del primer término para que la suma este a nivel BAJO S = (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) 14243 ↓ ↓ ↓ 44 6447 8 C= L→C= H B= L→ B= H A=L y se escribe en la tabla de la verdad el estado BAJO en la salida para dicha combinación. C L L L L H H H H B L L H H L L H H A L H L H L H L H S L Se repite el proceso para toda la función S = (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) ⋅ (C + B + A ) 14243 14243 14243 14243 14243 ↓ ↓ ↓ 6447 448 C= L→C= H B= L→ B= H A=L y se pasan a la tabla de la verdad. 28 ↓ ↓ ↓ 6447 448 C= L→C= H B= L A=L ↓ ↓ ↓ 6447 448 C=L B= L→ B= H A = L→A = H ↓ ↓ ↓ 6447 448 C=L B= L→ B= H A=L ↓ ↓ ↓ 67 8 C=L B= L A=L C L L L L H H H H B L L H H L L H H A L H L H L H L H S L L L L L Todas las combinaciones que no se han completado, están a nivel ALTO. C L L L L H H H H B L L H H L L H H A L H L H L H L H S L H L L L H L H Si la función no esta expresada en forma canónica, en cada término se tomara el valor H y L para las variables que no estén representadas. En este caso, puede darse que una combinación de variables se repita en más de un término. Por ejemplo, dada la ecuación S = ( B + A ) ⋅ (C + B + A ) ⋅ B se comprueba el valor de las variables del primer término para que la suma este a nivel ALTO S = ( B + A ) ⋅ (C + B + A ) ⋅ B 123 ↓ ↓ ↓ 6447 448 L C = H B= L→ B= H A=L y se escribe en la tabla de la verdad el estado BAJO en la salida para dicha combinación. 29 C L L L L H H H H B L L H H L L H H A L H L H L H L H S L L Se repite el proceso para toda la función S = ( B + A ) ⋅ (C + B + A ) ⋅ B 123 14243 {↓ ↓ ↓ ↓ ↓ 6447 448 L C = H B= L→ B= H A=L ↓ ↓ 6447 448 C= L→C= H B= L A=L ↓ 67 4 ↓4 8 L C = H B= L L A = H y se pasan a la tabla de la verdad. C L L L L H H H H B L L H H L L H H A L H L H L H L H S L L L L L L Se completa la tabla añadiendo los niveles ALTO para todas las combinaciones que no aparecen en la función lógica. C L L L L H H H H 30 B L L H H L L H H A L H L H L H L H S L L L H L L L H 8. SIMPLIFICACIÓN DE FUNCIONES LÓGICAS. La simplificación permite obtener la representación de la función lógica con el menor número de elementos. Existen dos procedimientos básicos a la hora de simplificar las ecuaciones lógicas: • Método de simplificación algebraico: Utiliza los postulados, teoremas y propiedades del álgebra de Boole. • Métodos tabulares y gráficos: Los dos métodos más empleados son: − Método gráfico de Karnaugh: Es un método que se basa en la representación gráfica de la función en lo que se denomina mapa de Karnaugh. Se puede utilizar para simplificar funciones de dos a seis variables, aunque habitualmente sólo se emplee para funciones de hasta cuatro variables. − Método numérico de Quine-McCluskey: Se trata de un método fácilmente programable. Se puede emplear en la simplificación de funciones de cualquier número de variables, pero se suelen utilizar solamente a partir de cinco variables. 8.1. SIMPLIFICACIÓN POR EL MÉTODO ALGEBRAICO. No existe ninguna regla fija para efectuar la simplificación por este método. Consiste en reducir una función lógica recurriendo a los postulados, propiedades y teoremas del álgebra de Boole. A modo de ejemplo, se simplifica la siguiente función S = A + B ⋅ ( A ⋅ C) Se aplica la primera ley de Morgan al término (A ⋅ C) S = A + B ⋅ ( A + C) S = A + B ⋅ ( A + C) Se aplica la propiedad distributiva S = A + B⋅ A + B⋅ C Se saca A como factor común S = A ⋅ (1 + B) + B ⋅ C y se obtiene como resultado final S = A + B⋅ C 31 8.2. SIMPLIFICACIÓN POR EL MÉTODO GRÁFICO DE KARNAUGH. Este método se basa en la representación de la función a simplificar en un cuadrado dividido en 2N casillas, siendo N el número de variables de la función. Este cuadrado se denominado mapa de Karnaugh. Los mapas de Karnaugh para dos, tres y cuatro variables quedarían de la siguiente forma BA DC A BA A B L H BC LL LH HH LL LH HH HL LL HL L L LH H H HH HL Los encabezamientos de las filas y las columnas representan para las variables todas las combinaciones de estados de la misma que se pueden presentar. El orden de las combinaciones de valores debe ser tal que dos casillas adyacentes sólo se pueden diferenciar en un valor. Con estas configuraciones existe una adyacencia gráfica igual a la adyacencia algebraica para los mapas de Karnaugh de dos, tres o cuatro variables. Además se interpretará que la fila adyacente a la primera por arriba es la última y la adyacente a la última columna por la derecha es la primera. Como primer paso en la simplificación, se pasan los valores de salida de la tabla de la verdad al mapa de Karnaugh, teniendo en cuenta que cada casilla representa una de las posibles combinaciones de la tabla. Por ejemplo, para una siguiente tabla de la verdad C L L L L H H H H B L L H H L L H H el mapa de Karnaugh quedaría de la siguiente forma 32 A L H L H L H L H S L H L L L H L H BA A BC LL LH HH HL L L H L L H L H H L El procedimiento para realizar la simplificación varía en función de si se quiere obtener la ecuación final en forma de suma de productos o en forma de producto de suma. • SIMPLIFICACIÓN DE ECUACIONES COMO SUMA DE PRODUCTOS. El principio de simplificación de los mapas se basa en una de las leyes del álgebra de Boole. Dicha ley es A⋅B+ A⋅B = A El procedimiento a seguir es el siguiente: a) Se agrupan las casillas que tengan un estados H en grupos de 1, 2, 4, 8 ó 16 casillas, siendo imprescindible que las casillas que forman cada grupo sean adyacentes. El objetivo es construir el menor número de grupos posibles con el máximo número de casillas en cada uno de ellos, siempre que se cumpla la condición anterior. No existe ningún problema en que un término pertenezca a más de un agrupamiento. En nuestro ejemplo, los grupos queda de la siguiente manera: BA A BC LL LH HH HL L L H L L H L H H L b) A cada grupo le corresponde un término formado por el producto de todas sus variables. C ⋅ B⋅ A BA A BC LL LH HH HL L L H L L H L H H L C ⋅ B⋅ A 33 c) Para cada término se analizan cada una de las variables, de tal forma que: − Si en cada elemento del grupo el valor de la variables es L, la variable se niega. − Si en cada elemento del grupo el valor de la variables es H, la variable se deja en directa. − Si en cada elemento del grupo el valor de la variable cambia, la variable se elimina. C/ ⋅ B ⋅ A BA A BC LL LH HH HL L L H L L H L H H L C ⋅ B/ ⋅ A d) La función simplificada se obtiene con la suma de los términos obtenidos. S = B⋅ A + C ⋅ A • SIMPLIFICACIÓN DE ECUACIONES COMO PRODUCTO DE SUMAS. El principio de simplificación de los mapas se basa en una de las leyes del álgebra de Boole. Dicha ley es (A + B) ⋅ (A + B) = A El procedimiento a seguir es el siguiente: a) Se agrupan las casillas que tengan un estados L en grupos de 1, 2, 4, 8 ó 16 casillas, siendo imprescindible que las casillas que forman cada grupo sean adyacentes. El objetivo es construir el menor número de grupos posibles con el máximo número de casillas en cada uno de ellos, siempre que se cumpla la condición anterior. No existe ningún problema en que un término pertenezca a más de un agrupamiento. En nuestro ejemplo, los grupos queda de la siguiente manera: BA A BC 34 LL LH HH HL L L H L L H L H H L b) A cada grupo le corresponde un término formado por la suma de todas sus variables. C+ B+ A BA A BC LL LH HH HL L L H L L H L H H L C+ B+ A c) Para cada término se analizan cada una de las variables, de tal forma que: − Si en cada elemento del grupo el valor de la variables es H, la variable se niega. − Si en cada elemento del grupo el valor de la variables es L, la variable se deja en directa. − Si en cada elemento del grupo el valor de la variable cambia, la variable se elimina. C + B + A/ BA A BC LL LH HH HL L L H L L H L H H L C/ + B/ + A d) La función simplificada se obtiene con el producto de los términos obtenidos. S = A ⋅ (C + B) 8.3. SIMPLIFICACIÓN POR EL MÉTODO NUMÉRICO DE QUINE-McCLUSKEY. El método de Quine-McCluskey es el adecuado para simplificar funciones de más de cuatro variables, aunque su aplicación implica un proceso más largo. Este método consiste en una serie de tablas que, utilizando la representación binaria equivalente de cada uno de los términos que componen la función booleana a simplificar, expresada siempre bajo la forma canónica, tratan de encontrar las relaciones de similitud existentes entre dichos términos para, así, poderlos reducir aplicando la misma ley que en los mapas de Karnaugh. El proceso de simplificación exige la obtención ordenada de las siguientes tablas: • Tabla de agrupamiento base. • Tabla de reducción de orden: primero, segundo, tercero, etc. • Tabla reductora final. 35 Para poder comprobar mejor el proceso, supongamos que se desea simplificar la siguiente función: S = D ⋅ C ⋅ B⋅ A + D ⋅ C ⋅ B⋅ A + D ⋅ C ⋅ B⋅ A + D ⋅ C ⋅ B⋅ A + D ⋅ C ⋅ B⋅ A + D ⋅ C ⋅ B⋅ A + D ⋅ C ⋅ B⋅ A + D ⋅ C ⋅ B⋅ A a) En primer lugar se obtiene la tabla de agrupamientos base, en la cual se clasifican cada uno de los términos de la función según el número de unos que contiene su equivalente binario. El orden de colocación dentro de cada grupo debe ser de menor a mayor, siguiendo el valor numérico de las combinaciones binarias resultantes. A cada grupo se le asignará un número de índice distinto que coincidirá con el número de unos de las combinaciones correspondientes. D ⋅ C ⋅ B⋅ A 0000 0 D ⋅ C ⋅ B⋅ A 0010 2 D ⋅ C ⋅ B⋅ A 1000 8 D ⋅ C ⋅ B⋅ A 0101 5 D ⋅ C ⋅ B⋅ A 1010 10 D ⋅ C ⋅ B⋅ A 0111 7 D ⋅ C ⋅ B⋅ A D ⋅ C ⋅ B⋅ A 1101 13 1111 15 Índice 0 Índice 1 Índice 2 Índice 3 Índice 4 b) La reducción o eliminación de variables se basa en la siguiente propiedad: A⋅B+ A⋅B = A Esta ley, referida a este caso concreto, es generalizable y permite enunciar que una variable puede ser eliminada de dos términos de una función binaria, cuando en uno de ellos aparece en forma directa y en el otro en forma negada. El resto de las variables de ambos términos deben ser la misma y tener el mismo valor. Basándonos en el enunciado anterior, deben compararse todos los términos de cada uno de los grupos con todos los del grupo adyacente de índice superior. Si al comparar las combinaciones binarias correspondientes a dos términos la diferencia entre ellas es solamente de un dígito, éste se sustituirá por un guión y el resto quedará como estaba inicialmente. Puede ocurrir que, a veces, al comparar dos términos no se produzca reducción, diremos entonces que esos términos no son reducibles. 36 0000 y 0010 0000 y 1000 0010 y 0101 0010 y 1010 1000 y 0101 1000 y 1010 0101 y 0111 0101 y 1101 1010 y 0111 1010 y 1101 0111 y 1111 1101 y 1111 ------------------------------------------------------------- 00-0 -000 no es reducible -010 no es reducible 10-0 01-1 -101 no es reducible no es reducible -111 11-1 Los resultados de la comparación darán lugar a la tabla de reducción de primer orden. Los números entre paréntesis indican las combinaciones o términos que originaron la reducción. 00-0 (0,2) -000 -010 (0,8) (2,10) 10-0 01-1 (8,10) (5,7) -101 -111 (5,13) (7,15) 11-1 (13,15) Índice 0 Índice 1 Índice 2 Índice 3 c) A partir de esta tabla, se procede, si es posible, a efectuar una nueva reducción, denominada en este caso tabla de reducción de segundo orden. El resultado en este caso, sería la siguiente tabla: -0-0 (0,2), (8,10) -0-0 -1-1 (0,8), (2,10) (5,7), (13,15) -1-1 (5,13), (7,15) Índice 0 Índice 2 Cuando en una tabla aparecen términos repetidos se pueden eliminar, si bien conservando siempre su procedencia. Según lo dicho, la tabla anterior se convierte en la siguiente: 37 -0-0 (0,2,8,10) Índice 0 -1-1 (5,7,13,15) Índice 2 El proceso de reducción continuaría, si fuese posible, obteniéndose una tabla de reducción de tercer orden, cuarto orden, etc. En este caso concreto, ya no es posible seguir reduciendo variables. d) Cuando no se puede reducir más, se construye la tabla reductora final, en la cual se colocan a la izquierda todas las variables de la función, en el mismo orden que en los términos de la expresión primitiva, y a la derecha los números, en forma decimal, de cada uno de los términos de la función. Contemplando, en primer lugar, la tabla de reducción de mayor orden, se colocan las combinaciones reducidas debajo de las variables; a la vez se irán marcando con una X los números decimales de la tabla que coincidan con los que aparecen entre paréntesis, en línea con cada combinación. Si con las combinaciones de la tabla de orden superior no se cubren todos los términos, será necesario retroceder a niveles inferiores de reducción hasta cubrir todos los términos; pudiéndose llegar, en última instancia, hasta la tabla de agrupamiento base. En nuestro ejemplo, la tabla reductora final es la siguiente: d - c 0 1 b - a 0 1 0 X 2 X 5 7 X X 8 X 10 X 13 15 X X e) El resultado de la simplificación se obtiene de la tabla reductora final, formando términos equivalentes a las combinaciones binarias indicadas en la tabla y empleando para ello el convenio de la ecuación según la forma canónica utilizada. En nuestro caso, el resultado final será: S = C⋅A + C⋅A S = C⊕A 8.4. TÉRMINOS INDIFERENTES EN UNA FUNCIÓN BOOLEANA. A veces sucede que en los circuitos digitales ciertas combinaciones de sus variables de entrada no pueden producirse nunca debido a que otros circuitos anteriores impiden su llegada a nuestro circuito. A estas combinaciones de entrada que, apareciendo en la tabla de la verdad de funcionamiento del mencionado circuito, no producen en la salida ni L ni H las denominamos combinaciones indiferentes, y se representan en las tablas de la verdad por X. A su vez, estas combinaciones indiferentes dan lugar a términos indiferentes, que pueden ser representados en los mapas de Karnaugh y se los puede considerar bien como L o como H, según convenga para las simplificaciones y sin que ello conlleve alteraciones en la respuesta de la función; es decir, del circuito. 38 Por ejemplo, dada la siguiente tabla de la verdad C L L L L H H H H B L L H H L L H H A L H L H L H L H S X H L H L H L X el mapa de Karnaugh quedaría de la siguiente forma BA A BC LL LH HH HL L X H H L H L H X L Para hacer los grupos se pueden utilizar los términos indiferentes que nos interesen, quedando de la siguiente forma C/ ⋅ B/ ⋅ A BA A BC LL LH HH HL L X H H L H L H X L La función final que se obtiene es la siguiente S=A 39 40 9. SIMBOLOGIA LÓGICA. Hasta el momento, cuando se representaba un circuito se asociaba cada variable con contactos o interruptores. A partir de ahora las variables serán las entradas de los bloques lógicos integrados y las variables de entrada serán señales eléctricas digitales, de la misma manera que lo serán las funciones o salidas de los circuitos. En la tabla 1 se muestra la representación simbólica más generalizada de cada una de las funciones lógicas. FUNCIÓN SIMBOLOGÍA AMERICANA SIMBOLOGÍA CEI BUFFER NOT OR NOR AND NAND EXOR EXNOR TABLA 1 41 42 10. IMPLEMENTACIÓN DE FUNCIONES LÓGICAS. Se denomina implementar una función a realizar el circuito digital de puertas lógicas que cumple la ecuación de dicha función. Las puertas lógicas son dispositivos integrados que realizan las funciones booleanas básicas y se emplean para la implementación de circuitos lógicos. Para poder reducir el número de circuitos integrados necesarios para la implementación de funciones, se pueden utilizar exclusivamente puertas NAND o NOR. En la tabla 2 se muestran las funciones lógicas básicas materializadas exclusivamente mediante puertas NAND o puertas NOR. 10.1. IMPLEMENTACIÓN DE FUNCIONES MEDIANTE PUERTAS NAND. A continuación, se describe el proceso que se debe seguir para transformar cualquier tipo de función en una expresión algebraica tal que se pueda implementar solamente con puertas NAND. • FUNCIÓN COMO SUMA DE PRODUCTOS. Dada la ecuación S = B ⋅ C + C ⋅ A + E el proceso a seguir es el siguiente: a) En primer lugar debe aplicarse a toda la expresión una doble inversión. S = B⋅ C + C ⋅ A + E b) Con una de las negaciones, se aplica el teorema de Morgan a toda la expresión. S = ( B ⋅ C) ⋅ ( C ⋅ A ) ⋅ E c) La ecuación final queda expresada solo con funciones tipo NAND. S = ( B ⋅ C) ⋅ ( C ⋅ A ) ⋅ E • FUNCIÓN COMO PRODUCTO DE SUMAS. Dada la ecuación S = ( B + D) ⋅ (C + A ) el proceso a seguir es el siguiente: a) En primer lugar debe aplicarse a cada término de expresión una doble inversión. S = ( B + D) ⋅ ( C + A ) 43 b) Con una de las negaciones, se aplica el teorema de Morgan cada uno de los términos de la expresión. S = ( B ⋅ D) ⋅ ( C ⋅ A ) S = ( B ⋅ D) ⋅ ( C ⋅ A ) c) Se aplica una doble negación a toda la expresión. La ecuación final queda expresada solo con funciones tipo NAND. S = ( B ⋅ D) ⋅ ( C ⋅ A ) 10.2. IMPLEMENTACIÓN DE FUNCIONES MEDIANTE PUERTAS NOR. A continuación, se describe el proceso que se debe seguir para transformar cualquier tipo de función en una expresión algebraica tal que se pueda implementar solamente con puertas NOR. • FUNCIÓN COMO SUMA DE PRODUCTOS. Dada la ecuación S = B ⋅ C + C ⋅ A + E el proceso a seguir es el siguiente: a) En primer lugar debe aplicarse a cada término de expresión una doble inversión. S = B⋅ C + C ⋅ A + E b) Con una de las negaciones, se aplica el teorema de Morgan cada uno de los términos de la expresión. S = ( B + C) + ( C + A ) + E S = ( B + C) + ( C + A ) + E c) Se aplica una doble negación a toda la expresión. La ecuación final queda expresada solo con funciones tipo NOR. S = ( B + C) + ( C + A ) + E 44 • FUNCIÓN COMO PRODUCTO DE SUMAS. Dada la ecuación S = ( B + D) ⋅ (C + A ) el proceso a seguir es el siguiente: a) En primer lugar debe aplicarse a toda la expresión una doble inversión. S = ( B + D) ⋅ ( C + A ) b) Con una de las negaciones, se aplica el teorema de Morgan a toda la expresión. S = ( B + D) + ( C + A ) c) La ecuación final queda expresada solo con funciones tipo NOR. S = ( B + D) + ( C + A ) 45 FUNCIÓN SÍMBOLO IMPLEMENTACIÓN NAND IMPLEMENTACIÓN NOR NOT OR -------- NOR AND NAND -------- EXOR EXNOR TABLA 2 46