multipl i cador divisor de 2 bits

26
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Graduação em Engenharia Mecânica (ênfase em Mecatrônica) Multiplicador/Divisor de 2 bits Gianluigi Bertuccio Gustavo Gregório Rafael Veneroso

Upload: rafael-veneroso

Post on 09-Feb-2016

139 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Multipl i Cador Divisor de 2 Bits

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS

Graduação em Engenharia Mecânica (ênfase em Mecatrônica)

Multiplicador/Divisor de 2 bits

Gianluigi Bertuccio

Gustavo Gregório

Rafael Veneroso

Belo Horizonte

2013

Page 2: Multipl i Cador Divisor de 2 Bits

Gianluigi Bertuccio

Gustavo Gregório

Rafael Veneroso

Multiplicador/Divisor de 2 bits

Trabalho apresentado à disciplina Laboratório de Sistemas Digitais do 2º período do curso de Engenharia Mecânica (ênfase em Mecatrônica) da Pontifícia Universidade Católica de Minas Gerais.

Professor: Dilmar Malheiros Meira

Belo Horizonte

2013

2

Page 3: Multipl i Cador Divisor de 2 Bits

RESUMO

Este relatório consiste no detalhamento para a criação de um

multiplicador/divisor de dois números binários com no máximo 2 bits cada. Nas

páginas a seguir, é possível visualizar todas as etapas de desenvolvimento, desde o

entendimento do problema proposto, métodos utilizados, recursos escolhidos,

esquemas (esboço) do projeto. De forma clara e objetiva, este relatório possibilita

demonstrar todos os passos para a resolução do problema.

3

Page 4: Multipl i Cador Divisor de 2 Bits

LISTA DE SIGLAS:

D1: Display que apresenta o primeiro operando

D2: Display que apresenta o segundo operando

D3: Display que apresenta o resultado em decimal do numero em BCD encontrado.

Para os 7 segmentos dos Displays:1

● a: Para o Segmento 1.

● b: Para o Segmento 2.

● c: Para o Segmento 3.

● d: Para o Segmento 4.

● e: Para o Segmento 5.

● f: Para o Segmento 6.

● g: Para o Segmento 7.

Lop: Led do operador matemático.

Lnd: Led de casas decimais.

Lerr: Led de erro.

Lbcd: Led das saidas BCD

Para os 4 bits do Código BCD2

● 3: Para o bit mais significativo.

● 2: Para o segundo bit da esquerda para a direita.

● 1: Para o terceiro bit da esquerda para a direita.

● 0: Para o bit menos significativo.

1 Cada display é composto por 7 segmentos, usando as letras de a até g para definir o índice do segmento

2 Cada código BCD é composto por 4 bits, usaremos os valores de 3 a 0 para indicar o índice do bit. O bit de maior índice é mais significativo portanto ele fica a esquerda.

4

Page 5: Multipl i Cador Divisor de 2 Bits

1 – INTRODUÇÃO................................................................................................................................. 6

1.2 – OBJETIVO...................................................................................................................................................6

2 – DESENVOLVIMENTO..................................................................................................................... 7

2.1 – DEFININDO AS ENTRADAS E SAÍDAS DO CIRCUITO....................................................................................72.2 – LÓGICA DE FUNCIONAMENTO DE CIRCUITO:............................................................................................82.3 – PROBLEMAS ENFRENTADOS:.....................................................................................................................82.4 – UTILIZAÇÃO DA ALTERA DE2 BOARD NA IMPLEMENTAÇÃO FÍSICA DO SISTEMA;.......................................................102.5 - PINAGEM;..................................................................................................................................................112.6 – PROJETO FINALIZADO NO SOFTWARE QUARTUS II:................................................................................132.7 – TESTE DO CIRCUITO UTILIZANDO O SOFTWARE QUARTUS II:.................................................................14

3 – MODULARIZAÇÃO.......................................................................................................................15

