Está en la página 1de 12

Tema VI : Implementación de sistemas secuenciales síncronos.

www.lanzarotecaliente.com

TEMA VI: IMPLEMENTACIÓN DE SISTEMAS SECUENCIALES SÍNCRONOS

1.- BIESTABLES.

X (t) Z
S (t)
G

Necesitamos un elemento que coja esta salida y


la lleve a S (t). Allí, en el biestable necesitamos
un elemento almacenador de memoria que
guarde el estado siguiente deseado.

Los biestables tipo LACTCH son sensibles a nivel, mientras que los biestables tipo FLIP –
FLOP son sensibles al flanco de subida y al flanco de bajada.
Necesitamos:
- Dos estados: 0 y 1.
- Que pueda escribir.
- Que tenga capacidad de memoria.

Este tipo de circuito si que pueden tener realimentación, por lo que ya no se llaman sistemas
combinacionales. Para representar las salidas hay que tener en cuenta el retardo.

X X Y NOR (X, Y)
Z1 0 0 1
0 1 0
1 0 0
Z0 1 1 0
Y

X0

Y0

NOR

Retardo.
X=0
Ejemplo: Utilicemos la primera entrada como X = 0 e Y = 0. Reposo Z1 = Z0
Y=0

X=0 X=0 Z0 = 0

Y=1 Z1 = 1

X=1 Z0 = 1

Y=0 Z1 = 0
Tema VI : Implementación de sistemas secuenciales síncronos.

Y=1
t
Z0
t t
Z1 t

Hay un caso especial, que es cuando la entrada es X = 1 e Y = 1.

X=0

Y=1
t
Z0
t
Z1 t

Cuando se hace esto, comienza un comportamiento inestable llamado oscilamiento, por eso, se
prohibe que en este tipo de circuitos, las dos entradas puedan tener el valor 1 a la vez.

R (t) S (t) Q ( t + t )
0 0 Q (t)
0 1 1
1 0 0
1 1 Prohibido.

Un biestable del tipo LATCH cambia si la entrada de reloj CLK = 1 (durante todo el rato que
CLK = 1 puede cambiar el estado). Por tanto, cuando CLK = 0, las entradas valen 0 en el biestable.

Biestable tipo RS síncrono.

R
R ant
Q

CLK

Q
S ant
S

Biestable tipo D síncrono. Tiene como única función retrasar la salida.

X (t) Z (t) = X ( t – 1 )

R S Q Delay Q (t + 1) D R S
0 0 0 0 D (t) 0 1 0
0 0 1 1 0 0 1 0 1
0 1 0 1 1 1
0 1 1 1 S (t) = D
Tema VI : Implementación de sistemas secuenciales síncronos.

1 0 0 0 R (t) = D
1 0 1 0
SÍNCRONO
Lo que hacemos es ponerle un inversor a R.

D(t) Q

CLK BIESTABLE TIPO “D”

Biestable tipo JK:

Es casi igual que el anterior. Se diferencian en que él si que está permitido que R y S valgan 1en
el mismo estado de tiempo.

Biestable tipo JK Biestable tipo D


J (t) K (t) Q (t + 1) S R Q (t+1)
0 0 Q (t) 0 0 Q(t)
0 1 0 0 1 0
1 0 1 1 0 1
1 1 Q (t)

Son iguales sólo que hay que modificar los valores para las entradas 1,1.

Q (t +1)
Q (t) JK = 00 JK = 01 JK = 10 JK = 11
0 0 0 1 1
1 1 0 1 0
S = 0 y R = ind. S=1yR=0
S=0yR=1 S=0yR=1
S = indiferente y R = 0 S=1yR=0
S = 0 y R = indiferente. S = ind. Y R = 0

Estos son los valores que han de tomar las entradas para conseguir los estados.

Los valores de la tabla de verdad para estas funciones son los siguientes:

