Você está na página 1de 15

Unidad 4 / Escenario 8

Lectura Fundamental

Aplicación de las FSM

Contenido

1 Contadores sı́ncronos con FSM

2 Análisis de problemas empleando FSM

Referencias

Palabras clave: Máquinas de estados, Contadores sı́ncronos, Diseño


Retomando los elementos teóricos del escenario anterior y haciendo uso de las lógicas combinacionales y elementos
de memoria, se abordará en esta sección el diseño de soluciones empleado como herramienta las máquinas de
estados finitos, implementadas sobre lógicas de función fija de tecnologı́a MSI/LSI. En la primera parte de la
lectura se aborda una metodologı́a para el diseño de contadores sı́ncronos (sin salidas). En la segunda parte se
trata un problema más general, con entradas y salidas.

1. Contadores sı́ncronos con FSM

Inicialmente, se estudiará el diseño de contadores sı́ncronos, en los que el análisis se facilita dado que los contadores
más básicos no requieren el uso de entradas y salidas. Un circuito que funcione mediante FSM puede funcionar
únicamente con sus variables de estado y la lógica combinacional adecuada, que permita cambiar de estado en
cada pulso de reloj. Basados en lo que presenta Floyd (2010), los pasos para el diseño de contadores sı́ncronos son:

• Obtener el diagrama de estados y la tabla de estados.

• Evaluar la tabla de transiciones de los flip-flops.

• Simplificación y expresiones lógicas.

• Implementación del circuito.

1.1. Obtener el diagrama de estados y la tabla de estados

Al igual que en los ejemplos anteriores, normalmente se parte de un diagrama de estados que permita comprender
fácilmente los estados existentes y sus transiciones. En la figura 1 se muestra el diagrama para un contador binario
de 2 bits, que sigue la secuencia 00 - 01 - 10 - 11 de manera cı́clica con cada pulso de reloj.

Figura 1: Contador binario. Elaboración propia.

Debido a que en el diagrama no se especifican entradas ni salidas, la tabla de estados (tabla 1) se reduce a la
verificación de las variables de estado de cada uno de las salidas en los flip-flops. La cantidad de flip-flops que
se requerirán para representar este problema está relacionada con la cantidad n estados, siendo log2 (n) el valor
mı́nimo de bits para representarlos (el valor se aproxima a la siguiente cifra). Por esta razón, para representar

POLITÉCNICO GRANCOLOMBIANO 1
4 estados se requerirán 2 flip-flops F F1 y F F0 . Tenga en cuenta que las variables de estado se asumen como las
salidas de cada flip-flop Q1 y Q0

Estado presente Estado siguiente


Q1 Q0 Q1 Q0
0 0 0 1
0 1 1 0
1 0 1 1
1 1 0 0

Tabla 1: Tabla de estados para el contador binario. Elaboración propia.

1.2. Evaluar la tabla de transiciones de los flip-flops

Una vez se tienen los diagramas y tablas, es necesario analizar cómo suceden las transiciones en los flip-flops. En
la tabla 2 se presentan las transiciones en un flip-flop J-K, pasando de un estado presente a un estado futuro. Las
X representan condiciones de “no importa”, es decir, no es necesario tener en cuenta esa variable. Esta situación
será útil más adelante con los mapas de Karnaugh para obtener las ecuaciones del problema. En la tabla 3 se
presentan las transiciones en un flip-flop D, el cual presenta unas condiciones simplificadas para el análisis.

Transición en salidas Entradas del flip-flop


QN QN +1 J K
0 → 0 0 X
0 → 1 1 X
1 → 0 X 1
1 → 1 X 0

Tabla 2: Transiciones en flip-flop J-K. Basado en (Floyd, 2010)


.

Transición en salidas Entradas del flip-flop


QN QN +1 D
0 → 0 0
0 → 1 1
1 → 0 0
1 → 1 1

Tabla 3: Transiciones en flip-flop D. Basado en (Floyd, 2010)


.

1.3. Simplificación y expresiones lógicas

Los mapas de Karnaugh permiten obtener las expresiones para la lógica combinacional de entrada de cada uno de
los flip-flops. El procedimiento consiste en hacer un mapa evaluando las transiciones de las variables de estado Q1

