“Universidad Nacional Mayor de San Marcos” FACULTAD DE INGENIERÍA ELECTRÓNICA Y ELÉCTRICA SISTEMAS COMBINACIONALES CURSO: CIRCUITOS DIGITALES PROFESOR: Ing. Moscoso Sanchez, Jorge INTEGRANTES: Nestares Alvarez, Walter Augusto Uriarte Quiñones, Abigail Jimena Miller Sotelo Christian Amau Gutierrez Danny Flores Dueñas Enzo Aldair Atencio Torres Miguel Aron SISTEMAS COMBINACIONALES PROBLEMA 1 Diseñar un detector de magnitud relativa, que tome dos números binarios de 3 bits, (A= a a a y B= b b b ), determine si son iguales, y si no lo son, cuál de ellos es el mayor Nuestro bloque funcional dispone de 6 entradas que corresponden a los tres dígitos de cada uno de los números, y tres salidas definidas por: M=1 si y solo si los dos nº son iguales N=1 sí y solo sí A > B P=1 sí y solo sí B > A 2 1 0 2 1 0 A. M = 1, si (a2=b2) y (a1=b1) y (a0=b0) Entonces: 𝑀 = (𝑎2 ⊕ 𝑏2)′. (𝑎1 ⊕ 𝑏1)′. (𝑎0 ⊕ 𝑏0)′ B. N = 1 , si [a2>b2] o [(a2=b2) y (a1>b1)] o [(a2=b2) y (a1=b1) y (a0>b0)] Entonces: 𝑁 = [𝑎2. 𝑏2′] + [(𝑎2 ⊕ 𝑏2)′. (𝑎1. 𝑏1′)] + [(𝑎2 ⊕ 𝑏2)′. (𝑎1 ⊕ 𝑏1)′. (𝑎0. 𝑏0′)] 𝑁 = [𝑎2. 𝑏2′] + (𝑎2 ⊕ 𝑏2)′. [(𝑎1. 𝑏1′) + (𝑎1 ⊕ 𝑏1)′. (𝑎0. 𝑏0′)] C. P = 1 , si [b2>a2] o [(b2=a2) y (b1>a1)] o [(b2=a2) y (b1=a1) y (b0>a0)] Entonces: 𝑃 = [𝑏2. 𝑎2′] + [(𝑏2 ⊕ 𝑎2)′. (𝑏1. 𝑎1′)] + [(𝑏2 ⊕ 𝑎2)′. (𝑏1 ⊕ 𝑎1)′. (𝑏0. 𝑎0′)] 𝑃 = [𝑏2. 𝑎2′] + (𝑏2 ⊕ 𝑎2)′. [(𝑏1. 𝑎1′) + (𝑏1 ⊕ 𝑎1)′. (𝑏0. 𝑎0′)] O también: M 0 0 1 N 1 0 0 P 0 1 0 𝑃 = 𝑀′. 𝑁′ = (𝑀 + 𝑁)′ PROBLEMA 2 Diseñar el circuito lógico que implemente un multiplicador, donde disponemos de 4 entradas, dos para cada uno de los dos números de 2 bits (A=a a y B=b b ) que vamos a multiplicar, y 4 salidas, donde aparecerá el producto en forma de nº binario (Z= z z z z ) 1 3 2 1 0 ENTRADAS a1 a0 b1 b0 0 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 0 0 0 1 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 Z3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 SALIDAS Z2 Z1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 Z0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 Por mapas de Karnaugh b1b0 a1a0 00 01 11 10 01 0 0 0 0 01 0 1 1 0 11 0 1 1 0 10 0 0 0 0 11 0 1 0 1 10 0 1 1 0 𝑍0 = 𝑎0 𝑏0 b1b0 a1a0 00 01 11 10 01 0 0 0 0 01 0 0 1 1 𝑍1 = 𝑎̅1 𝑏1 𝑏0 + 𝑎̅1 𝑎0 𝑏0 + 𝑎̅1 𝑎0 𝑏1 + 𝑎0 𝑏̅1 𝑏0 b1b0 a1a0 00 01 11 10 01 0 0 0 0 01 0 0 0 0 11 0 0 0 1 10 0 0 1 1 𝑍2 = 𝑎̅1 𝑎0 𝑏1 + 𝑎1 𝑏̅1 𝑏0 Por ultimo b1b0 a1a0 00 01 11 10 01 0 0 0 0 01 0 0 0 0 𝑍1 = 𝑎1 𝑎0 𝑏1 𝑏0 11 0 0 1 0 10 0 0 0 0 PROBLEMA 3 La figura adjunta, muestra el cruce de una autopista principal con un camino de acceso secundario. Se colocan sensores de detección de vehículos a lo largo de los carriles C y D (camino principal) y en los carriles A y B (camino de acceso). Las salidas del sensor son BAJA cuando no pasa ningún vehículo, y ALTA cuando pasa algún vehículo. El semáforo del cruce se controlará de acuerdo con la siguiente lógica: El semáforo E-O (Este-Oeste) estará en verde siempre que C y D estén ocupados El semáforo E-O (Este-Oeste) estará en verde siempre que C ó D estén ocupados, pero A y B no estén ocupados El semáforo N-S (Norte – Sur) estará en verde siempre que los carriles A y B estén ocupados, pero C y D no lo estén El semáforo N-S también estará en verde cuando A o B estén ocupados en tanto que C y D estén vacíos. El semáforo E-O estará en verde cuando NO haya vehículos transitando. Utilizando las salidas de los sensores A.B.C. y D como entradas, diseñe un circuito lógico para controlar el semáforo. Debe haber 2 salidas N/S, y E/O que pasen a Alto cuando la luz correspondiente se pone en verde. SOLUCIÓN: De los datos del problema podemos obtener la siguiente tabla: NOTA: los dos semáforos no pueden estar en verde a la vez A 0 0 0 0 0 0 0 B 0 0 0 0 1 1 1 C 0 0 1 1 0 0 1 D 0 1 0 1 0 1 0 S1(E-W) 1 1 1 1 0 1 1 S2(N-S) 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 PARA S1: S1=(~A*~B*~C*~D) + (~A*~B*~C*D) + (~A*~B*C*~D) + (~A*B*~C*D) + (~A*B*C*D) + (A*~B*~C*D) + (A*~B*~C*D) + (A*~B*C*~D) + (A*~B*C*D) + (A*B*C*D) PARA S2: S2=(~A*B*~C*~D) + (A*~B*~C*~D) + (A*B*~C*~D) + (A*B*~C*D) + (A*B*C*~D) CD AB 00 01 11 10 00 0 1 1 1 01 0 0 1 0 11 0 0 0 0 10 0 0 1 0 S2=(B*~C*~D) + (A*~C*~D) + (A*B*~D) + (A*B*~C) En la tabla nos podemos dar cuenta que S1= ~S2, por lo que en la simulación solo será necesario construir el circuito de la expresión reducida de S2 y luego colocar una compuerta NOT para obtener S1 PARA S2: PARA S1: PROBLEMA 4 Disponemos de tres números de 8 bits codificados en binario natural. Diseñar un circuito combinacional que realice la suma de los dos mayores de los tres. Para construir la solución lo primero que requeriremos es un circuito que compare los 3 números, luego un codificador que convierta esa información al número binario adecuado para los selectores del multiplexor de buses que dejará pasar los números que se deban sumar, finalmente solo hace falta un sumador de 8 bits para sumar las salidas IMPLEMENTADO EN VHDL Y SIMULADO EN MAXPLUS2 SIMULACION DE EJEMPLOS (Los números están siendo mostrados en Decimal para mayor facilidad de lectura) PROBLEMA 5 Diseñar un circuito combinacional que calcule el valor absoluto de la diferencia de dos números de n bits. Primero realizamos un circuito sumador completo: +(𝑪𝒊) 𝒂 + 𝒃 ̅̅̅̅̅̅̅̅̅ 𝑪𝒐 𝑹𝒐 Ro = 𝑎′. 𝑏′. 𝐶𝑖 + 𝑎′. 𝑏 . 𝐶𝑖′ + 𝑎 . 𝑏′. 𝐶𝑖′ + 𝑎 . 𝑏 . 𝐶𝑖 𝑅𝑜 = 𝑎 ⊕ 𝑏 ⊕ 𝐶𝑖 𝐶𝑜 = 𝑎 . 𝑏 + 𝑎 . 𝐶𝑖 + 𝑏 . 𝑅𝑖 𝐶𝑜 = 𝑎 . 𝑏 + 𝐶𝑖 . (𝑎 + 𝑏) Si negamos “b”, b pasaría a ser una suma en complemento 1. Para pasar b a complemento 2, simplemente coloco como acarreo inicial “1”. Ahora diseñamos el circuito valor _absoluto: Vs S Ci Ro Co 0 0 0 0 0 Ro = 𝑉𝑠′. 𝑆′. 𝐶𝑖 + 𝑉𝑠′. 𝑆. 𝐶𝑖′ + 𝑉𝑠 . 𝑆′. 𝐶𝑖′ + 𝑉𝑠 . 𝑆 . 𝐶𝑖 0 0 1 1 0 Ro = 𝑉𝑠 ⊕ 𝑆 ⊕ 𝐶𝑖 0 1 0 1 0 0 1 1 0 1 𝐶𝑜 = 𝑉𝑠′. 𝑆 . 𝐶𝑖 + 𝑉𝑠 . 𝑆′. 𝐶𝑖 1 0 0 1 0 𝐶𝑜 = 𝐶𝑖 . (𝑉𝑠 ⊕ 𝑆) 1 0 1 0 1 1 1 0 0 0 1 1 1 1 0 Ahora diseñamos el circuito verificador_signo: Rn Cn Vs 0 0 1 0 1 0 1 0 1 1 1 0 𝑉𝑠 = 𝐶𝑛′ SIMULANDO EN MAX PLUS II: - Para 1 bit: Forma de onda: - Para 2 bits: Forma de onda: - Para 3 bits: - Para “n” bits: Bastar con apilar los circuitos diseñados, siempre y cuando coloquemos el circuito verificador de signo en el último circuito. PROBLEMA 6 Dados dos números de 4 bits, implementar un circuito digital que consiga realizar la suma y la resta, según seleccione el usuario y además active una alarma cuando el resultado obtenido en la operación sea erróneo. Para este caso usaremos en integrado 7483, que es un sumador de 4 bits. Observamos que tiene 2 grupos de entradas de 4 bits que son A4, A3, A2, A1, B4, B3, B2, B1 y una entrada Co. Posee un grupo de salida que es S4, S3, S2, S1 y C4 que es el acarreo. Conexión: Para La Suma: Para la suma existe de 2 números de 4 bits, existe la salida de un numero de 4 bits con su carreo C4 que habilita que sean 5 bits dependiendo del número de salida. X2 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 X16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Pero adicionando el carreo C4 no daría un numero de 5 bits X10 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Restador Se utiliza el método de Complemento a uno: ERROR: Si bien ponemos un display para que nos registre la suma y resta del número, pero este display solo puede registrar números del 1 al 15 entonces para cada caso existe problemas, sea para: Suma: Alerta error si el numero sumado es mayor que 15 Resta: Alerta error si el numero restado sale negativo o está mal restado. Obteniendo el circuito planteado: PROBLEMA 7 Un desplazador de bloque es un circuito combinacional con n entradas, E1 ... En, y n salidas, S1 ... S2. Funciona de manera que S =E , siendo d el desplazamiento, que puede ser positivo o negativo. Las salidas que quedan sin correspondencia con alguna entrada se ponen a un valor fijo (0 o 1). Utilizando componentes combinacionales, diseñar un desplazador de bloque con n=8 y d=4, y con cuatro entradas de control, c1 ... c4. Con c1c2 se codifica el desplazamiento según la tabla adjunta. Con c3 se codifica el signo de d. Con c4 se codifica si los lugares vacantes se rellenan con ceros o unos. i cc 00 01 10 11 1 2 i+d d 1 2 3 4 SOLUCIÓN: Se requiere un arreglo de 16 multiplexores de 8 a 1 en el que se coloca en el orden adecuado la entrada para cada grupo de pines y se rellenan los espacios vacíos con c4 c1c2 00 01 10 11 d 1 2 3 4 PROBLEMA 8 Diseñar, utilizando exclusivamente multiplexores, un circuito combinacional capaz de realizar el complemento a 2 de un número de 3 bits o el complemento a 1 o dejarlo como está en función de un par de señales S1 y S0 de la forma siguiente: S1 S0 Función 0 0 N º0 1 Complemento a 2 de N 1 Complemento a 1 de N 0 1 1 Sin definir Se construye la tabla de verdad: Entonces, se tiene: SIMULADO EN MULTISIM