Q J K S R
0 0 0 0 -
0 0 1 0 -
0 1 0 1 0
0 1 1 1 0
1 0 0 - 0
1 0 1 0 1
1 1 0 - 0
1 1 1 0 1

Los diagramas de Karnaugh correspondientes son:

S K R K

0 0 1 1 - - 0 0
Tema VI : Implementación de sistemas secuenciales síncronos.

Q - 0 0 - Q 0 1 1 0

J J
S=Q·J R=Q·K

K(t) Q (t)

CLK BIESTABLE TIPO “JK”

J (t) Q (t)

Biestable tipo T (toggle):

Devuelve el valor de la entrada si el estado anterior es 0 y el contrario si el valor es 1.

Toggle Q T Q(t+1) S R
T (t) Q (t+1) 0 0 0 0 -
0 Q (t) 0 1 1 1 0
1 Q (t) 1 0 1 - 0
1 1 0 0 1

S=Q·T Hay que obtener estos


R=Q·T valores a partir del RS.

Esto es por ejemplo, un registro de n bits, que almacena una secuencia de n bits.

( Dn-1 D0 )

n–1 0

CLK

( Qn-1 Q0)

3.- IMPLEMENTACIÓN Y ANÁLISIS DE EXPRESIONES CANÓNICAS.

Especificación de alto nivel: Z (t) = F ( X (t), S (t) )


S (t+1) = G (x (t), S (t) )
Registro de estado : S (t)

Vamos a implementar dos bloques combinacionales, uno para F y otro para G.

X (t) F
Sistema Z (t)
S (t) Combinacional

G S (t+1) S (t)
Sistema Registro
Combinacional

CLK
Tema VI : Implementación de sistemas secuenciales síncronos.

SÍNTESIS:
Alto nivel
Descripción funcional
No basada en el estado.

Tabla de estados / Diagrama de estados.


Especificación de alto nivel basada en el estado.
Minimización de estados

Especificación de bajo nivel.

Para empezar hay que poner Zi en función de todas las X que hay.

Zi (t) = Fi ( Xn , Qm)
Sj (t+1) = Gj (Xn, Qm)

Para conseguir que esto sea el estado siguiente, sabiendo como funciona el
Biestable, varío la entrada (síntesis de entradas) para hacerlo funcionar como
yo quiero.

Para conseguir esto, tengo que seguir unos pasos una vez elegido el biestable que voy a utilizar
(SR, JK, D, T).
Sj (t+1) = Gj (Xn, Qm)

1.- Descripción funcional:

Contador X  {0, 1}
X(t) mod 4 Z (t) Z  {0, 1, 2, 3}

 t 1 
Z (t )    X (i )  mod 4
 t 0 
2.- Especificación de alto nivel basada en el estado:
0
Estados: S0, S1, S2, S3
S0
1 1

S3 0 S1 0
0

1 1
S2

3.- Especificación de bajo nivel.

S0 0 0 Z0 0 0 S (t+1)
S1 0 1 Z1 0 1 S(t) Z (t) X (t) = 0 X (t) = 1
S2 1 0 Z2 1 0 0 0 0 0 0 0 0 1
S3 1 1 Z3 1 1 0 1 0 1 0 1 1 0
1 0 1 0 1 0 1 1
1 1 1 1 1 1 0 0

4.- Implementación teniendo en cuenta los biestables que vamos a utilizar.


4.1.- Por ejemplo biestables tipo D:
Tema VI : Implementación de sistemas secuenciales síncronos.

Para este caso no es necesario modificar la tabla. El bit de salida es el mismo que el bit de
estado. Q (t+1) = D(t)
Z (t) = (Z1 (t), Z0 (t)) Z1 (t) = q1 (t)
S (t) = ( q1 (t), q0 (t)) Z0 (t) = q0 (t)

X (t) = 0 X (t) = 1 d1 q0 d0 q0

