Você está na página 1de 19

Projeto de Sistemas

Digitais
MÁQUINA DE VENDAS

Apresentado por:
Nicolly Neuberger; Renata Bergamaschi.
Objetivos
a serem alcançados
Objetivos:

Nossa meta nesse projeto consiste em desenvolver um sistema


digital síncrono, especificamente uma máquina de vendas. Essa
máquina tem a finalidade de identificar o recebimento de
moedas, acumular o valor de cada moeda inserida e comparar
esse valor total com o preço real do produto. Se o valor total for
igual ou superior ao valor do produto, a máquina deverá proceder
com a liberação do mesmo. É importante ressaltar que a máquina
não realiza o fornecimento de troco e oferece somente um único
tipo de produto.

Para esse projeto vamos utilizar:

Um detector de moedas, formado por: um Dip Switch de quatro


bits, um registrador e uma porta Or de quatro entradas;

Um bloco de controle: feito através de uma máquina de estados


com duas entradas e quatro saídas, responsável pela
administração do sistema, sendo suas entradas "C" e "MEN" e
suas saídas "ENR", "CLR", "ENM" e "D", exemplificadas
posteriormente;

Um bloco operativo: com a função de definir a entrada "MENOR"


(MEN) do sistema, formado por um registrador, um multiplexador,
um contador, um comparador e um Dip Switch, sendo todos de
quatro bits, além de uma porta Or de duas entradas e um Output
de um bit.
1ª Etapa
Objetivo: Projetar um sistema digital de uma máquina de
vendas capaz de gerenciar a venda de apenas um tipo de
mercadoria.

1ª Etapa: Nessa etapa devemos fazer uma análise e


entendimento do funcionamento do sistema requisitado e
identificar as entradas e saídas do componentes.

Entrada de Moedas

Saída da mercadoria
1ª Etapa
Entrada
de Moedas
O detector de moedas
possui um registrador de 4
Registrador
bits no qual é armazenado
Saída A
o valor da moeda inserida,
em centavos. A saída deste
registrador é entrada
para a máquina de vendas,
denominada "A".

A máquina possui uma entrada de 4


bits denominada "S", pela qual é
possível definir o preço unitário da
mercadoria. Definimos como R$
1,50, representado pelo código 1111.

Após a identificação das moedas cujo


valor deve ser igual ou maior que o
preço do item, a saída "D" é ativada
durante o ciclo de relógio, causando
a liberação do item.
O sistema não fornece troco.
2ª Etapa
2ª Etapa: Projeto do bloco operativo.
Nessa etapa fizemos as conexões necessárias entre os
componentes listados abaixo para formar o bloco operativo
do sistema, onde ele definirá a entrada "MEN" do bloco de
controle.

O bloco operativo é composto por:


1 Registrador de 4 bits para armazenar o valor depositado;
1 Circuito somador de 4 bits;
1 Circuito comparador de 4 bits;
1 Multiplexador para zerar o somador;
1 Porta Or de duas entradas;
1 Output de 1 bit.

Bloco
Bloco Operativo
Operativo

Comparador

Registrador

Somador

Multiplexador
3ª Etapa
3ª Etapa: Nessa Etapa identificamos quais deveriam ser as
entradas e saídas do bloco de controle.

Entradas do bloco de controle.

Entrada "Menor" (MEN) : caso o


valor original do produto for
MEN menor que a quantidade de
C moedas inseridas, o sistema libera
o produto.
Entrada "C" : detector de moedas.

Saídas do bloco de controle.

Saída "Enable do registrador" (ENR) :


ENR Habilita o registrador.
CLR Saída "Clear do registrador" (CLR) :
Limpa os dados do registrador.
ENM Saída "Enable do Multiplexador"
D (ENM) : Habilita o multiplexador.
Saída "D" : Liberação do produto.
4ª Etapa
4ª Etapa: Nessa etapa, projetamos o bloco de controle
responsável por definir o comportamento do sistema.
Utilizamos uma máquina de estados no FSM (Finite State
Machine), e posteriormente implementamos essa máquina
de estados no simulador DCS (Deeds Control Simulator).

