Máquina de estado

Máquinas de estado En VHDL 


Al aprender VHDL o cualquier otro lenguaje de explicación de hardware suele empezarse por los comunes sumadores y bloques combinacionales, para más adelante entrar en los sistemas con recursos de memoria, denominados además secuenciales y en ellos las reinas son las máquinas de estados o FSM (Finite State Machine) en ingles.

 Anterior a comenzar, si no os apetece mucho leeros el artículo que hemos preparado, os dejamos un clip de video donde hemos explicado todo paso a paso. 

En los sistemas secuenciales las maquinas de estado son posiblemente el modulo más usado, y una inagotable fuente de dudas entre los principiantes en VHDL. En este artículo vamos a aprender la composición de una máquina de estados en VHDL y resolveremos varias dudas típicas que emergen al diseñarlas. Lo primero, como continuamente es explicar que es una máquina de estados. Conforme con la Wikipedia: 

    "Las máquinas de estados se definen como un conjunto de estados que sirve de         intermediario en esta relación de entradas y salidas, haciendo que el historial de         señales de entrada determine, para cada instante, un estado para la máquina, de      forma tal que la salida depende únicamente del estado y las entradas actuales".


Máquina de estados de Moore y Mealy

En el momento de representar una máquina de estados es usual usar un diagrama de estados, que muestra de manera condensada toda esta información. 
Ejemplo de diagrama de estados de Mealy



Ejemplo de diagrama de una máquina de Moore.ssss


En los ejemplos de la imágenes poseemos una máquina de estados con 1 bit de acceso y otro de salida, así como diversos estados probables. La máquina de Mealy al arrancar está en el estado S0, en tal estado una vez que llega un 1 por la acceso se queda en el estado S0, empero si la ingreso vale 0 pasa al estado S1. En funcionalidad de dichas entradas está establecido además el costo de las salidas. Estando en S0 si la acceso vale 1 la salida es 0, debido a que en el diagrama poseemos en esa transición 1/0.

 Si nos fijamos en la máquina de Moore, la salida está vinculada al estado, no a las entradas. En el estado q0 la salida constantemente es 0 independientemente del costo de la ingreso. Por consiguiente la primordial diferencia entre las dos representaciones es que en la máquina de Moore la salida solo es dependiente del estado y en la de Mealy es dependiente del estado y la acceso.

 Al la hora de diseñar la maquina de estados en VHDL la división teórica entre máquina de Mealy y de Moore no es importante, debido a que las dos se describen del mismo modo, sin embargo es interesante por lo menos mencionarlas, debido a que suele haber muchas confusiones al respecto. 


Referencias.

vhdl_es. Máquinas de estado en VHDL - vhdl.es". VHDL.es. https://vhdl.es/maquinas-de-estado-en-vhdl/ (accedido el 8 de noviembre de 2021).

"Máquinas de estado finito en VHDL". Digilogic. https://digilogicelectronica.wordpress.com/2017/03/25/maquinas-de-estado-finito-fsm-vhdl/ (accedido el 8 de noviembre de 2021).


Comentarios

Entradas populares de este blog

Dispositivos Digitales Programables Pal y Gal

Tarjeta AMIBA 2

Tarea Que son los dispositivos digitales programables (PAL, GAL, CPLD, FPGA)