Baixe o app para aproveitar ainda mais
Prévia do material em texto
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ário Introdução................................................................................................................................4 O Projeto................................................................................................................................. 5 Componentes Empregados................................................................................................. 6 Comparações Numéricas.................................................................................................... 6 Comparações entre dois números qualquer................................................................... 6 Verificando se um número é zero.................................................................................. 6 Teclado............................................................................................................................... 7 Display................................................................................................................................7 A Unidade Aritmética Lógica.............................................................................................7 Detecção de Overflow/Underflow................................................................................. 7 Soma e Subtração...........................................................................................................8 Multiplicação................................................................................................................. 8 Divisão...........................................................................................................................8 Conclusão................................................................................................................................9 Referências Bibliográficas.................................................................................................... 10 Anexo I..................................................................................................................................11 Introdução As calculadoras digitais são uma constante no cotidiano do homem moderno, porém mesmo se propondo a atingir objetivos tão modestos e triviais uma calculadora digital emprega uma complexa gama de dispositivos e conexões quando observada a nivél de projeto de circuito digital. O presente trabalho visa explanar sobre o projeto de desenvolvimento de um dispositivo capaz de realizar as quatro operações matemáticas básicas, a partir de componentes eletrônicos simples. Algumas simplificações foram feitas para tornar o projeto menos complexo, como o não tratamento de números negativos, e a manipulações de números inteiros somente. A primeira parte do projeto procura dar uma visão ampla do projeto, passando depois a explicar de forma mais detalhada os componentes de cada módulo da calculadora e as considerações que foram feitas para se implementar cada um destes módulos, e suas conexões. O Projeto Neste projeto de calculadora digital evidêncio-se três módulos principais, dois destes fazem a interface com o usuário, que são o teclado e o display digital, o terceiro e mais complexo é o responsavél pela execução das funções da calculadora. Como evidê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 abaixo sem nenhuma variação: Estas instruções são digitadas no teclado do equipamento que é composto por dez teclas que representam cada digito no sistema decimal, acrescido de mais quatro botões que acionam 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 de dados foi finalizada, para que este execute a operação informada e que imprima o resultado no Display de dois digitos presente no aparelho. Componentes Empregados 3-State – É um componente elétrônico assume o valor lógico da entrada quando a porta 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 somente uma das suas entradas é verdadeira, retornando falso em todas as outras possibilidades, 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ção de clock, mantendo este valor na saída até que outra transição de clock ocorra. Comparações Numéricas Para realizar certas operações fez-se nescessários em algumas operações a comparação entre dois números, para determinar se este é zero ou se tem os mesmos valores, os processos para realizar tais comparações são explicados abaixo: Comparações entre dois números qualquer - As comparação entre dois números binários foram feitas se utilizando de 4 portas XOR de duas entradas e uma NOR de duas entradas, em cada porta XOR se introduzio os bits correspondentes em cada par de número a ser comparado e as saídas dessas XOR foram ligadas á entrada de uma NOR que indicava quando todos os valores se correspondiam, ou sejam quando o valor de todas as XOR davam Falso. 74LS199 J K CP CE D7 D6 D5 D4 D3 D2 D1 D0 PE MR Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 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 valor binário é zero é uma operação simples, basta ligar todas os bits deste número às entradas de uma 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 determina os valores binários de cada número pressionado, este valor é então armazenado num conjunto de Flip-Flops antes de serem copiados para os Registradores A ou B de acordo com o número que está sendo digitado. Display O display da calculadora proposta configura certo grau de complexidade devido ao fato que este deve represntar valores inteiros no intervalo de 0 a 91 (inclusive), para simplificação do projeto valores negativos não foram considerados. O valor a ser exibido no display da calculadora sempre corresponde ao valor do registrador de resuldo da calculadora, assim para se exibir os valores temporários das entradas 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 do registrador de resultado da calculadora e modificado então inicia-se uma contagem sequêncial em que a cada operação o valor do contador é comparado ao valor do registrador V18 0V V17 0V V16 0VV15 0V V14 5V DIV MULT SUB SOMA U20B U42AU41AU25B U40 U39U35BU38 U35A U34 U33A U32 S1 S2 S3 S4 S5S6 S7 S8 S9 S0 U24C ON igual S J CP K R Q _Q U27A S J CP K R Q _Q U27B S J CP K R Q _Q U31A S J CP K R Q _Q U31B de resultado, quando os valores se igualarem a contagem cessa, neste ponto dois outros contadores de década possui separados o valor das dezenas e o valor das unidades, esta separação se dá paralelamente à contagem do contador principal que a cada iteração aciona o 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 contador de unidades para um displays de 7-segmentos que representarão corretamente as dezenas e as unidades. A Unidade Aritmética Lógica A unidade aritmética Lógica (UAL) é o circuito responsavél por efetuar as operações matemáticas definidas para a calculadora, neste projeto as funções definidas foram a soma, subtração, multiplicação e divisão. As duas primeiras são mais fáceis de implementar, 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 A0 A1A2 A3A4 A5 A6 Da DbDc Dd De Df Dg Ua Ub Uc Ud Ue Uf Ug ENCLK U1C U1B U10B CP1 CP2 Q1 Q2 V7 J CP K R Q _Q U13A J CP K R Q _Q U12B J CP K R Q _Q U12A J CP K R Q _Q U9B 74LS247 A3 A2 A1 A0 LT RBI g f e d c b a RBO U74 U11A U10A 74LS247 A3 A2 A1 A0 LT RBI g f e d c b a RBO U72 J CP K R Q _Q U9A J CP K R Q _Q U8B J CP K R Q _Q U8A J CP K R Q _Q U5B U69 U7CU7BU7AU6DU6CU6BU6A J CP K R Q _Q U5A J CP K R Q _Q U4B J CP K R Q _Q U4A J CP K R Q _Q U3B +V V3 5V J CP K R Q _Q U3A J CP K R Q _Q U2B J CP K R Q _Q U2A +V V4 10V U1A 74LS199 J K CP CE D7 D6 D5 D4 D3 D2 D1 D0 PE MR Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 U49 Todas as funções acima se baseiam na utilização de um conjunto se somadores completos, como demonstrador no Anexo I. Além do resultado da operação este Somador/Subtrator completo pode detectar a ocorrência do Overflow e Underflow, possuindo também circuitos lógicos para desabilitar cada porta individualmente, estas carácteristicas adicionais são utilizadas na implementaçã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 pode ser representado no hardware envolvido diz-se que houve um Overflow, de forma análoga diz-se que houve um Underflow quando um número é tão pequeno que não pode ser representado no hadware envolvido. Neste problema somente o segundo evento é pertinente, pois ele ocorre quando subtraimos um número qualquer por outro maior que ele, assim utiliza-se este evento para determinar o fim das subtrações sucessivas que compoem a divisão. O hardware de detecção de overflow é exibido ao lado é adicionado ao Carry Out do somador completo mais significativo, 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, que utilizam como entradas os valores dos registradores “A” e “B”. As operações de subtração utilizam 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 ser observado no Anexo I. Multiplicação A multiplicação é a soma sucessiva de um número, sendo assim projetou-se a calculadora para aproveitar o hardware utilizado para soma nesta operação também. Ela se utiliza do registrador A e anula o B fazendo a soma sucessiva de A pelo resultado da soma anterior, até que B se torne igual ao valor do contador de iterações, obtendo-se assim a multiplicação de A por B. Há duas operações que devem ser especialmente tratadas, a primeira é a multiplicação por zero, que deve sempre resultar em zero, como a condição de parada se satisfaz com a igualdade entre B e o valor do contador de passos, deve-se evitar a ULA7Bits B6 B5 B4 B3B2 B1 B0 A0 A1A2 A3 A4 A5A6 S6 S5 S4 S3 S2 S1S0 EA EB FU NC CO UT U1 ocorrência da soma pois, mesmo com os valores iguais haverá ainda uma operação, para tal há um conjunto de portas lógicas que desativam as entradas A e B do somador quando o valor do contador for zero, assim a multiplicação quando B for zero sempre resultará em zero. 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 segundo contador de 2 bits que registra o estado da divisão. Esta operação é implementada a partir do 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 logo abaixo do Somador e do Mux na saida do Somador utilizado para alternar entre o valor do Somador e o valor do contador da divisão. J CP K R Q _QJCP K R Q _QJCP K R Q _QJCP K R Q _Q +V 5V Contador de Iterações Comparação dos números Verifica se é zero V19 0V U66A U54D U65B U65A U55F U63D U63C U55E U61C U55D U62A U55C U61B U61A U60A U57D U55B U57C U28C S D CP R Q _Q U58A U57B U23C U57A U53D L5L4L3L2 U55A U23B U54AU53A CP1 CP2 Q1 Q2 V9 J CP K R Q _Q U47A J CP K R Q _Q U43A +V V11 5V +V V8 5V J CP K R Q _Q U52B J CP K R Q _Q U52A J CP K R Q _Q U48B J CP K R Q _Q U48A MarcaMarca o 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 de uma calculadora convencional, sua implementação se mostrou massante e penosa, especialmente no que diz respeito às implementação das operações de multiplicação e divisão, sua implementação também mostrou como os mais simples circuitos eletrônicos quando devidamente agrupados conseguem executar operações diversas. Este projeto peca por ter poucas otimizações, muitas das lógicas combinacionais são redundantes ou poderiam ser efetuadas de forma mais concisa. Talvez se pudesse reduzir de forma significativa o número de componentes empregados. Referências Bibliográficas PATTERSON, David A. e HENNESSY, John L., Organização e projeto de computadores a 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: V3 5V Overflow U47D U47C B4 U44D U48A U18A A4 U16A U46D U46C U15A U44C S4 U47B U47A B3 U44B U45D U45CA3 U45B U46B U46A U45A U44A S3 U14A U19F B2 U13A U12A U43D A2 U43C U11A U10A U43B U42D S2 S1 U42C U43A U9A U8A U7A A1 U5A U24D U42B B1 U19E U19D U6E U6D U6A B0 U1D U4C U4D A0 Fu nc S0 U2B U3B U3A U2A U1A
Compartilhar