0 0 0 1 0 0 1 1 0 1 1 0
0 1 1 0 X 0 1 0 1 X 1 0 0 1
1 0 1 1
1 1 0 0 q1 q1

d1 (t) = x · q1 + q1 · q0 + x · q1 · q0 d0 (t) = q0 (t)  x (t)

q1 Z1

d1

q1

q0 Z0

d0

X q0

CLK

4.2.- Con biestables JK.

S(t) S (t+1) Excitación X=0 X=1


q (t) X(t) = 0 X(t) = 1 Q(t) Q(t+1) J K J1 K 1 J0 K 0 J1 K 1 J0 K 0
0 0 0 0 0 1 0 0 0 - 0 - 0 - 0 - 1 -
0 1 0 1 1 0 0 1 1 - 0 - - 0 0 - - 1
1 0 1 0 1 1 1 0 - 1 - 0 0 - - 0 1 -
1 1 1 1 0 0 1 1 - 0 - 0 - 0 - 1 - 1

J K Q(t)
0 0 Q(t) Construimos una K 0= X
0 1 0 tabla de verdad J0 = X
1 0 1 más útil
1 1 Q(t)

q0 q0
J1 K1
0 0 - - - - 0 0 J1 = K1 = X · q0
X 0 1 - - X - - 1 0

q1 q1

Implementamos:

J1 Q1 Z1
X
Tema VI : Implementación de sistemas secuenciales síncronos.

K1 Q1

J0 Q0 Z0

K0 Q0

CLK

ANÁLISIS:
Entradas a lo biestables
1.- Análisis combinacional
Salidas del sistema
2.- Función de transición.
3.- Especificación de alto nivel no basada en el estado.
4.- Descripción funcional.

Ejemplo:

Q1
T1
Q1
Z

Q0
Z = q1 · q0
T0
T1 = X · q0 + X · q1
Q0
T0 = ( X  q0) + q0 · q1

T Q (t+1) T1, T0 S (t+1)


0 Q (t) q1 q0 x=0 X=1 Z x=0 x=1
1 Q (t) 0 0 0 0 0 1 0 0 0 0 1
0 1 1 1 0 0 0 1 0 0 1
1 0 0 1 1 1 0 1 1 0 1
1 1 1 1 1 0 1 0 0 0 1

S0
0

Diagrama de estados
0 1

1
1
S3 S1
1 0

1 0
Tema VI : Implementación de sistemas secuenciales síncronos.

0
S2
0

Es un reconocedor de la secuencia 100 no bloqueado:

1 si x (t-3, t-2, t-1) = 100


Z (t)
0 c.c.

Ejemplo: Síntesis de un contador módulo 4.

Vamos a utilizar biestables de tipo “ T ” y un multiplexor.


X Q1 Q0 Q (t+1) T1 T0
0 0 0 0 0 0 0
0 0 0 0 1 0 0
T Q (t) 0 0 1 1 0 0 0
0 Q (t) 0 1 0 1 1 0 0
1 Q (t) 1 0 0 0 1 0 1
1 0 1 1 0 1 1
1 1 0 1 1 0 1
1 1 1 0 0 1 1

T1 = X · Q0
T0 = X

Necesitamos u multiplexor de 4  1 para cada salida

T1 q0

0 0 0 0
X 0 1 1 0
q1

Q0 Z0
X T0
Q0
1

1 3
2 Q1
1 T1
0 0 Q1 Z1

X Q0
CLK

Ejemplo de análisis.
0 1 0
Q1 = A3
0 0 0
S(t)
1 0 1
Q0 = A2
1 0 0
X1 = A1
0 0 0
X(t)
X0 = A0
Tema VI : Implementación de sistemas secuenciales síncronos.

0 1 0
1 1 1
1 0 0
0 1 0
1 0 0 Z
1 0 0
0 0 1 D0 Q1
0 0 0
1 0 0 D1 Q0
0 1 0

