Documentos de Académico
Documentos de Profesional
Documentos de Cultura
GLab-S15-CQUILLA Maquinas Estado VHDL
GLab-S15-CQUILLA Maquinas Estado VHDL
LABORATORIO Nº 15
I. CAPACIDAD TERMINAL
Programa eficazmente un FPGA en VHDL para crear funciones.
V. MATERIAL Y EQUIPO
Software de programación VHDL.
PC
MAQUINAS DE ESTADO
Una Máquina de Estado Finito (Finite State Machine), llamada también Autómata Finito es una
abstracción computacional que describe el comportamiento de un sistema reactivo mediante un
número determinado de Estados y un número determinado de Transiciones entre dicho Estados.
• En la estructura de Mealy, las señales de salida dependen tanto del estado en que se encuentra el
sistema, como de la entrada que se aplica en determinado momento. En la figura 2 se muestra un
ejemplo de maquina Mealy.
• En la estructura de Moore, la señal de salida sólo depende del estado en que se encuentra.
Laboratorio 14 LAB 14
Máquinas de estado en VHDL Página 2 / 9
Un sistema secuencial, como la máquina de estados, se desarrolla a través de una serie de pasos
generalizados que comprenden el enunciado del problema, diagrama de estados, tabla de estados,
asignación de estados, ecuaciones de entrada a los elementos de memoria y diagrama electrónico del
circuito.
d) Compile el diseño.
-------------------------------------------------------------------------------
--
-- Title : No Title
-- Design :
-- Author : OMEN
-- Company : tecsup
--
-------------------------------------------------------------------------------
--
-- File : c:/my_designs/lab_15_maquina_estado/maquina_estado/compile/maquina_estado.vhd
-- Generated : Tue Jun 20 16:37:44 2023
-- From : c:/my_designs/lab_15_maquina_estado/maquina_estado/src/maquina_estado.asf
-- By : Active-HDL Student Edition FSM Code Generator ver. 6.0
--
-------------------------------------------------------------------------------
--
-- Description :
--
-------------------------------------------------------------------------------
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;
use IEEE.std_logic_signed.all;
entity e_maquina_estado is
port (
clk: in STD_LOGIC;
reset: in STD_LOGIC;
X: in STD_LOGIC;
Z: out STD_LOGIC
);
end e_maquina_estado;
begin
-- User statements
-- Diagram ACTION
----------------------------------------------------------------------
-- Machine: Sreg0
----------------------------------------------------------------------
------------------------------------
-- Next State Logic (combinatorial)
------------------------------------
Sreg0_NextState: process (X, Sreg0)
begin
NextState_Sreg0 <= Sreg0;
-- Set default values for outputs and signals
-- ...
case Sreg0 is
when S1 =>
case x is
when '1' =>
NextState_Sreg0 <= S2;
Z<='0';
when '0' =>
NextState_Sreg0 <= S1;
Z<='0';
when others =>
null;
end case;
when S3 =>
case X is
when '1' =>
NextState_Sreg0 <= S4;
Z<='0';
when '0' =>
NextState_Sreg0 <= S3;
Z<='0';
when others =>
null;
end case;
when S4 =>
if X='1' then
NextState_Sreg0 <= S1;
Z<='1';
elsif X='1' then
NextState_Sreg0 <= S4;
Z<='0';
end if;
when S2 =>
case X is
when '1' =>
NextState_Sreg0 <= S3;
Z<='0';
when '0' =>
NextState_Sreg0 <= S2;
Z<='0';
when others =>
Laboratorio 14 LAB 14
Máquinas de estado en VHDL Página 7 / 9
null;
end case;
--vhdl_cover_off
when others =>
null;
--vhdl_cover_on
end case;
end process;
------------------------------------
-- Current State Logic (sequential)
------------------------------------
Sreg0_CurrentState: process (clk)
begin
if clk'event and clk = '1' then
if reset='1' then
Sreg0 <= S1;
else
Sreg0 <= NextState_Sreg0;
end if;
end if;
end process;
end a_maquina_estado;
Laboratorio 14 LAB 14
Máquinas de estado en VHDL Página 8 / 9
c) Compile los archivos creados y simule la maquina implementada utilizando un New Waveform, pegue su
Waveform aquí:
Laboratorio 14 LAB 14
Máquinas de estado en VHDL Página 9 / 9
OBSERVACIONES
La correcta definición de los estados, las transiciones y las salidas de una máquina de estado en
VHDL es esencial para asegurar el comportamiento deseado del sistema. Una mala especificación
puede conducir a errores difíciles de detectar y corregir.
Las máquinas de estado en VHDL pueden implementarse utilizando diferentes estilos de
codificación, como la codificación binaria, la codificación de Gray o la codificación One-Hot. Cada
estilo tiene sus propias ventajas y desventajas en términos de tamaño, complejidad y rendimiento.
La simulación y verificación de una máquina de estado en VHDL son etapas críticas en el proceso de
diseño. Se deben realizar pruebas exhaustivas para garantizar que la máquina de estado se
comporte correctamente en todas las condiciones y escenarios posibles.
El modularidad es un aspecto importante al diseñar máquinas de estado en VHDL. Dividir el sistema
en submáquinas más pequeñas y combinarlas adecuadamente puede mejorar la legibilidad, la
reusabilidad y la mantenibilidad del código.
Es esencial comprender las directivas de síntesis y las restricciones de temporización al
implementar una máquina de estado en VHDL en un dispositivo FPGA o ASIC. Estas directivas y
restricciones afectarán el rendimiento y la eficiencia del circuito resultante.
CONCLUCIONES
Las máquinas de estado son una herramienta fundamental en el diseño de circuitos digitales y
sistemas embebidos. Permiten describir y controlar el comportamiento secuencial de un sistema,
facilitando la implementación de funcionalidades complejas.
La descripción de una máquina de estado en VHDL es relativamente sencilla y ofrece un alto nivel
de abstracción. Esto permite diseñar y simular sistemas con mayor facilidad y eficiencia.
VHDL (Very High-Speed Integrated Circuit Hardware Description Language) es un lenguaje de
descripción de hardware ampliamente utilizado en la industria. Proporciona una sintaxis
estructurada y precisa para modelar circuitos digitales, incluyendo máquinas de estado.
Las máquinas de estado en VHDL se implementan mediante procesos concurrentes o secuenciales.
Los procesos concurrentes permiten describir el comportamiento de la máquina de forma paralela,
mientras que los procesos secuenciales ofrecen un enfoque más estructurado y ordenado.
El uso de máquinas de estado en VHDL puede simplificar el diseño y la verificación de sistemas
complejos. Permite dividir el sistema en etapas discretas y controlar su comportamiento secuencial
de manera precisa y determinista.
REFERENCIAS
Sistemas digitales: principios y aplicaciones, Ronald J. Tocci, Neal S. Widmer
Wikilibros, Programació n en VHDL/Arquitectura, recuperado de ,
https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_VHDL/Arquitectura
Video: Active-HDL 2.2 Design Entry: FSM Editor recuperado de:
https://www.youtube.com/watch?v=HCMAjbp6f9I