Exercício 1 Exercício 1

Transcrição

Exercício 1 Exercício 1
2/10/2008
2008 Sistemas Digitais III - Teoria
Exercício 1
Aula 8
Uma máquina de venda automática aceita moedas de 10 e 50 centavos, que devem ser inseridas
individualmente num único orifício. Para cada moeda inserida, o coletor envia ao processador um
pulso, chamado M10, para moedas de 10 centavos e M50, para moedas de 50 centavos. Desta
forma, o processador vai contabilizando o saldo de moedas inseridas. São vendidos dois produtos,
com preços de 60 centavos e 1 Real, respectivamente. Quando deseja um dos dois produtos, o
cliente pressiona o botão P60 ou o botão P100, dependendo do produto, que geram pulsos em
entradas distintas do processador. Pressionado o botão e havendo saldo em moedas, o processador
dispara o mecanismo de liberação do produto, através do sinal L60 ou L100, dependendo do caso.
Quando um dos botões é pressionado, o saldo que foi inserido em moedas tem o valor do produto
descontado. Quando um produto é entregue ao cliente, o processador recebe um sinal de entrega
(P60L ou P100L). A máquina não dá troco, nem devolve dinheiro. O processador deve registrar
quantos produtos de cada tipo foram vendidos. Desenhar uma rede de Petri que modele o
funcionamento do processador
2008 Sistemas Digitais III - Teoria
Exercício 1
Aula 8
Page 1
1
2/10/2008
2008 Sistemas Digitais III - Teoria
Aula 8
Exercício 2
Implementar a Rede de petri do sistema em VHDL
ENTITY _____________________ IS
PORT( _______________________________________: IN___________;
________________________________________: OUT _________);
END __________________;
ARCHITECTURE ___________________ OF _____________________ IS
SIGNAL ____________________________________________________________________
____________________________________________________________________________
BEGIN
PROCESS (clk,reset)
BEGIN
IF _______________ THEN _________________________________________________
ELSIF _____________________________________ THEN
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
END IF;
END PROCESS;
__________________________________________
END _______________________________________
2008 Sistemas Digitais III - Teoria
Aula 8
Exercício Extra 1
ENTITY Q1 IS
PORT(clk, reset, A, B: IN std_logic;
S: OUT std_logic);
END Q1;
ARCHITECTURE mágica OF Q1 IS
SIGNAL L1,L2 : std_logic;
SIGNAL C1, C2 : integer range 0 to 7;
BEGIN
PROCESS (clk,reset)
BEGIN
IF reset = '1' THEN L1<= '0'; L2<= '1'; C1 <= 2; C2 <= 1;
ELSIF clk'EVENT AND clk = '1' THEN
if (L2='1' AND C2>2 AND B='1') then L1 <= '1';
elsif (L1='1' AND A=’1’) then L1 <= '0'; end if;
If (L1='1' AND A='1') then L2 <= '1';
elsif (L2='1' AND B='1' AND C2>2) then L2 <= '0'; end if;
If (L1='1' AND A='1’) then C1 <= C1 + 3;
elsif C1>0 then C1 <= C1-1; end if;
If C1>0 then C2 <= C2+1;
elsif (C2 >2 AND B='1' AND L2='1’) then C2 <= C2-3; end if;
END IF;
END PROCESS;
S <= L1;
END mágica;
Page 2
2
2/10/2008
2008 Sistemas Digitais III - Teoria
Aula 8
Exercício Extra 2
Descrever a rede ao lado em VHDL
( supor R, T, X variáveis binárias)
2008 Sistemas Digitais III - Teoria
Aula 8
Exercício Extra 3
Descrever a rede ao lado em VHDL,
sabendo-se que o lugar e1 gera o
sinal Mod e o lugar e2 gera o sinal
Moe
Page 3
3