PROJETO DE UMA MÁQUINA DE VENDER REFRIGERANTES



Documentos relacionados
AULA 5 Aplicação com divisor de freqüência com o CI Livro Texto pág.197 a 200.

Revisão: Projeto de Processadores em VHDL

IMPLEMENTAÇÕES POR EQUAÇÃO DE ESTADOS E DE SAÍDA DOS MODELOS DE MEALY E DE MOORE 1 BIT POR ESTADO.

Eletrônica Digital para Instrumentação. Herman Lima Jr.

EPUSP PCS 3335/3635 Laboratório Digital. Circuito em VHDL

Circuitos Seqüenciais

12/11/13. Obje%vos do laboratório. SST20707 Síntese de Sistemas de Telecomunicações. Síntese de máquinas de estado (FSM) Finite State Machine (FSM)

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP. 18/04/2016 Prof. Alexandre - ELP1DLP1 / DEE

VHDL - VHSIC Hardware Description Language. Exemplo prático. Raiz Quadrada

Multiplicador Binário com Sinal

Exercícios de Fixação

low): Descreve o que o sistema deve fazer utilizando expressões lógicas.

EPUSP PCS 2355 Laboratório Digital. Contadores em VHDL

Circuitos Combinacionais Básicos

Relatório Circuitos Lógicos. Calculadora 4 bits

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP. 10/03/2017 Prof. Alexandre - ELP1DLP1 / DEE

Registradores de Deslocamentos.

Projeto com Dispositivos Programáveis

Livro texto: VHDL- Descrição e Síntese de Circuitos Digitais Roberto D Amore Editora LTC

Projeto de Somador com e sem Sinal. Qualificadores

Circuitos Seqüenciais

Exercícios Referentes à Prova P1

Circuito Decodificador BCD para Display de Sete Segmentos

Introdução. Display de sete segmentos

Introdução à Computação

Introdução a Sistemas Digitais

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

Descreva em VHDL, simule no simulador logico e sintetize usando uma ferramenta de CAD para FPGA :

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

Projeto com Linguagens de Descrição de Hardware

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

Introdução a Sistemas Digitais

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

Descrição por fluxo de dados (Data-Flow): Descreve o que o sistema deve fazer utilizando expressões lógicas.

ESPECIFICAÇÃO DO PROJETO (Segunda Unidade)

Profa. Luiza Maria Romeiro Codá 2

Aula 2 Semântica de VHDL

Laboratório de Eletrônica Digital

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase

Universidade Federal de Pernambuco Sistema Digitais Exercícios. 1. Deduzir as equações de próximo estado dos fip-flops tipo RS, T, D e JK.

CRONÔMETRO DIGITAL PROJETO

Exercícios de Laboratório 3

Funções de Lógica Combinacional

Suporte de funcionamento e interacção com o teclado

Microprocessadores. Introdução ao Prof. Henrique

Registradores. Circuitos Lógicos. DCC-IM/UFRJ Prof. Gabriel P. Silva

EPUSP PCS 2355 Laboratório Digital. Contadores em VHDL

Fundamentos de Arquitetura e Organização de Computadores

UM PROCESSADOR SIMPLES

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

Módulos Combinatórios

Circuitos Digitais. Representação Numérica. Analógica

PSI-3451 Projeto de CI Lógicos Integrados. Aula 4

Organização e Arquitetura de Computadores II

ISE com VHDL estrutural

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

Aula 14: Lógica e circuitos digitais

Lógica Reconfigurável

Circuito de Recepção Serial Assíncrona

EPUSP PCS 3335 Laboratório Digital A. Trena Digital

LABORG. Parte 5 Projeto de um circuito digital de média complexidade Parte 2. Fernando Gehm Moraes Matheus Trevisan

ESPECIFICAÇÃO DO PROJETO (Segunda Unidade)

Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de Sistemas Eletrônicos - PSI. PSI Projeto de Sistemas Integrados

EPUSP PCS 3635 Laboratório Digital I. Trena Digital

FPGA & VHDL. Tutorial

Sistemas Digitais I LESI :: 2º ano. Introdução

Calculadora Simples em VHDL

Tópicos Especiais 2 Capítulo 3 Introdução ao VHDL, sintaxe básica, tipo de dados e atribuições

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

Introdução. Software Básico Aula 3. Prof. Dr. Rogério Vargas.

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

