Laboratório de Eletrônica Digital
Por: JoaoPauloMSTS • 22/5/2017 • Ensaio • 4.234 Palavras (17 Páginas) • 239 Visualizações
Universidade Federal de Itajubá – UNIFEI
Nome: João Paulo Mendes dos Santos n°.: 34837
[pic 1]
Laboratório de Eletrônica Digital II
Atividade 3: Máquina de Refrigerante e Lanche
Engenharia de Controle e Automação
ELTD12 – Laboratório de Eletrônica Digital II – T02
Professor: Celso Henrique Ribeiro
09/2016
DESCRIÇÃO
O diagrama de estados a seguir representa uma máquina de vender refrigerantes e lanches. Admita que existam mecanismos prontos para receber moedas de R$ 1,00 e notas de R$ 2,00. Admita também que existam mecanismos prontos para liberar lanche e refrigerante.
Considere a seguinte tabela de variáveis e a representação do circuito apresentados:
[pic 2] |
|
[pic 3]
OBJETIVOS
1. Fazer a descrição em VHDL e simular.
2. Programar em FPGA e fazer o teste no laboratório (utilizar clock por chave).
OBS: Ao programar o circuito na FPGA, utilize a seguinte relação de periféricos da placa DE2:
Pino | Periférico | Pino | Periférico | |
M | SW17 | CLK | KEY3 | |
N | SW16 | RST | SW11 | |
C | SW15 | DM | LEDR17 | |
L | SW14 | LL | LEDR16 | |
R | SW13 | LR | LEDR15 |
CÓDIGO EM VHDL
Utilizando o template da máquina de estados de Moore como base, desenvolveu-se a descrição em VHDL do problema proposto:
library ieee;
use ieee.std_logic_1164.all;
entity Lab3 is
port
(
clk : in std_logic;
M : in bit; --Moeda R$1.00
N : in bit; --Nota R$ 2.00
C : in bit; --Cancela
L : in bit; --Lanche
R : in bit; --Refrigerante
reset: in bit;
DM : out bit; --Devolve moeda
LLA : out bit; --Libera Lanche
LR : out bit --Libera Refrigerante
);
end entity;
architecture Lab3_Arch of Lab3 is
type Maquina_de_Estados is (Espera, RS1, RS2, RS3, Dev1, Dev2, Dev3, DevR, LR0, LR1, LL);
signal state : Maquina_de_Estados;
begin
process (clk, reset)
begin
if reset = '1' then
state <= Espera;
elsif (rising_edge(clk)) then
case state is
when Espera=>
if M = '1' then
state <= RS1;
elsif N = '1' then
state <= RS2;
end if;
when RS1=>
if M = '1' then
...