Projeto do bloco de controle.

Estado 0- Ligado.

Estado 1- Espera Moeda.

Condicional 1.

Estado 2- Conta Moeda.

Condicional 2.

Estado 3- Libera produto.

Implementação da
máquina de
estados feita no
FSM (Deeds) para o
DCS (Deeds).
Funcionamento do detector de moedas e
mudança de estado
Demonstramos aqui o funcionamento do detector de moedas e
a transição de estado do sistema, sendo possível observar que
a máquina de estados percorre três etapas antes de liberar o
produto.

Moedas
inseridas

Estado Estado
Atual Atual

Estado Estado
Atual Atual

Na imagem 1 podemos observar que a saída "C" é 0 pois


não foi inserida nenhuma moeda e o estado atual é 0
(sistema ligado).
Na imagem 2 foi colocado o exato valor do item e foi
dado um pulso de clock, a saída "C" muda para 1, pois
foi detectada a inserção de moeda e o estado atual foi
para 1 (espera moeda).
Na imagem 3 foi dado mais um pulso de clock e o estado
atual foi para 2 (conta moeda).
Na imagem 4 foi dado mais um pulso de clock e o estado
atual é o 3 (libera produto).
5ª Etapa
Na etapa atual, estabeleceu-se a ligação entre o bloco operativo
e o bloco de controle, incluindo portas Not adicionais para
garantir o correto funcionamento do sistema. Além disso, foram
incorporados LEDs com o propósito de visualizar as saídas dos
componentes e verificar se estavam operando de maneira
adequada

Bloco Operativo.

Bloco de controle.
6ª Etapa
Durante esta etapa, conduziremos uma simulação no Deeds
com o objetivo de visualizar o funcionamento completo da
máquina de vendas e verificar se ela opera conforme o
esperado.

Aqui inserimos R$ 0,80 no detector de moedas (entrada "A") ,


representado pelo código 1000.

R$ 0,80

Valor do produto

Após um pulso de clock esse dado é enviado para o bloco de


controle que muda seu estado para 1 (espera moeda).

Estado
Atual
Após receber um novo pulso de clock, o dado é direcionado
através do multiplexador para o somador. O bloco de controle
muda seu estado para 2 (conta moeda).

Estado
Atual

Somador
Multiplexador

Em seguida de outro pulso de clock o dado é armazenado no


registrador, que aguarda a chegada do próximo dado.
Agora colocaremos mais R$ 0,70 na entrada "A", representado
pelo código 0111 e adicionamos mais um pulso de clock. O
somador irá somar o valor anterior (R$ 0,80), salvo no registrador,
com o valor atual (R$ 0,70). Na saída do somador já temos o valor
de R$ 1,50.

R$ 0,70

R$ 0,80

R$ 1,50

R$ 0,70

Com mais um pulso de clock o comparador irá comparar o valor


da saída do somador com a entrada "S", que é o valor original do
produto. Caso o valor inserido de moedas seja igual ou maior que
o valor original do produto o led irá se acender indicando a saída
da mercadoria. O bloco de controle muda seu estado para 3 (libera
produto).

Estado
Atual
Com mais um pulso de clock o multiplexador zera o somador e o
clear é acionado pelo bloco de controle, limpando o registrador, o
sistema volta para o estado inicial 0.

Estado
Atual
Implementação no FPGA
Na etapa final, realizamos a implementação do projeto no FPGA
(Field-Programmable Gate Array), permitindo assim observar o
funcionamento da máquina de vendas que foi desenvolvida. Ao
programar o FPGA com a configuração do projeto, é possível
verificar e avaliar o desempenho da máquina de vendas em
tempo real. Essa implementação no FPGA proporciona uma
demonstração concreta do funcionamento do sistema,
permitindo validar e aprimorar a solução antes de qualquer
possível produção em escala.