3.1 CRIANDO COMPONENTES:.........................................................................................................................153.2 MONTANDO O CIRCUITO COM O DIAGRAMA DE BLOCOS........................................................................................19

4 – CONCLUSÃO................................................................................................................................ 21

5 – REFERÊNCIAS.............................................................................................................................. 22

5

Page 6: Multipl i Cador Divisor de 2 Bits

1 – INTRODUÇÃO

O trabalho proposto pelo professor Dilmar consiste em desenvolver um multiplicador/divisor de dois números binários com 2 bits cada. Para tanto mostraremos todo o processo de desenvolvimento do mesmo, detalhando passo a passo todas as etapas até a solução final do problema.

1.2 – OBJETIVO

Construir um circuito que efetue a multiplicação ou a divisão entre dois operandos de dois bits, codificados em binário. O usuário deverá selecionar os valores dos 2 operandos e a operação aritmética, multiplicação ou divisão, que deseja efetuar. O resultado da operação deve ser indicado através de 4 bits, codificados em BCD. Além dos 4 bits do resultado da operação, o circuito deverá dispor de uma saída que será ativada sempre houver um erro na aritmética, como, por exemplo, uma divisão por zero.

O valor apresentado contemplará apenas a parte inteira do resultado da operação. Para remediar essa limitação, o circuito terá uma saída que será ativada sempre que o valor apresentado não for exato.

O valor em decimal correspondente a cada um dos operandos deverá ser mostrado em um display. Também deverá ser mostrado em um display o valor decimal correspondente ao resultado da operação.

6

Page 7: Multipl i Cador Divisor de 2 Bits

2 – DESENVOLVIMENTO

Tendo a proposta do projeto, o grupo utilizou a seguinte linha de raciocínio para a conclusão do mesmo:

1. Definir as entradas e as saídas do circuito;2. Lógica de funcionamento do sistema;3. Problemas enfrentados4. Utilização da Altera DE2 Board na implementação física do sistema;5. Pinagem6. Projeto finalizado no software Quartus II;7. Teste do circuito utilizando o software Quartus II;

2.1 – DEFININDO AS ENTRADAS E SAÍDAS DO CIRCUITO

Após análise detalhada do problema proposto o grupo chegou a conclusão que seriam necessárias apenas 5 entradas. Para definir o nome das variáveis optou-se por utilizar um vetor de grandeza 5 de nome “a”.

● a(4) : Nível lógico enviado pelo bit mais significativo do primeiro operando.● a(3) : Nível lógico enviado pelo bit menos significativo do primeiro operando.● a(2) : Nível lógico enviado pelo Operador, 1 para multiplicação, 0 para

divisão.● a(1) : Nível lógico enviado pelo bit mais significativo do segundo operando.● a(0) : Nível lógico enviado pelo bit menos significativo do segundo operando.

Verificou-se que o projeto requer 28 saídas, sendo 21 as saídas nos displays e 7 nos Leds. Para as saídas do circuito o grupo escolheu utilizar um vetor de tamanho 28 de nome “y”. Com base na tabela verdade foi definido em qual estado as saídas ficariam ativas ou inativas. Abaixo segue a definição de cada uma destas saídas.

● y(27): Saída D1a● Y(26): Saída D1b● Y(25): Saída D1c● Y(24): Saída D1d● Y(23): Saída D1e● Y(22): Saída D1f● Y(21): Saída D1g● Y(20): Saída Lop● Y(19): Saída D2a● Y(18): Saída D2b● Y(17): Saída D2c

7

Page 8: Multipl i Cador Divisor de 2 Bits

● Y(16): Saída D2d● Y(15): Saída D2e● Y(14): Saída D2f● Y(13): Saída D2g● Y(12): Saída Lbcd3● Y(11): Saída Lbcd2● Y(10): Saída Lbcd1● Y(9): Saída Lbcd0● Y(8): Saída Lerr● Y(7): Saída Lnd● Y(6): Saída D3a● Y(5): Saída D3b● Y(4): Saída D3c● Y(3): Saída D3d● Y(2): Saída D3e● Y(1): Saída D3f● Y(0): Saída D3g

