Circuitos 97/98 Contar en binario Decimal Binario Puro 46 19 101110 1001 Empezando por la derecha: cuando es uno va valiendo 21, 22, 23,... Complemento A2 El primer signo empezando por la Izquierda es el “bit de signo” que nos informa sobre el signo del número en binario puro. “0” = + y “1” = Para hacer el complemento A2 se cambian los “niegan” los bits, excepto el del signo, del número y se les suma “1”. Ej. 1001 0110 +1 1111 Códigos binarios (Con peso) Truco: BCD (8421) 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 Decimal 0 1 0 1 0 1 0 1 0 1 0 1 2 3 4 5 6 7 8 9 (Sin peso) Exceso “3” Código binario utilizado para operaciones de resta. 150 0001 0101 0000 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 2 3 4 5 6 7 8 9 Se llama “exceso 3” justamente por eso, a cualquier número se le suman tres y ese será su resultado en “exceso 3”. Código progresivo “Gray” 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 2 3 4 5 6 7 8 9 La Historia radíca en desplazar hacia la derecha y sumarle uno. Puertas lógicas AND A B S 0 0 1 1 0 1 1 0 0 0 1 0 A B S 0 0 1 1 0 1 1 0 0 1 1 1 OR 2 NAND A B S 0 0 1 1 0 1 1 0 1 1 1 0 A B S 0 0 1 1 0 1 1 0 1 0 0 0 NOR NOT A S 0 1 1 0 EJERCICIO Realizar un circuito que genere un control de pariedades para detección de errores. Un control de pariedad lo que hace es salir “1”, en este caso, cuando el número de unos que entra en las entradas es uno. A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 A B C D 3 00 00 01 11 10 01 1 1 11 10 1 1 1 1 1 1 Siempre que la forma sea de esta manera, el circuito quedará con puerta XOR y si en el 0000 hubiera un uno en vez de un cero del caso actual sería una puerta XNOR Minterms Maxterms (suma de productos) (producto de sumas) Utilización de los teoremas de MORGAN A + B = A´·B´ A · B = A´+ B´ Utilización de la puerta lógica NAND En una suma de productos se cambia todo a Nand convirtiendo directamente todas las puertas a Nand. EJEMPLO F = AB + BCD´+ B´D + AB´C´D + C´D Hacer la simplificación de esta función y sacar su circuito lógico sabiendo que sólo disponemos de puertas NAND A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 Sólo haré los minterns y la solución daría: F = C´D´+ BD´+AB + B´D Y pasándolos a puertas Nand quedaría: F = C´D´ · BD´ · AB · B´D 4 00 01 11 10 00 1 1 1 0 01 1 0 0 1 11 1 1 1 1 10 1 1 1 0 Ejercicios de las hojas sueltas 1º Para controlarla apertura o cierre de una válvula de presión de un tanque de reacción química existen cuatro dispositivos que realizan cálculos en paralelo. La decisión de apertura o cierre de la válvula se toma por mayoría simple entre las respuestas afirmativas o negativas de los cuatro dispositivos. En caso de igualdad decide la respuesta de uno de los dispositivos que trabaja como maestro. Especificar el sistema de decisión mediante una función lógica tomando como entradas a, b, c, d y siendo “a” el dispositivo maestro. La salida “f” será afirmativa si la válvula debe abrirse. Plantear una realización en dos niveles con el menor número de operadores. A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 00 01 11 10 00 0 0 0 0 01 0 0 1 0 11 1 1 1 1 S 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 Como dice el enunciado voy a hacer que la salida sea uno cuando los “unos” en la entrada sean mayoría o sean dos con el maestro (A) F= 10 0 1 1 1 5 AB + BCD + AD + AC 2º Se dispone de dos número en binario natural menores que cuatro y que se desea diseñar un circuito que en cada instante nos detecte si uno de ellos es nulo. Obtener dicho circuito con puertas NAND y puertas NOR. A B S 0 0 1 1 0 1 0 1 1 0 0 0 Como me piden puertas NAND y NOR tendré que tener en cuenta a las salidas “1” para las NAND y “0” para las NOR. NAND F= A´B´ NOR F = A + B´ + A´ + B+ A´ + B´ 3º Realizar la síntesis de una función lógica de cuatro variables a, b, c, y d que tome el valor lógico “1” cuando el número encuentra en estado cero. Nunca puede haber más de tres variables en estado “1” simultáneamente. Implementar la función con puertas NAND y puertas NOR. A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 - NAND F = B´C´D´ · A´ C´D´ · A´B´D´ · A´B´C´ NOR F = A + B + C + D + A + C + A+ D A+ B + C+ A´ + B + C´ 6 00 01 11 10 00 0 0 0 0 01 0 0 1 0 11 0 1 1 10 0 0 1 0 NAND NOR la NOR es fácil, hazlo tú! 4º Diseñar una red combinacional (Unidad aritmética-lógica) con dos entradas de datos D1y D2 y dos de código de operación C1, C2 y dos salidas Z1 Z2. La red debe realizar las siguientes operaciones C1 C2 D1 D2 Z1 Z2 0 0 D1 + D2 D1<D2 0 1 D1=D2 D1>D2 1 0 D1,D2 1 1 D1*D2 Sólo se dispone de puertas NAND 5º Se desea diseñar un circuito que detecte cuando un número de una sóla cifra (Codificado en BCD) es múltiplo de 3. La realización se hará en lógica de tres niveles con puertas NAND. A B C D S 0 0 0 0 0 0 1 0 0 0 1 1 2 0 0 1 0 0 3 0 0 1 1 1 4 0 1 0 0 0 5 0 1 0 1 0 6 0 1 1 0 1 7 0 1 1 1 0 8 1 0 0 0 0 9 1 0 0 1 1 10 1 0 1 0 - 11 1 0 1 1 - 12 1 1 0 0 - 13 1 1 0 1 - 14 1 1 1 0 - 15 1 1 1 1 - Las zonas marcadas en gris representan los casos imposibles. F = B´D´· BCD´ 7 00 0 1 1 0 00 01 11 10 01 0 0 0 1 11 - 10 0 1 - 6º Se dispone de un número de una sola cifra en binario codificado decimal. Diseñar un circuito en tres niveles con puertas NOR que nos detecte si dicho número es menor o igual que 5. (Admitimos que no se dispone de inversores) A B C D S 0 0 0 0 0 1 1 0 0 0 1 1 2 0 0 1 0 1 3 0 0 1 1 1 4 0 1 0 0 1 5 0 1 0 1 1 6 0 1 1 0 0 7 0 1 1 1 0 8 1 0 0 0 0 9 1 0 0 1 0 10 1 0 1 0 - 11 1 0 1 1 - 12 1 1 0 0 - 13 1 1 0 1 - 14 1 1 1 0 - 15 1 1 1 1 - 00 01 11 10 00 1 1 1 1 01 1 1 0 0 11 - F = B´ + C´ + A´ 10 0 0 - Llegamos a este dibujo y no se puede pasar a tres niveles con lo cual en vez de utilizar las combinaciones imposibles en Karnaugh para simplificar, lo que voy a hacer es no utilizarlas y me quedaría: F = A + B´+ C´· A´ + B + C 8º Aun depósito acceden cuatro canalizaciones de líquido, cada una de las cuales es capaz de suministrar un caudal determinado. Estas son controladas por 8 sendas electroválvulas cuyo estado (abierta o cerrada) depende de una variable binaria (a, b, c, d) generada por un sistema de control de acceso al depósito. Las cuatro canalizaciones de salida también están controladas por cuatro canalizaciones de salida también están controladas por electroválvulas, pero el caudal que cada una de ellas es capaz de evacuar es diferente al de las de entrada. Se pide diseñar el circuito lógico para el gobierno de las electroválvulas de salida, de tal forma que el caudal total de entrada sea igual al de salida, teniendo en cuenta que nunca podrán estar abiertas más de dos electroválvulas de entrada. Como se pide un circuito que pide la entrada y salida de agua sin que varíe el nivel y se pueden combinar aperturas para que salga el mismo agua que entra, en vez de cuatro salidas, este circuito tendrá 8 (s1, s2,...). Las cuatro primeras Ss serán iguales a la entrada por que simplemente se abrirán las mismas puertas para que salga (mismo caudal) de agua. Lo primero que debemos de hacer es un dibujo que nos sitúe en el contexto. Entradas Salidas A´ A = 5 L. B = 10 L. B´ C = 15 L. C´ Tanto por las entradas como por las salidas sale la misma cantidad de agua. Por ese motivo en la segunda solución lo que se hace es la combinación de circuitos. D = 20 L. D Circuito A B C D S1 S2 S3 S4 S11 S12 S13 S14 0 0 0 0 0 0 0 0 0 - - - - 1 0 0 0 1 0 0 0 1 1 0 1 0 2 0 0 1 0 0 0 1 0 1 1 0 0 3 0 0 1 1 0 0 1 1 1 1 0 1 4 0 1 0 0 0 1 0 0 - - - - 5 0 1 0 1 0 1 0 1 1 1 1 0 6 0 1 1 0 0 1 1 0 1 0 0 1 7 0 1 1 1 0 1 1 1 0 1 1 1 8 1 0 0 0 1 0 0 0 - - - - 9 1 0 0 1 1 0 0 1 0 1 1 0 10 1 0 1 0 1 0 1 0 0 0 0 1 11 1 0 1 1 1 0 1 1 - - - - 12 1 1 0 0 1 1 0 0 0 0 1 0 13 1 1 0 1 1 1 0 1 0 0 1 1 14 1 1 1 0 1 1 1 0 0 1 0 1 15 1 1 1 1 1 1 1 1 - - - - 9 Tenemos que tener en cuenta que para hacer puertas NOR y NAND tendremos que seguir la forma de funcionamiento de las NAND y NOR. Se me olvidó que nunca pueden estar más de dos electroválvulas abiertas y por eso lo he hecho sin tener en cuenta eso. 7º Se desea controlar dos bombas B1 y B2 de acuerdo con el nivel de líquido existente en un depósito de agua. Su funcionamiento ha de ser tal como se muestra: Cuando el nivel del líquido se encuentra comprendido entre los dos sensores “C” y “D” debe funcionar la bomba B1 (o B2 si la temperatura de su motor excede de un cierto límite prefijado), y se parará cuando se active el sensor “D”. Si el nivel del líquido se encuentra por debajo de “C” se deben activar ambas bombas. en caso de funcionamiento anormal de los sensores del depósito (se active “D” cuando no lo este “C”), ambas bombas se pararán. Además, ambas bombas cuentan con sendos detectores de temperatura “A” y “B” para B1 y B2 respectivamente, de tal forma que sé la temperatura de su motor supera un cierto límite, el detector se activará y la correspondiente bomba se parará. Se pide diseñar un circuito de control con puertas NAND y NOR. A = Sensor de temperatura de B1. Al activarse lo que hace es ceder paso al funcionamiento de B2. B = Sensor de temperatura de B2. C = Nivel de indicación de funcionamiento. D = Apagado total. A B C D S1 S2 0 0 0 0 0 1 1 1 0 0 0 1 0 0 2 0 0 1 0 1 0 3 0 0 1 1 0 0 4 0 1 0 0 1 0 5 0 1 0 1 0 0 6 0 1 1 0 1 0 7 0 1 1 1 0 0 8 1 0 0 0 0 1 9 1 0 0 1 0 0 10 1 0 1 0 0 1 11 1 0 1 1 0 0 12 1 1 0 0 0 0 13 1 1 0 1 0 0 14 1 1 1 0 0 0 15 1 1 1 1 0 0 Se trata de un depósito que lo que hace es activar o desactivar según el nivel de agua. 10 B1 = A´D´ 00 01 11 10 B2 = B´CD´ + AB´D´ 00 1 01 1 1 1 11 10 00 01 11 10 00 1 01 11 10 1 1 Poniendo puertas NAND se negaría todo dos veces, las OR también se negarían pero nos fijaríamos en los valores cero de la tabla de Karnaugh y N´= 1 9º Un proceso químico posee tres indicadores de la temperatura del punto P cuyas entradas T1, T2, T3 (T1<T2<T3). Se desea generar una señal que adopte el nivel de tensión lógico “1” si la temperatura está comprendida entre T2 y T3 o es inferior aT1, el nivel “0” en caso contrario. 1 2 Realícese la implementación con puertas AND y OR También con puertas NAND de tres niveles. A B C S 0 0 0 0 1 1 0 0 1 - 2 0 1 0 - 3 0 1 1 - 4 1 0 0 0 5 1 0 1 - 6 1 1 0 1 7 1 1 1 0 0 1 00 1 - 01 - 11 1 0 10 0 - T3 T2 T1 F = A´C´· B´C´ NAND F = C´+ B + A´ NOR 10º Se desea poder encender y apagar una lámpara desde tres interruptores diferentes, indistintamente. Se desea que cuando los tres interruptores estén en la posición que llamaremos “0” la lámpara esté apagada. Sabemos que sólo se acciona un interruptor cada vez que esté debe cambiar el estado de la lámpara. Se pide: Dar un esquema del sistema que realiza tal función en implementación NAND de tres niveles. 11 A B C S 0 0 0 0 0 1 0 0 1 1 2 0 1 0 0 3 0 1 1 1 4 1 0 0 0 5 1 0 1 1 6 1 1 0 0 7 1 1 1 1 0 1 00 0 1 01 0 1 11 0 1 A B C 10 0 1 F=C NAND Y NOR 11º En un registro de cuatro bits cuyas salidas están disponibles al exterior se almacena información en el código BCD. Determínese el bloque detector sabiendo que: a) Es un circuito que detecta que el número contenido en el registro es por no nulo. b) Asimismo detecta si el número está comprendido entre 2 y 4, ambos inclusive o es 11 ó 12 A B C D S1 0 0 0 0 0 1 1 0 0 0 1 0 2 0 0 1 0 1 3 0 0 1 1 1 4 0 1 0 0 1 5 0 1 0 1 0 6 0 1 1 0 1 7 0 1 1 1 0 8 1 0 0 0 1 9 1 0 0 1 0 10 1 0 1 0 1 11 1 0 1 1 0 12 1 1 0 0 1 13 1 1 0 1 1 14 1 1 1 0 1 15 1 1 1 1 0 F = D´C´· ABC´ · BD´· A´D´· B´CD NAND 12 B1 = A´D´ 00 01 11 10 00 1 0 1 1 01 1 0 0 1 11 1 1 0 1 10 1 0 1 0 F = A +C+ D´+B´+ C´+ D´ + B + C + D´ + A´+B + C´ + D NOR 12º Se desea obtener un sistema lógico con cuatro entradas I0, I1, I2, I3, y dos salidas f0 y f1, el estado de las salidas muestra que entrada tiene aplicado un “1” lógico: así una salida f0f1 = “11” correspondería a “1” en I3. Si dos o más entradas presentan un “1” lógico el estado de la salida corresponde al de mayor prioridad (El orden de prioridad decrece de I3 a I0. Asimismo, se desea que cuando las entradas sean todas simultáneamente “1” ó “0” la salida sea “00”). Con estas especificaciones implementar en tres niveles con puertas NAND. I3 I2 I1 I0 f1 f2 0 0 0 0 0 0 0 1 0 0 0 1 0 0 2 0 0 1 0 0 1 3 0 0 1 1 0 1 4 0 1 0 0 1 0 5 0 1 0 1 1 0 6 0 1 1 0 1 0 7 0 1 1 1 1 0 8 1 0 0 0 1 1 9 1 0 0 1 1 1 10 1 0 1 0 1 1 11 1 0 1 1 1 1 12 1 1 0 0 1 1 13 1 1 0 1 1 1 14 1 1 1 0 1 1 15 1 1 1 1 0 0 00 00 01 11 10 01 1 1 1 1 11 1 1 1 NAND: F1 = A´B · AB´ · AC´· AD´ F2 = AB´· AC´· AD´·B´C NOR: F1 = A+B + A´+B´+C´+D´ F2 = A+B´+ A + C + B´+C´+D´ 10 1 1 1 1 00 00 01 11 10 13 1 1 01 11 1 1 1 10 1 1 1 1 13º Un registro de entradas en paralelo A0 a A3 contiene un dígito codificado en BCD natural. Diseñar un sistema combinacional que genere las siguientes funciones binarias. a) F1 adoptará el estado uno si el dígito contenido en el registro es divisible por dos y el estado cero en caso contrario. b) F2 adoptará el estado uno si el dígito contenido en el registro está comprendido entre uno y cuatro ambos inclusive y el estado cero en caso contrario. c) F3 adoptará el estado uno se el dígito contenido en el registro es divisible por cuatro y el estado cero en caso contrario. Obtener la expresión mínima como suma de productos de f1, f2 y f3 consideradas como una multifunción. Implementar el circuito con puertas <NAND y NOR I3 I2 I1 I0 f1 f2 f3 0 0 0 0 0 1 0 1 1 0 0 0 1 0 1 0 2 0 0 1 0 1 1 0 3 0 0 1 1 0 1 0 4 0 1 0 0 1 1 1 5 0 1 0 1 0 0 0 6 0 1 1 0 1 0 0 7 0 1 1 1 0 0 0 8 1 0 0 0 1 0 1 9 1 0 0 1 0 0 0 10 1 0 1 0 1 0 0 11 1 0 1 1 0 0 0 12 1 1 0 0 1 0 1 13 1 1 0 1 0 0 0 14 1 1 1 0 1 0 0 15 1 1 1 1 0 0 0 00 01 11 10 00 1 0 1 0 01 0 1 0 1 11 1 0 1 0 10 0 1 0 1 00 1 01 1 11 1 10 1 00 01 11 10 00 00 01 11 10 01 1 11 10 1 1 1 No voy a volver a sacar las puertas NAND y NOR 14 14º Florencio va a ir a una fiesta esta noche, pero no solo. Tiene cuatro nombres en su agenda: Ana, Bea, Carmen y diana. Puede invitar a más de una chica pero no a las cuatro. Para no romper corazones, ha establecido la siguientes normas: Si invita a Bea, debe invitar también a Carmen. Si invita a Ana y a Carmen, deberá también invita4r a Nea o a Diana. Si invita a Carmen o a Diana, o no invita a Ana, deberá invitar también a Bea. Antes de llamarlas por teléfono, quiere utilizar un circuito que le indique cuando una elección no es correcta. Ayúdale a diseñar el circuito óptimo con puertas NAND. (Utilizar el método de Quine-Mccluskey). Ana = “A” 5 X Bea = “B” Carmen = “C” A B C D S 0 0 0 0 0 0 1 0 0 0 1 0 2 0 0 1 0 0 3 0 0 1 1 0 4 0 1 0 0 0 5 0 1 0 1 1 6 0 1 1 0 1 7 0 1 1 1 0 8 1 0 0 0 0 9 1 0 0 1 0 10 1 0 1 0 0 11 1 0 1 1 1 12 1 1 0 0 0 13 1 1 0 1 0 14 1 1 1 0 1 15 1 1 1 1 0 6 12 X Diana = “D” “S” = Salida Aplicamos McKluskey. Grado dos: 5 6 0101 0110 Grado tres: 12 14 1011 1110 Simplifico: 5 6-14 12 Nos quedaría: 0101 -110 1001 F = A´+B+C´+D + B+C+D + AB´CD 14 A 0 1 X X B 1 1 0 C 0 1 1 D 1 1 1 15º Simplificar la función de 16 variables que nos de “1” si: a) b) El equivalente binario está comprendido entre 1-5, 15-20 y 80-90. El equivalente binario es número par. 15 Por lo que entendido en el enunciado, la función será uno cuando estén activos los números arriba indicados que sean pares. 2= 4= 16= 18= 20= 82= 84= 86= 88= 00000010 00000100 00010000 00010010 00010100 10000010 10000100 10000110 10001000 Hallo McKluskey: Grupo 1: 2 4 00000010 00000100 Grupo 2: 18 82 84 88 00011000 10000010 10000100 10001000 Grupo 3: 16 86 00010110 10000110 Simplificamos: 2-82 4-84 82-86 84-86 2 X -0000010 -0000100 10000-10 100001-0 4 18 82 X X 84 88 16 86 X X X X X X X X A 1 1 0 1 0 B 0 0 0 0 0 0 0 C 0 0 0 0 0 0 0 D 0 0 0 0 1 0 1 Nos quedaría: F= B´C´DÉ´F´GH´+ B´C´DÉ´FG´H´+ AB´C´DÉ´GH´+ AB´C´DÉ´FH´+ A´B´C´DEF´G´H´+AB´C´DÉF´G´H´+ A´B´C´DE´FGH 16 E 0 0 0 0 1 1 0 F 0 1 1 0 0 1 G 1 0 1 0 0 1 H O 0 0 0 0 0 0 Problemas de diseño de utilizando circuitos MSI 1º Dada la función lógico expresada en forma de minterms f(a, b, c, d,) = (1, 3, 4, 6, 9, 12, 13, 14 ), implementarla: a) Mediante un multiplexor de tres entradas de selección (ocho canales de entrada. b) Mediante un decodificador hexadecimal. c) Mediante un demultiplexor de dos entradas de selección y los operadores lógicos necesarios. a) Multiplexado a b c d f1 0 0 0 0 0 0 1 0 0 0 1 1 2 0 0 1 0 0 3 0 0 1 1 1 4 0 1 0 0 1 5 0 1 0 1 0 6 0 1 1 0 1 7 0 1 1 1 0 8 1 0 0 0 0 9 1 0 0 1 1 10 1 0 1 0 0 11 1 0 1 1 0 12 1 1 0 0 1 13 1 1 0 1 1 14 1 1 1 0 1 15 1 1 1 1 0 I0 = F I0 = F I0 = F´ I0 = F´ I0 = F Los multiplexores tienen 2n entradas, “n” entradas de selección y una salida. Las entradas de selección se sacan tomando las entradas menos la menor peso y nos quedaría así: S0 = A S1 = B S2 = C I0 = 0 I0 = 1 I0 = 1 Comparando la Entrada “d” con las salidas sacamos y damos valores a las entradas del multiplexor Ahora lo dibujamos: Las entradas del MTPLX van a ser las salidas (In), las de selección son las arriba referidas y tiene una sola salida. 17 b)Decodificador El decodificador tiene n entradas y 2n salidas. Por lo tanto nuestro decodificador tendrá 4 entradas (a, b, c, d) y 16 salidas (S0, S1,...S15) a b c d f1 0 0 0 0 0 0 S0 1 0 0 0 1 1 S1 2 0 0 1 0 0 S2 3 0 0 1 1 1 S3 4 0 1 0 0 1 S4 5 0 1 0 1 0 S5 6 0 1 1 0 1 S6 7 0 1 1 1 0 S7 8 1 0 0 0 0 S8 9 1 0 0 1 1 S9 10 1 0 1 0 0 S10 11 1 0 1 1 0 S11 12 1 1 0 0 1 S12 13 1 1 0 1 1 S13 14 1 1 1 0 1 S14 15 1 1 1 1 0 S15 Sólo activaremos las Ss que tengan salida uno, el resto las dejaremos sin comectar. F = A´B´CD+Á´B´CD+ A´BC´D´+A´BCD´+AB´C´D+ABC´D´ +ABC´D+ABCD´ C) Demultiplexor Un demultiplexor tiene una entrada, n entradas de selección y 2n salidas. En este caso será dos de selección y cuatro salidas. a b c d f1 0 0 0 0 0 0 1 0 0 0 1 1 2 0 0 1 0 0 3 0 0 1 1 1 4 0 1 0 0 1 5 0 1 0 1 0 6 0 1 1 0 1 7 0 1 1 1 0 8 1 0 0 0 0 9 1 0 0 1 1 10 1 0 1 0 0 11 1 0 1 1 0 12 1 1 0 0 1 13 1 1 0 1 1 14 1 1 1 0 1 15 1 1 1 1 0 D0 = A´B´ D1 = A´B F = A´B´CD+Á´B´CD+ A´BC´D´+A´BCD´+AB´C´D+ABC´D´ +ABC´D+ABCD´ Teniendo en cuenta las Ds y sustituyéndolas quedaría: D2 = AB´ F = D0CD+D0CD+ DIC´D´+D1CD´+D2C´D+D3C´D´+D3 C´D+D3CD´ Simplificando quedaría: D3 = AB 18 F = D0D + D1D´+ D2C´D´+ D3(C´D´+C´D+CD´) C D 2º Realizar la síntesis del circuito lógico que cumpla las especificaciones dadas en la tabla. a) Utilizar un multiplexor de ocho canales. Necesitamos entonces tres canales de selección que los sacaremos de las entradas excepto la de menor peso, en este caso la D. S0=A, S1=B, S2=C. Como entradas tendremos las “Is” que nos dé a partir de las salidas “Z” de la tabla de verdad. A B C D Z1 0 0 0 0 1 1 0 0 0 1 0 2 0 0 0 1 0 0 3 0 0 1 1 1 4 0 1 0 0 0 5 0 1 0 1 1 6 0 1 1 0 1 7 0 1 1 1 0 8 1 0 0 0 1 9 1 0 0 1 0 10 1 0 1 0 0 11 1 0 1 1 1 12 1 1 0 0 0 13 1 1 0 1 1 14 1 1 1 0 1 1 1 1 1 0 15 Z2 I0=F´ I1=F I2=F I3=F´ I4=F´ I5=F I6=F I7=F´ 19 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 Si tenemos en cuenta que Z1=Z2´, las Is son igual pero al contrario. El dibujo del multiplexor es igual al anterior. Todos los multiplexores son iguales b) Utilizar un decodificador BCD/decimal. Recordemos que un decodificador tiene N entradas y 2n salidas. Es decimal y por eso tendremos que poner, a partir del “9” en función del la función decimal que es la que nos piden. A B C D Z1 Z2 PO 0 0 0 0 1 0 P1 0 0 0 1 0 1 P2 0 0 1 0 0 1 P3 0 0 1 1 1 0 P4 0 1 0 0 0 1 P5 0 1 0 1 1 0 P6 0 1 1 0 1 0 P7 0 1 1 1 0 1 P8 1 0 0 0 1 0 P9 1 0 0 1 0 1 P10 1 0 1 0 0 1 P11 1 0 1 1 1 0 P12 1 1 0 0 0 1 P13 1 1 0 1 1 0 P14 1 1 1 0 1 0 P15 1 1 1 1 0 1 Z2= P1+P2+P4+P7+P9+P10+P12+P15 Ahora tendremos que poner P10,P12, y P15 en función de una función decimal, entonces: P10+P12+P150= AB´C´D´+ABC´D´+ABCD Entonces: Z2= P1+P2+P4+P7+P9+A(P2+P4+P7) 3º Para el circuito de la figura, formado por un decodificador hexadecimal y un multiplexor de ocho canales, se pide deducir la tabla de verdad del sistema y su expresión lógica. 20 A B C D a b c d f1 0 0 0 0 0 1 1 0 0 0 1 0 2 0 0 1 0 0 3 0 0 1 1 1 4 0 1 0 0 0 5 0 1 0 1 1 6 0 1 1 0 1 7 0 1 1 1 0 8 1 0 0 0 0 9 1 0 0 1 1 10 1 0 1 0 1 11 1 0 1 1 0 12 1 1 0 0 0 13 1 1 0 1 1 14 1 1 1 0 0 15 1 1 1 1 1 00 01 11 10 00 1 0 1 0 01 0 1 0 1 11 1 0 1 0 I0 = F´ I0 = F I0 = F I0 = F´ I0 = F I0 = F´ I0 = F I0 = F 10 0 1 0 1 Y para el decodificador hexadecimal: A partir de el dibujo del decodificador tenemos su expresión lógica es: F = A´B´C´D+A´B´CD+A´BC´D+A´BCD+AB´C´D+ABC´D´+ABC´D 21 Al hacer Karnaugh, nos damos cuenta que la expresión lógica nos dará la suma XOR de la variables. 4º Un desplazador a la derecha de n bits es un circuito combinacional que tiene como entrada un número A, de n bits, m señales de control Sm... S0 que indican el número de posiciones que se desplazará a la derecha el número de entrada A, y genera la salida Z de n bits, correspondiente al número A desplazado. Así por ejemplo, para un desplazador de ocho bits, cuya entrada sea 1010101 y las señales de control S2, S1, S0 = 010, se genera un desplazamiento de dos posiciones a la derecha dando, como resultado, la salida XX100101. Si S2S1S0=000, no hay desplazamiento. a) Diseñe un desplazador a la derecha de n=4 y m=2 bits, utilizando 4 MPX de cuatro canales. Suponga que los bits más significativos del resultado, X, se llenan con 0. b) Dibuje las formas de ondas de las salidas, cuando A3, A2, A1, A0 = 1011 y las señales S1,S0 cambian según la secuencia 00, 01, 00, 11, 00, 10 con una frecuencia de 1Khz. a) S1 S2 a b c d Z0 Z1 Z2 Z3 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 - - - - - - - - 0 0 - - - - - - - - 0 0 1 1 1 1 1 1 1 1 S1 S2 a b c d Z0 Z1 Z2 Z3 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 - - - - 0 - - - 0 1 - - - - 0 - - - 0 1 1 1 1 1 0 1 1 1 S1 S2 a b c d Z0 Z1 Z2 Z3 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 - - - - 0 0 - - 1 0 - - - - 0 0 - - 1 0 1 1 1 1 0 0 1 1 S1 S2 a b c d Z0 Z1 Z2 Z3 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 - - - - 0 0 0 - 1 1 - - - - 0 0 0 - 1 1 1 1 1 1 0 0 0 1 15 15 15 15 22 Z0 = A Z1 = B Z2 = C Z3 = D Z0 = 0 Z1 = A Z2 = B Z3 = C Z0 = 0 Z1 = 0 Z2 = A Z3 = B Z0 = 0 Z1 = 0 Z2 = 0 Z3 = A Las tablas de posibilidades que antes he diseñado son las de las entradas de selección y los desplazamientos que estos las salidas (Z) harían. Entonces las salidas Z serían: Z0 = S1´S0´A Z1 = S1´S0´B+ S1´S0A Z2 = S1´S0´C+ S1´S0B+ S1S0´A Z3 = S1´S0´D+ S1´S0C+ S1S0´B+ S1S0A 5º Diseñar un circuito que acepte como entradas dos palabras A y B de cuatro bits, entregando a su salida otra palabra Z también de cuatro bits de tal forma que: Si A<=B Si A>B Z=B Z=1111 Utilícese para ellos el comparador de cuatro bits así como los operadores lógicos necesarios. A = (A1, A2, A3, A4) B = (B1, B2, B3, B4) El circuito nos quedaría de la siguiente manera. 001 010 100 A>B A=B A<B B1 B2 B3 B4 Z0 Z1 Z2 Z3 6º Diseñar un circuito convertidor de código que teniendo por entrada un número binario natural de cuatro bits (a), genere a la salida su equivalente en BCD natural expresado de la siguiente forma: - cuatro bits para representar las unidades. Un bit para representar las decenas Para su realización utilícese únicamente un sumador total de cuatro bits y un comparador binario de cuatro bits. 23 7º diseñar un circuito que sea capaz de sumar dos dígitos codificados en BCD natural (a3, a2, a1, a0) y (b3, b2, b1, b0) partiendo de sumadores binarios de cuatro bits como el C.I. 7483. El sistema debe disponer, además de entrada y salida de acarreo CO y CD para su posible conexión en cascada, así como de los decodificadores BCD/Siete segmentos que permitan visualizar la suma en sendos displays. 8º Diseñar un circuito combinacional cuya entrada es un número binario entero ssin signo de ocho bits, X y Y, y una señal de control MIN/AX. La salida del circuito es un binario sin signo entero Z tal que Z=min(X,Y) si MIN/MAX=1, y Z=max (X, Y) si MIN/MAX = 0. Min/Max A1 A>B A A2 A3 A<B A4 B B1 B2 B3 B4 9º en n determinado sistema microcomputador, existen tres subsistemas que procesan la información de forma independiente a través de cuatro fases de operación. Por propósitos de control, es necesario conocer: a) b) Cuándo dos o más subsistemas están en la misma fase. Cuándo exactamenjt9o dos subsistemas están en la misma fase. Cada subsistema genera una señal de dos bits para indicar en que fase se encuentra (00, 01, 10,11). Diseñe un circuito que permita conocer cuándo el conjunto de subsistemas se encuentra en alguna de las situaciones a) y b). Utiliza para ello circuitería MSI y la lógica adicional necesaria. 24 A<B A<C A A0B A=C A0 B A>B A1 A>C C A<C A0 A1 A=C C1 C0 A>C B<C A0 B=C A1 C1 C0 B>C CIRCUITOS SECUENCIALES Dentro de los circuitos secuenciales el elemento básico son los BIESTALES. Son las primera puertas lógicas que son capaces de almacenar memoria, en concreto 1 bit de memoria, pero si hacemos agrupaciones de biestables podemos ener “n” bits de memoria Los biestales son unos componentes electrónicos que reciben el nombre de “FLIPFOPS”. Las agrupaciones de estos biestables nos van a llevar a un campo de la electrónica mucho más cercano al ordenador. Nos van a llevar a REGISTROS DE DESPLAZAMIENTO, CONTADORES y CIRCUITOS SECUENCIALES (dentro de estos últimos veremos los AUTOMATAS) y además nos van a abrir un campo nuevo de trabajo dentro de la electrónica digital que es la SINCRONA con lo cual vamos a poder hacer que todas las puertas que forman el circuito trabajen simultáneamente. Esa orden por la que vamos a decir en que instante queremos que trabajen las puertas lógicas es el “RELOJ”, que va a marcar los instantes en que los circuitos pueden hacer operaciones. 25 Biestables y tipos. R-S (Set-Reset) : circuito que tiene como entradas a “S” y a “R” y como salidas a “Q” y a “Q’ ”. Normalmente son asíncronos, y su salida “11” es indeterminada. R S 0 0 0 1 1 0 1 1 R Q(n + 1) Qn 0 1 Indet. Q RS S Q’ Los biestables “R-S” se construyen de dos formas: 1) Siempre que aparezca un “11” que provoque un “1” será un biestable de inscripción prioritaria. 2) Siempre que aparezca la combinación “11” que provoque un “0” será un biestable de borrado prioritario. Construimos un circuito “R-S” con puertas “NOR”. R Q S Q’ BIESTABLES SÍNCRONOS. 26 En un ordenador todo el sistema está gobernado por un reloj maestro que envía señales cuidadosamente reguladas en el tiempo. Por lo tanto, es difícil el uso de biestables asíncronos. Esta señal de reloj es prioritaria sobre las entradas síncronas. Aunque se produzca una alteración en dichas entradas, al biestable, no producirá evolución en su salida mientras que no sea activado por la entrada de reloj. La señal de reloj es una onda cuadrada (tren de pulsos): B Clock A C D (A) (B) (C) (D) Flanco de subida. Nivel alto. Flanco de bajada. Nivel bajo. Si un biestable se activara en cualquiera de esas cuatro situaciones, permanecería inactivo durante los 3 restantes. Biestables “J-K” Es una modificación del “R-S” con el fin de eliminar la indeterminación que se produce cuando las dos entradas están activas haciendo que en dicha situación conmute la salida al estado contrario de la que se encuentra. Este biestable es síncrono (normalmente) y tendrá una entrada de reloj. Rst J 0 0 1 1 J K Q(n + 1) 0 Qn 1 0 0 1 1 Q’ Q Cl K Q’ Clear Biestables “T”. 27 Los biestables “T” obedecen a la siguiente tabla de verdad: T 0 1 Qn+1 Q Q’ T Q C Q’ EJERCICIO: ¿Cómo construiríamos un biestable “T” a partir de un “JK”? Tendríamos que forzar a que el biestable “J-K” trabaje en la zona “00” ò “11”. Por lo tanto: T J Q K Q’ Una aplicación muy típica e importante de este biestable es la división de frecuencias. La frecuencia de salida es la mitad de la aplicada a la entrada. Es decir, si meto una señal por “T” me la saca dividida entre dos (2). C Cl T Q Biestable “D”. Es un biestable capaz de seguir con la misma información de entrada a la salida y obedece a la siguiente tabla de verdad: D 0 Q 0 28 D Q C Q’ 1 1 EJERCICIO: ¿Cómo construiríamos un biestable “D” a partir de un “JK” ? J 0 0 1 1 K Q(n + 1) 0 Qn 1 0 0 1 1 Q’ D J Q K Q’ C Impedimos así que las entradas sean las mismas, con lo que obligo al “J-K” a trabajar en la zona de la tabla de verdad que me interesa. Registros de desplazamiento (Shift-registers). Nos desplazan la información que nos entre en el registro a través de los biestables con cada pulso de reloj. Hasta ahora habíamos manejado la información a nivel “bit”, ahora empezaremos a hacerlo a nivel “byte”. Vistos como bloques de información son unos circuitos que admiten entrada de información en serie y salida en serie y entrada /salida de información en paralelo. E/S Paralelo Entrada Entrada Salida Salida 29 Justamente esa información en paralelo refleja el número de “bits” que es capaz de almacenar ese registro. Es decir, con qué longitud de palabra es capaz de trabajar. Al tener “E/S” tanto en serie como en paralelo, se admiten todas las posibles combinaciones de E/S de información: Entrada serie / Salida serie Entrada serie / Salida paralelo Entrada paralelo / Salida paralelo Entrada paralelo / Salida serie En las operaciones de “E/S” en “paralelo” tendré acceso simultáneo a todos los bits de los biestables. En el caso de trabajar en “serie”, sólo tendré acceso a un biestable. Por lo tanto para poder cargar un registro de desplazamiento de información 8 bits, necesitaré 8 pulsos de reloj tanto para meter como para sacar la información. Siempre son de la misma forma: La información entra “bit” a “bit”, según los sucesivos pulsos de reloj, y sale de la misma manera y en el mismo orden en que entró, por lo que el registro tendrá una sola entrada y una sola salida. Convertiré el primer biestable en un biestable “D”, que regirá la información que entre. Tendremos además una señal de reloj que será común a todos los relojes de los biestables . clear clock clear clear clear Ja Qa Jb Qb Jc Qc Jd Qd Ka Ç Kb Ç Kc Ç Kc Ç reset reset reset reset Si me desplazan la información, significa que si me entra un “1”, quiero que me siga saliendo un “1”, y si me entra un “0” querré que me salga un "0” también. Por lo tanto, para forzar a que a mi “JK” cuando le entre un “1”, le salga un “1”, tendré que meter por “J” la información y por “K” su negada. Todos los biestables están inicializados a cero. 30 Siempre se toma la información (es decir, el primer biestable leerá la información) en el flanco de subida del pulso (1), y siempre la salida (es decir los diferentes Qi) la darán en el flanco de bajada del pulso (2). Clock Siempre se toma la información (es decir, el primer biestable leerá la información) en el flanco de subida del pulso (1), y siempre la salida (es decir los diferentes Qi) la darán en el flanco de bajada del pulso (2) Ja Qa Jb Qb Jc Qc 2. Jd Qd 1. Registros LATCH Son sistemas de almacenamiento de información con la característica de guardar la información al producirse el cambio de nivel en la señal de control. Están formados por células “R-S” síncronas activadas por nivel alto.UU clear clock clear clear clear Ra Qa Qb Qc Sa Ç Ç Ç reset reset reset Qd Kc reset C S1 GRABADO HASTA VOLVER A PONER “C”a “1”. Q1 Contadores asíncronos (Master-Slave) Un contador asíncrono me va a contar el número de pulsos (aunque sea un contador síncrono). Utilizamos biestables “JK”, todos con su señal de reloj y pretendemos que 31 este circuito nos cuente el número de pulsos de una señal No entra ninguna información del exterior, a diferencia de los restos de desplazamiento en él cual si entraba, sólo cuenta los pulsos que va haciendo. cl cl Ja Clock Qa C Ka “1” Ç rst cl cl Jb Qb Jc Qc C C Kb Ç rst Kc Jd Qd C Ç rst Kd Ç rst Normalmente, a menos que el profesor lo indique, las entradas de un contador asíncrono siempre son “1”. Esta es una buena razón para tener en cuenta a la hora de dibujar un contador asíncrono. Se dibujan directamente por que las entradas de los JK son siempre unos. Nos damos cuenta que las salidas que nos van dando son los pulsos de reloj que van pasando. Si lo pasamos a decimal vemos que pulsos de reloj son: 1, 2, 3, 4, ..., etc... (si lo pones verticalmente verás un BCD.) Clock Qa Qb Qc Qd Es capaz de contar 2n siendo “n” el número de biestables que utilicemos. En este caso hasta 16 pulsos. Este circuito tiene un grave problema y es que para que permuten todos tienen que haber permutado primero el anterior. No conmutan instantáneamente los cuatro. Caso típico: Hacer un contador asíncrono que nos cuente hasta 9. Para este caso lo que tenemos que hacer es descubrir cuando está activa la combinación “1001” y en ese momento,con entradas asíncronas, llevar los biestables a “0000”. 1 Qa 0 Qb 0 Qc 1 Qd “1” (para que se me active “clear”) X Tendré: Qa Qb Qc Qd Me dará “1” cuando tenga “1001” y se me activará mi entrada asíncrona “clear”. El circuito quedaría de la siguiente manera: Clock JJjjjjj J cl Q J Q’ K cl K Q J Q’ K cl Q J Q’ cl Q Q’ K “1” Contadores síncronos. Me van a hacer lo mismo que los asíncronos sólo que, en este caso, todos los relojes de los flip-flops van a ir conectados la misma señal de reloj. Ahora tenemos que ver cómo debemos conectar los biestables para que sean un contador. “1” J Q J cl Q J cl J cl Q Q clock K Q’ K Q’ K Q’ K Q’ Conectamos el primer biestable a “1” para que nos divida la frecuencia, cada dos pulsos de reloj una sola señal en el biestable “A”. Hacemos “la tabla de la verdad” para ver como debo de conectar estos biestables para conseguir un contador. Qd 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 Qc 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 Qb 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 Qa 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Jaka 1X X1 1X X1 1X X1 1X X1 1X X1 1X X1 1X X1 1X X1 Jbkb 0X 1X X0 X1 0X 1X X0 X1 0X 0X X0 X1 0X 1X X0 X1 Jckc 0X 0X 0X 1X X0 X0 X0 X1 0X 0X 0X 1X X0 X0 X0 X1 Jdkd 0X 0X 0X 0X 0X 0X 0X 1X X0 X0 X0 X0 X0 X0 X0 X1 Ahora hacemos “KARNAUGH” para simplificar las funciones y ver las puertas lógicas o como debemos unir los biestables para que se conviertan en un contador. JB = Qa Kb = Qa Qa Qb Qc Qd Qa Qb 00 00 01 11 10 01 X X X X 11 X X X X 10 1 1 1 1 Qc Qd 00 01 11 10 JC = Qa Qb 00 01 11 11 00 X X 01 X X 11 1 1 X X 10 X X Qc Qd 00 01 11 10 JD = Qa Qb Qc 00 01 11 10 11 1 1 1 1 10 X X X X Qa Qb 00 X X 01 X X 11 X X 1 1 10 X X Kd = Qa Qb Qc Qa Qb Qc Qd 01 Kc = Qa Qb Qa Qb Qc Qd 00 X X X X Qa Qb 00 X X 01 X X 11 X X 1 10 X X Qc Qd 00 01 11 10 00 X X 01 X 11 X 10 X X 1 X X J Q J K Q’ K cl Q J Q’ K cl Q J Q’ K cl Q Q’ EJEMPLO: Contador síncrono que nos cuente hasta 9. (1001)nos cambie a 0000. Qd Qc Qb Qa Jaka Jbkb Jckc Jdkd 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1X X1 1X X1 1X X1 1X X1 1X X1 0X 1X X0 X1 0X 1X X0 X1 0X 0X 0X 0X 0X 1X X0 X0 X0 X1 0X 0X 0X 0X 0X 0X 0X 0X 0X 1X X0 X1 Es decir, que cuando llegue a 9 Las combinaciones (a partir del 9) que no utilizan, las puedo considerar como quiera para reducir el mapa de “Karnaugh” lo más posible. JB = Qa Q’d Kb = Qa Q’d Qa Qb Qc Qd 00 01 11 10 Qa Qb 00 X 01 X X X X 11 X X X X 10 1 X 1 Qc Qd 00 01 11 10 JC = Qa Qb 00 01 11 01 X 11 1 X X 1 10 X X X X 11 X X X 10 X X X Kc = Qa Qb Qa Qb Qc Qd 00 X X Qa Qb 00 01 X X X 11 1 X X 10 X Qc Qd 00 01 11 00 X X X 01 X X X 10 X X X X 10 1 JD = Qa Qb Qc Kd = Qa Qa Qb Qc Qd 00 01 11 10 Qa Qb 00 01 11 10 X X X X X X 1 X X 00 X Qc Qd 00 01 11 10 X X 01 X X X X 11 X X X X 10 X 1 X X Construimos el circuito: “1” J Q J K Q’ K cl Q Q’ J cl Q J Q’ K cl Q Q’ K Ejercicio Diseñar un circuito que cuente de 2 (010) a 6 (110). Contamos con biestables “JK” puertas AND y OR. Para realizar el contador vamos a tener en cuenta que el “0” (000), el “1” (001) y 7 (111) son opciones imposibles y por lo tanto las utilizaremos para simplificar. A B C Jckc Jbkb Jaka --- --- --- --- --- --- --- --- --- --- --- --- 0 0 1 1 1 --- 1 1 0 0 1 --- 0 1 0 1 0 --- 1X X1 1X X1 1X --- X0 X1 0X 1X X0 --- 0X 1X X0 X0 X1 --- 00 - 01 0 1 11 X - 10 X X AB C 0 1 Qn 0 0 1 1 J 0 1 X X AB C 0 1 K Q(n + 1) X 0 X 1 1 0 0 1 00 - 01 X X 11 1 - 10 0 0 Ja= C AB C 0 1 00 - 01 X X Ka= B 11 X - AB C 10 0 1 00 - 0 1 Jb= C AB C 0 1 00 - 01 1 X 01 0 1 11 0 - 10 X X 11 1 - 10 X 0 Kb= C 11 1 - AB C 10 1 X 00 - 0 1 Jc= 1 01 X 1 Kc= 1 Contador asíncrono “descendente”. cl cl Clock Ja Qa C Ka “1” Ç rst cl Jb Qb Jc Qc C C Kb Ç rst Kc Ç rst Clock Qa Qb Qc Qd Las segundas “Qs”, repetidas, representan la bidirecionalidad (ascendencia y descendencia). Qa Qb Qc Qd La construcción de contadores ascendentes y descendentes dependen de la conexión de las salidas de los biestables con la entrada del reloj del siguiente y de donde se tome las salidas del contador. De tal forma que siempre que las salidas del contador al exterior se tomen de las salidas del biestable que ataca al reloj del siguiente biestable, el contador será ascendente. En caso contrario el contador será descendente. Existen varios tipos ascendentes/descendentes. de posibilidades de contadores a) Contador asíncrono ascendente. cl Clock cl Ja Qa C Ka Jb Qb Jc Qc C C Kb Ç “1” cl rst Kc Ç Ç rst rst cl cl b) Contador asíncrono descendente. cl Clock Ja Qa C Ka “1” Jb Qb C Ç Kb Jc Qc C Ç Kc Ç rst rst Jb Qb Jc Qc rst c) Contador asíncrono descendente. Clock Ja C asíncronos Qa C C Ka Kb Ç rst Kc Ç Ç rst rst cl cl d) Contador asíncrono ascendentes. cl Ja Clock Qa C Ka “1” Jb Qb Jc Qc C C Kb Ç rst Ç rst Conexión Salida Tipo Q---clock Q---clock Q’---clock Q’---clock Q Q’ Q Q’ Ascendente Descendente Descendente Ascendente Kc Ç rst Si pones atención te darás cuenta que este cuadro es un resumen o verifica los cuatro tipos de posibilidades de contador asíncronos: Contador basado en registros de desplazamiento. 1) Contador en anillo. Rst 2) Contador de “Johnson” En este contador no se necesita el “preset” Como se puede comprobar se trata de un contador de casi circuito cerrado (si así lo fuera no sería útil) con una entrada de “reset”, inicializada a “1” comprobarás, en el cronograma que se trata de una secuencia de inicialización. Qa Qb Qc Qd 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 Clock Qa (1) Qb (2) Qc (3) Qd (4) Inicialización a “1” Ejercicios de las hojas sueltas: 1) Diseñe un contador de módulo 4 que contenga las siguientes características: a) b) c) d) e) f) Ser síncrono y disparado por flanco de subida. Ser puesto a “0” de manera asíncrona. Inhibirse de la cuenta, manteniendo el estado almacenado. Contar hacia arriba. Contar hacia abajo. Cargar datos en paralelo. “M” va a ser nuestra entrada de control. A B M9 JaKa Ja = Ka = B’M + BM’ A B 0 0 0 1 1 0 1 1 0 1 A B M 0 1 M=0 Qn 0 0 1 1 J K 0 X 1 X X 1 X 0 00 01 11 10 0X 1X X1 X0 X1 0X X0 X1 00 01 11 10 1X X1 X1 1X X1 X1 X1 1X M=1 Q(n + 1) 0 1 0 1 Está tabla se saca : ej. tengo 00 (AB) y M = O (asc.) Por lo tanto como asciende, de “00” pasamos a “01”, en este caso nos fijamos en las “As” . Mirando en la tabla de los “JKs” nos damos cuenta que si se tiene un “0” y quieres que te salga un “0”, tus posibilidades son “00” y “01”. Tu salida será entonces “0X” Por el enunciado del problema nos hemos dado cuenta que se va a tratar de dos “flipflops” con cuatro posibilidades y dos canales como entradas de selección. Antes dije que hay una señal de control “M” que informará de si se trata de un contador descendente (M = 0) o si por el contrario será ascendente (M = 1). Por lo tanto como posibilidades de combinación están: A) Ascendencia (M = 0) Jb=Kb = 1 Ja=Ka = B M1 0 0 1 1 B) Descendencia (M = 1) Jb=Kb =1 Ja=Ka = B’ M2 Operación 0 Asc. (A) 1 Desc. (D) 0 E/paralelo (P) 1 Inhibición (I) Esta tabla representa las posibilidades que tenemos con sus respectivas entradas. Estas posibilidades son elegidas al azahar por nosotros. A B 1 1 B B’ A B D0 D1 Clock 2) Diseña un registro universal de 4 bits. En particular, debe cumplir las siguientes especificaciones: a) b) c) Ser síncrono y disparado por flanco positivo de reloj. Tener entrada de puesta a cero asíncrona. Tener las cuatro formas de operación siguientes: Inhibición. Desplazamiento a la Izquierda. Desplazamiento a la derecha. Carga de datos en paralelo. - Un “registro universal” es un registro basado en biestables “D”. Q1 Q2 Q3 Q4 R R R R D1 C D2 C D3 C D4 C Teniendo en cuenta que lo que nos piden son en realidad cuatro cosas, pondremos un multiplexor con cuatro entradas y dos de selección (S1 y S2). Dependiendo de las entradas de selección se activará la orden que hallamos asignado a esa combinación. Estas combinaciones y sus asignaciones son: S1 S2 0 0 0 1 1 0 1 1 Operación Inhibición Izquierda Derecha Paralelo Para simplificar un poco, sólo haré un multiplexor y un registro (Flip-Flop). Los tres restantes son iguales. Unidos por reloj y entrada (reset) asíncrona. Qn = E/Inhibición. Qn Q (n+1) = E/ID Q (n+1) R D1 Q (n-1) C Qn Q (n+1) = E/D DP = E/D Paralelo S1 = E/Control (1) S2 = E/Control (2) Datos/P R = Reset S1 S2 C = clock 3 Hacer un contador síncrono que nos cuente hasta cinco (5), y además que cumpla con las siguientes funciones: - Síncrono Puesta a “0” de manera asíncrona. Entrada de inhibición. Que sea ascendente y descendente. Lo primero que tenemos que tener en cuenta a la hora de desarrollar el ejercicio es que si nos piden un contador que cuente hasta cinco, sabremos que se trata de un circuito de 3 flip-flops (A, B y C). Como también nos pide que sea asc. y des., tendremos que utilizar una señal de control (M). Cuando M = 0, ascenderá y cuando M = 1 descenderá. “M” va a ser nuestra entrada de control. A B C 0 0 0 0 0 0 1 1 0 1 0 1 0 1 2 3 - Cuando M = “0”, asciende (barra de la izquierda). - Cuando M = “1”, desciende (barra de la derecha). 1 1 0 0 4 5 0 1 Si nos fijamos la tabla de la verdad está hecha hasta el “5”. A partir del número cinco , hasta el siete, serán asteriscos que podremos combinar para simplificar. Si el contador sólo cuenta hasta cinco, el número superior a cinco (101) será el cero (000). Y el número inferior a cero (000) será el cinco (101). Ja=ka A B CM 00 01 11 10 00 0X 1X 0X 0X 01 0X 0X 0X 1X Jb=Kb 11 X X X X 10 X0 X1 X0 X1 11 X X X X 10 X1 1X X1 X1 A B CM 00 0X 0X 0X 1X 00 01 11 10 01 X0 X0 X0 X1 11 X X X X 10 X0 1X OX 0X Jc=kc A B CM 00 01 11 10 00 1X 1X X1 X1 01 1X IX X1 X1 Ja = Ka = B’C’M + BCM’ +ACM’ Jb = Kb = BC’M + ACM’ + A’B’CM’ Jc = Kc = 1 Qn 0 0 1 1 J K 0 X 1 X X 1 X 0 Q(n + 1) 0 1 0 1 Mirando las combinaciones de A, B, C y M, rellenaremos las tablas de “Karnaugh”. Hechos los mapas, y teníendo en cuenta que M = “1” ò “0”, haremos estas dos opciones por separado sustituyendo primero por “0” y luego por “1”. M = “0” (Ascend.) M = “1” (Descend.) Ja = Ka = C ( A + B ) Jb = Kb = C ( A + A’ B’ ) Jc = Kc = 1 Ja = Ka = B’C’ Jb = Kb = BC’ Jc = Kc = 1 Bueno, ahora sólo queda dibujar el circuito. Acoplamos un multiplexor para que lo vamos a necesitar para ajustar las entradas de control y las cuatro de selección. 3) La Unidad de Control de un sistema digital dispone de 3 entradas S0, S1 y S2 y su diagrama de estados se corresponde con el que se muestra en la figura. S0 = 1 S0 = 0 A B S1 = 0 S3 = 1 S1 = 1 S2 = 1 D S2 = 0 C Diseñar la Unidad de Control utilizando: - Un contador y un decodificador como componentes básicos. Un registro de desplazamiento y un decodificador como componentes básicos. a) A partir del diagrama de estados sacamos las conclusiones que nos llevarán a la solución del problema (normalmente N’ = N (negada). En esta ocasión no será así.) Damos valores a cada uno de los estados: S0’ = 00 S1’ = 01 S2’ = 10 S3’ = 11 Sacamos toda la información que nos hace falta para hacer el siguiente cuadro: Est. Inicial S2,S1,S0 Es. Final L H E1 E0 S0’ = 00 S0 = 0 (asc.) S0 = 1 (desc.) S0 = 01 S0 = 00 0 1 1 0 X 0 X 0 S1’ = 01 S1 = 0 (desc.) S1 = 1 (asc.) S1 = 00 S1 = 10 1 0 0 1 0 X 0 X S2’ = 10 S2 = 0 (desc.) S2 = 1 (asc.) S2 = 10 S2 = 11 1 0 0 1 1 X 0 X S3’ = 11 --------- S3 = 11 0 1 1 1 Las “x” las saco cuando son las “Sn” son ascendentes. Recordemos que los contadores cuentan ascendiendo normalmente. Tendremos entonces como entrada “L”: L = S0’S0 + S1’S1n + S2’S2n + S3’ (no entiendo de donde sale el ”S3’) Como “H” tendremos H = Ln (“H” = a “L” negada) Y como “En”: Como “En”: ¡¡ hazlas tú!! Nuestro circuito nos quedaría así: S0’ S0n Q1 S1’ Q2 S1n S2 L S2n H S2n E1 E0 S3’ B) En la parte “b” se pide un registro de desplazamiento y un decodificador como componentes básicos. A partir del diagrama de estados sacamos las conclusiones que nos llevarán a la solución del problema. Damos valores a cada uno de los estados: S0’ = 00 S1’ = 01 S2’ = 10 S3’ = 11 Sacamos toda la información que nos hace falta para hacer el siguiente cuadro: Est. Inicial S2,S1,S0 Es. Final D I E1 E0 S0’ = 00 S0 = 0 (Dch.) S0 = 1 (Izd.) S0 = 01 S0 = 00 1 0 0 1 0 X 1 X S1’ = 01 S1 = 0 (Izd.) S1 = 1 (Dch.) S1 = 00 S1 = 10 0 1 1 0 0 X 0 X S2’ = 10 S2 = 0 (Izd) S2 = 1 (Dch.) S2 = 10 S2 = 11 0 1 1 0 1 0 0 1 S3 = 11 1 0 X X S3’ = 11 Como en este caso se trata de un registro, los desplazamientos posibles son hacia la derecha (D) y hacia la izquierda (I). Las entradas de selección del registro (E1, E2) serán “X” cuando el estado al que vaya la “ Sn’” sea su propio estado. Las “X” las saco cuando son “las “Ss” que coinciden con la función del registro en sí. Lo primero que vamos a sacar son los componentes de las dos entradas de selección (A1, A2). E1 0 0 1 1 E2 0 1 0 1 OPERACION Inhibición Derecha Izquierda Datos Ahora sacaremos lo que vale cada uno de los componentes (E1, E2, D, I). D = S0’S0n + S1’S1 + S2’S2 + S3’ I = S0’S0 + S1’S1n + S2’S2n E1 = S2’S2n E0 = S0’S0n S3’ S0’ S3n Q1 S0n S1’ S2’ Q0 S2n S3’ S3n E1 E2 S1n S2’ S2n S4’ DECOD. S4n S0’ S3’ S3n 4) Diseñar un sistema que permita visualizar el turno de espera en un establecimiento comercial mediante dos dígitos decimales se utilizará para ello un contador decimal. Dicho sistema debe ir provisto de un mecanismo que permita saltar uno o varios números sin que aparezcan visualizados,... , siempre que el vendedor así o desee. Para ello se utilizará un “Lach” de cuatro bits. Para realizar el sistema utilizaré un contador decimal normal que cuenta de “0” a “100” que irá unido a un registro de desplazamiento LATCH que hará que visualice lo que le digamos a través de los “7 segmentos”. En el caso de un contador decimal que cuenta hasta 100, lo normal sería tener dos contadores: uno para las unidades y otro para las decenas. Sólo haré el referente a las unidades Conociendo el funcionamiento de los “Latch” nos damos cuenta que en el momento en que se interrumpa el estado “1” de reloj, ósea que se ponga a “0”, dejará de ser visualizado el número que venga después de pulsar el botón. Este botón corta la corriente continua de “1” y por eso no se visualiza nada mientras se mantenga pulsado. En el resultado tenemos cuatro salidas que tenemos que meter en un “BCD- Siete segmentos”, para ello usamos un codificador al que supuestamente hemos dado valores a sus variables: 00, 01, 10,... (la tercera entrada del “7-segmt.” la dejamos libre por que no la necesitamos). 5) Diseñar un circuito capaz de simular un dado digital mediante biestables “D” del tipo 7474 y puertas “AND”, “OR” de dos entradas. El circuito dispondrá de un display para poder visualizar el número seleccionado, además de un pulsador de “reset” y otro de marcha (M), de tal forma que el número obtenido dependa del tiempo que se esté actuando sobre este último. El fundamento será un contador con reloj. Cuando aprieto cambia rápidamente y cuando dejo de apretar se visualiza el número. Lo que quiere decir que la señal “M” actuará con el reloj: Hacemos los pasos de siempre para desarrollar el problema: A -0 0 0 1 1 1 B -0 1 1 0 0 1 C -1 0 1 0 1 0 Qc -0 1 0 1 0 1 0 1 00 X 0 01 1 0 11 1 X 10 1 0 Qc = c` 0 1 00 X 1 01 1 0 11 0 X 10 0 1 Qb = a’c’ + b’c Qb Qa -1 1 0 0 1 0 -0 0 1 1 1 0 -- -- -- -- -- -00 X 0 0 1 01 0 1 11 0 X 10 1 1 Da = ab’ + bc Tenemos que tener en cuenta que vamos a hacer este circuito con biestable “D”, y por lo tanto tendremos que tener en cuenta la tabla de la verdad de los biestables “D” y sus salidas. Ahora dibujamos el circuito: Rst A Da C Db Dc C’ ……… ……… ……… ……… ……… ……… ……… ……… Autómatas: son circuitos secuenciales en……… los que la salida depende de la entrada y de la historia anterior de circuito. ……… ……… ……… X Z Nos interesa que para una determinada ……… entrada, la salida dependerá del estado en ……… el que yo estoy. …c Circuitos secuenciales TIPOS DE AUTOMATAS 1) Síncronos: la evolución del circuito está sincronizada por una señal externa del reloj. Existen “RS” y “JK”. 2) Asincronos: la evolución del circuito no depende de señales externas. Los asíncronos por realimentación directa no necesitan ningún elemento de memora adicional. Estructura General. Z AX1 Comb. C. Mem. Xn Xn+1 Ym+t Yit X = 2n vectores entradas n = número de variables de entrada. Y = 2m estados intermedios m = número de variables de estados. Z = 2p vectores salida p = número de variable de salida. “Yt+1” que dependerá del valor de estado “it” y la entrada “X”. Luego se genera el vector de estado “Yi+1” y se guarda en la memoria. AUTOMATA DE “MOORE” (Salida “Z” = f(x)) Circuito combinacinal Memoria ESTADO / SALIDA TRANSANCION Circuito combinacional de salida Zn AUTOMATA DE “MOORE” ( j“Z” = f(x)) Circuito combinacinal Circuito combinacional de salida Memoria Como salida se tiene el funcionamiento de estados internos. ESTADO ENTRADA SALIDA En los dos casos (“Moore” y “Mealy”), la memoria representa el estado de ese circuito. Autómatas síncronos Son autómatas en los que los elementos de memoria están sincronizados mediante una señal externa. (J-K) Esquema general mediante “J-K” de una autómata síncrono: JomKom Xom Comb. C Qom Qt Qt+1 X X Qt+2 JK X Procesos del diseño de un autómata síncrono: 1.Obtención del diagrama de flujo teniendo en cuenta las especificaciones del sistema a diseñar. 2.Grafo de transiciones. 3.Simplificación del nº de estados del grafo. 4.Codificación de estados. 5.Programación “flip-flops” para que sigan la secuencia de estados obtenida. 6.Simplificación por “Karnaugh”. 7.Implementación. EJEMPLO: Diseñar un circuito secuencial síncrono para que la salida Z = 1 si “X” ha sido “1” durante 3 ó más intervalos consecutivos de reloj. Lo haremos tipo Moore. Lo primero que tendremos que ver es el número de estados (m). N = número de variables. 2n = m 1 Obtención del diagrama C X X Z (salida) Z C Como se puede ver, hemos construido el cronograma de acuerdo con la información que el enunciado nos ha dado (cuando “X” se mantiene pulsado 3 ó más pulsos de reloj, se activa “Z”). 0/0 2 Grafo de transiciones. 0 “1” 0 1/0 0 2/0 0 3/1 1 3 Simplificación de estados Se simplifican algunos estados en los que con las mismas entradas evolucionan al estado siguiente con las mismas salidas. 0/0 Estado t + 1 Estado actual 0 1 0/0 1/0 2/0 3/1 0/0 0/0 0/0 0/0 1/0 2/0 3/1 3/1 0 0 = 00 0 0/1 1 = 01 0 2 = 10 1/0 3 = 11 0 1/1 1 Nos damos cuenta que son iguales y veremos si se puede simplificar. Podríamos simplificar aquellos estados que con las mismas entradas producen el mismo estado siguiente y las entradas que producen el mismo estado siguiente y las mismas salidas. Codificación de estados X 0 1 0 1 0 1 0 1 4 Q1t Q2t Q1t+1 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Q2t+1 0 1 0 0 0 1 0 1 J1K1 J2 K2 0X 0X 0X 1X 0X 1X X1 X1 X1 X0 0X 1X X1 X0 X1 X0 Implementación de estados Z 0 0 0 0 0 1 0 1 A la hora de hacer lo de las “Jk”, sólo tendre en cuenta a las Qs. La “X” son entradas. Lo vamos a hacer con “JK” y tendremos en cuenta dos posibilidades: “0” y “1” J1= Q2X BA X 00 0 01 01 1 11 X X K1 = X’ 10 X X BA X 00 01 00 X X J2=X AB C 00 0 1 X 01 X X 01 X X 11 1 0 10 1 0 K2 = Q’1 +X’ 11 X X 10 1 X AB C 0 1 00 X X 01 1 1 11 1 0 10 X X Z = XQ1 AB C 00 0 1 0 1 01 11 10 1 1 Implementación. X 2º Autómata tipo “Maley”. La salida depende tanto de la entrada como del estado. Por lo tanto no es necesario que ambos estados tengan la misma salida para poder simplificar. 0/0 0/0 1/0 0/0 1/0 0/0 0/0 0/0 0 00 1 01 2 10 En la hoja anterior he dibujado el grafo de transición o de estados simplificado. Al lado lo que hemos hecho es la codificación. El estado “11” nunca será posible. 2n = m 2n = 3 X 0 1 0 1 0 1 0 1 Q1t Q2t Q1t+1 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 -- -1 1 -- -- Q2t+1 0 1 0 0 0 1 - -- J1= Q2X BA X 00 0 01 J1K1 J2 K2 0X 0X 0X 1X 0X 1X X1 X1 X1 X0 0X 0X XX XX XX XX Z 0 0 0 0 0 1 --- A la hora de hacer lo de las “Jk”, sólo tendre en cuenta a las Qs. La “X” son entradas. K1 = X’ 01 1 11 X X 10 X X BA X 00 01 J1= Q2X BA X 0 01 00 1 00 X X 01 X X 11 X X 10 1 11 X X 10 X X K1 = X’ 01 X X 11 X X 10 BA X 00 01 00 X X 01 1 1 J1= Q1’X BA X 00 0 01 K1 = 1 01 1 11 X X BA X 10 X X X 00 01 00 X X 01 1 1 11 X X 10 X X Z = Q1X Z EJEMPLO: Diseñar un sistema secuencial síncrono con una sola entrada por la que recibe dígitos binarios. Responde a un con un pulso de duración igual a un ciclo de reloj, cuando se recibe la secuencia 11011 considerando solapamiento, implementar dicho autómata con biestables “J-K”. EJEMPLO: Tengo dos interruptores para una bombilla, queremos construir un sistema para que cuando pulse el pulsador “A” se encienda y cuando pulse el pulsador “B” se apague. Lo primero que debemos de hacer en estos casos es identificar las posibles combinaciones y salidas y ponerlas en la tabla de fases. También vemos que tenemos dos pulsadores (“Pa” y “Pb”). Pa Pb 00 01 11 10 L 1 4 4 1 3 3 3 ------------- 2 2 2 0 1 1 0 1 3 ---- 2 0 Q Pa = Encendido Pb = Apagado 0 4 3 ---- 2 1 1 Se trata de ver las posibilidades sin variar más de un bit. Hemos tenido en cuenta que el estado “11” no es válido por no poderse activar los dos a la vez. La segunda tabla representa las simplificaciones. Seguidamente pasamos a hacer la tabla de “Tabla de verdad.” Pa Pb 00 10 01 00 10 01 Pa Pb Q 1 0 S Q Qt+1 1’ 2’ 3’ 4’ 2 3 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 0 00 1 0 01 0 0 11 0 0 10 1 1 Qt+1 = a la “Q” del estado estable al que vaya. Tenemos entonces que: Qt+At = (Pb)’ + Pa(Pb)’ El dibujo del circuito quedaría: Pa S Pb EJERCICIOS HOJAS SUELTAS. Diseños heurísticos 1) Utilizando un contador binario/decimal diseñar un sistema que permita visualizar mediante dos dígitos decimales el tiempo disponible durante una prueba concurso. Estas pruebas podrán tener una duración de 60 0 90 segundos. Utilícese decodificadores BCD/Siete segmentos así como las puertas NOR de dos entradas que sean necesarias. Lo que está claro es que se trata de dos tipos de contadores descendentes. Uno para las unidades y otro para las decenas. Como resulta que son dos pruebas concurso, una de 90’’ y otra de 60’’. Con lo cual en realidad tendremos cuatro contadores: 3 de nueve a cero y uno de seis a cero. Todos ellos tendrán que ir conectados a un BCD siete segmentos. Contadores descendentes (9-0) (6-0) Jaka Jbkb Jckc Jdkd Jaka Jbkb Jckc Qa Qb Qc Qd 0 0 0 0 0 1X 0X 0X 1X 1X 1X 1X 1 0 0 0 1 0X 0X 0X X1 0X 0X X1 2 0 0 1 0 0X 0X X1 1X 0X X1 1X 3 0 0 1 1 0X 0X X0 X1 0X 0X X1 4 0 1 0 0 0X X1 1X 1X X1 1X 1X 5 0 1 0 1 0X X0 0X X1 X0 0X X1 6 0 1 1 0 0X X0 X1 1X X0 X1 1X 7 0 1 1 1 0X X0 X0 X1 - - - 8 1 0 0 0 X1 1X 1X 1X 9 1 0 0 1 0X 0X 0X X1 10 1 0 1 0 - - - - 11 1 0 1 1 - - - - 12 1 1 0 0 - - - - 13 1 1 0 1 - - - - 14 1 1 1 0 - - - - 15 1 1 1 1 - - - - Las zonas marcadas en gris representas los casos imposibles. Ahora pasaremos a pasar esta información de las “tablas de verdad” a “Karnaugh”. Pasaremos ahora a hacer la parte que va de 9 a 0. Ja = b’c’d’ 00 01 00 1 0 01 0 0 11 - Ka = cd’ 10 X 0 00 01 00 X X 01 X X 11 - 10 1 0 11 10 0 0 0 0 - - 11 10 Jb = acd’ 00 01 11 10 00 0 0 0 0 01 X X X X 11 - X X 00 01 11 10 01 X 0 11 - - - Kb = c’d’ 10 1 0 - 00 01 11 10 00 X X X X Jc = a’b’ 00 1 X 1 X X 01 1 0 0 0 11 - 10 X X - Kc = ab + bd’ 10 0 X - 00 01 11 10 00 0 0 X X 01 1 0 X X 11 - 10 X 1 - 00 01 11 10 00 X 1 1 X 01 X 1 1 X 11 - 10 X 1 - Jd = Kd = 1 00 01 11 10 00 1 X X 1 01 1 X X 1 11 - 10 1 X - Este “Karnaugh” lo tendremos que tener en cuenta a la hora de construir la circuiteria. Tendremos que usarlo tres veces. Ja = c’ AB C 0 1 00 1 0 01 0 0 Ka= b 11 x - 10 x x AB C 0 1 00 x x 01 x x Jb = ( a’b )c’ AB C 00 01 11 10 11 1 - 10 0 0 Kb = 1 AB C 00 01 11 10 0 1 1 0 x 0 1 - 0 x 0 1 x x Jc =1 AB C 0 1 00 1 x 01 1 x 1 x x - X 1 Kc = 1 11 1 AB C 10 1 x 0 1 00 x 1 Después de terminar “Karnaugh” tenemos: (0-9) Ja = b`c`d Ka = cd’ Jb = acd’ Kb = c’d’ Jc = a’ b’ Kc = ab + bd’ Ja = c’ Ka = b Jb = (a’b)c’ Kb = 1 Jc= 1 Kc = 1 (0-6) Jd = 1 Kd = 1 01 x 1 11 x 1 10 X 1 Por motivos de espacio he tenido que agrupar las salidas de los contadores al meterlas a los “7-segmentos”. Para hacer la segunda parte, haremos exactamente lo mismo pero teniendo en cuenta que este contador descendente va de 6 a 0. Tendremos que hacer, entonces el otro contador que nos queda. Existe un defecto de diseño. Si te das cuenta, los visualizadores de los BCD deberían ir al revés. Para terminar con el ejercicio, haremos un interruptor que decide si se activa el contador “A” o el “B” (9-0,6-0). Interruptor A (9-0) (6-0) B 2) Utilizando un registro de desplazamiento del tipo 74195 y los operadores lógicos necesarios, diseñar un sistema que cumpla la secuencia de funcionamiento especificada en el diagrama de tiempos de la figura. Qa Qb Qc Qd J SHIFT-REGISTERS K CK Clear shift/Load B C D A Es evidente que de lo que se trata es de un registro de desplazamiento disparado por flanco de subida con cuatro “bits”. Tendremos que tener en cuenta la tabla de los “JK” Qn 0 0 1 1 J 0 1 X X K X X 1 0 Q(n + 1) 0 1 0 1 Qd Qc Qb Qa 0 0 0 1 X1 1X 0X 0X 0 0 1 0 1X X1 1X 0X 0 1 0 1 X0 1X X1 1X 1 0 1 1 X1 X0 1X X1 0 1 1 0 0X X1 X0 1X 1 1 0 0 0X 0X X1 X0 1 0 0 0 0X 0X 0X X1 0 0 0 0 1X 0X 0X 0X Ja = a’b’ 00 01 11 10 00 1 X 1 01 X 0 11 0 - Jaka Jbkb Jckc Jdkd Ka = b’ 10 0 X - 00 01 11 10 00 X 1 X 01 0 X Jb = d 00 01 11 10 00 0 1 X 01 1 X 00 01 11 01 X - 10 X 1 - Kb = c’ 11 0 - 10 0 X - 00 01 11 10 Jc= c + ad 00 0 0 - 11 X - 11 X - 00 X X 1 01 X 1 11 X - 10 X 0 - 11 1 - 10 X X - Kc = c’ 10 0 1 - 00 01 11 00 X X - 01 1 - 10 1 X - - 10 Jd = b 00 01 11 10 00 0 0 0 01 1 1 X 0 - - 11 0 - 10 1 1 - Kd= b’ 11 X - 10 X X - 00 01 11 10 00 X X X 01 X X Antes de dibujar debo de hacer el comentario acerca del registro que hemos construido. Por supuesto que se trata de un registro de desplamiento que lo hace al revés de cómo estamos acostumbrados. 6) Se dispone de tres registros con datos (R0,R1,R2,R3,) y una ALU, todos de n bits operandos y o destino del resultado. El registro fuente del dato A es seleccionado por dos bits, A1, A0, el de B por B1, y B0; y el destino por D1 y D0. Muestre la estructura del sistema e implemente un esq2uema de conexión basado en multiplexado, usando registros con terminales de entrada y salida separados 7) Se dispone de una señal binaria con periodo de 1 minuto, contadores módulo 10 disparados por flanco negativo con entrada “clear” síncrona activa en alta y salida de acarreo (carry), visualizadores de 7 segmentos con entradas BCD y puertas lógicas. Diseñe un reloj digital que muestre las horas y minutos. Como de entrada se dispone de una señal digital de periodo un minuto, nos ahorramos el segundero. Empezaremos por eºººº l minutero (lo forman los dos primeros contadores empezando por la izquierda). Estos se encargarán de ir contando los minutos y estarán a su vez conectados con otros dos contadores que harán de horas (los dos de la derecha). El funcionamiento es sencillo. Para el minutero y para los visualizadores de las horas he utilizado la misma forma de trabajo. Contadores con ordenes de parada y trabajo através de las salidas. Así cuando el minutero llega a 59, automáticamente se pondrá a “00” y al pasar esto (ponerse a “00”) se dará la señal que pone en funcionamiento el siguiente contador y empezará a contar según le vayan entrando los pulsos. Por supuesto que podría haberlo hecho con 10 módulos pero por problemas de aburrimiento y por que de la manera ejecutada es más clara y concisa pero el planteamiento que se pide en el enunciado y el mio es igual sólo que simplificado. 8) Diseñar un sistema con 4 registros de 8 bits que en cada momento permita escribir en alguno de los 4 registros y leer alguno de los 4. Según yo he interpretado en el enunciado, lo que queremos es un sistema de registros de desplazamiento ocho bits cada uno que visualicen la información en paralelo que le vamos metiendo paralelamente también. Utilizaré un contador que unirá todos los registros y un “7-segmentos” que visualizará la salida de la inforación. Pasamos al planteamiento de la tabla de la verdad para hacer el contador con entradas “D”. A B C D Qa Qb Qc Qd 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 2 0 0 1 0 0 0 1 1 3 0 0 1 1 0 1 0 0 4 0 1 0 0 0 1 0 1 D Q 0 0 1 1 5 0 1 0 1 0 1 1 0 6 0 1 1 0 0 1 1 1 7 0 1 1 1 1 0 0 0 8 1 0 0 0 1 0 0 1 9 1 0 0 1 1 0 1 0 10 1 0 1 0 1 0 1 1 11 1 0 1 1 1 1 0 0 12 1 1 0 0 1 1 0 1 13 1 1 0 1 1 1 1 0 14 1 1 1 0 1 1 1 1 15 1 1 1 1 0 0 0 0 Como usamos biestables “D” en el contador sus salidas serán las que he especificado en su tabla. Pasamos a hacer las tablas de “Karnaugh”: A= 00 01 11 10 a’bcd + (c’+ b’+ d’)a 00 0 0 0 0 01 0 0 1 0 11 1 1 0 1 10 1 1 1 0 B= cd (a’b’+ ab) +c (a’b + ab’) + d’(a’b + ab’) 00 01 11 10 00 0 0 1 0 01 1 1 0 1 C =c’d + cd’ 00 01 11 10 00 0 1 0 1 01 0 1 0 1 11 0 1 0 1 10 0 1 0 1 11 0 0 1 0 10 1 1 0 1 D = d’ 00 01 11 10 00 1 0 0 1 01 1 0 0 1 11 1 0 0 1 10 1 0 0 1 Básicamente el circuito quedaría así. Para que aparecieran los códigos siete segmentos, tendríamos que hacer el mismo proceso que en el problema 1. Para que quede visualizado todo lo que entre previamente. AUTOMATAS SINCRONOS (ejercicios) 1º Sistema secuencial síncrono con una entrada por la que recibe dígitos binarios 11011. 0/0 0 Después del grafo pasamos a simplificarlo. 1/0 1 1/0 0/0 1/0 1/0 2 1 1/0 3 2 0/0 1/0 0/0 0/0 4 0/0 0/0 0/0 1/0 0/0 0 0/0 3 1/1 1/0 5 Pasamos a hacer la codificación de estados 0=000 1=001 2=010 3=011 4=100 1/1 4 0 1 2 3 4 0 1 0/0 0/0 3/0 0/0 0/0 1/0 2/0 2/0 4/0 5/1 t+1 X 0 1 0 1 0 1 0 1 0 1 Q1Q2Q3 000 000 001 001 010 010 011 011 100 100 Q1Q2Q3 000 001 000 010 011 010 000 100 000 010 J1K1 0X 0X 0X 0X 0X 0X 0X 1X X1 X1 J1 = XQ1Q2Q3 00 01 11 10 00 0 0 0 0 01 X J2 = 00 01 11 10 00 0 0 X 0 01 0 11 X 10 0 0 1 0 XQ1´Q3 11 X 10 0 1 X 0 J3 = X´Q1´Q2 + XQ1´Q2´ 00 01 11 10 00 0 X X 1 01 0 11 0 10 1 X X 0 Z =XQ1Q2´Q3´ 00 01 11 10 00 0 0 0 0 01 0 11 1 10 0 0 0 0 J2K2 0X 0X 0X 1X X0 X0 X1 X1 0X 1X J3K3 0X 1X X1 X1 1X 0X X1 X1 0X 0X Z 0 0 0 0 0 0 0 0 0 1 K1 = Q2´Q3´ 00 01 11 10 00 X X X X 01 1 11 1 10 X X X X K2 = Q1´+ Q2´Q3´ 00 01 11 10 00 X X 1 X 01 X 11 1 10 X X X 1 01 X 11 X 10 X 1 1 X K3 = Q1´ 00 01 11 10 00 X 1 1 X 2º Se desea controlar la marcha del motor de un ascensor (estado de marcha y sentido de giro) mediante un circuito secuencial pilotado por reloj. El ascensor presta servicio entre dos pisos y puede suponerse que el pulso de reloj se produce ya sea al pulsar un botón de llamada o bien cuando el ascensor llega a un piso y también que las salidas del sistema se mantienen (por un sistema que no se analizará) en el intervalo entre pulsos. Impleméntese un circuito que realice dichas función sabiendo que no se activan dos entradas a la vez. 1) Se desea diseñar un sistema secuencial síncrono que suministre una señal e inicialice su estado cada vez que en su entrada recibe dos ceros después de haber recibido como mínimo dos unos. 0/0 0 1/0 0/0 1/0 1 0/0 1/0 1 1/0 1/0 0/1 1/0 1/0 2 0/0 0/0 0 2 0/0 3 0/0 3 1/0 0/1 4 Después de simplificar quedaría de la siguiente manera. 0 1 0/0 0/0 3/0 1/1 1/0 2/0 2/0 0/0 Codificación de estados: 0 1 2 3 1/0 0=00 1=01 2=10 3=11 t+1 X Q1Q2 Q1Q2 J1K1 J2K2 Z 0 1 0 1 0 1 00 00 01 01 10 10 00 01 00 10 11 10 0X 0X 0X 1X X0 X0 0X X1 X1 X1 1X 0X 0 0 0 0 0 0 0 1 11 11 00 01 J1 = 0 1 00 0 0 01 0 X X1 X1 XQ2 11 0 X 0 1 01 1 X 11 0 X 0 1 K1 = 1 10 0 1 J1 =X´Q1 00 0 X X1 X0 00 01 00 X X 01 X 1 11 X 1 10 X X 11 X 0 10 1 1 K1 = X´+ Q1´ 10 X X 00 01 00 X 1 01 X 1 Z =XQ1Q2 0 1 00 0 0 01 0 0 11 0 1 10 0 0 2) Se dispone de dos números en binario, A y B, apareciendo simultáneamente un bit de cada número, comenzando por el menos significativo, con cada pulso de reloj. Diseñar un circuito secuencial pilotado por cada pulso de reloj que vaya detectando si A>B ó A<B o A=B. El tiempo, durante el cual se realiza la comparación, está gobernado por la presencia de una señal externa, x(x=”1”). Durante el tiempo en el que x no esté presente (X=”0”) el sistema debe responder independientemente de las últimas comparaciones realizadas, para cuando vuelva a ser x=”1” comenzar una nueva comparación. Por lo que yo entiendo, se tratará de una secuencia de dos dígitos binarios que será : 0001-10-11, que por este orden también serán los estados 0, 1, 2, 3. También doy valores: A<B=01 A>B=10 A=B=00 0 1/1 0/0 1/1 1 0/0 0/0 2 AB 0 1 00 01 10 11 1/0 2/0 3/0 0/0 0/1 1/1 2/1 3/1 1/1 0/0 3 t+1 X Q1Q2 Q1Q2 J1K1 J2K2 Z 0 1 0 1 0 1 0 1 00 00 01 01 10 10 11 11 01 00 10 01 11 10 00 00 0X 0X 1X 0X X0 X0 X1 X1 1X 0X X1 X0 XI 0X X1 X1 0 1 0 1 0 1 0 1 J1 = XQ1´ 0 1 00 0 1 01 X X K1 = Q2 11 X X 10 0 0 J2 =X´ 0 1 00 1 X 0 1 00 X X 01 0 1 11 0 1 10 X X 01 1 1 11 X 1 10 X 0 K2 = X´+`Q2 01 X X 11 0 X 10 0 X 01 0 0 11 1 1 10 1 1 0 1 00 X 1 Z =X 0 1 00 0 0 3) Un sistema de detección de temperatura proporciona cuatro niveles codificados en binario (00, 01, 10, 11). Se activa una alarma cuando detecta el nivel 3 11 ó cuando detecta el nivel 2 10 en 2 ciclos seguidos de reloj y debe desaparecer cuando se detecta el nivel 00 ó el nivel 01 en dos ciclos consecutivos de reloj. Implementar dicho sistema. Teniendo en cuenta que los estados de las temperaturas tendrán tres formas de evolución (subir, bajar y quedar constante) daremos valores a esas tres formas y quedan para SUBIR=11, BAJAR =00 y ESTABILIZAR=01 0 01/0 00/0 11/0 01/0 1 11 00/0 11/0 2 00/1 01/1 Q1Q2 00 11 01 00 11 01 00 11 01 00 11 01 00 00 00 01 01 01 10 10 10 11 11 11 00 01 11 10 J2 = 0 X X Q1Q2 J1K1 J2K2 01 00 00 10 01 01 11 10 10 0X 0X 0X 1X 0X X1 X0 X0 X0 1X 0X X1 X1 X0 1X 1X 0X X1 11 X0 X0 00 Z 0 0 0 0 0 0 0 1 1 1 0 1 K2 = X1X2Q2´+ X1´X2´Q1Q2´ 01 0 0 X X 11 0 1 10 X X1X2Q2´+ X1´X2´Q1Q2´ 00 01 0/0 1/0 2/1 3/1 01/1 J1 =X1X2Q1´Q2 00 0/0 1/0 2/1 00 1/0 2/0 3/0 11/1 3 X 0 1 2 3 01 0 11 1 X1X2 Q1Q2 00 00 01 11 10 X X 1 01 0 X X 0 11 1 X 10 1 K2 =X1X2Q1´Q2+ X1´X2´ 10 00 00 X 01 X 11 10 01 11 10 X X 1 X X 0 X 01 11 10 1 1 1 X 0 0 X 1 X Z= X1´Q1Q2+X2Q1Q2´ 00 01 11 10 00 0 0 1 0 01 0 0 1 1 11 0 0 0 1 10 4) Disponemos de un montacargas con pulsadores de subida S, bajada B, y paro P: para modificar el sentido de la marcha es preciso activar previamente el pulsador de parado y no responde al pulsado simultáneo de varios conmutadores. Sendos topes fin de carrera Ti y Ts le impiden continuar subiendo o bajando cuando alcanza los extremos del recorridos. Implementar un autómata síncrono que controle dicho montacargas. Como en el enunciado ya dice que los pulsadores sólo pueden ser pulsados no simúltaneamente, las únicas posibles entradas pueden ser: 100 = bajar, 010 = subir, 001 = parar. Como en realidad no sé a que puedo llamar salida “1”, lo que haré será asignar como salidas “1” cuando los sensores t1 y t2 sean acticados. Los estados son los de siempre y como siempre les daremos valores: Codificación de estados: 0 0=00 1=01 2=10 3=11 100/0 010/1 001/0 1 010/0 0 001/1 2 En el grafo lo que haré será empezar desde el estado cero, donde el estado de salida será siempre “1”. Lo mismo pasará con el estado tres. Al estar situado en el extremo de los estados siempre su salida será “1”. 0 1 2 3 100 1/0 2/0 3/1 010 0/1 1/0 2/0 100/0 100/1 010/0 3 001 0/1 1/0 2/0 3/1 001/0 001/1 X Q1Q2 Q1Q2 J1K1 J2K2 Z 100 010 001 100 010 001 100 010 001 100 010 001 00 00 00 01 01 01 10 10 10 11 11 11 01 0X 1X 00 10 00 01 11 01 10 0X 1X 0X 0X X0 X1 X0 0X X1 X1 X0 1X 1X 0X 10 11 X0 X0 X1 X0 0 0 1 0 1 0 1 0 0 0 0 1 J1 = X1X2X3 Q1Q2 000 001 010 00 0X 01 0X 0X 11 X0 X0 10 X0 X1 001 010 K1 = X1X2X3 000 Q1Q2 00 100 101 110 111 101 110 111 101 110 111 0X 1X X0 011 0X 100 1X 01 X0 X1 11 X0 X1 10 0X 1X 001 010 Z= X1X2X3 000 Q1Q2 00 011 X1 1X 011 100 1 0 0 01 0 1 0 11 1 0 0 10 0 1 1 Paso de continuar que me canso ... 5) Diseñar un sistema que detecte el número de personas presentes en una sala sabiendo que existe un solo acceso que es a la vez entrada y salida y que las personas entran y salen de una en una y con una mínima distancia entre ellas. Un par de células fotoeléctricas a y b permiten detectar la salida o entrada de personas y el sentido en que cruzan dicho acceso. 6) Diseñar un circuito secuencial síncrono de una entrada que permita detectar la secuencia de información 11100. Para ello dispondrá de una salida que se pondrá a uno cuando detecte esta secuencia, momento en el cual quedará enclavada dicha salida, mientras tan sola salida permanecerá a cero. 7) Realizar un autómata síncrono con las siguientes especificaciones: el circuito debe detectar la secuencia de entradas 00-01-11-10 correspondientes a las entradas A y B, estas combinaciones sólo se tendrán en cuenta al producirse una transacción en la señal de reloj, y además sólo tiene que estar presente cada combinación durante un único impulso. Este circuito dispone de unas salida que quedará enclavada a valor 1 detectada esta combinación; En cualquier otro caso la salida será cero. 8) Realizar la síntesis del circuito lógico de control (síncrono) de un motor de acuerdo con las siguientes especificaciones: a) Si el interruptor (A) está desactivado, el circuito lógico ha de inhibir el arranque del motor. b) Si el interruptor (A) está activado: Al pulsar (B) el motor debe girar a la Izd. Y seguirá girando cuando se suelte. Al pulsar el motor debe girar a la derecha y seguirá girando cuando se suelte. Si (B) Y (C) son pulsados simultáneamente, el motor girará a la izquierda. En el estado inicial, el motor se encuentra parado y no hay ninguna entrada activada. 9) Un muñeco de juguete funciona por control remoto. La caja de control posee dos pulsadores (A y B), de tal forma que, en estado de reposo, el muñeco no se mueve. Si se presiona el pulsador “A”, el muñeco se moverá hacia delante, continuando el movimiento al dejar de presionar dicho pulsador. Si se actúa sobre ambos pulsadores simultáneamente, se moverá hacia atrás, continuando así al dejar de pulsarlos. Finalmente si se pulsa “B” el muñeco se parará. Implementar el circuito como síncrono. 10) Un circuito secuencial tiene dos entradas (x1, x2) y dos salidas (Z1,Z2). Las entradas representan un número binario natural de dos bits, N. Si el valor presente de N es mayor que el valor inmediatamente anterior, entonces, Z1 = 1. Si dicho valor es menor, entonces la salida Z2=1. En cualquier otro caso, Z1 = Z2 = 0. Se pide: a) b) Implementar el circuito como autómata de Mealy. ¿Cuántos estados tendría el circuito como autómata de Moore? 11) Información codificada en “BCD” natural es enviada en serie por una línea (x) sincronizada con los impulsos de un reloj, llegando primero el bit de mayor peso. Diseñar el circuito que genere la señal de error en el instante en que se reciba el cuarto bit cuando la combinación sea errónea, es decir que no pertenezca al código. En ese mismo momento el sistema ha de retornar al estado inicial para comenzar otro ciclo de detección de error. 12) Un circuito secuencial tiene una entrada “X” y una salida “Z”. Por “X” se transmiten pulsos positivos de 1, 2, ó 3 ciclos de duración. Desde un pulso al siguiente “X” permanece a “0” un mínimo de 10 ciclos. La salida “Z” se pondrá a 1 tras terminar el pulso de entrada y permanecerá en 1 durante 3 ciclos se el pulso de “X” duró un ciclo, durante 2 ciclos si “X” duró 2 y durante 1 ciclo si “X” duró 3. En otros casos “Z” es cero. 16) Diseñe un chequeador de paridad para caracteres de 4 bits enviados en serie. El circuito recibirá, partiendo de un estado inicial, 4 bits en serie por una línea de entrada, “X”; coincidiendo con el cuarto “bit”, la salida del circuito será 1, si y sólo si el número total de unos recibidos ha sedo par. Tras la recepción del cuarto bit, el circuito volverá a aceptar en la entrada un nuevo carácter de 4 bits. 1 0/0 0/0 2 1/0 0/0 1/0 3 0/0 1/0 4 0/0 5 1/0 6 1/1 0/0 Est. A 1 2 3 4 5 6 01 P. E. 1 2 1 3 4 3 1 5 1 6 4 3 01 Salida 0 0 0 0 0 0 0 0 0 1 0 0 Nos damos cuenta que el tres y el seis son iguales y por lo tanto se pueden simplificar y por ello nos deshacemos del Nº 6. 0/0 0/0 1 1/0 2 0/0 1/0 0/0 1/0 3 0/0 4 5 1/0 Como tenemos 5 estados, tenemos que utilizar 3 variables (A, B, C). BC XA 00 01 11 10 BC XA 00 01 11 10 00 0X X1 X1 0X 01 0X --0X 11 0X --1X 10 0X --0X 00 1X 0X 0X 1X 01 X1 --X0 11 X1 --X1 10 X0 --0X BC XA 00 01 11 10 00 0X 0X 1X 0X 01 X0 --1X Ja = B’ X A’ Ka = 1 Jb = XC + AX Kb = C Jc = XBC Kc = 1 Ahora haremos por “Moore”. 000/0 0 1 100 001/0 1 0 010/0 1 0 011/0 . 1 100/0 Cronograma tipo “Moore” Clock Qa Qb Qc X Z Cronograma tipo “Mealy” Clock Qa Qb Qc Z X 0 101/1 11 X1 --X1 10 X0 --X0 AUTOMATAS ASINCRONOS Comb. a) Mem. Asícrono de realimentación directa. La función del elemento de memoria lo localizará el retablo de las puertas. Yit Xt Comb. Retar. Y1(T + At) Yit Estado estable: Y1(T + At) Yit Yit = y Y1’(t + At) Y1’(t + At) variable de estado Y1(t + At) = variable de excitación b) Asíncronos “R-S” Comb. “R-S” Pasos para la implementación de autómatas síncronos: a) b) c) d) e) f) Diseño del diagrama de fases indicando los estados estables e inestables. Tabla de funcionamiento. Simplificación Codificación de la tabla de fases. Estudio de carreras críticas Implementación AUTOMATAS ASINCRONOS 1) Diseñar en sistema secuencial asíncrono con dos variables de entrada X1, X2 Y una variable de salida Z que ha de actuar según las siguientes especificaciones: a) Si la variable X1 toma el valor lógico 1, la salida Z del sistema pasa al estado lógico 1 independientemente del estado en que se encuentre y continúa en él aunque la variable X1 vuelva al estado lógico 0. Sucesivas conmutaciones de la variable X1 no cambian el estado de la salida. Si la variable X2 toma el valor lógico 1, la salida Z del sistema pasa al estado continúa en él aunque la variable X vuelva al estado lógico 0. Sucesivos cambios de X2 no modifican la salida b) X1 X2 A B C D 00 1 01 3 - 3 4 1 4 11 - 10 2 2 2 - Z 0 1 1 0 Simplificación: Se pueden simplificar aquellos líneas que tengan el mismo estado o que en una de ellos se dé la situación no existe. Al simplificar líneas, siempre predominararán los estados estables sobre los inestables. En este caso vemos con claridad que el apartado “B” y “C” se pueden simplificar. Quedaría de la siguiente manera: X1 X2 B-C A-B 00 3 1 01 11 - 4 10 2 2 Z 1 0 B-C = 0 A-B = 1 Interpretación: 01/0 00/1 01/0 0 0 10/1 00/0 10/1 Tabla de fases: X1 X2 0 1 00 E E 01 I E 11 - 10 E I Z 1 0 Simplificación de los mapas de “Karnaugh”: X1 X2 0 1 00 0 1 01 1 1 11 - 10 0 0 Z 1 0 Y X Y Y = X2 + X1’ y = X2’ o X’1y COMB. Y X’2 Y Y X’1 2) Un sistema secuencial asíncrono posee dos entradas de impulsos X1 y X2 (ambas entradas no pueden estar nunca en estado uno simultáneamente) y una salida Z. A partir de un estado inicial en el cual X1 = X2 = Z = 0, la salida Z ha de tomar el valor uno si se aplican dos impulsos sucesivos a la entrada X1 sin que se aplique ninguno a la entrada X2. La salida volverá a cero cuando X2 pase al estado uno. Se especifica que X1 Y X2 no pueden cambiar simultáneamente. Implementa dicho sistema. Según indica el problema, las entradas son: X1 y X2 La salida: Z X1 X2 00 1 01 3 4 X1 X2 00 01 10 X1X2 Y1Y2 00 01 11 10 4 3 1 4 3 00 01 1 3 4 4 3 11 - 10 2 11 - 10 2 00 00 10 01 00 11 - 10 01 01 10 00 - 10 Y1 = X1´X2´+ X2´Y1Y2´ Y2 = X1X2´Y1´ 2 5 5 2 5 Z 0 0 1 0 1 Z 0 0 1 Simplifico y doy valores X1X2 Y1Y2 00 01 11 10 00 0 1 01 0 1 0 Z = X1´X2´+ X2´Y1Y2 11 10 0 0 1 3) El producto final de una fabricación son barras metálicas cuya longitud ha de ser inferior o igual a L. Para hacer la selección del producto terminado se utiliza un sistema constituido por una cinta transportadora que hace pasar las barras entre dos detectores fotoeléctricos separados por una distancia “L” y constituidos por un emisor y un receptor de luz. La salida de los receptores de luz adopta dos niveles de tensión diferenciados según esté o no una barra situada entre él y su emisor respectivo. Se asigna por convenio el estado uno lógico a la salida cuando la barra está situada delante del detector y el estado cero en el caso contrario. Después del segundo detector existe una trampilla accionada por un motor M. Si la barra tiene una longitud mayor que L, se ha de excitar M y abrir una trampilla para dejar caer la barra. En caso contrario no ha de excitarse M. Una vez pasada la barra el motor M ha de volver a desexcitarse y el sistema quedará preparado para realizar una nueva detección. La distancia que separa las dos barras sometidas a verificación es tal que nunca podrá entrar una en la zona de detección mientras se está comprobando la anterior. El problema consiste en diseñar un sistema secuencial asíncrono cuyas entradas sean las salidas de los detectores, que denominaremos X1 y X2 y cuya salida Z accione al motor M. 4) Una vía férrea con tráfico en ambos sentidos corta a una carretera en la cual se coloca una barrera gobernada por la salida Z de un autómata asíncrono. A 500 m del punto de cruce se colocan dos detectores X2 y X2 respectivamente. A partir de un estado inicial en el que Z = 0 ésta debe pasar al estado uno cuando se acerca un tren en cualquier sentido, al rebasar la máquina los 500 m del cruce y debe volver al estado cero cuando el último vagón se aleja de dicha distancia independientemente de la longitud del tren. Implementar dicho autómata. El ejercicio dice que se trata de uno sóla vía férrea que puede ser circulada en los dos sentidos. Por ese motivo las señales X1 y X2 serán las que se levante la barrera o se baje. Empezaremos por un estado inicial en el cual no han pasado trenes y por lo tanto la barrera está levantada (1). X1 X2 00 01 11 10 Z 1 2 - 4 X1 X2 0 1 4 2 1 2 00 01 1 4 2 3 3 11 - 2 1 0 0 10 3 3 Z 1 0 Simplificamos y damos valores Ahora lo que pasaremos a hacer es ir tomando los valores estables, primero, y los de transacción después, sus respectivas salidas y “Qt+At” que será la salida de los estados de transacción. Las salidas de estos estados serán las mismas que las de sus estados estables. X1 X2 00-1 01-2 10-3 00-4 01-2 10-3 Z 1 1 0 0 0 1 Q 1 1 0 0 0 1 Qt+1 1 1 0 0 1 0 “Q” Es siempre igual a la salida. Tomando como salidas en un instante t+1 hacemos “Karnaugh”. X2 X1 Z 0 1 00 0 1 01 1 1 11 10 0 0 Qt+1 = X´2X´1 + X´2Z 5) Antes de poner en marcha una máquina han de realizarse unas determinadas operaciones en secuencia, lo cual se detecta mediante los microinteruptores M1 y M2. Si dichas operaciones se realizan en la secuencia correcta, M2 se cerrará estando M1 abierto, pero después de haberse cerrado esta último previamente. La inhibición de la puerta en marcha de la máquina se realiza mediante la variable Z que solamente deberá activarse (adoptar el estado lógico uno) si M1 y M2 han realizado la secuencia correcta simultáneamente. M1 M2 100 001 1 = cerrado 0 = abierto 00 01 11 10 2 1 3 2 4 3 2 5 4 3 Z 0 0 0 0 5 6 - 2 0 7 6 8 - 1 7 6 - 10 1 - 6 8 10 1 1 9 3 - 0 7 - 8 10 1 00 01 11 10 00 1 9 3 2 01 5 4 3 2 11 5 6 - 2 10 7 6 8 10 Z 0 0 0 1 Simplificación Damos valores Pasamos a implementar: M1M2 Y 1Y 2 00 01 11 10 00 00 11 11 10 01 00 01 10 10 11 01 01 -10 10 01 01 01 10 M1M2 Y1Y2 00 01 11 10 00 0 0 0 1 01 0 0 0 1 11 0 0 -1 10 0 0 0 1 Carrera crítica Y1 = Y1 M1 + M’1 Y1 + M’1 M’2 Y2 Y2 = M1 Y´1+ Y´1 Y2+ M’2 Y2 Se asignan sus estados estables. Z = M2Y1 + Y1’ Y2 Recordemos que se trata de un circuito combinacional de entrada y otro de salida por que como nos quedaron más de una variable y por lo tanto no podemos hacer coincidir Z con Yn. 6) Diseñar un autómata que controle una puerta automática para el acceso de carros guiados a un supermercado sabiendo los siguientes datos: a) En el sistema existen dos finales de carrera C y A que indican si la puerta está completamente cerrada o abierta, respectivamente. En el estado inicial, la puerta está completamente cerrada. b) La presencia de un carro en las proximidades de la puerta es detectada por una célula. Si el carro llega a la zona de detección la puerta comienza a abrirse. Mientras haya un carro en dicha zona la puerta permanecerá abierta. Cuando el carro abandone dicha zona la puerta se cerrará, pero si la abandona antes de que la puerta esté completamente abierta, ésta se abrirá completamente y seguidamente se cerrará. Si se está cerrando y llega un carro, la puerta se abrirá. Primero vamos a dar valores: Abriendo = Cerrando = Manteniendo = 11 00 01 acp 000 001 010 011 100 101 110 111 Z1 Z2 0 1 1 2 3 1 1 2 5 4 0 1 3 7 0 0 6 4 0 0 7 3 6 4 6 1 1 5 3 Si simplificamos y damos valores nos quedaría así: acp 000 001 010 011 100 101 110 111 Z1 Z2 4 0 1 00 5 3 1 2 3 0 0 01 7 6 4 3 1 1 10 5 2 6 Acp Y1Y2 00 01 11 10 00 01 11 10 000 001 010 011 100 101 10 00 00 10 01 01 00 01 01 Y1 =(A´C´P´+ A´CP)Y2´ Y2 = AC´P´Y1´+ AY1´Y2+AC´P´Y1Y2´+ C´Y1Ý2 10 00 10 01 000 001 010 011 100 101 1 I 1 1 Z1 = A´C´P´Y1Y2´+ A´C´PY1´Y2´+ A´CPY1Y2´+AC´P´Y1´Y2 00 01 11 10 000 001 010 011 100 101 1 1 1 1 1 Z2 = A´C´P´Y1Y2´+ AÝ1´Y2´A´CPY1Y2´+AC´Y1Ý2 1 EJERCICIO DE MANOLO (hecho en clase): Diseñar un circuito que realiza las siguientes transferencias de registros: Si X es IMPAR A B+C Si X es PAR A B-C Visto el anunciado pasamos a desarrollar el problema paso por paso: Tomamos A, B, C Y X como registros de 8 bits y lo desarrollamos en forma de algoritmo. Inicio (carga de algorimos) X BUS DE ENTRADA A BUS DE ENTRADA B BUS DE ENTRADA C BUS DE ENTRADA If X Impar then go to Impar A B-C Go to fin Impar A B+C END Ahora pasaríamos a hacer el diagrama de bloques. A B Búffer Entrada Salida Rst Clock Ctrl.Unit C X S/R La Unidad de Control lo que hace es generar dos señales dependiendo se es “0” ó “1” (par o impar). Como salidas vamos a tener: C0 C1 C2 C3 C4 C5 X A Bus de entrada. Sumador/restador. Bus de entrada. Bus de entrada. 0/1 resta/suma. Búffer de imperación. B C 0/1 1 So Cargar X S1 Cargar A S2 Cargar B S3 S4 S5 S3 cargaría los pares y S4 los impares (X’ = par) Estado So S1 S2 S3 S4 S5 X B C X A F Acción co, c1, c2, c3, c4, c5, BD 1 0 0 0 0 0 BD 0 0 1 0 0 0 B 0 0 0 1 0 0 AB 0 1 0 0 1 0 BC 0 1 0 0 0 0 Salida 0 0 0 0 0 1 Q2Q1Q0 X0 X0’ Est. Actual Próx. Est. 000 001 010 011 100 001 010 0 1 1/1 0 0 101 101 co, c1, c2, c3, c4, c5 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 S0 S1 S2 S3 S4 MEMORIAS DIGITALES Son sistemas que permiten el almacenamiento de información binaria durante algún tiempo. Según esto podemos estudiar: - - Memorias semiconductoras: permiten almacenamiento de información binaria utilizando semiconductores Memorias y soportes magnéticos Ferritas Memorias semiconductoras Tipos: Atendiendo a la forma de acceso a la información: - Acceso directo: Permiten el acceso a cualquier posición de memoria independientes de su situación. Acceso secuencial: en ellas para acceder a un bloque de información hay que desplazar todos aquellos bloques que se encuentren delante de este. Atendiendo a la estructura interna: Memorias de acceso aleatorio (RAM): se caracterizan por poder acceder a cualquier posición de memoria con un mismo tiempo de retardo. Dentro de estas, atendiendo a la permanencia de información (parámetro que mide la diferencia entre el tiempo necesario para leer un bloque de información menos el tiempo necesario para escribir un determinante bloque de información). TL - ---- TE Memoria activas o de lectura escritura (R/W) (volátiles): Aquí el tiempo de lectura es similar al de escritura. TL TE - Memorias pasivas: el tiempo de escritura es mucho mayor que el de lectura. dTL >> TE Memoria activas o de lectura escritura (R/W) (volátiles): Atendiendo a la permanencia de la información (parámetros que miden el tiempo que permanece una información desde que se ha introducido por la entrada): Memoria SRAM: Se denominan memorias estáticas y el tiempo de permanencia de la información viene limitado exclusiva por la tensión de alimentación. Memoria DRAM: memorias dinámicas y el tiempo de permanencia de la información es de algunos milisegundos. Atendiendo a la operación de lectura/escritura: Memoria de lectura/escritura no simultánea: en estas memorias o bien leémos o bien escribimos pero no las dos cosas a la vez. Memoria de lectura/escritura simultánea: en ellas es posible leer, escribir o las dos operaciones sobre posiciones de memoria diferentes. Memoria de acceso múltiple: en ellas es posible leer, escribir o las dos operaciones sobre posiciones de memoria diferentes. Memorias pasivas Memoria ROM Son memorias en las que el tiempo de escritura es infinito. No se puede grabar en ellas. Chip-set N1 N2 Output enable Memoria programables (PROM) Son aquellas en las que el tiempo de escritura es mucho mayor que el de lectura pero admiten programarlas una vez que Te >> Tl Memorias reprogramables (RPROM) EPROM tiempo de escritura >> tiempo lectura pero admiten el borrado y la posterior programación tantas veces como sean necesarias. Este tipo de memoria se borra con rayos ultravioletas. Estas se utilizan mucho más que las PROM y ROM. N2 N1 Líneas de E/S. Chip-enable Grabación de memoria: CE = 0 OE/Vp = 25 V (lo normal son 5V) QE Vp (rec.) EEPROM son similares a las EPROM pero se pueden borrar aplicando una tensión más elevada de lo habitual. N2 N1 WE 21 V 5V M T P X Escritura: Vp N2 CE WR = 0 CE = 0 0E = 0 OE = 1 memoria. OE OE Vp = 21 Borra la FLASH la diferencia con las anteriores consiste en que el borrado no se realiza posición a posición sino de forma global. Memorias de forma aleatoria para: FIFO Son memorias en las que el primer bloque de información que entran es el primero que sale. LIFO Son memorias en las que el último bloque de información que entra es el primero en salir. REGISTROS DE DESPLAZAMIENTO Memorias asociativas: Organización de memorias (Vamos a estudiar las memorias RAM/activas/lectura/escritura no simultáneas). 0 Posición de memoria D E C O D I F I C A D O R M N-1 O O N-1 O N-1 R/W terminal de lectura/escritura aquí se selecciona si se lee o se escribe). Salida del decodificador para elegir la posición de memoria. Esto es lo que se llama ORGANIZACIÓN 2D Ahora vamos a ver la ORGANZACIÓN 3D 2 M/S M/S M/S D E C D E C 1 O N-1 si las dos entradas son “1”, está activo ( selección 2 M/S) 1 O N-1 O N-1 2 M/S ZM Con el primer decodificador se selecciona la posición de todas las hojas. El segundo se escoge las hojas. Podemos acceder a Zm posiciones de memoria (2m/z·2m/z = 2m) Memorias dinámicas Memoria SRAM Se basan en unas células cuyo fundamento es un contador Lo que hago es regenerar cada ciertos milisegundo. Tienes que refrescar la memoria. Las memorias dinámicas se han utilizado para construir memorias de alta capacidad detectando la gran sencillez de sus células componentes. 1 Memorias de alta capacidad (gran número de vías de dirección) Direccionamos por un lado las filas y por otro las columnas. 2 n/2 Mem ni R Ras F 2 n/2 R.C. 2 n/2 Cas Para ver la forma de operación vemos un cronograma: A0/2 n/z-1 Ras Cas W 1 A0-N1-1 N2/ 2 N1 Ras Cas W Dá pulsos en la línea RAS. Para refrescar la memoria ponemos: CAS = 1; W=1 RAS = Idea general: X Búffer Para refrescar todas las posiciones de memoria y no sólo las columnas utilizaremos un contador y un multiplexor. 2 líneas Cont. S0-1 MTP N2/ 2 Registro N2 N2/ 2 N2/ 2 Modos de refresco 1) Modo rafága Primero realizo el refresco de toda la memoria (pulsos en RAS). Luego tengo un espacio de tiempo para utilizar la memoria (operación de lectura-escritura). El micro determina el tiempo que refresca la memoria o el tiempo que la utilizo. RAS 2) Modo distributivo Ciclos de refresco más pequeñas y durante más instantes puedo utilizar la memoria (refresco una pequeña posición-leo). RAS EJERCICIOS A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 A15 A14 A13 A12 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Direcciones de memoria del primer bloque (son los que tengo que fijar). Dirección (start)........1000 (bin.) Dirección (end)..........1FFF (hexadecimal) 1er bloque de 4K Dirección (start)........2000 (bin.) o 2 bloque de 4K Dirección (end)..........2FFF (hexadecimal) Dirección (start)........3000 (bin.) 3er bloque de 4K Dirección (end)..........3FFF (hexadecimal) Dirección (start)........4000 (bin.) 2o bloque de 4K Dirección (end)..........4FFF (hexadecimal) A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Inicio 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Implementación utilizando decodificadores (Decod. 3-8) Q1 A15 EN Decod. A12 A13 A14 (Cs)´ Q2 A11-0 (Cs)´ DO-7 Q3 (Cs)´ Q4 (Cs)´ 1000 2000 3000 4000 Fin 1FFF 2FFF 3FFF 4FFF A15 D Ejercicio 3 2kx4 8kx8 4096 11 A15 A14 A13 A12 A11 A10 A9 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 8k A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 4096 2k 2k 2k 2k La implementación podrá ser de dos maneras: “0” A14 A15 OE N EN Dec. 2-4 OE N D0-7 D 3-8 A11 A12 A13 OE N A13 A14 A15 OE N A11 A12 A0-10 OE N A13 A14 Ejercicio 4 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Inicio Fin 0 0 0 0 0 0 0 0 0 1 X X X X X X X X X X X X X X X X X X X X X X 0000 0800 07FF 0FFF 1 1 1 0 1 1 1 1 1 1 0 1 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X B000 E000 F000 BFFF EFFF PFFF A11 A12 A13 A14 A15 A10-0 A12 A13 A14 A11-0 Ejercicio 5 40 K de memoria RAM 16 K de memoria ROM Bloques de memoria ROM: 16Kx4 = Bloques de memoria RAM: 16Kx8 = Bloques de memoria RAM: 4Kx8 = 1 bloque 16K =16K 2 bloques16K=32K 2 bloques 16K=8K-40K A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 1 1 1 0 1 0 1 1 X X X 0 0 X X X 0 1 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Implementaremos con un decodificador 2-4 para las líneas A15 y A14. ROM ROM EN A14 A15 Dec . RAM A13-0 EN A12 A13 Dec . A11-0 R R R D0-3 D0-7 D4-7 X X X X X Ejercicio 6 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 0 0 0 0 0 0 0 1 X X X X X X X X X X X X X X X X X X X X X X 1 0 1 0 X X X X X X X X X X X X 1 1 1 1 1 1 0 1 0 1 X X X X X X X X X X X X X X X X X X X X X X “0” A11 A12 A12 A13 A14 D H 0000 0800 1000 A000 B000 E800 8000 07FF 0FFF 9FFF AFFF EFFF EFFF FFFF A10-0 A12 A11-0 A11 A12 00 01 10 11 A11-0 Ejercicio 7 Sistema microordenador con capacidad de direccionamiento de 64K, dispone de los siguientes elementos: Pastilla 1: EPROM monitor de 2K situado en 0000-07FF Pastilla 2: EPROM monitor de 2K situado en 0800-0FFF Pastilla 3: RAM no volátil de 2K situado en 1000-17FF Pastilla 4: Datos de teclado display, situado en 1800-1FFF Pastilla 5: RAM básica de 256 bytes situado en 2000-20FF Zona libre desde la posición 2100-27FF Pastilla 6: RAM de amplicación de 256 situado en 2800-28FF Zona libre desde la posición 2900-2FFF Pastilla 7: EPROM de 4K situado en la posición 3000-3FFF Zona libre 4000-fff - Implementar el mapa de memoria con un decodificador de dos chips-sets de selección y la lógica adicional necesaria. A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Inicio 0 0 0 0 0 X X X X X X X X X X X 0000 Fin 07FF 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 X X X 0 X X X 0 X X X 0 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 0800 1000 1800 2000 0FFF 17FF 1FFF 20FF 0 0 1 0 1 0 0 0 X X X X X X X X 2800 28FF 0 0 1 1 X X X X X X X X X X X X 3000 3FFF Para seleccionar decodificador A15 A14 A11 A12 A13 D 3-8 A10-0 Porque en A11 en la pastilla 7 es X = 1,0. A10 A9 A8 A10 A9 A8 F T