Z (t) S (t+1)
S (t) X(t) = 0 X (t) = 1 X (t) = 2 X (t) = 3 X (t) = 0 X (t) = 1 X (t) = 2 X (t) = 3
0 0 0 1 0 S0 S1 S2 S2
1 0 0 1 0 S0 S0 S3 S3
2 0 0 0 0 S0 S3 S2 S0
3 0 0 0 1 S0 S2 S0 S3

0/0

S0
0/0 ; 1/0
2/0 ; 0/0 2/1 1/0
3/0
3/1 S3 0/0; 2/1; S1
3/1 3/0

1/0 2/0
1/0 S2

INICIALIZACIÓN ASÍNCRONA DE SISTEMAS SECUENCIALES SÍNCRONOS.

Hacemos que el biestable tome un estado inicial independientemente del estado del reloj.
La señal de puesta a 0 se llama CLEAR = Cl
La señal de puesta a 1 se llama PRESET = Pr
Las dos señales no pueden estar activadas a la vez.

Por ejemplo, en un biestable tipo SR:


Cl Esto significa que están
están activos en baja
Pr Cl S R Q (t+1)
S Q
0 1 - - 1 CLK
1 0 - - 0 R Q
1 1 Func.normal
Pr
CLK

Q (t)

Pr

t

Cl
Cl
R Q
Tema VI : Implementación de sistemas secuenciales síncronos.

CLK

S Q

Pr
Pr

Se pone esto para dar los valores que queramos Cl =0 ó Pr = 0

MÓDULOS SECUENCIALES.

1) Registros:
E Si Cl = 0 Z = 0
n Si Cl = 1 Q(t) si L = 0
Q (t+1)
LOAD E (t) si L = 1
Cl
CLK

Registro en carga paralela:


E (t)

0 1
L
MUX

CLK Registro Cl

Z (t) = Q (t)

Ejemplo: n = 2

Q1 E1 Q0 E0

0 1 0 1

D1 D0

Q1 Q0
Tema VI : Implementación de sistemas secuenciales síncronos.

CLK Cl

Z1 Z0

Registro de desplazamiento:

- Desplazamiento a la derecha: Desplaza un bit a la derecha.


- Desplazamiento a la izquierda: Desplaza un bit a la izquierda.

Lo que en realidad se desplaza es el estado.

Cl

 Dn-1 Qn-1 Dn-2 Qn-2 D0 Q0

CLK
Qj (t+1) = Qj+1 (t)

En el desplazamiento libre es al revés:


S=0 derecha Qj (t+1) = Qj+1 (t)
Si Cl = 0
S=1 izquierda Qj (t+1) = Qj-1 (t)

0 Qn-2 Qj+1 Qj-1 Q1 0

Cl

Dn-1 Dn-2 Dj+1 Dj Dj-1 D0

CLK
Qn-1 Qj+1 Qj-1 Q0

Esto es un registro con desplazamiento bidireccional con carga paralela.

C1 C0 Q (t+1)
0 0 Q (t)
0 1 Desp izqda
1 0 Desp decha
1 1 E (t)

ESP E (t) ESI


Tema VI : Implementación de sistemas secuenciales síncronos.

t (t) = Q (t)

Ejemplo: para n = 3

Q2 Q1 ESD E2 Q1 Q0 Q2 E1 Q0 ESI Q1 E0

0 1 2 3 0 1 2 3 0 1 2 3
0 C1 1 C1 1 C1
1 C0 0 C0 0 C0

Cl

D2 D1 D0

Q2 Q1 Q0

CLK

2) Contador:

CLK

LOAD Cl

CONTAR
Si Cl = 0 el contador adopta el estado .
n Si Cl = 1: E (t) si LOAD = 1
Q (t+1) ( Q (t) +1) mod p si LOAD = 0 y
Q CUENTA=1
Q (t) si LOAD = CUENTA = 0

También podría gustarte