2.2 – LÓGICA DE FUNCIONAMENTO DE CIRCUITO:

Para desenvolvimento do projeto, o grupo teve que traçar uma estratégia. As soluções para o problema proposto são amplas e o grupo deveria escolher uma que atendesse a todas as especificações propostas de forma simples e confiável.

O problema proposto baseia-se fundamentalmente em um conjunto de entradas que ao serem ativadas ou desativadas modificam os valores das saídas tanto nos Leds tanto nos segmentos do display.

Os problemas enfrentados pelo grupo, tal como a solução e os componentes a serem utilizados para a correção dos mesmos serão definidos a seguir.

2.3 – PROBLEMAS ENFRENTADOS:

A. Escrever a Tabela Verdade :O primeiro problema enfrentado pelo grupo foi determinar a Tabela Verdade

do projeto a ser feito de modo que fosse possível encontrar as funções das saídas. Para solucionar esse problema foi utilizado o excel e através da utilização de cores (azul para nível lógico 1 e vermelho para nível lógico 0) foi mais fácil relacionar as 5 entradas às 28 saídas.

8

Page 9: Multipl i Cador Divisor de 2 Bits

Figura 1: Tabela Verdade gerada em Excel

9

Page 10: Multipl i Cador Divisor de 2 Bits

B. Como ligar os leds e os segmentos de saída do display sem encontrar as funções para cada saída:

Ao ter montado a tabela verdade percebemos que seria muito difícil realizar o projeto por meio da construção do diagrama de blocos no Quartus II, já que as funções de cada saída iriam necessitar de vários tipos de portas lógicas. Sendo assim decidimos optar pela utilização da linguagem de programação por meio da criação de arquivos em vhdl.

C. Mostrar os operandos e o resultado em BCD nos displays:Inicialmente, devido ao fato dos segmentos dos displays da placa Altera DE2

serem ativados em nível logico negativo (0) tivemos alguns problemas em conseguir acender os segmentos para que fossem formados os números desejados. Enfim, percebemos que os segmentos de cada display somente se acendiam quando o nível lógico era 0. A tabela verdade do Item A já considera tais constatações.

10

Page 11: Multipl i Cador Divisor de 2 Bits

2.4 – Utilização da Altera DE2 Board na implementação física do sistema;

Por definição do projeto proposto a placa a ser utilizada para a implementação física do sistema será a DE2 da ALTERA - CYCLONE II – EP2C35F672C6 .

Figura 2: Placa DE2 da Altera.

11

Page 12: Multipl i Cador Divisor de 2 Bits

2.5 - Pinagem:

Tendo a Tabela Verdade e tendo decidido em qual placa implementar o projeto decidimos escolher quais seriam os pinos de entrada e saída utilizados

Figura 3: Relação dos pinos com as entradas e saídas

12

Page 13: Multipl i Cador Divisor de 2 Bits

2.6 – PROJETO FINALIZADO NO SOFTWARE QUARTUS II:

A seguir o projeto finalizado no software quartus II.

Figura 4: Código VHDL gerado no Quartus II

13

Page 14: Multipl i Cador Divisor de 2 Bits

2.7 – TESTE DO CIRCUITO UTILIZANDO O SOFTWARE QUARTUS II:

A seguir seguem os testes do circuito utilizando o software Quartus II. As decisões tomadas pelo grupo tornaram-se satisfatórias para resolução do problema proposto.

Figura 5: Compilação do projeto realizada com êxito.

14

Page 15: Multipl i Cador Divisor de 2 Bits

3 – MODULARIZAÇÃO

Modularização é um conceito onde o sistema ou software é divido em partes distintas. Compõe o ferramental necessário para um programa mais legível com uma melhor manutenção e melhor desempenho por meio da programação estruturada.