Foram atribuídas as seguintes configurações aos elementos do


circuito no FPGA: os quatro primeiros switches foram definidos
como a entrada "S", os próximos quatro switches juntamente
com o switche 8 foi designado para o controle do detector de
moedas (enable) e o 9 para o clear do sistema. O push button
Key0 foi configurado como o clock. O LED 0 foi selecionado como
a saída "D" e o primeiro LED de sete segmentos indica o estado
atual da máquina de estados.

Clock
Nesta etapa, o sinal de clear está desativado e o sinal de enable
está ativado. O valor "S" foi definido como R$1,50 (representado
por 1111). O primeiro pulso de clock já ocorreu, colocando o sistema
no estado 1, aguardando a inserção da moeda e aguardando o
próximo ciclo de clock para avançar.

Estado
Atual
A partir desta etapa do processo, os sinais "clear" e "enable"
permanecem inalterados, mantendo seu estado atual. Em seguida, é
inserida a primeira moeda no sistema, com um valor de R$0,70
(representada por 0111). Em seguida, o clock é acionado para dar início
à operação de soma e comparar o valor obtido, ou seja o estado dois do
bloco de controle. Esse processo permite que o sistema processe e
avalie a quantia total acumulada até o momento, com base nas
moedas inseridas.

Estado
Atual
Assim a máquina de estados não conseguiu igualar ou ultrapassar o
valor de "S". Consequentemente, ela foi para o estado dois, indicando
que mais moedas são necessárias para alcançar o objetivo. Durante
essa etapa, foi inserida uma moeda no valor de R$0,80 (representada
por 1000). Em seguida, o clock foi acionado novamente para somar o
valor da nova moeda ao montante acumulado. Como resultado, o valor
total atingiu o patamar de R$1,50.

Estado
Atual
Atingindo o somatório de R$1,50, todo o processo de acumulação de valores
e contagem atinge seu ponto crucial, indicando que o montante necessário
foi alcançado, acionando a saida "D" representada pelo LED. No próximo
pulso de clock, a máquina de estado efetua uma transição para o estado 3,
desencadeando a liberação do produto desejado e reiniciando a contagem
da máquina.

Estado
Atual

A contagem reiniciada prepara a máquina para receber novos valores


e recomeçar o processo de acumulação, oferecendo aos usuários a
oportunidade de realizar outras transações. Assim, a máquina de
estado demonstra sua capacidade de controlar e gerenciar o fluxo das
operações, garantindo um funcionamento preciso e confiável.
Problemas enfrentados
Enfrentamos alguns contratempos no início do processo, a saída
"D" do projeto não era acionada quando a soma excedia R$1,50. No
entanto, esse problema foi solucionado ao estabelecer uma
conexão entre o Cout do somador e uma das entradas da porta
lógica OR responsável pelo controle da saída no bloco operativo.

Inicialmente, foi implementada uma entrada de reset a mais na


máquina de estados, a qual apresentava problemas durante o
funcionamento do sistema. Posteriormente, essa entrada de reset
foi substituída por uma máquina de estados simplificada, com
apenas duas entradas: "MEN" e "C".

No FPGA, foram encontrados problemas apenas nas configurações


dos switches, os quais foram prontamente solucionados ao ser feita
a mudança das mesmas.

Conclusão
Através das simulações realizadas, fomos capazes de observar que o
objetivo inicial do projeto foi alcançado com êxito. A máquina de
estados percorre todas as etapas conforme projetado, o bloco
operativo efetua a soma de todas as moedas, realiza a comparação
com o valor do produto e envia as informações corretas para o bloco
de controle, resultando na liberação adequada do produto final.
Além disso, realizamos a implementação do projeto no FPGA, o que
nos permitiu observar o funcionamento do sistema e avaliar como
ele se comporta em tempo real.

Você também pode gostar