You are on page 1of 9

Diseño basado eñ FSM

Retomando los elementos teóricos del tema Maquinas de estados finitos 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 FSM implementadas sobre lógicas de función fija de
tecnología MSI/LSI.

1. Análisis empleando FSM

Retomando el ejemplo del control de LED de la sección anterior es posible plantear una solución
tanto empleando una Maquina tipo Moore, como una tipo Mealy, en general, toda Máquina
Moore tiene un equivalente Mealy y viceversa.

Así, los diagramas de y tablas Estados Moore y Mealy que se hallaron para este problema se
muestran a continuación:

Ilustración 1: Diagrama de Estados LED Moore Ilustración 2: Diagrama de Estados LED Mealy
Estado Presente P (Entrada) Estado Siguiente L (Salida)
0 Inicio
Inicio 0
1 Encendido
0 Encendido
Encendido 1
1 Apagado
0 Apagado
Apagado 0
1 Encendido
Tabla 1: Tabla de estados LED Moore

Estado Presente P (Entrada) Estado Siguiente L (Salida)


Inicio 0 Inicio 0
Inicio 1 Encendido 1
Encendido 0 Encendido 1
Encendido 1 Apagado 0
Apagado 0 Apagado 0
Apagado 1 Encendido 1
Tabla 21: Tabla de estados LED Mealy

Con el fin de poder implementar estas soluciones sobre las tecnologías MSI/LSI, se hace necesario
seguir una serie de pasos desde aquí:

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 funcionamiento de la solución, resulta poco eficiente emplearlos en la
implementación, teniendo en cuenta los costos que esto implica en elementos de
memoria por esta razón se codifican los estados en BINARIO:

Nombre del Estado Código del Estado


Inicio 00
Encendido 01
Apagado 10

Como puede verse, se codifican los estados en el MENOR número posible de BIT, dado que
de esta forma se logra el MENOR requerimiento de elementos de memoria (flip-flop). Así
la implementación requerirá tantos flip-flop como sean necesario para codificar en
binario, la totalidad de los estado, para el caso se empelarán 2 flip- flop dado que los 3
estado de la FSM, pueden codificarse en 2 bits.
Los diagramas y tablas de estados codificados tanto para Moore como para Mealy se
presentan a continuación:

Moore Mealy

Estado P Estado
Estado Estado L (Salida)
P (Entrada) L (Salida) Presente (Entrada) Siguiente
Presente Siguiente
00 0 00 0
0 00 00 1 01 1
00 0
1 01 01 0 01 1
0 01
01 1 01 1 10 0
1 10
0 10 10 0 10 0
10 0 10 1 01 1
1 01

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 o Mealy.
Tanto para Moore como para Mealy, la arquitectura divide la funcionalidad en 3 grupos de
componentes:

a. Combinacional de Entrada: Se encarga de calcular el estado siguiente (SS) a partir de las


entradas y el estado presenten (SP)
b. Elementos de Memoria: Permiten almacenar el estado presente de la FSM.
c. 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.
3. Dimensionamiento de los componentes
A partir de la función asociada a cada componente, definida en el numeral anterior se
procede a dimensionar cada uno:
a. Combinacional de entrada: Teniendo cuenta que el rol funcional de este
combinacional es calcular el estado siguiente, este combinacional calcula tantas
funciones Boolenas (salidas del combinacional) como bits se requieran para codificar
la totalidad de los estados, asimismo, teniendo en cuenta que el estado siguiente SS se
calcula a partir del estado presente y la entrada ente 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:
 SS0 (P, SP1, SP0)
 SS1 (P, SP1, SP0)
 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í:

Estado Estado
P (Entrada)
Presente Siguiente
00 0 00
00 1 01
01 0 01
01 1 10
10 0 10
10 1 01

Entradas al Combinacional Salidas del Combinacional


Estado Presente Estado Siguiente
P (Entrada)
SP1, SP0 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
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

b. Elementos de Memoria: Típicamente se emplean flip-flop tipo D, un por cada bit


requerido para codificar el número total de estado, para e caso, 2 flip-flop
c. Combinacional de salida: Finalmente en el combinacional de salida pueden darse dos
casos, dependiendo de si se implementará una máquina de tipo Moore o una de tipo
Mealy.
More: 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, para el caso:
 L( SP1,SP0), la tabla de verdad para esta función Booleana puede leerse de la
tabla de estados correspondiente en las columnas 1 y 4

Estado Estado
P (Entrada) L (Salida)
Presente Siguiente

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

Estado
L (Salida)
Presente

00 0

01 1

10 0

11 X

Una vez más 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: Para la maquina tipo Mealy emplea el valor de la salida depende del estado
presente y el 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( SP1,SP0, P), la tabla de verdad para esta función Booleana puede leerse de la
tabla de estados correspondiente en las columnas 1, 2 y 4

Estado P Estado
L (Salida)
Presente (Entrada) Siguiente
00 0 00 0
00 1 01 1
01 0 01 1
01 1 10 0
10 0 10 0
10 1 01 1

Estado
(Entrada) (Salida)
Presente
P L
SP1, SP0
00 0 0
00 1 1
01 0 1
01 1 0
10 0 0
10 1 1
11 0 X
11 1 X

Una vez más 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.

4. Diagramas lógicos

Para la construcción de los diagramas lógicos, pueden emplearse las herramientas de diseño de
lógica combinacionales, como los mapas de Karnaugh o recurrir a herramientas de diseño asistido
por computador (CAD) que además de facilitar la construcción del diagrama permiten realizar
simulación de la solución planteada, entre otras ventajas.
Entre la diversidad de software CAD para circuitos que se encuentra disponible, una opción de
software libre con capacidad para realiza, análisis y simulación de circuitos lógicos es LOGISIM1, a
continuación se muestran los diagramas de implementación realizados en este software, para la
solución empleando máquina de estados tipo Moore:

Ilustración 1: Diagrama general de Implementacion

Ilustración 2: Diagrama lógico del Combinacional de Entrada

Ilustración 3: Diagrama Lógico del combinacional de Salida

1
Puede descargar LOGISIM de manera gratuita en la web del autor:
http://www.cburch.com/logisim/index_es.html donde también podrá encontrar manuales de usuario del
software.

You might also like