Tutorial Vhdl 1

Páginas: 8 (1903 palabras) Publicado: 15 de julio de 2015
Práctica I
Modelado y simulación de
una máquina expendedora
de refrescos

Departamento de Ingeniería Electrónica de Sistemas Informáticos y Automática

2

1.1. Objetivos.
En esta práctica vamos a modelar el comportamiento de un sistema descrito desde el
nivel de transferencia de registros, a través de su diagrama ASM.

1.2. Ejemplo.
En primer lugar vamos a realizar un ejemplo del procesocompleto. Este ejemplo será el
sistema de control de una máquina expendedora de refrescos. Dicha áquina contará con las
siguientes características:
• Únicamente dispone de un tipo de refresco, con un precio total de 32 unidades.
• Puede admitir monedas por un valor mínimo de 1 unidad, a través del puerto moneda.
• Las monedas son detectadas cuando se produce un cambio en una señal, denominadamoneda_ins.
• Tiene la capacidad de devolver cambio, con un valor máximo de almacenamiento de
256 unidades.
• Dispone de un señal, denominada botón, para solicitar la expulsión del refresco y la
devolución del cambio.
• Solamente se expulsará el refresco y devolverá el cambio (cuando la señal refresco
tome el valor ‘1’, y se devolverá la cantidad almacenada en vuelta), cuando se halla
introducido unacantidad superior o igual al precio del refresco.
• Se tratará de un sistema síncrono, por lo que existirá una señal de reloj llamada clk.
El diagrama ASM corresopndiente a dicho sistema se muestra en la figura 1.1. En ella
podemos apreciar tres bloques ASM (que se ejecutarán en ciclos de reloj diferentes) con las
tres operaciones básicas que debe realizar el sistema:
• Almacenar la cantidad
• Obtener elvalor de la vuelta
• En función de dicha vuelta, expulsar el refresco.
Para incluir este diagrama en el software de XILINX, hay que seguir los pasos comentados en las prácticas iniciales, es decir
• Crear un nuevo proyecto
• Añadir una nueva fuente, la cual tendrá los siguientes puertos:
• Puerto de entrada clk
• Puerto de entrada botón
• Puerto de entrada moneda_ins
• Bus de entrada moneda, conun tamaño de 8 bits (correspondiente al máximo de
256 unidades)
• Puerto de salida refresco

Departamento de Ingeniería Electrónica de Sistemas Informáticos y Automática

3

cantidad = cantidad + moneda

Selección
de refresco

no

si
A = cantidad - precio
A >= 0
si

no

expulsar refresco
devolver A
cantidad = 0

Figura 1.1.- Diagrama ASM correspondiente a la máquina expendedora de refrescos.

•Bus de salida vuelta, con un tamaño de 8 bits (correspondiente al máximo de 256
unidades).
• Crear un testbench para poder realizar las simulaciones de comprobación.
• Sintetizar el sistema.
• Implementar el sistema.
El código VHDL del sistema se muestra a continuación (en el que se han eliminado los
comentarios que introduce el software por defecto; únicamente se han dejado los comentariosaclaratorios del código, en rojo):
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity refresco is
Port ( clk, boton, moneda_ins : in STD_LOGIC;
moneda : in STD_LOGIC_VECTOR (7 downto 0);
refresco : out STD_LOGIC;
vuelta : out STD_LOGIC_VECTOR (7 downto 0));
end refresco;
architecture Behavioral of refresco is
type estado is (almacenamiento,seleccion, expulsion);
signal ep, pe: estado;
-- En esta parte declarativa se han definido los tres estados por los que va a pasar el sistema
-- (correspondiente a las tres operaciones antes mencionadas). Estos estados han sido denominados:
-- almacenamiento, selección y expulsión (salvo por los acentos)
-- De la mismo forma, también han sido declaradas las señales del estado presente (ep) ypróximo
-- estado (pe).
signal cantidad: std_logic_vector(7 downto 0):="00000000";
-- Ha sido necesario declarar un bus interno para almacenar las cantidades insertadas en la máquina,

Departamento de Ingeniería Electrónica de Sistemas Informáticos y Automática
-- Dicho bus ha sido denominado cantidad.
constant precio: std_logic_vector(7 downto 0):="00100000";
-- Por último, se ha incluido el precio...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • tutorial VHDL
  • Tutorial Vhdl
  • Tutorial VHDL
  • Contador ascendente y descendente en VHDL tutorial
  • Tutorial Lenguaje Vhdl ( Doc Que Encontre )
  • Mux 8 a 1 VHDL
  • clase de VHDL 1
  • Tutorial Exani 1 2015

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS