Você está na página 1de 6

UNIVERSIDADE FEDERAL DE MINAS GERAIS

ESCOLA DE ENGENHARIA
SISTEMAS DIGITAIS

LUCAS SILVA CHAVES


LUCAS GONÇALVES BISPO
GABRIEL GOMES MEIRELES

EXERCÍCIO PRÁTICO 1
DOCUMENTAÇÃO

BELO HORIZONTE
2017/2
CORREÇÃO DO PROJETO DA MÁQUINA DE REFRIGERANTES

Para solucionar o problema do Overflow, que ocorria no exemplo proposto pelo livro da
disciplina, teve-se como estratégia, utilizar a saída Cout do full-adder de 8 bits, visto que a
mesma indica o acontecimento do Overflow. Sendo assim, não foi necessário aumentar o
número de bits da máquina.
Portanto, o exemplo inicial, foi ajustado de forma a considerar o indicador de overflow
no processador, para que, mesmo ocorrendo o overflow, a máquina liberaria o refrigerante.
Para a execução do projeto, foram utilizados os métodos de execução de um Projeto
RTL, visto que as chances de erros no projeto são reduzidas.

Obs: O processador não realiza as operações referentes ao troco, portanto essa etapa não
foi considerada durante a execução do projeto.
Etapa 1: Construção da FSM de Alto Nível

Etapa 2: Projeto do Caminho de Dados:

Circuito resultante do Caminho de Dados


No caminho de dados, temos as entradas A2,A1,A0 que representam a codificação
que nos dá referência o valor da moeda inserida, sendo assim surge a necessidade de
pré-processar essas entradas por um MUX de 3x8, para que o valor real da moeda inserida
seja utilizado na soma.
Etapa 3: Ligação do Bloco de Controle com o Caminho de Dados

Etapa 4: Projeto da FSM do Bloco de Controle


Etapa 5: Construção da tabela verdade da FSM do bloco de Controle

A tabela resultante da FSM do bloco de controle, é:

S1 S0 C tot_gte_s O N1 N0 TOT_LD TOT_CLR LIB

0 0 X X X 0 1 0 1 0

0 1 0 0 0 0 1 0 0 0

0 1 0 0 1 0 1 0 0 0

0 1 0 1 0 1 1 0 0 0

0 1 0 1 1 1 1 0 0 0

0 1 1 x x 1 0 0 0 0

1 0 x x 0 0 1 0 0 0

1 0 x x 1 1 1 0 0 0

1 1 x x x 0 0 0 0 1

Obs:. X representa o valor “Don’t Care”, ou seja, a informação do valor em questão não é
relevante nesse estado.

Circuito resultante do bloco de controle


SIMULAÇÃO

Para realizar a simulação, foi utilizado o software Logisim. Para melhorar a


visualização e a organização do circuito, foram utilizados os componentes “Tunnel” do
Logisim, que fazem a conexão de dois pontos com o mesmo rótulo em locais diferentes no
circuito.
Durante os testes, o valor do refrigerante foi setado de forma fixa para 0xFA(250)
centavos, para que seja possível simular o overflow ao tentar comprar o refrigerante.
Primeiramente, foi desconectado o sinal indicador de Overflow, para simular o
problema, e foi detectado que ao colocar um valor superior a 2,55 o overflow ocorria e
zerava o valor total, impedindo a liberação do refrigerante. Para simular, foi necessário
apenas inserir 3 moedas de R$1,00.
Logo após, o sinal indicador de Overflow foi conectado novamente de forma a testar se
a solução proposta resolvia o problema e foi constatado que o problema foi resolvido de
forma eficiente sem muitos problemas. Sendo que foi realizado o mesmo teste das 3
moedas de R$1,00.
Além disso, a máquina foi testada em uma situação que não ocorre o overflow, para
garantir que após os ajustes a máquina continua funcionando corretamente, para isso foi
inserido 5 moedas de R$0,50 e a máquina funcionou como esperado.
Para os testes, no Logisim, foi utilizado um clock de 32Hz, visto que houveram
dificuldades para realizar os testes em um clock maior, pois não foi possível emitir o sinal de
entrada da moeda “C” em apenas um período do clock, quando este estava em frequências
maiores, por limitações da própria ferramenta.