Está en la página 1de 10

Circuitos Electrónicos Integrados

LABORATORIO Nº 15

“Máquinas de estado en VHDL”

 Nelson Fabricio Canaza Pari


Alumnos :  Carlos Ortega Cavani
 Miguel Quispe Serrano
:
Grupo 3 Profesor:
Nota:
Carlos P. Quilla Paredes
Semestre : 3
2 0 2
Fecha de entrega : Hora: 11:00
6 6 3
Laboratorio 14 LAB 14
Máquinas de estado en VHDL Página 1 / 9

I. CAPACIDAD TERMINAL
 Programa eficazmente un FPGA en VHDL para crear funciones.

II. CAPACIDAD ESPECIFICA DE LA SESION


 Utilizar Manejar las líneas de reloj en sistemas con lógica programada.

III. CONTENIDOS A TRATAR


 Diseño de máquinas de estado con lenguaje descriptivo de hardware VHDL.
 Estructuras de Mealy y Moore.
IV. RESULTADOS
 Aplican sus conocimientos de matemática, ciencia y tecnología para solucionar problemas
de ingeniería aplicada en sistemas electrónicos industriales.
 Diseñan y optimizan sistemas y procesos para cumplir con las condiciones establecidas y
gestionando adecuadamente los recursos materiales y humanos.

V. MATERIAL Y EQUIPO
 Software de programación VHDL.
 PC

VI. FUNDAMENTO TEORICO

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.

Figura 1: Máquinas de estado Mealy (a) y Moore (b)

Las máquinas de estado se pueden clasificar en dos:

• 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

Figura 2: Máquina de Mealy

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.

Figura 3: Diagrama de estados y diagrama del circuito de una máquina de estados


Laboratorio 14 LAB 14
Máquinas de estado en VHDL Página 3 / 9

PARTE I: IMPLEMENTACION DE UNA MAQUINA DE ESTADOS

a) En un nuevo Workspace, agregue un State Diagram:

b) Agregue los puertos mostrados:

c) Complete el diseño siguiente, utilizando la barra de herramientas inferior:


Laboratorio 14 LAB 14
Máquinas de estado en VHDL Página 4 / 9

d) Compile el diseño.

PARTE II: GENERACION DEL CODIGO VHDL

a) Pulse el botón Generate HDL code:


Laboratorio 14 LAB 14
Máquinas de estado en VHDL Página 5 / 9

b) Copie y pegue su código VHDL aqui:

-------------------------------------------------------------------------------
--
-- 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;

architecture a_maquina_estado of e_maquina_estado is

-- BINARY ENCODED state machine: Sreg0


attribute ENUM_ENCODING: string;
type Sreg0_type is (
S1, S3, S4, S2
);
attribute ENUM_ENCODING of Sreg0_type: type is
"00 " & -- S1
"01 " & -- S3
"10 " & -- S4
"11" ; -- S2

signal Sreg0, NextState_Sreg0: Sreg0_type;

begin

-- FSM coverage pragmas


-- Aldec enum Machine_Sreg0 CURRENT=Sreg0
-- Aldec enum Machine_Sreg0 NEXT=NextState_Sreg0
Laboratorio 14 LAB 14
Máquinas de estado en VHDL Página 6 / 9

-- Aldec enum Machine_Sreg0 INITIAL_STATE=S1


-- Aldec enum Machine_Sreg0 STATES=S2,S3,S4
-- Aldec enum Machine_Sreg0 TRANS=S1->S1,S1->S2,S2->S2,S2->S3,S3->S3,S3->S4,S4->S1,S4->S4

-- 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

También podría gustarte