LOURIVAL OLIVEIRA DA SILVA · Verificando se um número é zero ... desenvolvimento de um...

14
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA LOURIVAL OLIVEIRA DA SILVA Projeto da Cálculadora Eletrônica Feira de Santana, 10 de Junho de 2004

Transcript of LOURIVAL OLIVEIRA DA SILVA · Verificando se um número é zero ... desenvolvimento de um...

UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA

LOURIVAL OLIVEIRA DA SILVA

Projeto da Cálculadora Eletrônica

Feira de Santana, 10 de Junho de 2004

UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA

LOURIVAL OLIVEIRA DA SILVA

Projeto da Calculadora digital

Relatório do Problema da Calculadora

Digital apresentado para avaliação da

Disciplina de Arquitetura e

Organização de Computadores do 2º.

semestre, do Curso de Engenharia de

Computação, da Universidade

Estadual de Feira de Santana sob

orientação do Prof. Márcio.

Feira de Santana, 10 de Junho de 2004

SumárioIntrodução................................................................................................................................4O Projeto................................................................................................................................. 5

Componentes Empregados................................................................................................. 6Comparações Numéricas.................................................................................................... 6

Comparações entre dois números qualquer................................................................... 6Verificando se um número é zero.................................................................................. 6

Teclado............................................................................................................................... 7Display................................................................................................................................7A Unidade Aritmética Lógica.............................................................................................7

Detecção de Overflow/Underflow................................................................................. 7Soma e Subtração...........................................................................................................8Multiplicação................................................................................................................. 8Divisão...........................................................................................................................8

Conclusão................................................................................................................................9Referências Bibliográficas.................................................................................................... 10Anexo I..................................................................................................................................11

Introdução

As calculadoras digitais são uma constante no cotidiano do homem moderno, porémmesmo se propondo a atingir objetivos tão modestos e triviais uma calculadora digitalemprega uma complexa gama de dispositivos e conexões quando observada a nivél deprojeto de circuito digital. O presente trabalho visa explanar sobre o projeto dedesenvolvimento de um dispositivo capaz de realizar as quatro operações matemáticasbásicas, a partir de componentes eletrônicos simples. Algumas simplificações foram feitaspara tornar o projeto menos complexo, como o não tratamento de números negativos, e amanipulações de números inteiros somente. A primeira parte do projeto procura dar umavisão ampla do projeto, passando depois a explicar de forma mais detalhada oscomponentes de cada módulo da calculadora e as considerações que foram feitas para seimplementar cada um destes módulos, e suas conexões.

O Projeto

Neste projeto de calculadora digital evidêncio-se três módulos principais, doisdestes fazem a interface com o usuário, que são o teclado e o display digital, o terceiro emais complexo é o responsavél pela execução das funções da calculadora. Comoevidênciado no diagrama abaixo que destaca os principais módulos e seus sub-componentes.

O ciclo de operação da calculadora para este projeto foi definido como segue abaixosem nenhuma variação:

Estas instruções são digitadas no teclado do equipamento que é composto por dezteclas que representam cada digito no sistema decimal, acrescido de mais quatro botões queacionam as operações básicas implementadas neste projeto (Soma, Subtração,Multiplicação e Divisão), e por fim um botão “Igual” que indica ao sistema que a entrada dedados foi finalizada, para que este execute a operação informada e que imprima o resultadono Display de dois digitos presente no aparelho.

Componentes Empregados

3-State – É um componente elétrônico assume o valor lógico da entrada quando aporta inferior está com sinal 1, caso contrário a sua saída não corresponde a

nenhum estado lógico válido, ficando assim no “Terceiro estado”

XOR – É uma porta lógica que só assume o valor verdade quando um e somenteuma das suas entradas é verdadeira, retornando falso em todas as outraspossibilidades, ou seja quando os valores de suas entradas são iguais.

NOR – Este tipo de porta lógica faz uma negação a uma porta OR normal.

Registradores – Armazena os valores das entradas somente num transiçãode clock, mantendo este valor na saída até que outra transição de clockocorra.

Comparações Numéricas

Para realizar certas operações fez-se nescessários em algumas operações acomparação entre dois números, para determinar se este é zero ou se tem os mesmosvalores, os processos para realizar tais comparações são explicados abaixo:

Comparações entre dois números qualquer - As comparação entre dois númerosbinários foram feitas se utilizando de 4 portasXOR de duas entradas e uma NOR de duasentradas, em cada porta XOR se introduzio osbits correspondentes em cada par de número aser comparado e as saídas dessas XOR foramligadas á entrada de uma NOR que indicavaquando todos os valores se correspondiam, ousejam quando o valor de todas as XOR davamFalso.

74LS199JKCPCED7D6D5D4D3D2D1D0

PEMR

Q7Q6Q5Q4Q3Q2Q1Q0

U49

U23C

U79B

igual

B2

B3

B0

B1

A2 A3

A1 A0

U2A

U1D

U1C

U1B

U1A