3.1 CRIANDO COMPONENTES:

Percebemos que poderiamos dividir o código VHDL em partes e assim reduzir a margem de erro e a legibilidade do código.

Dividimos da seguinte forma, fizemos 4 códigos em VHDL, um para a apresentação do display, um para a apresentação do erro, um pra avaliar se o número possui casas decimais, um para termos o resultado da operação em BCD e 2 códigos para aumentar as entradas chamados de Amplificador e Amplificador2.

Abaixo segue os códigos usados para cada propósito.

Display:

Nesse código temos um vetor de entrada de 4 bits e um vetor de saída de 7 bits.

Figura 6: Código referente ao componente Display

15

Page 16: Multipl i Cador Divisor de 2 Bits

Erro:

Nesse código temos um vetor de entrada de 3 bits e um bit de saída.

Figura 7: Código referente ao componente Erro

Decimal:

Nesse código temos um vetor de entrada de 5 bits e um bit de saída.

Figura 8: Código referente ao componente Decimal

16

Page 17: Multipl i Cador Divisor de 2 Bits

BCD:

Nesse código temos um vetor de entrada de 5 bits e um vetor de saída de 4 bits

Figura 9: Código referente ao componente BCD

17

Page 18: Multipl i Cador Divisor de 2 Bits

Amplificador:

Nesse código temos 1 bit para a entrada e 3 bits para a saída

Figura 10: Código referente ao componente Amplificador

Amplificador2:Nesse código temos 1 bit para a entrada e 4 bits para a saída

Figura 11: Código referente ao componente Amplificador2

18

Page 19: Multipl i Cador Divisor de 2 Bits

Após criar os códigos acima criamos os componentes para serem usados no diagrama de blocos.

Para criar um componente fizemos o procedimento mostrado na imagem abaixo

Figura 12: Imagem mostrando como cria componentes

Esse procedimento foi repetido para todos os códigos VHDL.

3.2 Montando o Circuito com o Diagrama de Blocos

Com os componentes criados montamos o circuito utilizando 5 pins de entrada, 1 GND, 2 Amplificadores, 3 Amplificadores2, 3 Displays, 1 BCD, 1 Erro, 1 Decimal e 28 pins de saída.

Abaixo o diagrama de blocos montado.

19

Page 20: Multipl i Cador Divisor de 2 Bits

Figura 13: Diagrama de blocos montado

20

Page 21: Multipl i Cador Divisor de 2 Bits

4 – CONCLUSÃO

Concluímos que, para a implementação de um sistema digital é necessário, inicialmente, a identificação do que foi proposto e a leitura e interpretação do problema e por fim a análise e discussão entre os membros do grupo para que o trabalho seja iniciado.

É também importante dividir as tarefas para que o prazo seja cumprido, assim como a leitura e vistoria de cada uma destas tarefas por parte de todos os membros do grupo para a localização e correção de erros.

Utilizar todas as ferramentas disponíveis, realizar testes e se possível simular todas as possíveis situações do mesmo é primordial para que todas as falhas sejam corrigidas.

Com todos os processos acima realizados, é necessário que o grupo tenha atenção para a implementação do circuito físico.

Um circuito digital de sucesso não deve ser definido apenas como aquele que funciona, e sim, como aquele que funciona da forma mais simples e com menos custos.

21

Page 22: Multipl i Cador Divisor de 2 Bits

5 – REFERÊNCIAS

MEIRA Dilmar M. Guia de Aula.

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS

TOCCI Ronald, WIDMER Neal, MOSS Gregory. Sistemas Digitais: Princípios e Aplicações 10ª ed.

São Paulo: Pearson 2007.

FLOYD Thomas L. Sistemas Digitais: Fundamentos e Aplicações 9ª ed.

Porto Alegre: Bookman, 2007.

DE2 User Manual - Altera

WIKIPÉDIA - http://pt.wikipedia.org

Monitores de sistemas digitais da PUC Minas.

22