You are on page 1of 13

SISTEMAS SECUENCIALES

Decimos que un sistema lógico es secuencial cuando sus salidas dependen de los valores de
las entradas actuales y de los valores que hayan tomado anteriormente, desde la puesta en
marcha del sistema. Es decir, de toda la secuencia de entradas desde el inicio.

1. Secuencial vs. Combinatorio

La principal diferencia entre los sistemas lógicos secuenciales (sls) y los combinatorios (slc)
es que en los últimos, las salidas en cada instante dependen únicamente de las entradas en
aquel mismo instante;

X SLC Y
m n
Yt = f(Xt)
Fig. 1.1 Ecuación general de los SLC´s (t es el tiempo)

Mientras que en los secuenciales, las salidas dependen de todos los valores que hayan ido
tomando las entradas desde el inicio

X SLS Y
m n

Yt = f(Xt, Xt-1 , …, X0 )
Fig. 1.2 Ecuación general de los SLS´s (t es el tiempo)

Por tanto, mientras en los circuitos combinatorios, el valor de las salidas en cada instante se
calcula directamente a partir de las señales de entrada, en los circuitos secuenciales se
calcula a partir de las señales de entrada y de algún mecanismo de memoria que permita
conservar los valores que ha ido tomando la entrada desde la puesta en marcha del sistema.

Modelo de circuito combinatorio Modelo de circuito secuencial

X0 Y0 X0 Y0
. Bloque de . . Bloque de .
. puertas . . puertas .
. . . lógicas .
lógicas
Xm Yn Xm Yn

Mem

Fig 1.3 Modelos típicos de los dos Sistemas Lógicos

1
2. Elementos de memoria

Ya que estamos hablando de circuitos lógicos, las entradas de estos serán valores booleanos
(verdadero o falso, 1 o 0, ...) Por esta razón, los elementos que se utilizan como memoria en
los SLS tendrán que ser capaces de almacenar la información bit a bit.
Definimos el elemento básico de memoria, que denominamos biestable, como un circuito
lógico que pueda:
- Mantener un bit de información indefinidamente
- Modificar su contenido en función de algún tipo de entrada.

2.1 Biestable elemental

El circuito más elemental capaz de mantener un valor booleano durante un tiempo indefinido
es el mostrado en la figura 2.1

Fig. 2.1 Biestable elemental

Habitualmente y por comodidad, lo representaremos con los dos inversores orientados para
el mismo lado y llamaremos Q y Q´a sus terminales accesibles, ya que siempre presentarán
valores complementarios.


Fig. 2.2 Biestable elemental con los terminales de salida Q y Q´

Se puede observar fácilmente que este circuito se puede mantener de forma totalmente
estable en cualquiera de los dos estados posibles mostrados en la figura 2.3, de aquí que se
llame biestable.
0 1 Q=1 1 0 Q=0

1 0 Q´=0 0 1 Q´=1

Fig. 2.3 Cada inversor mantiene estable la entrada del otro

Cuando Q vale 1 diremos que el biestable está guardando un 1, y cuando valga 0 diremos que
guarda un 0. Este circuito permite guardar un bit pero no se puede modificar.

2
2.2 Biestable S-R

Estudiaremos una modificación añadiendo dos entradas: S y R con puertas NOR.

R
Q


S
Fig. 2.4 Biestable S-R

R=0, S=0

Observamos que si mantenemos los terminales de entrada R y S al valor 0, este circuito es


equivalente al anterior debido a que en la puerta NOR la operación (a+0)´= a´,

(0+0)´=1 (0+1)´=0
0 0
R 1 R 0
Q=1 Q=0

0 Q´=0 1 Q´=1
S 0 S 0
(1+0)´=0 (0+0)´=1

Fig 2.5 Con las entradas R=0 y S=0, el circuito se comporta como el del apartado anterior

Esta información se puede reflejar en una tabla de verdad, donde le hacemos constar los
s entradas de S y R y los valores después de pasar por las
puertas NOR, que las llamaremos Q+ y Q´+

R S Q Q´ Q+ Q´+
0 0 0 1 0 1
0 0 1 0 1 0

En estos dos casos las salidas no ofrecen ninguna modificación y son estables, pero veamos
los otros casos.

3
R=0, S=1

Veamos que ocurre cuando Q=0 y cuando Q=1

Q=0 R 0 (0+1)´=0
0 0 (0+0)´=1
Q=0 R 1 Q=1

1 Q´=1 0
S 0 1 Q´=0
S
(0+0)´=1 (1+1)´=0

Fig 2.6 Partiendo de Q=0, activamos S=1 (0+1)´=0

Observamos que al activar S=1, la salida Q también se activa.


Esta información la añadimos a la tabla anterior.