Laboratório sobre Implementação de Sistemas Digitais com VHDL Multiplicação por somas sucessivas

Comunicação Serial Assíncrona

Laboratório sobre Implementação de Sistemas Digitais com HDLs Ferramentas de Captura e Validação

Sistemas Digitais. Aula 11

LABORATÓRIO DE ARQUITETURA DE COMPUTADORES PREPARAÇÃO 02: DISPLAY DE 7 SEGMENTOS MICROCONTROLADO

Oganização e Arquitetura de Computadores

UNIVERSIDADE FEDERAL DO CEARÁ DEPARTAMENTO DE ENGENHARIA EM TELEINFORMÁTICA DISCIPLINA: PROJETO LÓGICO DIGITAL PROFESSOR: ALEXANDRE COELHO

Aula Expositiva 03. DCC 001 Programação de Computadores 2 o Semestre de 2011 Prof. Osvaldo Carvalho DCC

MANUAL DO SISTEMA TRT-5 PRESTADOR MÉDICO

Capítulo 6 Aritmética Digital: Operações e Circuitos

MINISTÉRIO DA EDUCAÇÃO CEFET/SC - Unidade de São José. Curso Técnico em Telecomunicações REGISTRADORES. Marcos Moecke. São José - SC,

3 Utilizando o CircuitMaker, simule circuito abaixo e preencha sua tabela. Analise que circuito é esse.

Projeto de Circuito Combinacional

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

SISTEMAS DIGITAIS (SD)

Lógica Reconfigurável

EPUSP PCS 2011/2305/2355 Laboratório Digital SOMADORES DECIMAIS

Parte # 2 - Circuitos Combinatórios

Projeto Sistemas Digitais

Tipos enumerados definem uma lista de valores, e são especialmente úteis na

Projetando um Computador

EPUSP PCS 3335 Laboratório Digital A. Introdução ao VHDL

TECNOLOGIA EM MECATRÔNICA INDUSTRIAL CONTROLADORES LÓGICOS PROGRAMÁVEIS

INTEGRAÇÃO JAVA COM ARDUINO

ELETRÔNICA DIGITAL I

Exercícios Referentes à Prova P2

Sistemas Digitais (SD) Lógica Programável

Transcrição:

UNIVERSIDADE DE PERNAMBUCO ESCOLA POLITÉCNICA DE PERNAMBUCO PROJETO MODELO PARA O CURSO DE AUTOMAÇÃO DE PROJETOS DE CIRCUITOS INTEGRADOS PROJETO DE UMA MÁQUINA DE VENDER REFRIGERANTES Elaborado por: JENER TOSCANO LINS E SILVA Recife, novembro de 2008. 1

FUNCIONALIDADE DO PROJETO 2

