UNIDAD 2 FUNDAMENTOS LÓGICOS OBJETIVOS PARTICULARES DE LA UNIDAD Al término de la unidad el alumno: - Distinguirá los aspectos teóricos del álgebra booleana, su vinculación con dispositivos eléctricos y las diferencias en representación de datos numéricos concluyendo con ejemplos prácticos de aplicación 2.1 Fundamentos lógicos. En todas las áreas de las actividades humanas, como son las comunicaciones, electrodomésticos, entretenimiento, telefonía, transportes, medicina, internet, etc. los sistemas digitales se encuentran presentes, en esta unidad se estudiaran los fundamentos lógicos que soportan estos sistemas. 2.1.1 Sistemas numéricos y conversiones. Una característica de los sistemas digitales es su capacidad para manipular elementos discretos de información. Todo conjunto restringido a un número finito de elementos contiene información discreta. Ejemplos de conjuntos discretos son los 10 dígitos decimales, las 28 letras del alfabeto, y las 64 casillas de un tablero de ajedrez. En casi todos los sistemas digitales actuales, las señales que se manejan emplean sólo dos valores discretos, por los que se les llama Binarios. Un digito binario, se le llama Bit y este solo tiene dos valores: 0 y 1. Existe una correspondencia entre los números binarios que son por así decir, los que “entienden” los sistemas digitales y los números decimales que entendemos los seres humanos. Los números decimales se expresan en lo que se conoce como Sistema numérico posicional porque los dígitos del 0 al 9 adquieren valor diferente de acuerdo a la posición que ocupan en un numero decimal, por ejemplo el numero N = 5278.36 representa una cantidad igual a 5 millares más 2 centenas más 7 decenas más 8 unidades con 3 décimas y 6 centésimas. Este número también se puede expresar como: N = 5278.36 = 5 x 103 + 2 x 102 + 7 x 101 +8 x 100 . 3 x10-1 + 6 x 10-2 Notación en la que se observa lo siguiente: Por convención el número N se representa normalmente por los coeficientes y se deducen las potencias de 10 por la posición que ocupa cada coeficiente. La potencia se enumera a partir del punto decimal de derecha a izquierda empezando con el numero 0 para los números enteros, y para los decimales de izquierda a derecha a partir del punto decimal empezando con el numero -1. Se dice que el sistema decimal es base 10 porque usa 10 dígitos, del 0 al 9, y los coeficientes se multiplican por potencias de 10. Al sistema que tenga dos dígitos, 0 y 1, y sus coeficientes se multipliquen por potencias de 2 se le llama sistema de base 2 o números binarios, al sistema de 8 dígitos, de 0 al 7, y sus coeficientes se multipliquen por potencias de 8 se le llama sistema de base 8 o números octales y así sucesivamente. En la tabla 1 se muestran las equivalencias entre sistemas numéricos de diferente base TABLA 1. SISTEMAS DE NUMERACION EN DIFERENTES BASES BASE 10 BASE 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 100000 100001 100010 BASE 8 BASE 16 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 40 41 42 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 15 16 17 18 19 1ª 1B 1C 1D 1E 1F 20 21 22 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 100011 100100 100101 100110 100111 101000 101001 101010 101011 101100 101101 101110 101111 110000 110001 110010 43 44 45 46 47 50 51 52 53 54 55 56 57 60 61 62 23 24 25 26 27 28 29 2ª 2B 2C 2D 2E 2F 30 31 32 Para distinguir entre números con diferente base, se encierran los coeficientes en paréntesis y se añade un subíndice que indica la base empleada. La conversión entre sistemas de base n a base 10 se efectúa como se muestra en los ejemplos siguientes: Ejemplo 1 Convertir ( 2403 )7 → ( )10 ( 2403 )7 = 2x73 + 4x72 + 0x71 + 3x70 = 2x343 + 4x49 + 0x7 + 3x1 = (885)10 Ejemplo 2 Convertir (01 0011)2→ ( )10 (01 0011)2 = 1x24 + 0x23 + 0x22 +1x21 + 1x20 = 1x16 + 1x2 + 1x1 = (19)10 Ejemplo 3 Convertir el número con decimales ( 63.125 )8 → ( )10 Primero se convierte la parte entera ( 63 )8 = 6x81 + 3x80 = 48 + 3 = (51)10 En seguida la parte decimal (0.125) = 1x8-1 + 2x8-2 + 5x8-3 = 1/8 + 1/64 + 1/512 = 0.1250 + .0156 + 0.0019 = 0.1425 Finalmente el numero se forma con la parte entera y la parte decimal Por tanto ( 63.125)8 = (51.1425)10 Ejemplo 4 Convertir el decimal binario (0100.11)2 → ( 1º la parte entera )10 (100)2 =1x22 +0x21 + 0x20 . 1x2-1 + 1x2-2 = 1x4 + 0x 21+ 0x1 = 410 en seguida la parte decimal ( 0.11) = 1x2-1 + 1x2-2 = ½ + ¼ = 0.500 + 0.250 = 0.750 Finalmente el numero se forma con la parte entera y la parte decimal Por tanto ( 0100.11)2 = (4.750)10 La conversión de base 10 a base n, se explica fácilmente con los siguientes ejemplos: Ejemplo 5 Convertir el numero entero 1910 a numero binario (19)10 → ( )2 Solución Se divide el entero 19 entre el número de base a la que se quiere convertir, en este ejemplo es entre 2, a fin de obtener entero y residuo, de la siguiente forma: 19/2 = 9 y residuo 1 9/2 = 4 y residuo 1 4/2 = 2 y residuo 0 2/2 = 1 y residuo 0 ½ = 0 y residuo 1 se divide hasta que el entero resultante es 0. El numero binario se forma tomando los residuos en orden de abajo hacia arriba por tanto (19)10 → (10011)2 Ejemplo 6 Convertir el numero entero 88510 a numero base 7 (885)10 → ( )7 Solución Se divide el entero 885 entre el número de base a la que se quiere convertir, en este ejemplo es entre 7, a fin de obtener entero y residuo, de la siguiente forma: 885/7 = 126 126/7 = 18 18/7 = 2 2/7 = 0 y y y y residuo residuo residuo residuo 3 0 4 2 El numero base 7 se forma tomando los residuos en orden de abajo hacia arriba por lo tanto (885)10 → (2403)7 Ejemplo 7 Convertir el numero decimal 0.53410 a numero base 2 con 8 Bits (0.534)10 → ( )2 Solución Como se trata de un número decimal, se multiplica por el número de base a la que se quiere convertir, en este ejemplo es por 2, a fin de obtener entero y decimal, de la siguiente forma: 0.534 x 2 0.068 x 2 0.136 x 2 0.272 x 2 = = = = 1 . 068 0.136 0.272 0.544 entero entero entero entero 1 0 0 0 0.544 x 2 0.088 x 2 0.176 x 2 0.352 x2 = = = = 1.088 0.176 0.352 0.704 entero entero entero entero 1 0 0 0 0.704 x 2 = 1.408 entero 1 Se termina de multiplicar en dos casos, cuando se obtenga decimal 0.0000 ó cuando se tenga el numero de bits deseado. En este ejemplo a 8 bits. El numero base 2 o binario se forma tomando los enteros en orden de arriba hacia abajo por tanto (0.534)10 → (1000 1000 )2 con 8 bits Ejemplo 8 Convertir ( 13.1250)10 → ( (13)10 → ( )2 Parte entera 13/2 = 6 y residuo 1 6/2 = 3 y residuo 0 3/2 = 1 y residuo 1 )2 con 8 bits en la parte decimal. ½ = 0 y residuo 1 por tanto (13)10 → ( 1101 )2 Parte decimal ( 0.1250)2 → ( )2 0.125 x 2 = 0.250 0.250 x 2 = 0.500 0.500 x 2 = 1.000 0.000 x 2 = 0.000 entero entero entero entero 0 0 1 0 0.000 x 2 = 0.000 0.000 x 2 = 0.000 0.000 x 2 = 0.000 0.000 x 2 = 0.000 entero entero entero entero 0 0 0 0 por tanto ( 0.1250 )2 → ( 0.0010 0000 )2 Finalmente el numero se forma con la parte entera y la parte decimal (13.1250)10 → ( 1101. 0010 0000 )2 con 8 bits en la parte decimal. Números binarios con signo La representación de números binarios con signo es particularmente importante en los sistemas digitales, los números positivos se representan con el primer bit a la extrema izquierda con 0 que representa el signo +, seguido por la magnitud. Pero para los números binarios negativos se tienen tres formas diferentes de representarlos. Se tiene un 1 a la extrema izquierda que representa el signo - , seguido de a).- la magnitud, b).- el complemento a 1 y c).- el complemento a 2 del numero binario por expresar. Los números con signo que se pueden representar dependen de la cantidad de bits que se emplean, en la tabla 2 se muestran los números binarios positivos y negativos que se pueden representar con cuatro bits. TABLA 2 Representación de números binarios positivos y negativos utilizando 4 bits Decimal - 8 7 6 5 4 3 2 Binario Binario Binario Signo y Complemento a1 Complemento a 2 magnitud 1 111 1 110 1 101 1 100 1 011 1 010 1 000 1 001 1 010 1 011 1 100 1 101 1 001 1 010 1 011 1 100 1 101 1 110 - + + + + + + + 1 1 001 1 110 1 111 0 1 000 0 000 1 111 0 000 0 000 0 001 0 010 0 011 0 100 0 101 0 110 0 111 0 001 0 010 0 011 0 100 0 101 0 110 0 111 0 001 0 010 0 011 0 100 0 101 0 110 0 111 1 2 3 4 5 6 7 La representación de números binarios negativos la explicaremos con los siguientes ejemplos. Ejemplo 9 Representar el número (-17)10 en forma binaria con 8 bits, en las formas a) signo y magnitud, b) complemento a 1 c) complemento a 2. Solución a) Representación de (-17)10 en forma binaria con signo y magnitud La convención para representar el bit de signo es 0 para el “+” y 1 para el “ - ” en los tres casos, según se puede observar en la tabla 2. Para la magnitud en este caso basta con representarla con su valor en binario, esto es (-17)10 → ( 1001 0001 )2 b) Representación de (-17)10 en forma binaria con complemento a 1 con 8 bits La convención para representar el bit de signo es como ya se dijo: 0 para el “+” y 1 para el “ - ”. Para expresar la parte de magnitud negativa primero es necesario tomar su complemento a 1. El complemento a 1 de un numero se obtiene cambiando todos los “1” del numero por “0” y los “0” por “1” Esto es (17)10 → (0001 0001)2 Entonces el complemento a 1 de 0001 0001 es 1110 1110 Por lo tanto la Representación de (-17)10 en forma binaria con complemento a 1 y con 8 bits, es 1110 1110 c) Representación de (-17)10 en forma binaria con complemento a 2 y con 8 bits Para expresar la parte de magnitud negativa primero es necesario tomar su complemento a 2. El complemento a 2 de un numero se obtiene tomando el complemento a 1 del numero y después sumando 1 al resultado, esto es: Numero a complementar a 2 Complemento a 1 es Sumar 1 Complemento a 2 0001 0001 1110 1110 +1 1110 1111 Entonces la representación de (-17)10 en forma binaria con complemento a 2 y con 8 bits es: 1110 1111 Operaciones de suma y resta con números binarios La operación de suma binaria se puede realizar en base a la siguiente tabla Tabla de suma con números binarios + 0 1 0 0 1 1 1 10 En esta tabla el ultimo cuadro se debe leer en 1 +1 resultado 0 y acarreo 1, su aplicación se muestra con los siguientes ejemplos: Ejemplo 10 Sea M = 01011 y N = 00110 efectuar M+N Solucion M 0 1 11 01 1 1 N + 0 0 1 10 Q = 1 0 0 01 Ejemplo 11 Sea A = 1110 0011 y B = 0010 1111 efectuar A+B Solucion A 0 1 1 1 01 01 01 11 1 B +00 10 1 1 1 1 C =01 01 0 0 1 0 Resta de números binarios La resta comúnmente se realiza usando el complemento a 1 o el complemento a 2, la forma de hacerlo es similar en ambos métodos, al minuendo se le suma el complemento que corresponda, teniendo cuidado en terminar la operación dependiendo de si existe acarreo o no. Se ilustra con los siguientes ejemplos: Ejemplo 12 Sea A= (100)2 y B = (10)2 realizar A – B usando complemento a 1. Solución: En primer termino los números binarios se deben tener en el mismo tamaño de palabra es decir el mismo numero de bits. A = 0100 y B = 0010, en seguida se obtiene el complemento a 1 del sustraendo, en este ejemplo de B, que resulta ser 1101 y al minuendo A se le suma el complemento a 1 de B Comprobando en base 10 A 01 1 0 0 A 4 complemento a 1 de B + 1 1 0 1 -B -2 1) 0 0 01 1 A–B 2 → +1 A–B = 0 010 Se debe de observar en este ejemplo que existe acarreo es decir se excede el tamaño de la palabra en un bit 1), este se suma, obteniéndose el valor de A – B. De aquí se puede generalizar como regla 1: cuando se realiza la resta de 2 numeros binarios usando complemento a 1, si existe acarreo en la suma parcial este se suma, y el resultado es positivo. Ejercicio 2. Determinar la regla 2 a seguir cuando se restan dos números binarios usando complemento a 1 y en la suma parcial no existe acarreo. Ejemplo 13 Sea A= (100)2 y B = (10)2 realizar A – B usando complemento a 2. Solución: Como ya se menciono en el ejemplo anterior los números binarios a restar deben tener el mismo tamaño de palabra es decir el mismo numero de bits. A = 0100 y B = 0010, en seguida se obtiene el complemento a 2 del sustraendo, en este ejemplo de B, que resulta ser 1110 y al minuendo A se le suma el complemento a 2 de B A 01 1 0 0 complemento a 2 de B + 1 1 1 0 1) 0 0 1 0 A–B = 0 010 De aquí se puede generalizar como regla 3: cuando se realiza la resta de 2 números binarios usando complemento a 2, si existe acarreo 1) en la suma parcial este se desecha, y el resultado es positivo. Ejercicio 3. Determinar la regla 4 a seguir cuando se restan dos números binarios usando complemento a 2 y en la suma parcial no existe acarreo. 2.2 Álgebra booleana. El álgebra booleana proporciona un método sistemático para la comprensión y diseño de sistemas digitales en los que se utilicen dispositivos lógicos binarios, por ejemplo conmutadores, relevadores y compuertas lógicas. Es una álgebra apropiada para variables binarias que tengan solo dos valores, cerrado abierto, 0 y 1. 2.2.1 Teoremas. Como en el caso del álgebra ordinaria, el álgebra booleana está estructurada en un conjunto de supuestos fundamentales denominados axiomas o postulados y en base a estos se construyen las reglas básicas o teoremas del álgebra booleana 2.2.2 Representación eléctrica. Los postulados son suposiciones fundamentales que también se denominan axiomas. El álgebra booleana se basa en 10 axiomas, a partir de los cuales se definen los teoremas o reglas del álgebra. Para su fácil comprensión se presentaran o ilustraran con el uso de interruptores eléctricos, con la convención de que un interruptor abierto representa el 0 lógico y un interruptor cerrado el 1 lógico. También se enumeraran los postulados por 5 parejas, debido a la dualidad que existe encada par, esto es al cambiar en un postulado los 0 por 1 y la x por + se obtiene el otro postulado dual. Lo mismo ocurre con los teoremas. Postulado 1ª: 0 • 0 = 0 Dos interruptores abiertos conectados en serie dan por resultado un circuito abierto. Postulado 1b: 1 + 1 = 1 Dos interruptores cerrados conectados en paralelo dan por resultado un circuito cerrado. Postulado 2ª: 0 • 1 = 0 Un interruptor abierto conectado en serie con uno cerrado da por resultado un circuito abierto. Postulado 2b: 1 + 0 = 1 Un interruptor cerrado conectado en paralelo con uno abierto da por resultado un circuito cerrado. Postulado 3ª: 1 • 0 = 0 Un interruptor cerrado conectado en serie con uno abierto da por resultado un circuito abierto Postulado 3b: 0 + 1 = 1 Un interruptor abierto conectado en paralelo con otro cerrado da por resultado un circuito cerrado. Postulado 4ª: 1 • 1 = 1 Un interruptor cerrado conectado en serie con otro cerrado da por resultado un circuito cerrado. Postulado 4b: 0 + 0 = 0 Un interruptor abierto conectado en paralelo con otro abierto da por resultado un circuito abierto. Postulado 5ª: 0’ = 1 Un interruptor que no esta abierto se encuentra cerrado. Postulado 5b: 1’ = 0 Un interruptor que no esta cerrado se encuentra abierto. Teoremas del álgebra booleana A continuación se presentan los 10 postulados mas usados, la demostración de algunos de ellos se realiza en el apartado 2.2.5. Teorema 1 Leyes conmutativas Teorema 1ª: X • Y = Y • X Teorema 1b: X + Y = Y + X Teorema 2 Leyes asociativas Teorema 2ª: X • (Y • Z) = (X • Y) • Z Teorema 2b: X + (Y + Z) = (X + Y) + Z Teorema 3 Leyes Idempotentes Teorema 3ª: X • X = X Teorema 3b: X + X = X Teorema 4 Leyes de las identidades Teorema 4ª: X • 1 = X Teorema 4b: X + 0 = X Teorema 5 Leyes de los elementos nulos Teorema 5ª: X • 0 = 0 Teorema 5b: X + 1 = 1 Teorema 6 Leyes de los complementos Teorema 6ª: X • X’ = 0 Teorema 6b: X + X’ = 1 Teorema 7 Leyes de absorción Teorema 7ª: X + X • Y = X Teorema 7b: X • (X + Y) = X Teorema 8 Leyes distributivas Teorema 8ª: X • (Y + Z) = (X • Y) + (X • Z) Teorema 8b: (X + Y) • (X + Z) = X + Y • Z Teorema 9 Ley de doble negación X’’ = X Teorema 10 Leyes de De Morgan Teorema 10ª: (Y + Z)’ = X’ • Y’ Teorema 10b: (X • Y)’ = X’ + Y’ Operaciones binarias Las operaciones básicas que se realizan en el álgebra booleana son NOT, AND y OR, a partir de ellas se derivan todas demás. La operación que realizan se muestran con la tabla de verdad que es un listado sistemático de todas las posibles combinaciones de los valores 0s y 1s de las variables, incluyendo las entradas y las salidas. Figura 1 Diagrama esquemático de las compuerta NOT, AND, OR, NAND y NOR Representación de las operaciones binarias con tablas de verdad Entradas Salidas a NOT a 0 1 1 0 Entradas Salida b a b AND a 0 0 0 0 1 1 1 0 1 0 0 1 Ejercicio 6 Se deja al lector implementar las tablas para las compuertas NAND y NOR Entradas Salida b a b OR a 0 0 0 0 1 1 1 0 1 1 1 1 2.2.3 Diagramas de Venn . La representación con diagramas de Venn es una ilustración grafica en base a la teoría de conjuntos, su aplicación para compuertas lógicas como NOT, AND, OR NAND o NOR es sencilla, pero no resulta practica en representaciones complejas por lo que no es muy común su uso. En el ejemplo 14 se muestran los esquemas de algunas aplicaciones. Ejemplo 14: Representación en diagramas de Veen de las operaciones binarias Q = X(X + Z) y X = XY + X 2.2.4 Compuertas lógicas. Una de las principales ventajas de utilizar el álgebra booleana radica en que las operaciones básicas AND, OR y NOT tienen un equivalente directo en términos de circuitos. Estos circuitos reciben el nombre de compuertas lógicas . Las tres compuertas fundamentales reciben el mismo nombre que los operadores, es decir, existen las compuertas AND, compuertas OR y compuertas NOT. La última compuerta recibe el nombre más usual de inversor. En la figura 1 mostramos los símbolos, tanto tradicionales como internacionales, aunque usaremos preferentemente los símbolos tradicionales. Con estas tres compuertas se puede implementar cualquier circuito lógico, pero así mismo existen otras compuertas que resultan de la combinación de una compuerta AND con un inversor que se denomina NAND y la compuerta OR con un inversor que se denomina NOR. En la figura 3.1 Se muestran los símbolos tradicionales. Es posible demostrar que con únicamente un tipo de compuertas ya sea NAND o NOR se puede implementar cualquier función lógica. Así Una compuerta es universal si con solo este tipo de compuerta se puede implementar cualquier función lógica. Ejemplo 15.- Expresar solamente con compuertas NAND la expresión Q = A’B + AB’ Solucion .- Conviene negar dos veces la exprecion Q, esto es: Q = Q’’ = [ (A’B + AB’)’]’ = [ (A’B)’ (AB’)’]’ En donde podemos visualizar las compuertas NAND, (A’B)’ e (AB’)’ para finalmente efectuar el contenido de [ ]’ con otra compuerta. Ejercicio 4 .-Se deja al lector hacer el diagrama esquemático para el ejemplo 15 Ejemplo 16 Expresar solamente con compuertas NOR la expresión Q = A’B + AB’ Solución: Conviene negar dos veces a Q, esto es: Q = Q’’ = [ (A’B + AB’)’]’ En donde podemos visualizar que (A’B + AB’)’ es una compuerta NOR y teniendo presente los teoremas de D’morgan (x +y)’ = x’ + y’ , (xy)’ = x’ +y’, es fácil ver que A’B también se puede representar con una compuerta NOR lo mismo que AB’ Ejercicio 5 .-Se deja al lector hacer el diagrama esquemático para el ejemplo 16 Dentro de las compuertas, que no implementan un operador directo, se encuentra la conocida como OR-exclusiva o XOR. Esta compuerta muestra la siguiente funcionalidad: Y = A'·B + A·B'. La importancia radica en su amplio uso en la aritmética binaria, siendo la base de la suma. También es muy usada en los circuitos de detección y corrección de errores, implementando funciones de comparación y paridad. El sumador completo, su símbolo y tabla de combinaciones se muestran en la figura 2 Ejemplo 17 Diagrama esquemático de un sumador completo Entradas aCarreo C Suma S X Y Z C S 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Tabla de verdad para un sumador completo de 3 bit Las operaciones binarias NOT, AND, OR NAND, NOR y EXOR y sus posibles combinaciones o arreglos se fabrican con el nombre de compuertas lógicas y de acuerdo con su tecnología se identifican en dos grandes familias, la familia TTL (Transistor Transistor Logic) y la familia CMOS (Complementary MOS) Semiconductores a base de oxido y metal. La familia TTL se caracteriza porque se maneja un voltaje de alimentación de 5.1 V y corriente promedio del orden de los 10 mmA. Como característica importante es que se pueden manipular manualmente sin ninguna precaución. La Familia CMOS tiene un voltaje de operación de 3.2 V y consume una corriente promedio de 10 nanoA. Y se debe de tener la precaución para manipularlas de usar ropa de algodón y usar una pulsera conectada a potencial de tierra a fin de evitar descargas eléctricas que pueden destruir la compuerta dada la poca corriente que soportan. En la unidad V se presenta un estudio de las familias de compuertas con mayor detalle. 2.2.5 Aplicación de teoremas del álgebra booleana. La razón principal de esta álgebra y sus teoremas es su aplicación en la simplificación de expresiones y funciones booleanas. Al igual que en el álgebra ordinaria una función booleana puede escribirse de varias formas. Así mismo tiene sentido económico y de confiabilidad reducir una función booleana, ya que una forma sencilla conduce a sistemas más elementales. 2.3 Funciones lógicas. Un circuito lógico combinatorio es un conjunto de compuertas lógicas interconectadas entre si, a fin de llevar a cabo una determinada función, su salida depende únicamente del valor lógico de las entradas. El resultado de diseñar un circuito lógico deberá ser el obtener una función lógica o ecuación que describan la función de salida deseada, efectuada por operaciones lógicas, esto se ilustrara con el siguientes ejemplo: Ejemplo 18. Diseñar el circuito lógico combinatorio para un granjero que tiene una cabra, un granero y que ronda el lugar un lobo, el granjero desea construir un circuito que se alarme en cualquier situación de peligro, aceptar que se tienen sensores para cabra suelta, lobo rondando y para granero abierto. Solución: Realizaremos el diseño en 4 pasos 1º.- Definir el problema. El circuito tendrá 3 entradas C, G, y L , con una salida Falarma la cual tendrá valor 1 cuando exista situación de peligro ya sea porque la cabra se pueda comer el grano o el lobo se coma la cabra. Se define a C, G y L como sigue: Sea cabra = C, → C=0 cabra en corral, C = 1 cabra suelta granero = G, → G=0 granero cerrado, lobo = L, → L=0 lobo no esta, C = 1 granero abierto C = 1 lobo rondando 2º.- Se propone la tabla de verdad, entendida como la relación de valores binarios que existe entre las entradas respecto a la función de salida, y que de solución al problema: Entradas Salida minitermino C G L Falarma 0 0 0 0 m0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 1 m1 m2 m3 m4 m5 m6 m7 Se pone a 1 la posición m5 porque de la lectura de las entradas se desprende que la Cabra anda suelta y el Lobo ronda el lugar, Se pone a 1 la posición m 6 porque la Cabra anda suelta y Granero esta abierto, finalmente se pone a 1 la posición m7 por la posición obvia de peligro. 3º.- Se obtienen la función lógica o ecuación que describe la salida, la cual se establece para cuando los valores de la función de salida F alarma son 1 Aquí conviene hacer las siguientes observaciones; Se define minitermino cero = m0 = C’G’L’ = que es la combinación de entradas 0 0 0 , minitermino uno =m1= C’G’L = que es la combinación de entradas 0 0 1 y así sucesivamente para cada una de las combinaciones de entrada. En este ejemplo la función lógica o ecuación que describe la salida deseada, que suene la alarma en caso de peligro, será la suma de los miniterminos m5, m6, y m7 Se define como lógica positiva el tomar los valores lógicos 1 para formar la ecuación. Falarma = m5+ m6+ m7 = C G’ L + C G L’ + C G L Al formato de esta función Falarma se le denomina suma de miniterminos o suma de productos 4º.- Finalmente se dibuja el diagrama lógico de compuertas. Para hacerlo se requieren 3 compuertas AND de tres entradas y una compurta OR de dos entradas Se deja al lector dibujar el diagrama esquemático. El analizar una circuito lógico tiene como propósito obtener el conjunto de funciones lógicas o ecuaciones que describen las operaciones booleanas que lleva a cabo el circuito, esto lo explicaremos con el siguiente ejemplo. Ejemplo 19 Analizar el circuito lógico mostrado y describir las funciones lógicas o ecuaciones que describen las operaciones booleanas que lleva a cabo para dar las salidas S y C. Solución en la primera compuerta AND tenemos xy’ , para la segunda AND compuerta x’y finalmente en la compuerta OR tenemos (xy’ + x’y) = S Para C tendremos C = xy 2.3.1 ARITMETICA DE FUNCIONES Como ya se dijo resulta de particular importancia el reducir o simplificar las funciones lógicas por el aspecto de costo, pues entre menos compuertas mas económico, pero también entre mas sencillo sea un circuito su desempeño resulta mas confiable y será más fácil de construir. Un método de cómo simplificar funciones requiere de aplicar una estrategia para hacerlo, se propone básicamente : Tratar de aplicar los postulados X+X’=1 , X+1=1 , X+X =X pues de esta forma se podrán reducir términos. Por observación identificar los términos que contengan variables como X , X’ y que se puedan agrupar por factorización, es decir la propiedad distributiva de la multiplicación respecto a la suma. Estar atentos en la aplicación de otros teoremas, como X+XY=X Tener mucho cuidado en la aplicación de los teoremas de D’morgan, recordar que los términos se niegan y el operador + (suma) cambia a • (multiplicación) y viceversa. Esto se explica con los ejemplos siguientes: Ejemplo 20. Reducir aplicando álgebra de boole la funciónalarma obtenida en el ejemplo 14 y mostrar un diagrama esquemático de las funciones original y simplificada Falarma = m5+ m6+ m7 = C G’ L + C G L’ + C G L Solución: Se observa que los miniterminos (m5 , m7 ) y (m6 , m7) se pueden factorizar, para sacar aprovecho de que tienen términos con variables complementarias, esto es m5 tiene a G y m7 tiene a G’ lo mismo para m6 y m7 que tienen a L y L’ respectivamente. Falarma = m5+ m6+ m7 = C G’ L + C G L’ + C G L + C G L = (C G’ L + C G L) + (C G L + C G L’) = C L(G’+G) + CG(L+L’) = C L(1) + CG(1) = CL+CG se deja al lector que identifique cuales postulados o teoremas se aplicaron en cada paso Ejemplo 21 Simplifique las funciones booleanas al menor numero de literales: 1.- x(x’ + y) + xyz = xx’ + xy + xyz = 0 + xy +xyz = xy + xyz = xy 2.- xy + x’z + yz = xy + x’z + yz(1) = xy + x’z + yz(x + x’) = xy +x’z + yzx +yzx’ =xy + x’z + xyz + x’yz = xy(1+z) + x’z(1+y) = xy + x’z 3.- (x + y)(x +y’) = xx +xy’ +xy + yy’ = x + xy +xy’ + 0 = x se deja al lector que identifique cuales postulados o teoremas se aplicaron en cada paso El complemento de una función F es F’ y su valor ,se obtiene intercambiando ceros por unos y unos por ceros, pero cuando la función se expresa con términos, el complemento se encuentra algebraicamente aplicando los teoremas de Dmorgan que es conveniente leerlos asi: (x+y)’= x’y’ El complemento de la suma de dos términos es igual a el primer termino negado por el segundo termino negado. (xy)’ = x’ + y’ El complemento de un producto de términos es igual a la suma del primer termino negado + el segundo termino negado Ejemplo 22 Obtener el complemento de las funciónes F = x’yz’ + x’y’z y Q=x(y’z’+yz) aplicando los teoremas de D’morgan tantas veces como sea necesario F’ = (x’yz’ + x’y’z)’ = (x’yz’)’ (x’y’z)’ = (x+y’+z)( x+y+z’) Q’ = [x(y’z’+yz) ]’ = x’ + (y’z’+yz)’ = x’ + (y’z’)’(yz)’= = x’ + (y+z)(y’+z’) Un procedimiento mas sencillo para obtener el complemento de una función es aplicar el principio de dualidad que estable que toda expresión algebraica que pueda deducirse de los postulados del álgebra booleana seguirá siendo valida si se intercambian los operadores y los elementos de identidad. Si se quiere obtener el dual de una función simplemente se intercambian los operadores OR y AND y se sustituyen los unos por ceros y los ceros por unos. Para obtener el complemento de una función se intercambian los operadores OR y AND y se complementa cada literal. Ejemplo 23 Aplicando el principio de dualidad, obtener el complemento de las funciónes: (a).- F = x’yz’ + x’y’z (b).- Q = x(y’z’+yz) F’ = (x’yz’ + x’y’z)’ = (x+y’+z)(x+y+z’) (b).- Q’ = [x(y’z’+yz) ]’ = x’ + (y+z)(y’+z’) Ejemplo 24 Aplicar los teoremas de De Morgan a las expresiones: (a).- [(A+B)’+c’]’ (b).- [ (A’+B) + CD]’ (c).- [(A+B)C’D’+E+F’]’ Solucion.(a) [(A+B)’+C’]’ = (A+B)’’C’’= (A+B)C (b) [ (A’+B) + CD]’ =(A’+B)’(CD)’= AB’(C’+D’) (c).- [(A+B)C’D’+E+F’]’= [(A+B)C’D’]’(E+F’)’= [(A+B)’+(C’D’)’](E’F) =(A’B’+C+D)E’F 2.3.2 Tablas de verdad. Todas las expresiones booleanas pueden ser convertidas a tablas de verdad utilizando los valores binarios de cada término de la expresión. La tabla de verdad es un formato muy común y conciso para expresar el funcionamiento lógico de un circuito pues es cómodo para ver el valor de las entradas y el valor de salida resultante en función de los miniterminos, a partir de la tabla se puede generar la ecuación que define el comportamiento del circuito, como ya se hizo presente en el ejemplo 18. Su aplicación resulta lenta en su desarrollo, pero es fácil de implementar tanto para analizar un circuito como para su diseño. Ejemplo 25 Desarrollar una tabla de verdad para la expresión F = a’b’c +abc’ + abc Solución. De la expresión algebraica podemos observar que la función F la podemos expresar con miniterminos como F = m001 + m110 + m111 = m1 + m6 + m7 por lo que la tabla de verdad es Entradas Salida minitermino a b c F 0 0 0 0 m0 0 0 1 1 m1 0 1 0 0 m2 0 1 1 0 m3 1 0 0 0 m4 1 0 1 0 m5 1 1 0 1 m6 1 1 1 1 m7 Tabla de verdad de F = a’b’c +abc’ + abc = m1 + m6 + m7 Ejemplo 26. Representar en tabla de verdad la función lógica QBA = B’A + B A’ Solución. Expresamos la función Q en miniterminos, esto es QBA= m01+ m10 = m1+ m2 EENTRADAS B A 0 0 0 1 1 0 1 1 QBA minitermino 0 1 1 0 m0 m1 m2 m3 Tabla de verdad de QBA = B’A + B A’= m1 + m2 Ejemplo 27. Representar en tabla de verdad la función lógica QDCBA = B’A + DCB+D’B’A Solución. Acompletamos con X las variables faltantes en la función , esto es: QDCBA = XXB’A + DCBX + D’XB’A Observar que las literales deben de estár ordenadas en cada termino, en este caso el orden es DCBA En la tabla de verdad valoramos cada termino por separado, ponemos 1 para las entradas XX01 que corresponde con XXB’A, 111X →DCBX y finalmente 0X01→ D’XB’A ENTRADAS OPERACIONES FUNCIÓN DE PARCIALES SALIDA D C B A B’A DCB D’B’A Q=B’A+DCB+D’B’A 0 0 0 0 0 0 0 1 1 1 1 m1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 m5 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 m9 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 m13 1 1 1 0 1 1 m14 1 1 1 1 1 1 m15 Tabla de verdad de QDCBA = B’A + DCB+D’B’A= m1+m5+m9+m13+m14+m15 Observación.- Se dejo en blanco las demás casillas para darle claridad a la tabla, pero se debería haber puesto 0 en cada una de estas. Ejemplo 28.- Desarrollar una tabla de verdad para la expresión F = (AB + AC)’ + A’B’C Solución.- En la tabla primero valoramos cada termino por separado (operaciones parciales) y al ultimo la función (salida) ya integrada: ENTRADAS OPERACIONES PARCIALES SALIDA A B C AB AC (AB+AC) (AB+AC)’ A’B’C F = (AB + AC)’ + A’B’C 0 0 0 1 1 mini m0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 m1 m2 m3 m4 m5 m6 m7 Tabla de verdad de F = = (AB + AC)’ + A’B’C = m0+m1 + m2 + m3+ m4 Ejemplo 29.- Diseñar, usando tabla de verdad, un circuito lógico con tres variables de entrada X; Y; Z que a su salida de el valor en complemento a 2 de la entrada. Solucion: ENTRADAS X 0 0 0 0 1 1 1 1 Y 0 0 1 1 0 0 1 1 Z 0 1 0 1 0 1 0 1 SALIDA COMPLEMENTO A 2 XC2 YC2 ZC2 0 0 0 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 1 m0 m1 m2 m3 m4 m5 m6 m7 Tabla que muestra el complemento a dos de las entradas El circuito tendrá tres salidas de la siguiente forma XC2 = m1+m2+m3+m4= X’Y’Z+X’YZ’+X’YZ+XY’Z’ YC2 = m1+m2+m5+m6= X’Y’Z+X’YZ’+XY’Z+XYZ’ Zc2 = m1+m3+m5+m7= X’Y’Z+X’YZ+XY’Z+XYZ Ejemplo 30 Demuestre con tablas de verdad la validez de la siguiente identidad: QXYZ= X’Y’Z+X’YZ+XY’Z+XYZ = Z Entradas Salida minitermino X Y Z Qxyz 0 0 0 0 m0 0 0 1 1 m1 0 1 0 0 m2 0 1 1 1 m3 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 m4 m5 m6 m7 Tabla de verdad para QXYZ= X’Y’Z+X’YZ+XY’Z+XYZ = Z En la tabla se puede observar que las columnas para QXYZ y Z son iguales por lo tanto la igualdad es VERDADERA 2.3.3 Soluciones gráficas. La simplificación de circuitos lógicos por métodos gráficos se puede realizar con diagramas de Venn pero como ya se dijo en el apartado 2.2.3 no resulta practica su uso en representaciones complejas por lo que no es muy común su empleo. La otra solución grafica es por mapas de karnaugh la cual resulta de fácil aplicación para expresiones de hasta 4 variables, para 5 variables o mas es conveniente usar métodos computacionales como por ejemplo la implementación del algoritmo de Quine – McCluskey, los interesados pueden ver el libro de John F. Wakerly, Diseño Digital, · Prentice Hall, 3ra Edicion, pag.236. En este libro el autor presenta un programa en lenguaje C para este algoritmo. 2.3.3 Diagramas o mapas de Karnaugh- Simplificación Un mapas de Karnaugh es una representación de los miniterminos que proporciona un método sistemático de simplificación, que genera las expresiones suma de productos y productos de suma más simples posibles. El mapa es similar a una tabla de verdad ya que muestra todos los posibles valores de las variables de entrada y la salida que resulta para cada valor. Su aplicación se ilustra fácilmente con los siguientes ejemplos, se muestra su empleo para 2, 3, y 4 variables. Mapa de Karnaugh para dos variables. El mapa de dos variables es un conjunto de 4 celdas, con todas las combinaciones posibles de la siguiente forma El mapa de tres variables es un conjunto de 8 celdas, con todas las combinaciones posibles de la siguiente forma El mapa de cuatro variables es un conjunto de 16 celdas, con todas las combinaciones posibles de la siguiente forma Su aplicación se explica con los siguientes ejemplos Ejemplo 31 Reducir las expresiones a) f = xy y b) Q = xy’ +x’y + xy Solución a) se representa en el mapa como un 1 en la posición indicada, no tiene reduccion puesto que es un solo termino. Solucion para b) Se represntan los 1 en la casilla correspondiente, se pueden hacer grupos de 2 . Se observa que el par de 1 horizontal acupa el dominio de x y que el par de 1 vertical el dominio de y por lo que la expresión queda Q=x+y Ejemplo 32 a) Simplificar la expresión F(x,y,z) = ∑(0,2,4,5,6) Solución Se anotan los 1 en la casilla correspondiente al minitermino indicado, se agrupan los 1 en múltiplo exponencial de 2, esto es 2, 4, 8, 16,.. 2 n para este ejemplo como se indica en el diagrama. Se obserba el dominio que ocupa y se hace la anotacion. Se agrupan los cuatro miniterminos verticales y se observa que ocupa el dominio de z’ , y dos miniterminos horizontales estan en el dominio de xy’ por lo que la exprecion reducuda queda: F = z’ +xy’ b) Simplificar la expresión Q + x’yz +xyz +xyz’ + xy’z’ Solucion: En el mapa de 3 variables se anotan los 1 en la casilla correspondiente y se agrupan términos adyacentes en multiplos exponenciales de 2. ver figura se observa que dominios ocupan. Quedando la reduccion como Q = yz + xz’ Ejemplo 33 a) simplificar la expresión Booleana F(w, x,y,z) = ∑(0,1,2,4,5,6,8,9,12,13,14)) Solución: En un mapa de 4 variables se anotan los 1 en la casilla del minitermino correspondiente, se agrupan los terminosadyacentes en multiplos exponenciales de 2 , entre mas términos mayor es la reduccion, ver figura del ejemplo, se han formado tres grupos, uno de 4 términos en la parte superior, otro tambien de 4 termninos en la parte media y un tercero de 8 términos en la parte izquierda. Observando los dominios que ocupan se tiene: F = y’ +w’z’ +xz’ b) simplificar la expresión Booleana Q = A’B’C’ + B’CD’ + A’BCD’ AB’C’ Solución: Primero se debe de acompletar los miniterminos, esto es: Q = A’B’C’(D + D’) +’BCD’(A +A’) +A’BCD’ + AB’C’(D +D’) = A’B’C’D + A’B’C’D’ +’BCD’A +’BCD’A’ +A’BCD’ + AB’C’D + AB’C’D’) = ∑(0,1,2,6,8,9,10)) y se sigue el procedimiento ya descrito en apartado a). Q = B’D’ +B’C’ +A’CD’