R S Q Q´ Q+ Q´+
0 0 0 1 0 1
0 0 1 0 1 0
0 1 0 1 1 0

-------------------------------------------------------------------------------------------------------
Q=1
(0+0)´=1 (0+0)´=1
R 0 1 R 0 1
Q=1 Q=1

0 Q´=0 0 Q´=0
S 0 S 1
(1+0)´=0 (1+1)´=0

Fig 2.7 Partiendo de Q=1, activamos S=1

Observamos que al activar S=1, la salida Q se mantiene activa.


Esta información la añadimos a la tabla anterior.

R S Q Q´ Q+ Q´+
0 0 0 1 0 1
0 0 1 0 1 0
0 1 0 1 1 0
0 1 1 0 1 0

4
R=1, S=0

Este caso es simétrico al anterior y por tanto, la tabla nos quedará de la siguiente forma:

R S Q Q´ Q+ Q´+
0 0 0 1 0 1
0 0 1 0 1 0
0 1 0 1 1 0
0 1 1 0 1 0
1 0 0 1 0 1
1 0 1 0 0 1

R=1, S=1

Este caso es diferente y veremos que no es estable.


Partimos, por ejemplo del caso en que Q=0.
Q=0
(1+1)´=0

0 (0+1)´=0 (1+0)´=0
R 1
0 Q=0
R 0 Q=0

1 0
0 Q´=1 1 Q´=0
S S
(0+0)´=1 (0+1)´=0

Fig 2.8 La activación de S y R nos lleva a una situación inconsistente (Q = Q´)

La activación de S y R nos lleva a una situación inconsistente (Q = Q´), que ni siquiera es


estable (probar lo que ocurriría si se desactivasen S y R. Verás que Q y Q´irán conmutando
sin parar). En consecuencia se considera la entrada R=S=1, como combinación prohibida.

R S Q Q´ Q+ Q´+ A través de R y S se dispone de


combinaciones que permiten:
0 0 0 1 0 1
- Mantener el estado del biestable
0 0 1 0 1 0
- Modificar su valor
0 1 0 1 1 0
Por tanto, el biestable S-R cumple con la
0 1 1 0 1 0
definición de biestable.
1 0 0 1 0 1
1 0 1 0 0 1
Puede servir como regla que R y S vienen
1 1 0 1 prohibida
de las palabras inglesas
1 1 1 0 prohibida
- Reset: reiniciar (poner a 0)
- Set: activar (poner a 1)

5
2.3 Tabla de transiciones

En el apartado anterior se ha obtenido una tabla con los valores que introducen las señales R
y S y la situación inicial de Q (Q´es el complementario) por un lado, y por el otro, la
situación en la que queda el biestable, Q+ (Q+´).

Esta tabla se puede condensar de la siguiente forma:


- Unir las líneas correspondientes a combinaciones iguales de R y de S porque tienen
el mismo efecto sobre Q
- No hay que poner la información de Q´ Q porque se pueden deducir de Q y Q+.

R S Q Q´ Q+ Q´+
Tabla de transiciones del biestable S-R
0 0 0 1 0 1
0 0 1 0 1 0 R S Q+
0 1 0 1 1 0 0 0 Q Q mantiene su valor
0 1 1 0 1 0 0 1 1 Q pasa a valer 1
1 0 0 1 0 1 1 0 0 Q pasa a valer 0
1 0 1 0 0 1 1 1 prohibida

1 1 0 1 prohibida
1 1 1 0 prohibida

Fig 2.9 construcción de la tabla de transiciones del biestable S-R

Esta es la tabla que llamamos de transiciones, la que a partir de las entradas describe el
comportamiento de la salida. Esta tabla describe perfectamente el comportamiento del
biestable, por lo que a partir de ahora nos basta con disponer de:
- Un símbolo que represente el biestable.
- La tabla de transiciones que defina su comportamiento.

Tabla de transiciones del biestable S-R


Símbolo del biestable S-R
R S Q+
R Q
0 0 Q
0 1 1
S Q´
1 0 0
1 1 prohibida

Fig 2.10 Símbolo y tabla de transiciones del biestable S-R

6
2.4 Sincronización

En los circuitos combinacionales la única noción temporal que interviene es el “presente”, sin
embargo, en los circuitos secuenciales se tiene en cuenta la evolución temporal de las

El circuito ha de disponer entonces de un mecanismo de sincronización que se realiza a


través de una señal de reloj que lo que hace es discretizar el tiempo, es decir, que en lugar
de ver el tiempo como una dimensión continua, los circuitos lo ven como una secuencia de
instantes.
Concretamente la señal de reloj va tomando los valores 0 y 1 de manera cíclica y continua
desde la puesta en marcha del sistema hasta que éste se para.
Usualmente se le conoce con la notación “clk” de la contracción de la palabra inglesa “clock”

