Você está na página 1de 9

1

UNIVERSIDADE DE PERNAMBUCO
ESCOLA POLITCNICA DE PERNAMBUCO
PROJETO MODELO PARA O CURSO DE AUTOMAO DE
PROJETOS DE CIRCUITOS INTEGRADOS












PROJETO DE UMA MQUINA DE
VENDER REFRIGERANTES













Elaborado por:

J ENER TOSCANO LINS E SILVA





Recife, novembro de 2008.



2
FUNCIONALIDADE DO PROJETO



3
Foi implementado um circuito controlador de uma mquina de vender refrigerante
em VHDL, utilizando a plataforma MAXPLUS II da Altera. A mquina trabalha com
quatro tipos de refrigerante de mesmo preo (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 solicitao do tipo de refrigerante, o qual deve ser previamente
escolhido atravs da entrada de seu cdigo. Embora as entradas de estoque dos
refrigerantes sejam fornecidas por um circuito que no depende da mquina, esta ser
considerada entrada acessvel pelo usurio.

A mquina esta preparada para devoluo do troco, caso o valor da(s) moeda(s)
exceda o valor de R$ 0,80 (preo do refrigerante), ou caso valor seja inferior ao seu
preo. Para isso foram implementados os sinais de sada: libera troco, troco e libera
refrigerante.

O projeto baseado na hierarquia foi dividido em mdulos de modo a facilitar a
implementao. O diagrama em blocos a seguir mostra estes aspectos:


A ULA possui quatro operaes que variam como o valor colocado na setula:

[00] A sada 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).

4
No bloco de controle foram incrementados sinais de reset especficos para o registrador da
ULA e para o registrador do troco para que a mesma tivesse um funcionamento contnuo.

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: Sadas
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 mquina de vender refrigerante funciona de seguinte maneira:

Resetada a mquina o controle gera os sinais de reset para os registradores. No prximo
pulso de clock o controle ir para o estado E0, enquanto o sinal indica moedas estiver alto os
valores de entrada das moedas sero somados, ficando o diagrama de estados nos estados E0 e E1.
Quando o sinal pede refrigerante for acionado, a mquina ir verificar se existe estoque do
refrigerante solicitado, caso no haja, a mquina 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 mquina ir para o estado E2, onde verificar se o valor depositado das
moedas menor que o preo do refrigerante. Se o valor depositado for menor que o valor do
refrigerante, a mquina vai para o estado Ei e no prximo pulso de clock para o estado E0
liberando o valor depositado. Caso contrrio, se o valor do deposito for maior ou igual que o preo
do refrigerante, a mquina ir para o estado E3, onde far a comparao, caso seja igual ir para o
estado Ei, liberando o refrigerante e indo para o estado E0 no prximo pulso de clock. Caso o
valor depositado seja maior do que o valor do refrigerante a mquina ir para o estado Ei,
liberando o refrigerante e o troco no prximo pulso de clock, ou seja, estado E0.


O projeto foi compilado para implementao em um FPGA da famlia FLEX 10K da
Altera. Para facilitar a montagem e verificao padronizou-se seus pinos conforme tabela a seguir:
5




A representao esquemtica do FPGA a seguinte:

OBS.: ANEXAR AQUI O SUMRO DO DISPOSITIVO E PINAGEM ALTERADAS DO
PLD, CAPTURADOS NO ARQUIVO DE EXTENSO .rpt DA MQUINA DE
REFRIGERANTES.
HOLE (PLACA) PINO (FPGA) SINAL DESCRIO
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 cdigo 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
6

Listagem da entidade maqref.vhd implementando a mquina de vender refrigerantes.

- - Pr oj et o Mqui na de Ref r i ger ant es
- - maqr ef . vhd - I mpl ement ao da Mqui na de Ref r i ger ant es
- - Ver so 0. 0 - 03/ 08/ 2000
- - Aut or : J ener Toscano