Verificando se um número é zero – Certificar-se de que um determinado valorbinário é zero é uma operação simples, basta ligar todas os bits deste número às entradas deuma porta NOR, assim a saída indicará se todas as entradas estão em “zero”.

Teclado

As entradas do usuários são feitas através de um teclado numérico de 0 a 9 que éimplementado utillizando-se um conjunto de portas OR ligadas a uma matriz que determinaos valores binários de cada número pressionado, este valor é então armazenado numconjunto de Flip-Flops antes de serem copiados para os Registradores A ou B de acordocom o número que está sendo digitado.

Display

O display da calculadora proposta configura certo grau de complexidade devido aofato que este deve represntar valores inteiros no intervalo de 0 a 91 (inclusive), parasimplificação do projeto valores negativos não foram considerados.

O valor a ser exibido no display da calculadora sempre corresponde ao valor doregistrador de resuldo da calculadora, assim para se exibir os valores temporários dasentradas A e B desativa-se a entrada B e soma o valor de A assim se obtém a na saida,repete-se a mesma operação com a entrada B, desativando a A. Quando o valor doregistrador de resultado da calculadora e modificado então inicia-se uma contagemsequêncial em que a cada operação o valor do contador é comparado ao valor do registrador

V180V

V170V

V160VV15

0V

V145V

DIV

MULT

SUB

SOMA

U20B

U42AU41AU25BU40 U39U35BU38U35A

U34U33A

U32

S1

S2

S3

S4

S5

S6

S7

S8

S9

S0 U24C

ON

igual

SJCPK

RQ_Q

U27AS

JCPK

RQ_Q

U27BS

JCPK

RQ_Q

U31AS

JCPK

RQ_Q

U31B

de resultado, quando os valores se igualarem a contagem cessa, neste ponto dois outroscontadores de década possui separados o valor das dezenas e o valor das unidades, estaseparação se dá paralelamente à contagem do contador principal que a cada iteração acionao contador de decadas que a cada dezena se reinicia acionando o contador de dezenas.Assim ao final do processo basta converter os valores do contador de decadas e do contadorde unidades para um displays de 7-segmentos que representarão corretamente as dezenas eas unidades.

A Unidade Aritmética Lógica

A unidade aritmética Lógica (UAL) é o circuito responsavél por efetuar asoperações matemáticas definidas para a calculadora, neste projeto as funções definidasforam a soma, subtração, multiplicação e divisão. As duas primeiras são mais fáceis deimplementar, pois se utilizam de algoritimo relativamente fácil e direto, enquanto as duasúltimas nescessitam de um algoritimo mais elaborado, e portanto de maior complexidade.

BCD-99

BCD-99

A0A1A2A3A4A5A6

DaDbDcDdDeDfDg

UaUbUcUdUeUfUg

ENCLKU1C

U1BU10B

CP1CP2

Q1Q2

V7

JCPK

RQ_Q

U13AJCPK

RQ_Q

U12B

JCPK

RQ_Q

U12A

JCPK

RQ_Q

U9B

74LS247A3A2A1A0

LTRBI

gfedcba

RBO

U74U11A

U10A

74LS247A3A2A1A0

LTRBI

gfedcba

RBO

U72

JCPK

RQ_Q

U9AJCPK

RQ_Q

U8BJCPK

RQ_Q

U8AJCPK

RQ_Q

U5B

U69

U7CU7BU7AU6DU6CU6BU6A

JCPK

RQ_Q

U5A

JCPK

RQ_Q

U4B

JCPK

RQ_Q

U4A

JCPK

RQ_Q

U3B

+VV35V

JCPK

RQ_Q

U3AJCPK

RQ_Q

U2B

JCPK

RQ_Q

U2A

+VV410V

U1A

74LS199JKCPCED7D6D5D4D3D2D1D0

PEMR

Q7Q6Q5Q4Q3Q2Q1Q0

U49

Todas as funções acima se baseiam na utilização de um conjunto sesomadores completos, como demonstrador no Anexo I. Além do resultadoda operação este Somador/Subtrator completo pode detectar a ocorrência doOverflow e Underflow, possuindo também circuitos lógicos para desabilitarcada porta individualmente, estas carácteristicas adicionais são utilizadas naimplementação das operações de Multiplicação e da Divisão.

Detecção de Overflow/Underflow

Quando um número é tão grande que não podeser representado no hardware envolvido diz-seque houve um Overflow, de forma análoga diz-seque houve um Underflow quando um número étão pequeno que não pode ser representado nohadware envolvido. Neste problema somente osegundo evento é pertinente, pois ele ocorrequando subtraimos um número qualquer poroutro maior que ele, assim utiliza-se este eventopara determinar o fim das subtrações sucessivasque compoem a divisão. O hardware de detecçãode overflow é exibido ao lado é adicionado aoCarry Out do somador completo maissignificativo, e o valor de sua saída indica a

presença de Overflow/Underflow na operaçõa corrente.

Soma e Subtração