POLITÉCNICO GRANCOLOMBIANO 2
y Q0 , de un estado presente a un estado siguiente, para cada una de las entradas de los flip-flops. Ası́, si se usan
flip-flops J-K, se debe hacer un mapa para cada una de las entradas J1 , K1 , J0 y K0 (figura 2). En cambio, si se
usan flip-flops D, se hará un mapa de Karnaugh para D1 y D0 (figura 3).

Los mapas de las figuras 2 y 3 se obtuvieron a partir de la tabla 1. Por ejemplo, en la primera fila de dicha tabla,
en la columna 2 “Estado presente de Q0 ”, y 4 “Estado siguiente de Q0 ”, el valor de Q0 pasa del estado 0 al estado
1. Si se va a hacer el circuito con flip-flops J-K, se evalúa en la tabla 2 qué se requiere en las entradas del flip-flop
para que esta transición suceda, en este caso la entrada J0 debe estar en 1 y la entrada K0 debe estar en X. Esta
información se consigna en el mapa de Karnaugh en la posición Q1 = 0 y Q0 = 0. Por otro lado, si se va a realizar
el montaje con flip-flops D, la entrada D0 debe estar en 1 (tabla 3).

Continuando, se evalúa en la segunda fila de la tabla 1 la columna 2 “Estado presente de Q0 ” y 4 “Estado siguiente
de Q0 ”. El valor Q0 pasa del estado 1 al estado 0. Para un flip-flop J-K, la entrada J0 debe estar en X y la entrada
K0 debe estar en 1. Esta información se consigna en el mapa de Karnaugh en la posición Q1 = 0 y Q0 = 1. Si se
va a realizar el montaje con flip-flops D, la entrada D0 debe estar en 0.

Una vez se termina el análisis para Q0 , se procede a mirar las transiciones en Q1 de estado presente a estado
siguiente, agregando la información a los mapas de Karnaugh correspondientes. Este procedimiento se sigue para
todos los estados presentes de la tabla 1.

(a) Salida J1 (b) Entrada K1 (c) Salida J0 (d) Entrada K0

Figura 2: Mapas de Karnaugh y expresiones para flip-flop tipo J-K. Elaboración propia.

(a) Entrada D1 (b) Entrada D0

Figura 3: Mapas de Karnaugh y expresiones para flip-flop tipo D. Elaboración propia.

Una vez se tienen todos los mapas de Karnaugh, se procede a realizar la obtención de expresiones mı́nimas para
la activación de cada flip-flop (parte inferior de cada una de las figuras 2 y 3)

POLITÉCNICO GRANCOLOMBIANO 3
Cómo mejorar...
Las tablas de verdad se pueden trabajar en la opción “Análisis combinacional” de Logisim. Partiendo de
ahı́, la generación de mapas de Karnaugh y de los diagramas lógicos correspondientes es muy sencilla.

1.4. Implementación del diagrama lógico

Para finalizar, se procede a generar los circuitos lógicos de control de cada entrada, según los resultados de la
simplificación. En las figuras 4 y 5 se presentan los dos circuitos resultantes, para flip-flops tipo J-K y tipo D. Note
cómo, a pesar de tener un diseño más engorroso, el circuito con flip-flops J-K es menos complejo, pues se vale del
efecto basculante. En el caso del circuito con flip-flops tipo D, la expresión de la entrada D1 = Q1 Q0 + Q1 Q0 es
equivalente a una compuerta XOR, por lo tanto D1 = Q1 ⊕ Q0 .

Figura 4: Contador binario, con flip-flops J-K. Elaboración propia.

Figura 5: Contador binario, con flip-flops D. Elaboración propia.

En este momento lo invito a regresar al escenario donde podrá encontrar una actividad para comprender mejor y
aplicar los conocimientos adquiridos en esta sección de la lectura.

POLITÉCNICO GRANCOLOMBIANO 4
2. Análisis de problemas empleando FSM

Utilizando una metodologı́a similar a la explicada, es posible realizar máquinas de estados para problemas más
generales. Volviendo al ejemplo que se desarrollo en el escenario pasado (encendido y apagado de un LED), a
continuación se muestran los diagramas de las máquinas de Moore y Mealy que se hallaron:

(a) Máquina de Moore (b) Máquina de Mealy

Figura 6: Diagramas de estados del ejemplo de LEDs. Elaboración propia.

Con el fin de poder implementar estas soluciones sobre las tecnologı́as de circuitos integrados, se hace necesario
seguir una serie de pasos correspondientes en:

• Codificación de los estados.

• Definición de la arquitectura.

• Dimensionalidad de los componentes.

• Diagramas lógicos.

2.1. Codificación de los estados

Si bien los nombres descriptivos de los estados que se emplearon hasta ahora ayudan a la comprensión del fun-
cionamiento de la solución, resulta poco eficiente emplearlos en la implementación. Por esta razón, a cada estado
se le asignará un código en binario (Similar a lo realizado en los contadores). Ası́, para representar 3 estados,
se requerirán 2 bits. Este cálculo permite realizar la codificación de los estados en el menor número
posible de bits, dado que de esta forma se logra el menor requerimiento de elementos de memoria (flip-flop).
En la tabla 4 se muestra la propuesta para nombrar cada uno de los estados de la máquina de estados a diseñar.
La implementación requiere entonces tantos flip-flop como sean necesario para codificar en binario, la totalidad de
los estados.

Los diagramas de estados y las tablas de estados se deberán actualizar entonces con la codificación adecuada,
reemplazando los nombres de estados.

POLITÉCNICO GRANCOLOMBIANO 5
Nombre del estado Código del estado
Inicio 00
Encendido 01
Apagado 10

Tabla 4: Ejemplo de tabla de estados. Elaboración propia.

2.2. Definición de la arquitectura

La arquitectura de la solución a implementar tendrá algunas variaciones en función del tipo de máquina que se desee
implementar Moore (figura 7) o Mealy (figura 8). Según funcionalidad, se encuentran 3 grupos de componentes
principales (Tocci, Widmer, y Moss, 2007, p.426):

1. Circuito combinacional de Entrada: Se encarga de calcular el estado siguiente (SS) a partir de las
entradas y el estado presenten (SP).

2. Elementos de Memoria: Permiten almacenar el estado presente de la FSM.

3. Circuito combinacional de Salida: Se encarga de calcular el valor de la salida. En este combinacional y


su interconexión lógica se evidencia si se trata de una maquina Moore o una máquina Mealy, para el primer
tipo, el valor de la salida se calcula únicamente a partir del código del estado presente, mientras que para el
segundo tipo, el combinacional de salida calcula el valor de la salida a partir del estado presente y la entrada.

Figura 7: Arquitectura de una máquina de Moore. Elaboración propia.

2.3. Dimensionalidad de los componentes

A partir de la función asociada a cada uno de los componentes principales, se procede a dimensionar cada uno. En
este paso es importante acudir a las tablas de estados, con el fin de verificar qué variables afectan el comportamiento
de las salidas.

POLITÉCNICO GRANCOLOMBIANO 6
Figura 8: Arquitectura de una máquina de Mealy. Elaboración propia.

2.3.1. Combinacional de entrada

Teniendo cuenta que el rol funcional de este circuito combinacional es calcular el estado siguiente, en esta sección se
calculan tantas funciones Boolenas (salidas del combinacional) como bits se requieran para codificar la totalidad de
los estados. De igual manera, teniendo en cuenta que el estado siguiente SS se calcula a partir del estado presente
y la entrada, este combinacional tendrá un número de variables igual al número de bits necesarios para codificar
el número de estado más el de bits de entrada que tenga el sistema. Para el caso que se está estudiando:

• SS0 (P, SP1 , SP0 ), esto indica que el bit 0 del estado presente depende de P(Entrada) y los dos bits del estado
pasado.

• SS1 (P, SP1 , SP0 ), esto indica que el bit 1 del estado presente depende de P(Entrada) y los dos bits del estado
pasado.