ent i t y maqr ef i s
por t (
pr ecor ef : i n bi t _vect or ( 3 downt o 0) ; - - pr eco do r ef r i ger ant e
val or moeda : i n bi t _vect or ( 3 downt o 0) ; - - val or da moeda
cl ock : i n bi t ; - - cl ock ext er no
r eset i n : i n bi t ; - - r eset de ent r ada
i ndi camoeda : i n bi t ; - - i ndi ca ent r ada de moeda
peder ef : i n bi t ; - - pede r ef r i ger ant e
codr ef : i n bi t _vect or ( 1 downt o 0) ; - - codi go r ef r i ger ant e
est r ef 1 : i n bi t ; - - est oque do r ef r i ger ant e 1
est r ef 2 : i n bi t ; - - est oque do r ef r i ger ant e 2
est r ef 3 : i n bi t ; - - est oque do r ef r i ger ant e 3
est r ef 4 : i n bi t ; - - est oque do r ef r i ger ant e 4
l i ber ar ef : out bi t ; - - l i ber a r ef r i ger ant e
devol vemoedas : out bi t ; - - devol ver di nhei r o
t r oco : out bi t _vect or ( 3 downt o 0) - - val or do t r oco

- - si nai s ut i l i zados apenas par a vi sual i zacao na si mul acao
- - ul a_r eg_t est e : out bi t _vect or ( 3 downt o 0) ;
- - l oad_r eg_ul a_t est e : out bi t ;
- - ul a_out _t est e : out bi t _vect or ( 3 downt o 0) ;
- - l oad_r eg_t r oco_t est e: out bi t ;
- - st at us_t est e : out bi t ;
- - ul a_i n_t est e : out bi t _vect or ( 3 downt o 0) ;
- - r eset _t est e : out bi t
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
) ;
end maqr ef ;


ar chi t ect ur e ar c_maqr ef of maqr ef i s

component r egpr e - - Regi st r ador do pr eco do r ef r i ger ant e
por t (
pr eco : i n bi t _vect or ( 3 downt o 0) ;
cl k : i n bi t ;
pr ecoout : out bi t _vect or ( 3 downt o 0)
) ;
end component ;

component r egul a - - Regi st r ador da ULA
por t (
r egul ai n : i n bi t _vect or ( 3 downt o 0) ;
l oadr egul a : i n bi t ;
cl k : i n bi t ;
r eset r egul a : i n bi t ;
r egul aout : out bi t _vect or ( 3 downt o 0)
) ;
end component ;

component r egt r oco - - Regi st r ador do t r oco
por t (
r egt r ocoi n : i n bi t _vect or ( 3 downt o 0) ;
l oadr egt r oco : i n bi t ;
cl k : i n bi t ;
r eset r egt r oco : i n bi t ;
r egt r ocoout : out bi t _vect or ( 3 downt o 0)
7
) ;
end component ;

component muxul a - - Mul t i pl exador da ent r ada da ULA
por t (
muxul apr eco : i n bi t _vect or ( 3 downt o 0) ;
moeda : i n bi t _vect or ( 3 downt o 0) ;
set moeda : i n bi t ;
muxul aout : out bi t _vect or ( 3 downt o 0)
) ;
end component ;

component muxr ef - - Mul t i pl exador do est oque de r ef r i ger ant e
por t (
r ef 1 : i n bi t ;
r ef 2 : i n bi t ;
r ef 3 : i n bi t ;
r ef 4 : i n bi t ;
codr ef : i n bi t _vect or ( 1 downt o 0) ;
muxr ef out : out bi t
) ;
end component ;

component ul a - - Uni dade Logi ca Ar i t met i ca
por t (
ul ai nmux : i n bi t _vect or ( 3 downt o 0) ;
ul ai nr eg : i n bi t _vect or ( 3 downt o 0) ;
set ul a : i n bi t _vect or ( 1 downt o 0) ;
ul aout : out bi t _vect or ( 3 downt o 0) ;
st at us : out bi t
) ;
end component ;
component cont r ol e - - cont r ol e da maqui na
por t (
cl k : i n bi t ;
r eset : i n bi t ;
em : i n bi t ;
pd : i n bi t ;
st : i n bi t ;
er : i n bi t ;
sm : out bi t ;
l r : out bi t ;
l t : out bi t ;
ct : out bi t _vect or ( 1 downt o 0) ;
r l : out bi t ;
dd : out bi t ;
r u : out bi t ;
r t : out bi t
) ;
end component ;