As operações de adição e feita utilizando-se quantro somadores completos, queutilizam como entradas os valores dos registradores “A” e “B”. As operações de subtraçãoutilizam o mesmo circuito porém invertendo todas as entradas de “B” e acionando o Carrie-In do primeiro somador, para gerar o chamado complemento de dois do número “B”, que éo valor do número negativo correspondente a “B”, obténdo-se assim a função de subtração“A” e “B”, substituindo esta operação pela soma de a por menos B, o que ématemáticamente equivalente. O modelo de implementação deste somador pode serobservado no Anexo I.

Multiplicação

A multiplicação é a soma sucessiva de um número, sendo assim projetou-se acalculadora para aproveitar o hardware utilizado para soma nesta operação também. Ela seutiliza do registrador A e anula o B fazendo a soma sucessiva de A pelo resultado da somaanterior, até que B se torne igual ao valor do contador de iterações, obtendo-se assim amultiplicação de A por B. Há duas operações que devem ser especialmente tratadas, aprimeira é a multiplicação por zero, que deve sempre resultar em zero, como a condição deparada se satisfaz com a igualdade entre B e o valor do contador de passos, deve-se evitar a

ULA7Bits

B6B5B4B3B2B1B0

A0A1A2A3A4A5A6

S6S5S4S3S2S1S0

EAEB

FUNC

COUT

U1

ocorrência da soma pois, mesmo com os valores iguais haverá ainda uma operação, para talhá um conjunto de portas lógicas que desativam as entradas A e B do somador quando ovalor do contador for zero, assim a multiplicação quando B for zero sempre resultará emzero. Isto apaga qualquer valor previamente contido no registrador de resultado.

Divisão

A divisão é feita apartir de um contador de contador de 4 bits e um segundocontador de 2 bits que registra o estado da divisão. Esta operação é implementada a partirdo seguinte algoritimo:

1. RESULTADO = A + ZERO;2. C = ZERO;3. ENQUANTO (RESULTADO – A > ZERO) FAÇA:

RESULTADO = RESULTADO – A;C = C + 1;

4. RESULTADO = C;5. EXIBIR RESULTADO;

Estas operações são executadas no sistema através dos blocos de contadores logoabaixo do Somador e do Mux na saida do Somador utilizado para alternar entre o valor doSomador e o valor do contador da divisão.

JCPK

RQ_QJ

CPK

RQ_QJ

CPK

RQ_QJ

CPK

RQ_Q

+V5V

Contador de Iterações

Comparação dos números

Verifica se é zero

V190V

U66A

U54D

U65B

U65A

U55F

U63D

U63CU55E

U61C

U55D

U62AU55C

U61B

U61A

U60A

U57D

U55B

U57C

U28C

SDCP

RQ_Q

U58A

U57B

U23C

U57A

U53D

L5L4L3L2

U55A

U23B

U54AU53ACP1CP2

Q1Q2

V9

JCPK

RQ_Q

U47AJCPK

RQ_Q

U43A

+VV115V

+VV85V

JCPK

RQ_Q

U52BJCPK

RQ_Q

U52A

JCPK

RQ_Q

U48BJCPK

RQ_Q

U48A

MarcaMarcao Estado o Estado

AtualAtual

Conta o número de Conta o número de Subtrações feitasSubtrações feitas

Define o Define o Inicio/Fim Inicio/Fim

da da DivisãoDivisão

Conclusão

Apesar deste projeto ser demasiadamento simplificado quando comparado ao deuma calculadora convencional, sua implementação se mostrou massante e penosa,especialmente no que diz respeito às implementação das operações de multiplicação edivisão, sua implementação também mostrou como os mais simples circuitos eletrônicosquando devidamente agrupados conseguem executar operações diversas.

Este projeto peca por ter poucas otimizações, muitas das lógicas combinacionais sãoredundantes ou poderiam ser efetuadas de forma mais concisa. Talvez se pudesse reduzir deforma significativa o número de componentes empregados.

Referências Bibliográficas

PATTERSON, David A. e HENNESSY, John L., Organização e projeto de computadoresa interface hardware/software , Segunda edição. Rio de Janeiro, LTC, 2000.

GAJSKI, Daniel D., Principles Of Digital Design, Prentice-Hall Inc., 1997

IDOETA, Ivan V., CAPUANO, Francisco F., Elementos de Eletrônica Digital. 6ª Edição.São Paulo: Érica, 1984.

TOCCI, R. J. Sistemas Digitais: Princípios e Aplicações, LTC, 2000, 7° edição

Anexo I

Somador e Subtrator completo de 5 bits:

V35V

Overflow

U47D

U47C

B4

U44DU48A

U18AA4

U16A

U46DU46C

U15A

U44C

S4

U47B

U47A

B3

U44BU45D

U45CA3

U45B

U46BU46A

U45A

U44A

S3

U14A

U19F

B2

U13AU12A

U43DA2

U43C

U11AU10A

U43B

U42D

S2

S1

U42C

U43A

U9AU8A

U7A

A1 U5A

U24DU42B

B1

U19E

U19D

U6E

U6D

U6A

B0

U1DU4C

U4DA0

Func

S0

U2B

U3BU3A

U2A

U1A