Sistemas Digitales
PROBLEMAS DE SISTEMAS DIGITALES I.T. Informática. 1º curso.
Tema 7: Circuitos Secuenciales Síncronos.
1.- Se dispone de una señal digital periódica C de período T y ancho de impulso T/10. A partir de dicha señal y en sincronismo con sus flancos de subida se necesita generar otra señal periódica S cuyo período y ancho de impulso deben ser seleccionables mediante dos señales de control C 0 y C1 tal y como se indica en la tabla adjunta. Controles Características de la señal S C0 C1 Ancho de impulso Período 00 No se genera impulso No se genera impulso 01 T 2T 10 2T 3T 11 3T 4T
Dibujamos en primer lugar el diagrama de secuencias: T
Sistemas Digitales
C0C1 Estado/S
1/1
01 **
00 0/0
10
2/1
**
3/1
**
11 4/1
**
5/1
**
6/1
** Observaciones al diagrama de flujo: - Una vez aplicada una entrada de control C 0C1 determinada, ya no importa el valor que pueda tomar, pues el sistema tiene que seguir el ciclo completo. - Lo hemos diseñado como un autómata de Moore, hemos asignado un ciclo independiente a cada combinación C 0C1. La salida en cada estado interno solo va a depender del estado anterior (no de las entradas). Diferencias con asíncronos:
Sistemas Digitales
C0C1 Estado/S
1/1
01 **
00 0/0
10
2/1
**
3/1
**
11 4/1
**
5/1
**
6/1
** Observaciones al diagrama de flujo: - Una vez aplicada una entrada de control C 0C1 determinada, ya no importa el valor que pueda tomar, pues el sistema tiene que seguir el ciclo completo. - Lo hemos diseñado como un autómata de Moore, hemos asignado un ciclo independiente a cada combinación C 0C1. La salida en cada estado interno solo va a depender del estado anterior (no de las entradas). Diferencias con asíncronos:
Sistemas Digitales
Veamos si podemos simplificar el número de estados. Para ello aplicamos la siguiente regla: DOS ESTADOS SON EQUIVALENTES SI TIENEN LA MISMA SALIDA Y LLEVAN A ESTADOS SIGUIENTES IGUALES O EQUIVALENTES. No se pueden considerar iguales o equivalentes un estado y un esta do imposible.
Método visual para comprobarlo: tabla de implicación. -
-
Colocamos los distintos estados actuales de forma vertical (desde el segungo hasta el último) y de forma horizontal (desde el primero hasta el penúltimo) : de esta manera no contemplamos que un estado sea equivalente consigo mismo. Cada casilla corresponde a la equivalencia entre los estados correspondientes a la fila y a la columna. Indicamos en cada casilla si son equivalentes o no, o qué condición ha de cumplirse para que sean equivalentes.
1 2 3 4 5
X X X X √ X X X X
X 3=5 3=6
X X
6=5
Sistemas Digitales
C0 C1 00 E.A.
01
10
11
S
A
A
B
C
D
0
B
A
A
A
A
1
C
B
B
B
B
1
D
C
C
C
C
1
E. Si uiente
El diagrama de transición sería:
00 A
11 D
B 01
C 10
Ya no es necesario dibujar el diagrama de transiciones. No va a haber problemas de carreras porque ya no realimentamos directamente.
Sistemas Digitales
Entradas C0
C1
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
E. Actual A B C D A B C D A B C D A B C D
E. Siguiente n
Q1n
Q0
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Q1n 1
A A B C B A B C C A B C D A B C
0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1
Salida actual
Excitaciones
Q0
S
J1 K 1 J0 K 0
0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0
0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
0 0 * * 0 0 * * 1 0 * * 1 0 * *
n 1
* * 1 0 * * 1 0 * * 1 0 * * 1 0
0 * 1 * 1 * 1 * 0 * 1 * 1 * 1 *
* 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1
Dibujamos los diagrams de Karnaugh para las variables de los FF y para la salida. En
Sistemas Digitales
El circuito implementado con FF JK es:
C0 J0 C1
“1”
FF 0 CLK 0
K 0
Rd0
S
Q0
J1
Q0
K 1
FF 1 CLK 1 Rd1
CLK Inicialización Problema 7.1. Circuito implementado con flip-flops JK.
El pulsador de inicialización coloca al sistema en el estado inicial A=0.
Q1
Q1
Sistemas Digitales
2.- Un circuito secuencial tiene dos entradas (X1, X2) y dos salidas (Z 1, Z2). Las entradas representan un número en binario natural N de 2 bits. Si el valor presente de N es mayor que el valor inmediatamente anterior, entonces la salida Z1 se pone a 1. Si dicho valor es menor, Z2 se pone a 1. En cualquier otro caso, Z 1 = Z2 = 0. Suponer que el circuito se inicializó hace tiempo. a) Describir el diagrama de flujo del sistema como autómata de Mealy. b) ¿Cuántos estados tendrá el circuito equivalente de Moore? c) Diseñar el circuito con flip-flops tipo D activos con el flanco negativo de la señal de reloj.
a) Autómata de Mealy. Necesitamos cuatro estados: q0: el número que llegó en la transición anterior fue X2X1=00. q1: el número que llegó en la transición anterior fue X2X1=01. q2: el número que llegó en la transición anterior fue X2X1=10. q3: el número que llegó en la transición anterior fue X2X1=11.
00/00
Sistemas Digitales
X2 X1 E.A
00
01
10
11
q0
q0/00
q1/01 q2/01 q3/01
q1
q0/10
q1/00 q2/01
q3/01
q2
q0/10 q1/10 q2/00
q3/01
q3
q0/10
q1/10 q2/10 q3/00 E.Sig./ Z2Z1
No hay estados equivalentes pues las salidas son distintas.
b) Si realizáramos un autómata de Moore, necesitaríamos asignar a cada salida distinta un estado, ya que las salidas solo dependerán del estado. Si nos fijamos en la tabla de transiciones: -
q0 tiene asignadas 2 tipos de salidas (00 y 01) luego habría que dividirlo en 2 estados distintos. q1 tiene asignadas 3 tipos de salidas (10, 00 y 01) luego habría que dividirlo en 2 estados distintos. q2 tiene asignadas 3 tipos de salidas (10, 00 y 01) luego habría que dividirlo en 2
Sistemas Digitales
Entradas X2
X1
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
E. Actual q0 q1 q2 q3 q0 q1 q2 q3 q0 q1 q2 q3 q0 q1 q2 q3
E. Siguiente n
Q1n
Q0
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Q1n 1
q0 q0 q0 q0 q1 q1 q1 q1 q2 q2 q2 q2 q3 q3 q3 q3
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
n 1
Salidas actuales
Excitaciones
Q0
Z2
Z1
J1 K 1 J0 K 0
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0
0 0 * * 0 0 * * 1 1 * * 1 1 * *
* * 1 1 * * 1 1 * * 0 0 * * 0 0
0 * 0 * 1 * 1 * 0 * 0 * 1 * 1 *
* 1 * 1 * 0 * 0 * 1 * 1 * 0 * 0
Nos piden implementar el circuito con FF tipo D. En general habría que buscar una expresión para Di en función de X i y Qi, con la condición de que Qin1 Di . En este caso es muy sencillo, pues se observa en la tabla de transiciones que:
Sistemas Digitales
El circuito final sería: x1 x1 x2 x2 Q0 Q0 Q1 Q1
X1 X2 D0
Q0 FF 0 Q0
Q1
D1 FF 1
Q1 CLK
Z2
Z1
Problema 7.2. Circuito implementado con flip-flops tipo D.
Sistemas Digitales
3.- Los números entre 0 y 3, expresados en binario natural, se transmiten en serie por una línea de datos Y. Primero se transmite el bit más significativo. La transmisión está sincronizada con una señal de reloj. Se desea diseñar un circuito secuencial tal que la salida Z nos entregue un 1 durante el tiempo del segundo bit si la combinación que llegó a través de Y fue 0 ó 3, permaneciendo el resto del tiempo a 0. Por último, la entrada X es la única que puede inicializar el sistema: X = 1 provoca el paso al estado inicial, y en ese estado queda el sistema hasta que X = 0. En el momento que X = 0, de nuevo se tratará de detectar el 0 o el 3 (X = 1 obliga a Z = 0).
X Detector de 0 y 3
Z
Y Reloj
Del enunciado se deduce que la salida va a cambiar en función del estado del circuito y del valor de las entradas X e Y. Por tanto lo más apropiado es implementar el circuito como un autómata de Mealy. El diagrama de flujo sería:
Sistemas Digitales
XY E.A
Tabla de implicación: 00
01
10
11
q0
q1/0
q3/0
q0/0
q0/0
q1
q2/1
q2/0
q0/0
q0/0
q2
q2/0
q2/0
q0/0
q0/0
q3
q2/0
q2/1
q0/0
q0/0
q1 X q2 q3=q2 X q1=q2 q3 X X X q0 q1 q2
E.Sig./ Z No hay estados equivalentes. q1 y q3 no pueden ser equivalentes pues tienen distintas salidas. q0 y q2 serían equivalentes si lo fueran q 1-q2 y q2-q3 lo cual no es cierto. Codificamos q0: 00, q1: 01, q 2: 10 y q 3: 11. Necesitaremos 2 flip-flops. n
Qi
n 1
Qi
J
K
0
0
0
*
0
1
1
*
1
0
*
1
J0K 0 - Q0 J1K 1 - Q1
q0 q1 q2
Q1 Q0 0 0 0 1 1 0
Sistemas Digitales
Simplificando mediante los diagramas de Karnaugh:
10
XY Q1 Q0
00
01
11
10
0*
0*
00
1*
1*
0*
0*
1*
0*
0*
01
*1
*1
*1
*1
*0
*0
*1
*1
11
*1
*1
*1
*1
*0
*0
*1
*1
10
0*
0*
0*
0*
K 1=X
J 0
XY Q1 Q0
00
01
11
00
0*
1*
01
1*
11 10 J 1
X Y X Q0
J1K 1 (Q1)
XY Q1 Q0
00
01
11
10
00
0
0
0
0
01
1
0
0
0
J 1
J0K 0 (Q0)
X Q1
K 0=1
X Y X Q0
K 1=X
Z X Y Q Q
J 0
X Q1
K 0=1
X YQ Q
Sistemas Digitales
Si queremos implementar el circuito con FFs tipo D tenemos que considerar que D1 Q1n1 y D0 Q0n 1 . Dibujamos los diagramas de Karnaugh y simplificamos:
XY Q1 Q0
00
01
11
10
XY Q1 Q0
00
01
11
10
00
0
1
0
0
00
1
1
0
0
01
1
1
0
0
01
0
0
0
0
11
1
1
0
0
11
0
0
0
0
10
1
1
0
0
10
0
0
0
0
n 1
Q1n1 D1
n 1
Q1
X ·( y Q1 Q0 )
El circuito implementado con FF tipo D es: Y
Q0
D0
n 1
Q0
X Q1 Q0
Sistemas Digitales
4.- Diseñar un divisor de frecuencia por 3 síncrono con flip-flops JK activados por el flanco negativo.
Tenemos que dividir por tres la frecuencia de la señal de reloj. Dibujamos el diagrama de secuencias:
C (Clock) Z
0
1
2
1
0
2
Cada tres ciclos de reloj la secuencia se repite, luego tendremos tres estados distintos. Necesitamos 2 FFs JK. n
Qi
n 1
Qi
J
K J0K 0
Q0
Sistemas Digitales
Para analizar la salida dibujamos una tabla con todos los posibles valores de la salida y de los estados:
E. Actual n
n
Salida
C
Q1
Q0
Z
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
0 0 1 * 0 1 1 *
Q1 Q0 C
00
01
11
10
0
0
0
*
1
1
0
1
*
1
Z=Q1+CQ0
Dibujamos por último el circuito con FFs JK:
J0
FF 0 CLK 0
Q0
J1
FF 1 CLK 1
Q1
Z
Sistemas Digitales
5.- Diseñar un sistema secuencial capaz de detectar la secuencia 11010 en una línea X de datos serie sincronizados con una señal de reloj C: a) Como autómata de Moore. b) Como autómata de Mealy. c) Con un registro de desplazamiento. a) Autómata de Moore. Consideramos que se puede producir solapamiento. Al ser un autómata de Moore asociamos la salida al estado del sistema, pues no va a depender del valor de las entradas. 0 X 1
0/0 0
Estado/Z 1/0
0
1
1 2/0
0 3/0 1
1
Sistemas Digitales
X E.A. 0
0
1
Z
0
1
0
1
0
2
0
2
3
2
0
3
0
4
0
4
5
2
0
5
0
1
1
1 2 3 4
1=2 0=3 1=2 1=4 0=5 1=2
5 X 0
0=3 2=4 0=5
X 1
3=0 2=4 3=5
0=5 4=2
X 2
X 3
X 4
E. Siguiente En principio tendremos 6 estados. Veamos si podemos simplificar el número de estados. Para ello aplicamos la siguiente regla: DOS ESTADOS SON EQUIVALENTES SI TIENEN LA MISMA SALIDA Y LLEVAN A ESTADOS SIGUIENTES IGUALES O EQUIVALENTES. Método visual para comprobarlo: Tabla de implicación. -
Colocamos los distintos estados actuales de forma vertical (desde el segundo
Sistemas Digitales
Q2
Q1
Q0
0
0
0
0
1
0
0
1
2
0
1
3
0
4
1
5
1
Basándonos en la tabla de funcionamiento del flip-flop JK hallamos qué valores han de tomar J y K para implementar todas las posibles evoluciones en las variables de estado. J
K
Qn
0
0
0
Q
1
1
0
1
0
0
0
0
1
0
1
1
1
1
Q
0
1
1
n
n
Q
n
0
1
→ → → → →
Codificación de estados n
n 1
Qi
Qi
0
J
K
0
0
*
0
1
1
*
1
0
*
1
J0K 0 - Q0 J1K 1 - Q1 J2K 2 - Q2
Qn
1
J
K
0
0
*
1
1
*
0
*
1
1
*
0
Sistemas Digitales
Simplificamos por Karnaugh:
X Q2 Q1 Q0
01
11
10
00
0*
0*
1*
0*
0*
01
0*
0*
0*
1*
**
1*
11
*1
**
**
*1
**
0*
10
*0
**
**
*0
01
11
10
00
0*
*0
*1
0*
01
0*
*1
*1
11
0*
**
10
0*
**
K 2=X+Q0
X Q2 Q1 Q0
X Q2 Q1 Q0
00
00
J2K 2 (Q2) J =X
K 1=Q0
00
01
11
10
00
0*
1*
0*
1*
01
*1
*1
*0
*1
X Q2 Q1 Q0
J1K 1 (Q1) J 1 X Q2 Q0 XQ2 Q0
00
01
11
10
00
0
0
0
0
01
0
1
1
0
Sistemas Digitales
b) Autómata de Mealy. En esta ocasión la salida va a depender del estado del sistema y del valor de la entrada. Secuencia 11010. 0/0 0
X/Z 1/0 0/0
Estado 1
1/0
1/0 2
0/0
0/0 3
0/1
1/0
1/0 4
En la tabla de estados siguientes (o tabla de fases) incluimos la salida dentro de la tabla
Sistemas Digitales
Q2
Q1
Q0
0
0
0
0
Qi
Qi
1
0
0
1
0
2
0
1
0
3
0
1
1
4
1
0
0
n
n 1
J
K
0
0
*
0
1
1
*
1
0
*
1
1
1
*
0
J0K 0 - Q0 J1K 1 - Q1 J2K 2 - Q2
Codificación de estados
Dibujamos la Tabla de transiciones: Entrada
E. Actual
X 0 0 0 0
0 1 2 3
E. Siguiente n
Q2n
Q1n
Q0
0 0 0 0
0 0 1 1
0 1 0 1
0 0 3 0
Q2n1
Q1n 1
0 0 0 0
0 0 1 0
Salida
Excitaciones
Q0
Z
J2 K 2 J1 K 1 J0 K 0
0 0 1 0
0 0 0 0
0 0 0 0
n 1
* * * *
0 0 * *
* * 0 1
0 * 1 *
* 1 * 1
Sistemas Digitales
X Q2 Q1 Q0
01
11
10
00
0
1
0
0
*1
01
0
*
*
0
**
*1
11
0
*
*
0
**
0*
10
0
*
*
0
01
11
10
00
0*
0*
0*
1*
01
*1
**
**
11
*1
**
10
1*
**
K 0=1
X Q2 Q1 Q0
00
00
J0K 0 (Q0) J 0
X Q1 X Q2 Q1
XQ0 XQ2 X (Q2 Q0 )
J2=XQ1Q0
J 1
K 2=1
K 1=Q0
Z X Q2
J 0
X Q1 X Q2 Q1
K 0=1
Sistemas Digitales
Detecta la secuencia: 11010 Z
X
D0
Q0
FF 0 C0 Rd0
Q0
D1
Q1
FF 1 C1 Rd1
Q1
D2
Q2
FF 2 C2 Rd2
Q2
D3
Q3
FF 3 C3 Rd3
Q3
CLK
Inicialización
Problema 7.5. Circuito realizado mediante un registro de desplazamiento constituido por flip-flops tipo D.
Sistemas Digitales
6.- Diseñar un generador de secuencias que, a partir de una señal de reloj C, produzca las señales S1 a S8 que aparecen representadas en la figura. Utilizar para ello un
contador integrado ‘161, un decodificador integrado ‘138 y las puertas NAND que sean necesarias. 0
Reloj S1 S2 S3 S4 S5 S6 S7 S8
1
2
3
4
5
6
7
8
9
10
11 12
13
14
15
Sistemas Digitales
Luego las salidas O0 , O1 , O2 , O3 coinciden con S 1, S2, S3 y S4. O4 , O5 , O6 , O7 son como S1, S2, S3, S4 desplazadas un ciclo de reloj. Veamos como generar S5, S6, S7 y S8. a) S5: se hace 0 cuando S 4 ( O3 ) se hace cero y se pone a 1 cuando S 1 ( O0 ) vale 0. Luego: S O0 R O3 b) S6: se hace 0 cuando S 4 ( O3 ) se hace cero y se hace 1 cuando S2 ( O1 ) vale 0.
S O1 R O3 c) S7: se hace 0 en el ciclo 6 ( O6
0 ) y se hace 1 en el ciclo 4 ( O4
0 ).
0 ) y se hace 1 en el ciclo 5 ( O5
0 ).
S O4 R O6 d) S8: se hace 0 en el ciclo 7 ( O7 S O5 R O7
Sistemas Digitales
7.- Construir un registro que permita realizar las siguientes operaciones: escritura desde un bus, lectura a un bus, complemento y puesta a cero. Todas ellas deberán ser síncronas salvo la de lectura. Implementarlo con flip-flops JK y la lógica que sea necesaria. Nota: lo he simplificado del enunciado de Luís. He quitado la operación i ncremento pues se basaba en un contador no visto en clase.
Hemos visto que se pueden construir registros que respondan a una u otra orden (escritura, lectura, etc.). La orden se indicará activando el terminal de control correspondiente. En un sistema síncrono la orden se realizará en el siguiente flanco activo de la señal de reloj. Supongamos que queremos ordenarle a un sistema una serie de operaciones. Podemos realizar las operaciones de dos maneras: a) Operaciones individualizadas en registros separados (cada registro realizaría una sola operación) Más flexibilidad. b) Un registro que responda a distintas órdenes nos permitirá ahorrar hardware.
Como ejemplo de este último tipo vamos a diseñar un registro que responda a 4 órdenes que se muestran en la tabla. Nuestro registro tendrá 4 terminales de control: W, R, C y
Sistemas Digitales
b) Lectura del registro Para leer del registro y transferir un bit del FF i al bus cuando R=1 utilizaremos un buffer triestado. Cuando R=1 el buffer dejará pasar el dato al bus y cuando R=0 el buffer se colocará en alta impedancia, aislando el registro del bus. De este modo pueden conectarse varios registros al mismo bus. Qi
R Bi
La transferencia registro bus tendrá lugar en cuanto R=1, siendo independiente del reloj. Eso sí, si la palabra escrita en el bus se transfiere a un registro esa operación sí que es síncrona.
c) Complementación Para complementar el dato del registro si C=1 debemos hacer: Ji=K i=C
para i=1,….., n
Sistemas Digitales
Bi
W C Z
K i CLK
Ji
Ci FF i Qi
R
El registro completo se puede representar como:
Bi
Sistemas Digitales
8.- Diseñar un registro de desplazamiento de 4 bits con tres señales de control C 2, C 1 y C0 tales que: a) b) c) d) e) f) g) h)
Si Si Si Si Si Si Si Si
C2C1C0 = 000, el registro se pone a cero (reset). C2C1C0 = 001, el registro desplaza a la derecha. C2C1C0 = 010, el registro mantiene la información. C2C1C0 = 011, el registro desplaza cíclicamente (rotación) a la derecha. C2C1C0 = 100, el registro desplaza a la izquierda. C2C1C0 = 101, el registro carga información en paralelo. C2C1C0 = 110, el registro desplaza cíclicamente (rotación) a la izquierda. C2C1C0 = 111, el registro se pone a uno (set).
Todas estas operaciones deben efectuarse en sincronismo con la señal de reloj. Efectuar el diseño utilizando flip-flops tipo D y los circuitos combinacionales integrados que sean necesarios. I0 I1 I2 I3 I4 I5 I6 I7
S 2 S1 S0
Utilizaremos 4 FFs tipo D y 4 multiplexores ‘151. Los multiplexores ‘151 son multiplexores 81 que poseen 3 entradas de selección. MULTIPLEXOR `151 Aplicamos las 3 señales de control a las entradas de selección de los multiplexores:
E
Sistemas Digitales
0 D Q3 Q0 Q2 P3 Q2 1
0 Q2 Q1 Q2 Q0 P1 Q0 1
0 Q3 Q2 Q3 Q1 P2 Q1 1
0 Q1 Q0 Q1 D P0 Q3 1
0
E I0 I1 I2 I3 I4 I5 I6 I7
0
E I0 I1 I2 I3 I4 I5 I6 I7
0
E I0 I1 I2 I3 I4 I5 I6 I7
0
E I0 I1 I2 I3 I4 I5 I6 I7
C2 C1 C0
S2 S1 S0
C2 C1 C0
S2 S1 S0
C2 C1 C0
S2 S1 S0
C2 C1 C0
S2 S1 S0
MUX 3
Z3
MUX 2
Z2
Z 3
Q2 D2
FF 3 C3
Z1
Z 2
Q3 D3
FF 2
Q3
C2
MUX 1
MUX 0
Z0
Z 1
Z 0
Q1 D1 FF 1
Q2 C1
Q0 D0 FF 0
Q1
Q0
C0
CLK
Problemas Tema 7
Página 95
Sistemas Digitales
9.- Diseñar un contador binario síncrono de módulo 16 con flip-flops JK activados por flanco de subida. Generalizar el montaje para cualquier contador de módulo 2 n, con n entero. Para diseñar un contador de módulo 16 necesitaremos 4 FFs (2 4=16). La secuencia de conteo será: Dec. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Q3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
Q2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1
Q1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1
Q0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0