Circuitos Combinatorios Primer Cuatrimestre de 2010 Departamento de Computación, FCEyN,Universidad de Buenos Aires. 7 de abril de 2010
Objetivos de la clase de hoy Repasar los operadores y propiedades del algebra de boole vistas en la teórica (hace un ratito nomás) y utilizarlas para implementar circuitos combinatorios simples.
Propiedades Suma de productos Producto de sumas Compuertas lógicas Repasemos... Operadores booleanos: Pueden ser completamente descriptos usando su tabla de verdad. AND, OR, NOT Operadores básicos NAND, NOR Operadores universales Funciones booleanas: Combinación de operadores lógicos y variables booleanas. Ej. F (X, Y, Z) = X + Y Z. Orden de precedencia en la evaluación NOT > AND > OR. Dos funciones son iguales sii tienen la misma tabla de verdad. Identidades booleanas: Reducciones utilizando propiedades o leyes. X YZ + X Y Z + XZ == X Y + XZ
Propiedades Suma de productos Producto de sumas Compuertas lógicas Propiedades Identidad 1.A = A 0 + A = A Nulo 0.A = 0 1 + A = 1 Idempotencia A.A = A A + A = A Inverso A.A = 0 A + A = 1 Conmutatividad A.B = B.A A + B = B + A Asociatividad (A.B).C = A.(B.C) (A + B) + C = A + (B + C) Distributividad A + B.C = (A + B).(A + C) A.(B + C) = A.B + A.C Absorción A.(A + B) = A A + A.B = A De Morgan (A.B) = A + B (A + B) = A.B No existe una forma mecánica y facil para reducir una función, hay que practicar. De esto se deduce que no hay una única forma de escribir una función lógica, surge la necesidad de las formas canónicas.
Propiedades Suma de productos Producto de sumas Compuertas lógicas Suma de productos Por cada valor de la función que sea 1 escribimos un término utilizando todas las variables unidas por operadores AND, de forma tal que el término también valga 1. Luego combinamos todo con operadores OR. Probemos con un ejemplo: A B F(A,B) 0 0 0 0 1 1 1 0 1 1 1 0 F (A, B) = AB + AB Es la función conocida como XOR.
Propiedades Suma de productos Producto de sumas Compuertas lógicas Producto de sumas Por cada valor de la función que sea 0 escribimos un término utilizando todas las variables unidas por operadores OR, de forma tal que el término también valga 0. Luego combinamos todo con operadores AND. Usando el ejemplo anterior: A B F(A,B) 0 0 0 0 1 1 1 0 1 1 1 0 F (A, B) = (A + B)(A + B)
Propiedades Suma de productos Producto de sumas Compuertas lógicas Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores de entrada. Se corresponden exactamente con las funciones que vimos antes.
Propiedades Suma de productos Producto de sumas Compuertas lógicas Compuerta NOT A NOT A 0 1 1 0
Propiedades Suma de productos Producto de sumas Compuertas lógicas Compuerta AND A B A AND B 0 0 0 0 1 0 1 0 0 1 1 1
Propiedades Suma de productos Producto de sumas Compuertas lógicas Compuerta OR A B A OR B 0 0 0 0 1 1 1 0 1 1 1 1
Propiedades Suma de productos Producto de sumas Compuertas lógicas Compuerta XOR A B A XOR B 0 0 0 0 1 1 1 0 1 1 1 0
Propiedades Suma de productos Producto de sumas Compuertas lógicas Compuerta NOR A B A NOR B 0 0 1 0 1 0 1 0 0 1 1 0
Propiedades Suma de productos Producto de sumas Compuertas lógicas Compuerta NAND A B A NAND B 0 0 1 0 1 1 1 0 1 1 1 0
Ejercicio 1 Demostrar si la siguiente igualdad entre funciones booleanas es verdadera o falsa: (X + Y ) = (X.Y ).Z + X.Z + (Y + Z) Solución: (X.Y ).Z + X.Z + (Y + Z) De Morgan (X.Y ).Z + X.Z + Y.Z Distributiva (X.Y ).Z + (X + Y ).Z De Morgan (X + Y ).Z + (X + Y ).Z Distributiva (X + Y ).(Z + Z) Inverso (X + Y ).1 Identidad X + Y
Ejercicio 2 Simplificar la función: XY + X Z + YZ Solución: XY + X Z + YZ(1) Identidad XY + X Z + YZ(X + X ) Inverso XY + X Z + (YZ)X + (YZ)X Distributiva XY + X Z + X (YZ) + X (ZY ) Conmutativa (varias veces) XY + X Z + (XY )Z + (X Z)Y Asociativa XY + (XY )Z + (X Z) + (X Z)Y Conmutativa XY (1 + Z) + X Z(1 + Y ) Distributiva XY (1) + X Z(1) Nulo XY + X Z Identidad
Ejercicio 3 Dada la siguiente tabla de verdad: A B C F 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 Escribir la función booleana que representa. Implementar la función utilizando a lo sumo una compuerta binaria AND, una compuerta binaria OR y una compuerta NOT.
Expresamos la función como una suma de productos: (A.B.C) + (A.B.C) + (A.B.C) Ahora nos restringen las compuertas, tenemos que simplificar. (A.B.C) + (A.B.C) + (A.B.C) Distributiva ((A.B) + (A.B) + (A.B)).C Distributiva ((A.B) + (A + A).B).C Inverso ((A.B) + 1.B).C Identidad ((A.B) + B).C Distributiva ((A + B).(B + B)).C Inverso ((A + B),1).C Identidad (A + B).C Bingo! Ahora a implementarlo
La implementación es la siguiente:
Ejercicio 4 Armar un inversor de 3 bits. Este circuito invierte o no las tres entradas de acuerdo al valor de una de ellas que actúa como control. En otras palabras, un inversor de k-bits es un circuito de k entradas (e k,..., e 0 ) y k 1 salidas (s k 1,..., s 0 ) que funciona del siguiente modo: Si e k = 1, entonces s i = not(e i ) para todo i < k Si e k = 0, entonces s i = e i para todo i < k Ejemplo: inversor(1,011)=100 inversor(0,011)=011 inversor(1,100)=011 inversor(1,101)=010
Solución: Podriamos hacer la tabla de verdad, pero seria mucho lio, mejor pensemos =). Primero miremos como invertir un solo bit. ei ek si 0 0 0 0 1 1 1 0 1 1 1 0 De donde nos suena esta tabla?... Sep, es un XOR ( ) P Q = (P.Q) + (P.Q) Ahora que ya lo tenemos cocinado para un valor, pensemos que pasa cuando tenemos más de uno.
Implementado con XOR:
Ejercicio 5 Armar un sumador simple (de un bit). Solución:
Ejercicio 6 Teniendo dos sumadores simples y solo una compuerta a elección, arme un sumador completo. Solución:
Ejercicio 7 Usando sumadores armar un circuito que convierta un entero en su inverso aditivo (el inverso aditivo de un número n es el número x tal que x + n = 0). Los enteros se representan con notación complemento a 2 de 4 bits. En esta reprepresentación el -8 no tiene inverso aditivo, no hace falta contemplar el caso aparte. (HINT: Pensar en propiedades del inverso aditivo vistas en la práctica 1) Solución:
Ejercicio 8 Dibujar el diagrama lógico de un demultiplexor de 2 ĺıneas de control, 1 ĺınea de entrada y 4 ĺıneas de salida. Este circuito dirige la única ĺınea de entrada a una de cuatro ĺıneas de salida, dependiendo del estado de las dos ĺıneas de control. c 1 c 0 s i 0 0 s 0 = e 0, s i = 0 si i 0 0 1 s 1 = e 0, s i = 0 si i 1 1 0 s 2 = e 0, s i = 0 si i 2 1 1 s 3 = e 0, s i = 0 si i 3
Solución: Nota: Se usaron compuertas de tres entradas por simplicidad, si en el parcial usan compuertas de más de dos entradas tienen que explicar como funcionan.
Cosas que tendríamos que haber entendido y tips Operadores y funciones booleanas, reducciones utilizando propiedades. Dada una tabla de verdad escribir la función booleana correspondiente. Implementar funciones utilizando compuertas lógicas. RECOMENDACIONES Sean cuidadosos cuando dibujan circuitos: Que quede claro cuando un cable esta conectado a otro y cuando lo saltea (pongan un circulito en la unión o una curva cuando no quieren que lo toque).