Sunteți pe pagina 1din 12

Tema VI : Implementacin de sistemas secuenciales sncronos.

TEMA VI: IMPLEMENTACIN DE SISTEMAS SECUENCIALES SNCRONOS

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 realimentacin, 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.

Ejemplo: Utilicemos la primera entrada como X = 0 e Y = 0.


X=0
Reposo Z1 = Z0
X=0 Y=0
Y=1 X=0 Z0 = 0
t
Z0
t t Y=1 Z1 = 1
Z1 t
X=1 Z0 = 1

Y=0 Z1 = 0

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


Tema VI : Implementacin de sistemas secuenciales sncronos.

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 sncrono.

R
R ant
Q

CLK

Q
S ant
S

Biestable tipo D sncrono. Tiene como nica funcin 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
1 0 0 0 R (t) = D
1 0 1 0
SNCRONO
Lo que hacemos es ponerle un inversor a R.

D(t) Q

CLK BIESTABLE TIPO D

Biestable tipo JK:


Tema VI : Implementacin de sistemas secuenciales sncronos.

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 slo 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
Q - 0 0 - Q 0 1 1 0

J J
S=QJ R=QK

K(t) Q (t)

CLK BIESTABLE TIPO JK

J (t) Q (t)

Biestable tipo T (toggle):


Tema VI : Implementacin de sistemas secuenciales sncronos.

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=QT Hay que obtener estos


R=QT valores a partir del RS.

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

( Dn-1 D0 )

n1 0

CLK

( Qn-1 Q0)

3.- IMPLEMENTACIN Y ANLISIS DE EXPRESIONES CANNICAS.

Especificacin 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

SNTESIS:
Alto nivel
Descripcin funcional
No basada en el estado.

Tabla de estados / Diagrama de estados.


Especificacin de alto nivel basada en el estado.
Minimizacin de estados

Especificacin de bajo nivel.


Tema VI : Implementacin de sistemas secuenciales sncronos.

Para empezar hay que poner Zi en funcin 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, varo la entrada (sntesis 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.- Descripcin 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.- Especificacin 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.- Especificacin 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.- Implementacin teniendo en cuenta los biestables que vamos a utilizar.


4.1.- Por ejemplo biestables tipo D:
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)


Tema VI : Implementacin de sistemas secuenciales sncronos.

q1 Z1

d1

q1

q0 Z0

d0

X q0

CLK

4.2.- Con biestables JK.

S(t) S (t+1) Excitacin 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 ms 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
K1 Q1

J0 Q0 Z0

K0 Q0

CLK

ANLISIS:
Tema VI : Implementacin de sistemas secuenciales sncronos.

Entradas a lo biestables
1.- Anlisis combinacional
Salidas del sistema
2.- Funcin de transicin.
3.- Especificacin de alto nivel no basada en el estado.
4.- Descripcin 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
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: Sntesis de un contador mdulo 4.


Tema VI : Implementacin de sistemas secuenciales sncronos.

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 anlisis.
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)
0 1 0
X0 = A0
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)
Tema VI : Implementacin de sistemas secuenciales sncronos.

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

INICIALIZACIN ASNCRONA DE SISTEMAS SECUENCIALES SNCRONOS.

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

Por ejemplo, en un biestable tipo SR:


Cl Esto significa que estn
estn 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

Cl
Cl
R Q

CLK

S Q

Pr
Pr

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


Tema VI : Implementacin de sistemas secuenciales sncronos.

MDULOS 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

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.


Tema VI : Implementacin de sistemas secuenciales sncronos.

Cl

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

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

En el desplazamiento libre es al revs:


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

t (t) = Q (t)
Tema VI : Implementacin de sistemas secuenciales sncronos.

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

S-ar putea să vă placă și