tiempo
1
clk 0

Fig 2.11 Señal de reloj

La señal de reloj permite distinguir instantes diferentes de tiempo de diferentes maneras.


Principalmente las cuatro siguientes:

1
Por nivel 1 0
Por nivel
1
Por nivel 0 0
Tipo de
sincronización 1
Por flanco ascendente 0
Por flanco
1
Por flanco descendente 0

Fig 2.12 Tipos de sincronización

7
2.5 Biestable S-C por nivel

Un biestable S-C por nivel 1, es decir que sólo admite cambios cuando la señal de reloj valga
1, se puede obtener a partir de un biestable S-R.

Símbolo del biestable S-C


C
R Q Q
C Q
clk
clk
S S Q´ Q´
S Q´

Fig 2.13 Biestable S-C sincronizado por nivel 1

Tal y como se observa en la figura 2.13, cuando la señal del relo


entradas del biestable S-R interno y por tanto, Q no cambiará aunque cambien S o R.
Cuando la señal del reloj valga 1, las señales S y R se comunicarán directamente con S y C
respectivamente.

Símbolo del biestable S-C Tabla de transiciones del biestable S-C


sincronizado por nivel 1
clk C S Q+
C Q
clk 1 0 0 Q
1 0 1 1
S Q´
1 1 0 0
1 1 1 prohibida
0 X X Q

Fig 2.14 Símbolo y tabla de transiciones del biestable S-C

Si en lugar de trabajar con nivel 1, lo hiciéramos con nivel 0, la tabla de transiciones sería
igual cambiando en la columna de clk los 1´s por 0´s y viceversa.
En el símbolo, se modifica la entrada de clk
Símbolo del biestable S-C sincronizado por nivel 0

C Q
o clk
S Q´

El biestable S-C es la versión sincronizada del biestable S-R.

8
2.6 Biestable D por nivel

El biestable S-C tiene un pequeño inconveniente: Tiene una combinación prohibida.


De todas formas, a partir de él se puede construir un biestable de uso más sencillo y sin
combinaciones prohibidas: El biestable tipo D por nivel.

Símbolo del biestable D Tabla de transiciones del biestable D


D Q
Q+
S Q D Q D
clk clk
clk 0 0
o C Q´
Q´ Q´ 1 1

Fig 2.15 Biestable D sincronizado por nivel 1

La tabla de transiciones se puede deducir de la siguiente tabla: D C S Q+


0 1 0 0
1 0 1 1

Observamos que en el biestable D, el valor de la salida (Q), es el mismo que el de la entrada


(D).

2.7 Entradas asíncronas

Algunas veces interesa disponer de otras entradas al biestable que permitan modificar su
contenido independientemente del reloj. Refiriéndonos a la figura 2.13, le añadimos las
entradas Cl (Clear: poner a 0), y Pr (Preset: poner a 1), que modifican el contenido del
biestable en cualquier momento.
Las entradas asíncronas se indican arriba y abajo del símbolo.
Cl Pr Cl clk C S Q+
C 0 0 1 0 0 Q
R Q Q C Cl Q 0 0 1 0 1 1
clk clk 0 0 1 1 0 0

S S Q´ S Q´ 0 0 1 1 1 prohibida
Pr
0 0 0 X X Q
Pr 0 1 X X X 0
1 0 X X X 1
Fig 2.16 Biestable S-C sincronizado por nivel 1 con entradas asíncronas
1 1 X X X prohibida

9
2.8 Biestable S-C por flanco

En determinado tipo de circuitos puede ser posible que se necesite un biestable en el que el
tiempo durante el que se pueda hacer cambios sea muy corto.
En estos casos, aceptar que el biestable conmute durante todo el tiempo que el reloj está a 1
o a 0 sincronizado por nivel puede ser demasiado. El reloj es una señal eléctrica y tiene un
límite de frecuencia más allá del cual no se puede hacer que vaya más rápido, y por tanto que
dure menos.
En estos casos se utilizan biestables sincronizados por flanco en los cuales sólo se admite
que conmute en el momento en el que el reloj pasa de 0 a 1 si es flanco ascendente o de 1 a 0
si es flanco descendente.
Una posible forma de implementar una sincronización así es hacerlo con un biestable amo-
esclavo (“master-slave”) que está constituido por dos biestables: el amo y el esclavo
sincronizados, uno por nivel 1, y el otro por nivel 0, con las salidas del amo conectadas a las
entradas del esclavo.

S S Q S Q Q S Q
clk o clk clk
C C Q´ C Q´ Q´ C Q´

Fig 2.17 Biestable S-C sincronizado por flanco ascendente

La sincronización por flanco ascendente se indica con un triángulo.


