TEOREMAS DE BOOLE Definición Un álgebra de Boole es un conjunto en el que: 1- Se han definido dos funciones binarias (que necesitan dos parámetros) que llamaremos aditiva (que representaremos por x + y) y multiplicativa (que representaremos por xy) y una función monaria (de un solo parámetro) que representaremos por x'. 2- Se han definido dos elementos (que designaremos por 0 y 1) y 3- Tiene las siguientes propiedades: a) Conmutativa respecto a la primera función: x + y = y + x b) Conmutativa respecto a la segunda función: xy = yx c) Asociativa respecto a la primera función: (x + y) + z = x + (y +z) d) Asociativa respecto a la segunda función: (xy)z = x(yz) e) Distributiva respecto a la primera función: (x +y)z = xz + yz f) Distributiva respecto a la segunda función: (xy) + z = (x + z)( y + z) g) Identidad respecto a la primera función: x + 0 = x h) Identidad respecto a la segunda función: x1 = x i) Complemento respecto a la primera función: x + x' = 1 j) Complemento respecto a la segunda función: xx' = 0 Propiedades del álgebra de Boole Idempotente respecto a la primera función: x + x = x Idempotente respecto a la segunda función: xx = x Maximalidad del 1: x + 1 = 1 Minimalidad del 0: x0 = 0 Involución: x'' = x Inmersión respecto a la primera función: x + (xy) = x Inmersión respecto a la segunda función: x(x + y) = x Ley de Morgan respecto a la primera función: (x + y)' = x'y' Ley de Morgan respecto a la segunda función: (xy)' = x' + y' Función booleana Una función booleana es una aplicación de A x A x A x ....A en A, siendo A un conjunto cuyos elementos son 0 y 1 y tiene estructura de álgebra de Boole. Supongamos que cuatro amigos deciden ir al cine si lo quiere la mayoría. Cada uno puede votar si o no. Representemos el voto de cada uno por xi. La función devolverá sí (1) cuando el numero de votos afirmativos sea 3 y en caso contrario devolverá 0. Si x1 vota 1, x2 vota 0, x3 vota 0 y x4 vota 1 la función booleana devolverá 0. Producto mínimo (es el número posible de casos) es un producto en el que aparecen todas las variables o sus negaciones. El número posible de casos es 2n. Siguiendo con el ejemplo anterior. Asignamos las letras A, B, C y D a los amigos. Los posibles casos son: Votos ABCD 1111 1110 1101 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 0000 Resultado 1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 Las funciones booleanas se pueden representar como la suma de productos mínimos (minterms) iguales a 1. En nuestro ejemplo la función booleana será: f(A,B,C,D) = ABCD + ABCD' + ABC'D + AB'CD + A'BCD Diagramas de Karnaugh Los diagramas de Karnaugh se utilizan para simplificar las funciones booleanas. Se construye una tabla con las variables y sus valores posibles y se agrupan los 1 adyacentes, siempre que el número de 1 sea potencia de 2. Teoremas Existen muchos teoremas en el álgebra de Boole, pero todos ellos se pueden deducir a partir de otros con ayuda de las operaciones y propiedades básicas. Pero dada su utilidad es muy importante recordar el siguiente, el Teorema de De Morgan: 2.2. TABLAS DE VERDAD Representación Son unas representaciones gráficas de todos los casos que se pueden dar en una relación algebraica y de sus respectivos resultados. INDICE 3.1. Introducción 3.2. Funciones básicas booleanas 3.3. Postulados del Álgebra de Boole 3.4. Teoremas del Álgebra de Boole 3.5. El Álgebra de Boole en lenguaje de contactos 3.1. INTRODUCCIÓN George Boole creó el álgebra que lleva su nombre en el primer cuarto del siglo XIX. Pretendía explicar las leyes fundamentales de aquellas operaciones de la mente humana por las que se rigen los razonamientos. En esa época nadie pudo prever la utilización de este álgebra en el diseño de circuitos digitales. Como veremos las operaciones se realizarán mediante relaciones lógicas, lo que en el álgebra convencional son las sumas y multiplicaciones. Las variables con las que opera son las binarias 1 y 0 (verdadero o falso). Los signos 1 y 0 no expresan cantidades, sino estados de las variables. Podemos decir, que el sistema de numeración binario y el álgebra de Boole constituyen la base matemática para el diseño y construcción de sistemas digitales. Se define Función Lógica a toda variable binaria cuyo valor depende de una expresión formada por otras variables binarias relacionadas mediante los signos + y x. Por ejemplo: S=(a.b)+b.c. Siendo S la función, mientras que a, b y c son las variables. Esta función la leeríamos de la siguiente forma: si a y b o b y c son verdaderas(1) la función lógica S es verdadera(1). Mediante contactos podríamos explicar o aclarar la función lógica. Tablas de verdad.- A través de las tablas de verdad se puede conocer teóricamente el comportamiento de las funciones lógicas, en función de los niveles que se aplican a la entrada. Más adelante veremos como además nos van a servir para diseñar circuitos digitales. 3.2. FUNCIONES BÁSICAS BOOLEANAS a) Igualdad FUNCIÓN S=a TABLA DE VERDAD a 0 1 SÍMIL CON CONTACTOS S 0 1 b) Unión (función =O) FUNCIÓN S = a+b a 0 0 1 1 SÍMIL CON CONTACTOS TABLA DE VERDAD b 0 1 0 1 S 0 1 1 1 TABLA DE VERDAD b 0 1 0 1 S 0 0 0 1 c) Intersección (función Y) FUNCIÓN S = a.b a 0 0 1 1 SÍMIL CON CONTACTOS d) Negación (función NO) También denomina función complemento FUNCIÓN TABLA DE VERDAD a 0 1 SÍMIL CON CONTACTOS 3.3. POSTULADOS DEL ÁLGEBRA DE BOOLE a) Las operaciones del Álgebra de Boole son conmutativas. a+b =b+a a.b=b.a b) Identidad 0+a=a 1.a=a S 1 0 c) Cada operación es distributiva respecto de la otra: a . (b + c) = a . b + a . c a + b . c = (a + b) . (a + c) 3.5. EL ÁLGEBRA DE BOOLE EN LENGUAJE DE CONTACTOS POSTULADOS a. Propiedad conmutativa a+b b+a a.b b.a b. Identidad 0+a=a 1.a=a c. Propiedad distributiva a . (b + c ) a.b+a.c a + (b . c) (a + b) . (a + c) d. Complementario o inversión TEOREMAS Teorema 2 a+1=1 a.0=0 Teorema 3 a+a=a a.a=a Teorema 4. Ley de Absorción a+a.b=a a.(a+b)=a IMPLEMENTACIÓN DE FUNCIONES LÓGICAS CON PUERTAS LÓGICAS Una de las carácteristicas de la electrónica digital que más gustan al aficionado es que en ella es fácil iniciarse en el diseño de circuitos. En este artículo vamos a ver que sencillo es diseñar un circuito digital con tal de que conozcamos la función lógica que debe de verificar. La función lógica estará compuesta por diversas variables lógicas relacionadas entre sí mediante las operaciones del álgebra de Boole. Dichas operaciones son la suma lógica (+), el producto lógico (*) y la negación (así, a negada la representaremos por a'). Sin más preambulos, veamos cómo se "saca" el circuito digital para que "resuelva" una función lógica, y qué mejor forma de verlo que con un ejemplo concreto: Idéese un circuito digital tal que implemente la función lógica G=(a*b)'+(c*(a+b')) Empecemos por ver cuántas variables forman a la función G. En este caso se ve que son tres, a, b y c. Pues ya podemos empezar a dibujar el circuito. Hay que dibujar tantas líneas verticales como variables tenga la función, poniéndole a cada una de ellas como título el nombre de una variable: ¿Hay alguna variable aislada que esté negada? Si la respuesta es sí (y en este caso lo es, fíjese en la función, en ella aparece b') habrá que colocar una puerta inversora de tal forma que su entrada esté conectada a la línea de la variable que debe negarse. A la salida de esta puerta tendremos la variable negada: Como puede apreciarse, la salida de la puerta se ha "extendido" con una línea vertical. El siguiente y último paso es ir realizando con puertas lógicas las operaciones de la función lógica. Así, podríamos hacer ahora el producto negado de la variable a con la variable b. Para ello emplearemos la puerta NAND: Podríamos seguir con la suma lógica de a con b' (puerta OR): La puerta OR recien colocada entrega a su salida a+b'. Si multiplicamos esto por c tendríamos c*(a+b') (ver la expresión de la función G): Por último sólo queda sumar (a*b)' (que está en la salida de la puerta NAND) con c*(a+b') (presente en la salida de la puerta AND) para obtener la función G de salida: Y ya tenemos nuestro circuito terminado. Este circuito calcula automáticamente el valor de la función G para cualquier combinación de valores de las variables que forman la función. Como se habrá dado cuenta a lo largo de este artículo, para poder llevar a cabo la implementación de la función con puertas lógicas es imprecindible conocer con detalle cada una de las puertas lógicas que existen. Por este motivo, y en el caso de que usted no las conozca, le invitamos a que eche un vistazo al artículo que trata de las puertas lógicas.