Con lo anterior establecido puede usarse la tabla de estado (columnas 1, 2 y 3 para calcular la funciones Boolenas
SS0 (P, SP1 , SP0 ) y SS1 (P, SP1 , SP0 ) ası́:

Entradas al combinacional Salidas del combinacional


Estado presente Entrada Estado siguiente
SP1 , SP0 P(Entrada) SS1 , SS0
00 0 00
00 1 01
01 0 01
01 1 10
10 0 10
10 1 01
11 0 XX
11 1 XX

Tabla 5: Tabla de estados para el circuito combinacional de entrada. Elaboración propia.

Nótese que las dos últimas filas de la tabla corresponden a condiciones de no importa dado que el estado 11 no se
codifica en la FSM.

POLITÉCNICO GRANCOLOMBIANO 7
2.3.2. Elementos de memoria

Tı́picamente se emplea un flip-flop tipo D por cada bit requerido para codificar el número total de estado. La
elección de este tipo de flip-flop facilita el diseño y disminuye la cantidad de elementos necesarios para el circuito.
En este caso se requerirán entonces 2 flip-flop.

2.3.3. Combinacional de salida

Es en este momento donde se debe tener en cuenta el tipo de arquitectura que se está diseñando. Pueden existir
dos casos, dependiendo de si se diseña una máquina de Moore o una de Mealy.

Moore: Para la maquina tipo Moore el valor de la salida depende únicamente del estado presente, por tanto el
combinacional de salida calculará tanta funciones Booleanas como bits de salida tenga el sistema y estas dependerán
de tantas variables Booleanas como se requieran para codificar el número total de estados: L(SP1 , SP0 ), la tabla
de verdad para esta función Booleana puede leerse en las columnas 1 y 4 de la tabla de estados.

Estado presente P(Entrada) Estado siguiente L(Salida)


0 00
00 0
1 01
0 01
01 1
1 10
0 10
10 0
1 01

Tabla 6: Tabla de estados, para la máquina de Moore del ejemplo. Elaboración propia.

Estado presente L(Salida)


00 0
01 1
10 0
11 X

Tabla 7: Tabla de verdad para el combinacional de salida, de una máquina de Moore. Elaboración propia.

En este caso, la tabla de verdad se completa con las filas necesarias de condiciones de no importa, dado que el
estado 11 no se codifica para este ejemplo.

Mealy: en esta máquina, el valor de la salida depende del estado presente y del valor de la entada, por tanto el
combinacional de salida calculará tanta funciones Booleanas como bits de salida tenga el sistema y estas dependerán
de tantas variables Booleanas como se requieran para codificar el número total de estados más tantas como bits
de entrada tenga el sistema, para el caso: L(P, SP1 , SP0 ), la tabla de verdad para esta función Booleana puede
leerse en las columnas 1, 2 y 4 de la tabla de estados.

Una vez más la tabla de verdad se completa con las filas necesarias de condiciones de no importa.

POLITÉCNICO GRANCOLOMBIANO 8
Estado presente P(Entrada) Estado siguiente L(Salida)
00 0 00 0
00 1 01 1
01 0 01 1
01 1 10 0
10 0 10 0
10 1 01 1

Tabla 8: Tabla de estados, para la máquina de Mealy del ejemplo. Elaboración propia.

Estado presente Entrada Salida


00 0 0
00 1 1
01 0 1
01 1 0
10 0 0
10 1 1
11 0 X
11 1 X

Tabla 9: Tabla de verdad para el combinacional de salida, de una máquina de Mealy. Elaboración propia.

2.4. Diagramas lógicos

Teniendo las diferentes tablas de verdad para cada uno de los componentes a implementar, se procede a realizar
el diseño de los diagramas lógicos. Esta parte del trabajo se puede realizar de manera manual, calculando las
simplificaciones de los circuitos mediante los mapas de Karnaugh, o es posible también ayudarse de las herramientas
de diseño asistido por computador (CAD) vistas hasta ahora.

A continuación se muestran los diagramas de implementación realizados en Logisim. Se desarrolló la solución


únicamente para la máquina de estados de Moore. De la misma manera, es posible hacer el diseño de los circuitos
para las máquinas de Mealy. Recuerde que para que los elementos de memoria funcionen adecuadamente, se debe
utilizar una señal de reloj externo. Por esta razón, estos circuitos son de tipo sı́ncrono.

En este momento lo invito a volver al escenario, donde encontrará una lectura sobre otra metodologı́a de diseño
de máquinas de estados, que podrá resolver algunas dudas acerca de los procedimientos acá realizados. Además
encontrará algunos ejercicios de diseño de máquinas de estados.

POLITÉCNICO GRANCOLOMBIANO 9
Figura 9: Diagrama lógico, combinacional de entrada Elaboración propia.

Figura 10: Diagrama lógico, combinacional de salida Elaboración propia.

Figura 11: Máquina de estados para el problema. Elaboración propia.

POLITÉCNICO GRANCOLOMBIANO 10
Índice de figuras

1 Contador binario. Elaboración propia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 Mapas de Karnaugh y expresiones para flip-flop tipo J-K. Elaboración propia. . . . . . . . . . . . .

3 Mapas de Karnaugh y expresiones para flip-flop tipo D. Elaboración propia. . . . . . . . . . . . . .

4 Contador binario, con flip-flops J-K. Elaboración propia. . . . . . . . . . . . . . . . . . . . . . . . .

5 Contador binario, con flip-flops D. Elaboración propia. . . . . . . . . . . . . . . . . . . . . . . . . .

6 Diagramas de estados del ejemplo de LEDs. Elaboración propia. . . . . . . . . . . . . . . . . . . . .

7 Arquitectura de una máquina de Moore. Elaboración propia. . . . . . . . . . . . . . . . . . . . . . .

8 Arquitectura de una máquina de Mealy. Elaboración propia. . . . . . . . . . . . . . . . . . . . . . .

9 Diagrama lógico, combinacional de entrada Elaboración propia. . . . . . . . . . . . . . . . . . . . .

10 Diagrama lógico, combinacional de salida Elaboración propia. . . . . . . . . . . . . . . . . . . . . .

11 Máquina de estados para el problema. Elaboración propia. . . . . . . . . . . . . . . . . . . . . . . .

POLITÉCNICO GRANCOLOMBIANO 11
Índice de tablas

1 Tabla de estados para el contador binario. Elaboración propia. . . . . . . . . . . . . . . . . . . . . .

2 Transiciones en flip-flop J-K. Basado en (Floyd, 2010) . . . . . . . . . . . . . . . . . . . . . . . . .

3 Transiciones en flip-flop D. Basado en (Floyd, 2010) . . . . . . . . . . . . . . . . . . . . . . . . . .

4 Ejemplo de tabla de estados. Elaboración propia. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 Tabla de estados para el circuito combinacional de entrada. Elaboración propia. . . . . . . . . . . .

6 Tabla de estados, para la máquina de Moore del ejemplo. Elaboración propia. . . . . . . . . . . . .

7 Tabla de verdad para el combinacional de salida, de una máquina de Moore. Elaboración propia. .

8 Tabla de estados, para la máquina de Mealy del ejemplo. Elaboración propia. . . . . . . . . . . . .

9 Tabla de verdad para el combinacional de salida, de una máquina de Mealy. Elaboración propia. . .

POLITÉCNICO GRANCOLOMBIANO 12
Referencias

Floyd, T. L. (2010). Fundamentos de sistemas digitales. Pearson Prentice Hall. (OCLC: 893578510)
Tocci, R. J., Widmer, N. S., y Moss, G. L. (2007). Sistemas digitales: principios y aplicaciones. México [etc.:
Pearson Educación. (OCLC: 804512544)

POLITÉCNICO GRANCOLOMBIANO 13
INFORMACIÓN TÉCNICA

Módulo: Sistemas digitales y ensambladores


Unidad 4: Máquinas de Estados Finitos (FSM)
Escenario 8: Aplicación de las FSM

Autor: Gabriel Eduardo Ávila Buitrago

Asesor Pedagógico: Jeimmy Lorena Romero Perilla


Diseñador Gráfico: Leonardo Stiglitch Campos
Asistente: Jhon Edwar Vargas Villa

Este material pertenece al Politécnico Grancolombiano.


Por ende, es de uso exclusivo de las Instituciones
adscritas a la Red Ilumno. Prohibida su reproducción
total o parcial.

POLITÉCNICO GRANCOLOMBIANO 14

Você também pode gostar