Foi implementado um circuito controlador de uma máquina de vender refrigerante em VHDL, utilizando a plataforma MAXPLUS II da Altera. A máquina trabalha com quatro tipos de refrigerante de mesmo preço (R$ 0,80) no qual aceita moedas de R$ 0,10; R$ 0,50 e R$ 1,00. Um sinal de entrada indica a entrada de moedas, enquanto a outra entrada indica a solicitação do tipo de refrigerante, o qual deve ser previamente escolhido através da entrada de seu código. Embora as entradas de estoque dos refrigerantes sejam fornecidas por um circuito que não depende da máquina, esta será considerada entrada acessível pelo usuário. A máquina esta preparada para devolução do troco, caso o valor da(s) moeda(s) exceda o valor de R$ 0,80 (preço do refrigerante), ou caso valor seja inferior ao seu preço. Para isso foram implementados os sinais de saída: libera troco, troco e libera refrigerante. O projeto baseado na hierarquia foi dividido em módulos de modo a facilitar a implementação. O diagrama em blocos a seguir mostra estes aspectos: A ULA possui quatro operações que variam como o valor colocado na setula : [00] A saída corresponde ao valor do registrador REGULA; [01] Subtrai o valor de entrada da ULA do valor do registrador REGULA (ulaout = ulainreg ulainmux [10] Soma o valor do registrador REGULA ao valor de entrada da ULA (ulaout = ulainreg + ulainmux [11] Verifica se o valor do registrador REGULA é igual ao valor de entrada da ULA (se a igualdade acontecer, status = 1). 3

No bloco de controle foram incrementados sinais de reset específicos para o registrador da ULA e para o registrador do troco para que a mesma tivesse um funcionamento contínuo. O modulo da unidade de controle foi implementada usando o diagrama de estados, ilustrado a seguir: EM, PD, ST, ER / SM, LR, LT, CT, RL, DD, RU, RT Entradas: Saídas EM Indica moeda SM - Seta mux de moedas RL Libera refrigerante PD Pede refrigerante LR Load do reg. da ULA DD Devolve dinheiro ST Status LT Load do reg. do troco RU Reset do reg. da ULA ER Estoque do refrigerante CT Controle da ULA RT Reset do reg. do troco A máquina de vender refrigerante funciona de seguinte maneira: Resetada a máquina o controle gera os sinais de reset para os registradores. No próximo pulso de clock o controle irá para o estado E0, enquanto o sinal indica moedas estiver alto os valores de entrada das moedas serão somados, ficando o diagrama de estados nos estados E0 e E1. Quando o sinal pede refrigerante for acionado, a máquina irá verificar se existe estoque do refrigerante solicitado, caso não haja, a máquina irá para o estado Ei, enviando o sinal libera dinheiro. No pulso seguinte irá para o estado E0 devolvendo o valor depositado. Caso haja estoque de refrigerante a máquina irá para o estado E2, onde verificará se o valor depositado das moedas é menor que o preço do refrigerante. Se o valor depositado for menor que o valor do refrigerante, a máquina vai para o estado Ei e no próximo pulso de clock para o estado E0 liberando o valor depositado. Caso contrário, se o valor do deposito for maior ou igual que o preço do refrigerante, a máquina irá para o estado E3, onde fará a comparação, caso seja igual irá para o estado Ei, liberando o refrigerante e indo para o estado E0 no próximo pulso de clock. Caso o valor depositado seja maior do que o valor do refrigerante a máquina irá para o estado Ei, liberando o refrigerante e o troco no próximo pulso de clock, ou seja, estado E0. O projeto foi compilado para implementação em um FPGA da família FLEX 10K da Altera. Para facilitar a montagem e verificação padronizou-se seus pinos conforme tabela a seguir: 4

HOLE (PLACA) PINO (FPGA) SINAL DESCRIÇÃO 27 193 precoref0 valor 28 194 precoref1 do 30 196 precoref2 refrigerante 29 195 precoref3 18 183 valormoeda0 valor 17 182 valormoeda1 da 16 181 valormoeda2 moeda 15 175 valormoeda3 22 187 indicamoeda detecta moeda 21 186 pederef pede refrigerante 24 190 clock clock 23 188 resetin reset 25 191 codref0 código do 26 192 codref1 refrigerante 31 198 estref1 estoque 32 199 estref2 de 33 200 estref3 refrigerantes 34 201 estref4 35 202 troco0 36 203 troco1 troco 37 204 troco2 38 206 troco3 40 208 liberaref libera refrigerante 39 207 devolvemoedas libera troco A representação esquemática do FPGA é a seguinte: OBS.: ANEXAR AQUI O SUMÁRO DO DISPOSITIVO E PINAGEM ALTERADAS DO PLD, CAPTURADOS NO ARQUIVO DE EXTENSÃO.rpt DA MÁQUINA DE REFRIGERANTES. 5

Listagem da entidade maqref.vhd implementando a máquina de vender refrigerantes. -- Projeto Máquina de Refrigerantes -- maqref.vhd - Implementação da Máquina de Refrigerantes -- Versão 0.0-03/08/2000 -- Autor: Jener Toscano entity maqref is precoref : in bit_vector (3 downto 0 --preco do refrigerante valormoeda : in bit_vector (3 downto 0 --valor da moeda clock --clock externo resetin --reset de entrada indicamoeda --indica entrada de moeda pederef --pede refrigerante codref : in bit_vector (1 downto 0 --codigo refrigerante estref1 --estoque do refrigerante 1 estref2 --estoque do refrigerante 2 estref3 --estoque do refrigerante 3 estref4 --estoque do refrigerante 4 liberaref : out bit; --libera refrigerante devolvemoedas : out bit; --devolver dinheiro troco : out bit_vector (3 downto 0) --valor do troco -- sinais utilizados apenas para visualizacao na simulacao --ula_reg_teste : out bit_vector (3 downto 0 --load_reg_ula_teste : out bit; --ula_out_teste : out bit_vector (3 downto 0 --load_reg_troco_teste: out bit; --status_teste : out bit; --ula_in_teste : out bit_vector (3 downto 0 --reset_teste : out bit ------------------------------------------------------------- end maqref; architecture arc_maqref of maqref is component regpre -- Registrador do preco do refrigerante preco : in bit_vector (3 downto 0 clk precoout : out bit_vector (3 downto 0) component regula -- Registrador da ULA regulain : in bit_vector (3 downto 0 loadregula clk resetregula regulaout : out bit_vector (3 downto 0) component regtroco -- Registrador do troco regtrocoin : in bit_vector (3 downto 0 loadregtroco clk resetregtroco regtrocoout : out bit_vector (3 downto 0) 6

component muxula -- Multiplexador da entrada da ULA muxulapreco : in bit_vector (3 downto 0 moeda : in bit_vector (3 downto 0 setmoeda muxulaout : out bit_vector (3 downto 0) component muxref ref1 ref2 ref3 ref4 codref : in bit_vector (1 downto 0 muxrefout : out bit component ula ulainmux : in bit_vector (3 downto 0 ulainreg : in bit_vector (3 downto 0 setula : in bit_vector (1 downto 0 -- Multiplexador do estoque de refrigerante -- Unidade Logica Aritmetica ulaout : out bit_vector (3 downto 0 status : out bit component controle -- controle da maquina clk reset em pd st er sm : out bit; lr : out bit; lt : out bit; ct : out bit_vector (1 downto 0 rl : out bit; dd : out bit; ru : out bit; rt : out bit -- declaracao dos sinais utilizados para a montagem da maquina signal ula_reg : bit_vector (3 downto 0 signal ula_out : bit_vector (3 downto 0 signal load_reg_ula : bit; signal load_reg_troco : bit; signal reg_pre_out : bit_vector (3 downto 0 signal set_mux_moeda : bit; signal ula_in : bit_vector (3 downto 0 signal estoque_ref : bit; signal controle_ula : bit_vector (1 downto 0 signal status : bit; signal reset_ula : bit; signal reset_troco : bit; 7

begin --preco,clk,precoout b1_regpre : regpre port map (precoref, clock, reg_pre_out --regulain,loadregula,clk,resetregula,regulaout b2_regula : regula port map (ula_out, load_reg_ula, clock, reset_ula, ula_reg --regtrocoin,loadregtroco,clk,resetregtroco,regtrocoout b3_regtroco : regtroco port map (ula_out, load_reg_troco, clock, reset_troco, troco --muxulapreco,moeda,setmoeda,muxulaout b4_muxula : muxula port map (reg_pre_out, valormoeda, set_mux_moeda, ula_in --ref1,ref2,ref3,ref4,codref,muxrefout b5_muxref : muxref port map (estref1, estref2, estref3, estref4, codref, estoque_ref --ulainmux,ulainreg,setula,ulaout,status b6_ula : ula port map (ula_in, ula_reg, controle_ula, ula_out, status --clk,reset,em,pd,st,er,sm,lr,lt,ct,rl,dd,ru,rt b7_controle : controle port map (clock, resetin, indicamoeda, pederef, status, estoque_ref, set_mux_moeda, load_reg_ula, load_reg_troco, controle_ula, liberaref, devolvemoedas, reset_ula, reset_troco -- sinais utilizados apenas para visualizacao na simulacao --ula_reg_teste <= ula_reg; --load_reg_ula_teste <= load_reg_ula; --ula_out_teste <= ula_out; --load_reg_troco_teste <= load_reg_troco; --status_teste <= status; --ula_in_teste <= ula_in; --reset_teste <= reset_ula; end arc_maqref; Simulação da entidade maqref. 8

CONCLUSÃO A experiência do uso da linguagem VHDL na prototipação de circuitos digitais utilizando PLD s ficou bastante vivenciada, tendo como meta alcançada, o funcionamento da máquina de vender refrigerantes. Assim, o curso de Prototipação Rápida de Circuitos Integrados Digitais mostrou diante a evolução da microeletrônica as modernas técnicas utilizadas nos projetos de Sistemas Digitais de Engenharia, tendo o computador como uma ferramenta de auxílio na programação de PLDs (Ferramentas de CAD), junto a linguagem de programação de hardware VHDL, de maneira a acelerar a execução dos projetos desses dispositivos. 9