UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO211 Sistemas Digitales Sistemas Digitales Contenidos: Sistemas Combinacionales. Sistemas Secuenciales: Asincrónicos. Sincrónicos. Lenguajes de Diseño Digital. Diseño de Máquinas. Dispositivos Lógicos Programables. Referencias Randy H. Katz. "Contemporary Logic Design". Addison Wesley. 1993. Ward & Halstead "Computation Structures". The Mit Press. 1999. Dally & Poulton "Digital Systems Engineering". Cambridge University Press. 2000. Herbert Taub. "Digital Circuits and Microprocessors". McGraw Hill. 1981. Ronald Tocci. "Sistemas Digitales. Principios y Aplicaciones". Prentice Hall. 1996. Dietmeyer D. "Logic Design of Digital Systems" Allyn & Bacon Inc. 1971. Hill F. & Peterson G. "Introduction to Switching Theory and Logical Design" John Wiley 1968. McCluskey E. "Introduction to the Theory of Switching Circuits" McGraw Hill 1965. Sistemas Combinacionales. Contenidos en detalle. 1. 2. 3. 4. 5. 6. 7. 8. 9. Algebra de Boole. Postulados. Diagramas de Venn. Teoremas. Funciones y Expresiones Booleanas. Circuitos de Conmutación. Símbolos. Interruptores, relés, diodos, transistores bipolares y CMOS. Manipulador de expresiones simbólicas(Mapple). Lenguaje de programación Abel. Formas Canónicas. Mintérminos. Maxtérminos. Expansión en Forma Canónica. Diseño lógico. Fan-in, fan-out, n-cubos. Mapas de Karnaugh (Código Gray, formas para 2, 3, 4 y 5 variables). Minimización Empleando Mapas. Implicantes Primos. Método de Quine. Método de Quine-McCluskey. Diseño: SSI, MSI. Uso de Rom. PLA. Perturbaciones. Diseño de Circuitos Combinacionales. Prof. Leopoldo Silva Bijit. 14-11-2015 1 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO211 Sistemas Digitales SISTEMAS COMBINACIONALES 1. ALGEBRA DE BOOLE En 1847, George Boole desarrolla el álgebra como análisis matemático. En 1938, Shannon emplea esta álgebra en circuitos de conmutación. Es una estructura algebraica consistente de: un conjunto de elementos(sea B el conjunto); dos operaciones binarias(sean + y , las operaciones); tales que se cumplen los axiomas de clausura, conmutatividad, asociatividad, distributividad, identidad y complementariedad. 1.1. Postulados P.1 Definición: El álgebra de Boole es un sistema algebraico cerrado que contiene un conjunto B de dos elementos, {0, 1}; y dos operadores {· , +}. Los operadores también suelen representarse según: {AND, OR}. La clausura implica que si a y b pertenecen a B, entonces: a·b y a+b también pertenecen a B. P.2 Dos expresiones son iguales si una puede ser substituida por la otra. P.3 Existen elementos únicos (0 y 1) en B tal que para cada a en B se tienen: a+0=a a·1 =a P.4 Conmutatividad. (a y b pertenecen a B) a+b=b+a a·b =b·a P.5 Asociatividad. (a , b y c pertenecen a B). a + (b + c) = (a + b) + c a · (b · c) = (a · b) · c P.6 Distributividad. (a , b y c pertenecen a B). a + (b · c) = (a + b) · (a + c) a · (b + c) = (a · b) + (a · c) Nótese que en la distribución para la suma en el producto, la expresión a la derecha es diferente de la empleada habitualmente para números reales y enteros. Prof. Leopoldo Silva Bijit. 14-11-2015 2 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO211 Sistemas Digitales P.7 Complementariedad. ( a pertenece a B) Existe complemento único de a que se representa por a’ y también por: a a + a’ = 1 a a’ = 0 Al complemento único de a lo representaremos, para facilitar su escritura según convenga, como: a', y también como: not a. El complemento podría haberse definido como un operador unario de la estructura algebraica. En el lenguaje C se emplea ~a para denotar el complemento; el operador and se anota & y el operador or emplea el símbolo |. Observar que, con la formulación de postulados, se pueden demostrar como teoremas las siguientes proposiciones: 10 0 1 a a Es decir, las igualdades anteriores no son postulados. Sobre las demostraciones de Teoremas. Cada paso en las demostraciones consiste en la aplicación de P.2, regla de sustitución, en conjunción con otros postulados o teoremas ya demostrados. Se agrega a cada línea, como comentario, el postulado usado. Teorema. Complemento de 1. Se tiene: a1=a ; P3 Elemento único 1. 01=0 ; P2 Sustitución de a por 0. (i) 10=0 ; P4 Conmutación del producto. Y también: a+0=a ; P3 Elemento único 0. (ii) 1+0=1 ; P2 Sustitución de a por 1. Por (i) y (ii) se tienen: 1+0=1 10=0 El postulado P7 para el complemento de uno es: 1 + 1’ = 1 1 1’ = 0 Empleando P2 puede sustituirse 0 por 1’. Se logra demostrar que: 1’ = 0 En forma similar puede demostrarse que el complemento de cero es uno: 0’ = 1 Prof. Leopoldo Silva Bijit. 14-11-2015 3 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO211 Sistemas Digitales Teorema de involución. a a Demostración: Si el complemento único de a’ es (a’)’. Por P7, debería cumplirse: a’ + (a’)’ = 1 a’ (a’)’ = 0 (i) Por P.7 se tienen: a + a’ = 1 a a’ = 0 Aplicando P4, a las dos últimas proposiciones, se tienen: a’ + a = 1 a’ a = 0 (ii) Comparando (i) y (ii), y empleando P2, se demuestra que puede substituirse (a’)’ por a. Notas: 1) No está definida la substracción. Ejemplo: AB AB A C AB AB BC No pueden cancelarseAB y AB. Notar que el operador and no suele escribirse entre las letras de las variables. 2) No está definida la división. Ejemplo: AB = AC no puede reducirse a B = C. 3) Expresiones aparentemente diferentes pueden ser idénticas. Ejemplo: AB + A B + AC = AB + A B + BC 4) A'B' (AB)' 1.2. Diagramas de Venn Si consideramos que el álgebra de conjuntos es un álgebra de Boole, en la que los conjuntos corresponden a los elementos, la intersección al AND, y la unión al OR; entonces las proposiciones del álgebra de Boole se pueden representar por diagramas de conjuntos. En los diagramas de Venn los conjuntos se muestran como áreas. El '1' es el conjunto universal, y el '0' es el conjunto vacío. Prof. Leopoldo Silva Bijit. 14-11-2015 4 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO211 Sistemas Digitales Los diagramas de Venn, permiten “visualizar” los postulados y teoremas. B A B A AB A+B (A+B)’ Unión A’B’ Intersección La figuras anteriores ilustran las operaciones de suma y producto lógico: La siguientes figuras ilustran el conjunto universal y el conjunto vacío. a a+0 a1 a’ 1.3. Dualidad Dada un expresión, la dual se obtiene reemplazando los operadores: + por · · por +, y las constantes: 1 por 0 0 por 1. y dejando las variables sin cambios. Es decir: si se tiene la función f(x1, x2, ..., xn, 0, 1, +, ); entonces la función dual puede describirse por: f(x1, x2, ..., xn, 1, 0, , +). Principio de dualidad: Si una expresión booleana es válida, también lo será la expresión dual. Observaciones: Los postulados 3 al 7 se muestran en parejas de expresiones duales. Los teoremas también pueden plantearse en forma dual. Nótese que una variable no se complementa para formar la expresión dual. Este es un teorema acerca de teoremas, y plantea que cualquier teorema que pueda ser demostrado, también podrá ser demostrado para la proposición dual. Ver una formulación matemática en Teorema 16. Prof. Leopoldo Silva Bijit. 14-11-2015 5 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO211 Sistemas Digitales Antes de obtener la expresión dual, conviene asociar los operandos con los operadores que les corrresponden, mediante el uso de paréntesis. AB + C debe interpretarse como: (AB) + C; en este caso, la expresión dual es: (A +B) C Si se determina directamente la expresión dual, mediante el procedimiento de cambiar el or por and y viceversa, se obtendría erróneamente: A + BC. 1.4. Teoremas T.8 Idempotencia. T.9 Unión con el Universo e Intersección con el vacío. a+1=1 a· 0=0 a+a=a a· a=a Demostración de la primera proposición. a = a ;P2 = a+0 ;P3 = a + ( a a’ ) ;P7 = ( a + a )( a + a’ ) ;P6 = (a+a)1 ;P7 = a+a ;P3 Demostración de la primera proposición: a +1 = a+1 ;P2 = a + a + a’ ;P7 = a + a’ ;T8 y P5 = 1 ;P7 T.10 Absorción. a + ab = a a·(a + b) = a Demostración de la primera proposición: a + ab = a + ab ; P.2 = a·1 + ab ; P.3 = a·(1 + b) ; P.6 = a·(b + 1) ; P.4 = a·1 ; T.9 = a ; P.3 Se absorbe b. T.11 Absorción del complemento. a ab a b a ( a b ) ab Demostración de la primera proposición: Prof. Leopoldo Silva Bijit. 14-11-2015 6 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO211 Sistemas Digitales a + a’b = a + a’b = ( a + a’ ) ( a + b ) = 1 ( a +b ) = ( a +b ) T.12 ;P2 ;P6 ;P7 ;P3 De Morgan. a b ab ab a b Demostración de la segunda proposición: Por P7 se tiene que si (ab)’ es el complemento único de ab, entonces: (ab) + (ab)’ = 1 T12.a (ab) (ab)’ = 0 Por otro lado tenemos: (ab)(a’ +b’) = ( ab )( a’+b’ ) ;P2 = aba’ + abb’ ;P6 = 0b + a0 ;P4, P7 y P5 = 0+0 ;T9 = 0 ;P3 T12.b También tenemos que: (ab) + (a’ +b’) = (ab) + (a’ + b’) ;P2 = (a' + b') + (ab) ; P4 = ((a’ +b’) + a)((a’ +b’) + b) ;P6 = ((a +a') + b')( a' + (b + b')) ;P4 y P5 = ( 1 +b’)(a’ +1) ;P7 = (1)(1) ;T9 = 1 ;P3 T12.c Entonces de T12.a, T12.b y T12.c, y empleando P2, se logra: (ab)’ = (a’ + b’) Generalización de De Morgan: f ’(x1, x2, ..., xn, 0, 1, +, ) = f(x1’, x2’, ..., xn’, 1, 0, , +) Ver Teorema 16. T.13 Consenso. ab a c bc ab a c (a b)(a c)(b c) (a b)(a c) bc es el término de consenso entre ab y a'c. T.14 Fusión. ab ab a (a b)(a b) a Prof. Leopoldo Silva Bijit. 14-11-2015 7 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO211 Sistemas Digitales T.15 Factorización ab ac (a c)(a b) (a b)(a c) ac a b Un caso más general del T.15b es el siguiente. (Ca1 Co1)(Ca1 Co 2) Ca1 Co 2 Ca1 Co1 Donde se han empleado los siguientes mnemónicos para las variables: Ca por cabeza y Co por cola. Los teoremas más frecuentemente empleados son: T.8, T.9, T.10, y T.12. 1.4.2.- Visualización de teoremas mediante diagramas de Venn. Ejemplo: T.13: ab a c bc ab a c a a b ab b a’c c c Las figuras anteriores ilustran los dos términos del lado derecho del teorema. La figura siguiente muestra el término de consenso bc. La figura de la derecha muestra la suma lógica de ab+bc', y se puede advertir que el término bc queda incluido. a a b bc c ab+a’c b c Obs. Se puede decir que bc está incluido en ab+a’c; y también que bc es un término denominado consenso entre ab y a’c. Prof. Leopoldo Silva Bijit. 14-11-2015 8 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO211 Sistemas Digitales 2. Funciones Booleanas 2.1. Definiciones i) Una variable es un símbolo, el cual puede ser sustituido por un elemento del conjunto {0,1}. ii) El elemento que es sustituido por el símbolo de la variable se llama el valor de la variable. iii) Una función de n variables f(x1,x2, .. ,xn), es un mapeo o correspondencia que asocia un valor a f, con cada una de las posibles combinaciones de valores que pueden tomar las variables. iv) Una expresión queda definida, recursivamente, por las reglas: a) Constantes y variables son expresiones. b) Si x e y son expresiones, entonces: x+y, x·y, x’, y’ también lo son. v) Una función booleana es cualquier función f(x1,x2, .. ,xn), para la cual existe una expresión X(x1,x2, .. ,xn), tal que: f(x1,x2, .. ,xn) = X(x1,x2, .. ,xn) vi) Un literal es el símbolo empleado para una variable o su complemento. Entonces: Si x1,x2, ·· ,xn son variables que pueden tomar los valores 1 y 0 entonces: f(x1,x2, .. ,xn), es una función booleana de x1,x2, .. ,xn. La función f puede tomar valores 1 ó 0 dependiendo de los valores de las variables. Resumen: La siguiente sintaxis, muestra la formación recursiva de expresiones como suma de términos. Una expresión es un OR de sus términos. Un término es el AND de sus factores. Un factor es: una constante, o una variable, o un NOT de un factor, o una expresión entre paréntesis. Ejemplo: 0 + a + bc + d’ + (c+d) e La siguiente sintaxis, muestra la formación recursiva de expresiones como producto de términos. Una expresión es un AND de sus términos. Un término es el OR de sus factores. Un factor es: una constante, o una variable, o un NOT de un factor, o una expresión entre paréntesis. Ejemplo: a(1)(c+d’)(e’ + f) Prof. Leopoldo Silva Bijit. 14-11-2015 9 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO211 Sistemas Digitales 2.2. Representación de Funciones Booleanas Cada salida de un sistema digital combinacional puede describirse por una función booleana de sus variables de entrada. Es decir, las salidas de una red combinacional dependen solamente de sus entradas. Lo anterior se considera la definición de un sistema digital combinacional. a) Una función puede ser descrita por una expresión. Ejemplo: f( A, B, C) = AB + A’C + AC’ La función puede evaluarse para las diferentes combinaciones de valores que tomen las variables. Se ilustra la evaluación de la función para A = 1, B = 0 y C = 0. = 1 0 + 1’ 0 + 1 0’ = 0 +00+11 = 1 b) Una función puede ser descrita por una tabla de verdad. Una tabla de verdad despliega todas las posibles combinaciones de valores de las variables y el valor asociado de la función. Por ejemplo, para la expresión del punto a): f( 1, 0, 0) 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 f 0 1 0 1 1 0 1 1 c) Esquema Lógico. Un diagrama empleando símbolos estandarizados para las funciones lógicas. Para la tabla del punto b): Prof. Leopoldo Silva Bijit. A B A’ C A C’ f 14-11-2015 10 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO211 Sistemas Digitales d) Diagrama Temporal. Formas de ondas de las entradas y de las salidas. Empleando simuladores, pueden obtenerse formas de ondas de las señales. En estos diagramas pueden observarse los retardos de propagación a través de las compuertas. c 0 10 20 30 40 50 60 70 80 90 100 b a f Se generaron las ocho combinaciones posibles para las variables de entrada y se graficó la salida f, la misma de los tres puntos anteriores. Los cambios de f no están alineados con los cambios de las entradas, debido a que toma tiempo para que una compuerta cambie su estado. Es similar a una tabla de verdad, pero horizontal. Nótese que entre 10 y 20, la señal f debería estar en 1 lógico(a=1, c'=1), sin embargo esto ocurre un poco después(tipo 2 unidades). Esto se debe al retardo de propagación a través de las compuertas. También se aprecia en la gráfica que la salida tiene una caída a cero, un poco después del tiempo 40; como se verá después, es una perturbación. Las formas de ondas pueden también visualizarse mediante un analizador lógico, o con un osciloscopio. Las formas de ondas fueron generadas con un programa para simular sistemas digitales(CircuitMaker) que se dispone, en versión estudiantil gratuita, en la red. Otras formas de representación: e) Diagramas de Venn. Similares al visto en el Teorema 13. f) Mapas de Karnaugh. Representación que se desarrollará más adelante. g) N-cubos. Diagrama en un espacio discreto multidimensional, que se verá más adelante. h) Empleando lenguajes para descripción de sistemas booleanos. Prof. Leopoldo Silva Bijit. 14-11-2015 11 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO211 Sistemas Digitales 2.3. Número de funciones de n variables. Si hay n variables, la tabla de verdad tendrá N = 2n renglones. Para un renglón determinado la función puede tomar valor 0 ó 1. Entonces pueden escribirse 2N tablas de verdad diferentes. Es decir, 22n funciones booleanas de n variables. La siguiente tabla muestra el rápido crecimiento del número de funciones booleanas de n variables. n N=2n 22 n 0 1 2 3 4 ... 1 2 4 8 16 2 4 16 256 65536 ... El caso n = 0 se interpreta como una función descrita por 0 variables; es decir por una constante. En esta situación existe sólo un valor posible (N=1) y como la constante puede ser 0 ó 1 el número de funciones de cero variables es 2. Ejemplo: Para n = 2 las tablas de verdad tienen cuatro renglones. Los cuatro casilleros de una función pueden llenarse de 16 formas, las que se muestran en la siguiente tabla. A 0 0 1 1 B 0 1 0 1 f0 0 0 0 0 f1 1 0 0 0 f2 0 1 0 0 f3 1 1 0 0 f4 0 0 1 0 f5 1 0 1 0 f6 0 1 1 0 f7 1 1 1 0 f8 0 0 0 1 f9 1 0 0 1 f10 0 1 0 1 f11 1 1 0 1 f12 0 0 1 1 f13 1 0 1 1 f14 0 1 1 1 f15 1 1 1 1 Las funciones se han numerado, en binario, considerando el primer renglón como el dígito menos significativo. Por ejemplo: 0111 equivale a 7, en sistema binario. Lo cual puede verse de la siguiente relación: 023 +122 + 121 +120 = 7 Las 16 funciones booleanas de dos variables pueden representarse en forma analítica, mediante expresiones booleanas. f0 = 0 f1 = A'B' = (A + B)' f2 = A'B f3 = A'B' + A'B = A' f4 = AB' f5 = A'B' + AB' = B' f6 = A'B + AB' Prof. Leopoldo Silva Bijit. f8 = AB f9 = A'B' + AB f10 = A'B + AB = B f11 = A'B' + A'B + AB = A' + B f12 = AB' + AB = A f13 = A'B' + AB' + AB = A + B' f14 = A'B + AB' + AB = A + B 14-11-2015 12 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO211 Sistemas Digitales f7 = A'B' + A'B + AB' = A' + B' = (AB)' f15 = A'B' + A'B + AB' + AB = 1 Las diferentes expresiones pueden comprobarse mediante tablas de verdad. Algunas de estas funciones son tan utilizadas, que se las reconoce con un nombre. Definiciones: f1 (A,B) = nor (A,B) = A B f 8 (A,B) = and (A,B) = A B f 6 (A,B) = xor (A,B) = A B f 7 (A,B) = nand(A,B) = A B f14 (A,B) = or (A,B) = A + B La función 1 se denomina nor(por: not or). La función 8 se denomina and; la 14 or; la 3 es la negación de A, o not A. La función 6, se denomina xor, por or exclusivo. Toma valor verdadero si los valores lógicos de A y B son diferentes; por esto también se la denomina desigualdad o diferencia. La función 9 se denomina xnor. Toma valor verdadero si los valores lógicos de A y B son iguales. Por esto se la denomina igualdad o coincidencia. La función 9 se denomina equivalencia lógica; la función 11 es la implicancia lógica. f 9 (A,B) = not (xor(A,B)) = A B f11 (A,B) = A B = A B Estas funciones pueden generalizarse para más de dos variables, por ejemplo: and(a, b, c) = a b c or (a, b, c, d) = a + b + c + d Alcance sobre OR (inclusivo) y XOR (exclusivo). A B OR 0 0 0 0 1 1 1 0 1 1 1 1 XOR 0 1 1 0 Observar que difieren en el último renglón. Sobre la implicación material o condicional. La expresión: p q, se lee: Si p entonces q. Prof. Leopoldo Silva Bijit. 14-11-2015 13 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO211 Sistemas Digitales Con p el antecedente y q el consecuente, se tiene: p 1 0 0 1 q 1 0 1 0 pq 1 1 1 0 La implicación es falsa si el consecuente es falso cuando el antecedente es verdadero. Debe notarse que cuando el antecedente es falso el condicional es verdadero. Si el antecedente y consecuente son verdaderos, entonces el condicional es verdadero. Se destaca que la implicación condicional es una expresión que puede ser falsa. p q equivale lógicamente con (p'+q). Si se considera que 1 es mayor que 0, también puede tratarse como p q. También es equivalente con la expresión q' p', que se denomina implicación conjugada. Condiciones suficientes y necesarias. Cuando p q es verdadero, para que q sea verdad es condición suficiente que p sea verdad. Pero no es condición necesaria, ya que q puede ser verdad, aún siendo p falso. Cuando p q es verdadero, para que p sea verdad es necesario que q sea verdad. La siguiente expresión se denomina silogismo: (p (p q) ) q Razonamiento Deductivo. La expresión p q también puede leerse: q se deduce lógicamente de p. O también: La conclusión q se infiere de la hipótesis p. Para que el razonamiento sea válido la expresión p q, debe ser una tautología. Se denomina tautología a una expresión que es verdadera bajo cualquier interpretación. Y se denomina contradicción a una expresión que es falsa bajo cualquiera interpretación. Formas de razonamiento: Modus ponens: En esta forma de razonar debe demostrarse que (p (p q) ) q es una tautología. Modus tolens: En esta forma de razonar debe demostrarse que (q' (p q) ) p' es una tautología. Transitividad. En esta forma de razonar debe demostrarse que (p q) (q r) (p r) es una tautología. Formulación de expresiones booleanas. A partir de la descripción de un problema, generalmente expresada en forma de texto, se desea obtener fórmulas lógicas mediante expresiones que emplean variables booleanas. Ejemplo(Taub): En un estante hay 5 libros(v, w, x, y, z) que se pueden tomar cumpliendo las siguientes reglas: a) Se seleccionan v o w o ambos Prof. Leopoldo Silva Bijit. 14-11-2015 14 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO211 Sistemas Digitales b) Se seleccionan x o z pero no ambos c) se selecciona v y z juntos, o bien una selección que no incluya a ninguno de ellos d) si se selecciona y, también debe seleccionarse z e) si se selecciona a w, también debe seleccionarse a v e y. Expresar cómo seleccionar un grupo de libros cumpliendo las reglas anteriores. Solución. Sean: u la proposición lógica que indica que la selección de libros cumple las reglas el nombre del libro es la proposición lógica que indica que se tomó dicho libro para formar la selección. Como las reglas de selección deben cumplirse simultáneamente, debe entenderse que debe cumplirse la primera regla y la segunda, y así sucesivamente. Por lo tanto: u es igual al and de las reglas individuales. La regla a), establece el or ( incluye a ambos) de v con w. Es decir: v + w. La regla b), establece el xor (no incluye a ambos) de x con z. Es decir: x z. Para la regla c), se tiene: v 0 0 1 1 z 0 1 0 1 regla c) 1 0 0 1 Es decir: (v z)' La regla d) traducida es: y z La regla e) traducida es: w vy Entonces: u = (v + w)( x z) (v z)' (y z)( w vy ) Reemplazando los operadores por or, and y not, se obtiene: u = (v + w)(xz' + x'z)(vz + v'z')(y' + z)( w' + vy) Efectuando los productos: (v+w) (vz +v'z') = vvz + vv'z + vwz + v'wz' que se simplifica a: vz + v'wz' (xz' +x'z)(y' +z) = xy'z' + x'y'z + xzz' + x'zz que se simplifica a : xy'z' + x'z entonces queda: u = (vz + v'wz' )( xy'z' + x'z )( w' + vy) El producto (vz + v'wz' )( w' + vy) puede simplificarse a: (vw'z + vyz) Y el producto ( xy'z' + x'z ) (vw'z + vyz) = x'vw'z + x'vyz Finalmente: u = vx'z(w' +y) Que puede leerse: Se debe seleccionar v y z, y rechazar x; y si se selecciona w también debe seleccionarse y. Una frase alternativa para (w' +y) es: si no se selecciona w, la selección de y es opcional. Prof. Leopoldo Silva Bijit. 14-11-2015 15 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO211 Sistemas Digitales Ejemplo(Dietmeyer). Tres interruptores(a, b, c) controlan dos ampolletas(una roja R, y otra verde V) del modo siguiente: a) Cuando los tres interruptores están cerrados, se enciende la luz roja. b) Cuando el interruptor A está abierto y B o C están cerrados se enciende la luz verde. c) No deben encenderse ambas ampolletas a la vez. d) En el resto de los casos la roja debe encenderse, excepto cuando los tres interruptores están abiertos, en este caso no debe encenderse ninguna ampolleta. Solución: Se emplea la siguiente asignación de valores lógicos: a interruptor cerrado se asigna 1 lógico, a ampolleta encendida se le asigna 1 lógico. La especificación b) se interpreta como o incluyente. De la condición d), se extrae la especificación e) e) cuando los tres interruptores están abiertos no debe encenderse ninguna ampolleta. Si se puede completar la tabla de verdad, el problema está completamente especificado: 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 por condición d R 0 0 0 0 1 1 1 1 V 0 1 1 1 0 0 0 0 por condición a. por condición e por condición b. por condición c por condición c Se va completando la tabla, con las especificaciones, la última en aplicar es la d). Se advierte que si no se hubiese dado, por ejemplo, la especificación c), el problema queda indeterminado. En estos casos es preciso efectuar suposiciones o agregar especificaciones. Por esto podría decirse que una tabla de verdad es una especificación formal. Una vez que se tiene la tabla pueden encontrarse las expresiones para R y V en función de A, B y C. Puede comprobarse que cada uno de la función está asociado a un producto lógico de las variables A, B y C. Y que la función es la suma lógica de esos productos, se tiene entonces que: R = AB'C' + AB'C + ABC' + ABC que puede simplificarse, empleando teoremas, a: R = A. V = A'B'C + A'BC' + A'BC que puede simplificarse a: V = A'(B +C) Prof. Leopoldo Silva Bijit. 14-11-2015 16 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO211 Sistemas Digitales 2.4. Simplificación (reducción) de Funciones. 2.4.1. Criterios de Reducción. Cada función tiene una y sólo una tabla de verdad asociada; sin embargo pueden escribirse diferentes expresiones booleanas para la misma función. Esto implica diferente costo. a) Si se minimiza el número de compuertas empleadas, se tendrá un circuito más pequeño lo que influencia directamente el costo de manufactura, debido a un circuito impreso más simple. También disminuyen las probabilidades de fallas debidas a componentes defectuosas, debido al menor número de éstas. b) Si se minimiza el número de entradas a las compuertas, se tendrá menos transistores en cada compuerta y por lo tanto un costo menor. Si se considera las señales y sus complementos, presentes en una expresión, como entradas de compuertas, puede definirse el concepto de literal en una expresión. Un literal es la ocurrencia de una variable o su forma complementada en una expresión. Si se desea minimizar las entradas, debe minimizarse el número de literales en una expresión. Ejemplo: f(x, y, z) = x’y(z+y’x) +y’z es una expresión que tiene 7 literales. Puede reducirse a: f(x, y, z) = (xy)’z = (x’ +y’)z que tiene 3 literales. Es usual asumir que se dispone de las variables y sus complementos como entradas de una red combinacional. Como se verá más adelante algunos elementos básicos de memoria(flip-flops) entregan como salidas las variables y sus complementos, en las figuras siguientes se muestran un flipflop JK y un flip-flop D, la señal CP(clock pulse) es el reloj: D Q _ CP Q J Q CP _ K Q R También en los dispositivos programables existen circuitos inversores en las entradas: A A' A Como se ha dicho: Existen diversas expresiones para una misma función. Sea la función f(A, B, C) = A' B' (C +D) Si consideramos la señal interna: S1 = C + D, se puede expresar: f = A' B' S1 Que puede implementarse con compuertas según: Prof. Leopoldo Silva Bijit. 14-11-2015 17 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO211 Sistemas Digitales A B f C D S1 La representación es en dos niveles. Definiendo el nivel por el número de compuertas a través de las cuales se propagan las señales de entrada hasta llegar a la señal de salida. La implementación tiene 7 entradas. Y emplea una compuerta que tiene más de dos entradas(3 en el and del ejemplo). Si expresamos ahora la misma función f por la expresión: f = (A' (B' (C + D)) Y si consideramos las siguientes señales internas: S1 = C + D; S2 = S1 B'. Puede expresarse a f según: f = A' S2. De este modo todas las compuertas empleadas no tienen más de dos entradas, según puede verse en el esquema siguiente: A f B C D S2 S1 La implementación tiene 8 entradas. Esto es sumando las entradas a todas las compuertas. Notando que un cambio en la señal C o D o B, debe propagarse por tres compuertas, se dice que el circuito está implementado en tres niveles. La señal A se propaga en dos niveles hasta la salida f. c) Si lo que se desea es aumentar la velocidad de respuesta, se requiere disminuir el número de niveles. Para lograr esto, en general se requerirán compuertas con mayor número de entradas lo cual aumenta el costo en tamaño. Obviamente existirá un compromiso entre velocidad y costo; el que se suele denominar compromiso: tiempo-espacio. Los circuitos lógicos que tienen igual tabla de verdad son equivalentes, pero pueden tener diferente costo, en tiempo o en espacio. Existen diversas herramientas para explorar el compromiso entre retardos y tamaño, que permiten generar automáticamente diferentes soluciones, empleando minimización lógica para reducir la complejidad espacial y optimización de los retardos para aumentar la velocidad de respuesta. Algunos teoremas útiles con funciones de varias variables son los siguientes. Prof. Leopoldo Silva Bijit. 14-11-2015 18 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO211 Sistemas Digitales 2.4.2. Teoremas relativos a funciones de varias variables. T.16 Función Dual f d ( x1 , x2 ,...,xn ,0,1,,) f ( x1 , x2 ,...,xn ,0,1,,) Este teorema permite calcular la función dual( fd) de una función f. Debe notarse que no se intercambian las constantes y los operadores. T.17 Reducción. x1 f (x1,...,x n ) x1 f (0,x2 ,...,x n ) x1 f (x1,...,x n ) x1 f (1,x2 ,...,x n ) T.18 Teorema de Shannon f (x1,x 2 ,...,x n ) x1 f (1,x2 ,...,x n ) x1 f (0,x2 ,...,x n ) f (x1,x 2 ,...,x n ) (x1 f (0,x2 ,...,x n ))(x1 f (1,x2 ,...,x n )) Prof. Leopoldo Silva Bijit. 14-11-2015 19