- - decl ar acao dos si nai s ut i l i zados par a a mont agemda maqui na

si gnal ul a_r eg : bi t _vect or ( 3 downt o 0) ;
si gnal ul a_out : bi t _vect or ( 3 downt o 0) ;
si gnal l oad_r eg_ul a : bi t ;
si gnal l oad_r eg_t r oco : bi t ;
si gnal r eg_pr e_out : bi t _vect or ( 3 downt o 0) ;
si gnal set _mux_moeda : bi t ;
si gnal ul a_i n : bi t _vect or ( 3 downt o 0) ;
si gnal est oque_r ef : bi t ;
si gnal cont r ol e_ul a : bi t _vect or ( 1 downt o 0) ;
si gnal st at us : bi t ;
si gnal r eset _ul a : bi t ;
si gnal r eset _t r oco : bi t ;

8
begi n
- - pr eco, cl k, pr ecoout
b1_r egpr e : r egpr e por t map ( pr ecor ef , cl ock, r eg_pr e_out ) ;

- - r egul ai n, l oadr egul a, cl k, r eset r egul a, r egul aout
b2_r egul a : r egul a por t map ( ul a_out , l oad_r eg_ul a, cl ock,
r eset _ul a, ul a_r eg ) ;

- - r egt r ocoi n, l oadr egt r oco, cl k, r eset r egt r oco, r egt r ocoout
b3_r egt r oco : r egt r oco por t map ( ul a_out , l oad_r eg_t r oco, cl ock,
r eset _t r oco, t r oco) ;

- - muxul apr eco, moeda, set moeda, muxul aout
b4_muxul a : muxul a por t map ( r eg_pr e_out , val or moeda, set _mux_moeda,
ul a_i n) ;

- - r ef 1, r ef 2, r ef 3, r ef 4, codr ef , muxr ef out
b5_muxr ef : muxr ef por t map ( est r ef 1, est r ef 2, est r ef 3, est r ef 4,
codr ef , est oque_r ef ) ;

- - ul ai nmux, ul ai nr eg, set ul a, ul aout , st at us
b6_ul a : ul a por t map ( ul a_i n, ul a_r eg, cont r ol e_ul a,
ul a_out , st at us) ;

- - cl k, r eset , em, pd, st , er , sm, l r , l t , ct , r l , dd, r u, r t
b7_cont r ol e : cont r ol e por t map ( cl ock, r eset i n, i ndi camoeda, peder ef ,
st at us, est oque_r ef , set _mux_moeda, l oad_r eg_ul a, l oad_r eg_t r oco, cont r ol e_ul a,
l i ber ar ef , devol vemoedas, r eset _ul a, r eset _t r oco) ;

- - si nai s ut i l i zados apenas par a vi sual i zacao na si mul acao
- - ul a_r eg_t est e <= ul a_r eg;
- - l oad_r eg_ul a_t est e <= l oad_r eg_ul a;
- - ul a_out _t est e <= ul a_out ;
- - l oad_r eg_t r oco_t est e <= l oad_r eg_t r oco;
- - st at us_t est e <= st at us;
- - ul a_i n_t est e <= ul a_i n;
- - r eset _t est e <= r eset _ul a;
end ar c_maqr ef ;


Simulao da entidade maqref.
9



CONCLUSO




A experincia do uso da linguagem VHDL na prototipao de circuitos digitais
utilizando PLDs ficou bastante vivenciada, tendo como meta alcanada, o
funcionamento da mquina de vender refrigerantes.


Assim, o curso de Prototipao Rpida de Circuitos Integrados Digitais mostrou
diante a evoluo da microeletrnica as modernas tcnicas utilizadas nos projetos de
Sistemas Digitais de Engenharia, tendo o computador como uma ferramenta de auxlio
na programao de PLDs (Ferramentas de CAD), junto a linguagem de programao de
hardware VHDL, de maneira a acelerar a execuo dos projetos desses dispositivos.

Você também pode gostar