ÁLGEBRA DE LAS VARIABLES LÓGICAS (ALGEBRA BOOLEANA) 2.1 Enlaces Lógicos 2.2 Leyes de De Morgan y Karnaugh 2.3 Diagrama Combinacional
Álgebra de Boole en informática y matemática, es una estructura algebraica que rigorizan las operaciones lógicas Y, O y NO, así como el conjunto de operaciones unión, intersección y complemento. Se denomina así en honor a George Boole, (2 de noviembre de 1815 a 8 de diciembre de 1864), matemático inglés que fue el primero en definirla como parte de un sistema lógico a mediados del siglo XIX. Las álgebras booleanas, estudiadas por primera vez en detalle por George Boole, constituyen un área de las matemáticas que ha pasado a ocupar un lugar prominente con el advenimiento de la computadora digital. Son usadas ampliamente en el diseño de circuitos de distribución y computadoras, y sus aplicaciones van en aumento en muchas otras áreas. En el nivel de lógica digital de una computadora, lo que comúnmente se llama hardware, y que está formado por los componentes electrónicos de la máquina, se trabaja con diferencias de tensión, las cuales generan funciones que son calculadas por los circuitos que forman el nivel. Estas funciones, en la etapa de diseño del hardware, son interpretadas como funciones de boole. En la actualidad, el álgebra de Boole se aplica de forma generalizada en el ámbito del diseño electrónico. Claude Shannon fue el primero en aplicarla en el diseño de circuitos de conmutación eléctrica biestables, en 1948.
Formas de Notación del Algebra de Boole Por ejemplo las leyes de De Morgan se representan así:
Cuando el álgebra de Boole se emplea en electrónica, suele emplearse la misma denominación que para las puerta lógica AND (Y), OR (O) y NOT (NO), ampliándose en ocasiones con X-OR (O exclusiva) y sus negadas NAND (NO Y), NOR (NO O) y X NOR (equivalencia). las variables pueden representarse con letras mayúsculas o minúsculas, y pueden tomar los valores {0, 1} Empleando esta notación las leyes de De Morgan se representan:
Desde el punto de vista práctico existe una forma simplificada de representar expresiones booleanas. Se emplean apóstrofos (') para indicar la negación, la operación suma (+) se representa de la forma normal en álgebra, y para el producto no se emplea ningún signo, las variables se representan, normalmente con una letra mayúscula, la sucesión de dos variables indica el producto entre ellas, no una variable nombrada con dos letras. La representación de las leyes de De Morgan con este sistema quedaría así, con letras minúsculas para las variables:
y así, empleando letras mayúsculas para representar las variables:
Todas estas formas de representación son correctas, se utilizan de hecho, y pueden verse al consultar bibliografía. La utilización de una u otra notación no modifica el álgebra de Boole, solo su aspecto, y depende de la rama de las matemáticas o la tecnología en la que se esté utilizando para emplear una u otra notación.
Tabla de Verdad Una tabla de verdad , o tabla de valores de verdad , es una tabla que despliega el valor de verdad de una proposición compuesta, para cada combinación de valores de verdad que se pueda asignar a sus componentes. Fue desarrollada por Charles Sanders Peirce por los años 1880, pero el formato más popular es el que introdujo Ludwig Wittgenstein en su Tractatus logico philosophicus, publicado en 1921. Una operación lógica asigna un valor (CIERTO o FALSO) a la combinación de condiciones (CIERTO o FALSO) de uno o más factores. Los factores que intervienen en una operación lógica sólo pueden ser ciertos o falsos. Y el resultado de una operación lógica puede ser, tan sólo, cierto o falso. Por ejemplo, imagínese el sistema de control del toldo de una cafetería, que se gobierna mediante una operación lógica. Para que el motor que extiende el toldo se accione deberá tener en cuenta dos factores: ¿es de día? ¿está lloviendo? Si estos dos factores son ciertos, el motor debe ponerse en marcha y extender el toldo. De día
Llueve
Toldo
Falso
Falso
Falso
Falso
Cierto
Falso
Cierto
Falso
Falso
Cierto
Cierto
Cierto
Los resultados de una operación lógica, para cada uno de los valores posibles de las variables, se fijan en una tabla denominada Tabla de la Verdad, como la del ejemplo anterior. Para que un procesador pueda ejecutar las operaciones lógicas, es preciso asignar un valor binario a cada una de las condiciones posibles. Se suele asignar un UNO (1) al valor CIERTO y un CERO (0) al valor FALSO, con el criterio denominado lógica positiva.
2.1 Enlaces Lógicos PUERTAS LOGICAS La puerta lógica es el bloque de construcción básico de los sistemas digitales. Las puertas lógicas operan con números binarios. Por tanto las puertas lógicas se denominan puertas lógicas binarias. En los circuitos digitales todos los voltajes, a excepción de los voltajes de las fuentes de potencia, se agrupan en dos posibles categorías: voltajes altos y voltajes bajos. No quiere decir esto que solo se encuentren dos voltajes, si no que cierto rango de voltajes se define como alto y otro cierto rango como bajos. Entre estos dos rangos de voltajes existe una denominada zona prohibida o de incertidumbre que los separa. Una tensión alta significa un 1 binario y una tensión baja significa un cero binario. Todos los sistemas digitales se construyen utilizando tres puertas lógicas básicas. Estas son las puertas AND, la puerta OR y la puerta NOT.
LA PUERTA AND.
Figura 1: Circuito equivalente de una puerta AND
La puerta AND es denominada la puerta de << Todo o Nada >>. observar el esquema de la figura 1, la cual muestra la idea de la puerta AND. Examinando de cerca el circuito, notamos que la lámpara encenderá solo si ambos interruptores se cierran o se activan simultáneamente. Si uno de los de los interruptores esta abierto, el circuito se interrumpe y la lámpara no se enciende. Todas las posibles combinaciones para los interruptores A y B se muestran en la tabla 1. La tabla de esta figura que la salida (y) esta habilitada (encendida) solamente cuando ambas entradas están cerradas.
Interruptores de entrada
Luz de salida
A
B
Y
Abierto
Abierto
Apagado
Abierto
Cerrado
Apagado
Cerrado
Abierto
Apagado
Cerrado
Cerrado
Encendido
Tabla 1: Combinaciones posibles de la compuerta AND
Con el ánimo de presentar en forma más compacta la tabla, anterior, convengamos en que la condición de interruptor cerrado la representamos con un 1, y la de interruptor abierto con un 0. De manera similar, el encendido de la lámpara la representamos con un 1. Y su apagado con un 0 (cero). Con estas convenciones, la tabla 1 nos quedaría como en la tabla 2.
A
B
Y
0
0
0
0
1
0
1
0
0
1
1
1
Tabla 2: Tabla 1 simplificada
LOS SÍMBOLOS DE LAS COMPUERTAS Son una representación gráfica de la función que ayuda a visualizar las relaciones lógicas existentes en un diseño o circuito. En la figura 2 se muestra el símbolo de la compuerta AND con lo que se quiere significar que esta compuerta AND es un dispositivo que posee dos entradas A y B y una salida Y.
Figura 2: Símbolo de una compuerta AND
El álgebra booleana es una forma de lógica simbólica que muestra como operan las compuertas lógicas. Una expresión booleana es un método << taquígrafo >> de mostrar que ocurre en un circuito lógico. La expresión booleana para el circuito de la figura 3 es.
A·B=Y Figura 3: Expresión booleana de la compuerta AND
La expresión booleana se lee A AND B igual a la salida Y. El punto (·) significa la función lógica AND en álgebra booleana, y no la operación de multiplicar como en el álgebra regular. Con frecuencia un circuito lógico tiene tres variables. La Fig. 4 muestra una expresión booleana para una puerta AND de tres entradas. El símbolo lógico para esta expresión AND de tres entradas esta dibujada en la Fig. 5. La tabla de verdad 3 muestra las 8 posibles combinaciones de la variables a, b y c observar que solo cuando todas las entradas están en 1 y la salida de la puerta AND se habilita a 1.
A·B·C=Y Figura 4: Expresión booleana para una compuerta AND de tres entradas
Figura 5: Compuerta AND de tres entradas
A
B
C
Y
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
Tabla 3: Tabla de verdad de una compuerta AND de tres entradas
LA PUERTA OR
Figura 6: Circuito equivalente de una compuerta OR
La puerta OR se denomina y la puerta de << cualquiera o todo >>. El esquema de la figura 6 nos muestra la idea de la puerta OR, en el cual los interruptores han sido conectados en paralelo. El encendido de la lámpara se producirá si se cierra cualquiera de los dos interruptores o ambos. Todas las posibles combinaciones de los interruptores se muestran en la tabla 4. La tabla de verdad detalla la función OR del circuito de interruptores y lámpara.
Interruptores de entrada
Luz de salida
A
B
Y
Abierto
Abierto
Apagado
Abierto
Cerrado
Encendido
Cerrado
Abierto
Encendido
Cerrado
Cerrado
Encendido
Tabla 4: Combinaciones posibles de la compuerta OR
La tabla 4 describe el funcionamiento del circuito. Observamos, que de las 4 posibles combinaciones de cierre y apertura de los interruptores, 3 de ellas producen el encendido de la lámpara, y de nuevo utilizando la convención de representar la condición cerrado o encendido por un 1 y la de abierto o apagado por un 0, se obtiene la tabla de verdad de la tabla 5.
A
B
Y
0
0
0
0
1
1
1
0
1
1
1
1
Tabla 5: Tabla de verdad de una compuerta OR de dos entradas
El símbolo lógico estándar para la puerta OR esta dibujado en la Fig. 7. observar la forma diferente de la puerta OR. La expresión booleana abreviada para esta función OR es A + B = Y observar que símbolo + significa OR en álgebra booleana. la expresión (A+ B = Y) se lee A OR B igual a salida Y.
Figura 7: Símbolo de una compuerta OR
La expresión booleana, símbolo y tabla de verdad de una puerta OR de tres entradas o variables están dibujadas en las figuras 8, 9, y en la tabla 6.
A+B+C=Y Figura 8: Expresión booleana para una compuerta OR de tres entradas
Figura 9: Compuerta OR de tres entradas
A
B
C
Y
0
0
0
0
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
1
Tabla 6: Tabla de verdad de una compuerta OR de tres entradas
LA PUERTA NOT Las dos compuertas descritas anteriormente poseen cada una dos entradas y una salida. La compuerta NOT o inversora, posee una entrada y una salida como se muestra en la Fig. 10. Su función es producir una salida inversa o contraria a su entrada es decir convertir unos a ceros y ceros a unos. la tabla de verdad 7 resume el funcionamiento de esta compuerta.
Figura 10: Símbolo de una compuerta NOT
A
Y
0
1
1
0
Tabla 7: Tabla de verdad de una compuerta NOT
La expresión booleana para la inversión es Å = A. La expresión Å = A indica que A es igual a la salida no A. Un símbolo alternativo para la puerta NOT o inversor, se muestra a continuación.
Figura 11: Símbolo alternativo de una compuerta NOT
El círculo inversor puede estar en la parte de entrada o de salida del símbolo triangular. cuando el círculo inversor aparece en la parte de la entrada del símbolo NOT, el diseñador habitualmente intenta sugerir que esta es una señal activa en baja. una señal activa en baja requiere que una tensión baja active alguna función en circuito lógico.
LA PUERTA NAND Una compuerta NAND es un dispositivo lógico que opera en forma exactamente contraria a, una compuerta, AND, entregando una salida baja cuando todas sus entradas son altas y una salida alta mientras exista por lo menos un bajo a cualquiera de ellas . Considerar el diagrama de los símbolos lógicos de la Fig. 12, una puerta AND esta conectada a un inversor. Las entradas A y B realizan la función AND y forma la expresión booleana A · B la puerta NOT invierte A · B a la derecha del inversor se añade la barra de complementaron a la expresión booleana obteniéndose A · B = Y a este circuito se denomina NOT-AND o NAND.
Figura 12: Circuito equivalente de una compuerta NAND
El símbolo lógico convencional para la puerta se muestra en el diagrama de la Fig. 13 observar que el símbolo NAND es símbolo AND con un pequeño circulo a la salida. El círculo a veces se denomina círculo inversor. Esta es una forma simplificada de representar la puerta NOT. la tabla de verdad describe la operación exacta de la puerta lógica. la tabla de la verdad para la puerta NAND se ilustra en la tabla 8, observe como sus salida son las inversas de las salidas de la puerta AND.
Figura 13: Símbolo lógico de una compuerta NAND
A
B NAND AND
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
Tabla 8: Tabla de verdad de una compuerta NAND de dos entradas
La operación de una puerta NAND es análoga a la del circuito eléctrico mostrado en la Fig. 14 los interruptores A y B representan las entradas de la puerta y la lámpara (Y) su salida.
Figura 14: Circuito eléctrico equivalente de una compuerta NAND
Debido a que los interruptores A y B están en serie entre si y en paralelo con la lampara (Y), esta ultima solo se apaga cuando ambos interruptores están cerrados y permanece encendida mientras cualquiera de ellos este abierto.
LA PUERTA NOR Considerar el diagrama lógico de la Fig. 15. se ha conectado un inversor a la salida de una puerta OR. la expresión booleana en la entrada de un inversor es A + B. el inversor complementa la salida de la puerta OR, lo que se indica colocando una barra encima de la expresión booleana. obteniéndose A+B = Y. Esta es una función NOT-OR. La función NOT-OR puede representarse por un símbolo lógico llamado puerta NOR que se ilustra en el diagrama de la Fig. 16. Observar que se ha añadido un pequeño círculo inversor al símbolo OR para formar el símbolo NOR.
Figura 15: Circuito equivalente de una compuerta NOR
Figura 16: Símbolo lógico de una compuerta NOR
Podemos decir que este dispositivo lógico opera en forma exactamente opuesta a una puerta OR , entregando una salida alta cuando todas sus entradas son bajas y una salida baja cuando existe por lo menos un alto en cualquiera de ellas . La operación de una puerta NOR es análoga a la del circuito eléctrico mostrado en la Fig. 17 los interruptores A y B representan las entradas de la puerta y la lampara (Y) su salida.
Figura 17: Circuito eléctrico equivalente a una compuerta NOR
Debido a que los interruptores A y B están en paralelo entre si y con la lampara (Y) esta ultima solo enciende cuando ambos interruptores están abiertos y permanece apagada mientras cualquiera de ellos , o ambos , estén cerrados.
La tabla de verdad 9 detalla la operación de la puerta NOR. Es complemento (ha sido invertida) de la columna OR en otras palabras, la puerta NOR pone un 0 donde la puerta OR produce un 1
A
B
NOR OR
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
Tabla 9: Tabla de verdad de una compuerta NOR de dos entradas
LA PUERTA OR EXCLUSIVA O XOR La OR - exclusiva se denomina la puerta de << algunos pero no todos >>. El término OR - exclusiva con frecuencia se sustituye por XOR. La tabla de verdad para la función XOR se muestra en la tabla 10. un cuidadoso examen muestra que esta tabla de verdad es similar a la tabla de verdad OR, excepto que cuando ambas entradas son 1 la puerta XOR genera un 0.
A
B
OR XOR
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
Tabla 10: Tabla de verdad de una compuerta XOR de dos entradas
La operación de una puerta XOR es análoga a la del circuito eléctrico mostrado en la Fig. 18. los interruptores A y B simulan las entradas y la lampara (Y) la salida.
Figura 18: Circuito eléctrico equivalente de una compuerta XOR
Los interruptores A y B están acoplados mecánicamente a los interruptores A y B de modo que cuando A se cierra entonces A se abre y viceversa. lo mismo puede decirse del interruptor B con respecto al B. Cuando los interruptores A y B están ambos cerrados o ambos abiertos la lampara no enciende. En cambio, cuando uno de ellos, por ejemplo el A, esta abierto y el otro, B, esta cerrado, entonces la lampara se enciende.
Una booleana para la puerta XOR puede obtenerse de la tabla de verdad la Fig. 19 la expresión es A ·B + Å · B = Y a partir de esta expresión booleana puede construirse un circuito lógico utilizando puertas AND, puertas OR e inversores dicho circuito aparece en la Fig. 19 a este circuito lógico realiza la función lógica XOR.
Figura 19: Circuito lógico que realiza la función XOR
El símbolo lógico convencional para la puerta XOR se muestra en la Fig. 20 la expresión booleana A ⊕ B, es una expresión XOR simplificada. el símbolo ⊕ significa la función XOR en álgebra booleana. Se dice que las entradas A y B de la Fig. 20 realiza la función OR - exclusiva.
Figura 20: Símbolo lógico de una compuerta XOR
a b a+b
Operación suma La operación suma (+) asigna a cada par de valores a, b de A un valor c de A:
0 0
0
0 1
1
1 0
1
1 1
1
Su equivalencia en lógica de interruptores es un circuito de dos interruptores en paralelo.
Si uno de los valores de a o b es 1, el resultado será 1, es necesario que los dos sumandos sean 0, para que el resultado sea 0.
Operación producto
a b a b 0 0
0
La operación producto ( ) asigna a cada par de valores a, b de A un valor c de 0 1 A: 1 0
0
1 1
1
Esta operación en lógica de interruptores es un circuito en serie de dos interruptores
solo si los dos valores resultado será 0.
Operación negación
a y b son 1, el resultado será 1, si uno solo de ellos es 0 el
0
a La operación negación presenta el opuesto del valor de a:
0 1 1 0
Un interruptor inverso equivale a esta operación:
Operaciones combinadas
a b 0 0
Partiendo de estas tres operaciones elementales se pueden realizar otras 0 1 más complejas, que podemos representar como ecuaciones booleanas, por 1 0 ejemplo: 1 1
1 1 0 1
Que representado en lógica de interruptores es un circuito de dos interruptores en paralelo, siendo el primero de ellos inverso.
La distinta secuencia de valores de
a y b da los resultados vistos en la tabla de verdad.
2.2 Leyes de De Morgan y Karnaugh
Leyes de De Morgan Las leyes de De Morgan declaran que la suma de n variables globalmente negadas (o invertidas) es igual al producto de las n variables negadas individualmente; y que inversamente, el producto de n variables globalmente negadas es igual a la suma de las n variables negadas individualmente. Se trata simplemente de una combinación de compuertas de tal modo de encontrar una equivalencia entre ellas, esto viene a consecuencia de que en algunos casos no dispones del integrado que necesitas pero si de otros que podrían producir los mismos resultados que estas buscando.
1º Ley: El producto lógico negado de varias variables lógicas es igual a la suma lógica de cada una de dichas variables negadas. Si tomamos un ejemplo para 3 variables tendríamos.
~ (a.b.c) = ~a + ~b + ~c El primer miembro de esta ecuación equivale a una compuerta NAND de 3 entradas, representada en el siguiente gráfico y con su respectiva tabla de verdad.
El segundo miembro de la ecuación se lo puede obtener de dos formas.
Fíjate que la tabla de verdad es la misma, ya que los resultados obtenidos son iguales. Acabamos de verificar la primera ley.
2º Ley: La suma lógica negada de varias variables lógicas es igual al producto de cada una de dichas variables negadas...
~ (a + b + c) = ~a . ~b . ~c El primer miembro de esta ecuación equivale a una compuerta NOR de 3 entradas y la representamos con su tabla de verdad...
El segundo miembro de la ecuación se lo puede obtener de diferentes forma, aquí cité solo dos...
Nuevamente... Observa que la tabla de verdad es la misma que para el primer miembro en el gráfico anterior. Acabamos así de verificar la segunda ley de De Morgan.
Mapas de Karnaugh Un mapa de Karnaugh (también conocido como tabla de Karnaugh o diagrama de Veitch, abreviado como K-Mapa o KV-Mapa) es un diagrama utilizado para la simplificación de funciones algebraicas booleanas. El mapa de Karnaugh fue inventado en 1950 por Maurice Karnaugh, un físico y matemático de los laboratorios Bell. Los Mapas de Karnaugh son una herramienta muy utilizada para la simplificación de circuitos lógicos. Cuando se tiene una función lógica con su tabla de verdad y se desea implementar esa función de la manera más económica posible se utiliza este método. Los mapas K aprovechan la capacidad del cerebro humano de trabajar mejor con patrones que con ecuaciones y otras formas de expresión analítica. Externamente, un mapa de Karnaugh consiste de una serie de cuadrados, cada uno de los cuales representa una línea de la tabla de verdad. Puesto que la tabla de verdad de una función de N variables posee 2 N filas, el mapa K correspondiente debe poseer también 2 N cuadrados. Cada cuadrado alberga un 0 ó un 1, dependiendo del valor que toma la función en cada fila. Las tablas de Karnaugh se pueden utilizar para funciones de hasta 6 variables. Suponiendo que conozcamos la tabla de la verdad de un circuito combinacional, a partir de la cual deseamos diseñar dicho circuito, lo más corriente es tener que buscar una expresión simplificada de la función o funciones a implementar. En esta sección se tratará de explicar cómo ello es posible de una forma sencilla gracias al empleo de un método de simplificación gráfico muy extendido (extendido precisamente por esto, por su facilidad de uso). Para ello se utilizará una tabla ejemplo mediante la cual se irá explicando todo lo referente a este tipo de simplificación de funciones lógicas. Pero antes, un poco de teoría necesaria:
Mapas de Karnaugh para dos, tres, cuatro y cinco variables: El aspecto de los mapas de Karnaugh es el de la siguiente figura:
De izquierda a derecha y de arriba a abajo aparecen los mapas para dos, tres, cuatro y cinco variables. Note que en cada mapa existe una línea diagonal en la esquina superior izquierda. Por encima y por debajo de dicha línea aparecen los nombres de las variables implicadas (en este caso a, b, c, d y/o e, según el mapa, aunque pudieran ser otros diferentes), de tal forma que para el mapa de cuatro variables, por ejemplo, las combinaciones de ceros y unos de la parte superior del mapa son las combinaciones posibles de las variables a y b, en este orden, y las combinaciones de dígitos binarios del lateral izquierdo son la posibles combinaciones de las variables c y d, también en ese orden.
2.3 Diagrama Combinacional Un circuito combinacional es aquel que está formado por funciones lógicas elementales ( AND, OR, NAND, NOR, etc. ), que tiene un determinado número de entradas y salidas, dependiendo de los valores que toman las salidas exclusivamente de los que toman las entradas en ese instante. Ejemplo de este tipo de circuitos son: los codificadores, decodificadores, multiplexores, demultiplexores, comparadores, generadores-detectores de paridad, etc.
ANÁLISIS DE CIRCUITOS COMBINACIONALES En este punto se trata el análisis de circuitos combinacionales a nivel de puertas lógicas. La estructura del circuito vendrá dada por su diagrama lógico, cuyos constituyentes serán puertas lógicas cuyo comportamiento lo determina el símbolo que lo representa
Figura 1. Circuito Combinacional Un circuito combinacional se analiza determinando la salida de los elementos lógicos que lo constituyen (normalmente puertas lógicas), partiendo de las variables de entrada y avanzando en el sentido de la señal hacia la salida.
SÍNTESIS Y DISEÑO DE CIRCUITOS COMBINACIONALES A continuación se intentan exponer las fases que se siguen en el proceso de síntesis y diseño de circuitos combinacionales: • • • • •
Definición de la función a realizar y especificación de las entradas y salidas. Tabla de la verdad. Ecuaciones lógicas de las salidas. Simplificación de las ecuaciones. Realización o implementación de las ecuaciones simplificadas mediante puertas lógicas.