Download Circuitos Electrónicos. EXAMEN FINAL DE JUNIO. Problema 1

Document related concepts

Sistema secuencial wikipedia , lookup

Máquina de Moore wikipedia , lookup

Registro de desplazamiento wikipedia , lookup

Unidad de control wikipedia , lookup

Biestable wikipedia , lookup

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: