Está en la página 1de 3

Machine Translated by Google

8
Diseño de máquinas de estados finitos usando VHDL

Las máquinas de estados finitos (FSM) son abstracciones matemáticas que se utilizan
para resolver una gran variedad de problemas, entre los que se encuentran la
automatización del diseño electrónico, el diseño de protocolos de comunicación, el
análisis sintáctico y otras aplicaciones de ingeniería. En este punto de su carrera de
diseño digital, probablemente haya diseñado varias máquinas de estado en papel.
Ahora está en el punto donde puede implementarlos y probarlos usando hardware
real. El primer paso en este proceso es aprender a modelar FSM utilizando VHDL.
Como verá en la siguiente sección, los diseños simples de FSM son solo un paso
más allá del diseño de circuito secuencial descrito en la sección anterior. Las técnicas
que aprenda en esta sección le permitirán diseñar rápida y fácilmente FSM
relativamente complejos que pueden ser útiles de varias maneras.
En la figura 8.1 se muestra un diagrama de bloques para una FSM tipo Moore
estándar. Este diagrama es bastante típico, pero se usan diferentes nombres para
algunos de los bloques en el diseño. El Next State Decoder es un bloque de combinatoria

Figura 8.1: Diagrama de bloques para una FSM tipo Moore.


Machine Translated by Google

90 Capítulo 8: Diseño de máquinas de estados finitos usando VHDL

Figura 8.2: Modelo para implementaciones VHDL de FSM.

lógica que utiliza las entradas externas actuales y el estado actual para decidir
sobre el siguiente estado del FSM. En otras palabras, las entradas al bloque Next
State Decoder se decodifican para producir una salida que representa el siguiente
estado de la FSM. El circuito en el decodificador de estado siguiente es
generalmente las ecuaciones de excitación para los elementos de almacenamiento
(flip-flops) en el bloque de registro de estado . El siguiente estado se convierte en
el estado actual de la FSM cuando la entrada de reloj al bloque de registros de
estado se vuelve activa. El bloque de registros de estado es un elemento de
almacenamiento que almacena el estado actual de la máquina. Las entradas al
decodificador de salida se utilizan para generar las salidas externas deseadas. Las
entradas se decodifican mediante lógica combinatoria para producir las salidas
externas. Debido a que las salidas externas solo dependen del estado actual de la
máquina, esta FSM se clasifica como una FSM tipo Moore.
El modelo FSM que se muestra en la figura 8.1 es el modelo más común para
describir una FSM tipo Moore. Esto probablemente se deba a que a menudo se
pide a los estudiantes que generen la lógica combinatoria necesaria para
implementar el decodificador de estado siguiente y el decodificador de salida; sin
embargo, aquí queremos pensar en las FSM en el contexto de VHDL. El
verdadero poder de VHDL comienza a surgir al tratar con FSM. Como verá, la
versatilidad del modelado de comportamiento VHDL elimina la necesidad de
grandes diseños en papel de infinitos mapas K y elementos lógicos combinatorios infinitos.
Se utilizan varios enfoques diferentes para modelar FSM en VHDL.
Los diversos enfoques son el resultado de la versatilidad general de VHDL como
lenguaje. Lo que describiremos en esta sección es probablemente el enfoque
más claro para la implementación de FSM. Un diagrama de bloques del enfoque que
Machine Translated by Google

8.1 Representación del comportamiento VHDL de las FSM 91

utilizará en la implementación de FSM se muestra en la Fig. 8.2.

Aunque no parece mucho más claro, pronto encontrará que el modelo


FSM que se muestra en la figura 8.2 es un método directo para implementar
FSM. El enfoque que usaremos divide el FSM en dos procesos VHDL.
Un proceso, denominado Proceso síncrono , maneja todos los asuntos relacionados con el reloj y

otros controles asociados con el elemento de almacenamiento. El otro proceso, el Proceso

Combinatorio, maneja todos los asuntos asociados con el Decodificador de Estado Siguiente y el

Decodificador de Salida de la Fig. 8.1. Tenga en cuenta que los dos bloques de la figura 8.1 están

hechos únicamente de lógica combinatoria.

Se utiliza una jerga nueva para describir las señales en la Fig. 8.2, como se describe
y se describe a continuación:

Las entradas etiquetadas como Entradas paralelas se utilizan para indicar las entradas que

actúan en paralelo en cada uno de los elementos de almacenamiento. Estas entradas incluyen

habilitaciones, preajustes, borrados, etc.

Las entradas etiquetadas Entradas de transición de estado incluyen entradas externas que

controlan las transiciones de estado. Estas entradas también incluyen entradas externas utilizadas

para decodificar salidas externas de tipo Mealy.

Las señales de estado actual son utilizadas por la caja de proceso combinatorio tanto para

la decodificación del siguiente estado como para la decodificación de salida. El diagrama de la

figura 8.2 también muestra que las variables de estado actual también se pueden proporcionar

como salidas a la FSM, pero no son necesarias.

Un comentario final antes de comenzar. Hay muchos métodos diferentes que se pueden usar para

describir FSM usando VHDL. Una vez que comprenda el método presentado aquí, aprender cualquier

otro estilo de implementación de FSM es relativamente sencillo. Se puede encontrar más información

sobre los otros estilos de codificación de FSM en varios textos de VHDL o en la web.

8.1 Representación del comportamiento VHDL de las FSM

También podría gustarte