Está en la página 1de 6

Electrónica Digital. 3ºGITT.

2015/2016
2º Parcial

Problema 1

Un sistema de generación de secuencia tiene dos entradas E (enable) y T (tipo), y es capaz de


generar dos secuencias en su salida S.

Mientras la señal E está a nivel bajo, la salida S está a 0. En el momento en que se activa E, se
empieza la generación de una secuencia u otra según el valor de T en ese momento:
- Si T=0 se genera la secuencia 110
- Si T=1 se genera la secuencia 10
El valor de T puede cambiar durante la secuencia, pero sólo se tiene en cuenta el que tuvo
inicialmente, como se ha descrito.
Al terminar la secuencia y tener la salida a 0, el sistema se espera mientras E=1, volviendo a la
situación inicial cuando E pase a valer 0.
La señal E debería estar a 1 durante toda la secuencia, pero hay que contemplar la posibilidad de
que exista un error y no sea así. Para eso existe una segunda salida F (fallo) que se activa durante 1
ciclo de reloj si y sólo si la señal E se pone a 0 después de haberse iniciado la secuencia y antes de
que se haya puesto la salida a 0 al final de la misma. Después del ciclo de activación de F se vuelve
al estado inicial, cancelando la secuencia que se estuviera generando.

Diseñar el sistema descrito como una máquina de Moore.


a) Tabla de transición de estados simplificada y comentada (4 puntos)
b) Circuito combinacional de entrada (4 puntos)
c) Circuito combinacional de salida (2 puntos)

Problema 2

Se dispone de un registro de desplazamiento REG de 128bits con señal de habilitación EN, y un


registro de almacenamiento CANT de 5 bits. Cuando se activa una señal ON, el registro REG debe
desplazar los bits tantas posiciones como indique el registro CANT (es decir, Si hay un 01001
deben desplazarse 9 posiciones). Se supone que el valor almacenado en CANT no cambia mientras
ON está activa. Al acabar el desplazamiento se activa una salida OK que permanece activa hasta
que se desactiva ON.
Diseñar, usando bloques constructivos, un circuito que realice la funcionalidad descrita, y
especificar su conexión a los registros CANT y REG. Especificar claramente TODAS las señales
que usen los bloques

Tiempo: 1h
Electrónica Digital. 3ºGITT. 2015/2016
SOLUCIÓN

Problema 1

Planteando el diagrama de bolas, se puede partir de un estado inicial de reposo, en el que se


permanece mientras no se active E. Al activarse el diagrama se ramifica en dos secuencias (según la
combinación de entradas 10 o 11) que se completan mientras las entradas son 0x. Al final de cada
secuencia se espera antes de volver al reposo como se pide en el enunciado. Además existe un
estado de error al que se salta cuando este se produce y desde el que se vuelve al reposo
inmediatamente.

Al buscar estados equivalentes se encontrará que también se puede resolver creando una sola
secuencia y cambiando el estado inicial al que se salta según el valor de T.

La tabla de transición de estados correspondiente a este diagrama es:

ET
Estado 00 01 10 11 SF
0 reposo (0) 0 1 4 00
1 s11 6 6 2 2 10
2 s12 6 6 3 3 10
3 s13 0 0 (3) (3) 00
4 s21 6 6 5 5 10
5 s22 0 0 (5) (5) 00
6 Fallo 0 0 0 0 x1
Se puede comprobar que lo estados 3 y 5 son equivalentes, así como el 2 y 4 (pero no el 1 y 2 ó 4,
aunque compartan salidas)

Por tanto la tabla se puede reducir a:

ET
Estado 00 01 10 11 SF
0 (0) 0 1 2 00
1 6 6 2 2 10
2-4 6 6 3 3 10
3-5 0 0 (3) (3) 00
6 0 0 0 0 x1

Esta tabla corresponde al siguiente diagrama de bolas, como se comentó anteriormente:

Observando las salidas, se puede elegir una codificación que proporcione el CCS más sencillo,
eligiendo dos de los bits iguales a las salidas, y completando con el otro, por ejemplo:

ET
Estado 00 01 10 11 SF Q2Q1Q0
0 (0) 0 1 2 00 000
1 6 6 2 2 10 011
2-4 6 6 3 3 10 010
3-5 0 0 (3) (3) 00 001
6 0 0 0 0 x1 100
Con esta codificación se tiene directamente que
F=Q2
S=Q1

Reescribiendo la tabla de transición de estados con los estados codificados en binario:

ET
Estado 00 01 10 11 SF
000 000 000 011 010 00
011 100 100 010 010 10
010 100 100 001 001 10
001 000 000 001 001 00
100 000 000 000 000 x1

Y se resuelve para cada uno de los bits.

Para D2

Q2=0 Q2=1

ET ET
Q1Q0 00 01 11 10 Q1Q0 00 01 11 10
00 0 0 0 0 00 0 0 0 0
01 0 0 0 0 01 - - - -
11 1 1 0 0 11 - - - -
10 1 1 0 0 10 - - - -

D2=Q1·/E

Para D1

Q2=0 Q2=1

ET ET
Q1Q0 00 01 11 10 Q1Q0 00 01 11 10
00 0 0 1 1 00 0 0 0 0
01 0 0 0 0 01 - - - -
11 0 0 1 1 11 - - - -
10 0 0 0 0 10 - - - -

D1=/Q2·/Q1·/Q0·E + Q1·Q0·E

Para D0
Q2=0 Q2=1

ET ET
Q1Q0 00 01 11 10 Q1Q0 00 01 11 10
00 0 0 0 1 00 0 0 0 0
01 0 0 1 1 01 - - - -
11 0 0 0 0 11 - - - -
10 0 0 1 1 10 - - - -

D0=/Q1·Q0·E + Q1·/Q0·E + /Q2·/Q1·E·/F


Problema 2

Hay varias formas de resolverlo. Quizá la más sencilla sea basarse en un contador descendente de 5
bits que se precargue con el valor de CANT y vaya contando cuando ON=1 hasta llegar a 0.
Mientras cuente habilita el desplazamiento de REG.

Se puede hacer un pequeño autómata que precargue el contador cuando ON pase de 0 a 1, pero una
forma más fácil es que se esté precargando siempre que que ON=0 pero sólo habilite el
desplazamiento cuando ON=1. También hay que impedir que el contador siga contando después de
llegar a 0, lo que se puede conseguir usando su señal de EN.

La señal OK se activa cuando el contador llega a 0 y OK está activo. No hay necesidad de


introducir un biestable o circuito secuencial si se deshabilita la posibilidad de que el contador
desborde hacia abajo al terminar el desplazamiento.

El circuito quedaría como:

También se podría usar un contador ascendente, y el final del desplazamiento se obtendría


comparando el valor de la cuenta con el almacenado en CANT.

También podría gustarte