El nivel activo del reloj es diferente en los dos biestables por lo que no admitirán cambios al
mismo tiempo.
Sólo en el momento en que se active el reloj para el esclavo, éste se cargará con el último
dato que tenga el amo almacenado.

tiempo
Activo para el esclavo
Activo para el amo Activo para el amo
clk

C
Q del amo conmuta Q del amo no cambia
Q amo Q del amo conmuta

Q del esclavo cambia Q del esclavo no conmuta


Q esclavo Q del esclavo no conmuta

Fig 2.18 Cronograma de las conexiones de un biestable amo-esclavo

10
2.9 Biestable J-K

El biestable S-C tiene todavía un inconveniente que es el de la combinación prohibida S=C=1.


Para solucionar este problema se propone la siguiente solución:

J K Q S C Q+
J
S Q Q J Cl Q 0 0 0 0 0 0
clk 0 0 1 0 0 1 J K Q+
C Q´ Q´ K Q´ 0 1 0 0 0 0 0 0 Q
K
0 1 1 0 1 0
Pr
0 1 0
1 0 0 1 0 1 1 0 1
1 0 1 0 0 1 1 1 Q´
1 1 0 1 0 1
1 1 1 0 1 0

Fig 2.19 Biestable J-K sincronizado por flanco ascendente con entradas asíncronas

2.10 Tabla de excitaciones

Hasta ahora hemos descrito cada biestable con su tabla de transiciones. Ésta define
completamente el funcionamiento del biestable desde la entrada hasta la salida.
Al diseñar circuitos nos encontraremos que muchas veces queremos saber el valor que
tenemos que poner en la entrada para obtener una determinada salida, es decir la tabla
contraria a la de transiciones que llamaremos de excitaciones.
Tabla de transición del biest. J-K Tabla de excitación del biest. J-K

J K Q+ Q -> Q+ J K
0 0 Q 0 -> 0 0 X Cada línea significa:
0 1 0 0 -> 1 1 X Si en la salida (Q) tengo este valor y quiero
1 0 1 1 -> 0 X 1 que pase a este otro (Q+ ), en las entradas
1 1 Q´ 1 -> 1 X 0 (J-K) tengo que tener estos valores.

Fig 2.20 Comparación de las tablas de transición y excitación del biestable J-K

Veamos como la hemos obtenido:


Caso 0->0:
Si tenemos un 0 a la salida y queremos mantenerlo, tenemos dos opciones:
Mantener el 0 que teníamos: J=0, K=0
Poner el biestable a 0: J=0, K=1
Observamos que el valor de K no influye (K=X). Para obtener un 0 a la salida es suficiente
con poner J=0.

11
Caso 0->1:
Si tenemos un 0 a la salida y queremos obtener un 1, tenemos dos opciones:
Poner el biestable a 1: J=1, K=0
Invertir el 0 que teníamos (Q´): J=1, K=1
Observamos que el valor de K no influye (K=X). Para obtener un 1 a la salida es suficiente con
poner J=1.

Caso 1->0:
Si tenemos un 1 a la salida y queremos obtener un 0, tenemos dos opciones:
Poner el biestable a 0: J=0, K=1
Invertir el 1 que teníamos (Q´): J=1, K=1
Observamos que el valor de J no influye (J=X). Para obtener un 0 a la salida es suficiente
con poner K=1.

Caso 1->1:
Si tenemos un 1 a la salida y queremos mantenerlo, tenemos dos opciones:
Mantener el 1 que teníamos: J=0, K=0
Poner el biestable a 1: J=1, K=0
Observamos que el valor de J no influye (J=X). Para obtener un 1 a la salida es suficiente
con poner K=0.

2.11 Biestable D por flanco

El biestable tipo D por flanco ascendente lo podemos obtener a partir del J-K.

Tabla de transiciones Tabla de excitaciones

D J Q Q D Q D Q+ Q -> Q+ D
clk 0 0 0 -> 0 0
o K Q´ Q´ Q´ 1 1 0 -> 1 1
1 -> 0 0
1 -> 1 1
Fig 2.21 Biestable D sincronizado por flanco ascendente

12
2.12 Biestable T por flanco

El biestable T, al igual que el D, dispone de una sola entrada que lo que hace es cambiar de
valor la salida cuando la entrada está a 1 o mantenerla si está a 0.
El biestable tipo T por flanco ascendente lo podemos obtener a partir del J-K.

Tabla de transiciones Tabla de excitaciones

T J Q Q T Q T Q+ Q -> Q+ T
clk 0 Q 0 -> 0 0
K Q´ Q´ Q´ 1 Q´ 0 -> 1 1
1 -> 0 1
1 -> 1 0
Fig 2.21 Biestable T sincronizado por flanco ascendente

13

You might also like