Circuitos Secuenciales y Máquinas de Estado
Circuitos Secuenciales y Máquinas de Estado
RESUMEN TEÓRICO
A) Circuitos Secuenciales
Los sistemas digitales pueden operar en forma asíncrona o síncrona. En los sistemas asíncronos, las
salidas de los circuitos lógicos pueden cambiar de estado en cualquier momento en que una o más de
las entradas cambie. En los sistemas síncronos los tiempos exactos en que alguna salida puede cambiar
de estado se determinan por medio de una señal denominada reloj o clock. Esta señal de reloj consiste
en una serie de pulsos rectangulares o cuadrados como se muestra en la figura.
Denominaremos periodo al tiempo entre transiciones sucesivas en la misma dirección, esto es entre
dos flancos de subida o entre dos flancos de bajada. La transición de estado en los circuitos secuenciales
síncronos se efectúan en el momento en el que el reloj hace una transición entre 0 y 1 (flanco de
subida) o entre 1 y 0 (flanco de bajada). Entre pulsos sucesivos de reloj no se efectúan cambios.
El inverso del periodo es lo que denominamos la frecuencia del reloj. El ancho del pulso de reloj es el
tiempo durante el cual la señal de reloj está en 1. En el análisis anterior sobre el latch SC podemos ver
que es un circuito asíncrono, ya que el estado cambia en cualquier momento que cambiemos las
entradas y no sincronizado con un pulso de reloj. Para hacerlo síncrono se añade una entrada adicional
como se muestra en la figura.
El flip-flop sincronizado por reloj consiste del latch básico con compuertas NOR mostrado
anteriormente y dos compuertas AND. La salida de las dos compuertas AND quedará en 0 mientras el
pulso de reloj esté en 0, sin importar los valores de entrada de S y C. Cuando el pulso de reloj está en 1,
la información de las entradas S y C pasa hacia el latch básico.
Como puede verse en el diagrama de tiempo, en este tipo de FF ahora los cambios se producen
solamente cuando la señal de reloj esté en 1. Pero esto no previene que el FF cambie varias veces
durante un ciclo de reloj, y esto no es un comportamiento deseado, por lo tanto de alguna manera este
FF sigue siendo de alguna manera asíncrono (por lo menos mientras el pulso de reloj esté en 1).
Hay dos maneras de arreglar esto. Una es la de que el estado cambie una vez que termine el ciclo de
reloj, y otra es la que el cambio ocurra en los flancos de bajada o de subida del pulso de reloj.
En general se llama latch al circuito que sea asíncrono y transparente, y Flip-Flop a los que sean
síncronos y no transparentes.
Flip-Flop tipo J K
Un flip-flop JK es un refinamiento del flip-flop SC, en el que se elimina el estado indeterminado. Para
J=K=1 el estado futuro será igual al estado presente negado: Qn+1 =
Flip-Flop tipo D
El flip-flop tipo D mostrado en la figura es una modificación del FF SC. La entrada D va directamente
hacia la entrada S y el complemento de D hacia la entrada C. De esta forma tenemos que el estado futuro
será igual al valor de la entrada D.
Flip-Flop tipo T
Un flip-flop tipo T se obtiene uniendo las dos entradas de un flip-flop tipo JK. Si T=0 se mantendrá el
estado, si T=1 el estado futuro será igual al complemento del estado presente.
Entradas asíncronas
Los Flip-flops contenidos en los circuitos integrados a menudo proveen unas entradas adicionales para
fijar en el estado 1 o en el 0 al FF en cualquier momento de forma asíncrona, sin importar las
condiciones presentes en las otras entradas. Estas entradas son normalmente llamadas SET o PRESET
(para fijar en 1) o CLEAR (para fijar en 0). Son útiles para colocar los FF en un estado inicial, antes de
comenzar con su funcionamiento de forma síncrona, sin la necesidad de utilizar un pulso de reloj. Por
ejemplo, después de encender un sistema digital, el estado inicial de los FF es
.
En las tablas de especificaciones de los circuitos integrados se incluyen tablas que indican en cada caso
la forma de funcionamiento. En el caso que se muestra, al aplicar un 0 en la entrada de clear el FF se
fijará en 0.
La teoría de máquinas de estado es el nombre con el que se conocen los métodos de Análisis y Diseño
de Circuitos Secuenciales Sincrónicos. Esta lección constituye una introducción al tema del capítulo,
donde se definirá lo que son las máquinas de estado y los conceptos básicos para entender la
metodología de Análisis y Diseño de Circuitos Secuenciales.
Las máquinas de estado son circuitos secuenciales que se encuentran constituidos por una etapa
combinacional y una etapa de memoria, relacionadas de tal forma que conforman un sistema secuencial
para algún propósito especial. Los registros y contadores con entradas asincrónicas son ejemplos de
este tipo de sistemas secuenciales.
Los circuitos secuenciales se clasifican dentro de una categoría conocida como máquinas de estado, de la
cual se distinguen comúnmente dos tipos:
Máquina de Mealy: En esta máquina de estados las salidas se encuentran determinadas por el
estado interno del sistema y por las entradas no sincronizadas con el circuito. El diagrama de
bloques representativo de esta máquina se muestra en la figura 7.1.1. donde se observa que las
salidas del sistema son tanto sincrónicas como asincrónicas.
Máquina de Moore: Las salidas solo dependen del estado interno y de cualquier entrada
sincronizada con el circuito, como se observa en la figura 7.1.2. donde las salidas del sistema son
únicamente sincrónicas. Un ejemplo de este tipo de máquinas de estado son los contadores (ver
capítulo 6).
Los circuitos secuenciales se caracterizan por tener una etapa combinacional y otra de memoria
conformada por flip-flops. En la figura 7.1.3. Se puede observar un ejemplo particular de este tipo de
circuitos, el cual corresponde a una Maquina de estado de Mealy. Observe que hay salidas que
dependen de la etapa de memoria y hay una salida que depende directamente de la etapa combinatoria.
Figura 7.1.3. Circuito Secuencial de ejemplo
Con base en el circuito de la figura 7.1.3. se dará una descripción de las herramientas básicas que son
empleadas para el Análisis y Diseño de Circuitos Secuenciales. Entre estas herramientas se encuentran las
ecuaciones lógicas, los diagramas de estado, las tablas de estado, las tablas de transición y los mapas de
Karnaugh.
Ecuaciones Lógicas
Las ecuaciones lógicas son funciones que definen la relación existente entre los estados de entrada y los
estados de salida del sistema. Para determinar las ecuaciones lógicas de la máquina de estados de la
figura 7.3.1. Inicialmente se deben identificar los estados siguientes. Estos estados corresponden a
aquellos que ocurren después de una transición en la señal de reloj de los flip-flops. Recuerde que para
los flip-flops tipo D el estado siguiente (Qi+1) es igual al estado de la entrada D. Teniendo en cuenta lo
anterior las ecuaciones lógicas para los flip-flops A y B del circuito de la figura 7.1.3 serían las
siguientes:
A = DA = A·X + B·X
B = DB= A’·X
Y = (A + B) ·X’
Observando esta última ecuación se concluye que la salida (Y) es función del estado presente del
sistema (A y B) y de la entrada asincrónica (X).
Las ecuaciones lógicas en los circuitos secuenciales tienen una estructura formada por dos clases de
estados:
o Los estados siguientes, los cuales se agrupan al lado izquierdo de la expresión y representan
las variables dependientes del sistema. El estado de estas variables cambia en el momento que
ocurra una transición en la señal de reloj.
o Los estados actuales y entradas del sistema. Agrupados al lado derecho de la expresión,
constituyen las variables independientes, las cuales pueden o no cambiar en sincronía con el
sistema.
Cuando las ecuaciones de estado contienen varios términos, se pueden simplificar empleando
metodologías de reducción de términos como Álgebra de Boole, Mapas de Karnaugh, o mediante el
Algoritmo de Quine-McCluskey .
Tablas de Estado
Una tabla de estado es un listado que contiene la secuencia de los estados de entradas, estados internos
y salidas del sistema, considerando todas las posibles combinaciones de estados actuales y entradas.
Las tablas de estado por lo general se dividen en tres partes: estados actuales, estados siguientes y
salidas, tal como se muestra en la tabla 7.1.1.
La tabla de estado para un circuito secuencial con m flip-flops y n entradas tiene 2m+n filas. El estado
siguiente tiene m columnas, y el número de columnas depende del número de salidas.
Existe una forma más conveniente de organizar la información en la tabla de estado, la cual se muestra
en la Tabla 7.1.2, donde los estados se agrupan de tal modo que la tabla se puede traducir a un
diagrama de estados. Al igual que la tabla anterior esta tiene tres secciones: estados actuales, estados
siguientes y salidas, sin embargo, los estados se agrupan dependiendo del valor de las entradas. La
sección de estados actuales agrupa los estados que ocurren antes de una transición en la señal de reloj,
la sección de estados siguientes lista aquellos que ocurren después de la transición del reloj y la sección
de salidas reúne los estados que se dan en el mismo instante de los estados actuales.
Haciendo un análisis de la operación del circuito de la figura 7.1.3. se puede observar lo siguiente:
Cuando la variable X=0 los estados actuales A y B cambian a 0 después de la transición de reloj, y
cuando X=1, los estados de las salidas se comportan tal como se resume en la tabla 7.1.2. Se plantea
como ejercicio verificar la información de la tabla.
Diagramas de Estado
Un diagrama de estados es una representación gráfica que indica la secuencia de los estados que se
presentan en un circuito secuencial, teniendo en cuenta las entradas y salidas. El diagrama se forma con
círculos y líneas. Los círculos representan los estados del circuito secuencial y cada uno de ellos
contiene un número que identifica su estado. Las líneas indican las transiciones entre estados y se
marcan con dos números separados por un (/), estos dos números corresponden a la entrada y salida
presentes antes de la transición. A manera de ejemplo observe la línea que une los estados 00 y 01 en el
diagrama de estado de la figura 7.1.4. Esta línea marcada como 1/0 indica que el circuito secuencial se
encuentra en el estado 00 mientras la entrada X=0 y la salida Y=0, y que después de que ocurra una
transición en la señal de reloj el estado cambia a 01.
Las líneas que salen y regresan al mismo círculo indican que no hay cambio en el estado, cuando se
presentan la entrada y salida indicadas.
Las tablas de transición se usan en conjunto con las de estado y representan la tabla de verdad de los
flip-flops con los cuales se desea implementar el circuito secuencial. La tabla contiene los estados
actuales y siguientes según el estado de las entradas de los flip-flops. La tabla 7.1.3 corresponde a la
tabla de transición del flip-flop JK.
En la tabla, Qi corresponde al estado actual y Qi+1 al estado siguiente, J y K son las entradas de los flip-
flops. La información sombreada en la tabla se interpreta de la siguiente forma: cuando el estado
presente de la salida Q=0 y las entradas J=1 y K=X (X indica una condición de no importa, 1 o 0), después
de un pulso de reloj en el flip-flop la salida cambia al estado siguiente Q=1.
Mapas de Karnaugh
Generalmente las tablas de estado y de transición de los flip-flops se fusionan en una sola para agrupar
la información de tal forma que permitan construir los Mapas de Karnaugh para simplificar las
funciones lógicas. La tabla 7.1.4 corresponde a una tabla de estado de un contador de tres bits con flip-
flops JK. Observe que esta tabla incluye las entradas J y K para cada una de la transiciones (estado actual
a estado siguiente). Las regiones sombreadas en la tabla indican que el estado Qi cambia estando
presentes las entradas Ji y Ki correspondientes después de una transición del reloj.
Tabla 7.1.4. Tabla de estado y transición de un contador de 3 bits
Los Mapas de Karnaugh se emplean para definir la lógica de las entradas de los flip-flops y se debe hacer
uno para cada una de las entradas. La figura 7.1.5 corresponde al Mapa de karnaugh de la entrada J1. de
la tabla de estado 7.1.4.
Observe que cada celda en el mapa representa uno de los estados actuales de la secuencia en la tabla de
estado. Una vez asignados todos los estados posibles a cada celda en el Mapa de Karnaugh se procede a
simplicar y deducir las expresiones lógicas. En la figura 7.1.5 se observa que la expresión
correspondiente a la entrada J1 es:
J1 = Q 0
Esta expresión indica que en el circuito lógico la salida Q0 debe ir conectada a la entrada J1. En la
siguiente lección se explicará de una forma detallada el procedimiento para el Diseño de Circuitos
Secuenciales.
II. PROCEDIMIENTO
t: t+1:
VCC VCC
J1 J1
S S
Key = A Key = A
t+2:
VCC
J1
S
Key = A
LATCH RESET:
t: t+1:
VCC VCC
J1 J1
Key = A R Key = A R
t+2:
VCC
J1
Key = A R
VCC
J1 S nQ
Key = A
J2
Key = A
R
Q
VCC
J1 nS Q
Key = A
J2
Key = A
nR
nQ
LATCH SET- RESET (compuertas NORs y controlada por compuertas):
VCC
S
J1
nQ
Key = A
J2
Key = A Q
VCC
S
J1
Q
Key = A
J2
Key = A
nQ
R
C
2. Implemente el circuito de la figura. Coloque la línea de inicio a “0” y luego colóquela a “1”
¿Cuál es secuencia seguida por QB QA?. Retorne la línea de inicio a “0” ¿Qué ocurre en la salida al
recibir más pulsos de reloj?. Coloque en la salida de QA y QB leds para ver la secuencia de salida
y lo que ocurre al recibir más pulsos de reloj.
VCC
5V
2 U1A 2 U1B
~1PR ~1PR
4 1J 1Q 15 4 1J 1Q 15
1 1CLK 1 1CLK
16 1K ~1Q 14 16 1K ~1Q 14
~1CLR ~1CLR
3 7476N 3 7476N
CK
INICIO
Simulacion:
VCC VCC
t 5V
t+1 5V
INICIO INICIO
VCC VCC
5V
t+3 5V
t+2
2 U1A 2 U1B 2 U1A 2 U1B
~1PR QA ~1PR QB ~1PR QA ~1PR QB
4 1J 1Q 15 4 1J 1Q 15
4 1J 1Q 15 4 1J 1Q 15
1 1CLK 1 1CLK
VCC 1 1CLK 1 1CLK
16 1K ~1Q 14 16 1K ~1Q 14
VCC 16 14 16 14
5V 1K ~1Q 1K ~1Q
~1CLR ~1CLR 5V
3 3
~1CLR ~1CLR
7476N 7476N
3 7476N 3 7476N
CK
CK
INICIO
INICIO
VCC
VCC
t+4 5V t+5 5V
2 U1A 2 U1B
2 U1A 2 U1B ~1PR QA ~1PR QB
~1PR QA ~1PR QB 4 1J 1Q 15 4 1J 1Q 15
4 1J 1Q 15 4 1J 1Q 15
1 1CLK 1 1CLK
1 1CLK 1 1CLK VCC 16 1K ~1Q 14 16 1K ~1Q 14
VCC 16 14 16 14
1K ~1Q 1K ~1Q 5V
5V ~1CLR ~1CLR
~1CLR ~1CLR
3 7476N 3 7476N
3 7476N 3 7476N
CK
CK
INICIO
INICIO
VCC VCC
t+6 5V
t+7 5V
INICIO INICIO
VCC VCC
t+8 5V
t+9 5V
INICIO INICIO
CK=1 RETENCION
CK=0 OPERACIÓN NORMAL
̅̅̅̅
𝐏𝐑 ̅̅̅̅
𝐂𝐋 SALIDA FLIP_FLOP J K Q*
0 0 AMBIGUA 0 0 Q
0 1 SET (Q=1) 0 1 0
1 0 RESET(Q=0) 1 0 1
1 1 OPERACIÓN NORMAL 1 1 ̅
Q
Si a INICIO lo colocamos nuevamente a “0” por más que siga el pulso de reloj, la salida QB será siempre
cero QB=0.
3.- Para el siguiente diagrama de estado, hallar:
1/0
0 0/0
0/0
3
1/1
1 1/1
1/0 5 0/1
0/0 0/1
0/0
6
1/0
4
1/0
1/0
2 0/0
a) Tabla de estado.
b) Tabla de estado reducida.
c) Implementar el circuito con FF JK.
d) Hallar la secuencia de estados cuando x=0.
e) Hallar la secuencia de estados cuando x=1.
Solución:
a) La tabla de estados es la siguiente y como vemos no se puede reducir así que será la tabla
de estados reducida también.
b) Tabla Reducida:
Entrada x
0 1
0 3/0 5/1
1 6/0 0/0
2 1/0 1/0
3 2/0 5/1
4 5/1 2/0
5 5/1 4/0
6 0/0 2/0
J2:
Q2 Q2 ’
X’ x x 0 0
Q1
x x 1 0
X x x
0 1
Q1 ’
X’ x x 1 0
Q0 ’ Q0 Q0 ’
J2 = Q1 ′Q 0 ′X + Q 0 (Q1 X)′
K2:
Q2 Q2 ’
X’ 1 x x x
Q1
1 x x x
X
1 0 x x
Q1 ’
X’ 0 0 x x
Q0 ’ Q0 Q0 ’
K 2 = Q1 + XQ 0 ′
J1:
Q2 Q2 ’
X’ x x x x
Q1
x x x x
X
1 0 0 0
Q1 ’
X’ 0 0 1 1
Q0 ’ Q0 Q0 ’
J1 = Q′2 X ′ + XQ 2 Q 0 ′
K1:
Q2 Q2 ’
X’ 1 x 0 1
Q1
0 x 1 1
X x x x x
Q1 ’
X’ x x x x
Q0 ’ Q0 Q0 ’
K1 = Q 2 ′Q 0 ′ + Q 0 X + Q 2 X′
J0:
Q2 Q2 ’
X’ 0 x x 1
Q1
0 x x 1
X
0 x x 1
Q1 ’
X’ 1 x x 1
Q0 ’ Q0 Q0 ’
J0 = Q 2 ′ + Q1 ′X′
K0:
Q2 Q2 ’
X’ x x 1 x
Q1
x x 0 x
X x
1 1 x
Q1 ’
X’ x 0 1 x
Q0 ’ Q0 Q0 ’
K 0 = (X Q1 ) + Q1 ′Q 2
Z:
Q2 Q2 ’
X’ 0 x 0 0
Q1
0 x 1 0
X
0 0 0 1
Q1 ’
X’ 1 1 0 0
Q0 ’ Q0 Q0 ’
Z = Q 2 X′Q1 ′ + Q1 XQ 0 + Q 0 ′Q1 ′Q 2 ′X
2 ~1PR
3 1J 1Q
6 1CLK
4 5 1K ~1Q
12 ~1CLR
11
9
10
X 1 13
15 ~1PR
18 1J 1Q
16
1CLK
8 1K ~1Q
21 ~1CLR
20
22 19
24
17 23
~1PR
7 26 1J 1Q
25
1CLK
28 1K ~1Q
27
14
~1CLR
29
32
30 33 35 36 Z
34
31
SOLUCIÓN
𝐓𝐚𝐛𝐥𝐚 𝐝𝐞 𝐞𝐬𝐭𝐚𝐝𝐨𝐬
A B
B C
C D
D A
𝐀𝐬𝐢𝐠𝐧𝐚𝐜𝐢ó𝐧 𝐝𝐞 𝐞𝐬𝐭𝐚𝐝𝐨𝐬
Estado Q3 Q2 Q1 Q0
A 1 0 0 0
B 0 1 0 0
C 0 0 1 0
D 0 0 0 1
𝐓𝐚𝐛𝐥𝐚 𝐝𝐞 𝐭𝐫𝐚𝐧𝐬𝐢𝐜𝐢ó𝐧 𝐲 𝐞𝐱𝐜𝐢𝐭𝐚𝐜𝐢ó𝐧
Demás casos X X
D3 = Q 0 , D2 = Q 3 , D1 = Q2 , D 0 = Q1 , Z3 = Q3 , Z2 = Q2 , Z1 = Q1 , Z0 = Q0
8
5 1 9 13 5 1 9 13
S
S
D Q D Q D Q D Q
3 11 3 11
CLK CLK CLK CLK
2 12 2 12
Q Q Q Q
R
R
4
10
10
4013 4013 4013 4013
U1:A(CLK)
R1
0 1k
1
5.- Construir a partir de latches S-R construidos con compuertas NOR o NAND, comprobados
anteriormente, los siguientes FF: S-R, D, J-K y T. Comprobar su funcionamiento utilizando el
timer 555 como reloj (configuración astable). Visualizar Q y Q’, las salidas de los FF visualizadas
en LEDs
6.- Utilizando la herrmienta Max Plus II, diseñe un circuito contador escalador que proporcione
la secuencia 5, 7, 2, 0, 4, 5…según el procedimiento siguiente:
6 1 10 15
S
J Q J Q 6 1
S
J Q
3 13
CLK CLK 3
CLK
5 2 11 14
K Q K Q 5 2
R
K Q
R
4
12
4027 4027
4
4027
CK
R1
1 1K
0
7. Utilizando la herramienta Quartus Max Plus II o ISE de XILINX, la máquina de estados que
reconozca la secuencia 0011 aun traslapadas.
SOLUCIÓN
𝐓𝐚𝐛𝐥𝐚 𝐝𝐞 𝐞𝐬𝐭𝐚𝐝𝐨𝐬
Estado siguiente
Estado actual X=0 X=1
A B/0 A/0
B C/0 A/0
C C/0 D/0
D B/0 A/1
𝐀𝐬𝐢𝐠𝐧𝐚𝐜𝐢ó𝐧 𝐝𝐞 𝐞𝐬𝐭𝐚𝐝𝐨𝐬
Estado Q1 Q0
A 0 0
B 0 1
C 1 0
D 1 1
Q1 Q0 X Q*1 Q*0 Z J1 K1 J0 K0
0 0 0 0 1 0 0 X 1 X
0 0 1 0 0 1 0 X 0 X
0 1 0 1 0 0 1 X X 1
0 1 1 0 0 1 0 X X 1
1 0 0 1 0 0 X 0 0 X
1 0 1 1 1 1 X 0 1 X
1 1 0 0 1 0 X 1 X 0
1 1 1 0 0 1 X 1 X 1
𝐄𝐜𝐮𝐚𝐜𝐢𝐨𝐧𝐞𝐬 𝐝𝐞 𝐞𝐱𝐜𝐢𝐭𝐚𝐜𝐢ó𝐧 𝐲 𝐝𝐞 𝐬𝐚𝐥𝐢𝐝𝐚
Para J1
X \ Q1Q0 00 01 11 10
0 1 X X
1 X X
̅
J1 = Q0 X
Para K1
X \ Q1Q0 00 01 11 10
0 X X 1
1 X X 1
K1 = Q 0
Para J0
X \ Q1Q0 0 0 01 11 10
0 1 X X
1 X X 1
J0 = ̅Q̅̅1̅ X ̅̅̅̅̅̅̅̅̅̅
̅ + Q1 X = Q 1 ⊕ X
Para K 0
X \ Q1Q0 00 01 11 10
0 X 1 X
1 X 1 X 1
̅̅̅̅
K 0 = Q1 + X
Para 𝑍
X \ Q1Q0 00 01 11 10
0
1 1
𝑍 = Q1 Q 0 X