El diseo de circuitos secuenciales complejos sera una actividad muy complicada si no hubiese algn mtodo de diseo estudiado paso a paso. Este es el caso de las mquinas de estados, que consisten en un mtodo de anlisis y sntesis de circuitos secuenciales.
Para el estudio de circuitos secuenciales como mquinas de estados, se han de definir previamente una serie de conceptos.
1.1 Arquitectura de los circuitos secuenciales
Hay dos tipos de arquitecturas de circuitos secuenciales o mquinas de estados, que son la arquitectura Mealy y la arquitectura Moore.
En los diagramas de transiciones de estado se representa el estado por un circulo y la transicin por una flecha como se indica en la figura 1.1.1.
Figura 1.1.1 Representacin de a) estado y b) transicin.
1.1.1 Arquitectura Mealy
En este tipo de arquitectura o mquina de estado las salidas son funcin de las entradas y del estado interno. En la figura 1.1.1.1 se puede ver el esquema de bloques de una mquina Mealy.
Figura 1.1.1.1 Diagrama de bloques de una estructura Mealy
Ing. Javier Barriga Hoyle 2 Salidas = f (Entradas, Estado interno)
La representacin de una mquina Mealy mediante diagramas de estados sera de la forma que se indica en la figura 1.1.1.2.
Figura 1.1.1.2 Representacin Estado-Transicin de una mquina Mealy
1.1.2 Arquitectura Moore
En este tipo de arquitectura o mquina de estado las salidas son funcin nica y exclusivamente de las entradas. En la figura 1.1.2.1 se puede ver el esquema de bloques de una mquina Moore.
Figura 1.1.2.1 Diagrama de bloques de una estructura Moore
Salidas = f (Estado interno)
La representacin de una mquina Moore mediante diagramas de estados sera de la forma que se indica en la figura 1.1.2.2.
Figura 1.1.2.2 Representacin Estado-Transicin de una mquina Moore
Ing. Javier Barriga Hoyle 3 2 Objetivos
Estudio de un mtodo que facilite la resolucin de cualquier circuito secuencial.
Trabajar con este mtodo con algunos ejemplos que han de montarse prcticamente para ser comprobados.
3 Proceso de sntesis mediante una mquina de estados
En este apartado se proceder a la descripcin del proceso ha seguir para obtener el esquema de un circuito secuencial, partiendo de las especificaciones del mismo. Para ello se utilizar un ejemplo de cada tipo de mquina de estados.
3.1 Mquina Moore
Como ejemplo se disear un generador de secuencia. El generador en cuestin ha de proporcionar a su salida la secuencia 110010.
1 er Paso. Definicin del tipo de Mquina (Mealy / Moore) y construccin de su diagrama de estados. En este caso nos encontramos con una mquina Moore, ya que para pasar de un estado a otro no se depende de ms entrada que la de reloj. Se dibujar el diagrama de transicin de estados a continuacin en la figura 3.1.1.
Figura 3.1.1. Diagrama de transicin de estados.
2 Paso. Tabla de transicin de estados y tabla de salidas.
La tabla de transicin de estados, es una tabla en la que en las filas se ponen los estados y en las columnas las entradas. Hay que completar cada cuadro pensando que si la mquina est en el estado de la fila y con las entradas de la columna, ante el prximo pulso de reloj, a que estado pasa la mquina?
En este caso, la mquina no tiene entradas, por lo que solo se pone una columna. Ing. Javier Barriga Hoyle 4 Estado actual Estado siguiente E0 E1 E1 E2 E2 E3 E3 E4 E4 E5 E5 E0 Tabla 3.1.1 Tabla de transicin de estados
De la misma forma se obtiene la tabla de salidas, pero por tratarse de una mquina Moore, cada estado tiene asociada una nica salida, por lo que la mencionada tabla se puede denominar tabla de identificacin de estados, en esta tabla se asigna a cada estado la salida que se ve en el diagrama de transicin de estados.
Estado actual Salida E0 1 E1 1 E2 0 E3 0 E4 1 E5 0 Tabla 3.1.2 Tabla de salidas
3 er Paso. Determinar el nmero de biestables necesarios. Para ello ha de cumplirse la ecuacin siguiente, donde n es el nmero de biestables.
2 n-1 < n de estados 2 n
En el caso que nos ocupa se cumple que 2 2 < 6 2 3 , por lo tanto el nmero de biestables necesarios es 3.
4 Paso. Tabla de codificacin de estados. En esta tabla se asigna a cada estado una salida binaria de las que se pueden obtener con los tres biestables, lo ms sencillo es que sea de forma ordenada.
Q2 Q1 Q0 Estado 0 0 0 E0 0 0 1 E1 0 1 0 E2 0 1 1 E3 1 0 0 E4 1 0 1 E5 1 1 0 X 1 1 1 X Tabla 3.1.3 Tabla de codificacin de estados
5 Paso. Obtencin de las tablas de transicin de estados y de salidas codificadas. Ing. Javier Barriga Hoyle 5 Estado actual Estado siguiente 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 0 0 0 1 1 0 X X X 1 1 1 X X X Tabla 3.1.4 Tabla de transicin de estados
Estado actual Salida 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 X 1 1 1 X Tabla 3.1.5 Tabla de salidas
6 Paso. Decidir el tipo de biestable a utilizar (J-K o D), y obtener la tabla de excitacin de cada uno. Se utilizarn biestables D.
Estado actual Estado siguiente D2 D1 D0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 X X X X X X 1 1 1 X X X X X X Tabla 3.1.6 Tabla de excitacin de los biestables
7 Paso. Simplificar las tablas. Partiendo de las tablas de excitacin de biestables y de la tabla de salidas, mediante la utilizacin de mtodos de simplificacin (Mapas de Karnaugh, ...), se obtienen las expresiones siguientes:
Ing. Javier Barriga Hoyle 6 8 Paso. Dibujar el circuito.
Salida S Q2 Q1 Q0 CLOCK Q0 Q0' Q1' Q1 Q2 Q2' D Q Q CLK D Q Q CLK D Q Q CLK
Figura 3.1.2 Esquema del generador como mquina de estados
Ing. Javier Barriga Hoyle 7 3.2 Mquina Mealy
Como ejemplo de mquina Mealy, se construir un circuito secuencial llamado sumador serie, que actuar de la siguiente forma:
Dos nmeros A y B de n bits se encuentran almacenados en dos registros de desplazamiento PISO cuyas salidas serie son las entradas del circuito secuencial que se desea disear. Adems el circuito posee una entrada de reset que llevar a la mquina al estado inicial. La salida del circuito se almacenar en un registro de desplazamiento SIPO. En la figura 3.2.1 se puede ver un esquema de bloques del circuito que se propone.
Figura 3.2.1 Diagrama de bloques
Para disear el circuito secuencial se seguir el proceso de diseo de mquinas de estados que se ha seguido en el apartado anterior.
1 er Paso. Definicin del tipo de Mquina (Mealy / Moore) y construccin de su diagrama de estados. Se parte de dos estados, uno en el cual estar el sistema mientras exista acarreo en la operacin de suma y otro en el que no habr acarreo. En este caso nos encontramos con una mquina Mealy, ya que la salida depende del estado anterior de la misma y de las entradas. A continuacin se dibuja el diagrama de transicin de estados a continuacin en la figura 3.2.2.
Figura 3.2.2. Diagrama de transicin de estados. Ing. Javier Barriga Hoyle 8 2 Paso. Tabla de transicin de estados y tabla de salidas.
La tabla de transicin de estados, es una tabla en la que en las filas se ponen los estados y en las columnas las entradas. Hay que completar cada cuadro pensando que si la mquina est en el estado de la fila y con las entradas de la columna, ante el prximo pulso de reloj, a que estado pasa la mquina?
A B Estado actual 0 0 0 1 1 1 1 0 E0 E0 E0 E1 E0 E1 E0 E1 E1 E1 Tabla 3.2.1 Tabla de transicin de estados
De la misma forma se obtiene la tabla de salidas.
A B Estado actual 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 0 1 0 Tabla 3.2.2 Tabla de salidas
3 er Paso. Determinar el nmero de biestables necesarios. Para ello ha de cumplirse la ecuacin siguiente, donde n es el nmero de biestables.
2 n-1 < n de estados 2 n
En el caso que nos ocupa se cumple que 2 0 < 2 2 1 , por lo tanto el nmero de biestables necesarios es 1.
4 Paso. Tabla de codificacin de estados. En esta tabla se asigna a cada estado una salida binaria de las que se pueden obtener con los tres biestables, lo ms sencillo es que sea de forma ordenada.
Q0 Estado 0 E0 1 E1 Tabla 3.2.3 Tabla de codificacin de estados
5 Paso. Obtencin de las tablas de transicin de estados y de salidas codificadas.
A B Estado actual 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 1 1 1 Tabla 3.2.4 Tabla de transicin de estados Ing. Javier Barriga Hoyle 9 A B Estado actual 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 0 1 0 Tabla 3.2.5 Tabla de salidas
6 Paso. Decidir el tipo de biestable a utilizar (J-K o D), y obtener la tabla de excitacin de cada uno. Se utilizar un biestable D.
A B Q0 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 1 1 1 Tabla 3.2.6 Tabla de excitacin del biestable D0.
7 Paso. Simplificar las tablas. Partiendo de las tablas de excitacin de biestables y de la tabla de salidas, mediante la utilizacin de mtodos de simplificacin (Mapas de Karnaugh, ...), se obtienen las expresiones siguientes:
0 0 0 0 Q B A S B A B Q A Q D
Antes de pintar el circuito se ha de analizar el tema de la entrada de reset, esta entrada debe ser sncrona, por lo que la intencin es conseguir que cuando se ponga a uno la entrada de reset, el circuito ha de introducir un cero en la entrada D0 del biestable que se utiliza en la prctica.
Para ello, lo mejor ser hacer una operacin AND de cada sumando de la expresin de D0 con la inversa de la entrada de reset, tal como se puede ver en el circuito de la figura 3.2.3.
8 Paso. Dibujar el circuito.
El circuito correspondiente a esta aplicacin de mquinas de estados, es el que se ve en la figura 3.2.3.
Como prueba realice la suma de los nmeros binarios A = 00100011 y B = 10010010, y compruebe que la salida que se obtiene es S = 101110101.
Ing. Javier Barriga Hoyle 10
Salida S Q0 D Q Q CLK CLOCK RST A B
Figura 3.2.3 Esquema del sumador serie como mquina de estados
4 Anlisis de Circuitos Secuenciales
A continuacin se proceder a utilizar el mtodo de la maquinas de estado referido al anlisis de circuitos secuenciales. De igual forma que se ha hecho en el apartado 3 se utilizar un ejemplo para explicar el proceso a seguir.
En la figura 4.1 se muestra el esquema de un circuito secuencial construido con biestables J-K. Se trata de analizar el circuito con el objetivo de obtener su diagrama de transicin de estados, y a partir del mismo, conocer la funcionalidad del circuito.
VCC VCC VCC S3 S2 S0 S1 Q3 Q2 Q1 Q0 J K Q Q CLK J K Q Q CLK J K Q Q CLK J K Q Q CLK CLOCK
Figura 4.1 Circuito secuencial a analizar.
Ing. Javier Barriga Hoyle 11 1 er Paso. Obtencin de las ecuaciones de excitacin de los biestables y salida o salidas.
1 3 2 3 1 2 0 2 3 0 1 0 1 1 0 1 0 K Q J K Q J Q Q K Q J K J
2 Paso. Obtencin de la tabla de transicin de estados y de salidas. Se trata de obtener el estado siguiente del contador en funcin de las entradas de los biestables en cada uno de los estados.
Hay que tener en cuenta que los biestables dos y tres utilizan como entrada de reloj la salida Q1 y que adems los biestables son disparables por flanco descendente, por lo que el pulso de reloj en los biestables 2 y 3 se produce cuando Q1 cambia de nivel alto a nivel bajo..
De igual forma se obtendran las salidas, pero en este caso coinciden las salidas del circuito con las salidas de los biestables. Por esta razn se puede considerar que la tabla de transicin de estados es la misma que la tabla de salidas.
4 Paso. Dibujar el Diagrama de transicin de estados.
Hay que decir que por lo que se ha visto hasta el momento, el circuito de la figura 4.1 corresponde a una mquina Moore, pues no hay ninguna entrada ms que la de reloj que no se contabiliza como entrada en las mquinas de estados, por lo que las salidas dependen nica y exclusivamente del estado anterior de las mismas, y no de ninguna entrada.
Figura 4.2 Diagrama de transicin de estados
Ing. Javier Barriga Hoyle 13 5 Paso. Deducir la funcionalidad del circuito.
Como se aprecia es la figura 4.2 correspondiente al diagrama de transicin de estados del circuito que se est analizando, el funcionamiento del mismo corresponde a un contador de mdulo 10, pues se ve que el circuito tiene un funcionamiento cclico con diez estados.
Adems, en el mismo diagrama, se puede ver que el circuito analizado no admite enclavamiento en ninguno de los estados no incluidos en la secuencia de conteo, debido a que como se aprecia en el diagrama de transicin de estados, si el circuito cae en algn momento por alguna perturbacin en un estado no incluido en la secuencia, el camino natural, con pulsos de reloj, que seguira el circuito lleva de nuevo al mismo a entrar en la secuencia de conteo.
La secuencia seguida por el contador no es una secuencia continua en cdigo binario, sino que corresponde a una secuencia alterada. Es esta: 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 0, 3... etc, que se puede ver en la figura 4.2.