Documente Academic
Documente Profesional
Documente Cultură
Mquinas de Estados
Autor: Ing. Guillermo A. Fernndez
INTRODUCCIN
Podemos considerar a una mquina de estados como un circuito digital secuencial que genera
una serie de salidas a partir del estado lgico presente en las entradas, lo cual permite el control
o automatizacin de la secuencia de un proceso determinado, a travs de su monitoreo. En el
presente apunte se detalla el procedimiento para el diseo de las mquinas de estados,
comenzando desde el diseo del contador binario sncrono, hasta la implementacin de la
circuitera de salida (formacin lgica de salida). De esta forma llegaremos a una mquina de
estados cuyo diagrama en bloques se muestra en la Figura 1. Finalmente se vern una serie de
ejemplos de aplicacin prctica de las mquinas de estado.
DISP. EXT.
DISP. EXT.
FORMACION
LOGICA DE
ENTRADA
(FLE)
DA
DB
DC
FORMACION X
LOGICA DE
W
SALIDA
(FLS)
Y
CONTROL
DEL
PROCESO
DISP. EXT.
DISP. EXT.
DISP. EXT.
REGISTRO
Z
CLK
DISP. EXT.
CLK
RELOJ
MAQUINA DE ESTADOS
Antes de comenzar el desarrollo del tema central de este apunte, veremos como se obtienen las
tablas de excitacin correspondientes a los flip-flops tipo D, JK y RS, utilizados para la
implementacin de las mquinas de estados.
Reloj
Para interpretar como se obtuvo la tabla de excitacin anterior, tomemos como ejemplo la
transicin marcada en los tres flip-flops:
Cabe mencionar que en las casillas que contienen X (no importa), el estado lgico puede ser
0 1.
X
FORMACION
LOGICA DE
ENTRADA
(FLE)
DA
CLK
A
DB
CLK
B
DC
CLK
C
RELOJ
REGISTRO
El registro del CBS se encuentra conformado por una serie de flip-flops, los cuales pueden ser
del tipo D, JK o RS. El estado lgico de sus salidas A, B y C, (variables de estado), evoluciona ante
los flancos activos de la seal de reloj. El estado presente en estas salidas, es utilizado por la
FLE para proporcionar el estado prximo o futuro que tomar la salida del registro.
La formacin lgica de entrada (FLE) es un conjunto de circuitos combinacionales cuya salida
estimula con el estado lgico correspondiente a las entradas de los flip-flops del registro. Los
circuitos de la FLE poseen como entradas a las variables de estado. El estado presente de estas
variables, permite estimular a los flip-flops para que los mismos alcancen el estado prximo.
Los valores que toman las variables de estado (A, B y C) a medida que se producen los flancos
activos de la seal de reloj, pueden representarse grficamente en lo que se denomina
diagrama de transicin de estados (DTE). Este diagrama permite representar en forma
grfica a la secuencia del CBS. Para ilustrar esto veamos un ejemplo.
EJEMPLO 1: Representar mediante el diagrama de estado, la evolucin de las variables de un
contador binario sncrono cuya secuencia es la siguiente: 0 4 2 1 0 4 -....
000
PRESET
100
010
001
ESTADO a
ESTADO b
ESTADO c
ESTADO d
ESTADO a
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
Hay varias formas de representar el DTE de una mquina de estados, a lo largo de este apunte
se utilizar la forma mostrada en el ejemplo 1, donde cada estado es representado por una letra
minscula que se encuentra dentro de una burbuja (caja de estado), mientras que el valor
binario correspondiente al estado queda afuera de la misma.
Ahora que tenemos presente algunos conceptos, veremos como disear un contador binario
sncrono. En el siguiente ejemplo se explica el procedimiento de diseo de los CBS.
EJEMPLO 2: Disear un contador binario sncrono con la siguiente secuencia: 1 2 3 7 4
1 2.... Si el contador se encuentra en 0; 5 6, la secuencia deber saltar a 1. Implementar el diseo
con flip-flops del tipo D.
El objetivo en el diseo del CBS es obtener el circuito digital que genera la secuencia definida.
Como ya sabemos el tipo de flip-flop que debe utilizarse en el diseo, resta por hallar la
formacin lgica de entrada (FLE). Es decir los circuitos combinacionales que estimularn las
entradas de los flip-flops que posee el registro del contador.
Considerando la secuencia definida para el contador, inicialmente debe representarse la misma
a travs del diagrama de transicin de estados. Para el caso del ejemplo 2, este diagrama queda
como el indicado en la Figura 4. En el mismo podemos visualizar mejor los cambios de estados
que ocurren a la salida del contador.
001
PRESET
010
011
111
100
000
110
101
g
Figura 4. Diagrama de transicin de estados para el CBS del ejemplo 2.
TCNICAS DIGITALES 1 MAQUINA DE ESTADOS Autor: Ing. Guillermo A. Fernndez Pgina 5 de 18
El diseo del CBS prosigue con la construccin de la tabla de estados del contador, la cual se
obtiene con la informacin brindada por el DTE y la tabla de excitacin de los flip-flops
utilizados. La tabla de estados del contador no es ms que la tabla de excitacin de todos los
flip-flops que conforman su registro y la misma se obtiene analizando el DTE que describe la
secuencia del contador. La tabla de estados consta de tres columnas, las cuales se describen a
continuacin:
Columna de estado presente: En la misma se escriben todos los estados posibles que
pueden obtenerse con las variables de estado del contador. Para el ejemplo sern ocho
estados, ya que el contador posee tres variables de estado (A, B y C).
Columna de estado prximo o futuro: A partir del DTE, en esta columna se escriben los
estados prximos a cada uno de los estados presentes de la columna anterior. Aquellos
estados presentes que no corresponden a la secuencia del contador, tendrn por estado
prximo X (no importa). Para el ejemplo, todos los estados presentes poseen un estado
prximo.
Columna de estmulos: En esta columna se escriben los estados lgicos que permiten
excitar a los flip-flops, es decir aquellos que debern presentarse en sus entradas para
obtener a su salida el estado prximo correspondiente. Los estados lgicos de esta
columna se obtienen considerando la tabla de excitacin del flip-flop utilizado.
A partir de estos conceptos y analizando el DTE, la tabla de estados para el CBS del ejemplo 2
queda como se indica en la Tabla 2.
Tabla 2. Tabla de excitacin del flip-flop D y tabla de estado para el CBS del ejemplo 2.
EXCITACIN FF-D
QT
QT+1
0
0
1
1
0
1
0
1
0
1
0
1
ESTADOS
h
a
b
c
e
g
f
d
PRESENTE
PRXIMO
ESTMULOS
DA
DB
DC
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
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
Con la tabla de estados anterior y teniendo en cuenta las columnas de estado presente y de
estmulos se obtienen las siguientes ecuaciones de estmulo:
DA ABC ABC
(1)
DA BC ;
AB
0
C
1
AB
2
AB
AB
0
1
AB
0
7
DB AC AB ; DC C AB AB
AB
0
1
DA
AB
1
3
AB
AB
(2)
AB
1
1
AB
DB
1
3
AB
4
1
7
1
5
DC
Figura 5. Mapa K para simplificacin de las ecuaciones de estmulo del CBS (ejemplo 2).
Con las ecuaciones indicadas en (2) y el registro conformado por los tres flip-flops tipo D,
estamos en condiciones de realizar el circuito esquemtico del contador binario sncrono que
cumple con la secuencia preestablecida. Este circuito queda como lo muestra la Figura 6
BC
DA
DB
AC
FF-A
CLK
DC
AB
FF-B
CLK
Q
AB
FF-C
CLK
Q
Reloj
La implementacin del contador anterior utilizando los flip-flops tipo D es sencilla ya que la
obtencin de la tabla de estados fue relativamente fcil de construir. A continuacin veremos
el mismo ejemplo, pero realizando el diseo con flip-flops JK en el registro del contodor.
EJEMPLO 3: Redisear el contador binario sncrono del ejemplo anterior, utilizando flip-flops del
tipo JK.
En este caso tendremos que construir otra tabla de estado, ya que los flip-flops utilizados
poseen una tabla de excitacin distinta. Entonces teniendo en cuenta el DTE anterior y la tabla
de excitacin de los flip-flops JK, la tabla de estados para el contador del ejemplo 3 ser la
indicada en la Tabla 3.
Tabla 3. Tabla de excitacin del flip-flop D y tabla de estado para el CBS del ejemplo 3.
EXCITACIN FF-JK
QT
QT+1
0
0
1
1
0
1
0
1
0
1
X
X
X
X
1
0
ESTADO
h
a
b
c
e
g
f
d
PRESENTE
PRXIMO
ESTMULOS
JA
KA
JB
KB
JC
KC
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
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
X
X
X
X
X
X
X
X
1
1
1
0
0
1
X
X
0
0
X
X
X
X
0
0
X
X
1
1
1
X
1
X
1
X
1
X
X
1
X
0
X
0
X
1
En la Tabla 3 se puede apreciar que la formacin lgica de entrada a disear deber estimular
a seis entradas. Es decir, con la tabla de estados anterior obtendremos seis ecuaciones de
estmulo. Para simplificar el procedimiento de diseo, a partir de las columnas de estado
presente y de estmulos directamente pasaremos al mapa de Karnaugh el cual permitir
obtener las ecuaciones de estmulo reducidas.
AB
0
AB
2
C
1
AB
6
0
3
AB
X
7
AB
AB
2
0
1
X
3
JA
AB
0
C
1
AB
6
AB
1
7
AB
X
3
AB
AB
X
7
AB
1
1
AB
2
1
3
AB
KA
AB
AB
1
7
AB
4
1
7
1
5
JC
AB
6
JB
AB
2
AB
6
AB
X
1
AB
6
X
3
KB
AB
4
X
7
X
5
KC
Figura 7. Mapa K para simplificacin de las ecuaciones de estmulo del CBS (ejemplo 3).
JA BC
KA B C ;
JB AC ; JC 1
(3)
KB A ; KC A B A B
1
BC
JA
FF-A
AC
JB
FF-B
JC
FF-C
AB
B+C
KA
KB
CLK
KC
CLK
Q
CLK
Q
AB
Reloj
Comparando el ejemplo 2 con el 3 puede, notarse que en el caso del uso de los flip-flops JK, la
formacin lgica de entrada resulta en un circuito ms sencillo de implementar pero es ms
010
PRESET
P=1
001
101
ENTRADA
EXTERNA
P=0
FORMACION
LOGICA DE
ENTRADA
(FLE)
P
DA
DB
DC
REGISTRO
111
CLK
c
RELOJ
ESTADO
PRESENTE
QT
QT+1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
ENT.
EXT.
P
DA
DB
DC
X
X
0
1
X
X
X
X
X
X
0
1
1
X
X
0
X
0
X
1
1
0
X
X
0
X
0
X
0
1
1
X
X
1
X
1
X
0
X
1
X
0
X
X
0
X
0
X
X
0
X
0
X
X
1
X
1
PRXIMO
ESTMULOS
Para completar la columna de estmulos se procede de igual forma que en el ejemplo 3, con
excepcin de las transiciones condicionales. Para el ejemplo que estamos analizando, la entrada
P slo influye en la transicin cuando la salida del contador se encuentra en el estado a, por
lo cual a continuacin analizaremos el cambio para cada bit del contador en esta situacin:
BIT A: Observando la tabla de estado, este bit cambia de 0 a 1 sin importar el valor de P.
Por lo tanto para que suceda esta transicin, el estmulo correspondiente debe ser DA=1.
BIT C: Este bit tambin cambia de 0 a 1, sin importar el valor de P. Por lo tanto debe ser
DC=1.
BIT B: Para este bit, el valor del estado prximo depende de P. Si P=0, el bit B
permanece en 1. En cambio, si P=1 el bit B cambia de 1 a 0. Teniendo en cuenta esto, para
el estado a DB= P .
Una vez completada la tabla de estado, debemos reducir las ecuaciones de estmulo. Para esto
utilizamos el mapa K como se muestra en la Figura 10.
AB
0
C
1
AB
2
AB
6
1
3
AB
X
7
AB
DA
AB
2
X
1
AB
6
P
3
AB
X
7
AB
DB
AB
X
1
AB
1
3
AB
4
X
7
X
5
DC
Figura 10. Mapa K para simplificacin de las ecuaciones de estmulo del CBS (ejemplo 4, FF-D).
DA C ;
DB CP AC ; DC A C
(4)
DA
DB
FF-A
CLK
AC
FF-B
CP
CLK
DC
FF-C
CLK
Q
P
Reloj
Figura 11. Circuito del contador binario sncrono del ejemplo 4, implementado con flip-flop D.
Como puede notarse en el circuito de la Figura 11, la entrada P es una variable de entrada de
la FLE del contador, ya que la misma influye en su secuencia.
Implementacin con FF-JK: Considerando los mismos criterios anteriores y analizando el DTE
del contador, la tabla de estado para este caso es la mostrada en la Tabla 5.
Tabla 5. Tabla de excitacin del flip-flop JK y tabla de estado para el CBS del ejemplo 4.
EXCITACIN FF-JK
QT
QT+1
0
0
1
1
0
1
0
1
0
1
X
X
X
X
1
0
EST.
PRESENTE
A
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
ENT.
EXT.
P
JA
KA
JB
KB
JC
KC
X
X
0
1
X
X
X
X
X
X
0
1
1
X
X
0
X
0
X
1
1
0
X
X
0
X
0
X
0
1
1
X
X
1
X
1
X
0
X
X
X
1
X
X
X
X
X
1
X
X
X
X
X
X
X
1
X
1
X
X
0
X
X
X
X
X
X
1
X
X
X
X
X
X
X
0
X
0
PRXIMO
ESTMULOS
BIT C: Este bit tambin cambia de 0 a 1, sin importar el valor de P. Por lo tanto JC=1 y
KC=X.
BIT B: El estado prximo de este bit depende de la entrada P. Si P=0, el bit B
permanece en 1, entonces deber los estmulos debern ser JB=X y KB=0. Ahora si P=1, el
bit B cambia de 1 a 0, por lo tanto los estmulos debern ser JB=X y KB=1. Se puede
apreciar que para los dos estados de P se debe cumplir JB=X, pero KB=0 si P=0 y KB=1 si
p=1. Esto ltimo nos indica que para ambos estados de P se debe cumplir con KB=P. En
resumida cuenta, para cumplir con la transicin condicional del estado a, el flip-flop
correspondiente al bit B debe excitarse con JB=X y KB=P.
Una vez definida la tabla de estados del CBS, a partir de la misma y utilizando el mapa de
Karnaugh como se muestra en la Figura 12, obtenemos las ecuaciones de estmulo
simplificadas:
AB
0
AB
2
C
1
JB A
KA 1 ;
KB C PC C P ; KC A
AB
6
1
3
JA C ;
AB
AB
X
X
; JC 1
AB
2
X
1
X
3
JA
AB
0
C
1
AB
2
AB
AB
AB
X
7
AB
X
7
AB
AB
2
X
1
KA
AB
2
1
3
AB
AB
KB
AB
1
7
AB
4
X
7
X
5
JC
AB
6
JB
AB
6
(5)
AB
2
X
1
AB
6
X
3
AB
4
X
7
X
5
KC
Figura 12. Mapa K para simplificacin de las ecuaciones de estmulo del CBS (ejemplo 4, FF-JK).
A partir de las ecuaciones simplificadas indicadas en (5), el circuito del contador queda como
lo muestra la Figura 13.
C
1
JA
JB
FF-A
JC
FF-B
FF-C
1
KA
KB
CLK
KC
CLK
CLK
P
Reloj
Al igual que en el ejemplo 3, en este caso tambin puede notarse que al utilizar flip-flops del
tipo JK, el circuito de la FLE resulta ms reducido.
EJEMPLO 5: Disear el contador binario sncrono que posee la secuencia indicada en la
Figura 14. Implementar el diseo con flip-flops tipo D.
RS=00
RS=11
PRESET
ENTRADAS
EXTERNAS
000
a
RS=10
ST=11
ST=0X
100
001
RS=01
R FORMACION
LOGICA DE
S
ENTRADA
(FLE)
T
DA
DB
DC
REGISTRO
CLK
T=0
T=1
ST=10
RELOJ
010
Figura 14. Circuito del contador binario sncrono del ejemplo 4, implementado con flip-flop JK.
En este ejemplo podemos apreciar que las entradas utilizadas para modificar la secuencia del
contador ahora son tres: R, S y T. Por lo tanto, en la columna correspondiente a las entradas
externas de la tabla de estados, deben aparecer estas entradas con todos los valores posibles
que puedan tomar para cada cambio de estado condicional. Para este ejemplo tenemos tres
cambios estado condicionales a, b y c, mientras que hay un slo cambio de estado
incondicional en d. Siguiendo los mismos criterios que en los ejemplos anteriores y
analizando el DTE que define la secuencia del contador, la tabla de estados para el mismo queda
como lo muestra la Tabla 6.
Tabla 6. Tabla de estados para el CBS del ejemplo 5.
ESTADO
PRESENTE
ENT.EXT.
PRXIMO
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
0
X
X
X
X
0
X
X
X
X
0
X
X
X
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
ESTMULOS
DA
DB
DC
RS
RS
ST
X
0
X
X
X
X
0
X
X
X
X
0
X
X
X
DA BST ;
AB
0
C
1
AB
2
AB
6
ST
3
AB
DA
AB
X
7
DB ABCRS CT ; DC ABCRS CT
AB
2
RS
1
AB
6
0
3
AB
DB
AB
X
X
(6)
AB
RS
1
AB
0
3
AB
4
X
7
DC
Figura 15. Mapa K para simplificacin de las ecuaciones de estmulo del CBS (ejemplo 5).
0
5
A partir de las ecuaciones de estmulo indicadas en (6), se obtiene el siguiente circuito para el
contador del ejemplo 5.
DA
FF-A
DB
DC
FF-B
CLK
FF-C
CLK
Q
CLK
Q
Reloj
R
BIBLIOGRAFA:
John W. Carter; Digital Designing with Programmable Logic Devices; Editorial: PRENTICE
HALL