Download Circuitos Electrónicos. EXAMEN FINAL DE JUNIO. Problema 1
Document related concepts
Transcript
Circuitos Electrónicos. EXAMEN FINAL DE JUNIO. Problema 1. Primer parcial Se desea diseñar un sistema síncrono para dilucidar cuestiones importantes “a pares o nones”. Para ello, el sistema contará con dos entradas de línea serie, por cada una de las cuales vendrá la información de los “dedos” sacados por cada uno de los dos participantes. Dicha información viajará de manera síncrona con la señal de reloj del sistema, como se muestra en el cronograma. Para marcar el comienzo de la transmisión, se mandara un “1”. El sistema irá gobernado por una máquina de estados central que tendrá como entradas las señales F1 y F2 que marcan que los sistemas secuénciales 1 y 2 respectivamente han terminado de recoger los datos. Dicha máquina dará un pulso en la señal P/N, de un ciclo de duración cuando se hayan acabado de recoger los datos, que provocará que se almacene el resultado de la comprobación (Pares o Nones). El circuito combinacional central va produciendo de manera continua el resultado de dicha comprobación, que sólo será almacenada en el bloque RESUL cuando llegue el pulso de la señal P/N. La máquina de estados seguirá el siguiente diagrama de operación: 1.- En el estado de reposo, se producirá la adquisición de las entradas IN1 e IN2, usando para ello las salidas DS1 y DS2. Se permanecerá en dicho estado hasta que las entradas F1 ó F2 marquen la finalización de alguna de las dos capturas. Puede ocurrir que las dos señales se activen a la vez. 2.- En caso de que una señal (F1, F2) se active, se dejará de leer la entrada correspondiente (IN1, IN2), desactivando la línea adecuada (DS1, DS2). Nótese que las señales F no tienen porqué mantenerse más de un ciclo, aunque pueden hacerlo (depende de cómo se resuelva el otro bloque) 3.- Cuando ambas señales (F1 y F2) se hayan activado, se generará el pulso P/N para almacenar el resultado correcto. Simultáneamente, con la señal RES se borrará el contenido de los sistemas secuenciales 1 y 2. Tras este estado, volveremos a la condición de reposo, en la que esperaremos a que se vuelva a activar alguna de las señales F1, F2. Los circuitos secuenciales 1 y 2 deben recoger las entradas IN1, IN2, mientras esté activa la señal DS1, DS2. En el momento en el que hayan adquirido los 5 bits correspondientes a su entrada, deben activar la salida F1, F2 para informar a la máquina de estados. Ésta, al siguiente ciclo de reloj, detendrá la recogida de datos. El circuito combinacional irá calculando, de forma continua, las señales P y N, que identificará si con los datos recogidos hasta ese momento ganan pares o nones. Cuando llegue la señal P/N, que dura un solo ciclo de reloj, almacenará el resultado en dos bits, hasta que se complete una nueva secuencia Se pide: 1.- Diseñar, resolver y dibujar la máquina de estados como una máquina síncrona de Moore. (5 puntos) 2.- diseñar el circuito secuencial 1 (el 2 será idéntico). (2 puntos) 3.- Diseñar el circuito combinacional que calcule si el resultado es “pares” o “nones”, así como el circuito de almacenamiento del resultado. (3 puntos) NOTAS: sólo se podrá usar biestables tipo D estándar y puertas lógicas estándar de 2 entradas. Las entradas In1, In2 representan los dedos levantados, tal como se verían en la mano, de forma que si fuese 1-0-1-1-0 significa que se han sacado 3 dedos, el pulgar, el corazón y el anular (Ver dibujo explicativo) Tiempo: 1h:30m Soluciones a los problemas del primer parcial. Junio 05-06 Primer problema. Este problema pretende diseñar un sistema síncrono para jugar a “pares o nones”. La idea básica es que llegarán dos secuencias de datos, que corresponden a los dedos sacados por cada jugador, con un encabezamiento de un bit a 1. La máquina de estados esperará a que se completen las entradas, ordenando entonces que pare la captura de las mismas y almacenando el resultado de la comparación. Aunque no se dice expresamente, los circuitos secuenciales 1 y 2 serán registros de desplazamiento, con habilitación de desplazamiento y reset síncrono. La máquina de estados deberá ser, por definición, de Moore, y tendrá un total de 2 entradas y 4 salidas. El circuito encargado de calcular si hay un número par o impar de unos en el total de las dos manos, deberá producir de manera “instantánea” el resultado, lo que limita el tipo de soluciones a circuitos combinacionales. 1.-En la primera parte del problema, se nos pide diseñar un sistema síncrono como Máquina síncrona de Moore. Dicha máquina tiene que comprobar que hayan terminado de llegar las dos secuencias de “dedos” que quedan almacenadas en los circuitos secuenciales 1 y 2. La única secuencialidad de la máquina viene dada por que las señales F1, F2 no sabemos en principio cuánto van a durar, de manera que tenemos que “recordar” si se produjeron en algún momento. Atendiendo a las especificaciones, la tabla de transición de estados será: Estado 0: reposo 1: Llegó F2 2: Llegó F1 3: Final Entradas: F1-F2 00 01 11 10 (0) 1 3 2 (1) (1) 3 3 (2) 3 3 (2) 0 0 0 0 DS1 1 1 0 0 Salidas DS2 P/N 1 0 0 0 1 0 0 1 RES 0 0 0 1 Como nos dicen en el enunciado que no sabemos de la duración de las señales F2 y F1, no podemos considerar imposible ninguna de las combinaciones de entradas. Codificando los estados por su valor binario, obtenemos inmediatamente la tabla de excitaciones de los biestables: Q1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 Y partiendo de la información de esta tabla, construyo las tablas de Karnaugh para hallar las Q0 F1 F2 D1 D0 ecuaciones del circuito combinacional de entrada, esto es de las entradas de los biestables en función de las salidas de los mismos y las 0 0 0 0 0 entradas del sistema: 0 0 1 0 1 D1 0 1 1 1 1 F1-F2 0-0 0-1 1-1 1-0 0 1 0 1 0 Q1-Q0 1 0 0 0 1 0-0 0 0 1 1 1 0 1 0 1 0-1 0 0 1 1 1 1 1 1 1 1-1 0 0 0 0 1 1 0 1 1 D1=/Q1·F1 + Q1·/Q0 1-0 1 1 1 1 0 0 0 1 0 0 0 1 1 1 D0 D0= /Q1·Q0 + /Q0·F2 0 1 1 1 1 F1-F2 0-0 0-1 1-1 1-0 0 1 0 1 0 Q1-Q0 1 0 0 0 0 0-0 0 1 1 0 1 0 1 0 0 0-1 1 1 1 1 1 1 1 0 0 1-1 0 0 0 0 1 1 0 0 0 1-0 0 1 1 0 Y por último, quedaría resolver el circuito combinacional de salida, que resulta fácil hacer directamente viendo la taba de transición de estados, sin necesidad de resolver por Karnaugh: DS1=/Q1 DS2=/Q0 RES=P/N=Q1Q0 En la siguiente figura se muestra la máquina resuelta. (Nota: la señal CLR_INI se usa para facilitar la simulación. La señal RES aparece activa a nivel bajo porque interesa para el otro bloque. Ninguna de las dos cuestiones tienen que ver con la solución “oficial”). 2.- Para diseñar los circuitos secuenciales de la entrada, como comentábamos al principio, usaremos básicamente un registro de desplazamiento. Dicho registro estará formado por el encadenamiento del siguiente bloque básico: Se comprueba que mientras que DS esté activo el registro “desplazará”, permaneciendo con el valor almacenado si DS vale 0. por otro lado, si la señal RES se activara, poniéndose a 0, el bit se resetearía síncronamente. Montando todo junto, queda como se observa en la figura. La señal clr_ini, al igual que en el bloque anterior, está introducida para facilitar la simulación. Es importante notar que las señales F1 y F2 se generan cuando el primer bit sale del sexto biestable. Esto provoca un retraso que hará que las señales que interesen para el siguiente bloque sean, de hecho, las salidas a2,a3,a4,a5 y f1 por un lado y b2,b3,b4,b5 y f2 por el otro. Esta peculiaridad se debe al retraso intrínseco de usar una máquina de estados conectada a otro sistema secuencial: una vez que la máquina detecta el final, quita la señal de desplazamiento, que hace que al siguiente ciclo ya no desplace. Por último, el tercer apartado es un circuito combinacional que calcule si hay un número par o impar de unos entre los 10 bits en cuestión. Es fácil ver que esto es tanto como calcular la “paridad” del número de 10 bits resultante. Por ello, bastará con usar el clásico circuito de cálculo de paridad, basado en puertas XOR, como el de la siguiente figura: En esta figura se ha incluido también el módulo de almacenamiento de las señales Pares y Nones, que sólo se actualiza, como se observa, cuando la máquina de estados activa la salida PN. Con esto ya estaría completo el problema. En la siguiente gráfica se ve un resultado de simulación del sistema: