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
Top Related