ELO211: Sistemas Digitales Tomás Arredondo Vidal Este material está basado en: ❒ textos y material de apoyo: Contemporary Logic Design 1st / 2nd edition. Gaetano Borriello and Randy Katz. Prentice Hall, 1994, 2005 ❒ material del curso ELO211 del Prof. Leopoldo Silva ❒ material en el sitio http://es.wikipedia.org 2: Funciones booleanas 1 2-Funciones y representaciones booleanas 2.1 Lógica y álgebra de Boole 2.2 Funciones booleanas 2.3 Representaciones de funciones booleanas 2.4 Funciones de varias variables 2: Funciones booleanas 2 Lógica Booleana ❒ Definiciones básicas ❍ Una variable booleana (e.g. x, y) es un símbolo que puede ser substituido por un elemento del conjunto B={0,1} ❍ Una constante booleana es un valor perteneciente al conjunto {0,1} ❍ Una expresión (e.g. x+y, x·y, x’) esta compuesta de variables, constantes y operadores (e.g. +, ·, ’) ❍ Una función booleana de n variables f(x1, x2, ..., xn) es un expresión o formula que mapea f a un valor del conjunto booleano B (0 o 1) ❍ Un literal es una variable o su complemento 2: Funciones booleanas 3 Álgebra de Boole ❒ Definición: el álgebra de Boole es un sistema algebraico cerrado que contiene: un conjunto de dos elementos {0, 1}, ❍ dos operadores binarios {+, ·}, ❍ un operador unitario { ‘ }. ❍ 2: Funciones booleanas 4 Lógica y álgebra de Boole ❒ El álgebra de Boole es la fundación matemática de los sistemas digitales. ❒ Las operaciones del álgebra de Boole deben regirse por propiedades y reglas lógicas llamados leyes o postulados. ❒ Estos postulados se pueden usar para demostrar leyes mas generales sobre expresiones booleanas. ❒ Estos postulados también se usan para simplificar y optimizar expresiones booleanas y sistemas digitales. ❍ Ejemplo: X AND (Y OR Y’) = X (¿porque?) 2: Funciones booleanas 5 Álgebra de Boole ❒ Una expresión algebraica de Boole consiste de ❍ ❍ ❍ un conjunto de B operaciones binarias { + , • } una operaciones unitaria { ’ } ❒ B tiene dos elementos : a, b y los siguientes postulados se cumplen: Clausura: a + b esta en B, a • b esta en B Conmutatividad: a + b = b + a, Asociatividad: a + (b + c) = (a + b) + c a • (b • c) = (a • b) • c Identidad: a + 0 = a, Distributividad: a + (b • c) = (a + b) • (a + c) a • (b + c) = (a • b) + (a • c) Complementariedad: a + a’ = 1, a•b=b•a a•1=a a • a’ = 0 2: Funciones booleanas 6 Álgebra de Boole: Resumen ❒ Álgebra de Boole B = {0, 1} ❍ variables ❍ + es el OR lógico, • es el AND lógico ❍ ’ es el NOT lógico ❒ Todos los postulados (axiomas) algebraicos se cumplen ❒ La prioridad de los operadores es ‘, seguido por AND y despues OR. ❒ El ‘ tiene la mayor prioridad. ❒ Los ( ) pueden cambiar el orden de evaluación. ❍ 2: Funciones booleanas 7 Álgebra de Boole: Teoremas ❒ Con la formulación de los postulados del álgebra de Boole se pueden demostrar varias proposiciones o teoremas de álgebra booleana ❒ Para las demostraciones de teoremas se pueden usar: tablas de verdad, ❍ postulados, ❍ y teoremas ya demostrados ❍ 2: Funciones booleanas 8 Álgebra de Boole: Teoremas ❒ Definición: El álgebra de boole es un sistema algebraico cerrado que contiene un conjunto B de dos elementos {0,1} y tres operadores {·, +, ‘}. ❒ igualdad: Dos expresiones son iguales si una puede ser substituida por otra. ❒ identidad: 1. X + 0 = X 1D. X • 1 = X ❒ nulo (elementos únicos): 2. X + 1 = 1 2D. X • 0 = 0 ❒ idempotencia: 3. X + X = X 3D. X • X = X ❒ involución: 4. (X’)’ = X ❒ complementariedad: 5. X + X’ = 1 5D. X • X’ = 0 2: Funciones booleanas 9 Álgebra de Boole: Teoremas ❒ ❒ ❒ ❒ ❒ conmutatividad: 6. X + Y = Y + X asociatividad: 7. (X + Y) + Z = X + (Y + Z) distributividad: 8. X • (Y + Z) = (X • Y) + (X • Z) unificación (fusión): 9. X • Y + X • Y’ = X absorción: 10. X + X • Y = X 11. (X + Y’) • Y = X • Y ❒ factorizar: 12. (X + Y) • (X’ + Z) = X • Z + X’ • Y ❒ consenso: 13. (X • Y) + (Y • Z) + (X’ • Z) = X • Y + X’ • Z 6D. X • Y = Y • X 7D. (X • Y) • Z = X • (Y • Z) 8D. X + (Y • Z) = (X + Y) • (X + Z) 9D. (X + Y) • (X + Y’) = X 10D. X • (X + Y) = X 11D. (X • Y’) + Y = X + Y 12D. X • Y + X’ • Z = (X + Z) • (X’ + Y) 13D. (X + Y) • (Y + Z) • (X’ + Z) = (X + Y) • (X’ + Z) 2: Funciones booleanas 10 Álgebra de Boole: Teoremas ❒ de Morgan: 14. (X + Y + ...)’ = X’ • Y’ • ...14D. (X • Y • ...)’ = X’ + Y’ + ... ❒ de Morgan generalizado: 15. f’(X1,X2,...,Xn,0,1,+,•) = f(X1’,X2’,...,Xn’,1,0,•,+) establece relaciones entre • y + 2: Funciones booleanas 11 Álgebra de Boole: Teoremas ❒ Ejemplo: de Morgan: X 0 0 1 1 Y 0 1 0 1 X’ 1 1 0 0 Y’ 1 0 1 0 (X + Y)’ 1 0 0 0 (X’ • Y’) 1 0 0 0 X 0 (X • Y)’ = (X’ + Y’) 0 NAND es equivalente a OR 1 con inputs complementados 1 Y 0 1 0 1 X’ 1 1 0 0 Y’ 1 0 1 0 (X • Y)’ 1 1 1 0 (X’ + Y’) 1 1 1 0 (X + Y)’ = (X’ • Y’) NOR es equivalente a AND con inputs complementados 2: Funciones booleanas 12 Álgebra de Boole: Teoremas ❒ Dualidad ❍ el dual de una expresión booleana se puede obtener remplazando ❍ • por +, + por •, 0 por 1, y 1 por 0, y dejando las variables sin cambio ❍ cualquier teorema demostrado también esta demostrado para su dual! ❍ un meta-teorema (teorema sobre teoremas) ❒ Dualidad: 16. X + Y + ... ⇔ X • Y • ... ❒ Dualidad generalizado: 17. f (X1,X2,...,Xn,0,1,+,•) ⇔ f(X1,X2,...,Xn,1,0,•,+) ❍ diferente que ley de De Morgan’s ❍ no es una manera para manipular (cambiar) expresiones sino para generar otros teoremas que también son verdaderos ❍ Ej: El dual del teorema X + 0 = X o (X + 0 = X)D es X • 1 = X 2: Funciones booleanas 13 Álgebra de Boole: Teoremas ❒ Actividad: ❍ Demuestre este teorema: X • Y + X • Y’ igualdad distributividad (8) complementariedad (5) identidad (1D) ❍ Demuestre este teorema : igualdad identidad (1D) distributividad (8) nulo (2) identidad (1D) X • Y + X • Y’ = X = = = = X X X X X+X•Y = X X + X•Y = = = = = X X X X X • Y + X • Y’ • (Y + Y’) • (1) ➼ + X•Y •1 + X•Y • (1 + Y) • (1) ➼ 2: Funciones booleanas 14 Actividad: Álgebra de Boole Demuestre lo siguiente usando álgebra booleana: (X • Y) + (Y • Z) + (X’ • Z) = X • Y + X’ • Z igualdad absorción (10) conmutatividad (6) conmutatividad (6D) distributividad (8) complementariedad (5) identidad (1D) conmutatividad (6) X Y + X’ Z = = = = = = = = X Y + X’ Z (X Y + X Y Z) + (X’ Z + X’ Z Y) X Y + X’ Z + X Y Z + X’ Z Y X Y + X’ Z + X Y Z + X’ Y Z X Y + X’ Z + (X + X’) Y Z X Y + X’ Z + (1) Y Z X Y + X’ Z + Y Z X Y + Y Z + X’ Z ➼ 2: Funciones booleanas 15 2-Funciones y representaciones booleanas 2.1 Lógica y álgebra de Boole 2.2 Funciones booleanas 2.3 Representaciones de funciones booleanas 2.4 Funciones de varias variables 2: Funciones booleanas 16 Funciones booleanas ❒ Espacios y funciones booleanas Si se define un espacio booleano como B={0,1} ❍ Usando el producto cartesiano se puede definir B2 = {0,1} x {0,1} = {(00), (01), (10), (11)} ❍ Para X = (X1, X2) podemos definir una función booleana f de dos variables según: f(X): B2 → B, cada punto de B2 se mapea a B ❍ Para n variables booleanas con X = (X1, X2, ... Xn) se puede definir una función booleana f de n variables según: f(X): Bn → B, cada punto de Bn se mapea a B ❍ La función booleana puede tomar valores de 1 o 0 dependiendo de los valores de sus variables ❍ 2: Funciones booleanas 17 Funciones booleanas ❒ Espacios y funciones booleanas El conjunto uno (on set) de f, puede definirse como los puntos X de Bn que se mapean a 1. f1 : {X | f(X) = 1} ❍ El conjunto zero (off set) de f puede definirse como los puntos X de Bn que se mapean a 0. f0 : {X | f(X) = 0} ❍ Si el conjunto f1 = Bn se dice que f es una tautología. ❍ Si el conjunto f0 = Bn se dice que f0 es vacío y no es satisfacible. ❍ 2: Funciones booleanas 18 Funciones booleanas: tautología De: http://es.wikipedia.org/wiki/tautología ❒ En lógica, una tautología es una formula preposicional que es verdad bajo cualquier evaluación de sus variables. ❒ En lingüística, una tautología es una redundancia debida a una calificación superflua o de lógica circular (e.g. "innovación novedosa", "mundo mundial“, "Le voy a entregar un obsequio gratis“, "El 100% de nuestros clientes compran nuestros productos“). ❒ Las matemáticas pueden ser consideradas como la ciencia de hacer tautologías particularmente elaboradas de una forma rigurosa. Un teorema es un ejemplo de tautología útil. 2: Funciones booleanas 19 Funciones booleanas ❒ Espacios y funciones booleanas Una función f es satisfacible cuando existe un elemento en el conjunto de f que es uno. ❍ Dos funciones son equivalentes si para todo X є Bn se tiene que: f(X) = g(X) ❍ 2: Funciones booleanas 20 2-Funciones y representaciones booleanas 2.1 Lógica y álgebra de Boole 2.2 Funciones booleanas 2.3 Representaciones de funciones booleanas 2.4 Funciones de varias variables 2: Funciones booleanas 21 Representaciones ❒ Las funciones booleanas se pueden describir de variadas formas incluyendo: álgebra booleana ❍ tablas de verdad, ❍ diagramas de compuertas, ❍ diagramas temporales, ❍ diagramas de Venn, ❍ mapas de Karnaugh, ❍ N-cubos, ❍ lenguajes de descripción de hardware (HDL: Hardware description languages) como Verilog o VHDL ❍ Por verse! 2: Funciones booleanas 22 Representaciones: álgebra booleana ❒ Las funciones booleanas se pueden describir con una expresión de álgebra booleana. Ejemplo: f(X, Y, Z) = XY + X’Z + XZ’ ❒ La función puede evaluarse para las diferentes combinaciones de valores que tomen las variables. ❒ Existen infinitas representaciones equivalentes de una función a través de expresiones. ❒ El problema de síntesis lógica consiste en encontrar la mejor expresión para representar una función. 2: Funciones booleanas 23 Representaciones: tabla de verdad ❒ Las funciones booleanas también se pueden representar como una tabla de verdad. ❒ La tabla de verdad despliega todas las combinaciones de valores de las variables y el valor asociado de la función. 2: Funciones booleanas 24 Representaciones ❒ Ejemplos: tablas de verdad X 0 0 1 1 Y 0 1 0 1 X•Y 0 0 0 1 X 0 0 1 1 Y 0 1 0 1 X’ 1 1 0 0 Y’ 1 0 1 0 X 0 0 1 1 X•Y 0 0 0 1 Y 0 1 0 1 X’ • Y’ 1 0 0 0 X’ 1 1 0 0 X’ • Y 0 1 0 0 ( X • Y ) + ( X’ • Y’ ) 1 0 ( X • Y ) + ( X’ • Y’ ) 0 1 ≡ X=Y Expresión booleana que es verdadera cuando X e Y son iguales y falso de otra forma 2: Funciones booleanas 25 Representaciones • Las funciones booleanas también se pueden representar por diagramas compuestos de símbolos de compuertas. • Existen múltiples diagramas que pueden representar la misma función. • La ventaja de esta representación es que esta asociada a la implementación en un medio visual. • Los circuitos combinacionales contienen solo compuertas. • Los circuitos secuenciales contienen flip-flops y compuertas. 2: Funciones booleanas 26 Diagramas de compuertas ❒ NOT : X’, X, ~X ❒ AND: X•Y, XY, X∧Y ❒ OR: X+Y, X∨Y X X Y X Y X 0 1 Y Y 1 0 Z X 0 0 1 1 Y 0 1 0 1 Z 0 0 0 1 Z X 0 0 1 1 Y 0 1 0 1 Z 0 1 1 1 2: Funciones booleanas 27 Diagramas de compuertas ❒ NAND ❒ NOR ❒ XOR X⊕Y ❒ XNOR X=Y X Y X Y X Y X Y Z X 0 0 1 1 Y 0 1 0 1 Z 1 1 1 0 Z X 0 0 1 1 Y 0 1 0 1 Z 1 0 0 0 Z X 0 0 1 1 Y 0 1 0 1 Z 0 1 1 0 Z X 0 0 1 1 Y 0 1 0 1 Z 1 0 0 1 2: Funciones booleanas 28 Diagramas de compuertas ❒ Existe mas de una forma de mapear expresiones a compuertas ❍ e.g., Z = A’ • B’ • (C + D) = (A’ • (B’ • (C + D))) T2 T1 ❍ Como sería usando compuertas? A Z B C D T1 T2 A B Z C D 2: Funciones booleanas 29 Representaciones: diagrama temporal ❒ Un diagrama temporal es una representación de las formas de las ondas de entradas y salidas de los circuitos. ❒ Los bordes no se alinean exactamente (toma tiempo para que una compuerta cambie de output) 2: Funciones booleanas 30 Representaciones: diagrama temporal ❒ Las señales de ondas se pueden apreciar usando varias herramientas como: un simulador, usando un analizador lógico o un osciloscopio ❒ Retardos de propagación en compuertas pueden causar que las señales de entrada de otras compuertas en cascada tengan carreras ❒ Estas carreras pueden causar errores o perturbaciones (glitches) ❒ Los tiempos de propagación son acumulativos para compuertas en cascada 2: Funciones booleanas 31 Representaciones: diagrama temporal ❒ Ejemplo: y = x + x’ X’ Carrera en señales de entrada X Y Como seria la perturbación? t X X’ Y perturbación 2: Funciones booleanas 32 Representaciones: diagramas de Venn ❒ Los diagramas de Venn provienen de la rama de las matemáticas conocida como teoría de conjuntos. ❒ Estos diagramas son usados para mostrar gráficamente la relación entre diferentes conjuntos ❒ Son equivalentes a las tablas de verdad al mostrar todas las relaciones lógicas entre los conjuntos de interés ❒ Ejemplos: B A A·B (A + B)’ A+B (A + B)’ 2: Funciones booleanas 33 2-Funciones y representaciones booleanas 2.1 Lógica y álgebra de Boole 2.2 Funciones booleanas 2.3 Representaciones de funciones booleanas 2.4 Funciones de varias variables 2: Funciones booleanas 34 Funciones de n variables ❒ Si hay n variables la tabla de verdad tendrá 2n filas. Cada fila tiene como resultado un 0 o un 1. ❒ El numero de posibles funciones (que resultan en 0 o 1) crece rápidamente, en termino de n es: 22ⁿ ❒ n = 0 indica una función con 0 variables. X1 X2 F Xn 2: Funciones booleanas 35 Funciones de n variables ❒ Ejemplo: para n=2 se tienen 22ⁿ = 16 funciones X Y X 0 0 1 1 Y 0 1 0 1 f0 0 0 0 0 0 f1 0 0 0 1 f2 0 0 1 0 X XY f3 0 0 1 1 f4 0 1 0 0 Y F f5 0 1 0 1 f6 0 1 1 0 X xor Y f7 0 1 1 1 f8 1 0 0 0 f9 1 0 0 1 f10 1 0 1 0 X=Y f11 1 0 1 1 Y’ f12 1 1 0 0 f13 1 1 0 1 f14 1 1 1 0 f15 1 1 1 1 1 X’ X nand Y=(XY)’ X + Y X nor Y=(X + Y)’ ❒ Como son las funciones equivalentes a la tabla? ❒ f0=0, f1=XY, f2=XY’, f3=X, f4=X’Y, ..., f14=X’Y’ + X’Y + XY’= A’ + B’ = (AB)’, f15=1 2: Funciones booleanas 36 Conjuntos funcionalmente completos ❒ Cualquier expresión booleana puede ser escrita mediante los operadores AND, OR y NOT ❒ Estos conjuntos constituyen un conjunto funcionalmente completo 2: Funciones booleanas 37 Conjuntos funcionalmente completos ❒ La función NAND también es funcionalmente completa ya que puede implementar AND, OR y NOT: NAND(A,B) = AB ❍ NAND(A,A) = A ❍ NAND(A, B) = A+B ❍ 2: Funciones booleanas 38 Conjuntos funcionalmente completos ❒ La función NOR también es funcionalmente completa ya que puede implementar AND, OR y NOT: NOR(A, B) = A + B ❍ NOR(A,A) = A ❍ NOR(A, B) = AB ❍ ❒ Todas estas funciones se pueden generalizar a funciones de n variables 2: Funciones booleanas 39 Actividad: ❒ Determine la función de álgebra booleana para un sumador de un bit ❒ Inputs: A, B, Carry-in ❒ Outputs: Sum, Carry-out A B Cin Cout Cin A B A B A B A B A B S S S S S S Cout 2: Funciones booleanas 40 Actividad: A S B Cout Cin ❒ Determine la tabla de verdad y la función de álgebra booleana para un sumador de un bit ❒ Inputs: A, B, Carry-in ❒ Outputs: Sum, Carry-out A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 Cin Cout S 0 0 0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 1 1 Cout Cin A B A B A B A B A B S S S S S S = A’ B’ Cin + A’ B Cin’ + A B’ Cin’ + A B Cin Cout = A’ B Cin + A B’ Cin + A B Cin’ + A B Cin ❒ Como minimizar usando álgebra booleana? 2: Funciones booleanas 41 Minimizar ❒ Usando teoremas para minimizar el sumador Cout = = = = = = = = = = = = A’ B Cin + A B’ Cin + A B Cin’ + A B Cin A’ B Cin + A B’ Cin + A B Cin’ + A B Cin + A B Cin A’ B Cin + A B Cin + A B’ Cin + A B Cin’ + A B Cin (A’ + A) B Cin + A B’ Cin + A B Cin’ + A B Cin (1) B Cin + A B’ Cin + A B Cin’ + A B Cin B Cin + A B’ Cin + A B Cin’ + A B Cin + A B Cin B Cin + A B’ Cin + A B Cin + A B Cin’ + A B Cin B Cin + A (B’ + B) Cin + A B Cin’ + A B Cin B Cin + A (1) Cin + A B Cin’ + A B Cin B Cin + A Cin + A B (Cin’ + Cin) B Cin + A Cin + A B (1) sumar terminos para B Cin + A Cin + A B factorizar ❒ Cuales son los criterios de interés al minimizar? 2: Funciones booleanas 42 Minimizar ❒ Algunos criterios de interés al minimizar son: ❍ Criterios de reducción • Minimizar compuertas • Minimizar numero de entradas a las compuertas. Esto corresponde a minimizar el numero de literales y reduce el numero de transistores en cada compuerta (reduce el costo) • Disminuir el numero de niveles, esto aumenta la velocidad de respuesta del circuito implementando la función ❒ Siempre van a existir compromisos entre velocidad y tamaño. Se suele denominar compromiso tiempo-espacio. ❒ Diferentes implementaciones de la misma función tienen diferentes comportamientos: ❍ retardos son diferentes ❍ perturbaciones (glitches) pueden ocurrir ❍ otras variaciones por diferencias en el numero de compuertas y 2: Funciones booleanas estructura 43 Hay que elegir entre diferentes realizaciones de una función A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 Z 0 1 0 1 0 1 1 0 realización de dos niveles implementación multinivel compuertas con menos inputs compuerta XOR (fácil de dibujar pero mas costosa) 2: Funciones booleanas 44 Hay que elegir entre diferentes realizaciones de una función ❒ Las tres implementaciones anteriores son funcionalmente equivalentes pero tienen diferencias en su comportamiento 2: Funciones booleanas 45